summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
blob: 6994b30015bdb69ac8e8d8cc847f93593bd029da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# 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>;
        };
    };
...