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