# Copyright 2022 NXP
# SPDX-License-Identifier: Apache-2.0

config UART_NXP_S32_LINFLEXD
	bool "LINFlexD UART driver for NXP S32 family processors"
	default y
	depends on DT_HAS_NXP_S32_LINFLEXD_ENABLED
	select PINCTRL
	select SERIAL_HAS_DRIVER
	select SERIAL_SUPPORT_INTERRUPT
	select NOCACHE_MEMORY if ARCH_HAS_NOCACHE_MEMORY_SUPPORT
	help
	  Enable the LINFlexD UART driver for NXP S32 family processors.

if UART_NXP_S32_LINFLEXD

config UART_NXP_S32_POLL_OUT_TIMEOUT
	int "The maximum duration to transfer a byte data in blocking mode"
	default 10000
	help
	  Maximum duration in micro-seconds to transfer a byte data in blocking mode.

config UART_NXP_S32_POLL_IN_TIMEOUT
	int "The maximum duration to receive a byte data in blocking mode"
	default 10000
	help
	  Maximum duration in micro-seconds to receive a byte data in blocking mode.

endif # UART_NXP_S32_LINFLEXD
