[Gta04-owner] Linux 3.2-rc3 on GTA04

Dr. H. Nikolaus Schaller hns at goldelico.com
Mon Nov 28 07:06:44 CET 2011


Am 28.11.2011 um 01:32 schrieb NeilBrown:

> On Sat, 26 Nov 2011 13:16:06 +0100 Christoph Mair <christoph.mair at gmail.com>
> wrote:
> 
>> On Sat, Nov 26, 2011 at 12:43 PM, NeilBrown <neilb at suse.de> wrote:
>>>  I have just updated
>>>    git://neil.brown.name/gta04#merge
>>> 
>>>  to 3.2-rc3.
>>> 
>>>  Also in this release:
>>> 
>>>  - Fixed the charging problem - I think [1]
>>>  - We now charge the backup-battery.
>>>  - Brand new driver for the LEDs (tca6507] [2]
>>>  - Backlight control with PWM - untested [3]
>> 
>> Thank you for all the efforts! Cloning now...
>> 
>>> Future plans:
>>>  - I want to look at the accelerometers as the next project.  Part of this is
>>>   understanding the "iio" subsystem which seems to be the appropriate home.
>> Or the input subsystem. There is already a bma150 driver in
>> input/misc. The GTA04 uses the BMA180. They may behave similar..
> 
> Or maybe both.
> 
> The BMA150 does seem very similar to the BMA180.  It has a different set of
> bandwidths and sensitivities but the important details are much the same.
> 
> However that driver doesn't do what I think is needed of an input driver at
> all.
> 
> For me, the stream of x/y/z values (which is what that driver provides) is
> largely uninteresting.
> What I want to know is 
>  when does the acceleration in any given direction change by more than Xg for
>  at least Ysecs.
> This allows the app to know when there has been a significant change in
> orientation.
> Also
>  when was the device 'tapped' from any of the 6 directions.
> which effectively provides 6 more hardware 'buttons'.
> 
> 
> All of this is provided by the BMA1X0 hardware (and the lis302 hardware in
> the freerunner) but the driver doesn't provide easy access to it.
> 
> So I imagine a driver that provides both an 'input' interface and an 'iio'
> interface.
> The 'input' interface that provides EV_KEY events of BTN_X BTN_Y BTN_Z on taps
> and EV_ABS events of ABS_X ABS_Y ABS_Z whenever that has been a "sufficiently
> large" change.
> 
> The 'iio' interface would provide the steam of x/y/z data and allow the
> different trigger thresholds to be set.
> The 'iio' interface can provide events somewhat similar to input but I don't
> see the point of doing that when 'input' is already well-understood.
> Thought maybe when I try I'll find out why...

Maybe we should keep the x/y/z data stream in one driver and recognizing
(primitive) gestures (sudden changes) within this data streams in another one.

My first idea is to compare it to GPIOs. There is a GPIO driver which can map
gpios to user space so we can check their state. Or, there is a gpio_keys input
driver which maps a gpio to a keyboard event. Which ones is defined by the
board file.

So that would be sort of drivers/input/keyboard/accelerometer.c And some
platform data to configure it.

Nikolaus



More information about the Gta04-owner mailing list