# Kconfig - iMX7 M4 UART
#
# Copyright (c) 2018, NXP
#
# SPDX-License-Identifier: Apache-2.0
#


menuconfig UART_IMX
	bool "NXP i.MX7 family processor UART driver"
	default n
	select SERIAL_HAS_DRIVER
	select SERIAL_SUPPORT_INTERRUPT
	depends on HAS_IMX_HAL
	help
	  This option enables the UART driver for NXP i.MX7
	  family processors.

config UART_IMX_UART_1
	bool "Enable NXP i.MX7 UART1 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART1 port in the driver. Say y here
	  if you want to use UART1 device.

config UART_IMX_UART_2
	bool "Enable NXP i.MX7 UART2 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART2 port in the driver. Say y here
	  if you want to use UART2 device.

config UART_IMX_UART_3
	bool "Enable NXP i.MX7 UART3 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART3 port in the driver. Say y here
	  if you want to use UART3 device.

config UART_IMX_UART_4
	bool "Enable NXP i.MX7 UART4 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART4 port in the driver. Say y here
	  if you want to use UART4 device.

config UART_IMX_UART_5
	bool "Enable NXP i.MX7 UART5 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART5 port in the driver. Say y here
	  if you want to use UART5 device.

config UART_IMX_UART_6
	bool "Enable NXP i.MX7 UART6 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART6 port in the driver. Say y here
	  if you want to use UART6 device.

config UART_IMX_UART_7
	bool "Enable NXP i.MX7 UART7 Port"
	default n
	depends on UART_IMX
	help
	  Enable support for UART7 port in the driver. Say y here
	  if you want to use UART7 device.
