zephyr/drivers/serial
Daniel Leung 9f02eeadf8 serial: allow callback setting to be exclusive
Both the IRQ API and Asynchronous API support callback.
However, since they are both interrupt driven, having
callbacks on both API would interfere with each other
in almost all cases. So this adds a kconfig to signal
that the callbacks should be exclusive to each other.
In other words, if one is set, the other should not
be active. Drivers implementing both APIs have been
updated to remove the callbacks from the other API.
Though, this still leaves the option to disable
the kconfig and allows both APIs to have callbacks
if one desires.

Fixes #48606

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2023-07-18 11:13:02 +00:00
..
CMakeLists.txt drivers serial native ptty: Split in top and bottom 2023-07-10 09:53:22 +02:00
Kconfig serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
Kconfig.altera drivers: serial: uart_altera: add driver 2023-02-23 09:26:33 +01:00
Kconfig.altera_jtag drivers: serial: uart_altera_jtag: enhancement 2023-01-27 14:24:43 -05:00
Kconfig.apbuart
Kconfig.b91
Kconfig.cc13xx_cc26xx
Kconfig.cc32xx drivers: serial: cc32xx: add support for pinctrl 2023-06-17 07:55:43 -04:00
Kconfig.cdns drivers: serial: Add Driver for CDNS UART IP6528 2022-12-12 12:19:35 -05:00
Kconfig.cmsdk_apb
Kconfig.efinix_sapphire drivers: serial: add uart_efinix_sapphire initial version 2023-06-27 12:09:57 +00:00
Kconfig.emul serial: Add driver for emulated UART 2023-03-27 09:50:44 +02:00
Kconfig.esp32 drivers: uart: esp32s3: add async support 2023-06-17 08:00:31 -04:00
Kconfig.gd32
Kconfig.gecko
Kconfig.hostlink drivers: serial: add virtual uart over ARC hostlink channel 2023-03-17 11:49:02 +01:00
Kconfig.ifx_cat1 drivers: serial: Add Infineon CAT1 UART driver 2023-03-01 11:44:57 +01:00
Kconfig.imx
Kconfig.it8xxx2 drivers: serial: ite_it8xxx2: add a dedicated priority symbol 2023-05-26 13:51:08 -04:00
Kconfig.leuart_gecko
Kconfig.litex
Kconfig.lpc11u6x
Kconfig.mcux drivers: uart_mcux: Do not select async support 2023-05-02 21:02:43 +02:00
Kconfig.mcux_flexcomm drivers: uart_mcux_flexcomm: Merge conditions for enabling ISR 2023-07-06 11:48:49 +02:00
Kconfig.mcux_iuart
Kconfig.mcux_lpsci
Kconfig.mcux_lpuart drivers: all: mcux: remove conditional support for pinctrl 2023-04-24 13:34:22 +02:00
Kconfig.miv drivers: serial: uart_miv: Disable SERIAL_SUPPORT_INTERRUPT 2023-05-08 16:59:21 -04:00
Kconfig.msp432p4xx
Kconfig.native_posix drivers serial native ptty: Split in top and bottom 2023-07-10 09:53:22 +02:00
Kconfig.native_tty drivers: uart: add support for serial ports on native posix 2023-06-21 09:27:22 +02:00
Kconfig.neorv32
Kconfig.npcx
Kconfig.nrfx drivers: uart_nrfx_uarte: Revert workaround for bytes dropping 2023-04-04 13:45:17 +02:00
Kconfig.ns16550 drivers: uart: Add support for UART_NS16550 TI K3 variant 2023-07-14 09:37:44 +02:00
Kconfig.numaker drivers: serial: support for Nuvoton numaker series UART 2023-06-21 09:26:00 +00:00
Kconfig.numicro
Kconfig.nxp_s32 drivers: serial: rename S32 to NXP S32 2023-01-04 16:51:38 +01:00
Kconfig.opentitan drivers: serial: Add support for OpenTitan serial UART 2023-01-27 19:25:26 +09:00
Kconfig.pl011 driver: uart: pl011_sbsa: refine creating device instance 2023-05-17 09:49:03 +02:00
Kconfig.psoc6
Kconfig.ql_usbserialport_s3b drivers: serial: Add QuickLogic USBserialport_S3B support 2022-10-20 15:41:09 +02:00
Kconfig.rcar
Kconfig.rpi_pico drivers: serial: Added rpi_pico driver over PIO 2023-04-25 13:12:02 +02:00
Kconfig.rtt serial: rtt: select SERIAL_SUPPORT_ASYNC 2023-03-30 09:51:18 +02:00
Kconfig.rv32m1_lpuart drivers: all: rv32m1: remove conditional support for pinctrl 2023-04-24 13:34:22 +02:00
Kconfig.sam0
Kconfig.sifive
Kconfig.smartbond
Kconfig.stellaris
Kconfig.stm32 drivers: serial: Reset UART using RCC before initialization 2022-12-09 09:43:36 -08:00
Kconfig.test
Kconfig.uart_sam
Kconfig.usart_sam
Kconfig.xec
Kconfig.xen
Kconfig.xlnx
Kconfig.xmc4xxx drivers: serial: xmc4xxx: Fix Kconfig help entry 2023-02-21 21:15:53 +01:00
leuart_gecko.c soc: arm: silabs: remove soc_gpio_configure wrapper 2022-12-20 22:50:19 +01:00
serial_esp32_usb.c dts: xtensa: espressif: esp32s3: add USB CDC support 2023-07-06 09:46:37 +00:00
serial_test.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00
uart_altera_jtag.c drivers: serial: uart_altera_jtag: enhancement 2023-01-27 14:24:43 -05:00
uart_altera.c drivers: serial: uart_altera: add driver 2023-02-23 09:26:33 +01:00
uart_apbuart.c drivers/apbuart: correct the baud formula 2023-03-27 22:15:33 +00:00
uart_b91.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
uart_cc13xx_cc26xx.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_cc32xx.c drivers: serial: cc32xx: add support for pinctrl 2023-06-17 07:55:43 -04:00
uart_cdns.c drivers: serial: Add Driver for CDNS UART IP6528 2022-12-12 12:19:35 -05:00
uart_cdns.h drivers: serial: Add Driver for CDNS UART IP6528 2022-12-12 12:19:35 -05:00
uart_cmsdk_apb.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
uart_efinix_sapphire.c drivers: serial: add uart_efinix_sapphire initial version 2023-06-27 12:09:57 +00:00
uart_emul.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00
uart_esp32.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_gecko.c drivers: uart: gecko: add support for efr32xg24 2023-04-04 13:34:45 +02:00
uart_handlers.c
uart_hostlink.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00
uart_hvc_xen_consoleio.c
uart_hvc_xen.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
uart_ifx_cat1.c drivers: serial: Add Infineon CAT1 UART driver 2023-03-01 11:44:57 +01:00
uart_imx.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_ite_it8xxx2.c drivers: serial: ite_it8xxx2: add a dedicated priority symbol 2023-05-26 13:51:08 -04:00
uart_liteuart.c
uart_lpc11u6x.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
uart_lpc11u6x.h
uart_mchp_xec.c uart: microchip: fix build error with PM_DEVICE=n 2023-01-30 18:54:59 +00:00
uart_mcux_flexcomm.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_mcux_iuart.c nxp: imx: Implement iuart clock gating 2023-03-15 09:13:10 +01:00
uart_mcux_lpsci.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_mcux_lpuart.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_mcux.c drivers: uart_mcux: Do not enable and disable the transmitter 2023-05-16 12:08:32 +02:00
uart_miv.c treewide: rename Microsemi to Microchip 2023-05-04 10:47:07 +02:00
uart_msp432p4xx.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_native_ptty_bottom.c drivers serial native ptty: Split in top and bottom 2023-07-10 09:53:22 +02:00
uart_native_ptty_bottom.h drivers serial native ptty: Split in top and bottom 2023-07-10 09:53:22 +02:00
uart_native_ptty.c drivers serial native ptty: Split in top and bottom 2023-07-10 09:53:22 +02:00
uart_native_tty.c drivers: uart: add support for serial ports on native posix 2023-06-21 09:27:22 +02:00
uart_neorv32.c boards: riscv: neorv32: Updates compatibility to neoverse v1.8.6 2023-07-11 18:19:55 +00:00
uart_npcx.c intc: miwu: npcx: improve interrupt latency of miwu input events 2023-05-17 09:48:54 +02:00
uart_nrfx_uart.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_nrfx_uarte.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_ns16550.c drivers: uart: Add support for UART_NS16550 TI K3 variant 2023-07-14 09:37:44 +02:00
uart_ns16550.h uart: ns16550: move command macro to public header 2022-11-10 22:40:21 -05:00
uart_numaker.c drivers: serial: support for Nuvoton numaker series UART 2023-06-21 09:26:00 +00:00
uart_numicro.c drivers: serial: numicro: fix poll_in function 2022-12-08 18:46:33 +01:00
uart_nxp_s32_linflexd.c drivers: serial: rename S32 to NXP S32 2023-01-04 16:51:38 +01:00
uart_nxp_s32_linflexd.h drivers: serial: rename S32 to NXP S32 2023-01-04 16:51:38 +01:00
uart_opentitan.c drivers: serial: Add support for OpenTitan serial UART 2023-01-27 19:25:26 +09:00
uart_pipe.c
uart_pl011.c barriers: Move __ISB() to the new API 2023-05-24 13:13:57 -04:00
uart_psoc6.c
uart_ql_usbserialport_s3b.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00
uart_ql_usbserialport_s3b.h drivers: serial: Add QuickLogic USBserialport_S3B support 2022-10-20 15:41:09 +02:00
uart_rcar.c drivers: uart_rcar: do MMIO mapping inside driver 2023-07-11 11:17:41 +02:00
uart_rpi_pico_pio.c drivers: serial: Added rpi_pico driver over PIO 2023-04-25 13:12:02 +02:00
uart_rpi_pico.c driver: uart: Fix Modbus data currupted by DE-RE signal 2023-06-21 09:34:08 +00:00
uart_rtt.c drivers: serial: uart_rtt: fix multi-channel 2023-02-25 06:55:58 -05:00
uart_rv32m1_lpuart.c drivers: all: rv32m1: remove conditional support for pinctrl 2023-04-24 13:34:22 +02:00
uart_sam0.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_sam.c drivers: uart: atmel_sam: Added reset after error check 2023-06-29 21:07:32 +02:00
uart_sifive.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_smartbond.c include: add missing zephyr/kernel.h 2022-10-20 22:52:09 +09:00
uart_stellaris.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_stm32.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
uart_stm32.h drivers: serial: stm32 uart implements driver enable 2023-05-26 14:55:30 -04:00
uart_xlnx_ps.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
uart_xlnx_uartlite.c serial: xilinx: uartlite: Fix infinite spin in xlnx_uartlite_fifo_read 2023-03-20 10:21:37 +01:00
uart_xmc4xxx.c serial: allow callback setting to be exclusive 2023-07-18 11:13:02 +00:00
usart_gd32.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
usart_sam.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00