aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/sram.c
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2009-05-12 19:26:32 -0400
committerpaul <paul@twilight.(none)>2009-05-12 19:27:10 -0400
commit4519c2bf433b97d091635eb51e4ba8ffa1c84d62 (patch)
tree0b36fc5e39c6a29005783c74f727c953c75e2198 /arch/arm/plat-omap/sram.c
parentb2abb271a5705bc80478e79d95fc9f3babc2605c (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.c7
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)
365static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, 365static 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);
369u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, 369u32 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? */