1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/nvidia,tegra210-ahub.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Tegra210 AHUB Device Tree Bindings 8 9description: | 10 The Audio Hub (AHUB) comprises a collection of hardware accelerators 11 for audio pre-processing, post-processing and a programmable full 12 crossbar for routing audio data across these accelerators. It has 13 external interfaces such as I2S, DMIC, DSPK. It interfaces with ADMA 14 engine through ADMAIF. 15 16maintainers: 17 - Jon Hunter <jonathanh@nvidia.com> 18 - Sameer Pujar <spujar@nvidia.com> 19 20properties: 21 $nodename: 22 pattern: "^ahub@[0-9a-f]*$" 23 24 compatible: 25 oneOf: 26 - enum: 27 - nvidia,tegra210-ahub 28 - nvidia,tegra186-ahub 29 - nvidia,tegra234-ahub 30 - items: 31 - const: nvidia,tegra194-ahub 32 - const: nvidia,tegra186-ahub 33 34 reg: 35 maxItems: 1 36 37 clocks: 38 maxItems: 1 39 40 clock-names: 41 const: ahub 42 43 assigned-clocks: 44 maxItems: 1 45 46 assigned-clock-parents: 47 maxItems: 1 48 49 assigned-clock-rates: 50 maxItems: 1 51 52 "#address-cells": 53 const: 1 54 55 "#size-cells": 56 const: 1 57 58 ranges: true 59 60 ports: 61 $ref: /schemas/graph.yaml#/properties/ports 62 description: | 63 Contains list of ACIF (Audio CIF) port nodes for AHUB (Audio Hub). 64 These are connected to ACIF interfaces of AHUB clients. Thus the 65 number of port nodes depend on the number of clients that AHUB may 66 have depending on the SoC revision. 67 68 patternProperties: 69 '^port@[0-9]': 70 $ref: audio-graph-port.yaml# 71 unevaluatedProperties: false 72 73patternProperties: 74 '^i2s@[0-9a-f]+$': 75 type: object 76 77 '^dmic@[0-9a-f]+$': 78 type: object 79 $ref: nvidia,tegra210-dmic.yaml# 80 81 '^admaif@[0-9a-f]+$': 82 type: object 83 $ref: nvidia,tegra210-admaif.yaml# 84 85 '^dspk@[0-9a-f]+$': 86 type: object 87 $ref: nvidia,tegra186-dspk.yaml# 88 89 '^mvc@[0-9a-f]+$': 90 type: object 91 $ref: nvidia,tegra210-mvc.yaml# 92 93 '^sfc@[0-9a-f]+$': 94 type: object 95 $ref: nvidia,tegra210-sfc.yaml# 96 97 '^amx@[0-9a-f]+$': 98 type: object 99 $ref: nvidia,tegra210-amx.yaml# 100 101 '^adx@[0-9a-f]+$': 102 type: object 103 $ref: nvidia,tegra210-adx.yaml# 104 105 '^amixer@[0-9a-f]+$': 106 type: object 107 $ref: nvidia,tegra210-mixer.yaml# 108 109required: 110 - compatible 111 - reg 112 - clocks 113 - clock-names 114 - assigned-clocks 115 - assigned-clock-parents 116 - "#address-cells" 117 - "#size-cells" 118 - ranges 119 120additionalProperties: false 121 122examples: 123 - | 124 #include<dt-bindings/clock/tegra210-car.h> 125 126 ahub@702d0800 { 127 compatible = "nvidia,tegra210-ahub"; 128 reg = <0x702d0800 0x800>; 129 clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 130 clock-names = "ahub"; 131 assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 132 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 133 #address-cells = <1>; 134 #size-cells = <1>; 135 ranges = <0x702d0000 0x702d0000 0x0000e400>; 136 137 // All AHUB child nodes below 138 admaif@702d0000 { 139 compatible = "nvidia,tegra210-admaif"; 140 reg = <0x702d0000 0x800>; 141 dmas = <&adma 1>, <&adma 1>, 142 <&adma 2>, <&adma 2>, 143 <&adma 3>, <&adma 3>, 144 <&adma 4>, <&adma 4>, 145 <&adma 5>, <&adma 5>, 146 <&adma 6>, <&adma 6>, 147 <&adma 7>, <&adma 7>, 148 <&adma 8>, <&adma 8>, 149 <&adma 9>, <&adma 9>, 150 <&adma 10>, <&adma 10>; 151 dma-names = "rx1", "tx1", 152 "rx2", "tx2", 153 "rx3", "tx3", 154 "rx4", "tx4", 155 "rx5", "tx5", 156 "rx6", "tx6", 157 "rx7", "tx7", 158 "rx8", "tx8", 159 "rx9", "tx9", 160 "rx10", "tx10"; 161 }; 162 163 i2s@702d1000 { 164 compatible = "nvidia,tegra210-i2s"; 165 reg = <0x702d1000 0x100>; 166 clocks = <&tegra_car TEGRA210_CLK_I2S0>; 167 clock-names = "i2s"; 168 assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>; 169 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 170 assigned-clock-rates = <1536000>; 171 sound-name-prefix = "I2S1"; 172 }; 173 174 dmic@702d4000 { 175 compatible = "nvidia,tegra210-dmic"; 176 reg = <0x702d4000 0x100>; 177 clocks = <&tegra_car TEGRA210_CLK_DMIC1>; 178 clock-names = "dmic"; 179 assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>; 180 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 181 assigned-clock-rates = <3072000>; 182 sound-name-prefix = "DMIC1"; 183 }; 184 185 // More child nodes to follow 186 }; 187 188... 189