9f9b4a8afa
The old CONFIG_UART_NS16550_ACCESS_IOPORT has been used to indicate whether to access the NS16550 UART via IO port before device tree is used to describe hardware. Now we have device tree, and we can specify whether a particular UART needs to be accessed via IO port using property io-mapped. Therefore, CONFIG_UART_NS16550_ACCESS_IOPORT is no longer needed (and thus also CONFIG_UART_NS16550_SIMULT_ACCESS). Remove these two kconfigs and modify code to use device tree to figure out how to access the UART hardware. Signed-off-by: Daniel Leung <daniel.leung@intel.com>
99 lines
3.1 KiB
Plaintext
99 lines
3.1 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.
|
|
|
|
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_PARENT_INIT_LEVEL
|
|
bool "Boot level based on parent node"
|
|
default y if ACPI
|
|
help
|
|
Boot level based on parent node (PCI or no PCI device). Some platforms the
|
|
PCI bus driver depends on ACPI sub system to retrieve platform information
|
|
such as interrupt routing information. But ACPI sub system currently support
|
|
only post kernel and hence such platforms the UART driver instance init
|
|
should be invoked only post kernel in case parent node is PCI.
|
|
|
|
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.
|
|
|
|
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
|