iio: adc: ad7280a: use IIO_DIFF_EVENT_CODE macro helper
authorJulien Stephan <jstephan@baylibre.com>
Mon, 28 Oct 2024 16:38:12 +0000 (17:38 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 3 Nov 2024 20:33:45 +0000 (20:33 +0000)
The IIO_DIFF_EVENT_CODE macro helper was introduced to provide a more
specific alternative to the generic IIO_EVENT_CODE macro for handling
differential channels. This commit updates the code to use
IIO_DIFF_EVENT_CODE for better clarity and maintainability.

However, the current implementation incorrectly sets both chan1 and
chan2 to 0. To maintain compatibility and avoid breaking existing
user space applications, this behavior is preserved for now.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20241028-iio-add-macro-for-even-identifier-for-differential-channels-v1-2-b452c90f7ea6@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad7280a.c

index 35aa39f..f9f3273 100644 (file)
@@ -822,17 +822,15 @@ static irqreturn_t ad7280_event_handler(int irq, void *private)
                if (FIELD_GET(AD7280A_TRANS_READ_CONV_CHANADDR_MSK, channels[i]) <=
                    AD7280A_CELL_VOLTAGE_6_REG) {
                        if (val >= st->cell_threshhigh) {
-                               u64 tmp = IIO_EVENT_CODE(IIO_VOLTAGE, 1, 0,
-                                                        IIO_EV_DIR_RISING,
-                                                        IIO_EV_TYPE_THRESH,
-                                                        0, 0, 0);
+                               u64 tmp = IIO_DIFF_EVENT_CODE(IIO_VOLTAGE, 0, 0,
+                                                       IIO_EV_TYPE_THRESH,
+                                                       IIO_EV_DIR_RISING);
                                iio_push_event(indio_dev, tmp,
                                               iio_get_time_ns(indio_dev));
                        } else if (val <= st->cell_threshlow) {
-                               u64 tmp = IIO_EVENT_CODE(IIO_VOLTAGE, 1, 0,
-                                                        IIO_EV_DIR_FALLING,
-                                                        IIO_EV_TYPE_THRESH,
-                                                        0, 0, 0);
+                               u64 tmp = IIO_DIFF_EVENT_CODE(IIO_VOLTAGE, 0, 0,
+                                                       IIO_EV_TYPE_THRESH,
+                                                       IIO_EV_DIR_FALLING);
                                iio_push_event(indio_dev, tmp,
                                               iio_get_time_ns(indio_dev));
                        }