10a0ca8e9SMaxime Ripard# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
20a0ca8e9SMaxime Ripard%YAML 1.2
30a0ca8e9SMaxime Ripard---
40a0ca8e9SMaxime Ripard$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml#
50a0ca8e9SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
60a0ca8e9SMaxime Ripard
7dd3cb467SAndrew Lunntitle: Allwinner A10 I2S Controller
80a0ca8e9SMaxime Ripard
90a0ca8e9SMaxime Ripardmaintainers:
100a0ca8e9SMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
115c7404bbSMaxime Ripard  - Maxime Ripard <mripard@kernel.org>
120a0ca8e9SMaxime Ripard
130a0ca8e9SMaxime Ripardproperties:
140a0ca8e9SMaxime Ripard  "#sound-dai-cells":
150a0ca8e9SMaxime Ripard    const: 0
160a0ca8e9SMaxime Ripard
170a0ca8e9SMaxime Ripard  compatible:
180a0ca8e9SMaxime Ripard    oneOf:
190a0ca8e9SMaxime Ripard      - const: allwinner,sun4i-a10-i2s
200a0ca8e9SMaxime Ripard      - const: allwinner,sun6i-a31-i2s
210a0ca8e9SMaxime Ripard      - const: allwinner,sun8i-a83t-i2s
220a0ca8e9SMaxime Ripard      - const: allwinner,sun8i-h3-i2s
23ce09d1a6STobias Schramm      - items:
2456c9d407SJernej Skrabec          - const: allwinner,sun8i-r40-i2s
2556c9d407SJernej Skrabec          - const: allwinner,sun8i-h3-i2s
2656c9d407SJernej Skrabec      - items:
27ce09d1a6STobias Schramm          - const: allwinner,sun8i-v3-i2s
28ce09d1a6STobias Schramm          - const: allwinner,sun8i-h3-i2s
290a0ca8e9SMaxime Ripard      - const: allwinner,sun50i-a64-codec-i2s
300a0ca8e9SMaxime Ripard      - items:
310a0ca8e9SMaxime Ripard          - const: allwinner,sun50i-a64-i2s
320a0ca8e9SMaxime Ripard          - const: allwinner,sun8i-h3-i2s
33e84f44baSJernej Skrabec      - const: allwinner,sun50i-h6-i2s
347f97b2adSSamuel Holland      - const: allwinner,sun50i-r329-i2s
357f97b2adSSamuel Holland      - items:
367f97b2adSSamuel Holland          - const: allwinner,sun20i-d1-i2s
377f97b2adSSamuel Holland          - const: allwinner,sun50i-r329-i2s
380a0ca8e9SMaxime Ripard
390a0ca8e9SMaxime Ripard  reg:
400a0ca8e9SMaxime Ripard    maxItems: 1
410a0ca8e9SMaxime Ripard
420a0ca8e9SMaxime Ripard  interrupts:
430a0ca8e9SMaxime Ripard    maxItems: 1
440a0ca8e9SMaxime Ripard
450a0ca8e9SMaxime Ripard  clocks:
460a0ca8e9SMaxime Ripard    items:
470a0ca8e9SMaxime Ripard      - description: Bus Clock
480a0ca8e9SMaxime Ripard      - description: Module Clock
490a0ca8e9SMaxime Ripard
500a0ca8e9SMaxime Ripard  clock-names:
510a0ca8e9SMaxime Ripard    items:
520a0ca8e9SMaxime Ripard      - const: apb
530a0ca8e9SMaxime Ripard      - const: mod
540a0ca8e9SMaxime Ripard
550a0ca8e9SMaxime Ripard  # Even though it only applies to subschemas under the conditionals,
560a0ca8e9SMaxime Ripard  # not listing them here will trigger a warning because of the
570a0ca8e9SMaxime Ripard  # additionalsProperties set to false.
58eb5b1284SMaxime Ripard  dmas: true
59eb5b1284SMaxime Ripard  dma-names: true
600a0ca8e9SMaxime Ripard  resets:
610a0ca8e9SMaxime Ripard    maxItems: 1
620a0ca8e9SMaxime Ripard
630a0ca8e9SMaxime RipardallOf:
64*58ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
650a0ca8e9SMaxime Ripard  - if:
660a0ca8e9SMaxime Ripard      properties:
670a0ca8e9SMaxime Ripard        compatible:
680a0ca8e9SMaxime Ripard          contains:
690a0ca8e9SMaxime Ripard            enum:
700a0ca8e9SMaxime Ripard              - allwinner,sun6i-a31-i2s
710a0ca8e9SMaxime Ripard              - allwinner,sun8i-a83t-i2s
720a0ca8e9SMaxime Ripard              - allwinner,sun8i-h3-i2s
730a0ca8e9SMaxime Ripard              - allwinner,sun50i-a64-codec-i2s
74e84f44baSJernej Skrabec              - allwinner,sun50i-h6-i2s
757f97b2adSSamuel Holland              - allwinner,sun50i-r329-i2s
760a0ca8e9SMaxime Ripard
770a0ca8e9SMaxime Ripard    then:
780a0ca8e9SMaxime Ripard      required:
790a0ca8e9SMaxime Ripard        - resets
800a0ca8e9SMaxime Ripard
81eb5b1284SMaxime Ripard  - if:
82eb5b1284SMaxime Ripard      properties:
83eb5b1284SMaxime Ripard        compatible:
84eb5b1284SMaxime Ripard          contains:
850bc1bf24SClément Péron            enum:
860bc1bf24SClément Péron              - allwinner,sun8i-a83t-i2s
870bc1bf24SClément Péron              - allwinner,sun8i-h3-i2s
88eb5b1284SMaxime Ripard
89eb5b1284SMaxime Ripard    then:
90eb5b1284SMaxime Ripard      properties:
91eb5b1284SMaxime Ripard        dmas:
92eb5b1284SMaxime Ripard          minItems: 1
93eb5b1284SMaxime Ripard          items:
94eb5b1284SMaxime Ripard            - description: RX DMA Channel
95eb5b1284SMaxime Ripard            - description: TX DMA Channel
96eb5b1284SMaxime Ripard          description:
97eb5b1284SMaxime Ripard            Some controllers cannot receive but can only transmit
98eb5b1284SMaxime Ripard            data. In such a case, the RX DMA channel is to be omitted.
99eb5b1284SMaxime Ripard
100eb5b1284SMaxime Ripard        dma-names:
101eb5b1284SMaxime Ripard          oneOf:
102eb5b1284SMaxime Ripard            - items:
103eb5b1284SMaxime Ripard                - const: rx
104eb5b1284SMaxime Ripard                - const: tx
105eb5b1284SMaxime Ripard            - const: tx
106eb5b1284SMaxime Ripard          description:
107eb5b1284SMaxime Ripard            Some controllers cannot receive but can only transmit
108eb5b1284SMaxime Ripard            data. In such a case, the RX name is to be omitted.
109eb5b1284SMaxime Ripard
110eb5b1284SMaxime Ripard    else:
111eb5b1284SMaxime Ripard      properties:
112eb5b1284SMaxime Ripard        dmas:
113eb5b1284SMaxime Ripard          items:
114eb5b1284SMaxime Ripard            - description: RX DMA Channel
115eb5b1284SMaxime Ripard            - description: TX DMA Channel
116eb5b1284SMaxime Ripard
117eb5b1284SMaxime Ripard        dma-names:
118eb5b1284SMaxime Ripard          items:
119eb5b1284SMaxime Ripard            - const: rx
120eb5b1284SMaxime Ripard            - const: tx
121eb5b1284SMaxime Ripard
1220a0ca8e9SMaxime Ripardrequired:
1230a0ca8e9SMaxime Ripard  - "#sound-dai-cells"
1240a0ca8e9SMaxime Ripard  - compatible
1250a0ca8e9SMaxime Ripard  - reg
1260a0ca8e9SMaxime Ripard  - interrupts
1270a0ca8e9SMaxime Ripard  - clocks
1280a0ca8e9SMaxime Ripard  - clock-names
1290a0ca8e9SMaxime Ripard  - dmas
1300a0ca8e9SMaxime Ripard  - dma-names
1310a0ca8e9SMaxime Ripard
132*58ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false
1330a0ca8e9SMaxime Ripard
1340a0ca8e9SMaxime Ripardexamples:
1350a0ca8e9SMaxime Ripard  - |
1360a0ca8e9SMaxime Ripard    i2s0: i2s@1c22400 {
1370a0ca8e9SMaxime Ripard        #sound-dai-cells = <0>;
1380a0ca8e9SMaxime Ripard        compatible = "allwinner,sun4i-a10-i2s";
1390a0ca8e9SMaxime Ripard        reg = <0x01c22400 0x400>;
1400a0ca8e9SMaxime Ripard        interrupts = <0 16 4>;
1410a0ca8e9SMaxime Ripard        clocks = <&apb0_gates 3>, <&i2s0_clk>;
1420a0ca8e9SMaxime Ripard        clock-names = "apb", "mod";
1430a0ca8e9SMaxime Ripard        dmas = <&dma 0 3>, <&dma 0 3>;
1440a0ca8e9SMaxime Ripard        dma-names = "rx", "tx";
1450a0ca8e9SMaxime Ripard    };
1460a0ca8e9SMaxime Ripard
1470a0ca8e9SMaxime Ripard...
148