diff options
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx')
3 files changed, 52 insertions, 44 deletions
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); |