I recently purchased a UDOO quad (featuring a iMX6 quad chip) and would like to use it as source for digital music. I plan to connect the UDOO via I2S to a ES9023 sabre DAC chip which needs MCLK, LRCK, BCK, DATA input. I have a problem to identify the appropriate output from the iMX6 on the UDOO. In principle iMX6 should support I2S, as its documentation (http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQCEC.pdf?fpsp=1) says it is capable of outputting I2S via SSI.
UDOO provides access to iMX6 available via a number of GPIOs. In their documentation (http://udoo.org/download/files/schematics/UDOO_REV_D_schematics.pdf) page 12 lower right side box the UDOO creators provide the PIN assignment for I2S. However, I cannot make any sense out of this information, and UDOO helpline was not useful.
Can anyone provide some advice? I am a weekend DYIer and not very well versed in deep technical matters.
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_DAT14__GPIO_5_8, // pin 30
// MX6Q_PAD_DISP0_DAT16__GPIO_5_10, // pin 32
// MX6Q_PAD_DISP0_DAT17__GPIO_5_11, // pin 33
// MX6Q_PAD_DISP0_DAT18__GPIO_5_12, // pin 34
// MX6Q_PAD_DISP0_DAT19__GPIO_5_13, // pin 35
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?
thanks for the hint, I presume you refer to the AC'97 codec built into the UDOO (page 16)? It does indeed look like this is also available through the GPIOs and powers the whole onboard sound system. Nevertheless I am interested in I2S since I do have already the SABRE DAC chip at home. Could I convert AC97 into I2S? But then again, if the IMXQ seemingly outputs I2S why not using that directly?
Even though the pins are tagged as GPIOs remember that they can be configured in many different ways (GPIO, I2S, I2C, ADC depending on the pin). I really doubt that the i.MX and the UDOO BSP is using bit banging to generate I2S signals.