aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@cam.ac.uk>2010-09-21 09:40:56 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-09-21 13:34:41 -0400
commit44f270de711dcaf595786f2318b36f9b4f007338 (patch)
treeb3d90fa6838e01f36d34ca982d445c2642f70686 /drivers/staging
parent5df2145c8c37af0cc7c10009eea86c493cc434a5 (diff)
staging: iio: Remove unused bit_count from struct iio_scan_el
The job this was intended to do (never implemented) is now done by explicit definition of _type attributes in all drivers Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Manuel Stahl <manuel.stahl@iis.fraunhofer.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/iio/accel/adis16209_ring.c21
-rw-r--r--drivers/staging/iio/accel/adis16240_ring.c18
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_ring.c6
-rw-r--r--drivers/staging/iio/accel/sca3000_ring.c6
-rw-r--r--drivers/staging/iio/adc/max1363_core.c7
-rw-r--r--drivers/staging/iio/gyro/adis16260_ring.c14
-rw-r--r--drivers/staging/iio/imu/adis16300_ring.c26
-rw-r--r--drivers/staging/iio/imu/adis16350_ring.c32
-rw-r--r--drivers/staging/iio/imu/adis16400_ring.c35
-rw-r--r--drivers/staging/iio/ring_generic.h17
10 files changed, 66 insertions, 116 deletions
diff --git a/drivers/staging/iio/accel/adis16209_ring.c b/drivers/staging/iio/accel/adis16209_ring.c
index 6837f8bba3a..8dd28812214 100644
--- a/drivers/staging/iio/accel/adis16209_ring.c
+++ b/drivers/staging/iio/accel/adis16209_ring.c
@@ -17,27 +17,22 @@
17#include "../trigger.h" 17#include "../trigger.h"
18#include "adis16209.h" 18#include "adis16209.h"
19 19
20static IIO_SCAN_EL_C(in_supply, ADIS16209_SCAN_SUPPLY, IIO_UNSIGNED(14), 20static IIO_SCAN_EL_C(in_supply, ADIS16209_SCAN_SUPPLY,
21 ADIS16209_SUPPLY_OUT, NULL); 21 ADIS16209_SUPPLY_OUT, NULL);
22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 14, 16) 22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 14, 16)
23static IIO_SCAN_EL_C(accel_x, ADIS16209_SCAN_ACC_X, IIO_SIGNED(14), 23static IIO_SCAN_EL_C(accel_x, ADIS16209_SCAN_ACC_X, ADIS16209_XACCL_OUT, NULL);
24 ADIS16209_XACCL_OUT, NULL); 24static IIO_SCAN_EL_C(accel_y, ADIS16209_SCAN_ACC_Y, ADIS16209_YACCL_OUT, NULL);
25static IIO_SCAN_EL_C(accel_y, ADIS16209_SCAN_ACC_Y, IIO_SIGNED(14),
26 ADIS16209_YACCL_OUT, NULL);
27static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16); 25static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16);
28static IIO_SCAN_EL_C(in0, ADIS16209_SCAN_AUX_ADC, IIO_UNSIGNED(12), 26static IIO_SCAN_EL_C(in0, ADIS16209_SCAN_AUX_ADC, ADIS16209_AUX_ADC, NULL);
29 ADIS16209_AUX_ADC, NULL);
30static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16); 27static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16);
31static IIO_SCAN_EL_C(temp, ADIS16209_SCAN_TEMP, IIO_UNSIGNED(12), 28static IIO_SCAN_EL_C(temp, ADIS16209_SCAN_TEMP, ADIS16209_TEMP_OUT, NULL);
32 ADIS16209_TEMP_OUT, NULL);
33static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, u, 12, 16); 29static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, u, 12, 16);
34static IIO_SCAN_EL_C(incli_x, ADIS16209_SCAN_INCLI_X, IIO_SIGNED(14), 30static IIO_SCAN_EL_C(incli_x, ADIS16209_SCAN_INCLI_X,
35 ADIS16209_XINCL_OUT, NULL); 31 ADIS16209_XINCL_OUT, NULL);
36static IIO_SCAN_EL_C(incli_y, ADIS16209_SCAN_INCLI_Y, IIO_SIGNED(14), 32static IIO_SCAN_EL_C(incli_y, ADIS16209_SCAN_INCLI_Y,
37 ADIS16209_YINCL_OUT, NULL); 33 ADIS16209_YINCL_OUT, NULL);
38static IIO_CONST_ATTR_SCAN_EL_TYPE(incli, s, 14, 16); 34static IIO_CONST_ATTR_SCAN_EL_TYPE(incli, s, 14, 16);
39static IIO_SCAN_EL_C(rot, ADIS16209_SCAN_ROT, IIO_SIGNED(14), 35static IIO_SCAN_EL_C(rot, ADIS16209_SCAN_ROT, ADIS16209_ROT_OUT, NULL);
40 ADIS16209_ROT_OUT, NULL);
41static IIO_CONST_ATTR_SCAN_EL_TYPE(rot, s, 14, 16); 36static IIO_CONST_ATTR_SCAN_EL_TYPE(rot, s, 14, 16);
42static IIO_SCAN_EL_TIMESTAMP(8); 37static IIO_SCAN_EL_TIMESTAMP(8);
43static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64); 38static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64);
diff --git a/drivers/staging/iio/accel/adis16240_ring.c b/drivers/staging/iio/accel/adis16240_ring.c
index b858d305581..ae022683515 100644
--- a/drivers/staging/iio/accel/adis16240_ring.c
+++ b/drivers/staging/iio/accel/adis16240_ring.c
@@ -17,23 +17,17 @@
17#include "../trigger.h" 17#include "../trigger.h"
18#include "adis16240.h" 18#include "adis16240.h"
19 19
20static IIO_SCAN_EL_C(in_supply, ADIS16240_SCAN_SUPPLY, IIO_UNSIGNED(10), 20static IIO_SCAN_EL_C(in_supply, ADIS16240_SCAN_SUPPLY,
21 ADIS16240_SUPPLY_OUT, NULL); 21 ADIS16240_SUPPLY_OUT, NULL);
22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 10, 16); 22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 10, 16);
23static IIO_SCAN_EL_C(accel_x, ADIS16240_SCAN_ACC_X, IIO_SIGNED(10), 23static IIO_SCAN_EL_C(accel_x, ADIS16240_SCAN_ACC_X, ADIS16240_XACCL_OUT, NULL);
24 ADIS16240_XACCL_OUT, NULL); 24static IIO_SCAN_EL_C(accel_y, ADIS16240_SCAN_ACC_Y, ADIS16240_YACCL_OUT, NULL);
25static IIO_SCAN_EL_C(accel_y, ADIS16240_SCAN_ACC_Y, IIO_SIGNED(10), 25static IIO_SCAN_EL_C(accel_z, ADIS16240_SCAN_ACC_Z, ADIS16240_ZACCL_OUT, NULL);
26 ADIS16240_YACCL_OUT, NULL);
27static IIO_SCAN_EL_C(accel_z, ADIS16240_SCAN_ACC_Z, IIO_SIGNED(10),
28 ADIS16240_ZACCL_OUT, NULL);
29static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 10, 16); 26static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 10, 16);
30static IIO_SCAN_EL_C(in0, ADIS16240_SCAN_AUX_ADC, IIO_UNSIGNED(10), 27static IIO_SCAN_EL_C(in0, ADIS16240_SCAN_AUX_ADC, ADIS16240_AUX_ADC, NULL);
31 ADIS16240_AUX_ADC, NULL);
32static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 10, 16); 28static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 10, 16);
33static IIO_SCAN_EL_C(temp, ADIS16240_SCAN_TEMP, IIO_UNSIGNED(10), 29static IIO_SCAN_EL_C(temp, ADIS16240_SCAN_TEMP, ADIS16240_TEMP_OUT, NULL);
34 ADIS16240_TEMP_OUT, NULL);
35static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, u, 10, 16); 30static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, u, 10, 16);
36
37static IIO_SCAN_EL_TIMESTAMP(6); 31static IIO_SCAN_EL_TIMESTAMP(6);
38static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64); 32static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64);
39 33
diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
index 28a54f188d6..40cf6703e7b 100644
--- a/drivers/staging/iio/accel/lis3l02dq_ring.c
+++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
@@ -75,13 +75,13 @@ error_ret:
75 return ret; 75 return ret;
76 76
77} 77}
78static IIO_SCAN_EL_C(accel_x, 0, IIO_SIGNED(16), 78static IIO_SCAN_EL_C(accel_x, 0,
79 LIS3L02DQ_REG_OUT_X_L_ADDR, 79 LIS3L02DQ_REG_OUT_X_L_ADDR,
80 &lis3l02dq_scan_el_set_state); 80 &lis3l02dq_scan_el_set_state);
81static IIO_SCAN_EL_C(accel_y, 1, IIO_SIGNED(16), 81static IIO_SCAN_EL_C(accel_y, 1,
82 LIS3L02DQ_REG_OUT_Y_L_ADDR, 82 LIS3L02DQ_REG_OUT_Y_L_ADDR,
83 &lis3l02dq_scan_el_set_state); 83 &lis3l02dq_scan_el_set_state);
84static IIO_SCAN_EL_C(accel_z, 2, IIO_SIGNED(16), 84static IIO_SCAN_EL_C(accel_z, 2,
85 LIS3L02DQ_REG_OUT_Z_L_ADDR, 85 LIS3L02DQ_REG_OUT_Z_L_ADDR,
86 &lis3l02dq_scan_el_set_state); 86 &lis3l02dq_scan_el_set_state);
87static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 12, 16); 87static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 12, 16);
diff --git a/drivers/staging/iio/accel/sca3000_ring.c b/drivers/staging/iio/accel/sca3000_ring.c
index 15b91e1a4a8..003097d9201 100644
--- a/drivers/staging/iio/accel/sca3000_ring.c
+++ b/drivers/staging/iio/accel/sca3000_ring.c
@@ -194,9 +194,9 @@ error_ret:
194 return ret ? ret : len; 194 return ret ? ret : len;
195} 195}
196 196
197static IIO_SCAN_EL_C(accel_x, 0, 0, 0, NULL); 197static IIO_SCAN_EL_C(accel_x, 0, 0, NULL);
198static IIO_SCAN_EL_C(accel_y, 1, 0, 0, NULL); 198static IIO_SCAN_EL_C(accel_y, 1, 0, NULL);
199static IIO_SCAN_EL_C(accel_z, 2, 0, 0, NULL); 199static IIO_SCAN_EL_C(accel_z, 2, 0, NULL);
200static IIO_CONST_ATTR(accel_type_available, "s8/8 s11/16"); 200static IIO_CONST_ATTR(accel_type_available, "s8/8 s11/16");
201static IIO_DEVICE_ATTR(accel_type, 201static IIO_DEVICE_ATTR(accel_type,
202 S_IRUGO | S_IWUSR, 202 S_IRUGO | S_IWUSR,
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index 40039e668bf..d59a8d2f420 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -42,11 +42,10 @@
42/* Here we claim all are 16 bits. This currently does no harm and saves 42/* Here we claim all are 16 bits. This currently does no harm and saves
43 * us a lot of scan element listings */ 43 * us a lot of scan element listings */
44 44
45#define MAX1363_SCAN_EL(number) \ 45#define MAX1363_SCAN_EL(number) \
46 IIO_SCAN_EL_C(in##number, number, IIO_UNSIGNED(16), 0, NULL); 46 IIO_SCAN_EL_C(in##number, number, 0, NULL);
47#define MAX1363_SCAN_EL_D(p, n, number) \ 47#define MAX1363_SCAN_EL_D(p, n, number) \
48 IIO_SCAN_NAMED_EL_C(in##p##m##in##n, in##p-in##n, \ 48 IIO_SCAN_NAMED_EL_C(in##p##m##in##n, in##p-in##n, number, 0, NULL);
49 number, IIO_SIGNED(16), 0, NULL);
50 49
51static MAX1363_SCAN_EL(0); 50static MAX1363_SCAN_EL(0);
52static MAX1363_SCAN_EL(1); 51static MAX1363_SCAN_EL(1);
diff --git a/drivers/staging/iio/gyro/adis16260_ring.c b/drivers/staging/iio/gyro/adis16260_ring.c
index 4b96394d1ac..77dca37c9e9 100644
--- a/drivers/staging/iio/gyro/adis16260_ring.c
+++ b/drivers/staging/iio/gyro/adis16260_ring.c
@@ -17,20 +17,16 @@
17#include "../trigger.h" 17#include "../trigger.h"
18#include "adis16260.h" 18#include "adis16260.h"
19 19
20static IIO_SCAN_EL_C(in_supply, ADIS16260_SCAN_SUPPLY, IIO_UNSIGNED(12), 20static IIO_SCAN_EL_C(in_supply, ADIS16260_SCAN_SUPPLY,
21 ADIS16260_SUPPLY_OUT, NULL); 21 ADIS16260_SUPPLY_OUT, NULL);
22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 12, 16); 22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 12, 16);
23static IIO_SCAN_EL_C(gyro, ADIS16260_SCAN_GYRO, IIO_SIGNED(14), 23static IIO_SCAN_EL_C(gyro, ADIS16260_SCAN_GYRO, ADIS16260_GYRO_OUT, NULL);
24 ADIS16260_GYRO_OUT, NULL);
25static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16); 24static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16);
26static IIO_SCAN_EL_C(in0, ADIS16260_SCAN_AUX_ADC, IIO_SIGNED(14), 25static IIO_SCAN_EL_C(in0, ADIS16260_SCAN_AUX_ADC, ADIS16260_AUX_ADC, NULL);
27 ADIS16260_AUX_ADC, NULL);
28static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16); 26static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16);
29static IIO_SCAN_EL_C(temp, ADIS16260_SCAN_TEMP, IIO_UNSIGNED(12), 27static IIO_SCAN_EL_C(temp, ADIS16260_SCAN_TEMP, ADIS16260_TEMP_OUT, NULL);
30 ADIS16260_TEMP_OUT, NULL);
31static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, u, 12, 16); 28static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, u, 12, 16);
32static IIO_SCAN_EL_C(angl, ADIS16260_SCAN_ANGL, IIO_UNSIGNED(12), 29static IIO_SCAN_EL_C(angl, ADIS16260_SCAN_ANGL, ADIS16260_ANGL_OUT, NULL);
33 ADIS16260_ANGL_OUT, NULL);
34static IIO_CONST_ATTR_SCAN_EL_TYPE(angl, u, 14, 16); 30static IIO_CONST_ATTR_SCAN_EL_TYPE(angl, u, 14, 16);
35static IIO_SCAN_EL_TIMESTAMP(5); 31static IIO_SCAN_EL_TIMESTAMP(5);
36static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64); 32static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64);
diff --git a/drivers/staging/iio/imu/adis16300_ring.c b/drivers/staging/iio/imu/adis16300_ring.c
index 3f67858fff8..b3a1e7514a5 100644
--- a/drivers/staging/iio/imu/adis16300_ring.c
+++ b/drivers/staging/iio/imu/adis16300_ring.c
@@ -17,40 +17,32 @@
17#include "../trigger.h" 17#include "../trigger.h"
18#include "adis16300.h" 18#include "adis16300.h"
19 19
20static IIO_SCAN_EL_C(in_supply, ADIS16300_SCAN_SUPPLY, IIO_UNSIGNED(14), 20static IIO_SCAN_EL_C(in_supply, ADIS16300_SCAN_SUPPLY,
21 ADIS16300_SUPPLY_OUT, NULL); 21 ADIS16300_SUPPLY_OUT, NULL);
22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 12, 16); 22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 12, 16);
23 23static IIO_SCAN_EL_C(gyro_x, ADIS16300_SCAN_GYRO_X, ADIS16300_XGYRO_OUT, NULL);
24static IIO_SCAN_EL_C(gyro_x, ADIS16300_SCAN_GYRO_X, IIO_SIGNED(14),
25 ADIS16300_XGYRO_OUT, NULL);
26static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16); 24static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16);
27 25
28static IIO_SCAN_EL_C(accel_x, ADIS16300_SCAN_ACC_X, IIO_SIGNED(14), 26static IIO_SCAN_EL_C(accel_x, ADIS16300_SCAN_ACC_X, ADIS16300_XACCL_OUT, NULL);
29 ADIS16300_XACCL_OUT, NULL); 27static IIO_SCAN_EL_C(accel_y, ADIS16300_SCAN_ACC_Y, ADIS16300_YACCL_OUT, NULL);
30static IIO_SCAN_EL_C(accel_y, ADIS16300_SCAN_ACC_Y, IIO_SIGNED(14), 28static IIO_SCAN_EL_C(accel_z, ADIS16300_SCAN_ACC_Z, ADIS16300_ZACCL_OUT, NULL);
31 ADIS16300_YACCL_OUT, NULL);
32static IIO_SCAN_EL_C(accel_z, ADIS16300_SCAN_ACC_Z, IIO_SIGNED(14),
33 ADIS16300_ZACCL_OUT, NULL);
34static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16); 29static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16);
35 30
36static IIO_SCAN_EL_C(temp, ADIS16300_SCAN_TEMP, IIO_UNSIGNED(12), 31static IIO_SCAN_EL_C(temp, ADIS16300_SCAN_TEMP, ADIS16300_TEMP_OUT, NULL);
37 ADIS16300_TEMP_OUT, NULL);
38static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, s, 12, 16); 32static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, s, 12, 16);
39 33
40static IIO_SCAN_EL_C(in0, ADIS16300_SCAN_ADC_0, IIO_UNSIGNED(12), 34static IIO_SCAN_EL_C(in0, ADIS16300_SCAN_ADC_0, ADIS16300_AUX_ADC, NULL);
41 ADIS16300_AUX_ADC, NULL);
42static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16); 35static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16);
43 36
44static IIO_SCAN_EL_C(incli_x, ADIS16300_SCAN_INCLI_X, IIO_SIGNED(12), 37static IIO_SCAN_EL_C(incli_x, ADIS16300_SCAN_INCLI_X,
45 ADIS16300_XINCLI_OUT, NULL); 38 ADIS16300_XINCLI_OUT, NULL);
46static IIO_SCAN_EL_C(incli_y, ADIS16300_SCAN_INCLI_Y, IIO_SIGNED(12), 39static IIO_SCAN_EL_C(incli_y, ADIS16300_SCAN_INCLI_Y,
47 ADIS16300_YINCLI_OUT, NULL); 40 ADIS16300_YINCLI_OUT, NULL);
48static IIO_CONST_ATTR_SCAN_EL_TYPE(incli, s, 13, 16); 41static IIO_CONST_ATTR_SCAN_EL_TYPE(incli, s, 13, 16);
49 42
50static IIO_SCAN_EL_TIMESTAMP(9); 43static IIO_SCAN_EL_TIMESTAMP(9);
51static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64); 44static IIO_CONST_ATTR_SCAN_EL_TYPE(timestamp, s, 64, 64);
52 45
53
54static struct attribute *adis16300_scan_el_attrs[] = { 46static struct attribute *adis16300_scan_el_attrs[] = {
55 &iio_scan_el_in_supply.dev_attr.attr, 47 &iio_scan_el_in_supply.dev_attr.attr,
56 &iio_const_attr_in_supply_type.dev_attr.attr, 48 &iio_const_attr_in_supply_type.dev_attr.attr,
diff --git a/drivers/staging/iio/imu/adis16350_ring.c b/drivers/staging/iio/imu/adis16350_ring.c
index ccd6c95fc14..60331bfbc9f 100644
--- a/drivers/staging/iio/imu/adis16350_ring.c
+++ b/drivers/staging/iio/imu/adis16350_ring.c
@@ -17,36 +17,26 @@
17#include "../trigger.h" 17#include "../trigger.h"
18#include "adis16350.h" 18#include "adis16350.h"
19 19
20static IIO_SCAN_EL_C(in_supply, ADIS16350_SCAN_SUPPLY, IIO_UNSIGNED(12), 20static IIO_SCAN_EL_C(in_supply, ADIS16350_SCAN_SUPPLY,
21 ADIS16350_SUPPLY_OUT, NULL); 21 ADIS16350_SUPPLY_OUT, NULL);
22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 12, 16); 22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 12, 16);
23 23
24static IIO_SCAN_EL_C(gyro_x, ADIS16350_SCAN_GYRO_X, IIO_SIGNED(14), 24static IIO_SCAN_EL_C(gyro_x, ADIS16350_SCAN_GYRO_X, ADIS16350_XGYRO_OUT, NULL);
25 ADIS16350_XGYRO_OUT, NULL); 25static IIO_SCAN_EL_C(gyro_y, ADIS16350_SCAN_GYRO_Y, ADIS16350_YGYRO_OUT, NULL);
26static IIO_SCAN_EL_C(gyro_y, ADIS16350_SCAN_GYRO_Y, IIO_SIGNED(14), 26static IIO_SCAN_EL_C(gyro_z, ADIS16350_SCAN_GYRO_Z, ADIS16350_ZGYRO_OUT, NULL);
27 ADIS16350_YGYRO_OUT, NULL);
28static IIO_SCAN_EL_C(gyro_z, ADIS16350_SCAN_GYRO_Z, IIO_SIGNED(14),
29 ADIS16350_ZGYRO_OUT, NULL);
30static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16); 27static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16);
31 28
32static IIO_SCAN_EL_C(accel_x, ADIS16350_SCAN_ACC_X, IIO_SIGNED(14), 29static IIO_SCAN_EL_C(accel_x, ADIS16350_SCAN_ACC_X, ADIS16350_XACCL_OUT, NULL);
33 ADIS16350_XACCL_OUT, NULL); 30static IIO_SCAN_EL_C(accel_y, ADIS16350_SCAN_ACC_Y, ADIS16350_YACCL_OUT, NULL);
34static IIO_SCAN_EL_C(accel_y, ADIS16350_SCAN_ACC_Y, IIO_SIGNED(14), 31static IIO_SCAN_EL_C(accel_z, ADIS16350_SCAN_ACC_Z, ADIS16350_ZACCL_OUT, NULL);
35 ADIS16350_YACCL_OUT, NULL);
36static IIO_SCAN_EL_C(accel_z, ADIS16350_SCAN_ACC_Z, IIO_SIGNED(14),
37 ADIS16350_ZACCL_OUT, NULL);
38static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16); 32static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16);
39 33
40static IIO_SCAN_EL_C(temp_x, ADIS16350_SCAN_TEMP_X, IIO_SIGNED(12), 34static IIO_SCAN_EL_C(temp_x, ADIS16350_SCAN_TEMP_X, ADIS16350_XTEMP_OUT, NULL);
41 ADIS16350_XTEMP_OUT, NULL); 35static IIO_SCAN_EL_C(temp_y, ADIS16350_SCAN_TEMP_Y, ADIS16350_YTEMP_OUT, NULL);
42static IIO_SCAN_EL_C(temp_y, ADIS16350_SCAN_TEMP_Y, IIO_SIGNED(12), 36static IIO_SCAN_EL_C(temp_z, ADIS16350_SCAN_TEMP_Z, ADIS16350_ZTEMP_OUT, NULL);
43 ADIS16350_YTEMP_OUT, NULL);
44static IIO_SCAN_EL_C(temp_z, ADIS16350_SCAN_TEMP_Z, IIO_SIGNED(12),
45 ADIS16350_ZTEMP_OUT, NULL);
46static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, s, 12, 16); 37static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, s, 12, 16);
47 38
48static IIO_SCAN_EL_C(in0, ADIS16350_SCAN_ADC_0, IIO_UNSIGNED(12), 39static IIO_SCAN_EL_C(in0, ADIS16350_SCAN_ADC_0, ADIS16350_AUX_ADC, NULL);
49 ADIS16350_AUX_ADC, NULL);
50static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16); 40static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16);
51 41
52static IIO_SCAN_EL_TIMESTAMP(11); 42static IIO_SCAN_EL_TIMESTAMP(11);
diff --git a/drivers/staging/iio/imu/adis16400_ring.c b/drivers/staging/iio/imu/adis16400_ring.c
index 5a8219b1ae0..42703da5fa0 100644
--- a/drivers/staging/iio/imu/adis16400_ring.c
+++ b/drivers/staging/iio/imu/adis16400_ring.c
@@ -17,40 +17,29 @@
17#include "../trigger.h" 17#include "../trigger.h"
18#include "adis16400.h" 18#include "adis16400.h"
19 19
20static IIO_SCAN_EL_C(in_supply, ADIS16400_SCAN_SUPPLY, IIO_SIGNED(14), 20static IIO_SCAN_EL_C(in_supply, ADIS16400_SCAN_SUPPLY,
21 ADIS16400_SUPPLY_OUT, NULL); 21 ADIS16400_SUPPLY_OUT, NULL);
22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 14, 16); 22static IIO_CONST_ATTR_SCAN_EL_TYPE(in_supply, u, 14, 16);
23 23
24static IIO_SCAN_EL_C(gyro_x, ADIS16400_SCAN_GYRO_X, IIO_SIGNED(14), 24static IIO_SCAN_EL_C(gyro_x, ADIS16400_SCAN_GYRO_X, ADIS16400_XGYRO_OUT, NULL);
25 ADIS16400_XGYRO_OUT, NULL); 25static IIO_SCAN_EL_C(gyro_y, ADIS16400_SCAN_GYRO_Y, ADIS16400_YGYRO_OUT, NULL);
26static IIO_SCAN_EL_C(gyro_y, ADIS16400_SCAN_GYRO_Y, IIO_SIGNED(14), 26static IIO_SCAN_EL_C(gyro_z, ADIS16400_SCAN_GYRO_Z, ADIS16400_ZGYRO_OUT, NULL);
27 ADIS16400_YGYRO_OUT, NULL);
28static IIO_SCAN_EL_C(gyro_z, ADIS16400_SCAN_GYRO_Z, IIO_SIGNED(14),
29 ADIS16400_ZGYRO_OUT, NULL);
30static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16); 27static IIO_CONST_ATTR_SCAN_EL_TYPE(gyro, s, 14, 16);
31 28
32static IIO_SCAN_EL_C(accel_x, ADIS16400_SCAN_ACC_X, IIO_SIGNED(14), 29static IIO_SCAN_EL_C(accel_x, ADIS16400_SCAN_ACC_X, ADIS16400_XACCL_OUT, NULL);
33 ADIS16400_XACCL_OUT, NULL); 30static IIO_SCAN_EL_C(accel_y, ADIS16400_SCAN_ACC_Y, ADIS16400_YACCL_OUT, NULL);
34static IIO_SCAN_EL_C(accel_y, ADIS16400_SCAN_ACC_Y, IIO_SIGNED(14), 31static IIO_SCAN_EL_C(accel_z, ADIS16400_SCAN_ACC_Z, ADIS16400_ZACCL_OUT, NULL);
35 ADIS16400_YACCL_OUT, NULL);
36static IIO_SCAN_EL_C(accel_z, ADIS16400_SCAN_ACC_Z, IIO_SIGNED(14),
37 ADIS16400_ZACCL_OUT, NULL);
38static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16); 32static IIO_CONST_ATTR_SCAN_EL_TYPE(accel, s, 14, 16);
39 33
40static IIO_SCAN_EL_C(magn_x, ADIS16400_SCAN_MAGN_X, IIO_SIGNED(14), 34static IIO_SCAN_EL_C(magn_x, ADIS16400_SCAN_MAGN_X, ADIS16400_XMAGN_OUT, NULL);
41 ADIS16400_XMAGN_OUT, NULL); 35static IIO_SCAN_EL_C(magn_y, ADIS16400_SCAN_MAGN_Y, ADIS16400_YMAGN_OUT, NULL);
42static IIO_SCAN_EL_C(magn_y, ADIS16400_SCAN_MAGN_Y, IIO_SIGNED(14), 36static IIO_SCAN_EL_C(magn_z, ADIS16400_SCAN_MAGN_Z, ADIS16400_ZMAGN_OUT, NULL);
43 ADIS16400_YMAGN_OUT, NULL);
44static IIO_SCAN_EL_C(magn_z, ADIS16400_SCAN_MAGN_Z, IIO_SIGNED(14),
45 ADIS16400_ZMAGN_OUT, NULL);
46static IIO_CONST_ATTR_SCAN_EL_TYPE(magn, s, 14, 16); 37static IIO_CONST_ATTR_SCAN_EL_TYPE(magn, s, 14, 16);
47 38
48static IIO_SCAN_EL_C(temp, ADIS16400_SCAN_TEMP, IIO_SIGNED(12), 39static IIO_SCAN_EL_C(temp, ADIS16400_SCAN_TEMP, ADIS16400_TEMP_OUT, NULL);
49 ADIS16400_TEMP_OUT, NULL);
50static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, s, 12, 16); 40static IIO_CONST_ATTR_SCAN_EL_TYPE(temp, s, 12, 16);
51 41
52static IIO_SCAN_EL_C(in0, ADIS16400_SCAN_ADC_0, IIO_SIGNED(12), 42static IIO_SCAN_EL_C(in0, ADIS16400_SCAN_ADC_0, ADIS16400_AUX_ADC, NULL);
53 ADIS16400_AUX_ADC, NULL);
54static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16); 43static IIO_CONST_ATTR_SCAN_EL_TYPE(in0, u, 12, 16);
55 44
56static IIO_SCAN_EL_TIMESTAMP(12); 45static IIO_SCAN_EL_TIMESTAMP(12);
diff --git a/drivers/staging/iio/ring_generic.h b/drivers/staging/iio/ring_generic.h
index 692b967eee7..6be399af17b 100644
--- a/drivers/staging/iio/ring_generic.h
+++ b/drivers/staging/iio/ring_generic.h
@@ -168,7 +168,6 @@ static inline void __iio_update_ring_buffer(struct iio_ring_buffer *ring,
168 * struct iio_scan_el - an individual element of a scan 168 * struct iio_scan_el - an individual element of a scan
169 * @dev_attr: control attribute (if directly controllable) 169 * @dev_attr: control attribute (if directly controllable)
170 * @number: unique identifier of element (used for bit mask) 170 * @number: unique identifier of element (used for bit mask)
171 * @bit_count: number of bits in scan element
172 * @label: useful data for the scan el (often reg address) 171 * @label: useful data for the scan el (often reg address)
173 * @set_state: for some devices datardy signals are generated 172 * @set_state: for some devices datardy signals are generated
174 * for any enabled lines. This allows unwanted lines 173 * for any enabled lines. This allows unwanted lines
@@ -177,7 +176,6 @@ static inline void __iio_update_ring_buffer(struct iio_ring_buffer *ring,
177struct iio_scan_el { 176struct iio_scan_el {
178 struct device_attribute dev_attr; 177 struct device_attribute dev_attr;
179 unsigned int number; 178 unsigned int number;
180 int bit_count;
181 unsigned int label; 179 unsigned int label;
182 180
183 int (*set_state)(struct iio_scan_el *scanel, 181 int (*set_state)(struct iio_scan_el *scanel,
@@ -232,39 +230,36 @@ ssize_t iio_scan_el_ts_show(struct device *dev, struct device_attribute *attr,
232 * @_name: identifying name. Resulting struct is iio_scan_el_##_name, 230 * @_name: identifying name. Resulting struct is iio_scan_el_##_name,
233 * sysfs element, _name##_en. 231 * sysfs element, _name##_en.
234 * @_number: unique id number for the scan element. 232 * @_number: unique id number for the scan element.
235 * @_bits: number of bits in the scan element result (used in mixed bit
236 * length devices). 233 * length devices).
237 * @_label: indentification variable used by drivers. Often a reg address. 234 * @_label: indentification variable used by drivers. Often a reg address.
238 * @_controlfunc: function used to notify hardware of whether state changes 235 * @_controlfunc: function used to notify hardware of whether state changes
239 **/ 236 **/
240#define __IIO_SCAN_EL_C(_name, _number, _bits, _label, _controlfunc) \ 237#define __IIO_SCAN_EL_C(_name, _number, _label, _controlfunc) \
241 struct iio_scan_el iio_scan_el_##_name = { \ 238 struct iio_scan_el iio_scan_el_##_name = { \
242 .dev_attr = __ATTR(_number##_##_name##_en, \ 239 .dev_attr = __ATTR(_number##_##_name##_en, \
243 S_IRUGO | S_IWUSR, \ 240 S_IRUGO | S_IWUSR, \
244 iio_scan_el_show, \ 241 iio_scan_el_show, \
245 iio_scan_el_store), \ 242 iio_scan_el_store), \
246 .number = _number, \ 243 .number = _number, \
247 .bit_count = _bits, \
248 .label = _label, \ 244 .label = _label, \
249 .set_state = _controlfunc, \ 245 .set_state = _controlfunc, \
250 } 246 }
251 247
252#define IIO_SCAN_EL_C(_name, _number, _bits, _label, _controlfunc) \ 248#define IIO_SCAN_EL_C(_name, _number, _label, _controlfunc) \
253 __IIO_SCAN_EL_C(_name, _number, _bits, _label, _controlfunc) 249 __IIO_SCAN_EL_C(_name, _number, _label, _controlfunc)
254 250
255#define __IIO_SCAN_NAMED_EL_C(_name, _string, _number, _bits, _label, _cf) \ 251#define __IIO_SCAN_NAMED_EL_C(_name, _string, _number, _label, _cf) \
256 struct iio_scan_el iio_scan_el_##_name = { \ 252 struct iio_scan_el iio_scan_el_##_name = { \
257 .dev_attr = __ATTR(_number##_##_string##_en, \ 253 .dev_attr = __ATTR(_number##_##_string##_en, \
258 S_IRUGO | S_IWUSR, \ 254 S_IRUGO | S_IWUSR, \
259 iio_scan_el_show, \ 255 iio_scan_el_show, \
260 iio_scan_el_store), \ 256 iio_scan_el_store), \
261 .number = _number, \ 257 .number = _number, \
262 .bit_count = _bits, \
263 .label = _label, \ 258 .label = _label, \
264 .set_state = _cf, \ 259 .set_state = _cf, \
265 } 260 }
266#define IIO_SCAN_NAMED_EL_C(_name, _string, _number, _bits, _label, _cf) \ 261#define IIO_SCAN_NAMED_EL_C(_name, _string, _number, _label, _cf) \
267 __IIO_SCAN_NAMED_EL_C(_name, _string, _number, _bits, _label, _cf) 262 __IIO_SCAN_NAMED_EL_C(_name, _string, _number, _label, _cf)
268/** 263/**
269 * IIO_SCAN_EL_TIMESTAMP - declare a special scan element for timestamps 264 * IIO_SCAN_EL_TIMESTAMP - declare a special scan element for timestamps
270 * @number: specify where in the scan order this is stored. 265 * @number: specify where in the scan order this is stored.