* [PATCH v1 0/2] regulator: pca9450: add input supply links
@ 2025-10-27 12:44 Oleksij Rempel
2025-10-27 12:44 ` [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies Oleksij Rempel
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Oleksij Rempel @ 2025-10-27 12:44 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong
Cc: Oleksij Rempel, kernel, linux-kernel, devicetree
This series adds input supply definitions for the NXP PCA9450 PMIC.
Some systems detect power events such as undervoltage before the PMIC.
To allow correct propagation of such events, each regulator must define
its upstream input supply. The first patch updates the devicetree
binding to document new *-supply properties, and the second patch adds
matching .supply_name entries in the driver.
Changes in this series:
- Document INL1, INB13, INB26 and INB45 supply properties
- Link all LDO and BUCK regulators to their corresponding input groups
Oleksij Rempel (2):
dt-bindings: regulator: nxp,pca9450: document input supplies
regulator: pca9450: link regulator inputs to supply groups
.../regulator/nxp,pca9450-regulator.yaml | 15 ++++++++++
drivers/regulator/pca9450-regulator.c | 30 +++++++++++++++++++
2 files changed, 45 insertions(+)
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies
2025-10-27 12:44 [PATCH v1 0/2] regulator: pca9450: add input supply links Oleksij Rempel
@ 2025-10-27 12:44 ` Oleksij Rempel
2025-10-28 19:31 ` Conor Dooley
2025-10-27 12:44 ` [PATCH v1 2/2] regulator: pca9450: link regulator inputs to supply groups Oleksij Rempel
2025-10-28 12:16 ` [PATCH v1 0/2] regulator: pca9450: add input supply links Mark Brown
2 siblings, 1 reply; 5+ messages in thread
From: Oleksij Rempel @ 2025-10-27 12:44 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong
Cc: Oleksij Rempel, kernel, linux-kernel, devicetree
Add missing supply properties for PCA945x input pin groups:
- inl1-supply (for LDOs)
- inb13-supply (for BUCK1/3)
- inb26-supply (for BUCK2/6)
- inb45-supply (for BUCK4/5)
These properties describe external power sources for each input group.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
.../bindings/regulator/nxp,pca9450-regulator.yaml | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml b/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
index a5486c36830f..863717984a79 100644
--- a/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
@@ -41,6 +41,21 @@ properties:
interrupts:
maxItems: 1
+ inl1-supply:
+ description: Regulator supply for the INL1 pin group, powering LDOx
+
+ inb13-supply:
+ description:
+ Regulator supply for the INB13 pin group, powering BUCK1 and BUCK3.
+
+ inb26-supply:
+ description:
+ Regulator supply for the INB26 pin group, powering BUCK2 and BUCK6.
+
+ inb45-supply:
+ description:
+ Regulator supply for the INB45 pin group, powering BUCK4 and BUCK5.
+
regulators:
type: object
description: |
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v1 2/2] regulator: pca9450: link regulator inputs to supply groups
2025-10-27 12:44 [PATCH v1 0/2] regulator: pca9450: add input supply links Oleksij Rempel
2025-10-27 12:44 ` [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies Oleksij Rempel
@ 2025-10-27 12:44 ` Oleksij Rempel
2025-10-28 12:16 ` [PATCH v1 0/2] regulator: pca9450: add input supply links Mark Brown
2 siblings, 0 replies; 5+ messages in thread
From: Oleksij Rempel @ 2025-10-27 12:44 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong
Cc: Oleksij Rempel, kernel, linux-kernel, devicetree
Add supply_name entries for all PCA9450 regulators to describe their
respective input pin groups (INB13, INB26, INB45, INL1). This links each
buck and LDO to the upstream supply that powers its input group.
On some systems, power faults such as undervoltage are detected before
the PMIC itself. Defining supply relationships allows the regulator
framework to propagate such events properly through the dependency
chain.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
drivers/regulator/pca9450-regulator.c | 30 +++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/drivers/regulator/pca9450-regulator.c b/drivers/regulator/pca9450-regulator.c
index 4be270f4d6c3..247f12df8974 100644
--- a/drivers/regulator/pca9450-regulator.c
+++ b/drivers/regulator/pca9450-regulator.c
@@ -355,6 +355,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "buck1",
+ .supply_name = "inb13",
.of_match = of_match_ptr("BUCK1"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK1,
@@ -388,6 +389,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "buck2",
+ .supply_name = "inb26",
.of_match = of_match_ptr("BUCK2"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK2,
@@ -421,6 +423,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "buck3",
+ .supply_name = "inb13",
.of_match = of_match_ptr("BUCK3"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK3,
@@ -454,6 +457,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "buck4",
+ .supply_name = "inb45",
.of_match = of_match_ptr("BUCK4"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK4,
@@ -478,6 +482,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "buck5",
+ .supply_name = "inb45",
.of_match = of_match_ptr("BUCK5"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK5,
@@ -502,6 +507,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "buck6",
+ .supply_name = "inb26",
.of_match = of_match_ptr("BUCK6"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK6,
@@ -526,6 +532,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "ldo1",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO1"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO1,
@@ -544,6 +551,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "ldo2",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO2"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO2,
@@ -562,6 +570,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "ldo3",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO3"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO3,
@@ -580,6 +589,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "ldo4",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO4"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO4,
@@ -598,6 +608,7 @@ static struct pca9450_regulator_desc pca9450a_regulators[] = {
{
.desc = {
.name = "ldo5",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO5"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO5,
@@ -623,6 +634,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "buck1",
+ .supply_name = "inb13",
.of_match = of_match_ptr("BUCK1"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK1,
@@ -656,6 +668,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "buck2",
+ .supply_name = "inb26",
.of_match = of_match_ptr("BUCK2"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK2,
@@ -689,6 +702,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "buck4",
+ .supply_name = "inb45",
.of_match = of_match_ptr("BUCK4"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK4,
@@ -713,6 +727,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "buck5",
+ .supply_name = "inb45",
.of_match = of_match_ptr("BUCK5"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK5,
@@ -737,6 +752,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "buck6",
+ .supply_name = "inb26",
.of_match = of_match_ptr("BUCK6"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK6,
@@ -761,6 +777,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "ldo1",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO1"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO1,
@@ -779,6 +796,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "ldo2",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO2"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO2,
@@ -797,6 +815,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "ldo3",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO3"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO3,
@@ -815,6 +834,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "ldo4",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO4"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO4,
@@ -833,6 +853,7 @@ static struct pca9450_regulator_desc pca9450bc_regulators[] = {
{
.desc = {
.name = "ldo5",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO5"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO5,
@@ -854,6 +875,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "buck1",
+ .supply_name = "inb13",
.of_match = of_match_ptr("BUCK1"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK1,
@@ -886,6 +908,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "buck2",
+ .supply_name = "inb26",
.of_match = of_match_ptr("BUCK2"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK2,
@@ -918,6 +941,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "buck4",
+ .supply_name = "inb45",
.of_match = of_match_ptr("BUCK4"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK4,
@@ -942,6 +966,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "buck5",
+ .supply_name = "inb45",
.of_match = of_match_ptr("BUCK5"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK5,
@@ -966,6 +991,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "buck6",
+ .supply_name = "inb26",
.of_match = of_match_ptr("BUCK6"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_BUCK6,
@@ -990,6 +1016,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "ldo1",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO1"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO1,
@@ -1008,6 +1035,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "ldo3",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO3"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO3,
@@ -1026,6 +1054,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "ldo4",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO4"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO4,
@@ -1044,6 +1073,7 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
{
.desc = {
.name = "ldo5",
+ .supply_name = "inl1",
.of_match = of_match_ptr("LDO5"),
.regulators_node = of_match_ptr("regulators"),
.id = PCA9450_LDO5,
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1 0/2] regulator: pca9450: add input supply links
2025-10-27 12:44 [PATCH v1 0/2] regulator: pca9450: add input supply links Oleksij Rempel
2025-10-27 12:44 ` [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies Oleksij Rempel
2025-10-27 12:44 ` [PATCH v1 2/2] regulator: pca9450: link regulator inputs to supply groups Oleksij Rempel
@ 2025-10-28 12:16 ` Mark Brown
2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2025-10-28 12:16 UTC (permalink / raw)
To: Liam Girdwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Robin Gong, Oleksij Rempel
Cc: kernel, linux-kernel, devicetree
On Mon, 27 Oct 2025 13:44:13 +0100, Oleksij Rempel wrote:
> This series adds input supply definitions for the NXP PCA9450 PMIC.
>
> Some systems detect power events such as undervoltage before the PMIC.
> To allow correct propagation of such events, each regulator must define
> its upstream input supply. The first patch updates the devicetree
> binding to document new *-supply properties, and the second patch adds
> matching .supply_name entries in the driver.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
Thanks!
[1/2] dt-bindings: regulator: nxp,pca9450: document input supplies
commit: 86df0030b71d7172317d957df17524a7fd6232d4
[2/2] regulator: pca9450: link regulator inputs to supply groups
commit: 4c33cef58965eb655a0ac8e243aa323581ec025f
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies
2025-10-27 12:44 ` [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies Oleksij Rempel
@ 2025-10-28 19:31 ` Conor Dooley
0 siblings, 0 replies; 5+ messages in thread
From: Conor Dooley @ 2025-10-28 19:31 UTC (permalink / raw)
To: Oleksij Rempel
Cc: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, kernel, linux-kernel, devicetree
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
On Mon, Oct 27, 2025 at 01:44:14PM +0100, Oleksij Rempel wrote:
> Add missing supply properties for PCA945x input pin groups:
> - inl1-supply (for LDOs)
> - inb13-supply (for BUCK1/3)
> - inb26-supply (for BUCK2/6)
> - inb45-supply (for BUCK4/5)
>
> These properties describe external power sources for each input group.
>
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
pw-bot: not-applicable
Acked-by: Conor Dooley <conor.dooley@microchip.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-10-28 19:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-27 12:44 [PATCH v1 0/2] regulator: pca9450: add input supply links Oleksij Rempel
2025-10-27 12:44 ` [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies Oleksij Rempel
2025-10-28 19:31 ` Conor Dooley
2025-10-27 12:44 ` [PATCH v1 2/2] regulator: pca9450: link regulator inputs to supply groups Oleksij Rempel
2025-10-28 12:16 ` [PATCH v1 0/2] regulator: pca9450: add input supply links Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®