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 <maxime.ripard@bootlin.com>
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      - items:
25          - const: allwinner,sun8i-a83t-spdif
26          - const: allwinner,sun8i-h3-spdif
27      - items:
28          - const: allwinner,sun50i-a64-spdif
29          - const: allwinner,sun8i-h3-spdif
30
31  reg:
32    maxItems: 1
33
34  interrupts:
35    maxItems: 1
36
37  clocks:
38    items:
39      - description: Bus Clock
40      - description: Module Clock
41
42  clock-names:
43    items:
44      - const: apb
45      - const: spdif
46
47  dmas:
48    items:
49      - description: RX DMA Channel
50      - description: TX DMA Channel
51
52  dma-names:
53    items:
54      - const: rx
55      - const: tx
56
57  # Even though it only applies to subschemas under the conditionals,
58  # not listing them here will trigger a warning because of the
59  # additionalsProperties set to false.
60  resets:
61    maxItems: 1
62
63allOf:
64  - if:
65      properties:
66        compatible:
67          contains:
68            enum:
69              - allwinner,sun6i-a31-spdif
70              - allwinner,sun8i-h3-spdif
71
72    then:
73      required:
74        - resets
75
76required:
77  - "#sound-dai-cells"
78  - compatible
79  - reg
80  - interrupts
81  - clocks
82  - clock-names
83  - dmas
84  - dma-names
85
86additionalProperties: false
87
88examples:
89  - |
90    spdif: spdif@1c21000 {
91        #sound-dai-cells = <0>;
92        compatible = "allwinner,sun4i-a10-spdif";
93        reg = <0x01c21000 0x40>;
94        interrupts = <13>;
95        clocks = <&apb0_gates 1>, <&spdif_clk>;
96        clock-names = "apb", "spdif";
97        dmas = <&dma 0 2>, <&dma 0 2>;
98        dma-names = "rx", "tx";
99    };
100
101...
102