All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 0/6] regulator: palmas: cleanup and fixes
@ 2014-06-30 15:57 ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

Hi,
	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)

This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).

Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.

The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes
		     
Nishanth Menon (6):
  regulator: palmas: Squelch sparse warnings
  regulator: palmas: Rename reg_info to palmas_reg_info
  regulator: palmas: Simplify code by using pointer to palmas_reg_info
  regulator: palmas: Rename palmas_regs_info to
    palmas_generic_regs_info
  regulator: palmas: Simplify code by not indexing regulator_desc
    unnecessarily
  regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917

 drivers/regulator/palmas-regulator.c |  344 ++++++++++++++++------------------
 include/linux/mfd/palmas.h           |    4 +-
 2 files changed, 166 insertions(+), 182 deletions(-)

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH V2 0/6] regulator: palmas: cleanup and fixes
@ 2014-06-30 15:57 ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

Hi,
	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)

This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).

Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.

The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes
		     
Nishanth Menon (6):
  regulator: palmas: Squelch sparse warnings
  regulator: palmas: Rename reg_info to palmas_reg_info
  regulator: palmas: Simplify code by using pointer to palmas_reg_info
  regulator: palmas: Rename palmas_regs_info to
    palmas_generic_regs_info
  regulator: palmas: Simplify code by not indexing regulator_desc
    unnecessarily
  regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917

 drivers/regulator/palmas-regulator.c |  344 ++++++++++++++++------------------
 include/linux/mfd/palmas.h           |    4 +-
 2 files changed, 166 insertions(+), 182 deletions(-)

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH V2 1/6] regulator: palmas: Squelch sparse warnings
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 15:57   ` Nishanth Menon
  -1 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

convert to static variables to squelch the following sparse warnings:
drivers/regulator/palmas-regulator.c:325:36: warning: symbol 'palma_sleep_req_info' was not declared. Should it be static?
drivers/regulator/palmas-regulator.c:1414:32: warning: symbol 'palmas_ddata' was not declared. Should it be static?
drivers/regulator/palmas-regulator.c:1427:32: warning: symbol 'tps65917_ddata' was not declared. Should it be static?

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 7c8b441..91f60fa 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -322,7 +322,7 @@ static struct regs_info tps65917_regs_info[] = {
 		.bit_pos = _pos,			\
 	}
 
-struct palmas_sleep_requestor_info palma_sleep_req_info[] = {
+static struct palmas_sleep_requestor_info palma_sleep_req_info[] = {
 	EXTERNAL_REQUESTOR(REGEN1, 0, 0),
 	EXTERNAL_REQUESTOR(REGEN2, 0, 1),
 	EXTERNAL_REQUESTOR(SYSEN1, 0, 2),
@@ -1408,7 +1408,7 @@ static struct of_regulator_match tps65917_matches[] = {
 	{ .name = "sysen2", },
 };
 
-struct palmas_pmic_driver_data palmas_ddata = {
+static struct palmas_pmic_driver_data palmas_ddata = {
 	.smps_start = PALMAS_REG_SMPS12,
 	.smps_end = PALMAS_REG_SMPS10_OUT1,
 	.ldo_begin = PALMAS_REG_LDO1,
@@ -1421,7 +1421,7 @@ struct palmas_pmic_driver_data palmas_ddata = {
 	.ldo_register = palmas_ldo_registration,
 };
 
-struct palmas_pmic_driver_data tps65917_ddata = {
+static struct palmas_pmic_driver_data tps65917_ddata = {
 	.smps_start = TPS65917_REG_SMPS1,
 	.smps_end = TPS65917_REG_SMPS5,
 	.ldo_begin = TPS65917_REG_LDO1,
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 1/6] regulator: palmas: Squelch sparse warnings
@ 2014-06-30 15:57   ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

convert to static variables to squelch the following sparse warnings:
drivers/regulator/palmas-regulator.c:325:36: warning: symbol 'palma_sleep_req_info' was not declared. Should it be static?
drivers/regulator/palmas-regulator.c:1414:32: warning: symbol 'palmas_ddata' was not declared. Should it be static?
drivers/regulator/palmas-regulator.c:1427:32: warning: symbol 'tps65917_ddata' was not declared. Should it be static?

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 7c8b441..91f60fa 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -322,7 +322,7 @@ static struct regs_info tps65917_regs_info[] = {
 		.bit_pos = _pos,			\
 	}
 
-struct palmas_sleep_requestor_info palma_sleep_req_info[] = {
+static struct palmas_sleep_requestor_info palma_sleep_req_info[] = {
 	EXTERNAL_REQUESTOR(REGEN1, 0, 0),
 	EXTERNAL_REQUESTOR(REGEN2, 0, 1),
 	EXTERNAL_REQUESTOR(SYSEN1, 0, 2),
@@ -1408,7 +1408,7 @@ static struct of_regulator_match tps65917_matches[] = {
 	{ .name = "sysen2", },
 };
 
-struct palmas_pmic_driver_data palmas_ddata = {
+static struct palmas_pmic_driver_data palmas_ddata = {
 	.smps_start = PALMAS_REG_SMPS12,
 	.smps_end = PALMAS_REG_SMPS10_OUT1,
 	.ldo_begin = PALMAS_REG_LDO1,
@@ -1421,7 +1421,7 @@ struct palmas_pmic_driver_data palmas_ddata = {
 	.ldo_register = palmas_ldo_registration,
 };
 
-struct palmas_pmic_driver_data tps65917_ddata = {
+static struct palmas_pmic_driver_data tps65917_ddata = {
 	.smps_start = TPS65917_REG_SMPS1,
 	.smps_end = TPS65917_REG_SMPS5,
 	.ldo_begin = TPS65917_REG_LDO1,
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 2/6] regulator: palmas: Rename reg_info to palmas_reg_info
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 15:57   ` Nishanth Menon
  -1 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

reg_info is a generic term which might cause conflict at a later point
in time. To prevent such a thing from occuring in future, rename to
palmas_reg_info.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    4 ++--
 include/linux/mfd/palmas.h           |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 91f60fa..05f11b9 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -41,7 +41,7 @@ static const struct regulator_linear_range smps_high_ranges[] = {
 	REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0),
 };
 
-static struct regs_info palmas_regs_info[] = {
+static struct palmas_regs_info palmas_regs_info[] = {
 	{
 		.name		= "SMPS12",
 		.sname		= "smps1-in",
@@ -227,7 +227,7 @@ static struct regs_info palmas_regs_info[] = {
 	},
 };
 
-static struct regs_info tps65917_regs_info[] = {
+static struct palmas_regs_info tps65917_regs_info[] = {
 	{
 		.name		= "SMPS1",
 		.sname		= "smps1-in",
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 1a045ba..fb0390a 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -102,7 +102,7 @@ struct palmas_sleep_requestor_info {
 	int bit_pos;
 };
 
-struct regs_info {
+struct palmas_regs_info {
 	char	*name;
 	char	*sname;
 	u8	vsel_addr;
@@ -117,7 +117,7 @@ struct palmas_pmic_driver_data {
 	int ldo_begin;
 	int ldo_end;
 	int max_reg;
-	struct regs_info *palmas_regs_info;
+	struct palmas_regs_info *palmas_regs_info;
 	struct of_regulator_match *palmas_matches;
 	struct palmas_sleep_requestor_info *sleep_req_info;
 	int (*smps_register)(struct palmas_pmic *pmic,
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 2/6] regulator: palmas: Rename reg_info to palmas_reg_info
@ 2014-06-30 15:57   ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

reg_info is a generic term which might cause conflict at a later point
in time. To prevent such a thing from occuring in future, rename to
palmas_reg_info.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    4 ++--
 include/linux/mfd/palmas.h           |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 91f60fa..05f11b9 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -41,7 +41,7 @@ static const struct regulator_linear_range smps_high_ranges[] = {
 	REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0),
 };
 
-static struct regs_info palmas_regs_info[] = {
+static struct palmas_regs_info palmas_regs_info[] = {
 	{
 		.name		= "SMPS12",
 		.sname		= "smps1-in",
@@ -227,7 +227,7 @@ static struct regs_info palmas_regs_info[] = {
 	},
 };
 
-static struct regs_info tps65917_regs_info[] = {
+static struct palmas_regs_info tps65917_regs_info[] = {
 	{
 		.name		= "SMPS1",
 		.sname		= "smps1-in",
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 1a045ba..fb0390a 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -102,7 +102,7 @@ struct palmas_sleep_requestor_info {
 	int bit_pos;
 };
 
-struct regs_info {
+struct palmas_regs_info {
 	char	*name;
 	char	*sname;
 	u8	vsel_addr;
@@ -117,7 +117,7 @@ struct palmas_pmic_driver_data {
 	int ldo_begin;
 	int ldo_end;
 	int max_reg;
-	struct regs_info *palmas_regs_info;
+	struct palmas_regs_info *palmas_regs_info;
 	struct of_regulator_match *palmas_matches;
 	struct palmas_sleep_requestor_info *sleep_req_info;
 	int (*smps_register)(struct palmas_pmic *pmic,
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 3/6] regulator: palmas: Simplify code by using pointer to palmas_reg_info
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 15:57   ` Nishanth Menon
  -1 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

Palmas register information is part of the ddata pointer which is used
through out the code by indexing off the driver data array. Instead,
just do the indexing once and use the pointer to further reference
structure fields.

This simplifies code and prevents errors by accessing wrong variables.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |  109 +++++++++++++++++-----------------
 1 file changed, 56 insertions(+), 53 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 05f11b9..f75fb90 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -434,14 +434,14 @@ static int palmas_ldo_write(struct palmas *palmas, unsigned int reg,
 
 static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
 {
+	int id = rdev_get_id(dev);
 	struct palmas_pmic *pmic = rdev_get_drvdata(dev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
-	int id = rdev_get_id(dev);
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg;
 	bool rail_enable = true;
 
-	palmas_smps_read(pmic->palmas, ddata->palmas_regs_info[id].ctrl_addr,
-			 &reg);
+	palmas_smps_read(pmic->palmas, rinfo->ctrl_addr, &reg);
 
 	reg &= ~PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
@@ -464,8 +464,7 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
 
 	pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 	if (rail_enable)
-		palmas_smps_write(pmic->palmas,
-				  ddata->palmas_regs_info[id].ctrl_addr, reg);
+		palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
 
 	/* Switch the enable value to ensure this is used for enable */
 	pmic->desc[id].enable_val = pmic->current_reg_mode[id];
@@ -496,11 +495,11 @@ static unsigned int palmas_get_mode_smps(struct regulator_dev *dev)
 static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,
 		 int ramp_delay)
 {
+	int id = rdev_get_id(rdev);
 	struct palmas_pmic *pmic = rdev_get_drvdata(rdev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
-	int id = rdev_get_id(rdev);
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg = 0;
-	unsigned int addr = ddata->palmas_regs_info[id].tstep_addr;
 	int ret;
 
 	/* SMPS3 and SMPS7 do not have tstep_addr setting */
@@ -519,7 +518,7 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,
 	else
 		reg = 1;
 
-	ret = palmas_smps_write(pmic->palmas, addr, reg);
+	ret = palmas_smps_write(pmic->palmas, rinfo->tstep_addr, reg);
 	if (ret < 0) {
 		dev_err(pmic->palmas->dev, "TSTEP write failed: %d\n", ret);
 		return ret;
@@ -590,13 +589,13 @@ static struct regulator_ops tps65917_ops_ext_control_smps = {
 
 static int palmas_is_enabled_ldo(struct regulator_dev *dev)
 {
+	int id = rdev_get_id(dev);
 	struct palmas_pmic *pmic = rdev_get_drvdata(dev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
-	int id = rdev_get_id(dev);
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg;
 
-	palmas_ldo_read(pmic->palmas,
-			ddata->palmas_regs_info[id].ctrl_addr, &reg);
+	palmas_ldo_read(pmic->palmas, rinfo->ctrl_addr, &reg);
 
 	reg &= PALMAS_LDO1_CTRL_STATUS;
 
@@ -643,11 +642,12 @@ static struct regulator_ops tps65917_ops_ldo = {
 static int palmas_regulator_config_external(struct palmas *palmas, int id,
 		struct palmas_reg_init *reg_init)
 {
-	int sleep_id = palmas_regs_info[id].sleep_id;
+	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	int ret;
 
-	ret = palmas_ext_control_req_config(palmas, sleep_id,
-					reg_init->roof_floor, true);
+	ret = palmas_ext_control_req_config(palmas, rinfo->sleep_id,
+					    reg_init->roof_floor, true);
 	if (ret < 0)
 		dev_err(palmas->dev,
 			"Ext control config for regulator %d failed %d\n",
@@ -665,12 +665,10 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 		struct palmas_reg_init *reg_init)
 {
 	unsigned int reg;
-	unsigned int addr;
 	int ret;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
-
-	addr = ddata->palmas_regs_info[id].ctrl_addr;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
+	unsigned int addr = rinfo->ctrl_addr;
 
 	ret = palmas_smps_read(palmas, addr, &reg);
 	if (ret)
@@ -705,12 +703,11 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 	if (ret)
 		return ret;
 
-	if (ddata->palmas_regs_info[id].vsel_addr && reg_init->vsel) {
-		addr = ddata->palmas_regs_info[id].vsel_addr;
+	if (rinfo->vsel_addr && reg_init->vsel) {
 
 		reg = reg_init->vsel;
 
-		ret = palmas_smps_write(palmas, addr, reg);
+		ret = palmas_smps_write(palmas, rinfo->vsel_addr, reg);
 		if (ret)
 			return ret;
 	}
@@ -718,7 +715,6 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 	if (reg_init->roof_floor && (id != PALMAS_REG_SMPS10_OUT1) &&
 			(id != PALMAS_REG_SMPS10_OUT2)) {
 		/* Enable externally controlled regulator */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
 		ret = palmas_smps_read(palmas, addr, &reg);
 		if (ret < 0)
 			return ret;
@@ -740,10 +736,10 @@ static int palmas_ldo_init(struct palmas *palmas, int id,
 	unsigned int reg;
 	unsigned int addr;
 	int ret;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 
-	addr = ddata->palmas_regs_info[id].ctrl_addr;
+	addr = rinfo->ctrl_addr;
 
 	ret = palmas_ldo_read(palmas, addr, &reg);
 	if (ret)
@@ -765,7 +761,6 @@ static int palmas_ldo_init(struct palmas *palmas, int id,
 
 	if (reg_init->roof_floor) {
 		/* Enable externally controlled regulator */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
 		ret = palmas_update_bits(palmas, PALMAS_LDO_BASE,
 				addr, PALMAS_LDO1_CTRL_MODE_ACTIVE,
 				PALMAS_LDO1_CTRL_MODE_ACTIVE);
@@ -786,10 +781,10 @@ static int palmas_extreg_init(struct palmas *palmas, int id,
 	unsigned int addr;
 	int ret;
 	unsigned int val = 0;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 
-	addr = ddata->palmas_regs_info[id].ctrl_addr;
+	addr = rinfo->ctrl_addr;
 
 	if (reg_init->mode_sleep)
 		val = PALMAS_REGEN1_CTRL_MODE_SLEEP;
@@ -804,7 +799,6 @@ static int palmas_extreg_init(struct palmas *palmas, int id,
 
 	if (reg_init->roof_floor) {
 		/* Enable externally controlled regulator */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
 		ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
 				addr, PALMAS_REGEN1_CTRL_MODE_ACTIVE,
 				PALMAS_REGEN1_CTRL_MODE_ACTIVE);
@@ -824,10 +818,11 @@ static void palmas_enable_ldo8_track(struct palmas *palmas)
 	unsigned int reg;
 	unsigned int addr;
 	int ret;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo;
 
-	addr = ddata->palmas_regs_info[PALMAS_REG_LDO8].ctrl_addr;
+	rinfo = &ddata->palmas_regs_info[PALMAS_REG_LDO8];
+	addr = rinfo->ctrl_addr;
 
 	ret = palmas_ldo_read(palmas, addr, &reg);
 	if (ret) {
@@ -846,7 +841,7 @@ static void palmas_enable_ldo8_track(struct palmas *palmas)
 	 * output is defined by the LDO8_VOLTAGE.VSEL register divided by two,
 	 * and can be set from 0.45 to 1.65 V.
 	 */
-	addr = ddata->palmas_regs_info[PALMAS_REG_LDO8].vsel_addr;
+	addr = rinfo->vsel_addr;
 	ret = palmas_ldo_read(palmas, addr, &reg);
 	if (ret) {
 		dev_err(palmas->dev, "Error in reading ldo8 voltage reg\n");
@@ -870,6 +865,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 	int id, ret;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -877,12 +873,13 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		else
 			reg_init = NULL;
 
+		rinfo = &ddata->palmas_regs_info[id];
 		/* Miss out regulators which are not available due
 		 * to alternate functions.
 		 */
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 		pmic->desc[id].type = REGULATOR_VOLTAGE;
 		pmic->desc[id].owner = THIS_MODULE;
@@ -900,12 +897,12 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 			pmic->desc[id].enable_time = 500;
 			pmic->desc[id].vsel_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].vsel_addr);
+							   rinfo->vsel_addr);
 			pmic->desc[id].vsel_mask =
 					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_LDO1_CTRL_MODE_ACTIVE;
 
@@ -930,7 +927,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 				pmic->desc[id].ops = &palmas_ops_extreg;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
@@ -940,7 +937,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -983,6 +980,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 	int id, ret;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -993,9 +991,10 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		/* Miss out regulators which are not available due
 		 * to alternate functions.
 		 */
+		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 		pmic->desc[id].type = REGULATOR_VOLTAGE;
 		pmic->desc[id].owner = THIS_MODULE;
@@ -1013,12 +1012,12 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 			pmic->desc[id].enable_time = 500;
 			pmic->desc[id].vsel_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].vsel_addr);
+							   rinfo->vsel_addr);
 			pmic->desc[id].vsel_mask =
 					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_LDO1_CTRL_MODE_ACTIVE;
 			/*
@@ -1035,7 +1034,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 				pmic->desc[id].ops = &palmas_ops_extreg;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
@@ -1045,7 +1044,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -1089,6 +1088,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 	unsigned int addr, reg;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		bool ramp_delay_support = false;
@@ -1127,12 +1127,13 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			if (!PALMAS_PMIC_HAS(pmic->palmas, SMPS10_BOOST))
 				continue;
 		}
+		rinfo = &ddata->palmas_regs_info[id];
 
 		if ((id == PALMAS_REG_SMPS6) || (id == PALMAS_REG_SMPS8))
 			ramp_delay_support = true;
 
 		if (ramp_delay_support) {
-			addr = ddata->palmas_regs_info[id].tstep_addr;
+			addr = rinfo->tstep_addr;
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
 			if (ret < 0) {
 				dev_err(pmic->dev,
@@ -1155,7 +1156,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 		}
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 
 		switch (id) {
@@ -1188,7 +1189,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			 * otherwise we error in probe with unsupportable
 			 * ranges. Read the current smps mode for later use.
 			 */
-			addr = palmas_regs_info[id].vsel_addr;
+			addr = rinfo->vsel_addr;
 			pmic->desc[id].n_linear_ranges = 3;
 
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
@@ -1209,12 +1210,12 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
 			pmic->desc[id].vsel_reg =
 					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						palmas_regs_info[id].vsel_addr);
+							   rinfo->vsel_addr);
 			pmic->desc[id].vsel_mask =
 					PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
 
 			/* Read the smps mode for later use. */
-			addr = palmas_regs_info[id].ctrl_addr;
+			addr = rinfo->ctrl_addr;
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
 			if (ret)
 				return ret;
@@ -1223,7 +1224,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 			/* set_mode overrides this value */
@@ -1238,7 +1239,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -1267,6 +1268,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 	unsigned int addr, reg;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		/*
@@ -1286,9 +1288,10 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		} else {
 			reg_init = NULL;
 		}
+		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 
 		/*
@@ -1297,7 +1300,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		 * otherwise we error in probe with unsupportable
 		 * ranges. Read the current smps mode for later use.
 		 */
-		addr = ddata->palmas_regs_info[id].vsel_addr;
+		addr = rinfo->vsel_addr;
 
 		ret = palmas_smps_read(pmic->palmas, addr, &reg);
 		if (ret)
@@ -1319,14 +1322,14 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
 		pmic->desc[id].vsel_reg =
 				PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						   tps65917_regs_info[id].vsel_addr);
+						   rinfo->vsel_addr);
 		pmic->desc[id].vsel_mask =
 				PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
 
 		pmic->desc[id].ramp_delay = 2500;
 
 		/* Read the smps mode for later use. */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
+		addr = rinfo->ctrl_addr;
 		ret = palmas_smps_read(pmic->palmas, addr, &reg);
 		if (ret)
 			return ret;
@@ -1341,7 +1344,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 3/6] regulator: palmas: Simplify code by using pointer to palmas_reg_info
@ 2014-06-30 15:57   ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

Palmas register information is part of the ddata pointer which is used
through out the code by indexing off the driver data array. Instead,
just do the indexing once and use the pointer to further reference
structure fields.

This simplifies code and prevents errors by accessing wrong variables.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |  109 +++++++++++++++++-----------------
 1 file changed, 56 insertions(+), 53 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 05f11b9..f75fb90 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -434,14 +434,14 @@ static int palmas_ldo_write(struct palmas *palmas, unsigned int reg,
 
 static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
 {
+	int id = rdev_get_id(dev);
 	struct palmas_pmic *pmic = rdev_get_drvdata(dev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
-	int id = rdev_get_id(dev);
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg;
 	bool rail_enable = true;
 
-	palmas_smps_read(pmic->palmas, ddata->palmas_regs_info[id].ctrl_addr,
-			 &reg);
+	palmas_smps_read(pmic->palmas, rinfo->ctrl_addr, &reg);
 
 	reg &= ~PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
@@ -464,8 +464,7 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
 
 	pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 	if (rail_enable)
-		palmas_smps_write(pmic->palmas,
-				  ddata->palmas_regs_info[id].ctrl_addr, reg);
+		palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
 
 	/* Switch the enable value to ensure this is used for enable */
 	pmic->desc[id].enable_val = pmic->current_reg_mode[id];
@@ -496,11 +495,11 @@ static unsigned int palmas_get_mode_smps(struct regulator_dev *dev)
 static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,
 		 int ramp_delay)
 {
+	int id = rdev_get_id(rdev);
 	struct palmas_pmic *pmic = rdev_get_drvdata(rdev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
-	int id = rdev_get_id(rdev);
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg = 0;
-	unsigned int addr = ddata->palmas_regs_info[id].tstep_addr;
 	int ret;
 
 	/* SMPS3 and SMPS7 do not have tstep_addr setting */
@@ -519,7 +518,7 @@ static int palmas_smps_set_ramp_delay(struct regulator_dev *rdev,
 	else
 		reg = 1;
 
-	ret = palmas_smps_write(pmic->palmas, addr, reg);
+	ret = palmas_smps_write(pmic->palmas, rinfo->tstep_addr, reg);
 	if (ret < 0) {
 		dev_err(pmic->palmas->dev, "TSTEP write failed: %d\n", ret);
 		return ret;
@@ -590,13 +589,13 @@ static struct regulator_ops tps65917_ops_ext_control_smps = {
 
 static int palmas_is_enabled_ldo(struct regulator_dev *dev)
 {
+	int id = rdev_get_id(dev);
 	struct palmas_pmic *pmic = rdev_get_drvdata(dev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
-	int id = rdev_get_id(dev);
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg;
 
-	palmas_ldo_read(pmic->palmas,
-			ddata->palmas_regs_info[id].ctrl_addr, &reg);
+	palmas_ldo_read(pmic->palmas, rinfo->ctrl_addr, &reg);
 
 	reg &= PALMAS_LDO1_CTRL_STATUS;
 
@@ -643,11 +642,12 @@ static struct regulator_ops tps65917_ops_ldo = {
 static int palmas_regulator_config_external(struct palmas *palmas, int id,
 		struct palmas_reg_init *reg_init)
 {
-	int sleep_id = palmas_regs_info[id].sleep_id;
+	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	int ret;
 
-	ret = palmas_ext_control_req_config(palmas, sleep_id,
-					reg_init->roof_floor, true);
+	ret = palmas_ext_control_req_config(palmas, rinfo->sleep_id,
+					    reg_init->roof_floor, true);
 	if (ret < 0)
 		dev_err(palmas->dev,
 			"Ext control config for regulator %d failed %d\n",
@@ -665,12 +665,10 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 		struct palmas_reg_init *reg_init)
 {
 	unsigned int reg;
-	unsigned int addr;
 	int ret;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
-
-	addr = ddata->palmas_regs_info[id].ctrl_addr;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
+	unsigned int addr = rinfo->ctrl_addr;
 
 	ret = palmas_smps_read(palmas, addr, &reg);
 	if (ret)
@@ -705,12 +703,11 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 	if (ret)
 		return ret;
 
-	if (ddata->palmas_regs_info[id].vsel_addr && reg_init->vsel) {
-		addr = ddata->palmas_regs_info[id].vsel_addr;
+	if (rinfo->vsel_addr && reg_init->vsel) {
 
 		reg = reg_init->vsel;
 
-		ret = palmas_smps_write(palmas, addr, reg);
+		ret = palmas_smps_write(palmas, rinfo->vsel_addr, reg);
 		if (ret)
 			return ret;
 	}
@@ -718,7 +715,6 @@ static int palmas_smps_init(struct palmas *palmas, int id,
 	if (reg_init->roof_floor && (id != PALMAS_REG_SMPS10_OUT1) &&
 			(id != PALMAS_REG_SMPS10_OUT2)) {
 		/* Enable externally controlled regulator */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
 		ret = palmas_smps_read(palmas, addr, &reg);
 		if (ret < 0)
 			return ret;
@@ -740,10 +736,10 @@ static int palmas_ldo_init(struct palmas *palmas, int id,
 	unsigned int reg;
 	unsigned int addr;
 	int ret;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 
-	addr = ddata->palmas_regs_info[id].ctrl_addr;
+	addr = rinfo->ctrl_addr;
 
 	ret = palmas_ldo_read(palmas, addr, &reg);
 	if (ret)
@@ -765,7 +761,6 @@ static int palmas_ldo_init(struct palmas *palmas, int id,
 
 	if (reg_init->roof_floor) {
 		/* Enable externally controlled regulator */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
 		ret = palmas_update_bits(palmas, PALMAS_LDO_BASE,
 				addr, PALMAS_LDO1_CTRL_MODE_ACTIVE,
 				PALMAS_LDO1_CTRL_MODE_ACTIVE);
@@ -786,10 +781,10 @@ static int palmas_extreg_init(struct palmas *palmas, int id,
 	unsigned int addr;
 	int ret;
 	unsigned int val = 0;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 
-	addr = ddata->palmas_regs_info[id].ctrl_addr;
+	addr = rinfo->ctrl_addr;
 
 	if (reg_init->mode_sleep)
 		val = PALMAS_REGEN1_CTRL_MODE_SLEEP;
@@ -804,7 +799,6 @@ static int palmas_extreg_init(struct palmas *palmas, int id,
 
 	if (reg_init->roof_floor) {
 		/* Enable externally controlled regulator */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
 		ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
 				addr, PALMAS_REGEN1_CTRL_MODE_ACTIVE,
 				PALMAS_REGEN1_CTRL_MODE_ACTIVE);
@@ -824,10 +818,11 @@ static void palmas_enable_ldo8_track(struct palmas *palmas)
 	unsigned int reg;
 	unsigned int addr;
 	int ret;
-
 	struct palmas_pmic_driver_data *ddata = palmas->pmic_ddata;
+	struct palmas_regs_info *rinfo;
 
-	addr = ddata->palmas_regs_info[PALMAS_REG_LDO8].ctrl_addr;
+	rinfo = &ddata->palmas_regs_info[PALMAS_REG_LDO8];
+	addr = rinfo->ctrl_addr;
 
 	ret = palmas_ldo_read(palmas, addr, &reg);
 	if (ret) {
@@ -846,7 +841,7 @@ static void palmas_enable_ldo8_track(struct palmas *palmas)
 	 * output is defined by the LDO8_VOLTAGE.VSEL register divided by two,
 	 * and can be set from 0.45 to 1.65 V.
 	 */
-	addr = ddata->palmas_regs_info[PALMAS_REG_LDO8].vsel_addr;
+	addr = rinfo->vsel_addr;
 	ret = palmas_ldo_read(palmas, addr, &reg);
 	if (ret) {
 		dev_err(palmas->dev, "Error in reading ldo8 voltage reg\n");
@@ -870,6 +865,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 	int id, ret;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -877,12 +873,13 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		else
 			reg_init = NULL;
 
+		rinfo = &ddata->palmas_regs_info[id];
 		/* Miss out regulators which are not available due
 		 * to alternate functions.
 		 */
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 		pmic->desc[id].type = REGULATOR_VOLTAGE;
 		pmic->desc[id].owner = THIS_MODULE;
@@ -900,12 +897,12 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 			pmic->desc[id].enable_time = 500;
 			pmic->desc[id].vsel_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].vsel_addr);
+							   rinfo->vsel_addr);
 			pmic->desc[id].vsel_mask =
 					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_LDO1_CTRL_MODE_ACTIVE;
 
@@ -930,7 +927,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 				pmic->desc[id].ops = &palmas_ops_extreg;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
@@ -940,7 +937,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -983,6 +980,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 	int id, ret;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -993,9 +991,10 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		/* Miss out regulators which are not available due
 		 * to alternate functions.
 		 */
+		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 		pmic->desc[id].type = REGULATOR_VOLTAGE;
 		pmic->desc[id].owner = THIS_MODULE;
@@ -1013,12 +1012,12 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 			pmic->desc[id].enable_time = 500;
 			pmic->desc[id].vsel_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].vsel_addr);
+							   rinfo->vsel_addr);
 			pmic->desc[id].vsel_mask =
 					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_LDO1_CTRL_MODE_ACTIVE;
 			/*
@@ -1035,7 +1034,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 				pmic->desc[id].ops = &palmas_ops_extreg;
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
-							   ddata->palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
@@ -1045,7 +1044,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -1089,6 +1088,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 	unsigned int addr, reg;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		bool ramp_delay_support = false;
@@ -1127,12 +1127,13 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			if (!PALMAS_PMIC_HAS(pmic->palmas, SMPS10_BOOST))
 				continue;
 		}
+		rinfo = &ddata->palmas_regs_info[id];
 
 		if ((id == PALMAS_REG_SMPS6) || (id == PALMAS_REG_SMPS8))
 			ramp_delay_support = true;
 
 		if (ramp_delay_support) {
-			addr = ddata->palmas_regs_info[id].tstep_addr;
+			addr = rinfo->tstep_addr;
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
 			if (ret < 0) {
 				dev_err(pmic->dev,
@@ -1155,7 +1156,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 		}
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 
 		switch (id) {
@@ -1188,7 +1189,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			 * otherwise we error in probe with unsupportable
 			 * ranges. Read the current smps mode for later use.
 			 */
-			addr = palmas_regs_info[id].vsel_addr;
+			addr = rinfo->vsel_addr;
 			pmic->desc[id].n_linear_ranges = 3;
 
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
@@ -1209,12 +1210,12 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
 			pmic->desc[id].vsel_reg =
 					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						palmas_regs_info[id].vsel_addr);
+							   rinfo->vsel_addr);
 			pmic->desc[id].vsel_mask =
 					PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
 
 			/* Read the smps mode for later use. */
-			addr = palmas_regs_info[id].ctrl_addr;
+			addr = rinfo->ctrl_addr;
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
 			if (ret)
 				return ret;
@@ -1223,7 +1224,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 
 			pmic->desc[id].enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						palmas_regs_info[id].ctrl_addr);
+							   rinfo->ctrl_addr);
 			pmic->desc[id].enable_mask =
 					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 			/* set_mode overrides this value */
@@ -1238,7 +1239,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
@@ -1267,6 +1268,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 	unsigned int addr, reg;
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
+	struct palmas_regs_info *rinfo;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		/*
@@ -1286,9 +1288,10 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		} else {
 			reg_init = NULL;
 		}
+		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = ddata->palmas_regs_info[id].name;
+		pmic->desc[id].name = rinfo->name;
 		pmic->desc[id].id = id;
 
 		/*
@@ -1297,7 +1300,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		 * otherwise we error in probe with unsupportable
 		 * ranges. Read the current smps mode for later use.
 		 */
-		addr = ddata->palmas_regs_info[id].vsel_addr;
+		addr = rinfo->vsel_addr;
 
 		ret = palmas_smps_read(pmic->palmas, addr, &reg);
 		if (ret)
@@ -1319,14 +1322,14 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
 		pmic->desc[id].vsel_reg =
 				PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						   tps65917_regs_info[id].vsel_addr);
+						   rinfo->vsel_addr);
 		pmic->desc[id].vsel_mask =
 				PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
 
 		pmic->desc[id].ramp_delay = 2500;
 
 		/* Read the smps mode for later use. */
-		addr = ddata->palmas_regs_info[id].ctrl_addr;
+		addr = rinfo->ctrl_addr;
 		ret = palmas_smps_read(pmic->palmas, addr, &reg);
 		if (ret)
 			return ret;
@@ -1341,7 +1344,7 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = ddata->palmas_regs_info[id].sname;
+		pmic->desc[id].supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
 		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 4/6] regulator: palmas: Rename palmas_regs_info to palmas_generic_regs_info
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 15:57   ` Nishanth Menon
  -1 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

With commit d6f83370ed978d5570b7c8c22988310cb9376202 (regulator: palmas:
Add tps65917 PMIC support) palmas_regs_info naming is confusing as it is
a driver data parameter and a local variable. To prevent mistaken
updates, rename the local variable to palmas_generic_regs_info.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index f75fb90..d6b734f 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -41,7 +41,7 @@ static const struct regulator_linear_range smps_high_ranges[] = {
 	REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0),
 };
 
-static struct palmas_regs_info palmas_regs_info[] = {
+static struct palmas_regs_info palmas_generic_regs_info[] = {
 	{
 		.name		= "SMPS12",
 		.sname		= "smps1-in",
@@ -1417,7 +1417,7 @@ static struct palmas_pmic_driver_data palmas_ddata = {
 	.ldo_begin = PALMAS_REG_LDO1,
 	.ldo_end = PALMAS_REG_LDOUSB,
 	.max_reg = PALMAS_NUM_REGS,
-	.palmas_regs_info = palmas_regs_info,
+	.palmas_regs_info = palmas_generic_regs_info,
 	.palmas_matches = palmas_matches,
 	.sleep_req_info = palma_sleep_req_info,
 	.smps_register = palmas_smps_registration,
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 4/6] regulator: palmas: Rename palmas_regs_info to palmas_generic_regs_info
@ 2014-06-30 15:57   ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

With commit d6f83370ed978d5570b7c8c22988310cb9376202 (regulator: palmas:
Add tps65917 PMIC support) palmas_regs_info naming is confusing as it is
a driver data parameter and a local variable. To prevent mistaken
updates, rename the local variable to palmas_generic_regs_info.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index f75fb90..d6b734f 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -41,7 +41,7 @@ static const struct regulator_linear_range smps_high_ranges[] = {
 	REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0),
 };
 
-static struct palmas_regs_info palmas_regs_info[] = {
+static struct palmas_regs_info palmas_generic_regs_info[] = {
 	{
 		.name		= "SMPS12",
 		.sname		= "smps1-in",
@@ -1417,7 +1417,7 @@ static struct palmas_pmic_driver_data palmas_ddata = {
 	.ldo_begin = PALMAS_REG_LDO1,
 	.ldo_end = PALMAS_REG_LDOUSB,
 	.max_reg = PALMAS_NUM_REGS,
-	.palmas_regs_info = palmas_regs_info,
+	.palmas_regs_info = palmas_generic_regs_info,
 	.palmas_matches = palmas_matches,
 	.sleep_req_info = palma_sleep_req_info,
 	.smps_register = palmas_smps_registration,
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 5/6] regulator: palmas: Simplify code by not indexing regulator_desc unnecessarily
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 15:57     ` Nishanth Menon
  -1 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA, Nishanth Menon

Palmas regulator needs to full up the regulator_desc based on PMIC and
type of regulator. However, we dont need to do desc[id] every time. we
can simplify by using a pointer to desc[id] and filling up the
parameters.

Signed-off-by: Nishanth Menon <nm-l0cyMroinI0@public.gmane.org>
---
 drivers/regulator/palmas-regulator.c |  248 +++++++++++++++-------------------
 1 file changed, 112 insertions(+), 136 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index d6b734f..ae0f639 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -866,6 +866,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -879,57 +880,51 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		 */
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc = &pmic->desc[id];
+		desc->name = rinfo->name;
+		desc->id = id;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (id < PALMAS_REG_REGEN1) {
-			pmic->desc[id].n_voltages = PALMAS_LDO_NUM_VOLTAGES;
+			desc->n_voltages = PALMAS_LDO_NUM_VOLTAGES;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_ldo;
+				desc->ops = &palmas_ops_ext_control_ldo;
 			else
-				pmic->desc[id].ops = &palmas_ops_ldo;
-			pmic->desc[id].min_uV = 900000;
-			pmic->desc[id].uV_step = 50000;
-			pmic->desc[id].linear_min_sel = 1;
-			pmic->desc[id].enable_time = 500;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->vsel_addr);
-			pmic->desc[id].vsel_mask =
-					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_LDO1_CTRL_MODE_ACTIVE;
+				desc->ops = &palmas_ops_ldo;
+			desc->min_uV = 900000;
+			desc->uV_step = 50000;
+			desc->linear_min_sel = 1;
+			desc->enable_time = 500;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							    rinfo->vsel_addr);
+			desc->vsel_mask = PALMAS_LDO1_VOLTAGE_VSEL_MASK;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							      rinfo->ctrl_addr);
+			desc->enable_mask = PALMAS_LDO1_CTRL_MODE_ACTIVE;
 
 			/* Check if LDO8 is in tracking mode or not */
 			if (pdata && (id == PALMAS_REG_LDO8) &&
 			    pdata->enable_ldo8_tracking) {
 				palmas_enable_ldo8_track(pmic->palmas);
-				pmic->desc[id].min_uV = 450000;
-				pmic->desc[id].uV_step = 25000;
+				desc->min_uV = 450000;
+				desc->uV_step = 25000;
 			}
 
 			/* LOD6 in vibrator mode will have enable time 2000us */
 			if (pdata && pdata->ldo6_vibrator &&
 			    (id == PALMAS_REG_LDO6))
-				pmic->desc[id].enable_time = 2000;
+				desc->enable_time = 2000;
 		} else {
-			pmic->desc[id].n_voltages = 1;
+			desc->n_voltages = 1;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_extreg;
+				desc->ops = &palmas_ops_ext_control_extreg;
 			else
-				pmic->desc[id].ops = &palmas_ops_extreg;
-			pmic->desc[id].enable_reg =
+				desc->ops = &palmas_ops_extreg;
+			desc->enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
 							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
+			desc->enable_mask = PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
 
 		if (pdata)
@@ -937,11 +932,10 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
@@ -981,6 +975,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -994,49 +989,43 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc = &pmic->desc[id];
+		desc->name = rinfo->name;
+		desc->id = id;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (id < TPS65917_REG_REGEN1) {
-			pmic->desc[id].n_voltages = PALMAS_LDO_NUM_VOLTAGES;
+			desc->n_voltages = PALMAS_LDO_NUM_VOLTAGES;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_ldo;
+				desc->ops = &palmas_ops_ext_control_ldo;
 			else
-				pmic->desc[id].ops = &tps65917_ops_ldo;
-			pmic->desc[id].min_uV = 900000;
-			pmic->desc[id].uV_step = 50000;
-			pmic->desc[id].linear_min_sel = 1;
-			pmic->desc[id].enable_time = 500;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->vsel_addr);
-			pmic->desc[id].vsel_mask =
-					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_LDO1_CTRL_MODE_ACTIVE;
+				desc->ops = &tps65917_ops_ldo;
+			desc->min_uV = 900000;
+			desc->uV_step = 50000;
+			desc->linear_min_sel = 1;
+			desc->enable_time = 500;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							    rinfo->vsel_addr);
+			desc->vsel_mask = PALMAS_LDO1_VOLTAGE_VSEL_MASK;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							      rinfo->ctrl_addr);
+			desc->enable_mask = PALMAS_LDO1_CTRL_MODE_ACTIVE;
 			/*
 			 * To be confirmed. Discussion on going with PMIC Team.
 			 * It is of the order of ~60mV/uS.
 			 */
-			pmic->desc[id].ramp_delay = 2500;
+			desc->ramp_delay = 2500;
 		} else {
-			pmic->desc[id].n_voltages = 1;
+			desc->n_voltages = 1;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_extreg;
+				desc->ops = &palmas_ops_ext_control_extreg;
 			else
-				pmic->desc[id].ops = &palmas_ops_extreg;
-			pmic->desc[id].enable_reg =
+				desc->ops = &palmas_ops_extreg;
+			desc->enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
 							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
+			desc->enable_mask = PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
 
 		if (pdata)
@@ -1044,11 +1033,10 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
@@ -1089,6 +1077,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		bool ramp_delay_support = false;
@@ -1128,6 +1117,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 				continue;
 		}
 		rinfo = &ddata->palmas_regs_info[id];
+		desc = &pmic->desc[id];
 
 		if ((id == PALMAS_REG_SMPS6) || (id == PALMAS_REG_SMPS8))
 			ramp_delay_support = true;
@@ -1140,9 +1130,8 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 					"reading TSTEP reg failed: %d\n", ret);
 				return ret;
 			}
-			pmic->desc[id].ramp_delay =
-					palmas_smps_ramp_delay[reg & 0x3];
-			pmic->ramp_delay[id] = pmic->desc[id].ramp_delay;
+			desc->ramp_delay = palmas_smps_ramp_delay[reg & 0x3];
+			pmic->ramp_delay[id] = desc->ramp_delay;
 		}
 
 		/* Initialise sleep/init values from platform data */
@@ -1156,31 +1145,28 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 		}
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
+		desc->name = rinfo->name;
+		desc->id = id;
 
 		switch (id) {
 		case PALMAS_REG_SMPS10_OUT1:
 		case PALMAS_REG_SMPS10_OUT2:
-			pmic->desc[id].n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
-			pmic->desc[id].ops = &palmas_ops_smps10;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							PALMAS_SMPS10_CTRL);
-			pmic->desc[id].vsel_mask = SMPS10_VSEL;
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							PALMAS_SMPS10_CTRL);
+			desc->n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
+			desc->ops = &palmas_ops_smps10;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    PALMAS_SMPS10_CTRL);
+			desc->vsel_mask = SMPS10_VSEL;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    PALMAS_SMPS10_CTRL);
 			if (id == PALMAS_REG_SMPS10_OUT1)
-				pmic->desc[id].enable_mask = SMPS10_SWITCH_EN;
+				desc->enable_mask = SMPS10_SWITCH_EN;
 			else
-				pmic->desc[id].enable_mask = SMPS10_BOOST_EN;
-			pmic->desc[id].bypass_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							PALMAS_SMPS10_CTRL);
-			pmic->desc[id].bypass_mask = SMPS10_BYPASS_EN;
-			pmic->desc[id].min_uV = 3750000;
-			pmic->desc[id].uV_step = 1250000;
+				desc->enable_mask = SMPS10_BOOST_EN;
+			desc->bypass_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    PALMAS_SMPS10_CTRL);
+			desc->bypass_mask = SMPS10_BYPASS_EN;
+			desc->min_uV = 3750000;
+			desc->uV_step = 1250000;
 			break;
 		default:
 			/*
@@ -1190,7 +1176,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			 * ranges. Read the current smps mode for later use.
 			 */
 			addr = rinfo->vsel_addr;
-			pmic->desc[id].n_linear_ranges = 3;
+			desc->n_linear_ranges = 3;
 
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
 			if (ret)
@@ -1198,21 +1184,18 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			if (reg & PALMAS_SMPS12_VOLTAGE_RANGE)
 				pmic->range[id] = 1;
 			if (pmic->range[id])
-				pmic->desc[id].linear_ranges = smps_high_ranges;
+				desc->linear_ranges = smps_high_ranges;
 			else
-				pmic->desc[id].linear_ranges = smps_low_ranges;
+				desc->linear_ranges = smps_low_ranges;
 
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-						&palmas_ops_ext_control_smps;
+				desc->ops = &palmas_ops_ext_control_smps;
 			else
-				pmic->desc[id].ops = &palmas_ops_smps;
-			pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							   rinfo->vsel_addr);
-			pmic->desc[id].vsel_mask =
-					PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
+				desc->ops = &palmas_ops_smps;
+			desc->n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    rinfo->vsel_addr);
+			desc->vsel_mask = PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
 
 			/* Read the smps mode for later use. */
 			addr = rinfo->ctrl_addr;
@@ -1222,28 +1205,25 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			pmic->current_reg_mode[id] = reg &
 					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							      rinfo->ctrl_addr);
+			desc->enable_mask = PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 			/* set_mode overrides this value */
-			pmic->desc[id].enable_val = SMPS_CTRL_MODE_ON;
+			desc->enable_val = SMPS_CTRL_MODE_ON;
 		}
 
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (pdata)
 			config.init_data = pdata->reg_data[id];
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
@@ -1269,13 +1249,15 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		/*
 		 * Miss out regulators which are not available due
 		 * to slaving configurations.
 		 */
-		pmic->desc[id].n_linear_ranges = 3;
+		desc = &pmic->desc[id];
+		desc->n_linear_ranges = 3;
 		if ((id == TPS65917_REG_SMPS2) && pmic->smps12)
 			continue;
 
@@ -1291,8 +1273,8 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
+		desc->name = rinfo->name;
+		desc->id = id;
 
 		/*
 		 * Read and store the RANGE bit for later use
@@ -1309,24 +1291,19 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 			pmic->range[id] = 1;
 
 		if (pmic->range[id])
-				pmic->desc[id].linear_ranges = smps_high_ranges;
-			else
-				pmic->desc[id].linear_ranges = smps_low_ranges;
-
+			desc->linear_ranges = smps_high_ranges;
+		else
+			desc->linear_ranges = smps_low_ranges;
 
 		if (reg_init && reg_init->roof_floor)
-			pmic->desc[id].ops =
-					&tps65917_ops_ext_control_smps;
+			desc->ops = &tps65917_ops_ext_control_smps;
 		else
-			pmic->desc[id].ops = &tps65917_ops_smps;
-		pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
-		pmic->desc[id].vsel_reg =
-				PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						   rinfo->vsel_addr);
-		pmic->desc[id].vsel_mask =
-				PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
-
-		pmic->desc[id].ramp_delay = 2500;
+			desc->ops = &tps65917_ops_smps;
+		desc->n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
+		desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+						    rinfo->vsel_addr);
+		desc->vsel_mask = PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
+		desc->ramp_delay = 2500;
 
 		/* Read the smps mode for later use. */
 		addr = rinfo->ctrl_addr;
@@ -1336,19 +1313,18 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		pmic->current_reg_mode[id] = reg &
 				PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (pdata)
 			config.init_data = pdata->reg_data[id];
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 5/6] regulator: palmas: Simplify code by not indexing regulator_desc unnecessarily
@ 2014-06-30 15:57     ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

Palmas regulator needs to full up the regulator_desc based on PMIC and
type of regulator. However, we dont need to do desc[id] every time. we
can simplify by using a pointer to desc[id] and filling up the
parameters.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |  248 +++++++++++++++-------------------
 1 file changed, 112 insertions(+), 136 deletions(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index d6b734f..ae0f639 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -866,6 +866,7 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -879,57 +880,51 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		 */
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc = &pmic->desc[id];
+		desc->name = rinfo->name;
+		desc->id = id;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (id < PALMAS_REG_REGEN1) {
-			pmic->desc[id].n_voltages = PALMAS_LDO_NUM_VOLTAGES;
+			desc->n_voltages = PALMAS_LDO_NUM_VOLTAGES;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_ldo;
+				desc->ops = &palmas_ops_ext_control_ldo;
 			else
-				pmic->desc[id].ops = &palmas_ops_ldo;
-			pmic->desc[id].min_uV = 900000;
-			pmic->desc[id].uV_step = 50000;
-			pmic->desc[id].linear_min_sel = 1;
-			pmic->desc[id].enable_time = 500;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->vsel_addr);
-			pmic->desc[id].vsel_mask =
-					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_LDO1_CTRL_MODE_ACTIVE;
+				desc->ops = &palmas_ops_ldo;
+			desc->min_uV = 900000;
+			desc->uV_step = 50000;
+			desc->linear_min_sel = 1;
+			desc->enable_time = 500;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							    rinfo->vsel_addr);
+			desc->vsel_mask = PALMAS_LDO1_VOLTAGE_VSEL_MASK;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							      rinfo->ctrl_addr);
+			desc->enable_mask = PALMAS_LDO1_CTRL_MODE_ACTIVE;
 
 			/* Check if LDO8 is in tracking mode or not */
 			if (pdata && (id == PALMAS_REG_LDO8) &&
 			    pdata->enable_ldo8_tracking) {
 				palmas_enable_ldo8_track(pmic->palmas);
-				pmic->desc[id].min_uV = 450000;
-				pmic->desc[id].uV_step = 25000;
+				desc->min_uV = 450000;
+				desc->uV_step = 25000;
 			}
 
 			/* LOD6 in vibrator mode will have enable time 2000us */
 			if (pdata && pdata->ldo6_vibrator &&
 			    (id == PALMAS_REG_LDO6))
-				pmic->desc[id].enable_time = 2000;
+				desc->enable_time = 2000;
 		} else {
-			pmic->desc[id].n_voltages = 1;
+			desc->n_voltages = 1;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_extreg;
+				desc->ops = &palmas_ops_ext_control_extreg;
 			else
-				pmic->desc[id].ops = &palmas_ops_extreg;
-			pmic->desc[id].enable_reg =
+				desc->ops = &palmas_ops_extreg;
+			desc->enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
 							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
+			desc->enable_mask = PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
 
 		if (pdata)
@@ -937,11 +932,10 @@ static int palmas_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
@@ -981,6 +975,7 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->ldo_begin; id < ddata->max_reg; id++) {
 		if (pdata && pdata->reg_init[id])
@@ -994,49 +989,43 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc = &pmic->desc[id];
+		desc->name = rinfo->name;
+		desc->id = id;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (id < TPS65917_REG_REGEN1) {
-			pmic->desc[id].n_voltages = PALMAS_LDO_NUM_VOLTAGES;
+			desc->n_voltages = PALMAS_LDO_NUM_VOLTAGES;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_ldo;
+				desc->ops = &palmas_ops_ext_control_ldo;
 			else
-				pmic->desc[id].ops = &tps65917_ops_ldo;
-			pmic->desc[id].min_uV = 900000;
-			pmic->desc[id].uV_step = 50000;
-			pmic->desc[id].linear_min_sel = 1;
-			pmic->desc[id].enable_time = 500;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->vsel_addr);
-			pmic->desc[id].vsel_mask =
-					PALMAS_LDO1_VOLTAGE_VSEL_MASK;
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
-							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_LDO1_CTRL_MODE_ACTIVE;
+				desc->ops = &tps65917_ops_ldo;
+			desc->min_uV = 900000;
+			desc->uV_step = 50000;
+			desc->linear_min_sel = 1;
+			desc->enable_time = 500;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							    rinfo->vsel_addr);
+			desc->vsel_mask = PALMAS_LDO1_VOLTAGE_VSEL_MASK;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_LDO_BASE,
+							      rinfo->ctrl_addr);
+			desc->enable_mask = PALMAS_LDO1_CTRL_MODE_ACTIVE;
 			/*
 			 * To be confirmed. Discussion on going with PMIC Team.
 			 * It is of the order of ~60mV/uS.
 			 */
-			pmic->desc[id].ramp_delay = 2500;
+			desc->ramp_delay = 2500;
 		} else {
-			pmic->desc[id].n_voltages = 1;
+			desc->n_voltages = 1;
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-					&palmas_ops_ext_control_extreg;
+				desc->ops = &palmas_ops_ext_control_extreg;
 			else
-				pmic->desc[id].ops = &palmas_ops_extreg;
-			pmic->desc[id].enable_reg =
+				desc->ops = &palmas_ops_extreg;
+			desc->enable_reg =
 					PALMAS_BASE_TO_REG(PALMAS_RESOURCE_BASE,
 							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_REGEN1_CTRL_MODE_ACTIVE;
+			desc->enable_mask = PALMAS_REGEN1_CTRL_MODE_ACTIVE;
 		}
 
 		if (pdata)
@@ -1044,11 +1033,10 @@ static int tps65917_ldo_registration(struct palmas_pmic *pmic,
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
@@ -1089,6 +1077,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		bool ramp_delay_support = false;
@@ -1128,6 +1117,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 				continue;
 		}
 		rinfo = &ddata->palmas_regs_info[id];
+		desc = &pmic->desc[id];
 
 		if ((id == PALMAS_REG_SMPS6) || (id == PALMAS_REG_SMPS8))
 			ramp_delay_support = true;
@@ -1140,9 +1130,8 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 					"reading TSTEP reg failed: %d\n", ret);
 				return ret;
 			}
-			pmic->desc[id].ramp_delay =
-					palmas_smps_ramp_delay[reg & 0x3];
-			pmic->ramp_delay[id] = pmic->desc[id].ramp_delay;
+			desc->ramp_delay = palmas_smps_ramp_delay[reg & 0x3];
+			pmic->ramp_delay[id] = desc->ramp_delay;
 		}
 
 		/* Initialise sleep/init values from platform data */
@@ -1156,31 +1145,28 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 		}
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
+		desc->name = rinfo->name;
+		desc->id = id;
 
 		switch (id) {
 		case PALMAS_REG_SMPS10_OUT1:
 		case PALMAS_REG_SMPS10_OUT2:
-			pmic->desc[id].n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
-			pmic->desc[id].ops = &palmas_ops_smps10;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							PALMAS_SMPS10_CTRL);
-			pmic->desc[id].vsel_mask = SMPS10_VSEL;
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							PALMAS_SMPS10_CTRL);
+			desc->n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
+			desc->ops = &palmas_ops_smps10;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    PALMAS_SMPS10_CTRL);
+			desc->vsel_mask = SMPS10_VSEL;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    PALMAS_SMPS10_CTRL);
 			if (id == PALMAS_REG_SMPS10_OUT1)
-				pmic->desc[id].enable_mask = SMPS10_SWITCH_EN;
+				desc->enable_mask = SMPS10_SWITCH_EN;
 			else
-				pmic->desc[id].enable_mask = SMPS10_BOOST_EN;
-			pmic->desc[id].bypass_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							PALMAS_SMPS10_CTRL);
-			pmic->desc[id].bypass_mask = SMPS10_BYPASS_EN;
-			pmic->desc[id].min_uV = 3750000;
-			pmic->desc[id].uV_step = 1250000;
+				desc->enable_mask = SMPS10_BOOST_EN;
+			desc->bypass_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    PALMAS_SMPS10_CTRL);
+			desc->bypass_mask = SMPS10_BYPASS_EN;
+			desc->min_uV = 3750000;
+			desc->uV_step = 1250000;
 			break;
 		default:
 			/*
@@ -1190,7 +1176,7 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			 * ranges. Read the current smps mode for later use.
 			 */
 			addr = rinfo->vsel_addr;
-			pmic->desc[id].n_linear_ranges = 3;
+			desc->n_linear_ranges = 3;
 
 			ret = palmas_smps_read(pmic->palmas, addr, &reg);
 			if (ret)
@@ -1198,21 +1184,18 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			if (reg & PALMAS_SMPS12_VOLTAGE_RANGE)
 				pmic->range[id] = 1;
 			if (pmic->range[id])
-				pmic->desc[id].linear_ranges = smps_high_ranges;
+				desc->linear_ranges = smps_high_ranges;
 			else
-				pmic->desc[id].linear_ranges = smps_low_ranges;
+				desc->linear_ranges = smps_low_ranges;
 
 			if (reg_init && reg_init->roof_floor)
-				pmic->desc[id].ops =
-						&palmas_ops_ext_control_smps;
+				desc->ops = &palmas_ops_ext_control_smps;
 			else
-				pmic->desc[id].ops = &palmas_ops_smps;
-			pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
-			pmic->desc[id].vsel_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							   rinfo->vsel_addr);
-			pmic->desc[id].vsel_mask =
-					PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
+				desc->ops = &palmas_ops_smps;
+			desc->n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
+			desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							    rinfo->vsel_addr);
+			desc->vsel_mask = PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
 
 			/* Read the smps mode for later use. */
 			addr = rinfo->ctrl_addr;
@@ -1222,28 +1205,25 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 			pmic->current_reg_mode[id] = reg &
 					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
-			pmic->desc[id].enable_reg =
-					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-							   rinfo->ctrl_addr);
-			pmic->desc[id].enable_mask =
-					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+			desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+							      rinfo->ctrl_addr);
+			desc->enable_mask = PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 			/* set_mode overrides this value */
-			pmic->desc[id].enable_val = SMPS_CTRL_MODE_ON;
+			desc->enable_val = SMPS_CTRL_MODE_ON;
 		}
 
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (pdata)
 			config.init_data = pdata->reg_data[id];
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
@@ -1269,13 +1249,15 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 	struct regulator_dev *rdev;
 	struct palmas_reg_init *reg_init;
 	struct palmas_regs_info *rinfo;
+	struct regulator_desc *desc;
 
 	for (id = ddata->smps_start; id <= ddata->smps_end; id++) {
 		/*
 		 * Miss out regulators which are not available due
 		 * to slaving configurations.
 		 */
-		pmic->desc[id].n_linear_ranges = 3;
+		desc = &pmic->desc[id];
+		desc->n_linear_ranges = 3;
 		if ((id == TPS65917_REG_SMPS2) && pmic->smps12)
 			continue;
 
@@ -1291,8 +1273,8 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		rinfo = &ddata->palmas_regs_info[id];
 
 		/* Register the regulators */
-		pmic->desc[id].name = rinfo->name;
-		pmic->desc[id].id = id;
+		desc->name = rinfo->name;
+		desc->id = id;
 
 		/*
 		 * Read and store the RANGE bit for later use
@@ -1309,24 +1291,19 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 			pmic->range[id] = 1;
 
 		if (pmic->range[id])
-				pmic->desc[id].linear_ranges = smps_high_ranges;
-			else
-				pmic->desc[id].linear_ranges = smps_low_ranges;
-
+			desc->linear_ranges = smps_high_ranges;
+		else
+			desc->linear_ranges = smps_low_ranges;
 
 		if (reg_init && reg_init->roof_floor)
-			pmic->desc[id].ops =
-					&tps65917_ops_ext_control_smps;
+			desc->ops = &tps65917_ops_ext_control_smps;
 		else
-			pmic->desc[id].ops = &tps65917_ops_smps;
-		pmic->desc[id].n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
-		pmic->desc[id].vsel_reg =
-				PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
-						   rinfo->vsel_addr);
-		pmic->desc[id].vsel_mask =
-				PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
-
-		pmic->desc[id].ramp_delay = 2500;
+			desc->ops = &tps65917_ops_smps;
+		desc->n_voltages = PALMAS_SMPS_NUM_VOLTAGES;
+		desc->vsel_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+						    rinfo->vsel_addr);
+		desc->vsel_mask = PALMAS_SMPS12_VOLTAGE_VSEL_MASK;
+		desc->ramp_delay = 2500;
 
 		/* Read the smps mode for later use. */
 		addr = rinfo->ctrl_addr;
@@ -1336,19 +1313,18 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 		pmic->current_reg_mode[id] = reg &
 				PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
-		pmic->desc[id].type = REGULATOR_VOLTAGE;
-		pmic->desc[id].owner = THIS_MODULE;
+		desc->type = REGULATOR_VOLTAGE;
+		desc->owner = THIS_MODULE;
 
 		if (pdata)
 			config.init_data = pdata->reg_data[id];
 		else
 			config.init_data = NULL;
 
-		pmic->desc[id].supply_name = rinfo->sname;
+		desc->supply_name = rinfo->sname;
 		config.of_node = ddata->palmas_matches[id].of_node;
 
-		rdev = devm_regulator_register(pmic->dev, &pmic->desc[id],
-					       &config);
+		rdev = devm_regulator_register(pmic->dev, desc, &config);
 		if (IS_ERR(rdev)) {
 			dev_err(pmic->dev,
 				"failed to register %s regulator\n",
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 6/6] regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 15:57   ` Nishanth Menon
  -1 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

We use regmap regulator ops to enable/disable and check if regulator
is enabled for various SMPS. However, these depend on valid
enable_reg, enable_mask and enable_value in regulator descriptor.

So, similar to fix we did in commit 318dbb02b50c
("regulator: palmas: Fix SMPS enable/disable/is_enabled"), populate the
same for TPS65917 SMPS registration. LDO definitions are already in
place.

Fixes: d6f83370ed97 ("regulator: palmas: Add tps65917 PMIC support")
Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index ae0f639..a7ce34d 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -1312,6 +1312,11 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 			return ret;
 		pmic->current_reg_mode[id] = reg &
 				PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+		desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+						      rinfo->ctrl_addr);
+		desc->enable_mask = PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+		/* set_mode overrides this value */
+		desc->enable_val = SMPS_CTRL_MODE_ON;
 
 		desc->type = REGULATOR_VOLTAGE;
 		desc->owner = THIS_MODULE;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH V2 6/6] regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917
@ 2014-06-30 15:57   ` Nishanth Menon
  0 siblings, 0 replies; 23+ messages in thread
From: Nishanth Menon @ 2014-06-30 15:57 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra, Nishanth Menon

We use regmap regulator ops to enable/disable and check if regulator
is enabled for various SMPS. However, these depend on valid
enable_reg, enable_mask and enable_value in regulator descriptor.

So, similar to fix we did in commit 318dbb02b50c
("regulator: palmas: Fix SMPS enable/disable/is_enabled"), populate the
same for TPS65917 SMPS registration. LDO definitions are already in
place.

Fixes: d6f83370ed97 ("regulator: palmas: Add tps65917 PMIC support")
Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/regulator/palmas-regulator.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index ae0f639..a7ce34d 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -1312,6 +1312,11 @@ static int tps65917_smps_registration(struct palmas_pmic *pmic,
 			return ret;
 		pmic->current_reg_mode[id] = reg &
 				PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+		desc->enable_reg = PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+						      rinfo->ctrl_addr);
+		desc->enable_mask = PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+		/* set_mode overrides this value */
+		desc->enable_val = SMPS_CTRL_MODE_ON;
 
 		desc->type = REGULATOR_VOLTAGE;
 		desc->owner = THIS_MODULE;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-06-30 20:22     ` Stephen Warren
  -1 siblings, 0 replies; 23+ messages in thread
From: Stephen Warren @ 2014-06-30 20:22 UTC (permalink / raw)
  To: Nishanth Menon, Liam Girdwood, Mark Brown, Samuel Ortiz,
	Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

On 06/30/2014 09:57 AM, Nishanth Menon wrote:
> Hi,
> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
> 
> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).
> 
> Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.
> 
> The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes

The series,
Tested-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

(An NVIDIA Dalmore board boots and shuts down OK with these applied on
top of next-20140630, and various peripherals such as LCD panel, audio,
USB, and SPI flash all work)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
@ 2014-06-30 20:22     ` Stephen Warren
  0 siblings, 0 replies; 23+ messages in thread
From: Stephen Warren @ 2014-06-30 20:22 UTC (permalink / raw)
  To: Nishanth Menon, Liam Girdwood, Mark Brown, Samuel Ortiz,
	Lee Jones, Keerthy J
  Cc: Tero Kristo, linux-kernel, linux-omap, linux-tegra

On 06/30/2014 09:57 AM, Nishanth Menon wrote:
> Hi,
> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
> 
> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).
> 
> Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.
> 
> The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes

The series,
Tested-by: Stephen Warren <swarren@nvidia.com>

(An NVIDIA Dalmore board boots and shuts down OK with these applied on
top of next-20140630, and various peripherals such as LCD panel, audio,
USB, and SPI flash all work)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
  2014-06-30 20:22     ` Stephen Warren
@ 2014-07-01  5:14         ` Keerthy
  -1 siblings, 0 replies; 23+ messages in thread
From: Keerthy @ 2014-07-01  5:14 UTC (permalink / raw)
  To: Stephen Warren
  Cc: Nishanth Menon, Liam Girdwood, Mark Brown, Samuel Ortiz,
	Lee Jones, Keerthy J, Tero Kristo,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

On Tuesday 01 July 2014 01:52 AM, Stephen Warren wrote:
> On 06/30/2014 09:57 AM, Nishanth Menon wrote:
>> Hi,
>> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
>> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
>> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
>>
>> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).
>>
>> Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.
>>
>> The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes
> The series,
> Tested-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>
> (An NVIDIA Dalmore board boots and shuts down OK with these applied on
> top of next-20140630, and various peripherals such as LCD panel, audio,
> USB, and SPI flash all work)
Tested the series on DRA72 board. Checked for all the regulator
and SMPS states and voltages of TPS65917 PMIC.

Tested-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>

Regards,
Keerthy

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
@ 2014-07-01  5:14         ` Keerthy
  0 siblings, 0 replies; 23+ messages in thread
From: Keerthy @ 2014-07-01  5:14 UTC (permalink / raw)
  To: Stephen Warren
  Cc: Nishanth Menon, Liam Girdwood, Mark Brown, Samuel Ortiz,
	Lee Jones, Keerthy J, Tero Kristo, linux-kernel, linux-omap,
	linux-tegra

On Tuesday 01 July 2014 01:52 AM, Stephen Warren wrote:
> On 06/30/2014 09:57 AM, Nishanth Menon wrote:
>> Hi,
>> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
>> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
>> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
>>
>> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).
>>
>> Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.
>>
>> The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes
> The series,
> Tested-by: Stephen Warren <swarren@nvidia.com>
>
> (An NVIDIA Dalmore board boots and shuts down OK with these applied on
> top of next-20140630, and various peripherals such as LCD panel, audio,
> USB, and SPI flash all work)
Tested the series on DRA72 board. Checked for all the regulator
and SMPS states and voltages of TPS65917 PMIC.

Tested-by: Keerthy <j-keerthy@ti.com>

Regards,
Keerthy


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 2/6] regulator: palmas: Rename reg_info to palmas_reg_info
  2014-06-30 15:57   ` Nishanth Menon
@ 2014-07-01  7:41     ` Lee Jones
  -1 siblings, 0 replies; 23+ messages in thread
From: Lee Jones @ 2014-07-01  7:41 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Liam Girdwood, Mark Brown, Samuel Ortiz, Keerthy J, Tero Kristo,
	linux-kernel, linux-omap, linux-tegra

On Mon, 30 Jun 2014, Nishanth Menon wrote:

> reg_info is a generic term which might cause conflict at a later point
> in time. To prevent such a thing from occuring in future, rename to
> palmas_reg_info.
> 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  drivers/regulator/palmas-regulator.c |    4 ++--
>  include/linux/mfd/palmas.h           |    4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)

Acked-by: Lee Jones <lee.jones@linaro.org>

> diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
> index 91f60fa..05f11b9 100644
> --- a/drivers/regulator/palmas-regulator.c
> +++ b/drivers/regulator/palmas-regulator.c
> @@ -41,7 +41,7 @@ static const struct regulator_linear_range smps_high_ranges[] = {
>  	REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0),
>  };
>  
> -static struct regs_info palmas_regs_info[] = {
> +static struct palmas_regs_info palmas_regs_info[] = {
>  	{
>  		.name		= "SMPS12",
>  		.sname		= "smps1-in",
> @@ -227,7 +227,7 @@ static struct regs_info palmas_regs_info[] = {
>  	},
>  };
>  
> -static struct regs_info tps65917_regs_info[] = {
> +static struct palmas_regs_info tps65917_regs_info[] = {
>  	{
>  		.name		= "SMPS1",
>  		.sname		= "smps1-in",
> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
> index 1a045ba..fb0390a 100644
> --- a/include/linux/mfd/palmas.h
> +++ b/include/linux/mfd/palmas.h
> @@ -102,7 +102,7 @@ struct palmas_sleep_requestor_info {
>  	int bit_pos;
>  };
>  
> -struct regs_info {
> +struct palmas_regs_info {
>  	char	*name;
>  	char	*sname;
>  	u8	vsel_addr;
> @@ -117,7 +117,7 @@ struct palmas_pmic_driver_data {
>  	int ldo_begin;
>  	int ldo_end;
>  	int max_reg;
> -	struct regs_info *palmas_regs_info;
> +	struct palmas_regs_info *palmas_regs_info;
>  	struct of_regulator_match *palmas_matches;
>  	struct palmas_sleep_requestor_info *sleep_req_info;
>  	int (*smps_register)(struct palmas_pmic *pmic,

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 2/6] regulator: palmas: Rename reg_info to palmas_reg_info
@ 2014-07-01  7:41     ` Lee Jones
  0 siblings, 0 replies; 23+ messages in thread
From: Lee Jones @ 2014-07-01  7:41 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Liam Girdwood, Mark Brown, Samuel Ortiz, Keerthy J, Tero Kristo,
	linux-kernel, linux-omap, linux-tegra

On Mon, 30 Jun 2014, Nishanth Menon wrote:

> reg_info is a generic term which might cause conflict at a later point
> in time. To prevent such a thing from occuring in future, rename to
> palmas_reg_info.
> 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  drivers/regulator/palmas-regulator.c |    4 ++--
>  include/linux/mfd/palmas.h           |    4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)

Acked-by: Lee Jones <lee.jones@linaro.org>

> diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
> index 91f60fa..05f11b9 100644
> --- a/drivers/regulator/palmas-regulator.c
> +++ b/drivers/regulator/palmas-regulator.c
> @@ -41,7 +41,7 @@ static const struct regulator_linear_range smps_high_ranges[] = {
>  	REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0),
>  };
>  
> -static struct regs_info palmas_regs_info[] = {
> +static struct palmas_regs_info palmas_regs_info[] = {
>  	{
>  		.name		= "SMPS12",
>  		.sname		= "smps1-in",
> @@ -227,7 +227,7 @@ static struct regs_info palmas_regs_info[] = {
>  	},
>  };
>  
> -static struct regs_info tps65917_regs_info[] = {
> +static struct palmas_regs_info tps65917_regs_info[] = {
>  	{
>  		.name		= "SMPS1",
>  		.sname		= "smps1-in",
> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
> index 1a045ba..fb0390a 100644
> --- a/include/linux/mfd/palmas.h
> +++ b/include/linux/mfd/palmas.h
> @@ -102,7 +102,7 @@ struct palmas_sleep_requestor_info {
>  	int bit_pos;
>  };
>  
> -struct regs_info {
> +struct palmas_regs_info {
>  	char	*name;
>  	char	*sname;
>  	u8	vsel_addr;
> @@ -117,7 +117,7 @@ struct palmas_pmic_driver_data {
>  	int ldo_begin;
>  	int ldo_end;
>  	int max_reg;
> -	struct regs_info *palmas_regs_info;
> +	struct palmas_regs_info *palmas_regs_info;
>  	struct of_regulator_match *palmas_matches;
>  	struct palmas_sleep_requestor_info *sleep_req_info;
>  	int (*smps_register)(struct palmas_pmic *pmic,

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
  2014-06-30 15:57 ` Nishanth Menon
@ 2014-07-02  5:15     ` Keerthy
  -1 siblings, 0 replies; 23+ messages in thread
From: Keerthy @ 2014-07-02  5:15 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J,
	Tero Kristo, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

On Monday 30 June 2014 09:27 PM, Nishanth Menon wrote:
> Hi,
> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
>
> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).
>
> Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.
>
> The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes
> 		
For the series:

  Acked-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>
>       
> Nishanth Menon (6):
>    regulator: palmas: Squelch sparse warnings
>    regulator: palmas: Rename reg_info to palmas_reg_info
>    regulator: palmas: Simplify code by using pointer to palmas_reg_info
>    regulator: palmas: Rename palmas_regs_info to
>      palmas_generic_regs_info
>    regulator: palmas: Simplify code by not indexing regulator_desc
>      unnecessarily
>    regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917
>
>   drivers/regulator/palmas-regulator.c |  344 ++++++++++++++++------------------
>   include/linux/mfd/palmas.h           |    4 +-
>   2 files changed, 166 insertions(+), 182 deletions(-)
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
@ 2014-07-02  5:15     ` Keerthy
  0 siblings, 0 replies; 23+ messages in thread
From: Keerthy @ 2014-07-02  5:15 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Liam Girdwood, Mark Brown, Samuel Ortiz, Lee Jones, Keerthy J,
	Tero Kristo, linux-kernel, linux-omap, linux-tegra

On Monday 30 June 2014 09:27 PM, Nishanth Menon wrote:
> Hi,
> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
>
> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).
>
> Basic cpufreq tests performed on OMAP5uEVM, DRA7-evm, DRA72-evm all of which are palmas variants.
>
> The patches are also available here: https://github.com/nmenon/linux-2.6-playground/commits/broonie-topic-palmas-fixes
> 		
For the series:

  Acked-by: Keerthy <j-keerthy@ti.com>
>       
> Nishanth Menon (6):
>    regulator: palmas: Squelch sparse warnings
>    regulator: palmas: Rename reg_info to palmas_reg_info
>    regulator: palmas: Simplify code by using pointer to palmas_reg_info
>    regulator: palmas: Rename palmas_regs_info to
>      palmas_generic_regs_info
>    regulator: palmas: Simplify code by not indexing regulator_desc
>      unnecessarily
>    regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917
>
>   drivers/regulator/palmas-regulator.c |  344 ++++++++++++++++------------------
>   include/linux/mfd/palmas.h           |    4 +-
>   2 files changed, 166 insertions(+), 182 deletions(-)
>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH V2 0/6] regulator: palmas: cleanup and fixes
  2014-06-30 15:57 ` Nishanth Menon
                   ` (6 preceding siblings ...)
  (?)
@ 2014-07-03 14:26 ` Mark Brown
  -1 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2014-07-03 14:26 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Liam Girdwood, Samuel Ortiz, Lee Jones, Keerthy J, Tero Kristo,
	linux-kernel, linux-omap, linux-tegra

[-- Attachment #1: Type: text/plain, Size: 557 bytes --]

On Mon, Jun 30, 2014 at 10:57:33AM -0500, Nishanth Menon wrote:
> Hi,
> 	Original thread (v1): http://marc.info/?t=140380766500004&r=1&w=2
> This series is based on: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
> branch: topic/palmas (4c0c9ca Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas)
> 
> This series does a few cleanups to help ensure we dont make typo mistakes and finally provides a fix as attempted by (v1).

Applied all, thanks.  Please fix your mailer to word wrap within
paragraphs.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2014-07-03 14:26 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-30 15:57 [PATCH V2 0/6] regulator: palmas: cleanup and fixes Nishanth Menon
2014-06-30 15:57 ` Nishanth Menon
2014-06-30 15:57 ` [PATCH V2 1/6] regulator: palmas: Squelch sparse warnings Nishanth Menon
2014-06-30 15:57   ` Nishanth Menon
2014-06-30 15:57 ` [PATCH V2 2/6] regulator: palmas: Rename reg_info to palmas_reg_info Nishanth Menon
2014-06-30 15:57   ` Nishanth Menon
2014-07-01  7:41   ` Lee Jones
2014-07-01  7:41     ` Lee Jones
2014-06-30 15:57 ` [PATCH V2 3/6] regulator: palmas: Simplify code by using pointer " Nishanth Menon
2014-06-30 15:57   ` Nishanth Menon
2014-06-30 15:57 ` [PATCH V2 4/6] regulator: palmas: Rename palmas_regs_info to palmas_generic_regs_info Nishanth Menon
2014-06-30 15:57   ` Nishanth Menon
     [not found] ` <1404143859-8160-1-git-send-email-nm-l0cyMroinI0@public.gmane.org>
2014-06-30 15:57   ` [PATCH V2 5/6] regulator: palmas: Simplify code by not indexing regulator_desc unnecessarily Nishanth Menon
2014-06-30 15:57     ` Nishanth Menon
2014-06-30 20:22   ` [PATCH V2 0/6] regulator: palmas: cleanup and fixes Stephen Warren
2014-06-30 20:22     ` Stephen Warren
     [not found]     ` <53B1C6EC.7070907-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-07-01  5:14       ` Keerthy
2014-07-01  5:14         ` Keerthy
2014-07-02  5:15   ` Keerthy
2014-07-02  5:15     ` Keerthy
2014-06-30 15:57 ` [PATCH V2 6/6] regulator: palmas: Fix SMPS enable/disable/is_enable for tps65917 Nishanth Menon
2014-06-30 15:57   ` Nishanth Menon
2014-07-03 14:26 ` [PATCH V2 0/6] regulator: palmas: cleanup and fixes Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.