[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260114-resilient-cocky-skunk-2035eb@quoll>
Date: Wed, 14 Jan 2026 09:25:22 +0100
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Aman Kumar Pandey <aman.kumarpandey@....com>
Cc: linux-kernel@...r.kernel.org, linux-i3c@...ts.infradead.org,
alexandre.belloni@...tlin.com, krzk+dt@...nel.org, robh@...nel.org, conor+dt@...nel.org,
devicetree@...r.kernel.org, broonie@...nel.org, lee@...nel.org, Frank.Li@....com,
lgirdwood@...il.com, vikash.bansal@....com, priyanka.jain@....com,
shashank.rebbapragada@....com
Subject: Re: [PATCH v4 4/5] regulator: p3h2x4x: Add driver for on-die
regulators in NXP P3H2x4x i3c hub
On Tue, Jan 13, 2026 at 01:45:28PM +0200, Aman Kumar Pandey wrote:
> The NXP P3H2x4x family integrates on-die regulators alongside I3C hub
> functionality. This driver registers the regulators using the MFD
> framework and exposes them via the regulator subsystem.
>
> Signed-off-by: Aman Kumar Pandey <aman.kumarpandey@....com>
> Signed-off-by: Vikash Bansal <vikash.bansal@....com>
>
> ---
> Changes in v4:
> - Split the driver into three separate patches (mfd, regulator and I3C hub)
> - Introduced driver for on-die regulators in NXP P3H2x4x I3C hub
> ---
> ---
> MAINTAINERS | 3 +
> drivers/regulator/Kconfig | 10 ++
> drivers/regulator/Makefile | 1 +
> drivers/regulator/p3h2840_i3c_hub_regulator.c | 162 ++++++++++++++++++
> 4 files changed, 176 insertions(+)
> create mode 100644 drivers/regulator/p3h2840_i3c_hub_regulator.c
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index aa7043499223..4bcd52d65f1a 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18934,6 +18934,9 @@ F: Documentation/devicetree/bindings/mfd/nxp,p3h2840-i3c-hub.yaml
> F: drivers/mfd/Kconfig
> F: drivers/mfd/Makefile
> F: drivers/mfd/p3h2840.c
> +F: drivers/regulator/Kconfig
> +F: drivers/regulator/Makefile
Huh? Why do you claim you maintain this? On what basis?
> +F: drivers/regulator/p3h2840_i3c_hub_regulator.c
> F: include/linux/mfd/p3h2840.h
...
> + p3h2x4x_regulator = devm_kzalloc(dev, sizeof(*p3h2x4x_regulator), GFP_KERNEL);
> + if (!p3h2x4x_regulator)
> + return -ENOMEM;
> +
> + platform_set_drvdata(pdev, p3h2x4x_regulator);
> +
> + p3h2x4x_regulator->regmap = p3h2x4x->regmap;
> + device_set_of_node_from_dev(dev, dev->parent);
> +
> + rcfg.dev = dev;
> + rcfg.dev->of_node = dev->of_node;
> + rcfg.regmap = p3h2x4x_regulator->regmap;
> + rcfg.driver_data = p3h2x4x_regulator;
> +
> + for (i = 0; i < ARRAY_SIZE(p3h2x4x_regulators); i++) {
> + rdev = devm_regulator_register(&pdev->dev, &p3h2x4x_regulators[i], &rcfg);
> + if (IS_ERR(rdev)) {
> + ret = PTR_ERR(rdev);
> + dev_err(dev, "Failed to register %s\n", p3h2x4x_regulators[i].name);
> + return ret;
Syntax is just return dev_err_probe.
> + }
> + p3h2x4x_regulator->rp3h2x4x_dev[i] = rdev;
> + }
> + return 0;
> +}
> +
> +static struct platform_driver p3h2x4x_regulator_driver = {
> + .driver = {
> + .name = "p3h2x4x-regulator",
> + .probe_type = PROBE_PREFER_ASYNCHRONOUS,
> + },
> + .probe = p3h2x4x_regulator_probe,
> +};
> +module_platform_driver(p3h2x4x_regulator_driver);
> +
> +MODULE_AUTHOR("Aman Kumar Pandey <aman.kumarpandey@....com>");
> +MODULE_AUTHOR("vikash Bansal <vikash.bansal@....com>");
> +MODULE_DESCRIPTION("P3H2x4x I3C HUB driver");
Do you use the same description everywhere?
> +MODULE_LICENSE("GPL");
> --
> 2.25.1
>
Powered by blists - more mailing lists