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