aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeerthy <j-keerthy@TI.COM>2015-03-17 06:26:05 -0400
committerMark Brown <broonie@kernel.org>2015-03-17 08:21:15 -0400
commite999c7289cf2e542e8be8bc72ba5dc0f8f06c88e (patch)
tree21523f6328103682ea5349f47068c0cb82031286
parenta26aeb177d8c1c4df3e32f0a21e8dd5b45ab1fc1 (diff)
regulator: palmas: Add has_regen3 check for TPS659038
Palmas driver is used to cater to even TPS659038 but TPS659038 does not have REGEN3 resource. Adding another field in the driver data to check on that. Signed-off-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/regulator/palmas-regulator.c9
-rw-r--r--include/linux/mfd/palmas.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 9518a76ad29e..8217613807d3 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -916,6 +916,9 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
916 (id == PALMAS_REG_LDO6)) 916 (id == PALMAS_REG_LDO6))
917 desc->enable_time = 2000; 917 desc->enable_time = 2000;
918 } else { 918 } else {
919 if (!ddata->has_regen3 && id == PALMAS_REG_REGEN3)
920 continue;
921
919 desc->n_voltages = 1; 922 desc->n_voltages = 1;
920 if (reg_init && reg_init->roof_floor) 923 if (reg_init && reg_init->roof_floor)
921 desc->ops = &palmas_ops_ext_control_extreg; 924 desc->ops = &palmas_ops_ext_control_extreg;
@@ -1398,6 +1401,7 @@ static struct palmas_pmic_driver_data palmas_ddata = {
1398 .ldo_begin = PALMAS_REG_LDO1, 1401 .ldo_begin = PALMAS_REG_LDO1,
1399 .ldo_end = PALMAS_REG_LDOUSB, 1402 .ldo_end = PALMAS_REG_LDOUSB,
1400 .max_reg = PALMAS_NUM_REGS, 1403 .max_reg = PALMAS_NUM_REGS,
1404 .has_regen3 = true,
1401 .palmas_regs_info = palmas_generic_regs_info, 1405 .palmas_regs_info = palmas_generic_regs_info,
1402 .palmas_matches = palmas_matches, 1406 .palmas_matches = palmas_matches,
1403 .sleep_req_info = palma_sleep_req_info, 1407 .sleep_req_info = palma_sleep_req_info,
@@ -1411,6 +1415,7 @@ static struct palmas_pmic_driver_data tps65917_ddata = {
1411 .ldo_begin = TPS65917_REG_LDO1, 1415 .ldo_begin = TPS65917_REG_LDO1,
1412 .ldo_end = TPS65917_REG_LDO5, 1416 .ldo_end = TPS65917_REG_LDO5,
1413 .max_reg = TPS65917_NUM_REGS, 1417 .max_reg = TPS65917_NUM_REGS,
1418 .has_regen3 = true,
1414 .palmas_regs_info = tps65917_regs_info, 1419 .palmas_regs_info = tps65917_regs_info,
1415 .palmas_matches = tps65917_matches, 1420 .palmas_matches = tps65917_matches,
1416 .sleep_req_info = tps65917_sleep_req_info, 1421 .sleep_req_info = tps65917_sleep_req_info,
@@ -1572,9 +1577,11 @@ static int palmas_regulators_probe(struct platform_device *pdev)
1572 if (!pmic) 1577 if (!pmic)
1573 return -ENOMEM; 1578 return -ENOMEM;
1574 1579
1575 if (of_device_is_compatible(node, "ti,tps659038-pmic")) 1580 if (of_device_is_compatible(node, "ti,tps659038-pmic")) {
1576 palmas_generic_regs_info[PALMAS_REG_REGEN2].ctrl_addr = 1581 palmas_generic_regs_info[PALMAS_REG_REGEN2].ctrl_addr =
1577 TPS659038_REGEN2_CTRL; 1582 TPS659038_REGEN2_CTRL;
1583 palmas_ddata.has_regen3 = false;
1584 }
1578 1585
1579 pmic->dev = &pdev->dev; 1586 pmic->dev = &pdev->dev;
1580 pmic->palmas = palmas; 1587 pmic->palmas = palmas;
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index ee7b1ce7a6f8..bb270bd03eed 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -117,6 +117,7 @@ struct palmas_pmic_driver_data {
117 int ldo_begin; 117 int ldo_begin;
118 int ldo_end; 118 int ldo_end;
119 int max_reg; 119 int max_reg;
120 bool has_regen3;
120 struct palmas_regs_info *palmas_regs_info; 121 struct palmas_regs_info *palmas_regs_info;
121 struct of_regulator_match *palmas_matches; 122 struct of_regulator_match *palmas_matches;
122 struct palmas_sleep_requestor_info *sleep_req_info; 123 struct palmas_sleep_requestor_info *sleep_req_info;