Re: [PATCH] iio: imu: inv_icm42600: fix timestamp clock period by using lower value
From: Jean-Baptiste Maneyrol
Date: Mon Jul 06 2026 - 04:47:58 EST
>From: Jonathan Cameron <jic23@xxxxxxxxxx>
>Sent: Friday, July 3, 2026 21:02
>To: Jean-Baptiste Maneyrol via B4 Relay
>Cc: Jean-Baptiste Maneyrol; David Lechner; Nuno Sá; Andy Shevchenko; linux-iio@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; stable@xxxxxxxxxxxxxxx
>Subject: Re: [PATCH] iio: imu: inv_icm42600: fix timestamp clock period by using lower value
>
>On Tue, 23 Jun 2026 16: 22: 15 +0200 Jean-Baptiste Maneyrol via B4 Relay <devnull+jean-baptiste. maneyrol. tdk. com@ kernel. org> wrote: > From: Jean-Baptiste Maneyrol <jean-baptiste. maneyrol@ tdk. com> > Sorry for delay - I'm finally
>ZjQcmQRYFpfptBannerStart
>This Message Is From an External Sender
>This message came from outside your organization.
>
>ZjQcmQRYFpfptBannerEnd
>
>On Tue, 23 Jun 2026 16:22:15 +0200
>Jean-Baptiste Maneyrol via B4 Relay <devnull+jean-baptiste.maneyrol.tdk.com@xxxxxxxxxx> wrote:
>
>> From: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@xxxxxxx>
>>
>Sorry for delay - I'm finally getting back on top of my emails (for IIO anyway!)
>
>> Clock period value is used for computing periods of sampling. There is
>> no need for it to be higher than the maximum odr, otherwise we are
>> losing precision in the computation for nothing.
>
>Silly question - what are the user visible results of that precision loss?
>
>Less accurate time stamp estimates, or something else?
>
>Jonathan
>
Hello Jonathan,
that's not a silly question, it will effectively lead to less accurate timestamps.
We are measuring the delta time between 2 interrupts, and for abstracting the ODR
we divide this measurement to go to the configured clock period. Then we compute timestamps by multiplying back this measured clock period. If we divide
too much, we are losing precision. Since maximum ODR is 8kHz, there is no
need to go further than this value. Internal chip clock is 32kHz, but maximum
ODR is 8kHz.
Thanks,
JB
>
>>
>> Switch clock period value to maximum odr period (8kHz).
>>
>> Fixes: 0ecc363ccea7 ("iio: make invensense timestamp module generic")
>> Cc: stable@xxxxxxxxxxxxxxx
>> Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@xxxxxxx>
>
>
>> ---
>> drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 4 ++--
>> drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 4 ++--
>> 2 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
>> index 532d5fdffaf8..7df920ef3cf0 100644
>> --- a/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
>> +++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
>> @@ -1170,10 +1170,10 @@ struct iio_dev *inv_icm42600_accel_init(struct inv_icm42600_state *st)
>> accel_st->filter = INV_ICM42600_FILTER_AVG_16X;
>>
>> /*
>> - * clock period is 32kHz (31250ns)
>> + * clock period is 8kHz (125000ns)
>> * jitter is +/- 2% (20 per mille)
>> */
>> - ts_chip.clock_period = 31250;
>> + ts_chip.clock_period = 125000;
>> ts_chip.jitter = 20;
>> ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr);
>> inv_sensors_timestamp_init(&accel_st->ts, &ts_chip);
>> diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
>> index 11339ddf1da3..a18dcac93929 100644
>> --- a/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
>> +++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
>> @@ -755,10 +755,10 @@ struct iio_dev *inv_icm42600_gyro_init(struct inv_icm42600_state *st)
>> }
>>
>> /*
>> - * clock period is 32kHz (31250ns)
>> + * clock period is 8kHz (125000ns)
>> * jitter is +/- 2% (20 per mille)
>> */
>> - ts_chip.clock_period = 31250;
>> + ts_chip.clock_period = 125000;
>> ts_chip.jitter = 20;
>> ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr);
>> inv_sensors_timestamp_init(&gyro_st->ts, &ts_chip);
>>
>> ---
>> base-commit: cc746297b23e89bd5df9f91f3a0ca209e8991763
>> change-id: 20260623-inv-icm42600-fix-timestamp-clock-period-931338a848c3
>>
>> Best regards,
>> --
>> Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@xxxxxxx>
>>
>>