[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cpu on post feb. 2005 Powerbook: patch does not work



On Tue, 2005-03-29 at 09:57 +0100, Jochen Voss wrote:
> Hello Johannes,
> 
> On Tue, Mar 29, 2005 at 07:30:12AM +0200, Johannes Berg wrote:
> > Jochen: You might want to add to your page that so far we don't know how
> > the acceleration sensor can be queried, it is reportedly I2C but I know
> > nothing else.
> Yes, now the the machine runs at full speed I may add minor issues
> to my list.
> 
> > Or does anyone know how the acceleration sensor can be queried?
> I do not know any details, but under MacOS X someone managed to write
> a fancy program which stabilises a window (i.e. the window does not
> turn when you physically turn your laptop to the side).  From his
> webpage I got the impression that it was not so difficult to figure out.
> There seem to be three sensors, two measuring the angle around the
> x and y axes (spanning the plane the keyboard is in) and the third
> measuring the acceleration in z direction.
> 
> Maybe accessing the following devices in a sensible way may just work?

It's possible that the Apple driver just puts the sensor values in the
IO Registery in which case the app just read them there... or not.
Another option is to do a bit of disassembling of the MacOS driver :)

> voss@quiche [/proc/device-tree] find . | grep accelerometer
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/name
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/device_type
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/compatible
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/built-in
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/reg
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/#address-cells
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/#size-cells
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/platform-accel-int-1
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/platform-accel-int-2
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/orientation
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer@b0/linux,phandle
> uni-n@f8000000/i2c@f8001000/i2c-bus@1/accelerometer

The above is the main i2c device

> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/name
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/device_type
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/reg
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/built-in
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/compatible
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/interrupts
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/interrupt-parent
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/platform-do-accel-int-1
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1@13/linux,phandle
> pci@f2000000/mac-io@17/gpio@50/accelerometer-1
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/name
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/device_type
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/reg
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/built-in
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/compatible
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/interrupts
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/interrupt-parent
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/platform-do-accel-int-2
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2@14/linux,phandle
> pci@f2000000/mac-io@17/gpio@50/accelerometer-2
> 
> Hmmm, maybe this is only two of these devices?

No, the 2 things above are GPIOs (general purpose IO pins), that
apparently are used as interrupts. I suspect the accelerometer can be
configure to send an interrupt when a certain threshold is attained, and
those interrupts are sent via those 2 GPIO pins.

> All the best,
> Jochen
-- 
Benjamin Herrenschmidt <benh@kernel.crashing.org>



Reply to: