[09/10] arm64: tegra: Audio graph header for Tegra210
diff mbox series

Message ID 1595135417-16589-10-git-send-email-spujar@nvidia.com
State New
Headers show
Series
  • Audio graph card updates and usage with Tegra210 audio
Related show

Commit Message

Sameer Pujar July 19, 2020, 5:10 a.m. UTC
Expose a header which describes DT bindings required to use audio-graph
based sound card. All Tegra210 based platforms can include this header
and add platform specific information. Currently, from SoC point of view,
all links are exposed for ADMAIF, AHUB, I2S and DMIC components.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
---
 .../boot/dts/nvidia/tegra210-audio-graph.dtsi      | 120 +++++++++++++++++++++
 1 file changed, 120 insertions(+)
 create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi

Comments

Kuninori Morimoto July 20, 2020, 12:10 a.m. UTC | #1
Hi Sameer

> +&tegra_admaif {
> +	admaif_port: port {
> +		admaif0: endpoint@0 {
> +			remote-endpoint = <&xbar_admaif0>;
> +		};
> +		admaif1: endpoint@1 {
> +			remote-endpoint = <&xbar_admaif1>;
> +		};
(snip)
> +		admaif8: endpoint@8 {
> +			remote-endpoint = <&xbar_admaif8>;
> +		};
> +		admaif9: endpoint@9 {
> +			remote-endpoint = <&xbar_admaif9>;
> +		};
> +	};
> +};

I'm not familiar with your system, so, one question.
Does this ADMAIF has total 10 interface which is used in the same time ?
or select one of 10 connections when use ?

Thank you for your help !!

Best regards
---
Kuninori Morimoto
Sameer Pujar July 20, 2020, 4:17 a.m. UTC | #2
On 7/20/2020 5:40 AM, Kuninori Morimoto wrote:
> External email: Use caution opening links or attachments
>
>
> Hi Sameer
>
>> +&tegra_admaif {
>> +     admaif_port: port {
>> +             admaif0: endpoint@0 {
>> +                     remote-endpoint = <&xbar_admaif0>;
>> +             };
>> +             admaif1: endpoint@1 {
>> +                     remote-endpoint = <&xbar_admaif1>;
>> +             };
> (snip)
>> +             admaif8: endpoint@8 {
>> +                     remote-endpoint = <&xbar_admaif8>;
>> +             };
>> +             admaif9: endpoint@9 {
>> +                     remote-endpoint = <&xbar_admaif9>;
>> +             };
>> +     };
>> +};
> I'm not familiar with your system, so, one question.
> Does this ADMAIF has total 10 interface which is used in the same time ?
> or select one of 10 connections when use ?

One ore more ADMAIF interfaces can be used simultaneously. In fact all 
of them can be used at the same time.

>
> Thank you for your help !!
>
> Best regards
> ---
> Kuninori Morimoto
Kuninori Morimoto July 20, 2020, 4:51 a.m. UTC | #3
Hi Sameer

> >> +&tegra_admaif {
> >> +     admaif_port: port {
> >> +             admaif0: endpoint@0 {
> >> +                     remote-endpoint = <&xbar_admaif0>;
> >> +             };
> >> +             admaif1: endpoint@1 {
> >> +                     remote-endpoint = <&xbar_admaif1>;
> >> +             };
> > (snip)
> >> +             admaif8: endpoint@8 {
> >> +                     remote-endpoint = <&xbar_admaif8>;
> >> +             };
> >> +             admaif9: endpoint@9 {
> >> +                     remote-endpoint = <&xbar_admaif9>;
> >> +             };
> >> +     };
> >> +};
> > I'm not familiar with your system, so, one question.
> > Does this ADMAIF has total 10 interface which is used in the same time ?
> > or select one of 10 connections when use ?
> 
> One ore more ADMAIF interfaces can be used simultaneously. In fact all
> of them can be used at the same time.

Ah, sorry my questoin was not correct.
I want to clarify was that below.

In my understanding, 
if your system has 10 interfaces,
you need to create 10 ports, not 10 endpoints.
If your system has 1 interface, but is connected from 10
devices, it has 1 port 10 endpoints.

Thank you for your help !!

Best regards
---
Kuninori Morimoto
Sameer Pujar Aug. 3, 2020, 12:06 p.m. UTC | #4
On 7/20/2020 10:21 AM, Kuninori Morimoto wrote:
> External email: Use caution opening links or attachments
>
>
> Hi Sameer
>
>>>> +&tegra_admaif {
>>>> +     admaif_port: port {
>>>> +             admaif0: endpoint@0 {
>>>> +                     remote-endpoint = <&xbar_admaif0>;
>>>> +             };
>>>> +             admaif1: endpoint@1 {
>>>> +                     remote-endpoint = <&xbar_admaif1>;
>>>> +             };
>>> (snip)
>>>> +             admaif8: endpoint@8 {
>>>> +                     remote-endpoint = <&xbar_admaif8>;
>>>> +             };
>>>> +             admaif9: endpoint@9 {
>>>> +                     remote-endpoint = <&xbar_admaif9>;
>>>> +             };
>>>> +     };
>>>> +};
>>> I'm not familiar with your system, so, one question.
>>> Does this ADMAIF has total 10 interface which is used in the same time ?
>>> or select one of 10 connections when use ?
>> One ore more ADMAIF interfaces can be used simultaneously. In fact all
>> of them can be used at the same time.
> Ah, sorry my questoin was not correct.
> I want to clarify was that below.
>
> In my understanding,
> if your system has 10 interfaces,
> you need to create 10 ports, not 10 endpoints.
> If your system has 1 interface, but is connected from 10
> devices, it has 1 port 10 endpoints.

OK, I see your point. I will work on re-organizing ports/endpoints and 
once tested will publish V2 for current series. Thanks for inputs.

>
> Thank you for your help !!
>
> Best regards
> ---
> Kuninori Morimoto

Patch
diff mbox series

diff --git a/arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi
new file mode 100644
index 0000000..1cf2c87
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi
@@ -0,0 +1,120 @@ 
+// SPDX-License-Identifier: GPL-2.0
+
+/ {
+	tegra_sound {
+		status = "disabled";
+
+		compatible = "audio-graph-cc-card";
+
+		clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
+			 <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
+			 <&tegra_car TEGRA210_CLK_EXTERN1>;
+		clock-names = "pll_a", "plla_out0", "aud_mclk";
+
+		assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
+				  <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
+				  <&tegra_car TEGRA210_CLK_EXTERN1>;
+		assigned-clock-parents = <0>, <0>, <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
+		assigned-clock-rates = <368640000>, <49152000>, <12288000>;
+	};
+};
+
+&tegra_admaif {
+	admaif_port: port {
+		admaif0: endpoint@0 {
+			remote-endpoint = <&xbar_admaif0>;
+		};
+		admaif1: endpoint@1 {
+			remote-endpoint = <&xbar_admaif1>;
+		};
+		admaif2: endpoint@2 {
+			remote-endpoint = <&xbar_admaif2>;
+		};
+		admaif3: endpoint@3 {
+			remote-endpoint = <&xbar_admaif3>;
+		};
+		admaif4: endpoint@4 {
+			remote-endpoint = <&xbar_admaif4>;
+		};
+		admaif5: endpoint@5 {
+			remote-endpoint = <&xbar_admaif5>;
+		};
+		admaif6: endpoint@6 {
+			remote-endpoint = <&xbar_admaif6>;
+		};
+		admaif7: endpoint@7 {
+			remote-endpoint = <&xbar_admaif7>;
+		};
+		admaif8: endpoint@8 {
+			remote-endpoint = <&xbar_admaif8>;
+		};
+		admaif9: endpoint@9 {
+			remote-endpoint = <&xbar_admaif9>;
+		};
+	};
+};
+
+&tegra_ahub {
+	port@0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/*
+		 * Audio Crossbar Codec endpoints.
+		 * Connected with FE endpoints.
+		 */
+
+		xbar_admaif0: endpoint@0 {
+			reg = <0>;
+			remote-endpoint = <&admaif0>;
+		};
+		xbar_admaif1: endpoint@1 {
+			reg = <1>;
+			remote-endpoint = <&admaif1>;
+		};
+		xbar_admaif2: endpoint@2 {
+			reg = <2>;
+			remote-endpoint = <&admaif2>;
+		};
+		xbar_admaif3: endpoint@3 {
+			reg = <3>;
+			remote-endpoint = <&admaif3>;
+		};
+		xbar_admaif4: endpoint@4 {
+			reg = <4>;
+			remote-endpoint = <&admaif4>;
+		};
+		xbar_admaif5: endpoint@5 {
+			reg = <5>;
+			remote-endpoint = <&admaif5>;
+		};
+		xbar_admaif6: endpoint@6 {
+			reg = <6>;
+			remote-endpoint = <&admaif6>;
+		};
+		xbar_admaif7: endpoint@7 {
+			reg = <7>;
+			remote-endpoint = <&admaif7>;
+		};
+		xbar_admaif8: endpoint@8 {
+			reg = <8>;
+			remote-endpoint = <&admaif8>;
+		};
+		xbar_admaif9: endpoint@9 {
+			reg = <9>;
+			remote-endpoint = <&admaif9>;
+		};
+	};
+
+	xbar_port: port@1 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/*
+		 * Audio crossbar CPU endpoints:
+		 * Describe connections to HW accelerators (which will
+		 * be addded going forward) and I/O interfaces (which
+		 * are specified in Platform DT files).
+		 */
+	};
+};