AnsweredAssumed Answered

How to enable hardware flow control for uart in L3.10.17

Question asked by Zongbiao Liao on Mar 17, 2015
Latest reply on Mar 24, 2015 by alejandrolozano



I am now working on a custom i.MX6Q board with Yocto(3.10.17_1.0.2),and I want to enable HW

flow control for UART2(Which is used for BT module).


When I worked with LTIB(3.0.35),I set the UART2 as below.

1)pin config





2)set CTSRTS flag.

   static const struct imxuart_platform_data mx6_xxxx_uart2_data __initconst = {

    .flags      = IMXUART_HAVE_RTSCTS,



static inline void mx6q_xxxx_init_uart(void)



    imx6q_add_imx_uart(1, &mx6_xxxx_uart2_data);    /* UART2:BT */




Then I test the UART2 with /unit_test/mxc_uart_xmit_test

./mxc_uart_xmit_test.out /dev/ttymxc1 -B 115200 -HW

The terminal output logs sent 10000 bytes with speed 105540.897098bps

According to the logs, the hardware flow control is enabled for UART2.


Now I am working with Yocto, and I set the UART2 in device tree files as below.

1)pin config.

       pinctrl_uart2_3: uart2grp-3 {

            fsl,pins = <

                MX6QDL_PAD_GPIO_8__UART2_RX_DATA   0x1b0b1

                MX6QDL_PAD_GPIO_7__UART2_TX_DATA   0x1b0b1

                MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1

                MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1





&uart2 {

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_uart2_3>;

    status = "okay";




Then I run the /unit_test/mxc_uart_xmit_test

./mxc_uart_xmit_test.out /dev/ttymxc1 -B 115200 -HW

There is no message like 'sent 10000 bytes with speed .....' output.


In the LTIB case,when it is running  mxc_uart_xmit_test, the UART2_RTS pin is always low.

But in the Yocto case,the UART2_RTS pin is always high.


I don't know whether is there something wrong with L3.10.17?

Could you help me.Thank you.


Best Regards,