Re: [PATCH] iio: adc: nau7802: Expose possible gains in sysfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19/05/16 11:01, Alexandre Belloni wrote:
> On 18/05/2016 at 17:16:18 +0200, Quentin Schulz wrote :
>>
>> The Nuvoton NAU7802 ADC is able to adjust its gain but prior knowledge of
>> its possible values was required to adjust it. Users had to guess the
>> possible gain values based on the ADC datasheet or on this driver's code.
>>
>> This exposes the possible values in the in_voltage_scale_available file of
>> each nau7802 ADC device. The gain is set for the whole ADC and is therefore
>> not configurable by channel. Thus, there exists only one
>> in_voltage_scale_available file for each nau7802 ADC device even if it has
>> two separate channels.
>>
>> Signed-off-by: Quentin Schulz <quentin.schulz@xxxxxxxxxxxxxxxxxx>
> Acked-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Applied to the togreg branch of iio.git - initially pushed out as testing
for the autobuilders to play with it.

Thanks,

Jonathan
> 
>> ---
>>
>> There exists two files to set the gain: in_voltageX_scale_available and
>> in_voltage-voltage_scale_available. What are the differences between those
>> two? What are the use cases for each? Which one should I have used?
>>
>>  drivers/iio/adc/nau7802.c | 19 +++++++++++++++++++
>>  1 file changed, 19 insertions(+)
>>
>> diff --git a/drivers/iio/adc/nau7802.c b/drivers/iio/adc/nau7802.c
>> index e525aa6..57365c5 100644
>> --- a/drivers/iio/adc/nau7802.c
>> +++ b/drivers/iio/adc/nau7802.c
>> @@ -79,10 +79,29 @@ static const struct iio_chan_spec nau7802_chan_array[] = {
>>  static const u16 nau7802_sample_freq_avail[] = {10, 20, 40, 80,
>>  						10, 10, 10, 320};
>>  
>> +static ssize_t nau7802_show_scales(struct device *dev,
>> +				   struct device_attribute *attr, char *buf)
>> +{
>> +	struct nau7802_state *st = iio_priv(dev_to_iio_dev(dev));
>> +	int i, len = 0;
>> +
>> +	for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
>> +		len += scnprintf(buf + len, PAGE_SIZE - len, "0.%09d ",
>> +				 st->scale_avail[i]);
>> +
>> +	buf[len-1] = '\n';
>> +
>> +	return len;
>> +}
>> +
>>  static IIO_CONST_ATTR_SAMP_FREQ_AVAIL("10 40 80 320");
>>  
>> +static IIO_DEVICE_ATTR(in_voltage_scale_available, S_IRUGO, nau7802_show_scales,
>> +		       NULL, 0);
>> +
>>  static struct attribute *nau7802_attributes[] = {
>>  	&iio_const_attr_sampling_frequency_available.dev_attr.attr,
>> +	&iio_dev_attr_in_voltage_scale_available.dev_attr.attr,
>>  	NULL
>>  };
>>  
>> -- 
>> 2.5.0
>>
> 

--
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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux