Hi Brad,
I've copied an email thread that I had with my local FAEs on this very issue. This conversation occured in August 2012 and I have not heard of the issue being fixed yet.
----------------------------------------------------------------------------------------
Hi,
We have the IOMux 3.2.1.28034 for the I.MX6 Solo/DualLite/Dual/Quad. I went to generate code and that works.
What I don’t understand is how it is being used in Linux. The current board configuration for the i.MX6 boards is using
something completely different but with hints of iomux headers. None of the headers are the same format as IOMux spits out so I am very confused.
I can adapt to the existing implementation in the kernel, but I am more than a little frustrated that the IOMux tool does not document (that I can find) how to move these files that are generated on a PC to the Linux kernel build. The current kernel method uses macros. For example in the boards_sabresd.h file used in the Sabre SD kernel, the following (partial) structure exists:
static iomux_v3_cfg_t mx6q_sabresd_pads[] = { /* AUDMUX */
MX6Q_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC,
MX6Q_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD,
MX6Q_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS,
MX6Q_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD,
…
};
These macros have the form of pad on the left of the double underscore “__” and function on the right. Converting this by hand from the generated IOMux code seems fraught with peril and very error prone.
Any suggestions?
Thanks,
Jim
Reply:
Hi Jim,
The Linux BSP coding format that you describe here below is brand new to all of us. It has only recently been implemented for the MX6 (U-Boot & Kernel).
Unfortunately, the IOMux tool has not caught up with this new format yet.
We would all like to see the IOMux tool create compatible code. This has been requested, and the
implementation decision & timing are being discussed. We will keep you updated.
Sorry for the frustration this has created.