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 20allOf: 21 - $ref: audio-graph-port.yaml# 22 23properties: 24 $nodename: 25 pattern: "^ahub@[0-9a-f]*$" 26 27 compatible: 28 oneOf: 29 - enum: 30 - nvidia,tegra210-ahub 31 - nvidia,tegra186-ahub 32 - items: 33 - const: nvidia,tegra194-ahub 34 - const: nvidia,tegra186-ahub 35 36 reg: 37 maxItems: 1 38 39 clocks: 40 maxItems: 1 41 42 clock-names: 43 const: ahub 44 45 assigned-clocks: 46 maxItems: 1 47 48 assigned-clock-parents: 49 maxItems: 1 50 51 assigned-clock-rates: 52 maxItems: 1 53 54 "#address-cells": 55 const: 1 56 57 "#size-cells": 58 const: 1 59 60 ranges: true 61 62 ports: 63 description: | 64 Contains list of ACIF (Audio CIF) port nodes for AHUB (Audio Hub). 65 These are connected to ACIF interfaces of AHUB clients. Thus the 66 number of port nodes depend on the number of clients that AHUB may 67 have depending on the SoC revision. 68 69required: 70 - compatible 71 - reg 72 - clocks 73 - clock-names 74 - assigned-clocks 75 - assigned-clock-parents 76 - "#address-cells" 77 - "#size-cells" 78 - ranges 79 80unevaluatedProperties: false 81 82examples: 83 - | 84 #include<dt-bindings/clock/tegra210-car.h> 85 86 ahub@702d0800 { 87 compatible = "nvidia,tegra210-ahub"; 88 reg = <0x702d0800 0x800>; 89 clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 90 clock-names = "ahub"; 91 assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 92 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 93 #address-cells = <1>; 94 #size-cells = <1>; 95 ranges = <0x702d0000 0x702d0000 0x0000e400>; 96 97 // All AHUB child nodes below 98 admaif@702d0000 { 99 compatible = "nvidia,tegra210-admaif"; 100 reg = <0x702d0000 0x800>; 101 dmas = <&adma 1>, <&adma 1>, 102 <&adma 2>, <&adma 2>, 103 <&adma 3>, <&adma 3>, 104 <&adma 4>, <&adma 4>, 105 <&adma 5>, <&adma 5>, 106 <&adma 6>, <&adma 6>, 107 <&adma 7>, <&adma 7>, 108 <&adma 8>, <&adma 8>, 109 <&adma 9>, <&adma 9>, 110 <&adma 10>, <&adma 10>; 111 dma-names = "rx1", "tx1", 112 "rx2", "tx2", 113 "rx3", "tx3", 114 "rx4", "tx4", 115 "rx5", "tx5", 116 "rx6", "tx6", 117 "rx7", "tx7", 118 "rx8", "tx8", 119 "rx9", "tx9", 120 "rx10", "tx10"; 121 }; 122 123 i2s@702d1000 { 124 compatible = "nvidia,tegra210-i2s"; 125 reg = <0x702d1000 0x100>; 126 clocks = <&tegra_car TEGRA210_CLK_I2S0>; 127 clock-names = "i2s"; 128 assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>; 129 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 130 assigned-clock-rates = <1536000>; 131 sound-name-prefix = "I2S1"; 132 }; 133 134 dmic@702d4000 { 135 compatible = "nvidia,tegra210-dmic"; 136 reg = <0x702d4000 0x100>; 137 clocks = <&tegra_car TEGRA210_CLK_DMIC1>; 138 clock-names = "dmic"; 139 assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>; 140 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 141 assigned-clock-rates = <3072000>; 142 sound-name-prefix = "DMIC1"; 143 }; 144 145 // More child nodes to follow 146 }; 147 148... 149