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          - 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
58allOf:
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
86required:
87  - compatible
88  - reg
89  - clocks
90
91additionalProperties: false
92
93examples:
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...
116