diff --git a/drivers/arm/i2c_master.c b/drivers/arm/i2c_master.c index fcfe85b56..2a43ba239 100644 --- a/drivers/arm/i2c_master.c +++ b/drivers/arm/i2c_master.c @@ -32,27 +32,17 @@ static uint8_t i2c_address; -// ChibiOS uses two initialization structure for v1 and v2/v3 i2c APIs. -// The F1 series uses the v1 api, which have to initialized this way. -#ifdef STM32F103xB -static const I2CConfig i2cconfig = { - OPMODE_I2C, - 400000, - FAST_DUTY_CYCLE_2, -}; -#else -// This configures the I2C clock to 400khz assuming a 72Mhz clock -// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html static const I2CConfig i2cconfig = { #ifdef USE_I2CV1 I2C1_OPMODE, I2C1_CLOCK_SPEED, I2C1_DUTY_CYCLE, #else + // This configures the I2C clock to 400khz assuming a 72Mhz clock + // For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html STM32_TIMINGR_PRESC(I2C1_TIMINGR_PRESC) | STM32_TIMINGR_SCLDEL(I2C1_TIMINGR_SCLDEL) | STM32_TIMINGR_SDADEL(I2C1_TIMINGR_SDADEL) | STM32_TIMINGR_SCLH(I2C1_TIMINGR_SCLH) | STM32_TIMINGR_SCLL(I2C1_TIMINGR_SCLL), 0, 0 #endif }; -#endif static i2c_status_t chibios_to_qmk(const msg_t* status) { switch (*status) { diff --git a/keyboards/ergodox_stm32/config.h b/keyboards/ergodox_stm32/config.h index 530565521..e1b3d7b14 100644 --- a/keyboards/ergodox_stm32/config.h +++ b/keyboards/ergodox_stm32/config.h @@ -33,3 +33,7 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ ) + +// i2c_master driver config +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2