1506c7f9bSMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2506c7f9bSMaxime Ripard%YAML 1.2
3506c7f9bSMaxime Ripard---
4506c7f9bSMaxime Ripard$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-spdif.yaml#
5506c7f9bSMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6506c7f9bSMaxime Ripard
7506c7f9bSMaxime Ripardtitle: Allwinner A10 S/PDIF Controller Device Tree Bindings
8506c7f9bSMaxime Ripard
9506c7f9bSMaxime Ripardmaintainers:
10506c7f9bSMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
11506c7f9bSMaxime Ripard  - Liam Girdwood <lgirdwood@gmail.com>
12506c7f9bSMaxime Ripard  - Mark Brown <broonie@kernel.org>
13506c7f9bSMaxime Ripard  - Maxime Ripard <maxime.ripard@bootlin.com>
14506c7f9bSMaxime Ripard
15506c7f9bSMaxime Ripardproperties:
16506c7f9bSMaxime Ripard  "#sound-dai-cells":
17506c7f9bSMaxime Ripard    const: 0
18506c7f9bSMaxime Ripard
19506c7f9bSMaxime Ripard  compatible:
20506c7f9bSMaxime Ripard    oneOf:
21506c7f9bSMaxime Ripard      - const: allwinner,sun4i-a10-spdif
22506c7f9bSMaxime Ripard      - const: allwinner,sun6i-a31-spdif
23506c7f9bSMaxime Ripard      - const: allwinner,sun8i-h3-spdif
24506c7f9bSMaxime Ripard      - items:
25506c7f9bSMaxime Ripard          - const: allwinner,sun8i-a83t-spdif
26506c7f9bSMaxime Ripard          - const: allwinner,sun8i-h3-spdif
27506c7f9bSMaxime Ripard      - items:
28506c7f9bSMaxime Ripard          - const: allwinner,sun50i-a64-spdif
29506c7f9bSMaxime Ripard          - const: allwinner,sun8i-h3-spdif
30506c7f9bSMaxime Ripard
31506c7f9bSMaxime Ripard  reg:
32506c7f9bSMaxime Ripard    maxItems: 1
33506c7f9bSMaxime Ripard
34506c7f9bSMaxime Ripard  interrupts:
35506c7f9bSMaxime Ripard    maxItems: 1
36506c7f9bSMaxime Ripard
37506c7f9bSMaxime Ripard  clocks:
38506c7f9bSMaxime Ripard    items:
39506c7f9bSMaxime Ripard      - description: Bus Clock
40506c7f9bSMaxime Ripard      - description: Module Clock
41506c7f9bSMaxime Ripard
42506c7f9bSMaxime Ripard  clock-names:
43506c7f9bSMaxime Ripard    items:
44506c7f9bSMaxime Ripard      - const: apb
45506c7f9bSMaxime Ripard      - const: spdif
46506c7f9bSMaxime Ripard
47506c7f9bSMaxime Ripard  dmas:
48506c7f9bSMaxime Ripard    items:
49506c7f9bSMaxime Ripard      - description: RX DMA Channel
50506c7f9bSMaxime Ripard      - description: TX DMA Channel
51506c7f9bSMaxime Ripard
52506c7f9bSMaxime Ripard  dma-names:
53506c7f9bSMaxime Ripard    items:
54506c7f9bSMaxime Ripard      - const: rx
55506c7f9bSMaxime Ripard      - const: tx
56506c7f9bSMaxime Ripard
57506c7f9bSMaxime Ripard  # Even though it only applies to subschemas under the conditionals,
58506c7f9bSMaxime Ripard  # not listing them here will trigger a warning because of the
59506c7f9bSMaxime Ripard  # additionalsProperties set to false.
60506c7f9bSMaxime Ripard  resets:
61506c7f9bSMaxime Ripard    maxItems: 1
62506c7f9bSMaxime Ripard
63506c7f9bSMaxime RipardallOf:
64506c7f9bSMaxime Ripard  - if:
65506c7f9bSMaxime Ripard      properties:
66506c7f9bSMaxime Ripard        compatible:
67506c7f9bSMaxime Ripard          contains:
68506c7f9bSMaxime Ripard            enum:
69506c7f9bSMaxime Ripard              - allwinner,sun6i-a31-spdif
70506c7f9bSMaxime Ripard              - allwinner,sun8i-h3-spdif
71506c7f9bSMaxime Ripard
72506c7f9bSMaxime Ripard    then:
73506c7f9bSMaxime Ripard      required:
74506c7f9bSMaxime Ripard        - resets
75506c7f9bSMaxime Ripard
76506c7f9bSMaxime Ripardrequired:
77506c7f9bSMaxime Ripard  - "#sound-dai-cells"
78506c7f9bSMaxime Ripard  - compatible
79506c7f9bSMaxime Ripard  - reg
80506c7f9bSMaxime Ripard  - interrupts
81506c7f9bSMaxime Ripard  - clocks
82506c7f9bSMaxime Ripard  - clock-names
83506c7f9bSMaxime Ripard  - dmas
84506c7f9bSMaxime Ripard  - dma-names
85506c7f9bSMaxime Ripard
86506c7f9bSMaxime RipardadditionalProperties: false
87506c7f9bSMaxime Ripard
88506c7f9bSMaxime Ripardexamples:
89506c7f9bSMaxime Ripard  - |
90506c7f9bSMaxime Ripard    spdif: spdif@1c21000 {
91506c7f9bSMaxime Ripard        #sound-dai-cells = <0>;
92506c7f9bSMaxime Ripard        compatible = "allwinner,sun4i-a10-spdif";
93506c7f9bSMaxime Ripard        reg = <0x01c21000 0x40>;
94506c7f9bSMaxime Ripard        interrupts = <13>;
95506c7f9bSMaxime Ripard        clocks = <&apb0_gates 1>, <&spdif_clk>;
96506c7f9bSMaxime Ripard        clock-names = "apb", "spdif";
97506c7f9bSMaxime Ripard        dmas = <&dma 0 2>, <&dma 0 2>;
98506c7f9bSMaxime Ripard        dma-names = "rx", "tx";
99506c7f9bSMaxime Ripard    };
100506c7f9bSMaxime Ripard
101506c7f9bSMaxime Ripard...
102