Skip to contentSkip to conversation

arm64: dts: hi6220: Add k3-dma and i2s/hdmi audio support

PATCH RESEND Superseded John Stultz 1 participant 1 message Jun 2, 2017

Subsystems (2)

v4 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

PATCH RESEND v4 1/1 arm64: dts: hi6220: Add k3-dma and i2s/hdmi audio support

Add entry for k3-dma driver and i2s/hdmi audio devices.

This enables HDMI audio output.

Cc Zhangfei Gao <[email protected]>
Cc Liam Girdwood <[email protected]>
Cc Mark Brown <[email protected]>
Cc Jaroslav Kysela <[email protected]>
Cc Takashi Iwai <[email protected]>
Cc Wei Xu <[email protected]>
Cc Rob Herring <[email protected]>
Cc Andy Green <[email protected]>
Cc Dave Long <[email protected]>
Cc Guodong Xu <[email protected]>
Cc Antonio Borneo <[email protected]>

v2:
* Split core i2s entry into dtsi and hdmi specific bits into hikey dts
v4:
* Rework simple-card to use many-dai-links method, as there may be other links in the future

---
 arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 16 ++++++++++++++++
 arch/arm64/boot/dts/hisilicon/hi6220.dtsi      | 26 ++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +16 -0
index 5132d8e..ce59586 100644
@@ -470,6 +470,21 @@
 			method = "smc";
 		};
 	};
+
+	sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "hikey-hdmi";
+
+		simple-audio-card,dai-link@0 {          /* I2S - HDMI */
+			format = "i2s";
+			cpu {
+				sound-dai = <&i2s0 0>;
+			};
+			codec {
+				sound-dai = <&adv7533>;
+			};
+		};
+	};
 };
 
 &uart2 {
@@ -510,6 +525,7 @@
 		interrupts = <1 2>;
 		pd-gpio = <&gpio0 4 0>;
 		adi,dsi-lanes = <4>;
+		#sound-dai-cells = <0>;
 
 		port {
 			adv7533_in: endpoint {
arch/arm64/boot/dts/hisilicon/hi6220.dtsi +26 -0
index 5013e4b..f2e218c 100644
@@ -332,6 +332,19 @@
 			status = "disabled";
 		};
 
+		dma0: dma@f7370000 {
+			compatible = "hisilicon,k3-dma-1.0";
+			reg = <0x0 0xf7370000 0x0 0x1000>;
+			#dma-cells = <1>;
+			dma-channels = <15>;
+			dma-requests = <32>;
+			interrupts = <0 84 4>;
+			clocks = <&sys_ctrl HI6220_EDMAC_ACLK>;
+			dma-no-cci;
+			dma-type = "hi6220_dma";
+			status = "ok";
+		};
+
 		dual_timer0: timer@f8008000 {
 			compatible = "arm,sp804", "arm,primecell";
 			reg = <0x0 0xf8008000 0x0 0x1000>;
@@ -805,6 +818,19 @@
 			#thermal-sensor-cells = <1>;
 		};
 
+		i2s0: i2s@f7118000{
+			compatible = "hisilicon,hi6210-i2s";
+			reg = <0x0 0xf7118000 0x0 0x8000>; /* i2s unit */
+			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; /* 155 "DigACodec_intr"-32 */
+			clocks = <&sys_ctrl HI6220_DACODEC_PCLK>,
+				 <&sys_ctrl HI6220_BBPPLL0_DIV>;
+			clock-names = "dacodec", "i2s-base";
+			dmas = <&dma0 15 &dma0 14>;
+			dma-names = "rx", "tx";
+			hisilicon,sysctrl-syscon = <&sys_ctrl>;
+			#sound-dai-cells = <1>;
+		};
+
 		thermal-zones {
 
 			cls0: cls0 {
Signature · 1 line
2.7.4