UDOO: I2S from iMX6q

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

UDOO: I2S from iMX6q

2,747 Views
pa
Contributor I

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.

Thanks!

Labels (2)
Tags (3)
0 Kudos
4 Replies

560 Views
jonashippold
NXP Employee
NXP Employee

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?

0 Kudos

560 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

I checked the schematics and that board already features an audio codec.

I wonder if that does not help.

Regards,

Alejandro

0 Kudos

561 Views
pa
Contributor I

Hi Alejandro,

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?

0 Kudos

561 Views
alejandrolozan1
NXP Employee
NXP Employee

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.

0 Kudos