Re: [PATCH v7 04/10] dt-bindings: soc: google: gs101-pmu: allow power domains as children
From: Rob Herring
Date: Thu Mar 12 2026 - 11:13:35 EST
On Fri, Mar 06, 2026 at 10:29:55AM +0000, André Draszik wrote:
> The power domains are a property of / implemented in the PMU. As such,
> they should be modelled as child nodes of the PMU.
>
> Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx>
> ---
> v7:
> - really be consistent with quoting (Krzysztof)
> - drop invalid tested-by tag (Krzysztof)
>
> v4:
> - consistent quoting using " (Krzysztof)
> - add samsung,dtzpc to example
>
> Note:
> Because the properties added are 'required', this commit breaks DT
> validation of the existing DT for Pixel 6, but a) that's simply because
> the DT is incomplete and b) a DT update will be posted once the binding
> is accepted.
> It is not possible to write the binding such that it supports old
> (incomplete) DTs in addition to the full version, but as per above
> it's not required to keep supporting old DTs.
This information needs to go in the commit msg.
> ---
> .../bindings/soc/google/google,gs101-pmu.yaml | 41 ++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml b/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml
> index a06bd8ec3c20..dfe6f87e5949 100644
> --- a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml
> +++ b/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml
> @@ -16,6 +16,14 @@ properties:
> reg:
> maxItems: 1
>
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> + ranges: true
> +
> reboot-mode:
> $ref: /schemas/power/reset/syscon-reboot-mode.yaml
> type: object
> @@ -39,9 +47,23 @@ properties:
> description:
> Phandle to PMU interrupt generation interface.
>
> +patternProperties:
> + "^power-domain@[0-9a-f]+$":
> + type: object
> + description: Child node describing one power domain within the PMU
> +
> + additionalProperties: true
> +
> + properties:
> + compatible:
> + const: google,gs101-pd
> +
> required:
> - compatible
> - reg
> + - "#address-cells"
> + - "#size-cells"
> + - ranges
> - google,pmu-intr-gen-syscon
>
> additionalProperties: false
> @@ -51,6 +73,25 @@ examples:
> system-controller@17460000 {
> compatible = "google,gs101-pmu";
> reg = <0x17460000 0x10000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
>
> google,pmu-intr-gen-syscon = <&pmu_intr_gen>;
> +
> + pd_g3d: power-domain@1e00 {
> + compatible = "google,gs101-pd";
> + reg = <0x1e00 0x80>;
I'm assuming 0x1e00 is an offset from 0x17460000. That's not what ranges
says though. It says both addresses are in the same address space
(system-controller@17460000 parent's address space). You need:
ranges = <0x0 0x17460000 0x10000>;
> + #power-domain-cells = <0>;
> + label = "g3d";
> + samsung,dtzpc = <&pd_g3d>;
> + };
> +
> + power-domain@2000 {
> + compatible = "google,gs101-pd";
> + reg = <0x2000 0x80>;
> + #power-domain-cells = <0>;
> + power-domains = <&pd_g3d>;
> + label = "embedded_g3d";
> + };
> };
>
> --
> 2.53.0.473.g4a7958ca14-goog
>