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,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
70required:
71  - "#clock-cells"
72  - "#reset-cells"
73  - compatible
74  - reg
75  - clocks
76  - clock-names
77
78if:
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
90then:
91  properties:
92    clocks:
93      minItems: 4
94      maxItems: 4
95
96    clock-names:
97      minItems: 4
98      maxItems: 4
99
100else:
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
130additionalProperties: false
131
132examples:
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...
154