blob: 6994b30015bdb69ac8e8d8cc847f93593bd029da [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/pressure/honeywell,mprls0025pa.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Honeywell mprls0025pa pressure sensor
8
9maintainers:
10 - Andreas Klinger <ak@it-klinger.de>
Tom Rini6bb92fc2024-05-20 09:54:58 -060011 - Petre Rodan <petre.rodan@subdimension.ro>
Tom Rini53633a82024-02-29 12:33:36 -050012
13description: |
14 Honeywell pressure sensor of model mprls0025pa.
15
Tom Rini6bb92fc2024-05-20 09:54:58 -060016 This sensor has an I2C and SPI interface.
Tom Rini53633a82024-02-29 12:33:36 -050017
18 There are many models with different pressure ranges available. The vendor
19 calls them "mpr series". All of them have the identical programming model and
20 differ in the pressure range, unit and transfer function.
21
Tom Rini6bb92fc2024-05-20 09:54:58 -060022 To support different models one need to specify its pressure triplet as well
23 as the transfer function.
24
25 For custom silicon chips not covered by the Honeywell MPR series datasheet,
26 the pressure values can be specified manually via honeywell,pmin-pascal and
27 honeywell,pmax-pascal.
28 The minimal range value stands for the minimum pressure and the maximum value
29 also for the maximum pressure with linear relation inside the range.
Tom Rini53633a82024-02-29 12:33:36 -050030
31 The transfer function defines the ranges of numerical values delivered by the
Tom Rini6bb92fc2024-05-20 09:54:58 -060032 sensor.
Tom Rini53633a82024-02-29 12:33:36 -050033
34 Specifications about the devices can be found at:
35 https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/
36 products/sensors/pressure-sensors/board-mount-pressure-sensors/
37 micropressure-mpr-series/documents/
38 sps-siot-mpr-series-datasheet-32332628-ciid-172626.pdf
39
40properties:
41 compatible:
42 const: honeywell,mprls0025pa
43
44 reg:
45 maxItems: 1
46
47 interrupts:
Tom Rini6bb92fc2024-05-20 09:54:58 -060048 description:
49 Optional interrupt for indicating End-of-conversion.
50 If not present, the driver loops for a while until the received status
51 byte indicates correct measurement.
Tom Rini53633a82024-02-29 12:33:36 -050052 maxItems: 1
53
54 reset-gpios:
55 description:
56 Optional GPIO for resetting the device.
57 If not present the device is not reset during the probe.
58 maxItems: 1
59
Tom Rini53633a82024-02-29 12:33:36 -050060 honeywell,transfer-function:
61 description: |
62 Transfer function which defines the range of valid values delivered by the
63 sensor.
64 1 - A, 10% to 90% of 2^24 (1677722 .. 15099494)
65 2 - B, 2.5% to 22.5% of 2^24 (419430 .. 3774874)
66 3 - C, 20% to 80% of 2^24 (3355443 .. 13421773)
Tom Rini6bb92fc2024-05-20 09:54:58 -060067 enum: [1, 2, 3]
Tom Rini53633a82024-02-29 12:33:36 -050068 $ref: /schemas/types.yaml#/definitions/uint32
69
Tom Rini6bb92fc2024-05-20 09:54:58 -060070 honeywell,pressure-triplet:
71 description: |
72 Case-sensitive five character string that defines pressure range, unit
73 and type as part of the device nomenclature. In the unlikely case of a
74 custom chip, unset and provide pmin-pascal and pmax-pascal instead.
75 enum: [0001BA, 01.6BA, 02.5BA, 0060MG, 0100MG, 0160MG, 0250MG, 0400MG,
76 0600MG, 0001BG, 01.6BG, 02.5BG, 0100KA, 0160KA, 0250KA, 0006KG,
77 0010KG, 0016KG, 0025KG, 0040KG, 0060KG, 0100KG, 0160KG, 0250KG,
78 0015PA, 0025PA, 0030PA, 0001PG, 0005PG, 0015PG, 0030PG, 0300YG]
79 $ref: /schemas/types.yaml#/definitions/string
80
81 honeywell,pmin-pascal:
82 description:
83 Minimum pressure value the sensor can measure in pascal.
84
85 honeywell,pmax-pascal:
86 description:
87 Maximum pressure value the sensor can measure in pascal.
88
89 spi-max-frequency:
90 maximum: 800000
91
Tom Rini53633a82024-02-29 12:33:36 -050092 vdd-supply:
93 description: provide VDD power to the sensor.
94
95required:
96 - compatible
97 - reg
Tom Rini53633a82024-02-29 12:33:36 -050098 - honeywell,transfer-function
99 - vdd-supply
100
Tom Rini6bb92fc2024-05-20 09:54:58 -0600101oneOf:
102 - required:
103 - honeywell,pressure-triplet
104 - required:
105 - honeywell,pmin-pascal
106 - honeywell,pmax-pascal
107
108allOf:
109 - $ref: /schemas/spi/spi-peripheral-props.yaml
110 - if:
111 required:
112 - honeywell,pressure-triplet
113 then:
114 properties:
115 honeywell,pmin-pascal: false
116 honeywell,pmax-pascal: false
117
Tom Rini53633a82024-02-29 12:33:36 -0500118additionalProperties: false
119
120examples:
121 - |
122 #include <dt-bindings/gpio/gpio.h>
123 #include <dt-bindings/interrupt-controller/irq.h>
124 i2c {
125 #address-cells = <1>;
126 #size-cells = <0>;
127
128 pressure@18 {
129 compatible = "honeywell,mprls0025pa";
130 reg = <0x18>;
131 reset-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
132 interrupt-parent = <&gpio3>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600133 interrupts = <21 IRQ_TYPE_EDGE_RISING>;
134
135 honeywell,pressure-triplet = "0025PA";
136 honeywell,transfer-function = <1>;
137 vdd-supply = <&vcc_3v3>;
138 };
139 };
140 - |
141 spi {
142 #address-cells = <1>;
143 #size-cells = <0>;
144
145 pressure@0 {
146 compatible = "honeywell,mprls0025pa";
147 reg = <0>;
148 spi-max-frequency = <800000>;
149 reset-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
150 interrupt-parent = <&gpio0>;
151 interrupts = <30 IRQ_TYPE_EDGE_RISING>;
152
153 honeywell,pressure-triplet = "0015PA";
Tom Rini53633a82024-02-29 12:33:36 -0500154 honeywell,transfer-function = <1>;
155 vdd-supply = <&vcc_3v3>;
156 };
157 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600158...