iio:ad5686: Report scale as fractional value
Move the complexity of calculating the fixed point scale to the core. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
		
							parent
							
								
									14229e87a9
								
							
						
					
					
						commit
						ecc7e948bc
					
				| @ -201,7 +201,6 @@ static int ad5686_read_raw(struct iio_dev *indio_dev, | ||||
| 			   long m) | ||||
| { | ||||
| 	struct ad5686_state *st = iio_priv(indio_dev); | ||||
| 	unsigned long scale_uv; | ||||
| 	int ret; | ||||
| 
 | ||||
| 	switch (m) { | ||||
| @ -214,12 +213,9 @@ static int ad5686_read_raw(struct iio_dev *indio_dev, | ||||
| 		*val = ret; | ||||
| 		return IIO_VAL_INT; | ||||
| 	case IIO_CHAN_INFO_SCALE: | ||||
| 		scale_uv = (st->vref_mv * 100000) | ||||
| 			>> (chan->scan_type.realbits); | ||||
| 		*val =  scale_uv / 100000; | ||||
| 		*val2 = (scale_uv % 100000) * 10; | ||||
| 		return IIO_VAL_INT_PLUS_MICRO; | ||||
| 
 | ||||
| 		*val = st->vref_mv; | ||||
| 		*val2 = chan->scan_type.realbits; | ||||
| 		return IIO_VAL_FRACTIONAL_LOG2; | ||||
| 	} | ||||
| 	return -EINVAL; | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user