* [PATCH 1/3] iio: add IIO_ST macros specifying endianness, IIO_ST_CPU and IIO_ST_BE
@ 2012-09-30 10:05 Peter Meerwald
2012-09-30 10:05 ` [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible Peter Meerwald
2012-09-30 10:05 ` [PATCH 3/3] staging iio: consistent commas in adis16400 channel spec Peter Meerwald
0 siblings, 2 replies; 6+ messages in thread
From: Peter Meerwald @ 2012-09-30 10:05 UTC (permalink / raw)
To: linux-iio; +Cc: Peter Meerwald
add IIO_ST_BE (for big endian); we can make use of in a subsequent
patch (max1363 driver and ad_sigma_delta.h)
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
---
include/linux/iio/iio.h | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index c0ae76a..a5b6a03 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -278,8 +278,14 @@ static inline bool iio_channel_has_info(const struct iio_chan_spec *chan,
return chan->info_mask & IIO_CHAN_INFO_BITS(type);
}
-#define IIO_ST(si, rb, sb, sh) \
- { .sign = si, .realbits = rb, .storagebits = sb, .shift = sh }
+#define IIO_ST_CPU(si, rb, sb, sh) \
+ { .sign = si, .realbits = rb, .storagebits = sb, .shift = sh, \
+ .endianness = IIO_CPU }
+#define IIO_ST_BE(si, rb, sb, sh) \
+ { .sign = si, .realbits = rb, .storagebits = sb, .shift = sh, \
+ .endianness = IIO_BE }
+
+#define IIO_ST(si, rb, sb, sh) IIO_ST_CPU(si, rb, sb, sh)
#define IIO_CHAN_SOFT_TIMESTAMP(_si) \
{ .type = IIO_TIMESTAMP, .channel = -1, \
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible
2012-09-30 10:05 [PATCH 1/3] iio: add IIO_ST macros specifying endianness, IIO_ST_CPU and IIO_ST_BE Peter Meerwald
@ 2012-09-30 10:05 ` Peter Meerwald
2012-09-30 10:35 ` Jonathan Cameron
2012-09-30 10:05 ` [PATCH 3/3] staging iio: consistent commas in adis16400 channel spec Peter Meerwald
1 sibling, 1 reply; 6+ messages in thread
From: Peter Meerwald @ 2012-09-30 10:05 UTC (permalink / raw)
To: linux-iio; +Cc: Peter Meerwald, 21cnbao, jic23, hennerich, marex, lars
saves a couple of lines for each .scan_type specification
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Cc: 21cnbao@gmail.com
Cc: jic23@kernel.org
Cc: hennerich@blackfin.uclinux.org
Cc: marex@denx.de
Cc: lars@metafoo.de
---
drivers/staging/iio/accel/adis16201_core.c | 42 ++---------
drivers/staging/iio/accel/adis16203_core.c | 30 ++------
drivers/staging/iio/accel/adis16204_core.c | 36 ++-------
drivers/staging/iio/accel/adis16209_core.c | 48 ++----------
drivers/staging/iio/accel/adis16240_core.c | 36 ++-------
drivers/staging/iio/accel/lis3l02dq_core.c | 6 +-
drivers/staging/iio/accel/sca3000_core.c | 7 +-
drivers/staging/iio/adc/ad7298_core.c | 12 +--
drivers/staging/iio/adc/max1363_core.c | 14 +---
drivers/staging/iio/adc/mxs-lradc.c | 6 +-
drivers/staging/iio/gyro/adis16260_core.c | 30 ++------
drivers/staging/iio/iio_simple_dummy.c | 8 +-
drivers/staging/iio/impedance-analyzer/ad5933.c | 18 +----
drivers/staging/iio/meter/ade7758_core.c | 90 ++++-------------------
include/linux/iio/adc/ad_sigma_delta.h | 8 +-
15 files changed, 65 insertions(+), 326 deletions(-)
diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c
index 8e37d6e..ad52d97 100644
--- a/drivers/staging/iio/accel/adis16201_core.c
+++ b/drivers/staging/iio/accel/adis16201_core.c
@@ -400,11 +400,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16201_SCAN_SUPPLY,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_TEMP,
.indexed = 1,
@@ -414,11 +410,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
.address = temp,
.scan_index = ADIS16201_SCAN_TEMP,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -428,11 +420,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = accel_x,
.scan_index = ADIS16201_SCAN_ACC_X,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -442,11 +430,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = accel_y,
.scan_index = ADIS16201_SCAN_ACC_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -455,11 +439,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_aux,
.scan_index = ADIS16201_SCAN_AUX_ADC,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_INCLI,
.modified = 1,
@@ -469,11 +449,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = incli_x,
.scan_index = ADIS16201_SCAN_INCLI_X,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_INCLI,
.modified = 1,
@@ -483,11 +459,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = incli_y,
.scan_index = ADIS16201_SCAN_INCLI_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
},
IIO_CHAN_SOFT_TIMESTAMP(7)
};
diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c
index 002fa9d..27663dc 100644
--- a/drivers/staging/iio/accel/adis16203_core.c
+++ b/drivers/staging/iio/accel/adis16203_core.c
@@ -365,11 +365,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16203_SCAN_SUPPLY,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -378,11 +374,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_aux,
.scan_index = ADIS16203_SCAN_AUX_ADC,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_INCLI,
.modified = 1,
@@ -392,11 +384,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = incli_x,
.scan_index = ADIS16203_SCAN_INCLI_X,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, { /* Fixme: Not what it appears to be - see data sheet */
.type = IIO_INCLI,
.modified = 1,
@@ -405,11 +393,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = incli_y,
.scan_index = ADIS16203_SCAN_INCLI_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_TEMP,
.indexed = 1,
@@ -419,11 +403,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
.address = temp,
.scan_index = ADIS16203_SCAN_TEMP,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
},
IIO_CHAN_SOFT_TIMESTAMP(5),
};
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c
index 05bdb7c..8b6e028 100644
--- a/drivers/staging/iio/accel/adis16204_core.c
+++ b/drivers/staging/iio/accel/adis16204_core.c
@@ -407,11 +407,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16204_SCAN_SUPPLY,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -420,11 +416,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_aux,
.scan_index = ADIS16204_SCAN_AUX_ADC,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_TEMP,
.indexed = 1,
@@ -434,11 +426,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
.address = temp,
.scan_index = ADIS16204_SCAN_TEMP,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -449,11 +437,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
.address = accel_x,
.scan_index = ADIS16204_SCAN_ACC_X,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -464,11 +448,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
.address = accel_y,
.scan_index = ADIS16204_SCAN_ACC_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
},
IIO_CHAN_SOFT_TIMESTAMP(5),
{
@@ -479,11 +459,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
.address = accel_xy,
- .scan_type = {
- .sign = 'u',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 14, 16, 0),
}
};
diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
index b7333bf..e4abb48 100644
--- a/drivers/staging/iio/accel/adis16209_core.c
+++ b/drivers/staging/iio/accel/adis16209_core.c
@@ -400,11 +400,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16209_SCAN_SUPPLY,
- .scan_type = {
- .sign = 'u',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 14, 16, 0),
}, {
.type = IIO_TEMP,
.indexed = 0,
@@ -414,11 +410,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
.address = temp,
.scan_index = ADIS16209_SCAN_TEMP,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -428,11 +420,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = accel_x,
.scan_index = ADIS16209_SCAN_ACC_X,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -442,11 +430,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
.address = accel_y,
.scan_index = ADIS16209_SCAN_ACC_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -455,11 +439,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_aux,
.scan_index = ADIS16209_SCAN_AUX_ADC,
- .scan_type = {
- .sign = 'u',
- .realbits = 12,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_INCLI,
.modified = 1,
@@ -468,11 +448,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = incli_x,
.scan_index = ADIS16209_SCAN_INCLI_X,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_INCLI,
.modified = 1,
@@ -481,11 +457,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = incli_y,
.scan_index = ADIS16209_SCAN_INCLI_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_ROT,
.modified = 1,
@@ -493,11 +465,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = rot,
.scan_index = ADIS16209_SCAN_ROT,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
},
IIO_CHAN_SOFT_TIMESTAMP(8)
};
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
index 0fc26a4..f1c7242 100644
--- a/drivers/staging/iio/accel/adis16240_core.c
+++ b/drivers/staging/iio/accel/adis16240_core.c
@@ -458,11 +458,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16240_SCAN_SUPPLY,
- .scan_type = {
- .sign = 'u',
- .realbits = 10,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 10, 16, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -470,11 +466,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = in_aux,
.scan_index = ADIS16240_SCAN_AUX_ADC,
- .scan_type = {
- .sign = 'u',
- .realbits = 10,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 10, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -485,11 +477,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
.address = accel_x,
.scan_index = ADIS16240_SCAN_ACC_X,
- .scan_type = {
- .sign = 's',
- .realbits = 10,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 10, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -500,11 +488,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
.address = accel_y,
.scan_index = ADIS16240_SCAN_ACC_Y,
- .scan_type = {
- .sign = 's',
- .realbits = 10,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 10, 16, 0),
}, {
.type = IIO_ACCEL,
.modified = 1,
@@ -515,11 +499,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
.address = accel_z,
.scan_index = ADIS16240_SCAN_ACC_Z,
- .scan_type = {
- .sign = 's',
- .realbits = 10,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 10, 16, 0),
}, {
.type = IIO_TEMP,
.indexed = 1,
@@ -528,11 +508,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = temp,
.scan_index = ADIS16240_SCAN_TEMP,
- .scan_type = {
- .sign = 'u',
- .realbits = 10,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('u', 10, 16, 0),
},
IIO_CHAN_SOFT_TIMESTAMP(6)
};
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index 21b0469..12b0ae0 100644
--- a/drivers/staging/iio/accel/lis3l02dq_core.c
+++ b/drivers/staging/iio/accel/lis3l02dq_core.c
@@ -530,11 +530,7 @@ static irqreturn_t lis3l02dq_event_handler(int irq, void *private)
.info_mask = LIS3L02DQ_INFO_MASK, \
.address = index, \
.scan_index = index, \
- .scan_type = { \
- .sign = 's', \
- .realbits = 12, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('s', 12, 16, 0), \
.event_mask = LIS3L02DQ_EVENT_MASK, \
}
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index ffd1697..e8093ea 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -441,12 +441,7 @@ static IIO_DEVICE_ATTR(revision, S_IRUGO, sca3000_show_rev, NULL, 0);
.info_mask = SCA3000_INFO_MASK, \
.address = index, \
.scan_index = index, \
- .scan_type = { \
- .sign = 's', \
- .realbits = 11, \
- .storagebits = 16, \
- .shift = 5, \
- }, \
+ .scan_type = IIO_ST('s', 11, 16, 5), \
.event_mask = SCA3000_EVENT_MASK, \
}
diff --git a/drivers/staging/iio/adc/ad7298_core.c b/drivers/staging/iio/adc/ad7298_core.c
index 4c75114..ac0b344 100644
--- a/drivers/staging/iio/adc/ad7298_core.c
+++ b/drivers/staging/iio/adc/ad7298_core.c
@@ -31,11 +31,7 @@
IIO_CHAN_INFO_SCALE_SHARED_BIT, \
.address = index, \
.scan_index = index, \
- .scan_type = { \
- .sign = 'u', \
- .realbits = 12, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('u', 12, 16, 0), \
}
static const struct iio_chan_spec ad7298_channels[] = {
@@ -47,11 +43,7 @@ static const struct iio_chan_spec ad7298_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = AD7298_CH_TEMP,
.scan_index = -1,
- .scan_type = {
- .sign = 's',
- .realbits = 32,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 32, 32, 0),
},
AD7298_V_CHAN(0),
AD7298_V_CHAN(1),
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index d7b4ffc..07b9623 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -292,12 +292,7 @@ static const enum max1363_modes max1363_mode_list[] = {
.address = addr, \
.info_mask = MAX1363_INFO_MASK, \
.datasheet_name = "AIN"#num, \
- .scan_type = { \
- .sign = 'u', \
- .realbits = bits, \
- .storagebits = (bits > 8) ? 16 : 8, \
- .endianness = IIO_BE, \
- }, \
+ .scan_type = IIO_ST_BE('u', bits, (bits > 8) ? 16 : 8, 0), \
.scan_index = si, \
.event_mask = evmask, \
}
@@ -313,12 +308,7 @@ static const enum max1363_modes max1363_mode_list[] = {
.address = addr, \
.info_mask = MAX1363_INFO_MASK, \
.datasheet_name = "AIN"#num"-AIN"#num2, \
- .scan_type = { \
- .sign = 's', \
- .realbits = bits, \
- .storagebits = (bits > 8) ? 16 : 8, \
- .endianness = IIO_BE, \
- }, \
+ .scan_type = IIO_ST_BE('s', bits, (bits > 8) ? 16 : 8, 0), \
.scan_index = si, \
.event_mask = evmask, \
}
diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c
index ca7c1fa..3b43b56 100644
--- a/drivers/staging/iio/adc/mxs-lradc.c
+++ b/drivers/staging/iio/adc/mxs-lradc.c
@@ -414,11 +414,7 @@ static const struct iio_buffer_setup_ops mxs_lradc_buffer_ops = {
.scan_index = (idx), \
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT, \
.channel = (idx), \
- .scan_type = { \
- .sign = 'u', \
- .realbits = 18, \
- .storagebits = 32, \
- }, \
+ .scan_type = IIO_ST('u', 18, 32, 0), \
}
static const struct iio_chan_spec mxs_lradc_chan_spec[] = {
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
index 9571c03..04e83e4 100644
--- a/drivers/staging/iio/gyro/adis16260_core.c
+++ b/drivers/staging/iio/gyro/adis16260_core.c
@@ -383,11 +383,7 @@ enum adis16260_channel {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = gyro, \
.scan_index = ADIS16260_SCAN_GYRO, \
- .scan_type = { \
- .sign = 's', \
- .realbits = 14, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('s', 14, 16, 0), \
}, { \
.type = IIO_ANGL, \
.modified = 1, \
@@ -395,11 +391,7 @@ enum adis16260_channel {
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT, \
.address = angle, \
.scan_index = ADIS16260_SCAN_ANGL, \
- .scan_type = { \
- .sign = 'u', \
- .realbits = 14, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('u', 14, 16, 0), \
}, { \
.type = IIO_TEMP, \
.indexed = 1, \
@@ -409,11 +401,7 @@ enum adis16260_channel {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = temp, \
.scan_index = ADIS16260_SCAN_TEMP, \
- .scan_type = { \
- .sign = 'u', \
- .realbits = 12, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('u', 12, 16, 0), \
}, { \
.type = IIO_VOLTAGE, \
.indexed = 1, \
@@ -423,11 +411,7 @@ enum adis16260_channel {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = in_supply, \
.scan_index = ADIS16260_SCAN_SUPPLY, \
- .scan_type = { \
- .sign = 'u', \
- .realbits = 12, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('u', 12, 16, 0), \
}, { \
.type = IIO_VOLTAGE, \
.indexed = 1, \
@@ -436,11 +420,7 @@ enum adis16260_channel {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = in_aux, \
.scan_index = ADIS16260_SCAN_AUX_ADC, \
- .scan_type = { \
- .sign = 'u', \
- .realbits = 12, \
- .storagebits = 16, \
- }, \
+ .scan_type = IIO_ST('u', 12, 16, 0), \
}, \
IIO_CHAN_SOFT_TIMESTAMP(5), \
}
diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c
index dc6c728..6d38685 100644
--- a/drivers/staging/iio/iio_simple_dummy.c
+++ b/drivers/staging/iio/iio_simple_dummy.c
@@ -150,12 +150,8 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
IIO_CHAN_INFO_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.scan_index = diffvoltage3m4,
- .scan_type = {
- .sign = 's',
- .realbits = 11,
- .storagebits = 16,
- .shift = 0,
- },
+ .scan_type = /* use IIO_ST macro for brevity */
+ IIO_ST('s', 11, 16, 0),
},
/*
* 'modified' (i.e. axis specified) acceleration channel
diff --git a/drivers/staging/iio/impedance-analyzer/ad5933.c b/drivers/staging/iio/impedance-analyzer/ad5933.c
index de21d47..441430f 100644
--- a/drivers/staging/iio/impedance-analyzer/ad5933.c
+++ b/drivers/staging/iio/impedance-analyzer/ad5933.c
@@ -115,11 +115,7 @@ static const struct iio_chan_spec ad5933_channels[] = {
.channel = 0,
.info_mask = IIO_CHAN_INFO_PROCESSED_SEPARATE_BIT,
.address = AD5933_REG_TEMP_DATA,
- .scan_type = {
- .sign = 's',
- .realbits = 14,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, { /* Ring Channels */
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -129,11 +125,7 @@ static const struct iio_chan_spec ad5933_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = AD5933_REG_REAL_DATA,
.scan_index = 0,
- .scan_type = {
- .sign = 's',
- .realbits = 16,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 16, 16, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -143,11 +135,7 @@ static const struct iio_chan_spec ad5933_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = AD5933_REG_IMAG_DATA,
.scan_index = 1,
- .scan_type = {
- .sign = 's',
- .realbits = 16,
- .storagebits = 16,
- },
+ .scan_type = IIO_ST('s', 16, 16, 0),
},
};
diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
index a0fef77..c465a7a 100644
--- a/drivers/staging/iio/meter/ade7758_core.c
+++ b/drivers/staging/iio/meter/ade7758_core.c
@@ -671,11 +671,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_A, AD7758_VOLTAGE),
.scan_index = 0,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_CURRENT,
.indexed = 1,
@@ -685,11 +681,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_A, AD7758_CURRENT),
.scan_index = 1,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -699,11 +691,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_A, AD7758_APP_PWR),
.scan_index = 2,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -713,11 +701,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_A, AD7758_ACT_PWR),
.scan_index = 3,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -727,11 +711,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_A, AD7758_REACT_PWR),
.scan_index = 4,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -741,11 +721,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_B, AD7758_VOLTAGE),
.scan_index = 5,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_CURRENT,
.indexed = 1,
@@ -755,11 +731,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_B, AD7758_CURRENT),
.scan_index = 6,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -769,11 +741,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_B, AD7758_APP_PWR),
.scan_index = 7,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -783,11 +751,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_B, AD7758_ACT_PWR),
.scan_index = 8,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -797,11 +761,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_B, AD7758_REACT_PWR),
.scan_index = 9,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_VOLTAGE,
.indexed = 1,
@@ -811,11 +771,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_C, AD7758_VOLTAGE),
.scan_index = 10,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_CURRENT,
.indexed = 1,
@@ -825,11 +781,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_C, AD7758_CURRENT),
.scan_index = 11,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -839,11 +791,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_C, AD7758_APP_PWR),
.scan_index = 12,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -853,11 +801,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_C, AD7758_ACT_PWR),
.scan_index = 13,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
}, {
.type = IIO_POWER,
.indexed = 1,
@@ -867,11 +811,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
IIO_CHAN_INFO_SCALE_SHARED_BIT,
.address = AD7758_WT(AD7758_PHASE_C, AD7758_REACT_PWR),
.scan_index = 14,
- .scan_type = {
- .sign = 's',
- .realbits = 24,
- .storagebits = 32,
- },
+ .scan_type = IIO_ST('s', 24, 32, 0),
},
IIO_CHAN_SOFT_TIMESTAMP(15),
};
diff --git a/include/linux/iio/adc/ad_sigma_delta.h b/include/linux/iio/adc/ad_sigma_delta.h
index 2e4eab9..a57f819 100644
--- a/include/linux/iio/adc/ad_sigma_delta.h
+++ b/include/linux/iio/adc/ad_sigma_delta.h
@@ -137,13 +137,7 @@ int ad_sd_validate_trigger(struct iio_dev *indio_dev, struct iio_trigger *trig);
IIO_CHAN_INFO_SCALE_SHARED_BIT | \
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT, \
.scan_index = (_si), \
- .scan_type = { \
- .sign = 'u', \
- .realbits = (_bits), \
- .storagebits = (_storagebits), \
- .shift = (_shift), \
- .endianness = IIO_BE, \
- }, \
+ .scan_type = IIO_ST_BE('u', _bits, _storagebits, _shift), \
}
#define AD_SD_DIFF_CHANNEL(_si, _channel1, _channel2, _address, _bits, \
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] staging iio: consistent commas in adis16400 channel spec
2012-09-30 10:05 [PATCH 1/3] iio: add IIO_ST macros specifying endianness, IIO_ST_CPU and IIO_ST_BE Peter Meerwald
2012-09-30 10:05 ` [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible Peter Meerwald
@ 2012-09-30 10:05 ` Peter Meerwald
2012-10-13 20:27 ` Jonathan Cameron
1 sibling, 1 reply; 6+ messages in thread
From: Peter Meerwald @ 2012-09-30 10:05 UTC (permalink / raw)
To: linux-iio; +Cc: Peter Meerwald, manuel.stahl
probably not the most important patch in the world
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Cc: manuel.stahl@iis.fraunhofer.de
---
drivers/staging/iio/imu/adis16400_core.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
index b302c9b..5eab327 100644
--- a/drivers/staging/iio/imu/adis16400_core.c
+++ b/drivers/staging/iio/imu/adis16400_core.c
@@ -622,7 +622,7 @@ static const struct iio_chan_spec adis16400_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16400_SCAN_SUPPLY,
- .scan_type = IIO_ST('u', 14, 16, 0)
+ .scan_type = IIO_ST('u', 14, 16, 0),
}, {
.type = IIO_ANGL_VEL,
.modified = 1,
@@ -633,7 +633,7 @@ static const struct iio_chan_spec adis16400_channels[] = {
IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
.address = gyro_x,
.scan_index = ADIS16400_SCAN_GYRO_X,
- .scan_type = IIO_ST('s', 14, 16, 0)
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_ANGL_VEL,
.modified = 1,
@@ -752,7 +752,7 @@ static const struct iio_chan_spec adis16350_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16400_SCAN_SUPPLY,
- .scan_type = IIO_ST('u', 12, 16, 0)
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_ANGL_VEL,
.modified = 1,
@@ -763,7 +763,7 @@ static const struct iio_chan_spec adis16350_channels[] = {
IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
.address = gyro_x,
.scan_index = ADIS16400_SCAN_GYRO_X,
- .scan_type = IIO_ST('s', 14, 16, 0)
+ .scan_type = IIO_ST('s', 14, 16, 0),
}, {
.type = IIO_ANGL_VEL,
.modified = 1,
@@ -877,7 +877,7 @@ static const struct iio_chan_spec adis16300_channels[] = {
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = in_supply,
.scan_index = ADIS16400_SCAN_SUPPLY,
- .scan_type = IIO_ST('u', 12, 16, 0)
+ .scan_type = IIO_ST('u', 12, 16, 0),
}, {
.type = IIO_ANGL_VEL,
.modified = 1,
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible
2012-09-30 10:05 ` [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible Peter Meerwald
@ 2012-09-30 10:35 ` Jonathan Cameron
2012-09-30 11:16 ` Peter Meerwald
0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2012-09-30 10:35 UTC (permalink / raw)
To: Peter Meerwald; +Cc: linux-iio, 21cnbao, hennerich, marex, lars
On 09/30/2012 11:05 AM, Peter Meerwald wrote:
> saves a couple of lines for each .scan_type specification
Hi Peter,
Sorry to say I'm against this patch as I would rather
like to get rid of the IIO_ST macro entirely (pushing any
such macros down into the drivers where relevant).
The reason is precisely what you have been dealing with in
your IIO_ST_BE patch. However thoroughly we specify a macro
like this the chances of needing to extend it to cover new
elements of the structure is extremely high. When that
happens we either end up with lots of variants of the macro
like your IIO_ST_BE version or we end up having to add the
additional parameters to every instance of the macro whether
or not it matters for a particular driver.
The same thing happened with the macros for iio_chan
(despite Arnd and others warning me it was a bad idea to have
them) and we eventually had a huge set of patches ripping the
macro out of all the drivers.
Also, we ideally want to push the endian conversions out of
some of these drivers and leave it up to userspace so as to
cut down on the load when it doesn't need to be done at capture
time (logging typically).
The only reason I haven't ripped out IIO_ST already was that
it was small and I was planning at some quiet moment to do the
removal of unwanted endian conversions from within the drivers.
Curriously, such a quiet time hasn't occured for rather a long time!
Sorry,
Jonathan
>
> Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
> Cc: 21cnbao@gmail.com
> Cc: jic23@kernel.org
> Cc: hennerich@blackfin.uclinux.org
> Cc: marex@denx.de
> Cc: lars@metafoo.de
> ---
> drivers/staging/iio/accel/adis16201_core.c | 42 ++---------
> drivers/staging/iio/accel/adis16203_core.c | 30 ++------
> drivers/staging/iio/accel/adis16204_core.c | 36 ++-------
> drivers/staging/iio/accel/adis16209_core.c | 48 ++----------
> drivers/staging/iio/accel/adis16240_core.c | 36 ++-------
> drivers/staging/iio/accel/lis3l02dq_core.c | 6 +-
> drivers/staging/iio/accel/sca3000_core.c | 7 +-
> drivers/staging/iio/adc/ad7298_core.c | 12 +--
> drivers/staging/iio/adc/max1363_core.c | 14 +---
> drivers/staging/iio/adc/mxs-lradc.c | 6 +-
> drivers/staging/iio/gyro/adis16260_core.c | 30 ++------
> drivers/staging/iio/iio_simple_dummy.c | 8 +-
> drivers/staging/iio/impedance-analyzer/ad5933.c | 18 +----
> drivers/staging/iio/meter/ade7758_core.c | 90 ++++-------------------
> include/linux/iio/adc/ad_sigma_delta.h | 8 +-
> 15 files changed, 65 insertions(+), 326 deletions(-)
>
> diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c
> index 8e37d6e..ad52d97 100644
> --- a/drivers/staging/iio/accel/adis16201_core.c
> +++ b/drivers/staging/iio/accel/adis16201_core.c
> @@ -400,11 +400,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16201_SCAN_SUPPLY,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_TEMP,
> .indexed = 1,
> @@ -414,11 +410,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
> .address = temp,
> .scan_index = ADIS16201_SCAN_TEMP,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -428,11 +420,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = accel_x,
> .scan_index = ADIS16201_SCAN_ACC_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -442,11 +430,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = accel_y,
> .scan_index = ADIS16201_SCAN_ACC_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -455,11 +439,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_aux,
> .scan_index = ADIS16201_SCAN_AUX_ADC,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_INCLI,
> .modified = 1,
> @@ -469,11 +449,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = incli_x,
> .scan_index = ADIS16201_SCAN_INCLI_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_INCLI,
> .modified = 1,
> @@ -483,11 +459,7 @@ static const struct iio_chan_spec adis16201_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = incli_y,
> .scan_index = ADIS16201_SCAN_INCLI_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> },
> IIO_CHAN_SOFT_TIMESTAMP(7)
> };
> diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c
> index 002fa9d..27663dc 100644
> --- a/drivers/staging/iio/accel/adis16203_core.c
> +++ b/drivers/staging/iio/accel/adis16203_core.c
> @@ -365,11 +365,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16203_SCAN_SUPPLY,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -378,11 +374,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_aux,
> .scan_index = ADIS16203_SCAN_AUX_ADC,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_INCLI,
> .modified = 1,
> @@ -392,11 +384,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = incli_x,
> .scan_index = ADIS16203_SCAN_INCLI_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, { /* Fixme: Not what it appears to be - see data sheet */
> .type = IIO_INCLI,
> .modified = 1,
> @@ -405,11 +393,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = incli_y,
> .scan_index = ADIS16203_SCAN_INCLI_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_TEMP,
> .indexed = 1,
> @@ -419,11 +403,7 @@ static const struct iio_chan_spec adis16203_channels[] = {
> IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
> .address = temp,
> .scan_index = ADIS16203_SCAN_TEMP,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> },
> IIO_CHAN_SOFT_TIMESTAMP(5),
> };
> diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c
> index 05bdb7c..8b6e028 100644
> --- a/drivers/staging/iio/accel/adis16204_core.c
> +++ b/drivers/staging/iio/accel/adis16204_core.c
> @@ -407,11 +407,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16204_SCAN_SUPPLY,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -420,11 +416,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_aux,
> .scan_index = ADIS16204_SCAN_AUX_ADC,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_TEMP,
> .indexed = 1,
> @@ -434,11 +426,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
> IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
> .address = temp,
> .scan_index = ADIS16204_SCAN_TEMP,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -449,11 +437,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
> IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
> .address = accel_x,
> .scan_index = ADIS16204_SCAN_ACC_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -464,11 +448,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
> IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
> .address = accel_y,
> .scan_index = ADIS16204_SCAN_ACC_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> },
> IIO_CHAN_SOFT_TIMESTAMP(5),
> {
> @@ -479,11 +459,7 @@ static const struct iio_chan_spec adis16204_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
> IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
> .address = accel_xy,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 14, 16, 0),
> }
> };
>
> diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
> index b7333bf..e4abb48 100644
> --- a/drivers/staging/iio/accel/adis16209_core.c
> +++ b/drivers/staging/iio/accel/adis16209_core.c
> @@ -400,11 +400,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16209_SCAN_SUPPLY,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 14, 16, 0),
> }, {
> .type = IIO_TEMP,
> .indexed = 0,
> @@ -414,11 +410,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
> .address = temp,
> .scan_index = ADIS16209_SCAN_TEMP,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -428,11 +420,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = accel_x,
> .scan_index = ADIS16209_SCAN_ACC_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -442,11 +430,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
> .address = accel_y,
> .scan_index = ADIS16209_SCAN_ACC_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -455,11 +439,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_aux,
> .scan_index = ADIS16209_SCAN_AUX_ADC,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 12,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_INCLI,
> .modified = 1,
> @@ -468,11 +448,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = incli_x,
> .scan_index = ADIS16209_SCAN_INCLI_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_INCLI,
> .modified = 1,
> @@ -481,11 +457,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = incli_y,
> .scan_index = ADIS16209_SCAN_INCLI_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_ROT,
> .modified = 1,
> @@ -493,11 +465,7 @@ static const struct iio_chan_spec adis16209_channels[] = {
> .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
> .address = rot,
> .scan_index = ADIS16209_SCAN_ROT,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> },
> IIO_CHAN_SOFT_TIMESTAMP(8)
> };
> diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
> index 0fc26a4..f1c7242 100644
> --- a/drivers/staging/iio/accel/adis16240_core.c
> +++ b/drivers/staging/iio/accel/adis16240_core.c
> @@ -458,11 +458,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16240_SCAN_SUPPLY,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 10,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 10, 16, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -470,11 +466,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
> .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
> .address = in_aux,
> .scan_index = ADIS16240_SCAN_AUX_ADC,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 10,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 10, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -485,11 +477,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
> IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
> .address = accel_x,
> .scan_index = ADIS16240_SCAN_ACC_X,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 10,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 10, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -500,11 +488,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
> IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
> .address = accel_y,
> .scan_index = ADIS16240_SCAN_ACC_Y,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 10,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 10, 16, 0),
> }, {
> .type = IIO_ACCEL,
> .modified = 1,
> @@ -515,11 +499,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
> IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
> .address = accel_z,
> .scan_index = ADIS16240_SCAN_ACC_Z,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 10,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 10, 16, 0),
> }, {
> .type = IIO_TEMP,
> .indexed = 1,
> @@ -528,11 +508,7 @@ static const struct iio_chan_spec adis16240_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = temp,
> .scan_index = ADIS16240_SCAN_TEMP,
> - .scan_type = {
> - .sign = 'u',
> - .realbits = 10,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('u', 10, 16, 0),
> },
> IIO_CHAN_SOFT_TIMESTAMP(6)
> };
> diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
> index 21b0469..12b0ae0 100644
> --- a/drivers/staging/iio/accel/lis3l02dq_core.c
> +++ b/drivers/staging/iio/accel/lis3l02dq_core.c
> @@ -530,11 +530,7 @@ static irqreturn_t lis3l02dq_event_handler(int irq, void *private)
> .info_mask = LIS3L02DQ_INFO_MASK, \
> .address = index, \
> .scan_index = index, \
> - .scan_type = { \
> - .sign = 's', \
> - .realbits = 12, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('s', 12, 16, 0), \
> .event_mask = LIS3L02DQ_EVENT_MASK, \
> }
>
> diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
> index ffd1697..e8093ea 100644
> --- a/drivers/staging/iio/accel/sca3000_core.c
> +++ b/drivers/staging/iio/accel/sca3000_core.c
> @@ -441,12 +441,7 @@ static IIO_DEVICE_ATTR(revision, S_IRUGO, sca3000_show_rev, NULL, 0);
> .info_mask = SCA3000_INFO_MASK, \
> .address = index, \
> .scan_index = index, \
> - .scan_type = { \
> - .sign = 's', \
> - .realbits = 11, \
> - .storagebits = 16, \
> - .shift = 5, \
> - }, \
> + .scan_type = IIO_ST('s', 11, 16, 5), \
> .event_mask = SCA3000_EVENT_MASK, \
> }
>
> diff --git a/drivers/staging/iio/adc/ad7298_core.c b/drivers/staging/iio/adc/ad7298_core.c
> index 4c75114..ac0b344 100644
> --- a/drivers/staging/iio/adc/ad7298_core.c
> +++ b/drivers/staging/iio/adc/ad7298_core.c
> @@ -31,11 +31,7 @@
> IIO_CHAN_INFO_SCALE_SHARED_BIT, \
> .address = index, \
> .scan_index = index, \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = 12, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('u', 12, 16, 0), \
> }
>
> static const struct iio_chan_spec ad7298_channels[] = {
> @@ -47,11 +43,7 @@ static const struct iio_chan_spec ad7298_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = AD7298_CH_TEMP,
> .scan_index = -1,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 32,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 32, 32, 0),
> },
> AD7298_V_CHAN(0),
> AD7298_V_CHAN(1),
> diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
> index d7b4ffc..07b9623 100644
> --- a/drivers/staging/iio/adc/max1363_core.c
> +++ b/drivers/staging/iio/adc/max1363_core.c
> @@ -292,12 +292,7 @@ static const enum max1363_modes max1363_mode_list[] = {
> .address = addr, \
> .info_mask = MAX1363_INFO_MASK, \
> .datasheet_name = "AIN"#num, \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = bits, \
> - .storagebits = (bits > 8) ? 16 : 8, \
> - .endianness = IIO_BE, \
> - }, \
> + .scan_type = IIO_ST_BE('u', bits, (bits > 8) ? 16 : 8, 0), \
> .scan_index = si, \
> .event_mask = evmask, \
> }
> @@ -313,12 +308,7 @@ static const enum max1363_modes max1363_mode_list[] = {
> .address = addr, \
> .info_mask = MAX1363_INFO_MASK, \
> .datasheet_name = "AIN"#num"-AIN"#num2, \
> - .scan_type = { \
> - .sign = 's', \
> - .realbits = bits, \
> - .storagebits = (bits > 8) ? 16 : 8, \
> - .endianness = IIO_BE, \
> - }, \
> + .scan_type = IIO_ST_BE('s', bits, (bits > 8) ? 16 : 8, 0), \
> .scan_index = si, \
> .event_mask = evmask, \
> }
> diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c
> index ca7c1fa..3b43b56 100644
> --- a/drivers/staging/iio/adc/mxs-lradc.c
> +++ b/drivers/staging/iio/adc/mxs-lradc.c
> @@ -414,11 +414,7 @@ static const struct iio_buffer_setup_ops mxs_lradc_buffer_ops = {
> .scan_index = (idx), \
> .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT, \
> .channel = (idx), \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = 18, \
> - .storagebits = 32, \
> - }, \
> + .scan_type = IIO_ST('u', 18, 32, 0), \
> }
>
> static const struct iio_chan_spec mxs_lradc_chan_spec[] = {
> diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
> index 9571c03..04e83e4 100644
> --- a/drivers/staging/iio/gyro/adis16260_core.c
> +++ b/drivers/staging/iio/gyro/adis16260_core.c
> @@ -383,11 +383,7 @@ enum adis16260_channel {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
> .address = gyro, \
> .scan_index = ADIS16260_SCAN_GYRO, \
> - .scan_type = { \
> - .sign = 's', \
> - .realbits = 14, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('s', 14, 16, 0), \
> }, { \
> .type = IIO_ANGL, \
> .modified = 1, \
> @@ -395,11 +391,7 @@ enum adis16260_channel {
> .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT, \
> .address = angle, \
> .scan_index = ADIS16260_SCAN_ANGL, \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = 14, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('u', 14, 16, 0), \
> }, { \
> .type = IIO_TEMP, \
> .indexed = 1, \
> @@ -409,11 +401,7 @@ enum adis16260_channel {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
> .address = temp, \
> .scan_index = ADIS16260_SCAN_TEMP, \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = 12, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('u', 12, 16, 0), \
> }, { \
> .type = IIO_VOLTAGE, \
> .indexed = 1, \
> @@ -423,11 +411,7 @@ enum adis16260_channel {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
> .address = in_supply, \
> .scan_index = ADIS16260_SCAN_SUPPLY, \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = 12, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('u', 12, 16, 0), \
> }, { \
> .type = IIO_VOLTAGE, \
> .indexed = 1, \
> @@ -436,11 +420,7 @@ enum adis16260_channel {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
> .address = in_aux, \
> .scan_index = ADIS16260_SCAN_AUX_ADC, \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = 12, \
> - .storagebits = 16, \
> - }, \
> + .scan_type = IIO_ST('u', 12, 16, 0), \
> }, \
> IIO_CHAN_SOFT_TIMESTAMP(5), \
> }
> diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c
> index dc6c728..6d38685 100644
> --- a/drivers/staging/iio/iio_simple_dummy.c
> +++ b/drivers/staging/iio/iio_simple_dummy.c
> @@ -150,12 +150,8 @@ static const struct iio_chan_spec iio_dummy_channels[] = {
> IIO_CHAN_INFO_RAW_SEPARATE_BIT |
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .scan_index = diffvoltage3m4,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 11,
> - .storagebits = 16,
> - .shift = 0,
> - },
> + .scan_type = /* use IIO_ST macro for brevity */
> + IIO_ST('s', 11, 16, 0),
> },
> /*
> * 'modified' (i.e. axis specified) acceleration channel
> diff --git a/drivers/staging/iio/impedance-analyzer/ad5933.c b/drivers/staging/iio/impedance-analyzer/ad5933.c
> index de21d47..441430f 100644
> --- a/drivers/staging/iio/impedance-analyzer/ad5933.c
> +++ b/drivers/staging/iio/impedance-analyzer/ad5933.c
> @@ -115,11 +115,7 @@ static const struct iio_chan_spec ad5933_channels[] = {
> .channel = 0,
> .info_mask = IIO_CHAN_INFO_PROCESSED_SEPARATE_BIT,
> .address = AD5933_REG_TEMP_DATA,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 14,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, { /* Ring Channels */
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -129,11 +125,7 @@ static const struct iio_chan_spec ad5933_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = AD5933_REG_REAL_DATA,
> .scan_index = 0,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 16,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 16, 16, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -143,11 +135,7 @@ static const struct iio_chan_spec ad5933_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = AD5933_REG_IMAG_DATA,
> .scan_index = 1,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 16,
> - .storagebits = 16,
> - },
> + .scan_type = IIO_ST('s', 16, 16, 0),
> },
> };
>
> diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
> index a0fef77..c465a7a 100644
> --- a/drivers/staging/iio/meter/ade7758_core.c
> +++ b/drivers/staging/iio/meter/ade7758_core.c
> @@ -671,11 +671,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_A, AD7758_VOLTAGE),
> .scan_index = 0,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_CURRENT,
> .indexed = 1,
> @@ -685,11 +681,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_A, AD7758_CURRENT),
> .scan_index = 1,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -699,11 +691,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_A, AD7758_APP_PWR),
> .scan_index = 2,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -713,11 +701,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_A, AD7758_ACT_PWR),
> .scan_index = 3,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -727,11 +711,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_A, AD7758_REACT_PWR),
> .scan_index = 4,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -741,11 +721,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_B, AD7758_VOLTAGE),
> .scan_index = 5,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_CURRENT,
> .indexed = 1,
> @@ -755,11 +731,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_B, AD7758_CURRENT),
> .scan_index = 6,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -769,11 +741,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_B, AD7758_APP_PWR),
> .scan_index = 7,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -783,11 +751,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_B, AD7758_ACT_PWR),
> .scan_index = 8,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -797,11 +761,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_B, AD7758_REACT_PWR),
> .scan_index = 9,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_VOLTAGE,
> .indexed = 1,
> @@ -811,11 +771,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_C, AD7758_VOLTAGE),
> .scan_index = 10,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_CURRENT,
> .indexed = 1,
> @@ -825,11 +781,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_C, AD7758_CURRENT),
> .scan_index = 11,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -839,11 +791,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_C, AD7758_APP_PWR),
> .scan_index = 12,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -853,11 +801,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_C, AD7758_ACT_PWR),
> .scan_index = 13,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> }, {
> .type = IIO_POWER,
> .indexed = 1,
> @@ -867,11 +811,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
> IIO_CHAN_INFO_SCALE_SHARED_BIT,
> .address = AD7758_WT(AD7758_PHASE_C, AD7758_REACT_PWR),
> .scan_index = 14,
> - .scan_type = {
> - .sign = 's',
> - .realbits = 24,
> - .storagebits = 32,
> - },
> + .scan_type = IIO_ST('s', 24, 32, 0),
> },
> IIO_CHAN_SOFT_TIMESTAMP(15),
> };
> diff --git a/include/linux/iio/adc/ad_sigma_delta.h b/include/linux/iio/adc/ad_sigma_delta.h
> index 2e4eab9..a57f819 100644
> --- a/include/linux/iio/adc/ad_sigma_delta.h
> +++ b/include/linux/iio/adc/ad_sigma_delta.h
> @@ -137,13 +137,7 @@ int ad_sd_validate_trigger(struct iio_dev *indio_dev, struct iio_trigger *trig);
> IIO_CHAN_INFO_SCALE_SHARED_BIT | \
> IIO_CHAN_INFO_OFFSET_SEPARATE_BIT, \
> .scan_index = (_si), \
> - .scan_type = { \
> - .sign = 'u', \
> - .realbits = (_bits), \
> - .storagebits = (_storagebits), \
> - .shift = (_shift), \
> - .endianness = IIO_BE, \
> - }, \
> + .scan_type = IIO_ST_BE('u', _bits, _storagebits, _shift), \
> }
>
> #define AD_SD_DIFF_CHANNEL(_si, _channel1, _channel2, _address, _bits, \
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible
2012-09-30 10:35 ` Jonathan Cameron
@ 2012-09-30 11:16 ` Peter Meerwald
0 siblings, 0 replies; 6+ messages in thread
From: Peter Meerwald @ 2012-09-30 11:16 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-iio, 21cnbao, hennerich, marex, lars
Hello,
> > saves a couple of lines for each .scan_type specification
> Sorry to say I'm against this patch as I would rather
> like to get rid of the IIO_ST macro entirely (pushing any
> such macros down into the drivers where relevant).
> The reason is precisely what you have been dealing with in
> your IIO_ST_BE patch. However thoroughly we specify a macro
> like this the chances of needing to extend it to cover new
> elements of the structure is extremely high. When that
> happens we either end up with lots of variants of the macro
> like your IIO_ST_BE version or we end up having to add the
> additional parameters to every instance of the macro whether
> or not it matters for a particular driver.
I see the problem; the shift element (mostly 0) is an example of
a parameter that does not matter for most drivers
on the other hand, IIO_ST is quite sucessful in saving code/typing -- it
just is not supposed to handle all initialization cases; and IIO_ST cannot
be used for dynamic construction of channels anyway
p.
--
Peter Meerwald
+43-664-2444418 (mobile)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] staging iio: consistent commas in adis16400 channel spec
2012-09-30 10:05 ` [PATCH 3/3] staging iio: consistent commas in adis16400 channel spec Peter Meerwald
@ 2012-10-13 20:27 ` Jonathan Cameron
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2012-10-13 20:27 UTC (permalink / raw)
To: Peter Meerwald; +Cc: linux-iio, manuel.stahl
On 09/30/2012 11:05 AM, Peter Meerwald wrote:
> probably not the most important patch in the world
>
> Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
> Cc: manuel.stahl@iis.fraunhofer.de
Applied to togreg branch of iio.git
> ---
> drivers/staging/iio/imu/adis16400_core.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
> index b302c9b..5eab327 100644
> --- a/drivers/staging/iio/imu/adis16400_core.c
> +++ b/drivers/staging/iio/imu/adis16400_core.c
> @@ -622,7 +622,7 @@ static const struct iio_chan_spec adis16400_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16400_SCAN_SUPPLY,
> - .scan_type = IIO_ST('u', 14, 16, 0)
> + .scan_type = IIO_ST('u', 14, 16, 0),
> }, {
> .type = IIO_ANGL_VEL,
> .modified = 1,
> @@ -633,7 +633,7 @@ static const struct iio_chan_spec adis16400_channels[] = {
> IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
> .address = gyro_x,
> .scan_index = ADIS16400_SCAN_GYRO_X,
> - .scan_type = IIO_ST('s', 14, 16, 0)
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_ANGL_VEL,
> .modified = 1,
> @@ -752,7 +752,7 @@ static const struct iio_chan_spec adis16350_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16400_SCAN_SUPPLY,
> - .scan_type = IIO_ST('u', 12, 16, 0)
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_ANGL_VEL,
> .modified = 1,
> @@ -763,7 +763,7 @@ static const struct iio_chan_spec adis16350_channels[] = {
> IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
> .address = gyro_x,
> .scan_index = ADIS16400_SCAN_GYRO_X,
> - .scan_type = IIO_ST('s', 14, 16, 0)
> + .scan_type = IIO_ST('s', 14, 16, 0),
> }, {
> .type = IIO_ANGL_VEL,
> .modified = 1,
> @@ -877,7 +877,7 @@ static const struct iio_chan_spec adis16300_channels[] = {
> IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
> .address = in_supply,
> .scan_index = ADIS16400_SCAN_SUPPLY,
> - .scan_type = IIO_ST('u', 12, 16, 0)
> + .scan_type = IIO_ST('u', 12, 16, 0),
> }, {
> .type = IIO_ANGL_VEL,
> .modified = 1,
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-10-13 20:27 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-30 10:05 [PATCH 1/3] iio: add IIO_ST macros specifying endianness, IIO_ST_CPU and IIO_ST_BE Peter Meerwald
2012-09-30 10:05 ` [PATCH 2/3] iio staging: make use of IIO_ST macro where easily possible Peter Meerwald
2012-09-30 10:35 ` Jonathan Cameron
2012-09-30 11:16 ` Peter Meerwald
2012-09-30 10:05 ` [PATCH 3/3] staging iio: consistent commas in adis16400 channel spec Peter Meerwald
2012-10-13 20:27 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).