xref: /linux/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml (revision a6021aa24f6417416d93318bbfa022ab229c33c8)
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  clock-names:
50    minItems: 1
51    items:
52      - const: mod
53      - const: bus
54
55  resets:
56    maxItems: 1
57
58
59allOf:
60  - $ref: pwm.yaml#
61
62  - if:
63      properties:
64        compatible:
65          contains:
66            const: allwinner,sun50i-h6-pwm
67
68    then:
69      properties:
70        clocks:
71          maxItems: 2
72
73        clock-names:
74          items:
75            - const: mod
76            - const: bus
77
78      required:
79        - clock-names
80        - resets
81
82    else:
83      properties:
84        clocks:
85          maxItems: 1
86
87required:
88  - compatible
89  - reg
90  - clocks
91
92additionalProperties: false
93
94examples:
95  - |
96    pwm: pwm@1c20e00 {
97        compatible = "allwinner,sun7i-a20-pwm";
98        reg = <0x01c20e00 0xc>;
99        clocks = <&osc24M>;
100        #pwm-cells = <3>;
101    };
102
103  - |
104    #include <dt-bindings/clock/sun50i-h6-ccu.h>
105    #include <dt-bindings/reset/sun50i-h6-ccu.h>
106
107    pwm@300a000 {
108      compatible = "allwinner,sun50i-h6-pwm";
109      reg = <0x0300a000 0x400>;
110      clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
111      clock-names = "mod", "bus";
112      resets = <&ccu RST_BUS_PWM>;
113      #pwm-cells = <3>;
114    };
115
116...
117