summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Millbrandt <emillbrandt@dekaresearch.com>2010-09-03 19:27:38 +0200
committerGrant Likely <grant.likely@secretlab.ca>2010-09-08 19:55:26 +0200
commitfa32154e47a203688453e53c1369fcbc63b06a21 (patch)
treeb9a95fe92d483efb45025eb36845bbe56c008b43
parentpowerpc/5200: efika.c: Add of_node_put to avoid memory leak (diff)
downloadlinux-fa32154e47a203688453e53c1369fcbc63b06a21.tar.xz
linux-fa32154e47a203688453e53c1369fcbc63b06a21.zip
powerpc/5200: tighten up ac97 reset timing
Tighten up time timing around the gpio reset functionality. Add a 200ns delay before remuxing the pins back to ac97 to comply with the ac97 spec. Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_common.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
index 6e905314ad5d..41f3a7eda1de 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -325,12 +325,16 @@ int mpc5200_psc_ac97_gpio_reset(int psc_number)
clrbits32(&simple_gpio->simple_dvo, sync | out);
clrbits8(&wkup_gpio->wkup_dvo, reset);
- /* wait at lease 1 us */
- udelay(2);
+ /* wait for 1 us */
+ udelay(1);
/* Deassert reset */
setbits8(&wkup_gpio->wkup_dvo, reset);
+ /* wait at least 200ns */
+ /* 7 ~= (200ns * timebase) / ns2sec */
+ __delay(7);
+
/* Restore pin-muxing */
out_be32(&simple_gpio->port_config, mux);