diff options
author | Nishanth Menon <nm@ti.com> | 2011-08-05 20:39:27 -0500 |
---|---|---|
committer | Nishanth Menon <nm@ti.com> | 2011-08-26 20:17:12 -0500 |
commit | 0024a2591228bdcd2a9c624b051dc92012b47961 (patch) | |
tree | 3ddef84f046e8ab1fb2ecb4283de6cec170a874c /arch/arm | |
parent | 11425145143860fad783841492de2f08dfa4ab79 (diff) | |
download | kernel_samsung_tuna-0024a2591228bdcd2a9c624b051dc92012b47961.zip kernel_samsung_tuna-0024a2591228bdcd2a9c624b051dc92012b47961.tar.gz kernel_samsung_tuna-0024a2591228bdcd2a9c624b051dc92012b47961.tar.bz2 |
OMAP3+: PM: VC: Support PMICs' switch on time
While switching from low power states to powered
states, the devices need a bit of startup time. This
is characterized in the documentation. Provide a
mechanism to add the delay
Change-Id: Ia1bd2b6c5b903eca15852e666910e5b385d7884a
Signed-off-by: Nishanth Menon <nm@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/vc.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/voltage.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c index 6a9b8a9..cbf9a3b 100644 --- a/arch/arm/mach-omap2/vc.c +++ b/arch/arm/mach-omap2/vc.c @@ -495,6 +495,10 @@ static int __init omap_vc_setup_lp_time(struct voltagedomain *voltdm, volt_ramptime = DIV_ROUND_UP(volt_drop, pmic->slew_rate); volt_ramptime += OMAP_VC_I2C_ACK_DELAY; + /* many PMICs need additional time to switch back on */ + if (!is_retention) + volt_ramptime += pmic->switch_on_time; + if (volt_ramptime < max_latency_for_prescaler) pre_scaler = 0x0; else diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h index 806b8b2..0a9f529 100644 --- a/arch/arm/mach-omap2/voltage.h +++ b/arch/arm/mach-omap2/voltage.h @@ -190,6 +190,7 @@ struct omap_volt_data { * @i2c_hscll_high: PMIC interface speed config for highspeed mode (T high) * @i2c_scll_low: PMIC interface speed config for fullspeed mode (T low) * @i2c_scll_high: PMIC interface speed config for fullspeed mode (T high) + * @switch_on_time: time taken for switch on the DCDC in uSec */ struct omap_voltdm_pmic { int slew_rate; @@ -199,6 +200,7 @@ struct omap_voltdm_pmic { u32 ret_volt; u32 off_volt; u16 volt_setup_time; + u16 switch_on_time; u8 vp_erroroffset; u8 vp_vstepmin; u8 vp_vstepmax; |