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 >