How shall UART5 be configured for correct operation with RTS/CTS?
As on the SABRESDB board where an external Bluetooth device can be connected to UART5, I have a device connected.
The device has a RTS output connected to iMX6 KEY_ROW4 where this iMX pin should operate as input.
For my Linux kernel I have a DTS configuration like this:
&iomuxc {
uart5 {
pinctrl_uart5_1: uart5grp-1 {
fsl,pins = <
MX6QDL_PAD_KEY_ROW4__UART5_CTS_B 0x1b0b1 /* UART5_CTS */
MX6QDL_PAD_KEY_COL4__UART5_RTS_B 0x1b0b1 /* UART5_RTS */
>;
};
};
};
&uart5 {
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart5_1>;
//fsl,uart-has-rtscts;
//fsl,dte-mode;
status = "okay";
};
This configuration makes the KEY_ROW4 pad as output which collides with the RTS output from the external device.
If I understand the iMX6 reference manual correct this is also the case since UART5 is in DCE mode default.
Therefore I have also added "fsl,dte-mode" as above and uncommented it. No difference.
How shall I configure the DTS for appropriate function (input) on the KEY_ROW4 pad?
in the linux/arch/arm/mach-mx6/serial.h, the flow control of UART5 may be disabled by default. Please enable the flow control in the serial.h