Skip to contentSkip to conversation

Support Honeywell mprls0025pa pressure sensor

PATCH Superseded Andreas Klinger 3 participants 5 messages Apr 14, 2023

Subsystems (3)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Andreas Klinger

author maintainer
#0 lore raw

v2 cover Support Honeywell mprls0025pa pressure sensor

Support Honeywell mprls0025pa pressure sensor.

This patch series adds support for Honeywell mprls0025pa pressure sensor. There are a variety of sensors with different pressure ranges supported.

Changes in v2:
- Patch 1: "dt-bindings: iio: pressure: Support Honeywell mprls0025pa sensor"
- change the global sensor decription of mpr to the specific sensor mprls0025pa
- change compatible string
- rename the file to honeywell,mprls0025pa.yaml
- honeywell,pmin-pascal and honeywell,pmax-pascal: add unit pascal to property names
- add new property honeywell,transfer-function
- Patch 2: "iio: pressure: Honeywell mpr pressure sensor"
- no change so far
- will be changed and send out as new version when the dt definition is settled down
- Patch 3: "MAINTAINERS: Add Honeywell mpr sensor"
- no change so far

Andreas Klinger (1):
dt-bindings: iio: pressure: Support Honeywell mprls0025pa sensor

 .../iio/pressure/honeywell,mprls0025pa.yaml   | 93 +++++++++++++++++++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
Signature · 1 line
2.30.2
author maintainer
#1 lore raw

PATCH v2 1/1 dt-bindings: iio: pressure: Support Honeywell mprls0025pa sensor

Honeywell mpr is a pressure sensor series. There are many different models with different pressure ranges, units and transfer functions.

The range and transfer function need to be set up in the dt. Therefore new properties honeywell,pmin-pascal, honeywell,pmax-pascal, honeywell,transfer-function are introduced.

Add dt-bindings.

---
 .../iio/pressure/honeywell,mprls0025pa.yaml   | 93 +++++++++++++++++++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +93 -0
new file mode 100644
index 000000000000..c0eb3c4be16f
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/pressure/honeywell,mprls0025pa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Honeywell mpr series pressure sensor
+
+maintainers:
+  - Andreas Klinger <[email protected]>
+
+description: |
+  Honeywell pressure sensor of model mprls0025pa.
+
+  This sensor has an I2C and SPI interface. Only the I2C interface is implemented.
+
+  There are many models with different pressure ranges available. The vendor calls them "mpr
+  series". All of them have the identical programming model and differ in the pressure range, unit
+  and transfer function.
+
+  To support different models one need to specify the pressure range as well as the transfer
+  function. Pressure range needs to be converted from its unit to pascal.
+
+  The transfer function defines the ranges of numerical values delivered by the sensor. The minimal
+  range value stands for the minimum pressure and the maximum value also for the maximum pressure
+  with linear relation inside the range.
+
+  Specifications about the devices can be found at:
+    https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/
+      pressure-sensors/board-mount-pressure-sensors/micropressure-mpr-series/documents/
+      sps-siot-mpr-series-datasheet-32332628-ciid-172626.pdf
+
+properties:
+  compatible:
+    const: honeywell,mprls0025pa
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    description:
+      Optional GPIO for resetting the device.
+      If not present the device is not resetted during the probe.
+    maxItems: 1
+
+  honeywell,pmin-pascal:
+    description:
+      Minimum pressure value the sensor can measure in pascal.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  honeywell,pmax-pascal:
+    description:
+      Maximum pressure value the sensor can measure in pascal.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  honeywell,transfer-function:
+    description:
+      Transfer function which defines the range of valid values delivered by the sensor.
+      1 - A, 10% to 90% of 2^24 (1677722 .. 15099494)
+      2 - B, 2.5% to 22.5% of 2^24 (419430 .. 3774874)
+      3 - C, 20% to 80% of 2^24 (3355443 .. 13421773)
+
+required:
+  - compatible
+  - reg
+  - honeywell,pmin
+  - honeywell,pmax
+  - honeywell,transfer-function
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pressure@18 {
+            compatible = "honeywell,mprls0025pa";
+            reg = <0x18>;
+            reset-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
+            interrupt-parent = <&gpio3>;
+            interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
+            honeywell,pmin = <0>;
+            honeywell,pmax = <172369>;
+            honeywell,transfer-function = <1>;
+        };
+    };
Signature · 1 line
2.30.2
maintainer
#2 lore raw

Re: [PATCH v2 1/1] dt-bindings: iio: pressure: Support Honeywell mprls0025pa sensor

Quoted 6 lines · Andreas Klinger

Honeywell mpr is a pressure sensor series. There are many different models with different pressure ranges, units and transfer functions.

The range and transfer function need to be set up in the dt. Therefore new properties honeywell,pmin-pascal, honeywell,pmax-pascal, honeywell,transfer-function are introduced.

Quoted 8 lines

Add dt-bindings.

---
 .../iio/pressure/honeywell,mprls0025pa.yaml   | 93 +++++++++++++++++++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml: properties:honeywell,transfer-function: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type: boolean"
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml: properties:honeywell,transfer-function: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an implicit type
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml: properties:honeywell,transfer-function: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.example.dtb: pressure@18: 'honeywell,pmax', 'honeywell,pmin' do not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/ZDlLmCIiKSMa7Hah@arbad

The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.

#3 lore raw

Re: [PATCH v2 1/1] dt-bindings: iio: pressure: Support Honeywell mprls0025pa sensor

In reply to Andreas Klinger
Quoted 5 lines · Andreas Klinger

Honeywell mpr is a pressure sensor series. There are many different models with different pressure ranges, units and transfer functions.

The range and transfer function need to be set up in the dt. Therefore new properties honeywell,pmin-pascal, honeywell,pmax-pascal, honeywell,transfer-function are introduced.

Please wrap commit message according to Linux coding style / submission process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v5.18-rc4/source/Documentation/process/submitting-patches.rst#L586

Quoted 4 lines

Add dt-bindings.

Patches 2 and 3 are missing. At least they were mentioned in the changelog but this is 1/1.

Quoted 19 lines
---
 .../iio/pressure/honeywell,mprls0025pa.yaml   | 93 +++++++++++++++++++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +8 -0
new file mode 100644
index 000000000000..c0eb3c4be16f
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/pressure/honeywell,mprls0025pa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Honeywell mpr series pressure sensor
+

Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml line 18

Quoted 10 lines
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +10 -0
+maintainers:
+  - Andreas Klinger <[email protected]>
+
+description: |
+  Honeywell pressure sensor of model mprls0025pa.
+
+  This sensor has an I2C and SPI interface. Only the I2C interface is implemented.
+
+  There are many models with different pressure ranges available. The vendor calls them "mpr
+  series". All of them have the identical programming model and differ in the pressure range, unit

Wrap according to Linux coding style, so at 80.

Quoted 7 lines
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +7 -0
+  and transfer function.
+
+  To support different models one need to specify the pressure range as well as the transfer
+  function. Pressure range needs to be converted from its unit to pascal.
+
+  The transfer function defines the ranges of numerical values delivered by the sensor. The minimal
+  range value stands for the minimum pressure and the maximum value also for the maximum pressure

Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml line 35

Quoted 10 lines
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +10 -0
+  with linear relation inside the range.
+
+  Specifications about the devices can be found at:
+    https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/
+      pressure-sensors/board-mount-pressure-sensors/micropressure-mpr-series/documents/
+      sps-siot-mpr-series-datasheet-32332628-ciid-172626.pdf
+
+properties:
+  compatible:
+    const: honeywell,mprls0025pa

So this is one compatible for entire family of 96 separate devices. Looks like reasonable compromise, although I will wait for Rob's approval on that.

Anyway you need to fix the coding style.

Best regards,
Krzysztof

#4 lore raw

Re: [PATCH v2 1/1] dt-bindings: iio: pressure: Support Honeywell mprls0025pa sensor

Quoted 73 lines · Krzysztof Kozlowski
Quoted 5 lines · Andreas Klinger

Honeywell mpr is a pressure sensor series. There are many different models with different pressure ranges, units and transfer functions.

The range and transfer function need to be set up in the dt. Therefore new properties honeywell,pmin-pascal, honeywell,pmax-pascal, honeywell,transfer-function are introduced.

Please wrap commit message according to Linux coding style / submission process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v5.18-rc4/source/Documentation/process/submitting-patches.rst#L586

Quoted 4 lines

Add dt-bindings.

Patches 2 and 3 are missing. At least they were mentioned in the changelog but this is 1/1.

Quoted 19 lines
---
 .../iio/pressure/honeywell,mprls0025pa.yaml   | 93 +++++++++++++++++++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +8 -0
new file mode 100644
index 000000000000..c0eb3c4be16f
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/pressure/honeywell,mprls0025pa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Honeywell mpr series pressure sensor
+

Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml line 18

Quoted 10 lines
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +10 -0
+maintainers:
+  - Andreas Klinger <[email protected]>
+
+description: |
+  Honeywell pressure sensor of model mprls0025pa.
+
+  This sensor has an I2C and SPI interface. Only the I2C interface is implemented.
+
+  There are many models with different pressure ranges available. The vendor calls them "mpr
+  series". All of them have the identical programming model and differ in the pressure range, unit

Wrap according to Linux coding style, so at 80.

Quoted 7 lines
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +7 -0
+  and transfer function.
+
+  To support different models one need to specify the pressure range as well as the transfer
+  function. Pressure range needs to be converted from its unit to pascal.
+
+  The transfer function defines the ranges of numerical values delivered by the sensor. The minimal
+  range value stands for the minimum pressure and the maximum value also for the maximum pressure

Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml line 35

Quoted 10 lines
Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml new file +10 -0
+  with linear relation inside the range.
+
+  Specifications about the devices can be found at:
+    https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/
+      pressure-sensors/board-mount-pressure-sensors/micropressure-mpr-series/documents/
+      sps-siot-mpr-series-datasheet-32332628-ciid-172626.pdf
+
+properties:
+  compatible:
+    const: honeywell,mprls0025pa

So this is one compatible for entire family of 96 separate devices. Looks like reasonable compromise, although I will wait for Rob's approval on that.

Quoted 1 line

Anyway you need to fix the coding style.

... and as Rob's bot pointed out, test it before sending.

Best regards,
Krzysztof