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
29bd9eccf1SNeil Armstrong      - amlogic,meson-g12a-pwrc
30bd9eccf1SNeil Armstrong      - amlogic,meson-sm1-pwrc
31bd9eccf1SNeil Armstrong
32bd9eccf1SNeil Armstrong  clocks:
3318dfc0bfSMartin Blumenstingl    minItems: 1
3418dfc0bfSMartin Blumenstingl    maxItems: 2
35bd9eccf1SNeil Armstrong
36bd9eccf1SNeil Armstrong  clock-names:
3718dfc0bfSMartin Blumenstingl    minItems: 1
3818dfc0bfSMartin Blumenstingl    maxItems: 2
39bd9eccf1SNeil Armstrong    items:
40bd9eccf1SNeil Armstrong      - const: vpu
41bd9eccf1SNeil Armstrong      - const: vapb
42bd9eccf1SNeil Armstrong
43bd9eccf1SNeil Armstrong  resets:
44bd9eccf1SNeil Armstrong    minItems: 11
45bd9eccf1SNeil Armstrong
46bd9eccf1SNeil Armstrong  reset-names:
4718dfc0bfSMartin Blumenstingl    minItems: 11
4818dfc0bfSMartin Blumenstingl
4918dfc0bfSMartin Blumenstingl  "#power-domain-cells":
5018dfc0bfSMartin Blumenstingl    const: 1
5118dfc0bfSMartin Blumenstingl
5218dfc0bfSMartin Blumenstingl  amlogic,ao-sysctrl:
5318dfc0bfSMartin Blumenstingl    description: phandle to the AO sysctrl node
5418dfc0bfSMartin Blumenstingl    allOf:
5518dfc0bfSMartin Blumenstingl      - $ref: /schemas/types.yaml#/definitions/phandle
5618dfc0bfSMartin Blumenstingl
5718dfc0bfSMartin BlumenstinglallOf:
5818dfc0bfSMartin Blumenstingl  - if:
5918dfc0bfSMartin Blumenstingl      properties:
6018dfc0bfSMartin Blumenstingl        compatible:
6118dfc0bfSMartin Blumenstingl          enum:
6218dfc0bfSMartin Blumenstingl            - amlogic,meson8b-pwrc
6318dfc0bfSMartin Blumenstingl            - amlogic,meson8m2-pwrc
6418dfc0bfSMartin Blumenstingl    then:
6518dfc0bfSMartin Blumenstingl      properties:
6618dfc0bfSMartin Blumenstingl        reset-names:
6718dfc0bfSMartin Blumenstingl          items:
6818dfc0bfSMartin Blumenstingl            - const: dblk
6918dfc0bfSMartin Blumenstingl            - const: pic_dc
7018dfc0bfSMartin Blumenstingl            - const: hdmi_apb
7118dfc0bfSMartin Blumenstingl            - const: hdmi_system
7218dfc0bfSMartin Blumenstingl            - const: venci
7318dfc0bfSMartin Blumenstingl            - const: vencp
7418dfc0bfSMartin Blumenstingl            - const: vdac
7518dfc0bfSMartin Blumenstingl            - const: vencl
7618dfc0bfSMartin Blumenstingl            - const: viu
7718dfc0bfSMartin Blumenstingl            - const: venc
7818dfc0bfSMartin Blumenstingl            - const: rdma
7918dfc0bfSMartin Blumenstingl      required:
8018dfc0bfSMartin Blumenstingl        - resets
8118dfc0bfSMartin Blumenstingl        - reset-names
8218dfc0bfSMartin Blumenstingl
8318dfc0bfSMartin Blumenstingl  - if:
8418dfc0bfSMartin Blumenstingl      properties:
8518dfc0bfSMartin Blumenstingl        compatible:
8618dfc0bfSMartin Blumenstingl          enum:
8718dfc0bfSMartin Blumenstingl            - amlogic,meson-g12a-pwrc
8818dfc0bfSMartin Blumenstingl            - amlogic,meson-sm1-pwrc
8918dfc0bfSMartin Blumenstingl    then:
9018dfc0bfSMartin Blumenstingl      properties:
9118dfc0bfSMartin Blumenstingl        reset-names:
92bd9eccf1SNeil Armstrong          items:
93bd9eccf1SNeil Armstrong            - const: viu
94bd9eccf1SNeil Armstrong            - const: venc
95bd9eccf1SNeil Armstrong            - const: vcbus
96bd9eccf1SNeil Armstrong            - const: bt656
97bd9eccf1SNeil Armstrong            - const: rdma
98bd9eccf1SNeil Armstrong            - const: venci
99bd9eccf1SNeil Armstrong            - const: vencp
100bd9eccf1SNeil Armstrong            - const: vdac
101bd9eccf1SNeil Armstrong            - const: vdi6
102bd9eccf1SNeil Armstrong            - const: vencl
103bd9eccf1SNeil Armstrong            - const: vid_lock
10418dfc0bfSMartin Blumenstingl      required:
10518dfc0bfSMartin Blumenstingl        - resets
10618dfc0bfSMartin Blumenstingl        - reset-names
107bd9eccf1SNeil Armstrong
108bd9eccf1SNeil Armstrongrequired:
109bd9eccf1SNeil Armstrong  - compatible
110bd9eccf1SNeil Armstrong  - clocks
111bd9eccf1SNeil Armstrong  - clock-names
112bd9eccf1SNeil Armstrong  - "#power-domain-cells"
113bd9eccf1SNeil Armstrong  - amlogic,ao-sysctrl
114bd9eccf1SNeil Armstrong
1157f464532SRob HerringadditionalProperties: false
1167f464532SRob Herring
117bd9eccf1SNeil Armstrongexamples:
118bd9eccf1SNeil Armstrong  - |
119bd9eccf1SNeil Armstrong    pwrc: power-controller {
120bd9eccf1SNeil Armstrong          compatible = "amlogic,meson-sm1-pwrc";
121bd9eccf1SNeil Armstrong          #power-domain-cells = <1>;
122bd9eccf1SNeil Armstrong          amlogic,ao-sysctrl = <&rti>;
123bd9eccf1SNeil Armstrong          resets = <&reset_viu>,
124bd9eccf1SNeil Armstrong                   <&reset_venc>,
125bd9eccf1SNeil Armstrong                   <&reset_vcbus>,
126bd9eccf1SNeil Armstrong                   <&reset_bt656>,
127bd9eccf1SNeil Armstrong                   <&reset_rdma>,
128bd9eccf1SNeil Armstrong                   <&reset_venci>,
129bd9eccf1SNeil Armstrong                   <&reset_vencp>,
130bd9eccf1SNeil Armstrong                   <&reset_vdac>,
131bd9eccf1SNeil Armstrong                   <&reset_vdi6>,
132bd9eccf1SNeil Armstrong                   <&reset_vencl>,
133bd9eccf1SNeil Armstrong                   <&reset_vid_lock>;
134bd9eccf1SNeil Armstrong          reset-names = "viu", "venc", "vcbus", "bt656",
135bd9eccf1SNeil Armstrong                        "rdma", "venci", "vencp", "vdac",
136bd9eccf1SNeil Armstrong                        "vdi6", "vencl", "vid_lock";
137bd9eccf1SNeil Armstrong          clocks = <&clk_vpu>, <&clk_vapb>;
138bd9eccf1SNeil Armstrong          clock-names = "vpu", "vapb";
139bd9eccf1SNeil Armstrong    };
140