Add tegra264 audio device tree support

Merge series from "Sheetal ." <sheetal@nvidia.com>:

Add device tree support for tegra264 audio subsystem including:
- Binding update for
  - 64-channel ADMA controller
  - 32 RX/TX ADMAIF channels
  - tegra264-agic binding for arm,gic
- Add device tree nodes for
  - APE subsystem (ACONNECT, AGIC, ADMA, AHUB and children (ADMAIF, I2S,
    DMIC, DSPK, MVC, SFC, ASRC, AMX, ADX, OPE and Mixer) nodes
  - HDA controller
  - sound

Note:
 The change is dependent on https://patchwork.ozlabs.org/project/linux-tegra/patch/20250818135241.3407180-1-thierry.reding@gmail.com/

...
Changes in V2:
 - Update the allOf condition in Patch 2/4.

sheetal (4):
  dt-bindings: dma: Update ADMA bindings for tegra264
  dt-bindings: sound: Update ADMAIF bindings for tegra264
  dt-bindings: interrupt-controller: arm,gic: Add tegra264-agic
  arm64: tegra: Add tegra264 audio support

 .../bindings/dma/nvidia,tegra210-adma.yaml    |   15 +-
 .../interrupt-controller/arm,gic.yaml         |    1 +
 .../sound/nvidia,tegra210-admaif.yaml         |  106 +-
 .../arm64/boot/dts/nvidia/tegra264-p3971.dtsi |  106 +
 arch/arm64/boot/dts/nvidia/tegra264.dtsi      | 3190 +++++++++++++++++
 5 files changed, 3377 insertions(+), 41 deletions(-)

--
2.34.1
This commit is contained in:
Mark Brown 2025-10-15 16:22:48 +01:00
commit c1afb03500
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -67,46 +67,72 @@ properties:
$ref: audio-graph-port.yaml#
unevaluatedProperties: false
if:
properties:
compatible:
contains:
const: nvidia,tegra210-admaif
allOf:
- if:
properties:
compatible:
contains:
const: nvidia,tegra210-admaif
then:
properties:
dmas:
description:
DMA channel specifiers, equally divided for Tx and Rx.
minItems: 1
maxItems: 20
dma-names:
items:
pattern: "^[rt]x(10|[1-9])$"
description:
Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
minItems: 1
maxItems: 20
interconnects: false
interconnect-names: false
iommus: false
then:
properties:
dmas:
description:
DMA channel specifiers, equally divided for Tx and Rx.
minItems: 1
maxItems: 20
dma-names:
items:
pattern: "^[rt]x(10|[1-9])$"
description:
Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
minItems: 1
maxItems: 20
interconnects: false
interconnect-names: false
iommus: false
- if:
properties:
compatible:
contains:
const: nvidia,tegra186-admaif
then:
properties:
dmas:
description:
DMA channel specifiers, equally divided for Tx and Rx.
minItems: 1
maxItems: 40
dma-names:
items:
pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
description:
Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
minItems: 1
maxItems: 40
else:
properties:
dmas:
description:
DMA channel specifiers, equally divided for Tx and Rx.
minItems: 1
maxItems: 40
dma-names:
items:
pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
description:
Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
minItems: 1
maxItems: 40
- if:
properties:
compatible:
contains:
const: nvidia,tegra264-admaif
then:
properties:
dmas:
description:
DMA channel specifiers, equally divided for Tx and Rx.
minItems: 1
maxItems: 64
dma-names:
items:
pattern: "^[rt]x(3[0-2]|[1-2][0-9]|[1-9])$"
description:
Should be "rx1", "rx2" ... "rx32" for DMA Rx channel
Should be "tx1", "tx2" ... "tx32" for DMA Tx channel
minItems: 1
maxItems: 64
required:
- compatible