ARM: dts: exynos: Fix max voltage for BUCK8 regulator on Odroid XU3/4

Message ID 20190220111922.6763-1-m.szyprowski@samsung.com
State New
Headers show
Series
  • ARM: dts: exynos: Fix max voltage for BUCK8 regulator on Odroid XU3/4
Related show

Commit Message

Marek Szyprowski Feb. 20, 2019, 11:19 a.m.
The maximum voltage value for BUCK8 regulator on Odroid XU3/4 boards is
set too low. Increase it to the 2000mV as specified on the board schematic.
So far the board worked fine, because of the bug in the PMIC driver, which
used incorrect step value for that regulator. It interpreted the voltage
value set by the bootloader as 1500mV and kept it unchanged. The regulator
driver has been however fixed recently in the commit 56b5d4ea778c
("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35"), what results
in reading the proper BUCK8 value and forcing it to 1500mV on boot. This
is not enough for proper board operation and results in eMMC errors during
heavy IO traffic. Increasing maximum voltage value for BUCK8 restores
original driver behavior and fixes eMMC issues.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

---
 arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.17.1

Comments

Krzysztof Kozlowski Feb. 20, 2019, 11:24 a.m. | #1
On Wed, 20 Feb 2019 at 12:19, Marek Szyprowski <m.szyprowski@samsung.com> wrote:
>

> The maximum voltage value for BUCK8 regulator on Odroid XU3/4 boards is

> set too low. Increase it to the 2000mV as specified on the board schematic.

> So far the board worked fine, because of the bug in the PMIC driver, which

> used incorrect step value for that regulator. It interpreted the voltage

> value set by the bootloader as 1500mV and kept it unchanged. The regulator


... as 1225mV (below the maximum voltage constraints) and kept it unchanged...

And we need cc-stable because previous value was clearly wrong (max
1.5 V while regulator is named 1.8 V) and the s2mps11 commit might end
up in stable kernels:

Fixes: 86a2d2ac5e5d ("ARM: dts: Add dts file for Odroid XU3 board")
Cc: <stable@vger.kernel.org>

I can add these during applying.

BR,
Krzysztof

> driver has been however fixed recently in the commit 56b5d4ea778c

> ("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35"), what results

> in reading the proper BUCK8 value and forcing it to 1500mV on boot. This

> is not enough for proper board operation and results in eMMC errors during

> heavy IO traffic. Increasing maximum voltage value for BUCK8 restores

> original driver behavior and fixes eMMC issues.

>

> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

> ---

>  arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi

> index bf09eab90f8a..6bf3661293ee 100644

> --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi

> +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi

> @@ -468,7 +468,7 @@

>                         buck8_reg: BUCK8 {

>                                 regulator-name = "vdd_1.8v_ldo";

>                                 regulator-min-microvolt = <800000>;

> -                               regulator-max-microvolt = <1500000>;

> +                               regulator-max-microvolt = <2000000>;

>                                 regulator-always-on;

>                                 regulator-boot-on;

>                         };

> --

> 2.17.1

>
Krzysztof Kozlowski Feb. 20, 2019, 11:27 a.m. | #2
On Wed, 20 Feb 2019 at 12:24, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>

> On Wed, 20 Feb 2019 at 12:19, Marek Szyprowski <m.szyprowski@samsung.com> wrote:

> >

> > The maximum voltage value for BUCK8 regulator on Odroid XU3/4 boards is

> > set too low. Increase it to the 2000mV as specified on the board schematic.

> > So far the board worked fine, because of the bug in the PMIC driver, which

> > used incorrect step value for that regulator. It interpreted the voltage

> > value set by the bootloader as 1500mV and kept it unchanged. The regulator

>

> ... as 1225mV (below the maximum voltage constraints) and kept it unchanged...

>

> And we need cc-stable because previous value was clearly wrong (max

> 1.5 V while regulator is named 1.8 V) and the s2mps11 commit might end

> up in stable kernels:

>

> Fixes: 86a2d2ac5e5d ("ARM: dts: Add dts file for Odroid XU3 board")


And maybe also:
Fixes: 56b5d4ea778c ("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35")
to clearly indicate that they must go together? It is not clearly fix
for this commit but I am not aware of any other syntax.

BR,
Krzysztof

> Cc: <stable@vger.kernel.org>

>

> I can add these during applying.

>

> BR,

> Krzysztof

>

> > driver has been however fixed recently in the commit 56b5d4ea778c

> > ("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35"), what results

> > in reading the proper BUCK8 value and forcing it to 1500mV on boot. This

> > is not enough for proper board operation and results in eMMC errors during

> > heavy IO traffic. Increasing maximum voltage value for BUCK8 restores

> > original driver behavior and fixes eMMC issues.

> >

> > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

> > ---

> >  arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 2 +-

> >  1 file changed, 1 insertion(+), 1 deletion(-)

> >

> > diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi

> > index bf09eab90f8a..6bf3661293ee 100644

> > --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi

> > +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi

> > @@ -468,7 +468,7 @@

> >                         buck8_reg: BUCK8 {

> >                                 regulator-name = "vdd_1.8v_ldo";

> >                                 regulator-min-microvolt = <800000>;

> > -                               regulator-max-microvolt = <1500000>;

> > +                               regulator-max-microvolt = <2000000>;

> >                                 regulator-always-on;

> >                                 regulator-boot-on;

> >                         };

> > --

> > 2.17.1

> >
Anand Moon Feb. 21, 2019, 10:24 a.m. | #3
Hi Marek,

On Wed, 20 Feb 2019 at 16:49, Marek Szyprowski <m.szyprowski@samsung.com> wrote:
>

> The maximum voltage value for BUCK8 regulator on Odroid XU3/4 boards is

> set too low. Increase it to the 2000mV as specified on the board schematic.

> So far the board worked fine, because of the bug in the PMIC driver, which

> used incorrect step value for that regulator. It interpreted the voltage

> value set by the bootloader as 1500mV and kept it unchanged. The regulator

> driver has been however fixed recently in the commit 56b5d4ea778c

> ("regulator: s2mps11: Fix steps for buck7, buck8 and LDO35"), what results

> in reading the proper BUCK8 value and forcing it to 1500mV on boot. This

> is not enough for proper board operation and results in eMMC errors during

> heavy IO traffic. Increasing maximum voltage value for BUCK8 restores

> original driver behavior and fixes eMMC issues.

>


Their is a pincrtl setting to configure Read Strobe (RDQS) added to
support higher data rate

RDSQ --------XMMC0RDQS/GPC0_7/EXT_INT9_7

will setting this bit help resolve the eMMC error
Also we could increase the following

samsung,read-strobe-delay = <150>;

To increase stability of the eMMC.

Best Regards
-Anand

Patch

diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
index bf09eab90f8a..6bf3661293ee 100644
--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -468,7 +468,7 @@ 
 			buck8_reg: BUCK8 {
 				regulator-name = "vdd_1.8v_ldo";
 				regulator-min-microvolt = <800000>;
-				regulator-max-microvolt = <1500000>;
+				regulator-max-microvolt = <2000000>;
 				regulator-always-on;
 				regulator-boot-on;
 			};