Re: [PATCH v3 0/6] Support ROHM BM1390 pressure sensor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 22 Sep 2023 14:14:52 +0300
Matti Vaittinen <mazziesaccount@xxxxxxxxx> wrote:

> ROHM BM1390 Pressure sensor (BM1390GLV-Z) can measure pressures ranging
> from 300 hPa to 1300 hPa with configurable measurement averaging and an
> internal FIFO. The sensor does also provide temperature measurements
> although, according to the data sheet, sensor performs internal
> temperature compensation for the MEMS.
> 
> Sensor does also contain IIR filter implemented in HW. The data-sheet
> says the IIR filter can be configured to be "weak", "middle" or
> "strong". Some RMS noise figures are provided in data sheet but no
> accurate maths for the filter configurations is provided.
> 
> I actually asked if we can define 3db frequencies corresponding to these
> IIR filter settings - and I received values 0.452Hz, 0.167Hz, and 0.047Hz
> but I am not at all sure we understood each others with the HW
> colleagues... Hence, the IIR filter configuration is not supported by this
> driver and the filter is just configured to the "middle" setting.
> (at least for now)
> 
> It would also be possible to not use IIR filter but just do some simple
> averaging. I wonder if it would make sense to implement the OVERSAMPLING
> value setting so that if this value is written, IIR filter is disabled and
> number of samples to be averaged is set to value requested by
> OVERSAMPLING. The data-sheet has a mention that if IIR is used, the
> number of averaged samples must be set to a fixed value.
> 
> The FIFO measurement mode (in sensor hardware) is only measuring the
> pressure and not the temperature. The driver measures temperature when
> FIFO is flushed and simply uses the same measured temperature value to
> all reported temperatures. This should not be a problem when temperature
> is not changing very rapidly (several degrees C / second) but allows users
> to get the temperature measurements from sensor without any additional
> logic.
> 
> This driver has received limited amount of testing this far. It's in a
> state 'works on my machine, for my use cases' - and all feedback is
> appreciated!

At somepoint we'll just have to decide it's enough. To be honest most
drivers in IIO get testing along those lines and we find bugs years
later when someone tries something a little different!

> 
> Revision history:
> Major changes here, please see the head room of individual patches for
> more detailed list.
> v2 => v3:
> 	rebased on v6.6-rc2

Stick to rc1 though I doubt it makes much difference. The IIO tree
will remain based on v6.6-rc1 until it is rebased after Greg takes
a pull request.

Jonathan

> 	added three IIO fixup patches so numbering of patches changed
> 	dt-bindings/MAINTAINERS: No changes
> 	bm1390 driver:
> 	 - various cleanups and fixes
> 	 - do not disable IRQ
> 	 - fix temperature reading when FIFO is used
> 	 - separate buffer and trigger initialization
> 
> v1 => v2:
> 	rebased on v6.6-rc1
> 	dt-bindings:
> 	  - fix compatible in the example
> 	sensor driver:
> 	  - drop unnecessary write_raw callback
> 	  - plenty of small improvements and fixes
> 	MAINTAINERS:
> 	  - No changes
> 
> Matti Vaittinen (6):
>   tools: iio: iio_generic_buffer ensure alignment
>   iio: improve doc for available_scan_mask
>   iio: try searching for exact scan_mask
>   dt-bindings: Add ROHM BM1390 pressure sensor
>   iio: pressure: Support ROHM BU1390
>   MAINTAINERS: Add ROHM BM1390
> 
>  .../bindings/iio/pressure/rohm,bm1390.yaml    |  52 +
>  MAINTAINERS                                   |   6 +
>  drivers/iio/industrialio-buffer.c             |  25 +-
>  drivers/iio/pressure/Kconfig                  |   9 +
>  drivers/iio/pressure/Makefile                 |   1 +
>  drivers/iio/pressure/rohm-bm1390.c            | 930 ++++++++++++++++++
>  include/linux/iio/iio.h                       |   4 +-
>  tools/iio/iio_generic_buffer.c                |  15 +-
>  8 files changed, 1034 insertions(+), 8 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/iio/pressure/rohm,bm1390.yaml
>  create mode 100644 drivers/iio/pressure/rohm-bm1390.c
> 
> 
> base-commit: ce9ecca0238b140b88f43859b211c9fdfd8e5b70




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux