This patch adds HDMI sound (I2S0) node and remove dma properties from UART2 node for rock64.
The DMAC of rk3328 can use 8 channels at same time. Currently, total 7 channels are used as follows: - I2S1 2ch - UART2 2ch - SPDIF 1ch - SPI0 2ch HDMI audio using I2S0 that requires 2ch but DMAC has only 1 channel. UART2 can work without DMA resources, so this patch removes dma allocation for UART2 and reuses it to I2S0. Signed-off-by: Katsuhiro Suzuki <katsuh...@katsuster.net> --- .../arm64/boot/dts/rockchip/rk3328-rock64.dts | 24 ++++++++++++++++++- arch/arm64/boot/dts/rockchip/rk3328.dtsi | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts index 2157a528276b..e21645aa3fa5 100644 --- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts @@ -68,7 +68,8 @@ sound { compatible = "audio-graph-card"; label = "rockchip,rk3328"; - dais = <&i2s1_p0 + dais = <&i2s0_p0 + &i2s1_p0 &spdif_p0>; }; @@ -141,6 +142,12 @@ &hdmi { status = "okay"; + + port@0 { + hdmi_p0_0: endpoint { + remote-endpoint = <&i2s0_p0_0>; + }; + }; }; &hdmiphy { @@ -256,6 +263,18 @@ }; }; +&i2s0 { + status = "okay"; + + i2s0_p0: port { + i2s0_p0_0: endpoint { + dai-format = "i2s"; + mclk-fs = <256>; + remote-endpoint = <&hdmi_p0_0>; + }; + }; +}; + &i2s1 { status = "okay"; @@ -343,6 +362,9 @@ &uart2 { status = "okay"; + + /delete-property/ dmas; + /delete-property/ dma-names; }; &u2phy { diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi index 84f14b132e8f..374b5da93a35 100644 --- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi @@ -665,6 +665,7 @@ pinctrl-names = "default"; pinctrl-0 = <&hdmi_cec &hdmii2c_xfer &hdmi_hpd>; rockchip,grf = <&grf>; + #sound-dai-cells = <0>; status = "disabled"; ports { -- 2.20.1