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
7title: Allwinner Clock Control Unit Device Tree Bindings
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Maxime Ripard <mripard@kernel.org>
12
13properties:
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
68required:
69  - "#clock-cells"
70  - "#reset-cells"
71  - compatible
72  - reg
73  - clocks
74  - clock-names
75
76if:
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
87then:
88  properties:
89    clocks:
90      minItems: 4
91      maxItems: 4
92
93    clock-names:
94      minItems: 4
95      maxItems: 4
96
97else:
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
126additionalProperties: false
127
128examples:
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...
150