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
a13
a20
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
a10_dmac.c
a10_dmac.h
a10_fb.c
a10_hdmi.c
a10_hdmiaudio.c
a10_sramc.c
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
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
aw_machdep.c
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
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
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
aw_ts.c
aw_usb3phy.c
aw_usbphy.c
aw_wdog.c
aw_wdog.h
axp81x.c arm64: allwinner: axp81x: Add support for regnode_status 2021-05-21 17:37:37 +02:00
axp209.c
axp209reg.h
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