On Tue, Jan 24, 2012 at 02:35:19PM +0530, Laxman Dewangan wrote: > + /* > + * Rail can not be control from all external input EN1, EN2 and EN3 > + * together. > + */ > + if ((ext_sleep_config & EXT_SLEEP_CONTROL) == EXT_SLEEP_CONTROL) { > + dev_err(mfd->dev, "External sleep control flag is not " > + " not proper\n"); > + return -EINVAL; > + } Don't split log messages over multiple lines, it makes grepping the logs harder. Also, are combinations of two external enables valid? > +static void tps65910_shutdown(struct platform_device *pdev) > +{ > + struct tps65910_reg *pmic = platform_get_drvdata(pdev); > + int i; > + int err; > + dev_err(&pdev->dev, "%s() is called\n", __func__); > + > + /* Remove all external control before shutting down the device */ > + for (i = 0; i < pmic->num_regulators; i++) { > + if (!pmic->rdev[i]) > + continue; > + > + err = tps65910_set_ext_sleep_config(pmic, i, 0); > + if (err < 0) > + dev_err(&pdev->dev, "Error in clearing external " > + "control\n"); > + } Why? > +/* > + * 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. > + > /** > * struct tps65910_board > * Board platform data may be used to initialize regulators. > @@ -779,6 +792,7 @@ struct tps65910_board { > int irq_base; > int vmbch_threshold; > int vmbch2_threshold; > + unsigned long regulator_ext_sleep_control[TPS65910_NUM_REGS]; I can't see anything in this code which will manage the enable signals? -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html