zephyr/drivers/spi
Scott Worley 5c00a83b99 drivers: spi: Microchip XEC QMSPI-LDMA fix spi buffer usage
Zephyr SPI driver model for full-duplex operation assumes
data will be transmitted and received during each clock period.
The QMSPI driver for the XEC family also supported dual and
quad I/O use cases which are inherently half-duplex. To
support dual/quad the driver incorrectly processed spi buffers
as all transmit buffers first then all receive buffers. This
worked if only the SPI driver was used. It did not work with
the Zephyr flash SPI NOR driver which assumes SPI drivers
follow the SPI driver model. This commit implements a QMSPI
driver that follows the Zephyr SPI driver model resulting in
a slightly smaller driver. Dual/quad SPI transactions are
supported if the experimental SPI extended mode Zephyr
configuration flag is enabled. We also remove the QMSPI full duplex
driver added previously to support the flash SPI NOR driver.
Added board to spi loop-back test and spi_flash sample.

Signed-off-by: Scott Worley <scott.worley@microchip.com>
2023-04-11 16:57:56 +02:00
..
CMakeLists.txt drivers: spi: Microchip XEC QMSPI-LDMA fix spi buffer usage 2023-04-11 16:57:56 +02:00
Kconfig spi: Add RTIO support to SPI 2023-04-03 09:51:02 +02:00
Kconfig.andes_atcspi200
Kconfig.b91
Kconfig.bitbang
Kconfig.cc13xx_cc26xx
Kconfig.dw
Kconfig.esp32
Kconfig.gd32
Kconfig.gecko
Kconfig.litex
Kconfig.mchp_mss_qspi
Kconfig.mcux_dspi
Kconfig.mcux_flexcomm
Kconfig.mcux_lpspi
Kconfig.npcx_fiu
Kconfig.nrfx
Kconfig.nxp_s32
Kconfig.oc_simple
Kconfig.pl022 drivers: spi: pl022: Add support DMA transfer 2023-04-07 13:20:16 +02:00
Kconfig.psoc6
Kconfig.pw drivers: spi: Add Intel SPI penwell driver 2023-03-21 13:39:33 +01:00
Kconfig.rv32m1_lpspi
Kconfig.sam spi: SAM add RTIO support 2023-04-03 09:51:02 +02:00
Kconfig.sam0
Kconfig.sifive
Kconfig.spi_emul
Kconfig.stm32
Kconfig.test
Kconfig.xec_qmspi drivers: spi: Microchip XEC QMSPI-LDMA fix spi buffer usage 2023-04-11 16:57:56 +02:00
Kconfig.xlnx
Kconfig.xmc4xxx drivers: spi: Add xmc4xxx driver 2023-03-03 17:20:17 +01:00
spi_andes_atcspi200.c
spi_andes_atcspi200.h
spi_b91.c
spi_bitbang.c
spi_cc13xx_cc26xx.c
spi_context.h drivers: spi_context: Refactor spi_context_wait_for_completion() 2023-01-27 01:22:15 +09:00
spi_dw_regs.h
spi_dw.c
spi_dw.h
spi_emul.c
spi_esp32_spim.c drivers: spi: esp32xx: Fix word size issue 2023-04-02 22:07:55 -04:00
spi_esp32_spim.h drivers: spi: esp32xx: Fix word size issue 2023-04-02 22:07:55 -04:00
spi_gd32.c drivers: spi: gd32 fix a transceive error 2023-04-05 20:44:54 +00:00
spi_gecko.c
spi_handlers.c
spi_litespi.c
spi_litespi.h
spi_ll_stm32.c
spi_ll_stm32.h
spi_mchp_mss_qspi.c
spi_mcux_dspi.c
spi_mcux_flexcomm.c
spi_mcux_lpspi.c
spi_npcx_fiu.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
spi_nrfx_spi.c soc: arm: nordic_nrf: replace NRF_DT_CHECK_PIN_ASSIGNMENTS 2023-02-28 08:42:05 -08:00
spi_nrfx_spim.c dts: arm: nordic: introduce easydma-maxcnt-bits 2023-03-24 10:31:32 +01:00
spi_nrfx_spis.c dts: arm: nordic: introduce easydma-maxcnt-bits 2023-03-24 10:31:32 +01:00
spi_nxp_s32.c
spi_nxp_s32.h
spi_oc_simple.c
spi_oc_simple.h
spi_pl022.c drivers: spi: pl022: Add support DMA transfer 2023-04-07 13:20:16 +02:00
spi_psoc6.c
spi_pw.c drivers: spi: Add Intel SPI penwell driver 2023-03-21 13:39:33 +01:00
spi_pw.h drivers: spi: Add Intel SPI penwell driver 2023-03-21 13:39:33 +01:00
spi_rtio.c spi: Add RTIO support to SPI 2023-04-03 09:51:02 +02:00
spi_rv32m1_lpspi.c
spi_sam0.c
spi_sam.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
spi_sifive.c
spi_sifive.h
spi_signal.c
spi_test.c
spi_xec_qmspi_ldma.c drivers: spi: Microchip XEC QMSPI-LDMA fix spi buffer usage 2023-04-11 16:57:56 +02:00
spi_xec_qmspi.c
spi_xlnx_axi_quadspi.c
spi_xmc4xxx.c drivers: spi: Add xmc4xxx driver 2023-03-03 17:20:17 +01:00