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

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



Precursor to making value read / write attribute optional.
No processed values for adc's.

Updated to include the spear adc driver (hence introducing a
dependency on the patch that adds that driver).

Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
Acked-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 31313fc6
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -849,7 +849,7 @@ static int ad7192_read_raw(struct iio_dev *indio_dev,
	bool unipolar = !!(st->conf & AD7192_CONF_UNIPOLAR);

	switch (m) {
	case 0:
	case IIO_CHAN_INFO_RAW:
		mutex_lock(&indio_dev->mlock);
		if (iio_buffer_enabled(indio_dev))
			ret = -EBUSY;
@@ -981,7 +981,8 @@ static const struct iio_info ad7195_info = {
	  .extend_name = _name,						\
	  .channel = _chan,						\
	  .channel2 = _chan2,						\
	  .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,		\
	  .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |			\
	  IIO_CHAN_INFO_SCALE_SHARED_BIT,				\
	  .address = _address,						\
	  .scan_index = _si,						\
	  .scan_type =  IIO_ST('s', 24, 32, 0)}
@@ -990,7 +991,8 @@ static const struct iio_info ad7195_info = {
	{ .type = IIO_VOLTAGE,						\
	  .indexed = 1,							\
	  .channel = _chan,						\
	  .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,		\
	  .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |			\
	  IIO_CHAN_INFO_SCALE_SHARED_BIT,				\
	  .address = _address,						\
	  .scan_index = _si,						\
	  .scan_type =  IIO_ST('s', 24, 32, 0)}
@@ -999,7 +1001,8 @@ static const struct iio_info ad7195_info = {
	{ .type = IIO_TEMP,						\
	  .indexed = 1,							\
	  .channel = _chan,						\
	  .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,		\
	  .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |			\
	  IIO_CHAN_INFO_SCALE_SEPARATE_BIT,				\
	  .address = _address,						\
	  .scan_index = _si,						\
	  .scan_type =  IIO_ST('s', 24, 32, 0)}
+5 −2
Original line number Diff line number Diff line
@@ -508,6 +508,7 @@ static int ad7280_channel_init(struct ad7280_state *st)
			}
			st->channels[cnt].indexed = 1;
			st->channels[cnt].info_mask =
				IIO_CHAN_INFO_RAW_SEPARATE_BIT |
				IIO_CHAN_INFO_SCALE_SHARED_BIT;
			st->channels[cnt].address =
				AD7280A_DEVADDR(dev) << 8 | ch;
@@ -524,7 +525,9 @@ static int ad7280_channel_init(struct ad7280_state *st)
	st->channels[cnt].channel2 = dev * 6;
	st->channels[cnt].address = AD7280A_ALL_CELLS;
	st->channels[cnt].indexed = 1;
	st->channels[cnt].info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT;
	st->channels[cnt].info_mask =
		IIO_CHAN_INFO_RAW_SEPARATE_BIT |
		IIO_CHAN_INFO_SCALE_SHARED_BIT;
	st->channels[cnt].scan_index = cnt;
	st->channels[cnt].scan_type.sign = 'u';
	st->channels[cnt].scan_type.realbits = 32;
@@ -788,7 +791,7 @@ static int ad7280_read_raw(struct iio_dev *indio_dev,
	int ret;

	switch (m) {
	case 0:
	case IIO_CHAN_INFO_RAW:
		mutex_lock(&indio_dev->mlock);
		if (chan->address == AD7280A_ALL_CELLS)
			ret = ad7280_read_all_channels(st, st->scan_cnt, NULL);
+5 −3
Original line number Diff line number Diff line
@@ -461,7 +461,7 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
	s16 signval;

	switch (mask) {
	case 0:
	case IIO_CHAN_INFO_RAW:
		switch (chan->type) {
		case IIO_VOLTAGE:
			mutex_lock(&chip->state_lock);
@@ -536,7 +536,8 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
#define AD7291_VOLTAGE_CHAN(_chan)					\
{									\
	.type = IIO_VOLTAGE,						\
	.info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,			\
	.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |			\
	IIO_CHAN_INFO_SCALE_SHARED_BIT,					\
	.indexed = 1,							\
	.channel = _chan,						\
	.event_mask = IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)|\
@@ -554,7 +555,8 @@ static const struct iio_chan_spec ad7291_channels[] = {
	AD7291_VOLTAGE_CHAN(7),
	{
		.type = IIO_TEMP,
		.info_mask = IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT |
		.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
				IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT |
				IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		.indexed = 1,
		.channel = 0,
+5 −3
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@
		.type = IIO_VOLTAGE,					\
		.indexed = 1,						\
		.channel = index,					\
		.info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,		\
		.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |		\
		IIO_CHAN_INFO_SCALE_SHARED_BIT,				\
		.address = index,					\
		.scan_index = index,					\
		.scan_type = {						\
@@ -42,7 +43,8 @@ static struct iio_chan_spec ad7298_channels[] = {
		.type = IIO_TEMP,
		.indexed = 1,
		.channel = 0,
		.info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
		IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
		.address = 9,
		.scan_index = AD7298_CH_TEMP,
		.scan_type = {
@@ -130,7 +132,7 @@ static int ad7298_read_raw(struct iio_dev *indio_dev,
	unsigned int scale_uv;

	switch (m) {
	case 0:
	case IIO_CHAN_INFO_RAW:
		mutex_lock(&indio_dev->mlock);
		if (indio_dev->currentmode == INDIO_BUFFER_TRIGGERED) {
			ret = -EBUSY;
+3 −2
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ static int ad7476_read_raw(struct iio_dev *indio_dev,
	unsigned int scale_uv;

	switch (m) {
	case 0:
	case IIO_CHAN_INFO_RAW:
		mutex_lock(&indio_dev->mlock);
		if (iio_buffer_enabled(indio_dev))
			ret = -EBUSY;
@@ -70,7 +70,8 @@ static int ad7476_read_raw(struct iio_dev *indio_dev,
	{							\
	.type = IIO_VOLTAGE,					\
	.indexed = 1,						\
	.info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,		\
	.info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |		\
	IIO_CHAN_INFO_SCALE_SHARED_BIT,				\
	.scan_type = {						\
		.sign = 'u',					\
		.realbits = bits,				\
Loading