1
1
/*
2
2
* Copyright (c) 2023 Google LLC
3
+ * Copyright (c) 2024 Croxel Inc.
3
4
*
4
5
* SPDX-License-Identifier: Apache-2.0
5
6
*/
6
7
7
8
#include <zephyr/drivers/sensor.h>
9
+ #include <zephyr/rtio/work.h>
8
10
#include "icm42688.h"
9
11
#include "icm42688_decoder.h"
10
12
#include "icm42688_reg.h"
@@ -77,9 +79,10 @@ static void icm42688_submit_one_shot(const struct device *dev, struct rtio_iodev
77
79
rtio_iodev_sqe_ok (iodev_sqe , 0 );
78
80
}
79
81
80
- void icm42688_submit ( const struct device * dev , struct rtio_iodev_sqe * iodev_sqe )
82
+ void icm42688_submit_sync ( struct rtio_iodev_sqe * iodev_sqe )
81
83
{
82
84
const struct sensor_read_config * cfg = iodev_sqe -> sqe .iodev -> data ;
85
+ const struct device * dev = cfg -> sensor ;
83
86
84
87
if (!cfg -> is_streaming ) {
85
88
icm42688_submit_one_shot (dev , iodev_sqe );
@@ -90,4 +93,13 @@ void icm42688_submit(const struct device *dev, struct rtio_iodev_sqe *iodev_sqe)
90
93
}
91
94
}
92
95
96
+ void icm42688_submit (const struct device * dev , struct rtio_iodev_sqe * iodev_sqe )
97
+ {
98
+ struct rtio_work_req * req = rtio_work_req_alloc ();
99
+
100
+ __ASSERT_NO_MSG (req );
101
+
102
+ rtio_work_req_submit (req , iodev_sqe , icm42688_submit_sync );
103
+ }
104
+
93
105
BUILD_ASSERT (sizeof (struct icm42688_decoder_header ) == 9 );
0 commit comments