From ba76e2870e49711d393e065a52de41295352188d Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Mon, 29 Mar 2010 13:00:33 +0000 Subject: as3525v2: factorize writing to ascodec PMU git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25380 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/as3525/ascodec-target.h | 9 +++++++++ .../target/arm/as3525/sansa-clipplus/backlight-clip.c | 6 ++---- .../target/arm/as3525/sansa-clipv2/backlight-clipv2.c | 6 ++---- .../target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c | 15 +++++---------- 4 files changed, 18 insertions(+), 18 deletions(-) (limited to 'firmware') 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 -- cgit v1.2.3