Commit be035303 authored by Keerthy's avatar Keerthy Committed by Mark Brown

regulator: tps65917: Add support for SMPS12

App support for SMPS12 dual phase regulator.
Signed-off-by: default avatarKeerthy <j-keerthy@ti.com>
Acked-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 2ea659a9
...@@ -263,6 +263,13 @@ static struct palmas_regs_info tps65917_regs_info[] = { ...@@ -263,6 +263,13 @@ static struct palmas_regs_info tps65917_regs_info[] = {
.ctrl_addr = TPS65917_SMPS5_CTRL, .ctrl_addr = TPS65917_SMPS5_CTRL,
.sleep_id = TPS65917_EXTERNAL_REQSTR_ID_SMPS5, .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", .name = "LDO1",
.sname = "ldo1-in", .sname = "ldo1-in",
...@@ -367,6 +374,7 @@ static struct palmas_sleep_requestor_info tps65917_sleep_req_info[] = { ...@@ -367,6 +374,7 @@ static struct palmas_sleep_requestor_info tps65917_sleep_req_info[] = {
EXTERNAL_REQUESTOR_TPS65917(SMPS3, 1, 2), EXTERNAL_REQUESTOR_TPS65917(SMPS3, 1, 2),
EXTERNAL_REQUESTOR_TPS65917(SMPS4, 1, 3), EXTERNAL_REQUESTOR_TPS65917(SMPS4, 1, 3),
EXTERNAL_REQUESTOR_TPS65917(SMPS5, 1, 4), EXTERNAL_REQUESTOR_TPS65917(SMPS5, 1, 4),
EXTERNAL_REQUESTOR_TPS65917(SMPS12, 1, 5),
EXTERNAL_REQUESTOR_TPS65917(LDO1, 2, 0), EXTERNAL_REQUESTOR_TPS65917(LDO1, 2, 0),
EXTERNAL_REQUESTOR_TPS65917(LDO2, 2, 1), EXTERNAL_REQUESTOR_TPS65917(LDO2, 2, 1),
EXTERNAL_REQUESTOR_TPS65917(LDO3, 2, 2), EXTERNAL_REQUESTOR_TPS65917(LDO3, 2, 2),
...@@ -1305,7 +1313,8 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic, ...@@ -1305,7 +1313,8 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
*/ */
desc = &pmic->desc[id]; desc = &pmic->desc[id];
desc->n_linear_ranges = 3; desc->n_linear_ranges = 3;
if ((id == TPS65917_REG_SMPS2) && pmic->smps12) if ((id == TPS65917_REG_SMPS2 || id == TPS65917_REG_SMPS1) &&
pmic->smps12)
continue; continue;
/* Initialise sleep/init values from platform data */ /* Initialise sleep/init values from platform data */
...@@ -1427,6 +1436,7 @@ static struct of_regulator_match tps65917_matches[] = { ...@@ -1427,6 +1436,7 @@ static struct of_regulator_match tps65917_matches[] = {
{ .name = "smps3", }, { .name = "smps3", },
{ .name = "smps4", }, { .name = "smps4", },
{ .name = "smps5", }, { .name = "smps5", },
{ .name = "smps12",},
{ .name = "ldo1", }, { .name = "ldo1", },
{ .name = "ldo2", }, { .name = "ldo2", },
{ .name = "ldo3", }, { .name = "ldo3", },
...@@ -1455,7 +1465,7 @@ static struct palmas_pmic_driver_data palmas_ddata = { ...@@ -1455,7 +1465,7 @@ static struct palmas_pmic_driver_data palmas_ddata = {
static struct palmas_pmic_driver_data tps65917_ddata = { static struct palmas_pmic_driver_data tps65917_ddata = {
.smps_start = TPS65917_REG_SMPS1, .smps_start = TPS65917_REG_SMPS1,
.smps_end = TPS65917_REG_SMPS5, .smps_end = TPS65917_REG_SMPS12,
.ldo_begin = TPS65917_REG_LDO1, .ldo_begin = TPS65917_REG_LDO1,
.ldo_end = TPS65917_REG_LDO5, .ldo_end = TPS65917_REG_LDO5,
.max_reg = TPS65917_NUM_REGS, .max_reg = TPS65917_NUM_REGS,
...@@ -1643,8 +1653,10 @@ static int palmas_regulators_probe(struct platform_device *pdev) ...@@ -1643,8 +1653,10 @@ static int palmas_regulators_probe(struct platform_device *pdev)
if (ret) if (ret)
return ret; return ret;
if (reg & PALMAS_SMPS_CTRL_SMPS12_SMPS123_EN) if (reg & PALMAS_SMPS_CTRL_SMPS12_SMPS123_EN) {
pmic->smps123 = 1; pmic->smps123 = 1;
pmic->smps12 = 1;
}
if (reg & PALMAS_SMPS_CTRL_SMPS45_SMPS457_EN) if (reg & PALMAS_SMPS_CTRL_SMPS45_SMPS457_EN)
pmic->smps457 = 1; pmic->smps457 = 1;
......
...@@ -250,6 +250,7 @@ enum tps65917_regulators { ...@@ -250,6 +250,7 @@ enum tps65917_regulators {
TPS65917_REG_SMPS3, TPS65917_REG_SMPS3,
TPS65917_REG_SMPS4, TPS65917_REG_SMPS4,
TPS65917_REG_SMPS5, TPS65917_REG_SMPS5,
TPS65917_REG_SMPS12,
/* LDO regulators */ /* LDO regulators */
TPS65917_REG_LDO1, TPS65917_REG_LDO1,
TPS65917_REG_LDO2, TPS65917_REG_LDO2,
...@@ -317,6 +318,7 @@ enum tps65917_external_requestor_id { ...@@ -317,6 +318,7 @@ enum tps65917_external_requestor_id {
TPS65917_EXTERNAL_REQSTR_ID_SMPS3, TPS65917_EXTERNAL_REQSTR_ID_SMPS3,
TPS65917_EXTERNAL_REQSTR_ID_SMPS4, TPS65917_EXTERNAL_REQSTR_ID_SMPS4,
TPS65917_EXTERNAL_REQSTR_ID_SMPS5, TPS65917_EXTERNAL_REQSTR_ID_SMPS5,
TPS65917_EXTERNAL_REQSTR_ID_SMPS12,
TPS65917_EXTERNAL_REQSTR_ID_LDO1, TPS65917_EXTERNAL_REQSTR_ID_LDO1,
TPS65917_EXTERNAL_REQSTR_ID_LDO2, TPS65917_EXTERNAL_REQSTR_ID_LDO2,
TPS65917_EXTERNAL_REQSTR_ID_LDO3, TPS65917_EXTERNAL_REQSTR_ID_LDO3,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment