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]>
Cc: Olof Johansson <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Signed-off-by: John Stultz <[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
v5:
* Rework audio description to use the audio-card-graph method
  as requested by Mark.
---
 arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 34 +++++++++++++++++++++++---
 arch/arm64/boot/dts/hisilicon/hi6220.dtsi      | 26 ++++++++++++++++++++
 2 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts 
b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
index 5cdfe73..2b52630 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
@@ -468,6 +468,11 @@
                        method = "smc";
                };
        };
+
+       sound_card {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_port0>;
+       };
 };
 
 &uart2 {
@@ -508,10 +513,33 @@
                interrupts = <1 2>;
                pd-gpio = <&gpio0 4 0>;
                adi,dsi-lanes = <4>;
+               #sound-dai-cells = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               adv7533_in: endpoint {
+                                       remote-endpoint = <&dsi_out0>;
+                               };
+                       };
+                       port@2 {
+                               reg = <2>;
+                               codec_endpoint: endpoint {
+                                       remote-endpoint = <&i2s0_cpu_endpoint>;
+                               };
+                       };
+               };
+       };
+};
 
-               port {
-                       adv7533_in: endpoint {
-                               remote-endpoint = <&dsi_out0>;
+&i2s0 {
+
+       ports {
+               i2s0_port0: port@0 {
+                       i2s0_cpu_endpoint: endpoint {
+                               remote-endpoint = <&codec_endpoint>;
+                               dai-format = "i2s";
                        };
                };
        };
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi 
b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index 5013e4b..f2e218c 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -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 {
-- 
2.7.4

Reply via email to