Following series adds support for Sensirion SCD30 sensor module capable of
measuring carbon dioxide, temperature and relative humidity. CO2 measurements
base on NDIR principle while temperature and relative humidity are measured by
the on board SHT31. As for sensor communication, both I2C and serial interfaces
are supported.
v5:
* set pressure calibration via output channel
* use kstrtobool() to read value into _enabled attribute
* drop explicit parent asignment as the default one is good enough
(seems 'iio: core: pass parent device as parameter during allocation'
series was accepted)
v4:
* improve formatting
* improve error handling readability
* fix message validity check on serial write
v3:
* simplify code by scaling temperature & humidity in _read_meas()
* update realbits in scan types
* s/adjecent/adjacent
* drop IIO_CHAN_INFO_RAW from _write_raw_get_fmt because there's no raw
output channel
* rework locking in _read_raw
* fix endianess problem on BE machine
* align timestamp properly before pushing to buffers
* explain why interrupt gets disabled after registration
* add trigger validation
* drop SCALE for temperature and humidity channel as they are processed
* register action which stops measuring after starting measurements
* spit generic calibration attr into two doing specific things
* add comment explaining why priv in struct scd30_state is for
* rename node in binding example to co2-sensor
v2:
* move asm/byteorder.h towards the bottom of include list
* make channel address names in enum more specific
* add postfixes to defines and extra comments
* drop unneeded i2c include from scd30 header
* break generic command sending function into specialized options
* expose automatic calibration and forced calibration via the same attr
* use SAMP_FREQ to set frequency instead of meas_interval attr
* use CALISCALE to set pressure compensation instead of pressure_comp attr
* use CALIBBIAS to set temperature offset instead of temp_offset attr
* fix order in MAINTAINERS
* drop attribute allowing one to reset sensor
* as we have dt probing drop board file based probing (i2c_device_id)
* merge patches touching related files
* use fwnode API to retrieve interrupt from dt
* fix interrupt-parent spelling
* change binding license
* drop supply from required property
Tomasz Duszynski (4):
iio: chemical: scd30: add core driver
iio: chemical: scd30: add I2C interface driver
iio: chemical: scd30: add serial interface driver
dt-bindings: iio: scd30: add device binding file
Documentation/ABI/testing/sysfs-bus-iio-scd30 | 34 +
.../iio/chemical/sensirion,scd30.yaml | 68 ++
MAINTAINERS | 9 +
drivers/iio/chemical/Kconfig | 33 +
drivers/iio/chemical/Makefile | 3 +
drivers/iio/chemical/scd30.h | 78 ++
drivers/iio/chemical/scd30_core.c | 770 ++++++++++++++++++
drivers/iio/chemical/scd30_i2c.c | 139 ++++
drivers/iio/chemical/scd30_serial.c | 263 ++++++
9 files changed, 1397 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-scd30
create mode 100644 Documentation/devicetree/bindings/iio/chemical/sensirion,scd30.yaml
create mode 100644 drivers/iio/chemical/scd30.h
create mode 100644 drivers/iio/chemical/scd30_core.c
create mode 100644 drivers/iio/chemical/scd30_i2c.c
create mode 100644 drivers/iio/chemical/scd30_serial.c
--
2.27.0
On Sun, 7 Jun 2020 19:58:08 +0200
Tomasz Duszynski <[email protected]> wrote:
> Following series adds support for Sensirion SCD30 sensor module capable of
> measuring carbon dioxide, temperature and relative humidity. CO2 measurements
> base on NDIR principle while temperature and relative humidity are measured by
> the on board SHT31. As for sensor communication, both I2C and serial interfaces
> are supported.
Hi Tomasz,
All looks good to me.
I'll let it sit on the list a bit longer though to give time for anyone
else to review if they wish and ideally pick up a DT review if
Rob has time. It isn't unheard of me to somehow loose a set down
the back of the sofa, so do poke me if I seem to to have lost this
in a few weeks time! (I'll try not to of course!)
Thanks,
Jonathan
>
> v5:
> * set pressure calibration via output channel
> * use kstrtobool() to read value into _enabled attribute
> * drop explicit parent asignment as the default one is good enough
> (seems 'iio: core: pass parent device as parameter during allocation'
> series was accepted)
>
> v4:
> * improve formatting
> * improve error handling readability
> * fix message validity check on serial write
>
> v3:
> * simplify code by scaling temperature & humidity in _read_meas()
> * update realbits in scan types
> * s/adjecent/adjacent
> * drop IIO_CHAN_INFO_RAW from _write_raw_get_fmt because there's no raw
> output channel
> * rework locking in _read_raw
> * fix endianess problem on BE machine
> * align timestamp properly before pushing to buffers
> * explain why interrupt gets disabled after registration
> * add trigger validation
> * drop SCALE for temperature and humidity channel as they are processed
> * register action which stops measuring after starting measurements
> * spit generic calibration attr into two doing specific things
> * add comment explaining why priv in struct scd30_state is for
> * rename node in binding example to co2-sensor
>
> v2:
> * move asm/byteorder.h towards the bottom of include list
> * make channel address names in enum more specific
> * add postfixes to defines and extra comments
> * drop unneeded i2c include from scd30 header
> * break generic command sending function into specialized options
> * expose automatic calibration and forced calibration via the same attr
> * use SAMP_FREQ to set frequency instead of meas_interval attr
> * use CALISCALE to set pressure compensation instead of pressure_comp attr
> * use CALIBBIAS to set temperature offset instead of temp_offset attr
> * fix order in MAINTAINERS
> * drop attribute allowing one to reset sensor
> * as we have dt probing drop board file based probing (i2c_device_id)
> * merge patches touching related files
> * use fwnode API to retrieve interrupt from dt
> * fix interrupt-parent spelling
> * change binding license
> * drop supply from required property
>
> Tomasz Duszynski (4):
> iio: chemical: scd30: add core driver
> iio: chemical: scd30: add I2C interface driver
> iio: chemical: scd30: add serial interface driver
> dt-bindings: iio: scd30: add device binding file
>
> Documentation/ABI/testing/sysfs-bus-iio-scd30 | 34 +
> .../iio/chemical/sensirion,scd30.yaml | 68 ++
> MAINTAINERS | 9 +
> drivers/iio/chemical/Kconfig | 33 +
> drivers/iio/chemical/Makefile | 3 +
> drivers/iio/chemical/scd30.h | 78 ++
> drivers/iio/chemical/scd30_core.c | 770 ++++++++++++++++++
> drivers/iio/chemical/scd30_i2c.c | 139 ++++
> drivers/iio/chemical/scd30_serial.c | 263 ++++++
> 9 files changed, 1397 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-scd30
> create mode 100644 Documentation/devicetree/bindings/iio/chemical/sensirion,scd30.yaml
> create mode 100644 drivers/iio/chemical/scd30.h
> create mode 100644 drivers/iio/chemical/scd30_core.c
> create mode 100644 drivers/iio/chemical/scd30_i2c.c
> create mode 100644 drivers/iio/chemical/scd30_serial.c
>
> --
> 2.27.0
>
On Sun, Jun 14, 2020 at 02:17:38PM +0100, Jonathan Cameron wrote:
> On Sun, 7 Jun 2020 19:58:08 +0200
> Tomasz Duszynski <[email protected]> wrote:
>
> > Following series adds support for Sensirion SCD30 sensor module capable of
> > measuring carbon dioxide, temperature and relative humidity. CO2 measurements
> > base on NDIR principle while temperature and relative humidity are measured by
> > the on board SHT31. As for sensor communication, both I2C and serial interfaces
> > are supported.
>
> Hi Tomasz,
>
> All looks good to me.
>
> I'll let it sit on the list a bit longer though to give time for anyone
> else to review if they wish and ideally pick up a DT review if
> Rob has time. It isn't unheard of me to somehow loose a set down
> the back of the sofa, so do poke me if I seem to to have lost this
> in a few weeks time! (I'll try not to of course!)
>
Okay thanks. Will keep an eye on the series.
> Thanks,
>
> Jonathan
>
> >
> > v5:
> > * set pressure calibration via output channel
> > * use kstrtobool() to read value into _enabled attribute
> > * drop explicit parent asignment as the default one is good enough
> > (seems 'iio: core: pass parent device as parameter during allocation'
> > series was accepted)
> >
> > v4:
> > * improve formatting
> > * improve error handling readability
> > * fix message validity check on serial write
> >
> > v3:
> > * simplify code by scaling temperature & humidity in _read_meas()
> > * update realbits in scan types
> > * s/adjecent/adjacent
> > * drop IIO_CHAN_INFO_RAW from _write_raw_get_fmt because there's no raw
> > output channel
> > * rework locking in _read_raw
> > * fix endianess problem on BE machine
> > * align timestamp properly before pushing to buffers
> > * explain why interrupt gets disabled after registration
> > * add trigger validation
> > * drop SCALE for temperature and humidity channel as they are processed
> > * register action which stops measuring after starting measurements
> > * spit generic calibration attr into two doing specific things
> > * add comment explaining why priv in struct scd30_state is for
> > * rename node in binding example to co2-sensor
> >
> > v2:
> > * move asm/byteorder.h towards the bottom of include list
> > * make channel address names in enum more specific
> > * add postfixes to defines and extra comments
> > * drop unneeded i2c include from scd30 header
> > * break generic command sending function into specialized options
> > * expose automatic calibration and forced calibration via the same attr
> > * use SAMP_FREQ to set frequency instead of meas_interval attr
> > * use CALISCALE to set pressure compensation instead of pressure_comp attr
> > * use CALIBBIAS to set temperature offset instead of temp_offset attr
> > * fix order in MAINTAINERS
> > * drop attribute allowing one to reset sensor
> > * as we have dt probing drop board file based probing (i2c_device_id)
> > * merge patches touching related files
> > * use fwnode API to retrieve interrupt from dt
> > * fix interrupt-parent spelling
> > * change binding license
> > * drop supply from required property
> >
> > Tomasz Duszynski (4):
> > iio: chemical: scd30: add core driver
> > iio: chemical: scd30: add I2C interface driver
> > iio: chemical: scd30: add serial interface driver
> > dt-bindings: iio: scd30: add device binding file
> >
> > Documentation/ABI/testing/sysfs-bus-iio-scd30 | 34 +
> > .../iio/chemical/sensirion,scd30.yaml | 68 ++
> > MAINTAINERS | 9 +
> > drivers/iio/chemical/Kconfig | 33 +
> > drivers/iio/chemical/Makefile | 3 +
> > drivers/iio/chemical/scd30.h | 78 ++
> > drivers/iio/chemical/scd30_core.c | 770 ++++++++++++++++++
> > drivers/iio/chemical/scd30_i2c.c | 139 ++++
> > drivers/iio/chemical/scd30_serial.c | 263 ++++++
> > 9 files changed, 1397 insertions(+)
> > create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-scd30
> > create mode 100644 Documentation/devicetree/bindings/iio/chemical/sensirion,scd30.yaml
> > create mode 100644 drivers/iio/chemical/scd30.h
> > create mode 100644 drivers/iio/chemical/scd30_core.c
> > create mode 100644 drivers/iio/chemical/scd30_i2c.c
> > create mode 100644 drivers/iio/chemical/scd30_serial.c
> >
> > --
> > 2.27.0
> >
>