i was able to fix this issue by implementing the following:
static void rs485_enable_runtime(void)
{
const struct device *dev = DEVICE_DT_GET(DT_NODELABEL(lpuart3));
struct uart_config cfg;
if (!device_is_ready(dev)) {
printk("lpuart3 not ready\n");
return;
}
if (uart_config_get(dev, &cfg) == 0) {
cfg.flow_ctrl = UART_CFG_FLOW_CTRL_RS485; // RS-485 via DE/RTS
if (uart_configure(dev, &cfg) != 0) {
printk("uart_configure RS-485 failed\n");
}
}
}
The issue was caused by a bit not being set correctly in the A55 core's register. This, to me, points to an issue in the driver.