summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorSteve Bavin <pondlife@pondlife.me>2008-11-26 08:26:13 +0000
committerSteve Bavin <pondlife@pondlife.me>2008-11-26 08:26:13 +0000
commitf6847265804b650b007eb8ecdc86876214ee7302 (patch)
tree5f92d0097167f2e5c257b42427fd182e704ae4c1 /firmware/target/arm
parent756bcc4bd53b34371c073c8468cbd8c01ffe094a (diff)
downloadrockbox-f6847265804b650b007eb8ecdc86876214ee7302.tar.gz
rockbox-f6847265804b650b007eb8ecdc86876214ee7302.zip
Add software backlight fading for E100/H300/X5/D2, by Thomas Martitz and others - see FS#6800 for credits.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19221 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/sandisk/backlight-c200_e200.c14
-rw-r--r--firmware/target/arm/sandisk/backlight-target.h1
-rw-r--r--firmware/target/arm/tcc780x/cowond2/backlight-cowond2.c13
3 files changed, 8 insertions, 20 deletions
diff --git a/firmware/target/arm/sandisk/backlight-c200_e200.c b/firmware/target/arm/sandisk/backlight-c200_e200.c
index b3984ca9ad..67e0cddac9 100644
--- a/firmware/target/arm/sandisk/backlight-c200_e200.c
+++ b/firmware/target/arm/sandisk/backlight-c200_e200.c
@@ -26,16 +26,9 @@
26#include "ascodec.h" 26#include "ascodec.h"
27#include "as3514.h" 27#include "as3514.h"
28 28
29static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING;
30
31void _backlight_set_brightness(int brightness) 29void _backlight_set_brightness(int brightness)
32{ 30{
33 backlight_brightness = brightness; 31 ascodec_write(AS3514_DCDC15, brightness);
34
35 if (brightness > 0)
36 _backlight_on();
37 else
38 _backlight_off();
39} 32}
40 33
41void _backlight_on(void) 34void _backlight_on(void)
@@ -46,7 +39,10 @@ void _backlight_on(void)
46#ifdef HAVE_LCD_ENABLE 39#ifdef HAVE_LCD_ENABLE
47 lcd_enable(true); /* power on lcd + visible display */ 40 lcd_enable(true); /* power on lcd + visible display */
48#endif 41#endif
49 ascodec_write(AS3514_DCDC15, backlight_brightness); 42#ifndef USE_BACKLIGHT_SW_FADING
43 /* that part ain't useful when fading */
44 _backlight_set_brightness(backlight_brightness);
45#endif
50} 46}
51 47
52void _backlight_off(void) 48void _backlight_off(void)
diff --git a/firmware/target/arm/sandisk/backlight-target.h b/firmware/target/arm/sandisk/backlight-target.h
index 21fad6d22e..1f5e475a42 100644
--- a/firmware/target/arm/sandisk/backlight-target.h
+++ b/firmware/target/arm/sandisk/backlight-target.h
@@ -25,7 +25,6 @@
25void _backlight_on(void); 25void _backlight_on(void);
26void _backlight_off(void); 26void _backlight_off(void);
27void _backlight_set_brightness(int brightness); 27void _backlight_set_brightness(int brightness);
28int __backlight_is_on(void);
29 28
30void _buttonlight_on(void); 29void _buttonlight_on(void);
31void _buttonlight_off(void); 30void _buttonlight_off(void);
diff --git a/firmware/target/arm/tcc780x/cowond2/backlight-cowond2.c b/firmware/target/arm/tcc780x/cowond2/backlight-cowond2.c
index 6d286aee8f..39a9abf073 100644
--- a/firmware/target/arm/tcc780x/cowond2/backlight-cowond2.c
+++ b/firmware/target/arm/tcc780x/cowond2/backlight-cowond2.c
@@ -24,27 +24,20 @@
24#include "pcf50606.h" 24#include "pcf50606.h"
25#include "tcc780x.h" 25#include "tcc780x.h"
26 26
27static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING;
28
29int _backlight_init(void) 27int _backlight_init(void)
30{ 28{
31 _backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING); 29 _backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING);
30 /* set backlight on by default, since the screen is unreadable without it */
31 _backlight_on();
32 return true; 32 return true;
33} 33}
34 34
35void _backlight_set_brightness(int brightness) 35void _backlight_set_brightness(int brightness)
36{ 36{
37 backlight_brightness = brightness;
38
39 int level = disable_irq_save(); 37 int level = disable_irq_save();
40 pcf50606_write(PCF5060X_PWMC1, 0xe1 | (14-backlight_brightness)<<1); 38 pcf50606_write(PCF5060X_PWMC1, 0xe1 | (MAX_BRIGHTNESS_SETTING-brightness)<<1);
41 pcf50606_write(PCF5060X_GPOC1, 0x3); 39 pcf50606_write(PCF5060X_GPOC1, 0x3);
42 restore_irq(level); 40 restore_irq(level);
43
44 if (brightness > 0)
45 _backlight_on();
46 else
47 _backlight_off();
48} 41}
49 42
50void _backlight_on(void) 43void _backlight_on(void)