linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF
@ 2020-12-21  2:54 Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices() Yoshihiro Shimoda
                   ` (11 more replies)
  0 siblings, 12 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Add BD9574MWF support into bd9571mwv gpio, mfd and regulator drivers.
Latest Ebisu-4D boards has this chip instead of BD9571MWV so that
we need this patch series to detect this chip at runtime.

Note that the patch [1/12] is a bug-fix patch for mfd driver.

Changes from v3:
 - Add "Acked-for-MFD-by" in patch 1, 3, 9 and 10.
 - Use "Co-developed-by" instead in patch 11.
 - In patch 11:
 -- Remove abusing kernel-doc formatting in patch.
 -- Rename bd957x_data with bd957x_ddata in patch.
 -- Remove product name printk.
 -- Rename bd9571mwv_identify() with bd957x_identify().
 -- Remove argument "part_name" from bd957x_identify().
 -- Modify dev_err() string.
 -- Rename BD9571MWV_PRODUCT_CODE_VAL with BD9571MWV_PRODUCT_CODE_BD9571MWV.
 -- Fix errno from -ENOENT to -ENODEV.
 - In patch 12:
 -- Rename "MFD driver" to "core driver".
 -- Remove unnecessary comments.
 -- Rename BD9574MWF_PRODUCT_CODE_VAL with BD9571MWV_PRODUCT_CODE_BD9574MWF.
 https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=402719

Changes from v2:
 - Use devm_mfd_add_devices() to remove the mfd device in unload.
 - Update commit descriptions in patch 4 and 8.
 - Use regmap_get_device() to simplify in patch 4.
 - Remove "struct bd9571mwv" and bd9571mwv_remove().
 - Add Reviewed-by in patch 3 to 9.
 - Use devm_regmap_add_irq_chip() to simplify in patch 10.
 https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=400477

Changes from v1:
 - Document BD9574MWF on the dt-binding.
 - Add ROHM_CHIP_TYPE_BD957[14] into rohm-generic.h.
 - To simplify gpio and regulator drivers, using regmap instead of
   using struct bd9571mwv.
 - Remove BD9574MWF definitions to make gpio and regulator driver
   simple to support for BD9574MWF.
 - Add BD9574MWF support for gpio and regulator drivers.
 - Add missing regmap ranges for BD9574MWF.
 - Rename "part_number" with "part_name".
 https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=398059

Khiem Nguyen (2):
  mfd: bd9571mwv: Make the driver more generic
  mfd: bd9571mwv: Add support for BD9574MWF

Yoshihiro Shimoda (10):
  mfd: bd9571mwv: Use devm_mfd_add_devices()
  dt-bindings: mfd: bd9571mwv: Document BD9574MWF
  mfd: rohm-generic: Add BD9571 and BD9574
  regulator: bd9571mwv: rid of using struct bd9571mwv
  regulator: bd9571mwv: Add BD9574MWF support
  gpio: bd9571mwv: Use the SPDX license identifier
  gpio: bd9571mwv: rid of using struct bd9571mwv
  gpio: bd9571mwv: Add BD9574MWF support
  mfd: bd9571mwv: Use the SPDX license identifier
  mfd: bd9571mwv: Use devm_regmap_add_irq_chip()

 .../devicetree/bindings/mfd/bd9571mwv.txt          |   4 +-
 drivers/gpio/gpio-bd9571mwv.c                      |  35 ++--
 drivers/mfd/bd9571mwv.c                            | 197 ++++++++++++++-------
 drivers/regulator/bd9571mwv-regulator.c            |  59 +++---
 include/linux/mfd/bd9571mwv.h                      |  45 ++---
 include/linux/mfd/rohm-generic.h                   |   2 +
 6 files changed, 203 insertions(+), 139 deletions(-)

-- 
2.7.4


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

* [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices()
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-22  8:41   ` Geert Uytterhoeven
  2020-12-21  2:54 ` [PATCH v4 02/12] dt-bindings: mfd: bd9571mwv: Document BD9574MWF Yoshihiro Shimoda
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

To remove mfd devices when unload this driver, should use
devm_mfd_add_devices() instead.

Fixes: d3ea21272094 ("mfd: Add ROHM BD9571MWV-M MFD PMIC driver")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/bd9571mwv.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mfd/bd9571mwv.c b/drivers/mfd/bd9571mwv.c
index fab3cdc..19d57a4 100644
--- a/drivers/mfd/bd9571mwv.c
+++ b/drivers/mfd/bd9571mwv.c
@@ -185,9 +185,9 @@ static int bd9571mwv_probe(struct i2c_client *client,
 		return ret;
 	}
 
-	ret = mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO, bd9571mwv_cells,
-			      ARRAY_SIZE(bd9571mwv_cells), NULL, 0,
-			      regmap_irq_get_domain(bd->irq_data));
+	ret = devm_mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO,
+				   bd9571mwv_cells, ARRAY_SIZE(bd9571mwv_cells),
+				   NULL, 0, regmap_irq_get_domain(bd->irq_data));
 	if (ret) {
 		regmap_del_irq_chip(bd->irq, bd->irq_data);
 		return ret;
-- 
2.7.4


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

* [PATCH v4 02/12] dt-bindings: mfd: bd9571mwv: Document BD9574MWF
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices() Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 03/12] mfd: rohm-generic: Add BD9571 and BD9574 Yoshihiro Shimoda
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Document other similar specification chip BD9574MWF.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
 Documentation/devicetree/bindings/mfd/bd9571mwv.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/mfd/bd9571mwv.txt b/Documentation/devicetree/bindings/mfd/bd9571mwv.txt
index 8c46786..1d6413e 100644
--- a/Documentation/devicetree/bindings/mfd/bd9571mwv.txt
+++ b/Documentation/devicetree/bindings/mfd/bd9571mwv.txt
@@ -1,7 +1,7 @@
-* ROHM BD9571MWV Power Management Integrated Circuit (PMIC) bindings
+* ROHM BD9571MWV/BD9574MWF Power Management Integrated Circuit (PMIC) bindings
 
 Required properties:
- - compatible		: Should be "rohm,bd9571mwv".
+ - compatible		: Should be "rohm,bd9571mwv" or "rohm,bd9574mwf".
  - reg			: I2C slave address.
  - interrupts		: The interrupt line the device is connected to.
  - interrupt-controller	: Marks the device node as an interrupt controller.
-- 
2.7.4


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

* [PATCH v4 03/12] mfd: rohm-generic: Add BD9571 and BD9574
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices() Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 02/12] dt-bindings: mfd: bd9571mwv: Document BD9574MWF Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 04/12] regulator: bd9571mwv: rid of using struct bd9571mwv Yoshihiro Shimoda
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Add chip IDs for BD9571MWV and BD9574MWF.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 include/linux/mfd/rohm-generic.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/linux/mfd/rohm-generic.h b/include/linux/mfd/rohm-generic.h
index 4283b5b..affacf8 100644
--- a/include/linux/mfd/rohm-generic.h
+++ b/include/linux/mfd/rohm-generic.h
@@ -12,6 +12,8 @@ enum rohm_chip_type {
 	ROHM_CHIP_TYPE_BD71847,
 	ROHM_CHIP_TYPE_BD70528,
 	ROHM_CHIP_TYPE_BD71828,
+	ROHM_CHIP_TYPE_BD9571,
+	ROHM_CHIP_TYPE_BD9574,
 	ROHM_CHIP_TYPE_AMOUNT
 };
 
-- 
2.7.4


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

* [PATCH v4 04/12] regulator: bd9571mwv: rid of using struct bd9571mwv
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (2 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 03/12] mfd: rohm-generic: Add BD9571 and BD9574 Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 05/12] regulator: bd9571mwv: Add BD9574MWF support Yoshihiro Shimoda
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

To simplify this driver, use dev_get_regmap() and
rid of using struct bd9571mwv.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
 drivers/regulator/bd9571mwv-regulator.c | 49 +++++++++++++++++----------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/drivers/regulator/bd9571mwv-regulator.c b/drivers/regulator/bd9571mwv-regulator.c
index e690c2c..42b6a70 100644
--- a/drivers/regulator/bd9571mwv-regulator.c
+++ b/drivers/regulator/bd9571mwv-regulator.c
@@ -17,7 +17,7 @@
 #include <linux/mfd/bd9571mwv.h>
 
 struct bd9571mwv_reg {
-	struct bd9571mwv *bd;
+	struct regmap *regmap;
 
 	/* DDR Backup Power */
 	u8 bkup_mode_cnt_keepon;	/* from "rohm,ddr-backup-power" */
@@ -137,26 +137,30 @@ static const struct regulator_desc regulators[] = {
 };
 
 #ifdef CONFIG_PM_SLEEP
-static int bd9571mwv_bkup_mode_read(struct bd9571mwv *bd, unsigned int *mode)
+static int bd9571mwv_bkup_mode_read(struct bd9571mwv_reg *bdreg,
+				    unsigned int *mode)
 {
 	int ret;
 
-	ret = regmap_read(bd->regmap, BD9571MWV_BKUP_MODE_CNT, mode);
+	ret = regmap_read(bdreg->regmap, BD9571MWV_BKUP_MODE_CNT, mode);
 	if (ret) {
-		dev_err(bd->dev, "failed to read backup mode (%d)\n", ret);
+		dev_err(regmap_get_device(bdreg->regmap),
+			"failed to read backup mode (%d)\n", ret);
 		return ret;
 	}
 
 	return 0;
 }
 
-static int bd9571mwv_bkup_mode_write(struct bd9571mwv *bd, unsigned int mode)
+static int bd9571mwv_bkup_mode_write(struct bd9571mwv_reg *bdreg,
+				     unsigned int mode)
 {
 	int ret;
 
-	ret = regmap_write(bd->regmap, BD9571MWV_BKUP_MODE_CNT, mode);
+	ret = regmap_write(bdreg->regmap, BD9571MWV_BKUP_MODE_CNT, mode);
 	if (ret) {
-		dev_err(bd->dev, "failed to configure backup mode 0x%x (%d)\n",
+		dev_err(regmap_get_device(bdreg->regmap),
+			"failed to configure backup mode 0x%x (%d)\n",
 			mode, ret);
 		return ret;
 	}
@@ -194,7 +198,7 @@ static ssize_t backup_mode_store(struct device *dev,
 	 * Configure DDR Backup Mode, to change the role of the accessory power
 	 * switch from a power switch to a wake-up switch, or vice versa
 	 */
-	ret = bd9571mwv_bkup_mode_read(bdreg->bd, &mode);
+	ret = bd9571mwv_bkup_mode_read(bdreg, &mode);
 	if (ret)
 		return ret;
 
@@ -202,7 +206,7 @@ static ssize_t backup_mode_store(struct device *dev,
 	if (bdreg->bkup_mode_enabled)
 		mode |= bdreg->bkup_mode_cnt_keepon;
 
-	ret = bd9571mwv_bkup_mode_write(bdreg->bd, mode);
+	ret = bd9571mwv_bkup_mode_write(bdreg, mode);
 	if (ret)
 		return ret;
 
@@ -221,7 +225,7 @@ static int bd9571mwv_suspend(struct device *dev)
 		return 0;
 
 	/* Save DDR Backup Mode */
-	ret = bd9571mwv_bkup_mode_read(bdreg->bd, &mode);
+	ret = bd9571mwv_bkup_mode_read(bdreg, &mode);
 	if (ret)
 		return ret;
 
@@ -235,7 +239,7 @@ static int bd9571mwv_suspend(struct device *dev)
 	mode |= bdreg->bkup_mode_cnt_keepon;
 
 	if (mode != bdreg->bkup_mode_cnt_saved)
-		return bd9571mwv_bkup_mode_write(bdreg->bd, mode);
+		return bd9571mwv_bkup_mode_write(bdreg, mode);
 
 	return 0;
 }
@@ -248,7 +252,7 @@ static int bd9571mwv_resume(struct device *dev)
 		return 0;
 
 	/* Restore DDR Backup Mode */
-	return bd9571mwv_bkup_mode_write(bdreg->bd, bdreg->bkup_mode_cnt_saved);
+	return bd9571mwv_bkup_mode_write(bdreg, bdreg->bkup_mode_cnt_saved);
 }
 
 static const struct dev_pm_ops bd9571mwv_pm  = {
@@ -268,7 +272,6 @@ static int bd9571mwv_regulator_remove(struct platform_device *pdev)
 
 static int bd9571mwv_regulator_probe(struct platform_device *pdev)
 {
-	struct bd9571mwv *bd = dev_get_drvdata(pdev->dev.parent);
 	struct regulator_config config = { };
 	struct bd9571mwv_reg *bdreg;
 	struct regulator_dev *rdev;
@@ -279,40 +282,40 @@ static int bd9571mwv_regulator_probe(struct platform_device *pdev)
 	if (!bdreg)
 		return -ENOMEM;
 
-	bdreg->bd = bd;
+	bdreg->regmap = dev_get_regmap(pdev->dev.parent, NULL);
 
 	platform_set_drvdata(pdev, bdreg);
 
 	config.dev = &pdev->dev;
-	config.dev->of_node = bd->dev->of_node;
-	config.driver_data = bd;
-	config.regmap = bd->regmap;
+	config.dev->of_node = pdev->dev.parent->of_node;
+	config.driver_data = bdreg;
+	config.regmap = bdreg->regmap;
 
 	for (i = 0; i < ARRAY_SIZE(regulators); i++) {
 		rdev = devm_regulator_register(&pdev->dev, &regulators[i],
 					       &config);
 		if (IS_ERR(rdev)) {
-			dev_err(bd->dev, "failed to register %s regulator\n",
+			dev_err(&pdev->dev, "failed to register %s regulator\n",
 				pdev->name);
 			return PTR_ERR(rdev);
 		}
 	}
 
 	val = 0;
-	of_property_read_u32(bd->dev->of_node, "rohm,ddr-backup-power", &val);
+	of_property_read_u32(config.dev->of_node, "rohm,ddr-backup-power", &val);
 	if (val & ~BD9571MWV_BKUP_MODE_CNT_KEEPON_MASK) {
-		dev_err(bd->dev, "invalid %s mode %u\n",
+		dev_err(&pdev->dev, "invalid %s mode %u\n",
 			"rohm,ddr-backup-power", val);
 		return -EINVAL;
 	}
 	bdreg->bkup_mode_cnt_keepon = val;
 
-	bdreg->rstbmode_level = of_property_read_bool(bd->dev->of_node,
+	bdreg->rstbmode_level = of_property_read_bool(config.dev->of_node,
 						      "rohm,rstbmode-level");
-	bdreg->rstbmode_pulse = of_property_read_bool(bd->dev->of_node,
+	bdreg->rstbmode_pulse = of_property_read_bool(config.dev->of_node,
 						      "rohm,rstbmode-pulse");
 	if (bdreg->rstbmode_level && bdreg->rstbmode_pulse) {
-		dev_err(bd->dev, "only one rohm,rstbmode-* may be specified");
+		dev_err(&pdev->dev, "only one rohm,rstbmode-* may be specified");
 		return -EINVAL;
 	}
 
-- 
2.7.4


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

* [PATCH v4 05/12] regulator: bd9571mwv: Add BD9574MWF support
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (3 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 04/12] regulator: bd9571mwv: rid of using struct bd9571mwv Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 06/12] gpio: bd9571mwv: Use the SPDX license identifier Yoshihiro Shimoda
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Add support for BD9574MWF which is silimar chip with BD9571MWV.
Note that we don't support voltage rails VD{09,18,25,33} by this
driver on BD9574. The VD09 voltage could be read from PMIC but that
is not supported by this commit.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
 drivers/regulator/bd9571mwv-regulator.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/bd9571mwv-regulator.c b/drivers/regulator/bd9571mwv-regulator.c
index 42b6a70..7b0cd08 100644
--- a/drivers/regulator/bd9571mwv-regulator.c
+++ b/drivers/regulator/bd9571mwv-regulator.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * ROHM BD9571MWV-M regulator driver
+ * ROHM BD9571MWV-M and BD9574MWF-M regulator driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  *
@@ -9,6 +9,7 @@
  * NOTE: VD09 is missing
  */
 
+#include <linux/mfd/rohm-generic.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
@@ -277,6 +278,7 @@ static int bd9571mwv_regulator_probe(struct platform_device *pdev)
 	struct regulator_dev *rdev;
 	unsigned int val;
 	int i;
+	enum rohm_chip_type chip = platform_get_device_id(pdev)->driver_data;
 
 	bdreg = devm_kzalloc(&pdev->dev, sizeof(*bdreg), GFP_KERNEL);
 	if (!bdreg)
@@ -292,6 +294,9 @@ static int bd9571mwv_regulator_probe(struct platform_device *pdev)
 	config.regmap = bdreg->regmap;
 
 	for (i = 0; i < ARRAY_SIZE(regulators); i++) {
+		/* BD9574MWF supports DVFS only */
+		if (chip == ROHM_CHIP_TYPE_BD9574 && regulators[i].id != DVFS)
+			continue;
 		rdev = devm_regulator_register(&pdev->dev, &regulators[i],
 					       &config);
 		if (IS_ERR(rdev)) {
@@ -339,7 +344,8 @@ static int bd9571mwv_regulator_probe(struct platform_device *pdev)
 }
 
 static const struct platform_device_id bd9571mwv_regulator_id_table[] = {
-	{ "bd9571mwv-regulator", },
+	{ "bd9571mwv-regulator", ROHM_CHIP_TYPE_BD9571 },
+	{ "bd9574mwf-regulator", ROHM_CHIP_TYPE_BD9574 },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(platform, bd9571mwv_regulator_id_table);
-- 
2.7.4


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

* [PATCH v4 06/12] gpio: bd9571mwv: Use the SPDX license identifier
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (4 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 05/12] regulator: bd9571mwv: Add BD9574MWF support Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 07/12] gpio: bd9571mwv: rid of using struct bd9571mwv Yoshihiro Shimoda
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Use the SPDX license identifier instead of a local description.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 drivers/gpio/gpio-bd9571mwv.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio-bd9571mwv.c
index c0abc9c..abb622c 100644
--- a/drivers/gpio/gpio-bd9571mwv.c
+++ b/drivers/gpio/gpio-bd9571mwv.c
@@ -1,17 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-only
 /*
  * ROHM BD9571MWV-M GPIO driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether expressed or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License version 2 for more details.
- *
  * Based on the TPS65086 driver
  *
  * NOTE: Interrupts are not supported yet.
-- 
2.7.4


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

* [PATCH v4 07/12] gpio: bd9571mwv: rid of using struct bd9571mwv
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (5 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 06/12] gpio: bd9571mwv: Use the SPDX license identifier Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support Yoshihiro Shimoda
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

To simplify this driver, use dev_get_regmap() and
rid of using struct bd9571mwv.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
 drivers/gpio/gpio-bd9571mwv.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio-bd9571mwv.c
index abb622c..0e5395f 100644
--- a/drivers/gpio/gpio-bd9571mwv.c
+++ b/drivers/gpio/gpio-bd9571mwv.c
@@ -16,8 +16,8 @@
 #include <linux/mfd/bd9571mwv.h>
 
 struct bd9571mwv_gpio {
+	struct regmap *regmap;
 	struct gpio_chip chip;
-	struct bd9571mwv *bd;
 };
 
 static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip,
@@ -26,7 +26,7 @@ static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip,
 	struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip);
 	int ret, val;
 
-	ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val);
+	ret = regmap_read(gpio->regmap, BD9571MWV_GPIO_DIR, &val);
 	if (ret < 0)
 		return ret;
 	if (val & BIT(offset))
@@ -40,8 +40,7 @@ static int bd9571mwv_gpio_direction_input(struct gpio_chip *chip,
 {
 	struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip);
 
-	regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_DIR,
-			   BIT(offset), 0);
+	regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_DIR, BIT(offset), 0);
 
 	return 0;
 }
@@ -52,9 +51,9 @@ static int bd9571mwv_gpio_direction_output(struct gpio_chip *chip,
 	struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip);
 
 	/* Set the initial value */
-	regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_OUT,
+	regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_OUT,
 			   BIT(offset), value ? BIT(offset) : 0);
-	regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_DIR,
+	regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_DIR,
 			   BIT(offset), BIT(offset));
 
 	return 0;
@@ -65,7 +64,7 @@ static int bd9571mwv_gpio_get(struct gpio_chip *chip, unsigned int offset)
 	struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip);
 	int ret, val;
 
-	ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_IN, &val);
+	ret = regmap_read(gpio->regmap, BD9571MWV_GPIO_IN, &val);
 	if (ret < 0)
 		return ret;
 
@@ -77,7 +76,7 @@ static void bd9571mwv_gpio_set(struct gpio_chip *chip, unsigned int offset,
 {
 	struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip);
 
-	regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_OUT,
+	regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_OUT,
 			   BIT(offset), value ? BIT(offset) : 0);
 }
 
@@ -105,9 +104,9 @@ static int bd9571mwv_gpio_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, gpio);
 
-	gpio->bd = dev_get_drvdata(pdev->dev.parent);
+	gpio->regmap = dev_get_regmap(pdev->dev.parent, NULL);
 	gpio->chip = template_chip;
-	gpio->chip.parent = gpio->bd->dev;
+	gpio->chip.parent = pdev->dev.parent;
 
 	ret = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio);
 	if (ret < 0) {
-- 
2.7.4


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

* [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (6 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 07/12] gpio: bd9571mwv: rid of using struct bd9571mwv Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 09/12] mfd: bd9571mwv: Use the SPDX license identifier Yoshihiro Shimoda
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Add support for BD9574MWF which is silimar chip with BD9571MWV.
Note that BD9574MWF has additional features "RECOV_GPOUT",
"FREQSEL" and "RTC_IN", but supports GPIO function only.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
 drivers/gpio/gpio-bd9571mwv.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio-bd9571mwv.c
index 0e5395f..df6102b 100644
--- a/drivers/gpio/gpio-bd9571mwv.c
+++ b/drivers/gpio/gpio-bd9571mwv.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * ROHM BD9571MWV-M GPIO driver
+ * ROHM BD9571MWV-M and BD9574MWF-M GPIO driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  *
@@ -10,6 +10,7 @@
  */
 
 #include <linux/gpio/driver.h>
+#include <linux/mfd/rohm-generic.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
 
@@ -118,7 +119,8 @@ static int bd9571mwv_gpio_probe(struct platform_device *pdev)
 }
 
 static const struct platform_device_id bd9571mwv_gpio_id_table[] = {
-	{ "bd9571mwv-gpio", },
+	{ "bd9571mwv-gpio", ROHM_CHIP_TYPE_BD9571 },
+	{ "bd9574mwf-gpio", ROHM_CHIP_TYPE_BD9574 },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(platform, bd9571mwv_gpio_id_table);
-- 
2.7.4


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

* [PATCH v4 09/12] mfd: bd9571mwv: Use the SPDX license identifier
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (7 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip() Yoshihiro Shimoda
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Use the SPDX license identifier instead of a local description.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/bd9571mwv.c       | 10 +---------
 include/linux/mfd/bd9571mwv.h | 10 +---------
 2 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/drivers/mfd/bd9571mwv.c b/drivers/mfd/bd9571mwv.c
index 19d57a4..e68c3fa 100644
--- a/drivers/mfd/bd9571mwv.c
+++ b/drivers/mfd/bd9571mwv.c
@@ -1,17 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-only
 /*
  * ROHM BD9571MWV-M MFD driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether expressed or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License version 2 for more details.
- *
  * Based on the TPS65086 driver
  */
 
diff --git a/include/linux/mfd/bd9571mwv.h b/include/linux/mfd/bd9571mwv.h
index eb05569..bcc7092 100644
--- a/include/linux/mfd/bd9571mwv.h
+++ b/include/linux/mfd/bd9571mwv.h
@@ -1,17 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * ROHM BD9571MWV-M driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether expressed or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License version 2 for more details.
- *
  * Based on the TPS65086 driver
  */
 
-- 
2.7.4


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

* [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip()
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (8 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 09/12] mfd: bd9571mwv: Use the SPDX license identifier Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-22  8:49   ` Geert Uytterhoeven
  2020-12-21  2:54 ` [PATCH v4 11/12] mfd: bd9571mwv: Make the driver more generic Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
  11 siblings, 1 reply; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

Use dev_regmap_add_irq_chip() to simplify the code.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/bd9571mwv.c | 27 ++++++---------------------
 1 file changed, 6 insertions(+), 21 deletions(-)

diff --git a/drivers/mfd/bd9571mwv.c b/drivers/mfd/bd9571mwv.c
index e68c3fa..49e968e 100644
--- a/drivers/mfd/bd9571mwv.c
+++ b/drivers/mfd/bd9571mwv.c
@@ -170,31 +170,17 @@ static int bd9571mwv_probe(struct i2c_client *client,
 	if (ret)
 		return ret;
 
-	ret = regmap_add_irq_chip(bd->regmap, bd->irq, IRQF_ONESHOT, 0,
-				  &bd9571mwv_irq_chip, &bd->irq_data);
+	ret = devm_regmap_add_irq_chip(bd->dev, bd->regmap, bd->irq,
+				       IRQF_ONESHOT, 0, &bd9571mwv_irq_chip,
+				       &bd->irq_data);
 	if (ret) {
 		dev_err(bd->dev, "Failed to register IRQ chip\n");
 		return ret;
 	}
 
-	ret = devm_mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO,
-				   bd9571mwv_cells, ARRAY_SIZE(bd9571mwv_cells),
-				   NULL, 0, regmap_irq_get_domain(bd->irq_data));
-	if (ret) {
-		regmap_del_irq_chip(bd->irq, bd->irq_data);
-		return ret;
-	}
-
-	return 0;
-}
-
-static int bd9571mwv_remove(struct i2c_client *client)
-{
-	struct bd9571mwv *bd = i2c_get_clientdata(client);
-
-	regmap_del_irq_chip(bd->irq, bd->irq_data);
-
-	return 0;
+	return devm_mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO,
+				    bd9571mwv_cells, ARRAY_SIZE(bd9571mwv_cells),
+				    NULL, 0, regmap_irq_get_domain(bd->irq_data));
 }
 
 static const struct of_device_id bd9571mwv_of_match_table[] = {
@@ -215,7 +201,6 @@ static struct i2c_driver bd9571mwv_driver = {
 		.of_match_table = bd9571mwv_of_match_table,
 	},
 	.probe		= bd9571mwv_probe,
-	.remove		= bd9571mwv_remove,
 	.id_table       = bd9571mwv_id_table,
 };
 module_i2c_driver(bd9571mwv_driver);
-- 
2.7.4


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

* [PATCH v4 11/12] mfd: bd9571mwv: Make the driver more generic
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (9 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip() Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-21  2:54 ` [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
  11 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

From: Khiem Nguyen <khiem.nguyen.xt@renesas.com>

Since the driver supports BD9571MWV PMIC only, this patch makes
the functions and data structure become more generic so that
it can support other PMIC variants as well. Also remove printing
part name which Lee Jones suggested.

Signed-off-by: Khiem Nguyen <khiem.nguyen.xt@renesas.com>
Co-developed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
 drivers/mfd/bd9571mwv.c       | 89 +++++++++++++++++++++++++------------------
 include/linux/mfd/bd9571mwv.h | 18 +--------
 2 files changed, 54 insertions(+), 53 deletions(-)

diff --git a/drivers/mfd/bd9571mwv.c b/drivers/mfd/bd9571mwv.c
index 49e968e..c905ab4 100644
--- a/drivers/mfd/bd9571mwv.c
+++ b/drivers/mfd/bd9571mwv.c
@@ -3,6 +3,7 @@
  * ROHM BD9571MWV-M MFD driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
+ * Copyright (C) 2020 Renesas Electronics Corporation
  *
  * Based on the TPS65086 driver
  */
@@ -14,6 +15,14 @@
 
 #include <linux/mfd/bd9571mwv.h>
 
+/* Driver data to distinguish bd957x variants */
+struct bd957x_ddata {
+	const struct regmap_config *regmap_config;
+	const struct regmap_irq_chip *irq_chip;
+	const struct mfd_cell *cells;
+	int num_cells;
+};
+
 static const struct mfd_cell bd9571mwv_cells[] = {
 	{ .name = "bd9571mwv-regulator", },
 	{ .name = "bd9571mwv-gpio", },
@@ -102,13 +111,19 @@ static struct regmap_irq_chip bd9571mwv_irq_chip = {
 	.num_irqs	= ARRAY_SIZE(bd9571mwv_irqs),
 };
 
-static int bd9571mwv_identify(struct bd9571mwv *bd)
+static const struct bd957x_ddata bd9571mwv_ddata = {
+	.regmap_config = &bd9571mwv_regmap_config,
+	.irq_chip = &bd9571mwv_irq_chip,
+	.cells = bd9571mwv_cells,
+	.num_cells = ARRAY_SIZE(bd9571mwv_cells),
+};
+
+static int bd957x_identify(struct device *dev, struct regmap *regmap)
 {
-	struct device *dev = bd->dev;
 	unsigned int value;
 	int ret;
 
-	ret = regmap_read(bd->regmap, BD9571MWV_VENDOR_CODE, &value);
+	ret = regmap_read(regmap, BD9571MWV_VENDOR_CODE, &value);
 	if (ret) {
 		dev_err(dev, "Failed to read vendor code register (ret=%i)\n",
 			ret);
@@ -121,66 +136,66 @@ static int bd9571mwv_identify(struct bd9571mwv *bd)
 		return -EINVAL;
 	}
 
-	ret = regmap_read(bd->regmap, BD9571MWV_PRODUCT_CODE, &value);
+	ret = regmap_read(regmap, BD9571MWV_PRODUCT_CODE, &value);
 	if (ret) {
 		dev_err(dev, "Failed to read product code register (ret=%i)\n",
 			ret);
 		return ret;
 	}
-
-	if (value != BD9571MWV_PRODUCT_CODE_VAL) {
-		dev_err(dev, "Invalid product code ID %02x (expected %02x)\n",
-			value, BD9571MWV_PRODUCT_CODE_VAL);
-		return -EINVAL;
-	}
-
-	ret = regmap_read(bd->regmap, BD9571MWV_PRODUCT_REVISION, &value);
+	ret = regmap_read(regmap, BD9571MWV_PRODUCT_REVISION, &value);
 	if (ret) {
 		dev_err(dev, "Failed to read revision register (ret=%i)\n",
 			ret);
 		return ret;
 	}
 
-	dev_info(dev, "Device: BD9571MWV rev. %d\n", value & 0xff);
-
 	return 0;
 }
 
 static int bd9571mwv_probe(struct i2c_client *client,
-			  const struct i2c_device_id *ids)
+			   const struct i2c_device_id *ids)
 {
-	struct bd9571mwv *bd;
-	int ret;
-
-	bd = devm_kzalloc(&client->dev, sizeof(*bd), GFP_KERNEL);
-	if (!bd)
-		return -ENOMEM;
-
-	i2c_set_clientdata(client, bd);
-	bd->dev = &client->dev;
-	bd->irq = client->irq;
+	const struct bd957x_ddata *ddata;
+	struct device *dev = &client->dev;
+	struct regmap *regmap;
+	struct regmap_irq_chip_data *irq_data;
+	int ret, irq = client->irq;
+
+	/* Read the PMIC product code */
+	ret = i2c_smbus_read_byte_data(client, BD9571MWV_PRODUCT_CODE);
+	if (ret < 0) {
+		dev_err(dev, "Failed to read product code\n");
+		return ret;
+	}
+	switch (ret) {
+	case BD9571MWV_PRODUCT_CODE_BD9571MWV:
+		ddata = &bd9571mwv_ddata;
+		break;
+	default:
+		dev_err(dev, "Unsupported device 0x%x\n", ret);
+		return -ENODEV;
+	}
 
-	bd->regmap = devm_regmap_init_i2c(client, &bd9571mwv_regmap_config);
-	if (IS_ERR(bd->regmap)) {
-		dev_err(bd->dev, "Failed to initialize register map\n");
-		return PTR_ERR(bd->regmap);
+	regmap = devm_regmap_init_i2c(client, ddata->regmap_config);
+	if (IS_ERR(regmap)) {
+		dev_err(dev, "Failed to initialize register map\n");
+		return PTR_ERR(regmap);
 	}
 
-	ret = bd9571mwv_identify(bd);
+	ret = bd957x_identify(dev, regmap);
 	if (ret)
 		return ret;
 
-	ret = devm_regmap_add_irq_chip(bd->dev, bd->regmap, bd->irq,
-				       IRQF_ONESHOT, 0, &bd9571mwv_irq_chip,
-				       &bd->irq_data);
+	ret = devm_regmap_add_irq_chip(dev, regmap, irq, IRQF_ONESHOT, 0,
+				       ddata->irq_chip, &irq_data);
 	if (ret) {
-		dev_err(bd->dev, "Failed to register IRQ chip\n");
+		dev_err(dev, "Failed to register IRQ chip\n");
 		return ret;
 	}
 
-	return devm_mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO,
-				    bd9571mwv_cells, ARRAY_SIZE(bd9571mwv_cells),
-				    NULL, 0, regmap_irq_get_domain(bd->irq_data));
+	return devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO, ddata->cells,
+				    ddata->num_cells, NULL, 0,
+				    regmap_irq_get_domain(irq_data));
 }
 
 static const struct of_device_id bd9571mwv_of_match_table[] = {
diff --git a/include/linux/mfd/bd9571mwv.h b/include/linux/mfd/bd9571mwv.h
index bcc7092..e1716ec 100644
--- a/include/linux/mfd/bd9571mwv.h
+++ b/include/linux/mfd/bd9571mwv.h
@@ -3,6 +3,7 @@
  * ROHM BD9571MWV-M driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
+ * Copyright (C) 2020 Renesas Electronics Corporation
  *
  * Based on the TPS65086 driver
  */
@@ -17,7 +18,7 @@
 #define BD9571MWV_VENDOR_CODE			0x00
 #define BD9571MWV_VENDOR_CODE_VAL		0xdb
 #define BD9571MWV_PRODUCT_CODE			0x01
-#define BD9571MWV_PRODUCT_CODE_VAL		0x60
+#define BD9571MWV_PRODUCT_CODE_BD9571MWV	0x60
 #define BD9571MWV_PRODUCT_REVISION		0x02
 
 #define BD9571MWV_I2C_FUSA_MODE			0x10
@@ -94,19 +95,4 @@ enum bd9571mwv_irqs {
 	BD9571MWV_IRQ_WDT_OF,
 	BD9571MWV_IRQ_BKUP_TRG,
 };
-
-/**
- * struct bd9571mwv - state holder for the bd9571mwv driver
- *
- * Device data may be used to access the BD9571MWV chip
- */
-struct bd9571mwv {
-	struct device *dev;
-	struct regmap *regmap;
-
-	/* IRQ Data */
-	int irq;
-	struct regmap_irq_chip_data *irq_data;
-};
-
 #endif /* __LINUX_MFD_BD9571MWV_H */
-- 
2.7.4


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

* [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
                   ` (10 preceding siblings ...)
  2020-12-21  2:54 ` [PATCH v4 11/12] mfd: bd9571mwv: Make the driver more generic Yoshihiro Shimoda
@ 2020-12-21  2:54 ` Yoshihiro Shimoda
  2020-12-22  8:52   ` Geert Uytterhoeven
  11 siblings, 1 reply; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-21  2:54 UTC (permalink / raw)
  To: marek.vasut+renesas, lee.jones, matti.vaittinen, lgirdwood,
	broonie, linus.walleij, bgolaszewski
  Cc: khiem.nguyen.xt, linux-power, linux-gpio, linux-renesas-soc,
	linux-kernel, Yoshihiro Shimoda

From: Khiem Nguyen <khiem.nguyen.xt@renesas.com>

The new PMIC BD9574MWF inherits features from BD9571MWV.
Add the support of new PMIC to existing bd9571mwv driver.

Signed-off-by: Khiem Nguyen <khiem.nguyen.xt@renesas.com>
Co-developed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
---
 drivers/mfd/bd9571mwv.c       | 83 +++++++++++++++++++++++++++++++++++++++++--
 include/linux/mfd/bd9571mwv.h | 17 +++++++--
 2 files changed, 95 insertions(+), 5 deletions(-)

diff --git a/drivers/mfd/bd9571mwv.c b/drivers/mfd/bd9571mwv.c
index c905ab4..ab753a9 100644
--- a/drivers/mfd/bd9571mwv.c
+++ b/drivers/mfd/bd9571mwv.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * ROHM BD9571MWV-M MFD driver
+ * ROHM BD9571MWV-M and BD9574MVF-M core driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  * Copyright (C) 2020 Renesas Electronics Corporation
@@ -11,6 +11,7 @@
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
 #include <linux/mfd/core.h>
+#include <linux/mfd/rohm-generic.h>
 #include <linux/module.h>
 
 #include <linux/mfd/bd9571mwv.h>
@@ -118,6 +119,79 @@ static const struct bd957x_ddata bd9571mwv_ddata = {
 	.num_cells = ARRAY_SIZE(bd9571mwv_cells),
 };
 
+static const struct mfd_cell bd9574mwf_cells[] = {
+	{ .name = "bd9574mwf-regulator", },
+	{ .name = "bd9574mwf-gpio", },
+};
+
+static const struct regmap_range bd9574mwf_readable_yes_ranges[] = {
+	regmap_reg_range(BD9571MWV_VENDOR_CODE, BD9571MWV_PRODUCT_REVISION),
+	regmap_reg_range(BD9571MWV_BKUP_MODE_CNT, BD9571MWV_BKUP_MODE_CNT),
+	regmap_reg_range(BD9571MWV_DVFS_VINIT, BD9571MWV_DVFS_SETVMAX),
+	regmap_reg_range(BD9571MWV_DVFS_SETVID, BD9571MWV_DVFS_MONIVDAC),
+	regmap_reg_range(BD9571MWV_GPIO_IN, BD9571MWV_GPIO_IN),
+	regmap_reg_range(BD9571MWV_GPIO_INT, BD9571MWV_GPIO_INTMASK),
+	regmap_reg_range(BD9571MWV_INT_INTREQ, BD9571MWV_INT_INTMASK),
+};
+
+static const struct regmap_access_table bd9574mwf_readable_table = {
+	.yes_ranges	= bd9574mwf_readable_yes_ranges,
+	.n_yes_ranges	= ARRAY_SIZE(bd9574mwf_readable_yes_ranges),
+};
+
+static const struct regmap_range bd9574mwf_writable_yes_ranges[] = {
+	regmap_reg_range(BD9571MWV_BKUP_MODE_CNT, BD9571MWV_BKUP_MODE_CNT),
+	regmap_reg_range(BD9571MWV_DVFS_SETVID, BD9571MWV_DVFS_SETVID),
+	regmap_reg_range(BD9571MWV_GPIO_DIR, BD9571MWV_GPIO_OUT),
+	regmap_reg_range(BD9571MWV_GPIO_INT_SET, BD9571MWV_GPIO_INTMASK),
+	regmap_reg_range(BD9571MWV_INT_INTREQ, BD9571MWV_INT_INTMASK),
+};
+
+static const struct regmap_access_table bd9574mwf_writable_table = {
+	.yes_ranges	= bd9574mwf_writable_yes_ranges,
+	.n_yes_ranges	= ARRAY_SIZE(bd9574mwf_writable_yes_ranges),
+};
+
+static const struct regmap_range bd9574mwf_volatile_yes_ranges[] = {
+	regmap_reg_range(BD9571MWV_DVFS_MONIVDAC, BD9571MWV_DVFS_MONIVDAC),
+	regmap_reg_range(BD9571MWV_GPIO_IN, BD9571MWV_GPIO_IN),
+	regmap_reg_range(BD9571MWV_GPIO_INT, BD9571MWV_GPIO_INT),
+	regmap_reg_range(BD9571MWV_INT_INTREQ, BD9571MWV_INT_INTREQ),
+};
+
+static const struct regmap_access_table bd9574mwf_volatile_table = {
+	.yes_ranges	= bd9574mwf_volatile_yes_ranges,
+	.n_yes_ranges	= ARRAY_SIZE(bd9574mwf_volatile_yes_ranges),
+};
+
+static const struct regmap_config bd9574mwf_regmap_config = {
+	.reg_bits	= 8,
+	.val_bits	= 8,
+	.cache_type	= REGCACHE_RBTREE,
+	.rd_table	= &bd9574mwf_readable_table,
+	.wr_table	= &bd9574mwf_writable_table,
+	.volatile_table	= &bd9574mwf_volatile_table,
+	.max_register	= 0xff,
+};
+
+static struct regmap_irq_chip bd9574mwf_irq_chip = {
+	.name		= "bd9574mwf",
+	.status_base	= BD9571MWV_INT_INTREQ,
+	.mask_base	= BD9571MWV_INT_INTMASK,
+	.ack_base	= BD9571MWV_INT_INTREQ,
+	.init_ack_masked = true,
+	.num_regs	= 1,
+	.irqs		= bd9571mwv_irqs,
+	.num_irqs	= ARRAY_SIZE(bd9571mwv_irqs),
+};
+
+static const struct bd957x_ddata bd9574mwf_ddata = {
+	.regmap_config = &bd9574mwf_regmap_config,
+	.irq_chip = &bd9574mwf_irq_chip,
+	.cells = bd9574mwf_cells,
+	.num_cells = ARRAY_SIZE(bd9574mwf_cells),
+};
+
 static int bd957x_identify(struct device *dev, struct regmap *regmap)
 {
 	unsigned int value;
@@ -171,6 +245,9 @@ static int bd9571mwv_probe(struct i2c_client *client,
 	case BD9571MWV_PRODUCT_CODE_BD9571MWV:
 		ddata = &bd9571mwv_ddata;
 		break;
+	case BD9571MWV_PRODUCT_CODE_BD9574MWF:
+		ddata = &bd9574mwf_ddata;
+		break;
 	default:
 		dev_err(dev, "Unsupported device 0x%x\n", ret);
 		return -ENODEV;
@@ -200,12 +277,14 @@ static int bd9571mwv_probe(struct i2c_client *client,
 
 static const struct of_device_id bd9571mwv_of_match_table[] = {
 	{ .compatible = "rohm,bd9571mwv", },
+	{ .compatible = "rohm,bd9574mwf", },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, bd9571mwv_of_match_table);
 
 static const struct i2c_device_id bd9571mwv_id_table[] = {
-	{ "bd9571mwv", 0 },
+	{ "bd9571mwv", ROHM_CHIP_TYPE_BD9571 },
+	{ "bd9574mwf", ROHM_CHIP_TYPE_BD9574 },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(i2c, bd9571mwv_id_table);
diff --git a/include/linux/mfd/bd9571mwv.h b/include/linux/mfd/bd9571mwv.h
index e1716ec..8efd99d 100644
--- a/include/linux/mfd/bd9571mwv.h
+++ b/include/linux/mfd/bd9571mwv.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * ROHM BD9571MWV-M driver
+ * ROHM BD9571MWV-M and BD9574MWF-M driver
  *
  * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
  * Copyright (C) 2020 Renesas Electronics Corporation
@@ -14,11 +14,12 @@
 #include <linux/device.h>
 #include <linux/regmap.h>
 
-/* List of registers for BD9571MWV */
+/* List of registers for BD9571MWV and BD9574MWF */
 #define BD9571MWV_VENDOR_CODE			0x00
 #define BD9571MWV_VENDOR_CODE_VAL		0xdb
 #define BD9571MWV_PRODUCT_CODE			0x01
 #define BD9571MWV_PRODUCT_CODE_BD9571MWV	0x60
+#define BD9571MWV_PRODUCT_CODE_BD9574MWF	0x74
 #define BD9571MWV_PRODUCT_REVISION		0x02
 
 #define BD9571MWV_I2C_FUSA_MODE			0x10
@@ -48,6 +49,7 @@
 #define BD9571MWV_VD33_VID			0x44
 
 #define BD9571MWV_DVFS_VINIT			0x50
+#define BD9574MWF_VD09_VINIT			0x51
 #define BD9571MWV_DVFS_SETVMAX			0x52
 #define BD9571MWV_DVFS_BOOSTVID			0x53
 #define BD9571MWV_DVFS_SETVID			0x54
@@ -61,6 +63,7 @@
 #define BD9571MWV_GPIO_INT_SET			0x64
 #define BD9571MWV_GPIO_INT			0x65
 #define BD9571MWV_GPIO_INTMASK			0x66
+#define BD9574MWF_GPIO_MUX			0x67
 
 #define BD9571MWV_REG_KEEP(n)			(0x70 + (n))
 
@@ -70,6 +73,8 @@
 #define BD9571MWV_PROT_ERROR_STATUS2		0x83
 #define BD9571MWV_PROT_ERROR_STATUS3		0x84
 #define BD9571MWV_PROT_ERROR_STATUS4		0x85
+#define BD9574MWF_PROT_ERROR_STATUS5		0x86
+#define BD9574MWF_SYSTEM_ERROR_STATUS		0x87
 
 #define BD9571MWV_INT_INTREQ			0x90
 #define BD9571MWV_INT_INTREQ_MD1_INT		BIT(0)
@@ -82,6 +87,12 @@
 #define BD9571MWV_INT_INTREQ_BKUP_TRG_INT	BIT(7)
 #define BD9571MWV_INT_INTMASK			0x91
 
+#define BD9574MWF_SSCG_CNT			0xA0
+#define BD9574MWF_POFFB_MRB			0xA1
+#define BD9574MWF_SMRB_WR_PROT			0xA2
+#define BD9574MWF_SMRB_ASSERT			0xA3
+#define BD9574MWF_SMRB_STATUS			0xA4
+
 #define BD9571MWV_ACCESS_KEY			0xff
 
 /* Define the BD9571MWV IRQ numbers */
@@ -91,7 +102,7 @@ enum bd9571mwv_irqs {
 	BD9571MWV_IRQ_MD2_E2,
 	BD9571MWV_IRQ_PROT_ERR,
 	BD9571MWV_IRQ_GP,
-	BD9571MWV_IRQ_128H_OF,
+	BD9571MWV_IRQ_128H_OF,	/* BKUP_HOLD on BD9574MWF */
 	BD9571MWV_IRQ_WDT_OF,
 	BD9571MWV_IRQ_BKUP_TRG,
 };
-- 
2.7.4


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

* Re: [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices()
  2020-12-21  2:54 ` [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices() Yoshihiro Shimoda
@ 2020-12-22  8:41   ` Geert Uytterhoeven
  2020-12-22  9:10     ` Vaittinen, Matti
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2020-12-22  8:41 UTC (permalink / raw)
  To: Yoshihiro Shimoda
  Cc: Marek Vasut, Lee Jones, Matti Vaittinen, Liam Girdwood,
	Mark Brown, Linus Walleij, Bartosz Golaszewski, Khiem Nguyen,
	linux-power, open list:GPIO SUBSYSTEM, Linux-Renesas,
	Linux Kernel Mailing List

On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
<yoshihiro.shimoda.uh@renesas.com> wrote:
> To remove mfd devices when unload this driver, should use
> devm_mfd_add_devices() instead.
>
> Fixes: d3ea21272094 ("mfd: Add ROHM BD9571MWV-M MFD PMIC driver")
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip()
  2020-12-21  2:54 ` [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip() Yoshihiro Shimoda
@ 2020-12-22  8:49   ` Geert Uytterhoeven
  2020-12-22  9:15     ` Vaittinen, Matti
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2020-12-22  8:49 UTC (permalink / raw)
  To: Yoshihiro Shimoda
  Cc: Marek Vasut, Lee Jones, Matti Vaittinen, Liam Girdwood,
	Mark Brown, Linus Walleij, Bartosz Golaszewski, Khiem Nguyen,
	linux-power, open list:GPIO SUBSYSTEM, Linux-Renesas,
	Linux Kernel Mailing List

On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
<yoshihiro.shimoda.uh@renesas.com> wrote:
> Use dev_regmap_add_irq_chip() to simplify the code.
>
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-21  2:54 ` [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
@ 2020-12-22  8:52   ` Geert Uytterhoeven
  2020-12-22  9:23     ` Yoshihiro Shimoda
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2020-12-22  8:52 UTC (permalink / raw)
  To: Yoshihiro Shimoda
  Cc: Marek Vasut, Lee Jones, Matti Vaittinen, Liam Girdwood,
	Mark Brown, Linus Walleij, Bartosz Golaszewski, Khiem Nguyen,
	linux-power, open list:GPIO SUBSYSTEM, Linux-Renesas,
	Linux Kernel Mailing List

Hi Shimoda-san,

On Mon, Dec 21, 2020 at 3:56 AM Yoshihiro Shimoda
<yoshihiro.shimoda.uh@renesas.com> wrote:
> From: Khiem Nguyen <khiem.nguyen.xt@renesas.com>
>
> The new PMIC BD9574MWF inherits features from BD9571MWV.
> Add the support of new PMIC to existing bd9571mwv driver.
>
> Signed-off-by: Khiem Nguyen <khiem.nguyen.xt@renesas.com>
> Co-developed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

Thanks for your patch!

> --- a/drivers/mfd/bd9571mwv.c
> +++ b/drivers/mfd/bd9571mwv.c

> @@ -200,12 +277,14 @@ static int bd9571mwv_probe(struct i2c_client *client,
>
>  static const struct of_device_id bd9571mwv_of_match_table[] = {
>         { .compatible = "rohm,bd9571mwv", },
> +       { .compatible = "rohm,bd9574mwf", },
>         { /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, bd9571mwv_of_match_table);
>
>  static const struct i2c_device_id bd9571mwv_id_table[] = {
> -       { "bd9571mwv", 0 },
> +       { "bd9571mwv", ROHM_CHIP_TYPE_BD9571 },
> +       { "bd9574mwf", ROHM_CHIP_TYPE_BD9574 },

Why add the chip types?  These are unused, and the driver uses
autodetection of the chip variant anyway.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices()
  2020-12-22  8:41   ` Geert Uytterhoeven
@ 2020-12-22  9:10     ` Vaittinen, Matti
  0 siblings, 0 replies; 26+ messages in thread
From: Vaittinen, Matti @ 2020-12-22  9:10 UTC (permalink / raw)
  To: yoshihiro.shimoda.uh, geert
  Cc: khiem.nguyen.xt, broonie, bgolaszewski, linux-power,
	linus.walleij, lee.jones, linux-gpio, linux-renesas-soc,
	lgirdwood, marek.vasut+renesas, linux-kernel


On Tue, 2020-12-22 at 09:41 +0100, Geert Uytterhoeven wrote:
> On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
> <yoshihiro.shimoda.uh@renesas.com> wrote:
> > To remove mfd devices when unload this driver, should use
> > devm_mfd_add_devices() instead.
> > 
> > Fixes: d3ea21272094 ("mfd: Add ROHM BD9571MWV-M MFD PMIC driver")
> > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> 
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

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

* Re: [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip()
  2020-12-22  8:49   ` Geert Uytterhoeven
@ 2020-12-22  9:15     ` Vaittinen, Matti
  2020-12-22  9:25       ` Yoshihiro Shimoda
  0 siblings, 1 reply; 26+ messages in thread
From: Vaittinen, Matti @ 2020-12-22  9:15 UTC (permalink / raw)
  To: yoshihiro.shimoda.uh, geert
  Cc: khiem.nguyen.xt, broonie, bgolaszewski, linux-power,
	linus.walleij, lee.jones, linux-gpio, linux-renesas-soc,
	lgirdwood, marek.vasut+renesas, linux-kernel


On Tue, 2020-12-22 at 09:49 +0100, Geert Uytterhoeven wrote:
> On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
> <yoshihiro.shimoda.uh@renesas.com> wrote:
> > Use dev_regmap_add_irq_chip() to simplify the code.
> > 
> > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> 
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

I thought I did review this earlier...

Br,
    Matti Vaittinen

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

* RE: [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-22  8:52   ` Geert Uytterhoeven
@ 2020-12-22  9:23     ` Yoshihiro Shimoda
  2020-12-22  9:32       ` Geert Uytterhoeven
  2020-12-22  9:39       ` Vaittinen, Matti
  0 siblings, 2 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-22  9:23 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Marek Vasut, Lee Jones, Matti Vaittinen, Liam Girdwood,
	Mark Brown, Linus Walleij, Bartosz Golaszewski, Khiem Nguyen,
	linux-power, open list:GPIO SUBSYSTEM, Linux-Renesas,
	Linux Kernel Mailing List

Hi Geert-san,

Thank you for your review!

> From: Geert Uytterhoeven, Sent: Tuesday, December 22, 2020 5:53 PM
> On Mon, Dec 21, 2020 at 3:56 AM Yoshihiro Shimoda
> <yoshihiro.shimoda.uh@renesas.com> wrote:
<snip>
> > --- a/drivers/mfd/bd9571mwv.c
> > +++ b/drivers/mfd/bd9571mwv.c
> 
> > @@ -200,12 +277,14 @@ static int bd9571mwv_probe(struct i2c_client *client,
> >
> >  static const struct of_device_id bd9571mwv_of_match_table[] = {
> >         { .compatible = "rohm,bd9571mwv", },
> > +       { .compatible = "rohm,bd9574mwf", },
> >         { /* sentinel */ }
> >  };
> >  MODULE_DEVICE_TABLE(of, bd9571mwv_of_match_table);
> >
> >  static const struct i2c_device_id bd9571mwv_id_table[] = {
> > -       { "bd9571mwv", 0 },
> > +       { "bd9571mwv", ROHM_CHIP_TYPE_BD9571 },
> > +       { "bd9574mwf", ROHM_CHIP_TYPE_BD9574 },
> 
> Why add the chip types?  These are unused, and the driver uses
> autodetection of the chip variant anyway.

I just added the chip types in the future use. As you said,
these are unused and we should not add a future use in general.
So, I'll remove this change.

Also, I think I should remove the following patch.

[PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support

Best regards,
Yoshihiro Shimoda


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

* RE: [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip()
  2020-12-22  9:15     ` Vaittinen, Matti
@ 2020-12-22  9:25       ` Yoshihiro Shimoda
  2020-12-22  9:39         ` Vaittinen, Matti
  0 siblings, 1 reply; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-22  9:25 UTC (permalink / raw)
  To: Vaittinen, Matti, geert
  Cc: Khiem Nguyen, broonie, bgolaszewski, linux-power, linus.walleij,
	lee.jones, linux-gpio, linux-renesas-soc, lgirdwood,
	marek.vasut+renesas, linux-kernel

Hi Matti-san,

> From: Vaittinen, Matti, Sent: Tuesday, December 22, 2020 6:15 PM
> 
> On Tue, 2020-12-22 at 09:49 +0100, Geert Uytterhoeven wrote:
> > On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
> > <yoshihiro.shimoda.uh@renesas.com> wrote:
> > > Use dev_regmap_add_irq_chip() to simplify the code.
> > >
> > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> > > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> >
> > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

Thank you for your review!

> I thought I did review this earlier...

You're correct. I'm sorry, I completely overlooked your Reviewed-by
tag in previous.

Best regards,
Yoshihiro Shimoda


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

* Re: [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-22  9:23     ` Yoshihiro Shimoda
@ 2020-12-22  9:32       ` Geert Uytterhoeven
  2020-12-22 10:49         ` Yoshihiro Shimoda
  2020-12-22  9:39       ` Vaittinen, Matti
  1 sibling, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2020-12-22  9:32 UTC (permalink / raw)
  To: Yoshihiro Shimoda
  Cc: Marek Vasut, Lee Jones, Matti Vaittinen, Liam Girdwood,
	Mark Brown, Linus Walleij, Bartosz Golaszewski, Khiem Nguyen,
	linux-power, open list:GPIO SUBSYSTEM, Linux-Renesas,
	Linux Kernel Mailing List

Hi Shimoda-san,

On Tue, Dec 22, 2020 at 10:23 AM Yoshihiro Shimoda
<yoshihiro.shimoda.uh@renesas.com> wrote:
> > From: Geert Uytterhoeven, Sent: Tuesday, December 22, 2020 5:53 PM
> > On Mon, Dec 21, 2020 at 3:56 AM Yoshihiro Shimoda
> > <yoshihiro.shimoda.uh@renesas.com> wrote:
> <snip>
> > > --- a/drivers/mfd/bd9571mwv.c
> > > +++ b/drivers/mfd/bd9571mwv.c
> >
> > > @@ -200,12 +277,14 @@ static int bd9571mwv_probe(struct i2c_client *client,
> > >
> > >  static const struct of_device_id bd9571mwv_of_match_table[] = {
> > >         { .compatible = "rohm,bd9571mwv", },
> > > +       { .compatible = "rohm,bd9574mwf", },
> > >         { /* sentinel */ }
> > >  };
> > >  MODULE_DEVICE_TABLE(of, bd9571mwv_of_match_table);
> > >
> > >  static const struct i2c_device_id bd9571mwv_id_table[] = {
> > > -       { "bd9571mwv", 0 },
> > > +       { "bd9571mwv", ROHM_CHIP_TYPE_BD9571 },
> > > +       { "bd9574mwf", ROHM_CHIP_TYPE_BD9574 },
> >
> > Why add the chip types?  These are unused, and the driver uses
> > autodetection of the chip variant anyway.
>
> I just added the chip types in the future use. As you said,
> these are unused and we should not add a future use in general.
> So, I'll remove this change.

OK.

> Also, I think I should remove the following patch.
>
> [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support

You mean removing the chip types from bd9571mwv_gpio_id_table[]?
You still need the "bd9574mwf-gpio" entry, don't you?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip()
  2020-12-22  9:25       ` Yoshihiro Shimoda
@ 2020-12-22  9:39         ` Vaittinen, Matti
  2020-12-22 11:15           ` Yoshihiro Shimoda
  0 siblings, 1 reply; 26+ messages in thread
From: Vaittinen, Matti @ 2020-12-22  9:39 UTC (permalink / raw)
  To: yoshihiro.shimoda.uh, geert
  Cc: khiem.nguyen.xt, broonie, lee.jones, linux-gpio,
	linux-renesas-soc, linux-kernel, linus.walleij, bgolaszewski,
	lgirdwood, linux-power, marek.vasut+renesas


On Tue, 2020-12-22 at 09:25 +0000, Yoshihiro Shimoda wrote:
> Hi Matti-san,
> 
> > From: Vaittinen, Matti, Sent: Tuesday, December 22, 2020 6:15 PM
> > 
> > On Tue, 2020-12-22 at 09:49 +0100, Geert Uytterhoeven wrote:
> > > On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
> > > <yoshihiro.shimoda.uh@renesas.com> wrote:
> > > > Use dev_regmap_add_irq_chip() to simplify the code.
> > > > 
> > > > Signed-off-by: Yoshihiro Shimoda <
> > > > yoshihiro.shimoda.uh@renesas.com>
> > > > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > 
> > > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> 
> Thank you for your review!
> 
> > I thought I did review this earlier...
> 
> You're correct. I'm sorry, I completely overlooked your Reviewed-by
> tag in previous.

It happens :) But of you re-spin the series, please revise the tags for
patches. I think I did review almost all of them (except the SPDX-
patches as I am not competent on licenses...)

> 
> Best regards,
> Yoshihiro Shimoda
> 


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

* Re: [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-22  9:23     ` Yoshihiro Shimoda
  2020-12-22  9:32       ` Geert Uytterhoeven
@ 2020-12-22  9:39       ` Vaittinen, Matti
  2020-12-22 10:51         ` Yoshihiro Shimoda
  1 sibling, 1 reply; 26+ messages in thread
From: Vaittinen, Matti @ 2020-12-22  9:39 UTC (permalink / raw)
  To: yoshihiro.shimoda.uh, geert
  Cc: khiem.nguyen.xt, broonie, bgolaszewski, linux-power,
	linus.walleij, lee.jones, linux-gpio, linux-renesas-soc,
	lgirdwood, marek.vasut+renesas, linux-kernel


On Tue, 2020-12-22 at 09:23 +0000, Yoshihiro Shimoda wrote:
> Hi Geert-san,
> 
> Thank you for your review!
> 
> > From: Geert Uytterhoeven, Sent: Tuesday, December 22, 2020 5:53 PM
> > On Mon, Dec 21, 2020 at 3:56 AM Yoshihiro Shimoda
> > <yoshihiro.shimoda.uh@renesas.com> wrote:
> <snip>
> > > --- a/drivers/mfd/bd9571mwv.c
> > > +++ b/drivers/mfd/bd9571mwv.c
> > > @@ -200,12 +277,14 @@ static int bd9571mwv_probe(struct
> > > i2c_client *client,
> > > 
> > >  static const struct of_device_id bd9571mwv_of_match_table[] = {
> > >         { .compatible = "rohm,bd9571mwv", },
> > > +       { .compatible = "rohm,bd9574mwf", },
> > >         { /* sentinel */ }
> > >  };
> > >  MODULE_DEVICE_TABLE(of, bd9571mwv_of_match_table);
> > > 
> > >  static const struct i2c_device_id bd9571mwv_id_table[] = {
> > > -       { "bd9571mwv", 0 },
> > > +       { "bd9571mwv", ROHM_CHIP_TYPE_BD9571 },
> > > +       { "bd9574mwf", ROHM_CHIP_TYPE_BD9574 },
> > 
> > Why add the chip types?  These are unused, and the driver uses
> > autodetection of the chip variant anyway.
> 
> I just added the chip types in the future use. As you said,
> these are unused and we should not add a future use in general.
> So, I'll remove this change.
> 
> Also, I think I should remove the following patch.
> 
> [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support

I think this depends on whether you wish to add support for the

> "RECOV_GPOUT", "FREQSEL" and "RTC_IN",

which you mention in GPIO commit message. If you plan on adding the
support, then you need to differentiate the ICs on GPIO driver, right?

Best Regards
    Matti Vaittinen

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

* RE: [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-22  9:32       ` Geert Uytterhoeven
@ 2020-12-22 10:49         ` Yoshihiro Shimoda
  0 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-22 10:49 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Marek Vasut, Lee Jones, Matti Vaittinen, Liam Girdwood,
	Mark Brown, Linus Walleij, Bartosz Golaszewski, Khiem Nguyen,
	linux-power, open list:GPIO SUBSYSTEM, Linux-Renesas,
	Linux Kernel Mailing List

Hi Geert-san,

> From: Geert Uytterhoeven, Sent: Tuesday, December 22, 2020 6:32 PM
<snip>
> > Also, I think I should remove the following patch.
> >
> > [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support
> 
> You mean removing the chip types from bd9571mwv_gpio_id_table[]?
> You still need the "bd9574mwf-gpio" entry, don't you?

You're correct. The MFD driver uses "bd9574mwf-gpio". And,
"bd9574mwf-gpio" with 0 is not good. So, I'll keep this patch.
Thank you for the point it out.

Best regards,
Yoshihiro Shimoda


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

* RE: [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF
  2020-12-22  9:39       ` Vaittinen, Matti
@ 2020-12-22 10:51         ` Yoshihiro Shimoda
  0 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-22 10:51 UTC (permalink / raw)
  To: Vaittinen, Matti, geert
  Cc: Khiem Nguyen, broonie, bgolaszewski, linux-power, linus.walleij,
	lee.jones, linux-gpio, linux-renesas-soc, lgirdwood,
	marek.vasut+renesas, linux-kernel

Hi Matti-san,

> From: Vaittinen, Matti, Sent: Tuesday, December 22, 2020 6:39 PM
<snip>
> > Also, I think I should remove the following patch.
> >
> > [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support
> 
> I think this depends on whether you wish to add support for the
> 
> > "RECOV_GPOUT", "FREQSEL" and "RTC_IN",
> 
> which you mention in GPIO commit message. If you plan on adding the
> support, then you need to differentiate the ICs on GPIO driver, right?

Thank you for the reply.
As I replied to Geert-san, at least this MFD driver uses "bd9574mwf-gpio"
for probing. So, I'll keep that patch as-is.

Best regards,
Yoshihiro Shimoda


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

* RE: [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip()
  2020-12-22  9:39         ` Vaittinen, Matti
@ 2020-12-22 11:15           ` Yoshihiro Shimoda
  0 siblings, 0 replies; 26+ messages in thread
From: Yoshihiro Shimoda @ 2020-12-22 11:15 UTC (permalink / raw)
  To: Vaittinen, Matti, geert
  Cc: Khiem Nguyen, broonie, lee.jones, linux-gpio, linux-renesas-soc,
	linux-kernel, linus.walleij, bgolaszewski, lgirdwood,
	linux-power, marek.vasut+renesas

Hi Matti-san,

> From: Vaittinen, Matti, Sent: Tuesday, December 22, 2020 6:39 PM
> 
> On Tue, 2020-12-22 at 09:25 +0000, Yoshihiro Shimoda wrote:
> > Hi Matti-san,
> >
> > > From: Vaittinen, Matti, Sent: Tuesday, December 22, 2020 6:15 PM
> > >
> > > On Tue, 2020-12-22 at 09:49 +0100, Geert Uytterhoeven wrote:
> > > > On Mon, Dec 21, 2020 at 3:57 AM Yoshihiro Shimoda
> > > > <yoshihiro.shimoda.uh@renesas.com> wrote:
<snip>
> > > I thought I did review this earlier...
> >
> > You're correct. I'm sorry, I completely overlooked your Reviewed-by
> > tag in previous.
> 
> It happens :) But of you re-spin the series, please revise the tags for
> patches. I think I did review almost all of them (except the SPDX-
> patches as I am not competent on licenses...)

I got it. I'll add your Reviewed-by tags.

Best regards,
Yoshihiro Shimoda


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

end of thread, other threads:[~2020-12-22 11:16 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-21  2:54 [PATCH v4 00/12] treewide: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 01/12] mfd: bd9571mwv: Use devm_mfd_add_devices() Yoshihiro Shimoda
2020-12-22  8:41   ` Geert Uytterhoeven
2020-12-22  9:10     ` Vaittinen, Matti
2020-12-21  2:54 ` [PATCH v4 02/12] dt-bindings: mfd: bd9571mwv: Document BD9574MWF Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 03/12] mfd: rohm-generic: Add BD9571 and BD9574 Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 04/12] regulator: bd9571mwv: rid of using struct bd9571mwv Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 05/12] regulator: bd9571mwv: Add BD9574MWF support Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 06/12] gpio: bd9571mwv: Use the SPDX license identifier Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 07/12] gpio: bd9571mwv: rid of using struct bd9571mwv Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 08/12] gpio: bd9571mwv: Add BD9574MWF support Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 09/12] mfd: bd9571mwv: Use the SPDX license identifier Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 10/12] mfd: bd9571mwv: Use devm_regmap_add_irq_chip() Yoshihiro Shimoda
2020-12-22  8:49   ` Geert Uytterhoeven
2020-12-22  9:15     ` Vaittinen, Matti
2020-12-22  9:25       ` Yoshihiro Shimoda
2020-12-22  9:39         ` Vaittinen, Matti
2020-12-22 11:15           ` Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 11/12] mfd: bd9571mwv: Make the driver more generic Yoshihiro Shimoda
2020-12-21  2:54 ` [PATCH v4 12/12] mfd: bd9571mwv: Add support for BD9574MWF Yoshihiro Shimoda
2020-12-22  8:52   ` Geert Uytterhoeven
2020-12-22  9:23     ` Yoshihiro Shimoda
2020-12-22  9:32       ` Geert Uytterhoeven
2020-12-22 10:49         ` Yoshihiro Shimoda
2020-12-22  9:39       ` Vaittinen, Matti
2020-12-22 10:51         ` Yoshihiro Shimoda

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).