From fba52828b38ce6700472c8fa9e2d3e9824820292 Mon Sep 17 00:00:00 2001 From: funman Date: Mon, 29 Mar 2010 12:10:43 +0000 Subject: [PATCH] Fuzev2: fix backlight brightness PMU registers are write-only git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25377 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config/sansafuzev2.h | 4 ++-- .../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 7a3296d7c..b42a0d1bb 100644 --- a/firmware/export/config/sansafuzev2.h +++ b/firmware/export/config/sansafuzev2.h @@ -117,14 +117,14 @@ /* Main LCD backlight brightness range and defaults */ #define MIN_BRIGHTNESS_SETTING 1 -#define MAX_BRIGHTNESS_SETTING 12 +#define MAX_BRIGHTNESS_SETTING 25 #define DEFAULT_BRIGHTNESS_SETTING 6 /* define this if you have a light associated with the buttons */ #define HAVE_BUTTON_LIGHT /* Which backlight fading type? */ -//#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING +#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING /* define this if the unit uses a scrollwheel for navigation */ //#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 87f341828..7e21460fe 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 @@ int buttonlight_is_on = 0; -static int brightness_internal = 0; - -/* not functional */ void _backlight_set_brightness(int brightness) { - //ascodec_write(AS3514_DCDC15, brightness); - brightness_internal = brightness << 2; - brightness_internal += brightness + 5; - brightness_internal <<= 25; - brightness_internal >>= 24; ascodec_write(0x1c, 8|2); // sub register - ascodec_write(0x1b, brightness_internal|0xff); + ascodec_write(0x1b, brightness * 10); } bool _backlight_init(void) { GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed for buttonlight as well*/ + ascodec_write(0x1c, 8|1); // sub register - ascodec_write(0x1b, ascodec_read(0x1b)|0x80); + ascodec_write(0x1b, 0x80); + + ascodec_write(0x1c, 8|2); // sub register + ascodec_write(0x1b, backlight_brightness * 10); return true; } -/* not functional */ void _backlight_on(void) { #ifdef HAVE_LCD_ENABLE lcd_enable(true); /* power on lcd + visible display */ #endif -#if (CONFIG_BACKLIGHT_FADING != BACKLIGHT_FADING_SW_SETTING) /* in bootloader/sim */ - /* if we set the brightness to the settings value, then fading up - * is glitchy */ - ascodec_write(0x1c, 8|2); // sub register - ascodec_write(0x1b, brightness_internal); -#endif + ascodec_write(0x1c, 8|1); // sub register + ascodec_write(0x1b, 0x80); } -/* not functional */ void _backlight_off(void) { ascodec_write(0x1c, 8|1); // sub register - ascodec_write(0x1b, ascodec_read(0x1b) & ~0x80); + ascodec_write(0x1b, 0); #ifdef HAVE_LCD_ENABLE lcd_enable(false); /* power off visible display */ #endif -- 2.11.4.GIT