| # 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 |
| - apple,t8112-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>; |
| }; |