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)
committerJaehoon Chung <jh80.chung@samsung.com>
Fri, 8 Apr 2016 02:17:35 +0000 (11:17 +0900)
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 19b50b9..fa0a7e6 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 93c8d2b..99fb0f1 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 7479af7..e7505de 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;
@@ -583,13 +583,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 2300352..4efb136 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