summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2011-09-18 15:33:19 +0000
committerBertrik Sikken <bertrik@sikken.nl>2011-09-18 15:33:19 +0000
commit1d1e8e4eb723f34e50aaf3ffcff348367817bc52 (patch)
treef656af6c729c13baccd20b6e0b616d5d4ec1b02c
parent382c6974e022be679b3d635f95e92e49ee86aac8 (diff)
downloadrockbox-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
-rw-r--r--firmware/target/arm/as3525/system-as3525.c17
-rw-r--r--firmware/target/arm/powermgmt-ascodec.c3
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)
126void powermgmt_init_target(void) 126void 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}