* [PATCH v4 0/6] mfd: tps65218: Clean ups @ 2016-06-28 9:22 Keerthy 2016-06-28 9:22 ` [PATCH v4 1/6] mfd: tps65218: Remove redundant read wrapper Keerthy ` (6 more replies) 0 siblings, 7 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, 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. Adds platform_device_id table for the gpio and power button modules. 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. Boot log on am437x-sk-evm: http://pastebin.ubuntu.com/18016754/ Changes in v4: For gpio-tps65218 reatined the compatible table. Fixed missing ';' in the power button patch. Fixed comments on the Documentation patch. Split the Device Tree patches to a separate series. Changes in v3: Missed making corresponding changes in the power button and gpio drivers. Added couple of patches to fix them to use mfd_cell way of parsing. Keerthy (6): mfd: tps65218: Remove redundant read wrapper Documentation: regulator: tps65218: Update examples input: tps65218-pwrbutton: Add platform_device_id table gpio: tps65218-gpio: Add platform_device_id table mfd: tps65218: Use mfd_add_devices instead of of_platform_populate regulator: tps65218: Remove all the compatibles .../devicetree/bindings/regulator/tps65218.txt | 87 ++++++++++--- drivers/gpio/gpio-tps65218.c | 10 +- drivers/input/misc/tps65218-pwrbutton.c | 10 +- drivers/mfd/tps65218.c | 32 ++--- drivers/regulator/tps65218-regulator.c | 134 ++++++++------------- include/linux/mfd/tps65218.h | 2 - 6 files changed, 152 insertions(+), 123 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v4 1/6] mfd: tps65218: Remove redundant read wrapper 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy @ 2016-06-28 9:22 ` Keerthy 2016-06-28 9:22 ` [PATCH v4 2/6] Documentation: regulator: tps65218: Update examples Keerthy ` (5 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, j-keerthy Currently read directly calls the repmap read function. Hence remove the redundant wrapper and use regmap read wherever needed. Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Keerthy <j-keerthy@ti.com> --- Changes in v4: * Added Lee Jones's Ack. Changes in v3: * Cleaned up tps65218-pwrbutton and gpio drivers to remove tps65218_reg_read instances. drivers/gpio/gpio-tps65218.c | 3 ++- drivers/input/misc/tps65218-pwrbutton.c | 3 ++- drivers/mfd/tps65218.c | 16 +--------------- drivers/regulator/tps65218-regulator.c | 3 ++- include/linux/mfd/tps65218.h | 2 -- 5 files changed, 7 insertions(+), 20 deletions(-) diff --git a/drivers/gpio/gpio-tps65218.c b/drivers/gpio/gpio-tps65218.c index 0eaeac8..0f9d9bd 100644 --- a/drivers/gpio/gpio-tps65218.c +++ b/drivers/gpio/gpio-tps65218.c @@ -16,6 +16,7 @@ #include <linux/errno.h> #include <linux/gpio/driver.h> #include <linux/platform_device.h> +#include <linux/regmap.h> #include <linux/mfd/tps65218.h> struct tps65218_gpio { @@ -30,7 +31,7 @@ static int tps65218_gpio_get(struct gpio_chip *gc, unsigned offset) unsigned int val; int ret; - ret = tps65218_reg_read(tps65218, TPS65218_REG_ENABLE2, &val); + ret = regmap_read(tps65218->regmap, TPS65218_REG_ENABLE2, &val); if (ret) return ret; diff --git a/drivers/input/misc/tps65218-pwrbutton.c b/drivers/input/misc/tps65218-pwrbutton.c index a39b626..2bba8de 100644 --- a/drivers/input/misc/tps65218-pwrbutton.c +++ b/drivers/input/misc/tps65218-pwrbutton.c @@ -22,6 +22,7 @@ #include <linux/module.h> #include <linux/of.h> #include <linux/platform_device.h> +#include <linux/regmap.h> #include <linux/slab.h> struct tps65218_pwrbutton { @@ -36,7 +37,7 @@ static irqreturn_t tps65218_pwr_irq(int irq, void *_pwr) unsigned int reg; int error; - error = tps65218_reg_read(pwr->tps, TPS65218_REG_STATUS, ®); + error = regmap_read(pwr->tps->regmap, TPS65218_REG_STATUS, ®); if (error) { dev_err(pwr->dev, "can't read register: %d\n", error); goto out; 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] 10+ messages in thread
* [PATCH v4 2/6] Documentation: regulator: tps65218: Update examples 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy 2016-06-28 9:22 ` [PATCH v4 1/6] mfd: tps65218: Remove redundant read wrapper Keerthy @ 2016-06-28 9:22 ` Keerthy 2016-06-28 9:22 ` [PATCH v4 3/6] input: tps65218-pwrbutton: Add platform_device_id table Keerthy ` (4 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, j-keerthy This updates the Device Tree according to the preferred way of parsing the nodes using the regulator framework. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Keerthy <j-keerthy@ti.com> --- Changes in v4: * Formatted and corrected typos in few lines. * Used relative path names for the file names. .../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..9a6d024 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 ./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] 10+ messages in thread
* [PATCH v4 3/6] input: tps65218-pwrbutton: Add platform_device_id table 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy 2016-06-28 9:22 ` [PATCH v4 1/6] mfd: tps65218: Remove redundant read wrapper Keerthy 2016-06-28 9:22 ` [PATCH v4 2/6] Documentation: regulator: tps65218: Update examples Keerthy @ 2016-06-28 9:22 ` Keerthy 2016-06-28 9:22 ` [PATCH v4 4/6] gpio: tps65218-gpio: " Keerthy ` (3 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, j-keerthy platform_device_id table is needed for adding the tps65218-pwrbutton module to the mfd_cell array. Signed-off-by: Keerthy <j-keerthy@ti.com> --- Changes in v4: * Added the missing ';' for struct platform_device_id. drivers/input/misc/tps65218-pwrbutton.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/input/misc/tps65218-pwrbutton.c b/drivers/input/misc/tps65218-pwrbutton.c index 2bba8de..33d141a 100644 --- a/drivers/input/misc/tps65218-pwrbutton.c +++ b/drivers/input/misc/tps65218-pwrbutton.c @@ -113,12 +113,19 @@ static const struct of_device_id of_tps65218_pwr_match[] = { }; MODULE_DEVICE_TABLE(of, of_tps65218_pwr_match); +static const struct platform_device_id tps65218_pwrbtn_id_table[] = { + { "tps65218-pwrbutton", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(platform, tps65218_pwrbtn_id_table); + static struct platform_driver tps65218_pwron_driver = { .probe = tps65218_pwron_probe, .driver = { .name = "tps65218_pwrbutton", .of_match_table = of_tps65218_pwr_match, }, + .id_table = tps65218_pwrbtn_id_table, }; module_platform_driver(tps65218_pwron_driver); -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 4/6] gpio: tps65218-gpio: Add platform_device_id table 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy ` (2 preceding siblings ...) 2016-06-28 9:22 ` [PATCH v4 3/6] input: tps65218-pwrbutton: Add platform_device_id table Keerthy @ 2016-06-28 9:22 ` Keerthy 2016-06-28 9:22 ` [PATCH v4 5/6] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy ` (2 subsequent siblings) 6 siblings, 0 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, j-keerthy platform_device_id table is needed for adding the tps65218-gpio module to the mfd_cell array. Signed-off-by: Keerthy <j-keerthy@ti.com> --- Changes in v4: * Retained the compatible strings in order to interrogate the DT in the normal way. drivers/gpio/gpio-tps65218.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpio/gpio-tps65218.c b/drivers/gpio/gpio-tps65218.c index 0f9d9bd..0961f3a 100644 --- a/drivers/gpio/gpio-tps65218.c +++ b/drivers/gpio/gpio-tps65218.c @@ -231,6 +231,12 @@ static const struct of_device_id tps65218_dt_match[] = { }; MODULE_DEVICE_TABLE(of, tps65218_dt_match); +static const struct platform_device_id tps65218_gpio_id_table[] = { + { "tps65218-gpio", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(platform, tps65218_gpio_id_table); + static struct platform_driver tps65218_gpio_driver = { .driver = { .name = "tps65218-gpio", @@ -238,6 +244,7 @@ static struct platform_driver tps65218_gpio_driver = { }, .probe = tps65218_gpio_probe, .remove = tps65218_gpio_remove, + .id_table = tps65218_gpio_id_table, }; module_platform_driver(tps65218_gpio_driver); -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 5/6] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy ` (3 preceding siblings ...) 2016-06-28 9:22 ` [PATCH v4 4/6] gpio: tps65218-gpio: " Keerthy @ 2016-06-28 9:22 ` Keerthy 2016-06-28 10:56 ` Lee Jones 2016-06-28 9:22 ` [PATCH v4 6/6] regulator: tps65218: Remove all the compatibles Keerthy 2016-06-28 12:27 ` [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy 6 siblings, 1 reply; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, j-keerthy mfd_add_devices enables parsing device tree nodes without compatibles for regulators and gpio modules. Replace of_platform_populate with mfd_add_devices. mfd_cell currently is populated with regulators, gpio and powerbutton. Signed-off-by: Keerthy <j-keerthy@ti.com> --- Changes in v4: * Regrouped the mfd cells better. drivers/mfd/tps65218.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c index f20a531..f13c8d9 100644 --- a/drivers/mfd/tps65218.c +++ b/drivers/mfd/tps65218.c @@ -33,6 +33,18 @@ #define TPS65218_PASSWORD_REGS_UNLOCK 0x7D +static const struct mfd_cell tps65218_cells[] = { + { + .name = "tps65218-pwrbutton", + .of_compatible = "ti,tps65218-pwrbutton", + }, + { + .name = "tps65218-gpio", + .of_compatible = "ti,tps65218-gpio", + }, + { .name = "tps65218-regulator", }, +}; + /** * tps65218_reg_write: Write a single tps65218 register. * @@ -236,8 +248,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] 10+ messages in thread
* Re: [PATCH v4 5/6] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate 2016-06-28 9:22 ` [PATCH v4 5/6] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy @ 2016-06-28 10:56 ` Lee Jones 0 siblings, 0 replies; 10+ messages in thread From: Lee Jones @ 2016-06-28 10:56 UTC (permalink / raw) To: Keerthy Cc: dmitry.torokhov, linus.walleij, gnurou, broonie, tony, linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel On Tue, 28 Jun 2016, Keerthy wrote: > mfd_add_devices enables parsing device tree nodes without compatibles > for regulators and gpio modules. Replace of_platform_populate with > mfd_add_devices. mfd_cell currently is populated with regulators, > gpio and powerbutton. > > Signed-off-by: Keerthy <j-keerthy@ti.com> > --- > > Changes in v4: > > * Regrouped the mfd cells better. > > drivers/mfd/tps65218.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) For my own reference: Acked-by: Lee Jones <lee.jones@linaro.org> > diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c > index f20a531..f13c8d9 100644 > --- a/drivers/mfd/tps65218.c > +++ b/drivers/mfd/tps65218.c > @@ -33,6 +33,18 @@ > > #define TPS65218_PASSWORD_REGS_UNLOCK 0x7D > > +static const struct mfd_cell tps65218_cells[] = { > + { > + .name = "tps65218-pwrbutton", > + .of_compatible = "ti,tps65218-pwrbutton", > + }, > + { > + .name = "tps65218-gpio", > + .of_compatible = "ti,tps65218-gpio", > + }, > + { .name = "tps65218-regulator", }, > +}; > + > /** > * tps65218_reg_write: Write a single tps65218 register. > * > @@ -236,8 +248,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] 10+ messages in thread
* [PATCH v4 6/6] regulator: tps65218: Remove all the compatibles 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy ` (4 preceding siblings ...) 2016-06-28 9:22 ` [PATCH v4 5/6] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy @ 2016-06-28 9:22 ` Keerthy 2016-06-28 10:26 ` Keerthy 2016-06-28 12:27 ` [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy 6 siblings, 1 reply; 10+ messages in thread From: Keerthy @ 2016-06-28 9:22 UTC (permalink / raw) To: dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel, 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. Acked-by: Mark Brown <broonie@kernel.org> 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, - ®ulators[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, ®ulators[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, ®ulators[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] 10+ messages in thread
* Re: [PATCH v4 6/6] regulator: tps65218: Remove all the compatibles 2016-06-28 9:22 ` [PATCH v4 6/6] regulator: tps65218: Remove all the compatibles Keerthy @ 2016-06-28 10:26 ` Keerthy 0 siblings, 0 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 10:26 UTC (permalink / raw) To: Keerthy, dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel On Tuesday 28 June 2016 02:52 PM, 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. Mark, I just now pulled the linux-next and some conflicts arise due to: https://lkml.org/lkml/2016/6/27/482 I am in the process of re-basing and testing. Only this patch needs to wait. So shall i send an updated version of this patch alone? Regards, Keerthy > > Acked-by: Mark Brown <broonie@kernel.org> > 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, > - ®ulators[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, ®ulators[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, ®ulators[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); > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 0/6] mfd: tps65218: Clean ups 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy ` (5 preceding siblings ...) 2016-06-28 9:22 ` [PATCH v4 6/6] regulator: tps65218: Remove all the compatibles Keerthy @ 2016-06-28 12:27 ` Keerthy 6 siblings, 0 replies; 10+ messages in thread From: Keerthy @ 2016-06-28 12:27 UTC (permalink / raw) To: Keerthy, dmitry.torokhov, linus.walleij, gnurou, lee.jones, broonie, tony Cc: linux-omap, linux-kernel, devicetree, linux-gpio, linux-input, robh+dt, linux-arm-kernel On Tuesday 28 June 2016 02:52 PM, Keerthy wrote: > 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. > Adds platform_device_id table for the gpio and power button modules. > > 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. > > Boot log on am437x-sk-evm: http://pastebin.ubuntu.com/18016754/ Seems like with https://lkml.org/lkml/2016/6/24/122 pulled in. Only mfd and regulator patches need a bit of re-basing. I am sending a v6 of the series with all the driver patches. > > Changes in v4: > > For gpio-tps65218 reatined the compatible table. > Fixed missing ';' in the power button patch. > Fixed comments on the Documentation patch. > Split the Device Tree patches to a separate series. > > Changes in v3: > > Missed making corresponding changes in the power button and gpio > drivers. Added couple of patches to fix them to use mfd_cell way > of parsing. > > Keerthy (6): > mfd: tps65218: Remove redundant read wrapper > Documentation: regulator: tps65218: Update examples > input: tps65218-pwrbutton: Add platform_device_id table > gpio: tps65218-gpio: Add platform_device_id table > mfd: tps65218: Use mfd_add_devices instead of of_platform_populate > regulator: tps65218: Remove all the compatibles > > .../devicetree/bindings/regulator/tps65218.txt | 87 ++++++++++--- > drivers/gpio/gpio-tps65218.c | 10 +- > drivers/input/misc/tps65218-pwrbutton.c | 10 +- > drivers/mfd/tps65218.c | 32 ++--- > drivers/regulator/tps65218-regulator.c | 134 ++++++++------------- > include/linux/mfd/tps65218.h | 2 - > 6 files changed, 152 insertions(+), 123 deletions(-) > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-06-28 12:27 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-06-28 9:22 [PATCH v4 0/6] mfd: tps65218: Clean ups Keerthy 2016-06-28 9:22 ` [PATCH v4 1/6] mfd: tps65218: Remove redundant read wrapper Keerthy 2016-06-28 9:22 ` [PATCH v4 2/6] Documentation: regulator: tps65218: Update examples Keerthy 2016-06-28 9:22 ` [PATCH v4 3/6] input: tps65218-pwrbutton: Add platform_device_id table Keerthy 2016-06-28 9:22 ` [PATCH v4 4/6] gpio: tps65218-gpio: " Keerthy 2016-06-28 9:22 ` [PATCH v4 5/6] mfd: tps65218: Use mfd_add_devices instead of of_platform_populate Keerthy 2016-06-28 10:56 ` Lee Jones 2016-06-28 9:22 ` [PATCH v4 6/6] regulator: tps65218: Remove all the compatibles Keerthy 2016-06-28 10:26 ` Keerthy 2016-06-28 12:27 ` [PATCH v4 0/6] mfd: tps65218: Clean ups 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).