Hi, On Tue, Feb 15, 2011 at 10:00 PM, Vishwanath Sripathy <vishwanath.bs@xxxxxx> wrote: >> -----Original Message----- >> From: linux-arm-kernel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:linux-arm- >> kernel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Jarkko Nikula >> Sent: Tuesday, February 15, 2011 8:47 PM >> To: Shweta Gulati >> Cc: Nishanth Menon; Thara Gopinath; linux-omap@xxxxxxxxxxxxxxx; >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> Subject: Re: [PATCH V4] OMAP3: PM: Set/clear T2 bit for Smartreflex on >> TWL >> >> On Tue, 15 Feb 2011 13:28:58 +0530 >> Shweta Gulati <shweta.gulati@xxxxxx> wrote: >> >> > This patch is based on LO PM Branch and Smartreflex has been >> > tested on OMAP3430 SDP, OMAP3630 SDP and boot tested on >> > OMAP2430 SDP. >> > >> I saw this was working on N900 (kind of special instrumentation >> setup) after enabling /sys/kernel/debug/voltage/[vdd_core | >> vdd_mpu]/smartreflex/autocomp. Few comments below. >> >> > @@ -269,6 +276,18 @@ int __init omap3_twl_init(void) >> > omap3_core_volt_info.vp_vddmax = >> OMAP3630_VP2_VLIMITTO_VDDMAX; >> > } >> ... >> > + if (!twl_sr_enable_autoinit) >> > + omap3_twl_set_sr_bit(true); >> ... >> > +int __init omap3_twl_set_sr_bit(bool enable) >> > +{ >> > + u8 temp; >> > + int ret; >> > + if (twl_sr_enable_autoinit) >> > + pr_warning("%s: unexpected multiple calls\n", __func__); >> > + >> > + ret = twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &temp, >> > + TWL4030_DCDC_GLOBAL_CFG); >> > + if (ret) >> > + goto err; >> > + >> > + if (enable) >> > + temp |= SMARTREFLEX_ENABLE; >> > + else >> > + temp &= ~SMARTREFLEX_ENABLE; >> > + >> > + ret = twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, temp, >> > + TWL4030_DCDC_GLOBAL_CFG); >> >> Would it make more sense to set only the flag here and do the register >> writes when omap3_twl_init is executing? Then it's not so strict when >> the board code calls this function. > What if board code calls this function after twl_init is executed? Then > you will not clear the bit right? > Intention of this function is to make sure the bit is set/cleared when it > is called. ompa3_twl_init is called from 'omap2_common_pm_late_init' which is late_initcall. So it would be called after board specific initializations are completed in 'init' process. > vishwa >> >> > + if (!ret) { >> > + twl_sr_enable_autoinit = true; >> > + return 0; >> >> Should this be twl_sr_enable_autoinit = enable (if going to do >> register write here)? >> >> -- >> Jarkko >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- Thanks, Regards, Shweta -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html