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 drivers: spi: add Andes atcspi200 driver 2022-09-07 15:34:47 +02:00
Kconfig.b91 drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.bitbang drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.cc13xx_cc26xx drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.dw drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.esp32 drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.gd32 drivers: spi: gd32: Add support DMA transfer 2023-01-11 08:50:56 -08:00
Kconfig.gecko drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.litex drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.mchp_mss_qspi drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.mcux_dspi drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.mcux_flexcomm drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.mcux_lpspi drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.npcx_fiu drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.nrfx drivers: spi: nrfx_spim: move rx delay to DT 2022-07-19 13:20:00 -07:00
Kconfig.nxp_s32 arch: support nocache for Cortex-R52 2022-12-12 10:39:31 +01:00
Kconfig.oc_simple drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.pl022 drivers: spi: pl022: Add support DMA transfer 2023-04-07 13:20:16 +02:00
Kconfig.psoc6 drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.pw drivers: spi: Add Intel SPI penwell driver 2023-03-21 13:39:33 +01:00
Kconfig.rv32m1_lpspi drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.sam spi: SAM add RTIO support 2023-04-03 09:51:02 +02:00
Kconfig.sam0 drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.sifive drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.spi_emul drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.stm32 drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.test drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.xec_qmspi drivers: spi: Microchip XEC QMSPI-LDMA fix spi buffer usage 2023-04-11 16:57:56 +02:00
Kconfig.xlnx drivers: spi: Update drivers to use devicetree Kconfig symbol 2022-07-25 09:38:30 +02:00
Kconfig.xmc4xxx drivers: spi: Add xmc4xxx driver 2023-03-03 17:20:17 +01:00
spi_andes_atcspi200.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_andes_atcspi200.h drivers: spi: add Andes atcspi200 driver 2022-09-07 15:34:47 +02:00
spi_b91.c spi: callback API for asynchronous transcieve 2022-08-26 09:29:48 -04:00
spi_bitbang.c spi: callback API for asynchronous transcieve 2022-08-26 09:29:48 -04:00
spi_cc13xx_cc26xx.c spi: callback API for asynchronous transcieve 2022-08-26 09:29:48 -04:00
spi_context.h drivers: spi_context: Refactor spi_context_wait_for_completion() 2023-01-27 01:22:15 +09:00
spi_dw.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_dw.h drivers: ipm/spi/intc: remove Intel S1000 support 2022-06-13 16:19:51 -04:00
spi_dw_regs.h drivers: spi_dw: add WORD only access support 2019-09-17 20:40:38 +08:00
spi_emul.c emul: remove name param from bus register APIs 2022-07-19 15:52:36 -05:00
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 dts: spi: silabs: make peripheral-id property optional 2023-01-17 15:37:27 -06:00
spi_handlers.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
spi_litespi.c drivers: spi: litespi: Migrate spi_context_complete usage 2022-09-01 01:02:50 +09:00
spi_litespi.h drivers: spi: spi_litespi: Update driver registers 2022-05-27 15:27:11 -07:00
spi_ll_stm32.c drivers: spi: fix 16 bit spi dma transfers for the STM32 driver 2023-01-20 16:11:48 +01:00
spi_ll_stm32.h drivers: spi : driver with DMA for the stm32u5 2022-09-07 15:34:35 +02:00
spi_mchp_mss_qspi.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_mcux_dspi.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_mcux_flexcomm.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_mcux_lpspi.c drivers: spi_mcux_lpspi: fix baudrate change when switching devices 2022-11-30 11:28:22 +01:00
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 drivers: spi: introduce SPI driver for NXP S32 2022-11-24 09:37:24 +01:00
spi_nxp_s32.h drivers: spi: introduce SPI driver for NXP S32 2022-11-24 09:37:24 +01:00
spi_oc_simple.c spi: callback API for asynchronous transcieve 2022-08-26 09:29:48 -04:00
spi_oc_simple.h device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
spi_pl022.c drivers: spi: pl022: Add support DMA transfer 2023-04-07 13:20:16 +02:00
spi_psoc6.c drivers: spi: psoc6: Fix spi_psoc6_transceive calls 2022-09-01 01:02:50 +09:00
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 include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_sam.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
spi_sam0.c spi: callback API for asynchronous transcieve 2022-08-26 09:29:48 -04:00
spi_sifive.c drivers: spi: sifive: Migrate spi_context_{complete,lock} usage 2022-09-01 01:02:50 +09:00
spi_sifive.h drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
spi_signal.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
spi_test.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
spi_xec_qmspi.c spi: mec15xx: add pinctrl for mec15xx/mec1501 qmspi 2022-09-21 18:05:32 +00:00
spi_xec_qmspi_ldma.c drivers: spi: Microchip XEC QMSPI-LDMA fix spi buffer usage 2023-04-11 16:57:56 +02:00
spi_xlnx_axi_quadspi.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
spi_xmc4xxx.c drivers: spi: Add xmc4xxx driver 2023-03-03 17:20:17 +01:00