Hello,
Currently trying to enable full hardware flow control on LPUART4 on a iMX93, I've had success enabling RTS and CTS but haven't been able to get DSR, DCD, and DTR enabled.
My DT pins are defined as follows:
pinctrl_uart4: uart4grp {
fsl,pins = <
MX93_PAD_ENET2_RD0__LPUART4_RX 0x31e
MX93_PAD_ENET2_TD0__LPUART4_TX 0x31e
MX93_PAD_ENET2_TD1__LPUART4_RTS_B 0x31e
MX93_PAD_ENET2_RD2__LPUART4_CTS_B 0x31e
MX93_PAD_ENET2_RX_CTL__LPUART4_DSR_B 0x31e
MX93_PAD_ENET2_TX_CTL__LPUART4_DTR_B 0x31e
>;
};
and
lpuart4: serial@42580000 {
compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
reg = <0x42580000 0x1000>;
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPUART4_GATE>;
clock-names = "ipg";
dmas = <&edma2 19 0 0>, <&edma2 20 0 1>;
dma-names = "tx","rx";
uart-has-rtscts;
status = "ok";
};
but when looking at the driver it doesnt seem to recognize RTS or DTR and I don't have a pin available for DCD.
]# cat /proc/tty/driver/fsl-lpuart
serinfo:1.0 driver revision:
0: uart:FSL_LPUART mmio:0x44380010 irq:18 tx:12447 rx:43 RTS|CTS|DTR|DSR|CD
1: uart:FSL_LPUART mmio:0x42690010 irq:24 tx:0 rx:0 CTS|DSR|CD
2: uart:FSL_LPUART mmio:0x42570010 irq:20 tx:0 rx:0 CTS|DSR|CD
3: uart:FSL_LPUART mmio:0x42580010 irq:21 tx:0 rx:0 CTS|DSR|CD
4: uart:FSL_LPUART mmio:0x42590010 irq:22 tx:0 rx:0 CTS|DSR|CD
5: uart:FSL_LPUART mmio:0x425A0010 irq:23 tx:0 rx:0 CTS|DSR|CD
6: uart:FSL_LPUART mmio:0x44390010 irq:19 tx:0 rx:0 CTS|DSR|CD
I've looked through imx93-pinfunc.h for DCD but dont see an assignment, which is okay we can do it with a GPIO if needed but looking at page 4978 of IMX93RM it appears that the MODEM control register supports a DCD pin mapping.
Looking through some of the other nxp devtree files I have seen a reference to a device tree option such as rts-gpios, cts-gpios, dtr-gpios, dsr-gpios, and dcd-gpios but it appears this is assigning those pins as a gpio to be handled in software and not to the peripheral device?
Confusingly uart0 is my debug port and it has all pins activated yet those pins aren't defined in my device tree and are not wired up on my hardware.
I've searched through kernel message log to make sure there were no pin assignment conflicts as well.
Any help is appreciated,
Thank you,
Walter