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