drivers: lis2dh: read reference register prior to wakeup
Fixes #71371
Signed-off-by: Juliane Schulze <juliane.schulze@deveritec.com>
diff --git a/drivers/sensor/st/lis2dh/lis2dh.c b/drivers/sensor/st/lis2dh/lis2dh.c
index a12bb0e..31be7fa 100644
--- a/drivers/sensor/st/lis2dh/lis2dh.c
+++ b/drivers/sensor/st/lis2dh/lis2dh.c
@@ -437,9 +437,17 @@
{
int status;
struct lis2dh_data *lis2dh = dev->data;
+ uint8_t regdata;
switch (action) {
case PM_DEVICE_ACTION_RESUME:
+ /* read REFERENCE register (see datasheet rev 6 section 8.9 footnote 1) */
+ status = lis2dh->hw_tf->read_reg(dev, LIS2DH_REG_REFERENCE, ®data);
+ if (status < 0) {
+ LOG_ERR("failed to read reg_reference");
+ return status;
+ }
+
/* Resume previous mode. */
status = lis2dh->hw_tf->write_reg(dev, LIS2DH_REG_CTRL1,
lis2dh->reg_ctrl1_active_val);