xref: /linux/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml (revision d8d2b1f81530988abe2e2bfaceec1c5d30b9a0b4)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/apple/apple,pmgr.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple SoC Power Manager (PMGR)
8
9maintainers:
10  - Hector Martin <marcan@marcan.st>
11
12description: |
13  Apple SoCs include PMGR blocks responsible for power management,
14  which can control various clocks, resets, power states, and
15  performance features. This node represents the PMGR as a syscon,
16  with sub-nodes representing individual features.
17
18properties:
19  $nodename:
20    pattern: "^power-management@[0-9a-f]+$"
21
22  compatible:
23    oneOf:
24      - items:
25          - enum:
26              # Do not add additional SoC to this list.
27              - apple,s5l8960x-pmgr
28              - apple,t7000-pmgr
29              - apple,s8000-pmgr
30              - apple,t8010-pmgr
31              - apple,t8015-pmgr
32              - apple,t8103-pmgr
33              - apple,t8112-pmgr
34              - apple,t6000-pmgr
35          - const: apple,pmgr
36          - const: syscon
37          - const: simple-mfd
38      - items:
39          - const: apple,t6020-pmgr
40          - const: apple,t8103-pmgr
41          - const: syscon
42          - const: simple-mfd
43
44  reg:
45    maxItems: 1
46
47  "#address-cells":
48    const: 1
49
50  "#size-cells":
51    const: 1
52
53patternProperties:
54  "power-controller@[0-9a-f]+$":
55    description:
56      The individual power management domains within this controller
57    type: object
58    $ref: /schemas/power/apple,pmgr-pwrstate.yaml#
59
60required:
61  - compatible
62  - reg
63
64additionalProperties: false
65
66examples:
67  - |
68    soc {
69        #address-cells = <2>;
70        #size-cells = <2>;
71
72        power-management@23b700000 {
73            compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
74            #address-cells = <1>;
75            #size-cells = <1>;
76            reg = <0x2 0x3b700000 0x0 0x14000>;
77
78            ps_sio: power-controller@1c0 {
79                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
80                reg = <0x1c0 8>;
81                #power-domain-cells = <0>;
82                #reset-cells = <0>;
83                label = "sio";
84                apple,always-on;
85            };
86
87            ps_uart_p: power-controller@220 {
88                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
89                reg = <0x220 8>;
90                #power-domain-cells = <0>;
91                #reset-cells = <0>;
92                label = "uart_p";
93                power-domains = <&ps_sio>;
94            };
95
96            ps_uart0: power-controller@270 {
97                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
98                reg = <0x270 8>;
99                #power-domain-cells = <0>;
100                #reset-cells = <0>;
101                label = "uart0";
102                power-domains = <&ps_uart_p>;
103            };
104        };
105
106        power-management@23d280000 {
107            compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
108            #address-cells = <1>;
109            #size-cells = <1>;
110            reg = <0x2 0x3d280000 0x0 0xc000>;
111
112            ps_aop_filter: power-controller@4000 {
113                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
114                reg = <0x4000 8>;
115                #power-domain-cells = <0>;
116                #reset-cells = <0>;
117                label = "aop_filter";
118            };
119
120            ps_aop_base: power-controller@4010 {
121                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
122                reg = <0x4010 8>;
123                #power-domain-cells = <0>;
124                #reset-cells = <0>;
125                label = "aop_base";
126                power-domains = <&ps_aop_filter>;
127            };
128
129            ps_aop_shim: power-controller@4038 {
130                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
131                reg = <0x4038 8>;
132                #power-domain-cells = <0>;
133                #reset-cells = <0>;
134                label = "aop_shim";
135                power-domains = <&ps_aop_base>;
136            };
137
138            ps_aop_uart0: power-controller@4048 {
139                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
140                reg = <0x4048 8>;
141                #power-domain-cells = <0>;
142                #reset-cells = <0>;
143                label = "aop_uart0";
144                power-domains = <&ps_aop_shim>;
145            };
146        };
147    };
148