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 - items: 30 - const: nvidia,tegra194-ahub 31 - const: nvidia,tegra186-ahub 32 33 reg: 34 maxItems: 1 35 36 clocks: 37 maxItems: 1 38 39 clock-names: 40 const: ahub 41 42 assigned-clocks: 43 maxItems: 1 44 45 assigned-clock-parents: 46 maxItems: 1 47 48 assigned-clock-rates: 49 maxItems: 1 50 51 "#address-cells": 52 const: 1 53 54 "#size-cells": 55 const: 1 56 57 ranges: true 58 59required: 60 - compatible 61 - reg 62 - clocks 63 - clock-names 64 - assigned-clocks 65 - assigned-clock-parents 66 - "#address-cells" 67 - "#size-cells" 68 - ranges 69 70examples: 71 - | 72 #include<dt-bindings/clock/tegra210-car.h> 73 74 ahub@702d0800 { 75 compatible = "nvidia,tegra210-ahub"; 76 reg = <0x702d0800 0x800>; 77 clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 78 clock-names = "ahub"; 79 assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 80 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 81 #address-cells = <1>; 82 #size-cells = <1>; 83 ranges = <0x702d0000 0x702d0000 0x0000e400>; 84 85 // All AHUB child nodes below 86 admaif@702d0000 { 87 compatible = "nvidia,tegra210-admaif"; 88 reg = <0x702d0000 0x800>; 89 dmas = <&adma 1>, <&adma 1>, 90 <&adma 2>, <&adma 2>, 91 <&adma 3>, <&adma 3>, 92 <&adma 4>, <&adma 4>, 93 <&adma 5>, <&adma 5>, 94 <&adma 6>, <&adma 6>, 95 <&adma 7>, <&adma 7>, 96 <&adma 8>, <&adma 8>, 97 <&adma 9>, <&adma 9>, 98 <&adma 10>, <&adma 10>; 99 dma-names = "rx1", "tx1", 100 "rx2", "tx2", 101 "rx3", "tx3", 102 "rx4", "tx4", 103 "rx5", "tx5", 104 "rx6", "tx6", 105 "rx7", "tx7", 106 "rx8", "tx8", 107 "rx9", "tx9", 108 "rx10", "tx10"; 109 }; 110 111 i2s@702d1000 { 112 compatible = "nvidia,tegra210-i2s"; 113 reg = <0x702d1000 0x100>; 114 clocks = <&tegra_car TEGRA210_CLK_I2S0>; 115 clock-names = "i2s"; 116 assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>; 117 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 118 assigned-clock-rates = <1536000>; 119 sound-name-prefix = "I2S1"; 120 }; 121 122 dmic@702d4000 { 123 compatible = "nvidia,tegra210-dmic"; 124 reg = <0x702d4000 0x100>; 125 clocks = <&tegra_car TEGRA210_CLK_DMIC1>; 126 clock-names = "dmic"; 127 assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>; 128 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 129 assigned-clock-rates = <3072000>; 130 sound-name-prefix = "DMIC1"; 131 }; 132 133 // More child nodes to follow 134 }; 135 136... 137