Hi Mark On below HW case, we would like to use it as "2 Cards", but unfortunately it is impossible in intuitive way or possible but not intuitive way. In reality, it is handled as "1 big Card" today. +-- basic board --------+ |+--------+ | || CPU ch0| <--> CodecA | || ch1| <-+ | |+--------+ | | +-------------|---------+ +-- expansion board ----+ | | | | +-> CodecB| +-----------------------+ To handling it as intuitive "2 Cards", this patch-set adds multi Component support. Link: https://lore.kernel.org/all/87a6b6cofh.wl-kuninori.morimoto.gx@xxxxxxxxxxx/ Kuninori Morimoto (14): ASoC: soc-core.c: initialize dlc on snd_soc_get_dai_id() ASoC: soc-core.c: cleanup soc_dai_link_sanity_check() ASoC: soc-dai.c: add DAI get/match functions ASoC: soc-core.c: enable multi Component ASoC: soc-core.c: add snd_soc_get_dai_via_args() ASoC: soc-core.c: add snd_soc_dlc_use_cpu_as_platform() ASoC: soc-core.c: add snd_soc_copy_dai_args() ASoC: simple-card-utils.c: enable multi Component support ASoC: simple-card.c: enable multi Component support ASoC: rsnd: use DAI driver ID instead of DAI ID ASoC: rsnd: cleanup rsnd_dai_of_node() ASoC: rsnd: enable multi Component support for Audio Graph Card/Card2 ASoC: dt-bindings: renesas,rsnd.yaml: add common port-def ASoC: dt-bindings: renesas,rsnd.yaml: enable multi ports for multi Component support .../bindings/sound/renesas,rsnd.yaml | 60 ++-- include/sound/simple_card_utils.h | 5 +- include/sound/soc-dai.h | 3 + include/sound/soc.h | 6 + sound/soc/generic/audio-graph-card.c | 2 +- sound/soc/generic/audio-graph-card2.c | 2 +- sound/soc/generic/simple-card-utils.c | 23 +- sound/soc/generic/simple-card.c | 20 +- sound/soc/sh/rcar/core.c | 146 +++++++--- sound/soc/sh/rcar/rsnd.h | 4 + sound/soc/soc-core.c | 267 +++++++++++++----- 11 files changed, 374 insertions(+), 164 deletions(-) -- 2.25.1