diff options
Diffstat (limited to 'firmware/target/coldfire/iaudio/x5')
-rw-r--r-- | firmware/target/coldfire/iaudio/x5/backlight-target.h | 12 | ||||
-rw-r--r-- | firmware/target/coldfire/iaudio/x5/backlight-x5.c | 25 |
2 files changed, 23 insertions, 14 deletions
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 | } |