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