ARM: dts: exynos: Add regulator suspend configuration to Arndale Octa board
authorKrzysztof Kozlowski <krzk@kernel.org>
Fri, 21 Jun 2019 15:44:50 +0000 (17:44 +0200)
committerKrzysztof Kozlowski <krzk@kernel.org>
Mon, 24 Jun 2019 17:07:58 +0000 (19:07 +0200)
Add the PMIC regulator suspend configuration to Arndale Octa board to
reduce power usage during suspend and keep necessary regulators on.  The
configuration is based on vendor (Insignal) reference kernel and the
board datasheet.  Comparing to vendor kernel, additionally turn off in
suspend all regulators controlled by external pin (LDO3, LDO7, LDO18 and
buck10).

This is purely for hardware description because board does not support
Suspend to RAM and the S2MPS11 driver does not support
"regulator-on-in-suspend" property.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/boot/dts/exynos5420-arndale-octa.dts

index dc9162a174754147270d4a70363f3f1de02cdc64..3126a6c3f8427fdc4fb6209894457ddafd20cfaa 100644 (file)
                                 * (Linaro for Arndale Octa, v2012.07).
                                 */
                                regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        ldo4_reg: LDO4 {
                                regulator-name = "PVDD_ANAIP_1V8";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        ldo8_reg: LDO8 {
                                regulator-name = "PVDD_APIO_MMCOFF_2V8";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <2800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        ldo14_reg: LDO14 {
                                regulator-name = "PVDD_PERI_2V8";
                                regulator-min-microvolt = <3300000>;
                                regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
                        };
 
                        ldo16_reg: LDO16 {
                                regulator-name = "PVDD_PERI_3V3";
                                regulator-min-microvolt = <2200000>;
                                regulator-max-microvolt = <2200000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
                        };
 
                        ldo17_reg: LDO17 {
                                regulator-name = "PVDD_EMMC_1V8";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
+                               /*
+                                * Must stay in "off" mode during shutdown for
+                                * proper eMMC reset.  The "off" mode is in
+                                * fact controlled by LDO18EN.  The eMMC does
+                                * not have reset pin connected so the reset
+                                * will be triggered by falling edge of
+                                * LDO18EN.
+                                */
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        ldo19_reg: LDO19 {
                                regulator-name = "PVDD_TFLASH_2V8";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        ldo20_reg: LDO20 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1100000>;
                                regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
                        };
 
                        ldo24_reg: LDO24 {
                                regulator-name = "PVDD_CAM1_AVDD_2V8";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
                        };
 
                        ldo25_reg: LDO25 {
                                regulator-name = "PVDD_G3DS_1V0";
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1100000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
                        };
 
                        ldo28_reg: LDO28 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1300000>;
                                regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        buck2_reg: BUCK2 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1500000>;
                                regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        buck3_reg: BUCK3 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1400000>;
                                regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        buck4_reg: BUCK4 {
                                regulator-name = "PVDD_G3D_1V0";
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1400000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        buck5_reg: BUCK5 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1500000>;
                                regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
 
                        buck7_reg: BUCK7 {
                                regulator-name = "PVDD_EMMCF_2V8";
                                regulator-min-microvolt = <2800000>;
                                regulator-max-microvolt = <2800000>;
+                               /*
+                                * Must stay in "off" mode during shutdown for
+                                * proper eMMC reset.  The "off" mode is in
+                                * fact controlled by BUCK10EN.  The eMMC does
+                                * not have reset pin connected so the reset
+                                * will be triggered by falling edge of
+                                * BUCK10EN.
+                                */
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
                        };
                };
        };