Commit c8a9f805 authored by Jonathan Cameron's avatar Jonathan Cameron Committed by Greg Kroah-Hartman
Browse files

staging:iio:treewide only use shared to decide on interfaces



Internally the fact that say scale is shared across channels is
actually of remarkably little interest.  Hence lets not store it.
Numerous devices have weird combinations of channels sharing
scale anyway so it is not as though this was really telling
us much. Note however that we do still use the shared sysfs
attrs thus massively reducing the number of attrs in complex
drivers.

Side effect is that certain drivers that were abusing this
(mostly my work) needed to do a few more checks on what the
channel they are being queried on actually is.

This is also helpful for in kernel interfaces where we
just want to query the scale and don't care whether it
is shared with other channels or not.

Signed-off-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
Acked-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 924f8a21
Loading
Loading
Loading
Loading
+16 −17
Original line number Original line Diff line number Diff line
@@ -322,8 +322,7 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
		*val = val16;
		*val = val16;
		mutex_unlock(&indio_dev->mlock);
		mutex_unlock(&indio_dev->mlock);
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_SCALE_SEPARATE:
	case IIO_CHAN_INFO_SCALE:
	case IIO_CHAN_INFO_SCALE_SHARED:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_VOLTAGE:
		case IIO_VOLTAGE:
			*val = 0;
			*val = 0;
@@ -348,10 +347,10 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
			return -EINVAL;
			return -EINVAL;
		}
		}
		break;
		break;
	case IIO_CHAN_INFO_OFFSET_SEPARATE:
	case IIO_CHAN_INFO_OFFSET:
		*val = 25;
		*val = 25;
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_ACCEL:
		case IIO_ACCEL:
			bits = 12;
			bits = 12;
@@ -388,7 +387,7 @@ static int adis16201_write_raw(struct iio_dev *indio_dev,
	s16 val16;
	s16 val16;
	u8 addr;
	u8 addr;
	switch (mask) {
	switch (mask) {
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_ACCEL:
		case IIO_ACCEL:
			bits = 12;
			bits = 12;
@@ -408,36 +407,36 @@ static int adis16201_write_raw(struct iio_dev *indio_dev,


static struct iio_chan_spec adis16201_channels[] = {
static struct iio_chan_spec adis16201_channels[] = {
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_supply, ADIS16201_SCAN_SUPPLY,
		 in_supply, ADIS16201_SCAN_SUPPLY,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE),
		 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
		 temp, ADIS16201_SCAN_TEMP,
		 temp, ADIS16201_SCAN_TEMP,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 accel_x, ADIS16201_SCAN_ACC_X,
		 accel_x, ADIS16201_SCAN_ACC_X,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 accel_y, ADIS16201_SCAN_ACC_Y,
		 accel_y, ADIS16201_SCAN_ACC_Y,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_aux, ADIS16201_SCAN_AUX_ADC,
		 in_aux, ADIS16201_SCAN_AUX_ADC,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 incli_x, ADIS16201_SCAN_INCLI_X,
		 incli_x, ADIS16201_SCAN_INCLI_X,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 incli_y, ADIS16201_SCAN_INCLI_Y,
		 incli_y, ADIS16201_SCAN_INCLI_Y,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN_SOFT_TIMESTAMP(7)
	IIO_CHAN_SOFT_TIMESTAMP(7)
+10 −11
Original line number Original line Diff line number Diff line
@@ -329,8 +329,7 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
		*val = val16;
		*val = val16;
		mutex_unlock(&indio_dev->mlock);
		mutex_unlock(&indio_dev->mlock);
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_SCALE_SEPARATE:
	case IIO_CHAN_INFO_SCALE:
	case IIO_CHAN_INFO_SCALE_SHARED:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_VOLTAGE:
		case IIO_VOLTAGE:
			*val = 0;
			*val = 0;
@@ -350,10 +349,10 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
		default:
		default:
			return -EINVAL;
			return -EINVAL;
		}
		}
	case IIO_CHAN_INFO_OFFSET_SEPARATE:
	case IIO_CHAN_INFO_OFFSET:
		*val = 25;
		*val = 25;
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
		bits = 14;
		bits = 14;
		mutex_lock(&indio_dev->mlock);
		mutex_lock(&indio_dev->mlock);
		addr = adis16203_addresses[chan->address][1];
		addr = adis16203_addresses[chan->address][1];
@@ -374,26 +373,26 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,


static struct iio_chan_spec adis16203_channels[] = {
static struct iio_chan_spec adis16203_channels[] = {
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_supply, ADIS16203_SCAN_SUPPLY,
		 in_supply, ADIS16203_SCAN_SUPPLY,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_aux, ADIS16203_SCAN_AUX_ADC,
		 in_aux, ADIS16203_SCAN_AUX_ADC,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 incli_x, ADIS16203_SCAN_INCLI_X,
		 incli_x, ADIS16203_SCAN_INCLI_X,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	/* Fixme: Not what it appears to be - see data sheet */
	/* Fixme: Not what it appears to be - see data sheet */
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED),
		 IIO_CHAN_INFO_SCALE_SHARED_BIT,
		 incli_y, ADIS16203_SCAN_INCLI_Y,
		 incli_y, ADIS16203_SCAN_INCLI_Y,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE),
		 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
		 temp, ADIS16203_SCAN_TEMP,
		 temp, ADIS16203_SCAN_TEMP,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN_SOFT_TIMESTAMP(5),
	IIO_CHAN_SOFT_TIMESTAMP(5),
+16 −16
Original line number Original line Diff line number Diff line
@@ -366,7 +366,7 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
		*val = val16;
		*val = val16;
		mutex_unlock(&indio_dev->mlock);
		mutex_unlock(&indio_dev->mlock);
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_SCALE_SEPARATE:
	case IIO_CHAN_INFO_SCALE:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_VOLTAGE:
		case IIO_VOLTAGE:
			*val = 0;
			*val = 0;
@@ -390,12 +390,12 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
			return -EINVAL;
			return -EINVAL;
		}
		}
		break;
		break;
	case IIO_CHAN_INFO_OFFSET_SEPARATE:
	case IIO_CHAN_INFO_OFFSET:
		*val = 25;
		*val = 25;
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
	case IIO_CHAN_INFO_PEAK_SEPARATE:
	case IIO_CHAN_INFO_PEAK:
		if (mask == IIO_CHAN_INFO_CALIBBIAS_SEPARATE) {
		if (mask == IIO_CHAN_INFO_CALIBBIAS) {
			bits = 12;
			bits = 12;
			addrind = 1;
			addrind = 1;
		} else { /* PEAK_SEPARATE */
		} else { /* PEAK_SEPARATE */
@@ -428,7 +428,7 @@ static int adis16204_write_raw(struct iio_dev *indio_dev,
	s16 val16;
	s16 val16;
	u8 addr;
	u8 addr;
	switch (mask) {
	switch (mask) {
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_ACCEL:
		case IIO_ACCEL:
			bits = 12;
			bits = 12;
@@ -445,28 +445,28 @@ static int adis16204_write_raw(struct iio_dev *indio_dev,


static struct iio_chan_spec adis16204_channels[] = {
static struct iio_chan_spec adis16204_channels[] = {
	IIO_CHAN(IIO_VOLTAGE, 0, 0, 0, "supply", 0, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 0, 0, "supply", 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_supply, ADIS16204_SCAN_SUPPLY,
		 in_supply, ADIS16204_SCAN_SUPPLY,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_aux, ADIS16204_SCAN_AUX_ADC,
		 in_aux, ADIS16204_SCAN_AUX_ADC,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE),
		 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
		 temp, ADIS16204_SCAN_TEMP,
		 temp, ADIS16204_SCAN_TEMP,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) |
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_PEAK_SEPARATE),
		 IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
		 accel_x, ADIS16204_SCAN_ACC_X,
		 accel_x, ADIS16204_SCAN_ACC_X,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) |
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_PEAK_SEPARATE),
		 IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
		 accel_y, ADIS16204_SCAN_ACC_Y,
		 accel_y, ADIS16204_SCAN_ACC_Y,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN_SOFT_TIMESTAMP(5),
	IIO_CHAN_SOFT_TIMESTAMP(5),
+14 −15
Original line number Original line Diff line number Diff line
@@ -304,7 +304,7 @@ static int adis16209_write_raw(struct iio_dev *indio_dev,
	s16 val16;
	s16 val16;
	u8 addr;
	u8 addr;
	switch (mask) {
	switch (mask) {
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_ACCEL:
		case IIO_ACCEL:
		case IIO_INCLI:
		case IIO_INCLI:
@@ -355,8 +355,7 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
		*val = val16;
		*val = val16;
		mutex_unlock(&indio_dev->mlock);
		mutex_unlock(&indio_dev->mlock);
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_SCALE_SEPARATE:
	case IIO_CHAN_INFO_SCALE:
	case IIO_CHAN_INFO_SCALE_SHARED:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_VOLTAGE:
		case IIO_VOLTAGE:
			*val = 0;
			*val = 0;
@@ -381,10 +380,10 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
			return -EINVAL;
			return -EINVAL;
		}
		}
		break;
		break;
	case IIO_CHAN_INFO_OFFSET_SEPARATE:
	case IIO_CHAN_INFO_OFFSET:
		*val = 25;
		*val = 25;
		return IIO_VAL_INT;
		return IIO_VAL_INT;
	case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
	case IIO_CHAN_INFO_CALIBBIAS:
		switch (chan->type) {
		switch (chan->type) {
		case IIO_ACCEL:
		case IIO_ACCEL:
			bits = 14;
			bits = 14;
@@ -410,34 +409,34 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,


static struct iio_chan_spec adis16209_channels[] = {
static struct iio_chan_spec adis16209_channels[] = {
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_supply, ADIS16209_SCAN_SUPPLY,
		 in_supply, ADIS16209_SCAN_SUPPLY,
		 IIO_ST('u', 14, 16, 0), 0),
		 IIO_ST('u', 14, 16, 0), 0),
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
	IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
		 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE),
		 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
		 temp, ADIS16209_SCAN_TEMP,
		 temp, ADIS16209_SCAN_TEMP,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 accel_x, ADIS16209_SCAN_ACC_X,
		 accel_x, ADIS16209_SCAN_ACC_X,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
	IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED) |
		 IIO_CHAN_INFO_SCALE_SHARED_BIT |
		 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
		 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
		 accel_y, ADIS16209_SCAN_ACC_Y,
		 accel_y, ADIS16209_SCAN_ACC_Y,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
	IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
		 (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		 in_aux, ADIS16209_SCAN_AUX_ADC,
		 in_aux, ADIS16209_SCAN_AUX_ADC,
		 IIO_ST('u', 12, 16, 0), 0),
		 IIO_ST('u', 12, 16, 0), 0),
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED),
		 IIO_CHAN_INFO_SCALE_SHARED_BIT,
		 incli_x, ADIS16209_SCAN_INCLI_X,
		 incli_x, ADIS16209_SCAN_INCLI_X,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
	IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
		 (1 << IIO_CHAN_INFO_SCALE_SHARED),
		 IIO_CHAN_INFO_SCALE_SHARED_BIT,
		 incli_y, ADIS16209_SCAN_INCLI_Y,
		 incli_y, ADIS16209_SCAN_INCLI_Y,
		 IIO_ST('s', 14, 16, 0), 0),
		 IIO_ST('s', 14, 16, 0), 0),
	IIO_CHAN(IIO_ROT, 0, 1, 0, NULL, 0, IIO_MOD_X,
	IIO_CHAN(IIO_ROT, 0, 1, 0, NULL, 0, IIO_MOD_X,
+11 −11
Original line number Original line Diff line number Diff line
@@ -510,17 +510,17 @@ static int adis16220_read_raw(struct iio_dev *indio_dev,
	case 0:
	case 0:
		addrind = 0;
		addrind = 0;
		break;
		break;
	case IIO_CHAN_INFO_OFFSET_SEPARATE:
	case IIO_CHAN_INFO_OFFSET:
		if (chan->type == IIO_TEMP) {
		if (chan->type == IIO_TEMP) {
			*val = 25;
			*val = 25;
			return IIO_VAL_INT;
			return IIO_VAL_INT;
		}
		}
		addrind = 1;
		addrind = 1;
		break;
		break;
	case IIO_CHAN_INFO_PEAK_SEPARATE:
	case IIO_CHAN_INFO_PEAK:
		addrind = 2;
		addrind = 2;
		break;
		break;
	case IIO_CHAN_INFO_SCALE_SEPARATE:
	case IIO_CHAN_INFO_SCALE:
		*val = 0;
		*val = 0;
		switch (chan->type) {
		switch (chan->type) {
		case IIO_TEMP:
		case IIO_TEMP:
@@ -575,27 +575,27 @@ static const struct iio_chan_spec adis16220_channels[] = {
		.indexed = 1,
		.indexed = 1,
		.channel = 0,
		.channel = 0,
		.extend_name = "supply",
		.extend_name = "supply",
		.info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
		.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		.address = in_supply,
		.address = in_supply,
	}, {
	}, {
		.type = IIO_ACCEL,
		.type = IIO_ACCEL,
		.info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) |
		.info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
			     (1 << IIO_CHAN_INFO_SCALE_SEPARATE) |
			     IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
			     (1 << IIO_CHAN_INFO_PEAK_SEPARATE),
			     IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
		.address = accel,
		.address = accel,
	}, {
	}, {
		.type = IIO_TEMP,
		.type = IIO_TEMP,
		.indexed = 1,
		.indexed = 1,
		.channel = 0,
		.channel = 0,
		.info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) |
		.info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
			     (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
			     IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		.address = temp,
		.address = temp,
	}, {
	}, {
		.type = IIO_VOLTAGE,
		.type = IIO_VOLTAGE,
		.indexed = 1,
		.indexed = 1,
		.channel = 1,
		.channel = 1,
		.info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) |
		.info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
			     (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
			     IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		.address = in_1,
		.address = in_1,
	}, {
	}, {
		.type = IIO_VOLTAGE,
		.type = IIO_VOLTAGE,
Loading