ARM: dts: omap3-n900: correct the accelerometer orientation
Subsystems (2)
PATCH 1/1 ARM: dts: omap3-n900: correct the accelerometer orientation
Negate the values reported for the accelerometer z-axis in order to match Documentation/devicetree/bindings/iio/mount-matrix.txt.
--- arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/ti/omap/omap3-n900.dts +1 -1
@@ -781,7 +781,7 @@ accelerometer@1d { mount-matrix = "-1", "0", "0", "0", "1", "0", - "0", "0", "1"; + "0", "0", "-1"; }; cam1: camera@3e {
Signature · 1 line
2.45.2
Quoted 26 lines · Sicelo A. Mhlongo
Negate the values reported for the accelerometer z-axis in order to match
Documentation/devicetree/bindings/iio/mount-matrix.txt.Fixes 14a213dcb004 ("ARM: dts: n900: use iio driver for accelerometer")Signed-off-by Sicelo A. Mhlongo <[email protected]>--- arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/boot/dts/ti/omap/omap3-n900.dts +1
-1@@ -781,7 +781,7 @@ accelerometer@1d { mount-matrix = "-1", "0", "0", "0", "1", "0", - "0", "0", "1"; + "0", "0", "-1"; }; cam1: camera@3e {Signature · 1 line
2.45.2
Andreas Kemnade
maintainerQuoted 24 lines · On Sat, 27 Jul 2024 20:41:20 +0200 Sicelo <[email protected]> wrote:
Quoted 23 lines · Sicelo A. Mhlongo
Negate the values reported for the accelerometer z-axis in order to match
Documentation/devicetree/bindings/iio/mount-matrix.txt.Fixes 14a213dcb004 ("ARM: dts: n900: use iio driver foraccelerometer")
Signed-off-by Sicelo A. Mhlongo <[email protected]>--- arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)(quoted diff) +0
-0
b/arch/arm/boot/dts/ti/omap/omap3-n900.dtsindex07c5b963af78..4bde3342bb95100644 ---a/arch/arm/boot/dts/ti/omap/omap3-n900.dts+++b/arch/arm/boot/dts/ti/omap/omap3-n900.dts@@ -781,7 +781,7 @@ accelerometer@1d {arch/arm/boot/dts/ti/omap/omap3-n900.dts +1
-1mount-matrix = "-1", "0", "0", "0", "1", "0", - "0", "0", "1"; + "0", "0", "-1"; };
Quoted 8 lines
Quoted 4 lines
cam1: camera@3e {
Signature · 1 line
2.45.2CC: Aaro Koskinen <[email protected]>, Andreas Kemnade <[email protected]>
I would expect it to be a rotation matrix but it is not. So maybe this should be fixed in,the driver?
Regards
Andreas
Hello Andreas
Quoted 32 lines · Andreas Kemnade
Quoted 24 lines · Sicelo A. Mhlongo
Quoted 23 lines
Negate the values reported for the accelerometer z-axis in order to match
Documentation/devicetree/bindings/iio/mount-matrix.txt.Fixes 14a213dcb004 ("ARM: dts: n900: use iio driver foraccelerometer")
Signed-off-by Sicelo A. Mhlongo <[email protected]>--- arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)(quoted diff) +0
-0
b/arch/arm/boot/dts/ti/omap/omap3-n900.dtsindex07c5b963af78..4bde3342bb95100644 ---a/arch/arm/boot/dts/ti/omap/omap3-n900.dts+++b/arch/arm/boot/dts/ti/omap/omap3-n900.dts@@ -781,7 +781,7 @@ accelerometer@1d {arch/arm/boot/dts/ti/omap/omap3-n900.dts +1
-1mount-matrix = "-1", "0", "0", "0", "1", "0", - "0", "0", "1"; + "0", "0", "-1"; };Quoted 8 lines
Quoted 4 lines
cam1: camera@3e {
Signature · 1 line
2.45.2CC: Aaro Koskinen <[email protected]>, Andreas Kemnade <[email protected]>
Quoted 2 lines
I would expect it to be a rotation matrix but it is not. So maybe this should be fixed in,the driver?
The mount matrix is documented in the kernel docs [1], and this patch implements the suggestion that the z-axis should "be negative under the screen and positive in front of it, toward the face of the user."
On the N900, the accelerometer is mounted such that the raw z-values are opposite to the specification in the kernel docs. The driver itself seems to be correct, and is used on a number of other boards (such as Motorola Droid 4), reporting expected values when used in conjuction with mount matrices.
There is not a lot of userspace that uses accelerometer z-axis information, hence I could not perform thorough testing for the z-values when I submitted 14a213dcb004 ("ARM: dts: n900: use iio driver for accelerometer"). The error became evident when Maemo Leste gained support for face up and face down device states [2]. With the patch in this thread, userspace reports correct face up/down information.
I hope I have not misunderstood your reply, and please let me know if I am missing something.
Sicelo A. Mhlongo
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/iio/mount-matrix.txt#n31
[2] https://github.com/maemo-leste/mce/commit/0dac5a7e4286b5e9a4dafc627c49cef8cc92f092
Quoted 44 lines · On Mon, 29 Jul 2024 22:40:22 +0200 Sicelo <[email protected]> wrote:
Hello Andreas
Quoted 34 lines · Andreas Kemnade
Quoted 26 lines
Quoted 24 lines · Sicelo A. Mhlongo
Negate the values reported for the accelerometer z-axis in order to match
Documentation/devicetree/bindings/iio/mount-matrix.txt.Fixes 14a213dcb004 ("ARM: dts: n900: use iio driver foraccelerometer")
Signed-off-by Sicelo A. Mhlongo <[email protected]>--- arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)(quoted diff) +0
-0
b/arch/arm/boot/dts/ti/omap/omap3-n900.dtsindex07c5b963af78..4bde3342bb95100644 ---a/arch/arm/boot/dts/ti/omap/omap3-n900.dts+++b/arch/arm/boot/dts/ti/omap/omap3-n900.dts@@ -781,7 +781,7 @@ accelerometer@1d {arch/arm/boot/dts/ti/omap/omap3-n900.dts +1
-1mount-matrix = "-1", "0", "0", "0", "1", "0", - "0", "0", "1"; + "0", "0", "-1"; };Quoted 8 lines
Quoted 4 lines
cam1: camera@3e {
Signature · 1 line
2.45.2CC: Aaro Koskinen <[email protected]>, Andreas Kemnade <[email protected]>
Quoted 2 lines
I would expect it to be a rotation matrix but it is not. So maybe this should be fixed in,the driver?
The mount matrix is documented in the kernel docs [1], and this patch implements the suggestion that the z-axis should "be negative under the screen and positive in front of it, toward the face of the user."
Quoted 6 lines
On the N900, the accelerometer is mounted such that the raw z-values are opposite to the specification in the kernel docs. The driver itself seems to be correct, and is used on a number of other boards (such as Motorola Droid 4), reporting expected values when used in conjuction with mount matrices.
Ok, I did not notice the other -1. It was mirroring before and now it is a clear 180 deg turn on the y-axis.
So
Quoted 6 lines · Sicelo A. Mhlongo
Negate the values reported for the accelerometer z-axis in order to match
Documentation/devicetree/bindings/iio/mount-matrix.txt.Fixes 14a213dcb004 ("ARM: dts: n900: use iio driver for accelerometer")
Applied, thanks!
[1/1] ARM: dts: omap3-n900: correct the accelerometer orientation
commit: 5062d9c0cbbc202e495e9b20f147f64ef5cc2897
Best regards,
Signature · 1 line
Kevin Hilman <[email protected]>