[alsa-devel] ASoC: codec: SPDIF only works with Tx/Rx seperate codec drivers?

Lars-Peter Clausen lars at metafoo.de
Fri Jul 12 16:26:17 CEST 2013

On 07/12/2013 10:30 AM, Nicolin Chen wrote:
> Hi Mark,
> I've a little question about SPDIF codec drivers.
> I found there're spdif_receiver.c and spdif_transmitter.c, two files,
> in sound/soc/codecs directory. So it looks like SPDIF module would work
> separately as one IN device and one OUT device, for example:
> dts/spear1340.dtsi:		spdif-in at d0100000 {
> dts/spear1340.dtsi:			compatible = "st,spdif-in";
> dts/spear1340.dtsi:		spdif-out at d0000000 {
> dts/spear1340.dtsi:			compatible = "st,spdif-out";
> But the question is what if a SPDIF module have both Tx and Rx function
> in one simple CPU DAI. Is that okay to add a new codec driver for this
> situation?
> Actually I'm gonna prepare some patches to add Freescale SPDIF drivers.
> But this needs to create a brand new dummy SPDIF codec driver, which's
> some kinda same as spdif_receiver/transmitter.c but quite different
> in the supports of SAMPLE_RATE/FORMAT and IN/OUT-in-one integration.
> So I just want to make sure if this'll be okay.

The current drivers should work fine with this. You can create a card with
two DAI links

static struct snd_soc_dai_link dai_links[] = {
		.name = "S/PDIF TX",
		.stream_name = "S/PDIF PCM Playback",
		.platform_name = "your-platform",
		.cpu_dai_name = "your-cpu-dai",
		.codec_dai_name = "dit-hifi",
		.codec_name = "spdif-dit",
	}, {
		.name = "S/PDIF RX",
		.stream_name = "S/PDIF PCM Playback",
		.platform_name = "your-platform",
		.cpu_dai_name = "your-cpu-dai",
		.codec_dai_name = "dir-hifi",
		.codec_name = "spdif-dir",

More information about the Alsa-devel mailing list