blob: 5c6ec08c7d247c88f0fcceb352a545f6a95f89fc [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Apple MCA I2S transceiver
8
9description: |
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
14maintainers:
15 - Martin PoviĊĦer <povik+lin@cutebit.org>
16
17allOf:
18 - $ref: dai-common.yaml#
19
20properties:
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
104required:
105 - compatible
106 - reg
107 - dmas
108 - dma-names
109 - clocks
110 - power-domains
111 - '#sound-dai-cells'
112
113unevaluatedProperties: false
114
115examples:
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 };