summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2011-09-21 21:48:19 +0000
committerBertrik Sikken <bertrik@sikken.nl>2011-09-21 21:48:19 +0000
commitb1298c2c442ebe1db5d58cbea5ffab6d2e302d74 (patch)
tree14ee2588b2427d4ea57b412c4e7347ab2d8f89cf
parent151424a6fd0ba1f6e99b2c61bc85a068f4676cd4 (diff)
downloadrockbox-b1298c2c442ebe1db5d58cbea5ffab6d2e302d74.zip
rockbox-b1298c2c442ebe1db5d58cbea5ffab6d2e302d74.tar.gz
rockbox-b1298c2c442ebe1db5d58cbea5ffab6d2e302d74.tar.bz2
rockbox-b1298c2c442ebe1db5d58cbea5ffab6d2e302d74.tar.xz
Sansa AMS/AMSv2: analog front-end register CVDD/DCDC3 doesn't exist in AMSv2, so don't modify it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30579 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/as3514.h2
-rw-r--r--firmware/target/arm/as3525/ascodec-as3525.c2
-rw-r--r--firmware/target/arm/as3525/system-as3525.c9
3 files changed, 8 insertions, 5 deletions
diff --git a/firmware/export/as3514.h b/firmware/export/as3514.h
index 0bfd445..acf1344 100644
--- a/firmware/export/as3514.h
+++ b/firmware/export/as3514.h
@@ -89,9 +89,9 @@ extern void audiohw_set_sampr_dividers(int fsel);
#endif
#define AS3514_SYSTEM 0x20
-#define AS3514_CVDD_DCDC3 0x21
#ifndef HAVE_AS3543
+#define AS3514_CVDD_DCDC3 0x21
#define AS3514_CHARGER 0x22
#define AS3514_DCDC15 0x23
#define AS3514_SUPERVISOR 0x24
diff --git a/firmware/target/arm/as3525/ascodec-as3525.c b/firmware/target/arm/as3525/ascodec-as3525.c
index 39658c0..405acf3 100644
--- a/firmware/target/arm/as3525/ascodec-as3525.c
+++ b/firmware/target/arm/as3525/ascodec-as3525.c
@@ -357,8 +357,10 @@ static void ascodec_wait(struct ascodec_request *req)
static void ascodec_async_write(unsigned int index, unsigned int value,
struct ascodec_request *req)
{
+#ifndef HAVE_AS3543
if (index == AS3514_CVDD_DCDC3) /* prevent setting of the LREG_CP_not bit */
value &= ~(1 << 5);
+#endif
ascodec_req_init(req, ASCODEC_REQ_WRITE, index, 1);
req->data[0] = value;
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index 58f08a7..78282b9 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -271,7 +271,8 @@ void system_init(void)
ascodec_init();
-#if (CONFIG_CPU == AS3525v2)
+ /* Initialize power management settings */
+#ifdef HAVE_AS3543
/* PLL: disable audio PLL, we use MCLK already */
ascodec_write_pmu(0x1A, 7, 0x02);
/* DCDC_Cntr: set switching speed of CVDD1/2 power supplies to 1 MHz */
@@ -286,7 +287,9 @@ void system_init(void)
/* AVDD17: set AVDD17 power supply to 2.5V */
ascodec_write_pmu(0x18, 7, 0x31);
#endif
-#endif /* (CONFIG_CPU == AS3525v2) */
+#else
+ ascodec_write(AS3514_CVDD_DCDC3, AS314_CP_DCDC3_SETTING);
+#endif /* HAVE_AS3543 */
#ifndef BOOTLOADER
/* setup isr for microsd monitoring and for fuzev2 scrollwheel irq */
@@ -296,8 +299,6 @@ void system_init(void)
/* pin selection for irq happens in the drivers */
#endif
- /* Initialize power management settings */
- ascodec_write(AS3514_CVDD_DCDC3, AS314_CP_DCDC3_SETTING);
#if CONFIG_TUNER
fmradio_i2c_init();
#endif