linux/Documentation/ABI/testing/sysfs-bus-iio-flow
Wadim Mueller d240b0b8a1 iio: flow: add Sensirion SLF3S liquid flow sensor driver
Add a driver for the Sensirion SLF3S family of digital
liquid-flow sensors on I2C.  Currently supported variants are
SLF3S-0600F, SLF3S-1300F and SLF3S-4000B; they share the same
register map and differ only in flow-scale factor and calibrated
measurement range.  The variant (and therefore the scale) is
auto-detected from the product-information register at probe time;
a sensor reporting an unknown sub-type falls back to the variant
named in the device tree / I2C table, so a drop-in replacement part
keeps working on a kernel that does not know its sub-type yet.

Each measurement frame returns a 16-bit signed flow value, a
16-bit signed temperature reading and a status word, each
protected by a CRC-8 byte.  The driver exposes the flow rate as
IIO_VOLUMEFLOW and the temperature as IIO_TEMP via the standard
IIO read_raw / read_scale interface.

The volume-flow scale is reported in m^3/s.  As the per-LSB scale
is on the order of 1e-12 m^3/s, it is emitted as a 64-bit
fixed-point value with femto (1e-15) resolution
(IIO_VAL_DECIMAL64_FEMTO) so the small SI value keeps full
precision.  This relies on the IIO_VAL_DECIMAL64_FEMTO format type
added earlier in this series.

The active calibration medium can be switched at runtime between
the factory-calibrated water and isopropyl-alcohol modes via the
in_volumeflow_medium sysfs attribute; the sensor starts in water
mode after probe.

The sensor has no low-power state of its own, so system suspend
stops the measurement and disables the vdd supply; resume powers
the sensor back up, waits out the power-up time and restarts the
measurement with the previously active medium, following the
scd30/scd4x precedent.

This driver also creates the drivers/iio/flow/ subdirectory and
the corresponding Kconfig/Makefile glue.

Signed-off-by: Wadim Mueller <wafgo01@gmail.com>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
2026-08-05 00:03:28 +01:00

22 lines
914 B
Plaintext

What: /sys/bus/iio/devices/iio:deviceX/in_volumeflow_medium
What: /sys/bus/iio/devices/iio:deviceX/in_volumeflowY_medium
KernelVersion: 7.3
Contact: linux-iio@vger.kernel.org
Description:
The calibration medium the flow sensor uses to convert its
raw reading into a volumetric flow rate. Liquid flow sensors
are factory-calibrated per medium, so the selected medium has
to match the fluid actually flowing through the sensor for the
reported flow rate to be correct.
Reading returns the currently active medium; writing one of the
strings listed in in_volumeflow_medium_available selects it.
What: /sys/bus/iio/devices/iio:deviceX/in_volumeflow_medium_available
What: /sys/bus/iio/devices/iio:deviceX/in_volumeflowY_medium_available
KernelVersion: 7.3
Contact: linux-iio@vger.kernel.org
Description:
Space separated list of the calibration media supported by the
device, e.g. "water ipa".