Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / apple,mca.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/apple,mca.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Apple MCA I2S transceiver
8
9 description: |
10   MCA is an I2S transceiver peripheral found on M1 and other Apple chips. It is
11   composed of a number of identical clusters which can operate independently
12   or in an interlinked fashion. Up to 6 clusters have been seen on an MCA.
13
14 maintainers:
15   - Martin PoviĊĦer <povik+lin@cutebit.org>
16
17 allOf:
18   - $ref: dai-common.yaml#
19
20 properties:
21   compatible:
22     items:
23       - enum:
24           - apple,t6000-mca
25           - apple,t8103-mca
26           - apple,t8112-mca
27       - const: apple,mca
28
29   reg:
30     items:
31       - description: Register region of the MCA clusters proper
32       - description: Register region of the DMA glue and its FIFOs
33
34   interrupts:
35     minItems: 4
36     maxItems: 6
37     description:
38       One interrupt per each cluster
39
40   '#address-cells':
41     const: 1
42
43   '#size-cells':
44     const: 0
45
46   dmas:
47     minItems: 16
48     maxItems: 24
49     description:
50       DMA channels corresponding to the SERDES units in the peripheral. They are
51       listed in groups of four per cluster, and within the group they are given
52       as associated to the TXA, RXA, TXB, RXB units.
53
54   dma-names:
55     minItems: 16
56     items:
57       - const: tx0a
58       - const: rx0a
59       - const: tx0b
60       - const: rx0b
61       - const: tx1a
62       - const: rx1a
63       - const: tx1b
64       - const: rx1b
65       - const: tx2a
66       - const: rx2a
67       - const: tx2b
68       - const: rx2b
69       - const: tx3a
70       - const: rx3a
71       - const: tx3b
72       - const: rx3b
73       - const: tx4a
74       - const: rx4a
75       - const: tx4b
76       - const: rx4b
77       - const: tx5a
78       - const: rx5a
79       - const: tx5b
80       - const: rx5b
81     description: |
82       Names for the DMA channels: 'tx'/'rx', then cluster number, then 'a'/'b'
83       based on the associated SERDES unit.
84
85   clocks:
86     minItems: 4
87     maxItems: 6
88     description:
89       Clusters' input reference clock.
90
91   resets:
92     maxItems: 1
93
94   power-domains:
95     minItems: 5
96     maxItems: 7
97     description:
98       First a general power domain for register access, then the power
99       domains of individual clusters for their operation.
100
101   '#sound-dai-cells':
102     const: 1
103
104 required:
105   - compatible
106   - reg
107   - dmas
108   - dma-names
109   - clocks
110   - power-domains
111   - '#sound-dai-cells'
112
113 unevaluatedProperties: false
114
115 examples:
116   - |
117     mca: i2s@9b600000 {
118       compatible = "apple,t6000-mca", "apple,mca";
119       reg = <0x9b600000 0x10000>,
120             <0x9b200000 0x20000>;
121
122       clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
123       power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
124                       <&ps_mca2>, <&ps_mca3>;
125       dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
126              <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
127              <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
128              <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>;
129       dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
130                   "tx1a", "rx1a", "tx1b", "rx1b",
131                   "tx2a", "rx2a", "tx2b", "rx2b",
132                   "tx3a", "rx3a", "tx3b", "rx3b";
133
134       #sound-dai-cells = <1>;
135     };