Hi, I am having a problem with this as well. My goal is to have a device in /dev that I can use to capture I²S input from an external device. I'll try to document what I've done so far, perhaps others can benefit from that.
First, get the UDOO linux kernel sources and set up a cross compiling toolchain (refer to the UDOO manual for this).
On UDOO, the AUD5 connector is accessible via external pins. So I first set the corresponding pins in the header file (arch/arm/mach-mx6/board-mx6qd_seco_UDOO.h):
/*
* AUD 5
*/
// MX6Q_PAD_DISP0_DAT13__GPIO_5_7, // pin 29
MX6Q_PAD_DISP0_DAT13__AUDMUX_AUD5_RXFS,
// MX6Q_PAD_DISP0_DAT14__GPIO_5_8, // pin 30
MX6Q_PAD_DISP0_DAT14__AUDMUX_AUD5_RXC,
// MX6Q_PAD_DISP0_DAT16__GPIO_5_10, // pin 32
MX6Q_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC,
// MX6Q_PAD_DISP0_DAT17__GPIO_5_11, // pin 33
MX6Q_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD,
// MX6Q_PAD_DISP0_DAT18__GPIO_5_12, // pin 34
// MX6Q_PAD_DISP0_DAT18__ECSPI2_SS0,
MX6Q_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS,
// MX6Q_PAD_DISP0_DAT19__GPIO_5_13, // pin 35
MX6Q_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD,
Don't forget to remove these pins from mx6q_set_in_inputmode[] further down in the file.
Then the next step would be to set up arch/arm/mach-mx6/board-mx6_seco_UDOO.c. Somehow, I have to declare the right data for the wm8962 device and then initialize it correctly. The init code in arch/arm/mach-mx6/board-mx6q_sabresd.c seems to look promising, but I don't know how to customize it properly.
Can anybody point me in the right direction?