lkml.org 
[lkml]   [2021]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 1/5] i2c: stm32f7: fix configuration of the digital filter
From
Date
Hello all

Looks good to me

Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>

Regards

On 2/5/21 9:51 AM, Alain Volmat wrote:
> The digital filter related computation are present in the driver
> however the programming of the filter within the IP is missing.
> The maximum value for the DNF is wrong and should be 15 instead of 16.
>
> Fixes: aeb068c57214 ("i2c: i2c-stm32f7: add driver")
>
> Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
> ---
> drivers/i2c/busses/i2c-stm32f7.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c
> index 9aa8e65b511e..473fbe144b7e 100644
> --- a/drivers/i2c/busses/i2c-stm32f7.c
> +++ b/drivers/i2c/busses/i2c-stm32f7.c
> @@ -57,6 +57,8 @@
> #define STM32F7_I2C_CR1_RXDMAEN BIT(15)
> #define STM32F7_I2C_CR1_TXDMAEN BIT(14)
> #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_TCIE BIT(6)
> #define STM32F7_I2C_CR1_STOPIE BIT(5)
> @@ -160,7 +162,7 @@ enum {
> };
>
> #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_DELAY_MIN 50 /* ns */
> @@ -725,6 +727,13 @@ static void stm32f7_i2c_hw_config(struct stm32f7_i2c_dev *i2c_dev)
> else
> stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
> 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_CR1_PE);
> }
>

--
--
~ Py MORDRET
--

\
 
 \ /
  Last update: 2021-02-06 00:39    [W:0.166 / U:0.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site