Re: [PATCH] iio: imu: inv_icm42600: fix timestamp clock period by using lower value
From: Jonathan Cameron
Date: Fri Jul 03 2026 - 15:02:43 EST
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
>
> 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>
>
>