iio sensor mounting matrix support
Status from this message: Applied, thanks,
Get series with b4
b4 am [email protected]Versions newest first
Patches in v1 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/3 | iio:core: mounting matrix supportDocumentation/ drivers/ include/ | +164 | 1 reply | |
| 2/3 | iio:ak8975: add mounting matrix supportDocumentation/ drivers/ include/ | +56 | 2 replies | |
| 3/3 | iio:imu:mpu6050: enhance mounting matrix supportDocumentation/ Documentation/ drivers/ +2 more | +55 | 2 replies |
Reviews trailers per patch
2 of 3 patches have a Reviewed-by or Acked-by.
| Patch | Rob Herring |
|---|---|
| 1/3 | |
| 2/3 | A-b |
| 3/3 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v1 0/3] iio sensor mounting matrix support
This patch series follows up on Rob Herring and Jonathan Cameron comments about ak8975 magnetometer mounting matrix support. Thread starts here:
http://www.spinics.net/lists/devicetree/msg121646.html
As a recall, we want to expose a rotation matrix to indicate userspace the chip placement with respect to the overall hardware system. This allows an application to adjust coordinates sampled from a sensor chip when its position deviates from the main hardware system.
Rob mentionned that the interface could be appropriate for other sensors such as gyro, accelero, etc... This would prevent from "ending up with a bunch of similar yet different interfaces".
Requirements:
1. delegate computation to userspace ;
2. floating point arithmetics support ;
3. per sample type matrix ;
4. remain compliant with legacy interface (mpu6050).
Point 1. above allows application to perform arbitrary transformations in addition to sensor alignment handling.
Point 2. is required for flexible chip positioning.
Point 3. comes from the fact that chips, such as ADIS16407, may implement different axis direction references for each measurement space.
See http://www.analog.com/media/en/technical-documentation/data-sheets/ADIS16407.pdf
Implementation relies upon generic extended channel infos, coming with following additional benefits :
* clearly structure sysfs attributes according to IIO ABI conventions,
* limit proliferation of arbitrary driver sysfs attributes,
* reduce amount of per driver code.
We should end up with something like the following for a magneto + gyro + accelero + temperature chip :
iio:deviceX/in_anglvel_mount_matrix, applicable to all 3 gyro channels iio:deviceX/in_accel_mount_matrix, applicable to all 3 accelero channels iio:deviceX/in_magn_mount_matrix, applicable to all 3 magneto channels Here mount matrix attribute is channel type specific. It is not applicable to temperature channel.
Another case such as the ak8975 magneto driver modified in patch 2 would show a simpler:
iio:deviceX/in_mount_matrix, applicable to all 3 magneto channels. Here mount matrix attribute is channel direction specific and applicable to all channels.
Last patch relates to mpu6050 mounting matrix evolutions : legacy attribute was extracted from platform_data. For sake of simplicity and as platform data mechanism is becoming more and more "obsolete", New mounting matrix API support is implemented for device-tree nodes only.
Best regards,
gregor.
Gregor Boirie (3):
iio:core: mounting matrix support iio:ak8975: add mounting matrix support iio:imu:mpu6050: enhance mounting matrix support
Documentation/ABI/testing/sysfs-bus-iio | 53 ++++++++++++++ .../devicetree/bindings/iio/imu/inv_mpu6050.txt | 13 ++++ .../bindings/iio/magnetometer/ak8975.txt | 10 +++ drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 36 +++++++++- drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 4 +- drivers/iio/industrialio-core.c | 82 ++++++++++++++++++++++ drivers/iio/magnetometer/ak8975.c | 34 +++++++-- include/linux/iio/iio.h | 31 ++++++++ include/linux/iio/magnetometer/ak8975.h | 16 +++++ include/linux/platform_data/invensense_mpu6050.h | 5 +- 10 files changed, 275 insertions(+), 9 deletions(-) create mode 100644 include/linux/iio/magnetometer/ak8975.h
Signature · 1 line
2.1.4