ARM: OMAP4460: Workaround ABE DPLL failing to turn-on
authorJon Hunter <jon-hunter@ti.com>
Sat, 15 Dec 2012 08:35:50 +0000 (01:35 -0700)
committerPaul Walmsley <paul@pwsan.com>
Sat, 15 Dec 2012 08:35:50 +0000 (01:35 -0700)
commit8c197ccfb60032859a32381b2e4bd4d2b8fdd338
tree6b6eeb2224daecbc19a9ade1108bfa3094cdd093
parent3ff51ed8287d3d2c7899f18f0487348e3448afb5
ARM: OMAP4460: Workaround ABE DPLL failing to turn-on

With the latest mainline u-boot bootloader (v2012.10), timers (5-8) in
the ABE power domain are failing to turn-on. The timers never come out
of the disabled state when setting the module-mode field to enable.

The problem was exposed when u-boot was updated to NOT configure and
lock the ABE DPLL on start-up. If the ABE DPLL is configured and locked
by u-boot the problem does not occur. However, if the ABE DPLL is in the
idle low-power bypass state and we attempt to enable a timer in the ABE
power domain, it remains stuck in the disabled state. It appears to be a
problem the timer interface clock as this comes from the ABE DPLL.

If we place the ABE DPLL in the MN-bypass state and not the idle
low-power state, then this problem is not seen.

This problem only appears to occur on OMAP4460 and not OMAP4430.

Workaround this problem by locking the ABE DPLL for OMAP4460 in the
kernel on boot. By locking the ABE DPLL, when clocks from the ABE DPLL
are not being requested the DPLL will transition into a low-power stop
mode.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/cclock44xx_data.c