Hi! We're discussing a clarification of the content license; please look over to Current events if you're interested in editing.

Raphael Navi

From Htc-linux

Jump to: navigation, search

There are 5 hard buttons on the navi: Up, Down, entire Left section, entire Right section, Action. Can use gpio_event_matrix to map these 5 buttons along with Volume controls

[edit] I2C

See RaphaelMicroP for LED behaviors

The I2C id is 0x62 (0xc4>>1)

Read 18 bytes from data address 0x1

byte value description
0 11 Action "quadrant"
22 Left quadrant
44 Directional "ring"
88 Right quadrant
(combined) multiple simultaneous quadrants
+01 00 - 44 \"x\" coordinate in Left section
ff Not in left section
+02 00 - 44 \"y\" coordinate in Left section
ff Not in left section
+03 00 - 0f Left on ring
10 - 1f Up on ring
20 - 2f Right on ring
30 - 3f Down on ring
ff Not touching ring
+04 00 No function ??
+05 00 - 44 OR ff "x" coordinate in Right section
+06 00 - 44 "y" coordinate in Right section
ff Not in right section
-- -- --
Unconfirmed:
+07 01 - 2b+ (?)  ?? related to action button
00 Not on Action
+08 00 - ff Surface area on Right section?
+09  ? - ? Undetermined
+0a  ? - ? Undetermined
+0b 00-3f 04,0c,0d,0e all related? Movement/gestures?
+0c 00-3f 04,0c,0d,0e all related? ^
+0d 00-3f 04,0c,0d,0e all related? ^
+0e 82 Doesn't change ?
+0f 00 Doesn't change ?
+10 20 Doesn't change ?
+11 00 - ff unknown

Found on raph100, used in experimental navipad driver (Jobo)

byte function values
00 touched areas 0x11 center,
0x22
left,
0x44 ring,
0x88
right
it seems that the higher nibble has its lowest bit high on a first touch?
01 left X 0..0x43 left=zero
02 left Y 0..0x43 top=zero
03 ring 0..0x49 (bottom-leftzero, clockwisepositive)
04 touch
move
release
guess: 0x00 steady touching, 0x84 moving, 0x82 = release
05 right X 0..0x43 left=zero
06 right Y 0.0x43 top=zero
07 pressure/area
on center
0x10..~0x25, 0x00 = not
08 touched area
on right
lower 8 bits, top 4 are in 0x09
0x00..0xFF
09 touched area
l/r
high nibble is high nibble for right
low for left
0A touched area
on left
same as byte 0x08, but for left
0B ring same as byte 0x03
0C ring(-1) so as to tell deltas
0D ring(-2)  ?
0E always 0x01
0F always 0x02
10 always 0x36
11  ?? I don't know
12 always 0x12