提交 fbaff213 编写于 作者: J Jonathan Cameron 提交者: Greg Kroah-Hartman

staging:iio:gyro Add IIO_CHAN_INFO_RAW entries to all drivers.

Precursor to making value read / write attribute optional.
No processed values in gyroscopes.
Signed-off-by: NJonathan Cameron <jic23@kernel.org>
Acked-by: NLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 09f4eb40
...@@ -85,7 +85,7 @@ static int adis16060_read_raw(struct iio_dev *indio_dev, ...@@ -85,7 +85,7 @@ static int adis16060_read_raw(struct iio_dev *indio_dev,
int ret; int ret;
switch (mask) { switch (mask) {
case 0: case IIO_CHAN_INFO_RAW:
/* Take the iio_dev status lock */ /* Take the iio_dev status lock */
mutex_lock(&indio_dev->mlock); mutex_lock(&indio_dev->mlock);
ret = adis16060_spi_write(indio_dev, chan->address); ret = adis16060_spi_write(indio_dev, chan->address);
...@@ -120,22 +120,26 @@ static const struct iio_chan_spec adis16060_channels[] = { ...@@ -120,22 +120,26 @@ static const struct iio_chan_spec adis16060_channels[] = {
.type = IIO_ANGL_VEL, .type = IIO_ANGL_VEL,
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_Z, .channel2 = IIO_MOD_Z,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16060_GYRO, .address = ADIS16060_GYRO,
}, { }, {
.type = IIO_VOLTAGE, .type = IIO_VOLTAGE,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16060_AIN1, .address = ADIS16060_AIN1,
}, { }, {
.type = IIO_VOLTAGE, .type = IIO_VOLTAGE,
.indexed = 1, .indexed = 1,
.channel = 1, .channel = 1,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16060_AIN2, .address = ADIS16060_AIN2,
}, { }, {
.type = IIO_TEMP, .type = IIO_TEMP,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
.address = ADIS16060_TEMP_OUT, .address = ADIS16060_TEMP_OUT,
} }
......
...@@ -87,7 +87,7 @@ static int adis16080_read_raw(struct iio_dev *indio_dev, ...@@ -87,7 +87,7 @@ static int adis16080_read_raw(struct iio_dev *indio_dev,
mutex_lock(&indio_dev->mlock); mutex_lock(&indio_dev->mlock);
switch (mask) { switch (mask) {
case 0: case IIO_CHAN_INFO_RAW:
ret = adis16080_spi_write(indio_dev, ret = adis16080_spi_write(indio_dev,
chan->address | chan->address |
ADIS16080_DIN_WRITE); ADIS16080_DIN_WRITE);
...@@ -110,21 +110,25 @@ static const struct iio_chan_spec adis16080_channels[] = { ...@@ -110,21 +110,25 @@ static const struct iio_chan_spec adis16080_channels[] = {
.type = IIO_ANGL_VEL, .type = IIO_ANGL_VEL,
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_Z, .channel2 = IIO_MOD_Z,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16080_DIN_GYRO, .address = ADIS16080_DIN_GYRO,
}, { }, {
.type = IIO_VOLTAGE, .type = IIO_VOLTAGE,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16080_DIN_AIN1, .address = ADIS16080_DIN_AIN1,
}, { }, {
.type = IIO_VOLTAGE, .type = IIO_VOLTAGE,
.indexed = 1, .indexed = 1,
.channel = 1, .channel = 1,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16080_DIN_AIN2, .address = ADIS16080_DIN_AIN2,
}, { }, {
.type = IIO_TEMP, .type = IIO_TEMP,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16080_DIN_TEMP, .address = ADIS16080_DIN_TEMP,
} }
}; };
......
...@@ -100,11 +100,13 @@ static const struct iio_chan_spec adis16130_channels[] = { ...@@ -100,11 +100,13 @@ static const struct iio_chan_spec adis16130_channels[] = {
.type = IIO_ANGL_VEL, .type = IIO_ANGL_VEL,
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_Z, .channel2 = IIO_MOD_Z,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16130_RATEDATA, .address = ADIS16130_RATEDATA,
}, { }, {
.type = IIO_TEMP, .type = IIO_TEMP,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
.address = ADIS16130_TEMPDATA, .address = ADIS16130_TEMPDATA,
} }
}; };
......
...@@ -393,7 +393,8 @@ enum adis16260_channel { ...@@ -393,7 +393,8 @@ enum adis16260_channel {
.type = IIO_ANGL_VEL, \ .type = IIO_ANGL_VEL, \
.modified = 1, \ .modified = 1, \
.channel2 = mod, \ .channel2 = mod, \
.info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | \ .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | \
IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT | \ IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT | \
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = gyro, \ .address = gyro, \
...@@ -407,6 +408,7 @@ enum adis16260_channel { ...@@ -407,6 +408,7 @@ enum adis16260_channel {
.type = IIO_ANGL, \ .type = IIO_ANGL, \
.modified = 1, \ .modified = 1, \
.channel2 = mod, \ .channel2 = mod, \
.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT, \
.address = angle, \ .address = angle, \
.scan_index = ADIS16260_SCAN_ANGL, \ .scan_index = ADIS16260_SCAN_ANGL, \
.scan_type = { \ .scan_type = { \
...@@ -418,7 +420,8 @@ enum adis16260_channel { ...@@ -418,7 +420,8 @@ enum adis16260_channel {
.type = IIO_TEMP, \ .type = IIO_TEMP, \
.indexed = 1, \ .indexed = 1, \
.channel = 0, \ .channel = 0, \
.info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT | \ .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \
IIO_CHAN_INFO_OFFSET_SEPARATE_BIT | \
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = temp, \ .address = temp, \
.scan_index = ADIS16260_SCAN_TEMP, \ .scan_index = ADIS16260_SCAN_TEMP, \
...@@ -432,7 +435,8 @@ enum adis16260_channel { ...@@ -432,7 +435,8 @@ enum adis16260_channel {
.indexed = 1, \ .indexed = 1, \
.channel = 0, \ .channel = 0, \
.extend_name = "supply", \ .extend_name = "supply", \
.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = in_supply, \ .address = in_supply, \
.scan_index = ADIS16260_SCAN_SUPPLY, \ .scan_index = ADIS16260_SCAN_SUPPLY, \
.scan_type = { \ .scan_type = { \
...@@ -444,7 +448,8 @@ enum adis16260_channel { ...@@ -444,7 +448,8 @@ enum adis16260_channel {
.type = IIO_VOLTAGE, \ .type = IIO_VOLTAGE, \
.indexed = 1, \ .indexed = 1, \
.channel = 1, \ .channel = 1, \
.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
.address = in_aux, \ .address = in_aux, \
.scan_index = ADIS16260_SCAN_AUX_ADC, \ .scan_index = ADIS16260_SCAN_AUX_ADC, \
.scan_type = { \ .scan_type = { \
...@@ -481,7 +486,7 @@ static int adis16260_read_raw(struct iio_dev *indio_dev, ...@@ -481,7 +486,7 @@ static int adis16260_read_raw(struct iio_dev *indio_dev,
s16 val16; s16 val16;
switch (mask) { switch (mask) {
case 0: case IIO_CHAN_INFO_RAW:
mutex_lock(&indio_dev->mlock); mutex_lock(&indio_dev->mlock);
addr = adis16260_addresses[chan->address][0]; addr = adis16260_addresses[chan->address][0];
ret = adis16260_spi_read_reg_16(indio_dev, addr, &val16); ret = adis16260_spi_read_reg_16(indio_dev, addr, &val16);
......
...@@ -265,7 +265,7 @@ static int adxrs450_read_raw(struct iio_dev *indio_dev, ...@@ -265,7 +265,7 @@ static int adxrs450_read_raw(struct iio_dev *indio_dev,
s16 t; s16 t;
switch (mask) { switch (mask) {
case 0: case IIO_CHAN_INFO_RAW:
switch (chan->type) { switch (chan->type) {
case IIO_ANGL_VEL: case IIO_ANGL_VEL:
ret = adxrs450_spi_sensor_data(indio_dev, &t); ret = adxrs450_spi_sensor_data(indio_dev, &t);
...@@ -329,14 +329,16 @@ static const struct iio_chan_spec adxrs450_channels[2][2] = { ...@@ -329,14 +329,16 @@ static const struct iio_chan_spec adxrs450_channels[2][2] = {
.type = IIO_ANGL_VEL, .type = IIO_ANGL_VEL,
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_Z, .channel2 = IIO_MOD_Z,
.info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT | IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_SCALE_SEPARATE_BIT, IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
}, { }, {
.type = IIO_TEMP, .type = IIO_TEMP,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
} }
}, },
[ID_ADXRS453] = { [ID_ADXRS453] = {
...@@ -344,13 +346,15 @@ static const struct iio_chan_spec adxrs450_channels[2][2] = { ...@@ -344,13 +346,15 @@ static const struct iio_chan_spec adxrs450_channels[2][2] = {
.type = IIO_ANGL_VEL, .type = IIO_ANGL_VEL,
.modified = 1, .modified = 1,
.channel2 = IIO_MOD_Z, .channel2 = IIO_MOD_Z,
.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT, IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT,
}, { }, {
.type = IIO_TEMP, .type = IIO_TEMP,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
} }
}, },
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册