Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.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 Device Tree Bindings
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,sun50i-a64-ccu
38       - allwinner,sun50i-a64-r-ccu
39       - allwinner,sun50i-a100-ccu
40       - allwinner,sun50i-a100-r-ccu
41       - allwinner,sun50i-h5-ccu
42       - allwinner,sun50i-h6-ccu
43       - allwinner,sun50i-h6-r-ccu
44       - allwinner,sun50i-h616-ccu
45       - allwinner,sun50i-h616-r-ccu
46       - allwinner,suniv-f1c100s-ccu
47       - nextthing,gr8-ccu
48
49   reg:
50     maxItems: 1
51
52   clocks:
53     minItems: 2
54     items:
55       - description: High Frequency Oscillator (usually at 24MHz)
56       - description: Low Frequency Oscillator (usually at 32kHz)
57       - description: Internal Oscillator
58       - description: Peripherals PLL
59
60   clock-names:
61     minItems: 2
62     items:
63       - const: hosc
64       - const: losc
65       - const: iosc
66       - const: pll-periph
67
68 required:
69   - "#clock-cells"
70   - "#reset-cells"
71   - compatible
72   - reg
73   - clocks
74   - clock-names
75
76 if:
77   properties:
78     compatible:
79       enum:
80         - allwinner,sun8i-a83t-r-ccu
81         - allwinner,sun8i-h3-r-ccu
82         - allwinner,sun50i-a64-r-ccu
83         - allwinner,sun50i-a100-r-ccu
84         - allwinner,sun50i-h6-r-ccu
85         - allwinner,sun50i-h616-r-ccu
86
87 then:
88   properties:
89     clocks:
90       minItems: 4
91       maxItems: 4
92
93     clock-names:
94       minItems: 4
95       maxItems: 4
96
97 else:
98   if:
99     properties:
100       compatible:
101         enum:
102           - allwinner,sun50i-a100-ccu
103           - allwinner,sun50i-h6-ccu
104           - allwinner,sun50i-h616-ccu
105
106   then:
107     properties:
108       clocks:
109         minItems: 3
110         maxItems: 3
111
112       clock-names:
113         minItems: 3
114         maxItems: 3
115
116   else:
117     properties:
118       clocks:
119         minItems: 2
120         maxItems: 2
121
122       clock-names:
123         minItems: 2
124         maxItems: 2
125
126 additionalProperties: false
127
128 examples:
129   - |
130     ccu: clock@1c20000 {
131         compatible = "allwinner,sun8i-h3-ccu";
132         reg = <0x01c20000 0x400>;
133         clocks = <&osc24M>, <&osc32k>;
134         clock-names = "hosc", "losc";
135         #clock-cells = <1>;
136         #reset-cells = <1>;
137     };
138
139   - |
140     r_ccu: clock@1f01400 {
141         compatible = "allwinner,sun50i-a64-r-ccu";
142         reg = <0x01f01400 0x100>;
143         clocks = <&osc24M>, <&osc32k>, <&iosc>, <&ccu 11>;
144         clock-names = "hosc", "losc", "iosc", "pll-periph";
145         #clock-cells = <1>;
146         #reset-cells = <1>;
147     };
148
149 ...