GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / clock / allwinner,sun4i-a10-ccu.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/clock/allwinner,sun4i-a10-ccu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner Clock Control Unit
8
9 maintainers:
10   - Chen-Yu Tsai <wens@csie.org>
11   - Maxime Ripard <mripard@kernel.org>
12
13 properties:
14   "#clock-cells":
15     const: 1
16
17   "#reset-cells":
18     const: 1
19
20   compatible:
21     enum:
22       - allwinner,sun4i-a10-ccu
23       - allwinner,sun5i-a10s-ccu
24       - allwinner,sun5i-a13-ccu
25       - allwinner,sun6i-a31-ccu
26       - allwinner,sun7i-a20-ccu
27       - allwinner,sun8i-a23-ccu
28       - allwinner,sun8i-a33-ccu
29       - allwinner,sun8i-a83t-ccu
30       - allwinner,sun8i-a83t-r-ccu
31       - allwinner,sun8i-h3-ccu
32       - allwinner,sun8i-h3-r-ccu
33       - allwinner,sun8i-r40-ccu
34       - allwinner,sun8i-v3-ccu
35       - allwinner,sun8i-v3s-ccu
36       - allwinner,sun9i-a80-ccu
37       - allwinner,sun20i-d1-ccu
38       - allwinner,sun20i-d1-r-ccu
39       - allwinner,sun50i-a64-ccu
40       - allwinner,sun50i-a64-r-ccu
41       - allwinner,sun50i-a100-ccu
42       - allwinner,sun50i-a100-r-ccu
43       - allwinner,sun50i-h5-ccu
44       - allwinner,sun50i-h6-ccu
45       - allwinner,sun50i-h6-r-ccu
46       - allwinner,sun50i-h616-ccu
47       - allwinner,sun50i-h616-r-ccu
48       - allwinner,suniv-f1c100s-ccu
49       - nextthing,gr8-ccu
50
51   reg:
52     maxItems: 1
53
54   clocks:
55     minItems: 2
56     items:
57       - description: High Frequency Oscillator (usually at 24MHz)
58       - description: Low Frequency Oscillator (usually at 32kHz)
59       - description: Internal Oscillator
60       - description: Peripherals PLL
61
62   clock-names:
63     minItems: 2
64     items:
65       - const: hosc
66       - const: losc
67       - const: iosc
68       - const: pll-periph
69
70 required:
71   - "#clock-cells"
72   - "#reset-cells"
73   - compatible
74   - reg
75   - clocks
76   - clock-names
77
78 if:
79   properties:
80     compatible:
81       enum:
82         - allwinner,sun8i-a83t-r-ccu
83         - allwinner,sun8i-h3-r-ccu
84         - allwinner,sun20i-d1-r-ccu
85         - allwinner,sun50i-a64-r-ccu
86         - allwinner,sun50i-a100-r-ccu
87         - allwinner,sun50i-h6-r-ccu
88         - allwinner,sun50i-h616-r-ccu
89
90 then:
91   properties:
92     clocks:
93       minItems: 4
94       maxItems: 4
95
96     clock-names:
97       minItems: 4
98       maxItems: 4
99
100 else:
101   if:
102     properties:
103       compatible:
104         enum:
105           - allwinner,sun20i-d1-ccu
106           - allwinner,sun50i-a100-ccu
107           - allwinner,sun50i-h6-ccu
108           - allwinner,sun50i-h616-ccu
109
110   then:
111     properties:
112       clocks:
113         minItems: 3
114         maxItems: 3
115
116       clock-names:
117         minItems: 3
118         maxItems: 3
119
120   else:
121     properties:
122       clocks:
123         minItems: 2
124         maxItems: 2
125
126       clock-names:
127         minItems: 2
128         maxItems: 2
129
130 additionalProperties: false
131
132 examples:
133   - |
134     ccu: clock@1c20000 {
135         compatible = "allwinner,sun8i-h3-ccu";
136         reg = <0x01c20000 0x400>;
137         clocks = <&osc24M>, <&osc32k>;
138         clock-names = "hosc", "losc";
139         #clock-cells = <1>;
140         #reset-cells = <1>;
141     };
142
143   - |
144     r_ccu: clock@1f01400 {
145         compatible = "allwinner,sun50i-a64-r-ccu";
146         reg = <0x01f01400 0x100>;
147         clocks = <&osc24M>, <&osc32k>, <&iosc>, <&ccu 11>;
148         clock-names = "hosc", "losc", "iosc", "pll-periph";
149         #clock-cells = <1>;
150         #reset-cells = <1>;
151     };
152
153 ...