iio: st_accel: use ACPI orientation data
authorDaniel Drake <drake@endlessm.com>
Thu, 20 Dec 2018 06:59:33 +0000 (14:59 +0800)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 2 Feb 2019 09:28:51 +0000 (09:28 +0000)
commitf38ab20b749da84e3df1f8c9240ddc791b0d5983
tree368ad2fe54d27d229bafc0b536dbb3a18b2a1076
parent9bf85fbc9d8f7fe927d47af886846c56ead6d2d3
iio: st_accel: use ACPI orientation data

Platform-specific ST accelerometer mount matrix information can be
provided by returning a package of 6 integers from the ACPI _ONT
method. This has been seen on Acer products such as Veriton Z4860G,
Z6860G and A890, which include a ST SMO8840 sensor. We have also
confirmed experimentally that the Windows driver uses such information.

The _ONT data format was explained by a ST vendor contact. However,
strangely enough, the _ONT transformations must be applied after first
applying another mount matrix which we determined experimentally. ST
have not commented on why this is the case, but we imagine that perhaps
earlier devices (before _ONT was introduced) required this translation
and hence it became 'standard.'

Interpret the _ONT data and export the equivalent mount matrix to
userspace.

If no _ONT data is present, no mount matrix is exported.

Signed-off-by: Daniel Drake <drake@endlessm.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/st_accel_core.c
include/linux/iio/common/st_sensors.h