1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-spdif.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner A10 S/PDIF Controller Device Tree Bindings
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Liam Girdwood <lgirdwood@gmail.com>
12  - Mark Brown <broonie@kernel.org>
13  - Maxime Ripard <mripard@kernel.org>
14
15properties:
16  "#sound-dai-cells":
17    const: 0
18
19  compatible:
20    oneOf:
21      - const: allwinner,sun4i-a10-spdif
22      - const: allwinner,sun6i-a31-spdif
23      - const: allwinner,sun8i-h3-spdif
24      - const: allwinner,sun50i-h6-spdif
25      - items:
26          - const: allwinner,sun8i-a83t-spdif
27          - const: allwinner,sun8i-h3-spdif
28      - items:
29          - const: allwinner,sun50i-a64-spdif
30          - const: allwinner,sun8i-h3-spdif
31
32  reg:
33    maxItems: 1
34
35  interrupts:
36    maxItems: 1
37
38  clocks:
39    items:
40      - description: Bus Clock
41      - description: Module Clock
42
43  clock-names:
44    items:
45      - const: apb
46      - const: spdif
47
48  # Even though it only applies to subschemas under the conditionals,
49  # not listing them here will trigger a warning because of the
50  # additionalsProperties set to false.
51  dmas: true
52  dma-names: true
53  resets:
54    maxItems: 1
55
56allOf:
57  - if:
58      properties:
59        compatible:
60          contains:
61            enum:
62              - allwinner,sun6i-a31-spdif
63              - allwinner,sun8i-h3-spdif
64
65    then:
66      required:
67        - resets
68
69  - if:
70      properties:
71        compatible:
72          contains:
73            enum:
74              - allwinner,sun8i-h3-spdif
75              - allwinner,sun50i-h6-spdif
76
77    then:
78      properties:
79        dmas:
80          description: TX DMA Channel
81
82        dma-names:
83          const: tx
84
85    else:
86      properties:
87        dmas:
88          items:
89            - description: RX DMA Channel
90            - description: TX DMA Channel
91
92        dma-names:
93          items:
94            - const: rx
95            - const: tx
96
97required:
98  - "#sound-dai-cells"
99  - compatible
100  - reg
101  - interrupts
102  - clocks
103  - clock-names
104  - dmas
105  - dma-names
106
107additionalProperties: false
108
109examples:
110  - |
111    spdif: spdif@1c21000 {
112        #sound-dai-cells = <0>;
113        compatible = "allwinner,sun4i-a10-spdif";
114        reg = <0x01c21000 0x40>;
115        interrupts = <13>;
116        clocks = <&apb0_gates 1>, <&spdif_clk>;
117        clock-names = "apb", "spdif";
118        dmas = <&dma 0 2>, <&dma 0 2>;
119        dma-names = "rx", "tx";
120    };
121
122...
123