diff options
author | Nick Brassel <[email protected]> | 2024-07-18 08:59:08 +1000 |
---|---|---|
committer | GitHub <[email protected]> | 2024-07-18 08:59:08 +1000 |
commit | daa777d6fb655c5fe16df4b3f1e89a37ab35dc57 (patch) | |
tree | dd89eb39d781a9d512a6dcfc529f8ba6fedb1770 /platforms/chibios | |
parent | e69be076fc1da66e7cebbb5f4f7ad9ddb851d687 (diff) | |
download | qmk_firmware-daa777d6fb655c5fe16df4b3f1e89a37ab35dc57.tar.gz qmk_firmware-daa777d6fb655c5fe16df4b3f1e89a37ab35dc57.zip |
[WIP] Adds bus acquire/release semantics to SPI start/stop. (#23439)
Diffstat (limited to 'platforms/chibios')
-rw-r--r-- | platforms/chibios/drivers/spi_master.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index 57fc53d49f..fcdbc9ecf0 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -64,9 +64,14 @@ __attribute__((weak)) void spi_init(void) { } bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { +#if (SPI_USE_MUTUAL_EXCLUSION == TRUE) + spiAcquireBus(&SPI_DRIVER); +#endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) + if (spiStarted) { return false; } + #if SPI_SELECT_MODE != SPI_SELECT_MODE_NONE if (slavePin == NO_PIN) { return false; @@ -326,4 +331,8 @@ void spi_stop(void) { spiStop(&SPI_DRIVER); spiStarted = false; } + +#if (SPI_USE_MUTUAL_EXCLUSION == TRUE) + spiReleaseBus(&SPI_DRIVER); +#endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE) } |