On Mon, Jun 12, 2017 at 3:15 PM, Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote: > Greetings, > > I'm working on a media controller driver for the tda1997x HDMI > receiver which provides an audio bus supporting I2S/SPDIF/OBA/HBR/DST. > I'm unclear how to bind the audio bus to a SoC's audio bus, for > example the IMX6 SSI (I2S) bus. I thought perhaps it was via a > simple-audio-card device-tree binding but that appears to require an > ALSA codec to bind to? > > Can anyone point me to an example of a media controller device driver > that supports audio and video and how the audio is bound to a I2S bus? I'm not sure if this is what you are looking for now not, but on some AMD APUs, we have an i2s bus and codec attached to the GPU rather than as a standalone device. The audio DMA engine and interrupts are controlled via the GPU's mmio aperture, but we expose the audio DMA engine and i2c interface via alsa. We use the MFD (Multi-Function Device) kernel infrastructure to do this. The GPU driver loads and probes the audio capabilities and triggers the hotplug of the i2s and audio dma engine. For the GPU side see: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c for the audio side: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/amd/acp-pcm-dma.c Alex