.max_register = AD7768_REG24_COEFF_DATA,
 };
 
+static int ad7768_send_sync_pulse(struct ad7768_state *st)
+{
+       /*
+        * The datasheet specifies a minimum SYNC_IN pulse width of 1.5 × Tmclk,
+        * where Tmclk is the MCLK period. The supported MCLK frequencies range
+        * from 0.6 MHz to 17 MHz, which corresponds to a minimum SYNC_IN pulse
+        * width of approximately 2.5 µs in the worst-case scenario (0.6 MHz).
+        *
+        * Add a delay to ensure the pulse width is always sufficient to
+        * trigger synchronization.
+        */
+       gpiod_set_value_cansleep(st->gpio_sync_in, 1);
+       fsleep(3);
+       gpiod_set_value_cansleep(st->gpio_sync_in, 0);
+
+       return 0;
+}
+
 static int ad7768_set_mode(struct ad7768_state *st,
                           enum ad7768_conv_mode mode)
 {
                return ret;
 
        /* A sync-in pulse is required every time the filter dec rate changes */
-       gpiod_set_value(st->gpio_sync_in, 1);
-       gpiod_set_value(st->gpio_sync_in, 0);
-
-       return 0;
+       return ad7768_send_sync_pulse(st);
 }
 
 static int ad7768_set_freq(struct ad7768_state *st,