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