summaryrefslogtreecommitdiff
path: root/firmware/target/arm/sandisk
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-11-12 18:49:53 +0000
committerJens Arnold <amiconn@rockbox.org>2007-11-12 18:49:53 +0000
commitef12b3b5c678e4fa44d60061b0c1bc312e589ba1 (patch)
tree4c2572d7bf3d995be16b33fa2e46ccccad34f4ee /firmware/target/arm/sandisk
parent8537cbf091634efa57768dccff39049afdf6d288 (diff)
downloadrockbox-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.c38
-rw-r--r--firmware/target/arm/sandisk/backlight-target.h14
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
26static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; 27static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING;
27 28
28void __backlight_set_brightness(int brightness) 29void _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
38void __backlight_on(void) 39void _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
46void __backlight_off(void) 50void _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 68void _buttonlight_on(void)
55void __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
63void __buttonlight_off(void) 76void _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
23void __backlight_on(void); 23void _backlight_on(void);
24void __backlight_off(void); 24void _backlight_off(void);
25void __backlight_set_brightness(int brightness); 25void _backlight_set_brightness(int brightness);
26int __backlight_is_on(void); 26int __backlight_is_on(void);
27 27
28#ifdef HAVE_BUTTON_LIGHT 28void _buttonlight_on(void);
29void __buttonlight_on(void); 29void _buttonlight_off(void);
30void __buttonlight_off(void);
31#endif
32#endif 30#endif