linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] regulator: tps65218: Clean ups
@ 2016-05-11  5:48 Keerthy
  2016-05-11  5:48 ` [PATCH 1/8] mfd: tps65218: Remove redundant read wrapper Keerthy
                   ` (7 more replies)
  0 siblings, 8 replies; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

The series cleans up mainly the regulator driver and implements
the device tree parsing using the regulator framework. Removes
all the redundant compatibles for the individual regulators.

One of the patch removes redundant read wrapper and makes
use of regmap_read wherever necessary.

The series is checked for all the regulator registrations on
am437x-gp-evm and am437x-sk-evm.

Keerthy (8):
  mfd: tps65218: Remove redundant read wrapper
  Documentation: regulator: tps65218: Updates according to changes with
    parsing
  mfd: tps65218: Use mfd_add_devices instead of of_platform_populate
  regulator: tps65218: Remove all the compatibles
  ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles
  ARM: dts: AM437X-SK-EVM: Remove redundant regulator compatibles
  ARM: dts: AM437X-CM-T43: Remove redundant regulator compatibles
  ARM: dts: AM43X-EPOS-EVM: Remove redundant regulator compatibles

 .../devicetree/bindings/regulator/tps65218.txt     |  88 +++++++++++---
 arch/arm/boot/dts/am437x-cm-t43.dts                |   6 -
 arch/arm/boot/dts/am437x-gp-evm.dts                |   6 -
 arch/arm/boot/dts/am437x-sk-evm.dts                |   5 -
 arch/arm/boot/dts/am43x-epos-evm.dts               |   7 --
 drivers/mfd/tps65218.c                             |  24 ++--
 drivers/regulator/tps65218-regulator.c             | 134 ++++++++-------------
 include/linux/mfd/tps65218.h                       |   2 -
 8 files changed, 127 insertions(+), 145 deletions(-)

-- 
1.9.1

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

* [PATCH 1/8] mfd: tps65218: Remove redundant read wrapper
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-05-11  5:48 ` [PATCH 2/8] Documentation: regulator: tps65218: Update examples Keerthy
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

Currently read directly calls the repmap read function. Hence
remove the redundant wrapper and use regmap read wherever
needed.

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

diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
index 80b9dc3..f20a531 100644
--- a/drivers/mfd/tps65218.c
+++ b/drivers/mfd/tps65218.c
@@ -34,20 +34,6 @@
 #define TPS65218_PASSWORD_REGS_UNLOCK   0x7D
 
 /**
- * tps65218_reg_read: Read a single tps65218 register.
- *
- * @tps: Device to read from.
- * @reg: Register to read.
- * @val: Contians the value
- */
-int tps65218_reg_read(struct tps65218 *tps, unsigned int reg,
-			unsigned int *val)
-{
-	return regmap_read(tps->regmap, reg, val);
-}
-EXPORT_SYMBOL_GPL(tps65218_reg_read);
-
-/**
  * tps65218_reg_write: Write a single tps65218 register.
  *
  * @tps65218: Device to write to.
@@ -93,7 +79,7 @@ static int tps65218_update_bits(struct tps65218 *tps, unsigned int reg,
 	int ret;
 	unsigned int data;
 
-	ret = tps65218_reg_read(tps, reg, &data);
+	ret = regmap_read(tps->regmap, reg, &data);
 	if (ret) {
 		dev_err(tps->dev, "Read from reg 0x%x failed\n", reg);
 		return ret;
diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c
index a5e5634..679ab2f 100644
--- a/drivers/regulator/tps65218-regulator.c
+++ b/drivers/regulator/tps65218-regulator.c
@@ -22,6 +22,7 @@
 #include <linux/err.h>
 #include <linux/platform_device.h>
 #include <linux/of_device.h>
+#include <linux/regmap.h>
 #include <linux/regulator/of_regulator.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
@@ -224,7 +225,7 @@ static int tps65218_pmic_get_current_limit(struct regulator_dev *dev)
 	unsigned int index;
 	struct tps65218 *tps = rdev_get_drvdata(dev);
 
-	retval = tps65218_reg_read(tps, dev->desc->csel_reg, &index);
+	retval = regmap_read(tps->regmap, dev->desc->csel_reg, &index);
 	if (retval < 0)
 		return retval;
 
diff --git a/include/linux/mfd/tps65218.h b/include/linux/mfd/tps65218.h
index d58f3b5..7c9241f 100644
--- a/include/linux/mfd/tps65218.h
+++ b/include/linux/mfd/tps65218.h
@@ -276,8 +276,6 @@ struct tps65218 {
 	struct regmap *regmap;
 };
 
-int tps65218_reg_read(struct tps65218 *tps, unsigned int reg,
-					unsigned int *val);
 int tps65218_reg_write(struct tps65218 *tps, unsigned int reg,
 			unsigned int val, unsigned int level);
 int tps65218_set_bits(struct tps65218 *tps, unsigned int reg,
-- 
1.9.1

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

* [PATCH 2/8] Documentation: regulator: tps65218: Update examples
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
  2016-05-11  5:48 ` [PATCH 1/8] mfd: tps65218: Remove redundant read wrapper Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-05-16 14:48   ` Rob Herring
  2016-05-11  5:48 ` [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

This updates the device tree according to the preferred way of parsing
the nodes using the regulator framework.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 .../devicetree/bindings/regulator/tps65218.txt     | 87 ++++++++++++++++++----
 1 file changed, 71 insertions(+), 16 deletions(-)

diff --git a/Documentation/devicetree/bindings/regulator/tps65218.txt b/Documentation/devicetree/bindings/regulator/tps65218.txt
index fccc1d2..8d3d919 100644
--- a/Documentation/devicetree/bindings/regulator/tps65218.txt
+++ b/Documentation/devicetree/bindings/regulator/tps65218.txt
@@ -1,23 +1,78 @@
 TPS65218 family of regulators
 
 Required properties:
-For tps65218 regulators/LDOs
-- compatible:
-  - "ti,tps65218-dcdc1" for DCDC1
-  - "ti,tps65218-dcdc2" for DCDC2
-  - "ti,tps65218-dcdc3" for DCDC3
-  - "ti,tps65218-dcdc4" for DCDC4
-  - "ti,tps65218-dcdc5" for DCDC5
-  - "ti,tps65218-dcdc6" for DCDC6
-  - "ti,tps65218-ldo1" for LDO1
-
-Optional properties:
-- Any optional property defined in bindings/regulator/regulator.txt
+- compatible: "ti,tps65218"
+- reg: I2C slave address
+- list of regulators provided by this controller, must be named
+  after their hardware counterparts: dcdc[1-6] and ldo1
+- This is the list of child nodes that specify the regulator
+  initialization data for defined regulators. Not all regulators for the given
+  device need to be present. The definition for each of these nodes is defined
+  using the standard binding for regulators found at
+  Documentation/devicetree/bindings/regulator/regulator.txt.
+
+  The valid names for regulators are:
+  tps65217: regulator-dcdc1, regulator-dcdc2, regulator-dcdc3, regulator-dcdc4,
+  regulator-dcdc5, regulator-dcdc6, regulator-ldo1, regulator-ls3
+  Each regulator is defined using the standard binding for regulators.
 
 Example:
+tps65218: tps65218@24 {
+	reg = <0x24>;
+	compatible = "ti,tps65218";
+	interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* NMIn */
+	interrupt-controller;
+	#interrupt-cells = <2>;
+
+	dcdc1: regulator-dcdc1 {
+		regulator-name = "vdd_core";
+		regulator-min-microvolt = <912000>;
+		regulator-max-microvolt = <1144000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	dcdc2: regulator-dcdc2 {
+		regulator-name = "vdd_mpu";
+		regulator-min-microvolt = <912000>;
+		regulator-max-microvolt = <1378000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	dcdc3: regulator-dcdc3 {
+		regulator-name = "vdcdc3";
+		regulator-min-microvolt = <1500000>;
+		regulator-max-microvolt = <1500000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	dcdc5: regulator-dcdc5 {
+		regulator-name = "v1_0bat";
+		regulator-min-microvolt = <1000000>;
+		regulator-max-microvolt = <1000000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	dcdc6: regulator-dcdc6 {
+		regulator-name = "v1_8bat";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	ldo1: regulator-ldo1 {
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
 
-	xyz: regulator@0 {
-		compatible = "ti,tps65218-dcdc1";
-		regulator-min-microvolt  = <1000000>;
-		regulator-max-microvolt  = <3000000>;
+	ls3: regulator-ls3 {
+		regulator-min-microvolt = <100000>;
+		regulator-max-microvolt = <1000000>;
 	};
+};
-- 
1.9.1

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

* [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
  2016-05-11  5:48 ` [PATCH 1/8] mfd: tps65218: Remove redundant read wrapper Keerthy
  2016-05-11  5:48 ` [PATCH 2/8] Documentation: regulator: tps65218: Update examples Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-06-03 11:08   ` Keerthy
  2016-06-08 15:50   ` Lee Jones
  2016-05-11  5:48 ` [PATCH 4/8] regulator: tps65218: Remove all the compatibles Keerthy
                   ` (4 subsequent siblings)
  7 siblings, 2 replies; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

mfd_add_devices enables parsing device tree nodes without compatibles
for child nodes. Replace of_platform_populate with mfd_add_devices.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 drivers/mfd/tps65218.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
index f20a531..b8b3a58 100644
--- a/drivers/mfd/tps65218.c
+++ b/drivers/mfd/tps65218.c
@@ -33,6 +33,10 @@
 
 #define TPS65218_PASSWORD_REGS_UNLOCK   0x7D
 
+static const struct mfd_cell tps65218_cells[] = {
+	{ .name = "tps65218-regulator", },
+};
+
 /**
  * tps65218_reg_write: Write a single tps65218 register.
  *
@@ -236,8 +240,10 @@ static int tps65218_probe(struct i2c_client *client,
 	if (ret < 0)
 		return ret;
 
-	ret = of_platform_populate(client->dev.of_node, NULL, NULL,
-				   &client->dev);
+	ret = mfd_add_devices(tps->dev, PLATFORM_DEVID_AUTO, tps65218_cells,
+			      ARRAY_SIZE(tps65218_cells), NULL, 0,
+			      regmap_irq_get_domain(tps->irq_data));
+
 	if (ret < 0)
 		goto err_irq;
 
-- 
1.9.1

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

* [PATCH 4/8] regulator: tps65218: Remove all the compatibles
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
                   ` (2 preceding siblings ...)
  2016-05-11  5:48 ` [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-05-11 10:21   ` Mark Brown
  2016-05-11  5:48 ` [PATCH 5/8] ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles Keerthy
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

Remove all the individual compatibles for all the regulators
and introduce id_table and update the driver accordingly
to parse device tree nodes using the regulator framework.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 drivers/regulator/tps65218-regulator.c | 131 +++++++++++----------------------
 1 file changed, 45 insertions(+), 86 deletions(-)

diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c
index 679ab2f..8106cc4 100644
--- a/drivers/regulator/tps65218-regulator.c
+++ b/drivers/regulator/tps65218-regulator.c
@@ -31,10 +31,11 @@
 enum tps65218_regulators { DCDC1, DCDC2, DCDC3, DCDC4,
 			   DCDC5, DCDC6, LDO1, LS3 };
 
-#define TPS65218_REGULATOR(_name, _id, _type, _ops, _n, _vr, _vm, _er, _em, \
-			    _cr, _cm, _lr, _nlr, _delay, _fuv)		\
+#define TPS65218_REGULATOR(_name, _of,  _id, _type, _ops, _n, _vr, _vm, _er,\
+			   _em,  _cr, _cm, _lr, _nlr, _delay, _fuv)	\
 	{							\
 		.name			= _name,		\
+		.of_match		= _of,			\
 		.id			= _id,			\
 		.ops			= &_ops,		\
 		.n_voltages		= _n,			\
@@ -53,14 +54,6 @@ enum tps65218_regulators { DCDC1, DCDC2, DCDC3, DCDC4,
 		.fixed_uV		= _fuv			\
 	}							\
 
-#define TPS65218_INFO(_id, _nm, _min, _max)	\
-	[_id] = {					\
-		.id		= _id,			\
-		.name		= _nm,			\
-		.min_uV		= _min,			\
-		.max_uV		= _max,			\
-	}
-
 static const struct regulator_linear_range dcdc1_dcdc2_ranges[] = {
 	REGULATOR_LINEAR_RANGE(850000, 0x0, 0x32, 10000),
 	REGULATOR_LINEAR_RANGE(1375000, 0x33, 0x3f, 25000),
@@ -76,36 +69,6 @@ static const struct regulator_linear_range dcdc4_ranges[] = {
 	REGULATOR_LINEAR_RANGE(1600000, 0x10, 0x34, 50000),
 };
 
-static struct tps_info tps65218_pmic_regs[] = {
-	TPS65218_INFO(DCDC1, "DCDC1", 850000, 1675000),
-	TPS65218_INFO(DCDC2, "DCDC2", 850000, 1675000),
-	TPS65218_INFO(DCDC3, "DCDC3", 900000, 3400000),
-	TPS65218_INFO(DCDC4, "DCDC4", 1175000, 3400000),
-	TPS65218_INFO(DCDC5, "DCDC5", 1000000, 1000000),
-	TPS65218_INFO(DCDC6, "DCDC6", 1800000, 1800000),
-	TPS65218_INFO(LDO1, "LDO1", 900000, 3400000),
-	TPS65218_INFO(LS3, "LS3", -1, -1),
-};
-
-#define TPS65218_OF_MATCH(comp, label) \
-	{ \
-		.compatible = comp, \
-		.data = &label, \
-	}
-
-static const struct of_device_id tps65218_of_match[] = {
-	TPS65218_OF_MATCH("ti,tps65218-dcdc1", tps65218_pmic_regs[DCDC1]),
-	TPS65218_OF_MATCH("ti,tps65218-dcdc2", tps65218_pmic_regs[DCDC2]),
-	TPS65218_OF_MATCH("ti,tps65218-dcdc3", tps65218_pmic_regs[DCDC3]),
-	TPS65218_OF_MATCH("ti,tps65218-dcdc4", tps65218_pmic_regs[DCDC4]),
-	TPS65218_OF_MATCH("ti,tps65218-dcdc5", tps65218_pmic_regs[DCDC5]),
-	TPS65218_OF_MATCH("ti,tps65218-dcdc6", tps65218_pmic_regs[DCDC6]),
-	TPS65218_OF_MATCH("ti,tps65218-ldo1", tps65218_pmic_regs[LDO1]),
-	TPS65218_OF_MATCH("ti,tps65218-ls3", tps65218_pmic_regs[LS3]),
-	{ }
-};
-MODULE_DEVICE_TABLE(of, tps65218_of_match);
-
 static int tps65218_pmic_set_voltage_sel(struct regulator_dev *dev,
 					 unsigned selector)
 {
@@ -251,92 +214,88 @@ static struct regulator_ops tps65218_dcdc56_pmic_ops = {
 };
 
 static const struct regulator_desc regulators[] = {
-	TPS65218_REGULATOR("DCDC1", TPS65218_DCDC_1, REGULATOR_VOLTAGE,
-			   tps65218_dcdc12_ops, 64, TPS65218_REG_CONTROL_DCDC1,
+	TPS65218_REGULATOR("DCDC1", "regulator-dcdc1", TPS65218_DCDC_1,
+			   REGULATOR_VOLTAGE, tps65218_dcdc12_ops, 64,
+			   TPS65218_REG_CONTROL_DCDC1,
 			   TPS65218_CONTROL_DCDC1_MASK, TPS65218_REG_ENABLE1,
 			   TPS65218_ENABLE1_DC1_EN, 0, 0, dcdc1_dcdc2_ranges,
 			   2, 4000, 0),
-	TPS65218_REGULATOR("DCDC2", TPS65218_DCDC_2, REGULATOR_VOLTAGE,
-			   tps65218_dcdc12_ops, 64, TPS65218_REG_CONTROL_DCDC2,
+	TPS65218_REGULATOR("DCDC2", "regulator-dcdc2", TPS65218_DCDC_2,
+			   REGULATOR_VOLTAGE, tps65218_dcdc12_ops, 64,
+			   TPS65218_REG_CONTROL_DCDC2,
 			   TPS65218_CONTROL_DCDC2_MASK, TPS65218_REG_ENABLE1,
 			   TPS65218_ENABLE1_DC2_EN, 0, 0, dcdc1_dcdc2_ranges,
 			   2, 4000, 0),
-	TPS65218_REGULATOR("DCDC3", TPS65218_DCDC_3, REGULATOR_VOLTAGE,
-			   tps65218_ldo1_dcdc34_ops, 64,
+	TPS65218_REGULATOR("DCDC3", "regulator-dcdc3", TPS65218_DCDC_3,
+			   REGULATOR_VOLTAGE, tps65218_ldo1_dcdc34_ops, 64,
 			   TPS65218_REG_CONTROL_DCDC3,
 			   TPS65218_CONTROL_DCDC3_MASK, TPS65218_REG_ENABLE1,
 			   TPS65218_ENABLE1_DC3_EN, 0, 0, ldo1_dcdc3_ranges, 2,
 			   0, 0),
-	TPS65218_REGULATOR("DCDC4", TPS65218_DCDC_4, REGULATOR_VOLTAGE,
-			   tps65218_ldo1_dcdc34_ops, 53,
+	TPS65218_REGULATOR("DCDC4", "regulator-dcdc4", TPS65218_DCDC_4,
+			   REGULATOR_VOLTAGE, tps65218_ldo1_dcdc34_ops, 53,
 			   TPS65218_REG_CONTROL_DCDC4,
 			   TPS65218_CONTROL_DCDC4_MASK, TPS65218_REG_ENABLE1,
 			   TPS65218_ENABLE1_DC4_EN, 0, 0, dcdc4_ranges, 2,
 			   0, 0),
-	TPS65218_REGULATOR("DCDC5", TPS65218_DCDC_5, REGULATOR_VOLTAGE,
-			   tps65218_dcdc56_pmic_ops, 1, -1, -1,
-			   TPS65218_REG_ENABLE1, TPS65218_ENABLE1_DC5_EN, 0, 0,
-			   NULL, 0, 0, 1000000),
-	TPS65218_REGULATOR("DCDC6", TPS65218_DCDC_6, REGULATOR_VOLTAGE,
-			   tps65218_dcdc56_pmic_ops, 1, -1, -1,
-			   TPS65218_REG_ENABLE1, TPS65218_ENABLE1_DC6_EN, 0, 0,
-			   NULL, 0, 0, 1800000),
-	TPS65218_REGULATOR("LDO1", TPS65218_LDO_1, REGULATOR_VOLTAGE,
-			   tps65218_ldo1_dcdc34_ops, 64,
+	TPS65218_REGULATOR("DCDC5", "regulator-dcdc5", TPS65218_DCDC_5,
+			   REGULATOR_VOLTAGE, tps65218_dcdc56_pmic_ops, 1, -1,
+			   -1, TPS65218_REG_ENABLE1, TPS65218_ENABLE1_DC5_EN, 0,
+			   0, NULL, 0, 0, 1000000),
+	TPS65218_REGULATOR("DCDC6", "regulator-dcdc6", TPS65218_DCDC_6,
+			   REGULATOR_VOLTAGE, tps65218_dcdc56_pmic_ops, 1, -1,
+			   -1, TPS65218_REG_ENABLE1, TPS65218_ENABLE1_DC6_EN, 0,
+			   0, NULL, 0, 0, 1800000),
+	TPS65218_REGULATOR("LDO1", "regulator-ldo1", TPS65218_LDO_1,
+			   REGULATOR_VOLTAGE, tps65218_ldo1_dcdc34_ops, 64,
 			   TPS65218_REG_CONTROL_LDO1,
 			   TPS65218_CONTROL_LDO1_MASK, TPS65218_REG_ENABLE2,
 			   TPS65218_ENABLE2_LDO1_EN, 0, 0, ldo1_dcdc3_ranges,
 			   2, 0, 0),
-	TPS65218_REGULATOR("LS3", TPS65218_LS_3, REGULATOR_CURRENT,
-			   tps65218_ls3_ops, 0, 0, 0, TPS65218_REG_ENABLE2,
-			   TPS65218_ENABLE2_LS3_EN, TPS65218_REG_CONFIG2,
-			   TPS65218_CONFIG2_LS3ILIM_MASK, NULL, 0, 0, 0),
+	TPS65218_REGULATOR("LS3", "regulator-ls3", TPS65218_LS_3,
+			   REGULATOR_CURRENT, tps65218_ls3_ops, 0, 0, 0,
+			   TPS65218_REG_ENABLE2, TPS65218_ENABLE2_LS3_EN,
+			   TPS65218_REG_CONFIG2, TPS65218_CONFIG2_LS3ILIM_MASK,
+			   NULL, 0, 0, 0),
 };
 
 static int tps65218_regulator_probe(struct platform_device *pdev)
 {
 	struct tps65218 *tps = dev_get_drvdata(pdev->dev.parent);
-	struct regulator_init_data *init_data;
-	const struct tps_info	*template;
 	struct regulator_dev *rdev;
-	const struct of_device_id	*match;
 	struct regulator_config config = { };
-	int id;
-
-	match = of_match_device(tps65218_of_match, &pdev->dev);
-	if (!match)
-		return -ENODEV;
-
-	template = match->data;
-	id = template->id;
-	init_data = of_get_regulator_init_data(&pdev->dev, pdev->dev.of_node,
-					       &regulators[id]);
+	int i;
 
-	platform_set_drvdata(pdev, tps);
-
-	tps->info[id] = &tps65218_pmic_regs[id];
 	config.dev = &pdev->dev;
-	config.init_data = init_data;
+	config.dev->of_node = tps->dev->of_node;
 	config.driver_data = tps;
 	config.regmap = tps->regmap;
-	config.of_node = pdev->dev.of_node;
 
-	rdev = devm_regulator_register(&pdev->dev, &regulators[id], &config);
-	if (IS_ERR(rdev)) {
-		dev_err(tps->dev, "failed to register %s regulator\n",
-			pdev->name);
-		return PTR_ERR(rdev);
+	for (i = 0; i < ARRAY_SIZE(regulators); i++) {
+		rdev = devm_regulator_register(&pdev->dev, &regulators[i],
+					       &config);
+		if (IS_ERR(rdev)) {
+			dev_err(tps->dev, "failed to register %s regulator\n",
+				pdev->name);
+			return PTR_ERR(rdev);
+		}
 	}
 
 	return 0;
 }
 
+static const struct platform_device_id tps65218_regulator_id_table[] = {
+	{ "tps65218-regulator", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(platform, tps65218_regulator_id_table);
+
 static struct platform_driver tps65218_regulator_driver = {
 	.driver = {
 		.name = "tps65218-pmic",
-		.of_match_table = tps65218_of_match,
 	},
 	.probe = tps65218_regulator_probe,
+	.id_table = tps65218_regulator_id_table,
 };
 
 module_platform_driver(tps65218_regulator_driver);
-- 
1.9.1

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

* [PATCH 5/8] ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
                   ` (3 preceding siblings ...)
  2016-05-11  5:48 ` [PATCH 4/8] regulator: tps65218: Remove all the compatibles Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-05-12 17:08   ` Tony Lindgren
  2016-05-11  5:48 ` [PATCH 6/8] ARM: dts: AM437X-SK-EVM: " Keerthy
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

With the device tree parsing using the regulator framework
there is a no longer a need for separate compatibles for
individual regulator nodes. Hence removing them all.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 arch/arm/boot/dts/am437x-gp-evm.dts | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 8889be1..67329e0 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -513,7 +513,6 @@
 		#interrupt-cells = <2>;
 
 		dcdc1: regulator-dcdc1 {
-			compatible = "ti,tps65218-dcdc1";
 			regulator-name = "vdd_core";
 			regulator-min-microvolt = <912000>;
 			regulator-max-microvolt = <1144000>;
@@ -522,7 +521,6 @@
 		};
 
 		dcdc2: regulator-dcdc2 {
-			compatible = "ti,tps65218-dcdc2";
 			regulator-name = "vdd_mpu";
 			regulator-min-microvolt = <912000>;
 			regulator-max-microvolt = <1378000>;
@@ -531,7 +529,6 @@
 		};
 
 		dcdc3: regulator-dcdc3 {
-			compatible = "ti,tps65218-dcdc3";
 			regulator-name = "vdcdc3";
 			regulator-min-microvolt = <1500000>;
 			regulator-max-microvolt = <1500000>;
@@ -539,7 +536,6 @@
 			regulator-always-on;
 		};
 		dcdc5: regulator-dcdc5 {
-			compatible = "ti,tps65218-dcdc5";
 			regulator-name = "v1_0bat";
 			regulator-min-microvolt = <1000000>;
 			regulator-max-microvolt = <1000000>;
@@ -548,7 +544,6 @@
 		};
 
 		dcdc6: regulator-dcdc6 {
-			compatible = "ti,tps65218-dcdc6";
 			regulator-name = "v1_8bat";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
@@ -557,7 +552,6 @@
 		};
 
 		ldo1: regulator-ldo1 {
-			compatible = "ti,tps65218-ldo1";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
 			regulator-boot-on;
-- 
1.9.1

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

* [PATCH 6/8] ARM: dts: AM437X-SK-EVM: Remove redundant regulator compatibles
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
                   ` (4 preceding siblings ...)
  2016-05-11  5:48 ` [PATCH 5/8] ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-05-11  5:48 ` [PATCH 7/8] ARM: dts: AM437X-CM-T43: " Keerthy
  2016-05-11  5:48 ` [PATCH 8/8] ARM: dts: AM43X-EPOS-EVM: " Keerthy
  7 siblings, 0 replies; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

With the device tree parsing using the regulator framework
there is a no longer a need for separate compatibles for
individual regulator nodes. Hence removing them all.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 arch/arm/boot/dts/am437x-sk-evm.dts | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index d82dd6e..1b404fd 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -428,7 +428,6 @@
 		#interrupt-cells = <2>;
 
 		dcdc1: regulator-dcdc1 {
-			compatible = "ti,tps65218-dcdc1";
 			/* VDD_CORE limits min of OPP50 and max of OPP100 */
 			regulator-name = "vdd_core";
 			regulator-min-microvolt = <912000>;
@@ -438,7 +437,6 @@
 		};
 
 		dcdc2: regulator-dcdc2 {
-			compatible = "ti,tps65218-dcdc2";
 			/* VDD_MPU limits min of OPP50 and max of OPP_NITRO */
 			regulator-name = "vdd_mpu";
 			regulator-min-microvolt = <912000>;
@@ -448,7 +446,6 @@
 		};
 
 		dcdc3: regulator-dcdc3 {
-			compatible = "ti,tps65218-dcdc3";
 			regulator-name = "vdds_ddr";
 			regulator-min-microvolt = <1500000>;
 			regulator-max-microvolt = <1500000>;
@@ -457,7 +454,6 @@
 		};
 
 		dcdc4: regulator-dcdc4 {
-			compatible = "ti,tps65218-dcdc4";
 			regulator-name = "v3_3d";
 			regulator-min-microvolt = <3300000>;
 			regulator-max-microvolt = <3300000>;
@@ -466,7 +462,6 @@
 		};
 
 		ldo1: regulator-ldo1 {
-			compatible = "ti,tps65218-ldo1";
 			regulator-name = "v1_8d";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
-- 
1.9.1

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

* [PATCH 7/8] ARM: dts: AM437X-CM-T43: Remove redundant regulator compatibles
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
                   ` (5 preceding siblings ...)
  2016-05-11  5:48 ` [PATCH 6/8] ARM: dts: AM437X-SK-EVM: " Keerthy
@ 2016-05-11  5:48 ` Keerthy
  2016-05-11  5:48 ` [PATCH 8/8] ARM: dts: AM43X-EPOS-EVM: " Keerthy
  7 siblings, 0 replies; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

With the device tree parsing using the regulator framework
there is a no longer a need for separate compatibles for
individual regulator nodes. Hence removing them all.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 arch/arm/boot/dts/am437x-cm-t43.dts | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/arch/arm/boot/dts/am437x-cm-t43.dts b/arch/arm/boot/dts/am437x-cm-t43.dts
index 9551c47..9e92d48 100644
--- a/arch/arm/boot/dts/am437x-cm-t43.dts
+++ b/arch/arm/boot/dts/am437x-cm-t43.dts
@@ -209,7 +209,6 @@
 		#interrupt-cells = <2>;
 
 		dcdc1: regulator-dcdc1 {
-			compatible = "ti,tps65218-dcdc1";
 			regulator-name = "vdd_core";
 			regulator-min-microvolt = <912000>;
 			regulator-max-microvolt = <1144000>;
@@ -218,7 +217,6 @@
 		};
 
 		dcdc2: regulator-dcdc2 {
-			compatible = "ti,tps65218-dcdc2";
 			regulator-name = "vdd_mpu";
 			regulator-min-microvolt = <912000>;
 			regulator-max-microvolt = <1378000>;
@@ -227,7 +225,6 @@
 		};
 
 		dcdc3: regulator-dcdc3 {
-			compatible = "ti,tps65218-dcdc3";
 			regulator-name = "vdcdc3";
 			regulator-suspend-enable;
 			regulator-min-microvolt = <1500000>;
@@ -237,7 +234,6 @@
 		};
 
 		dcdc5: regulator-dcdc5 {
-			compatible = "ti,tps65218-dcdc5";
 			regulator-name = "v1_0bat";
 			regulator-min-microvolt = <1000000>;
 			regulator-max-microvolt = <1000000>;
@@ -246,7 +242,6 @@
 		};
 
 		dcdc6: regulator-dcdc6 {
-			compatible = "ti,tps65218-dcdc6";
 			regulator-name = "v1_8bat";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
@@ -255,7 +250,6 @@
 		};
 
 		ldo1: regulator-ldo1 {
-			compatible = "ti,tps65218-ldo1";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
 			regulator-boot-on;
-- 
1.9.1

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

* [PATCH 8/8] ARM: dts: AM43X-EPOS-EVM: Remove redundant regulator compatibles
  2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
                   ` (6 preceding siblings ...)
  2016-05-11  5:48 ` [PATCH 7/8] ARM: dts: AM437X-CM-T43: " Keerthy
@ 2016-05-11  5:48 ` Keerthy
  7 siblings, 0 replies; 17+ messages in thread
From: Keerthy @ 2016-05-11  5:48 UTC (permalink / raw)
  To: broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita,
	nm, j-keerthy

With the device tree parsing using the regulator framework
there is a no longer a need for separate compatibles for
individual regulator nodes. Hence removing them all.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 arch/arm/boot/dts/am43x-epos-evm.dts | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index d5dd720..4599d23 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -421,7 +421,6 @@
 		#interrupt-cells = <2>;
 
 		dcdc1: regulator-dcdc1 {
-			compatible = "ti,tps65218-dcdc1";
 			regulator-name = "vdd_core";
 			regulator-min-microvolt = <912000>;
 			regulator-max-microvolt = <1144000>;
@@ -430,7 +429,6 @@
 		};
 
 		dcdc2: regulator-dcdc2 {
-			compatible = "ti,tps65218-dcdc2";
 			regulator-name = "vdd_mpu";
 			regulator-min-microvolt = <912000>;
 			regulator-max-microvolt = <1378000>;
@@ -439,7 +437,6 @@
 		};
 
 		dcdc3: regulator-dcdc3 {
-			compatible = "ti,tps65218-dcdc3";
 			regulator-name = "vdcdc3";
 			regulator-min-microvolt = <1500000>;
 			regulator-max-microvolt = <1500000>;
@@ -448,7 +445,6 @@
 		};
 
 		dcdc4: regulator-dcdc4 {
-			compatible = "ti,tps65218-dcdc4";
 			regulator-name = "vdcdc4";
 			regulator-min-microvolt = <3300000>;
 			regulator-max-microvolt = <3300000>;
@@ -457,21 +453,18 @@
 		};
 
 		dcdc5: regulator-dcdc5 {
-			compatible = "ti,tps65218-dcdc5";
 			regulator-name = "v1_0bat";
 			regulator-min-microvolt = <1000000>;
 			regulator-max-microvolt = <1000000>;
 		};
 
 		dcdc6: regulator-dcdc6 {
-			compatible = "ti,tps65218-dcdc6";
 			regulator-name = "v1_8bat";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
 		};
 
 		ldo1: regulator-ldo1 {
-			compatible = "ti,tps65218-ldo1";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
 			regulator-boot-on;
-- 
1.9.1

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

* Re: [PATCH 4/8] regulator: tps65218: Remove all the compatibles
  2016-05-11  5:48 ` [PATCH 4/8] regulator: tps65218: Remove all the compatibles Keerthy
@ 2016-05-11 10:21   ` Mark Brown
  0 siblings, 0 replies; 17+ messages in thread
From: Mark Brown @ 2016-05-11 10:21 UTC (permalink / raw)
  To: Keerthy
  Cc: tony, robh+dt, mark.rutland, lee.jones, linux-omap, linux-kernel,
	devicetree, linux-arm-kernel, nikita, nm

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

On Wed, May 11, 2016 at 11:18:07AM +0530, Keerthy wrote:
> Remove all the individual compatibles for all the regulators
> and introduce id_table and update the driver accordingly
> to parse device tree nodes using the regulator framework.

Acked-by: Mark Brown <broonie@kernel.org>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

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

* Re: [PATCH 5/8] ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles
  2016-05-11  5:48 ` [PATCH 5/8] ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles Keerthy
@ 2016-05-12 17:08   ` Tony Lindgren
  0 siblings, 0 replies; 17+ messages in thread
From: Tony Lindgren @ 2016-05-12 17:08 UTC (permalink / raw)
  To: Keerthy
  Cc: broonie, robh+dt, mark.rutland, lee.jones, linux-omap,
	linux-kernel, devicetree, linux-arm-kernel, nikita, nm

Hi,

* Keerthy <j-keerthy@ti.com> [160510 22:56]:
> With the device tree parsing using the regulator framework
> there is a no longer a need for separate compatibles for
> individual regulator nodes. Hence removing them all.

Please resend the dts related clean-up patches separately
once the rest of the dependencies are merged. I'm unable to
keep track of these dependencies myself :)

Regards,

Tony

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

* Re: [PATCH 2/8] Documentation: regulator: tps65218: Update examples
  2016-05-11  5:48 ` [PATCH 2/8] Documentation: regulator: tps65218: Update examples Keerthy
@ 2016-05-16 14:48   ` Rob Herring
  2016-05-17  3:22     ` Keerthy
  0 siblings, 1 reply; 17+ messages in thread
From: Rob Herring @ 2016-05-16 14:48 UTC (permalink / raw)
  To: Keerthy
  Cc: broonie, tony, mark.rutland, lee.jones, nm, devicetree, nikita,
	linux-kernel, linux-omap, linux-arm-kernel

On Wed, May 11, 2016 at 11:18:05AM +0530, Keerthy wrote:
> This updates the device tree according to the preferred way of parsing
> the nodes using the regulator framework.
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
>  .../devicetree/bindings/regulator/tps65218.txt     | 87 ++++++++++++++++++----
>  1 file changed, 71 insertions(+), 16 deletions(-)

It wasn't exactly clear that the compatible string "added" here is 
already used, so it looked like you were breaking compatibility at 
first. Otherwise,

Acked-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH 2/8] Documentation: regulator: tps65218: Update examples
  2016-05-16 14:48   ` Rob Herring
@ 2016-05-17  3:22     ` Keerthy
  0 siblings, 0 replies; 17+ messages in thread
From: Keerthy @ 2016-05-17  3:22 UTC (permalink / raw)
  To: Rob Herring, Keerthy
  Cc: broonie, tony, mark.rutland, lee.jones, nm, devicetree, nikita,
	linux-kernel, linux-omap, linux-arm-kernel



On Monday 16 May 2016 08:18 PM, Rob Herring wrote:
> On Wed, May 11, 2016 at 11:18:05AM +0530, Keerthy wrote:
>> This updates the device tree according to the preferred way of parsing
>> the nodes using the regulator framework.
>>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>>   .../devicetree/bindings/regulator/tps65218.txt     | 87 ++++++++++++++++++----
>>   1 file changed, 71 insertions(+), 16 deletions(-)
>
> It wasn't exactly clear that the compatible string "added" here is
> already used, so it looked like you were breaking compatibility at
> first. Otherwise,
>
> Acked-by: Rob Herring <robh@kernel.org>

Thanks Rob.

>

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

* Re: [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate
  2016-05-11  5:48 ` [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy
@ 2016-06-03 11:08   ` Keerthy
  2016-06-06  9:00     ` Lee Jones
  2016-06-08 15:50   ` Lee Jones
  1 sibling, 1 reply; 17+ messages in thread
From: Keerthy @ 2016-06-03 11:08 UTC (permalink / raw)
  To: Keerthy, broonie, tony, robh+dt, mark.rutland, lee.jones
  Cc: linux-omap, linux-kernel, devicetree, linux-arm-kernel, nikita, nm

Hi Lee Jones,

On Wednesday 11 May 2016 11:18 AM, Keerthy wrote:
> mfd_add_devices enables parsing device tree nodes without compatibles
> for child nodes. Replace of_platform_populate with mfd_add_devices.
>

A gentle ping on this patch.

Regards,
Keerthy

> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
>   drivers/mfd/tps65218.c | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
> index f20a531..b8b3a58 100644
> --- a/drivers/mfd/tps65218.c
> +++ b/drivers/mfd/tps65218.c
> @@ -33,6 +33,10 @@
>
>   #define TPS65218_PASSWORD_REGS_UNLOCK   0x7D
>
> +static const struct mfd_cell tps65218_cells[] = {
> +	{ .name = "tps65218-regulator", },
> +};
> +
>   /**
>    * tps65218_reg_write: Write a single tps65218 register.
>    *
> @@ -236,8 +240,10 @@ static int tps65218_probe(struct i2c_client *client,
>   	if (ret < 0)
>   		return ret;
>
> -	ret = of_platform_populate(client->dev.of_node, NULL, NULL,
> -				   &client->dev);
> +	ret = mfd_add_devices(tps->dev, PLATFORM_DEVID_AUTO, tps65218_cells,
> +			      ARRAY_SIZE(tps65218_cells), NULL, 0,
> +			      regmap_irq_get_domain(tps->irq_data));
> +
>   	if (ret < 0)
>   		goto err_irq;
>
>

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

* Re: [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate
  2016-06-03 11:08   ` Keerthy
@ 2016-06-06  9:00     ` Lee Jones
  0 siblings, 0 replies; 17+ messages in thread
From: Lee Jones @ 2016-06-06  9:00 UTC (permalink / raw)
  To: Keerthy
  Cc: Keerthy, broonie, tony, robh+dt, mark.rutland, linux-omap,
	linux-kernel, devicetree, linux-arm-kernel, nikita, nm

On Fri, 03 Jun 2016, Keerthy wrote:

> Hi Lee Jones,
> 
> On Wednesday 11 May 2016 11:18 AM, Keerthy wrote:
> >mfd_add_devices enables parsing device tree nodes without compatibles
> >for child nodes. Replace of_platform_populate with mfd_add_devices.
> >
> 
> A gentle ping on this patch.

Don't do that!

If you think it's forgotten then send a [RESEND].  However this patch
is in my "to review" queue and will be dealt with in due course.

> >Signed-off-by: Keerthy <j-keerthy@ti.com>
> >---
> >  drivers/mfd/tps65218.c | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
> >index f20a531..b8b3a58 100644
> >--- a/drivers/mfd/tps65218.c
> >+++ b/drivers/mfd/tps65218.c
> >@@ -33,6 +33,10 @@
> >
> >  #define TPS65218_PASSWORD_REGS_UNLOCK   0x7D
> >
> >+static const struct mfd_cell tps65218_cells[] = {
> >+	{ .name = "tps65218-regulator", },
> >+};
> >+
> >  /**
> >   * tps65218_reg_write: Write a single tps65218 register.
> >   *
> >@@ -236,8 +240,10 @@ static int tps65218_probe(struct i2c_client *client,
> >  	if (ret < 0)
> >  		return ret;
> >
> >-	ret = of_platform_populate(client->dev.of_node, NULL, NULL,
> >-				   &client->dev);
> >+	ret = mfd_add_devices(tps->dev, PLATFORM_DEVID_AUTO, tps65218_cells,
> >+			      ARRAY_SIZE(tps65218_cells), NULL, 0,
> >+			      regmap_irq_get_domain(tps->irq_data));
> >+
> >  	if (ret < 0)
> >  		goto err_irq;
> >
> >

-- 
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] 17+ messages in thread

* Re: [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate
  2016-05-11  5:48 ` [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy
  2016-06-03 11:08   ` Keerthy
@ 2016-06-08 15:50   ` Lee Jones
  2016-06-08 16:09     ` Keerthy
  1 sibling, 1 reply; 17+ messages in thread
From: Lee Jones @ 2016-06-08 15:50 UTC (permalink / raw)
  To: Keerthy
  Cc: broonie, tony, robh+dt, mark.rutland, linux-omap, linux-kernel,
	devicetree, linux-arm-kernel, nikita, nm

On Wed, 11 May 2016, Keerthy wrote:

> mfd_add_devices enables parsing device tree nodes without compatibles
> for child nodes. Replace of_platform_populate with mfd_add_devices.
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
>  drivers/mfd/tps65218.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
> index f20a531..b8b3a58 100644
> --- a/drivers/mfd/tps65218.c
> +++ b/drivers/mfd/tps65218.c
> @@ -33,6 +33,10 @@
>  
>  #define TPS65218_PASSWORD_REGS_UNLOCK   0x7D
>  
> +static const struct mfd_cell tps65218_cells[] = {
> +	{ .name = "tps65218-regulator", },
> +};

What other devices does the TPS65218 consist of?

>  /**
>   * tps65218_reg_write: Write a single tps65218 register.
>   *
> @@ -236,8 +240,10 @@ static int tps65218_probe(struct i2c_client *client,
>  	if (ret < 0)
>  		return ret;
>  
> -	ret = of_platform_populate(client->dev.of_node, NULL, NULL,
> -				   &client->dev);
> +	ret = mfd_add_devices(tps->dev, PLATFORM_DEVID_AUTO, tps65218_cells,
> +			      ARRAY_SIZE(tps65218_cells), NULL, 0,
> +			      regmap_irq_get_domain(tps->irq_data));
> +
>  	if (ret < 0)
>  		goto err_irq;
>  

-- 
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] 17+ messages in thread

* Re: [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate
  2016-06-08 15:50   ` Lee Jones
@ 2016-06-08 16:09     ` Keerthy
  0 siblings, 0 replies; 17+ messages in thread
From: Keerthy @ 2016-06-08 16:09 UTC (permalink / raw)
  To: Lee Jones, Keerthy
  Cc: broonie, tony, robh+dt, mark.rutland, linux-omap, linux-kernel,
	devicetree, linux-arm-kernel, nikita, nm



On Wednesday 08 June 2016 09:20 PM, Lee Jones wrote:
> On Wed, 11 May 2016, Keerthy wrote:
>
>> mfd_add_devices enables parsing device tree nodes without compatibles
>> for child nodes. Replace of_platform_populate with mfd_add_devices.
>>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>>   drivers/mfd/tps65218.c | 10 ++++++++--
>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
>> index f20a531..b8b3a58 100644
>> --- a/drivers/mfd/tps65218.c
>> +++ b/drivers/mfd/tps65218.c
>> @@ -33,6 +33,10 @@
>>
>>   #define TPS65218_PASSWORD_REGS_UNLOCK   0x7D
>>
>> +static const struct mfd_cell tps65218_cells[] = {
>> +	{ .name = "tps65218-regulator", },
>> +};
>
> What other devices does the TPS65218 consist of?

As of now only regulators driver is in kernel. The PMIC contains
a bunch of GPIOs, Over temperature warning / shutdown unit.

>
>>   /**
>>    * tps65218_reg_write: Write a single tps65218 register.
>>    *
>> @@ -236,8 +240,10 @@ static int tps65218_probe(struct i2c_client *client,
>>   	if (ret < 0)
>>   		return ret;
>>
>> -	ret = of_platform_populate(client->dev.of_node, NULL, NULL,
>> -				   &client->dev);
>> +	ret = mfd_add_devices(tps->dev, PLATFORM_DEVID_AUTO, tps65218_cells,
>> +			      ARRAY_SIZE(tps65218_cells), NULL, 0,
>> +			      regmap_irq_get_domain(tps->irq_data));
>> +
>>   	if (ret < 0)
>>   		goto err_irq;
>>
>

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

end of thread, other threads:[~2016-06-08 16:11 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-11  5:48 [PATCH 0/8] regulator: tps65218: Clean ups Keerthy
2016-05-11  5:48 ` [PATCH 1/8] mfd: tps65218: Remove redundant read wrapper Keerthy
2016-05-11  5:48 ` [PATCH 2/8] Documentation: regulator: tps65218: Update examples Keerthy
2016-05-16 14:48   ` Rob Herring
2016-05-17  3:22     ` Keerthy
2016-05-11  5:48 ` [PATCH 3/8] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy
2016-06-03 11:08   ` Keerthy
2016-06-06  9:00     ` Lee Jones
2016-06-08 15:50   ` Lee Jones
2016-06-08 16:09     ` Keerthy
2016-05-11  5:48 ` [PATCH 4/8] regulator: tps65218: Remove all the compatibles Keerthy
2016-05-11 10:21   ` Mark Brown
2016-05-11  5:48 ` [PATCH 5/8] ARM: dts: AM437X-GP-EVM: Remove redundant regulator compatibles Keerthy
2016-05-12 17:08   ` Tony Lindgren
2016-05-11  5:48 ` [PATCH 6/8] ARM: dts: AM437X-SK-EVM: " Keerthy
2016-05-11  5:48 ` [PATCH 7/8] ARM: dts: AM437X-CM-T43: " Keerthy
2016-05-11  5:48 ` [PATCH 8/8] ARM: dts: AM43X-EPOS-EVM: " Keerthy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).