iio:ad5624r: 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
							
								
									54ea14339d
								
							
						
					
					
						commit
						14229e87a9
					
				@ -50,15 +50,12 @@ static int ad5624r_read_raw(struct iio_dev *indio_dev,
 | 
			
		||||
			   long m)
 | 
			
		||||
{
 | 
			
		||||
	struct ad5624r_state *st = iio_priv(indio_dev);
 | 
			
		||||
	unsigned long scale_uv;
 | 
			
		||||
 | 
			
		||||
	switch (m) {
 | 
			
		||||
	case IIO_CHAN_INFO_SCALE:
 | 
			
		||||
		scale_uv = (st->vref_mv * 1000) >> chan->scan_type.realbits;
 | 
			
		||||
		*val =  scale_uv / 1000;
 | 
			
		||||
		*val2 = (scale_uv % 1000) * 1000;
 | 
			
		||||
		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