9e0f86fdcd
Add device tree binding properties of generic graph to ASoC component devices. This allows to define audio ports out of these components or DAIs and audio graph based sound card can be realised with this. Signed-off-by: Sameer Pujar <spujar@nvidia.com> Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/r/1611048496-24650-2-git-send-email-spujar@nvidia.com Signed-off-by: Mark Brown <broonie@kernel.org>
125 lines
3.1 KiB
YAML
125 lines
3.1 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Tegra210 ADMAIF Device Tree Bindings
|
|
|
|
description: |
|
|
ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
|
|
that sends/receives data to/from AHUB must interface through an
|
|
ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
|
|
Tx channel and ADMA channel receiving data from AHUB pairs with
|
|
ADMAIF Rx channel.
|
|
|
|
maintainers:
|
|
- Jon Hunter <jonathanh@nvidia.com>
|
|
- Sameer Pujar <spujar@nvidia.com>
|
|
|
|
allOf:
|
|
- $ref: audio-graph-port.yaml#
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: "^admaif@[0-9a-f]*$"
|
|
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- nvidia,tegra210-admaif
|
|
- nvidia,tegra186-admaif
|
|
- items:
|
|
- const: nvidia,tegra194-admaif
|
|
- const: nvidia,tegra186-admaif
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
dmas: true
|
|
|
|
dma-names: true
|
|
|
|
ports:
|
|
description: |
|
|
Contains list of ACIF (Audio CIF) port nodes for ADMAIF channels.
|
|
The number of port nodes depends on the number of ADMAIF channels
|
|
that SoC may have. These are interfaced with respective ACIF ports
|
|
in AHUB (Audio Hub). Each port is capable of data transfers in
|
|
both directions.
|
|
|
|
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
|
|
|
|
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
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- dmas
|
|
- dma-names
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
admaif@702d0000 {
|
|
compatible = "nvidia,tegra210-admaif";
|
|
reg = <0x702d0000 0x800>;
|
|
dmas = <&adma 1>, <&adma 1>,
|
|
<&adma 2>, <&adma 2>,
|
|
<&adma 3>, <&adma 3>,
|
|
<&adma 4>, <&adma 4>,
|
|
<&adma 5>, <&adma 5>,
|
|
<&adma 6>, <&adma 6>,
|
|
<&adma 7>, <&adma 7>,
|
|
<&adma 8>, <&adma 8>,
|
|
<&adma 9>, <&adma 9>,
|
|
<&adma 10>, <&adma 10>;
|
|
dma-names = "rx1", "tx1",
|
|
"rx2", "tx2",
|
|
"rx3", "tx3",
|
|
"rx4", "tx4",
|
|
"rx5", "tx5",
|
|
"rx6", "tx6",
|
|
"rx7", "tx7",
|
|
"rx8", "tx8",
|
|
"rx9", "tx9",
|
|
"rx10", "tx10";
|
|
};
|
|
|
|
...
|