arm64: dts: renesas: ulcb/kf: Use multi Component sound
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 20 Sep 2023 23:53:12 +0000 (23:53 +0000)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 25 Sep 2023 07:25:04 +0000 (09:25 +0200)
commitd70be079c3cf34bd91e1c8f7b4bc760356c9150c
tree35cb2ca1475c64441b7d5e2e38de61bda34f981c
parent98537eb77d3ef185a4b1b4004da75301038cf76b
arm64: dts: renesas: ulcb/kf: Use multi Component sound

+-- ULCB -------------------+
|+--------+       +--------+|
||    SSI0| <---> |ak4613  ||
||    SSI1| <---> |        ||
||        |       +--------+|
||        |       +--------+|
||    SSI2| <---> |HDMI    ||
||        |       +--------+|
||    SSI3| <--+            |
||    SSI4| <-+|            |
|+--------+   ||            |
+-------------||------------+
+-- Kingfisher -------------+
|             ||  +--------+|
|             |+->|pcm3168a||
|             +-->|        ||
|                 +--------+|
+---------------------------+

On UCLB/KF, we intuitively think we want to handle these as "2 Sound
Cards":

card0,0: 1st sound of ULCB (SSI0 - ak4613)
card0,1: 2nd sound of ULCB (SSI2 - HDMI)
card1,0: 1st sound of KF   (SSI3 - pcm3168a)
    ^ ^

However, because of ASoC Component vs. Card framework limitations, we
needed to handle this as "1 big Sound Card":

card0,0: 1st sound of ULCB/KF (SSI0 - ak4613)
card0,1: 2nd sound of ULCB/KF (SSI2 - HDMI)
card0,2: 3rd sound of ULCB/KF (SSI3 - pcm3168a)
    ^ ^

Now ASoC supports multi Component, which allows us to handle "2 Sound
Cards" such as "ULCB Sound Card" and "Kingfisher Sound Card", all
ULCB/KF Audio dtsi can be updated.

Note that this changes the Sound Card specification method from
userland, especially for Kingfisher Sound.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/87fs382yhk.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
12 files changed:
arch/arm64/boot/dts/renesas/ulcb-audio-graph-card-mix+split.dtsi
arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi
arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2-mix+split.dtsi
arch/arm64/boot/dts/renesas/ulcb-audio-graph-card2.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card-mix+split.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2-mix+split.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf-audio-graph-card2.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card-mix+split.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf-simple-audio-card.dtsi
arch/arm64/boot/dts/renesas/ulcb-simple-audio-card-mix+split.dtsi
arch/arm64/boot/dts/renesas/ulcb-simple-audio-card.dtsi