xref: /linux/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml (revision 4b660dbd9ee2059850fd30e0df420ca7a38a1856)
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      - const: allwinner,sun50i-h616-spdif
26      - items:
27          - const: allwinner,sun8i-a83t-spdif
28          - const: allwinner,sun8i-h3-spdif
29      - items:
30          - const: allwinner,sun50i-a64-spdif
31          - const: allwinner,sun8i-h3-spdif
32
33  reg:
34    maxItems: 1
35
36  interrupts:
37    maxItems: 1
38
39  clocks:
40    items:
41      - description: Bus Clock
42      - description: Module Clock
43
44  clock-names:
45    items:
46      - const: apb
47      - const: spdif
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  dmas: true
53  dma-names: true
54  resets:
55    maxItems: 1
56
57allOf:
58  - $ref: dai-common.yaml#
59  - if:
60      properties:
61        compatible:
62          contains:
63            enum:
64              - allwinner,sun6i-a31-spdif
65              - allwinner,sun8i-h3-spdif
66              - allwinner,sun50i-h6-spdif
67              - allwinner,sun50i-h616-spdif
68
69    then:
70      required:
71        - resets
72
73  - if:
74      properties:
75        compatible:
76          contains:
77            enum:
78              - allwinner,sun8i-h3-spdif
79              - allwinner,sun50i-h616-spdif
80
81    then:
82      properties:
83        dmas:
84          description: TX DMA Channel
85
86        dma-names:
87          const: tx
88
89    else:
90      properties:
91        dmas:
92          items:
93            - description: RX DMA Channel
94            - description: TX DMA Channel
95
96        dma-names:
97          items:
98            - const: rx
99            - const: tx
100
101required:
102  - "#sound-dai-cells"
103  - compatible
104  - reg
105  - interrupts
106  - clocks
107  - clock-names
108  - dmas
109  - dma-names
110
111unevaluatedProperties: false
112
113examples:
114  - |
115    spdif: spdif@1c21000 {
116        #sound-dai-cells = <0>;
117        compatible = "allwinner,sun4i-a10-spdif";
118        reg = <0x01c21000 0x40>;
119        interrupts = <13>;
120        clocks = <&apb0_gates 1>, <&spdif_clk>;
121        clock-names = "apb", "spdif";
122        dmas = <&dma 0 2>, <&dma 0 2>;
123        dma-names = "rx", "tx";
124    };
125
126...
127