diff --git a/cpu/stm32_common/periph/i2c_2.c b/cpu/stm32_common/periph/i2c_2.c index 5f1316f4e6..d073b4b118 100644 --- a/cpu/stm32_common/periph/i2c_2.c +++ b/cpu/stm32_common/periph/i2c_2.c @@ -79,9 +79,7 @@ void i2c_init(i2c_t dev) mutex_init(&locks[dev]); - I2C_TypeDef *i2c = i2c_config[dev].dev; - - assert(i2c != NULL); + assert(i2c_config[dev].dev != NULL); periph_clk_en(i2c_config[dev].bus, i2c_config[dev].rcc_mask); NVIC_SetPriority(i2c_config[dev].irqn, I2C_IRQ_PRIO); @@ -91,9 +89,9 @@ void i2c_init(i2c_t dev) #if defined(CPU_FAM_STM32F4) /* make sure the analog filters don't hang -> see errata sheet 2.14.7 */ - if (i2c->SR2 & I2C_SR2_BUSY) { + if (i2c_config[dev].dev->SR2 & I2C_SR2_BUSY) { /* disable peripheral */ - i2c->CR1 &= ~I2C_CR1_PE; + i2c_config[dev].dev->CR1 &= ~I2C_CR1_PE; /* toggle both pins to reset analog filter */ gpio_init(i2c_config[dev].scl_pin, GPIO_OD); gpio_init(i2c_config[dev].sda_pin, GPIO_OD);