walnux/include/nuttx
Lee Lup Yuen b2c1930825 serial/uart_16550: Wait before setting Line Control Register (Synopsys DesignWare 8250)
Some UART Controllers (Synopsys DesignWare 8250) will trigger spurious interrupts when the Line Control Register (LCR) is set while the UART is busy. This patch provides the option (16550_WAIT_LCR) to wait for UART until it's not busy, before setting the LCR. (16550_WAIT_LCR is disabled by default)

This patch fixes the spurious UART interrupts for the upcoming port of NuttX to StarFive JH7110 SoC (with Synopsys DesignWare 8250 UART). [The patch is explained here](https://lupyuen.github.io/articles/plic#appendix-fix-the-spurious-uart-interrupts)

drivers/serial/uart_16550.c: If 16550_WAIT_LCR is enabled, wait until UART is not busy before setting LCR

include/nuttx/serial/uart_16550.h: Define the UART Status Register (USR) for checking if UART is busy

drivers/serial/Kconfig-16550: Added option 16550_WAIT_LCR to 16550 UART Config, disabled by default
2023-08-03 08:38:07 +02:00
..
1wire include: Haltian Ltd: update licenses to Apache 2021-11-15 06:49:32 -06:00
analog drivers: remove redundant parentheses 2023-07-31 18:56:40 -07:00
audio driver/audio: remove unnecessary switch in switch 2023-07-16 16:40:34 +08:00
binfmt libc/symtab: Don't include symtab.h in the header files 2023-07-10 23:03:17 +03:00
can include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
clk nuttx: unify FAR attribute usage across the code 2022-04-04 21:32:58 +08:00
contactless author: OffCode Ltd : update licenses to Apache 2021-09-13 22:43:36 +08:00
crypto crypto: Initial copy from https://github.com/openbsd/sys/crypto 2022-12-14 02:33:56 +08:00
dma include/dma: support to config dst/src drq for every dma channel 2023-04-22 01:02:51 +08:00
drivers Call nxsem_destroy or nxmutex_destry in the error path 2022-10-30 13:56:52 +01:00
eeprom include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
efuse Add ATSAMA5D2/D4 Secure Fuse Controller (SFC) driver 2023-05-12 16:29:48 -03:00
fs fs/pseudofile: config pseudofile feature 2023-07-31 22:22:58 -07:00
himem include: himem: Add Apache license to files 2022-04-20 21:05:45 +08:00
hwspinlock hwspinlock: Fix typo error(spin_lock_restore to spin_unlock_irqrestore) 2023-07-25 13:03:31 +02:00
i2c Added I2C Slave to RP2040 2022-07-16 01:56:52 +08:00
input Fix nuttx coding style 2023-07-11 23:32:17 +08:00
ioexpander drivers/ioexpander: add support for SX1509 2023-06-27 14:44:00 -03:00
lcd drivers/lcd: add area alignment ioctl for lcd driver 2023-07-13 01:03:18 +08:00
leds drivers/userled: add an interface to support LED effects. 2023-06-27 14:44:00 -03:00
lib Fix and improve dynamic loader 2023-07-13 10:11:58 +08:00
math add upper-half CORDIC driver 2021-07-28 14:23:13 -03:00
mbox drivers/mbox: Don't reference the nonexistent CONFIG_MBOX 2022-11-07 10:14:20 +01:00
mm mm/map: limit the count of memory mapping for the task 2023-08-02 22:57:28 -07:00
modem cxd56/alt1250: Change power on sequence 2023-07-06 13:18:57 +08:00
motor motor: Add calibration and selftest 2023-01-28 19:54:35 +02:00
mtd is25xp: Enable usage of several chips on the same spi bus 2023-06-10 02:14:23 +08:00
net libs: fix visual studio Compiler Error C2036 2023-07-14 01:23:16 +08:00
note semantic/parser: fix compile warning found by sparse 2023-05-30 23:00:00 +08:00
nx Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
power battery:fix poll return type 2023-07-12 11:06:47 -03:00
rc Replece clock_gettime(CLOCK_MONOTONIC) with clock_systime_timespec 2022-02-24 01:06:36 +08:00
rf include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
rptun rptun: add ns_match callback to resolve rptun deadlock 2022-07-27 20:36:51 +08:00
segger new feature on trace dump support segger-rtt 2023-07-16 14:37:21 +03:00
sensors sensor/gps: support gps driver model 2023-08-01 23:09:46 -07:00
serial serial/uart_16550: Wait before setting Line Control Register (Synopsys DesignWare 8250) 2023-08-03 08:38:07 +02:00
spi driver/spi_slave: support spi_slave asynchronous 2023-07-28 19:11:16 +03:00
syslog syslog: add syslog channel filtering function 2023-07-13 01:04:07 +08:00
timers qemu:add qemu rtc driver. 2023-08-02 03:27:55 -07:00
usb Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
usrsock move usrsock to kernel space 2023-01-11 15:14:03 +08:00
video Fix nuttx coding style 2023-07-31 10:54:53 -03:00
virtio include: virtio: Add VIRTIO_DEV_BLK definition to virtio-mmio.h 2023-05-13 13:58:09 +08:00
wireless include/nuttx/wireless/lte/lte.h: add fw_version field to lte_version_t 2023-07-23 19:56:38 +08:00
.gitignore
addrenv.h mm_heap: mm dump and panic only valid for the heap own by OS 2023-08-02 06:11:59 -07:00
allsyms.h libc/symtab: Don't include symtab.h in the header files 2023-07-10 23:03:17 +03:00
arch.h libs/libc/fork: add lib_fork implementation 2023-07-26 10:41:52 +02:00
ascii.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
atexit.h libc: Implement quick_exit and at_quick_exit 2023-01-25 14:31:37 +02:00
bits.h nuttx/bits.h: support GENMASK and GENMASK_ULL 2023-07-29 16:41:31 -03:00
board.h assert: add regs parameter to board_crashdump function 2023-06-13 09:42:27 +08:00
cache.h armv7/8 cache: add up_get_xcache_size() support 2023-07-15 15:11:07 +08:00
can.h stm32h7: socket CAN error handling. 2023-01-30 11:22:49 +08:00
cancelpt.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
clock.h sched/clock/clock_getcpuclockid: add clock_getcpuclockid implementation 2023-07-05 00:32:11 +08:00
compiler.h win/MSVC: add packed_struct macro implement 2023-07-14 01:18:09 +08:00
crc8.h libc/crc: Add full suffix to avoid the the penitential symbol collision 2022-08-29 18:06:53 +02:00
crc16.h arm64/a64: Add driver for MIPI DSI 2022-12-14 22:37:32 +08:00
crc32.h libc/crc: Add full suffix to avoid the the penitential symbol collision 2022-08-29 18:06:53 +02:00
crc64.h libc/crc: Add full suffix to avoid the the penitential symbol collision 2022-08-29 18:06:53 +02:00
elf.h binfmt: Always include arch/elf.h in include/nuttx/elf.h 2023-06-25 19:02:53 -03:00
environ.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
envpath.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-05 19:45:24 +02:00
fdcheck.h libc/fdcheck: add fdcheck module 2023-06-10 02:19:58 +08:00
gdbstub.h libs/libc:Support gdb rsp protocol 2023-07-15 01:57:11 +08:00
hashtable.h hashtable.h: Added a hashtable implementation 2022-12-22 20:20:12 +08:00
init.h boards: Remove the duplicated prototype of CONFIG_INIT_ENTRYPOINT 2022-10-16 19:02:44 +02:00
ipcc.h stm32wl5: fix unbuffered mode and other possible bugs 2022-08-18 11:46:38 +08:00
irq.h Indent the include statement by two spaces 2023-05-16 12:34:32 -03:00
kmalloc.h mm: include malloc.h in mm/mm.h 2023-06-11 19:37:04 +03:00
kthread.h sched/spawn: Support task_spawnattr_[set|get]stackaddr 2022-10-31 12:46:58 +09:00
lirc.h driver/rc: support IR remote control 2020-11-05 11:38:28 -03:00
list.h libs/pthread/pthread_atfork: fulfill implement pthread_atfork function 2023-07-26 10:41:52 +02:00
mmcsd.h drivers/mmcsd: Add MMC_IOC_CMD ioctl 2023-01-30 14:09:23 -03:00
module.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
mqueue.h Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
mutex.h misc/mutex: fix assertion if nxmutex_reset() before nxmutex_unlock() 2023-02-04 02:13:15 +08:00
notifier.h sched/misc:add linux-like reboot notifier list 2022-12-29 19:18:42 +08:00
nuttx.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
page.h nuttx/sched: merge up_block_task and up_unblock_task 2022-11-22 22:59:08 +08:00
panic_notifier.h assert:add a last type to call notifier 2023-01-05 22:58:00 +08:00
pgalloc.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
progmem.h progmem: eliminate PROGMEM_ERASESTATE configuration option 2022-03-22 10:01:41 -03:00
pthread.h sched/tls: remove PTHREAD_CLEANUP from Kconfig 2023-06-14 12:00:48 +08:00
queue.h net/nat: Add TCP entry expiration logic 2022-11-11 14:36:55 +08:00
random.h include: Haltian Ltd: update licenses to Apache 2021-11-15 06:49:32 -06:00
reboot_notifier.h reboot: Remove SYS_DOWN to avoid the confusion 2023-04-21 20:37:59 +03:00
sched.h sched: Rename DEBUG_TCBINFO to ARCH_HAVE_TCBINFO 2023-07-26 09:33:38 +02:00
sched_note.h drivers/note: replace sched_note_filter_dump to sched_note_filter_tag 2023-04-19 02:53:34 +08:00
scsi.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
sdio.h mmcsd/sdio: fix potential race condition in sdio 2023-03-21 14:40:44 -03:00
semaphore.h semaphore: Optimize priority inheritance with only one holder 2023-06-17 08:26:46 +03:00
signal.h include/nuttx: remove semicolon in _SIG_KILL definition 2023-07-07 17:39:39 -03:00
spawn.h sched/spawn: remove spawn proxy thread to simplify task/posix_spawn() 2023-04-27 17:35:58 +08:00
spinlock.h drivers/net/netdev: improve granularity of 'quota' locking 2023-07-01 15:27:09 -03:00
streams.h libc: export lib_sprintf_internal function 2023-07-14 00:22:11 +03:00
symtab.h libc/symtab: Move SYMTAB_XXX from unistd/Kconfig to symtab/Kconfig 2023-07-10 13:09:47 -03:00
tls.h libs/pthread/pthread_atfork: fulfill implement pthread_atfork function 2023-07-26 10:41:52 +02:00
trace.h trace: replace SCHED_NOTE_BEGIN to sched_note_begin 2023-04-19 02:53:34 +08:00
userspace.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-05 19:45:24 +02:00
vt100.h include: nuttx: update licenses to Apache 2.0 2021-02-01 11:21:57 -03:00
wdog.h libc: Move queue.h from include to include/nuttx 2022-09-26 08:04:58 +02:00
wqueue.h signal: Remove configurable assignment of signal numbers 2023-03-26 08:31:36 -06:00
zoneinfo.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-05 19:45:24 +02:00