You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.3 KiB
108 lines
3.3 KiB
# 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 |
|
select PINCTRL if $(dt_compat_any_has_prop,$(DT_COMPAT_NS16550),pinctrl-0) |
|
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
|
|
|