]> git.ipfire.org Git - thirdparty/linux.git/commit
spi: omap2-mcspi: drive SPI_CLK on transfer_setup()
authorBastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Fri, 12 Sep 2025 07:08:58 +0000 (09:08 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 22 Sep 2025 08:28:50 +0000 (09:28 +0100)
commit398a8a4e51dbd03e4103ea596ea4ea037fe67175
tree64faf897419ab3264434df9318b368aec680325a
parent30dbc1c8d50f13c1581b49abe46fe89f393eacbf
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>
drivers/spi/spi-omap2-mcspi.c