xref: /freebsd/sys/contrib/device-tree/Bindings/sound/nvidia,tegra210-admaif.yaml (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Tegra210 ADMAIF Device Tree Bindings
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription: |
10c66ec88fSEmmanuel Vadot  ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
11c66ec88fSEmmanuel Vadot  that sends/receives data to/from AHUB must interface through an
12c66ec88fSEmmanuel Vadot  ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
13c66ec88fSEmmanuel Vadot  Tx channel and ADMA channel receiving data from AHUB pairs with
14c66ec88fSEmmanuel Vadot  ADMAIF Rx channel.
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotmaintainers:
17c66ec88fSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
18c66ec88fSEmmanuel Vadot  - Sameer Pujar <spujar@nvidia.com>
19c66ec88fSEmmanuel Vadot
20*5def4c47SEmmanuel VadotallOf:
21*5def4c47SEmmanuel Vadot  - $ref: audio-graph-port.yaml#
22*5def4c47SEmmanuel Vadot
23c66ec88fSEmmanuel Vadotproperties:
24c66ec88fSEmmanuel Vadot  $nodename:
25c66ec88fSEmmanuel Vadot    pattern: "^admaif@[0-9a-f]*$"
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  compatible:
28c66ec88fSEmmanuel Vadot    oneOf:
29c66ec88fSEmmanuel Vadot      - enum:
30c66ec88fSEmmanuel Vadot          - nvidia,tegra210-admaif
31c66ec88fSEmmanuel Vadot          - nvidia,tegra186-admaif
32c66ec88fSEmmanuel Vadot      - items:
33c66ec88fSEmmanuel Vadot          - const: nvidia,tegra194-admaif
34c66ec88fSEmmanuel Vadot          - const: nvidia,tegra186-admaif
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  reg:
37c66ec88fSEmmanuel Vadot    maxItems: 1
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  dmas: true
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  dma-names: true
42c66ec88fSEmmanuel Vadot
43*5def4c47SEmmanuel Vadot  ports:
44*5def4c47SEmmanuel Vadot    description: |
45*5def4c47SEmmanuel Vadot      Contains list of ACIF (Audio CIF) port nodes for ADMAIF channels.
46*5def4c47SEmmanuel Vadot      The number of port nodes depends on the number of ADMAIF channels
47*5def4c47SEmmanuel Vadot      that SoC may have. These are interfaced with respective ACIF ports
48*5def4c47SEmmanuel Vadot      in AHUB (Audio Hub). Each port is capable of data transfers in
49*5def4c47SEmmanuel Vadot      both directions.
50*5def4c47SEmmanuel Vadot
51c66ec88fSEmmanuel Vadotif:
52c66ec88fSEmmanuel Vadot  properties:
53c66ec88fSEmmanuel Vadot    compatible:
54c66ec88fSEmmanuel Vadot      contains:
55c66ec88fSEmmanuel Vadot        const: nvidia,tegra210-admaif
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadotthen:
58c66ec88fSEmmanuel Vadot  properties:
59c66ec88fSEmmanuel Vadot    dmas:
60c66ec88fSEmmanuel Vadot      description:
61c66ec88fSEmmanuel Vadot        DMA channel specifiers, equally divided for Tx and Rx.
62c66ec88fSEmmanuel Vadot      minItems: 1
63c66ec88fSEmmanuel Vadot      maxItems: 20
64c66ec88fSEmmanuel Vadot    dma-names:
65c66ec88fSEmmanuel Vadot      items:
66c66ec88fSEmmanuel Vadot        pattern: "^[rt]x(10|[1-9])$"
67c66ec88fSEmmanuel Vadot      description:
68c66ec88fSEmmanuel Vadot        Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
69c66ec88fSEmmanuel Vadot        Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
70c66ec88fSEmmanuel Vadot      minItems: 1
71c66ec88fSEmmanuel Vadot      maxItems: 20
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadotelse:
74c66ec88fSEmmanuel Vadot  properties:
75c66ec88fSEmmanuel Vadot    dmas:
76c66ec88fSEmmanuel Vadot      description:
77c66ec88fSEmmanuel Vadot        DMA channel specifiers, equally divided for Tx and Rx.
78c66ec88fSEmmanuel Vadot      minItems: 1
79c66ec88fSEmmanuel Vadot      maxItems: 40
80c66ec88fSEmmanuel Vadot    dma-names:
81c66ec88fSEmmanuel Vadot      items:
82c66ec88fSEmmanuel Vadot        pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
83c66ec88fSEmmanuel Vadot      description:
84c66ec88fSEmmanuel Vadot        Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
85c66ec88fSEmmanuel Vadot        Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
86c66ec88fSEmmanuel Vadot      minItems: 1
87c66ec88fSEmmanuel Vadot      maxItems: 40
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadotrequired:
90c66ec88fSEmmanuel Vadot  - compatible
91c66ec88fSEmmanuel Vadot  - reg
92c66ec88fSEmmanuel Vadot  - dmas
93c66ec88fSEmmanuel Vadot  - dma-names
94c66ec88fSEmmanuel Vadot
95*5def4c47SEmmanuel VadotunevaluatedProperties: false
966be33864SEmmanuel Vadot
97c66ec88fSEmmanuel Vadotexamples:
98c66ec88fSEmmanuel Vadot  - |
99c66ec88fSEmmanuel Vadot    admaif@702d0000 {
100c66ec88fSEmmanuel Vadot        compatible = "nvidia,tegra210-admaif";
101c66ec88fSEmmanuel Vadot        reg = <0x702d0000 0x800>;
102c66ec88fSEmmanuel Vadot        dmas = <&adma 1>,  <&adma 1>,
103c66ec88fSEmmanuel Vadot               <&adma 2>,  <&adma 2>,
104c66ec88fSEmmanuel Vadot               <&adma 3>,  <&adma 3>,
105c66ec88fSEmmanuel Vadot               <&adma 4>,  <&adma 4>,
106c66ec88fSEmmanuel Vadot               <&adma 5>,  <&adma 5>,
107c66ec88fSEmmanuel Vadot               <&adma 6>,  <&adma 6>,
108c66ec88fSEmmanuel Vadot               <&adma 7>,  <&adma 7>,
109c66ec88fSEmmanuel Vadot               <&adma 8>,  <&adma 8>,
110c66ec88fSEmmanuel Vadot               <&adma 9>,  <&adma 9>,
111c66ec88fSEmmanuel Vadot               <&adma 10>, <&adma 10>;
112c66ec88fSEmmanuel Vadot        dma-names = "rx1",  "tx1",
113c66ec88fSEmmanuel Vadot                    "rx2",  "tx2",
114c66ec88fSEmmanuel Vadot                    "rx3",  "tx3",
115c66ec88fSEmmanuel Vadot                    "rx4",  "tx4",
116c66ec88fSEmmanuel Vadot                    "rx5",  "tx5",
117c66ec88fSEmmanuel Vadot                    "rx6",  "tx6",
118c66ec88fSEmmanuel Vadot                    "rx7",  "tx7",
119c66ec88fSEmmanuel Vadot                    "rx8",  "tx8",
120c66ec88fSEmmanuel Vadot                    "rx9",  "tx9",
121c66ec88fSEmmanuel Vadot                    "rx10", "tx10";
122c66ec88fSEmmanuel Vadot    };
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel Vadot...
125