# 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 mprls0025pa pressure sensor

maintainers:
  - Andreas Klinger <ak@it-klinger.de>
  - Petre Rodan <petre.rodan@subdimension.ro>

description: |
  Honeywell pressure sensor of model mprls0025pa.

  This sensor has an I2C and SPI interface.

  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 its pressure triplet as well
  as the transfer function.

  For custom silicon chips not covered by the Honeywell MPR series datasheet,
  the pressure values can be specified manually via honeywell,pmin-pascal and
  honeywell,pmax-pascal.
  The minimal range value stands for the minimum pressure and the maximum value
  also for the maximum pressure with linear relation inside the range.

  The transfer function defines the ranges of numerical values delivered by the
  sensor.

  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:
    description:
      Optional interrupt for indicating End-of-conversion.
      If not present, the driver loops for a while until the received status
      byte indicates correct measurement.
    maxItems: 1

  reset-gpios:
    description:
      Optional GPIO for resetting the device.
      If not present the device is not reset during the probe.
    maxItems: 1

  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)
    enum: [1, 2, 3]
    $ref: /schemas/types.yaml#/definitions/uint32

  honeywell,pressure-triplet:
    description: |
      Case-sensitive five character string that defines pressure range, unit
      and type as part of the device nomenclature. In the unlikely case of a
      custom chip, unset and provide pmin-pascal and pmax-pascal instead.
    enum: [0001BA, 01.6BA, 02.5BA, 0060MG, 0100MG, 0160MG, 0250MG, 0400MG,
           0600MG, 0001BG, 01.6BG, 02.5BG, 0100KA, 0160KA, 0250KA, 0006KG,
           0010KG, 0016KG, 0025KG, 0040KG, 0060KG, 0100KG, 0160KG, 0250KG,
           0015PA, 0025PA, 0030PA, 0001PG, 0005PG, 0015PG, 0030PG, 0300YG]
    $ref: /schemas/types.yaml#/definitions/string

  honeywell,pmin-pascal:
    description:
      Minimum pressure value the sensor can measure in pascal.

  honeywell,pmax-pascal:
    description:
      Maximum pressure value the sensor can measure in pascal.

  spi-max-frequency:
    maximum: 800000

  vdd-supply:
    description: provide VDD power to the sensor.

required:
  - compatible
  - reg
  - honeywell,transfer-function
  - vdd-supply

oneOf:
  - required:
      - honeywell,pressure-triplet
  - required:
      - honeywell,pmin-pascal
      - honeywell,pmax-pascal

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml
  - if:
      required:
        - honeywell,pressure-triplet
    then:
      properties:
        honeywell,pmin-pascal: false
        honeywell,pmax-pascal: false

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_RISING>;

            honeywell,pressure-triplet = "0025PA";
            honeywell,transfer-function = <1>;
            vdd-supply = <&vcc_3v3>;
        };
    };
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        pressure@0 {
            compatible = "honeywell,mprls0025pa";
            reg = <0>;
            spi-max-frequency = <800000>;
            reset-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
            interrupt-parent = <&gpio0>;
            interrupts = <30 IRQ_TYPE_EDGE_RISING>;

            honeywell,pressure-triplet = "0015PA";
            honeywell,transfer-function = <1>;
            vdd-supply = <&vcc_3v3>;
        };
    };
...
