summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c b/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
index 56b375b930..b1ec9b79e4 100644
--- a/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
+++ b/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
@@ -38,15 +38,16 @@ void _backlight_set_brightness(int brightness)
38 brightness_internal += brightness + 5; 38 brightness_internal += brightness + 5;
39 brightness_internal <<= 25; 39 brightness_internal <<= 25;
40 brightness_internal >>= 24; 40 brightness_internal >>= 24;
41 ascodec_write(27, brightness_internal|0xff); 41 ascodec_write(0x1c, 2); // sub register
42 ascodec_write(0x1b, brightness_internal|0xff);
42} 43}
43 44
44bool _backlight_init(void) 45bool _backlight_init(void)
45{ 46{
46 GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed 47 GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed
47 for buttonlight as well*/ 48 for buttonlight as well*/
48 ascodec_write(0x1c, 8|1); 49 ascodec_write(0x1c, 1); // sub register
49 ascodec_write(27, 0xff); 50 ascodec_write(0x1b, ascodec_read(0x1b)|0x80);
50 return true; 51 return true;
51} 52}
52 53
@@ -59,15 +60,16 @@ void _backlight_on(void)
59#if (CONFIG_BACKLIGHT_FADING != BACKLIGHT_FADING_SW_SETTING) /* in bootloader/sim */ 60#if (CONFIG_BACKLIGHT_FADING != BACKLIGHT_FADING_SW_SETTING) /* in bootloader/sim */
60 /* if we set the brightness to the settings value, then fading up 61 /* if we set the brightness to the settings value, then fading up
61 * is glitchy */ 62 * is glitchy */
62 ascodec_write(27, brightness_internal); 63 ascodec_write(0x1c, 2); // sub register
64 ascodec_write(0x1b, brightness_internal);
63#endif 65#endif
64} 66}
65 67
66/* not functional */ 68/* not functional */
67void _backlight_off(void) 69void _backlight_off(void)
68{ 70{
69 ascodec_write(0x1c, 0); 71 ascodec_write(0x1c, 1); // sub register
70 ascodec_write(27, 0); 72 ascodec_write(0x1b, ascodec_read(0x1b) & ~0x80);
71#ifdef HAVE_LCD_ENABLE 73#ifdef HAVE_LCD_ENABLE
72 lcd_enable(false); /* power off visible display */ 74 lcd_enable(false); /* power off visible display */
73#endif 75#endif