Add device tree bindings for Marvell PXA1908's power domains. Signed-off-by: Duje Mihanović <[email protected]> --- .../power/marvell,pxa1908-power-controller.yaml | 105 +++++++++++++++++++++ include/dt-bindings/power/marvell,pxa1908-power.h | 17 ++++ 2 files changed, 122 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/marvell,pxa1908-power-controller.yaml b/Documentation/devicetree/bindings/power/marvell,pxa1908-power-controller.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1cf3a45d56cbb7b75f7204d656016a9a569da186 --- /dev/null +++ b/Documentation/devicetree/bindings/power/marvell,pxa1908-power-controller.yaml @@ -0,0 +1,105 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/power/marvell,pxa1908-power-controller.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Marvell PXA1908 Power Domain Controller + +maintainers: + - Duje Mihanović <[email protected]> + +description: | + The Marvell PXA1908 SoC includes multiple power domains which can be powered + on/off to save power when different IP cores are not in use. + +properties: + $nodename: + pattern: '^power-controller$' + + compatible: + const: marvell,pxa1908-power-controller + + '#power-domain-cells': + const: 1 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + "^power-domain@[0-9a-f]+$": + type: object + + description: | + Represents a power domain within the power controller node as documented + in Documentation/devicetree/bindings/power/power-domain.yaml. + + properties: + reg: + description: | + Power domain index. Valid values are defined in: + "include/dt-bindings/power/marvell,pxa1908-power.h" + maxItems: 1 + + clocks: + description: | + A number of phandles to clocks that need to be enabled during domain + power up. + + '#power-domain-cells': + const: 0 + + required: + - reg + + unevaluatedProperties: false + +required: + - compatible + +additionalProperties: false + +examples: + - | + #include <dt-bindings/power/marvell,pxa1908-power.h> + + clock-controller@d4282800 { + compatible = "marvell,pxa1908-apmu", "simple-mfd", "syscon"; + reg = <0xd4282800 0x400>; + #clock-cells = <1>; + + power-controller { + compatible = "marvell,pxa1908-power-controller"; + #address-cells = <1>; + #size-cells = <0>; + #power-domain-cells = <1>; + + power-domain@PXA1908_POWER_DOMAIN_VPU { + reg = <PXA1908_POWER_DOMAIN_VPU>; + #power-domain-cells = <0>; + }; + + power-domain@PXA1908_POWER_DOMAIN_GPU { + reg = <PXA1908_POWER_DOMAIN_GPU>; + #power-domain-cells = <0>; + }; + + power-domain@PXA1908_POWER_DOMAIN_GPU2D { + reg = <PXA1908_POWER_DOMAIN_GPU2D>; + #power-domain-cells = <0>; + }; + + power-domain@PXA1908_POWER_DOMAIN_DSI { + reg = <PXA1908_POWER_DOMAIN_DSI>; + #power-domain-cells = <0>; + }; + + power-domain@PXA1908_POWER_DOMAIN_ISP { + reg = <PXA1908_POWER_DOMAIN_ISP>; + #power-domain-cells = <0>; + }; + }; + }; diff --git a/include/dt-bindings/power/marvell,pxa1908-power.h b/include/dt-bindings/power/marvell,pxa1908-power.h new file mode 100644 index 0000000000000000000000000000000000000000..19b088351af138823505a774ff27203429fe2d97 --- /dev/null +++ b/include/dt-bindings/power/marvell,pxa1908-power.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */ +/* + * Marvell PXA1908 power domains + * + * Copyright 2025, Duje Mihanović <[email protected]> + */ + +#ifndef __DTS_MARVELL_PXA1908_POWER_H +#define __DTS_MARVELL_PXA1908_POWER_H + +#define PXA1908_POWER_DOMAIN_VPU 0 +#define PXA1908_POWER_DOMAIN_GPU 1 +#define PXA1908_POWER_DOMAIN_GPU2D 2 +#define PXA1908_POWER_DOMAIN_DSI 3 +#define PXA1908_POWER_DOMAIN_ISP 4 + +#endif -- 2.50.1

