Patchwork [v2] powerpc/5200: tighten up ac97 reset timing

login
register
mail settings
Submitter Eric Millbrandt
Date Sept. 3, 2010, 5:27 p.m.
Message ID <1283534858-17951-1-git-send-email-emillbrandt@dekaresearch.com>
Download mbox | patch
Permalink /patch/63703/
State Accepted
Delegated to: Anatolij Gustschin
Headers show

Comments

Eric Millbrandt - Sept. 3, 2010, 5:27 p.m.
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>
---

Scope shots availible upon request

changes since v1
- amended with comments from Wolfram Sang

 arch/powerpc/platforms/52xx/mpc52xx_common.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

--
1.6.3.1

-DISCLAIMER: an automatically appended disclaimer may follow. By posting-
-to a public e-mail mailing list I hereby grant permission to distribute-
-and copy this message.-

This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message.

Thank you.

Please consider the environment before printing this email.
Grant Likely - Sept. 8, 2010, 5:55 p.m.
On Fri, Sep 03, 2010 at 01:27:38PM -0400, Eric Millbrandt wrote:
> 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>
> ---
> 
> Scope shots availible upon request
> 
> changes since v1
> - amended with comments from Wolfram Sang
> 
>  arch/powerpc/platforms/52xx/mpc52xx_common.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)

Applied, but the patch was mangled (tabs->spaces) and I had to fix it
up by hand.  You'll need to find a way to get out from under your
corporate email manging server.

g.

> 
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
> index 6e90531..41f3a7e 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);
> 
> --
> 1.6.3.1
> 
> -DISCLAIMER: an automatically appended disclaimer may follow. By posting-
> -to a public e-mail mailing list I hereby grant permission to distribute-
> -and copy this message.-
> 
> This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message.
> 
> Thank you.
> 
> Please consider the environment before printing this email.

Patch

diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
index 6e90531..41f3a7e 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);