xref: /linux/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml (revision 05d32474ab547fb097cfe3f3eb00a2aa7cdf4067)
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          - enum:
40              - apple,t6020-pmgr
41              - apple,t8122-pmgr
42          - const: apple,t8103-pmgr
43          - const: syscon
44          - const: simple-mfd
45
46  reg:
47    maxItems: 1
48
49  "#address-cells":
50    const: 1
51
52  "#size-cells":
53    const: 1
54
55patternProperties:
56  "power-controller@[0-9a-f]+$":
57    description:
58      The individual power management domains within this controller
59    type: object
60    $ref: /schemas/power/apple,pmgr-pwrstate.yaml#
61
62required:
63  - compatible
64  - reg
65
66additionalProperties: false
67
68examples:
69  - |
70    soc {
71        #address-cells = <2>;
72        #size-cells = <2>;
73
74        power-management@23b700000 {
75            compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
76            #address-cells = <1>;
77            #size-cells = <1>;
78            reg = <0x2 0x3b700000 0x0 0x14000>;
79
80            ps_sio: power-controller@1c0 {
81                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
82                reg = <0x1c0 8>;
83                #power-domain-cells = <0>;
84                #reset-cells = <0>;
85                label = "sio";
86                apple,always-on;
87            };
88
89            ps_uart_p: power-controller@220 {
90                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
91                reg = <0x220 8>;
92                #power-domain-cells = <0>;
93                #reset-cells = <0>;
94                label = "uart_p";
95                power-domains = <&ps_sio>;
96            };
97
98            ps_uart0: power-controller@270 {
99                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
100                reg = <0x270 8>;
101                #power-domain-cells = <0>;
102                #reset-cells = <0>;
103                label = "uart0";
104                power-domains = <&ps_uart_p>;
105            };
106        };
107
108        power-management@23d280000 {
109            compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
110            #address-cells = <1>;
111            #size-cells = <1>;
112            reg = <0x2 0x3d280000 0x0 0xc000>;
113
114            ps_aop_filter: power-controller@4000 {
115                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
116                reg = <0x4000 8>;
117                #power-domain-cells = <0>;
118                #reset-cells = <0>;
119                label = "aop_filter";
120            };
121
122            ps_aop_base: power-controller@4010 {
123                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
124                reg = <0x4010 8>;
125                #power-domain-cells = <0>;
126                #reset-cells = <0>;
127                label = "aop_base";
128                power-domains = <&ps_aop_filter>;
129            };
130
131            ps_aop_shim: power-controller@4038 {
132                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
133                reg = <0x4038 8>;
134                #power-domain-cells = <0>;
135                #reset-cells = <0>;
136                label = "aop_shim";
137                power-domains = <&ps_aop_base>;
138            };
139
140            ps_aop_uart0: power-controller@4048 {
141                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
142                reg = <0x4048 8>;
143                #power-domain-cells = <0>;
144                #reset-cells = <0>;
145                label = "aop_uart0";
146                power-domains = <&ps_aop_shim>;
147            };
148        };
149    };
150