2023-04-14 12:55:09

by Andreas Klinger

[permalink] [raw]
Subject: [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.

Signed-off-by: Andreas Klinger <[email protected]>
---
.../iio/pressure/honeywell,mprls0025pa.yaml | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml

diff --git a/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml b/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
new file mode 100644
index 000000000000..c0eb3c4be16f
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
@@ -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>;
+ };
+ };
--
2.30.2


2023-04-14 18:44:12

by Rob Herring (Arm)

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


On Fri, 14 Apr 2023 14:48:24 +0200, Andreas Klinger wrote:
> 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.
>
> Signed-off-by: Andreas Klinger <[email protected]>
> ---
> .../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.

2023-04-14 20:44:47

by Krzysztof Kozlowski

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

On 14/04/2023 14:48, Andreas Klinger wrote:
> 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

>
> Add dt-bindings.
>
> Signed-off-by: Andreas Klinger <[email protected]>

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

> ---
> .../iio/pressure/honeywell,mprls0025pa.yaml | 93 +++++++++++++++++++
> 1 file changed, 93 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml b/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
> new file mode 100644
> index 000000000000..c0eb3c4be16f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
> @@ -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

Wrap according to Linux coding style, so at 80.

> + 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

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

2023-04-14 20:49:33

by Krzysztof Kozlowski

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

On 14/04/2023 22:40, Krzysztof Kozlowski wrote:
> On 14/04/2023 14:48, Andreas Klinger wrote:
>> 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
>
>>
>> Add dt-bindings.
>>
>> Signed-off-by: Andreas Klinger <[email protected]>
>
> Patches 2 and 3 are missing. At least they were mentioned in the
> changelog but this is 1/1.
>
>> ---
>> .../iio/pressure/honeywell,mprls0025pa.yaml | 93 +++++++++++++++++++
>> 1 file changed, 93 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml b/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
>> new file mode 100644
>> index 000000000000..c0eb3c4be16f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
>> @@ -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
>
> Wrap according to Linux coding style, so at 80.
>
>> + 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
>
> 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.

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

Best regards,
Krzysztof