serial: introduce SERIAL_SUPPORT_INTERRUPT Kconfig option
As not all drivers support interrupts we don't have a means to know if we can allow UART_INTERRUPT_DRIVEN to be enabled and thus various Kconfig options that select UART_INTERRUPT_DRIVEN. Some drivers have a interrupts, however not all do. So introduce a Kconfig option to let us know what the driver actually supports. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
fe882f407d
commit
461b5018d3
|
@ -25,10 +25,18 @@ config SERIAL_HAS_DRIVER
|
|||
to signal that there is a serial driver. This is being used
|
||||
by other drivers which are dependent on serial.
|
||||
|
||||
config SERIAL_SUPPORT_INTERRUPT
|
||||
bool
|
||||
default n
|
||||
help
|
||||
This is an option to be enabled by individual serial driver
|
||||
to signal that the driver and hardware supports interrupts.
|
||||
|
||||
config UART_INTERRUPT_DRIVEN
|
||||
bool
|
||||
prompt "Enable UART Interrupt support"
|
||||
default n
|
||||
depends on SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
This option enables interrupt support for UART allowing console
|
||||
input and other UART based drivers.
|
||||
|
|
|
@ -3,6 +3,7 @@ menuconfig UART_CC32XX
|
|||
bool "CC32XX UART driver"
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
depends on SOC_FAMILY_TISIMPLELINK
|
||||
help
|
||||
This option enables the CC32XX UART driver, for UART_0.
|
||||
|
|
|
@ -10,6 +10,7 @@ menuconfig UART_CMSDK_APB
|
|||
bool "ARM CMSDK APB UART driver"
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
depends on SOC_FAMILY_ARM
|
||||
help
|
||||
This option enables the UART driver for ARM CMSDK APB UART.
|
||||
|
|
|
@ -10,6 +10,7 @@ menuconfig UART_FE310
|
|||
depends on SOC_RISCV32_FE310
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
This option enables the SiFive Freedom E310 serial driver.
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ menuconfig UART_MCUX
|
|||
depends on HAS_MCUX
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
Enable the MCUX uart driver.
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ menuconfig UART_MCUX_LPSCI
|
|||
depends on HAS_MCUX && HAS_LPSCI
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
Enable the MCUX LPSCI driver.
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ menuconfig UART_MCUX_LPUART
|
|||
depends on HAS_MCUX && HAS_LPUART
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
Enable the MCUX LPUART driver.
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ menuconfig UART_NRF5
|
|||
bool "Nordic Semiconductor NRF5 family processor UART driver"
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
depends on SOC_FAMILY_NRF5
|
||||
select GPIO_NRF5
|
||||
help
|
||||
|
|
|
@ -2,6 +2,7 @@ menuconfig UART_NS16550
|
|||
bool "NS16550 serial driver"
|
||||
default n
|
||||
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
|
||||
|
|
|
@ -3,6 +3,7 @@ menuconfig UART_QMSI
|
|||
bool "QMSI UART driver"
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
This option enables the QMSI UART driver.
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ menuconfig UART_STELLARIS
|
|||
bool "Stellaris serial driver"
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
help
|
||||
This option enables the Stellaris serial driver.
|
||||
This specific driver can be used for the serial hardware
|
||||
|
|
|
@ -9,6 +9,7 @@ menuconfig UART_STM32
|
|||
bool "STM32 MCU serial driver"
|
||||
default n
|
||||
select SERIAL_HAS_DRIVER
|
||||
select SERIAL_SUPPORT_INTERRUPT
|
||||
depends on SOC_FAMILY_STM32
|
||||
help
|
||||
This option enables the UART driver for STM32F10x family of
|
||||
|
|
|
@ -85,11 +85,6 @@ static const struct uart_driver_api uart_altera_jtag_driver_api = {
|
|||
.poll_in = NULL,
|
||||
.poll_out = &uart_altera_jtag_poll_out,
|
||||
.err_check = NULL,
|
||||
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
||||
|
||||
#error "Interrupt-driven Altera JTAG UART not implemented yet"
|
||||
|
||||
#endif
|
||||
};
|
||||
|
||||
static const struct uart_device_config uart_altera_jtag_dev_cfg_0 = {
|
||||
|
|
|
@ -52,11 +52,6 @@ static const struct uart_driver_api esp32_uart_api = {
|
|||
.poll_in = &esp32_uart_rx,
|
||||
.poll_out = &esp32_uart_tx,
|
||||
.err_check = NULL,
|
||||
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
||||
|
||||
#error "Interrupt-driven ESP32 UART not implemented yet"
|
||||
|
||||
#endif
|
||||
};
|
||||
|
||||
DEVICE_AND_API_INIT(esp32_uart, "ROMUART",
|
||||
|
|
|
@ -38,9 +38,6 @@ static const struct uart_driver_api uart_riscv_qemu_driver_api = {
|
|||
.poll_in = uart_riscv_qemu_poll_in,
|
||||
.poll_out = uart_riscv_qemu_poll_out,
|
||||
.err_check = NULL,
|
||||
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
||||
#error "Interrupt not available in uart riscv32-qemu"
|
||||
#endif
|
||||
};
|
||||
|
||||
static const struct uart_device_config uart_riscv_qemu_dev_cfg_0 = {
|
||||
|
|
Loading…
Reference in a new issue