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
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  - $ref: dai-common.yaml#
58  - if:
59      properties:
60        compatible:
61          contains:
62            enum:
63              - allwinner,sun6i-a31-spdif
64              - allwinner,sun8i-h3-spdif
65
66    then:
67      required:
68        - resets
69
70  - if:
71      properties:
72        compatible:
73          contains:
74            enum:
75              - allwinner,sun8i-h3-spdif
76              - allwinner,sun50i-h6-spdif
77
78    then:
79      properties:
80        dmas:
81          description: TX DMA Channel
82
83        dma-names:
84          const: tx
85
86    else:
87      properties:
88        dmas:
89          items:
90            - description: RX DMA Channel
91            - description: TX DMA Channel
92
93        dma-names:
94          items:
95            - const: rx
96            - const: tx
97
98required:
99  - "#sound-dai-cells"
100  - compatible
101  - reg
102  - interrupts
103  - clocks
104  - clock-names
105  - dmas
106  - dma-names
107
108unevaluatedProperties: false
109
110examples:
111  - |
112    spdif: spdif@1c21000 {
113        #sound-dai-cells = <0>;
114        compatible = "allwinner,sun4i-a10-spdif";
115        reg = <0x01c21000 0x40>;
116        interrupts = <13>;
117        clocks = <&apb0_gates 1>, <&spdif_clk>;
118        clock-names = "apb", "spdif";
119        dmas = <&dma 0 2>, <&dma 0 2>;
120        dma-names = "rx", "tx";
121    };
122
123...
124