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
70a0ca8e9SMaxime Ripardtitle: Allwinner A10 I2S Controller Device Tree Bindings
80a0ca8e9SMaxime Ripard
90a0ca8e9SMaxime Ripardmaintainers:
100a0ca8e9SMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
110a0ca8e9SMaxime Ripard  - Maxime Ripard <maxime.ripard@bootlin.com>
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
230a0ca8e9SMaxime Ripard      - const: allwinner,sun50i-a64-codec-i2s
240a0ca8e9SMaxime Ripard      - items:
250a0ca8e9SMaxime Ripard          - const: allwinner,sun50i-a64-i2s
260a0ca8e9SMaxime Ripard          - const: allwinner,sun8i-h3-i2s
270a0ca8e9SMaxime Ripard
280a0ca8e9SMaxime Ripard  reg:
290a0ca8e9SMaxime Ripard    maxItems: 1
300a0ca8e9SMaxime Ripard
310a0ca8e9SMaxime Ripard  interrupts:
320a0ca8e9SMaxime Ripard    maxItems: 1
330a0ca8e9SMaxime Ripard
340a0ca8e9SMaxime Ripard  clocks:
350a0ca8e9SMaxime Ripard    items:
360a0ca8e9SMaxime Ripard      - description: Bus Clock
370a0ca8e9SMaxime Ripard      - description: Module Clock
380a0ca8e9SMaxime Ripard
390a0ca8e9SMaxime Ripard  clock-names:
400a0ca8e9SMaxime Ripard    items:
410a0ca8e9SMaxime Ripard      - const: apb
420a0ca8e9SMaxime Ripard      - const: mod
430a0ca8e9SMaxime Ripard
440a0ca8e9SMaxime Ripard  dmas:
450a0ca8e9SMaxime Ripard    items:
460a0ca8e9SMaxime Ripard      - description: RX DMA Channel
470a0ca8e9SMaxime Ripard      - description: TX DMA Channel
480a0ca8e9SMaxime Ripard
490a0ca8e9SMaxime Ripard  dma-names:
500a0ca8e9SMaxime Ripard    items:
510a0ca8e9SMaxime Ripard      - const: rx
520a0ca8e9SMaxime Ripard      - const: tx
530a0ca8e9SMaxime Ripard
540a0ca8e9SMaxime Ripard  # Even though it only applies to subschemas under the conditionals,
550a0ca8e9SMaxime Ripard  # not listing them here will trigger a warning because of the
560a0ca8e9SMaxime Ripard  # additionalsProperties set to false.
570a0ca8e9SMaxime Ripard  resets:
580a0ca8e9SMaxime Ripard    maxItems: 1
590a0ca8e9SMaxime Ripard
600a0ca8e9SMaxime RipardallOf:
610a0ca8e9SMaxime Ripard  - if:
620a0ca8e9SMaxime Ripard      properties:
630a0ca8e9SMaxime Ripard        compatible:
640a0ca8e9SMaxime Ripard          contains:
650a0ca8e9SMaxime Ripard            enum:
660a0ca8e9SMaxime Ripard              - allwinner,sun6i-a31-i2s
670a0ca8e9SMaxime Ripard              - allwinner,sun8i-a83t-i2s
680a0ca8e9SMaxime Ripard              - allwinner,sun8i-h3-i2s
690a0ca8e9SMaxime Ripard              - allwinner,sun50i-a64-codec-i2s
700a0ca8e9SMaxime Ripard
710a0ca8e9SMaxime Ripard    then:
720a0ca8e9SMaxime Ripard      required:
730a0ca8e9SMaxime Ripard        - resets
740a0ca8e9SMaxime Ripard
750a0ca8e9SMaxime Ripardrequired:
760a0ca8e9SMaxime Ripard  - "#sound-dai-cells"
770a0ca8e9SMaxime Ripard  - compatible
780a0ca8e9SMaxime Ripard  - reg
790a0ca8e9SMaxime Ripard  - interrupts
800a0ca8e9SMaxime Ripard  - clocks
810a0ca8e9SMaxime Ripard  - clock-names
820a0ca8e9SMaxime Ripard  - dmas
830a0ca8e9SMaxime Ripard  - dma-names
840a0ca8e9SMaxime Ripard
850a0ca8e9SMaxime RipardadditionalProperties: false
860a0ca8e9SMaxime Ripard
870a0ca8e9SMaxime Ripardexamples:
880a0ca8e9SMaxime Ripard  - |
890a0ca8e9SMaxime Ripard    i2s0: i2s@1c22400 {
900a0ca8e9SMaxime Ripard        #sound-dai-cells = <0>;
910a0ca8e9SMaxime Ripard        compatible = "allwinner,sun4i-a10-i2s";
920a0ca8e9SMaxime Ripard        reg = <0x01c22400 0x400>;
930a0ca8e9SMaxime Ripard        interrupts = <0 16 4>;
940a0ca8e9SMaxime Ripard        clocks = <&apb0_gates 3>, <&i2s0_clk>;
950a0ca8e9SMaxime Ripard        clock-names = "apb", "mod";
960a0ca8e9SMaxime Ripard        dmas = <&dma 0 3>, <&dma 0 3>;
970a0ca8e9SMaxime Ripard        dma-names = "rx", "tx";
980a0ca8e9SMaxime Ripard    };
990a0ca8e9SMaxime Ripard
1000a0ca8e9SMaxime Ripard...
101