diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-03-29 13:00:33 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-03-29 13:00:33 +0000 |
commit | ba76e2870e49711d393e065a52de41295352188d (patch) | |
tree | eb585751df04478fb1c74b757f4b95bfa07c0a3e | |
parent | 1bfffbcaaa7ad6ad2a9d7efcfa505c2ac124b7ac (diff) | |
download | rockbox-ba76e2870e49711d393e065a52de41295352188d.tar.gz rockbox-ba76e2870e49711d393e065a52de41295352188d.zip |
as3525v2: factorize writing to ascodec PMU
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25380 a1c6a512-1295-4272-9138-f99709370657
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 | ||
74 | int ascodec_write(unsigned int index, unsigned int value); | 74 | int ascodec_write(unsigned int index, unsigned int value); |
75 | 75 | ||
76 | #if CONFIG_CPU == AS3525v2 | ||
77 | static 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 | |||
76 | int ascodec_read(unsigned int index); | 85 | int ascodec_read(unsigned int index); |
77 | 86 | ||
78 | int ascodec_readbytes(unsigned int index, unsigned int len, unsigned char *data); | 87 | 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 @@ | |||
27 | void _backlight_on(void) | 27 | void _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 @@ | |||
27 | void _backlight_on(void) | 27 | void _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 | ||
43 | void _buttonlight_on(void) | 41 | 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; | |||
30 | 30 | ||
31 | void _backlight_set_brightness(int brightness) | 31 | void _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 | ||
37 | bool _backlight_init(void) | 36 | bool _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 | ||
59 | void _backlight_off(void) | 55 | void _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 |