App support for SMPS12 dual phase regulator.

Signed-off-by: Keerthy <j-keer...@ti.com>
---
 drivers/regulator/palmas-regulator.c | 18 +++++++++++++++---
 include/linux/mfd/palmas.h           |  2 ++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c 
b/drivers/regulator/palmas-regulator.c
index 31ae5ee..84df468 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -264,6 +264,13 @@
                .sleep_id       = TPS65917_EXTERNAL_REQSTR_ID_SMPS5,
        },
        {
+               .name           = "SMPS12",
+               .sname          = "smps1-in",
+               .vsel_addr      = TPS65917_SMPS1_VOLTAGE,
+               .ctrl_addr      = TPS65917_SMPS1_CTRL,
+               .sleep_id       = TPS65917_EXTERNAL_REQSTR_ID_SMPS12,
+       },
+       {
                .name           = "LDO1",
                .sname          = "ldo1-in",
                .vsel_addr      = TPS65917_LDO1_VOLTAGE,
@@ -367,6 +374,7 @@
        EXTERNAL_REQUESTOR_TPS65917(SMPS3, 1, 2),
        EXTERNAL_REQUESTOR_TPS65917(SMPS4, 1, 3),
        EXTERNAL_REQUESTOR_TPS65917(SMPS5, 1, 4),
+       EXTERNAL_REQUESTOR_TPS65917(SMPS12, 1, 5),
        EXTERNAL_REQUESTOR_TPS65917(LDO1, 2, 0),
        EXTERNAL_REQUESTOR_TPS65917(LDO2, 2, 1),
        EXTERNAL_REQUESTOR_TPS65917(LDO3, 2, 2),
@@ -1305,7 +1313,8 @@ static int tps65917_smps_registration(struct palmas_pmic 
*pmic,
                 */
                desc = &pmic->desc[id];
                desc->n_linear_ranges = 3;
-               if ((id == TPS65917_REG_SMPS2) && pmic->smps12)
+               if ((id == TPS65917_REG_SMPS2 || id == TPS65917_REG_SMPS1) &&
+                   pmic->smps12)
                        continue;
 
                /* Initialise sleep/init values from platform data */
@@ -1427,6 +1436,7 @@ static int tps65917_smps_registration(struct palmas_pmic 
*pmic,
        { .name = "smps3", },
        { .name = "smps4", },
        { .name = "smps5", },
+       { .name = "smps12",},
        { .name = "ldo1", },
        { .name = "ldo2", },
        { .name = "ldo3", },
@@ -1455,7 +1465,7 @@ static int tps65917_smps_registration(struct palmas_pmic 
*pmic,
 
 static struct palmas_pmic_driver_data tps65917_ddata = {
        .smps_start = TPS65917_REG_SMPS1,
-       .smps_end = TPS65917_REG_SMPS5,
+       .smps_end = TPS65917_REG_SMPS12,
        .ldo_begin = TPS65917_REG_LDO1,
        .ldo_end = TPS65917_REG_LDO5,
        .max_reg = TPS65917_NUM_REGS,
@@ -1643,8 +1653,10 @@ static int palmas_regulators_probe(struct 
platform_device *pdev)
        if (ret)
                return ret;
 
-       if (reg & PALMAS_SMPS_CTRL_SMPS12_SMPS123_EN)
+       if (reg & PALMAS_SMPS_CTRL_SMPS12_SMPS123_EN) {
                pmic->smps123 = 1;
+               pmic->smps12 = 1;
+       }
 
        if (reg & PALMAS_SMPS_CTRL_SMPS45_SMPS457_EN)
                pmic->smps457 = 1;
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 5c9a1d4..6dec438 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -250,6 +250,7 @@ enum tps65917_regulators {
        TPS65917_REG_SMPS3,
        TPS65917_REG_SMPS4,
        TPS65917_REG_SMPS5,
+       TPS65917_REG_SMPS12,
        /* LDO regulators */
        TPS65917_REG_LDO1,
        TPS65917_REG_LDO2,
@@ -317,6 +318,7 @@ enum tps65917_external_requestor_id {
        TPS65917_EXTERNAL_REQSTR_ID_SMPS3,
        TPS65917_EXTERNAL_REQSTR_ID_SMPS4,
        TPS65917_EXTERNAL_REQSTR_ID_SMPS5,
+       TPS65917_EXTERNAL_REQSTR_ID_SMPS12,
        TPS65917_EXTERNAL_REQSTR_ID_LDO1,
        TPS65917_EXTERNAL_REQSTR_ID_LDO2,
        TPS65917_EXTERNAL_REQSTR_ID_LDO3,
-- 
1.9.1

Reply via email to