# MCUXpresso SDK LPUART

# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0

config UART_MCUX_LPUART
	bool "MCUX LPUART driver"
	default y
	depends on DT_HAS_NXP_LPUART_ENABLED
	depends on CLOCK_CONTROL
	select SERIAL_HAS_DRIVER
	select SERIAL_SUPPORT_INTERRUPT
	select SERIAL_SUPPORT_ASYNC
	select DMA if UART_ASYNC_API
	select PINCTRL
	help
	  Enable the MCUX LPUART driver.

config UART_MCUX_LPUART_ISR_SUPPORT
	bool
	depends on UART_MCUX_LPUART
	default y if UART_INTERRUPT_DRIVEN || PM || UART_ASYNC_API
	help
	  Enable UART interrupt service routine.
