diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/backlight.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c index 9fe73f4d9a..b7f4761415 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c | |||
@@ -37,6 +37,11 @@ static struct event_queue backlight_queue; | |||
37 | static int backlight_timer; | 37 | static int backlight_timer; |
38 | static int backlight_timeout = 5; | 38 | static int backlight_timeout = 5; |
39 | 39 | ||
40 | static char timeout_value[19] = | ||
41 | { | ||
42 | -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 45, 60, 90 | ||
43 | }; | ||
44 | |||
40 | void backlight_thread(void) | 45 | void backlight_thread(void) |
41 | { | 46 | { |
42 | struct event ev; | 47 | struct event ev; |
@@ -47,8 +52,17 @@ void backlight_thread(void) | |||
47 | switch(ev.id) | 52 | switch(ev.id) |
48 | { | 53 | { |
49 | case BACKLIGHT_ON: | 54 | case BACKLIGHT_ON: |
50 | backlight_timer = HZ*backlight_timeout; | 55 | backlight_timer = HZ*timeout_value[backlight_timeout]; |
51 | if(backlight_timer) | 56 | if(backlight_timer < 0) |
57 | { | ||
58 | #ifdef HAVE_RTC | ||
59 | /* Disable square wave */ | ||
60 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); | ||
61 | #else | ||
62 | PADR |= 0x4000; | ||
63 | #endif | ||
64 | } | ||
65 | else if(backlight_timer) | ||
52 | { | 66 | { |
53 | #ifdef HAVE_RTC | 67 | #ifdef HAVE_RTC |
54 | /* Enable square wave */ | 68 | /* Enable square wave */ |
@@ -65,7 +79,7 @@ void backlight_thread(void) | |||
65 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); | 79 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); |
66 | #else | 80 | #else |
67 | PADR |= 0x4000; | 81 | PADR |= 0x4000; |
68 | #endif | 82 | #endif |
69 | break; | 83 | break; |
70 | 84 | ||
71 | case SYS_USB_CONNECTED: | 85 | case SYS_USB_CONNECTED: |
@@ -91,9 +105,9 @@ void backlight_off(void) | |||
91 | queue_post(&backlight_queue, BACKLIGHT_OFF, NULL); | 105 | queue_post(&backlight_queue, BACKLIGHT_OFF, NULL); |
92 | } | 106 | } |
93 | 107 | ||
94 | void backlight_time(int seconds) | 108 | void backlight_time(int value) |
95 | { | 109 | { |
96 | backlight_timeout = seconds; | 110 | backlight_timeout = value; |
97 | backlight_on(); | 111 | backlight_on(); |
98 | } | 112 | } |
99 | 113 | ||