xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/allwinner,sun8i-a23-prcm.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0+
2*c66ec88fSEmmanuel Vadot%YAML 1.2
3*c66ec88fSEmmanuel Vadot---
4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/allwinner,sun8i-a23-prcm.yaml#
5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadottitle: Allwinner A23 PRCM Device Tree Bindings
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadotmaintainers:
10*c66ec88fSEmmanuel Vadot  - Chen-Yu Tsai <wens@csie.org>
11*c66ec88fSEmmanuel Vadot  - Maxime Ripard <mripard@kernel.org>
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel Vadotdeprecated: true
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel Vadotproperties:
16*c66ec88fSEmmanuel Vadot  compatible:
17*c66ec88fSEmmanuel Vadot    const: allwinner,sun8i-a23-prcm
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel Vadot  reg:
20*c66ec88fSEmmanuel Vadot    maxItems: 1
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel VadotpatternProperties:
23*c66ec88fSEmmanuel Vadot  "^.*(clk|rst|codec).*$":
24*c66ec88fSEmmanuel Vadot    type: object
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel Vadot    properties:
27*c66ec88fSEmmanuel Vadot      compatible:
28*c66ec88fSEmmanuel Vadot        enum:
29*c66ec88fSEmmanuel Vadot          - fixed-factor-clock
30*c66ec88fSEmmanuel Vadot          - allwinner,sun8i-a23-apb0-clk
31*c66ec88fSEmmanuel Vadot          - allwinner,sun8i-a23-apb0-gates-clk
32*c66ec88fSEmmanuel Vadot          - allwinner,sun6i-a31-clock-reset
33*c66ec88fSEmmanuel Vadot          - allwinner,sun8i-a23-codec-analog
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel Vadot    required:
36*c66ec88fSEmmanuel Vadot      - compatible
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot    allOf:
39*c66ec88fSEmmanuel Vadot      - if:
40*c66ec88fSEmmanuel Vadot          properties:
41*c66ec88fSEmmanuel Vadot            compatible:
42*c66ec88fSEmmanuel Vadot              contains:
43*c66ec88fSEmmanuel Vadot                const: allwinner,sun8i-a23-apb0-clk
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel Vadot        then:
46*c66ec88fSEmmanuel Vadot          properties:
47*c66ec88fSEmmanuel Vadot            "#clock-cells":
48*c66ec88fSEmmanuel Vadot              const: 0
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot            # Already checked in the main schema
51*c66ec88fSEmmanuel Vadot            compatible: true
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel Vadot            clocks:
54*c66ec88fSEmmanuel Vadot              maxItems: 1
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot            clock-output-names:
57*c66ec88fSEmmanuel Vadot              maxItems: 1
58*c66ec88fSEmmanuel Vadot
59*c66ec88fSEmmanuel Vadot            phandle: true
60*c66ec88fSEmmanuel Vadot
61*c66ec88fSEmmanuel Vadot          required:
62*c66ec88fSEmmanuel Vadot            - "#clock-cells"
63*c66ec88fSEmmanuel Vadot            - compatible
64*c66ec88fSEmmanuel Vadot            - clocks
65*c66ec88fSEmmanuel Vadot            - clock-output-names
66*c66ec88fSEmmanuel Vadot
67*c66ec88fSEmmanuel Vadot          additionalProperties: false
68*c66ec88fSEmmanuel Vadot
69*c66ec88fSEmmanuel Vadot      - if:
70*c66ec88fSEmmanuel Vadot          properties:
71*c66ec88fSEmmanuel Vadot            compatible:
72*c66ec88fSEmmanuel Vadot              contains:
73*c66ec88fSEmmanuel Vadot                const: allwinner,sun8i-a23-apb0-gates-clk
74*c66ec88fSEmmanuel Vadot
75*c66ec88fSEmmanuel Vadot        then:
76*c66ec88fSEmmanuel Vadot          properties:
77*c66ec88fSEmmanuel Vadot            "#clock-cells":
78*c66ec88fSEmmanuel Vadot              const: 1
79*c66ec88fSEmmanuel Vadot              description: >
80*c66ec88fSEmmanuel Vadot                This additional argument passed to that clock is the
81*c66ec88fSEmmanuel Vadot                offset of the bit controlling this particular gate in
82*c66ec88fSEmmanuel Vadot                the register.
83*c66ec88fSEmmanuel Vadot
84*c66ec88fSEmmanuel Vadot            # Already checked in the main schema
85*c66ec88fSEmmanuel Vadot            compatible: true
86*c66ec88fSEmmanuel Vadot
87*c66ec88fSEmmanuel Vadot            clocks:
88*c66ec88fSEmmanuel Vadot              maxItems: 1
89*c66ec88fSEmmanuel Vadot
90*c66ec88fSEmmanuel Vadot            clock-output-names:
91*c66ec88fSEmmanuel Vadot              minItems: 1
92*c66ec88fSEmmanuel Vadot              maxItems: 32
93*c66ec88fSEmmanuel Vadot
94*c66ec88fSEmmanuel Vadot            phandle: true
95*c66ec88fSEmmanuel Vadot
96*c66ec88fSEmmanuel Vadot          required:
97*c66ec88fSEmmanuel Vadot            - "#clock-cells"
98*c66ec88fSEmmanuel Vadot            - compatible
99*c66ec88fSEmmanuel Vadot            - clocks
100*c66ec88fSEmmanuel Vadot            - clock-output-names
101*c66ec88fSEmmanuel Vadot
102*c66ec88fSEmmanuel Vadot          additionalProperties: false
103*c66ec88fSEmmanuel Vadot
104*c66ec88fSEmmanuel Vadot      - if:
105*c66ec88fSEmmanuel Vadot          properties:
106*c66ec88fSEmmanuel Vadot            compatible:
107*c66ec88fSEmmanuel Vadot              contains:
108*c66ec88fSEmmanuel Vadot                const: allwinner,sun6i-a31-clock-reset
109*c66ec88fSEmmanuel Vadot
110*c66ec88fSEmmanuel Vadot        then:
111*c66ec88fSEmmanuel Vadot          properties:
112*c66ec88fSEmmanuel Vadot            "#reset-cells":
113*c66ec88fSEmmanuel Vadot              const: 1
114*c66ec88fSEmmanuel Vadot
115*c66ec88fSEmmanuel Vadot            # Already checked in the main schema
116*c66ec88fSEmmanuel Vadot            compatible: true
117*c66ec88fSEmmanuel Vadot
118*c66ec88fSEmmanuel Vadot            phandle: true
119*c66ec88fSEmmanuel Vadot
120*c66ec88fSEmmanuel Vadot          required:
121*c66ec88fSEmmanuel Vadot            - "#reset-cells"
122*c66ec88fSEmmanuel Vadot            - compatible
123*c66ec88fSEmmanuel Vadot
124*c66ec88fSEmmanuel Vadot          additionalProperties: false
125*c66ec88fSEmmanuel Vadot
126*c66ec88fSEmmanuel Vadot      - if:
127*c66ec88fSEmmanuel Vadot          properties:
128*c66ec88fSEmmanuel Vadot            compatible:
129*c66ec88fSEmmanuel Vadot              contains:
130*c66ec88fSEmmanuel Vadot                const: allwinner,sun8i-a23-codec-analog
131*c66ec88fSEmmanuel Vadot
132*c66ec88fSEmmanuel Vadot        then:
133*c66ec88fSEmmanuel Vadot          properties:
134*c66ec88fSEmmanuel Vadot            # Already checked in the main schema
135*c66ec88fSEmmanuel Vadot            compatible: true
136*c66ec88fSEmmanuel Vadot
137*c66ec88fSEmmanuel Vadot            phandle: true
138*c66ec88fSEmmanuel Vadot
139*c66ec88fSEmmanuel Vadot          required:
140*c66ec88fSEmmanuel Vadot            - compatible
141*c66ec88fSEmmanuel Vadot
142*c66ec88fSEmmanuel Vadot          additionalProperties: false
143*c66ec88fSEmmanuel Vadot
144*c66ec88fSEmmanuel Vadotrequired:
145*c66ec88fSEmmanuel Vadot  - compatible
146*c66ec88fSEmmanuel Vadot  - reg
147*c66ec88fSEmmanuel Vadot
148*c66ec88fSEmmanuel VadotadditionalProperties: false
149*c66ec88fSEmmanuel Vadot
150*c66ec88fSEmmanuel Vadotexamples:
151*c66ec88fSEmmanuel Vadot  - |
152*c66ec88fSEmmanuel Vadot    prcm@1f01400 {
153*c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun8i-a23-prcm";
154*c66ec88fSEmmanuel Vadot        reg = <0x01f01400 0x200>;
155*c66ec88fSEmmanuel Vadot
156*c66ec88fSEmmanuel Vadot        ar100: ar100_clk {
157*c66ec88fSEmmanuel Vadot            compatible = "fixed-factor-clock";
158*c66ec88fSEmmanuel Vadot            #clock-cells = <0>;
159*c66ec88fSEmmanuel Vadot            clock-div = <1>;
160*c66ec88fSEmmanuel Vadot            clock-mult = <1>;
161*c66ec88fSEmmanuel Vadot            clocks = <&osc24M>;
162*c66ec88fSEmmanuel Vadot            clock-output-names = "ar100";
163*c66ec88fSEmmanuel Vadot        };
164*c66ec88fSEmmanuel Vadot
165*c66ec88fSEmmanuel Vadot        ahb0: ahb0_clk {
166*c66ec88fSEmmanuel Vadot            compatible = "fixed-factor-clock";
167*c66ec88fSEmmanuel Vadot            #clock-cells = <0>;
168*c66ec88fSEmmanuel Vadot            clock-div = <1>;
169*c66ec88fSEmmanuel Vadot            clock-mult = <1>;
170*c66ec88fSEmmanuel Vadot            clocks = <&ar100>;
171*c66ec88fSEmmanuel Vadot            clock-output-names = "ahb0";
172*c66ec88fSEmmanuel Vadot        };
173*c66ec88fSEmmanuel Vadot
174*c66ec88fSEmmanuel Vadot        apb0: apb0_clk {
175*c66ec88fSEmmanuel Vadot            compatible = "allwinner,sun8i-a23-apb0-clk";
176*c66ec88fSEmmanuel Vadot            #clock-cells = <0>;
177*c66ec88fSEmmanuel Vadot            clocks = <&ahb0>;
178*c66ec88fSEmmanuel Vadot            clock-output-names = "apb0";
179*c66ec88fSEmmanuel Vadot        };
180*c66ec88fSEmmanuel Vadot
181*c66ec88fSEmmanuel Vadot        apb0_gates: apb0_gates_clk {
182*c66ec88fSEmmanuel Vadot            compatible = "allwinner,sun8i-a23-apb0-gates-clk";
183*c66ec88fSEmmanuel Vadot            #clock-cells = <1>;
184*c66ec88fSEmmanuel Vadot            clocks = <&apb0>;
185*c66ec88fSEmmanuel Vadot            clock-output-names = "apb0_pio", "apb0_timer",
186*c66ec88fSEmmanuel Vadot                                 "apb0_rsb", "apb0_uart",
187*c66ec88fSEmmanuel Vadot                                 "apb0_i2c";
188*c66ec88fSEmmanuel Vadot        };
189*c66ec88fSEmmanuel Vadot
190*c66ec88fSEmmanuel Vadot        apb0_rst: apb0_rst {
191*c66ec88fSEmmanuel Vadot            compatible = "allwinner,sun6i-a31-clock-reset";
192*c66ec88fSEmmanuel Vadot            #reset-cells = <1>;
193*c66ec88fSEmmanuel Vadot        };
194*c66ec88fSEmmanuel Vadot
195*c66ec88fSEmmanuel Vadot        codec_analog: codec-analog {
196*c66ec88fSEmmanuel Vadot            compatible = "allwinner,sun8i-a23-codec-analog";
197*c66ec88fSEmmanuel Vadot        };
198*c66ec88fSEmmanuel Vadot    };
199*c66ec88fSEmmanuel Vadot
200*c66ec88fSEmmanuel Vadot...
201