[PATCH] ARM: dts: uniphier: add sound node for UniPhier PXs2

Katsuhiro Suzuki suzuki.katsuhiro at socionext.com
Tue Mar 13 22:26:58 PDT 2018


This patch adds audio controller, external codec and simple card node
of UniPhier AIO sound system for PXs2 SoCs.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro at socionext.com>
---
 arch/arm/boot/dts/uniphier-pxs2-gentil.dts | 24 +++++++++++++
 arch/arm/boot/dts/uniphier-pxs2-vodka.dts  | 37 ++++++++++++++++++++
 arch/arm/boot/dts/uniphier-pxs2.dtsi       | 54 ++++++++++++++++++++++++++++++
 3 files changed, 115 insertions(+)

diff --git a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
index d09acb8e59a1..782962749bbf 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
@@ -34,6 +34,12 @@
 		device_type = "memory";
 		reg = <0x80000000 0x80000000>;
 	};
+
+	sound {
+		compatible = "audio-graph-card";
+		label = "UniPhier PXs2";
+		dais = <&i2s_port2>;
+	};
 };
 
 &serial2 {
@@ -52,6 +58,19 @@
 
 &i2c2 {
 	status = "okay";
+
+	wm8960 at 1a {
+		compatible = "wlf,wm8960";
+		reg = <0x1a>;
+		#sound-dai-cells = <0>;
+
+		port at 0 {
+			wm_speaker: endpoint {
+				dai-format = "i2s";
+				remote-endpoint = <&i2s_aux>;
+			};
+		};
+	};
 };
 
 &eth {
@@ -64,3 +83,8 @@
 		reg = <1>;
 	};
 };
+
+&i2s_aux {
+	dai-format = "i2s";
+	remote-endpoint = <&wm_speaker>;
+};
diff --git a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
index 6f13a25b935f..33bcd98c8653 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
@@ -32,6 +32,35 @@
 		device_type = "memory";
 		reg = <0x80000000 0x80000000>;
 	};
+
+	sound {
+		compatible = "audio-graph-card";
+		label = "UniPhier PXs2";
+		dais = <&spdif_port0
+			&comp_spdif_port0>;
+	};
+
+	spdif-out {
+		compatible = "linux,spdif-dit";
+		#sound-dai-cells = <0>;
+
+		port at 0 {
+			spdif_tx: endpoint {
+				remote-endpoint = <&spdif_hiecout1>;
+			};
+		};
+	};
+
+	comp-spdif-out {
+		compatible = "linux,spdif-dit";
+		#sound-dai-cells = <0>;
+
+		port at 0 {
+			comp_spdif_tx: endpoint {
+				remote-endpoint = <&comp_spdif_hiecout1>;
+			};
+		};
+	};
 };
 
 &serial2 {
@@ -52,3 +81,11 @@
 		reg = <1>;
 	};
 };
+
+&spdif_hiecout1 {
+	remote-endpoint = <&spdif_tx>;
+};
+
+&comp_spdif_hiecout1 {
+	remote-endpoint = <&comp_spdif_tx>;
+};
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
index 18f336e64036..d64ca9d0aef1 100644
--- a/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -227,6 +227,60 @@
 						     <21 217 3>;
 		};
 
+		audio at 56000000 {
+			compatible = "socionext,uniphier-pxs2-aio";
+			reg = <0x56000000 0x80000>;
+			interrupts = <0 144 4>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_ain1>,
+				    <&pinctrl_ain2>,
+				    <&pinctrl_ainiec1>,
+				    <&pinctrl_aout2>,
+				    <&pinctrl_aout3>,
+				    <&pinctrl_aoutiec1>,
+				    <&pinctrl_aoutiec2>;
+			clock-names = "aio";
+			clocks = <&sys_clk 40>;
+			reset-names = "aio";
+			resets = <&sys_rst 40>;
+			#sound-dai-cells = <1>;
+
+			i2s_port0: port at 0 {
+				i2s_hdmi: endpoint {
+				};
+			};
+
+			i2s_port1: port at 1 {
+				i2s_line: endpoint {
+				};
+			};
+
+			i2s_port2: port at 2 {
+				i2s_aux: endpoint {
+				};
+			};
+
+			spdif_port0: port at 3 {
+				spdif_hiecout1: endpoint {
+				};
+			};
+
+			spdif_port1: port at 4 {
+				spdif_iecout1: endpoint {
+				};
+			};
+
+			comp_spdif_port0: port at 5 {
+				comp_spdif_hiecout1: endpoint {
+				};
+			};
+
+			comp_spdif_port1: port at 6 {
+				comp_spdif_iecout1: endpoint {
+				};
+			};
+		};
+
 		i2c0: i2c at 58780000 {
 			compatible = "socionext,uniphier-fi2c";
 			status = "disabled";
-- 
2.16.1




More information about the linux-arm-kernel mailing list