Re: [PATCH V1] regulator: tps65910: Sleep control through externalinputs

From: Mark Brown
Date: Tue Jan 24 2012 - 07:24:12 EST


On Tue, Jan 24, 2012 at 05:49:52PM +0530, Laxman Dewangan wrote:
> On Tuesday 24 January 2012 05:28 PM, Mark Brown wrote:
> >On Tue, Jan 24, 2012 at 02:35:19PM +0530, Laxman Dewangan wrote:

> >>+ err = tps65910_set_ext_sleep_config(pmic, i, 0);
> >>+ if (err< 0)
> >>+ dev_err(&pdev->dev, "Error in clearing external "
> >>+ "control\n");
> >>+ }

> >Why?

> The external controls for different rails are managed by power
> manament driver of soc in kernel to toggel them. The bootloader make
> sure that all external control signals are active just before
> jumping into kernel so that there is no issue during regulator init.
> When system reboots in kernel by kernel command, the configuration
> of the pmu still maintain as what it was in kernel before reboot and
> issue system reboots. There is possibility that the default (POR)
> of these control signals are not active on soc reset or initial
> stage of the bootloader and hence it can turn off the rails which
> can avoid system booting.
> So kernel need to remove all external controls before reboot system.

The code needs to explain this stuff so readers will know.

> >>+ * Regulator mode when rail is in sleep state which controlled by external
> >>+ * input. The regultor will be OFF if it is in sleep state by default but
> >>+ * can be set in LOW power mode by ORing following macro with any of
> >>+ * above exterenl input option.
> >>+ */
> >>+#define TPS65910_SLEEP_CONTROL_REG_LOW_POWER 0x10
> >There's the suspend mode API for configuring suspend modes.

> Hmm.., I thought that suspend mode apis manages the low/full-on
> power mode when the controls are not through external inputs. There
> is different register for configuring the power mode by i2c- write.
> This macro help in configuration of mode when enabled with external
> controls which configures in different sets of register.

No, usually it's used for configuring suspend mode when the PMIC knows
about system suspend.

> >>+ unsigned long regulator_ext_sleep_control[TPS65910_NUM_REGS];

> >I can't see anything in this code which will manage the enable signals?

> I used this member in the probe as for configuring the rails..
> + err = tps65910_set_ext_sleep_config(pmic, i,
> + pmic_plat_data->regulator_ext_sleep_control[i]);

Right, but I can't see any code which manages the signals at runtime.
You tell the device to use the signals but the signals aren't (as far as
I can see) controlled by software.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/