diff options
author | Jonathan Cameron <jic23@cam.ac.uk> | 2011-10-26 12:41:36 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-11-26 19:35:04 -0500 |
commit | c8a9f8056f40f6201b84fdddb49a1c62630902c5 (patch) | |
tree | ec883343656925d7f0e88decf16689c4f47b8822 /drivers/staging/iio/iio.h | |
parent | 924f8a21dd13223cc1493a916c6769cf73e0d45e (diff) |
staging:iio:treewide only use shared to decide on interfaces
Internally the fact that say scale is shared across channels is
actually of remarkably little interest. Hence lets not store it.
Numerous devices have weird combinations of channels sharing
scale anyway so it is not as though this was really telling
us much. Note however that we do still use the shared sysfs
attrs thus massively reducing the number of attrs in complex
drivers.
Side effect is that certain drivers that were abusing this
(mostly my work) needed to do a few more checks on what the
channel they are being queried on actually is.
This is also helpful for in kernel interfaces where we
just want to query the scale and don't care whether it
is shared with other channels or not.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio/iio.h')
-rw-r--r-- | drivers/staging/iio/iio.h | 62 |
1 files changed, 46 insertions, 16 deletions
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h index 4fb4cc42399..66c2604c92c 100644 --- a/drivers/staging/iio/iio.h +++ b/drivers/staging/iio/iio.h | |||
@@ -27,24 +27,54 @@ enum iio_data_type { | |||
27 | /* Could add the raw attributes as well - allowing buffer only devices */ | 27 | /* Could add the raw attributes as well - allowing buffer only devices */ |
28 | enum iio_chan_info_enum { | 28 | enum iio_chan_info_enum { |
29 | /* 0 is reserverd for raw attributes */ | 29 | /* 0 is reserverd for raw attributes */ |
30 | IIO_CHAN_INFO_SCALE_SHARED = 2, | 30 | IIO_CHAN_INFO_SCALE = 1, |
31 | IIO_CHAN_INFO_SCALE_SEPARATE, | 31 | IIO_CHAN_INFO_OFFSET, |
32 | IIO_CHAN_INFO_OFFSET_SHARED, | 32 | IIO_CHAN_INFO_CALIBSCALE, |
33 | IIO_CHAN_INFO_OFFSET_SEPARATE, | 33 | IIO_CHAN_INFO_CALIBBIAS, |
34 | IIO_CHAN_INFO_CALIBSCALE_SHARED, | 34 | IIO_CHAN_INFO_PEAK, |
35 | IIO_CHAN_INFO_CALIBSCALE_SEPARATE, | 35 | IIO_CHAN_INFO_PEAK_SCALE, |
36 | IIO_CHAN_INFO_CALIBBIAS_SHARED, | 36 | IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW, |
37 | IIO_CHAN_INFO_CALIBBIAS_SEPARATE, | 37 | IIO_CHAN_INFO_AVERAGE_RAW, |
38 | IIO_CHAN_INFO_PEAK_SHARED, | ||
39 | IIO_CHAN_INFO_PEAK_SEPARATE, | ||
40 | IIO_CHAN_INFO_PEAK_SCALE_SHARED, | ||
41 | IIO_CHAN_INFO_PEAK_SCALE_SEPARATE, | ||
42 | IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SHARED, | ||
43 | IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE, | ||
44 | IIO_CHAN_INFO_AVERAGE_RAW_SHARED, | ||
45 | IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE, | ||
46 | }; | 38 | }; |
47 | 39 | ||
40 | #define IIO_CHAN_INFO_SHARED_BIT(type) BIT(type*2) | ||
41 | #define IIO_CHAN_INFO_SEPARATE_BIT(type) BIT(type*2 + 1) | ||
42 | |||
43 | #define IIO_CHAN_INFO_SCALE_SEPARATE_BIT \ | ||
44 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_SCALE) | ||
45 | #define IIO_CHAN_INFO_SCALE_SHARED_BIT \ | ||
46 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_SCALE) | ||
47 | #define IIO_CHAN_INFO_OFFSET_SEPARATE_BIT \ | ||
48 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_OFFSET) | ||
49 | #define IIO_CHAN_INFO_OFFSET_SHARED_BIT \ | ||
50 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_OFFSET) | ||
51 | #define IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT \ | ||
52 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_CALIBSCALE) | ||
53 | #define IIO_CHAN_INFO_CALIBSCALE_SHARED_BIT \ | ||
54 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_CALIBSCALE) | ||
55 | #define IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT \ | ||
56 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_CALIBBIAS) | ||
57 | #define IIO_CHAN_INFO_CALIBBIAS_SHARED_BIT \ | ||
58 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_CALIBBIAS) | ||
59 | #define IIO_CHAN_INFO_PEAK_SEPARATE_BIT \ | ||
60 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_PEAK) | ||
61 | #define IIO_CHAN_INFO_PEAK_SHARED_BIT \ | ||
62 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_PEAK) | ||
63 | #define IIO_CHAN_INFO_PEAKSCALE_SEPARATE_BIT \ | ||
64 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_PEAKSCALE) | ||
65 | #define IIO_CHAN_INFO_PEAKSCALE_SHARED_BIT \ | ||
66 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_PEAKSCALE) | ||
67 | #define IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT \ | ||
68 | IIO_CHAN_INFO_SEPARATE_BIT( \ | ||
69 | IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW) | ||
70 | #define IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SHARED_BIT \ | ||
71 | IIO_CHAN_INFO_SHARED_BIT( \ | ||
72 | IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW) | ||
73 | #define IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT \ | ||
74 | IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_AVERAGE_RAW) | ||
75 | #define IIO_CHAN_INFO_AVERAGE_RAW_SHARED_BIT \ | ||
76 | IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_AVERAGE_RAW) | ||
77 | |||
48 | enum iio_endian { | 78 | enum iio_endian { |
49 | IIO_CPU, | 79 | IIO_CPU, |
50 | IIO_BE, | 80 | IIO_BE, |