193 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 67e838ec7820b19e5a359280fea47b016cb64d30 Mon Sep 17 00:00:00 2001
 | 
						|
From: Christian Hewitt <christianshewitt@gmail.com>
 | 
						|
Date: Sun, 17 May 2020 05:00:55 +0000
 | 
						|
Subject: [PATCH 58/88] WIP: arm64: dts: meson: add audio playback to u200
 | 
						|
 | 
						|
Add initial support limited to HDMI i2s and SPDIF (LPCM).
 | 
						|
 | 
						|
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
 | 
						|
---
 | 
						|
 .../boot/dts/amlogic/meson-g12a-u200.dts      | 131 ++++++++++++++++++
 | 
						|
 1 file changed, 131 insertions(+)
 | 
						|
 | 
						|
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
 | 
						|
index a26bfe72550f..280f8159ebb1 100644
 | 
						|
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
 | 
						|
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
 | 
						|
@@ -8,6 +8,7 @@
 | 
						|
 #include "meson-g12a.dtsi"
 | 
						|
 #include <dt-bindings/gpio/gpio.h>
 | 
						|
 #include <dt-bindings/gpio/meson-g12a-gpio.h>
 | 
						|
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
 | 
						|
 
 | 
						|
 / {
 | 
						|
 	compatible = "amlogic,u200", "amlogic,g12a";
 | 
						|
@@ -18,6 +19,13 @@
 | 
						|
 		ethernet0 = ðmac;
 | 
						|
 	};
 | 
						|
 
 | 
						|
+	spdif_dit: audio-codec-1 {
 | 
						|
+		#sound-dai-cells = <0>;
 | 
						|
+		compatible = "linux,spdif-dit";
 | 
						|
+		status = "okay";
 | 
						|
+		sound-name-prefix = "DIT";
 | 
						|
+	};
 | 
						|
+
 | 
						|
 	chosen {
 | 
						|
 		stdout-path = "serial0:115200n8";
 | 
						|
 	};
 | 
						|
@@ -147,6 +155,91 @@
 | 
						|
 		regulator-boot-on;
 | 
						|
 		regulator-always-on;
 | 
						|
 	};
 | 
						|
+
 | 
						|
+
 | 
						|
+	sound {
 | 
						|
+		compatible = "amlogic,axg-sound-card";
 | 
						|
+		model = "U200";
 | 
						|
+		audio-aux-devs = <&tdmout_b>;
 | 
						|
+		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
 | 
						|
+				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
 | 
						|
+				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
 | 
						|
+				"TDM_B Playback", "TDMOUT_B OUT",
 | 
						|
+				"SPDIFOUT IN 0", "FRDDR_A OUT 3",
 | 
						|
+				"SPDIFOUT IN 1", "FRDDR_B OUT 3",
 | 
						|
+				"SPDIFOUT IN 2", "FRDDR_C OUT 3";
 | 
						|
+
 | 
						|
+		assigned-clocks = <&clkc CLKID_MPLL2>,
 | 
						|
+				  <&clkc CLKID_MPLL0>,
 | 
						|
+				  <&clkc CLKID_MPLL1>;
 | 
						|
+		assigned-clock-parents = <0>, <0>, <0>;
 | 
						|
+		assigned-clock-rates = <294912000>,
 | 
						|
+				       <270950400>,
 | 
						|
+				       <393216000>;
 | 
						|
+		status = "okay";
 | 
						|
+
 | 
						|
+		dai-link-0 {
 | 
						|
+			sound-dai = <&frddr_a>;
 | 
						|
+		};
 | 
						|
+
 | 
						|
+		dai-link-1 {
 | 
						|
+			sound-dai = <&frddr_b>;
 | 
						|
+		};
 | 
						|
+
 | 
						|
+		dai-link-2 {
 | 
						|
+			sound-dai = <&frddr_c>;
 | 
						|
+		};
 | 
						|
+
 | 
						|
+		/* 8ch hdmi interface */
 | 
						|
+		dai-link-3 {
 | 
						|
+			sound-dai = <&tdmif_b>;
 | 
						|
+			dai-format = "i2s";
 | 
						|
+			dai-tdm-slot-tx-mask-0 = <1 1>;
 | 
						|
+			dai-tdm-slot-tx-mask-1 = <1 1>;
 | 
						|
+			dai-tdm-slot-tx-mask-2 = <1 1>;
 | 
						|
+			dai-tdm-slot-tx-mask-3 = <1 1>;
 | 
						|
+			mclk-fs = <256>;
 | 
						|
+
 | 
						|
+			codec {
 | 
						|
+				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
 | 
						|
+			};
 | 
						|
+		};
 | 
						|
+
 | 
						|
+		/* spdif hdmi or toslink interface */
 | 
						|
+		dai-link-4 {
 | 
						|
+			sound-dai = <&spdifout>;
 | 
						|
+
 | 
						|
+			codec-0 {
 | 
						|
+				sound-dai = <&spdif_dit>;
 | 
						|
+			};
 | 
						|
+
 | 
						|
+			codec-1 {
 | 
						|
+				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
 | 
						|
+			};
 | 
						|
+		};
 | 
						|
+
 | 
						|
+		/* spdif hdmi interface */
 | 
						|
+		dai-link-5 {
 | 
						|
+			sound-dai = <&spdifout_b>;
 | 
						|
+
 | 
						|
+			codec {
 | 
						|
+				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
 | 
						|
+			};
 | 
						|
+		};
 | 
						|
+
 | 
						|
+		/* hdmi glue */
 | 
						|
+		dai-link-6 {
 | 
						|
+			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
 | 
						|
+
 | 
						|
+			codec {
 | 
						|
+				sound-dai = <&hdmi_tx>;
 | 
						|
+			};
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+};
 | 
						|
+
 | 
						|
+&arb {
 | 
						|
+	status = "okay";
 | 
						|
 };
 | 
						|
 
 | 
						|
 &cec_AO {
 | 
						|
@@ -163,6 +256,10 @@
 | 
						|
 	hdmi-phandle = <&hdmi_tx>;
 | 
						|
 };
 | 
						|
 
 | 
						|
+&clkc_audio {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
 &cpu0 {
 | 
						|
 	cpu-supply = <&vddcpu>;
 | 
						|
 	operating-points-v2 = <&cpu_opp_table>;
 | 
						|
@@ -203,6 +300,18 @@
 | 
						|
 	phy-mode = "rmii";
 | 
						|
 };
 | 
						|
 
 | 
						|
+&frddr_a {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&frddr_b {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&frddr_c {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
 &hdmi_tx {
 | 
						|
 	status = "okay";
 | 
						|
 	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
 | 
						|
@@ -288,6 +397,28 @@
 | 
						|
 	vqmmc-supply = <&flash_1v8>;
 | 
						|
 };
 | 
						|
 
 | 
						|
+&spdifout {
 | 
						|
+	pinctrl-0 = <&spdif_out_h_pins>;
 | 
						|
+	pinctrl-names = "default";
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&spdifout_b {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&tdmif_b {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&tdmout_b {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&tohdmitx {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
 &uart_AO {
 | 
						|
 	status = "okay";
 | 
						|
 	pinctrl-0 = <&uart_ao_a_pins>;
 | 
						|
-- 
 | 
						|
2.17.1
 | 
						|
 |