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