Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/3] 88PM886 Vbus regulator support
@ 2026-05-26 19:14 Duje Mihanović
  2026-05-26 19:14 ` [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator Duje Mihanović
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Duje Mihanović @ 2026-05-26 19:14 UTC (permalink / raw)
  To: Karel Balej, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović

Hello,

This series adds support for the USB Vbus regulator found on Marvell's
88PM886 PMIC. The regulator enables USB role switching on boards using
the PMIC.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
---
Duje Mihanović (3):
      dt-bindings: mfd: 88pm886: Allow vbus regulator
      mfd: 88pm886: Initialize battery page
      regulator: 88pm886: Add Vbus regulator

 .../bindings/mfd/marvell,88pm886-a1.yaml           |  2 +-
 drivers/mfd/88pm886.c                              | 21 ++++++++++++++++-
 drivers/regulator/88pm886-regulator.c              | 27 ++++++++++++++++++++++
 include/linux/mfd/88pm886.h                        | 12 ++++++++++
 4 files changed, 60 insertions(+), 2 deletions(-)
---
base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
change-id: 20260516-88pm886-vbus-5e3bbfd9cbad

Best regards,
--  
Duje Mihanović <duje@dujemihanovic.xyz>


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

* [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator
  2026-05-26 19:14 [PATCH 0/3] 88PM886 Vbus regulator support Duje Mihanović
@ 2026-05-26 19:14 ` Duje Mihanović
  2026-05-27 15:05   ` Conor Dooley
  2026-06-07 11:03   ` Karel Balej
  2026-05-26 19:14 ` [PATCH 2/3] mfd: 88pm886: Initialize battery page Duje Mihanović
  2026-05-26 19:14 ` [PATCH 3/3] regulator: 88pm886: Add Vbus regulator Duje Mihanović
  2 siblings, 2 replies; 11+ messages in thread
From: Duje Mihanović @ 2026-05-26 19:14 UTC (permalink / raw)
  To: Karel Balej, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović

From: Duje Mihanović <duje@dujemihanovic.xyz>

Add vbus to patternProperties for the regulators node to allow for the
PMIC's vbus regulator to be exposed.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
---
 Documentation/devicetree/bindings/mfd/marvell,88pm886-a1.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/mfd/marvell,88pm886-a1.yaml b/Documentation/devicetree/bindings/mfd/marvell,88pm886-a1.yaml
index 92a72a99fd79..940262898353 100644
--- a/Documentation/devicetree/bindings/mfd/marvell,88pm886-a1.yaml
+++ b/Documentation/devicetree/bindings/mfd/marvell,88pm886-a1.yaml
@@ -29,7 +29,7 @@ properties:
     type: object
     additionalProperties: false
     patternProperties:
-      "^(ldo(1[0-6]|[1-9])|buck[1-5])$":
+      "^(ldo(1[0-6]|[1-9])|buck[1-5]|vbus)$":
         type: object
         $ref: /schemas/regulator/regulator.yaml#
         description: LDO or buck regulator.

-- 
2.54.0


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

* [PATCH 2/3] mfd: 88pm886: Initialize battery page
  2026-05-26 19:14 [PATCH 0/3] 88PM886 Vbus regulator support Duje Mihanović
  2026-05-26 19:14 ` [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator Duje Mihanović
@ 2026-05-26 19:14 ` Duje Mihanović
  2026-06-07 10:19   ` Karel Balej
  2026-05-26 19:14 ` [PATCH 3/3] regulator: 88pm886: Add Vbus regulator Duje Mihanović
  2 siblings, 1 reply; 11+ messages in thread
From: Duje Mihanović @ 2026-05-26 19:14 UTC (permalink / raw)
  To: Karel Balej, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović

From: Duje Mihanović <duje@dujemihanovic.xyz>

Initialize the PMIC's battery page. The battery page registers are
shared between Vbus regulator, charger, fuelgauge and camera flash
blocks, hence the commonization of the page.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
---
 drivers/mfd/88pm886.c       | 21 ++++++++++++++++++++-
 include/linux/mfd/88pm886.h |  5 +++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/88pm886.c b/drivers/mfd/88pm886.c
index e411d8dee554..73102e638eba 100644
--- a/drivers/mfd/88pm886.c
+++ b/drivers/mfd/88pm886.c
@@ -16,6 +16,12 @@ static const struct regmap_config pm886_regmap_config = {
 	.max_register = PM886_REG_RTC_SPARE6,
 };
 
+static const struct regmap_config pm886_regmap_battery_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.max_register = PM886_REG_CLS_CONFIG1,
+};
+
 static const struct regmap_irq pm886_regmap_irqs[] = {
 	REGMAP_IRQ_REG(PM886_IRQ_ONKEY, 0, PM886_INT_ENA1_ONKEY),
 };
@@ -88,7 +94,8 @@ static int pm886_probe(struct i2c_client *client)
 	struct regmap_irq_chip_data *irq_data;
 	struct device *dev = &client->dev;
 	struct pm886_chip *chip;
-	struct regmap *regmap;
+	struct regmap *regmap, *regmap_battery;
+	struct i2c_client *battery_page;
 	unsigned int chip_id;
 	int err;
 
@@ -105,6 +112,18 @@ static int pm886_probe(struct i2c_client *client)
 		return dev_err_probe(dev, PTR_ERR(regmap), "Failed to initialize regmap\n");
 	chip->regmap = regmap;
 
+	battery_page = devm_i2c_new_dummy_device(dev, client->adapter,
+						 client->addr + PM886_PAGE_OFFSET_BATTERY);
+	if (IS_ERR(battery_page))
+		return dev_err_probe(dev, PTR_ERR(battery_page),
+				     "Failed to initialize battery page\n");
+
+	regmap_battery = devm_regmap_init_i2c(battery_page, &pm886_regmap_battery_config);
+	if (IS_ERR(regmap_battery))
+		return dev_err_probe(dev, PTR_ERR(regmap_battery),
+				     "Failed to initialize battery regmap\n");
+	chip->regmap_battery = regmap_battery;
+
 	err = regmap_read(regmap, PM886_REG_ID, &chip_id);
 	if (err)
 		return dev_err_probe(dev, err, "Failed to read chip ID\n");
diff --git a/include/linux/mfd/88pm886.h b/include/linux/mfd/88pm886.h
index 38892ba7b8a4..2c24dd3032ab 100644
--- a/include/linux/mfd/88pm886.h
+++ b/include/linux/mfd/88pm886.h
@@ -11,6 +11,7 @@
 
 #define PM886_PAGE_OFFSET_REGULATORS	1
 #define PM886_PAGE_OFFSET_GPADC		2
+#define PM886_PAGE_OFFSET_BATTERY	3
 
 #define PM886_REG_ID			0x00
 
@@ -128,9 +129,13 @@
 #define PM886_GPADC_BIAS_LEVELS		16
 #define PM886_GPADC_INDEX_TO_BIAS_uA(i)	(1 + (i) * 5)
 
+/* Battery block register definitions */
+#define PM886_REG_CLS_CONFIG1		0x71
+
 struct pm886_chip {
 	struct i2c_client *client;
 	unsigned int chip_id;
 	struct regmap *regmap;
+	struct regmap *regmap_battery;
 };
 #endif /* __MFD_88PM886_H */

-- 
2.54.0


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

* [PATCH 3/3] regulator: 88pm886: Add Vbus regulator
  2026-05-26 19:14 [PATCH 0/3] 88PM886 Vbus regulator support Duje Mihanović
  2026-05-26 19:14 ` [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator Duje Mihanović
  2026-05-26 19:14 ` [PATCH 2/3] mfd: 88pm886: Initialize battery page Duje Mihanović
@ 2026-05-26 19:14 ` Duje Mihanović
  2026-05-26 20:02   ` sashiko-bot
  2026-06-07 10:44   ` Karel Balej
  2 siblings, 2 replies; 11+ messages in thread
From: Duje Mihanović @ 2026-05-26 19:14 UTC (permalink / raw)
  To: Karel Balej, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović

From: Duje Mihanović <duje@dujemihanovic.xyz>

Add support for the PMIC's Vbus regulator. This regulator is mandatory
for USB OTG support on boards using the PMIC.

Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
---
 drivers/regulator/88pm886-regulator.c | 27 +++++++++++++++++++++++++++
 include/linux/mfd/88pm886.h           |  7 +++++++
 2 files changed, 34 insertions(+)

diff --git a/drivers/regulator/88pm886-regulator.c b/drivers/regulator/88pm886-regulator.c
index a38bd4f312b7..039822e86ec8 100644
--- a/drivers/regulator/88pm886-regulator.c
+++ b/drivers/regulator/88pm886-regulator.c
@@ -4,6 +4,7 @@
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/regulator/driver.h>
+#include <linux/units.h>
 
 #include <linux/mfd/88pm886.h>
 
@@ -337,6 +338,25 @@ static struct regulator_desc pm886_regulators[] = {
 	},
 };
 
+static const struct linear_range pm886_vbus_volt_ranges[] = {
+	REGULATOR_LINEAR_RANGE(3750000, 0, 7, 250000)
+};
+
+static struct regulator_desc pm886_vbus_regulator = {
+	.name = "vbus",
+	.regulators_node = "regulators",
+	.of_match = "vbus",
+	.ops = &pm886_buck_ops,
+	.type = REGULATOR_VOLTAGE,
+	.n_voltages = 8,
+	.linear_ranges = pm886_vbus_volt_ranges,
+	.n_linear_ranges = ARRAY_SIZE(pm886_vbus_volt_ranges),
+	.vsel_reg = PM886_REG_BOOST_CONFIG1,
+	.vsel_mask = PM886_REG_BOOST_MASK,
+	.enable_reg = PM886_REG_BATTERY_CONFIG1,
+	.enable_mask = PM886_REG_VBUS_EN,
+};
+
 static int pm886_regulator_probe(struct platform_device *pdev)
 {
 	struct pm886_chip *chip = dev_get_drvdata(pdev->dev.parent);
@@ -369,6 +389,13 @@ static int pm886_regulator_probe(struct platform_device *pdev)
 					"Failed to register %s\n", rdesc->name);
 	}
 
+	rcfg.regmap = chip->regmap_battery;
+	rdesc = &pm886_vbus_regulator;
+	rdev = devm_regulator_register(dev, rdesc, &rcfg);
+	if (IS_ERR(rdev))
+		return dev_err_probe(dev, PTR_ERR(rdev),
+				      "Failed to register %s\n", rdesc->name);
+
 	return 0;
 }
 
diff --git a/include/linux/mfd/88pm886.h b/include/linux/mfd/88pm886.h
index 2c24dd3032ab..9e96d2cb92f5 100644
--- a/include/linux/mfd/88pm886.h
+++ b/include/linux/mfd/88pm886.h
@@ -2,6 +2,7 @@
 #ifndef __MFD_88PM886_H
 #define __MFD_88PM886_H
 
+#include <linux/bits.h>
 #include <linux/i2c.h>
 #include <linux/regmap.h>
 
@@ -130,6 +131,12 @@
 #define PM886_GPADC_INDEX_TO_BIAS_uA(i)	(1 + (i) * 5)
 
 /* Battery block register definitions */
+#define PM886_REG_BATTERY_CONFIG1	0x28
+#define PM886_REG_VBUS_EN		BIT(7)
+
+#define PM886_REG_BOOST_CONFIG1		0x6b
+#define PM886_REG_BOOST_MASK		GENMASK(2, 0)
+
 #define PM886_REG_CLS_CONFIG1		0x71
 
 struct pm886_chip {

-- 
2.54.0


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

* Re: [PATCH 3/3] regulator: 88pm886: Add Vbus regulator
  2026-05-26 19:14 ` [PATCH 3/3] regulator: 88pm886: Add Vbus regulator Duje Mihanović
@ 2026-05-26 20:02   ` sashiko-bot
  2026-06-07 10:44   ` Karel Balej
  1 sibling, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-05-26 20:02 UTC (permalink / raw)
  To: Duje Mihanović; +Cc: conor+dt, devicetree, robh

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The newly introduced `pm886_vbus_regulator` structure contains function pointers but is allocated in read-write memory instead of read-only memory.
--

commit 133b6ca9034767cb2bdba63244660bc0872522af
Author: Duje Mihanović <duje@dujemihanovic.xyz>

regulator: 88pm886: Add Vbus regulator

This commit adds support for the PMIC's Vbus regulator to the 88pm886
driver. This regulator is mandatory for USB OTG support on boards using
this PMIC.

> diff --git a/drivers/regulator/88pm886-regulator.c b/drivers/regulator/88pm886-regulator.c
> index a38bd4f312b72..039822e86ec87 100644
> --- a/drivers/regulator/88pm886-regulator.c
> +++ b/drivers/regulator/88pm886-regulator.c
[ ... ]
> @@ -337,6 +338,25 @@ static struct regulator_desc pm886_regulators[] = {
>  	},
>  };
>  
> +static const struct linear_range pm886_vbus_volt_ranges[] = {
> +	REGULATOR_LINEAR_RANGE(3750000, 0, 7, 250000)
> +};
> +
> +static struct regulator_desc pm886_vbus_regulator = {

[Severity: Low]
This isn't a bug, but should this pm886_vbus_regulator structure be declared
as const so it is placed in read-only memory?

While the existing pm886_regulators array also lacks the const qualifier,
making this change would require updating the local rdesc pointer in
pm886_regulator_probe to be a const struct regulator_desc pointer.

> +	.name = "vbus",
> +	.regulators_node = "regulators",
> +	.of_match = "vbus",
> +	.ops = &pm886_buck_ops,
> +	.type = REGULATOR_VOLTAGE,
> +	.n_voltages = 8,
> +	.linear_ranges = pm886_vbus_volt_ranges,
> +	.n_linear_ranges = ARRAY_SIZE(pm886_vbus_volt_ranges),
> +	.vsel_reg = PM886_REG_BOOST_CONFIG1,
> +	.vsel_mask = PM886_REG_BOOST_MASK,
> +	.enable_reg = PM886_REG_BATTERY_CONFIG1,
> +	.enable_mask = PM886_REG_VBUS_EN,
> +};

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260526-88pm886-vbus-v1-0-f2bd1fd3c19e@dujemihanovic.xyz?part=3

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

* Re: [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator
  2026-05-26 19:14 ` [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator Duje Mihanović
@ 2026-05-27 15:05   ` Conor Dooley
  2026-06-07 11:03   ` Karel Balej
  1 sibling, 0 replies; 11+ messages in thread
From: Conor Dooley @ 2026-05-27 15:05 UTC (permalink / raw)
  To: Duje Mihanović
  Cc: Karel Balej, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown, devicetree, phone-devel,
	~postmarketos/upstreaming, linux-kernel, Duje Mihanović

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

Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable

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

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

* Re: [PATCH 2/3] mfd: 88pm886: Initialize battery page
  2026-05-26 19:14 ` [PATCH 2/3] mfd: 88pm886: Initialize battery page Duje Mihanović
@ 2026-06-07 10:19   ` Karel Balej
  2026-06-07 14:19     ` Duje Mihanović
  0 siblings, 1 reply; 11+ messages in thread
From: Karel Balej @ 2026-06-07 10:19 UTC (permalink / raw)
  To: Duje Mihanović
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown

Duje Mihanović, 2026-05-26T21:14:48+02:00:
> From: Duje Mihanović <duje@dujemihanovic.xyz>
>
> Initialize the PMIC's battery page. The battery page registers are
> shared between Vbus regulator, charger, fuelgauge and camera flash
> blocks, hence the commonization of the page.
>
> Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
> ---
>  drivers/mfd/88pm886.c       | 21 ++++++++++++++++++++-
>  include/linux/mfd/88pm886.h |  5 +++++
>  2 files changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mfd/88pm886.c b/drivers/mfd/88pm886.c
> index e411d8dee554..73102e638eba 100644
> --- a/drivers/mfd/88pm886.c
> +++ b/drivers/mfd/88pm886.c
> @@ -16,6 +16,12 @@ static const struct regmap_config pm886_regmap_config = {
>  	.max_register = PM886_REG_RTC_SPARE6,
>  };
>  
> +static const struct regmap_config pm886_regmap_battery_config = {
> +	.reg_bits = 8,
> +	.val_bits = 8,
> +	.max_register = PM886_REG_CLS_CONFIG1,
> +};
> +
>  static const struct regmap_irq pm886_regmap_irqs[] = {
>  	REGMAP_IRQ_REG(PM886_IRQ_ONKEY, 0, PM886_INT_ENA1_ONKEY),
>  };
> @@ -88,7 +94,8 @@ static int pm886_probe(struct i2c_client *client)
>  	struct regmap_irq_chip_data *irq_data;
>  	struct device *dev = &client->dev;
>  	struct pm886_chip *chip;
> -	struct regmap *regmap;
> +	struct regmap *regmap, *regmap_battery;
> +	struct i2c_client *battery_page;

Not sure if this should be reordered to preserve the "reverse Christmas
tree", but maybe it's fine if checkpatch didn't complain.

>  	unsigned int chip_id;
>  	int err;
>  
> @@ -105,6 +112,18 @@ static int pm886_probe(struct i2c_client *client)
>  		return dev_err_probe(dev, PTR_ERR(regmap), "Failed to initialize regmap\n");
>  	chip->regmap = regmap;
>  
> +	battery_page = devm_i2c_new_dummy_device(dev, client->adapter,
> +						 client->addr + PM886_PAGE_OFFSET_BATTERY);
> +	if (IS_ERR(battery_page))
> +		return dev_err_probe(dev, PTR_ERR(battery_page),
> +				     "Failed to initialize battery page\n");
> +
> +	regmap_battery = devm_regmap_init_i2c(battery_page, &pm886_regmap_battery_config);
> +	if (IS_ERR(regmap_battery))
> +		return dev_err_probe(dev, PTR_ERR(regmap_battery),
> +				     "Failed to initialize battery regmap\n");
> +	chip->regmap_battery = regmap_battery;
> +

Nit: maybe this could go below the chip ID check so that it's not
executed if the check subsequently fails?

Also, I think the error messages are missing either a definite article
or an underscore. Same in the commit message title.

>  	err = regmap_read(regmap, PM886_REG_ID, &chip_id);
>  	if (err)
>  		return dev_err_probe(dev, err, "Failed to read chip ID\n");
> diff --git a/include/linux/mfd/88pm886.h b/include/linux/mfd/88pm886.h
> index 38892ba7b8a4..2c24dd3032ab 100644
> --- a/include/linux/mfd/88pm886.h
> +++ b/include/linux/mfd/88pm886.h
> @@ -11,6 +11,7 @@
>  
>  #define PM886_PAGE_OFFSET_REGULATORS	1
>  #define PM886_PAGE_OFFSET_GPADC		2
> +#define PM886_PAGE_OFFSET_BATTERY	3
>  
>  #define PM886_REG_ID			0x00
>  
> @@ -128,9 +129,13 @@
>  #define PM886_GPADC_BIAS_LEVELS		16
>  #define PM886_GPADC_INDEX_TO_BIAS_uA(i)	(1 + (i) * 5)
>  
> +/* Battery block register definitions */
> +#define PM886_REG_CLS_CONFIG1		0x71
> +
>  struct pm886_chip {
>  	struct i2c_client *client;
>  	unsigned int chip_id;
>  	struct regmap *regmap;
> +	struct regmap *regmap_battery;
>  };
>  #endif /* __MFD_88PM886_H */
>
> -- 
> 2.54.0

Reviewed-by: Karel Balej <balejk@matfyz.cz>

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

* Re: [PATCH 3/3] regulator: 88pm886: Add Vbus regulator
  2026-05-26 19:14 ` [PATCH 3/3] regulator: 88pm886: Add Vbus regulator Duje Mihanović
  2026-05-26 20:02   ` sashiko-bot
@ 2026-06-07 10:44   ` Karel Balej
  2026-06-07 14:02     ` Duje Mihanović
  1 sibling, 1 reply; 11+ messages in thread
From: Karel Balej @ 2026-06-07 10:44 UTC (permalink / raw)
  To: Duje Mihanović
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown

Duje Mihanović, 2026-05-26T21:14:49+02:00:
> From: Duje Mihanović <duje@dujemihanovic.xyz>
>
> Add support for the PMIC's Vbus regulator. This regulator is mandatory
> for USB OTG support on boards using the PMIC.
>
> Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
> ---
>  drivers/regulator/88pm886-regulator.c | 27 +++++++++++++++++++++++++++
>  include/linux/mfd/88pm886.h           |  7 +++++++
>  2 files changed, 34 insertions(+)
>
> diff --git a/drivers/regulator/88pm886-regulator.c b/drivers/regulator/88pm886-regulator.c
> index a38bd4f312b7..039822e86ec8 100644
> --- a/drivers/regulator/88pm886-regulator.c
> +++ b/drivers/regulator/88pm886-regulator.c
> @@ -4,6 +4,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/regmap.h>
>  #include <linux/regulator/driver.h>
> +#include <linux/units.h>

What is this for?

[...]

Reviewed-by: Karel Balej <balejk@matfyz.cz>

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

* Re: [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator
  2026-05-26 19:14 ` [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator Duje Mihanović
  2026-05-27 15:05   ` Conor Dooley
@ 2026-06-07 11:03   ` Karel Balej
  1 sibling, 0 replies; 11+ messages in thread
From: Karel Balej @ 2026-06-07 11:03 UTC (permalink / raw)
  To: Duje Mihanović
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Duje Mihanović, Lee Jones, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Liam Girdwood, Mark Brown

Reviewed-by: Karel Balej <balejk@matfyz.cz>

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

* Re: [PATCH 3/3] regulator: 88pm886: Add Vbus regulator
  2026-06-07 10:44   ` Karel Balej
@ 2026-06-07 14:02     ` Duje Mihanović
  0 siblings, 0 replies; 11+ messages in thread
From: Duje Mihanović @ 2026-06-07 14:02 UTC (permalink / raw)
  To: Karel Balej
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Liam Girdwood, Mark Brown

On Sunday, 7 June 2026 12:44:08 Central European Summer Time Karel Balej 
wrote:
> Duje Mihanović, 2026-05-26T21:14:49+02:00:
> > From: Duje Mihanović <duje@dujemihanovic.xyz>
> > 
> > Add support for the PMIC's Vbus regulator. This regulator is mandatory
> > for USB OTG support on boards using the PMIC.
> > 
> > Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
> > ---
> > 
> >  drivers/regulator/88pm886-regulator.c | 27 +++++++++++++++++++++++++++
> >  include/linux/mfd/88pm886.h           |  7 +++++++
> >  2 files changed, 34 insertions(+)
> > 
> > diff --git a/drivers/regulator/88pm886-regulator.c
> > b/drivers/regulator/88pm886-regulator.c index a38bd4f312b7..039822e86ec8
> > 100644
> > --- a/drivers/regulator/88pm886-regulator.c
> > +++ b/drivers/regulator/88pm886-regulator.c
> > @@ -4,6 +4,7 @@
> > 
> >  #include <linux/platform_device.h>
> >  #include <linux/regmap.h>
> >  #include <linux/regulator/driver.h>
> > 
> > +#include <linux/units.h>
> 
> What is this for?

Leftover from a WIP version, I'll drop it in v2.

Regards,
--
Duje



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

* Re: [PATCH 2/3] mfd: 88pm886: Initialize battery page
  2026-06-07 10:19   ` Karel Balej
@ 2026-06-07 14:19     ` Duje Mihanović
  0 siblings, 0 replies; 11+ messages in thread
From: Duje Mihanović @ 2026-06-07 14:19 UTC (permalink / raw)
  To: Karel Balej
  Cc: devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel,
	Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Liam Girdwood, Mark Brown

On Sunday, 7 June 2026 12:19:21 Central European Summer Time Karel Balej 
wrote:
> Duje Mihanović, 2026-05-26T21:14:48+02:00:

[...]

> > @@ -88,7 +94,8 @@ static int pm886_probe(struct i2c_client *client)
> > 
> >  	struct regmap_irq_chip_data *irq_data;
> >  	struct device *dev = &client->dev;
> >  	struct pm886_chip *chip;
> > 
> > -	struct regmap *regmap;
> > +	struct regmap *regmap, *regmap_battery;
> > +	struct i2c_client *battery_page;
> 
> Not sure if this should be reordered to preserve the "reverse Christmas
> tree", but maybe it's fine if checkpatch didn't complain.

I opted not to move the declarations around in this case as IMO it would 
present noise in the diff, but on second thought it may have been the better 
choice.

Lee, do you by chance know how to proceed here?

[...]

> > +	battery_page = devm_i2c_new_dummy_device(dev, client->adapter,
> > +						 client->addr + 
PM886_PAGE_OFFSET_BATTERY);
> > +	if (IS_ERR(battery_page))
> > +		return dev_err_probe(dev, PTR_ERR(battery_page),
> > +				     "Failed to initialize battery 
page\n");
> > +
> > +	regmap_battery = devm_regmap_init_i2c(battery_page,
> > &pm886_regmap_battery_config); +	if (IS_ERR(regmap_battery))
> > +		return dev_err_probe(dev, PTR_ERR(regmap_battery),
> > +				     "Failed to initialize battery 
regmap\n");
> > +	chip->regmap_battery = regmap_battery;
> > +
> 
> Nit: maybe this could go below the chip ID check so that it's not
> executed if the check subsequently fails?

Good catch, I'll do that in v2.

> Also, I think the error messages are missing either a definite article
> or an underscore. Same in the commit message title.

I agree for the commit message, but adding one to the error messages would IMO 
make them inconsistent with the existing ones.

[...]

Regards,
--
Duje




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

end of thread, other threads:[~2026-06-07 14:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-26 19:14 [PATCH 0/3] 88PM886 Vbus regulator support Duje Mihanović
2026-05-26 19:14 ` [PATCH 1/3] dt-bindings: mfd: 88pm886: Allow vbus regulator Duje Mihanović
2026-05-27 15:05   ` Conor Dooley
2026-06-07 11:03   ` Karel Balej
2026-05-26 19:14 ` [PATCH 2/3] mfd: 88pm886: Initialize battery page Duje Mihanović
2026-06-07 10:19   ` Karel Balej
2026-06-07 14:19     ` Duje Mihanović
2026-05-26 19:14 ` [PATCH 3/3] regulator: 88pm886: Add Vbus regulator Duje Mihanović
2026-05-26 20:02   ` sashiko-bot
2026-06-07 10:44   ` Karel Balej
2026-06-07 14:02     ` Duje Mihanović

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox