AnsweredAssumed Answered

IMX6 UART2 pin mux definition question

Question asked by Robert Smigielski on Feb 25, 2015
Latest reply on Mar 27, 2015 by Robert Smigielski

On an IMX6Q design I am using UART2 as the console with signal GPIO 7 as the Trasmit and signal GPIO 8 as the receive. I used the values for the pin muxing found in the file imx6q-pinfunc.h in my device tree file.

I believe I found a problem in the #defines for these signals. First I used the definitions in the imx6q-pinfunc.h to make the device tree file with a 3.10.17 Linux release. I found that the UART2 was not operational and specifically I could not transmit any data from the terminal session attached to UART2. I then went to the documentation for the IMX6DQRM.pdf Document Number: IMX6DQRM Rev 2, 06/2014 to see what could be going on.


After reviewing the documentation of the pin muxing, I have come to the conclusion that the file imx6q-pinfunc.h has a defect. I proved it by making the edits and then booting the resulting Linux kernel to a prompt and observing that UART2 has a working transmit and receive set of signals.


Here is the existing code using branch imx_3.10.17_1.0.1_ga and also Linux version 3,19

#define MX6QDL_PAD_GPIO_8__UART2_RX_DATA  0x244 0x614 0x928 0x4 0x3

#define MX6QDL_PAD_GPIO_8__UART2_TX_DATA  0x244 0x614 0x000 0x4 0x0

#define MX6QDL_PAD_GPIO_7__UART2_TX_DATA  0x240 0x610 0x000 0x4 0x0

#define MX6QDL_PAD_GPIO_7__UART2_RX_DATA  0x240 0x610 0x928 0x4 0x2



// INCORRECT value #define MX6QDL_PAD_GPIO_7__UART2_TX_DATA            0x240 0x610 0x000 0x4 0x0

// REMOVE this the signal is not a receiver #define MX6QDL_PAD_GPIO_7__UART2_RX_DATA            0x240 0x610 0x928 0x4 0x2

#define MX6QDL_PAD_GPIO_7__UART2_TX_DATA            0x240 0x610 0x928 0x4 0x2


// REMOVE this  signal is not a transmitter #define MX6QDL_PAD_GPIO_8__UART2_TX_DATA            0x244 0x614 0x000 0x4 0x0

#define MX6QDL_PAD_GPIO_8__UART2_RX_DATA            0x244 0x614 0x928 0x4 0x3


I would appreciate feedback, perhaps I am missing something but it works for me using UART 2 GPIO 7 as a TX and GPIO 8 as an RX signal.