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 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-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
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-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
135required:
136  - compatible
137  - clocks
138  - clock-names
139  - "#power-domain-cells"
140  - amlogic,ao-sysctrl
141
142additionalProperties: false
143
144examples:
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    };
167