diff mbox series

ARM: dts: omap3-n900: correct the accelerometer orientation

Message ID 20240722113137.3240847-1-absicsz@gmail.com
State New
Headers show
Series ARM: dts: omap3-n900: correct the accelerometer orientation | expand

Commit Message

Sicelo A. Mhlongo July 22, 2024, 11:31 a.m. UTC
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(-)

Comments

Sicelo A. Mhlongo July 27, 2024, 6:41 p.m. UTC | #1
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>
Andreas Kemnade July 28, 2024, 8:06 a.m. UTC | #2
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
Sicelo A. Mhlongo July 29, 2024, 8:40 p.m. UTC | #3
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
Andreas Kemnade Aug. 1, 2024, 6:14 a.m. UTC | #4
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>
Kevin Hilman Aug. 5, 2024, 6:08 p.m. UTC | #5
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 mbox series

Patch

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 {