summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-03-29 13:00:33 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-03-29 13:00:33 +0000
commitba76e2870e49711d393e065a52de41295352188d (patch)
treeeb585751df04478fb1c74b757f4b95bfa07c0a3e /firmware
parent1bfffbcaaa7ad6ad2a9d7efcfa505c2ac124b7ac (diff)
downloadrockbox-ba76e2870e49711d393e065a52de41295352188d.tar.gz
rockbox-ba76e2870e49711d393e065a52de41295352188d.tar.bz2
rockbox-ba76e2870e49711d393e065a52de41295352188d.zip
as3525v2: factorize writing to ascodec PMU
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25380 a1c6a512-1295-4272-9138-f99709370657
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);
int ascodec_write(unsigned int index, unsigned int value);
+#if CONFIG_CPU == AS3525v2
+static inline void ascodec_write_pmu(unsigned int index, unsigned int subreg,
+ unsigned int value)
+{
+ ascodec_write(AS3543_PMU_ENABLE, 8|subreg);
+ ascodec_write(index, value);
+}
+#endif
+
int ascodec_read(unsigned int index);
int 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 @@
void _backlight_on(void)
{
ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */
- ascodec_write(AS3543_PMU_ENABLE, 8|1);
- ascodec_write(AS3543_BACKLIGHT, 0x90);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x90);
lcd_enable(true);
}
@@ -36,6 +35,5 @@ void _backlight_off(void)
{
lcd_enable(false);
ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */
- ascodec_write(AS3543_PMU_ENABLE, 8|1);
- ascodec_write(AS3543_BACKLIGHT, 0x00);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x00);
}
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 @@
void _backlight_on(void)
{
ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */
- ascodec_write(AS3543_PMU_ENABLE, 8|1);
- ascodec_write(AS3543_BACKLIGHT, 0x90);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x90);
lcd_enable(true);
}
@@ -36,8 +35,7 @@ void _backlight_off(void)
{
lcd_enable(false);
ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */
- ascodec_write(AS3543_PMU_ENABLE, 8|1);
- ascodec_write(AS3543_BACKLIGHT, 0);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x0);
}
void _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;
void _backlight_set_brightness(int brightness)
{
- ascodec_write(AS3543_PMU_ENABLE, 8|2); // sub register
- ascodec_write(AS3543_BACKLIGHT, brightness * 10);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 2, brightness * 10);
}
bool _backlight_init(void)
@@ -39,11 +38,9 @@ bool _backlight_init(void)
GPIOB_DIR |= 1<<5; /* for buttonlight, stuff below seems to be needed
for buttonlight as well*/
- ascodec_write(AS3543_PMU_ENABLE, 8|1); // sub register
- ascodec_write(AS3543_BACKLIGHT, 0x80);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x80);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 2, backlight_brightness * 10);
- ascodec_write(AS3543_PMU_ENABLE, 8|2); // sub register
- ascodec_write(AS3543_BACKLIGHT, backlight_brightness * 10);
return true;
}
@@ -52,14 +49,12 @@ void _backlight_on(void)
#ifdef HAVE_LCD_ENABLE
lcd_enable(true); /* power on lcd + visible display */
#endif
- ascodec_write(AS3543_PMU_ENABLE, 8|1); // sub register
- ascodec_write(AS3543_BACKLIGHT, 0x80);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x80);
}
void _backlight_off(void)
{
- ascodec_write(AS3543_PMU_ENABLE, 8|1); // sub register
- ascodec_write(AS3543_BACKLIGHT, 0);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x0);
#ifdef HAVE_LCD_ENABLE
lcd_enable(false); /* power off visible display */
#endif