On Wed, Jul 17, 2013 at 06:26:32PM +0100, Zubair Lutfullah wrote: > in_voltageX_scale is supposed to give scaled voltages. This was > missing in the driver and has been added. > Current patch is fixed to scale for 1.8V AVDD. > > Signed-off-by: Zubair Lutfullah <zubair.lutfullah@xxxxxxxxx> > --- > drivers/iio/adc/ti_am335x_adc.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c > index 1f83cf7..8a63203 100644 > --- a/drivers/iio/adc/ti_am335x_adc.c > +++ b/drivers/iio/adc/ti_am335x_adc.c > @@ -26,7 +26,7 @@ > #include <linux/of_device.h> > #include <linux/iio/machine.h> > #include <linux/iio/driver.h> > - > +#include <linux/math64.h> > #include <linux/mfd/ti_am335x_tscadc.h> > > struct tiadc_device { > @@ -118,7 +118,8 @@ static int tiadc_channel_init(struct iio_dev *indio_dev, int channels) > chan->type = IIO_VOLTAGE; > chan->indexed = 1; > chan->channel = adc_dev->channel_line[i]; > - chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW); > + chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | > + BIT(IIO_CHAN_INFO_SCALE); > chan->datasheet_name = chan_name_ain[chan->channel]; > chan->scan_type.sign = 'u'; > chan->scan_type.realbits = 12; > @@ -190,6 +191,18 @@ static int tiadc_read_raw(struct iio_dev *indio_dev, > } > } > > + switch (mask){ > + case IIO_CHAN_INFO_RAW : /*Do nothing. Above code works fine.*/ What "above code"? > + break; Please fix the indentation. > + case IIO_CHAN_INFO_SCALE : { > + /*12 Bit adc. Scale value for 1800mV AVDD. Ideally > + AVDD should come from DT.*/ Did you run this patch through the scripts/codingstyle tool? Please be generous in your spaces, there's no need to conserve them. > + *val = div_u64( (u64)(*val) * 1800 , 4096); > + break; > + } > + default: break; > + } thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html