Re: [PATCH 1/2] ARM: dts: imx8m: increase off-on delay on the SD Vcc regulator

2020-12-02 Thread Peter Robinson
On Wed, Dec 2, 2020 at 10:08 AM ZHIZHIKIN Andrey
 wrote:
>
> Hello Peter,
>
> > -Original Message-
> > From: Peter Robinson 
> > Sent: Wednesday, December 2, 2020 9:45 AM
> > To: ZHIZHIKIN Andrey 
> > Cc: u-boot@lists.denx.de; sba...@denx.de
> > Subject: Re: [PATCH 1/2] ARM: dts: imx8m: increase off-on delay on the SD 
> > Vcc
> > regulator
> >
> >
> > On Tue, Dec 1, 2020 at 1:31 PM Andrey Zhizhikin  > geosystems.com> wrote:
> > >
> > > Some SD Card controller and power circuitry has increased capacitance,
> > > which keeps the internal logic remains powered after regulator is
> > > switch off. This is generally the case when card is switched to SD104
> > > mode, where a power cycle should be performed. In case if the card
> > > internal logic remains powered, it causes a subsequent failure of mode
> > > transition, effectively leading to failed enumeration.
> > >
> > > Introduce a delay of 20 msec in order to provide a possibility for
> > > internal card circuitry to drain voltages and perform a power cycle
> > > correctly.
> > >
> > > Similar fix is done in commit c49d0ac38a76 ("ARM: dts: rmobile:
> > > Increase off-on delay on the SD Vcc regulator") targeted Renesas SOCs.
> > >
> > > Signed-off-by: Andrey Zhizhikin
> > > 
> > > Cc: Stefano Babic 
> > > ---
> > >  arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi | 4 
> > >  arch/arm/dts/imx8mm-evk-u-boot.dtsi| 4 
> > >  arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi   | 4 
> > >  arch/arm/dts/imx8mp-evk-u-boot.dtsi| 4 
> > >  arch/arm/dts/imx8mq-evk.dts| 1 +
> > >  arch/arm/dts/imx8mq-phanbell.dts   | 1 +
> > >  6 files changed, 18 insertions(+)
> > >
> > > diff --git a/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > > b/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > > index fc1aebb2fe..6d80a529ae 100644
> > > --- a/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > > @@ -37,6 +37,10 @@
> > > /delete-property/ assigned-clock-rates;  };
> > >
> > > +®_usdhc2_vmmc {
> > > +   u-boot,off-on-delay-us = <2>; };
> > > +
> > >  &fec1 {
> > > phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;  }; diff --git
> > > a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > index b5c12105a9..9f77d3c6ff 100644
> > > --- a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > @@ -46,6 +46,10 @@
> > > u-boot,dm-spl;
> > >  };
> > >
> > > +®_usdhc2_vmmc {
> > > +   u-boot,off-on-delay-us = <2>; };
> > > +
> > >  &pinctrl_reg_usdhc2_vmmc {
> > > u-boot,dm-spl;
> > >  };
> > > diff --git a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > index 4419679d4c..98b0b9891b 100644
> > > --- a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > @@ -47,6 +47,10 @@
> > > u-boot,dm-spl;
> > >  };
> > >
> > > +®_usdhc2_vmmc {
> > > +   u-boot,off-on-delay-us = <2>; };
> > > +
> > >  &pinctrl_uart2 {
> > > u-boot,dm-spl;
> > >  };
> > > diff --git a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > index 24a93ac2d6..2452e9175c 100644
> > > --- a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > @@ -48,6 +48,10 @@
> > > u-boot,dm-spl;
> > >  };
> > >
> > > +®_usdhc2_vmmc {
> > > +   u-boot,off-on-delay-us = <2>; };
> > > +
> > >  ®_usdhc2_vmmc {
> > > u-boot,dm-spl;
> > >  };
> > > diff --git a/arch/arm/dts/imx8mq-evk.dts b/arch/arm/dts/imx8mq-evk.dts
> > > index 55294ba9c8..9663683f69 100644
> > > --- a/arch/arm/dts/imx8mq-evk.dts
> > > +++ b/arch/arm/dts/imx8mq-evk.dts
> > > @@ -39,6 +39,7 @@
> > > regulator-max-microvolt = <330>;
> > > gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> > > enable-active-high;
> > > +   u-b

RE: [PATCH 1/2] ARM: dts: imx8m: increase off-on delay on the SD Vcc regulator

2020-12-02 Thread ZHIZHIKIN Andrey
Hello Peter,

> -Original Message-
> From: Peter Robinson 
> Sent: Wednesday, December 2, 2020 9:45 AM
> To: ZHIZHIKIN Andrey 
> Cc: u-boot@lists.denx.de; sba...@denx.de
> Subject: Re: [PATCH 1/2] ARM: dts: imx8m: increase off-on delay on the SD Vcc
> regulator
> 
> 
> On Tue, Dec 1, 2020 at 1:31 PM Andrey Zhizhikin  geosystems.com> wrote:
> >
> > Some SD Card controller and power circuitry has increased capacitance,
> > which keeps the internal logic remains powered after regulator is
> > switch off. This is generally the case when card is switched to SD104
> > mode, where a power cycle should be performed. In case if the card
> > internal logic remains powered, it causes a subsequent failure of mode
> > transition, effectively leading to failed enumeration.
> >
> > Introduce a delay of 20 msec in order to provide a possibility for
> > internal card circuitry to drain voltages and perform a power cycle
> > correctly.
> >
> > Similar fix is done in commit c49d0ac38a76 ("ARM: dts: rmobile:
> > Increase off-on delay on the SD Vcc regulator") targeted Renesas SOCs.
> >
> > Signed-off-by: Andrey Zhizhikin
> > 
> > Cc: Stefano Babic 
> > ---
> >  arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi | 4 
> >  arch/arm/dts/imx8mm-evk-u-boot.dtsi| 4 
> >  arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi   | 4 
> >  arch/arm/dts/imx8mp-evk-u-boot.dtsi| 4 
> >  arch/arm/dts/imx8mq-evk.dts| 1 +
> >  arch/arm/dts/imx8mq-phanbell.dts   | 1 +
> >  6 files changed, 18 insertions(+)
> >
> > diff --git a/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > b/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > index fc1aebb2fe..6d80a529ae 100644
> > --- a/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> > @@ -37,6 +37,10 @@
> > /delete-property/ assigned-clock-rates;  };
> >
> > +®_usdhc2_vmmc {
> > +   u-boot,off-on-delay-us = <2>; };
> > +
> >  &fec1 {
> > phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;  }; diff --git
> > a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > index b5c12105a9..9f77d3c6ff 100644
> > --- a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > @@ -46,6 +46,10 @@
> > u-boot,dm-spl;
> >  };
> >
> > +®_usdhc2_vmmc {
> > +   u-boot,off-on-delay-us = <2>; };
> > +
> >  &pinctrl_reg_usdhc2_vmmc {
> > u-boot,dm-spl;
> >  };
> > diff --git a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > index 4419679d4c..98b0b9891b 100644
> > --- a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > @@ -47,6 +47,10 @@
> > u-boot,dm-spl;
> >  };
> >
> > +®_usdhc2_vmmc {
> > +   u-boot,off-on-delay-us = <2>; };
> > +
> >  &pinctrl_uart2 {
> > u-boot,dm-spl;
> >  };
> > diff --git a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > index 24a93ac2d6..2452e9175c 100644
> > --- a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > +++ b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > @@ -48,6 +48,10 @@
> > u-boot,dm-spl;
> >  };
> >
> > +®_usdhc2_vmmc {
> > +   u-boot,off-on-delay-us = <2>; };
> > +
> >  ®_usdhc2_vmmc {
> > u-boot,dm-spl;
> >  };
> > diff --git a/arch/arm/dts/imx8mq-evk.dts b/arch/arm/dts/imx8mq-evk.dts
> > index 55294ba9c8..9663683f69 100644
> > --- a/arch/arm/dts/imx8mq-evk.dts
> > +++ b/arch/arm/dts/imx8mq-evk.dts
> > @@ -39,6 +39,7 @@
> > regulator-max-microvolt = <330>;
> > gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> > enable-active-high;
> > +   u-boot,off-on-delay-us = <2>;
> 
> These should be going in the -u-boot.dtsi like the devices above. Why the two
> different ways of doing it?

imx8mq-evk-u-boot.dtsi is not provided in the source tree. Do you suggest I
should create one and move those bindings there?

> Also if all devices based on the imx8m[mnpq ] need
> this change it might be better putting it in the imx8m[mnpq]-u-boot.dtsi so 
> any
> new boards that get added, like the recently posted imx8mm IoT Gate
> automatically benefit from this fix.

This might depend on the layout of the particular board. Som

Re: [PATCH 1/2] ARM: dts: imx8m: increase off-on delay on the SD Vcc regulator

2020-12-02 Thread Peter Robinson
On Tue, Dec 1, 2020 at 1:31 PM Andrey Zhizhikin
 wrote:
>
> Some SD Card controller and power circuitry has increased capacitance,
> which keeps the internal logic remains powered after regulator is switch
> off. This is generally the case when card is switched to SD104 mode,
> where a power cycle should be performed. In case if the card internal
> logic remains powered, it causes a subsequent failure of mode
> transition, effectively leading to failed enumeration.
>
> Introduce a delay of 20 msec in order to provide a possibility for
> internal card circuitry to drain voltages and perform a power cycle
> correctly.
>
> Similar fix is done in commit c49d0ac38a76 ("ARM: dts: rmobile: Increase
> off-on delay on the SD Vcc regulator") targeted Renesas SOCs.
>
> Signed-off-by: Andrey Zhizhikin 
> Cc: Stefano Babic 
> ---
>  arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi | 4 
>  arch/arm/dts/imx8mm-evk-u-boot.dtsi| 4 
>  arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi   | 4 
>  arch/arm/dts/imx8mp-evk-u-boot.dtsi| 4 
>  arch/arm/dts/imx8mq-evk.dts| 1 +
>  arch/arm/dts/imx8mq-phanbell.dts   | 1 +
>  6 files changed, 18 insertions(+)
>
> diff --git a/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi 
> b/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> index fc1aebb2fe..6d80a529ae 100644
> --- a/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mm-beacon-kit-u-boot.dtsi
> @@ -37,6 +37,10 @@
> /delete-property/ assigned-clock-rates;
>  };
>
> +®_usdhc2_vmmc {
> +   u-boot,off-on-delay-us = <2>;
> +};
> +
>  &fec1 {
> phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
>  };
> diff --git a/arch/arm/dts/imx8mm-evk-u-boot.dtsi 
> b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> index b5c12105a9..9f77d3c6ff 100644
> --- a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> @@ -46,6 +46,10 @@
> u-boot,dm-spl;
>  };
>
> +®_usdhc2_vmmc {
> +   u-boot,off-on-delay-us = <2>;
> +};
> +
>  &pinctrl_reg_usdhc2_vmmc {
> u-boot,dm-spl;
>  };
> diff --git a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi 
> b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> index 4419679d4c..98b0b9891b 100644
> --- a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> @@ -47,6 +47,10 @@
> u-boot,dm-spl;
>  };
>
> +®_usdhc2_vmmc {
> +   u-boot,off-on-delay-us = <2>;
> +};
> +
>  &pinctrl_uart2 {
> u-boot,dm-spl;
>  };
> diff --git a/arch/arm/dts/imx8mp-evk-u-boot.dtsi 
> b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> index 24a93ac2d6..2452e9175c 100644
> --- a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> @@ -48,6 +48,10 @@
> u-boot,dm-spl;
>  };
>
> +®_usdhc2_vmmc {
> +   u-boot,off-on-delay-us = <2>;
> +};
> +
>  ®_usdhc2_vmmc {
> u-boot,dm-spl;
>  };
> diff --git a/arch/arm/dts/imx8mq-evk.dts b/arch/arm/dts/imx8mq-evk.dts
> index 55294ba9c8..9663683f69 100644
> --- a/arch/arm/dts/imx8mq-evk.dts
> +++ b/arch/arm/dts/imx8mq-evk.dts
> @@ -39,6 +39,7 @@
> regulator-max-microvolt = <330>;
> gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> enable-active-high;
> +   u-boot,off-on-delay-us = <2>;

These should be going in the -u-boot.dtsi like the devices above. Why
the two different ways of doing it? Also if all devices based on the
imx8m[mnpq
] need this change it might be better putting it in the
imx8m[mnpq]-u-boot.dtsi so any new boards that get added, like the
recently posted imx8mm IoT Gate automatically benefit from this fix.

> };
>
> buck2_reg: regulator-buck2 {
> diff --git a/arch/arm/dts/imx8mq-phanbell.dts 
> b/arch/arm/dts/imx8mq-phanbell.dts
> index 4892ad5ee1..bc6b2638ee 100644
> --- a/arch/arm/dts/imx8mq-phanbell.dts
> +++ b/arch/arm/dts/imx8mq-phanbell.dts
> @@ -34,6 +34,7 @@
> regulator-max-microvolt = <330>;
> gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> enable-active-high;
> +   u-boot,off-on-delay-us = <2>;
> };
>  };
>
> --
> 2.17.1
>