:: Re: [maemo-leste] [PATCH] ARM: dts:…
Top Page
Delete this message
Reply to this message
Author: Sicelo
Date:  
To: Andreas Kemnade
CC: tony, linux-omap, maemo-leste, robh, krzk+dt, conor+dt, devicetree, Aaro Koskinen
Subject: Re: [maemo-leste] [PATCH] ARM: dts: omap3-n900: correct the accelerometer orientation
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@???>
> > > ---
> > > 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@???>, Andreas Kemnade
> > <andreas@???>
> >
> 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