summaryrefslogtreecommitdiff
path: root/firmware/target/arm/iriver/h10/button-h10.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/iriver/h10/button-h10.c')
-rw-r--r--firmware/target/arm/iriver/h10/button-h10.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/firmware/target/arm/iriver/h10/button-h10.c b/firmware/target/arm/iriver/h10/button-h10.c
index badcd594a1..7979a52976 100644
--- a/firmware/target/arm/iriver/h10/button-h10.c
+++ b/firmware/target/arm/iriver/h10/button-h10.c
@@ -49,6 +49,7 @@ int button_read_device(void)
49 int btn = BUTTON_NONE; 49 int btn = BUTTON_NONE;
50 unsigned char state; 50 unsigned char state;
51 static bool hold_button = false; 51 static bool hold_button = false;
52
52#if 0 53#if 0
53 /* light handling */ 54 /* light handling */
54 if (hold_button && !button_hold()) 55 if (hold_button && !button_hold())
@@ -58,12 +59,25 @@ int button_read_device(void)
58#endif 59#endif
59 60
60 hold_button = button_hold(); 61 hold_button = button_hold();
61 state = GPIOA_INPUT_VAL & 0xf8; 62 if (!hold_button)
62 if ((state & 0x8) == 0) btn |= BUTTON_FF; 63 {
63 if ((state & 0x16) == 0) btn |= BUTTON_PLAY; 64 /* Read normal buttons */
64 if ((state & 0x32) == 0) btn |= BUTTON_REW; 65 state = GPIOA_INPUT_VAL & 0xf8;
65 if ((state & 0x64) == 0) btn |= BUTTON_RIGHT; 66 if ((state & 0x8) == 0) btn |= BUTTON_FF;
66 if ((state & 0x128) == 0) btn |= BUTTON_LEFT; 67 if ((state & 0x10) == 0) btn |= BUTTON_PLAY;
68 if ((state & 0x20) == 0) btn |= BUTTON_REW;
69 if ((state & 0x40) == 0) btn |= BUTTON_RIGHT;
70 if ((state & 0x80) == 0) btn |= BUTTON_LEFT;
71
72 /* Read power button */
73 if ((GPIOB_INPUT_VAL & 0x1) == 0) btn |= BUTTON_POWER;
74
75 /* Read scroller */
76 if ( ((GPIOC_INPUT_VAL & 0x4)==1) && ((GPIOD_INPUT_VAL & 0x10)==1) )
77 {
78 /* Scroller is pressed */
79 }
80 }
67 81
68 return btn; 82 return btn;
69} 83}