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  # Even though it only applies to subschemas under the conditionals,
48506c7f9bSMaxime Ripard  # not listing them here will trigger a warning because of the
49506c7f9bSMaxime Ripard  # additionalsProperties set to false.
50b1f35dfdSMaxime Ripard  dmas: true
51b1f35dfdSMaxime Ripard  dma-names: true
52506c7f9bSMaxime Ripard  resets:
53506c7f9bSMaxime Ripard    maxItems: 1
54506c7f9bSMaxime Ripard
55506c7f9bSMaxime RipardallOf:
56506c7f9bSMaxime Ripard  - if:
57506c7f9bSMaxime Ripard      properties:
58506c7f9bSMaxime Ripard        compatible:
59506c7f9bSMaxime Ripard          contains:
60506c7f9bSMaxime Ripard            enum:
61506c7f9bSMaxime Ripard              - allwinner,sun6i-a31-spdif
62506c7f9bSMaxime Ripard              - allwinner,sun8i-h3-spdif
63506c7f9bSMaxime Ripard
64506c7f9bSMaxime Ripard    then:
65506c7f9bSMaxime Ripard      required:
66506c7f9bSMaxime Ripard        - resets
67506c7f9bSMaxime Ripard
68b1f35dfdSMaxime Ripard  - if:
69b1f35dfdSMaxime Ripard      properties:
70b1f35dfdSMaxime Ripard        compatible:
71b1f35dfdSMaxime Ripard          contains:
72b1f35dfdSMaxime Ripard            const: allwinner,sun8i-h3-spdif
73b1f35dfdSMaxime Ripard
74b1f35dfdSMaxime Ripard    then:
75b1f35dfdSMaxime Ripard      properties:
76b1f35dfdSMaxime Ripard        dmas:
77b1f35dfdSMaxime Ripard          description: TX DMA Channel
78b1f35dfdSMaxime Ripard
79b1f35dfdSMaxime Ripard        dma-names:
80b1f35dfdSMaxime Ripard          const: tx
81b1f35dfdSMaxime Ripard
82b1f35dfdSMaxime Ripard    else:
83b1f35dfdSMaxime Ripard      properties:
84b1f35dfdSMaxime Ripard        dmas:
85b1f35dfdSMaxime Ripard          items:
86b1f35dfdSMaxime Ripard            - description: RX DMA Channel
87b1f35dfdSMaxime Ripard            - description: TX DMA Channel
88b1f35dfdSMaxime Ripard
89b1f35dfdSMaxime Ripard        dma-names:
90b1f35dfdSMaxime Ripard          items:
91b1f35dfdSMaxime Ripard            - const: rx
92b1f35dfdSMaxime Ripard            - const: tx
93b1f35dfdSMaxime Ripard
94506c7f9bSMaxime Ripardrequired:
95506c7f9bSMaxime Ripard  - "#sound-dai-cells"
96506c7f9bSMaxime Ripard  - compatible
97506c7f9bSMaxime Ripard  - reg
98506c7f9bSMaxime Ripard  - interrupts
99506c7f9bSMaxime Ripard  - clocks
100506c7f9bSMaxime Ripard  - clock-names
101506c7f9bSMaxime Ripard  - dmas
102506c7f9bSMaxime Ripard  - dma-names
103506c7f9bSMaxime Ripard
104506c7f9bSMaxime RipardadditionalProperties: false
105506c7f9bSMaxime Ripard
106506c7f9bSMaxime Ripardexamples:
107506c7f9bSMaxime Ripard  - |
108506c7f9bSMaxime Ripard    spdif: spdif@1c21000 {
109506c7f9bSMaxime Ripard        #sound-dai-cells = <0>;
110506c7f9bSMaxime Ripard        compatible = "allwinner,sun4i-a10-spdif";
111506c7f9bSMaxime Ripard        reg = <0x01c21000 0x40>;
112506c7f9bSMaxime Ripard        interrupts = <13>;
113506c7f9bSMaxime Ripard        clocks = <&apb0_gates 1>, <&spdif_clk>;
114506c7f9bSMaxime Ripard        clock-names = "apb", "spdif";
115506c7f9bSMaxime Ripard        dmas = <&dma 0 2>, <&dma 0 2>;
116506c7f9bSMaxime Ripard        dma-names = "rx", "tx";
117506c7f9bSMaxime Ripard    };
118506c7f9bSMaxime Ripard
119506c7f9bSMaxime Ripard...
120