diff options
author | Bertrik Sikken <bertrik@sikken.nl> | 2011-09-18 15:33:19 +0000 |
---|---|---|
committer | Bertrik Sikken <bertrik@sikken.nl> | 2011-09-18 15:33:19 +0000 |
commit | 1d1e8e4eb723f34e50aaf3ffcff348367817bc52 (patch) | |
tree | f656af6c729c13baccd20b6e0b616d5d4ec1b02c /firmware | |
parent | 382c6974e022be679b3d635f95e92e49ee86aac8 (diff) | |
download | rockbox-1d1e8e4eb723f34e50aaf3ffcff348367817bc52.tar.gz rockbox-1d1e8e4eb723f34e50aaf3ffcff348367817bc52.zip |
Sansa AMSv2: initialise PMU (power management unit), inspired by how the OF does it
Differences in PMU settings:
- explicitly disable the PLL inside the PMU (we don't use it)
- don't increase the PVDD1/AVDD17 voltages because the impact on runtime is still unclear
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30571 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/target/arm/as3525/system-as3525.c | 17 | ||||
-rw-r--r-- | firmware/target/arm/powermgmt-ascodec.c | 3 |
2 files changed, 17 insertions, 3 deletions
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c index 8f64597f4f..58f08a7d19 100644 --- a/firmware/target/arm/as3525/system-as3525.c +++ b/firmware/target/arm/as3525/system-as3525.c | |||
@@ -270,6 +270,23 @@ void system_init(void) | |||
270 | dma_init(); | 270 | dma_init(); |
271 | 271 | ||
272 | ascodec_init(); | 272 | ascodec_init(); |
273 | |||
274 | #if (CONFIG_CPU == AS3525v2) | ||
275 | /* PLL: disable audio PLL, we use MCLK already */ | ||
276 | ascodec_write_pmu(0x1A, 7, 0x02); | ||
277 | /* DCDC_Cntr: set switching speed of CVDD1/2 power supplies to 1 MHz */ | ||
278 | ascodec_write_pmu(0x17, 7, 0x30); | ||
279 | /* Out_Cntr2: set drive strength of 24 MHz and 32 kHz clocks to 1 mA */ | ||
280 | ascodec_write_pmu(0x1A, 2, 0xCC); | ||
281 | /* CHGVBUS2: set VBUS threshold to 3.18V and EOC threshold to 30% CC */ | ||
282 | ascodec_write_pmu(0x19, 2, 0x41); | ||
283 | #if 0 /* don't set higher voltage until impact on runtime has been checked */ | ||
284 | /* PVDD1: set PVDD1 power supply to 2.5 V */ | ||
285 | ascodec_write_pmu(0x18, 1, 0x35); | ||
286 | /* AVDD17: set AVDD17 power supply to 2.5V */ | ||
287 | ascodec_write_pmu(0x18, 7, 0x31); | ||
288 | #endif | ||
289 | #endif /* (CONFIG_CPU == AS3525v2) */ | ||
273 | 290 | ||
274 | #ifndef BOOTLOADER | 291 | #ifndef BOOTLOADER |
275 | /* setup isr for microsd monitoring and for fuzev2 scrollwheel irq */ | 292 | /* setup isr for microsd monitoring and for fuzev2 scrollwheel irq */ |
diff --git a/firmware/target/arm/powermgmt-ascodec.c b/firmware/target/arm/powermgmt-ascodec.c index c8bd1cd51f..bab40e113a 100644 --- a/firmware/target/arm/powermgmt-ascodec.c +++ b/firmware/target/arm/powermgmt-ascodec.c | |||
@@ -126,9 +126,6 @@ static void enable_charger(void) | |||
126 | void powermgmt_init_target(void) | 126 | void powermgmt_init_target(void) |
127 | { | 127 | { |
128 | /* Everything CHARGER, OFF! */ | 128 | /* Everything CHARGER, OFF! */ |
129 | #if CONFIG_CPU == AS3525v2 | ||
130 | ascodec_write_pmu(AS3543_CHARGER, 2, 0x01); //EOC current theshold 30% | ||
131 | #endif | ||
132 | ascodec_monitor_endofch(); | 129 | ascodec_monitor_endofch(); |
133 | ascodec_write_charger(TMPSUP_OFF | CHG_I_50MA | CHG_V_3_90V | CHG_OFF); | 130 | ascodec_write_charger(TMPSUP_OFF | CHG_I_50MA | CHG_V_3_90V | CHG_OFF); |
134 | } | 131 | } |