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---
5bd9eccf1SNeil Armstrong$id: "http://devicetree.org/schemas/power/amlogic,meson-ee-pwrc.yaml#"
6bd9eccf1SNeil Armstrong$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7bd9eccf1SNeil Armstrong
8bd9eccf1SNeil Armstrongtitle: Amlogic Meson Everything-Else Power Domains
9bd9eccf1SNeil Armstrong
10bd9eccf1SNeil Armstrongmaintainers:
11bd9eccf1SNeil Armstrong  - Neil Armstrong <narmstrong@baylibre.com>
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
20bd9eccf1SNeil Armstrong  Refer to the 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
4018dfc0bfSMartin Blumenstingl    maxItems: 2
41bd9eccf1SNeil Armstrong    items:
42bd9eccf1SNeil Armstrong      - const: vpu
43bd9eccf1SNeil Armstrong      - const: vapb
44bd9eccf1SNeil Armstrong
45bd9eccf1SNeil Armstrong  resets:
4697de44c5SNeil Armstrong    minItems: 5
47cc9ca02aSMartin Blumenstingl    maxItems: 12
48bd9eccf1SNeil Armstrong
49bd9eccf1SNeil Armstrong  reset-names:
5097de44c5SNeil Armstrong    minItems: 5
51cc9ca02aSMartin Blumenstingl    maxItems: 12
5218dfc0bfSMartin Blumenstingl
5318dfc0bfSMartin Blumenstingl  "#power-domain-cells":
5418dfc0bfSMartin Blumenstingl    const: 1
5518dfc0bfSMartin Blumenstingl
5618dfc0bfSMartin Blumenstingl  amlogic,ao-sysctrl:
5718dfc0bfSMartin Blumenstingl    description: phandle to the AO sysctrl node
58571d54edSLinus Torvalds    $ref: /schemas/types.yaml#/definitions/phandle
5918dfc0bfSMartin Blumenstingl
6018dfc0bfSMartin BlumenstinglallOf:
6118dfc0bfSMartin Blumenstingl  - if:
6218dfc0bfSMartin Blumenstingl      properties:
6318dfc0bfSMartin Blumenstingl        compatible:
6418dfc0bfSMartin Blumenstingl          enum:
6518dfc0bfSMartin Blumenstingl            - amlogic,meson8b-pwrc
6618dfc0bfSMartin Blumenstingl            - amlogic,meson8m2-pwrc
6718dfc0bfSMartin Blumenstingl    then:
6818dfc0bfSMartin Blumenstingl      properties:
6918dfc0bfSMartin Blumenstingl        reset-names:
7018dfc0bfSMartin Blumenstingl          items:
7118dfc0bfSMartin Blumenstingl            - const: dblk
7218dfc0bfSMartin Blumenstingl            - const: pic_dc
7318dfc0bfSMartin Blumenstingl            - const: hdmi_apb
7418dfc0bfSMartin Blumenstingl            - const: hdmi_system
7518dfc0bfSMartin Blumenstingl            - const: venci
7618dfc0bfSMartin Blumenstingl            - const: vencp
7718dfc0bfSMartin Blumenstingl            - const: vdac
7818dfc0bfSMartin Blumenstingl            - const: vencl
7918dfc0bfSMartin Blumenstingl            - const: viu
8018dfc0bfSMartin Blumenstingl            - const: venc
8118dfc0bfSMartin Blumenstingl            - const: rdma
8218dfc0bfSMartin Blumenstingl      required:
8318dfc0bfSMartin Blumenstingl        - resets
8418dfc0bfSMartin Blumenstingl        - reset-names
8518dfc0bfSMartin Blumenstingl
8618dfc0bfSMartin Blumenstingl  - if:
8718dfc0bfSMartin Blumenstingl      properties:
8818dfc0bfSMartin Blumenstingl        compatible:
8918dfc0bfSMartin Blumenstingl          enum:
90cc9ca02aSMartin Blumenstingl            - amlogic,meson-gxbb-pwrc
91cc9ca02aSMartin Blumenstingl    then:
92cc9ca02aSMartin Blumenstingl      properties:
93cc9ca02aSMartin Blumenstingl        reset-names:
94cc9ca02aSMartin Blumenstingl          items:
95cc9ca02aSMartin Blumenstingl            - const: viu
96cc9ca02aSMartin Blumenstingl            - const: venc
97cc9ca02aSMartin Blumenstingl            - const: vcbus
98cc9ca02aSMartin Blumenstingl            - const: bt656
99cc9ca02aSMartin Blumenstingl            - const: dvin
100cc9ca02aSMartin Blumenstingl            - const: rdma
101cc9ca02aSMartin Blumenstingl            - const: venci
102cc9ca02aSMartin Blumenstingl            - const: vencp
103cc9ca02aSMartin Blumenstingl            - const: vdac
104cc9ca02aSMartin Blumenstingl            - const: vdi6
105cc9ca02aSMartin Blumenstingl            - const: vencl
106cc9ca02aSMartin Blumenstingl            - const: vid_lock
107cc9ca02aSMartin Blumenstingl      required:
108cc9ca02aSMartin Blumenstingl        - resets
109cc9ca02aSMartin Blumenstingl        - reset-names
110cc9ca02aSMartin Blumenstingl
111cc9ca02aSMartin Blumenstingl  - if:
112cc9ca02aSMartin Blumenstingl      properties:
113cc9ca02aSMartin Blumenstingl        compatible:
114cc9ca02aSMartin Blumenstingl          enum:
11597de44c5SNeil Armstrong            - amlogic,meson-axg-pwrc
11697de44c5SNeil Armstrong    then:
11797de44c5SNeil Armstrong      properties:
11897de44c5SNeil Armstrong        reset-names:
11997de44c5SNeil Armstrong          items:
12097de44c5SNeil Armstrong            - const: viu
12197de44c5SNeil Armstrong            - const: venc
12297de44c5SNeil Armstrong            - const: vcbus
12397de44c5SNeil Armstrong            - const: vencl
12497de44c5SNeil Armstrong            - const: vid_lock
12597de44c5SNeil Armstrong      required:
12697de44c5SNeil Armstrong        - resets
12797de44c5SNeil Armstrong        - reset-names
12897de44c5SNeil Armstrong
12997de44c5SNeil Armstrong  - if:
13097de44c5SNeil Armstrong      properties:
13197de44c5SNeil Armstrong        compatible:
13297de44c5SNeil Armstrong          enum:
13318dfc0bfSMartin Blumenstingl            - amlogic,meson-g12a-pwrc
13418dfc0bfSMartin Blumenstingl            - amlogic,meson-sm1-pwrc
13518dfc0bfSMartin Blumenstingl    then:
13618dfc0bfSMartin Blumenstingl      properties:
13718dfc0bfSMartin Blumenstingl        reset-names:
138bd9eccf1SNeil Armstrong          items:
139bd9eccf1SNeil Armstrong            - const: viu
140bd9eccf1SNeil Armstrong            - const: venc
141bd9eccf1SNeil Armstrong            - const: vcbus
142bd9eccf1SNeil Armstrong            - const: bt656
143bd9eccf1SNeil Armstrong            - const: rdma
144bd9eccf1SNeil Armstrong            - const: venci
145bd9eccf1SNeil Armstrong            - const: vencp
146bd9eccf1SNeil Armstrong            - const: vdac
147bd9eccf1SNeil Armstrong            - const: vdi6
148bd9eccf1SNeil Armstrong            - const: vencl
149bd9eccf1SNeil Armstrong            - const: vid_lock
15018dfc0bfSMartin Blumenstingl      required:
15118dfc0bfSMartin Blumenstingl        - resets
15218dfc0bfSMartin Blumenstingl        - reset-names
153bd9eccf1SNeil Armstrong
154bd9eccf1SNeil Armstrongrequired:
155bd9eccf1SNeil Armstrong  - compatible
156bd9eccf1SNeil Armstrong  - clocks
157bd9eccf1SNeil Armstrong  - clock-names
158bd9eccf1SNeil Armstrong  - "#power-domain-cells"
159bd9eccf1SNeil Armstrong  - amlogic,ao-sysctrl
160bd9eccf1SNeil Armstrong
1617f464532SRob HerringadditionalProperties: false
1627f464532SRob Herring
163bd9eccf1SNeil Armstrongexamples:
164bd9eccf1SNeil Armstrong  - |
165bd9eccf1SNeil Armstrong    pwrc: power-controller {
166bd9eccf1SNeil Armstrong          compatible = "amlogic,meson-sm1-pwrc";
167bd9eccf1SNeil Armstrong          #power-domain-cells = <1>;
168bd9eccf1SNeil Armstrong          amlogic,ao-sysctrl = <&rti>;
169bd9eccf1SNeil Armstrong          resets = <&reset_viu>,
170bd9eccf1SNeil Armstrong                   <&reset_venc>,
171bd9eccf1SNeil Armstrong                   <&reset_vcbus>,
172bd9eccf1SNeil Armstrong                   <&reset_bt656>,
173bd9eccf1SNeil Armstrong                   <&reset_rdma>,
174bd9eccf1SNeil Armstrong                   <&reset_venci>,
175bd9eccf1SNeil Armstrong                   <&reset_vencp>,
176bd9eccf1SNeil Armstrong                   <&reset_vdac>,
177bd9eccf1SNeil Armstrong                   <&reset_vdi6>,
178bd9eccf1SNeil Armstrong                   <&reset_vencl>,
179bd9eccf1SNeil Armstrong                   <&reset_vid_lock>;
180bd9eccf1SNeil Armstrong          reset-names = "viu", "venc", "vcbus", "bt656",
181bd9eccf1SNeil Armstrong                        "rdma", "venci", "vencp", "vdac",
182bd9eccf1SNeil Armstrong                        "vdi6", "vencl", "vid_lock";
183bd9eccf1SNeil Armstrong          clocks = <&clk_vpu>, <&clk_vapb>;
184bd9eccf1SNeil Armstrong          clock-names = "vpu", "vapb";
185bd9eccf1SNeil Armstrong    };
186