Re: sysfs mount_matrix for st_lsm6dsx gyro

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

 



Hello Lorenzo,

On Thu, Jan 12, 2023 at 10:51:03AM +0100, Lorenzo Bianconi wrote:
> Date: Thu, 12 Jan 2023 10:51:03 +0100
> From: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>
> To: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> Cc: Philippe De Muyter <phdm@xxxxxxx>, linux-iio@xxxxxxxxxxxxxxx
> Subject: Re: sysfs mount_matrix for st_lsm6dsx gyro
> 
> > 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?

My chip is a 'ism330dlc'.  It's one chip containing an accel and a gyro,
so the mount_matrix should be the same for the accel and the gyro.
Unfortunately the accel and the gyro are presented in /sysfs as two
separate devices, and only the accel one has a 'mount_matrix' entry.
So a user looking for any gyro will find the gyro entry, but without
'mount_matrix'.

I have followed Jonathan's proposal and added this simple patch in
the definition of the ST_LSM6DSX_CHANNEL macro :

diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
index d80ba2e688ed..9d18145d5041 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
@@ -96,6 +96,7 @@ enum st_lsm6dsx_hw_id {
 		.storagebits = 16,                                      \
 		.endianness = IIO_LE,                                   \
	},                                                              \
+	.ext_info = st_lsm6dsx_accel_ext_info,                          \
 }

 struct st_lsm6dsx_reg {

Another fix would be to create only one chip entry in sysfs, but that's
above my knowledge of this driver.

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