> +static int cs35l56_init_multiple(struct snd_soc_pcm_runtime *rtd, int count) > +{ > + struct snd_soc_card *card = rtd->card; > + struct snd_soc_dai *codec_dai; > + int i, ret; > + > + card->components = devm_kasprintf(card->dev, GFP_KERNEL, > + "%s hs:cs35l56", the string is wrong here, this is an amplifier so it should be amp:cs35l56 or spk:cs36l56 (not sure which of the two we ended-up using). > + card->components); > + if (!card->components) > + return -ENOMEM; > + > + ret = snd_soc_dapm_new_controls(&card->dapm, > + cs35l56_sof_widgets, ARRAY_SIZE(cs35l56_sof_widgets)); > + if (ret) { > + dev_err(card->dev, "Widgets add failed: %d\n", ret); > + return ret; > + } > + > + ret = snd_soc_dapm_add_routes(&card->dapm, cs35l56_sof_map, count); > + if (ret) { > + dev_err(card->dev, "Map add %d failed: %d\n", count, ret); > + return ret; > + } > + > + /* Enable one feedback TX per amp on different slots */ > + for_each_rtd_codec_dais(rtd, i, codec_dai) { > + ret = snd_soc_dai_set_tdm_slot(codec_dai, 0x3, 1 << i, 4, 16); TDM slots? Not getting how this would work with SoundWire? > + if (ret < 0) > + return ret; > + } > + > + return 0; > +}