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.
> 
> 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
> 




[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