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