Message ID | 877cyupxg2.wl-kuninori.morimoto.gx@renesas.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | arm64: dts: renesas: Simple-Card / Audio-Graph-Card/Card2 dts for ULCB/KF | expand |
Hi Morimoto-san, On Wed, Dec 14, 2022 at 2:48 AM Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> wrote: > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> > > ALSA SoC has many type of Generic Audio Card driver (Simple Audio Card, > Audio Graph Card, Audio Graph Card2), and Renesas/Kuninori Morimoto want > to test these. > > Generic Audio Card driver had been requested on ALSA SoC. > It has many type of device connection method, and historically, > requested connection support range of generic driver have been > upgraded. > > Upgrading connection support range itself was possible on generic > driver, but could not implemented, because we need to keep compatibility > on Device-Tree. This is one of the reason why we have many type of > Generic Audio Card driver. > > ULCB/KF is good board to test these. > Kuninori has been testing these Generic Audio Card driver by using his > local patch to switching drivers. But it is good idea to upstream these > from information sharing point of view, because DT setting is complex. > It can be good sample for user. This patch is one of them. > > From normal user point of view who don't need to test the driver, > it should keep as-is, nothing changed. > > This patch adds "Simle Audio Card" DT setting file for ULCB/KF. > We can switch to use it if ulcb.dtsi / ulcb-kf.dtsi were updated. > > Because it needs "switching driver", not "add extra feature", > it doesn't use Device-Tree overlay. > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Thanks for your patch! > --- /dev/null > +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi > @@ -0,0 +1,85 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Device Tree for ULCB + Kingfisher + Simple Audio Card > + * > + * Copyright (C) 2022 Renesas Electronics Corp. > + */ > + > +/* > + * (A) CPU0 ------ ak4613 > + * (B) CPU1 ------ HDMI > + * (C) CPU2 ------ PCM3168A-p > + * (D) CPU3 ------ PCM3168A-c > + * > + * (A) aplay -D plughw:0,0 xxx.wav > + * (B) aplay -D plughw:0,1 xxx.wav > + * (C) aplay -D plughw:0,2 xxx.wav > + * > + * (A) arecord -D plughw:0,0 xxx.wav > + * (D) arecord -D plughw:0,3 xxx.wav > + */ > + > +&sound_card { > + /* dai-link@0/1 are defined in ulcb.dtsi */ > + > + /* > + * (C) CPU2 <-> PCM3168A-p "->", as this is used for playback only (everywhere, in all patches). > +&rcar_sound { > + > + /* dai0-1 are defined in ulcb.dtsi */ I think this comment belongs under "rcar_sound,dai" below. > + > + rcar_sound,dai { > + /* > + * (C) CPU2 <-> PCM3168A-p > + */ > + dai2 { > + playback = <&ssi3>; > + }; > + /* > + * (D) CPU3 <-> PCM3168A-c > + */ > + dai3 { > + capture = <&ssi4>; > + }; > + }; > +}; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi new file mode 100644 index 000000000000..8949145d447d --- /dev/null +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree for ULCB + Kingfisher + Simple Audio Card + * + * Copyright (C) 2022 Renesas Electronics Corp. + */ + +/* + * (A) CPU0 ------ ak4613 + * (B) CPU1 ------ HDMI + * (C) CPU2 ------ PCM3168A-p + * (D) CPU3 ------ PCM3168A-c + * + * (A) aplay -D plughw:0,0 xxx.wav + * (B) aplay -D plughw:0,1 xxx.wav + * (C) aplay -D plughw:0,2 xxx.wav + * + * (A) arecord -D plughw:0,0 xxx.wav + * (D) arecord -D plughw:0,3 xxx.wav + */ + +&sound_card { + /* dai-link@0/1 are defined in ulcb.dtsi */ + + /* + * (C) CPU2 <-> PCM3168A-p + */ + simple-audio-card,dai-link@2 { + reg = <2>; + cpu { + bitclock-master; + frame-master; + dai-tdm-slot-num = <8>; + sound-dai = <&rcar_sound 2>; + }; + codec { + mclk-fs = <512>; + sound-dai = <&pcm3168a 0>; + }; + }; + /* + * (D) CPU3 <-> PCM3168A-c + */ + simple-audio-card,dai-link@3 { + reg = <3>; + cpu { + bitclock-master; + frame-master; + dai-tdm-slot-num = <6>; + sound-dai = <&rcar_sound 3>; + }; + codec { + mclk-fs = <512>; + sound-dai = <&pcm3168a 1>; + }; + }; +}; + +&pcm3168a { + /* + * (C) CPU2 <-> PCM3168A-p + * (D) CPU3 <-> PCM3168A-c + */ + #sound-dai-cells = <1>; +}; + +&rcar_sound { + + /* dai0-1 are defined in ulcb.dtsi */ + + rcar_sound,dai { + /* + * (C) CPU2 <-> PCM3168A-p + */ + dai2 { + playback = <&ssi3>; + }; + /* + * (D) CPU3 <-> PCM3168A-c + */ + dai3 { + capture = <&ssi4>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi index b5877120ab46..6913d778a40b 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi @@ -453,6 +453,7 @@ &xhci0 { * We can switch Audio Card for testing * see also ulcb.dtsi * + * #include "ulcb-kf-simple-audio-card.dtsi" * #include "ulcb-kf-audio-graph-card.dtsi" */ #include "ulcb-kf-audio-graph-card2.dtsi" diff --git a/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi b/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi new file mode 100644 index 000000000000..ae1ea872fd11 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree for ULCB + Simple Audio Card + * + * Copyright (C) 2022 Renesas Electronics Corp. + */ + +/* + * (A) CPU0 ------ ak4613 + * (B) CPU1 ------ HDMI + * + * (A) aplay -D plughw:0,0 xxx.wav + * (B) aplay -D plughw:0,1 xxx.wav + * + * (A) arecord -D plughw:0,0 xxx.wav + */ + +/ { + sound_card: sound { + compatible = "simple-audio-card"; + label = "rcar-sound"; + + #address-cells = <1>; + #size-cells = <0>; + + /* + * (A) CPU0 <-> ak4613 + */ + simple-audio-card,dai-link@0 { + reg = <0>; + cpu { + bitclock-master; + frame-master; + sound-dai = <&rcar_sound 0>; + }; + codec { + sound-dai = <&ak4613>; + }; + }; + /* + * (B) CPU1 <-> HDMI + */ + simple-audio-card,dai-link@1 { + reg = <1>; + cpu { + bitclock-master; + frame-master; + sound-dai = <&rcar_sound 1>; + }; + codec { + sound-dai = <&hdmi0>; + }; + }; + }; +}; + +&ak4613 { + /* + * (A) CPU0 <-> ak4613 + */ + #sound-dai-cells = <0>; +}; + +&hdmi0 { + /* + * (B) CPU1 <-> HDMI + */ + #sound-dai-cells = <0>; +}; + +&rcar_sound { + #sound-dai-cells = <1>; + + rcar_sound,dai { + /* + * (A) CPU0 <-> ak4613 + */ + dai0 { + playback = <&ssi0 &src0 &dvc0>; + capture = <&ssi1 &src1 &dvc1>; + }; + /* + * (B) CPU1 <-> HDMI + */ + dai1 { + playback = <&ssi2>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi index 6196494452c9..497d07df6944 100644 --- a/arch/arm64/boot/dts/renesas/ulcb.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi @@ -501,6 +501,7 @@ &usb2_phy1 { * * We can switch Audio Card for testing * + * #include "ulcb-simple-audio-card.dtsi" * #include "ulcb-audio-graph-card.dtsi" */ #include "ulcb-audio-graph-card2.dtsi"