From ca92f96f41ea670ab1030dda8977d853c25ae480 Mon Sep 17 00:00:00 2001 From: Juliane Schulze Date: Thu, 11 Apr 2024 10:31:27 +0200 Subject: [PATCH] drivers: lis2dh: read reference register prior to wakeup Fixes #71371 Signed-off-by: Juliane Schulze --- drivers/sensor/st/lis2dh/lis2dh.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/sensor/st/lis2dh/lis2dh.c b/drivers/sensor/st/lis2dh/lis2dh.c index a12bb0e097d..31be7fa2f55 100644 --- a/drivers/sensor/st/lis2dh/lis2dh.c +++ b/drivers/sensor/st/lis2dh/lis2dh.c @@ -437,9 +437,17 @@ static int lis2dh_pm_action(const struct device *dev, { 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);