Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1219431 > unrolled thread
| Started by | Matt Ranostay <mranostay@gmail.com> |
|---|---|
| First post | 2015-09-05 08:00 +0200 |
| Last post | 2015-09-05 18:00 +0200 |
| Articles | 6 — 4 participants |
Back to article view | Back to linux.kernel
[RFC v1 0/4] iio: new chemical sensor framework and channel types Matt Ranostay <mranostay@gmail.com> - 2015-09-05 08:00 +0200
[RFC v1 1/4] iio: chemical: Add IIO_CONCENTRATION channel type Matt Ranostay <mranostay@gmail.com> - 2015-09-05 08:00 +0200
Re: [RFC v1 1/4] iio: chemical: Add IIO_CONCENTRATION channel type Peter Meerwald <pmeerw@pmeerw.net> - 2015-09-05 09:30 +0200
Re: [RFC v1 1/4] iio: chemical: Add IIO_CONCENTRATION channel type Jonathan Cameron <jic23@kernel.org> - 2015-09-05 18:00 +0200
Re: [RFC v1 0/4] iio: new chemical sensor framework and channel types Daniel Baluta <daniel.baluta@gmail.com> - 2015-09-05 10:30 +0200
Re: [RFC v1 0/4] iio: new chemical sensor framework and channel types Jonathan Cameron <jic23@kernel.org> - 2015-09-05 18:00 +0200
| From | Matt Ranostay <mranostay@gmail.com> |
|---|---|
| Date | 2015-09-05 08:00 +0200 |
| Subject | [RFC v1 0/4] iio: new chemical sensor framework and channel types |
| Message-ID | <q5eG5-8pS-3@gated-at.bofh.it> |
Initial RFC for new chemical sensor framework, IIO_CONCENTRATION, and IIO_RESISTANCE channel types. Important notes: * Not been tested on real hardware yet but that isn't the main RFC reason and once hardware is in hand it will be verified * Reason the IIO_CONCENTRATION type isn't in percent but has modifiers for ppm and ppb is the scale value for the latter would cause a integer overflow using IIO_VAL_FRACTIONAL Matt Ranostay (4): iio: chemical: Add IIO_CONCENTRATION channel type iio: resistance: add IIO_RESISTANCE channel type devicetree: add SGX Sensortech vendor id iio: chemical: add SGX VZ89x VOC sensor support Documentation/ABI/testing/sysfs-bus-iio | 16 ++ .../devicetree/bindings/i2c/trivial-devices.txt | 1 + .../devicetree/bindings/vendor-prefixes.txt | 1 + drivers/iio/Kconfig | 1 + drivers/iio/Makefile | 1 + drivers/iio/chemical/Makefile | 6 + drivers/iio/chemical/vz89x.c | 237 +++++++++++++++++++++ drivers/iio/industrialio-core.c | 4 + include/uapi/linux/iio/types.h | 4 + 9 files changed, 271 insertions(+) create mode 100644 drivers/iio/chemical/Makefile create mode 100644 drivers/iio/chemical/vz89x.c -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Matt Ranostay <mranostay@gmail.com> |
|---|---|
| Date | 2015-09-05 08:00 +0200 |
| Subject | [RFC v1 1/4] iio: chemical: Add IIO_CONCENTRATION channel type |
| Message-ID | <q5eG6-8pS-13@gated-at.bofh.it> |
| In reply to | #1219431 |
There are air quality sensors that report data back in parts per million
of VOC (Volatile Organic Compounds) which are usually indexed from CO2
or another common pollutant.
This patchset adds an IIO_CONCENTRATION type and IIO_MOD_PPM/PPB modifiers
because no other channels types fit this use case.
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
---
Documentation/ABI/testing/sysfs-bus-iio | 10 ++++++++++
drivers/iio/industrialio-core.c | 3 +++
include/uapi/linux/iio/types.h | 3 +++
3 files changed, 16 insertions(+)
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index 42d360f..a3803a1 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -1459,3 +1459,13 @@ Description:
measurements and return the average value as output data. Each
value resulted from <type>[_name]_oversampling_ratio measurements
is considered as one sample for <type>[_name]_sampling_frequency.
+
+What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_raw
+What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ppm_raw
+What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ppb_raw
+KernelVersion: 4.3
+Contact: linux-iio@vger.kernel.org
+Description:
+ Raw (unscaled no offset etc.) concentration reading of data like
+ CO2 or VOC (Volatile Organic Compounds) substances with or without
+ ppm (Part Per Million) or ppb (Parts Per Billion) channel modifiers.
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index b3fcc2c..ea9e31a 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -75,6 +75,7 @@ static const char * const iio_chan_type_name_spec[] = {
[IIO_ENERGY] = "energy",
[IIO_DISTANCE] = "distance",
[IIO_VELOCITY] = "velocity",
+ [IIO_CONCENTRATION] = "concentration",
};
static const char * const iio_modifier_names[] = {
@@ -111,6 +112,8 @@ static const char * const iio_modifier_names[] = {
[IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)",
[IIO_MOD_I] = "i",
[IIO_MOD_Q] = "q",
+ [IIO_MOD_PPM] = "ppm",
+ [IIO_MOD_PPB] = "ppb",
};
/* relies on pairs of these shared then separate */
diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
index 2f8b117..dfb8b8c 100644
--- a/include/uapi/linux/iio/types.h
+++ b/include/uapi/linux/iio/types.h
@@ -35,6 +35,7 @@ enum iio_chan_type {
IIO_ENERGY,
IIO_DISTANCE,
IIO_VELOCITY,
+ IIO_CONCENTRATION,
};
enum iio_modifier {
@@ -72,6 +73,8 @@ enum iio_modifier {
IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
IIO_MOD_I,
IIO_MOD_Q,
+ IIO_MOD_PPM,
+ IIO_MOD_PPB,
};
enum iio_event_type {
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Peter Meerwald <pmeerw@pmeerw.net> |
|---|---|
| Date | 2015-09-05 09:30 +0200 |
| Subject | Re: [RFC v1 1/4] iio: chemical: Add IIO_CONCENTRATION channel type |
| Message-ID | <q5g5b-25a-1@gated-at.bofh.it> |
| In reply to | #1219432 |
> There are air quality sensors that report data back in parts per million
> of VOC (Volatile Organic Compounds) which are usually indexed from CO2
> or another common pollutant.
>
> This patchset adds an IIO_CONCENTRATION type and IIO_MOD_PPM/PPB modifiers
> because no other channels types fit this use case.
comments below
can you add these to tools/iio/iio_event_monitor.c as well?
> Signed-off-by: Matt Ranostay <mranostay@gmail.com>
> ---
> Documentation/ABI/testing/sysfs-bus-iio | 10 ++++++++++
> drivers/iio/industrialio-core.c | 3 +++
> include/uapi/linux/iio/types.h | 3 +++
> 3 files changed, 16 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index 42d360f..a3803a1 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -1459,3 +1459,13 @@ Description:
> measurements and return the average value as output data. Each
> value resulted from <type>[_name]_oversampling_ratio measurements
> is considered as one sample for <type>[_name]_sampling_frequency.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_raw
> +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ppm_raw
> +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ppb_raw
> +KernelVersion: 4.3
> +Contact: linux-iio@vger.kernel.org
> +Description:
> + Raw (unscaled no offset etc.) concentration reading of data like
> + CO2 or VOC (Volatile Organic Compounds) substances with or without
> + ppm (Part Per Million) or ppb (Parts Per Billion) channel modifiers.
Part_s_ Per Million
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index b3fcc2c..ea9e31a 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -75,6 +75,7 @@ static const char * const iio_chan_type_name_spec[] = {
> [IIO_ENERGY] = "energy",
> [IIO_DISTANCE] = "distance",
> [IIO_VELOCITY] = "velocity",
> + [IIO_CONCENTRATION] = "concentration",
> };
>
> static const char * const iio_modifier_names[] = {
> @@ -111,6 +112,8 @@ static const char * const iio_modifier_names[] = {
> [IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)",
> [IIO_MOD_I] = "i",
> [IIO_MOD_Q] = "q",
> + [IIO_MOD_PPM] = "ppm",
> + [IIO_MOD_PPB] = "ppb",
> };
>
> /* relies on pairs of these shared then separate */
> diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
> index 2f8b117..dfb8b8c 100644
> --- a/include/uapi/linux/iio/types.h
> +++ b/include/uapi/linux/iio/types.h
> @@ -35,6 +35,7 @@ enum iio_chan_type {
> IIO_ENERGY,
> IIO_DISTANCE,
> IIO_VELOCITY,
> + IIO_CONCENTRATION,
> };
>
> enum iio_modifier {
> @@ -72,6 +73,8 @@ enum iio_modifier {
> IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
> IIO_MOD_I,
> IIO_MOD_Q,
> + IIO_MOD_PPM,
> + IIO_MOD_PPB,
> };
>
> enum iio_event_type {
>
--
Peter Meerwald
+43-664-2444418 (mobile)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Jonathan Cameron <jic23@kernel.org> |
|---|---|
| Date | 2015-09-05 18:00 +0200 |
| Subject | Re: [RFC v1 1/4] iio: chemical: Add IIO_CONCENTRATION channel type |
| Message-ID | <q5o2K-4Wa-23@gated-at.bofh.it> |
| In reply to | #1219432 |
On 05/09/15 06:53, Matt Ranostay wrote:
> There are air quality sensors that report data back in parts per million
> of VOC (Volatile Organic Compounds) which are usually indexed from CO2
> or another common pollutant.
>
> This patchset adds an IIO_CONCENTRATION type and IIO_MOD_PPM/PPB modifiers
> because no other channels types fit this use case.
Fine with concentration, not with the modifiers. See below.
>
> Signed-off-by: Matt Ranostay <mranostay@gmail.com>
> ---
> Documentation/ABI/testing/sysfs-bus-iio | 10 ++++++++++
> drivers/iio/industrialio-core.c | 3 +++
> include/uapi/linux/iio/types.h | 3 +++
> 3 files changed, 16 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index 42d360f..a3803a1 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -1459,3 +1459,13 @@ Description:
> measurements and return the average value as output data. Each
> value resulted from <type>[_name]_oversampling_ratio measurements
> is considered as one sample for <type>[_name]_sampling_frequency.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_raw
> +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ppm_raw
> +What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ppb_raw
> +KernelVersion: 4.3
> +Contact: linux-iio@vger.kernel.org
> +Description:
> + Raw (unscaled no offset etc.) concentration reading of data like
> + CO2 or VOC (Volatile Organic Compounds) substances with or without
> + ppm (Part Per Million) or ppb (Parts Per Billion) channel modifiers.
See below. ppm / ppb should not be modifiers. That's not what they are for.
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index b3fcc2c..ea9e31a 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -75,6 +75,7 @@ static const char * const iio_chan_type_name_spec[] = {
> [IIO_ENERGY] = "energy",
> [IIO_DISTANCE] = "distance",
> [IIO_VELOCITY] = "velocity",
> + [IIO_CONCENTRATION] = "concentration",
> };
>
> static const char * const iio_modifier_names[] = {
> @@ -111,6 +112,8 @@ static const char * const iio_modifier_names[] = {
> [IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z] = "sqrt(x^2+y^2+z^2)",
> [IIO_MOD_I] = "i",
> [IIO_MOD_Q] = "q",
> + [IIO_MOD_PPM] = "ppm",
> + [IIO_MOD_PPB] = "ppb",
> };
>
> /* relies on pairs of these shared then separate */
> diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
> index 2f8b117..dfb8b8c 100644
> --- a/include/uapi/linux/iio/types.h
> +++ b/include/uapi/linux/iio/types.h
> @@ -35,6 +35,7 @@ enum iio_chan_type {
> IIO_ENERGY,
> IIO_DISTANCE,
> IIO_VELOCITY,
> + IIO_CONCENTRATION,
> };
>
> enum iio_modifier {
> @@ -72,6 +73,8 @@ enum iio_modifier {
> IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
> IIO_MOD_I,
> IIO_MOD_Q,
> + IIO_MOD_PPM,
The use of modifiers is not about units. Those should be well specified
in the ABI docs for the given channel type. Hence I'd expect modifiers
for the type of chemical being detected not the unit.
PPB can be handled by PPM and a different return type
IIO_INT_PLUS_NANO etc. If there isn't an appropriate return type for
the scale needed, then we can easily add more of those ;)
> + IIO_MOD_PPB,
> };
>
> enum iio_event_type {
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Daniel Baluta <daniel.baluta@gmail.com> |
|---|---|
| Date | 2015-09-05 10:30 +0200 |
| Message-ID | <q5h1f-3pE-1@gated-at.bofh.it> |
| In reply to | #1219431 |
On Sat, Sep 5, 2015 at 8:53 AM, Matt Ranostay <mranostay@gmail.com> wrote: > Initial RFC for new chemical sensor framework, IIO_CONCENTRATION, > and IIO_RESISTANCE channel types. > > Important notes: > * Not been tested on real hardware yet but that isn't the main RFC reason and > once hardware is in hand it will be verified > * Reason the IIO_CONCENTRATION type isn't in percent but has modifiers for ppm > and ppb is the scale value for the latter would cause a integer overflow > using IIO_VAL_FRACTIONAL Please add this details also in the commit message introducing IIO_CONCENTRATION. Readers will faster find commit messages than cover letter. Interesting patches Matt! :) thanks, Daniel. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Jonathan Cameron <jic23@kernel.org> |
|---|---|
| Date | 2015-09-05 18:00 +0200 |
| Message-ID | <q5o2K-4Wa-19@gated-at.bofh.it> |
| In reply to | #1219461 |
On 05/09/15 09:20, Daniel Baluta wrote: > On Sat, Sep 5, 2015 at 8:53 AM, Matt Ranostay <mranostay@gmail.com> wrote: >> Initial RFC for new chemical sensor framework, IIO_CONCENTRATION, >> and IIO_RESISTANCE channel types. >> >> Important notes: >> * Not been tested on real hardware yet but that isn't the main RFC reason and >> once hardware is in hand it will be verified >> * Reason the IIO_CONCENTRATION type isn't in percent but has modifiers for ppm >> and ppb is the scale value for the latter would cause a integer overflow >> using IIO_VAL_FRACTIONAL Then add a a return type that deals with that issue. Perhaps IIO_VAL_FRACTIONAL_DIVMILLION or something like that. Will just do the normal calculation but when outputting append a load of leading zeros. So val/(val2 * 1000000) = (val/val2) / 1000000 so decimal shift right 6 digits. > > Please add this details also in the commit message introducing > IIO_CONCENTRATION. Readers > will faster find commit messages than cover letter. Indeed, I wouldn't even have read the cover letter (tend to like jumping in the deep end ;) except that I wondered what Daniel was commenting on! > > Interesting patches Matt! :) Indeed! > > thanks, > Daniel. > -- > To unsubscribe from this list: send the line "unsubscribe linux-iio" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web