diff mbox series

iio: imu: st_lsm6dsx: enable 833Hz sample frequency for tagged sensors

Message ID 81e5660e7b7755346efefdd90f721a4b0cd63726.1587724988.git.lorenzo@kernel.org (mailing list archive)
State New, archived
Headers show
Series iio: imu: st_lsm6dsx: enable 833Hz sample frequency for tagged sensors | expand

Commit Message

Lorenzo Bianconi April 24, 2020, 10:44 a.m. UTC
Enable 833Hz ODR for sensors that supports tagged hw FIFO:
- LSM6DSO/LSM6DSOX
- LSM6DSR/LSM6DSRX
- ASM330LHH

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 21 +++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

Comments

Jonathan Cameron April 25, 2020, 5:05 p.m. UTC | #1
On Fri, 24 Apr 2020 12:44:38 +0200
Lorenzo Bianconi <lorenzo@kernel.org> wrote:

> Enable 833Hz ODR for sensors that supports tagged hw FIFO:
> - LSM6DSO/LSM6DSOX
> - LSM6DSR/LSM6DSRX
> - ASM330LHH
> 
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Would ideally have liked a little more info on the 'why'.  Was this previously
capped by practicality - i.e. not possible to read faster or is there
something else going on here?

Don't really need to know for the applied patch though so
Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.

Thanks,

Jonathan

> ---
>  drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 21 +++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> index 84d219ae6aee..e6339bbb4469 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> @@ -27,7 +27,8 @@
>   *   - FIFO size: 4KB
>   *
>   * - LSM6DSO/LSM6DSOX/ASM330LHH/LSM6DSR/ISM330DHCX:
> - *   - Accelerometer/Gyroscope supported ODR [Hz]: 13, 26, 52, 104, 208, 416
> + *   - Accelerometer/Gyroscope supported ODR [Hz]: 13, 26, 52, 104, 208, 416,
> + *     833
>   *   - Accelerometer supported full-scale [g]: +-2/+-4/+-8/+-16
>   *   - Gyroscope supported full-scale [dps]: +-125/+-245/+-500/+-1000/+-2000
>   *   - FIFO size: 3KB
> @@ -791,7 +792,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
>  				.odr_avl[3] = { 104000, 0x04 },
>  				.odr_avl[4] = { 208000, 0x05 },
>  				.odr_avl[5] = { 416000, 0x06 },
> -				.odr_len = 6,
> +				.odr_avl[6] = { 833000, 0x07 },
> +				.odr_len = 7,
>  			},
>  			[ST_LSM6DSX_ID_GYRO] = {
>  				.reg = {
> @@ -804,7 +806,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
>  				.odr_avl[3] = { 104000, 0x04 },
>  				.odr_avl[4] = { 208000, 0x05 },
>  				.odr_avl[5] = { 416000, 0x06 },
> -				.odr_len = 6,
> +				.odr_avl[6] = { 833000, 0x07 },
> +				.odr_len = 7,
>  			},
>  		},
>  		.fs_table = {
> @@ -994,7 +997,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
>  				.odr_avl[3] = { 104000, 0x04 },
>  				.odr_avl[4] = { 208000, 0x05 },
>  				.odr_avl[5] = { 416000, 0x06 },
> -				.odr_len = 6,
> +				.odr_avl[6] = { 833000, 0x07 },
> +				.odr_len = 7,
>  			},
>  			[ST_LSM6DSX_ID_GYRO] = {
>  				.reg = {
> @@ -1007,7 +1011,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
>  				.odr_avl[3] = { 104000, 0x04 },
>  				.odr_avl[4] = { 208000, 0x05 },
>  				.odr_avl[5] = { 416000, 0x06 },
> -				.odr_len = 6,
> +				.odr_avl[6] = { 833000, 0x07 },
> +				.odr_len = 7,
>  			},
>  		},
>  		.fs_table = {
> @@ -1171,7 +1176,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
>  				.odr_avl[3] = { 104000, 0x04 },
>  				.odr_avl[4] = { 208000, 0x05 },
>  				.odr_avl[5] = { 416000, 0x06 },
> -				.odr_len = 6,
> +				.odr_avl[6] = { 833000, 0x07 },
> +				.odr_len = 7,
>  			},
>  			[ST_LSM6DSX_ID_GYRO] = {
>  				.reg = {
> @@ -1184,7 +1190,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
>  				.odr_avl[3] = { 104000, 0x04 },
>  				.odr_avl[4] = { 208000, 0x05 },
>  				.odr_avl[5] = { 416000, 0x06 },
> -				.odr_len = 6,
> +				.odr_avl[6] = { 833000, 0x07 },
> +				.odr_len = 7,
>  			},
>  		},
>  		.fs_table = {
Lorenzo Bianconi April 26, 2020, 2:28 p.m. UTC | #2
>
> On Fri, 24 Apr 2020 12:44:38 +0200
> Lorenzo Bianconi <lorenzo@kernel.org> wrote:
>
> > Enable 833Hz ODR for sensors that supports tagged hw FIFO:
> > - LSM6DSO/LSM6DSOX
> > - LSM6DSR/LSM6DSRX
> > - ASM330LHH
> >
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> Would ideally have liked a little more info on the 'why'.  Was this previously
> capped by practicality - i.e. not possible to read faster or is there
> something else going on here?

Hi Jonathan,

you are right sorry, the commit log can be improved :)
Actually AFAIK aosp CTS requires 800Hz as sampling frequency for accel
and gyro (but I am out of it for a while now so I can be wrong).
Anyway I tested it and it works fine, so why not? :)

Regards,
Lorenzo

>
> Don't really need to know for the applied patch though so
> Applied to the togreg branch of iio.git and pushed out as testing
> for the autobuilders to play with it.
>
> Thanks,
>
> Jonathan
>
> > ---
> >  drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 21 +++++++++++++-------
> >  1 file changed, 14 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> > index 84d219ae6aee..e6339bbb4469 100644
> > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> > @@ -27,7 +27,8 @@
> >   *   - FIFO size: 4KB
> >   *
> >   * - LSM6DSO/LSM6DSOX/ASM330LHH/LSM6DSR/ISM330DHCX:
> > - *   - Accelerometer/Gyroscope supported ODR [Hz]: 13, 26, 52, 104, 208, 416
> > + *   - Accelerometer/Gyroscope supported ODR [Hz]: 13, 26, 52, 104, 208, 416,
> > + *     833
> >   *   - Accelerometer supported full-scale [g]: +-2/+-4/+-8/+-16
> >   *   - Gyroscope supported full-scale [dps]: +-125/+-245/+-500/+-1000/+-2000
> >   *   - FIFO size: 3KB
> > @@ -791,7 +792,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
> >                               .odr_avl[3] = { 104000, 0x04 },
> >                               .odr_avl[4] = { 208000, 0x05 },
> >                               .odr_avl[5] = { 416000, 0x06 },
> > -                             .odr_len = 6,
> > +                             .odr_avl[6] = { 833000, 0x07 },
> > +                             .odr_len = 7,
> >                       },
> >                       [ST_LSM6DSX_ID_GYRO] = {
> >                               .reg = {
> > @@ -804,7 +806,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
> >                               .odr_avl[3] = { 104000, 0x04 },
> >                               .odr_avl[4] = { 208000, 0x05 },
> >                               .odr_avl[5] = { 416000, 0x06 },
> > -                             .odr_len = 6,
> > +                             .odr_avl[6] = { 833000, 0x07 },
> > +                             .odr_len = 7,
> >                       },
> >               },
> >               .fs_table = {
> > @@ -994,7 +997,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
> >                               .odr_avl[3] = { 104000, 0x04 },
> >                               .odr_avl[4] = { 208000, 0x05 },
> >                               .odr_avl[5] = { 416000, 0x06 },
> > -                             .odr_len = 6,
> > +                             .odr_avl[6] = { 833000, 0x07 },
> > +                             .odr_len = 7,
> >                       },
> >                       [ST_LSM6DSX_ID_GYRO] = {
> >                               .reg = {
> > @@ -1007,7 +1011,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
> >                               .odr_avl[3] = { 104000, 0x04 },
> >                               .odr_avl[4] = { 208000, 0x05 },
> >                               .odr_avl[5] = { 416000, 0x06 },
> > -                             .odr_len = 6,
> > +                             .odr_avl[6] = { 833000, 0x07 },
> > +                             .odr_len = 7,
> >                       },
> >               },
> >               .fs_table = {
> > @@ -1171,7 +1176,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
> >                               .odr_avl[3] = { 104000, 0x04 },
> >                               .odr_avl[4] = { 208000, 0x05 },
> >                               .odr_avl[5] = { 416000, 0x06 },
> > -                             .odr_len = 6,
> > +                             .odr_avl[6] = { 833000, 0x07 },
> > +                             .odr_len = 7,
> >                       },
> >                       [ST_LSM6DSX_ID_GYRO] = {
> >                               .reg = {
> > @@ -1184,7 +1190,8 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
> >                               .odr_avl[3] = { 104000, 0x04 },
> >                               .odr_avl[4] = { 208000, 0x05 },
> >                               .odr_avl[5] = { 416000, 0x06 },
> > -                             .odr_len = 6,
> > +                             .odr_avl[6] = { 833000, 0x07 },
> > +                             .odr_len = 7,
> >                       },
> >               },
> >               .fs_table = {
>
diff mbox series

Patch

diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index 84d219ae6aee..e6339bbb4469 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -27,7 +27,8 @@ 
  *   - FIFO size: 4KB
  *
  * - LSM6DSO/LSM6DSOX/ASM330LHH/LSM6DSR/ISM330DHCX:
- *   - Accelerometer/Gyroscope supported ODR [Hz]: 13, 26, 52, 104, 208, 416
+ *   - Accelerometer/Gyroscope supported ODR [Hz]: 13, 26, 52, 104, 208, 416,
+ *     833
  *   - Accelerometer supported full-scale [g]: +-2/+-4/+-8/+-16
  *   - Gyroscope supported full-scale [dps]: +-125/+-245/+-500/+-1000/+-2000
  *   - FIFO size: 3KB
@@ -791,7 +792,8 @@  static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
 				.odr_avl[3] = { 104000, 0x04 },
 				.odr_avl[4] = { 208000, 0x05 },
 				.odr_avl[5] = { 416000, 0x06 },
-				.odr_len = 6,
+				.odr_avl[6] = { 833000, 0x07 },
+				.odr_len = 7,
 			},
 			[ST_LSM6DSX_ID_GYRO] = {
 				.reg = {
@@ -804,7 +806,8 @@  static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
 				.odr_avl[3] = { 104000, 0x04 },
 				.odr_avl[4] = { 208000, 0x05 },
 				.odr_avl[5] = { 416000, 0x06 },
-				.odr_len = 6,
+				.odr_avl[6] = { 833000, 0x07 },
+				.odr_len = 7,
 			},
 		},
 		.fs_table = {
@@ -994,7 +997,8 @@  static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
 				.odr_avl[3] = { 104000, 0x04 },
 				.odr_avl[4] = { 208000, 0x05 },
 				.odr_avl[5] = { 416000, 0x06 },
-				.odr_len = 6,
+				.odr_avl[6] = { 833000, 0x07 },
+				.odr_len = 7,
 			},
 			[ST_LSM6DSX_ID_GYRO] = {
 				.reg = {
@@ -1007,7 +1011,8 @@  static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
 				.odr_avl[3] = { 104000, 0x04 },
 				.odr_avl[4] = { 208000, 0x05 },
 				.odr_avl[5] = { 416000, 0x06 },
-				.odr_len = 6,
+				.odr_avl[6] = { 833000, 0x07 },
+				.odr_len = 7,
 			},
 		},
 		.fs_table = {
@@ -1171,7 +1176,8 @@  static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
 				.odr_avl[3] = { 104000, 0x04 },
 				.odr_avl[4] = { 208000, 0x05 },
 				.odr_avl[5] = { 416000, 0x06 },
-				.odr_len = 6,
+				.odr_avl[6] = { 833000, 0x07 },
+				.odr_len = 7,
 			},
 			[ST_LSM6DSX_ID_GYRO] = {
 				.reg = {
@@ -1184,7 +1190,8 @@  static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
 				.odr_avl[3] = { 104000, 0x04 },
 				.odr_avl[4] = { 208000, 0x05 },
 				.odr_avl[5] = { 416000, 0x06 },
-				.odr_len = 6,
+				.odr_avl[6] = { 833000, 0x07 },
+				.odr_len = 7,
 			},
 		},
 		.fs_table = {