Hi,
We have a IMX6UL SOC and we are using a recent 5.15.82 kernel.
We want to use a THVD8000 transceiver (half duplex).
RX / TX works as intended, but the direction, which we want to set with RTS (output pin, so DTE RTS / DCE CTS), it is not working as intended. We expected the RTS goes only high when opening the serial port in transmit mode, but it seems to go high in both modes, so also in receive mode (and then RX doesn't work of course as the transceiver is in send mode). We tried using it via hw mode as well as GPIO, same behaviour. When manually setting the GPIO after disabling rtscts, tx / rx work as intended.
Do we make some wrong assumption that we can not use RTS for setting the direction of the transceiver?
Any other tips?
Device tree uart setting look like this:
&uart8 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart8>;
/*cts-rts-swap;*/
rts-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
status = "okay";
rs485-rts-delay = <1 1>;
rs485-enabled-at-boot-time;
uart-has-rtscts;
fsl,dte-mode;
};
/* UART8 external RS485 */
pinctrl_uart8: uart8grp {
fsl,pins = <
MX6UL_PAD_ENET2_TX_EN__UART8_DTE_TX 0x13008
MX6UL_PAD_ENET2_TX_DATA1__UART8_DTE_RX 0x13008
/*MX6UL_PAD_ENET2_TX_CLK__UART8_DTE_RTS 0x13008*/
>;
};
Thanks for any tips/suggestions,
Kind regards,
Clemens