diff mbox

ARM: dts: am437x-gp-evm: Do not reset gpio5

Message ID 1395379213-15451-1-git-send-email-lokeshvutla@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lokesh Vutla March 21, 2014, 5:20 a.m. UTC
From: Dave Gerlach <d-gerlach@ti.com>

Do not reset GPIO5 at boot-up because GPIO5_7 is used
on AM437x GP-EVM to control VTT regulators on DDR3.
Without this some GP-EVM boards will fail to boot because
of DDR3 corruption.

Reported-by: Nishanth Menon <nm@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
---
This is applied on top of current linux-next.
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master

 arch/arm/boot/dts/am437x-gp-evm.dts |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Nishanth Menon March 25, 2014, 3:02 p.m. UTC | #1
On 03/21/2014 12:20 AM, Lokesh Vutla wrote:
> From: Dave Gerlach <d-gerlach@ti.com>
> 
> Do not reset GPIO5 at boot-up because GPIO5_7 is used
> on AM437x GP-EVM to control VTT regulators on DDR3.
> Without this some GP-EVM boards will fail to boot because
> of DDR3 corruption.
> 
> Reported-by: Nishanth Menon <nm@ti.com>
> Tested-by: Nishanth Menon <nm@ti.com>
> Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
> ---
> This is applied on top of current linux-next.
> git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> 
>  arch/arm/boot/dts/am437x-gp-evm.dts |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
> index df8798e..a055f7f 100644
> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> @@ -117,6 +117,11 @@
>  	status = "okay";
>  };
>  
> +&gpio5 {
> +	status = "okay";
> +	ti,no-reset-on-init;
> +};
> +
>  &mmc1 {
>  	status = "okay";
>  	vmmc-supply = <&vmmcsd_fixed>;
> 


Tony,
any chance of having this in 3.15 cycle?

as of today's linux-next tag, the only platform I have that does not
boot is due to the lack of this patch.


next-20140325-omap2plus_defconfig
 1: am335x-evm:  Boot PASS: http://slexy.org/raw/s20o6CfGL8
 2:  am335x-sk:  Boot PASS: http://slexy.org/raw/s2Ogu1zPtD
 3: am3517-evm:  Boot PASS: http://slexy.org/raw/s2m2WhHYO8
 4:  am37x-evm:  Boot PASS: http://slexy.org/raw/s2jOybaVno
 5: am43xx-epos:  Boot PASS: http://slexy.org/raw/s21tt52N4b
 6: am43xx-gpevm:  Boot FAIL: http://slexy.org/raw/s21eDQmFWJ
 7: beagleboard:  Boot PASS: http://slexy.org/raw/s2q7vzrZHb
 8: beaglebone-black:  Boot PASS: http://slexy.org/raw/s2HCAJVz0H
 9: beaglebone:  Boot PASS: http://slexy.org/raw/s2NioACYsM
10: craneboard:  Boot PASS: http://slexy.org/raw/s2s7jyo52c
11:       dra7:  Boot PASS: http://slexy.org/raw/s2OQ1BMerx
12:        ldp:  Boot PASS: http://slexy.org/raw/s2cWgQrdjb
13: pandaboard-es:  Boot PASS: http://slexy.org/raw/s2lOaznVLO
14:    sdp2430:  Boot PASS: http://slexy.org/raw/s21RCJlUDU
15:    sdp3430:  Boot PASS: http://slexy.org/raw/s2181J9eWO
16:    sdp4430:  Boot PASS: http://slexy.org/raw/s20UumAiXK
17: OMAP5432uEVM:  Boot PASS: http://slexy.org/raw/s21ypXvTNc
TOTAL = 17 boards, Booted Boards = 16, No Boot boards = 1
Tony Lindgren April 17, 2014, 4:34 p.m. UTC | #2
* Nishanth Menon <nm@ti.com> [140325 08:05]:
> On 03/21/2014 12:20 AM, Lokesh Vutla wrote:
> > From: Dave Gerlach <d-gerlach@ti.com>
> > 
> > Do not reset GPIO5 at boot-up because GPIO5_7 is used
> > on AM437x GP-EVM to control VTT regulators on DDR3.
> > Without this some GP-EVM boards will fail to boot because
> > of DDR3 corruption.

How funny :)

Ideally we would be able to specify which GPIO pins should
maintain their state during the boot.

AFAIK, this patch currently means that the kernel has no idea
what state the whole GPIO bank is in. At minimum we should
parse the GPIO bank state so the kernel knows it and then it
should be safe to set the no reset flag.

So for the workaround, can you guys please try to see test
if the old mux trick in the bootloader works to mux the pin
into something PIN_INPUT_PULLUP | MUX_MODE7? Or a PULLDOWN
depending on the direction naturally. That would allow
leaving out the GPIO completely from this.

Regards,

Tony
 
> > Reported-by: Nishanth Menon <nm@ti.com>
> > Tested-by: Nishanth Menon <nm@ti.com>
> > Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
> > Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
> > ---
> > This is applied on top of current linux-next.
> > git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > 
> >  arch/arm/boot/dts/am437x-gp-evm.dts |    5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
> > index df8798e..a055f7f 100644
> > --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> > +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> > @@ -117,6 +117,11 @@
> >  	status = "okay";
> >  };
> >  
> > +&gpio5 {
> > +	status = "okay";
> > +	ti,no-reset-on-init;
> > +};
> > +
> >  &mmc1 {
> >  	status = "okay";
> >  	vmmc-supply = <&vmmcsd_fixed>;
> > 
> 
> 
> Tony,
> any chance of having this in 3.15 cycle?
> 
> as of today's linux-next tag, the only platform I have that does not
> boot is due to the lack of this patch.
> 
> 
> next-20140325-omap2plus_defconfig
>  1: am335x-evm:  Boot PASS: http://slexy.org/raw/s20o6CfGL8
>  2:  am335x-sk:  Boot PASS: http://slexy.org/raw/s2Ogu1zPtD
>  3: am3517-evm:  Boot PASS: http://slexy.org/raw/s2m2WhHYO8
>  4:  am37x-evm:  Boot PASS: http://slexy.org/raw/s2jOybaVno
>  5: am43xx-epos:  Boot PASS: http://slexy.org/raw/s21tt52N4b
>  6: am43xx-gpevm:  Boot FAIL: http://slexy.org/raw/s21eDQmFWJ
>  7: beagleboard:  Boot PASS: http://slexy.org/raw/s2q7vzrZHb
>  8: beaglebone-black:  Boot PASS: http://slexy.org/raw/s2HCAJVz0H
>  9: beaglebone:  Boot PASS: http://slexy.org/raw/s2NioACYsM
> 10: craneboard:  Boot PASS: http://slexy.org/raw/s2s7jyo52c
> 11:       dra7:  Boot PASS: http://slexy.org/raw/s2OQ1BMerx
> 12:        ldp:  Boot PASS: http://slexy.org/raw/s2cWgQrdjb
> 13: pandaboard-es:  Boot PASS: http://slexy.org/raw/s2lOaznVLO
> 14:    sdp2430:  Boot PASS: http://slexy.org/raw/s21RCJlUDU
> 15:    sdp3430:  Boot PASS: http://slexy.org/raw/s2181J9eWO
> 16:    sdp4430:  Boot PASS: http://slexy.org/raw/s20UumAiXK
> 17: OMAP5432uEVM:  Boot PASS: http://slexy.org/raw/s21ypXvTNc
> TOTAL = 17 boards, Booted Boards = 16, No Boot boards = 1
> 
> -- 
> Regards,
> Nishanth Menon
Tony Lindgren April 25, 2014, 4:46 p.m. UTC | #3
* Tony Lindgren <tony@atomide.com> [140417 09:34]:
> * Nishanth Menon <nm@ti.com> [140325 08:05]:
> > On 03/21/2014 12:20 AM, Lokesh Vutla wrote:
> > > From: Dave Gerlach <d-gerlach@ti.com>
> > > 
> > > Do not reset GPIO5 at boot-up because GPIO5_7 is used
> > > on AM437x GP-EVM to control VTT regulators on DDR3.
> > > Without this some GP-EVM boards will fail to boot because
> > > of DDR3 corruption.
> 
> How funny :)
> 
> Ideally we would be able to specify which GPIO pins should
> maintain their state during the boot.
> 
> AFAIK, this patch currently means that the kernel has no idea
> what state the whole GPIO bank is in. At minimum we should
> parse the GPIO bank state so the kernel knows it and then it
> should be safe to set the no reset flag.
> 
> So for the workaround, can you guys please try to see test
> if the old mux trick in the bootloader works to mux the pin
> into something PIN_INPUT_PULLUP | MUX_MODE7? Or a PULLDOWN
> depending on the direction naturally. That would allow
> leaving out the GPIO completely from this.

OK so no safe mode as MUX_MODE7 on am335x. So based on the
tests done by Dave on various GPIO banks without the reset,
this seems OK to do. So applying into omap-for-v3.15/fixes-v2
to get the board booting properly.

Naturally this is not a reason to stop further work on making
sure the GPIO driver actually knows what state the bank is
as suggested by Felipe.

Tony
diff mbox

Patch

diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index df8798e..a055f7f 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -117,6 +117,11 @@ 
 	status = "okay";
 };
 
+&gpio5 {
+	status = "okay";
+	ti,no-reset-on-init;
+};
+
 &mmc1 {
 	status = "okay";
 	vmmc-supply = <&vmmcsd_fixed>;