1bd9eccf1SNeil Armstrong# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2bd9eccf1SNeil Armstrong# Copyright 2019 BayLibre, SAS
3bd9eccf1SNeil Armstrong%YAML 1.2
4bd9eccf1SNeil Armstrong---
593215d9fSKrzysztof Kozlowski$id: http://devicetree.org/schemas/power/amlogic,meson-ee-pwrc.yaml#
693215d9fSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
7bd9eccf1SNeil Armstrong
8bd9eccf1SNeil Armstrongtitle: Amlogic Meson Everything-Else Power Domains
9bd9eccf1SNeil Armstrong
10bd9eccf1SNeil Armstrongmaintainers:
11*c6a43fb3SNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
12bd9eccf1SNeil Armstrong
13bd9eccf1SNeil Armstrongdescription: |+
14bd9eccf1SNeil Armstrong  The Everything-Else Power Domains node should be the child of a syscon
15bd9eccf1SNeil Armstrong  node with the required property:
16bd9eccf1SNeil Armstrong
17bd9eccf1SNeil Armstrong  - compatible: Should be the following:
18bd9eccf1SNeil Armstrong                "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon"
19bd9eccf1SNeil Armstrong
2012e5bde1SSlark Xiao  Refer to the bindings described in
2154b3719dSMauro Carvalho Chehab  Documentation/devicetree/bindings/mfd/syscon.yaml
22bd9eccf1SNeil Armstrong
23bd9eccf1SNeil Armstrongproperties:
24bd9eccf1SNeil Armstrong  compatible:
25bd9eccf1SNeil Armstrong    enum:
2618dfc0bfSMartin Blumenstingl      - amlogic,meson8-pwrc
2718dfc0bfSMartin Blumenstingl      - amlogic,meson8b-pwrc
2818dfc0bfSMartin Blumenstingl      - amlogic,meson8m2-pwrc
29cc9ca02aSMartin Blumenstingl      - amlogic,meson-gxbb-pwrc
3097de44c5SNeil Armstrong      - amlogic,meson-axg-pwrc
31bd9eccf1SNeil Armstrong      - amlogic,meson-g12a-pwrc
32bd9eccf1SNeil Armstrong      - amlogic,meson-sm1-pwrc
33bd9eccf1SNeil Armstrong
34bd9eccf1SNeil Armstrong  clocks:
3518dfc0bfSMartin Blumenstingl    minItems: 1
3618dfc0bfSMartin Blumenstingl    maxItems: 2
37bd9eccf1SNeil Armstrong
38bd9eccf1SNeil Armstrong  clock-names:
3918dfc0bfSMartin Blumenstingl    minItems: 1
40bd9eccf1SNeil Armstrong    items:
41bd9eccf1SNeil Armstrong      - const: vpu
42bd9eccf1SNeil Armstrong      - const: vapb
43bd9eccf1SNeil Armstrong
44bd9eccf1SNeil Armstrong  resets:
4597de44c5SNeil Armstrong    minItems: 5
46cc9ca02aSMartin Blumenstingl    maxItems: 12
47bd9eccf1SNeil Armstrong
48bd9eccf1SNeil Armstrong  reset-names:
4997de44c5SNeil Armstrong    minItems: 5
50cc9ca02aSMartin Blumenstingl    maxItems: 12
5118dfc0bfSMartin Blumenstingl
5218dfc0bfSMartin Blumenstingl  "#power-domain-cells":
5318dfc0bfSMartin Blumenstingl    const: 1
5418dfc0bfSMartin Blumenstingl
5518dfc0bfSMartin Blumenstingl  amlogic,ao-sysctrl:
5618dfc0bfSMartin Blumenstingl    description: phandle to the AO sysctrl node
57571d54edSLinus Torvalds    $ref: /schemas/types.yaml#/definitions/phandle
5818dfc0bfSMartin Blumenstingl
5918dfc0bfSMartin BlumenstinglallOf:
6018dfc0bfSMartin Blumenstingl  - if:
6118dfc0bfSMartin Blumenstingl      properties:
6218dfc0bfSMartin Blumenstingl        compatible:
6318dfc0bfSMartin Blumenstingl          enum:
6418dfc0bfSMartin Blumenstingl            - amlogic,meson8b-pwrc
6518dfc0bfSMartin Blumenstingl            - amlogic,meson8m2-pwrc
6618dfc0bfSMartin Blumenstingl    then:
6718dfc0bfSMartin Blumenstingl      properties:
6818dfc0bfSMartin Blumenstingl        reset-names:
6918dfc0bfSMartin Blumenstingl          items:
7018dfc0bfSMartin Blumenstingl            - const: dblk
7118dfc0bfSMartin Blumenstingl            - const: pic_dc
7218dfc0bfSMartin Blumenstingl            - const: hdmi_apb
7318dfc0bfSMartin Blumenstingl            - const: hdmi_system
7418dfc0bfSMartin Blumenstingl            - const: venci
7518dfc0bfSMartin Blumenstingl            - const: vencp
7618dfc0bfSMartin Blumenstingl            - const: vdac
7718dfc0bfSMartin Blumenstingl            - const: vencl
7818dfc0bfSMartin Blumenstingl            - const: viu
7918dfc0bfSMartin Blumenstingl            - const: venc
8018dfc0bfSMartin Blumenstingl            - const: rdma
8118dfc0bfSMartin Blumenstingl      required:
8218dfc0bfSMartin Blumenstingl        - resets
8318dfc0bfSMartin Blumenstingl        - reset-names
8418dfc0bfSMartin Blumenstingl
8518dfc0bfSMartin Blumenstingl  - if:
8618dfc0bfSMartin Blumenstingl      properties:
8718dfc0bfSMartin Blumenstingl        compatible:
8818dfc0bfSMartin Blumenstingl          enum:
89cc9ca02aSMartin Blumenstingl            - amlogic,meson-gxbb-pwrc
90cc9ca02aSMartin Blumenstingl    then:
91cc9ca02aSMartin Blumenstingl      properties:
92cc9ca02aSMartin Blumenstingl        reset-names:
93cc9ca02aSMartin Blumenstingl          items:
94cc9ca02aSMartin Blumenstingl            - const: viu
95cc9ca02aSMartin Blumenstingl            - const: venc
96cc9ca02aSMartin Blumenstingl            - const: vcbus
97cc9ca02aSMartin Blumenstingl            - const: bt656
98cc9ca02aSMartin Blumenstingl            - const: dvin
99cc9ca02aSMartin Blumenstingl            - const: rdma
100cc9ca02aSMartin Blumenstingl            - const: venci
101cc9ca02aSMartin Blumenstingl            - const: vencp
102cc9ca02aSMartin Blumenstingl            - const: vdac
103cc9ca02aSMartin Blumenstingl            - const: vdi6
104cc9ca02aSMartin Blumenstingl            - const: vencl
105cc9ca02aSMartin Blumenstingl            - const: vid_lock
106cc9ca02aSMartin Blumenstingl      required:
107cc9ca02aSMartin Blumenstingl        - resets
108cc9ca02aSMartin Blumenstingl        - reset-names
109cc9ca02aSMartin Blumenstingl
110cc9ca02aSMartin Blumenstingl  - if:
111cc9ca02aSMartin Blumenstingl      properties:
112cc9ca02aSMartin Blumenstingl        compatible:
113cc9ca02aSMartin Blumenstingl          enum:
11497de44c5SNeil Armstrong            - amlogic,meson-axg-pwrc
11597de44c5SNeil Armstrong    then:
11697de44c5SNeil Armstrong      properties:
11797de44c5SNeil Armstrong        reset-names:
11897de44c5SNeil Armstrong          items:
11997de44c5SNeil Armstrong            - const: viu
12097de44c5SNeil Armstrong            - const: venc
12197de44c5SNeil Armstrong            - const: vcbus
12297de44c5SNeil Armstrong            - const: vencl
12397de44c5SNeil Armstrong            - const: vid_lock
12497de44c5SNeil Armstrong      required:
12597de44c5SNeil Armstrong        - resets
12697de44c5SNeil Armstrong        - reset-names
12797de44c5SNeil Armstrong
12897de44c5SNeil Armstrong  - if:
12997de44c5SNeil Armstrong      properties:
13097de44c5SNeil Armstrong        compatible:
13197de44c5SNeil Armstrong          enum:
13218dfc0bfSMartin Blumenstingl            - amlogic,meson-g12a-pwrc
13318dfc0bfSMartin Blumenstingl            - amlogic,meson-sm1-pwrc
13418dfc0bfSMartin Blumenstingl    then:
13518dfc0bfSMartin Blumenstingl      properties:
13618dfc0bfSMartin Blumenstingl        reset-names:
137bd9eccf1SNeil Armstrong          items:
138bd9eccf1SNeil Armstrong            - const: viu
139bd9eccf1SNeil Armstrong            - const: venc
140bd9eccf1SNeil Armstrong            - const: vcbus
141bd9eccf1SNeil Armstrong            - const: bt656
142bd9eccf1SNeil Armstrong            - const: rdma
143bd9eccf1SNeil Armstrong            - const: venci
144bd9eccf1SNeil Armstrong            - const: vencp
145bd9eccf1SNeil Armstrong            - const: vdac
146bd9eccf1SNeil Armstrong            - const: vdi6
147bd9eccf1SNeil Armstrong            - const: vencl
148bd9eccf1SNeil Armstrong            - const: vid_lock
14918dfc0bfSMartin Blumenstingl      required:
15018dfc0bfSMartin Blumenstingl        - resets
15118dfc0bfSMartin Blumenstingl        - reset-names
152bd9eccf1SNeil Armstrong
153bd9eccf1SNeil Armstrongrequired:
154bd9eccf1SNeil Armstrong  - compatible
155bd9eccf1SNeil Armstrong  - clocks
156bd9eccf1SNeil Armstrong  - clock-names
157bd9eccf1SNeil Armstrong  - "#power-domain-cells"
158bd9eccf1SNeil Armstrong  - amlogic,ao-sysctrl
159bd9eccf1SNeil Armstrong
1607f464532SRob HerringadditionalProperties: false
1617f464532SRob Herring
162bd9eccf1SNeil Armstrongexamples:
163bd9eccf1SNeil Armstrong  - |
164bd9eccf1SNeil Armstrong    pwrc: power-controller {
165bd9eccf1SNeil Armstrong          compatible = "amlogic,meson-sm1-pwrc";
166bd9eccf1SNeil Armstrong          #power-domain-cells = <1>;
167bd9eccf1SNeil Armstrong          amlogic,ao-sysctrl = <&rti>;
168bd9eccf1SNeil Armstrong          resets = <&reset_viu>,
169bd9eccf1SNeil Armstrong                   <&reset_venc>,
170bd9eccf1SNeil Armstrong                   <&reset_vcbus>,
171bd9eccf1SNeil Armstrong                   <&reset_bt656>,
172bd9eccf1SNeil Armstrong                   <&reset_rdma>,
173bd9eccf1SNeil Armstrong                   <&reset_venci>,
174bd9eccf1SNeil Armstrong                   <&reset_vencp>,
175bd9eccf1SNeil Armstrong                   <&reset_vdac>,
176bd9eccf1SNeil Armstrong                   <&reset_vdi6>,
177bd9eccf1SNeil Armstrong                   <&reset_vencl>,
178bd9eccf1SNeil Armstrong                   <&reset_vid_lock>;
179bd9eccf1SNeil Armstrong          reset-names = "viu", "venc", "vcbus", "bt656",
180bd9eccf1SNeil Armstrong                        "rdma", "venci", "vencp", "vdac",
181bd9eccf1SNeil Armstrong                        "vdi6", "vencl", "vid_lock";
182bd9eccf1SNeil Armstrong          clocks = <&clk_vpu>, <&clk_vapb>;
183bd9eccf1SNeil Armstrong          clock-names = "vpu", "vapb";
184bd9eccf1SNeil Armstrong    };
185