staging: iio: ad5933: Correct settling cycles encoding per datasheet
authorGabriel Shahrouzi <gshahrouzi@gmail.com>
Sun, 20 Apr 2025 01:30:09 +0000 (21:30 -0400)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 21 May 2025 13:20:28 +0000 (14:20 +0100)
The AD5933 datasheet (Table 13) lists the maximum cycles to be 0x7FC
(2044).

Clamp the user input to the maximum effective value of 0x7FC cycles.

Fixes: f94aa354d676 ("iio: impedance-analyzer: New driver for AD5933/4 Impedance Converter, Network Analyzer")
Cc: stable@vger.kernel.org
Signed-off-by: Gabriel Shahrouzi <gshahrouzi@gmail.com>
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Link: https://patch.msgid.link/20250420013009.847851-1-gshahrouzi@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/staging/iio/impedance-analyzer/ad5933.c

index 6b3e2319e79140f46939ce69781a9e532e374daf..85a4223295cd06840b7f6095019b8d06abeb077f 100644 (file)
@@ -413,7 +413,7 @@ static ssize_t ad5933_store(struct device *dev,
                ret = ad5933_cmd(st, 0);
                break;
        case AD5933_OUT_SETTLING_CYCLES:
-               val = clamp(val, (u16)0, (u16)0x7FF);
+               val = clamp(val, (u16)0, (u16)0x7FC);
                st->settling_cycles = val;
 
                /* 2x, 4x handling, see datasheet */