Hello,Andrew,
Actually, UART IOMUX configuration is not idifficult , iomux tool is a way to get it , but we have another easy way to do it : open linux/arch/arm/plat-mxc/include/mach/iomux-mx6q.h, we can find all iomux definitions for pins of i.mx6Q . what we need to do is add definitions to board initialization. for example, let us do IOMUX for UART2.
(1) No.1 method:
----------------------------
MX6Q_PAD_EIM_D26__UART2_TXD (means EIM_D26--->UART2_TX signal)
MX6Q_PAD_EIM_D27__UART2_RXD (means EIM_D27--->UART2_RX signal)
-----------------------------
(2)No.2 method:
-------------------------------
MX6Q_PAD_GPIO_7__UART2_TXD (means GPIO_7--->UART2_TX signal)
MX6Q_PAD_GPIO_8__UART2_RXD (means GPIO_8--->UART2_RX signal)
--------------------------------
(3)No.3 method
----------------------------
MX6Q_PAD_SD4_DAT4__UART2_TXD (means SD4_DAT4--->UART2_TX signal)
MX6Q_PAD_SD4_DAT7__UART2_RXD (means SD4_DAT7--->UART2_RX signal)
----------------------------
Use any one of the above 3 groups , you can get UART2 signals. Then add them to BSP file of your board.
such as mx6q_sabresd board : open linux/arch/arm/mach-mx6/board-mx6q_sabresd.h
static iomux_v3_cfg_t mx6q_sabresd_pads[] = {
......
MX6Q_PAD_EIM_D26__UART2_TXD,
MX6Q_PAD_EIM_D27__UART2_RXD,
.......
}
Regards,
Weidong