Meant real bits not storage bits btw > On May 16, 2016, at 22:58, Matt Ranostay <mranostay@xxxxxxxxx> wrote: > > Well if the ADC channels have a .scan_type you can look at the storage size from userspace. Which I suspect all in the future will have due to hrtimer trigger. > > Thanks, > > Matt > > Sent from my iPhone > >> On May 16, 2016, at 17:37, Lucas De Marchi <lucas.de.marchi@xxxxxxxxx> wrote: >> >> Hi Matt, >> >> changing the subject to raise a question I remembered now that could >> potentially be a problem in this driver, but isn't. >> >>> On Mon, May 16, 2016 at 2:18 AM, Matt Ranostay <matt.ranostay@xxxxxxxxx> wrote: >>> TI ADS1115 is a 16-bit resolution ADC that is register map >>> compatible with the ADS1015 device. >>> >>> Cc: daniel.baluta@xxxxxxxxx >>> Signed-off-by: Matt Ranostay <matt.ranostay@xxxxxxxxx> >>> --- >>> Changes from v2: >>> * Add missing ads1115 data rate values >>> * Allow support defining data rates per chip >>> >>> drivers/iio/adc/ti-ads1015.c | 124 +++++++++++++++++++++++++++++++++++++------ >>> 1 file changed, 109 insertions(+), 15 deletions(-) >>> >>> diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c >>> index 73cbf0b..a835423 100644 >>> --- a/drivers/iio/adc/ti-ads1015.c >>> +++ b/drivers/iio/adc/ti-ads1015.c >>> @@ -55,6 +55,11 @@ >>> #define ADS1015_DEFAULT_DATA_RATE 4 >>> #define ADS1015_DEFAULT_CHAN 0 >>> >>> +enum { >>> + ADS1015, >>> + ADS1115, >>> +}; >>> + >>> enum ads1015_channels { >>> ADS1015_AIN0_AIN1 = 0, >>> ADS1015_AIN0_AIN3, >>> @@ -71,6 +76,10 @@ static const unsigned int ads1015_data_rate[] = { >>> 128, 250, 490, 920, 1600, 2400, 3300, 3300 >>> }; >>> >>> +static const unsigned int ads1115_data_rate[] = { >>> + 8, 16, 32, 64, 128, 250, 475, 860 >>> +}; >>> + >>> static const struct { >>> int scale; >>> int uscale; >> >> I forgot to ask this some time ago. From the documentation for in_voltageY_raw: >> >> Description: >> Raw (unscaled no bias removal etc.) voltage measurement from >> channel Y. In special cases where the channel does not >> correspond to externally available input one of the named >> versions may be used. The number must always be specified and >> unique to allow association with event codes. Units after >> application of scale and offset are millivolts. >> >> So, taking the value and multiplying by scale.uscale gives us the >> value in mV. However the main reason to change the scale is actually >> to get the value you want within the FS range. It seems like IIO has >> no information to export to tell about FS information? >> >> In *this* case ADS1015 and ADS1115 do have the same FS, but they could >> be completely different without the user ever knowing. >> >> >> >> Lucas De Marchi >> -- >> 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 -- 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