1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright 2019 BayLibre, SAS
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/power/amlogic,meson-ee-pwrc.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Amlogic Meson Everything-Else Power Domains
9
10maintainers:
11  - Neil Armstrong <narmstrong@baylibre.com>
12
13description: |+
14  The Everything-Else Power Domains node should be the child of a syscon
15  node with the required property:
16
17  - compatible: Should be the following:
18                "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon"
19
20  Refer to the bindings described in
21  Documentation/devicetree/bindings/mfd/syscon.yaml
22
23properties:
24  compatible:
25    enum:
26      - amlogic,meson8-pwrc
27      - amlogic,meson8b-pwrc
28      - amlogic,meson8m2-pwrc
29      - amlogic,meson-gxbb-pwrc
30      - amlogic,meson-axg-pwrc
31      - amlogic,meson-g12a-pwrc
32      - amlogic,meson-sm1-pwrc
33
34  clocks:
35    minItems: 1
36    maxItems: 2
37
38  clock-names:
39    minItems: 1
40    items:
41      - const: vpu
42      - const: vapb
43
44  resets:
45    minItems: 5
46    maxItems: 12
47
48  reset-names:
49    minItems: 5
50    maxItems: 12
51
52  "#power-domain-cells":
53    const: 1
54
55  amlogic,ao-sysctrl:
56    description: phandle to the AO sysctrl node
57    $ref: /schemas/types.yaml#/definitions/phandle
58
59allOf:
60  - if:
61      properties:
62        compatible:
63          enum:
64            - amlogic,meson8b-pwrc
65            - amlogic,meson8m2-pwrc
66    then:
67      properties:
68        reset-names:
69          items:
70            - const: dblk
71            - const: pic_dc
72            - const: hdmi_apb
73            - const: hdmi_system
74            - const: venci
75            - const: vencp
76            - const: vdac
77            - const: vencl
78            - const: viu
79            - const: venc
80            - const: rdma
81      required:
82        - resets
83        - reset-names
84
85  - if:
86      properties:
87        compatible:
88          enum:
89            - amlogic,meson-gxbb-pwrc
90    then:
91      properties:
92        reset-names:
93          items:
94            - const: viu
95            - const: venc
96            - const: vcbus
97            - const: bt656
98            - const: dvin
99            - const: rdma
100            - const: venci
101            - const: vencp
102            - const: vdac
103            - const: vdi6
104            - const: vencl
105            - const: vid_lock
106      required:
107        - resets
108        - reset-names
109
110  - if:
111      properties:
112        compatible:
113          enum:
114            - amlogic,meson-axg-pwrc
115    then:
116      properties:
117        reset-names:
118          items:
119            - const: viu
120            - const: venc
121            - const: vcbus
122            - const: vencl
123            - const: vid_lock
124      required:
125        - resets
126        - reset-names
127
128  - if:
129      properties:
130        compatible:
131          enum:
132            - amlogic,meson-g12a-pwrc
133            - amlogic,meson-sm1-pwrc
134    then:
135      properties:
136        reset-names:
137          items:
138            - const: viu
139            - const: venc
140            - const: vcbus
141            - const: bt656
142            - const: rdma
143            - const: venci
144            - const: vencp
145            - const: vdac
146            - const: vdi6
147            - const: vencl
148            - const: vid_lock
149      required:
150        - resets
151        - reset-names
152
153required:
154  - compatible
155  - clocks
156  - clock-names
157  - "#power-domain-cells"
158  - amlogic,ao-sysctrl
159
160additionalProperties: false
161
162examples:
163  - |
164    pwrc: power-controller {
165          compatible = "amlogic,meson-sm1-pwrc";
166          #power-domain-cells = <1>;
167          amlogic,ao-sysctrl = <&rti>;
168          resets = <&reset_viu>,
169                   <&reset_venc>,
170                   <&reset_vcbus>,
171                   <&reset_bt656>,
172                   <&reset_rdma>,
173                   <&reset_venci>,
174                   <&reset_vencp>,
175                   <&reset_vdac>,
176                   <&reset_vdi6>,
177                   <&reset_vencl>,
178                   <&reset_vid_lock>;
179          reset-names = "viu", "venc", "vcbus", "bt656",
180                        "rdma", "venci", "vencp", "vdac",
181                        "vdi6", "vencl", "vid_lock";
182          clocks = <&clk_vpu>, <&clk_vapb>;
183          clock-names = "vpu", "vapb";
184    };
185