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 |
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 = {
> > 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 --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 = {
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(-)