OMAP3: wait on IDLEST after enabling USBTLL fclk
authorAnand Gadiyar <gadiyar@ti.com>
Mon, 26 Jul 2010 22:34:27 +0000 (16:34 -0600)
committerPaul Walmsley <paul@pwsan.com>
Mon, 26 Jul 2010 22:34:27 +0000 (16:34 -0600)
commit25499d9353e8cc6b0cf205684b3ebc535f8b9372
tree2313746d14fd50787286378366616e978120902c
parentb37fa16e78d6f9790462b3181602a26b5af36260
OMAP3: wait on IDLEST after enabling USBTLL fclk

We need to wait on the IDLEST bit after the clocks are enabled
before attempting to access any register.

Currently, the USBTLL i-clock ops uses the clkops_omap2_dflt_wait,
while the USBTLL f-clock ops uses clkops_omap2_dflt. If the
i-clock is enabled first, the clkops_omap2_dflt_wait is
short-circuited as the companion f-clock is not enabled.
This can cause a data abort if the IDLEST has not transitioned,
and we try to access a USBTLL register.

Since the USBTLL i-clock and f-clock could be enabled in any order,
this is a bug. Fix it by changing the clkops for the f-clock.

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/clock3xxx_data.c