Message ID | 20180917122633.31401-1-katsuhiro@katsuster.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: rockchip: add spdif sound node for rock64 | expand |
Am Montag, 17. September 2018, 14:26:33 CEST schrieb Katsuhiro Suzuki: > 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@katsuster.net> applied for 4.20 Thanks Heiko
Hi, On Mon, Sep 17, 2018 at 8:28 PM Katsuhiro Suzuki <katsuhiro@katsuster.net> 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@katsuster.net> > --- > .../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. 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. ChenYu
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@katsuster.net> 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@katsuster.net> >> --- >> .../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
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"; + dais = <&spdif_p0>; + }; + + spdif-dit { + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0>; + + port { + dit_p0_0: endpoint { + remote-endpoint = <&spdif_p0_0>; + }; + }; + }; }; &cpu0 { @@ -261,6 +278,18 @@ status = "okay"; }; +&spdif { + pinctrl-0 = <&spdifm0_tx>; + status = "okay"; + #sound-dai-cells = <0>; + + spdif_p0: port { + spdif_p0_0: endpoint { + remote-endpoint = <&dit_p0_0>; + }; + }; +}; + &tsadc { rockchip,hw-tshut-mode = <0>; rockchip,hw-tshut-polarity = <0>;
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@katsuster.net> --- .../arm64/boot/dts/rockchip/rk3328-rock64.dts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+)