Add binding documentation for the new power-domains-child-ids property,
which works in conjunction with the existing power-domains property to
establish parent-child relationships between a multi-domain power domain
provider and external parent domains.
Each element in the uint32 array identifies the child domain
ID (index) within the provider that should be made a child domain of
the corresponding phandle entry in power-domains. The two arrays must
have the same number of elements.
Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com>
---
Documentation/devicetree/bindings/power/power-domain.yaml | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/power-domain.yaml b/Documentation/devicetree/bindings/power/power-domain.yaml
index b1147dbf2e73..a3d2af124d37 100644
--- a/Documentation/devicetree/bindings/power/power-domain.yaml
+++ b/Documentation/devicetree/bindings/power/power-domain.yaml
@@ -68,6 +68,21 @@ properties:
by the given provider should be subdomains of the domain specified
by this binding.
+ power-domains-child-ids:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ description:
+ An array of child domain IDs that correspond to the power-domains
+ property. This property is only applicable to power domain providers
+ with "#power-domain-cells" > 0 (i.e., providers that supply multiple
+ power domains). It specifies which of the provider's child domains
+ should be associated with each parent domain listed in the power-domains
+ property. The number of elements in this array must match the number of
+ phandles in the power-domains property. Each element specifies the child
+ domain ID (index) that should be made a child domain of the corresponding
+ parent domain. This enables hierarchical power domain structures where
+ different child domains from the same provider can have different
+ parent domains.
+
required:
- "#power-domain-cells"
@@ -133,3 +148,23 @@ examples:
min-residency-us = <7000>;
};
};
+
+ - |
+ // Example: SCMI domain 15 -> MAIN_PD, SCMI domain 19 -> WKUP_PD
+ MAIN_PD: power-controller-main {
+ compatible = "foo,power-controller";
+ #power-domain-cells = <0>;
+ };
+
+ WKUP_PD: power-controller-wkup {
+ compatible = "foo,power-controller";
+ #power-domain-cells = <0>;
+ };
+
+ scmi_pds: protocol@11 {
+ compatible = "foo,power-controller";
+ reg = <0x11>;
+ #power-domain-cells = <1>;
+ power-domains = <&MAIN_PD>, <&WKUP_PD>;
+ power-domains-child-ids = <15>, <19>;
+ };
--
2.51.0
On Tue, Mar 10, 2026 at 05:19:23PM -0700, Kevin Hilman (TI) wrote: > Add binding documentation for the new power-domains-child-ids property, > which works in conjunction with the existing power-domains property to > establish parent-child relationships between a multi-domain power domain > provider and external parent domains. > > Each element in the uint32 array identifies the child domain > ID (index) within the provider that should be made a child domain of > the corresponding phandle entry in power-domains. The two arrays must > have the same number of elements. > > Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com> > --- > Documentation/devicetree/bindings/power/power-domain.yaml | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/Documentation/devicetree/bindings/power/power-domain.yaml b/Documentation/devicetree/bindings/power/power-domain.yaml > index b1147dbf2e73..a3d2af124d37 100644 > --- a/Documentation/devicetree/bindings/power/power-domain.yaml > +++ b/Documentation/devicetree/bindings/power/power-domain.yaml > @@ -68,6 +68,21 @@ properties: > by the given provider should be subdomains of the domain specified > by this binding. > > + power-domains-child-ids: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + description: > + An array of child domain IDs that correspond to the power-domains > + property. This property is only applicable to power domain providers > + with "#power-domain-cells" > 0 (i.e., providers that supply multiple > + power domains). It specifies which of the provider's child domains > + should be associated with each parent domain listed in the power-domains > + property. The number of elements in this array must match the number of > + phandles in the power-domains property. Each element specifies the child > + domain ID (index) that should be made a child domain of the corresponding > + parent domain. This enables hierarchical power domain structures where > + different child domains from the same provider can have different > + parent domains. Okay, I guess we stick with this. Sorry for the detour. With the example fixed, Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Rob
On Tue, 10 Mar 2026 17:19:23 -0700, Kevin Hilman (TI) wrote: > Add binding documentation for the new power-domains-child-ids property, > which works in conjunction with the existing power-domains property to > establish parent-child relationships between a multi-domain power domain > provider and external parent domains. > > Each element in the uint32 array identifies the child domain > ID (index) within the provider that should be made a child domain of > the corresponding phandle entry in power-domains. The two arrays must > have the same number of elements. > > Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com> > --- > Documentation/devicetree/bindings/power/power-domain.yaml | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/power/power-domain.example.dts:136.13-26: Warning (reg_format): /example-3/protocol@11:reg: property has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1) Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (simple_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format' doc reference errors (make refcheckdocs): See https://patchwork.kernel.org/project/devicetree/patch/20260310-topic-lpm-pmdomain-child-ids-v1-1-5361687a18ff@baylibre.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
"Rob Herring (Arm)" <robh@kernel.org> writes: > On Tue, 10 Mar 2026 17:19:23 -0700, Kevin Hilman (TI) wrote: >> Add binding documentation for the new power-domains-child-ids property, >> which works in conjunction with the existing power-domains property to >> establish parent-child relationships between a multi-domain power domain >> provider and external parent domains. >> >> Each element in the uint32 array identifies the child domain >> ID (index) within the provider that should be made a child domain of >> the corresponding phandle entry in power-domains. The two arrays must >> have the same number of elements. >> >> Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com> >> --- >> Documentation/devicetree/bindings/power/power-domain.yaml | 35 +++++++++++++++++++++++++++++++++++ >> 1 file changed, 35 insertions(+) >> > > My bot found errors running 'make dt_binding_check' on your patch: > > yamllint warnings/errors: > > dtschema/dtc warnings/errors: > Documentation/devicetree/bindings/power/power-domain.example.dts:136.13-26: Warning (reg_format): /example-3/protocol@11:reg: property has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1) > Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format' > Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' > Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (simple_bus_reg): Failed prerequisite 'reg_format' > Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' > Documentation/devicetree/bindings/power/power-domain.example.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format' Noted, and fix will be included in next rev. Kevin
© 2016 - 2026 Red Hat, Inc.