Merge tag 'devicetree-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / power / amlogic,meson-ee-pwrc.yaml
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
8 title: Amlogic Meson Everything-Else Power Domains
9
10 maintainers:
11   - Neil Armstrong <narmstrong@baylibre.com>
12
13 description: |+
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 the bindings described in
21   Documentation/devicetree/bindings/mfd/syscon.yaml
22
23 properties:
24   compatible:
25     enum:
26       - amlogic,meson8-pwrc
27       - amlogic,meson8b-pwrc
28       - amlogic,meson8m2-pwrc
29       - amlogic,meson-gxbb-pwrc
30       - amlogic,meson-g12a-pwrc
31       - amlogic,meson-sm1-pwrc
32
33   clocks:
34     minItems: 1
35     maxItems: 2
36
37   clock-names:
38     minItems: 1
39     maxItems: 2
40     items:
41       - const: vpu
42       - const: vapb
43
44   resets:
45     minItems: 11
46     maxItems: 12
47
48   reset-names:
49     minItems: 11
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
59 allOf:
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-g12a-pwrc
115             - amlogic,meson-sm1-pwrc
116     then:
117       properties:
118         reset-names:
119           items:
120             - const: viu
121             - const: venc
122             - const: vcbus
123             - const: bt656
124             - const: rdma
125             - const: venci
126             - const: vencp
127             - const: vdac
128             - const: vdi6
129             - const: vencl
130             - const: vid_lock
131       required:
132         - resets
133         - reset-names
134
135 required:
136   - compatible
137   - clocks
138   - clock-names
139   - "#power-domain-cells"
140   - amlogic,ao-sysctrl
141
142 additionalProperties: false
143
144 examples:
145   - |
146     pwrc: power-controller {
147           compatible = "amlogic,meson-sm1-pwrc";
148           #power-domain-cells = <1>;
149           amlogic,ao-sysctrl = <&rti>;
150           resets = <&reset_viu>,
151                    <&reset_venc>,
152                    <&reset_vcbus>,
153                    <&reset_bt656>,
154                    <&reset_rdma>,
155                    <&reset_venci>,
156                    <&reset_vencp>,
157                    <&reset_vdac>,
158                    <&reset_vdi6>,
159                    <&reset_vencl>,
160                    <&reset_vid_lock>;
161           reset-names = "viu", "venc", "vcbus", "bt656",
162                         "rdma", "venci", "vencp", "vdac",
163                         "vdi6", "vencl", "vid_lock";
164           clocks = <&clk_vpu>, <&clk_vapb>;
165           clock-names = "vpu", "vapb";
166     };