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()
{
}