ADAU1701 DSP and slave I2S kernel module

Hello all,

After weeks of on and off fiddling with the hardware side of a I2S connection to the ADAU1701 DSP from Analog Devices I’m now stuck on getting a slave kernel module running with Volumio. The past week I had sound out of the DSP with a raspian dist. and a cross compiled kernel with a modified RPI_DAC driver.

The needed modification is that the DSP is a master I2S part and the Raspberry pi needs to me a slave on the I2S port.
I changed the SND_SOC_DAIFMT_CBS_CFS to SND_SOC_DAIFMT_CBM_CFM, did the cross compile, copied the kernel and modules and made some changes in the /etc/modules and /etc/asound.conf. This resulted in the proper slave mode and sound out of the ADAU1701 internal DACs.

But now my question, how to cross compile this for Volumio? Compiling against the latest kernel version is not the way to go, breaking the Volumio player.

Against which version I need to compile when I run Volumio 1.51 and what steps are essential with the kernel options used in Volumio?

I hope someone is able to help me out here as I’m not able to find the proper information my self at this moment for Volumio.

Thanks in advance.

Hi DerKammi,

I’m trying to connect Raspberry Pi to ADAU1701 DSP. I found here … &start=400 how to connect them via I2S bus and that the ADAU1701 must be used as controller. Moreover, I have to change SND_SOC_DAIFMT_CBS_CFS to SND_SOC_DAIFMT_CBM_CFM in rpi-ess9018.c and recompile the kernel as specified in a following post of the thread at the previous link. I cannot find any rpi-ess9018.c inside the kernel source (both recent 4.1 and old kernel 3.10). What did you do?
Did you make any progress with Volumio in this direction?

I found in the kernel source the driver for the ADAU1701 … adau1701.c and that now there is no need to recompile the kernel each time since the module for ADAU1701 is defined in kernel configuration via SND_SOC_ADAU1701 and it is directly available via rpi-update. So it is possible to load the module at boot via /etc/modules configuration file or via device tree overlay way. I do not understand if in this way is still necessary to to change SND_SOC_DAIFMT_CBS_CFS to SND_SOC_DAIFMT_CBM_CFM and in which file. Or if I need to change other configuration files.
Do you have any hint?
Thank you

did either of you make any progress in this, i would also like to run rhe Rpi as I2s slave in volumio.


it works … 2s-driver/