diff --git a/drivers/serial/uart_mcux_lpuart.c b/drivers/serial/uart_mcux_lpuart.c index e4f752831deae50..7c7516c16f6d868 100644 --- a/drivers/serial/uart_mcux_lpuart.c +++ b/drivers/serial/uart_mcux_lpuart.c @@ -1090,6 +1090,23 @@ static int mcux_lpuart_configure_init(const struct device *dev, const struct uar return ret; } +#ifdef CONFIG_UART_ASYNC_API + uart_config.rxIdleType = kLPUART_IdleTypeStopBit; + uart_config.rxIdleConfig = kLPUART_IdleCharacter1; + data->async.next_rx_buffer = NULL; + data->async.next_rx_buffer_len = 0; + data->async.uart_dev = dev; + k_work_init_delayable(&data->async.rx_dma_params.timeout_work, + mcux_lpuart_async_rx_timeout); + k_work_init_delayable(&data->async.tx_dma_params.timeout_work, + mcux_lpuart_async_tx_timeout); + + /* Disable the UART Receiver until the async API provides a buffer to + * to receive into with rx_enable + */ + uart_config.enableRx = false; +#endif + LPUART_Init(config->base, &uart_config, clock_freq); if (cfg->flow_ctrl == UART_CFG_FLOW_CTRL_RS485) { diff --git a/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.conf b/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.conf new file mode 100644 index 000000000000000..5f2a8070c8948a5 --- /dev/null +++ b/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.conf @@ -0,0 +1,2 @@ +# Userspace is unable to access the nocache region. +CONFIG_USERSPACE=n diff --git a/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.overlay b/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.overlay index 1a0c35e198aa765..22ecfdfa712aea9 100644 --- a/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.overlay +++ b/tests/drivers/uart/uart_async_api/boards/mimxrt1064_evk.overlay @@ -1,11 +1,5 @@ /* SPDX-License-Identifier: Apache-2.0 */ -/ { - chosen { - zephyr,sram = &dtcm; - }; -}; - dut: &lpuart3 { status = "okay"; current-speed = <115200>;