GNU Linux-libre 6.1.90-gnu
[releases.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 properties:
18   compatible:
19     items:
20       - enum:
21           - apple,t6000-mca
22           - apple,t8103-mca
23       - const: apple,mca
24
25   reg:
26     items:
27       - description: Register region of the MCA clusters proper
28       - description: Register region of the DMA glue and its FIFOs
29
30   interrupts:
31     minItems: 4
32     maxItems: 6
33     description:
34       One interrupt per each cluster
35
36   '#address-cells':
37     const: 1
38
39   '#size-cells':
40     const: 0
41
42   dmas:
43     minItems: 16
44     maxItems: 24
45     description:
46       DMA channels corresponding to the SERDES units in the peripheral. They are
47       listed in groups of four per cluster, and within the group they are given
48       as associated to the TXA, RXA, TXB, RXB units.
49
50   dma-names:
51     minItems: 16
52     items:
53       - const: tx0a
54       - const: rx0a
55       - const: tx0b
56       - const: rx0b
57       - const: tx1a
58       - const: rx1a
59       - const: tx1b
60       - const: rx1b
61       - const: tx2a
62       - const: rx2a
63       - const: tx2b
64       - const: rx2b
65       - const: tx3a
66       - const: rx3a
67       - const: tx3b
68       - const: rx3b
69       - const: tx4a
70       - const: rx4a
71       - const: tx4b
72       - const: rx4b
73       - const: tx5a
74       - const: rx5a
75       - const: tx5b
76       - const: rx5b
77     description: |
78       Names for the DMA channels: 'tx'/'rx', then cluster number, then 'a'/'b'
79       based on the associated SERDES unit.
80
81   clocks:
82     minItems: 4
83     maxItems: 6
84     description:
85       Clusters' input reference clock.
86
87   resets:
88     maxItems: 1
89
90   power-domains:
91     minItems: 5
92     maxItems: 7
93     description:
94       First a general power domain for register access, then the power
95       domains of individual clusters for their operation.
96
97   '#sound-dai-cells':
98     const: 1
99
100 required:
101   - compatible
102   - reg
103   - dmas
104   - dma-names
105   - clocks
106   - power-domains
107   - '#sound-dai-cells'
108
109 additionalProperties: false
110
111 examples:
112   - |
113     mca: i2s@9b600000 {
114       compatible = "apple,t6000-mca", "apple,mca";
115       reg = <0x9b600000 0x10000>,
116             <0x9b200000 0x20000>;
117
118       clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
119       power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
120                       <&ps_mca2>, <&ps_mca3>;
121       dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
122              <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
123              <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
124              <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>;
125       dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
126                   "tx1a", "rx1a", "tx1b", "rx1b",
127                   "tx2a", "rx2a", "tx2b", "rx2b",
128                   "tx3a", "rx3a", "tx3b", "rx3b";
129
130       #sound-dai-cells = <1>;
131     };