Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / pwm / allwinner,sun4i-a10-pwm.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/pwm/allwinner,sun4i-a10-pwm.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner A10 PWM
8
9 maintainers:
10   - Chen-Yu Tsai <wens@csie.org>
11   - Maxime Ripard <mripard@kernel.org>
12
13 properties:
14   "#pwm-cells":
15     const: 3
16
17   compatible:
18     oneOf:
19       - const: allwinner,sun4i-a10-pwm
20       - const: allwinner,sun5i-a10s-pwm
21       - const: allwinner,sun5i-a13-pwm
22       - const: allwinner,sun7i-a20-pwm
23       - const: allwinner,sun8i-h3-pwm
24       - items:
25           - const: allwinner,sun8i-a83t-pwm
26           - const: allwinner,sun8i-h3-pwm
27       - items:
28           - enum:
29               - allwinner,suniv-f1c100s-pwm
30               - allwinner,sun8i-v3s-pwm
31           - const: allwinner,sun7i-a20-pwm
32       - items:
33           - const: allwinner,sun50i-a64-pwm
34           - const: allwinner,sun5i-a13-pwm
35       - items:
36           - const: allwinner,sun50i-h5-pwm
37           - const: allwinner,sun5i-a13-pwm
38       - const: allwinner,sun50i-h6-pwm
39
40   reg:
41     maxItems: 1
42
43   clocks:
44     minItems: 1
45     items:
46       - description: Module Clock
47       - description: Bus Clock
48
49   # Even though it only applies to subschemas under the conditionals,
50   # not listing them here will trigger a warning because of the
51   # additionalsProperties set to false.
52   clock-names: true
53
54   resets:
55     maxItems: 1
56
57
58 allOf:
59   - $ref: pwm.yaml#
60
61   - if:
62       properties:
63         compatible:
64           contains:
65             const: allwinner,sun50i-h6-pwm
66
67     then:
68       properties:
69         clocks:
70           maxItems: 2
71
72         clock-names:
73           items:
74             - const: mod
75             - const: bus
76
77       required:
78         - clock-names
79         - resets
80
81     else:
82       properties:
83         clocks:
84           maxItems: 1
85
86 required:
87   - compatible
88   - reg
89   - clocks
90
91 additionalProperties: false
92
93 examples:
94   - |
95     pwm: pwm@1c20e00 {
96         compatible = "allwinner,sun7i-a20-pwm";
97         reg = <0x01c20e00 0xc>;
98         clocks = <&osc24M>;
99         #pwm-cells = <3>;
100     };
101
102   - |
103     #include <dt-bindings/clock/sun50i-h6-ccu.h>
104     #include <dt-bindings/reset/sun50i-h6-ccu.h>
105
106     pwm@300a000 {
107       compatible = "allwinner,sun50i-h6-pwm";
108       reg = <0x0300a000 0x400>;
109       clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
110       clock-names = "mod", "bus";
111       resets = <&ccu RST_BUS_PWM>;
112       #pwm-cells = <3>;
113     };
114
115 ...