icm42699: Only clear interrupt status when setting trigger

Always clearing the interrupt status register was causing issues for
the sensor shell when interrupts were enabled but trying to read
one-off samples.

Signed-off-by: Yuval Peress <peress@google.com>
diff --git a/drivers/sensor/icm42688/icm42688_trigger.c b/drivers/sensor/icm42688/icm42688_trigger.c
index 01e555a..4bf728b 100644
--- a/drivers/sensor/icm42688/icm42688_trigger.c
+++ b/drivers/sensor/icm42688/icm42688_trigger.c
@@ -35,16 +35,11 @@
 static void icm42688_thread_cb(const struct device *dev)
 {
 	struct icm42688_dev_data *data = dev->data;
-	const struct icm42688_dev_cfg *cfg = dev->config;
 
 	icm42688_lock(dev);
 
 	if (data->data_ready_handler != NULL) {
 		data->data_ready_handler(dev, data->data_ready_trigger);
-	} else {
-		uint8_t status;
-
-		icm42688_spi_read(&cfg->spi, REG_INT_STATUS, &status, 1);
 	}
 
 	icm42688_unlock(dev);
@@ -81,6 +76,7 @@
 {
 	struct icm42688_dev_data *data = dev->data;
 	const struct icm42688_dev_cfg *cfg = dev->config;
+	uint8_t status;
 	int res = 0;
 
 	if (trig == NULL || handler == NULL) {
@@ -94,6 +90,10 @@
 	case SENSOR_TRIG_DATA_READY:
 		data->data_ready_handler = handler;
 		data->data_ready_trigger = trig;
+
+		icm42688_lock(dev);
+		icm42688_spi_read(&cfg->spi, REG_INT_STATUS, &status, 1);
+		icm42688_unlock(dev);
 		break;
 	default:
 		res = -ENOTSUP;