108 lines
3.2 KiB
Plaintext
108 lines
3.2 KiB
Plaintext
# 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"
|
|
select PINCTRL
|
|
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_DW8250_DW_APB
|
|
bool "Synopsys DesignWare 8250"
|
|
help
|
|
This enables support for Synopsys DesignWare 8250 UART controller.
|
|
|
|
config UART_NS16550_ITE_HIGH_SPEED_BAUDRATE
|
|
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
|