Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c fix from Wolfram Sang: "One more I2C driver bugfix" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: stm32f7: fix configuration of the digital filter
This commit is contained in:
commit
8cc8e6aaf2
|
@ -57,6 +57,8 @@
|
||||||
#define STM32F7_I2C_CR1_RXDMAEN BIT(15)
|
#define STM32F7_I2C_CR1_RXDMAEN BIT(15)
|
||||||
#define STM32F7_I2C_CR1_TXDMAEN BIT(14)
|
#define STM32F7_I2C_CR1_TXDMAEN BIT(14)
|
||||||
#define STM32F7_I2C_CR1_ANFOFF BIT(12)
|
#define STM32F7_I2C_CR1_ANFOFF BIT(12)
|
||||||
|
#define STM32F7_I2C_CR1_DNF_MASK GENMASK(11, 8)
|
||||||
|
#define STM32F7_I2C_CR1_DNF(n) (((n) & 0xf) << 8)
|
||||||
#define STM32F7_I2C_CR1_ERRIE BIT(7)
|
#define STM32F7_I2C_CR1_ERRIE BIT(7)
|
||||||
#define STM32F7_I2C_CR1_TCIE BIT(6)
|
#define STM32F7_I2C_CR1_TCIE BIT(6)
|
||||||
#define STM32F7_I2C_CR1_STOPIE BIT(5)
|
#define STM32F7_I2C_CR1_STOPIE BIT(5)
|
||||||
|
@ -160,7 +162,7 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
#define STM32F7_I2C_DNF_DEFAULT 0
|
#define STM32F7_I2C_DNF_DEFAULT 0
|
||||||
#define STM32F7_I2C_DNF_MAX 16
|
#define STM32F7_I2C_DNF_MAX 15
|
||||||
|
|
||||||
#define STM32F7_I2C_ANALOG_FILTER_ENABLE 1
|
#define STM32F7_I2C_ANALOG_FILTER_ENABLE 1
|
||||||
#define STM32F7_I2C_ANALOG_FILTER_DELAY_MIN 50 /* ns */
|
#define STM32F7_I2C_ANALOG_FILTER_DELAY_MIN 50 /* ns */
|
||||||
|
@ -725,6 +727,13 @@ static void stm32f7_i2c_hw_config(struct stm32f7_i2c_dev *i2c_dev)
|
||||||
else
|
else
|
||||||
stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
|
stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
|
||||||
STM32F7_I2C_CR1_ANFOFF);
|
STM32F7_I2C_CR1_ANFOFF);
|
||||||
|
|
||||||
|
/* Program the Digital Filter */
|
||||||
|
stm32f7_i2c_clr_bits(i2c_dev->base + STM32F7_I2C_CR1,
|
||||||
|
STM32F7_I2C_CR1_DNF_MASK);
|
||||||
|
stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
|
||||||
|
STM32F7_I2C_CR1_DNF(i2c_dev->setup.dnf));
|
||||||
|
|
||||||
stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
|
stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
|
||||||
STM32F7_I2C_CR1_PE);
|
STM32F7_I2C_CR1_PE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue