aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/sram34xx.S
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/mach-omap2/sram34xx.S
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/mach-omap2/sram34xx.S')
-rw-r--r--arch/arm/mach-omap2/sram34xx.S13
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/sram34xx.S b/arch/arm/mach-omap2/sram34xx.S
index 35131e5bc7d1..c080c82521e1 100644
--- a/arch/arm/mach-omap2/sram34xx.S
+++ b/arch/arm/mach-omap2/sram34xx.S
@@ -40,22 +40,23 @@
40/* 40/*
41 * Change frequency of core dpll 41 * Change frequency of core dpll
42 * r0 = sdrc_rfr_ctrl r1 = sdrc_actim_ctrla r2 = sdrc_actim_ctrlb r3 = M2 42 * r0 = sdrc_rfr_ctrl r1 = sdrc_actim_ctrla r2 = sdrc_actim_ctrlb r3 = M2
43 * r4 = Unlock SDRC DLL? (1 = yes, 0 = no) -- only unlock DLL for
44 * SDRC rates < 83MHz
43 */ 45 */
44ENTRY(omap3_sram_configure_core_dpll) 46ENTRY(omap3_sram_configure_core_dpll)
45 stmfd sp!, {r1-r12, lr} @ store regs to stack 47 stmfd sp!, {r1-r12, lr} @ store regs to stack
48 ldr r4, [sp, #52] @ pull extra args off the stack
46 dsb @ flush buffered writes to interconnect 49 dsb @ flush buffered writes to interconnect
47 cmp r3, #0x2 50 cmp r3, #0x2
48 blne configure_sdrc 51 blne configure_sdrc
49 cmp r3, #0x2 52 cmp r4, #0x1
53 bleq unlock_dll
50 blne lock_dll 54 blne lock_dll
51 cmp r3, #0x1
52 blne unlock_dll
53 bl sdram_in_selfrefresh @ put the SDRAM in self refresh 55 bl sdram_in_selfrefresh @ put the SDRAM in self refresh
54 bl configure_core_dpll 56 bl configure_core_dpll
55 bl enable_sdrc 57 bl enable_sdrc
56 cmp r3, #0x1 58 cmp r4, #0x1
57 blne wait_dll_unlock 59 bleq wait_dll_unlock
58 cmp r3, #0x2
59 blne wait_dll_lock 60 blne wait_dll_lock
60 cmp r3, #0x1 61 cmp r3, #0x1
61 blne configure_sdrc 62 blne configure_sdrc