diff options
author | Paul Walmsley <paul@pwsan.com> | 2009-05-12 19:26:32 -0400 |
---|---|---|
committer | paul <paul@twilight.(none)> | 2009-05-12 19:27:10 -0400 |
commit | 4519c2bf433b97d091635eb51e4ba8ffa1c84d62 (patch) | |
tree | 0b36fc5e39c6a29005783c74f727c953c75e2198 /arch/arm/plat-omap/sram.c | |
parent | b2abb271a5705bc80478e79d95fc9f3babc2605c (diff) |
OMAP3 clock: only unlock SDRC DLL if SDRC clk < 83MHz
According to the 34xx TRM Rev. K section 11.2.4.4.11.1 "Purpose of the
DLL/CDL Module," the SDRC delay-locked-loop can be locked at any SDRC
clock frequency from 83MHz to 166MHz. CDP code unconditionally
unlocked the DLL whenever shifting to a lower SDRC speed, but this
seems unnecessary and error-prone, as the DLL is no longer able to
compensate for process, voltage, and temperature variations. Instead,
only unlock the DLL when the SDRC clock rate would be less than 83MHz.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/plat-omap/sram.c')
-rw-r--r-- | arch/arm/plat-omap/sram.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 38353386e91e..876f5a7ecafd 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -365,16 +365,17 @@ static inline int omap243x_sram_init(void) | |||
365 | static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, | 365 | static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, |
366 | u32 sdrc_actim_ctrla, | 366 | u32 sdrc_actim_ctrla, |
367 | u32 sdrc_actim_ctrlb, | 367 | u32 sdrc_actim_ctrlb, |
368 | u32 m2); | 368 | u32 m2, u32 unlock_dll); |
369 | u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, | 369 | u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, |
370 | u32 sdrc_actim_ctrlb, u32 m2) | 370 | u32 sdrc_actim_ctrlb, u32 m2, u32 unlock_dll) |
371 | { | 371 | { |
372 | if (!_omap3_sram_configure_core_dpll) | 372 | if (!_omap3_sram_configure_core_dpll) |
373 | omap_sram_error(); | 373 | omap_sram_error(); |
374 | 374 | ||
375 | return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, | 375 | return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, |
376 | sdrc_actim_ctrla, | 376 | sdrc_actim_ctrla, |
377 | sdrc_actim_ctrlb, m2); | 377 | sdrc_actim_ctrlb, m2, |
378 | unlock_dll); | ||
378 | } | 379 | } |
379 | 380 | ||
380 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ | 381 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ |