Questions about driver implementation (1 I2S controller to 2 codecs)

Paul Cercueil paul at crapouillou.net
Fri Jun 24 22:33:01 CEST 2022


Hi,

I'm trying to add support for a new board that uses the Ingenic JZ4770 
SoC.

This SoC has a I2S/AC97 controller, and has an internal codec. The 
controller has a register switch to select either the internal codec, 
or an external codec; both cannot be enabled at the same time.

On this board, the external speakers / audio line are wired to the 
internal codec, while a HDMI chip (ITE66121) is wired as the external 
codec.

I'm having a hard time trying to figure out how the codec selection 
switch should be exported. Should it be a regular widget, and the user 
is responsible for selecting the right codec? Should it be a DAPM, and 
plugging the HDMI cable auto-enables the switch? Is this configuration 
(one controller to two codecs) already somehow supported by ALSA?

Right now we're using a "simple-audio-card" in the device tree, and 
trying to add HDMI sound support. I am not even sure if we should be 
using one sound card with the two codecs, or one sound card per codec, 
sharing the same I2S controller?

Any thoughts?

Thanks,
-Paul




More information about the Alsa-devel mailing list