Re: [PATCH v2] arm64: dts: rockchip: add spdif sound node for rock64

From: Katsuhiro Suzuki
Date: Fri Oct 05 2018 - 04:36:09 EST


Hello,

Sorry for late, thank you for your comments.

On 2018å10æ03æ 18:53, Chen-Yu Tsai wrote:
Hi,

On Mon, Sep 17, 2018 at 8:28 PM Katsuhiro Suzuki
<katsuhiro@xxxxxxxxxxxxx> wrote:

This patch adds sound card node for rock64. Currently we can support
S/PDIF only. It seems the lack of codec driver of rk3328 to enable
analog audio out.

Signed-off-by: Katsuhiro Suzuki <katsuhiro@xxxxxxxxxxxxx>
---
.../arm64/boot/dts/rockchip/rk3328-rock64.dts | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
index 5852061e497b..9ee4f57557f3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
@@ -62,6 +62,23 @@
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
+
+ sound {
+ compatible = "audio-graph-card";
+ label = "rockchip,rk3328";

I understand that this patch has been merged. However, seeing this label
I wonder how this works when the analog codec and HDMI audio out are added,
and how userspace is supposed to select an output.


I don't know detail of HDMI audio of RK3328, but maybe it has cpu or codec DAIs. The audio-graph-card is supporting to use multiple DAIs on
a card. This is same as simple-audio-card.

For example, add I2S0 device as hw:X,0
(and move SPDIF to hw:X,0 -> hw:X,1)

sound {
compatible = "audio-graph-card";
label = "rockchip,rk3328";
dais = <&i2s0_p0
&spdif_p0>;
};

&i2s0 {
status = "okay";
#sound-dai-cells = <0>;

i2s0_p0: port {
i2s0_p0_0: endpoint {
dai-format = "i2s";
remote-endpoint = <&some_codec_abcd>;
};
};
};

We should write special card driver for RK3328 sound if audio-graph-card
is not enough to deal with HDMI audio.


On the side, it seems that extra codecs, such as the rock64 add-on board,
are easier dealt with by adding a separate simple-audio-card node to couple
the codec and i2s nodes.

I think multiple DAIs on single card and single DAI on multiple cards
are both OK to work. But I cannot decide the way for this issue.



ChenYu


Regards,
--
Katsuhiro Suzuki