diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-03-29 12:10:43 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-03-29 12:10:43 +0000 |
commit | 60cfc1ddff64055d037db5388b4942b3de96f52d (patch) | |
tree | e43feb0d1b9edad6daae3db7d448ca27bef6878a | |
parent | 05ace8e095f3de6332560b364a158321867c7bba (diff) | |
download | rockbox-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.h | 4 | ||||
-rw-r--r-- | firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c | 28 |
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 | ||
29 | int buttonlight_is_on = 0; | 29 | int buttonlight_is_on = 0; |
30 | 30 | ||
31 | static int brightness_internal = 0; | ||
32 | |||
33 | /* not functional */ | ||
34 | void _backlight_set_brightness(int brightness) | 31 | void _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 | ||
45 | bool _backlight_init(void) | 37 | bool _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 */ | ||
55 | void _backlight_on(void) | 50 | void _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 */ | ||
69 | void _backlight_off(void) | 59 | void _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 |