]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: ad7793: replace usleep_range() with fsleep()
authorStepan Ionichev <sozdayvek@gmail.com>
Mon, 11 May 2026 05:30:43 +0000 (10:30 +0500)
committerJonathan Cameron <jic23@kernel.org>
Sun, 31 May 2026 09:59:38 +0000 (10:59 +0100)
The AD7792/AD7793 datasheet (Rev. B, page 25, RESET section)
says: "When a reset is initiated, the user must allow a period
of 500 us before accessing any of the on-chip registers."

Use fsleep(500) instead of usleep_range(500, 2000). The 500 us
minimum stays the same; fsleep() picks the upper slack itself
(about +25% on a default config -- narrower than the original
2000 us).

Add a code comment with the datasheet reference so the "why"
of the wait is visible at the call site.

Signed-off-by: Stepan Ionichev <sozdayvek@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/ad7793.c

index 624530cce9383cf8adae4b996afac5db5914b00a..ea1c192e214214dc6a3fa75d198735a19fa742a8 100644 (file)
@@ -268,7 +268,12 @@ static int ad7793_setup(struct iio_dev *indio_dev,
        ret = ad_sd_reset(&st->sd);
        if (ret < 0)
                goto out;
-       usleep_range(500, 2000); /* Wait for at least 500us */
+
+       /*
+        * Per AD7792/AD7793 datasheet (Rev. B, page 25, RESET section),
+        * allow 500 us after a reset before accessing on-chip registers.
+        */
+       fsleep(500);
 
        /* write/read test for device presence */
        ret = ad_sd_read_reg(&st->sd, AD7793_REG_ID, 1, &id);