AnsweredAssumed Answered

I.MX6Q UART3 hardware flow control not working

Question asked by Michael Doswald on Aug 13, 2014
Latest reply on May 11, 2016 by Deepanraj Anbarasan

Hello,

 

I am trying to use the UART3 on my SABRE board but can't get the hardware flow-control working correctly.

 

What I've done:

I use a Yocto image built from the official freescale BSP sources: meta-fsl-bsp-release.git - Freescale i.MX Yocto BSP Release Layer

I connected the UART3 via the following pins: EIM_D25 -> RX, EIM_D24 -> TX, EIM_D30 -> CTS, SD3_RST -> RTS

In the device tree, I've configured the uart3 with the following pins:

MX6QDL_PAD_EIM_D25__UART3_RX_DATA

MX6QDL_PAD_EIM_D24__UART3_TX_DATA

MX6QDL_PAD_EIM_D30__UART3_CTS_B

MX6QDL_PAD_SD3_RST__UART3_RTS_B

 

Now I can see the /dev/ttymxc2 device on my SABRE board and cat /sys/kernel/debug/pinctrl/pinctrl-handles shows that the pins are muxed for the serial port. Sending and receiving data works correctly if hardware flow-control is disabled. When I enable hardware flow-control, I can send data but receive data does not work.

 

Expected behaviour:

When trying to receive data, I expect that the i.MX6 would pull down the signal on EIM_D30 (UART3_CTS_B) to signal the other device that it is allowed to send data. But the signal is not pulled down and so the other device will not start sending data which in turn means, that the read operation on the i.MX6 will block forever.

 

 

Can anyone tell me what I am missing here? Are my expectations wrong? Did I misconfigure the UART3 (e.g. wrong device tree config)?

Outcomes