Message ID | 20240722113137.3240847-1-absicsz@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ARM: dts: omap3-n900: correct the accelerometer orientation | expand |
On Mon, Jul 22, 2024 at 01:31:11PM +0200, Sicelo A. Mhlongo wrote: > 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 <absicsz@gmail.com> > --- > arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/ti/omap/omap3-n900.dts b/arch/arm/boot/dts/ti/omap/omap3-n900.dts > index 07c5b963af78..4bde3342bb95 100644 > --- 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 { > > mount-matrix = "-1", "0", "0", > "0", "1", "0", > - "0", "0", "1"; > + "0", "0", "-1"; > }; > > cam1: camera@3e { > -- > 2.45.2 > CC: Aaro Koskinen <aaro.koskinen@iki.fi>, Andreas Kemnade <andreas@kemnade.info>
On Sat, 27 Jul 2024 20:41:20 +0200 Sicelo <absicsz@gmail.com> wrote: > On Mon, Jul 22, 2024 at 01:31:11PM +0200, Sicelo A. Mhlongo wrote: > > 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 <absicsz@gmail.com> > > --- > > arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/arm/boot/dts/ti/omap/omap3-n900.dts > > b/arch/arm/boot/dts/ti/omap/omap3-n900.dts index > > 07c5b963af78..4bde3342bb95 100644 --- > > 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 { > > mount-matrix = "-1", "0", "0", > > "0", "1", "0", > > - "0", "0", "1"; > > + "0", "0", "-1"; > > }; > > > > cam1: camera@3e { > > -- > > 2.45.2 > > > > CC: Aaro Koskinen <aaro.koskinen@iki.fi>, Andreas Kemnade > <andreas@kemnade.info> > 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 On Sun, Jul 28, 2024 at 10:06:58AM +0200, Andreas Kemnade wrote: > > On Mon, Jul 22, 2024 at 01:31:11PM +0200, Sicelo A. Mhlongo wrote: > > > 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 <absicsz@gmail.com> > > > --- > > > arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/arch/arm/boot/dts/ti/omap/omap3-n900.dts > > > b/arch/arm/boot/dts/ti/omap/omap3-n900.dts index > > > 07c5b963af78..4bde3342bb95 100644 --- > > > 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 { > > > mount-matrix = "-1", "0", "0", > > > "0", "1", "0", > > > - "0", "0", "1"; > > > + "0", "0", "-1"; > > > }; > > > > > > cam1: camera@3e { > > > -- > > > 2.45.2 > > > > > > > CC: Aaro Koskinen <aaro.koskinen@iki.fi>, Andreas Kemnade > > <andreas@kemnade.info> > > > 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
On Mon, 29 Jul 2024 22:40:22 +0200 Sicelo <absicsz@gmail.com> wrote: > Hello Andreas > > On Sun, Jul 28, 2024 at 10:06:58AM +0200, Andreas Kemnade wrote: > > > On Mon, Jul 22, 2024 at 01:31:11PM +0200, Sicelo A. Mhlongo > > > wrote: > > > > 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 <absicsz@gmail.com> > > > > --- > > > > arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/arch/arm/boot/dts/ti/omap/omap3-n900.dts > > > > b/arch/arm/boot/dts/ti/omap/omap3-n900.dts index > > > > 07c5b963af78..4bde3342bb95 100644 --- > > > > 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 { > > > > mount-matrix = "-1", "0", "0", > > > > "0", "1", "0", > > > > - "0", "0", "1"; > > > > + "0", "0", "-1"; > > > > }; > > > > > > > > cam1: camera@3e { > > > > -- > > > > 2.45.2 > > > > > > > > > > CC: Aaro Koskinen <aaro.koskinen@iki.fi>, Andreas Kemnade > > > <andreas@kemnade.info> > > > > > 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. > 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 Reviewed-By: Andreas Kemnade <andreas@kemnade.info>
On Mon, 22 Jul 2024 13:31:11 +0200, Sicelo A. Mhlongo wrote: > 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,
diff --git a/arch/arm/boot/dts/ti/omap/omap3-n900.dts b/arch/arm/boot/dts/ti/omap/omap3-n900.dts index 07c5b963af78..4bde3342bb95 100644 --- 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 { mount-matrix = "-1", "0", "0", "0", "1", "0", - "0", "0", "1"; + "0", "0", "-1"; }; cam1: camera@3e {
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 <absicsz@gmail.com> --- arch/arm/boot/dts/ti/omap/omap3-n900.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)