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