Re: [PATCH 3/8] arm64: dts: renesas: add ulcb{-kf} Audio Graph Card dtsi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Morimoto-san,

On Wed, Dec 14, 2022 at 2:48 AM Kuninori Morimoto
<kuninori.morimoto.gx@xxxxxxxxxxx> wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
>
> 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 "Audio Graph 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@xxxxxxxxxxx>

Thanks for your patch!

> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi

> +&ak4613 {
> +       #sound-dai-cells = <0>;
> +
> +       port {
> +               /*
> +                * (A) CPU0 <-> ak4613
> +                */
> +               ak4613_endpoint: endpoint {
> +                       remote-endpoint = <&rsnd_for_ak4613>;
> +               };
> +       };
> +};
> +
> +&hdmi0 {
> +       ports {
> +               port@2 {
> +                       /*
> +                        * (B) CPU1 <-> HDMI

As this is used for playback only, "CPU1 -> HDMI"?

> +                        */
> +                       dw_hdmi0_snd_in: endpoint {
> +                               remote-endpoint = <&rsnd_for_hdmi>;
> +                       };
> +               };
> +       };
> +};
> +
> +&rcar_sound {
> +       ports {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               rsnd_port0: port@0 {
> +                       /*
> +                        * (A) CPU0 <-> ak4613
> +                        */
> +                       reg = <0>;
> +                       rsnd_for_ak4613: endpoint {
> +                               remote-endpoint = <&ak4613_endpoint>;
> +                               bitclock-master;
> +                               frame-master;
> +                               playback = <&ssi0>, <&src0>, <&dvc0>;
> +                               capture  = <&ssi1>, <&src1>, <&dvc1>;
> +                       };
> +               };
> +               rsnd_port1: port@1 {
> +                       /*
> +                        * (B) CPU1 <-> HDMI

CPU1 -> HDMI

> +                        */
> +                       reg = <1>;
> +                       rsnd_for_hdmi: endpoint {
> +                               remote-endpoint = <&dw_hdmi0_snd_in>;
> +                               bitclock-master;
> +                               frame-master;
> +                               playback = <&ssi2>;
> +                       };
> +               };
> +       };
> +};

> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card.dtsi

> +&pcm3168a {
> +       ports {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               mclk-fs = <512>;
> +               /*
> +                * (C) CPU2 <-> PCM3168A-p

CPU2 -> PCM3168A-p

> +                */
> +               port@0 {
> +                       reg = <0>;
> +                       pcm3168a_endpoint_p: endpoint {
> +                               remote-endpoint = <&rsnd_for_pcm3168a_play>;
> +                               clocks = <&clksndsel>;
> +                       };
> +               };
> +               /*
> +                * (D) CPU3 <-> PCM3168A-c

As this is used for capture only, "CPU3 <- PCM3168A-c"?

> +                */
> +               port@1 {
> +                       reg = <1>;
> +                       pcm3168a_endpoint_c: endpoint {
> +                               remote-endpoint = <&rsnd_for_pcm3168a_capture>;
> +                               clocks = <&clksndsel>;
> +                       };
> +               };
> +       };
> +};
> +
> +&rcar_sound {
> +       ports {
> +               /* rsnd_port0/1 are defined in ulcb.dtsi */
> +               /*
> +                * (C) CPU2 <-> PCM3168A-p

CPU2 -> PCM3168A-p

> +                */
> +               rsnd_port2: port@2 {
> +                       reg = <2>;
> +                       rsnd_for_pcm3168a_play: endpoint {
> +                               remote-endpoint = <&pcm3168a_endpoint_p>;
> +                               bitclock-master;
> +                               frame-master;
> +                               dai-tdm-slot-num = <8>;
> +                               playback = <&ssi3>;
> +                       };
> +               };
> +               /*
> +                * (D) CPU3 <-> PCM3168A-c

CPU3 <- PCM3168A-c

> +                */
> +               rsnd_port3: port@3 {
> +                       reg = <3>;
> +                       rsnd_for_pcm3168a_capture: endpoint {
> +                               remote-endpoint = <&pcm3168a_endpoint_c>;
> +                               bitclock-master;
> +                               frame-master;
> +                               dai-tdm-slot-num = <6>;
> +                               capture = <&ssi4>;
> +                       };
> +               };
> +       };
> +};

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux