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