From 60cfc1ddff64055d037db5388b4942b3de96f52d Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Mon, 29 Mar 2010 12:10:43 +0000 Subject: Fuzev2: fix backlight brightness PMU registers are write-only git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25377 a1c6a512-1295-4272-9138-f99709370657 --- .../arm/as3525/sansa-fuzev2/backlight-fuzev2.c | 28 +++++++--------------- 1 file changed, 9 insertions(+), 19 deletions(-) (limited to 'firmware/target/arm/as3525') 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 @@ 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 -- cgit v1.2.3