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 /firmware/target/arm/sandisk | |
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
Diffstat (limited to 'firmware/target/arm/sandisk')
-rw-r--r-- | firmware/target/arm/sandisk/backlight-c200_e200.c | 38 | ||||
-rw-r--r-- | firmware/target/arm/sandisk/backlight-target.h | 14 |
2 files changed, 31 insertions, 21 deletions
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 |