summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-04-22 13:02:24 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-04-22 13:02:24 +0000
commit4b1d1b40339d98e08d1d975d4fa511a0768a7204 (patch)
tree732f6c3ef001f15409181c12a3d27a8d62d03b00 /firmware/target/arm
parent6bf86b799ec96c9e9d42cf9fd2e0654023eee057 (diff)
downloadrockbox-4b1d1b40339d98e08d1d975d4fa511a0768a7204.tar.gz
rockbox-4b1d1b40339d98e08d1d975d4fa511a0768a7204.zip
e200: Make the wheel light timeout configurable (under settings > system) (FS#7067)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13244 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/sandisk/sansa-e200/backlight-e200.c11
-rw-r--r--firmware/target/arm/sandisk/sansa-e200/backlight-target.h2
-rw-r--r--firmware/target/arm/sandisk/sansa-e200/button-e200.c25
3 files changed, 14 insertions, 24 deletions
diff --git a/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c b/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
index 787f14b1a6..0ec19b4df1 100644
--- a/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
+++ b/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
@@ -39,3 +39,14 @@ void __backlight_off(void)
39{ 39{
40 pp_i2c_send( 0x46, 0x23, 0x0); 40 pp_i2c_send( 0x46, 0x23, 0x0);
41} 41}
42
43
44void __button_backlight_on(void)
45{
46 GPIOG_OUTPUT_VAL |=0x80;
47}
48
49void __button_backlight_off(void)
50{
51 GPIOG_OUTPUT_VAL &=~ 0x80;
52}
diff --git a/firmware/target/arm/sandisk/sansa-e200/backlight-target.h b/firmware/target/arm/sandisk/sansa-e200/backlight-target.h
index 16a02a4d11..2227278985 100644
--- a/firmware/target/arm/sandisk/sansa-e200/backlight-target.h
+++ b/firmware/target/arm/sandisk/sansa-e200/backlight-target.h
@@ -24,4 +24,6 @@ void __backlight_on(void);
24void __backlight_off(void); 24void __backlight_off(void);
25void __backlight_set_brightness(int brightness); 25void __backlight_set_brightness(int brightness);
26 26
27void __button_backlight_on(void);
28void __button_backlight_off(void);
27#endif 29#endif
diff --git a/firmware/target/arm/sandisk/sansa-e200/button-e200.c b/firmware/target/arm/sandisk/sansa-e200/button-e200.c
index fe0b1eaf18..bbe37bcd9a 100644
--- a/firmware/target/arm/sandisk/sansa-e200/button-e200.c
+++ b/firmware/target/arm/sandisk/sansa-e200/button-e200.c
@@ -31,18 +31,6 @@
31static unsigned int old_wheel_value = 0; 31static unsigned int old_wheel_value = 0;
32static unsigned int wheel_repeat = BUTTON_NONE; 32static unsigned int wheel_repeat = BUTTON_NONE;
33 33
34/* Wheel backlight control */
35#define WHEEL_BACKLIGHT_TIMEOUT 5*HZ;
36static unsigned int wheel_backlight_timer;
37
38void wheel_backlight_on(bool enable)
39{
40 if(enable)
41 GPIOG_OUTPUT_VAL |=0x80;
42 else
43 GPIOG_OUTPUT_VAL &=~ 0x80;
44}
45
46void button_init_device(void) 34void button_init_device(void)
47{ 35{
48 /* Enable all buttons */ 36 /* Enable all buttons */
@@ -52,7 +40,6 @@ void button_init_device(void)
52 /* Scrollwheel light - enable control through GPIOG pin 7 and set timeout */ 40 /* Scrollwheel light - enable control through GPIOG pin 7 and set timeout */
53 GPIOG_ENABLE = 0x80; 41 GPIOG_ENABLE = 0x80;
54 GPIOG_OUTPUT_EN |= 0x80; 42 GPIOG_OUTPUT_EN |= 0x80;
55 wheel_backlight_timer = WHEEL_BACKLIGHT_TIMEOUT;
56 43
57 /* Read initial wheel value (bit 6-7 of GPIOH) */ 44 /* Read initial wheel value (bit 6-7 of GPIOH) */
58 old_wheel_value = GPIOH_INPUT_VAL & 0xc0; 45 old_wheel_value = GPIOH_INPUT_VAL & 0xc0;
@@ -153,23 +140,13 @@ int button_read_device(void)
153 old_wheel_value = new_wheel_value; 140 old_wheel_value = new_wheel_value;
154 } 141 }
155 142
156 if(wheel_backlight_timer>0){
157 wheel_backlight_timer--;
158 if(wheel_backlight_timer==0){
159 wheel_backlight_on(false);
160 }
161 }
162
163 if( (btn & BUTTON_SCROLL_UP) || (btn & BUTTON_SCROLL_DOWN) ){ 143 if( (btn & BUTTON_SCROLL_UP) || (btn & BUTTON_SCROLL_DOWN) ){
164 /* only trigger once per click */ 144 /* only trigger once per click */
165 if ((new_wheel_value == 0x00) || (new_wheel_value == 0xc0)) 145 if ((new_wheel_value == 0x00) || (new_wheel_value == 0xc0))
166 { 146 {
167 btn = btn&(~(BUTTON_SCROLL_UP|BUTTON_SCROLL_DOWN)); 147 btn = btn&(~(BUTTON_SCROLL_UP|BUTTON_SCROLL_DOWN));
168 } 148 }
169 if(wheel_backlight_timer==0){ 149 button_backlight_on();
170 wheel_backlight_on(true);
171 }
172 wheel_backlight_timer = WHEEL_BACKLIGHT_TIMEOUT;
173 } 150 }
174 151
175 return btn; 152 return btn;