[2/2] dt-bindings: iio: temperature: add MLX90635 device bindings

Message ID 2e8b4a7d3ef4bc1c53bd0a849e4c31eaf2477f6b.1700648165.git.cmo@melexis.com
State New
Headers
Series iio: temperature: mlx90635 Driver for MLX90635 IR temperature sensor |

Commit Message

Crt Mori Nov. 22, 2023, 10:27 a.m. UTC
  Add device tree bindings for MLX90635 Infra Red contactless temperature
sensor.

Signed-off-by: Crt Mori <cmo@melexis.com>
---
 .../iio/temperature/melexis,mlx90635.yaml     | 60 +++++++++++++++++++
 1 file changed, 60 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
  

Comments

Krzysztof Kozlowski Nov. 22, 2023, 11:52 a.m. UTC | #1
On 22/11/2023 11:27, Crt Mori wrote:
> Add device tree bindings for MLX90635 Infra Red contactless temperature
> sensor.

Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC (and consider --no-git-fallback argument). It might
happen, that command when run on an older kernel, gives you outdated
entries. Therefore please be sure you base your patches on recent Linux
kernel.

A nit, subject: drop second/last, redundant "bindings". The
"dt-bindings" prefix is already stating that these are bindings.

> 
> Signed-off-by: Crt Mori <cmo@melexis.com>
> ---
>  .../iio/temperature/melexis,mlx90635.yaml     | 60 +++++++++++++++++++
>  1 file changed, 60 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml b/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
> new file mode 100644
> index 000000000000..96463121a806
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
> @@ -0,0 +1,60 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/temperature/melexis,mlx90635.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Melexis MLX90635 contactless Infra Red temperature sensor
> +
> +maintainers:
> +  - Crt Mori <cmo@melexis.com>
> +
> +description: |
> +  https://www.melexis.com/en/documents/documentation/datasheets/datasheet-mlx90635
> +
> +  There are various applications for the Infra Red contactless temperature
> +  sensor and MLX90635 is most suitable for consumer applications where
> +  measured object temperature is in range between -20 to 100 degrees
> +  Celsius with relative error of measurement 2 degree Celsius in
> +  object temperature range for industrial applications, while just 0.2
> +  degree Celsius for human body measurement applications. Since it can
> +  operate and measure ambient temperature in range of -20 to 85 degrees
> +  Celsius it is suitable also for outdoor use.
> +
> +  Be aware that electronics surrounding the sensor can increase ambient
> +  temperature. MLX90635 can be calibrated to reduce the housing effect via
> +  already existing EEPROM parameters.
> +
> +  Since measured object emissivity effects Infra Red energy emitted,
> +  emissivity should be set before requesting the object temperature.
> +
> +properties:
> +  compatible:
> +    const: melexis,mlx90635

It's the same as mlx90632. Add it there (as enum).

Best regards,
Krzysztof
  
Crt Mori Nov. 22, 2023, 12:28 p.m. UTC | #2
On Wed, 22 Nov 2023 at 12:52, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On 22/11/2023 11:27, Crt Mori wrote:
> > Add device tree bindings for MLX90635 Infra Red contactless temperature
> > sensor.
>
> Please use scripts/get_maintainers.pl to get a list of necessary people
> and lists to CC (and consider --no-git-fallback argument). It might
> happen, that command when run on an older kernel, gives you outdated
> entries. Therefore please be sure you base your patches on recent Linux
> kernel.
>

OK, will put everyone in that list in next spin.

> A nit, subject: drop second/last, redundant "bindings". The
> "dt-bindings" prefix is already stating that these are bindings.
>

 Ok, will fix that in next version (probably main driver review will
get some comments).

> >
> > Signed-off-by: Crt Mori <cmo@melexis.com>
> > ---
> >  .../iio/temperature/melexis,mlx90635.yaml     | 60 +++++++++++++++++++
> >  1 file changed, 60 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml b/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
> > new file mode 100644
> > index 000000000000..96463121a806
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
> > @@ -0,0 +1,60 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/temperature/melexis,mlx90635.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Melexis MLX90635 contactless Infra Red temperature sensor
> > +
> > +maintainers:
> > +  - Crt Mori <cmo@melexis.com>
> > +
> > +description: |
> > +  https://www.melexis.com/en/documents/documentation/datasheets/datasheet-mlx90635
> > +
> > +  There are various applications for the Infra Red contactless temperature
> > +  sensor and MLX90635 is most suitable for consumer applications where
> > +  measured object temperature is in range between -20 to 100 degrees
> > +  Celsius with relative error of measurement 2 degree Celsius in
> > +  object temperature range for industrial applications, while just 0.2
> > +  degree Celsius for human body measurement applications. Since it can
> > +  operate and measure ambient temperature in range of -20 to 85 degrees
> > +  Celsius it is suitable also for outdoor use.
> > +
> > +  Be aware that electronics surrounding the sensor can increase ambient
> > +  temperature. MLX90635 can be calibrated to reduce the housing effect via
> > +  already existing EEPROM parameters.
> > +
> > +  Since measured object emissivity effects Infra Red energy emitted,
> > +  emissivity should be set before requesting the object temperature.
> > +
> > +properties:
> > +  compatible:
> > +    const: melexis,mlx90635
>
> It's the same as mlx90632. Add it there (as enum).
>

Properties are the same, but then you can't have much differences for
a temperature sensor. It has a bit worse relative measurement error
outside of the human body range and overall different DSP, register
map, even physical size - it's 1.8x1.8 mm compared to 90632 3x3 mm. I
was not sure how it qualifies for adding it as another enum, but I
went with the feeling that if it can reuse the driver, then it is an
enum, otherwise it is a new file. And I could not reuse anything from
90632.

Thanks for quick feedback and best regards,
Crt
> Best regards,
> Krzysztof
>
  
Krzysztof Kozlowski Nov. 22, 2023, 12:35 p.m. UTC | #3
On 22/11/2023 13:28, Crt Mori wrote:
>>> +  Since measured object emissivity effects Infra Red energy emitted,
>>> +  emissivity should be set before requesting the object temperature.
>>> +
>>> +properties:
>>> +  compatible:
>>> +    const: melexis,mlx90635
>>
>> It's the same as mlx90632. Add it there (as enum).
>>
> 
> Properties are the same, but then you can't have much differences for
> a temperature sensor. It has a bit worse relative measurement error
> outside of the human body range and overall different DSP, register
> map, even physical size - it's 1.8x1.8 mm compared to 90632 3x3 mm. I
> was not sure how it qualifies for adding it as another enum, but I
> went with the feeling that if it can reuse the driver, then it is an
> enum, otherwise it is a new file. And I could not reuse anything from
> 90632.
> 
> Thanks for quick feedback and best regards,

Driver is independent choice. There is no need for new binding file if
everything is the same from bindings point of view.

Best regards,
Krzysztof
  
Jonathan Cameron Nov. 25, 2023, 5:27 p.m. UTC | #4
On Wed, 22 Nov 2023 13:35:19 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:

> On 22/11/2023 13:28, Crt Mori wrote:
> >>> +  Since measured object emissivity effects Infra Red energy emitted,
> >>> +  emissivity should be set before requesting the object temperature.
> >>> +
> >>> +properties:
> >>> +  compatible:
> >>> +    const: melexis,mlx90635  
> >>
> >> It's the same as mlx90632. Add it there (as enum).
> >>  
> > 
> > Properties are the same, but then you can't have much differences for
> > a temperature sensor. It has a bit worse relative measurement error
> > outside of the human body range and overall different DSP, register
> > map, even physical size - it's 1.8x1.8 mm compared to 90632 3x3 mm. I
> > was not sure how it qualifies for adding it as another enum, but I
> > went with the feeling that if it can reuse the driver, then it is an
> > enum, otherwise it is a new file. And I could not reuse anything from
> > 90632.
> > 
> > Thanks for quick feedback and best regards,  
> 
> Driver is independent choice. There is no need for new binding file if
> everything is the same from bindings point of view.
> 
> Best regards,
> Krzysztof
> 
> 

We got this wrong in the past in IIO and it's a slow effort to merge
the various very similar bindings.  For now we are mostly keeping
to within a vendor though unless a driver supports parts from multiple
vendors.  It potentially gets too confusing to maintain otherwise.

This one is easy case though so definitely merge as Krzystof suggested!

Jonathan
  

Patch

diff --git a/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml b/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
new file mode 100644
index 000000000000..96463121a806
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/temperature/melexis,mlx90635.yaml
@@ -0,0 +1,60 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/temperature/melexis,mlx90635.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Melexis MLX90635 contactless Infra Red temperature sensor
+
+maintainers:
+  - Crt Mori <cmo@melexis.com>
+
+description: |
+  https://www.melexis.com/en/documents/documentation/datasheets/datasheet-mlx90635
+
+  There are various applications for the Infra Red contactless temperature
+  sensor and MLX90635 is most suitable for consumer applications where
+  measured object temperature is in range between -20 to 100 degrees
+  Celsius with relative error of measurement 2 degree Celsius in
+  object temperature range for industrial applications, while just 0.2
+  degree Celsius for human body measurement applications. Since it can
+  operate and measure ambient temperature in range of -20 to 85 degrees
+  Celsius it is suitable also for outdoor use.
+
+  Be aware that electronics surrounding the sensor can increase ambient
+  temperature. MLX90635 can be calibrated to reduce the housing effect via
+  already existing EEPROM parameters.
+
+  Since measured object emissivity effects Infra Red energy emitted,
+  emissivity should be set before requesting the object temperature.
+
+properties:
+  compatible:
+    const: melexis,mlx90635
+
+  reg:
+    maxItems: 1
+    description: Default is 0x3a, but can be reprogrammed.
+
+  vdd-supply:
+    description: provide VDD power to the sensor (check datasheet for voltage).
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        temp-sensor@3a {
+            compatible = "melexis,mlx90635";
+            reg = <0x3a>;
+            vdd-supply = <&ldo4_reg>;
+        };
+    };
+...