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
7title: Allwinner A10 PWM
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Maxime Ripard <mripard@kernel.org>
12
13properties:
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          - const: allwinner,sun8i-v3s-pwm
29          - const: allwinner,sun7i-a20-pwm
30      - items:
31          - const: allwinner,sun50i-a64-pwm
32          - const: allwinner,sun5i-a13-pwm
33      - items:
34          - const: allwinner,sun50i-h5-pwm
35          - const: allwinner,sun5i-a13-pwm
36      - const: allwinner,sun50i-h6-pwm
37
38  reg:
39    maxItems: 1
40
41  clocks:
42    minItems: 1
43    items:
44      - description: Module Clock
45      - description: Bus Clock
46
47  # Even though it only applies to subschemas under the conditionals,
48  # not listing them here will trigger a warning because of the
49  # additionalsProperties set to false.
50  clock-names: true
51
52  resets:
53    maxItems: 1
54
55
56allOf:
57  - $ref: pwm.yaml#
58
59  - if:
60      properties:
61        compatible:
62          contains:
63            const: allwinner,sun50i-h6-pwm
64
65    then:
66      properties:
67        clocks:
68          maxItems: 2
69
70        clock-names:
71          items:
72            - const: mod
73            - const: bus
74
75      required:
76        - clock-names
77        - resets
78
79    else:
80      properties:
81        clocks:
82          maxItems: 1
83
84required:
85  - compatible
86  - reg
87  - clocks
88
89additionalProperties: false
90
91examples:
92  - |
93    pwm: pwm@1c20e00 {
94        compatible = "allwinner,sun7i-a20-pwm";
95        reg = <0x01c20e00 0xc>;
96        clocks = <&osc24M>;
97        #pwm-cells = <3>;
98    };
99
100  - |
101    #include <dt-bindings/clock/sun50i-h6-ccu.h>
102    #include <dt-bindings/reset/sun50i-h6-ccu.h>
103
104    pwm@300a000 {
105      compatible = "allwinner,sun50i-h6-pwm";
106      reg = <0x0300a000 0x400>;
107      clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
108      clock-names = "mod", "bus";
109      resets = <&ccu RST_BUS_PWM>;
110      #pwm-cells = <3>;
111    };
112
113...
114