[PATCH v2 1/3] iio: Add IIO_DENSITY channel type

From: surajsonawane0215
Date: Thu Jun 12 2025 - 06:09:15 EST


From: Suraj Sonawane <surajsonawane0215@xxxxxxxxx>

Add IIO_DENSITY channel type for particulate matter sensors,
with base units of grams per cubic meter (g/m³). This is needed
for optical dust sensors like the Sharp GP2Y1010AU0F that measure
airborne particle concentration rather than raw voltage.

Signed-off-by: Suraj Sonawane <surajsonawane0215@xxxxxxxxx>
---
V2: Initial version introducing IIO_DENSITY channel type

Documentation/ABI/testing/sysfs-bus-iio | 8 ++++++++
include/uapi/linux/iio/types.h | 1 +
2 files changed, 9 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index 190bfcc1e..9b1b538ce 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -2383,3 +2383,11 @@ Description:
Value representing the user's attention to the system expressed
in units as percentage. This usually means if the user is
looking at the screen or not.
+
+What: /sys/bus/iio/devices/iio:deviceX/in_density_raw
+KernelVersion: 6.15
+Contact: linux-iio@xxxxxxxxxxxxxxx
+Description:
+ Raw reading from an optical dust sensor.
+ This value is proportional to dust density in air,
+ with base units of g/m^3.
+
diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
index 3eb0821af..e7d09ec0b 100644
--- a/include/uapi/linux/iio/types.h
+++ b/include/uapi/linux/iio/types.h
@@ -37,6 +37,7 @@ enum iio_chan_type {
IIO_DISTANCE,
IIO_VELOCITY,
IIO_CONCENTRATION,
+ IIO_DENSITY,
IIO_RESISTANCE,
IIO_PH,
IIO_UVINDEX,
--
2.43.0