From 01c71f56501776b83714eda51c64d0a5bca1cad6 Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Wed, 18 May 2011 14:42:15 +0100 Subject: [PATCH] --- yaml --- r: 249849 b: refs/heads/master c: b206c3bbb4eda4f82c3396c0cc3a4443ffc166c5 h: refs/heads/master i: 249847: 5eb429150cc08e46be58cf1116c82465a801676f v: v3 --- [refs] | 2 +- trunk/drivers/staging/iio/adc/ad7291.c | 58 +++++++++++++++++++------- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 19efcb8ca8f8..e6a72d690154 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0bb8be643161ae1dc5c5a0255cf5ca20f7de7b5a +refs/heads/master: b206c3bbb4eda4f82c3396c0cc3a4443ffc166c5 diff --git a/trunk/drivers/staging/iio/adc/ad7291.c b/trunk/drivers/staging/iio/adc/ad7291.c index 527311c1d3bf..0e4c7283bb07 100644 --- a/trunk/drivers/staging/iio/adc/ad7291.c +++ b/trunk/drivers/staging/iio/adc/ad7291.c @@ -454,12 +454,6 @@ static const struct attribute_group ad7291_attribute_group = { * temperature bound events */ -#define IIO_EVENT_CODE_AD7291_T_SENSE_HIGH IIO_BUFFER_EVENT_CODE(0) -#define IIO_EVENT_CODE_AD7291_T_SENSE_LOW IIO_BUFFER_EVENT_CODE(1) -#define IIO_EVENT_CODE_AD7291_T_AVG_HIGH IIO_BUFFER_EVENT_CODE(2) -#define IIO_EVENT_CODE_AD7291_T_AVG_LOW IIO_BUFFER_EVENT_CODE(3) -#define IIO_EVENT_CODE_AD7291_VOLTAGE_BASE IIO_BUFFER_EVENT_CODE(4) - static irqreturn_t ad7291_event_handler(int irq, void *private) { struct iio_dev *indio_dev = private; @@ -484,18 +478,50 @@ static irqreturn_t ad7291_event_handler(int irq, void *private) command = chip->command & ~AD7291_ALART_CLEAR; ad7291_i2c_write(chip, AD7291_COMMAND, command); - for (i = 0; i < 4; i++) { - if (t_status & (1 << i)) - iio_push_event(indio_dev, 0, - IIO_EVENT_CODE_AD7291_T_SENSE_HIGH + i, - timestamp); - } - - for (i = 0; i < AD7291_VOLTAGE_LIMIT_COUNT*2; i++) { + if (t_status & (1 << 0)) + iio_push_event(indio_dev, 0, + IIO_UNMOD_EVENT_CODE(IIO_TEMP, + 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_FALLING), + timestamp); + if (t_status & (1 << 1)) + iio_push_event(indio_dev, 0, + IIO_UNMOD_EVENT_CODE(IIO_TEMP, + 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_RISING), + timestamp); + if (t_status & (1 << 2)) + iio_push_event(indio_dev, 0, + IIO_UNMOD_EVENT_CODE(IIO_TEMP, + 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_FALLING), + timestamp); + if (t_status & (1 << 3)) + iio_push_event(indio_dev, 0, + IIO_UNMOD_EVENT_CODE(IIO_TEMP, + 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_RISING), + timestamp); + + for (i = 0; i < AD7291_VOLTAGE_LIMIT_COUNT*2; i += 2) { if (v_status & (1 << i)) iio_push_event(indio_dev, 0, - IIO_EVENT_CODE_AD7291_VOLTAGE_BASE + i, - timestamp); + IIO_UNMOD_EVENT_CODE(IIO_IN, + i/2, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_FALLING), + timestamp); + if (v_status & (1 << (i + 1))) + iio_push_event(indio_dev, 0, + IIO_UNMOD_EVENT_CODE(IIO_IN, + i/2, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_RISING), + timestamp); } return IRQ_HANDLED;