136 lines
3.2 KiB
YAML
136 lines
3.2 KiB
YAML
|
# 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>;
|
||
|
};
|