* [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
* 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
* [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 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).