diff options
author | Jens Arnold <amiconn@rockbox.org> | 2007-11-12 18:49:53 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2007-11-12 18:49:53 +0000 |
commit | ef12b3b5c678e4fa44d60061b0c1bc312e589ba1 (patch) | |
tree | 4c2572d7bf3d995be16b33fa2e46ccccad34f4ee | |
parent | 8537cbf091634efa57768dccff39049afdf6d288 (diff) | |
download | rockbox-ef12b3b5c678e4fa44d60061b0c1bc312e589ba1.tar.gz rockbox-ef12b3b5c678e4fa44d60061b0c1bc312e589ba1.zip |
Hardware controlled backlight brightness for iPod Video and Nano, retaining the software PWM fade in/ fade out. * Backlight handling cleanup, getting rid of one layer of 'lowlevelness'. * Use atomic GPIO bit manipulation for PP502x backlight handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15599 a1c6a512-1295-4272-9138-f99709370657
47 files changed, 493 insertions, 321 deletions
diff --git a/bootloader/iaudio_x5.c b/bootloader/iaudio_x5.c index d6ee7176ca..3cfbb7aec7 100644 --- a/bootloader/iaudio_x5.c +++ b/bootloader/iaudio_x5.c | |||
@@ -93,9 +93,9 @@ void shutdown(void) | |||
93 | sleep(HZ*2); | 93 | sleep(HZ*2); |
94 | 94 | ||
95 | /* Backlight OFF */ | 95 | /* Backlight OFF */ |
96 | __backlight_off(); | 96 | _backlight_off(); |
97 | #ifdef HAVE_REMOTE_LCD | 97 | #ifdef HAVE_REMOTE_LCD |
98 | __remote_backlight_off(); | 98 | _remote_backlight_off(); |
99 | #endif | 99 | #endif |
100 | 100 | ||
101 | __reset_cookie(); | 101 | __reset_cookie(); |
diff --git a/bootloader/ipod.c b/bootloader/ipod.c index 441bda860c..816f13adde 100644 --- a/bootloader/ipod.c +++ b/bootloader/ipod.c | |||
@@ -239,7 +239,7 @@ void* main(void) | |||
239 | 239 | ||
240 | #ifndef HAVE_BACKLIGHT_INVERSION | 240 | #ifndef HAVE_BACKLIGHT_INVERSION |
241 | /* Turn on the backlight */ | 241 | /* Turn on the backlight */ |
242 | __backlight_on(); | 242 | _backlight_on(); |
243 | #endif | 243 | #endif |
244 | 244 | ||
245 | system_init(); | 245 | system_init(); |
diff --git a/bootloader/iriver_h300.c b/bootloader/iriver_h300.c index a3a15bd4b5..5b742044eb 100644 --- a/bootloader/iriver_h300.c +++ b/bootloader/iriver_h300.c | |||
@@ -100,8 +100,8 @@ void shutdown(void) | |||
100 | 100 | ||
101 | sleep(HZ*2); | 101 | sleep(HZ*2); |
102 | 102 | ||
103 | __backlight_off(); | 103 | _backlight_off(); |
104 | __remote_backlight_off(); | 104 | _remote_backlight_off(); |
105 | 105 | ||
106 | __reset_cookie(); | 106 | __reset_cookie(); |
107 | power_off(); | 107 | power_off(); |
@@ -177,10 +177,10 @@ void main(void) | |||
177 | audiohw_reset(); | 177 | audiohw_reset(); |
178 | 178 | ||
179 | /* Start with the main backlight OFF. */ | 179 | /* Start with the main backlight OFF. */ |
180 | __backlight_init(); | 180 | _backlight_init(); |
181 | __backlight_off(); | 181 | _backlight_off(); |
182 | 182 | ||
183 | __remote_backlight_on(); | 183 | _remote_backlight_on(); |
184 | 184 | ||
185 | system_init(); | 185 | system_init(); |
186 | kernel_init(); | 186 | kernel_init(); |
diff --git a/bootloader/main-e200r-installer.c b/bootloader/main-e200r-installer.c index b128a3445a..46c1f9a2ff 100644 --- a/bootloader/main-e200r-installer.c +++ b/bootloader/main-e200r-installer.c | |||
@@ -102,7 +102,7 @@ void* main(void) | |||
102 | font_init(); | 102 | font_init(); |
103 | button_init(); | 103 | button_init(); |
104 | i2c_init(); | 104 | i2c_init(); |
105 | __backlight_on(); | 105 | _backlight_on(); |
106 | 106 | ||
107 | lcd_set_foreground(LCD_WHITE); | 107 | lcd_set_foreground(LCD_WHITE); |
108 | lcd_set_background(LCD_BLACK); | 108 | lcd_set_background(LCD_BLACK); |
diff --git a/bootloader/main-pp.c b/bootloader/main-pp.c index acc916e8a4..3c498d9ee1 100644 --- a/bootloader/main-pp.c +++ b/bootloader/main-pp.c | |||
@@ -441,7 +441,7 @@ void* main(void) | |||
441 | button_init(); | 441 | button_init(); |
442 | #if defined(SANSA_E200) | 442 | #if defined(SANSA_E200) |
443 | i2c_init(); | 443 | i2c_init(); |
444 | __backlight_on(); | 444 | _backlight_on(); |
445 | #endif | 445 | #endif |
446 | 446 | ||
447 | lcd_set_foreground(LCD_WHITE); | 447 | lcd_set_foreground(LCD_WHITE); |
diff --git a/bootloader/main.c b/bootloader/main.c index e60799fa65..8d58ca71d0 100644 --- a/bootloader/main.c +++ b/bootloader/main.c | |||
@@ -156,9 +156,9 @@ void shutdown(void) | |||
156 | sleep(HZ*2); | 156 | sleep(HZ*2); |
157 | 157 | ||
158 | /* Backlight OFF */ | 158 | /* Backlight OFF */ |
159 | __backlight_off(); | 159 | _backlight_off(); |
160 | #ifdef HAVE_REMOTE_LCD | 160 | #ifdef HAVE_REMOTE_LCD |
161 | __remote_backlight_off(); | 161 | _remote_backlight_off(); |
162 | #endif | 162 | #endif |
163 | 163 | ||
164 | __reset_cookie(); | 164 | __reset_cookie(); |
@@ -395,12 +395,12 @@ void main(void) | |||
395 | } | 395 | } |
396 | 396 | ||
397 | /* Start with the main backlight OFF. */ | 397 | /* Start with the main backlight OFF. */ |
398 | __backlight_init(); | 398 | _backlight_init(); |
399 | __backlight_off(); | 399 | _backlight_off(); |
400 | 400 | ||
401 | /* Remote backlight ON */ | 401 | /* Remote backlight ON */ |
402 | #ifdef HAVE_REMOTE_LCD | 402 | #ifdef HAVE_REMOTE_LCD |
403 | __remote_backlight_on(); | 403 | _remote_backlight_on(); |
404 | #endif | 404 | #endif |
405 | 405 | ||
406 | system_init(); | 406 | system_init(); |
@@ -531,7 +531,7 @@ void main(void) | |||
531 | sleep(HZ); | 531 | sleep(HZ); |
532 | 532 | ||
533 | /* Backlight OFF */ | 533 | /* Backlight OFF */ |
534 | __backlight_off(); | 534 | _backlight_off(); |
535 | } | 535 | } |
536 | 536 | ||
537 | cpu_idle_mode(false); | 537 | cpu_idle_mode(false); |
diff --git a/bootloader/telechips.c b/bootloader/telechips.c index 83dad704da..6093701044 100644 --- a/bootloader/telechips.c +++ b/bootloader/telechips.c | |||
@@ -57,7 +57,7 @@ void* main(void) | |||
57 | lcd_init(); | 57 | lcd_init(); |
58 | font_init(); | 58 | font_init(); |
59 | 59 | ||
60 | __backlight_on(); | 60 | _backlight_on(); |
61 | 61 | ||
62 | while(!do_power_off) { | 62 | while(!do_power_off) { |
63 | line = 0; | 63 | line = 0; |
diff --git a/firmware/backlight.c b/firmware/backlight.c index 357b446a23..78ba492942 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c | |||
@@ -46,29 +46,44 @@ | |||
46 | handle this */ | 46 | handle this */ |
47 | extern void screen_dump(void); | 47 | extern void screen_dump(void); |
48 | 48 | ||
49 | static inline void __backlight_on(void) | 49 | static inline void _backlight_on(void) |
50 | { | 50 | { |
51 | sim_backlight(100); | 51 | sim_backlight(100); |
52 | } | 52 | } |
53 | 53 | ||
54 | static inline void __backlight_off(void) | 54 | static inline void _backlight_off(void) |
55 | { | 55 | { |
56 | sim_backlight(0); | 56 | sim_backlight(0); |
57 | } | 57 | } |
58 | 58 | ||
59 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | 59 | static inline void _backlight_set_brightness(int val) |
60 | static inline void __backlight_set_brightness(int val) | ||
61 | { | 60 | { |
62 | (void)val; | 61 | (void)val; |
63 | } | 62 | } |
64 | #endif | ||
65 | 63 | ||
66 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | 64 | static inline void _buttonlight_on(void) |
67 | static inline void __buttonlight_set_brightness(int val) | 65 | { |
66 | } | ||
67 | |||
68 | static inline void _buttonlight_off(void) | ||
69 | { | ||
70 | } | ||
71 | |||
72 | static inline void _buttonlight_set_brightness(int val) | ||
68 | { | 73 | { |
69 | (void)val; | 74 | (void)val; |
70 | } | 75 | } |
71 | #endif | 76 | #ifdef HAVE_REMOTE_LCD |
77 | static inline void _remote_backlight_on(void) | ||
78 | { | ||
79 | sim_remote_backlight(100); | ||
80 | } | ||
81 | |||
82 | static inline void _remote_backlight_off(void) | ||
83 | { | ||
84 | sim_remote_backlight(0); | ||
85 | } | ||
86 | #endif /* HAVE_REMOTE_LCD */ | ||
72 | 87 | ||
73 | #endif /* SIMULATOR */ | 88 | #endif /* SIMULATOR */ |
74 | 89 | ||
@@ -79,18 +94,24 @@ const signed char backlight_timeout_value[19] = | |||
79 | -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 45, 60, 90 | 94 | -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 45, 60, 90 |
80 | }; | 95 | }; |
81 | 96 | ||
82 | #define BACKLIGHT_ON 1 | 97 | enum { |
83 | #define BACKLIGHT_OFF 2 | 98 | BACKLIGHT_ON, |
84 | #define REMOTE_BACKLIGHT_ON 3 | 99 | BACKLIGHT_OFF, |
85 | #define REMOTE_BACKLIGHT_OFF 4 | 100 | #ifdef HAVE_REMOTE_LCD |
86 | #define BACKLIGHT_UNBOOST_CPU 5 | 101 | REMOTE_BACKLIGHT_ON, |
102 | REMOTE_BACKLIGHT_OFF, | ||
103 | #endif | ||
104 | #if defined(_BACKLIGHT_FADE_BOOST) || defined(_BACKLIGHT_FADE_ENABLE) | ||
105 | BACKLIGHT_FADE_FINISH, | ||
106 | #endif | ||
87 | #ifdef HAVE_LCD_SLEEP | 107 | #ifdef HAVE_LCD_SLEEP |
88 | #define LCD_SLEEP 6 | 108 | LCD_SLEEP, |
89 | #endif | 109 | #endif |
90 | #ifdef HAVE_BUTTON_LIGHT | 110 | #ifdef HAVE_BUTTON_LIGHT |
91 | #define BUTTON_LIGHT_ON 7 | 111 | BUTTON_LIGHT_ON, |
92 | #define BUTTON_LIGHT_OFF 8 | 112 | BUTTON_LIGHT_OFF, |
93 | #endif | 113 | #endif |
114 | }; | ||
94 | 115 | ||
95 | static void backlight_thread(void); | 116 | static void backlight_thread(void); |
96 | static long backlight_stack[DEFAULT_STACK_SIZE/sizeof(long)]; | 117 | static long backlight_stack[DEFAULT_STACK_SIZE/sizeof(long)]; |
@@ -109,36 +130,12 @@ static int backlight_on_button_hold = 0; | |||
109 | 130 | ||
110 | #ifdef HAVE_BUTTON_LIGHT | 131 | #ifdef HAVE_BUTTON_LIGHT |
111 | static int buttonlight_timer; | 132 | static int buttonlight_timer; |
112 | static int buttonlight_timeout = 5*HZ; | 133 | int _buttonlight_timeout = 5*HZ; |
113 | |||
114 | /* internal interface */ | ||
115 | static void _buttonlight_on(void) | ||
116 | { | ||
117 | #ifndef SIMULATOR | ||
118 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | ||
119 | __buttonlight_dim(false); | ||
120 | #else | ||
121 | __buttonlight_on(); | ||
122 | #endif | ||
123 | #endif | ||
124 | } | ||
125 | |||
126 | void _buttonlight_off(void) | ||
127 | { | ||
128 | #ifndef SIMULATOR | ||
129 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | ||
130 | if(buttonlight_timeout>0) | ||
131 | __buttonlight_dim(true); | ||
132 | else | ||
133 | #endif | ||
134 | __buttonlight_off(); | ||
135 | #endif | ||
136 | } | ||
137 | 134 | ||
138 | /* Update state of buttonlight according to timeout setting */ | 135 | /* Update state of buttonlight according to timeout setting */ |
139 | static void buttonlight_update_state(void) | 136 | static void buttonlight_update_state(void) |
140 | { | 137 | { |
141 | buttonlight_timer = buttonlight_timeout; | 138 | buttonlight_timer = _buttonlight_timeout; |
142 | 139 | ||
143 | /* Buttonlight == OFF in the setting? */ | 140 | /* Buttonlight == OFF in the setting? */ |
144 | if (buttonlight_timer < 0) | 141 | if (buttonlight_timer < 0) |
@@ -167,7 +164,7 @@ void buttonlight_set_timeout(int index) | |||
167 | if((unsigned)index >= sizeof(backlight_timeout_value)) | 164 | if((unsigned)index >= sizeof(backlight_timeout_value)) |
168 | /* if given a weird value, use default */ | 165 | /* if given a weird value, use default */ |
169 | index = 6; | 166 | index = 6; |
170 | buttonlight_timeout = HZ * backlight_timeout_value[index]; | 167 | _buttonlight_timeout = HZ * backlight_timeout_value[index]; |
171 | buttonlight_update_state(); | 168 | buttonlight_update_state(); |
172 | } | 169 | } |
173 | 170 | ||
@@ -190,13 +187,13 @@ const signed char lcd_sleep_timeout_value[10] = | |||
190 | { | 187 | { |
191 | -1, 0, 5, 10, 15, 20, 30, 45, 60, 90 | 188 | -1, 0, 5, 10, 15, 20, 30, 45, 60, 90 |
192 | }; | 189 | }; |
193 | static int lcd_sleep_timer; | 190 | int _lcd_sleep_timer; |
194 | static int lcd_sleep_timeout = 10*HZ; | 191 | int _lcd_sleep_timeout = 10*HZ; |
195 | #endif | 192 | #endif |
196 | 193 | ||
197 | #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) | 194 | #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) |
198 | /* backlight fading */ | 195 | /* backlight fading */ |
199 | #define BL_PWM_INTERVAL 5000 /* Cycle interval in s */ | 196 | #define BL_PWM_INTERVAL 5000 /* Cycle interval in us */ |
200 | #define BL_PWM_COUNT 100 | 197 | #define BL_PWM_COUNT 100 |
201 | static const char backlight_fade_value[8] = { 0, 1, 2, 4, 6, 8, 10, 20 }; | 198 | static const char backlight_fade_value[8] = { 0, 1, 2, 4, 6, 8, 10, 20 }; |
202 | static int fade_in_count = 1; | 199 | static int fade_in_count = 1; |
@@ -224,7 +221,7 @@ static void backlight_isr(void) | |||
224 | 221 | ||
225 | if (bl_dim_current > 0 && bl_dim_current < BL_PWM_COUNT) | 222 | if (bl_dim_current > 0 && bl_dim_current < BL_PWM_COUNT) |
226 | { | 223 | { |
227 | __backlight_on(); | 224 | _backlight_on_isr(); |
228 | bl_pwm_counter = bl_dim_current; | 225 | bl_pwm_counter = bl_dim_current; |
229 | timer_period = timer_period * bl_pwm_counter / BL_PWM_COUNT; | 226 | timer_period = timer_period * bl_pwm_counter / BL_PWM_COUNT; |
230 | bl_dim_state = DIM_STATE_MAIN; | 227 | bl_dim_state = DIM_STATE_MAIN; |
@@ -232,9 +229,9 @@ static void backlight_isr(void) | |||
232 | else | 229 | else |
233 | { | 230 | { |
234 | if (bl_dim_current) | 231 | if (bl_dim_current) |
235 | __backlight_on(); | 232 | _backlight_on_isr(); |
236 | else | 233 | else |
237 | __backlight_off(); | 234 | _backlight_off_isr(); |
238 | if (bl_dim_current == bl_dim_target) | 235 | if (bl_dim_current == bl_dim_target) |
239 | idle = true; | 236 | idle = true; |
240 | } | 237 | } |
@@ -243,7 +240,7 @@ static void backlight_isr(void) | |||
243 | 240 | ||
244 | /* Dim main screen */ | 241 | /* Dim main screen */ |
245 | case DIM_STATE_MAIN: | 242 | case DIM_STATE_MAIN: |
246 | __backlight_off(); | 243 | _backlight_off_isr(); |
247 | bl_dim_state = DIM_STATE_START; | 244 | bl_dim_state = DIM_STATE_START; |
248 | timer_period = timer_period * (BL_PWM_COUNT - bl_pwm_counter) / BL_PWM_COUNT; | 245 | timer_period = timer_period * (BL_PWM_COUNT - bl_pwm_counter) / BL_PWM_COUNT; |
249 | break ; | 246 | break ; |
@@ -263,8 +260,8 @@ static void backlight_isr(void) | |||
263 | 260 | ||
264 | if (idle) | 261 | if (idle) |
265 | { | 262 | { |
266 | #ifdef CPU_COLDFIRE | 263 | #if defined(_BACKLIGHT_FADE_BOOST) || defined(_BACKLIGHT_FADE_ENABLE) |
267 | queue_post(&backlight_queue, BACKLIGHT_UNBOOST_CPU, 0); | 264 | queue_post(&backlight_queue, BACKLIGHT_FADE_FINISH, 0); |
268 | #endif | 265 | #endif |
269 | timer_unregister(); | 266 | timer_unregister(); |
270 | bl_timer_active = false; | 267 | bl_timer_active = false; |
@@ -277,19 +274,19 @@ static void backlight_switch(void) | |||
277 | { | 274 | { |
278 | if (bl_dim_target > (BL_PWM_COUNT/2)) | 275 | if (bl_dim_target > (BL_PWM_COUNT/2)) |
279 | { | 276 | { |
280 | __backlight_on(); | 277 | _backlight_on_normal(); |
281 | bl_dim_current = BL_PWM_COUNT; | 278 | bl_dim_current = BL_PWM_COUNT; |
282 | } | 279 | } |
283 | else | 280 | else |
284 | { | 281 | { |
285 | __backlight_off(); | 282 | _backlight_off_normal(); |
286 | bl_dim_current = 0; | 283 | bl_dim_current = 0; |
287 | } | 284 | } |
288 | } | 285 | } |
289 | 286 | ||
290 | static void backlight_release_timer(void) | 287 | static void backlight_release_timer(void) |
291 | { | 288 | { |
292 | #ifdef CPU_COLDFIRE | 289 | #ifdef _BACKLIGHT_FADE_BOOST |
293 | cpu_boost(false); | 290 | cpu_boost(false); |
294 | #endif | 291 | #endif |
295 | timer_unregister(); | 292 | timer_unregister(); |
@@ -310,7 +307,7 @@ static void backlight_dim(int value) | |||
310 | 307 | ||
311 | if (timer_register(0, backlight_release_timer, 2, 0, backlight_isr)) | 308 | if (timer_register(0, backlight_release_timer, 2, 0, backlight_isr)) |
312 | { | 309 | { |
313 | #ifdef CPU_COLDFIRE | 310 | #ifdef _BACKLIGHT_FADE_BOOST |
314 | /* Prevent cpu frequency changes while dimming. */ | 311 | /* Prevent cpu frequency changes while dimming. */ |
315 | cpu_boost(true); | 312 | cpu_boost(true); |
316 | #endif | 313 | #endif |
@@ -320,80 +317,58 @@ static void backlight_dim(int value) | |||
320 | backlight_switch(); | 317 | backlight_switch(); |
321 | } | 318 | } |
322 | 319 | ||
323 | void backlight_set_fade_in(int index) | ||
324 | { | ||
325 | fade_in_count = backlight_fade_value[index]; | ||
326 | } | ||
327 | |||
328 | void backlight_set_fade_out(int index) | ||
329 | { | ||
330 | fade_out_count = backlight_fade_value[index]; | ||
331 | } | ||
332 | #endif /* defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) */ | ||
333 | |||
334 | static void _backlight_on(void) | 320 | static void _backlight_on(void) |
335 | { | 321 | { |
336 | #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) | ||
337 | if (fade_in_count > 0) | 322 | if (fade_in_count > 0) |
323 | { | ||
324 | #ifdef _BACKLIGHT_FADE_ENABLE | ||
325 | _backlight_hw_enable(true); | ||
326 | #endif | ||
338 | backlight_dim(BL_PWM_COUNT); | 327 | backlight_dim(BL_PWM_COUNT); |
328 | } | ||
339 | else | 329 | else |
340 | { | 330 | { |
341 | bl_dim_target = bl_dim_current = BL_PWM_COUNT; | 331 | bl_dim_target = bl_dim_current = BL_PWM_COUNT; |
342 | __backlight_on(); | 332 | _backlight_on_normal(); |
343 | } | 333 | } |
344 | #elif defined(HAVE_BACKLIGHT_SET_FADING) && !defined(SIMULATOR) | ||
345 | /* call the enable from here - it takes longer than the disable */ | ||
346 | lcd_enable(true); | ||
347 | __backlight_dim(false); | ||
348 | #else | ||
349 | __backlight_on(); | ||
350 | #endif | ||
351 | #ifdef HAVE_LCD_SLEEP | 334 | #ifdef HAVE_LCD_SLEEP |
352 | lcd_sleep_timer = 0; /* LCD should be awake already */ | 335 | _lcd_sleep_timer = 0; /* LCD should be awake already */ |
353 | #endif | 336 | #endif |
354 | } | 337 | } |
355 | 338 | ||
356 | static void _backlight_off(void) | 339 | static void _backlight_off(void) |
357 | { | 340 | { |
358 | #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) | ||
359 | if (fade_out_count > 0) | 341 | if (fade_out_count > 0) |
342 | { | ||
360 | backlight_dim(0); | 343 | backlight_dim(0); |
344 | } | ||
361 | else | 345 | else |
362 | { | 346 | { |
363 | bl_dim_target = bl_dim_current = 0; | 347 | bl_dim_target = bl_dim_current = 0; |
364 | __backlight_off(); | 348 | _backlight_off_normal(); |
365 | } | 349 | } |
366 | #elif defined(HAVE_BACKLIGHT_SET_FADING) && !defined(SIMULATOR) | ||
367 | __backlight_dim(true); | ||
368 | #else | ||
369 | __backlight_off(); | ||
370 | #endif | ||
371 | |||
372 | #ifdef HAVE_LCD_SLEEP | 350 | #ifdef HAVE_LCD_SLEEP |
373 | /* Start LCD sleep countdown */ | 351 | /* Start LCD sleep countdown */ |
374 | if (lcd_sleep_timeout < 0) | 352 | if (_lcd_sleep_timeout < 0) |
375 | { | 353 | { |
376 | lcd_sleep_timer = 0; /* Setting == Always */ | 354 | _lcd_sleep_timer = 0; /* Setting == Always */ |
377 | lcd_sleep(); | 355 | lcd_sleep(); |
378 | } | 356 | } |
379 | else | 357 | else |
380 | lcd_sleep_timer = lcd_sleep_timeout; | 358 | _lcd_sleep_timer = _lcd_sleep_timeout; |
381 | #endif | 359 | #endif |
382 | } | 360 | } |
383 | 361 | ||
384 | #ifdef HAVE_REMOTE_LCD | 362 | void backlight_set_fade_in(int index) |
385 | #ifdef SIMULATOR | ||
386 | static void __remote_backlight_on(void) | ||
387 | { | 363 | { |
388 | sim_remote_backlight(100); | 364 | fade_in_count = backlight_fade_value[index]; |
389 | } | 365 | } |
390 | 366 | ||
391 | static void __remote_backlight_off(void) | 367 | void backlight_set_fade_out(int index) |
392 | { | 368 | { |
393 | sim_remote_backlight(0); | 369 | fade_out_count = backlight_fade_value[index]; |
394 | } | 370 | } |
395 | #endif /* SIMULATOR */ | 371 | #endif /* defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) */ |
396 | #endif /* HAVE_REMOTE_LCD */ | ||
397 | 372 | ||
398 | /* Update state of backlight according to timeout setting */ | 373 | /* Update state of backlight according to timeout setting */ |
399 | static void backlight_update_state(void) | 374 | static void backlight_update_state(void) |
@@ -453,12 +428,12 @@ static void remote_backlight_update_state(void) | |||
453 | if (remote_backlight_timeout < 0) | 428 | if (remote_backlight_timeout < 0) |
454 | { | 429 | { |
455 | remote_backlight_timer = 0; /* Disable the timeout */ | 430 | remote_backlight_timer = 0; /* Disable the timeout */ |
456 | __remote_backlight_off(); | 431 | _remote_backlight_off(); |
457 | } | 432 | } |
458 | else | 433 | else |
459 | { | 434 | { |
460 | remote_backlight_timer = remote_backlight_timeout; | 435 | remote_backlight_timer = remote_backlight_timeout; |
461 | __remote_backlight_on(); | 436 | _remote_backlight_on(); |
462 | } | 437 | } |
463 | } | 438 | } |
464 | #endif /* HAVE_REMOTE_LCD */ | 439 | #endif /* HAVE_REMOTE_LCD */ |
@@ -473,12 +448,16 @@ void backlight_thread(void) | |||
473 | queue_wait(&backlight_queue, &ev); | 448 | queue_wait(&backlight_queue, &ev); |
474 | switch(ev.id) | 449 | switch(ev.id) |
475 | { /* These events must always be processed */ | 450 | { /* These events must always be processed */ |
476 | #if defined(HAVE_BACKLIGHT_PWM_FADING) && defined(CPU_COLDFIRE) \ | 451 | #ifdef _BACKLIGHT_FADE_BOOST |
477 | && !defined(SIMULATOR) | 452 | case BACKLIGHT_FADE_FINISH: |
478 | case BACKLIGHT_UNBOOST_CPU: | ||
479 | cpu_boost(false); | 453 | cpu_boost(false); |
480 | break; | 454 | break; |
481 | #endif | 455 | #endif |
456 | #ifdef _BACKLIGHT_FADE_ENABLE | ||
457 | case BACKLIGHT_FADE_FINISH: | ||
458 | _backlight_hw_enable((bl_dim_current|bl_dim_target) != 0); | ||
459 | break; | ||
460 | #endif | ||
482 | 461 | ||
483 | #if defined(HAVE_REMOTE_LCD) && !defined(SIMULATOR) | 462 | #if defined(HAVE_REMOTE_LCD) && !defined(SIMULATOR) |
484 | /* Here for now or else the aggressive init messes up scrolling */ | 463 | /* Here for now or else the aggressive init messes up scrolling */ |
@@ -519,7 +498,7 @@ void backlight_thread(void) | |||
519 | 498 | ||
520 | case REMOTE_BACKLIGHT_OFF: | 499 | case REMOTE_BACKLIGHT_OFF: |
521 | remote_backlight_timer = 0; /* Disable the timeout */ | 500 | remote_backlight_timer = 0; /* Disable the timeout */ |
522 | __remote_backlight_off(); | 501 | _remote_backlight_off(); |
523 | break; | 502 | break; |
524 | #endif /* HAVE_REMOTE_LCD */ | 503 | #endif /* HAVE_REMOTE_LCD */ |
525 | 504 | ||
@@ -575,10 +554,10 @@ static void backlight_tick(void) | |||
575 | } | 554 | } |
576 | } | 555 | } |
577 | #ifdef HAVE_LCD_SLEEP | 556 | #ifdef HAVE_LCD_SLEEP |
578 | else if(lcd_sleep_timer) | 557 | else if(_lcd_sleep_timer) |
579 | { | 558 | { |
580 | lcd_sleep_timer--; | 559 | _lcd_sleep_timer--; |
581 | if(lcd_sleep_timer == 0) | 560 | if(_lcd_sleep_timer == 0) |
582 | { | 561 | { |
583 | /* Queue on bl thread or freeze! */ | 562 | /* Queue on bl thread or freeze! */ |
584 | queue_post(&backlight_queue, LCD_SLEEP, 0); | 563 | queue_post(&backlight_queue, LCD_SLEEP, 0); |
@@ -613,7 +592,7 @@ void backlight_init(void) | |||
613 | queue_init(&backlight_queue, true); | 592 | queue_init(&backlight_queue, true); |
614 | 593 | ||
615 | #ifndef SIMULATOR | 594 | #ifndef SIMULATOR |
616 | if (__backlight_init()) | 595 | if (_backlight_init()) |
617 | { | 596 | { |
618 | # ifdef HAVE_BACKLIGHT_PWM_FADING | 597 | # ifdef HAVE_BACKLIGHT_PWM_FADING |
619 | /* If backlight is already on, don't fade in. */ | 598 | /* If backlight is already on, don't fade in. */ |
@@ -706,17 +685,17 @@ void lcd_set_sleep_after_backlight_off(int index) | |||
706 | /* if given a weird value, use default */ | 685 | /* if given a weird value, use default */ |
707 | index = 3; | 686 | index = 3; |
708 | 687 | ||
709 | lcd_sleep_timeout = HZ * lcd_sleep_timeout_value[index]; | 688 | _lcd_sleep_timeout = HZ * lcd_sleep_timeout_value[index]; |
710 | 689 | ||
711 | if (backlight_timer > 0 || backlight_get_current_timeout() == 0) | 690 | if (backlight_timer > 0 || backlight_get_current_timeout() == 0) |
712 | /* Timer will be set when bl turns off or bl set to on. */ | 691 | /* Timer will be set when bl turns off or bl set to on. */ |
713 | return; | 692 | return; |
714 | 693 | ||
715 | /* Backlight is Off */ | 694 | /* Backlight is Off */ |
716 | if (lcd_sleep_timeout < 0) | 695 | if (_lcd_sleep_timeout < 0) |
717 | lcd_sleep_timer = 1; /* Always - sleep next tick */ | 696 | _lcd_sleep_timer = 1; /* Always - sleep next tick */ |
718 | else | 697 | else |
719 | lcd_sleep_timer = lcd_sleep_timeout; /* Never, other */ | 698 | _lcd_sleep_timer = _lcd_sleep_timeout; /* Never, other */ |
720 | } | 699 | } |
721 | #endif /* HAVE_LCD_SLEEP */ | 700 | #endif /* HAVE_LCD_SLEEP */ |
722 | 701 | ||
@@ -796,7 +775,7 @@ void backlight_set_brightness(int val) | |||
796 | else if (val > MAX_BRIGHTNESS_SETTING) | 775 | else if (val > MAX_BRIGHTNESS_SETTING) |
797 | val = MAX_BRIGHTNESS_SETTING; | 776 | val = MAX_BRIGHTNESS_SETTING; |
798 | 777 | ||
799 | __backlight_set_brightness(val); | 778 | _backlight_set_brightness(val); |
800 | } | 779 | } |
801 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | 780 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ |
802 | 781 | ||
@@ -808,7 +787,7 @@ void buttonlight_set_brightness(int val) | |||
808 | else if (val > MAX_BRIGHTNESS_SETTING) | 787 | else if (val > MAX_BRIGHTNESS_SETTING) |
809 | val = MAX_BRIGHTNESS_SETTING; | 788 | val = MAX_BRIGHTNESS_SETTING; |
810 | 789 | ||
811 | __buttonlight_set_brightness(val); | 790 | _buttonlight_set_brightness(val); |
812 | } | 791 | } |
813 | #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */ | 792 | #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */ |
814 | 793 | ||
@@ -818,8 +797,8 @@ void buttonlight_set_brightness(int val) | |||
818 | #if defined(BOOTLOADER) && defined(HAVE_BACKLIGHT) | 797 | #if defined(BOOTLOADER) && defined(HAVE_BACKLIGHT) |
819 | void backlight_init(void) | 798 | void backlight_init(void) |
820 | { | 799 | { |
821 | (void)__backlight_init(); | 800 | (void)_backlight_init(); |
822 | __backlight_on(); | 801 | _backlight_on(); |
823 | } | 802 | } |
824 | #endif | 803 | #endif |
825 | 804 | ||
diff --git a/firmware/export/backlight.h b/firmware/export/backlight.h index 8df45990fd..47fee7d59e 100644 --- a/firmware/export/backlight.h +++ b/firmware/export/backlight.h | |||
@@ -85,4 +85,13 @@ void buttonlight_off(void); | |||
85 | void buttonlight_set_timeout(int index); | 85 | void buttonlight_set_timeout(int index); |
86 | #endif | 86 | #endif |
87 | 87 | ||
88 | /* Private API for use in target tree backlight code only */ | ||
89 | #ifdef HAVE_BUTTON_LIGHT | ||
90 | extern int _buttonlight_timeout; | ||
91 | #endif | ||
92 | #ifdef HAVE_LCD_SLEEP | ||
93 | extern int _lcd_sleep_timer; | ||
94 | extern int _lcd_sleep_timeout; | ||
95 | #endif | ||
96 | |||
88 | #endif /* BACKLIGHT_H */ | 97 | #endif /* BACKLIGHT_H */ |
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h index 4fcb8f69dc..69095614dc 100644 --- a/firmware/export/config-ipodnano.h +++ b/firmware/export/config-ipodnano.h | |||
@@ -72,6 +72,12 @@ | |||
72 | 72 | ||
73 | /* Define this for LCD backlight available */ | 73 | /* Define this for LCD backlight available */ |
74 | #define HAVE_BACKLIGHT | 74 | #define HAVE_BACKLIGHT |
75 | #define HAVE_BACKLIGHT_BRIGHTNESS | ||
76 | |||
77 | /* Main LCD backlight brightness range and defaults */ | ||
78 | #define MIN_BRIGHTNESS_SETTING 1 | ||
79 | #define MAX_BRIGHTNESS_SETTING 32 | ||
80 | #define DEFAULT_BRIGHTNESS_SETTING 16 | ||
75 | 81 | ||
76 | /* We can fade the backlight by using PWM */ | 82 | /* We can fade the backlight by using PWM */ |
77 | #define HAVE_BACKLIGHT_PWM_FADING | 83 | #define HAVE_BACKLIGHT_PWM_FADING |
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h index eecb65c809..60a5dd8f6f 100644 --- a/firmware/export/config-ipodvideo.h +++ b/firmware/export/config-ipodvideo.h | |||
@@ -72,6 +72,12 @@ | |||
72 | 72 | ||
73 | /* Define this for LCD backlight available */ | 73 | /* Define this for LCD backlight available */ |
74 | #define HAVE_BACKLIGHT | 74 | #define HAVE_BACKLIGHT |
75 | #define HAVE_BACKLIGHT_BRIGHTNESS | ||
76 | |||
77 | /* Main LCD backlight brightness range and defaults */ | ||
78 | #define MIN_BRIGHTNESS_SETTING 1 | ||
79 | #define MAX_BRIGHTNESS_SETTING 32 | ||
80 | #define DEFAULT_BRIGHTNESS_SETTING 16 | ||
75 | 81 | ||
76 | /* We can fade the backlight by using PWM */ | 82 | /* We can fade the backlight by using PWM */ |
77 | #define HAVE_BACKLIGHT_PWM_FADING | 83 | #define HAVE_BACKLIGHT_PWM_FADING |
diff --git a/firmware/target/arm/imx31/gigabeat-s/backlight-imx31.c b/firmware/target/arm/imx31/gigabeat-s/backlight-imx31.c index 37cf086a0e..fc9abdb0e9 100644 --- a/firmware/target/arm/imx31/gigabeat-s/backlight-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/backlight-imx31.c | |||
@@ -26,25 +26,25 @@ | |||
26 | #include "spi-imx31.h" | 26 | #include "spi-imx31.h" |
27 | #include "debug.h" | 27 | #include "debug.h" |
28 | 28 | ||
29 | bool __backlight_init(void) | 29 | bool _backlight_init(void) |
30 | { | 30 | { |
31 | return true; | 31 | return true; |
32 | } | 32 | } |
33 | 33 | ||
34 | void __backlight_on(void) | 34 | void _backlight_on(void) |
35 | { | 35 | { |
36 | // This relies on the SPI interface being initialised already | 36 | // This relies on the SPI interface being initialised already |
37 | spi_send(51, 1); | 37 | spi_send(51, 1); |
38 | } | 38 | } |
39 | 39 | ||
40 | void __backlight_off(void) | 40 | void _backlight_off(void) |
41 | { | 41 | { |
42 | // This relies on the SPI interface being initialised already | 42 | // This relies on the SPI interface being initialised already |
43 | spi_send(51, 0); | 43 | spi_send(51, 0); |
44 | } | 44 | } |
45 | 45 | ||
46 | /* Assumes that the backlight has been initialized */ | 46 | /* Assumes that the backlight has been initialized */ |
47 | void __backlight_set_brightness(int brightness) | 47 | void _backlight_set_brightness(int brightness) |
48 | { | 48 | { |
49 | (void)brightness; | 49 | (void)brightness; |
50 | } | 50 | } |
diff --git a/firmware/target/arm/imx31/gigabeat-s/backlight-target.h b/firmware/target/arm/imx31/gigabeat-s/backlight-target.h index 8f14c76138..7c4b2fa0fd 100644 --- a/firmware/target/arm/imx31/gigabeat-s/backlight-target.h +++ b/firmware/target/arm/imx31/gigabeat-s/backlight-target.h | |||
@@ -19,10 +19,10 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | bool __backlight_init(void); | 22 | bool _backlight_init(void); |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | void __backlight_set_brightness(int brightness); | 25 | void _backlight_set_brightness(int brightness); |
26 | 26 | ||
27 | /* true: backlight fades off - false: backlight fades on */ | 27 | /* true: backlight fades off - false: backlight fades on */ |
28 | void __backlight_dim(bool dim); | 28 | void __backlight_dim(bool dim); |
diff --git a/firmware/target/arm/ipod/1g2g/backlight-1g2g.c b/firmware/target/arm/ipod/1g2g/backlight-1g2g.c index 88d638f4e3..688fc2a213 100644 --- a/firmware/target/arm/ipod/1g2g/backlight-1g2g.c +++ b/firmware/target/arm/ipod/1g2g/backlight-1g2g.c | |||
@@ -21,13 +21,13 @@ | |||
21 | #include "backlight.h" | 21 | #include "backlight.h" |
22 | #include "lcd.h" | 22 | #include "lcd.h" |
23 | 23 | ||
24 | void __backlight_on(void) | 24 | void _backlight_on(void) |
25 | { | 25 | { |
26 | outl(inl(0xc0001000) | 0x02, 0xc0001000); | 26 | outl(inl(0xc0001000) | 0x02, 0xc0001000); |
27 | lcd_set_backlight_inversion(true); | 27 | lcd_set_backlight_inversion(true); |
28 | } | 28 | } |
29 | 29 | ||
30 | void __backlight_off(void) | 30 | void _backlight_off(void) |
31 | { | 31 | { |
32 | outl(inl(0xc0001000) & ~0x02, 0xc0001000); | 32 | outl(inl(0xc0001000) & ~0x02, 0xc0001000); |
33 | lcd_set_backlight_inversion(false); | 33 | lcd_set_backlight_inversion(false); |
diff --git a/firmware/target/arm/ipod/1g2g/backlight-target.h b/firmware/target/arm/ipod/1g2g/backlight-target.h index a1a9785abc..31a21a4d27 100644 --- a/firmware/target/arm/ipod/1g2g/backlight-target.h +++ b/firmware/target/arm/ipod/1g2g/backlight-target.h | |||
@@ -19,8 +19,8 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | #define __backlight_init() false | 22 | #define _backlight_init() false |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | 25 | ||
26 | #endif | 26 | #endif |
diff --git a/firmware/target/arm/ipod/3g/backlight-3g.c b/firmware/target/arm/ipod/3g/backlight-3g.c index 251c722dae..41f8ba37cb 100644 --- a/firmware/target/arm/ipod/3g/backlight-3g.c +++ b/firmware/target/arm/ipod/3g/backlight-3g.c | |||
@@ -20,12 +20,12 @@ | |||
20 | #include "system.h" | 20 | #include "system.h" |
21 | #include "backlight.h" | 21 | #include "backlight.h" |
22 | 22 | ||
23 | inline void __backlight_on(void) | 23 | void _backlight_on(void) |
24 | { | 24 | { |
25 | outl(inl(0xc0001000) | 0x02, 0xc0001000); | 25 | outl(inl(0xc0001000) | 0x02, 0xc0001000); |
26 | } | 26 | } |
27 | 27 | ||
28 | inline void __backlight_off(void) | 28 | void _backlight_off(void) |
29 | { | 29 | { |
30 | outl(inl(0xc0001000) & ~0x02, 0xc0001000); | 30 | outl(inl(0xc0001000) & ~0x02, 0xc0001000); |
31 | } | 31 | } |
diff --git a/firmware/target/arm/ipod/backlight-4g_color.c b/firmware/target/arm/ipod/backlight-4g_color.c index 3097d8690b..28deba46b5 100644 --- a/firmware/target/arm/ipod/backlight-4g_color.c +++ b/firmware/target/arm/ipod/backlight-4g_color.c | |||
@@ -31,16 +31,16 @@ | |||
31 | #include "timer.h" | 31 | #include "timer.h" |
32 | #include "backlight.h" | 32 | #include "backlight.h" |
33 | 33 | ||
34 | inline void __backlight_on(void) | 34 | void _backlight_on(void) |
35 | { | 35 | { |
36 | /* brightness full */ | 36 | /* brightness full */ |
37 | outl(0x80000000 | (0xff << 16), 0x7000a010); | 37 | outl(0x80000000 | (0xff << 16), 0x7000a010); |
38 | 38 | ||
39 | /* set port b bit 3 on */ | 39 | /* set port b bit 3 on */ |
40 | outl(((0x100 | 1) << 3), 0x6000d824); | 40 | GPIO_SET_BITWISE(GPIOB_OUTPUT_VAL, 0x08); |
41 | } | 41 | } |
42 | 42 | ||
43 | inline void __backlight_off(void) | 43 | void _backlight_off(void) |
44 | { | 44 | { |
45 | /* fades backlight off on 4g */ | 45 | /* fades backlight off on 4g */ |
46 | GPO32_ENABLE &= ~0x2000000; | 46 | GPO32_ENABLE &= ~0x2000000; |
diff --git a/firmware/target/arm/ipod/backlight-mini1g_mini2g.c b/firmware/target/arm/ipod/backlight-mini1g_mini2g.c index 6cfa8f889c..e513c27349 100644 --- a/firmware/target/arm/ipod/backlight-mini1g_mini2g.c +++ b/firmware/target/arm/ipod/backlight-mini1g_mini2g.c | |||
@@ -31,14 +31,12 @@ | |||
31 | #include "timer.h" | 31 | #include "timer.h" |
32 | #include "backlight.h" | 32 | #include "backlight.h" |
33 | 33 | ||
34 | inline void __backlight_on(void) | 34 | void _backlight_hw_on(void) |
35 | { | 35 | { |
36 | /* set port B03 on */ | 36 | GPIO_SET_BITWISE(GPIOB_OUTPUT_VAL, 0x08); |
37 | outl(((0x100 | 1) << 3), 0x6000d824); | ||
38 | } | 37 | } |
39 | 38 | ||
40 | inline void __backlight_off(void) | 39 | void _backlight_hw_off(void) |
41 | { | 40 | { |
42 | /* set port B03 off */ | 41 | GPIO_CLEAR_BITWISE(GPIOB_OUTPUT_VAL, 0x08); |
43 | outl(((0x100 | 0) << 3), 0x6000d824); | ||
44 | } | 42 | } |
diff --git a/firmware/target/arm/ipod/backlight-nano_video.c b/firmware/target/arm/ipod/backlight-nano_video.c index 92a54225d0..6d77e2bd03 100644 --- a/firmware/target/arm/ipod/backlight-nano_video.c +++ b/firmware/target/arm/ipod/backlight-nano_video.c | |||
@@ -31,14 +31,89 @@ | |||
31 | #include "timer.h" | 31 | #include "timer.h" |
32 | #include "backlight.h" | 32 | #include "backlight.h" |
33 | 33 | ||
34 | inline void __backlight_on(void) | 34 | static int brightness = 1; /* 1 to 32 */ |
35 | static int current_dim = 16; /* default after enabling the backlight dimmer */ | ||
36 | static bool enabled = false; | ||
37 | |||
38 | void _backlight_set_brightness(int val) | ||
39 | { | ||
40 | int oldlevel; | ||
41 | |||
42 | if (current_dim < val) | ||
43 | { | ||
44 | do | ||
45 | { | ||
46 | oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
47 | GPIO_CLEAR_BITWISE(GPIOD_OUTPUT_VAL, 0x80); | ||
48 | udelay(10); | ||
49 | GPIO_SET_BITWISE(GPIOD_OUTPUT_VAL, 0x80); | ||
50 | set_irq_level(oldlevel); | ||
51 | udelay(10); | ||
52 | } | ||
53 | while (++current_dim < val); | ||
54 | } | ||
55 | else if (current_dim > val) | ||
56 | { | ||
57 | do | ||
58 | { | ||
59 | oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
60 | GPIO_CLEAR_BITWISE(GPIOD_OUTPUT_VAL, 0x80); | ||
61 | udelay(200); | ||
62 | GPIO_SET_BITWISE(GPIOD_OUTPUT_VAL, 0x80); | ||
63 | set_irq_level(oldlevel); | ||
64 | udelay(10); | ||
65 | } | ||
66 | while (--current_dim > val); | ||
67 | } | ||
68 | brightness = val; | ||
69 | } | ||
70 | |||
71 | void _backlight_hw_enable(bool on) | ||
72 | { | ||
73 | if (on == enabled) | ||
74 | return; | ||
75 | |||
76 | if (on) | ||
77 | { | ||
78 | GPIO_SET_BITWISE(GPIOB_OUTPUT_VAL, 0x08); | ||
79 | GPIO_SET_BITWISE(GPIOD_OUTPUT_VAL, 0x80); | ||
80 | sleep(HZ/100); | ||
81 | current_dim = 16; | ||
82 | _backlight_set_brightness(brightness); | ||
83 | } | ||
84 | else | ||
85 | { | ||
86 | GPIO_CLEAR_BITWISE(GPIOD_OUTPUT_VAL, 0x80); | ||
87 | GPIO_CLEAR_BITWISE(GPIOB_OUTPUT_VAL, 0x08); | ||
88 | sleep(HZ/20); | ||
89 | } | ||
90 | enabled = on; | ||
91 | } | ||
92 | |||
93 | /* Switch the backlight on. Works only if the backlight circuit is enabled. | ||
94 | * Called in ISR context for fading, so it must be fast. */ | ||
95 | void _backlight_led_on(void) | ||
96 | { | ||
97 | GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 0x80); | ||
98 | } | ||
99 | |||
100 | /* Switch the backlight off. Keeps the backlight circuit enabled. | ||
101 | * Called in ISR context for fading, so it must be fast. */ | ||
102 | void _backlight_led_off(void) | ||
35 | { | 103 | { |
36 | GPIO_SET_BITWISE(GPIOB_OUTPUT_VAL, 1<<3); | 104 | GPIO_CLEAR_BITWISE(GPIOL_OUTPUT_VAL, 0x80); |
37 | GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 1<<7); | ||
38 | } | 105 | } |
39 | 106 | ||
40 | inline void __backlight_off(void) | 107 | bool _backlight_init(void) |
41 | { | 108 | { |
42 | GPIO_CLEAR_BITWISE(GPIOB_OUTPUT_VAL, 1<<3); | 109 | GPIO_SET_BITWISE(GPIOB_ENABLE, 0x08); |
43 | GPIO_CLEAR_BITWISE(GPIOL_OUTPUT_VAL, 1<<7); | 110 | GPIO_SET_BITWISE(GPIOB_OUTPUT_EN, 0x08); |
111 | GPIO_SET_BITWISE(GPIOD_ENABLE, 0x80); | ||
112 | GPIO_SET_BITWISE(GPIOD_OUTPUT_EN, 0x80); | ||
113 | _backlight_hw_enable(true); | ||
114 | GPIO_SET_BITWISE(GPIOL_ENABLE, 0x80); | ||
115 | GPIO_SET_BITWISE(GPIOL_OUTPUT_EN, 0x80); | ||
116 | GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 0x80); | ||
117 | |||
118 | return true; | ||
44 | } | 119 | } |
diff --git a/firmware/target/arm/ipod/backlight-target.h b/firmware/target/arm/ipod/backlight-target.h index f4e34cb53a..1a23ecf8be 100644 --- a/firmware/target/arm/ipod/backlight-target.h +++ b/firmware/target/arm/ipod/backlight-target.h | |||
@@ -19,8 +19,38 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | #define __backlight_init() true | 22 | #if defined(IPOD_VIDEO) || defined(IPOD_NANO) |
23 | void __backlight_on(void); | 23 | |
24 | void __backlight_off(void); | 24 | bool _backlight_init(void); |
25 | void _backlight_set_brightness(int val); | ||
26 | void _backlight_led_on(void); | ||
27 | void _backlight_led_off(void); | ||
28 | void _backlight_hw_enable(bool on); | ||
29 | |||
30 | #define _backlight_on_isr() _backlight_led_on() | ||
31 | #define _backlight_off_isr() _backlight_led_off() | ||
32 | #define _backlight_on_normal() do { _backlight_hw_enable(true); \ | ||
33 | _backlight_led_on(); } while(0) | ||
34 | #define _backlight_off_normal() do { _backlight_led_off(); \ | ||
35 | _backlight_hw_enable(false); } while(0) | ||
36 | #define _BACKLIGHT_FADE_ENABLE | ||
37 | |||
38 | #elif defined HAVE_BACKLIGHT_PWM_FADING | ||
39 | |||
40 | #define _backlight_init() true | ||
41 | void _backlight_hw_on(void); | ||
42 | void _backlight_hw_off(void); | ||
43 | |||
44 | #define _backlight_on_isr() _backlight_hw_on() | ||
45 | #define _backlight_off_isr() _backlight_hw_off() | ||
46 | #define _backlight_on_normal() _backlight_hw_on() | ||
47 | #define _backlight_off_normal() _backlight_hw_off() | ||
48 | |||
49 | #else | ||
50 | |||
51 | #define _backlight_init() true | ||
52 | void _backlight_on(void); | ||
53 | void _backlight_off(void); | ||
54 | #endif | ||
25 | 55 | ||
26 | #endif | 56 | #endif |
diff --git a/firmware/target/arm/iriver/backlight-target.h b/firmware/target/arm/iriver/backlight-target.h index f4e34cb53a..0a9fa26ce4 100644 --- a/firmware/target/arm/iriver/backlight-target.h +++ b/firmware/target/arm/iriver/backlight-target.h | |||
@@ -19,8 +19,8 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | #define __backlight_init() true | 22 | #define _backlight_init() true |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | 25 | ||
26 | #endif | 26 | #endif |
diff --git a/firmware/target/arm/iriver/h10/backlight-h10.c b/firmware/target/arm/iriver/h10/backlight-h10.c index db3e0b8877..8033aebf71 100644 --- a/firmware/target/arm/iriver/h10/backlight-h10.c +++ b/firmware/target/arm/iriver/h10/backlight-h10.c | |||
@@ -22,18 +22,27 @@ | |||
22 | #include "backlight.h" | 22 | #include "backlight.h" |
23 | #include "lcd.h" | 23 | #include "lcd.h" |
24 | 24 | ||
25 | void __backlight_on(void) | 25 | void _backlight_on(void) |
26 | { | 26 | { |
27 | #if (CONFIG_LCD == LCD_H10_20GB) | 27 | #ifdef HAVE_LCD_SLEEP |
28 | lcd_enable(true); | 28 | lcd_enable(true); |
29 | _lcd_sleep_timer = 0; | ||
29 | #endif | 30 | #endif |
30 | GPIOL_OUTPUT_VAL |= 0x20; | 31 | GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 0x20); |
31 | } | 32 | } |
32 | 33 | ||
33 | void __backlight_off(void) | 34 | void _backlight_off(void) |
34 | { | 35 | { |
35 | GPIOL_OUTPUT_VAL &=~ 0x20; | 36 | GPIO_CLEAR_BITWISE(GPIOL_OUTPUT_VAL, 0x20); |
36 | #if (CONFIG_LCD == LCD_H10_20GB) | 37 | #ifdef HAVE_LCD_SLEEP |
37 | lcd_enable(false); | 38 | lcd_enable(false); |
39 | /* Start LCD sleep countdown */ | ||
40 | if (_lcd_sleep_timeout < 0) | ||
41 | { | ||
42 | _lcd_sleep_timer = 0; /* Setting == Always */ | ||
43 | lcd_sleep(); | ||
44 | } | ||
45 | else | ||
46 | _lcd_sleep_timer = _lcd_sleep_timeout; | ||
38 | #endif | 47 | #endif |
39 | } | 48 | } |
diff --git a/firmware/target/arm/pnx0101/backlight-target.h b/firmware/target/arm/pnx0101/backlight-target.h index 04236880ee..e1362c8f7f 100644 --- a/firmware/target/arm/pnx0101/backlight-target.h +++ b/firmware/target/arm/pnx0101/backlight-target.h | |||
@@ -19,8 +19,8 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | #define __backlight_init() true | 22 | #define _backlight_init() true |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | 25 | ||
26 | #endif | 26 | #endif |
diff --git a/firmware/target/arm/pnx0101/iriver-ifp7xx/backlight-ifp7xx.c b/firmware/target/arm/pnx0101/iriver-ifp7xx/backlight-ifp7xx.c index c0dc3974c0..d645555461 100644 --- a/firmware/target/arm/pnx0101/iriver-ifp7xx/backlight-ifp7xx.c +++ b/firmware/target/arm/pnx0101/iriver-ifp7xx/backlight-ifp7xx.c | |||
@@ -22,12 +22,12 @@ | |||
22 | #include "backlight.h" | 22 | #include "backlight.h" |
23 | #include "lcd.h" | 23 | #include "lcd.h" |
24 | 24 | ||
25 | void __backlight_on(void) | 25 | void _backlight_on(void) |
26 | { | 26 | { |
27 | GPIO3_SET = 1; | 27 | GPIO3_SET = 1; |
28 | } | 28 | } |
29 | 29 | ||
30 | void __backlight_off(void) | 30 | void _backlight_off(void) |
31 | { | 31 | { |
32 | GPIO3_CLR = 1; | 32 | GPIO3_CLR = 1; |
33 | } | 33 | } |
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c index c132be5f69..ee8801f99b 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c | |||
@@ -67,18 +67,8 @@ static unsigned char buttonlight_target; | |||
67 | 67 | ||
68 | static unsigned short buttonlight_trigger_now; | 68 | static unsigned short buttonlight_trigger_now; |
69 | 69 | ||
70 | void __backlight_on(void) | ||
71 | { | ||
72 | backlight_control = BACKLIGHT_CONTROL_ON; | ||
73 | } | ||
74 | |||
75 | void __backlight_off(void) | ||
76 | { | ||
77 | backlight_control = BACKLIGHT_CONTROL_OFF; | ||
78 | } | ||
79 | |||
80 | /* Assumes that the backlight has been initialized */ | 70 | /* Assumes that the backlight has been initialized */ |
81 | void __backlight_set_brightness(int brightness) | 71 | void _backlight_set_brightness(int brightness) |
82 | { | 72 | { |
83 | /* stop the interrupt from messing us up */ | 73 | /* stop the interrupt from messing us up */ |
84 | backlight_control = BACKLIGHT_CONTROL_IDLE; | 74 | backlight_control = BACKLIGHT_CONTROL_IDLE; |
@@ -328,17 +318,44 @@ static void led_control_service(void) | |||
328 | } | 318 | } |
329 | #endif /* BOOTLOADER */ | 319 | #endif /* BOOTLOADER */ |
330 | 320 | ||
331 | void __buttonlight_on(void) | 321 | static void __backlight_dim(bool dim_now) |
322 | { | ||
323 | /* dont let the interrupt tick happen */ | ||
324 | backlight_control = BACKLIGHT_CONTROL_IDLE; | ||
325 | backlight_target = (dim_now == true) ? 0 : backlight_brightness; | ||
326 | if(backlight_target==0 && backlight_brightness==0) | ||
327 | { | ||
328 | if(dim_now == false) | ||
329 | backlight_control = BACKLIGHT_CONTROL_ON; | ||
330 | else | ||
331 | backlight_control = BACKLIGHT_CONTROL_OFF; | ||
332 | } | ||
333 | else | ||
334 | backlight_control = BACKLIGHT_CONTROL_FADE; | ||
335 | } | ||
336 | |||
337 | void _backlight_on(void) | ||
338 | { | ||
339 | lcd_enable(true); | ||
340 | __backlight_dim(false); | ||
341 | } | ||
342 | |||
343 | void _backlight_off(void) | ||
344 | { | ||
345 | __backlight_dim(true); | ||
346 | } | ||
347 | |||
348 | static inline void __buttonlight_on(void) | ||
332 | { | 349 | { |
333 | buttonlight_control = BUTTONLIGHT_CONTROL_ON; | 350 | buttonlight_control = BUTTONLIGHT_CONTROL_ON; |
334 | } | 351 | } |
335 | 352 | ||
336 | void __buttonlight_off(void) | 353 | static inline void __buttonlight_off(void) |
337 | { | 354 | { |
338 | buttonlight_control = BUTTONLIGHT_CONTROL_OFF; | 355 | buttonlight_control = BUTTONLIGHT_CONTROL_OFF; |
339 | } | 356 | } |
340 | 357 | ||
341 | void __buttonlight_dim(bool dim_now) | 358 | static void __buttonlight_dim(bool dim_now) |
342 | { | 359 | { |
343 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; | 360 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; |
344 | buttonlight_target = (dim_now == true) ? 0 : buttonlight_brightness; | 361 | buttonlight_target = (dim_now == true) ? 0 : buttonlight_brightness; |
@@ -353,30 +370,27 @@ void __buttonlight_dim(bool dim_now) | |||
353 | buttonlight_control = BUTTONLIGHT_CONTROL_FADE; | 370 | buttonlight_control = BUTTONLIGHT_CONTROL_FADE; |
354 | } | 371 | } |
355 | 372 | ||
356 | void __backlight_dim(bool dim_now) | 373 | void _buttonlight_on(void) |
357 | { | 374 | { |
358 | /* dont let the interrupt tick happen */ | 375 | __buttonlight_dim(false); |
359 | backlight_control = BACKLIGHT_CONTROL_IDLE; | 376 | } |
360 | backlight_target = (dim_now == true) ? 0 : backlight_brightness; | 377 | |
361 | if(backlight_target==0 && backlight_brightness==0) | 378 | void _buttonlight_off(void) |
362 | { | 379 | { |
363 | if(dim_now == false) | 380 | if(_buttonlight_timeout>0) |
364 | backlight_control = BACKLIGHT_CONTROL_ON; | 381 | __buttonlight_dim(true); |
365 | else | ||
366 | backlight_control = BACKLIGHT_CONTROL_OFF; | ||
367 | } | ||
368 | else | 382 | else |
369 | backlight_control = BACKLIGHT_CONTROL_FADE; | 383 | __buttonlight_off(); |
370 | } | 384 | } |
371 | 385 | ||
372 | void __buttonlight_set_brightness(int brightness) | 386 | void _buttonlight_set_brightness(int brightness) |
373 | { | 387 | { |
374 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; | 388 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; |
375 | buttonlight_brightness = brightness; | 389 | buttonlight_brightness = brightness; |
376 | buttonlight_control = BUTTONLIGHT_CONTROL_SET; | 390 | buttonlight_control = BUTTONLIGHT_CONTROL_SET; |
377 | } | 391 | } |
378 | 392 | ||
379 | bool __backlight_init(void) | 393 | bool _backlight_init(void) |
380 | { | 394 | { |
381 | buttonlight_brightness = DEFAULT_BRIGHTNESS_SETTING; | 395 | buttonlight_brightness = DEFAULT_BRIGHTNESS_SETTING; |
382 | backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; | 396 | backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; |
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-target.h b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-target.h index 0589557791..b899cc977c 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-target.h +++ b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-target.h | |||
@@ -41,18 +41,12 @@ void __buttonlight_trigger(void); | |||
41 | /* See enum buttonlight_mode for available functions */ | 41 | /* See enum buttonlight_mode for available functions */ |
42 | void __buttonlight_mode(enum buttonlight_mode mode); | 42 | void __buttonlight_mode(enum buttonlight_mode mode); |
43 | 43 | ||
44 | bool __backlight_init(void); | 44 | bool _backlight_init(void); |
45 | void __backlight_on(void); | 45 | void _backlight_on(void); |
46 | void __backlight_off(void); | 46 | void _backlight_off(void); |
47 | void __backlight_set_brightness(int brightness); | 47 | void _backlight_set_brightness(int brightness); |
48 | 48 | ||
49 | void __buttonlight_set_brightness(int brightness); | 49 | void _buttonlight_set_brightness(int brightness); |
50 | 50 | void _buttonlight_on(void); | |
51 | void __buttonlight_on(void); | 51 | void _buttonlight_off(void); |
52 | void __buttonlight_off(void); | ||
53 | |||
54 | /* true: backlight fades off - false: backlight fades on */ | ||
55 | void __backlight_dim(bool dim); | ||
56 | void __buttonlight_dim(bool dim_now); | ||
57 | |||
58 | #endif | 52 | #endif |
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/power-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/power-meg-fx.c index ac37908b05..b9da66e025 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/power-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/power-meg-fx.c | |||
@@ -63,8 +63,8 @@ bool ide_powered(void) | |||
63 | void power_off(void) | 63 | void power_off(void) |
64 | { | 64 | { |
65 | /* turn off backlight and wait for 1 second */ | 65 | /* turn off backlight and wait for 1 second */ |
66 | __backlight_off(); | 66 | _backlight_off(); |
67 | __buttonlight_off(); | 67 | _buttonlight_off(); |
68 | sleep(HZ); | 68 | sleep(HZ); |
69 | /* set SLEEP bit to on in CLKCON to turn off */ | 69 | /* set SLEEP bit to on in CLKCON to turn off */ |
70 | CLKCON |=(1<<3); | 70 | CLKCON |=(1<<3); |
diff --git a/firmware/target/arm/sandisk/backlight-c200_e200.c b/firmware/target/arm/sandisk/backlight-c200_e200.c index a9fc862966..fad1018d38 100644 --- a/firmware/target/arm/sandisk/backlight-c200_e200.c +++ b/firmware/target/arm/sandisk/backlight-c200_e200.c | |||
@@ -16,6 +16,7 @@ | |||
16 | * KIND, either express or implied. | 16 | * KIND, either express or implied. |
17 | * | 17 | * |
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | #include "config.h" | ||
19 | #include "backlight-target.h" | 20 | #include "backlight-target.h" |
20 | #include "system.h" | 21 | #include "system.h" |
21 | #include "lcd.h" | 22 | #include "lcd.h" |
@@ -25,46 +26,57 @@ | |||
25 | 26 | ||
26 | static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; | 27 | static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; |
27 | 28 | ||
28 | void __backlight_set_brightness(int brightness) | 29 | void _backlight_set_brightness(int brightness) |
29 | { | 30 | { |
30 | backlight_brightness = brightness; | 31 | backlight_brightness = brightness; |
31 | 32 | ||
32 | if (brightness > 0) | 33 | if (brightness > 0) |
33 | __backlight_on(); | 34 | _backlight_on(); |
34 | else | 35 | else |
35 | __backlight_off(); | 36 | _backlight_off(); |
36 | } | 37 | } |
37 | 38 | ||
38 | void __backlight_on(void) | 39 | void _backlight_on(void) |
39 | { | 40 | { |
40 | #ifdef HAVE_LCD_ENABLE | 41 | #ifdef HAVE_LCD_ENABLE |
41 | lcd_enable(true); /* power on lcd */ | 42 | lcd_enable(true); /* power on lcd */ |
42 | #endif | 43 | #endif |
44 | #ifdef HAVE_LCD_SLEEP | ||
45 | _lcd_sleep_timer = 0; /* LCD should be awake already */ | ||
46 | #endif | ||
43 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, backlight_brightness); | 47 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, backlight_brightness); |
44 | } | 48 | } |
45 | 49 | ||
46 | void __backlight_off(void) | 50 | void _backlight_off(void) |
47 | { | 51 | { |
48 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, 0x0); | 52 | pp_i2c_send(AS3514_I2C_ADDR, DCDC15, 0x0); |
49 | #ifdef HAVE_LCD_ENABLE | 53 | #ifdef HAVE_LCD_ENABLE |
50 | lcd_enable(false); /* power off lcd */ | 54 | lcd_enable(false); /* power off lcd */ |
51 | #endif | 55 | #endif |
56 | #ifdef HAVE_LCD_SLEEP | ||
57 | /* Start LCD sleep countdown */ | ||
58 | if (_lcd_sleep_timeout < 0) | ||
59 | { | ||
60 | _lcd_sleep_timer = 0; /* Setting == Always */ | ||
61 | lcd_sleep(); | ||
62 | } | ||
63 | else | ||
64 | _lcd_sleep_timer = _lcd_sleep_timeout; | ||
65 | #endif | ||
52 | } | 66 | } |
53 | 67 | ||
54 | #ifdef HAVE_BUTTON_LIGHT | 68 | void _buttonlight_on(void) |
55 | void __buttonlight_on(void) | ||
56 | { | 69 | { |
57 | GPIOG_OUTPUT_VAL |= 0x80; | 70 | GPIO_SET_BITWISE(GPIOG_OUTPUT_VAL, 0x80); |
58 | #ifdef SANSA_C200 | 71 | #ifdef SANSA_C200 |
59 | GPIOB_OUTPUT_VAL |= 0x10; /* The "menu" backlight */ | 72 | GPIO_SET_BITWISE(GPIOB_OUTPUT_VAL, 0x10); /* The "menu" backlight */ |
60 | #endif | 73 | #endif |
61 | } | 74 | } |
62 | 75 | ||
63 | void __buttonlight_off(void) | 76 | void _buttonlight_off(void) |
64 | { | 77 | { |
65 | GPIOG_OUTPUT_VAL &=~ 0x80; | 78 | GPIO_CLEAR_BITWISE(GPIOG_OUTPUT_VAL, 0x80); |
66 | #ifdef SANSA_C200 | 79 | #ifdef SANSA_C200 |
67 | GPIOB_OUTPUT_VAL &=~ 0x10; /* The "menu" backlight */ | 80 | GPIO_CLEAR_BITWISE(GPIOB_OUTPUT_VAL, 0x10); /* The "menu" backlight */ |
68 | #endif | 81 | #endif |
69 | } | 82 | } |
70 | #endif | ||
diff --git a/firmware/target/arm/sandisk/backlight-target.h b/firmware/target/arm/sandisk/backlight-target.h index 53a87fbbb3..01573b8403 100644 --- a/firmware/target/arm/sandisk/backlight-target.h +++ b/firmware/target/arm/sandisk/backlight-target.h | |||
@@ -19,14 +19,12 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | #define __backlight_init() true | 22 | #define _backlight_init() true |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | void __backlight_set_brightness(int brightness); | 25 | void _backlight_set_brightness(int brightness); |
26 | int __backlight_is_on(void); | 26 | int __backlight_is_on(void); |
27 | 27 | ||
28 | #ifdef HAVE_BUTTON_LIGHT | 28 | void _buttonlight_on(void); |
29 | void __buttonlight_on(void); | 29 | void _buttonlight_off(void); |
30 | void __buttonlight_off(void); | ||
31 | #endif | ||
32 | #endif | 30 | #endif |
diff --git a/firmware/target/arm/tatung/tpj1022/backlight-target.h b/firmware/target/arm/tatung/tpj1022/backlight-target.h index 079a8ce8aa..6513e11122 100644 --- a/firmware/target/arm/tatung/tpj1022/backlight-target.h +++ b/firmware/target/arm/tatung/tpj1022/backlight-target.h | |||
@@ -22,8 +22,8 @@ | |||
22 | #ifndef BACKLIGHT_TARGET_H | 22 | #ifndef BACKLIGHT_TARGET_H |
23 | #define BACKLIGHT_TARGET_H | 23 | #define BACKLIGHT_TARGET_H |
24 | 24 | ||
25 | #define __backlight_init() true | 25 | #define _backlight_init() true |
26 | void __backlight_on(void); | 26 | void _backlight_on(void); |
27 | void __backlight_off(void); | 27 | void _backlight_off(void); |
28 | 28 | ||
29 | #endif | 29 | #endif |
diff --git a/firmware/target/arm/tatung/tpj1022/backlight-tpj1022.c b/firmware/target/arm/tatung/tpj1022/backlight-tpj1022.c index 51218e21be..933ad5e930 100644 --- a/firmware/target/arm/tatung/tpj1022/backlight-tpj1022.c +++ b/firmware/target/arm/tatung/tpj1022/backlight-tpj1022.c | |||
@@ -25,16 +25,16 @@ | |||
25 | #include "system.h" | 25 | #include "system.h" |
26 | #include "backlight.h" | 26 | #include "backlight.h" |
27 | 27 | ||
28 | void __backlight_on(void) | 28 | void _backlight_on(void) |
29 | { | 29 | { |
30 | #if 0 | 30 | #if 0 |
31 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); | 31 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); |
32 | pcf50606_write(0x38, 0xb0); /* Backlight ON, GPO1INV=1, GPO1ACT=011 */ | 32 | pcf50606_write(0x38, 0xb0); /* Backlight ON, GPO1INV=1, GPO1ACT=011 */ |
33 | set_irq_level(level); | 33 | set_irq_level(level); |
34 | #endif | 34 | #endif |
35 | } | 35 | } |
36 | 36 | ||
37 | void __backlight_off(void) | 37 | void _backlight_off(void) |
38 | { | 38 | { |
39 | #if 0 | 39 | #if 0 |
40 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); | 40 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); |
diff --git a/firmware/target/arm/tcc77x/logikdax/backlight-target.h b/firmware/target/arm/tcc77x/logikdax/backlight-target.h index 4714f22aa3..5a64fcf0bc 100644 --- a/firmware/target/arm/tcc77x/logikdax/backlight-target.h +++ b/firmware/target/arm/tcc77x/logikdax/backlight-target.h | |||
@@ -21,15 +21,15 @@ | |||
21 | 21 | ||
22 | #include "tcc77x.h" | 22 | #include "tcc77x.h" |
23 | 23 | ||
24 | #define __backlight_init() true | 24 | #define _backlight_init() true |
25 | 25 | ||
26 | static inline void __backlight_on(void) | 26 | static inline void _backlight_on(void) |
27 | { | 27 | { |
28 | /* Enable backlight */ | 28 | /* Enable backlight */ |
29 | GPIOD |= 0x10; | 29 | GPIOD |= 0x10; |
30 | } | 30 | } |
31 | 31 | ||
32 | static inline void __backlight_off(void) | 32 | static inline void _backlight_off(void) |
33 | { | 33 | { |
34 | /* Disable backlight */ | 34 | /* Disable backlight */ |
35 | GPIOD &= ~0x10; | 35 | GPIOD &= ~0x10; |
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c index b570f3e8fc..88ed0994f5 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c | |||
@@ -26,18 +26,18 @@ | |||
26 | #include "power.h" | 26 | #include "power.h" |
27 | #include "spi-target.h" | 27 | #include "spi-target.h" |
28 | 28 | ||
29 | void __backlight_on(void) | 29 | void _backlight_on(void) |
30 | { | 30 | { |
31 | __backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); | 31 | _backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); |
32 | } | 32 | } |
33 | 33 | ||
34 | void __backlight_off(void) | 34 | void _backlight_off(void) |
35 | { | 35 | { |
36 | __backlight_set_brightness(0); | 36 | _backlight_set_brightness(0); |
37 | } | 37 | } |
38 | 38 | ||
39 | /* Assumes that the backlight has been initialized */ | 39 | /* Assumes that the backlight has been initialized */ |
40 | void __backlight_set_brightness(int brightness) | 40 | void _backlight_set_brightness(int brightness) |
41 | { | 41 | { |
42 | uint8_t bl_command[] = {0xa4, 0x00, brightness, 0xbb}; | 42 | uint8_t bl_command[] = {0xa4, 0x00, brightness, 0xbb}; |
43 | spi_block_transfer(SPI_target_BACKLIGHT, bl_command, 4, 0, 0); | 43 | spi_block_transfer(SPI_target_BACKLIGHT, bl_command, 4, 0, 0); |
@@ -45,13 +45,13 @@ void __backlight_set_brightness(int brightness) | |||
45 | 45 | ||
46 | void __backlight_dim(bool dim_now) | 46 | void __backlight_dim(bool dim_now) |
47 | { | 47 | { |
48 | __backlight_set_brightness(dim_now ? | 48 | _backlight_set_brightness(dim_now ? |
49 | DEFAULT_BRIGHTNESS_SETTING : | 49 | DEFAULT_BRIGHTNESS_SETTING : |
50 | DEFAULT_DIMNESS_SETTING); | 50 | DEFAULT_DIMNESS_SETTING); |
51 | } | 51 | } |
52 | 52 | ||
53 | bool __backlight_init(void) | 53 | bool _backlight_init(void) |
54 | { | 54 | { |
55 | __backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); | 55 | _backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); |
56 | return true; | 56 | return true; |
57 | } | 57 | } |
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/backlight-target.h b/firmware/target/arm/tms320dm320/mrobe-500/backlight-target.h index 783b9e1320..e53f8eb691 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/backlight-target.h +++ b/firmware/target/arm/tms320dm320/mrobe-500/backlight-target.h | |||
@@ -20,10 +20,10 @@ | |||
20 | #ifndef BACKLIGHT_TARGET_H | 20 | #ifndef BACKLIGHT_TARGET_H |
21 | #define BACKLIGHT_TARGET_H | 21 | #define BACKLIGHT_TARGET_H |
22 | 22 | ||
23 | bool __backlight_init(void); | 23 | bool _backlight_init(void); |
24 | void __backlight_on(void); | 24 | void _backlight_on(void); |
25 | void __backlight_off(void); | 25 | void _backlight_off(void); |
26 | void __backlight_set_brightness(int brightness); | 26 | void _backlight_set_brightness(int brightness); |
27 | 27 | ||
28 | /* true: backlight fades off - false: backlight fades on */ | 28 | /* true: backlight fades off - false: backlight fades on */ |
29 | void __backlight_dim(bool dim); | 29 | void __backlight_dim(bool dim); |
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/power-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/power-mr500.c index 3a6dad77f4..19f2439039 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/power-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/power-mr500.c | |||
@@ -64,7 +64,7 @@ bool ide_powered(void) | |||
64 | void power_off(void) | 64 | void power_off(void) |
65 | { | 65 | { |
66 | /* turn off backlight and wait for 1 second */ | 66 | /* turn off backlight and wait for 1 second */ |
67 | __backlight_off(); | 67 | _backlight_off(); |
68 | sleep(HZ); | 68 | sleep(HZ); |
69 | /* Hard shutdown */ | 69 | /* Hard shutdown */ |
70 | IO_GIO_BITSET1|=1<<10; | 70 | IO_GIO_BITSET1|=1<<10; |
diff --git a/firmware/target/coldfire/iaudio/m5/backlight-m5.c b/firmware/target/coldfire/iaudio/m5/backlight-m5.c index 63bc5bc30e..19bc5bfcae 100644 --- a/firmware/target/coldfire/iaudio/m5/backlight-m5.c +++ b/firmware/target/coldfire/iaudio/m5/backlight-m5.c | |||
@@ -24,14 +24,14 @@ | |||
24 | #include "pcf50606.h" | 24 | #include "pcf50606.h" |
25 | #include "lcd.h" | 25 | #include "lcd.h" |
26 | 26 | ||
27 | bool __backlight_init(void) | 27 | bool _backlight_init(void) |
28 | { | 28 | { |
29 | __backlight_on(); | 29 | _backlight_on(); |
30 | 30 | ||
31 | return true; /* Backlight always ON after boot. */ | 31 | return true; /* Backlight always ON after boot. */ |
32 | } | 32 | } |
33 | 33 | ||
34 | void __backlight_on(void) | 34 | void _backlight_on(void) |
35 | { | 35 | { |
36 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); | 36 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); |
37 | 37 | ||
@@ -39,7 +39,7 @@ void __backlight_on(void) | |||
39 | set_irq_level(level); | 39 | set_irq_level(level); |
40 | } | 40 | } |
41 | 41 | ||
42 | void __backlight_off(void) | 42 | void _backlight_off(void) |
43 | { | 43 | { |
44 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); | 44 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); |
45 | 45 | ||
@@ -47,12 +47,12 @@ void __backlight_off(void) | |||
47 | set_irq_level(level); | 47 | set_irq_level(level); |
48 | } | 48 | } |
49 | 49 | ||
50 | void __remote_backlight_on(void) | 50 | void _remote_backlight_on(void) |
51 | { | 51 | { |
52 | and_l(~0x00200000, &GPIO_OUT); | 52 | and_l(~0x00200000, &GPIO_OUT); |
53 | } | 53 | } |
54 | 54 | ||
55 | void __remote_backlight_off(void) | 55 | void _remote_backlight_off(void) |
56 | { | 56 | { |
57 | or_l(0x00200000, &GPIO_OUT); | 57 | or_l(0x00200000, &GPIO_OUT); |
58 | } | 58 | } |
diff --git a/firmware/target/coldfire/iaudio/m5/backlight-target.h b/firmware/target/coldfire/iaudio/m5/backlight-target.h index 824810baa1..a5932d32db 100644 --- a/firmware/target/coldfire/iaudio/m5/backlight-target.h +++ b/firmware/target/coldfire/iaudio/m5/backlight-target.h | |||
@@ -19,10 +19,10 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | bool __backlight_init(void); | 22 | bool _backlight_init(void); |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | void __remote_backlight_on(void); | 25 | void _remote_backlight_on(void); |
26 | void __remote_backlight_off(void); | 26 | void _remote_backlight_off(void); |
27 | 27 | ||
28 | #endif | 28 | #endif |
diff --git a/firmware/target/coldfire/iaudio/x5/backlight-target.h b/firmware/target/coldfire/iaudio/x5/backlight-target.h index 6e03aaa76f..8b50638f85 100644 --- a/firmware/target/coldfire/iaudio/x5/backlight-target.h +++ b/firmware/target/coldfire/iaudio/x5/backlight-target.h | |||
@@ -19,11 +19,11 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | bool __backlight_init(void); | 22 | bool _backlight_init(void); |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | void __backlight_set_brightness(int val); | 25 | void _backlight_set_brightness(int val); |
26 | void __remote_backlight_on(void); | 26 | void _remote_backlight_on(void); |
27 | void __remote_backlight_off(void); | 27 | void _remote_backlight_off(void); |
28 | 28 | ||
29 | #endif | 29 | #endif |
diff --git a/firmware/target/coldfire/iaudio/x5/backlight-x5.c b/firmware/target/coldfire/iaudio/x5/backlight-x5.c index a2682ff1ae..667f4e7278 100644 --- a/firmware/target/coldfire/iaudio/x5/backlight-x5.c +++ b/firmware/target/coldfire/iaudio/x5/backlight-x5.c | |||
@@ -24,33 +24,42 @@ | |||
24 | #include "pcf50606.h" | 24 | #include "pcf50606.h" |
25 | #include "lcd.h" | 25 | #include "lcd.h" |
26 | 26 | ||
27 | bool __backlight_init(void) | 27 | bool _backlight_init(void) |
28 | { | 28 | { |
29 | __backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); | 29 | _backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); |
30 | __backlight_on(); | 30 | _backlight_on(); |
31 | 31 | ||
32 | return true; /* Backlight always ON after boot. */ | 32 | return true; /* Backlight always ON after boot. */ |
33 | } | 33 | } |
34 | 34 | ||
35 | void __backlight_on(void) | 35 | void _backlight_on(void) |
36 | { | 36 | { |
37 | int level; | 37 | int level; |
38 | lcd_enable(true); | 38 | lcd_enable(true); |
39 | _lcd_sleep_timer = 0; /* LCD should be awake already */ | ||
39 | level = set_irq_level(HIGHEST_IRQ_LEVEL); | 40 | level = set_irq_level(HIGHEST_IRQ_LEVEL); |
40 | pcf50606_write(0x38, 0xb0); /* Backlight ON, GPO1INV=1, GPO1ACT=011 */ | 41 | pcf50606_write(0x38, 0xb0); /* Backlight ON, GPO1INV=1, GPO1ACT=011 */ |
41 | set_irq_level(level); | 42 | set_irq_level(level); |
42 | } | 43 | } |
43 | 44 | ||
44 | void __backlight_off(void) | 45 | void _backlight_off(void) |
45 | { | 46 | { |
46 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); | 47 | int level = set_irq_level(HIGHEST_IRQ_LEVEL); |
47 | pcf50606_write(0x38, 0x80); /* Backlight OFF, GPO1INV=1, GPO1ACT=000 */ | 48 | pcf50606_write(0x38, 0x80); /* Backlight OFF, GPO1INV=1, GPO1ACT=000 */ |
48 | set_irq_level(level); | 49 | set_irq_level(level); |
49 | lcd_enable(false); | 50 | lcd_enable(false); |
51 | /* Start LCD sleep countdown */ | ||
52 | if (_lcd_sleep_timeout < 0) | ||
53 | { | ||
54 | _lcd_sleep_timer = 0; /* Setting == Always */ | ||
55 | lcd_sleep(); | ||
56 | } | ||
57 | else | ||
58 | _lcd_sleep_timer = _lcd_sleep_timeout; | ||
50 | } | 59 | } |
51 | 60 | ||
52 | /* set brightness by changing the PWM */ | 61 | /* set brightness by changing the PWM */ |
53 | void __backlight_set_brightness(int val) | 62 | void _backlight_set_brightness(int val) |
54 | { | 63 | { |
55 | /* disable IRQs while bitbanging */ | 64 | /* disable IRQs while bitbanging */ |
56 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 65 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); |
@@ -59,12 +68,12 @@ void __backlight_set_brightness(int val) | |||
59 | set_irq_level(old_irq_level); | 68 | set_irq_level(old_irq_level); |
60 | } | 69 | } |
61 | 70 | ||
62 | void __remote_backlight_on(void) | 71 | void _remote_backlight_on(void) |
63 | { | 72 | { |
64 | and_l(~0x00200000, &GPIO_OUT); | 73 | and_l(~0x00200000, &GPIO_OUT); |
65 | } | 74 | } |
66 | 75 | ||
67 | void __remote_backlight_off(void) | 76 | void _remote_backlight_off(void) |
68 | { | 77 | { |
69 | or_l(0x00200000, &GPIO_OUT); | 78 | or_l(0x00200000, &GPIO_OUT); |
70 | } | 79 | } |
diff --git a/firmware/target/coldfire/iriver/h100/backlight-h100.c b/firmware/target/coldfire/iriver/h100/backlight-h100.c index 7cff965ff9..1c3dded5e5 100644 --- a/firmware/target/coldfire/iriver/h100/backlight-h100.c +++ b/firmware/target/coldfire/iriver/h100/backlight-h100.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include "lcd.h" | 25 | #include "lcd.h" |
26 | 26 | ||
27 | /* Returns the current state of the backlight (true=ON, false=OFF). */ | 27 | /* Returns the current state of the backlight (true=ON, false=OFF). */ |
28 | bool __backlight_init(void) | 28 | bool _backlight_init(void) |
29 | { | 29 | { |
30 | or_l(0x00020000, &GPIO1_ENABLE); | 30 | or_l(0x00020000, &GPIO1_ENABLE); |
31 | or_l(0x00020000, &GPIO1_FUNCTION); | 31 | or_l(0x00020000, &GPIO1_FUNCTION); |
@@ -33,22 +33,22 @@ bool __backlight_init(void) | |||
33 | return (GPIO1_OUT & 0x00020000) ? false : true; | 33 | return (GPIO1_OUT & 0x00020000) ? false : true; |
34 | } | 34 | } |
35 | 35 | ||
36 | void __backlight_on(void) | 36 | void _backlight_hw_on(void) |
37 | { | 37 | { |
38 | and_l(~0x00020000, &GPIO1_OUT); | 38 | and_l(~0x00020000, &GPIO1_OUT); |
39 | } | 39 | } |
40 | 40 | ||
41 | void __backlight_off(void) | 41 | void _backlight_hw_off(void) |
42 | { | 42 | { |
43 | or_l(0x00020000, &GPIO1_OUT); | 43 | or_l(0x00020000, &GPIO1_OUT); |
44 | } | 44 | } |
45 | 45 | ||
46 | void __remote_backlight_on(void) | 46 | void _remote_backlight_on(void) |
47 | { | 47 | { |
48 | and_l(~0x00000800, &GPIO_OUT); | 48 | and_l(~0x00000800, &GPIO_OUT); |
49 | } | 49 | } |
50 | 50 | ||
51 | void __remote_backlight_off(void) | 51 | void _remote_backlight_off(void) |
52 | { | 52 | { |
53 | or_l(0x00000800, &GPIO_OUT); | 53 | or_l(0x00000800, &GPIO_OUT); |
54 | } | 54 | } |
diff --git a/firmware/target/coldfire/iriver/h100/backlight-target.h b/firmware/target/coldfire/iriver/h100/backlight-target.h new file mode 100644 index 0000000000..6697fb19c3 --- /dev/null +++ b/firmware/target/coldfire/iriver/h100/backlight-target.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2006 by Linus Nielsen Feltzing | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | #ifndef BACKLIGHT_TARGET_H | ||
20 | #define BACKLIGHT_TARGET_H | ||
21 | |||
22 | bool _backlight_init(void); /* Returns backlight current state (true=ON). */ | ||
23 | void _backlight_hw_on(void); | ||
24 | void _backlight_hw_off(void); | ||
25 | |||
26 | #define _backlight_on_isr() _backlight_hw_on() | ||
27 | #define _backlight_off_isr() _backlight_hw_off() | ||
28 | #define _backlight_on_normal() _backlight_hw_on() | ||
29 | #define _backlight_off_normal() _backlight_hw_off() | ||
30 | #define _BACKLIGHT_FADE_BOOST | ||
31 | |||
32 | void _remote_backlight_on(void); | ||
33 | void _remote_backlight_off(void); | ||
34 | |||
35 | #endif | ||
diff --git a/firmware/target/coldfire/iriver/h300/backlight-h300.c b/firmware/target/coldfire/iriver/h300/backlight-h300.c index 4cec54f0d7..c0d441ad3f 100644 --- a/firmware/target/coldfire/iriver/h300/backlight-h300.c +++ b/firmware/target/coldfire/iriver/h300/backlight-h300.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include "pcf50606.h" | 25 | #include "pcf50606.h" |
26 | #include "lcd.h" | 26 | #include "lcd.h" |
27 | 27 | ||
28 | bool __backlight_init(void) | 28 | bool _backlight_init(void) |
29 | { | 29 | { |
30 | or_l(0x00020000, &GPIO1_ENABLE); | 30 | or_l(0x00020000, &GPIO1_ENABLE); |
31 | or_l(0x00020000, &GPIO1_FUNCTION); | 31 | or_l(0x00020000, &GPIO1_FUNCTION); |
@@ -34,21 +34,21 @@ bool __backlight_init(void) | |||
34 | return true; /* Backlight always ON after boot. */ | 34 | return true; /* Backlight always ON after boot. */ |
35 | } | 35 | } |
36 | 36 | ||
37 | void __backlight_on(void) | 37 | void _backlight_on(void) |
38 | { | 38 | { |
39 | lcd_enable(true); | 39 | lcd_enable(true); |
40 | sleep(HZ/100); /* lcd needs time - avoid flashing for dark screens */ | 40 | sleep(HZ/100); /* lcd needs time - avoid flashing for dark screens */ |
41 | or_l(0x00020000, &GPIO1_OUT); | 41 | or_l(0x00020000, &GPIO1_OUT); |
42 | } | 42 | } |
43 | 43 | ||
44 | void __backlight_off(void) | 44 | void _backlight_off(void) |
45 | { | 45 | { |
46 | and_l(~0x00020000, &GPIO1_OUT); | 46 | and_l(~0x00020000, &GPIO1_OUT); |
47 | lcd_enable(false); | 47 | lcd_enable(false); |
48 | } | 48 | } |
49 | 49 | ||
50 | /* set brightness by changing the PWM */ | 50 | /* set brightness by changing the PWM */ |
51 | void __backlight_set_brightness(int val) | 51 | void _backlight_set_brightness(int val) |
52 | { | 52 | { |
53 | /* disable IRQs while bitbanging */ | 53 | /* disable IRQs while bitbanging */ |
54 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 54 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); |
@@ -57,12 +57,12 @@ void __backlight_set_brightness(int val) | |||
57 | set_irq_level(old_irq_level); | 57 | set_irq_level(old_irq_level); |
58 | } | 58 | } |
59 | 59 | ||
60 | void __remote_backlight_on(void) | 60 | void _remote_backlight_on(void) |
61 | { | 61 | { |
62 | and_l(~0x00000002, &GPIO1_OUT); | 62 | and_l(~0x00000002, &GPIO1_OUT); |
63 | } | 63 | } |
64 | 64 | ||
65 | void __remote_backlight_off(void) | 65 | void _remote_backlight_off(void) |
66 | { | 66 | { |
67 | or_l(0x00000002, &GPIO1_OUT); | 67 | or_l(0x00000002, &GPIO1_OUT); |
68 | } | 68 | } |
diff --git a/firmware/target/coldfire/iriver/backlight-target.h b/firmware/target/coldfire/iriver/h300/backlight-target.h index 30a57e4fbc..f0e1147304 100644 --- a/firmware/target/coldfire/iriver/backlight-target.h +++ b/firmware/target/coldfire/iriver/h300/backlight-target.h | |||
@@ -19,13 +19,11 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | bool __backlight_init(void); /* Returns backlight current state (true=ON). */ | 22 | bool _backlight_init(void); /* Returns backlight current state (true=ON). */ |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | 25 | void _backlight_set_brightness(int val); |
26 | void __backlight_set_brightness(int val); | 26 | void _remote_backlight_on(void); |
27 | #endif | 27 | void _remote_backlight_off(void); |
28 | void __remote_backlight_on(void); | ||
29 | void __remote_backlight_off(void); | ||
30 | 28 | ||
31 | #endif | 29 | #endif |
diff --git a/firmware/target/sh/archos/fm_v2/backlight-target.h b/firmware/target/sh/archos/fm_v2/backlight-target.h index 834d10bdc6..693e2c8200 100644 --- a/firmware/target/sh/archos/fm_v2/backlight-target.h +++ b/firmware/target/sh/archos/fm_v2/backlight-target.h | |||
@@ -22,15 +22,15 @@ | |||
22 | #include "config.h" | 22 | #include "config.h" |
23 | #include "rtc.h" | 23 | #include "rtc.h" |
24 | 24 | ||
25 | #define __backlight_init() true | 25 | #define _backlight_init() true |
26 | 26 | ||
27 | static inline void __backlight_on(void) | 27 | static inline void _backlight_on(void) |
28 | { | 28 | { |
29 | /* Enable square wave */ | 29 | /* Enable square wave */ |
30 | rtc_write(0x0a, rtc_read(0x0a) | 0x40); | 30 | rtc_write(0x0a, rtc_read(0x0a) | 0x40); |
31 | } | 31 | } |
32 | 32 | ||
33 | static inline void __backlight_off(void) | 33 | static inline void _backlight_off(void) |
34 | { | 34 | { |
35 | /* Disable square wave */ | 35 | /* Disable square wave */ |
36 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); | 36 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); |
diff --git a/firmware/target/sh/archos/ondio/backlight-target.h b/firmware/target/sh/archos/ondio/backlight-target.h index 9be66bd6a0..94d5eb6f2f 100644 --- a/firmware/target/sh/archos/ondio/backlight-target.h +++ b/firmware/target/sh/archos/ondio/backlight-target.h | |||
@@ -25,7 +25,7 @@ | |||
25 | #ifdef HAVE_BACKLIGHT | 25 | #ifdef HAVE_BACKLIGHT |
26 | /* A stock Ondio has no backlight, it needs a hardware mod. */ | 26 | /* A stock Ondio has no backlight, it needs a hardware mod. */ |
27 | 27 | ||
28 | static inline bool __backlight_init(void) | 28 | static inline bool _backlight_init(void) |
29 | { | 29 | { |
30 | PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */ | 30 | PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */ |
31 | or_b(0x40, &PADRH); /* drive it high */ | 31 | or_b(0x40, &PADRH); /* drive it high */ |
@@ -33,12 +33,12 @@ static inline bool __backlight_init(void) | |||
33 | return true; | 33 | return true; |
34 | } | 34 | } |
35 | 35 | ||
36 | static inline void __backlight_on(void) | 36 | static inline void _backlight_on(void) |
37 | { | 37 | { |
38 | or_b(0x40, &PADRH); /* drive it high */ | 38 | or_b(0x40, &PADRH); /* drive it high */ |
39 | } | 39 | } |
40 | 40 | ||
41 | static inline void __backlight_off(void) | 41 | static inline void _backlight_off(void) |
42 | { | 42 | { |
43 | and_b(~0x40, &PADRH); /* drive it low */ | 43 | and_b(~0x40, &PADRH); /* drive it low */ |
44 | } | 44 | } |
diff --git a/firmware/target/sh/archos/player/backlight-target.h b/firmware/target/sh/archos/player/backlight-target.h index d3bb7f39ed..ede3c86635 100644 --- a/firmware/target/sh/archos/player/backlight-target.h +++ b/firmware/target/sh/archos/player/backlight-target.h | |||
@@ -22,7 +22,7 @@ | |||
22 | #include "config.h" | 22 | #include "config.h" |
23 | #include "cpu.h" | 23 | #include "cpu.h" |
24 | 24 | ||
25 | static inline bool __backlight_init(void) | 25 | static inline bool _backlight_init(void) |
26 | { | 26 | { |
27 | PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */ | 27 | PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */ |
28 | and_b(~0x40, &PADRH); /* drive and set low */ | 28 | and_b(~0x40, &PADRH); /* drive and set low */ |
@@ -30,13 +30,13 @@ static inline bool __backlight_init(void) | |||
30 | return true; | 30 | return true; |
31 | } | 31 | } |
32 | 32 | ||
33 | static inline void __backlight_on(void) | 33 | static inline void _backlight_on(void) |
34 | { | 34 | { |
35 | and_b(~0x40, &PADRH); /* drive and set low */ | 35 | and_b(~0x40, &PADRH); /* drive and set low */ |
36 | or_b(0x40, &PAIORH); | 36 | or_b(0x40, &PAIORH); |
37 | } | 37 | } |
38 | 38 | ||
39 | static inline void __backlight_off(void) | 39 | static inline void _backlight_off(void) |
40 | { | 40 | { |
41 | and_b(~0x40, &PAIORH); /* let it float (up) */ | 41 | and_b(~0x40, &PAIORH); /* let it float (up) */ |
42 | } | 42 | } |
diff --git a/firmware/target/sh/archos/recorder/backlight-target.h b/firmware/target/sh/archos/recorder/backlight-target.h index 834d10bdc6..693e2c8200 100644 --- a/firmware/target/sh/archos/recorder/backlight-target.h +++ b/firmware/target/sh/archos/recorder/backlight-target.h | |||
@@ -22,15 +22,15 @@ | |||
22 | #include "config.h" | 22 | #include "config.h" |
23 | #include "rtc.h" | 23 | #include "rtc.h" |
24 | 24 | ||
25 | #define __backlight_init() true | 25 | #define _backlight_init() true |
26 | 26 | ||
27 | static inline void __backlight_on(void) | 27 | static inline void _backlight_on(void) |
28 | { | 28 | { |
29 | /* Enable square wave */ | 29 | /* Enable square wave */ |
30 | rtc_write(0x0a, rtc_read(0x0a) | 0x40); | 30 | rtc_write(0x0a, rtc_read(0x0a) | 0x40); |
31 | } | 31 | } |
32 | 32 | ||
33 | static inline void __backlight_off(void) | 33 | static inline void _backlight_off(void) |
34 | { | 34 | { |
35 | /* Disable square wave */ | 35 | /* Disable square wave */ |
36 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); | 36 | rtc_write(0x0a, rtc_read(0x0a) & ~0x40); |