lkml.org 
[lkml]   [2019]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v3 2/2] arm64: dts: rockchip: add HDMI sound node for rk3328-rock64
From
Date
Ping...

On 2019/02/18 2:34, Katsuhiro Suzuki wrote:
> This patch adds HDMI sound (I2S0) node for rock64.
>
> After apply this patch, UART2 will fail to allocate DMA resources
> but UART driver can work fine without DMA.
>
> This error is related to the DMAC of rk3328 (pl330 or compatible).
> DMAC 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 by this
> patch, required DMAC channels will be 9. So last one (UART2) cannot
> allocate the DMA resources.
>
> Virt-dma mechanism for pl0330 DMAC driver is needed to fix this
> problem.
>
> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
> ---
> .../arm64/boot/dts/rockchip/rk3328-rock64.dts | 21 ++++++++++++++++++-
> 1 file changed, 20 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..bfc0930d245c 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";
>
>

\
 
 \ /
  Last update: 2019-03-02 15:19    [W:0.485 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site