# SPDX-License-Identifier: Apache-2.0

menuconfig UART_NS16550
	bool "NS16550 serial driver"
	default y
	depends on DT_HAS_NS16550_ENABLED
	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 UART_NS16550_VARIANT
	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.

config UART_NS16550_SIMULT_ACCESS
	bool
	help
	  When enabled, NS16550 supports IO, MMIO, PCIe UART devices simultaneously.
	  For io-mapped instances, io-mapped DTS property need to be added in dtsi.

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
