From 908a347d2f7a3b5fa8862ca63fd9bd8b2baba89d Mon Sep 17 00:00:00 2001 From: Jay Blackman Date: Fri, 24 Jan 2025 08:17:28 +1100 Subject: [PATCH] Refactor SPI pre init to make it generic and usable from io.h (#14174) --- mk/source.mk | 1 + src/main/drivers/accgyro/accgyro_mpu.c | 6 +- .../drivers/barometer/barometer_2smpb_02b.c | 2 +- src/main/drivers/barometer/barometer_bmp280.c | 2 +- src/main/drivers/barometer/barometer_bmp388.c | 2 +- src/main/drivers/barometer/barometer_dps310.c | 2 +- .../drivers/barometer/barometer_lps22df.c | 2 +- src/main/drivers/barometer/barometer_ms5611.c | 2 +- src/main/drivers/bus_spi.h | 4 -- src/main/drivers/bus_spi_config.c | 64 ++----------------- src/main/drivers/compass/compass_ak8963.c | 2 +- src/main/drivers/flash/flash.c | 7 +- src/main/drivers/flash/flash.h | 2 +- src/main/drivers/io.h | 9 +++ src/main/drivers/io_preinit.c | 58 +++++++++++++++++ src/main/drivers/max7456.c | 4 +- src/main/drivers/max7456.h | 2 +- src/main/drivers/rx/rx_spi.c | 4 +- src/main/drivers/rx/rx_spi.h | 2 +- src/main/drivers/sdcard.c | 4 +- src/main/drivers/sdcard.h | 2 +- src/main/drivers/sdcard_impl.h | 2 +- src/main/drivers/sdcard_spi.c | 6 +- src/main/sensors/barometer.c | 2 +- src/main/sensors/compass.c | 2 +- src/main/target/common_post.h | 8 --- src/platform/STM32/mk/STM32F4.mk | 4 -- src/platform/STM32/mk/STM32F7.mk | 4 -- src/platform/STM32/mk/STM32G4.mk | 4 -- src/platform/STM32/mk/STM32H5.mk | 4 -- src/platform/STM32/mk/STM32H7.mk | 4 -- src/platform/STM32/mk/STM32_COMMON.mk | 4 ++ src/test/unit/baro_bmp280_unittest.cc | 2 +- src/test/unit/baro_bmp388_unittest.cc | 2 +- src/test/unit/baro_ms5611_unittest.cc | 2 +- 35 files changed, 107 insertions(+), 126 deletions(-) create mode 100644 src/main/drivers/io_preinit.c diff --git a/mk/source.mk b/mk/source.mk index 8fe65dde2f..f455771251 100644 --- a/mk/source.mk +++ b/mk/source.mk @@ -104,6 +104,7 @@ COMMON_SRC = \ drivers/display_canvas.c \ drivers/dma_common.c \ drivers/io.c \ + drivers/io_preinit.c \ drivers/light_led.c \ drivers/mco.c \ drivers/motor.c \ diff --git a/src/main/drivers/accgyro/accgyro_mpu.c b/src/main/drivers/accgyro/accgyro_mpu.c index 1f1943dc3b..415e0af98b 100644 --- a/src/main/drivers/accgyro/accgyro_mpu.c +++ b/src/main/drivers/accgyro/accgyro_mpu.c @@ -410,9 +410,7 @@ static bool detectSPISensorsAndUpdateDetectionResult(gyroDev_t *gyro, const gyro } // Detection failed, disable CS pin again - - spiPreinitByTag(config->csnTag); - + ioPreinitByIO(gyro->dev.busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); return false; } #endif @@ -420,7 +418,7 @@ static bool detectSPISensorsAndUpdateDetectionResult(gyroDev_t *gyro, const gyro void mpuPreInit(const struct gyroDeviceConfig_s *config) { #ifdef USE_SPI_GYRO - spiPreinitRegister(config->csnTag, IOCFG_IPU, 1); + ioPreinitByTag(config->csnTag, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); #else UNUSED(config); #endif diff --git a/src/main/drivers/barometer/barometer_2smpb_02b.c b/src/main/drivers/barometer/barometer_2smpb_02b.c index 0af77c4b9d..a54a930159 100644 --- a/src/main/drivers/barometer/barometer_2smpb_02b.c +++ b/src/main/drivers/barometer/barometer_2smpb_02b.c @@ -192,7 +192,7 @@ static void busDeviceDeInit(const extDevice_t *dev) { #ifdef USE_BARO_SPI_2SMBP_02B if (dev->bus->busType == BUS_TYPE_SPI) { - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #else UNUSED(dev); diff --git a/src/main/drivers/barometer/barometer_bmp280.c b/src/main/drivers/barometer/barometer_bmp280.c index 77773888e0..4dc55468e5 100644 --- a/src/main/drivers/barometer/barometer_bmp280.c +++ b/src/main/drivers/barometer/barometer_bmp280.c @@ -135,7 +135,7 @@ void bmp280BusDeinit(const extDevice_t *dev) { #ifdef USE_BARO_SPI_BMP280 if (dev->bus->busType == BUS_TYPE_SPI) { - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #else UNUSED(dev); diff --git a/src/main/drivers/barometer/barometer_bmp388.c b/src/main/drivers/barometer/barometer_bmp388.c index c7dfbb8dd7..6fa2e1efb7 100644 --- a/src/main/drivers/barometer/barometer_bmp388.c +++ b/src/main/drivers/barometer/barometer_bmp388.c @@ -230,7 +230,7 @@ void bmp388BusDeinit(const extDevice_t *dev) { #ifdef USE_BARO_SPI_BMP388 if (dev->bus->busType == BUS_TYPE_SPI) { - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #else UNUSED(dev); diff --git a/src/main/drivers/barometer/barometer_dps310.c b/src/main/drivers/barometer/barometer_dps310.c index 9653f95d0a..23e5e0923a 100644 --- a/src/main/drivers/barometer/barometer_dps310.c +++ b/src/main/drivers/barometer/barometer_dps310.c @@ -377,7 +377,7 @@ static void deviceDeInit(const extDevice_t *dev) { #ifdef USE_BARO_SPI_DPS310 if (dev->bus->busType == BUS_TYPE_SPI) { - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #else UNUSED(dev); diff --git a/src/main/drivers/barometer/barometer_lps22df.c b/src/main/drivers/barometer/barometer_lps22df.c index 31771e6616..4ab3620e6c 100644 --- a/src/main/drivers/barometer/barometer_lps22df.c +++ b/src/main/drivers/barometer/barometer_lps22df.c @@ -245,7 +245,7 @@ void lps22dfBusDeinit(const extDevice_t *dev) { #ifdef USE_BARO_SPI_LPS22DF if (dev->bus->busType == BUS_TYPE_SPI) { - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #else UNUSED(dev); diff --git a/src/main/drivers/barometer/barometer_ms5611.c b/src/main/drivers/barometer/barometer_ms5611.c index 41af52619b..3223cde2c2 100644 --- a/src/main/drivers/barometer/barometer_ms5611.c +++ b/src/main/drivers/barometer/barometer_ms5611.c @@ -80,7 +80,7 @@ void ms5611BusDeinit(const extDevice_t *dev) { #ifdef USE_BARO_SPI_MS5611 if (dev->bus->busType == BUS_TYPE_SPI) { - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #else UNUSED(dev); diff --git a/src/main/drivers/bus_spi.h b/src/main/drivers/bus_spi.h index 530d38899a..b355cbaab3 100644 --- a/src/main/drivers/bus_spi.h +++ b/src/main/drivers/bus_spi.h @@ -65,10 +65,6 @@ typedef enum SPIDevice { #define SPI_DEV_TO_CFG(x) ((x) + 1) void spiPreinit(void); -void spiPreinitRegister(ioTag_t iotag, uint8_t iocfg, uint8_t init); -void spiPreinitByIO(const IO_t io); -void spiPreinitByTag(ioTag_t tag); - bool spiInit(SPIDevice device); // Called after all devices are initialised to enable SPI DMA where streams are available. diff --git a/src/main/drivers/bus_spi_config.c b/src/main/drivers/bus_spi_config.c index 8e96b9d49b..d27605dcca 100644 --- a/src/main/drivers/bus_spi_config.c +++ b/src/main/drivers/bus_spi_config.c @@ -39,48 +39,10 @@ #include "pg/rx_spi.h" #include "pg/sdcard.h" -typedef struct spiPreinit_s { - ioTag_t iotag; - uint8_t iocfg; - bool init; -} spiPreinit_t; - -static spiPreinit_t spiPreinitArray[SPI_PREINIT_COUNT]; -static int spiPreinitCount = 0; - -void spiPreinitRegister(ioTag_t iotag, uint8_t iocfg, bool init) -{ - if (!iotag) { - return; - } - - if (spiPreinitCount == SPI_PREINIT_COUNT) { - indicateFailure(FAILURE_DEVELOPER, 5); - return; - } - - spiPreinitArray[spiPreinitCount].iotag = iotag; - spiPreinitArray[spiPreinitCount].iocfg = iocfg; - spiPreinitArray[spiPreinitCount].init = init; - ++spiPreinitCount; -} - -static void spiPreinitPin(spiPreinit_t *preinit, int index) -{ - IO_t io = IOGetByTag(preinit->iotag); - IOInit(io, OWNER_PREINIT, RESOURCE_INDEX(index)); - IOConfigGPIO(io, preinit->iocfg); - if (preinit->init) { - IOHi(io); - } else { - IOLo(io); - } -} - void spiPreinit(void) { #ifdef USE_SDCARD_SPI - sdcard_preInit(sdcardConfig()); + sdcard_preinit(sdcardConfig()); #endif #if defined(RTC6705_CS_PIN) && !defined(USE_VTX_RTC6705_SOFTSPI) // RTC6705 soft SPI initialisation handled elsewhere. @@ -88,34 +50,16 @@ void spiPreinit(void) #endif #ifdef USE_FLASH_CHIP - flashPreInit(flashConfig()); + flashPreinit(flashConfig()); #endif #if defined(USE_RX_SPI) - rxSpiDevicePreInit(rxSpiConfig()); + rxSpiDevicePreinit(rxSpiConfig()); #endif #ifdef USE_MAX7456 - max7456PreInit(max7456Config()); + max7456Preinit(max7456Config()); #endif - - for (int i = 0; i < spiPreinitCount; i++) { - spiPreinitPin(&spiPreinitArray[i], i); - } } -void spiPreinitByIO(const IO_t io) -{ - for (int i = 0; i < spiPreinitCount; i++) { - if (io == IOGetByTag(spiPreinitArray[i].iotag)) { - spiPreinitPin(&spiPreinitArray[i], i); - return; - } - } -} - -void spiPreinitByTag(ioTag_t tag) -{ - spiPreinitByIO(IOGetByTag(tag)); -} #endif diff --git a/src/main/drivers/compass/compass_ak8963.c b/src/main/drivers/compass/compass_ak8963.c index 6fea1b3132..e744deb276 100644 --- a/src/main/drivers/compass/compass_ak8963.c +++ b/src/main/drivers/compass/compass_ak8963.c @@ -420,7 +420,7 @@ void ak8963BusDeInit(const extDevice_t *dev) #ifdef USE_MAG_SPI_AK8963 case BUS_TYPE_SPI: - spiPreinitByIO(dev->busType_u.spi.csnPin); + ioPreinitByIO(dev->busType_u.spi.csnPin, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); break; #endif diff --git a/src/main/drivers/flash/flash.c b/src/main/drivers/flash/flash.c index 884e2d4eaf..8e48f07a92 100644 --- a/src/main/drivers/flash/flash.c +++ b/src/main/drivers/flash/flash.c @@ -350,15 +350,14 @@ static bool flashSpiInit(const flashConfig_t *flashConfig) return detected; } - spiPreinitByTag(flashConfig->csTag); - + ioPreinitByTag(flashConfig->csTag, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); return false; } #endif // USE_FLASH_SPI -void flashPreInit(const flashConfig_t *flashConfig) +void flashPreinit(const flashConfig_t *flashConfig) { - spiPreinitRegister(flashConfig->csTag, IOCFG_IPU, 1); + ioPreinitByTag(flashConfig->csTag, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } bool flashDeviceInit(const flashConfig_t *flashConfig) diff --git a/src/main/drivers/flash/flash.h b/src/main/drivers/flash/flash.h index 964ba549c4..8ef8144a24 100644 --- a/src/main/drivers/flash/flash.h +++ b/src/main/drivers/flash/flash.h @@ -57,7 +57,7 @@ typedef enum { FLASH_CF_SYSTEM_IS_MEMORY_MAPPED = (1 << 0), } flashConfigurationFlags_e; -void flashPreInit(const flashConfig_t *flashConfig); +void flashPreinit(const flashConfig_t *flashConfig); bool flashInit(const flashConfig_t *flashConfig); bool flashIsReady(void); diff --git a/src/main/drivers/io.h b/src/main/drivers/io.h index 9994ccf544..620ae613f0 100644 --- a/src/main/drivers/io.h +++ b/src/main/drivers/io.h @@ -64,3 +64,12 @@ void IOTraversePins(IOTraverseFuncPtr_t func); GPIO_TypeDef* IO_GPIO(IO_t io); uint16_t IO_Pin(IO_t io); + +typedef enum { + PREINIT_PIN_STATE_NOCHANGE = 0, + PREINIT_PIN_STATE_LOW, + PREINIT_PIN_STATE_HIGH, +} ioPreinitPinState_e; + +void ioPreinitByIO(const IO_t io, uint8_t iocfg, ioPreinitPinState_e init); +void ioPreinitByTag(ioTag_t tag, uint8_t iocfg, ioPreinitPinState_e init); diff --git a/src/main/drivers/io_preinit.c b/src/main/drivers/io_preinit.c new file mode 100644 index 0000000000..81ca43d420 --- /dev/null +++ b/src/main/drivers/io_preinit.c @@ -0,0 +1,58 @@ +/* + * This file is part of Betaflight. + * + * Betaflight is free software. You can redistribute this software + * and/or modify this software under the terms of the GNU General + * Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later + * version. + * + * Betaflight is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this software. + * + * If not, see . + */ + +#include +#include + +#include "platform.h" + +#include "drivers/io.h" +#include "drivers/resource.h" +#include "drivers/system.h" + +static unsigned preinitIndex = 0; + +void ioPreinitByIO(const IO_t io, uint8_t iocfg, ioPreinitPinState_e init) +{ + if (!io) { + return; + } + preinitIndex++; + + IOInit(io, OWNER_PREINIT, preinitIndex); + IOConfigGPIO(io, iocfg); + + switch(init) { + case PREINIT_PIN_STATE_LOW: + IOLo(io); + break; + case PREINIT_PIN_STATE_HIGH: + IOHi(io); + break; + default: + // Do nothing + } +} + +void ioPreinitByTag(ioTag_t tag, uint8_t iocfg, ioPreinitPinState_e init) +{ + ioPreinitByIO(IOGetByTag(tag), iocfg, init); +} diff --git a/src/main/drivers/max7456.c b/src/main/drivers/max7456.c index b0cc1ba22d..42341a4ff1 100644 --- a/src/main/drivers/max7456.c +++ b/src/main/drivers/max7456.c @@ -330,9 +330,9 @@ void max7456ReInit(void) max7456ClearShadowBuffer(); } -void max7456PreInit(const max7456Config_t *max7456Config) +void max7456Preinit(const max7456Config_t *max7456Config) { - spiPreinitRegister(max7456Config->csTag, max7456Config->preInitOPU ? IOCFG_OUT_PP : IOCFG_IPU, 1); + ioPreinitByTag(max7456Config->csTag, max7456Config->preInitOPU ? IOCFG_OUT_PP : IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } // Here we init only CS and try to init MAX for first time. diff --git a/src/main/drivers/max7456.h b/src/main/drivers/max7456.h index 154fa9e206..e836595602 100644 --- a/src/main/drivers/max7456.h +++ b/src/main/drivers/max7456.h @@ -43,7 +43,7 @@ extern uint16_t maxScreenSize; struct vcdProfile_s; void max7456HardwareReset(void); struct max7456Config_s; -void max7456PreInit(const struct max7456Config_s *max7456Config); +void max7456Preinit(const struct max7456Config_s *max7456Config); max7456InitStatus_e max7456Init(const struct max7456Config_s *max7456Config, const struct vcdProfile_s *vcdProfile, bool cpuOverclock); void max7456Invert(bool invert); void max7456Brightness(uint8_t black, uint8_t white); diff --git a/src/main/drivers/rx/rx_spi.c b/src/main/drivers/rx/rx_spi.c index c025fdf296..e21dd78fcd 100644 --- a/src/main/drivers/rx/rx_spi.c +++ b/src/main/drivers/rx/rx_spi.c @@ -70,9 +70,9 @@ extDevice_t *rxSpiGetDevice(void) return dev; } -void rxSpiDevicePreInit(const rxSpiConfig_t *rxSpiConfig) +void rxSpiDevicePreinit(const rxSpiConfig_t *rxSpiConfig) { - spiPreinitRegister(rxSpiConfig->csnTag, IOCFG_IPU, 1); + ioPreinitByTag(rxSpiConfig->csnTag, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } void rxSpiExtiHandler(extiCallbackRec_t* callback) diff --git a/src/main/drivers/rx/rx_spi.h b/src/main/drivers/rx/rx_spi.h index d8eb59b0fd..ab51a760cc 100644 --- a/src/main/drivers/rx/rx_spi.h +++ b/src/main/drivers/rx/rx_spi.h @@ -32,7 +32,7 @@ struct rxSpiConfig_s; extDevice_t *rxSpiGetDevice(void); -void rxSpiDevicePreInit(const struct rxSpiConfig_s *rxSpiConfig); +void rxSpiDevicePreinit(const struct rxSpiConfig_s *rxSpiConfig); bool rxSpiDeviceInit(const struct rxSpiConfig_s *rxSpiConfig); void rxSpiSetNormalSpeedMhz(uint32_t mhz); void rxSpiNormalSpeed(); diff --git a/src/main/drivers/sdcard.c b/src/main/drivers/sdcard.c index 1cc4c7595a..c333d493cc 100644 --- a/src/main/drivers/sdcard.c +++ b/src/main/drivers/sdcard.c @@ -103,10 +103,10 @@ bool sdcard_isInserted(void) */ sdcardVTable_t *sdcardVTable; -void sdcard_preInit(const sdcardConfig_t *config) +void sdcard_preinit(const sdcardConfig_t *config) { #ifdef USE_SDCARD_SPI - sdcardSpiVTable.sdcard_preInit(config); + sdcardSpiVTable.sdcard_preinit(config); #else UNUSED(config); #endif diff --git a/src/main/drivers/sdcard.h b/src/main/drivers/sdcard.h index 11c9fac4d3..7b647252c8 100644 --- a/src/main/drivers/sdcard.h +++ b/src/main/drivers/sdcard.h @@ -57,7 +57,7 @@ typedef void(*sdcard_operationCompleteCallback_c)(sdcardBlockOperation_e operati typedef void(*sdcard_profilerCallback_c)(sdcardBlockOperation_e operation, uint32_t blockIndex, uint32_t duration); -void sdcard_preInit(const sdcardConfig_t *config); +void sdcard_preinit(const sdcardConfig_t *config); void sdcard_init(const sdcardConfig_t *config); bool sdcard_readBlock(uint32_t blockIndex, uint8_t *buffer, sdcard_operationCompleteCallback_c callback, uint32_t callbackData); diff --git a/src/main/drivers/sdcard_impl.h b/src/main/drivers/sdcard_impl.h index 79a605f837..e65a7d4eb3 100644 --- a/src/main/drivers/sdcard_impl.h +++ b/src/main/drivers/sdcard_impl.h @@ -109,7 +109,7 @@ STATIC_ASSERT(sizeof(sdcardCSD_t) == 16, sdcard_csd_bitfields_didnt_pack_properl bool sdcard_isInserted(void); typedef struct sdcardVTable_s { - void (*sdcard_preInit)(const sdcardConfig_t *config); + void (*sdcard_preinit)(const sdcardConfig_t *config); void (*sdcard_init)(const sdcardConfig_t *config, const spiPinConfig_t *spiConfig); bool (*sdcard_readBlock)(uint32_t blockIndex, uint8_t *buffer, sdcard_operationCompleteCallback_c callback, uint32_t callbackData); sdcardOperationStatus_e (*sdcard_beginWriteBlocks)(uint32_t blockIndex, uint32_t blockCount); diff --git a/src/main/drivers/sdcard_spi.c b/src/main/drivers/sdcard_spi.c index 65e7157e5b..40c9a646b1 100644 --- a/src/main/drivers/sdcard_spi.c +++ b/src/main/drivers/sdcard_spi.c @@ -536,9 +536,9 @@ static bool sdcard_checkInitDone(void) return status == 0x00; } -void sdcardSpi_preInit(const sdcardConfig_t *config) +void sdcardSpi_preinit(const sdcardConfig_t *config) { - spiPreinitRegister(config->chipSelectTag, IOCFG_IPU, 1); + ioPreinitByTag(config->chipSelectTag, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } /** @@ -1101,7 +1101,7 @@ static void sdcardSpi_setProfilerCallback(sdcard_profilerCallback_c callback) #endif sdcardVTable_t sdcardSpiVTable = { - sdcardSpi_preInit, + sdcardSpi_preinit, sdcardSpi_init, sdcardSpi_readBlock, sdcardSpi_beginWriteBlocks, diff --git a/src/main/sensors/barometer.c b/src/main/sensors/barometer.c index cce06233d9..9e375a6f47 100644 --- a/src/main/sensors/barometer.c +++ b/src/main/sensors/barometer.c @@ -180,7 +180,7 @@ void baroPreInit(void) { #ifdef USE_SPI if (barometerConfig()->baro_busType == BUS_TYPE_SPI) { - spiPreinitRegister(barometerConfig()->baro_spi_csn, IOCFG_IPU, 1); + ioPreinitByTag(barometerConfig()->baro_spi_csn, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #endif } diff --git a/src/main/sensors/compass.c b/src/main/sensors/compass.c index 4a1bfc99d3..2ca1b0f689 100644 --- a/src/main/sensors/compass.c +++ b/src/main/sensors/compass.c @@ -150,7 +150,7 @@ void compassPreInit(void) { #ifdef USE_SPI if (compassConfig()->mag_busType == BUS_TYPE_SPI) { - spiPreinitRegister(compassConfig()->mag_spi_csn, IOCFG_IPU, 1); + ioPreinitByTag(compassConfig()->mag_spi_csn, IOCFG_IPU, PREINIT_PIN_STATE_HIGH); } #endif } diff --git a/src/main/target/common_post.h b/src/main/target/common_post.h index 976ba8e7c3..76d872128d 100644 --- a/src/main/target/common_post.h +++ b/src/main/target/common_post.h @@ -498,14 +498,6 @@ #define SYSTEM_HSE_MHZ 0 #endif -// Number of pins that needs pre-init -#ifdef USE_SPI -#ifndef SPI_PREINIT_COUNT -// 2 x 8 (GYROx2, BARO, MAG, MAX, FLASHx2, RX) -#define SPI_PREINIT_COUNT 16 -#endif -#endif - #ifndef USE_BLACKBOX #undef USE_USB_MSC #endif diff --git a/src/platform/STM32/mk/STM32F4.mk b/src/platform/STM32/mk/STM32F4.mk index 9d1f404557..09ac1e719d 100644 --- a/src/platform/STM32/mk/STM32F4.mk +++ b/src/platform/STM32/mk/STM32F4.mk @@ -205,8 +205,6 @@ MCU_COMMON_SRC = \ STM32/usbd_msc_desc.c \ STM32/camera_control_stm32.c \ drivers/adc.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c \ @@ -219,8 +217,6 @@ SPEED_OPTIMISED_SRC += \ SIZE_OPTIMISED_SRC += \ STM32/serial_usb_vcp.c \ drivers/inverter.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c diff --git a/src/platform/STM32/mk/STM32F7.mk b/src/platform/STM32/mk/STM32F7.mk index b197c92774..5e035639c2 100644 --- a/src/platform/STM32/mk/STM32F7.mk +++ b/src/platform/STM32/mk/STM32F7.mk @@ -170,8 +170,6 @@ MCU_COMMON_SRC = \ STM32/transponder_ir_io_hal.c \ STM32/camera_control_stm32.c \ drivers/adc.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c \ @@ -199,8 +197,6 @@ SIZE_OPTIMISED_SRC += \ drivers/bus_i2c_timing.c \ STM32/bus_i2c_hal_init.c \ STM32/serial_usb_vcp.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c diff --git a/src/platform/STM32/mk/STM32G4.mk b/src/platform/STM32/mk/STM32G4.mk index 41b1ba1a45..2761c42bea 100644 --- a/src/platform/STM32/mk/STM32G4.mk +++ b/src/platform/STM32/mk/STM32G4.mk @@ -147,8 +147,6 @@ MCU_COMMON_SRC = \ STM32/transponder_ir_io_hal.c \ STM32/camera_control_stm32.c \ drivers/adc.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c \ @@ -172,8 +170,6 @@ SIZE_OPTIMISED_SRC += \ drivers/bus_i2c_timing.c \ STM32/bus_i2c_hal_init.c \ STM32/serial_usb_vcp.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c diff --git a/src/platform/STM32/mk/STM32H5.mk b/src/platform/STM32/mk/STM32H5.mk index b8fb8511d2..4cfd67a706 100644 --- a/src/platform/STM32/mk/STM32H5.mk +++ b/src/platform/STM32/mk/STM32H5.mk @@ -173,8 +173,6 @@ MCU_COMMON_SRC = \ STM32/camera_control_stm32.c \ STM32/system_stm32h5xx.c \ drivers/adc.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c \ @@ -206,8 +204,6 @@ SIZE_OPTIMISED_SRC += \ drivers/bus_i2c_timing.c \ STM32/bus_i2c_hal_init.c \ STM32/serial_usb_vcp.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c diff --git a/src/platform/STM32/mk/STM32H7.mk b/src/platform/STM32/mk/STM32H7.mk index ffa2bf5b6f..8302a6733b 100644 --- a/src/platform/STM32/mk/STM32H7.mk +++ b/src/platform/STM32/mk/STM32H7.mk @@ -297,8 +297,6 @@ MCU_COMMON_SRC = \ STM32/transponder_ir_io_hal.c \ STM32/camera_control_stm32.c \ drivers/adc.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c \ @@ -321,8 +319,6 @@ SIZE_OPTIMISED_SRC += \ drivers/bus_i2c_timing.c \ STM32/bus_i2c_hal_init.c \ STM32/serial_usb_vcp.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi_config.c \ drivers/serial_escserial.c \ drivers/serial_pinconfig.c \ drivers/serial_uart_pinconfig.c diff --git a/src/platform/STM32/mk/STM32_COMMON.mk b/src/platform/STM32/mk/STM32_COMMON.mk index 8106ccf43d..fe3da3c251 100644 --- a/src/platform/STM32/mk/STM32_COMMON.mk +++ b/src/platform/STM32/mk/STM32_COMMON.mk @@ -5,11 +5,15 @@ MCU_COMMON_SRC += \ common/stm32/system.c \ common/stm32/config_flash.c \ common/stm32/bus_spi_pinconfig.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi_config.c \ common/stm32/bus_spi_hw.c \ common/stm32/io_impl.c \ common/stm32/serial_uart_hw.c SIZE_OPTIMISED_SRC += \ + drivers/bus_i2c_config.c \ + drivers/bus_spi_config.c \ common/stm32/config_flash.c \ common/stm32/bus_spi_pinconfig.c diff --git a/src/test/unit/baro_bmp280_unittest.cc b/src/test/unit/baro_bmp280_unittest.cc index cb66be7432..d63768ddef 100644 --- a/src/test/unit/baro_bmp280_unittest.cc +++ b/src/test/unit/baro_bmp280_unittest.cc @@ -163,7 +163,7 @@ void spiSetClkDivisor() { } -void spiPreinitByIO() +void ioPreinitByIO() { } diff --git a/src/test/unit/baro_bmp388_unittest.cc b/src/test/unit/baro_bmp388_unittest.cc index e07109debe..6a112109d8 100644 --- a/src/test/unit/baro_bmp388_unittest.cc +++ b/src/test/unit/baro_bmp388_unittest.cc @@ -160,7 +160,7 @@ void spiSetClkDivisor() { } -void spiPreinitByIO(IO_t) +void ioPreinitByIO() { } diff --git a/src/test/unit/baro_ms5611_unittest.cc b/src/test/unit/baro_ms5611_unittest.cc index 9896335555..fd422434d4 100644 --- a/src/test/unit/baro_ms5611_unittest.cc +++ b/src/test/unit/baro_ms5611_unittest.cc @@ -162,7 +162,7 @@ void spiSetClkDivisor() { } -void spiPreinitByIO() +void ioPreinitByIO() { }