summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/as3525/ascodec-target.h9
-rw-r--r--firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c6
-rw-r--r--firmware/target/arm/as3525/sansa-clipv2/backlight-clipv2.c6
-rw-r--r--firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c15
4 files changed, 18 insertions, 18 deletions
diff --git a/firmware/target/arm/as3525/ascodec-target.h b/firmware/target/arm/as3525/ascodec-target.h
index 11474a44da..2bc99ab7e7 100644
--- a/firmware/target/arm/as3525/ascodec-target.h
+++ b/firmware/target/arm/as3525/ascodec-target.h
@@ -73,6 +73,15 @@ void ascodec_init(void);
73 73
74int ascodec_write(unsigned int index, unsigned int value); 74int ascodec_write(unsigned int index, unsigned int value);
75 75
76#if CONFIG_CPU == AS3525v2
77static inline void ascodec_write_pmu(unsigned int index, unsigned int subreg,
78 unsigned int value)
79{
80 ascodec_write(AS3543_PMU_ENABLE, 8|subreg);
81 ascodec_write(index, value);
82}
83#endif
84
76int ascodec_read(unsigned int index); 85int ascodec_read(unsigned int index);
77 86
78int ascodec_readbytes(unsigned int index, unsigned int len, unsigned char *data); 87int ascodec_readbytes(unsigned int index, unsigned int len, unsigned char *data);
diff --git a/firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c b/firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c
index 3216fc5463..ead7871592 100644
--- a/firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c
+++ b/firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c
@@ -27,8 +27,7 @@
27void _backlight_on(void) 27void _backlight_on(void)
28{ 28{
29 ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */ 29 ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */
30 ascodec_write(AS3543_PMU_ENABLE, 8|1); 30 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x90);
31 ascodec_write(AS3543_BACKLIGHT, 0x90);
32 lcd_enable(true); 31 lcd_enable(true);
33} 32}
34 33
@@ -36,6 +35,5 @@ void _backlight_off(void)
36{ 35{
37 lcd_enable(false); 36 lcd_enable(false);
38 ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */ 37 ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */
39 ascodec_write(AS3543_PMU_ENABLE, 8|1); 38 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x00);
40 ascodec_write(AS3543_BACKLIGHT, 0x00);
41} 39}
diff --git a/firmware/target/arm/as3525/sansa-clipv2/backlight-clipv2.c b/firmware/target/arm/as3525/sansa-clipv2/backlight-clipv2.c
index 72ecf29a75..abb2139381 100644
--- a/firmware/target/arm/as3525/sansa-clipv2/backlight-clipv2.c
+++ b/firmware/target/arm/as3525/sansa-clipv2/backlight-clipv2.c
@@ -27,8 +27,7 @@
27void _backlight_on(void) 27void _backlight_on(void)
28{ 28{
29 ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */ 29 ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */
30 ascodec_write(AS3543_PMU_ENABLE, 8|1); 30 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x90);
31 ascodec_write(AS3543_BACKLIGHT, 0x90);
32 lcd_enable(true); 31 lcd_enable(true);
33} 32}
34 33
@@ -36,8 +35,7 @@ void _backlight_off(void)
36{ 35{
37 lcd_enable(false); 36 lcd_enable(false);
38 ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */ 37 ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */
39 ascodec_write(AS3543_PMU_ENABLE, 8|1); 38 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x0);
40 ascodec_write(AS3543_BACKLIGHT, 0);
41} 39}
42 40
43void _buttonlight_on(void) 41void _buttonlight_on(void)
diff --git a/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c b/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
index f547111a76..1bc16babdd 100644
--- a/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
+++ b/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
@@ -30,8 +30,7 @@ int buttonlight_is_on = 0;
30 30
31void _backlight_set_brightness(int brightness) 31void _backlight_set_brightness(int brightness)
32{ 32{
33 ascodec_write(AS3543_PMU_ENABLE, 8|2); // sub register 33 ascodec_write_pmu(AS3543_BACKLIGHT, 2, brightness * 10);
34 ascodec_write(AS3543_BACKLIGHT, brightness * 10);
35} 34}
36 35
37bool _backlight_init(void) 36bool _backlight_init(void)
@@ -39,11 +38,9 @@ bool _backlight_init(void)
39 GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed 38 GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed
40 for buttonlight as well*/ 39 for buttonlight as well*/
41 40
42 ascodec_write(AS3543_PMU_ENABLE, 8|1); // sub register 41 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x80);
43 ascodec_write(AS3543_BACKLIGHT, 0x80); 42 ascodec_write_pmu(AS3543_BACKLIGHT, 2, backlight_brightness * 10);
44 43
45 ascodec_write(AS3543_PMU_ENABLE, 8|2); // sub register
46 ascodec_write(AS3543_BACKLIGHT, backlight_brightness * 10);
47 return true; 44 return true;
48} 45}
49 46
@@ -52,14 +49,12 @@ void _backlight_on(void)
52#ifdef HAVE_LCD_ENABLE 49#ifdef HAVE_LCD_ENABLE
53 lcd_enable(true); /* power on lcd + visible display */ 50 lcd_enable(true); /* power on lcd + visible display */
54#endif 51#endif
55 ascodec_write(AS3543_PMU_ENABLE, 8|1); // sub register 52 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x80);
56 ascodec_write(AS3543_BACKLIGHT, 0x80);
57} 53}
58 54
59void _backlight_off(void) 55void _backlight_off(void)
60{ 56{
61 ascodec_write(AS3543_PMU_ENABLE, 8|1); // sub register 57 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x0);
62 ascodec_write(AS3543_BACKLIGHT, 0);
63#ifdef HAVE_LCD_ENABLE 58#ifdef HAVE_LCD_ENABLE
64 lcd_enable(false); /* power off visible display */ 59 lcd_enable(false); /* power off visible display */
65#endif 60#endif