# SPDX-License-Identifier: Apache-2.0

menuconfig UART_NS16550
	bool "NS16550 serial driver"
	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.

if UART_NS16550

config UART_NS16550_LINE_CTRL
	bool "Serial Line Control for Apps"
	depends on UART_LINE_CTRL
	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 "Driver Commands"
	depends on UART_DRV_CMD
	help
	  This enables the API for apps to send commands to driver.

	  Says n if not sure.

choice
	prompt "UART variant"
	default UART_NS16550_VARIANT_NS16550
	help
	  Select UART device variant

config UART_NS16550_VARIANT_NS16550
	bool "UART 16550 (16-bytes FIFO)"
	help
	  This enables support for 16-bytes FIFO if UART controller is 16550.

config UART_NS16550_VARIANT_NS16750
	bool "UART 16750 (64-bytes FIFO and auto flow control)"
	help
	  This enables support for 64-bytes FIFO and automatic hardware
	  flow control if UART controller is 16750.

config UART_NS16550_VARIANT_NS16950
	bool "UART 16950 (128-bytes FIFO and auto flow control)"
	help
	  This enables support for 128-bytes FIFO and automatic hardware flow control.
endchoice

config UART_NS16550_ACCESS_WORD_ONLY
	bool "NS16550 only allows word access"
	help
	  In some case, e.g. ARC HS Development kit, the peripheral space of ns
	  16550 (DesignWare UART) only allows word access, byte access will raise
	  exception.

config UART_NS16550_ACCESS_IOPORT
	bool
	help
	  When enabled, NS16550 will not be a memory mapped device. This option
	  must be selected at SoC/board level if needed.

menu "NS16550 Workarounds"

config UART_NS16550_WA_ISR_REENABLE_INTERRUPT
	bool "Re-enable interrupts by toggling IER at end of ISR"
	depends on UART_INTERRUPT_DRIVEN
	help
	  In some configurations (e.g. edge interrupt triggers),
	  an interruptible event occurs during ISR and the host interrupt
	  controller does not see the new event due to IIR is constantly
	  asserting interrupts. For example, the callback handles RX and
	  then TX. If another character comes in before end of TX processing
	  (TX interrupt still asserts while raising RX interrupt), the host
	  interrupt controller may not see this new event. So if needed,
	  the IER is being toggled to re-assert interrupts at the end of ISR
	  to nudge the host interrupt controller to fire the ISR again.

endmenu

endif # UART_NS16550
