summaryrefslogtreecommitdiff
path: root/drivers/iio/pressure/hsc030pa_spi.c
diff options
context:
space:
mode:
authorPetre Rodan <petre.rodan@subdimension.ro>2024-02-11 10:56:36 +0300
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2024-02-19 22:32:22 +0300
commitdf3186e829c33e3c577e00e8b3faa25763a44bb0 (patch)
treeab3e9c4b9853d636a460a3f9b2e7da9b5bc2f9a2 /drivers/iio/pressure/hsc030pa_spi.c
parentb0e42c9e932323d340d9ec000c2ee06610386a80 (diff)
downloadlinux-df3186e829c33e3c577e00e8b3faa25763a44bb0.tar.xz
iio: pressure: hsc030pa add mandatory delay
Add a mandatory 2ms delay between consecutive chip reads. A Technical Note pdf specifies that the measurement cycle in these chips takes around 1.26ms. By adding this 2ms delay we make sure that we never get stale measurements. For more details, please see "Figure 1" in the pdf below: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf Signed-off-by: Petre Rodan <petre.rodan@subdimension.ro> Link: https://lore.kernel.org/r/20240211075645.28777-6-petre.rodan@subdimension.ro Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/pressure/hsc030pa_spi.c')
-rw-r--r--drivers/iio/pressure/hsc030pa_spi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/iio/pressure/hsc030pa_spi.c b/drivers/iio/pressure/hsc030pa_spi.c
index 8d3441f1dcf9..818fa6303454 100644
--- a/drivers/iio/pressure/hsc030pa_spi.c
+++ b/drivers/iio/pressure/hsc030pa_spi.c
@@ -8,6 +8,7 @@
* Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf
*/
+#include <linux/delay.h>
#include <linux/device.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
@@ -28,6 +29,7 @@ static int hsc_spi_recv(struct hsc_data *data)
.len = HSC_REG_MEASUREMENT_RD_SIZE,
};
+ msleep_interruptible(HSC_RESP_TIME_MS);
return spi_sync_transfer(spi, &xfer, 1);
}