162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-graph-card.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Audio Graph based Tegra sound card driver 862306a36Sopenharmony_ci 962306a36Sopenharmony_cidescription: | 1062306a36Sopenharmony_ci This is based on generic audio graph card driver along with additional 1162306a36Sopenharmony_ci customizations for Tegra platforms. It uses the same bindings with 1262306a36Sopenharmony_ci additional standard clock DT bindings required for Tegra. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cimaintainers: 1562306a36Sopenharmony_ci - Jon Hunter <jonathanh@nvidia.com> 1662306a36Sopenharmony_ci - Sameer Pujar <spujar@nvidia.com> 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciallOf: 1962306a36Sopenharmony_ci - $ref: audio-graph.yaml# 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciproperties: 2262306a36Sopenharmony_ci compatible: 2362306a36Sopenharmony_ci enum: 2462306a36Sopenharmony_ci - nvidia,tegra210-audio-graph-card 2562306a36Sopenharmony_ci - nvidia,tegra186-audio-graph-card 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci clocks: 2862306a36Sopenharmony_ci minItems: 2 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci clock-names: 3162306a36Sopenharmony_ci items: 3262306a36Sopenharmony_ci - const: pll_a 3362306a36Sopenharmony_ci - const: plla_out0 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci assigned-clocks: 3662306a36Sopenharmony_ci minItems: 1 3762306a36Sopenharmony_ci maxItems: 3 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci assigned-clock-parents: 4062306a36Sopenharmony_ci minItems: 1 4162306a36Sopenharmony_ci maxItems: 3 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci assigned-clock-rates: 4462306a36Sopenharmony_ci minItems: 1 4562306a36Sopenharmony_ci maxItems: 3 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci interconnects: 4862306a36Sopenharmony_ci items: 4962306a36Sopenharmony_ci - description: APE read memory client 5062306a36Sopenharmony_ci - description: APE write memory client 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci interconnect-names: 5362306a36Sopenharmony_ci items: 5462306a36Sopenharmony_ci - const: dma-mem # read 5562306a36Sopenharmony_ci - const: write 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci iommus: 5862306a36Sopenharmony_ci maxItems: 1 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_cirequired: 6162306a36Sopenharmony_ci - clocks 6262306a36Sopenharmony_ci - clock-names 6362306a36Sopenharmony_ci - assigned-clocks 6462306a36Sopenharmony_ci - assigned-clock-parents 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciunevaluatedProperties: false 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciexamples: 6962306a36Sopenharmony_ci - | 7062306a36Sopenharmony_ci #include<dt-bindings/clock/tegra210-car.h> 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci tegra_sound { 7362306a36Sopenharmony_ci compatible = "nvidia,tegra210-audio-graph-card"; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci clocks = <&tegra_car TEGRA210_CLK_PLL_A>, 7662306a36Sopenharmony_ci <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 7762306a36Sopenharmony_ci clock-names = "pll_a", "plla_out0"; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>, 8062306a36Sopenharmony_ci <&tegra_car TEGRA210_CLK_PLL_A_OUT0>, 8162306a36Sopenharmony_ci <&tegra_car TEGRA210_CLK_EXTERN1>; 8262306a36Sopenharmony_ci assigned-clock-parents = <0>, <0>, <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 8362306a36Sopenharmony_ci assigned-clock-rates = <368640000>, <49152000>, <12288000>; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci dais = /* FE */ 8662306a36Sopenharmony_ci <&admaif1_port>, 8762306a36Sopenharmony_ci /* Router */ 8862306a36Sopenharmony_ci <&xbar_i2s1_port>, 8962306a36Sopenharmony_ci /* I/O DAP Ports */ 9062306a36Sopenharmony_ci <&i2s1_port>; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci label = "jetson-tx1-ape"; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci // The ports are defined for AHUB and its child devices. 9662306a36Sopenharmony_ci ahub@702d0800 { 9762306a36Sopenharmony_ci compatible = "nvidia,tegra210-ahub"; 9862306a36Sopenharmony_ci reg = <0x702d0800 0x800>; 9962306a36Sopenharmony_ci clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 10062306a36Sopenharmony_ci clock-names = "ahub"; 10162306a36Sopenharmony_ci assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>; 10262306a36Sopenharmony_ci assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 10362306a36Sopenharmony_ci #address-cells = <1>; 10462306a36Sopenharmony_ci #size-cells = <1>; 10562306a36Sopenharmony_ci ranges = <0x702d0000 0x702d0000 0x0000e400>; 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci ports { 10862306a36Sopenharmony_ci #address-cells = <1>; 10962306a36Sopenharmony_ci #size-cells = <0>; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci port@0 { 11262306a36Sopenharmony_ci reg = <0x0>; 11362306a36Sopenharmony_ci xbar_admaif1_ep: endpoint { 11462306a36Sopenharmony_ci remote-endpoint = <&admaif1_ep>; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci }; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci // ... 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci xbar_i2s1_port: port@a { 12162306a36Sopenharmony_ci reg = <0xa>; 12262306a36Sopenharmony_ci xbar_i2s1_ep: endpoint { 12362306a36Sopenharmony_ci remote-endpoint = <&i2s1_cif_ep>; 12462306a36Sopenharmony_ci }; 12562306a36Sopenharmony_ci }; 12662306a36Sopenharmony_ci }; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci admaif@702d0000 { 12962306a36Sopenharmony_ci compatible = "nvidia,tegra210-admaif"; 13062306a36Sopenharmony_ci reg = <0x702d0000 0x800>; 13162306a36Sopenharmony_ci dmas = <&adma 1>, <&adma 1>, 13262306a36Sopenharmony_ci <&adma 2>, <&adma 2>, 13362306a36Sopenharmony_ci <&adma 3>, <&adma 3>, 13462306a36Sopenharmony_ci <&adma 4>, <&adma 4>, 13562306a36Sopenharmony_ci <&adma 5>, <&adma 5>, 13662306a36Sopenharmony_ci <&adma 6>, <&adma 6>, 13762306a36Sopenharmony_ci <&adma 7>, <&adma 7>, 13862306a36Sopenharmony_ci <&adma 8>, <&adma 8>, 13962306a36Sopenharmony_ci <&adma 9>, <&adma 9>, 14062306a36Sopenharmony_ci <&adma 10>, <&adma 10>; 14162306a36Sopenharmony_ci dma-names = "rx1", "tx1", 14262306a36Sopenharmony_ci "rx2", "tx2", 14362306a36Sopenharmony_ci "rx3", "tx3", 14462306a36Sopenharmony_ci "rx4", "tx4", 14562306a36Sopenharmony_ci "rx5", "tx5", 14662306a36Sopenharmony_ci "rx6", "tx6", 14762306a36Sopenharmony_ci "rx7", "tx7", 14862306a36Sopenharmony_ci "rx8", "tx8", 14962306a36Sopenharmony_ci "rx9", "tx9", 15062306a36Sopenharmony_ci "rx10", "tx10"; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci ports { 15362306a36Sopenharmony_ci #address-cells = <1>; 15462306a36Sopenharmony_ci #size-cells = <0>; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci admaif1_port: port@0 { 15762306a36Sopenharmony_ci reg = <0x0>; 15862306a36Sopenharmony_ci admaif1_ep: endpoint { 15962306a36Sopenharmony_ci remote-endpoint = <&xbar_admaif1_ep>; 16062306a36Sopenharmony_ci }; 16162306a36Sopenharmony_ci }; 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci // More ADMAIF ports to follow 16462306a36Sopenharmony_ci }; 16562306a36Sopenharmony_ci }; 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci i2s@702d1000 { 16862306a36Sopenharmony_ci compatible = "nvidia,tegra210-i2s"; 16962306a36Sopenharmony_ci clocks = <&tegra_car TEGRA210_CLK_I2S0>; 17062306a36Sopenharmony_ci clock-names = "i2s"; 17162306a36Sopenharmony_ci assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>; 17262306a36Sopenharmony_ci assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>; 17362306a36Sopenharmony_ci assigned-clock-rates = <1536000>; 17462306a36Sopenharmony_ci reg = <0x702d1000 0x100>; 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci ports { 17762306a36Sopenharmony_ci #address-cells = <1>; 17862306a36Sopenharmony_ci #size-cells = <0>; 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci port@0 { 18162306a36Sopenharmony_ci reg = <0x0>; 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci i2s1_cif_ep: endpoint { 18462306a36Sopenharmony_ci remote-endpoint = <&xbar_i2s1_ep>; 18562306a36Sopenharmony_ci }; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci i2s1_port: port@1 { 18962306a36Sopenharmony_ci reg = <0x1>; 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci i2s1_dap: endpoint { 19262306a36Sopenharmony_ci dai-format = "i2s"; 19362306a36Sopenharmony_ci }; 19462306a36Sopenharmony_ci }; 19562306a36Sopenharmony_ci }; 19662306a36Sopenharmony_ci }; 19762306a36Sopenharmony_ci }; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci... 200