#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)
 };
 
 #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 */
        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);
 }