1*4d023bebSNeil Armstrong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4d023bebSNeil Armstrong%YAML 1.2
3*4d023bebSNeil Armstrong---
4*4d023bebSNeil Armstrong$id: http://devicetree.org/schemas/soc/amlogic/amlogic,meson-gx-hhi-sysctrl.yaml#
5*4d023bebSNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4d023bebSNeil Armstrong
7*4d023bebSNeil Armstrongtitle: Amlogic Meson System Control registers
8*4d023bebSNeil Armstrong
9*4d023bebSNeil Armstrongmaintainers:
10*4d023bebSNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
11*4d023bebSNeil Armstrong
12*4d023bebSNeil Armstrongproperties:
13*4d023bebSNeil Armstrong  compatible:
14*4d023bebSNeil Armstrong    items:
15*4d023bebSNeil Armstrong      - enum:
16*4d023bebSNeil Armstrong          - amlogic,meson-gx-hhi-sysctrl
17*4d023bebSNeil Armstrong          - amlogic,meson-gx-ao-sysctrl
18*4d023bebSNeil Armstrong          - amlogic,meson-axg-hhi-sysctrl
19*4d023bebSNeil Armstrong          - amlogic,meson-axg-ao-sysctrl
20*4d023bebSNeil Armstrong      - const: simple-mfd
21*4d023bebSNeil Armstrong      - const: syscon
22*4d023bebSNeil Armstrong
23*4d023bebSNeil Armstrong  reg:
24*4d023bebSNeil Armstrong    maxItems: 1
25*4d023bebSNeil Armstrong
26*4d023bebSNeil Armstrong  clock-controller:
27*4d023bebSNeil Armstrong    type: object
28*4d023bebSNeil Armstrong
29*4d023bebSNeil Armstrong  power-controller:
30*4d023bebSNeil Armstrong    $ref: /schemas/power/amlogic,meson-ee-pwrc.yaml
31*4d023bebSNeil Armstrong
32*4d023bebSNeil Armstrong  pinctrl:
33*4d023bebSNeil Armstrong    type: object
34*4d023bebSNeil Armstrong
35*4d023bebSNeil Armstrong  phy:
36*4d023bebSNeil Armstrong    type: object
37*4d023bebSNeil Armstrong
38*4d023bebSNeil ArmstrongallOf:
39*4d023bebSNeil Armstrong  - if:
40*4d023bebSNeil Armstrong      properties:
41*4d023bebSNeil Armstrong        compatible:
42*4d023bebSNeil Armstrong          enum:
43*4d023bebSNeil Armstrong            - amlogic,meson-gx-hhi-sysctrl
44*4d023bebSNeil Armstrong            - amlogic,meson-axg-hhi-sysctrl
45*4d023bebSNeil Armstrong    then:
46*4d023bebSNeil Armstrong      properties:
47*4d023bebSNeil Armstrong        clock-controller:
48*4d023bebSNeil Armstrong          $ref: /schemas/clock/amlogic,gxbb-clkc.yaml#
49*4d023bebSNeil Armstrong
50*4d023bebSNeil Armstrong      required:
51*4d023bebSNeil Armstrong        - power-controller
52*4d023bebSNeil Armstrong
53*4d023bebSNeil Armstrong  - if:
54*4d023bebSNeil Armstrong      properties:
55*4d023bebSNeil Armstrong        compatible:
56*4d023bebSNeil Armstrong          enum:
57*4d023bebSNeil Armstrong            - amlogic,meson-gx-ao-sysctrl
58*4d023bebSNeil Armstrong            - amlogic,meson-axg-ao-sysctrl
59*4d023bebSNeil Armstrong    then:
60*4d023bebSNeil Armstrong      properties:
61*4d023bebSNeil Armstrong        clock-controller:
62*4d023bebSNeil Armstrong          $ref: /schemas/clock/amlogic,gxbb-aoclkc.yaml#
63*4d023bebSNeil Armstrong
64*4d023bebSNeil Armstrong        power-controller: false
65*4d023bebSNeil Armstrong        phy: false
66*4d023bebSNeil Armstrong
67*4d023bebSNeil Armstrong  - if:
68*4d023bebSNeil Armstrong      properties:
69*4d023bebSNeil Armstrong        compatible:
70*4d023bebSNeil Armstrong          enum:
71*4d023bebSNeil Armstrong            - amlogic,meson-gx-hhi-sysctrl
72*4d023bebSNeil Armstrong    then:
73*4d023bebSNeil Armstrong      properties:
74*4d023bebSNeil Armstrong        phy: false
75*4d023bebSNeil Armstrong
76*4d023bebSNeil Armstrong  - if:
77*4d023bebSNeil Armstrong      properties:
78*4d023bebSNeil Armstrong        compatible:
79*4d023bebSNeil Armstrong          enum:
80*4d023bebSNeil Armstrong            - amlogic,meson-axg-hhi-sysctrl
81*4d023bebSNeil Armstrong    then:
82*4d023bebSNeil Armstrong      properties:
83*4d023bebSNeil Armstrong        phy:
84*4d023bebSNeil Armstrong          oneOf:
85*4d023bebSNeil Armstrong            - $ref: /schemas/phy/amlogic,g12a-mipi-dphy-analog.yaml
86*4d023bebSNeil Armstrong            - $ref: /schemas/phy/amlogic,meson-axg-mipi-pcie-analog.yaml
87*4d023bebSNeil Armstrong
88*4d023bebSNeil Armstrongrequired:
89*4d023bebSNeil Armstrong  - compatible
90*4d023bebSNeil Armstrong  - reg
91*4d023bebSNeil Armstrong  - clock-controller
92*4d023bebSNeil Armstrong
93*4d023bebSNeil ArmstrongadditionalProperties: false
94*4d023bebSNeil Armstrong
95*4d023bebSNeil Armstrongexamples:
96*4d023bebSNeil Armstrong  - |
97*4d023bebSNeil Armstrong    bus@c883c000 {
98*4d023bebSNeil Armstrong        compatible = "simple-bus";
99*4d023bebSNeil Armstrong        reg = <0xc883c000 0x2000>;
100*4d023bebSNeil Armstrong        #address-cells = <1>;
101*4d023bebSNeil Armstrong        #size-cells = <1>;
102*4d023bebSNeil Armstrong        ranges = <0x0 0xc883c000 0x2000>;
103*4d023bebSNeil Armstrong
104*4d023bebSNeil Armstrong        sysctrl: system-controller@0 {
105*4d023bebSNeil Armstrong            compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
106*4d023bebSNeil Armstrong            reg = <0 0x400>;
107*4d023bebSNeil Armstrong
108*4d023bebSNeil Armstrong            clock-controller {
109*4d023bebSNeil Armstrong                compatible = "amlogic,gxbb-clkc";
110*4d023bebSNeil Armstrong                #clock-cells = <1>;
111*4d023bebSNeil Armstrong                clocks = <&xtal>;
112*4d023bebSNeil Armstrong                clock-names = "xtal";
113*4d023bebSNeil Armstrong            };
114*4d023bebSNeil Armstrong
115*4d023bebSNeil Armstrong            power-controller {
116*4d023bebSNeil Armstrong                compatible = "amlogic,meson-gxbb-pwrc";
117*4d023bebSNeil Armstrong                #power-domain-cells = <1>;
118*4d023bebSNeil Armstrong                amlogic,ao-sysctrl = <&sysctrl_AO>;
119*4d023bebSNeil Armstrong
120*4d023bebSNeil Armstrong                resets = <&reset_viu>,
121*4d023bebSNeil Armstrong                         <&reset_venc>,
122*4d023bebSNeil Armstrong                         <&reset_vcbus>,
123*4d023bebSNeil Armstrong                         <&reset_bt656>,
124*4d023bebSNeil Armstrong                         <&reset_dvin>,
125*4d023bebSNeil Armstrong                         <&reset_rdma>,
126*4d023bebSNeil Armstrong                         <&reset_venci>,
127*4d023bebSNeil Armstrong                         <&reset_vencp>,
128*4d023bebSNeil Armstrong                         <&reset_vdac>,
129*4d023bebSNeil Armstrong                         <&reset_vdi6>,
130*4d023bebSNeil Armstrong                         <&reset_vencl>,
131*4d023bebSNeil Armstrong                         <&reset_vid_lock>;
132*4d023bebSNeil Armstrong                reset-names = "viu", "venc", "vcbus", "bt656", "dvin",
133*4d023bebSNeil Armstrong                              "rdma", "venci", "vencp", "vdac", "vdi6",
134*4d023bebSNeil Armstrong                              "vencl", "vid_lock";
135*4d023bebSNeil Armstrong                clocks = <&clk_vpu>, <&clk_vapb>;
136*4d023bebSNeil Armstrong                clock-names = "vpu", "vapb";
137*4d023bebSNeil Armstrong            };
138*4d023bebSNeil Armstrong        };
139*4d023bebSNeil Armstrong    };
140*4d023bebSNeil Armstrong
141*4d023bebSNeil Armstrong    bus@c8100000 {
142*4d023bebSNeil Armstrong        compatible = "simple-bus";
143*4d023bebSNeil Armstrong        reg = <0xc8100000 0x100000>;
144*4d023bebSNeil Armstrong        #address-cells = <1>;
145*4d023bebSNeil Armstrong        #size-cells = <1>;
146*4d023bebSNeil Armstrong        ranges = <0x0 0xc8100000 0x100000>;
147*4d023bebSNeil Armstrong
148*4d023bebSNeil Armstrong        sysctrl_AO: system-controller@0 {
149*4d023bebSNeil Armstrong            compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon";
150*4d023bebSNeil Armstrong            reg = <0 0x100>;
151*4d023bebSNeil Armstrong
152*4d023bebSNeil Armstrong            clock-controller {
153*4d023bebSNeil Armstrong                compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
154*4d023bebSNeil Armstrong                #clock-cells = <1>;
155*4d023bebSNeil Armstrong                #reset-cells = <1>;
156*4d023bebSNeil Armstrong                clocks = <&xtal>, <&clk81>;
157*4d023bebSNeil Armstrong                clock-names = "xtal", "mpeg-clk";
158*4d023bebSNeil Armstrong            };
159*4d023bebSNeil Armstrong        };
160*4d023bebSNeil Armstrong    };
161