# 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_KINETIS_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
	select MFD if DT_HAS_NXP_LP_FLEXCOMM_ENABLED
	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.
