pmic: max77686: adjust operation mode names to match documentation
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Fri, 7 Aug 2015 10:01:07 +0000 (12:01 +0200)
committerPrzemyslaw Marczak <p.marczak@samsung.com>
Fri, 4 Dec 2015 15:31:07 +0000 (16:31 +0100)
The MAX77686 PMIC's operation modes defined in the header were
quite misleading, because in the defined STANDBY mode, the output
were off, instead of staying in low power mode.

This commit correct this issue, and now the operation modes
are consistent with the PMIC's documentation.

Rename results:
- MAX77686_LDO_MODE_STANDBY     -> MAX77686_LDO_MODE_ON_AUTO_OFF
- MAX77686_LDO_MODE_STANDBY_LPM -> MAX77686_LDO_MODE_ON_AUTO_LPM
- MAX77686_BUCK_MODE_STANDBY    -> MAX77686_BUCK_MODE_ON_AUTO_OFF

For both modes, the output state is controlled by PMIC's PWRREQ
external signal used by SoC. In normal operation mode, when PWRREQ
signal is HIGH, the output is ON, amd for LOW signal, the output
is OFF or LPM (Low Power Mode).

As a result, this commit updates the Trats2 regulator settings.

Change-Id: Ibcb86e0c1ed50530930fbabab88bc374eedc4161
Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
board/samsung/trats2/trats2.c
drivers/power/pmic/pmic_max77686.c
drivers/power/regulator/max77686.c
include/power/max77686_pmic.h

index 97b0c5234ec7c2904b8d231272f2f5e3337bbf57..2f3488116004fd7bbfd52199c9c4a08d1d29210a 100644 (file)
@@ -335,7 +335,7 @@ static int pmic_init_max77686(void)
        max77686_set_ldo_voltage(p, 24, 1800000);       /* LDO24 TSP_VDD_1.8V */
 
        /* BUCK/LDO Output Mode */
-       max77686_set_buck_mode(p, 1, OPMODE_STANDBY);   /* BUCK1 VMIF_1.1V_AP */
+       max77686_set_buck_mode(p, 1, OPMODE_ON);        /* BUCK1 VMIF_1.1V_AP */
        max77686_set_buck_mode(p, 2, OPMODE_ON);        /* BUCK2 VARM_1.0V_AP */
        max77686_set_buck_mode(p, 3, OPMODE_ON);        /* BUCK3 VINT_1.0V_AP */
        max77686_set_buck_mode(p, 4, OPMODE_ON);        /* BUCK4 VG3D_1.0V_AP */
@@ -345,32 +345,32 @@ static int pmic_init_max77686(void)
        max77686_set_buck_mode(p, 8, OPMODE_OFF);       /* VMEM_VDDF_2.85V */
        max77686_set_buck_mode(p, 9, OPMODE_OFF);       /* CAM_ISP_CORE_1.2V*/
 
-       max77686_set_ldo_mode(p, 1, OPMODE_LPM);        /* LDO1 VALIVE_1.0V_AP*/
-       max77686_set_ldo_mode(p, 2, OPMODE_STANDBY);    /* LDO2 VM1M2_1.2V_AP */
-       max77686_set_ldo_mode(p, 3, OPMODE_LPM);        /* LDO3 VCC_1.8V_AP */
-       max77686_set_ldo_mode(p, 4, OPMODE_LPM);        /* LDO4 VCC_2.8V_AP */
-       max77686_set_ldo_mode(p, 5, OPMODE_OFF);        /* LDO5_VCC_1.8V_IO */
-       max77686_set_ldo_mode(p, 6, OPMODE_STANDBY);    /* LDO6 VMPLL_1.0V_AP */
-       max77686_set_ldo_mode(p, 7, OPMODE_STANDBY);    /* LDO7 VPLL_1.0V_AP */
-       max77686_set_ldo_mode(p, 8, OPMODE_LPM);        /* LDO8 VMIPI_1.0V_AP */
-       max77686_set_ldo_mode(p, 9, OPMODE_OFF);        /* CAM_ISP_MIPI_1.2*/
-       max77686_set_ldo_mode(p, 10, OPMODE_LPM);       /* LDO10 VMIPI_1.8V_AP*/
-       max77686_set_ldo_mode(p, 11, OPMODE_STANDBY);   /* LDO11 VABB1_1.8V_AP*/
-       max77686_set_ldo_mode(p, 12, OPMODE_LPM);       /* LDO12 VUOTG_3.0V_AP*/
-       max77686_set_ldo_mode(p, 13, OPMODE_OFF);       /* LDO13 VC2C_1.8V_AP */
-       max77686_set_ldo_mode(p, 14, OPMODE_STANDBY);   /* VABB02_1.8V_AP */
-       max77686_set_ldo_mode(p, 15, OPMODE_STANDBY);   /* LDO15 VHSIC_1.0V_AP*/
-       max77686_set_ldo_mode(p, 16, OPMODE_STANDBY);   /* LDO16 VHSIC_1.8V_AP*/
-       max77686_set_ldo_mode(p, 17, OPMODE_OFF);       /* CAM_SENSOR_CORE_1.2*/
-       max77686_set_ldo_mode(p, 18, OPMODE_OFF);       /* CAM_ISP_SEN_IO_1.8V*/
-       max77686_set_ldo_mode(p, 19, OPMODE_OFF);       /* LDO19 VT_CAM_1.8V */
-       max77686_set_ldo_mode(p, 20, OPMODE_ON);        /* LDO20 VDDQ_PRE_1.8V*/
-       max77686_set_ldo_mode(p, 21, OPMODE_OFF);       /* LDO21 VTF_2.8V */
-       max77686_set_ldo_mode(p, 22, OPMODE_OFF);       /* LDO22 VMEM_VDD_2.8V*/
-       max77686_set_ldo_mode(p, 23, OPMODE_OFF);       /* LDO23 TSP_AVDD_3.3V*/
-       max77686_set_ldo_mode(p, 24, OPMODE_OFF);       /* LDO24 TSP_VDD_1.8V */
-       max77686_set_ldo_mode(p, 25, OPMODE_OFF);       /* LDO25 VCC_3.3V_LCD */
-       max77686_set_ldo_mode(p, 26, OPMODE_OFF);       /*LDO26 VCC_3.0V_MOTOR*/
+       max77686_set_ldo_mode(p, 1, OPMODE_ON_AUTO_LPM);  /* LDO1 VALIVE_1.0V_AP*/
+       max77686_set_ldo_mode(p, 2, OPMODE_ON_AUTO_OFF);  /* LDO2 VM1M2_1.2V_AP */
+       max77686_set_ldo_mode(p, 3, OPMODE_ON_AUTO_LPM);  /* LDO3 VCC_1.8V_AP */
+       max77686_set_ldo_mode(p, 4, OPMODE_ON_AUTO_LPM);  /* LDO4 VCC_2.8V_AP */
+       max77686_set_ldo_mode(p, 5, OPMODE_OFF);          /* LDO5 VCC_1.8V_IO */
+       max77686_set_ldo_mode(p, 6, OPMODE_ON_AUTO_OFF);  /* LDO6 VMPLL_1.0V_AP */
+       max77686_set_ldo_mode(p, 7, OPMODE_ON_AUTO_OFF);  /* LDO7 VPLL_1.0V_AP */
+       max77686_set_ldo_mode(p, 8, OPMODE_ON);           /* LDO8 VMIPI_1.0V_AP */
+       max77686_set_ldo_mode(p, 9, OPMODE_OFF);          /* LDO9 CAM_ISP_MIPI_1.2 */
+       max77686_set_ldo_mode(p, 10, OPMODE_ON);          /* LDO10 VMIPI_1.8V_AP */
+       max77686_set_ldo_mode(p, 11, OPMODE_ON_AUTO_OFF); /* LDO11 VABB1_1.8V_AP */
+       max77686_set_ldo_mode(p, 12, OPMODE_ON_AUTO_LPM); /* LDO12 VUOTG_3.0V_AP */
+       max77686_set_ldo_mode(p, 13, OPMODE_OFF);         /* LDO13 VC2C_1.8V_AP */
+       max77686_set_ldo_mode(p, 14, OPMODE_ON_AUTO_OFF); /* LDO14 VABB02_1.8V_AP */
+       max77686_set_ldo_mode(p, 15, OPMODE_ON_AUTO_OFF); /* LDO15 VHSIC_1.0V_AP */
+       max77686_set_ldo_mode(p, 16, OPMODE_ON_AUTO_OFF); /* LDO16 VHSIC_1.8V_AP */
+       max77686_set_ldo_mode(p, 17, OPMODE_OFF);         /* LDO17 CAM_SENSOR_CORE_1.2 */
+       max77686_set_ldo_mode(p, 18, OPMODE_OFF);         /* LDO18 CAM_ISP_SEN_IO_1.8V */
+       max77686_set_ldo_mode(p, 19, OPMODE_OFF);         /* LDO19 VT_CAM_1.8V */
+       max77686_set_ldo_mode(p, 20, OPMODE_ON);          /* LDO20 VDDQ_PRE_1.8V */
+       max77686_set_ldo_mode(p, 21, OPMODE_OFF);         /* LDO21 VTF_2.8V */
+       max77686_set_ldo_mode(p, 22, OPMODE_OFF);         /* LDO22 VMEM_VDD_2.8V */
+       max77686_set_ldo_mode(p, 23, OPMODE_OFF);         /* LDO23 TSP_AVDD_3.3V */
+       max77686_set_ldo_mode(p, 24, OPMODE_OFF);         /* LDO24 TSP_VDD_1.8V */
+       max77686_set_ldo_mode(p, 25, OPMODE_ON_AUTO_LPM); /* LDO25 VCC_3.3V_LCD */
+       max77686_set_ldo_mode(p, 26, OPMODE_OFF);         /* LDO26 VCC_3.0V_MOTOR*/
 
        return 0;
 }
@@ -404,7 +404,7 @@ void exynos_lcd_power_on(void)
        /* LDO25 VCC_3.1V_LCD */
        pmic_probe(p);
        max77686_set_ldo_voltage(p, 25, 3100000);
-       max77686_set_ldo_mode(p, 25, OPMODE_LPM);
+       max77686_set_ldo_mode(p, 25, OPMODE_ON_AUTO_LPM);
 }
 
 void exynos_reset_lcd(void)
index 93c8d2b155dbbe0ad129bc3d30246b0ebf645549..99fb0f100acf51dd0bced42db2964bd1112d2d09 100644 (file)
@@ -130,7 +130,10 @@ int max77686_set_ldo_mode(struct pmic *p, int ldo, char opmode)
        case OPMODE_OFF:
                mode = MAX77686_LDO_MODE_OFF;
                break;
-       case OPMODE_STANDBY:
+       case OPMODE_LPM:
+               mode = MAX77686_LDO_MODE_LPM;
+               break;
+       case OPMODE_ON_AUTO_OFF:
                switch (ldo) {
                case 2:
                case 6:
@@ -142,14 +145,14 @@ int max77686_set_ldo_mode(struct pmic *p, int ldo, char opmode)
                case 14:
                case 15:
                case 16:
-                       mode = MAX77686_LDO_MODE_STANDBY;
+                       mode = MAX77686_LDO_MODE_ON_AUTO_OFF;
                        break;
                default:
                        mode = 0xff;
                }
                break;
-       case OPMODE_LPM:
-               mode = MAX77686_LDO_MODE_LPM;
+       case OPMODE_ON_AUTO_LPM:
+               mode = MAX77686_LDO_MODE_ON_AUTO_LPM;
                break;
        case OPMODE_ON:
                mode = MAX77686_LDO_MODE_ON;
@@ -205,13 +208,13 @@ int max77686_set_buck_mode(struct pmic *p, int buck, char opmode)
        case OPMODE_OFF:
                mode = MAX77686_BUCK_MODE_OFF << mode_shift;
                break;
-       case OPMODE_STANDBY:
+       case OPMODE_ON_AUTO_OFF:
                switch (buck) {
                case 1:
                case 2:
                case 3:
                case 4:
-                       mode = MAX77686_BUCK_MODE_STANDBY << mode_shift;
+                       mode = MAX77686_BUCK_MODE_ON_AUTO_OFF << mode_shift;
                        break;
                default:
                        mode = 0xff;
index 71678b60d3efdb064e2ed0ff52e0b61c8e6ef209..3f3af49bfbbce1bb042d7aa677ca2b2879b4a292 100644 (file)
@@ -28,29 +28,29 @@ DECLARE_GLOBAL_DATA_PTR;
 static struct dm_regulator_mode max77686_ldo_mode_standby1[] = {
        MODE(OPMODE_OFF, MAX77686_LDO_MODE_OFF, "OFF"),
        MODE(OPMODE_LPM, MAX77686_LDO_MODE_LPM, "LPM"),
-       MODE(OPMODE_STANDBY_LPM, MAX77686_LDO_MODE_STANDBY_LPM, "ON/LPM"),
+       MODE(OPMODE_ON_AUTO_LPM, MAX77686_LDO_MODE_ON_AUTO_LPM, "ON/LPM"),
        MODE(OPMODE_ON, MAX77686_LDO_MODE_ON, "ON"),
 };
 
 /* LDO: 2,6,7,8,10,11,12,14,15,16 */
 static struct dm_regulator_mode max77686_ldo_mode_standby2[] = {
        MODE(OPMODE_OFF, MAX77686_LDO_MODE_OFF, "OFF"),
-       MODE(OPMODE_STANDBY, MAX77686_LDO_MODE_STANDBY, "ON/OFF"),
-       MODE(OPMODE_STANDBY_LPM, MAX77686_LDO_MODE_STANDBY_LPM, "ON/LPM"),
+       MODE(OPMODE_ON_AUTO_OFF, MAX77686_LDO_MODE_ON_AUTO_OFF, "ON/OFF"),
+       MODE(OPMODE_ON_AUTO_LPM, MAX77686_LDO_MODE_ON_AUTO_LPM, "ON/LPM"),
        MODE(OPMODE_ON, MAX77686_LDO_MODE_ON, "ON"),
 };
 
 /* Buck: 1 */
 static struct dm_regulator_mode max77686_buck_mode_standby[] = {
        MODE(OPMODE_OFF, MAX77686_BUCK_MODE_OFF, "OFF"),
-       MODE(OPMODE_STANDBY, MAX77686_BUCK_MODE_STANDBY, "ON/OFF"),
+       MODE(OPMODE_ON_AUTO_OFF, MAX77686_BUCK_MODE_ON_AUTO_OFF, "ON/OFF"),
        MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
 };
 
 /* Buck: 2,3,4 */
 static struct dm_regulator_mode max77686_buck_mode_lpm[] = {
        MODE(OPMODE_OFF, MAX77686_BUCK_MODE_OFF, "OFF"),
-       MODE(OPMODE_STANDBY, MAX77686_BUCK_MODE_STANDBY, "ON/OFF"),
+       MODE(OPMODE_ON_AUTO_OFF, MAX77686_BUCK_MODE_ON_AUTO_OFF, "ON/OFF"),
        MODE(OPMODE_LPM, MAX77686_BUCK_MODE_LPM, "LPM"),
        MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
 };
@@ -201,7 +201,7 @@ static int max77686_ldo_hex2mode(int ldo, int hex)
        switch (hex) {
        case MAX77686_LDO_MODE_OFF:
                return OPMODE_OFF;
-       case MAX77686_LDO_MODE_LPM: /* == MAX77686_LDO_MODE_STANDBY: */
+       case MAX77686_LDO_MODE_LPM: /* == MAX77686_LDO_MODE_ON_AUTO_OFF: */
                /* The same mode values but different meaning for each ldo */
                switch (ldo) {
                case 2:
@@ -214,12 +214,12 @@ static int max77686_ldo_hex2mode(int ldo, int hex)
                case 14:
                case 15:
                case 16:
-                       return OPMODE_STANDBY;
+                       return OPMODE_ON_AUTO_OFF;
                default:
                        return OPMODE_LPM;
                }
-       case MAX77686_LDO_MODE_STANDBY_LPM:
-               return OPMODE_STANDBY_LPM;
+       case MAX77686_LDO_MODE_ON_AUTO_LPM:
+               return OPMODE_ON_AUTO_LPM;
        case MAX77686_LDO_MODE_ON:
                return OPMODE_ON;
        default:
@@ -237,13 +237,13 @@ static int max77686_buck_hex2mode(int buck, int hex)
                return OPMODE_OFF;
        case MAX77686_BUCK_MODE_ON:
                return OPMODE_ON;
-       case MAX77686_BUCK_MODE_STANDBY:
+       case MAX77686_BUCK_MODE_ON_AUTO_OFF:
                switch (buck) {
                case 1:
                case 2:
                case 3:
                case 4:
-                       return OPMODE_STANDBY;
+                       return OPMODE_ON_AUTO_OFF;
                default:
                        return -EINVAL;
                }
@@ -464,7 +464,7 @@ static int max77686_ldo_mode(struct udevice *dev, int op, int *opmode)
                        mode = MAX77686_LDO_MODE_LPM;
                }
                break;
-       case OPMODE_STANDBY:
+       case OPMODE_ON_AUTO_OFF:
                switch (ldo) {
                case 2:
                case 6:
@@ -476,14 +476,14 @@ static int max77686_ldo_mode(struct udevice *dev, int op, int *opmode)
                case 14:
                case 15:
                case 16:
-                       mode = MAX77686_LDO_MODE_STANDBY;
+                       mode = MAX77686_LDO_MODE_ON_AUTO_OFF;
                        break;
                default:
                        return -EINVAL;
                }
                break;
-       case OPMODE_STANDBY_LPM:
-               mode = MAX77686_LDO_MODE_STANDBY_LPM;
+       case OPMODE_ON_AUTO_LPM:
+               mode = MAX77686_LDO_MODE_ON_AUTO_LPM;
                break;
        case OPMODE_ON:
                mode = MAX77686_LDO_MODE_ON;
@@ -589,13 +589,13 @@ static int max77686_buck_mode(struct udevice *dev, int op, int *opmode)
        case OPMODE_OFF:
                mode = MAX77686_BUCK_MODE_OFF;
                break;
-       case OPMODE_STANDBY:
+       case OPMODE_ON_AUTO_OFF:
                switch (buck) {
                case 1:
                case 2:
                case 3:
                case 4:
-                       mode = MAX77686_BUCK_MODE_STANDBY << mode_shift;
+                       mode = MAX77686_BUCK_MODE_ON_AUTO_OFF << mode_shift;
                        break;
                default:
                        mode = 0xff;
index 230035249623ea34bb12b571f8544231350e5370..4efb1364f6240090245c5d31566a785eb9aa268c 100644 (file)
@@ -150,9 +150,9 @@ enum {
 enum {
        OPMODE_OFF = 0,
        OPMODE_LPM,
-       OPMODE_STANDBY,
-       OPMODE_STANDBY_LPM,
        OPMODE_ON,
+       OPMODE_ON_AUTO_OFF,
+       OPMODE_ON_AUTO_LPM,
 };
 
 #ifdef CONFIG_POWER
@@ -165,11 +165,11 @@ int max77686_set_buck_mode(struct pmic *p, int buck, char opmode);
 #define MAX77686_LDO_VOLT_MAX_HEX      0x3f
 #define MAX77686_LDO_VOLT_MASK         0x3f
 #define MAX77686_LDO_MODE_MASK         0xc0
-#define MAX77686_LDO_MODE_OFF          (0x00 << 0x06)
-#define MAX77686_LDO_MODE_LPM          (0x01 << 0x06)
-#define MAX77686_LDO_MODE_STANDBY      (0x01 << 0x06)
-#define MAX77686_LDO_MODE_STANDBY_LPM  (0x02 << 0x06)
-#define MAX77686_LDO_MODE_ON           (0x03 << 0x06)
+#define MAX77686_LDO_MODE_OFF          (0x0 << 6)
+#define MAX77686_LDO_MODE_LPM          (0x1 << 6) /* ldo1 compatible */
+#define MAX77686_LDO_MODE_ON_AUTO_OFF  (0x1 << 6) /* ldo2 compatible */
+#define MAX77686_LDO_MODE_ON_AUTO_LPM  (0x2 << 6)
+#define MAX77686_LDO_MODE_ON           (0x3 << 6)
 #define MAX77686_BUCK234_VOLT_MAX_HEX  0xff
 #define MAX77686_BUCK234_VOLT_MASK     0xff
 #define MAX77686_BUCK_VOLT_MAX_HEX     0x3f
@@ -178,7 +178,7 @@ int max77686_set_buck_mode(struct pmic *p, int buck, char opmode);
 #define MAX77686_BUCK_MODE_SHIFT_1     0x00
 #define MAX77686_BUCK_MODE_SHIFT_2     0x04
 #define MAX77686_BUCK_MODE_OFF         0x00
-#define MAX77686_BUCK_MODE_STANDBY     0x01
+#define MAX77686_BUCK_MODE_ON_AUTO_OFF 0x01
 #define MAX77686_BUCK_MODE_LPM         0x02
 #define MAX77686_BUCK_MODE_ON          0x03