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