arm64: dts: hi6220: Add k3-dma and i2s/hdmi audio support
Subsystems (2)
PATCH v5 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.
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(-)
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +31 -3
@@ -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"; }; }; };
arch/arm64/boot/dts/hisilicon/hi6220.dtsi +26 -0
@@ -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
Hi John,
Quoted 18 lines · John Stultz
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]>
Quoted 10 lines
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.
---
Applied to the hisilicon arm64 dt tree.
Sorry for the delay!
Thanks!
BR,
Wei
Quoted 102 lines
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 34 +++++++++++++++++++++++--- arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 26 ++++++++++++++++++++ 2 files changed, 57 insertions(+), 3 deletions(-)arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +31
-3@@ -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"; }; }; };arch/arm64/boot/dts/hisilicon/hi6220.dtsi +26
-0@@ -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 {