AnsweredAssumed Answered

UART's with CTS ONLY to drive RS485 driver

Question asked by Ramgopal Kota on Jun 15, 2017
Latest reply on Apr 15, 2019 by Analogics Tech India Limited


I have a question on Hardware and Linux driver usage.

We are using iMX6UL CPU ( ) and want to use all the 8 CPU's.


We are reserving UART1 as debug console.

For rest of the UARTs (7 numbers) we want to drive a RS485 driver (ADM2687EBRIZ) direction control via CTS/RTS ?

As per the documentation I am not clear if I need to reserve RTS and CTS lines ? or just CTS lines is good enough ?

If CTS line is good enough then how to configure in the dts file ? All the DTS examples are using both the lines.


e.g. used is UART2 

Configure in the DTS to have 3 Lines Tx,Rx,CTS  (DCE Mode)


&uart2 {

pinctrl-names = "default";

pinctrl-0 = <&pinctrl_uart2>;


status = "okay";



In the imx.c driver , I see that if "have_rtsgpio" is not set then the toggling will not happen and the comment says RTS is required.The comment is based on UART mode in DTE as RTS is output in DTE only and input in DCE mode.



/* RTS is required to control the transmitter */

if (!sport->have_rtscts && !sport->have_rtsgpio)

     rs485conf->flags &= ~SER_RS485_ENABLED;


In the above structure , do I need to enable have_rtsgpio ? 

pinctrl_uart2: uart2grp {

fsl,pins =





In the above structure do I have to have RTS line also ?


Please correct me and help me with correct pins and dts structures.