xref: /freebsd/sys/contrib/device-tree/Bindings/sound/apple,mca.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27ef62cebSEmmanuel Vadot%YAML 1.2
37ef62cebSEmmanuel Vadot---
47ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/apple,mca.yaml#
57ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
67ef62cebSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Apple MCA I2S transceiver
87ef62cebSEmmanuel Vadot
97ef62cebSEmmanuel Vadotdescription: |
107ef62cebSEmmanuel Vadot  MCA is an I2S transceiver peripheral found on M1 and other Apple chips. It is
117ef62cebSEmmanuel Vadot  composed of a number of identical clusters which can operate independently
127ef62cebSEmmanuel Vadot  or in an interlinked fashion. Up to 6 clusters have been seen on an MCA.
137ef62cebSEmmanuel Vadot
147ef62cebSEmmanuel Vadotmaintainers:
157ef62cebSEmmanuel Vadot  - Martin Povišer <povik+lin@cutebit.org>
167ef62cebSEmmanuel Vadot
178bab661aSEmmanuel VadotallOf:
188bab661aSEmmanuel Vadot  - $ref: dai-common.yaml#
198bab661aSEmmanuel Vadot
207ef62cebSEmmanuel Vadotproperties:
217ef62cebSEmmanuel Vadot  compatible:
227ef62cebSEmmanuel Vadot    items:
237ef62cebSEmmanuel Vadot      - enum:
247ef62cebSEmmanuel Vadot          - apple,t6000-mca
257ef62cebSEmmanuel Vadot          - apple,t8103-mca
26*cb7aa33aSEmmanuel Vadot          - apple,t8112-mca
277ef62cebSEmmanuel Vadot      - const: apple,mca
287ef62cebSEmmanuel Vadot
297ef62cebSEmmanuel Vadot  reg:
307ef62cebSEmmanuel Vadot    items:
317ef62cebSEmmanuel Vadot      - description: Register region of the MCA clusters proper
327ef62cebSEmmanuel Vadot      - description: Register region of the DMA glue and its FIFOs
337ef62cebSEmmanuel Vadot
347ef62cebSEmmanuel Vadot  interrupts:
357ef62cebSEmmanuel Vadot    minItems: 4
367ef62cebSEmmanuel Vadot    maxItems: 6
377ef62cebSEmmanuel Vadot    description:
387ef62cebSEmmanuel Vadot      One interrupt per each cluster
397ef62cebSEmmanuel Vadot
407ef62cebSEmmanuel Vadot  '#address-cells':
417ef62cebSEmmanuel Vadot    const: 1
427ef62cebSEmmanuel Vadot
437ef62cebSEmmanuel Vadot  '#size-cells':
447ef62cebSEmmanuel Vadot    const: 0
457ef62cebSEmmanuel Vadot
467ef62cebSEmmanuel Vadot  dmas:
477ef62cebSEmmanuel Vadot    minItems: 16
487ef62cebSEmmanuel Vadot    maxItems: 24
497ef62cebSEmmanuel Vadot    description:
507ef62cebSEmmanuel Vadot      DMA channels corresponding to the SERDES units in the peripheral. They are
517ef62cebSEmmanuel Vadot      listed in groups of four per cluster, and within the group they are given
527ef62cebSEmmanuel Vadot      as associated to the TXA, RXA, TXB, RXB units.
537ef62cebSEmmanuel Vadot
547ef62cebSEmmanuel Vadot  dma-names:
557ef62cebSEmmanuel Vadot    minItems: 16
567ef62cebSEmmanuel Vadot    items:
577ef62cebSEmmanuel Vadot      - const: tx0a
587ef62cebSEmmanuel Vadot      - const: rx0a
597ef62cebSEmmanuel Vadot      - const: tx0b
607ef62cebSEmmanuel Vadot      - const: rx0b
617ef62cebSEmmanuel Vadot      - const: tx1a
627ef62cebSEmmanuel Vadot      - const: rx1a
637ef62cebSEmmanuel Vadot      - const: tx1b
647ef62cebSEmmanuel Vadot      - const: rx1b
657ef62cebSEmmanuel Vadot      - const: tx2a
667ef62cebSEmmanuel Vadot      - const: rx2a
677ef62cebSEmmanuel Vadot      - const: tx2b
687ef62cebSEmmanuel Vadot      - const: rx2b
697ef62cebSEmmanuel Vadot      - const: tx3a
707ef62cebSEmmanuel Vadot      - const: rx3a
717ef62cebSEmmanuel Vadot      - const: tx3b
727ef62cebSEmmanuel Vadot      - const: rx3b
737ef62cebSEmmanuel Vadot      - const: tx4a
747ef62cebSEmmanuel Vadot      - const: rx4a
757ef62cebSEmmanuel Vadot      - const: tx4b
767ef62cebSEmmanuel Vadot      - const: rx4b
777ef62cebSEmmanuel Vadot      - const: tx5a
787ef62cebSEmmanuel Vadot      - const: rx5a
797ef62cebSEmmanuel Vadot      - const: tx5b
807ef62cebSEmmanuel Vadot      - const: rx5b
817ef62cebSEmmanuel Vadot    description: |
827ef62cebSEmmanuel Vadot      Names for the DMA channels: 'tx'/'rx', then cluster number, then 'a'/'b'
837ef62cebSEmmanuel Vadot      based on the associated SERDES unit.
847ef62cebSEmmanuel Vadot
857ef62cebSEmmanuel Vadot  clocks:
867ef62cebSEmmanuel Vadot    minItems: 4
877ef62cebSEmmanuel Vadot    maxItems: 6
887ef62cebSEmmanuel Vadot    description:
897ef62cebSEmmanuel Vadot      Clusters' input reference clock.
907ef62cebSEmmanuel Vadot
917ef62cebSEmmanuel Vadot  resets:
927ef62cebSEmmanuel Vadot    maxItems: 1
937ef62cebSEmmanuel Vadot
947ef62cebSEmmanuel Vadot  power-domains:
957ef62cebSEmmanuel Vadot    minItems: 5
967ef62cebSEmmanuel Vadot    maxItems: 7
977ef62cebSEmmanuel Vadot    description:
987ef62cebSEmmanuel Vadot      First a general power domain for register access, then the power
997ef62cebSEmmanuel Vadot      domains of individual clusters for their operation.
1007ef62cebSEmmanuel Vadot
1017ef62cebSEmmanuel Vadot  '#sound-dai-cells':
1027ef62cebSEmmanuel Vadot    const: 1
1037ef62cebSEmmanuel Vadot
1047ef62cebSEmmanuel Vadotrequired:
1057ef62cebSEmmanuel Vadot  - compatible
1067ef62cebSEmmanuel Vadot  - reg
1077ef62cebSEmmanuel Vadot  - dmas
1087ef62cebSEmmanuel Vadot  - dma-names
1097ef62cebSEmmanuel Vadot  - clocks
1107ef62cebSEmmanuel Vadot  - power-domains
1117ef62cebSEmmanuel Vadot  - '#sound-dai-cells'
1127ef62cebSEmmanuel Vadot
1138bab661aSEmmanuel VadotunevaluatedProperties: false
1147ef62cebSEmmanuel Vadot
1157ef62cebSEmmanuel Vadotexamples:
1167ef62cebSEmmanuel Vadot  - |
1177ef62cebSEmmanuel Vadot    mca: i2s@9b600000 {
1187ef62cebSEmmanuel Vadot      compatible = "apple,t6000-mca", "apple,mca";
1197ef62cebSEmmanuel Vadot      reg = <0x9b600000 0x10000>,
1207ef62cebSEmmanuel Vadot            <0x9b200000 0x20000>;
1217ef62cebSEmmanuel Vadot
1227ef62cebSEmmanuel Vadot      clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
1237ef62cebSEmmanuel Vadot      power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
1247ef62cebSEmmanuel Vadot                      <&ps_mca2>, <&ps_mca3>;
1257ef62cebSEmmanuel Vadot      dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
1267ef62cebSEmmanuel Vadot             <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
1277ef62cebSEmmanuel Vadot             <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
1287ef62cebSEmmanuel Vadot             <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>;
1297ef62cebSEmmanuel Vadot      dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
1307ef62cebSEmmanuel Vadot                  "tx1a", "rx1a", "tx1b", "rx1b",
1317ef62cebSEmmanuel Vadot                  "tx2a", "rx2a", "tx2b", "rx2b",
1327ef62cebSEmmanuel Vadot                  "tx3a", "rx3a", "tx3b", "rx3b";
1337ef62cebSEmmanuel Vadot
1347ef62cebSEmmanuel Vadot      #sound-dai-cells = <1>;
1357ef62cebSEmmanuel Vadot    };
136