# 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. config UART_NS16550_INTEL_LPSS_DMA bool "INTEL LPSS support for NS16550" select SERIAL_SUPPORT_ASYNC select DMA if UART_ASYNC_API help This enables the usage of INTEL LPSS internal DMA for Async operations. 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_TI_K3 bool "Add support for NS16550 variant specific to TI K3 SoCs" help Enabling this configuration allows the users to use the UART port in Texas Instruments K3 SoCs by enabling a vendor specific extended register set. config UART_NS16550_ITE_HIGH_SPEED_BUADRATE bool "IT8XXX2 specific baud rate configuration" help Enable IT8XXX2 specific baud rate configuration. This applies to high-speed baud rate configuration. 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