| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | 
 | %YAML 1.2 | 
 | --- | 
 | $id: http://devicetree.org/schemas/sound/apple,mca.yaml# | 
 | $schema: http://devicetree.org/meta-schemas/core.yaml# | 
 |  | 
 | title: Apple MCA I2S transceiver | 
 |  | 
 | description: | | 
 |   MCA is an I2S transceiver peripheral found on M1 and other Apple chips. It is | 
 |   composed of a number of identical clusters which can operate independently | 
 |   or in an interlinked fashion. Up to 6 clusters have been seen on an MCA. | 
 |  | 
 | maintainers: | 
 |   - Martin PoviĊĦer <povik+lin@cutebit.org> | 
 |  | 
 | allOf: | 
 |   - $ref: dai-common.yaml# | 
 |  | 
 | properties: | 
 |   compatible: | 
 |     items: | 
 |       - enum: | 
 |           - apple,t6000-mca | 
 |           - apple,t8103-mca | 
 |       - const: apple,mca | 
 |  | 
 |   reg: | 
 |     items: | 
 |       - description: Register region of the MCA clusters proper | 
 |       - description: Register region of the DMA glue and its FIFOs | 
 |  | 
 |   interrupts: | 
 |     minItems: 4 | 
 |     maxItems: 6 | 
 |     description: | 
 |       One interrupt per each cluster | 
 |  | 
 |   '#address-cells': | 
 |     const: 1 | 
 |  | 
 |   '#size-cells': | 
 |     const: 0 | 
 |  | 
 |   dmas: | 
 |     minItems: 16 | 
 |     maxItems: 24 | 
 |     description: | 
 |       DMA channels corresponding to the SERDES units in the peripheral. They are | 
 |       listed in groups of four per cluster, and within the group they are given | 
 |       as associated to the TXA, RXA, TXB, RXB units. | 
 |  | 
 |   dma-names: | 
 |     minItems: 16 | 
 |     items: | 
 |       - const: tx0a | 
 |       - const: rx0a | 
 |       - const: tx0b | 
 |       - const: rx0b | 
 |       - const: tx1a | 
 |       - const: rx1a | 
 |       - const: tx1b | 
 |       - const: rx1b | 
 |       - const: tx2a | 
 |       - const: rx2a | 
 |       - const: tx2b | 
 |       - const: rx2b | 
 |       - const: tx3a | 
 |       - const: rx3a | 
 |       - const: tx3b | 
 |       - const: rx3b | 
 |       - const: tx4a | 
 |       - const: rx4a | 
 |       - const: tx4b | 
 |       - const: rx4b | 
 |       - const: tx5a | 
 |       - const: rx5a | 
 |       - const: tx5b | 
 |       - const: rx5b | 
 |     description: | | 
 |       Names for the DMA channels: 'tx'/'rx', then cluster number, then 'a'/'b' | 
 |       based on the associated SERDES unit. | 
 |  | 
 |   clocks: | 
 |     minItems: 4 | 
 |     maxItems: 6 | 
 |     description: | 
 |       Clusters' input reference clock. | 
 |  | 
 |   resets: | 
 |     maxItems: 1 | 
 |  | 
 |   power-domains: | 
 |     minItems: 5 | 
 |     maxItems: 7 | 
 |     description: | 
 |       First a general power domain for register access, then the power | 
 |       domains of individual clusters for their operation. | 
 |  | 
 |   '#sound-dai-cells': | 
 |     const: 1 | 
 |  | 
 | required: | 
 |   - compatible | 
 |   - reg | 
 |   - dmas | 
 |   - dma-names | 
 |   - clocks | 
 |   - power-domains | 
 |   - '#sound-dai-cells' | 
 |  | 
 | unevaluatedProperties: false | 
 |  | 
 | examples: | 
 |   - | | 
 |     mca: i2s@9b600000 { | 
 |       compatible = "apple,t6000-mca", "apple,mca"; | 
 |       reg = <0x9b600000 0x10000>, | 
 |             <0x9b200000 0x20000>; | 
 |  | 
 |       clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>; | 
 |       power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>, | 
 |                       <&ps_mca2>, <&ps_mca3>; | 
 |       dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>, | 
 |              <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>, | 
 |              <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>, | 
 |              <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>; | 
 |       dma-names = "tx0a", "rx0a", "tx0b", "rx0b", | 
 |                   "tx1a", "rx1a", "tx1b", "rx1b", | 
 |                   "tx2a", "rx2a", "tx2b", "rx2b", | 
 |                   "tx3a", "rx3a", "tx3b", "rx3b"; | 
 |  | 
 |       #sound-dai-cells = <1>; | 
 |     }; |