diff options
Diffstat (limited to 'firmware/target/arm')
24 files changed, 264 insertions, 134 deletions
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; |