arm64: dts: meson: odroid-n2: keep SD card regulator always on
diff mbox series

Message ID 20190719192954.26481-1-xruppen@gmail.com
State In Next
Commit d9d46ea23276d2b76b600cacec7b4e410766f4dc
Headers show
Series
  • arm64: dts: meson: odroid-n2: keep SD card regulator always on
Related show

Commit Message

Xavier Ruppen July 19, 2019, 7:29 p.m. UTC
When powering off the Odroid N2, the tflash_vdd regulator is
automatically turned off by the kernel. This is a problem
when issuing the "reboot" command while using an SD card.
The boot ROM does not power this regulator back on, blocking
the reboot process at the boot ROM stage, preventing the
SD card from being detected.

Adding the "regulator-always-on" property fixes the problem.

Signed-off-by: Xavier Ruppen <xruppen@gmail.com>
---

Here is what the boot ROM output looks like without this patch:

    [root@alarm ~]# reboot 
    [...]
    [   24.275860] shutdown[1]: All loop devices detached.
    [   24.278864] shutdown[1]: Detaching DM devices.
    [   24.287105] kvm: exiting hardware virtualization
    [   24.318776] reboot: Restarting system
    bl31 reboot reason: 0xd
    bl31 reboot reason: 0x0
    system cmd  1.
    G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
    EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
    NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
    SD?:0;SD:400;USB:8;LOOP:3; [...]

Other people can be seen having this problem on the odroid
forum [1].

The cause of the problem was found by Martin Blumenstingl
on #linux-amlogic. We may want to add his Suggested-by tag
if he agrees.

[1] https://forum.odroid.com/viewtopic.php?f=176&t=33993

 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | 1 +
 1 file changed, 1 insertion(+)

Comments

Neil Armstrong July 22, 2019, 7:21 a.m. UTC | #1
On 19/07/2019 21:29, Xavier Ruppen wrote:
> When powering off the Odroid N2, the tflash_vdd regulator is
> automatically turned off by the kernel. This is a problem
> when issuing the "reboot" command while using an SD card.
> The boot ROM does not power this regulator back on, blocking
> the reboot process at the boot ROM stage, preventing the
> SD card from being detected.
> 
> Adding the "regulator-always-on" property fixes the problem.
> 
> Signed-off-by: Xavier Ruppen <xruppen@gmail.com>
> ---
> 
> Here is what the boot ROM output looks like without this patch:
> 
>     [root@alarm ~]# reboot 
>     [...]
>     [   24.275860] shutdown[1]: All loop devices detached.
>     [   24.278864] shutdown[1]: Detaching DM devices.
>     [   24.287105] kvm: exiting hardware virtualization
>     [   24.318776] reboot: Restarting system
>     bl31 reboot reason: 0xd
>     bl31 reboot reason: 0x0
>     system cmd  1.
>     G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
>     EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
>     NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
>     SD?:0;SD:400;USB:8;LOOP:3; [...]
> 
> Other people can be seen having this problem on the odroid
> forum [1].
> 
> The cause of the problem was found by Martin Blumenstingl
> on #linux-amlogic. We may want to add his Suggested-by tag
> if he agrees.
> 
> [1] https://forum.odroid.com/viewtopic.php?f=176&t=33993
> 
>  arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> index 81780ffcc7f0..4e916e1f71f7 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> @@ -53,6 +53,7 @@
>  
>  		gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
>  		enable-active-high;
> +		regulator-always-on;
>  	};
>  
>  	tf_io: gpio-regulator-tf_io {
> 

Surely solves the situation, thanks !

please add a comment on top of "regulator-always-on" to explain why we always enable it,
note we should always enable it in case of watchdog reboot or other uncontrolled reset,
this regulator must never be disabled.

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>

Thanks,
Neil
Martin Blumenstingl July 23, 2019, 7:48 p.m. UTC | #2
On Fri, Jul 19, 2019 at 9:29 PM Xavier Ruppen <xruppen@gmail.com> wrote:
>
> When powering off the Odroid N2, the tflash_vdd regulator is
> automatically turned off by the kernel. This is a problem
> when issuing the "reboot" command while using an SD card.
> The boot ROM does not power this regulator back on, blocking
> the reboot process at the boot ROM stage, preventing the
> SD card from being detected.
>
> Adding the "regulator-always-on" property fixes the problem.
>
> Signed-off-by: Xavier Ruppen <xruppen@gmail.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

> ---
>
> Here is what the boot ROM output looks like without this patch:
>
>     [root@alarm ~]# reboot
>     [...]
>     [   24.275860] shutdown[1]: All loop devices detached.
>     [   24.278864] shutdown[1]: Detaching DM devices.
>     [   24.287105] kvm: exiting hardware virtualization
>     [   24.318776] reboot: Restarting system
>     bl31 reboot reason: 0xd
>     bl31 reboot reason: 0x0
>     system cmd  1.
>     G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
>     EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
>     NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
>     SD?:0;SD:400;USB:8;LOOP:3; [...]
>
> Other people can be seen having this problem on the odroid
> forum [1].
thank you for submitting this patch (and not keeping it to yourself)!

> The cause of the problem was found by Martin Blumenstingl
> on #linux-amlogic. We may want to add his Suggested-by tag
> if he agrees.
yes, if you re-send this patch to address Neil's comment then feel
free to add my Reviewed-by as well as a Suggested-by


Martin
Anand Moon July 24, 2019, 5:30 a.m. UTC | #3
Hi All,

On Mon, 22 Jul 2019 at 12:51, Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> On 19/07/2019 21:29, Xavier Ruppen wrote:
> > When powering off the Odroid N2, the tflash_vdd regulator is
> > automatically turned off by the kernel. This is a problem
> > when issuing the "reboot" command while using an SD card.
> > The boot ROM does not power this regulator back on, blocking
> > the reboot process at the boot ROM stage, preventing the
> > SD card from being detected.
> >
> > Adding the "regulator-always-on" property fixes the problem.
> >
> > Signed-off-by: Xavier Ruppen <xruppen@gmail.com>
> > ---
> >
> > Here is what the boot ROM output looks like without this patch:
> >
> >     [root@alarm ~]# reboot
> >     [...]
> >     [   24.275860] shutdown[1]: All loop devices detached.
> >     [   24.278864] shutdown[1]: Detaching DM devices.
> >     [   24.287105] kvm: exiting hardware virtualization
> >     [   24.318776] reboot: Restarting system
> >     bl31 reboot reason: 0xd
> >     bl31 reboot reason: 0x0
> >     system cmd  1.
> >     G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
> >     EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
> >     NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
> >     SD?:0;SD:400;USB:8;LOOP:3; [...]
> >
> > Other people can be seen having this problem on the odroid
> > forum [1].
> >
> > The cause of the problem was found by Martin Blumenstingl
> > on #linux-amlogic. We may want to add his Suggested-by tag
> > if he agrees.
> >
> > [1] https://forum.odroid.com/viewtopic.php?f=176&t=33993
> >
> >  arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> > index 81780ffcc7f0..4e916e1f71f7 100644
> > --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> > +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> > @@ -53,6 +53,7 @@
> >
> >               gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
> >               enable-active-high;
> > +             regulator-always-on;
> >       };
> >
> >       tf_io: gpio-regulator-tf_io {
> >
>
> Surely solves the situation, thanks !
>
> please add a comment on top of "regulator-always-on" to explain why we always enable it,
> note we should always enable it in case of watchdog reboot or other uncontrolled reset,
> this regulator must never be disabled.
>
> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
>
> Thanks,
> Neil
>

I am afraid this did not fix the issue I was also facing with
Archlinux on Odroid N2 using mainline u-boot.
Here is the log of at my end using latest mainline u-boot with Neil's patches.

[0] https://pastebin.com/HNmeY5uF

Well this issue also persist with eMMC not getting detected after reboot
If I try to change the dts to fix the sdcard.

I am checking this should we enable regulator-boot-on option but still no luck.

Best Regards
-Anand
Neil Armstrong July 24, 2019, 6:49 a.m. UTC | #4
Hi Anand,

On 24/07/2019 07:30, Anand Moon wrote:
> Hi All,
> 
> On Mon, 22 Jul 2019 at 12:51, Neil Armstrong <narmstrong@baylibre.com> wrote:
>>
>> On 19/07/2019 21:29, Xavier Ruppen wrote:
>>> When powering off the Odroid N2, the tflash_vdd regulator is
>>> automatically turned off by the kernel. This is a problem
>>> when issuing the "reboot" command while using an SD card.
>>> The boot ROM does not power this regulator back on, blocking
>>> the reboot process at the boot ROM stage, preventing the
>>> SD card from being detected.
>>>
>>> Adding the "regulator-always-on" property fixes the problem.
>>>
>>> Signed-off-by: Xavier Ruppen <xruppen@gmail.com>
>>> ---
>>>
>>> Here is what the boot ROM output looks like without this patch:
>>>
>>>     [root@alarm ~]# reboot
>>>     [...]
>>>     [   24.275860] shutdown[1]: All loop devices detached.
>>>     [   24.278864] shutdown[1]: Detaching DM devices.
>>>     [   24.287105] kvm: exiting hardware virtualization
>>>     [   24.318776] reboot: Restarting system
>>>     bl31 reboot reason: 0xd
>>>     bl31 reboot reason: 0x0
>>>     system cmd  1.
>>>     G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
>>>     EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
>>>     NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
>>>     SD?:0;SD:400;USB:8;LOOP:3; [...]
>>>
>>> Other people can be seen having this problem on the odroid
>>> forum [1].
>>>
>>> The cause of the problem was found by Martin Blumenstingl
>>> on #linux-amlogic. We may want to add his Suggested-by tag
>>> if he agrees.
>>>
>>> [1] https://forum.odroid.com/viewtopic.php?f=176&t=33993
>>>
>>>  arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
>>> index 81780ffcc7f0..4e916e1f71f7 100644
>>> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
>>> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
>>> @@ -53,6 +53,7 @@
>>>
>>>               gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
>>>               enable-active-high;
>>> +             regulator-always-on;
>>>       };
>>>
>>>       tf_io: gpio-regulator-tf_io {
>>>
>>
>> Surely solves the situation, thanks !
>>
>> please add a comment on top of "regulator-always-on" to explain why we always enable it,
>> note we should always enable it in case of watchdog reboot or other uncontrolled reset,
>> this regulator must never be disabled.
>>
>> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
>>
>> Thanks,
>> Neil
>>
> 
> I am afraid this did not fix the issue I was also facing with
> Archlinux on Odroid N2 using mainline u-boot.

Seems to be a separate issue, could we start a separate thread with all your
setup (branch, git SHAa, configs, board setup, ...) for this ?

Thanks,
Neil

> Here is the log of at my end using latest mainline u-boot with Neil's patches.
> 
> [0] https://pastebin.com/HNmeY5uF
> 
> Well this issue also persist with eMMC not getting detected after reboot
> If I try to change the dts to fix the sdcard.
> 
> I am checking this should we enable regulator-boot-on option but still no luck.
> 
> Best Regards
> -Anand
>
Anand Moon July 24, 2019, 9 a.m. UTC | #5
Hi Neil,

On Wed, 24 Jul 2019 at 12:19, Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Hi Anand,
>
> On 24/07/2019 07:30, Anand Moon wrote:
> > Hi All,
> >
> > On Mon, 22 Jul 2019 at 12:51, Neil Armstrong <narmstrong@baylibre.com> wrote:
> >>
> >> On 19/07/2019 21:29, Xavier Ruppen wrote:
> >>> When powering off the Odroid N2, the tflash_vdd regulator is
> >>> automatically turned off by the kernel. This is a problem
> >>> when issuing the "reboot" command while using an SD card.
> >>> The boot ROM does not power this regulator back on, blocking
> >>> the reboot process at the boot ROM stage, preventing the
> >>> SD card from being detected.
> >>>
> >>> Adding the "regulator-always-on" property fixes the problem.
> >>>
> >>> Signed-off-by: Xavier Ruppen <xruppen@gmail.com>
> >>> ---
> >>>
> >>> Here is what the boot ROM output looks like without this patch:
> >>>
> >>>     [root@alarm ~]# reboot
> >>>     [...]
> >>>     [   24.275860] shutdown[1]: All loop devices detached.
> >>>     [   24.278864] shutdown[1]: Detaching DM devices.
> >>>     [   24.287105] kvm: exiting hardware virtualization
> >>>     [   24.318776] reboot: Restarting system
> >>>     bl31 reboot reason: 0xd
> >>>     bl31 reboot reason: 0x0
> >>>     system cmd  1.
> >>>     G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
> >>>     EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
> >>>     NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
> >>>     SD?:0;SD:400;USB:8;LOOP:3; [...]
> >>>
> >>> Other people can be seen having this problem on the odroid
> >>> forum [1].
> >>>
> >>> The cause of the problem was found by Martin Blumenstingl
> >>> on #linux-amlogic. We may want to add his Suggested-by tag
> >>> if he agrees.
> >>>
> >>> [1] https://forum.odroid.com/viewtopic.php?f=176&t=33993
> >>>
> >>>  arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | 1 +
> >>>  1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> >>> index 81780ffcc7f0..4e916e1f71f7 100644
> >>> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> >>> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
> >>> @@ -53,6 +53,7 @@
> >>>
> >>>               gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
> >>>               enable-active-high;
> >>> +             regulator-always-on;
> >>>       };
> >>>
> >>>       tf_io: gpio-regulator-tf_io {
> >>>
> >>
> >> Surely solves the situation, thanks !
> >>
> >> please add a comment on top of "regulator-always-on" to explain why we always enable it,
> >> note we should always enable it in case of watchdog reboot or other uncontrolled reset,
> >> this regulator must never be disabled.
> >>
> >> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
> >>
> >> Thanks,
> >> Neil
> >>
> >
> > I am afraid this did not fix the issue I was also facing with
> > Archlinux on Odroid N2 using mainline u-boot.
>
> Seems to be a separate issue, could we start a separate thread with all your
> setup (branch, git SHAa, configs, board setup, ...) for this ?
>
> Thanks,
> Neil
>

Ok sorry for the noise.

Best Regards
-Anand
Kevin Hilman July 25, 2019, 11:41 p.m. UTC | #6
Xavier Ruppen <xruppen@gmail.com> writes:

> When powering off the Odroid N2, the tflash_vdd regulator is
> automatically turned off by the kernel. This is a problem
> when issuing the "reboot" command while using an SD card.
> The boot ROM does not power this regulator back on, blocking
> the reboot process at the boot ROM stage, preventing the
> SD card from being detected.
>
> Adding the "regulator-always-on" property fixes the problem.
>
> Signed-off-by: Xavier Ruppen <xruppen@gmail.com>

Thanks for the fix and the detailed background description.

Queued as a fix for v5.3.

Note that I also added this to the commit log, for the benefit of anyone
wanting to backport.

Fixes: c35f6dc5c377 ("arm64: dts: meson: Add minimal support for Odroid-N2")

>
> Here is what the boot ROM output looks like without this patch:
>
>     [root@alarm ~]# reboot 
>     [...]
>     [   24.275860] shutdown[1]: All loop devices detached.
>     [   24.278864] shutdown[1]: Detaching DM devices.
>     [   24.287105] kvm: exiting hardware virtualization
>     [   24.318776] reboot: Restarting system
>     bl31 reboot reason: 0xd
>     bl31 reboot reason: 0x0
>     system cmd  1.
>     G12B:BL:6e7c85:7898ac;FEAT:E0F83180:2000;POC:F;RCY:0;
>     EMMC:800;NAND:81;SD?:0;SD:400;USB:8;LOOP:1;EMMC:800;
>     NAND:81;SD?:0;SD:400;USB:8;LOOP:2;EMMC:800;NAND:81;
>     SD?:0;SD:400;USB:8;LOOP:3; [...]
>
> Other people can be seen having this problem on the odroid
> forum [1].
>
> The cause of the problem was found by Martin Blumenstingl
> on #linux-amlogic. We may want to add his Suggested-by tag
> if he agrees.

Added.

Thanks!

Kevin

Patch
diff mbox series

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
index 81780ffcc7f0..4e916e1f71f7 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
@@ -53,6 +53,7 @@ 
 
 		gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-always-on;
 	};
 
 	tf_io: gpio-regulator-tf_io {