@@ -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 {
This patch adds HDMI sound (I2S0) node and remove dma properties from UART2 node for rock64. The DMAC of rk3328 connected to 16 DMA sources. Each sources have ID number that is called 'Req number' in rk3328 TRM. Currently, total 7 sources has been activated as follows: | Req number | Source | Required | | | | channels | |------------+--------+-----------| | 14, 15 | I2S1 | 2ch | | 6, 7 | UART2 | 2ch | | 10 | SPDIF | 1ch | | 8, 9 | SPI0 | 2ch | |------------+--------+-----------| | | Total | 7ch | HDMI audio needs to activate new source I2S0 (Req number 11 and 12). I2S0 can work concurrently with other sources, but rk3328 DMAC can use max 8 channels at same time. If I2S0 is simply activated, required DMAC channels are 9. It does not work. UART2 can work without DMA resources, so this patch removes 2 DMA channel allocation for UART2. These released channels can be used for I2S0. Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net> --- .../arm64/boot/dts/rockchip/rk3328-rock64.dts | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-)