xref: /freebsd/sys/contrib/device-tree/Bindings/sound/allwinner,sun4i-a10-i2s.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Allwinner A10 I2S Controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Chen-Yu Tsai <wens@csie.org>
11c66ec88fSEmmanuel Vadot  - Maxime Ripard <mripard@kernel.org>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotproperties:
14c66ec88fSEmmanuel Vadot  "#sound-dai-cells":
15c66ec88fSEmmanuel Vadot    const: 0
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadot  compatible:
18c66ec88fSEmmanuel Vadot    oneOf:
19c66ec88fSEmmanuel Vadot      - const: allwinner,sun4i-a10-i2s
20c66ec88fSEmmanuel Vadot      - const: allwinner,sun6i-a31-i2s
21c66ec88fSEmmanuel Vadot      - const: allwinner,sun8i-a83t-i2s
22c66ec88fSEmmanuel Vadot      - const: allwinner,sun8i-h3-i2s
235956d97fSEmmanuel Vadot      - items:
248cc087a1SEmmanuel Vadot          - const: allwinner,sun8i-r40-i2s
258cc087a1SEmmanuel Vadot          - const: allwinner,sun8i-h3-i2s
268cc087a1SEmmanuel Vadot      - items:
275956d97fSEmmanuel Vadot          - const: allwinner,sun8i-v3-i2s
285956d97fSEmmanuel Vadot          - const: allwinner,sun8i-h3-i2s
29c66ec88fSEmmanuel Vadot      - const: allwinner,sun50i-a64-codec-i2s
30c66ec88fSEmmanuel Vadot      - items:
31c66ec88fSEmmanuel Vadot          - const: allwinner,sun50i-a64-i2s
32c66ec88fSEmmanuel Vadot          - const: allwinner,sun8i-h3-i2s
335def4c47SEmmanuel Vadot      - const: allwinner,sun50i-h6-i2s
34c9ccf3a3SEmmanuel Vadot      - const: allwinner,sun50i-r329-i2s
35c9ccf3a3SEmmanuel Vadot      - items:
36c9ccf3a3SEmmanuel Vadot          - const: allwinner,sun20i-d1-i2s
37c9ccf3a3SEmmanuel Vadot          - const: allwinner,sun50i-r329-i2s
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  reg:
40c66ec88fSEmmanuel Vadot    maxItems: 1
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  interrupts:
43c66ec88fSEmmanuel Vadot    maxItems: 1
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot  clocks:
46c66ec88fSEmmanuel Vadot    items:
47c66ec88fSEmmanuel Vadot      - description: Bus Clock
48c66ec88fSEmmanuel Vadot      - description: Module Clock
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  clock-names:
51c66ec88fSEmmanuel Vadot    items:
52c66ec88fSEmmanuel Vadot      - const: apb
53c66ec88fSEmmanuel Vadot      - const: mod
54c66ec88fSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot  # Even though it only applies to subschemas under the conditionals,
56c66ec88fSEmmanuel Vadot  # not listing them here will trigger a warning because of the
57c66ec88fSEmmanuel Vadot  # additionalsProperties set to false.
58c66ec88fSEmmanuel Vadot  dmas: true
59c66ec88fSEmmanuel Vadot  dma-names: true
60c66ec88fSEmmanuel Vadot  resets:
61c66ec88fSEmmanuel Vadot    maxItems: 1
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel VadotallOf:
64*8bab661aSEmmanuel Vadot  - $ref: dai-common.yaml#
65c66ec88fSEmmanuel Vadot  - if:
66c66ec88fSEmmanuel Vadot      properties:
67c66ec88fSEmmanuel Vadot        compatible:
68c66ec88fSEmmanuel Vadot          contains:
69c66ec88fSEmmanuel Vadot            enum:
70c66ec88fSEmmanuel Vadot              - allwinner,sun6i-a31-i2s
71c66ec88fSEmmanuel Vadot              - allwinner,sun8i-a83t-i2s
72c66ec88fSEmmanuel Vadot              - allwinner,sun8i-h3-i2s
73c66ec88fSEmmanuel Vadot              - allwinner,sun50i-a64-codec-i2s
745def4c47SEmmanuel Vadot              - allwinner,sun50i-h6-i2s
75c9ccf3a3SEmmanuel Vadot              - allwinner,sun50i-r329-i2s
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot    then:
78c66ec88fSEmmanuel Vadot      required:
79c66ec88fSEmmanuel Vadot        - resets
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot  - if:
82c66ec88fSEmmanuel Vadot      properties:
83c66ec88fSEmmanuel Vadot        compatible:
84c66ec88fSEmmanuel Vadot          contains:
855def4c47SEmmanuel Vadot            enum:
865def4c47SEmmanuel Vadot              - allwinner,sun8i-a83t-i2s
875def4c47SEmmanuel Vadot              - allwinner,sun8i-h3-i2s
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot    then:
90c66ec88fSEmmanuel Vadot      properties:
91c66ec88fSEmmanuel Vadot        dmas:
92c66ec88fSEmmanuel Vadot          minItems: 1
93c66ec88fSEmmanuel Vadot          items:
94c66ec88fSEmmanuel Vadot            - description: RX DMA Channel
95c66ec88fSEmmanuel Vadot            - description: TX DMA Channel
96c66ec88fSEmmanuel Vadot          description:
97c66ec88fSEmmanuel Vadot            Some controllers cannot receive but can only transmit
98c66ec88fSEmmanuel Vadot            data. In such a case, the RX DMA channel is to be omitted.
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot        dma-names:
101c66ec88fSEmmanuel Vadot          oneOf:
102c66ec88fSEmmanuel Vadot            - items:
103c66ec88fSEmmanuel Vadot                - const: rx
104c66ec88fSEmmanuel Vadot                - const: tx
105c66ec88fSEmmanuel Vadot            - const: tx
106c66ec88fSEmmanuel Vadot          description:
107c66ec88fSEmmanuel Vadot            Some controllers cannot receive but can only transmit
108c66ec88fSEmmanuel Vadot            data. In such a case, the RX name is to be omitted.
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot    else:
111c66ec88fSEmmanuel Vadot      properties:
112c66ec88fSEmmanuel Vadot        dmas:
113c66ec88fSEmmanuel Vadot          items:
114c66ec88fSEmmanuel Vadot            - description: RX DMA Channel
115c66ec88fSEmmanuel Vadot            - description: TX DMA Channel
116c66ec88fSEmmanuel Vadot
117c66ec88fSEmmanuel Vadot        dma-names:
118c66ec88fSEmmanuel Vadot          items:
119c66ec88fSEmmanuel Vadot            - const: rx
120c66ec88fSEmmanuel Vadot            - const: tx
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadotrequired:
123c66ec88fSEmmanuel Vadot  - "#sound-dai-cells"
124c66ec88fSEmmanuel Vadot  - compatible
125c66ec88fSEmmanuel Vadot  - reg
126c66ec88fSEmmanuel Vadot  - interrupts
127c66ec88fSEmmanuel Vadot  - clocks
128c66ec88fSEmmanuel Vadot  - clock-names
129c66ec88fSEmmanuel Vadot  - dmas
130c66ec88fSEmmanuel Vadot  - dma-names
131c66ec88fSEmmanuel Vadot
132*8bab661aSEmmanuel VadotunevaluatedProperties: false
133c66ec88fSEmmanuel Vadot
134c66ec88fSEmmanuel Vadotexamples:
135c66ec88fSEmmanuel Vadot  - |
136c66ec88fSEmmanuel Vadot    i2s0: i2s@1c22400 {
137c66ec88fSEmmanuel Vadot        #sound-dai-cells = <0>;
138c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun4i-a10-i2s";
139c66ec88fSEmmanuel Vadot        reg = <0x01c22400 0x400>;
140c66ec88fSEmmanuel Vadot        interrupts = <0 16 4>;
141c66ec88fSEmmanuel Vadot        clocks = <&apb0_gates 3>, <&i2s0_clk>;
142c66ec88fSEmmanuel Vadot        clock-names = "apb", "mod";
143c66ec88fSEmmanuel Vadot        dmas = <&dma 0 3>, <&dma 0 3>;
144c66ec88fSEmmanuel Vadot        dma-names = "rx", "tx";
145c66ec88fSEmmanuel Vadot    };
146c66ec88fSEmmanuel Vadot
147c66ec88fSEmmanuel Vadot...
148