Hello, accel and gyro are synchronized and are outputting data inside the same hardware FIFO, as inv_icm42600 is doing. The issue is that the sensors have different frequencies, using a header for signaling data availability, thus demultiplexing from userspace is not possible in a standard way. Solution found for inv_icm42600 was to use 2 devices with each one a buffer. FIFO is read, data demultiplexed, and sent in each device. Now that we can have 2 buffers for 1 device, is it simpler to use this solution rather than 2 devices? Thanks for your advice, JB From: Lars-Peter Clausen <lars@xxxxxxxxxx> Sent: Thursday, April 14, 2022 13:19 To: Fawzi Khaber <Fawzi.Khaber@xxxxxxx>; jic23@xxxxxxxxxx <jic23@xxxxxxxxxx> Cc: Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@xxxxxxx>; linux-iio <linux-iio@xxxxxxxxxxxxxxx> Subject: Re: iio: imu new driver [CAUTION] This is EXTERNAL email. Do not click any links or open attachments unless you recognize the sender and know the content is safe. ====================================================================== On 4/14/22 12:35, Fawzi Khaber wrote: > Hello Jonathan, > We are currently implementing a new driver for an invensense chip similar to > iio/imu/inv_icm42600. The chip has 2 sensors a gyroscope and an > accelerometer, and we are wandering if it was better the have two > IIO devices, one for each sensor, or just one IIO device with two buffers. Are these two completely independent sensors that only sit in the same package or do they share a common clock and the data acquisition can be synchronized? If it is the latter the best might be to have a single device with a single buffer. Typical algorithms that process IMU data, like odometry, want to process the accelerator and gyroscope data jointly. If the data gets artificially separated into two buffers it first has to be re-aligned, which might be tricky to do. - Lars