ASoC: tlv320aic3x: Add multi endpoint support

Support multiple endpoints on TLV320AIC3xxx codec port when
used in of_graph context.

This patch allows to share the codec port between two CPU DAIs.

Custom STM32MP255C board uses TLV320AIC3104 audio codec. This codec
is connected to two serial audio interfaces, which are configured
either as rx or tx.

However, when the audio graph card parses the codec nodes, it expects
to find DAI interface indexes matching the endpoints indexes.

The current patch forces the use of DAI id 0 for both endpoints,
which allows to share the codec DAI between the two CPU DAIs
for playback and capture streams respectively.

Signed-off-by: Marek Vasut <marex@nabladev.com>
Link: https://patch.msgid.link/20260411130542.19777-1-marex@nabladev.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Marek Vasut 2026-04-11 15:05:12 +02:00 committed by Mark Brown
parent ae93afff98
commit ed05258250
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -1689,8 +1689,15 @@ static int aic3x_component_probe(struct snd_soc_component *component)
return 0;
}
static int aic3x_of_xlate_dai_id(struct snd_soc_component *component,
struct device_node *endpoint)
{
return 0;
}
static const struct snd_soc_component_driver soc_component_dev_aic3x = {
.set_bias_level = aic3x_set_bias_level,
.of_xlate_dai_id = aic3x_of_xlate_dai_id,
.probe = aic3x_component_probe,
.controls = aic3x_snd_controls,
.num_controls = ARRAY_SIZE(aic3x_snd_controls),