159 lines
4.8 KiB
YAML
159 lines
4.8 KiB
YAML
|
# 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>;
|
||
|
};
|
||
|
};
|
||
|
...
|