Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains
@ 2026-10-09 12:15 Linus Walleij
  2026-10-09 12:15 ` [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema Linus Walleij
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Linus Walleij @ 2026-10-09 12:15 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ulf Hansson
  Cc: linux-arm-kernel, devicetree, linux-kernel, linux-pm,
	Linus Walleij, Krzysztof Kozlowski, Krzysztof Kozlowski

This is three preparatory patches for v7.4.

These three are an excerpt from the earlier sent series,
updated according to comments and collecting ACKs.

It also fixes an urgent dependency (my bad).

The main ux500 power domain rework is targeted for v7.5.

Signed-off-by: Linus Walleij <linusw@kernel.org>
---
Linus Walleij (3):
      dt-bindings: power: Convert Ux500 PM domains to schema
      dt-bindings: arm: ux500: Drop NR_DOMAINS
      dt-bindings: arm: Add the actual power domains on U8500

 .../devicetree/bindings/arm/ux500/power_domain.txt | 35 ------------------
 .../power/stericsson,ux500-pm-domains.yaml         | 41 ++++++++++++++++++++++
 MAINTAINERS                                        |  1 +
 drivers/pmdomain/st/ste-ux500-pm-domain.c          |  2 ++
 include/dt-bindings/arm/ux500_pm_domains.h         | 17 +++++++--
 5 files changed, 59 insertions(+), 37 deletions(-)
---
base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
change-id: 20261009-ux500-power-domains-v7-3-rc1-redux-acdf755a5efc

Best regards,
-- 
Linus Walleij <linusw@kernel.org>


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

* [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema
  2026-10-09 12:15 [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Linus Walleij
@ 2026-10-09 12:15 ` Linus Walleij
  2026-10-09 12:23   ` sashiko-bot
  2026-10-09 12:15 ` [PATCH 2/3] dt-bindings: arm: ux500: Drop NR_DOMAINS Linus Walleij
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Linus Walleij @ 2026-10-09 12:15 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ulf Hansson
  Cc: linux-arm-kernel, devicetree, linux-kernel, linux-pm,
	Linus Walleij, Krzysztof Kozlowski

Convert the legacy Ux500 power domain text binding to YAML.

Move it under bindings/power.

Reference the generic power-domain schema.

Update MAINTAINERS for the new path.

Assisted-by: LLM
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
---
 .../devicetree/bindings/arm/ux500/power_domain.txt | 35 ------------------
 .../power/stericsson,ux500-pm-domains.yaml         | 41 ++++++++++++++++++++++
 MAINTAINERS                                        |  1 +
 3 files changed, 42 insertions(+), 35 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/ux500/power_domain.txt b/Documentation/devicetree/bindings/arm/ux500/power_domain.txt
deleted file mode 100644
index 5679d1742d3e..000000000000
--- a/Documentation/devicetree/bindings/arm/ux500/power_domain.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-* ST-Ericsson UX500 PM Domains
-
-UX500 supports multiple PM domains which are used to gate power to one or
-more peripherals on the SOC.
-
-The implementation of PM domains for UX500 are based upon the generic PM domain
-and use the corresponding DT bindings.
-
-==PM domain providers==
-
-Required properties:
- - compatible: Must be "stericsson,ux500-pm-domains".
- - #power-domain-cells : Number of cells in a power domain specifier, must be 1.
-
-Example:
-	pm_domains: pm_domains0 {
-		compatible = "stericsson,ux500-pm-domains";
-		#power-domain-cells = <1>;
-	};
-
-==PM domain consumers==
-
-Required properties:
- - power-domains: A phandle and PM domain specifier. Below are the list of
-		valid specifiers:
-
-		Index	Specifier
-		-----	---------
-		0	DOMAIN_VAPE
-
-Example:
-	sdi0_per1@80126000 {
-		compatible = "arm,pl18x", "arm,primecell";
-		power-domains = <&pm_domains DOMAIN_VAPE>
-	};
diff --git a/Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml b/Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml
new file mode 100644
index 000000000000..bf83ce332674
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/stericsson,ux500-pm-domains.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ST-Ericsson UX500 power domains
+
+maintainers:
+  - Linus Walleij <linusw@kernel.org>
+  - Ulf Hansson <ulfh@kernel.org>
+
+description:
+  The UX500 power domain controller gates power to one or more peripherals on
+  the SoC. Domain specifiers use one cell containing one of the DOMAIN_*
+  indexes defined in include/dt-bindings/arm/ux500_pm_domains.h.
+
+allOf:
+  - $ref: power-domain.yaml#
+
+properties:
+  compatible:
+    const: stericsson,ux500-pm-domains
+
+  '#power-domain-cells':
+    const: 1
+
+required:
+  - compatible
+  - '#power-domain-cells'
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/arm/ux500_pm_domains.h>
+
+    pm_domains: power-controller {
+        compatible = "stericsson,ux500-pm-domains";
+        #power-domain-cells = <1>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 3a19da74d00c..560079711469 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3273,6 +3273,7 @@ F:	Documentation/devicetree/bindings/arm/ux500.yaml
 F:	Documentation/devicetree/bindings/arm/ux500/
 F:	Documentation/devicetree/bindings/gpio/st,nomadik-gpio.yaml
 F:	Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
+F:	Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml
 F:	arch/arm/boot/dts/st/ste-*
 F:	arch/arm/mach-nomadik/
 F:	arch/arm/mach-ux500/

-- 
2.55.0


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

* [PATCH 2/3] dt-bindings: arm: ux500: Drop NR_DOMAINS
  2026-10-09 12:15 [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Linus Walleij
  2026-10-09 12:15 ` [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema Linus Walleij
@ 2026-10-09 12:15 ` Linus Walleij
  2026-10-09 12:15 ` [PATCH 3/3] dt-bindings: arm: Add the actual power domains on U8500 Linus Walleij
  2026-10-09 14:33 ` [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Ulf Hansson
  3 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2026-10-09 12:15 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ulf Hansson
  Cc: linux-arm-kernel, devicetree, linux-kernel, linux-pm,
	Linus Walleij, Krzysztof Kozlowski, Krzysztof Kozlowski

Keep the internal Ux500 PM domain count local to the only driver
that uses it.

Do not expose this implementation detail through the DT binding header.

Assisted-by: LLM
Suggested-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
---
 drivers/pmdomain/st/ste-ux500-pm-domain.c  | 2 ++
 include/dt-bindings/arm/ux500_pm_domains.h | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pmdomain/st/ste-ux500-pm-domain.c b/drivers/pmdomain/st/ste-ux500-pm-domain.c
index 6896cb4a7b71..c9129a3b1805 100644
--- a/drivers/pmdomain/st/ste-ux500-pm-domain.c
+++ b/drivers/pmdomain/st/ste-ux500-pm-domain.c
@@ -17,6 +17,8 @@
 
 #include <dt-bindings/arm/ux500_pm_domains.h>
 
+#define NR_DOMAINS		(DOMAIN_VAPE + 1)
+
 static int pd_power_off(struct generic_pm_domain *domain)
 {
 	/*
diff --git a/include/dt-bindings/arm/ux500_pm_domains.h b/include/dt-bindings/arm/ux500_pm_domains.h
index 9bd764f0c9e6..9d94801d8b89 100644
--- a/include/dt-bindings/arm/ux500_pm_domains.h
+++ b/include/dt-bindings/arm/ux500_pm_domains.h
@@ -9,7 +9,5 @@
 
 #define DOMAIN_VAPE		0
 
-/* Number of PM domains. */
-#define NR_DOMAINS		(DOMAIN_VAPE + 1)
 
 #endif

-- 
2.55.0


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

* [PATCH 3/3] dt-bindings: arm: Add the actual power domains on U8500
  2026-10-09 12:15 [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Linus Walleij
  2026-10-09 12:15 ` [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema Linus Walleij
  2026-10-09 12:15 ` [PATCH 2/3] dt-bindings: arm: ux500: Drop NR_DOMAINS Linus Walleij
@ 2026-10-09 12:15 ` Linus Walleij
  2026-10-09 14:33 ` [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Ulf Hansson
  3 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2026-10-09 12:15 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ulf Hansson
  Cc: linux-arm-kernel, devicetree, linux-kernel, linux-pm,
	Linus Walleij, Krzysztof Kozlowski

This file has been left in an unfinished state just defining
the root power domain for the U8500 SoC. Fix it up by adding
the actual existing power domains in this SoC.

The PRCMU code and old regulator driver is mentioning some
*_RET domains, this means "retention" and is a state in the
domain and not a domain of its own.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
---
 include/dt-bindings/arm/ux500_pm_domains.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/include/dt-bindings/arm/ux500_pm_domains.h b/include/dt-bindings/arm/ux500_pm_domains.h
index 9d94801d8b89..f7a9fc101fb2 100644
--- a/include/dt-bindings/arm/ux500_pm_domains.h
+++ b/include/dt-bindings/arm/ux500_pm_domains.h
@@ -8,6 +8,21 @@
 #define _DT_BINDINGS_ARM_UX500_PM_DOMAINS_H
 
 #define DOMAIN_VAPE		0
+#define DOMAIN_VARM		1
+#define DOMAIN_VMODEM		2
+#define DOMAIN_VPLL		3
+#define DOMAIN_VSMPS1		4
+#define DOMAIN_VSMPS2		5
+#define DOMAIN_VSMPS3		6
+#define DOMAIN_VRF1		7
+#define DOMAIN_SVA_MMDSP	8
+#define DOMAIN_SVA_PIPE		9
+#define DOMAIN_SIA_MMDSP	10
+#define DOMAIN_SIA_PIPE		11
+#define DOMAIN_SGA		12
+#define DOMAIN_B2R2_MCDE	13
+#define DOMAIN_ESRAM_12		14
+#define DOMAIN_ESRAM_34		15
 
 
 #endif

-- 
2.55.0


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

* Re: [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema
  2026-10-09 12:15 ` [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema Linus Walleij
@ 2026-10-09 12:23   ` sashiko-bot
  0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-09 12:23 UTC (permalink / raw)
  To: Linus Walleij; +Cc: devicetree, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: node name pm_domains0 violates generic power-domain.yaml pattern
--

commit e036f4f6150d2ad689c2435137c3f93e75ad275c
Author: Linus Walleij <linusw@kernel.org>
Subject: dt-bindings: power: Convert Ux500 PM domains to schema

Convert the legacy Ux500 power domain text binding to YAML. Move it under
bindings/power. Reference the generic power-domain schema.

> diff --git a/Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml b/Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml
> new file mode 100644
> index 0000000000000..bf83ce3326746
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/stericsson,ux500-pm-domains.yaml
> @@ -0,0 +1,41 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---

[ ... ]

> +allOf:
> +  - $ref: power-domain.yaml#
> +

[Severity: Low]
Does referencing the generic power-domain.yaml cause dtbs_check to fail for
existing device trees?

By referencing the generic power-domain schema, this binding strictly enforces
its node name pattern:
^(power-controller|power-domain|performance-domain)([@-].*)?$

However, the existing device tree node in arch/arm/boot/dts/st/ste-dbx5x0.dtsi
is named pm_domains0:

		pm_domains: pm_domains0 {
			compatible = "stericsson,ux500-pm-domains";
			#power-domain-cells = <1>;
		};

While the example below was updated to power-controller to pass local
dt_binding_check, the corresponding .dtsi file was omitted from this patch.
Should the .dtsi file be updated in this series to prevent a lingering
dtbs_check validation regression?

[ ... ]

> +examples:
> +  - |
> +    #include <dt-bindings/arm/ux500_pm_domains.h>
> +
> +    pm_domains: power-controller {
> +        compatible = "stericsson,ux500-pm-domains";
> +        #power-domain-cells = <1>;
> +    };

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261009-ux500-power-domains-v7-3-rc1-redux-v1-0-5eb1b90bc35e@kernel.org?part=1

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

* Re: [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains
  2026-10-09 12:15 [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Linus Walleij
                   ` (2 preceding siblings ...)
  2026-10-09 12:15 ` [PATCH 3/3] dt-bindings: arm: Add the actual power domains on U8500 Linus Walleij
@ 2026-10-09 14:33 ` Ulf Hansson
  3 siblings, 0 replies; 6+ messages in thread
From: Ulf Hansson @ 2026-10-09 14:33 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ulf Hansson,
	linux-arm-kernel, devicetree, linux-kernel, linux-pm,
	Krzysztof Kozlowski, Krzysztof Kozlowski

On Fri, Oct 9, 2026 at 2:15 PM Linus Walleij <linusw@kernel.org> wrote:
>
> This is three preparatory patches for v7.4.
>
> These three are an excerpt from the earlier sent series,
> updated according to comments and collecting ACKs.
>
> It also fixes an urgent dependency (my bad).
>
> The main ux500 power domain rework is targeted for v7.5.
>
> Signed-off-by: Linus Walleij <linusw@kernel.org>
> ---
> Linus Walleij (3):
>       dt-bindings: power: Convert Ux500 PM domains to schema
>       dt-bindings: arm: ux500: Drop NR_DOMAINS
>       dt-bindings: arm: Add the actual power domains on U8500
>
>  .../devicetree/bindings/arm/ux500/power_domain.txt | 35 ------------------
>  .../power/stericsson,ux500-pm-domains.yaml         | 41 ++++++++++++++++++++++
>  MAINTAINERS                                        |  1 +
>  drivers/pmdomain/st/ste-ux500-pm-domain.c          |  2 ++
>  include/dt-bindings/arm/ux500_pm_domains.h         | 17 +++++++--
>  5 files changed, 59 insertions(+), 37 deletions(-)
> ---
> base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
> change-id: 20261009-ux500-power-domains-v7-3-rc1-redux-acdf755a5efc
>
> Best regards,
> --
> Linus Walleij <linusw@kernel.org>
>

Applied for next, thanks!

Note that these changes are also available on the immutable "dt" branch.

Kind regards
Uffe

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

end of thread, other threads:[~2026-10-09 14:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-09 12:15 [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Linus Walleij
2026-10-09 12:15 ` [PATCH 1/3] dt-bindings: power: Convert Ux500 PM domains to schema Linus Walleij
2026-10-09 12:23   ` sashiko-bot
2026-10-09 12:15 ` [PATCH 2/3] dt-bindings: arm: ux500: Drop NR_DOMAINS Linus Walleij
2026-10-09 12:15 ` [PATCH 3/3] dt-bindings: arm: Add the actual power domains on U8500 Linus Walleij
2026-10-09 14:33 ` [PATCH 0/3] pmdomain: Basic DT defines for ux500 power domains Ulf Hansson

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