freebsd-nq/sys/arm/allwinner
Andriy Gapon 08ff54dc5b aw_spi: improve I/O stability
This driver does not use DMA at the moment, so some care is needed to
prevent TX FIFO underruns and RX FIFO overflows.
Several improvements are done in oder to minimize chances of those.

First, the interrupt handling is moved to a filter to minimize latency.
Second, FIFO trigger thresholds are configured for both FIFOs.
The TX FIFO threshold is set to 3/4-th of its size and the RX FIFO
threshold is set to 1/4-th of its size.
The interrupt conditions are changed from the empty FIFO and full FIFO
for the TX and RX correspondingly to going below and above the thresholds.

While here I renamed AW_SPI_IER_RF_ERQ to AW_SPI_IER_RF_RDY which is
closer to what the documentation uses, RF_RDY_INT_EN in the interrupt
control register and RX_RDY in the interrupt status register.

Reviewed by:	manu
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D33558
2021-12-20 12:40:17 +02:00
..
a10 arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
a13
a20 arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
a31
a33
a64 arm64: allwinner: Add i2s and codec support 2021-06-11 21:06:08 +02:00
a83t
clkng arm64: allwinner: clk: Test with the current parent freq first 2021-05-31 14:10:24 +02:00
h3
h6
a10_ahci.c newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
a10_codec.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
a10_dmac.c
a10_dmac.h
a10_fb.c
a10_hdmi.c
a10_hdmiaudio.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
a10_sramc.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
a10_sramc.h
a10_timer.c arm: allwinner: a23 timer functions are only used for arm64 2020-11-26 17:19:47 +00:00
a31_dmac.c
a33_codec.c arm64: allwinner: Add i2s and codec support 2021-06-11 21:06:08 +02:00
allwinner_pinctrl.h
aw_ccu.c
aw_cir.c arm: allwinner: cir: Reduce verbosity 2021-07-22 14:55:03 +02:00
aw_dwc3.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
aw_gmacclk.c
aw_gpio.c Remove the pre-ARMv6 and pre-INTRNG code. 2020-11-29 08:40:12 +00:00
aw_i2s.c arm64: allwinner: Add i2s and codec support 2021-06-11 21:06:08 +02:00
aw_if_dwc.c Finish renaming in if_dwc. 2020-06-19 18:34:27 +00:00
aw_machdep.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
aw_machdep.h
aw_mmc.c mmc: switch mmc_helper to device_ api 2021-09-20 17:18:02 +02:00
aw_mmc.h
aw_mp.c
aw_mp.h
aw_nmi.c arm: allwinner: aw_nmi: Fix wrong logic when we disable the nmi 2020-09-20 16:11:38 +00:00
aw_pwm.c aw_pwm: add a check and some comments related to long periods 2020-09-25 07:41:51 +00:00
aw_r_intc.c arm64: allwinner: Add r_intc driver 2021-07-01 18:46:38 +02:00
aw_reset.c
aw_rsb.c allwinner: rsb: Set the PMIC to RSB mode 2021-07-24 17:46:25 +02:00
aw_rtc.c arm: allwinner: aw_rtc: Add H6 compatible 2020-11-25 11:20:04 +00:00
aw_sid.c arm: allwinner: aw_sid: Fix thermal calibration size for A64 2020-04-15 13:35:28 +00:00
aw_sid.h
aw_spi.c aw_spi: improve I/O stability 2021-12-20 12:40:17 +02:00
aw_syscon.c
aw_thermal.c allwinner: aw_thermal: Cope with DTS changes 2020-04-14 19:05:17 +00:00
aw_ts.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (13 of many) 2020-02-24 10:45:22 +00:00
aw_usb3phy.c
aw_usbphy.c aw_usbphy: add support for device mode operation 2020-09-21 10:02:11 +00:00
aw_wdog.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
aw_wdog.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
axp81x.c arm64: allwinner: axp81x: Add support for regnode_status 2021-05-21 17:37:37 +02:00
axp209.c arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
axp209reg.h arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
files.allwinner armv7: allwinner: Add aw_r_intc driver 2021-07-05 11:38:23 +02:00
files.allwinner_up
if_awg.c if_awg: Add a awg_dma_start_tx function that trigger dma engine 2020-11-20 11:30:44 +00:00
if_awgreg.h
if_emac.c Fix a common typo in source code comments 2021-08-14 14:17:48 +02:00
if_emacreg.h
std.allwinner
std.allwinner_up
sunxi_dma_if.m