1a9f22c03SSameer Pujar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2a9f22c03SSameer Pujar%YAML 1.2 3a9f22c03SSameer Pujar--- 4a9f22c03SSameer Pujar$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-graph-card.yaml# 5a9f22c03SSameer Pujar$schema: http://devicetree.org/meta-schemas/core.yaml# 6a9f22c03SSameer Pujar 7a9f22c03SSameer Pujartitle: Audio Graph based Tegra sound card driver 8a9f22c03SSameer Pujar 9a9f22c03SSameer Pujardescription: | 10a9f22c03SSameer Pujar This is based on generic audio graph card driver along with additional 11a9f22c03SSameer Pujar customizations for Tegra platforms. It uses the same bindings with 12a9f22c03SSameer Pujar additional standard clock DT bindings required for Tegra. 13a9f22c03SSameer Pujar 14a9f22c03SSameer Pujarmaintainers: 15a9f22c03SSameer Pujar - Jon Hunter <jonathanh@nvidia.com> 16a9f22c03SSameer Pujar - Sameer Pujar <spujar@nvidia.com> 17a9f22c03SSameer Pujar 18a9f22c03SSameer PujarallOf: 19a9f22c03SSameer Pujar - $ref: audio-graph.yaml# 20a9f22c03SSameer Pujar 21a9f22c03SSameer Pujarproperties: 22a9f22c03SSameer Pujar compatible: 23a9f22c03SSameer Pujar enum: 24a9f22c03SSameer Pujar - nvidia,tegra210-audio-graph-card 25a9f22c03SSameer Pujar - nvidia,tegra186-audio-graph-card 26a9f22c03SSameer Pujar 27a9f22c03SSameer Pujar clocks: 28a9f22c03SSameer Pujar minItems: 2 29a9f22c03SSameer Pujar 30a9f22c03SSameer Pujar clock-names: 31a9f22c03SSameer Pujar items: 32a9f22c03SSameer Pujar - const: pll_a 33a9f22c03SSameer Pujar - const: plla_out0 34a9f22c03SSameer Pujar 35a9f22c03SSameer Pujar assigned-clocks: 36a9f22c03SSameer Pujar minItems: 1 37a9f22c03SSameer Pujar maxItems: 3 38a9f22c03SSameer Pujar 39a9f22c03SSameer Pujar assigned-clock-parents: 40a9f22c03SSameer Pujar minItems: 1 41a9f22c03SSameer Pujar maxItems: 3 42a9f22c03SSameer Pujar 43a9f22c03SSameer Pujar assigned-clock-rates: 44a9f22c03SSameer Pujar minItems: 1 45a9f22c03SSameer Pujar maxItems: 3 46a9f22c03SSameer Pujar 47*5f9155a7SThierry Reding interconnects: 48*5f9155a7SThierry Reding items: 49*5f9155a7SThierry Reding - description: APE read memory client 50*5f9155a7SThierry Reding - description: APE write memory client 51*5f9155a7SThierry Reding 52*5f9155a7SThierry Reding interconnect-names: 53*5f9155a7SThierry Reding items: 54*5f9155a7SThierry Reding - const: dma-mem # read 55*5f9155a7SThierry Reding - const: write 56*5f9155a7SThierry Reding 5770f0bc65SSameer Pujar iommus: 5870f0bc65SSameer Pujar maxItems: 1 5970f0bc65SSameer Pujar 60a9f22c03SSameer Pujarrequired: 61a9f22c03SSameer Pujar - clocks 62a9f22c03SSameer Pujar - clock-names 63a9f22c03SSameer Pujar - assigned-clocks 64a9f22c03SSameer Pujar - assigned-clock-parents 65a9f22c03SSameer Pujar 66a9f22c03SSameer PujarunevaluatedProperties: false 67a9f22c03SSameer Pujar 68a9f22c03SSameer Pujarexamples: 69a9f22c03SSameer Pujar - | 70a9f22c03SSameer Pujar #include<dt-bindings/clock/tegra210-car.h> 71a9f22c03SSameer Pujar 72a9f22c03SSameer Pujar tegra_sound { 73a9f22c03SSameer Pujar compatible = "nvidia,tegra210-audio-graph-card"; 74a9f22c03SSameer Pujar 75a9f22c03SSameer Pujar clocks = <&tegra_car TEGRA210_CLK_PLL_A>, 76a9f22c03SSameer Pujar <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 77a9f22c03SSameer Pujar clock-names = "pll_a", "plla_out0"; 78a9f22c03SSameer Pujar 79a9f22c03SSameer Pujar assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>, 80a9f22c03SSameer Pujar <&tegra_car TEGRA210_CLK_PLL_A_OUT0>, 81a9f22c03SSameer Pujar <&tegra_car TEGRA210_CLK_EXTERN1>; 82a9f22c03SSameer Pujar assigned-clock-parents = <0>, <0>, <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 83a9f22c03SSameer Pujar assigned-clock-rates = <368640000>, <49152000>, <12288000>; 84a9f22c03SSameer Pujar 85a9f22c03SSameer Pujar dais = /* FE */ 86a9f22c03SSameer Pujar <&admaif1_port>, 87a9f22c03SSameer Pujar /* Router */ 88a9f22c03SSameer Pujar <&xbar_i2s1_port>, 89a9f22c03SSameer Pujar /* I/O DAP Ports */ 90a9f22c03SSameer Pujar <&i2s1_port>; 91a9f22c03SSameer Pujar 92a9f22c03SSameer Pujar label = "jetson-tx1-ape"; 93a9f22c03SSameer Pujar }; 94a9f22c03SSameer Pujar 95a9f22c03SSameer Pujar // The ports are defined for AHUB and its child devices. 96a9f22c03SSameer Pujar ahub@702d0800 { 97a9f22c03SSameer Pujar compatible = "nvidia,tegra210-ahub"; 98a9f22c03SSameer Pujar reg = <0x702d0800 0x800>; 99a9f22c03SSameer Pujar clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 100a9f22c03SSameer Pujar clock-names = "ahub"; 101a9f22c03SSameer Pujar assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 102a9f22c03SSameer Pujar assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 103a9f22c03SSameer Pujar #address-cells = <1>; 104a9f22c03SSameer Pujar #size-cells = <1>; 105a9f22c03SSameer Pujar ranges = <0x702d0000 0x702d0000 0x0000e400>; 106a9f22c03SSameer Pujar 107a9f22c03SSameer Pujar ports { 108a9f22c03SSameer Pujar #address-cells = <1>; 109a9f22c03SSameer Pujar #size-cells = <0>; 110a9f22c03SSameer Pujar 111a9f22c03SSameer Pujar port@0 { 112a9f22c03SSameer Pujar reg = <0x0>; 113a9f22c03SSameer Pujar xbar_admaif1_ep: endpoint { 114a9f22c03SSameer Pujar remote-endpoint = <&admaif1_ep>; 115a9f22c03SSameer Pujar }; 116a9f22c03SSameer Pujar }; 117a9f22c03SSameer Pujar 118a9f22c03SSameer Pujar // ... 119a9f22c03SSameer Pujar 120a9f22c03SSameer Pujar xbar_i2s1_port: port@a { 121a9f22c03SSameer Pujar reg = <0xa>; 122a9f22c03SSameer Pujar xbar_i2s1_ep: endpoint { 123a9f22c03SSameer Pujar remote-endpoint = <&i2s1_cif_ep>; 124a9f22c03SSameer Pujar }; 125a9f22c03SSameer Pujar }; 126a9f22c03SSameer Pujar }; 127a9f22c03SSameer Pujar 128a9f22c03SSameer Pujar admaif@702d0000 { 129a9f22c03SSameer Pujar compatible = "nvidia,tegra210-admaif"; 130a9f22c03SSameer Pujar reg = <0x702d0000 0x800>; 131a9f22c03SSameer Pujar dmas = <&adma 1>, <&adma 1>, 132a9f22c03SSameer Pujar <&adma 2>, <&adma 2>, 133a9f22c03SSameer Pujar <&adma 3>, <&adma 3>, 134a9f22c03SSameer Pujar <&adma 4>, <&adma 4>, 135a9f22c03SSameer Pujar <&adma 5>, <&adma 5>, 136a9f22c03SSameer Pujar <&adma 6>, <&adma 6>, 137a9f22c03SSameer Pujar <&adma 7>, <&adma 7>, 138a9f22c03SSameer Pujar <&adma 8>, <&adma 8>, 139a9f22c03SSameer Pujar <&adma 9>, <&adma 9>, 140a9f22c03SSameer Pujar <&adma 10>, <&adma 10>; 141a9f22c03SSameer Pujar dma-names = "rx1", "tx1", 142a9f22c03SSameer Pujar "rx2", "tx2", 143a9f22c03SSameer Pujar "rx3", "tx3", 144a9f22c03SSameer Pujar "rx4", "tx4", 145a9f22c03SSameer Pujar "rx5", "tx5", 146a9f22c03SSameer Pujar "rx6", "tx6", 147a9f22c03SSameer Pujar "rx7", "tx7", 148a9f22c03SSameer Pujar "rx8", "tx8", 149a9f22c03SSameer Pujar "rx9", "tx9", 150a9f22c03SSameer Pujar "rx10", "tx10"; 151a9f22c03SSameer Pujar 152a9f22c03SSameer Pujar ports { 153a9f22c03SSameer Pujar #address-cells = <1>; 154a9f22c03SSameer Pujar #size-cells = <0>; 155a9f22c03SSameer Pujar 156a9f22c03SSameer Pujar admaif1_port: port@0 { 157a9f22c03SSameer Pujar reg = <0x0>; 158a9f22c03SSameer Pujar admaif1_ep: endpoint { 159a9f22c03SSameer Pujar remote-endpoint = <&xbar_admaif1_ep>; 160a9f22c03SSameer Pujar }; 161a9f22c03SSameer Pujar }; 162a9f22c03SSameer Pujar 163a9f22c03SSameer Pujar // More ADMAIF ports to follow 164a9f22c03SSameer Pujar }; 165a9f22c03SSameer Pujar }; 166a9f22c03SSameer Pujar 167a9f22c03SSameer Pujar i2s@702d1000 { 168a9f22c03SSameer Pujar compatible = "nvidia,tegra210-i2s"; 169a9f22c03SSameer Pujar clocks = <&tegra_car TEGRA210_CLK_I2S0>; 170a9f22c03SSameer Pujar clock-names = "i2s"; 171a9f22c03SSameer Pujar assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>; 172a9f22c03SSameer Pujar assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 173a9f22c03SSameer Pujar assigned-clock-rates = <1536000>; 174a9f22c03SSameer Pujar reg = <0x702d1000 0x100>; 175a9f22c03SSameer Pujar 176a9f22c03SSameer Pujar ports { 177a9f22c03SSameer Pujar #address-cells = <1>; 178a9f22c03SSameer Pujar #size-cells = <0>; 179a9f22c03SSameer Pujar 180a9f22c03SSameer Pujar port@0 { 181a9f22c03SSameer Pujar reg = <0x0>; 182a9f22c03SSameer Pujar 183a9f22c03SSameer Pujar i2s1_cif_ep: endpoint { 184a9f22c03SSameer Pujar remote-endpoint = <&xbar_i2s1_ep>; 185a9f22c03SSameer Pujar }; 186a9f22c03SSameer Pujar }; 187a9f22c03SSameer Pujar 188a9f22c03SSameer Pujar i2s1_port: port@1 { 189a9f22c03SSameer Pujar reg = <0x1>; 190a9f22c03SSameer Pujar 191a9f22c03SSameer Pujar i2s1_dap: endpoint { 192a9f22c03SSameer Pujar dai-format = "i2s"; 193a9f22c03SSameer Pujar }; 194a9f22c03SSameer Pujar }; 195a9f22c03SSameer Pujar }; 196a9f22c03SSameer Pujar }; 197a9f22c03SSameer Pujar }; 198a9f22c03SSameer Pujar 199a9f22c03SSameer Pujar... 200