Re: [PATCH 1/2] ARM: dts: imx8m: increase off-on delay on the SD Vcc regulator
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
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
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 >