Re: sysfs mount_matrix for st_lsm6dsx gyro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Wed, 11 Jan 2023 13:09:40 +0100
> Philippe De Muyter <phdm@xxxxxxx> wrote:
> 
> > Hello Lorenzo and list,
> > 
> > I do not find a "*mount_matrix" entry in sysfs for a 'ism330dlc_gyro'
> > iio device.
> > Is that normal ?
> > Is a fix available ?
> 
> Looks like the channel definition for the gyro does not include an
> appropriate ext_info entry unlike the accelerometer channels which
> have one with mount_matrix support.
> 
> From a quick glance looks like a simple fix. Add that entry.

I am not sure if accel and gyro can be mounted with a different orientation.
Do you think we should have a per-sensor mount_matrix?

Regards,
Lorenzo

> > 
> > Some more info :
> > 
> > I have backported  drivers/iio/imu/st_lsm6dsx to linux-4.9 in order
> > to drive a ism330dlc imu on a custom board.  The chip is correctly
> > detected and two devices are created in /sys/bus/iio/devices/
> > 
> > the first one (where name is 'ism330dlc_gyro') has the following entries :
> > 
> >  me@proto4:~$ ls /sys/bus/iio/devices/iio\:device1/
> >  buffer                      in_anglvel_x_raw  sampling_frequency
> >  current_timestamp_clock     in_anglvel_y_raw  sampling_frequency_available
> >  dev                         in_anglvel_z_raw  scan_elements
> >  in_anglvel_scale            name              subsystem
> >  in_anglvel_scale_available  power             uevent
> >  me@proto4:~$
> > 
> > the second one (where name is 'ism330dlc_accel') has those entries :
> > 
> >  me@proto4:~$ ls /sys/bus/iio/devices/iio\:device2
> >  buffer                    in_accel_x_raw  sampling_frequency
> >  current_timestamp_clock   in_accel_y_raw  sampling_frequency_available
> >  dev                       in_accel_z_raw  scan_elements
> >  events                    mount_matrix    subsystem
> >  in_accel_scale            name            uevent
> >  in_accel_scale_available  power
> >  me@proto4:~$
> > 
> > The 'mount_matrix' entry is only present in the 'ism330dlc_accel' device
> > but not in the 'ism330dlc_gyro' device.
> > 
> > On a similar board, but with mpu9250 imu, I get only one iio:deviceX
> > entry but with two *mount_matrix entries : 
> > 
> > 	in_accel_mount_matrix
> > 	in_anglvel_mount_matrix
> > 
> > In both cases, I would have expected only one 'iio:deviceX' entry with
> > only one 'mount_matrix' entry.
> 
> There are multiple devices because the driver predates the addition
> of multiple buffer support to IIO and IIRC is capable of producing data
> at different sampling rates for the accelerometer and the gyros.
> Hence when it was implemented the only choice was to register multiple
> devices in order to get the multiple buffers. It's ABI now so we can't
> fix it in an old driver unfortunately.  We'd do this differently today..
> 
> The double mount_matrix for the mpu9250 is a little odd and I can't
> immediately spot why that one is happening.
> 
> 
> > 
> > Best regards
> > 
> > Philippe
> > 
> 

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux