[PATCH v2 2/3] iio: Introduce IIO_CHAN_INFO_RANGE

Roberta Dobrescu roberta.dobrescu at gmail.com
Thu Feb 19 16:44:18 EET 2015


Some ambient light sensors have hardware dependent ranges and
resolutions. In this case user won't be able to calculate illuminance
(lux) using only scale attribute.

For instance, a device that uses a Full Scale Range is the
light sensor ISL29018. In this case, IIO_CHAN_INFO_RANGE is
needed since the number of ADC bits can be 4, 8, 12 or 16 and
using just scales would result in too similar values for different
ranges and resolutions.

Signed-off-by: Roberta Dobrescu <roberta.dobrescu at gmail.com>
---
 Documentation/ABI/testing/sysfs-bus-iio | 13 +++++++++++++
 drivers/iio/industrialio-core.c         |  1 +
 include/linux/iio/iio.h                 |  1 +
 3 files changed, 15 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index 9a70c31..ad1541f 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -1249,3 +1249,16 @@ Contact:	linux-iio at vger.kernel.org
 Description:
 		Specifies number of seconds in which we compute the steps
 		that occur in order to decide if the consumer is making steps.
+
+What:		/sys/bus/iio/devices/deviceX/in_illuminance0_range
+KernelVersion:	3.21
+Contact:	linux-iio at vger.kernel.org
+Description:
+		Hardware dependent ADC Full Scale Range used for some ambient
+		light sensors in calculating lux.
+
+What:		/sys/bus/iio/devices/deviceX/in_illuminance_range_available
+KernelVersion:	3.21
+Contact:	linux-iio at vger.kernel.org
+Description:
+		Hardware dependent supported values for ADC Full Scale Range.
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index aaba9d3..4138042 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -128,6 +128,7 @@ static const char * const iio_chan_info_postfix[] = {
 	[IIO_CHAN_INFO_CALIBWEIGHT] = "calibweight",
 	[IIO_CHAN_INFO_DEBOUNCE_COUNT] = "debounce_count",
 	[IIO_CHAN_INFO_DEBOUNCE_TIME] = "debounce_time",
+	[IIO_CHAN_INFO_RANGE] = "range",
 };
 
 /**
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index 80d8550..fbdd434 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -43,6 +43,7 @@ enum iio_chan_info_enum {
 	IIO_CHAN_INFO_CALIBWEIGHT,
 	IIO_CHAN_INFO_DEBOUNCE_COUNT,
 	IIO_CHAN_INFO_DEBOUNCE_TIME,
+	IIO_CHAN_INFO_RANGE,
 };
 
 enum iio_shared_by {
-- 
1.9.1



More information about the firefly mailing list