summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-03-29 12:10:43 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-03-29 12:10:43 +0000
commit60cfc1ddff64055d037db5388b4942b3de96f52d (patch)
treee43feb0d1b9edad6daae3db7d448ca27bef6878a
parent05ace8e095f3de6332560b364a158321867c7bba (diff)
downloadrockbox-60cfc1ddff64055d037db5388b4942b3de96f52d.tar.gz
rockbox-60cfc1ddff64055d037db5388b4942b3de96f52d.zip
Fuzev2: fix backlight brightness
PMU registers are write-only git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25377 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/config/sansafuzev2.h4
-rw-r--r--firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c28
2 files changed, 11 insertions, 21 deletions
diff --git a/firmware/export/config/sansafuzev2.h b/firmware/export/config/sansafuzev2.h
index 7a3296d7c0..b42a0d1bb8 100644
--- a/firmware/export/config/sansafuzev2.h
+++ b/firmware/export/config/sansafuzev2.h
@@ -117,14 +117,14 @@
117 117
118/* Main LCD backlight brightness range and defaults */ 118/* Main LCD backlight brightness range and defaults */
119#define MIN_BRIGHTNESS_SETTING 1 119#define MIN_BRIGHTNESS_SETTING 1
120#define MAX_BRIGHTNESS_SETTING 12 120#define MAX_BRIGHTNESS_SETTING 25
121#define DEFAULT_BRIGHTNESS_SETTING 6 121#define DEFAULT_BRIGHTNESS_SETTING 6
122 122
123/* define this if you have a light associated with the buttons */ 123/* define this if you have a light associated with the buttons */
124#define HAVE_BUTTON_LIGHT 124#define HAVE_BUTTON_LIGHT
125 125
126/* Which backlight fading type? */ 126/* Which backlight fading type? */
127//#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING 127#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
128 128
129/* define this if the unit uses a scrollwheel for navigation */ 129/* define this if the unit uses a scrollwheel for navigation */
130//#define HAVE_SCROLLWHEEL 130//#define HAVE_SCROLLWHEEL
diff --git a/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c b/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
index 87f3418288..7e21460fe8 100644
--- a/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
+++ b/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
@@ -28,48 +28,38 @@
28 28
29int buttonlight_is_on = 0; 29int buttonlight_is_on = 0;
30 30
31static int brightness_internal = 0;
32
33/* not functional */
34void _backlight_set_brightness(int brightness) 31void _backlight_set_brightness(int brightness)
35{ 32{
36 //ascodec_write(AS3514_DCDC15, brightness);
37 brightness_internal = brightness << 2;
38 brightness_internal += brightness + 5;
39 brightness_internal <<= 25;
40 brightness_internal >>= 24;
41 ascodec_write(0x1c, 8|2); // sub register 33 ascodec_write(0x1c, 8|2); // sub register
42 ascodec_write(0x1b, brightness_internal|0xff); 34 ascodec_write(0x1b, brightness * 10);
43} 35}
44 36
45bool _backlight_init(void) 37bool _backlight_init(void)
46{ 38{
47 GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed 39 GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed
48 for buttonlight as well*/ 40 for buttonlight as well*/
41
49 ascodec_write(0x1c, 8|1); // sub register 42 ascodec_write(0x1c, 8|1); // sub register
50 ascodec_write(0x1b, ascodec_read(0x1b)|0x80); 43 ascodec_write(0x1b, 0x80);
44
45 ascodec_write(0x1c, 8|2); // sub register
46 ascodec_write(0x1b, backlight_brightness * 10);
51 return true; 47 return true;
52} 48}
53 49
54/* not functional */
55void _backlight_on(void) 50void _backlight_on(void)
56{ 51{
57#ifdef HAVE_LCD_ENABLE 52#ifdef HAVE_LCD_ENABLE
58 lcd_enable(true); /* power on lcd + visible display */ 53 lcd_enable(true); /* power on lcd + visible display */
59#endif 54#endif
60#if (CONFIG_BACKLIGHT_FADING != BACKLIGHT_FADING_SW_SETTING) /* in bootloader/sim */ 55 ascodec_write(0x1c, 8|1); // sub register
61 /* if we set the brightness to the settings value, then fading up 56 ascodec_write(0x1b, 0x80);
62 * is glitchy */
63 ascodec_write(0x1c, 8|2); // sub register
64 ascodec_write(0x1b, brightness_internal);
65#endif
66} 57}
67 58
68/* not functional */
69void _backlight_off(void) 59void _backlight_off(void)
70{ 60{
71 ascodec_write(0x1c, 8|1); // sub register 61 ascodec_write(0x1c, 8|1); // sub register
72 ascodec_write(0x1b, ascodec_read(0x1b) & ~0x80); 62 ascodec_write(0x1b, 0);
73#ifdef HAVE_LCD_ENABLE 63#ifdef HAVE_LCD_ENABLE
74 lcd_enable(false); /* power off visible display */ 64 lcd_enable(false); /* power off visible display */
75#endif 65#endif