linux/drivers/spi
Bastien Curutchet (Schneider Electric) 398a8a4e51
spi: omap2-mcspi: drive SPI_CLK on transfer_setup()
If the cached contents of the CHCONF register doesn't have the FORCE bit
set, the setup() function failed to set the relevant idle state of the
SPI_CLK pin. In such case, the SPI_CLK's idle state is reached later with
set_cs(), but it's too late for the first SPI transfer which fails since
the CS is asserted before the clock reaching its idle state.

Add a first write in setup() that always sets the FORCE bit.
Keep the current write afterwards to ensure the FORCE bit won't stay in
the cached contents of the CHCONF register unless it's intended.

Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Link: https://patch.msgid.link/20250912-omap-spi-fix-v1-1-f925b0d27ede@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-09-22 09:28:50 +01:00
..
Kconfig Add RSPI support for RZ/V2H 2025-07-24 22:32:27 +01:00
Makefile Add RSPI support for RZ/V2H 2025-07-24 22:32:27 +01:00
atmel-quadspi.c treewide: Remove redundant 2025-07-07 16:12:21 +01:00
internals.h spi: Rework per message DMA mapped flag to be per transfer 2024-06-10 12:49:03 +01:00
spi-airoha-snfi.c Linux 6.12-rc2 2024-10-07 14:53:15 +01:00
spi-altera-core.c spi: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +01:00
spi-altera-dfl.c spi: spi-altera-dfl: switch to use modern name 2022-12-29 13:22:04 +00:00
spi-altera-platform.c spi: altera: Drop unneeded MODULE_ALIAS 2024-04-15 10:17:25 +09:00
spi-amd-pci.c spi: spi_amd: Fix an IS_ERR() vs NULL check in probe 2025-04-09 13:47:45 +01:00
spi-amd.c spi: spi_amd: Add HIDDMA basic write support 2025-05-19 13:13:37 +01:00
spi-amd.h spi: spi_amd: Add PCI-based driver for AMD HID2 SPI controller 2025-04-06 23:26:10 +01:00
spi-amlogic-spifc-a1.c spi: amlogic-spifc-a1: Support per spi-mem operation frequency switches 2025-01-09 20:16:26 +00:00
spi-amlogic-spisg.c spi: SPISG: Fix less than zero comparison on a u32 variable 2025-07-25 18:46:31 +01:00
spi-apple.c spi: apple: Set use_gpio_descriptors to true 2024-12-02 00:29:47 +00:00
spi-ar934x.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-armada-3700.c spi: armada-3700: use 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:26 +09:00
spi-aspeed-smc.c spi: spi-mem: Introduce a default ->exec_op() debug log 2025-03-20 12:37:11 +00:00
spi-at91-usart.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-ath79.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-atmel.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-au1550.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-axi-spi-engine.c include: linux: move adi-axi-common.h out of fpga 2025-06-30 17:57:15 -07:00
spi-bcm-qspi.c spi: bcm-qspi: fix SFDP BFPT read by usig mspi read 2024-01-23 13:28:03 +00:00
spi-bcm-qspi.h spi: bcm-qspi: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: fix shared reset 2025-05-30 11:42:38 +01:00
spi-bcm63xx.c spi: bcm63xx-spi: fix shared reset 2025-05-30 11:42:38 +01:00
spi-bcm2835.c spi: bcm2835: Restore native CS probing when pinctrl-bcm2835 is absent 2025-04-02 12:55:32 +01:00
spi-bcm2835aux.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-bcmbca-hsspi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-bitbang-txrx.h spi: Get rid of old SPI_MASTER_NO_TX & SPI_MASTER_NO_RX 2023-07-11 13:41:20 +01:00
spi-bitbang.c spi: bitbang: Implement support for MOSI idle state configuration 2024-07-29 01:19:52 +01:00
spi-brcmstb-qspi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-butterfly.c parport: Remove parport_driver.devmodel 2024-07-03 16:44:22 +02:00
spi-cadence-quadspi.c spi: cadence-qspi: defer runtime support on socfpga if reset bit is enabled 2025-09-18 22:24:03 +01:00
spi-cadence-xspi.c spi: cadence: Fix out-of-bounds array access in cdns_mrvl_xspi_setup_clock() 2025-03-31 16:38:32 +01:00
spi-cadence.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-cavium-octeon.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-cavium-thunderx.c spi: spi-cavium-thunderx: Use non-hybrid PCI devres API 2025-04-17 12:25:42 +01:00
spi-cavium.c spi: cavium: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:50 +00:00
spi-cavium.h spi: cavium: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:50 +00:00
spi-ch341.c spi: ch341: switch to use devm_spi_alloc_host() 2024-09-30 01:12:04 +02:00
spi-clps711x.c spi: clps711x: switch to use modern name 2023-08-07 14:38:28 +01:00
spi-coldfire-qspi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-cs42l43.c spi: cs42l43: Property entry should be a null-terminated array 2025-08-01 14:36:21 +01:00
spi-davinci.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-dln2.c Linux 6.12-rc2 2024-10-07 14:53:15 +01:00
spi-dw-bt1.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-dw-core.c spi: dw: Use spi_bpw_to_bytes() helper 2025-04-17 17:30:41 +01:00
spi-dw-dma.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-dw-mmio.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-dw-pci.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-dw.h spi: dw: Convert dw_spi::num_cs to u32 2024-05-03 11:09:24 +09:00
spi-ep93xx.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-falcon.c spi: falcon: mark falcon_sflash_xfer() as static 2025-06-18 17:23:10 +01:00
spi-fsi.c spi: fsi: Batch TX operations 2025-02-03 19:24:44 +00:00
spi-fsl-cpm.c spi: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +01:00
spi-fsl-cpm.h spi: fsl: remove is_dma_mapped checks 2024-03-28 21:09:46 +00:00
spi-fsl-dspi.c spidev: introduce trivial abb sensor device 2025-07-21 15:39:07 +01:00
spi-fsl-espi.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-fsl-lib.c spi: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +01:00
spi-fsl-lib.h spi: fsl: Remove unused extern declarations 2023-07-25 17:40:28 +01:00
spi-fsl-lpspi.c spi: spi-fsl-lpspi: Add compatible for S32G 2025-09-01 13:12:32 +01:00
spi-fsl-qspi.c spi: fsl-qspi: Optimize fsl_qspi struct 2025-04-13 20:27:02 +01:00
spi-fsl-spi.c spi: fsl-spi: Remove display of virtual address 2025-01-09 12:03:29 +00:00
spi-fsl-spi.h
spi-geni-qcom.c spi: geni-qcom: Fix boot warning related to pm_runtime and devres 2024-10-22 20:49:02 +01:00
spi-gpio.c spi: gpio: Use explicit 'unsigned int' for parameter types 2025-07-16 11:15:31 +01:00
spi-gxp.c spi: spi-gxp: BUG: Correct spi write return value 2023-09-27 17:06:36 +02:00
spi-hisi-kunpeng.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-hisi-sfc-v3xx.c spi: fix typo in the comment 2024-09-30 01:12:21 +02:00
spi-img-spfi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-imx.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-ingenic.c spi: ingenic: Use new spi_xfer_is_dma_mapped() helper 2024-06-10 12:48:59 +01:00
spi-intel-pci.c spi: intel: Improve resource mapping 2025-04-24 12:56:59 +01:00
spi-intel-platform.c spi: intel: Improve resource mapping 2025-04-24 12:56:59 +01:00
spi-intel.c spi: intel: Allow writeable MTD partition with module param 2025-07-25 13:44:36 +01:00
spi-intel.h spi: intel: Improve resource mapping 2025-04-24 12:56:59 +01:00
spi-iproc-qspi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-jcore.c spi: jcore: switch to use modern name 2023-08-14 13:11:05 +01:00
spi-kspi2.c spi: spi-kspi2: Add KEBA SPI controller support 2024-12-04 16:25:22 +00:00
spi-lantiq-ssc.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-ljca.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-lm70llp.c parport: Remove parport_driver.devmodel 2024-07-03 16:44:22 +02:00
spi-loongson-core.c spi: loongson: Fix build warnings about export.h 2025-06-08 23:30:04 +01:00
spi-loongson-pci.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-loongson-plat.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-loongson.h spi: loongson: add bus driver for the loongson spi controller 2023-07-31 15:57:09 +01:00
spi-loopback-test.c spi: Updates for v6.16 2025-05-27 15:53:55 -07:00
spi-lp8841-rtc.c spi: lp-8841: switch to use modern name 2023-09-11 01:31:31 +01:00
spi-mem.c spi: Fixes for v6.17 2025-08-21 16:28:00 -04:00
spi-meson-spicc.c spi: meson-spicc: add DMA support 2025-04-24 19:11:49 +01:00
spi-meson-spifc.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-microchip-core-qspi.c spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback 2025-08-29 13:39:11 +02:00
spi-microchip-core.c spi: microchip-core: prevent RX overflows when transmit size > FIFO size 2025-03-03 12:10:03 +00:00
spi-mpc52xx-psc.c spi: fix typo in the comment 2024-09-30 01:12:21 +02:00
spi-mpc52xx.c spi: mpc52xx: Add cancel_work_sync before module remove 2024-12-02 00:29:46 +00:00
spi-mpc512x-psc.c spi: mpc512x-psc: switch to use modern name 2023-09-11 01:31:35 +01:00
spi-mt65xx.c spi: spi-mt65xx: Add support for MT6991 Dimensity 9400 SPI IPM 2025-06-11 12:46:21 +01:00
spi-mt7621.c spi: mt7621: allow GPIO chip select lines 2024-03-25 15:03:02 +00:00
spi-mtk-nor.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-mtk-snfi.c spi: spi-mem: Introduce a default ->exec_op() debug log 2025-03-20 12:37:11 +00:00
spi-mux.c spi: spi-mux: Fix coverity issue, unchecked return value 2025-03-16 23:34:25 +00:00
spi-mxic.c spi: mxic: Support per spi-mem operation frequency switches 2025-01-09 20:16:32 +00:00
spi-mxs.c spi: mxs: support effective_speed_hz 2024-12-09 13:14:36 +00:00
spi-npcm-fiu.c spi: spi-mem: Introduce a default ->exec_op() debug log 2025-03-20 12:37:11 +00:00
spi-npcm-pspi.c Linux 6.12-rc2 2024-10-07 14:53:15 +01:00
spi-nxp-fspi.c Locking updates for v6.16: 2025-07-29 18:11:32 -07:00
spi-oc-tiny.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-offload-trigger-adi-util-sigma-delta.c spi: offload trigger: add ADI Util Sigma-Delta SPI driver 2025-07-01 22:06:05 +01:00
spi-offload-trigger-pwm.c spi: spi-offload-trigger-pwm: add extra headers 2025-02-11 13:15:29 +00:00
spi-offload.c spi: offload: check offload ops existence before disabling the trigger 2025-06-09 13:31:50 +01:00
spi-omap-uwire.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-omap2-mcspi.c spi: omap2-mcspi: drive SPI_CLK on transfer_setup() 2025-09-22 09:28:50 +01:00
spi-orion.c Linux 6.12-rc2 2024-10-07 14:53:15 +01:00
spi-pci1xxxx.c spi: spi-pci1xxxx: enable concurrent DMA read/write across SPI transfers 2025-06-30 12:15:45 +01:00
spi-pic32-sqi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-pic32.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-pl022.c spi: fix typo in the comment 2024-09-30 01:12:21 +02:00
spi-ppc4xx.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-pxa2xx-dma.c spi: pxa2xx: Remove DMA parameters from struct chip_data 2024-05-03 11:11:36 +09:00
spi-pxa2xx-pci.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-pxa2xx-platform.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
spi-pxa2xx.c spi: pxa2xx: Fix regression when toggling chip select on LPSS devices 2025-02-04 19:09:07 +00:00
spi-pxa2xx.h spi: pxa2xx: Do not override dev->platform_data on probe 2024-08-22 13:34:05 +01:00
spi-qcom-qspi.c spi: Use of_property_present() for non-boolean properties 2024-11-04 19:18:19 +00:00
spi-qpic-snand.c spi: spi-qpic-snand: unregister ECC engine on probe error and device remove 2025-09-03 14:49:58 +01:00
spi-qup.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-rb4xx.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-realtek-rtl-snand.c spi: realtek-rtl-snand: Drop unneeded assignment for cache_type 2025-02-03 00:41:38 +00:00
spi-realtek-rtl.c spi: realtek-rtl: switch to use devm_spi_alloc_host() 2023-08-21 14:29:28 +01:00
spi-rockchip-sfc.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-rockchip.c spi-rockchip: Fix register out of bounds access 2025-03-26 13:31:00 +00:00
spi-rpc-if.c spi: rpc-if: Add write support for memory-mapped area 2025-05-08 23:12:38 +09:00
spi-rspi.c spi: rspi: Convert to DEFINE_SIMPLE_DEV_PM_OPS() 2025-07-10 09:16:15 +01:00
spi-rzv2h-rspi.c spi: Add driver for the RZ/V2H(P) RSPI IP 2025-07-24 14:00:23 +01:00
spi-rzv2m-csi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-s3c64xx.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-sc18is602.c spi: sc18is602: Switch to generic firmware properties and drop of_match_ptr() 2024-12-02 00:32:30 +00:00
spi-sg2044-nor.c spi: spi-sg2044-nor: Add SPI-NOR controller for SG2042 2025-07-24 13:28:17 +01:00
spi-sh-hspi.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-sh-msiof.c spi: sh-msiof: Convert to DEFINE_SIMPLE_DEV_PM_OPS() 2025-07-10 09:16:14 +01:00
spi-sh-sci.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-sh.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-sifive.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-slave-mt27xx.c spi: replace and remove 2024-09-30 22:43:40 +01:00
spi-slave-system-control.c spi: slave-system-control: switch to use spi_target_abort() 2024-09-10 12:41:38 +01:00
spi-slave-time.c spi: slave-time: switch to use spi_target_abort() 2024-09-10 12:41:37 +01:00
spi-sn-f-ospi.c spi: sn-f-ospi: Fix division by zero 2025-02-06 11:33:51 +00:00
spi-sprd-adi.c spi: sprd-adi: switch to use spi_alloc_host() 2023-12-11 12:54:53 +00:00
spi-sprd.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-st-ssc4.c spi: st: fix PM macros to use CONFIG_PM instead of CONFIG_PM_SLEEP 2025-08-21 13:14:10 +01:00
spi-stm32-ospi.c spi: stm32-ospi: Fix NULL vs IS_ERR() bug in stm32_ospi_get_resources() 2025-07-16 16:35:18 +01:00
spi-stm32-qspi.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-stm32.c treewide: Remove redundant 2025-07-07 16:12:21 +01:00
spi-sun4i.c spi: spi-sun4i: fix early activation 2025-05-14 10:56:43 +02:00
spi-sun6i.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-sunplus-sp7021.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-synquacer.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-tegra20-sflash.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-tegra20-slink.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-tegra114.c spi: tegra114: Use value to check for invalid delays 2025-05-08 10:32:40 +09:00
spi-tegra210-quad.c spi: tegra210-qspi: Remove cache operations 2025-06-13 17:30:56 +01:00
spi-test.h
spi-ti-qspi.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi-tle62x0.c
spi-topcliff-pch.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-uniphier.c Linux 6.12-rc2 2024-10-07 14:53:15 +01:00
spi-wpcm-fiu.c spi: wpcm-fiu: Simplify with dev_err_probe() 2024-08-28 22:22:24 +01:00
spi-xcomm.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
spi-xilinx.c spi: xilinx: Fix block comment style and minor cleanups 2025-07-10 09:16:13 +01:00
spi-xlp.c spi: xlp: use 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:32 +09:00
spi-xtensa-xtfpga.c spi: Switch back to struct platform_driver::remove() 2024-09-30 01:12:23 +02:00
spi-zynq-qspi.c spi: spi-mem: Introduce a default ->exec_op() debug log 2025-03-20 12:37:11 +00:00
spi-zynqmp-gqspi.c spi: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-05 00:50:32 +01:00
spi.c spi: Updates for v6.17 2025-07-28 23:03:09 -07:00
spidev.c spi: spidev: Add an entry for the ABB spi sensors 2025-07-21 13:47:05 +01:00