menuconfig UART_NS16550
	bool "NS16550 serial driver"
	default n
	select SERIAL_HAS_DRIVER
	select SERIAL_SUPPORT_INTERRUPT
	help
	  This option enables the NS16550 serial driver.
	  This driver can be used for the serial hardware
	  available on x86 boards.

config UART_NS16550_PCI
	bool "Enable PCI Support"
	default n
	depends on PCI && UART_NS16550
	help
	  This enables NS16550 to probe for PCI-based serial devices.

	  This option enables the driver to auto-detect the device
	  configuration required to access those ports.

config UART_NS16550_DLF
	bool "Enable Divisor Latch Fraction (DLF) support"
	default n
	depends on UART_NS16550
	help
	  This enables support for divisor latch fraction (DLF).
	  It is used to limit frequency error.

	  Says n if you are not sure if hardware supports this.

config UART_NS16550_LINE_CTRL
	bool "Enable Serial Line Control for Apps"
	default n
	depends on UART_LINE_CTRL && UART_NS16550
	help
	  This enables the API for apps to control the serial line,
	  such as CTS and RTS.

	  Says n if not sure.

config UART_NS16550_DRV_CMD
	bool "Enable Driver Commands"
	default n
	depends on UART_DRV_CMD && UART_NS16550
	help
	  This enables the API for apps to send commands to driver.

	  Says n if not sure.

config UART_NS16750
	bool "Enable 64-bytes FIFO for UART 16750"
	default n
	depends on UART_NS16550
	help
	  This enables support for 64-bytes FIFO if UART controller is 16750.

# ---------- Port 0 ----------

menuconfig UART_NS16550_PORT_0
	bool "Enable NS16550 Port 0"
	default n
	depends on UART_NS16550
	help
	  This tells the driver to configure the UART port at boot, depending on
	  the additional configure options below.

if !HAS_DTS
config UART_NS16550_PORT_0_NAME
	string "Port 0 Device Name"
	default "UART_0"
	depends on UART_NS16550_PORT_0
	help
	  This is the device name for UART, and is included in the device
	  struct.

if !HAS_DTS && !ARC
config UART_NS16550_PORT_0_IRQ_PRI
	int "Port 0 Interrupt Priority"
	default 0
	depends on UART_NS16550_PORT_0
	help
	  The interrupt priority for UART port.
endif

config UART_NS16550_PORT_0_BAUD_RATE
	int "Port 0 Baud Rate"
	default 0
	depends on UART_NS16550_PORT_0
	help
	  The baud rate for UART port to be set to at boot.

	  Leave at 0 to skip initialization.
endif

config UART_NS16550_PORT_0_OPTIONS
	int "Port 0 Options"
	default 0
	depends on UART_NS16550_PORT_0
	help
	  Options used for port initialization.

config UART_NS16550_PORT_0_DLF
	hex "Port 0 DLF value"
	default 0x0
	depends on UART_NS16550_PORT_0 && UART_NS16550_DLF
	help
	  Value for DLF register.

config UART_NS16550_PORT_0_PCI
	bool "Port 0 is PCI-based"
	default n
	depends on UART_NS16550_PCI && UART_NS16550_PORT_0
	help
	  Obtain port information from PCI.

# ---------- Port 1 ----------

menuconfig UART_NS16550_PORT_1
	bool "Enable NS16550 Port 1"
	default n
	depends on UART_NS16550
	help
	  This tells the driver to configure the UART port at boot, depending on
	  the additional configure options below.

if !HAS_DTS
config UART_NS16550_PORT_1_NAME
	string "Port 1 Device Name"
	default "UART_1"
	depends on UART_NS16550_PORT_1
	help
	  This is the device name for UART, and is included in the device
	  struct.

if !HAS_DTS && !ARC
config UART_NS16550_PORT_1_IRQ_PRI
	int "Port 1 Interrupt Priority"
	default 0
	depends on UART_NS16550_PORT_1
	help
	  The interrupt priority for UART port.
endif

config UART_NS16550_PORT_1_BAUD_RATE
	int "Port 1 Baud Rate"
	default 0
	depends on UART_NS16550_PORT_1
	help
	  The baud rate for UART port to be set to at boot.

	  Leave at 0 to skip initialization.
endif

config UART_NS16550_PORT_1_OPTIONS
	int "Port 1 Options"
	default 0
	depends on UART_NS16550_PORT_1
	help
	  Options used for port initialization.

config UART_NS16550_PORT_1_DLF
	hex "Port 1 DLF value"
	default 0x0
	depends on UART_NS16550_PORT_1 && UART_NS16550_DLF
	help
	  Value for DLF register.

# ---------- Port 2 ----------

menuconfig UART_NS16550_PORT_2
	bool "Enable NS16550 Port 2"
	default n
	depends on UART_NS16550
	help
	  This tells the driver to configure the UART port at boot, depending on
	  the additional configure options below.


config UART_NS16550_PORT_2_OPTIONS
	int "Port 2 Options"
	default 0
	depends on UART_NS16550_PORT_2
	help
	  Options used for port initialization.

config UART_NS16550_PORT_2_DLF
	hex "Port 2 DLF value"
	default 0x0
	depends on UART_NS16550_PORT_2 && UART_NS16550_DLF
	help
	  Value for DLF register.
