summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2011-11-05 14:01:22 +0000
committerMarcin Bukat <marcin.bukat@gmail.com>2011-11-05 14:01:22 +0000
commitf4b74b269af2f70a1b74715888b64b61dc73eff6 (patch)
tree2e4c8a26fc6488cbc14942f4ada168d3dbf914f0 /firmware/drivers
parent9310fc0b4c78eff371101088ea31d62cf35bfb76 (diff)
MPIO HD300: vastly improve sound quality. This unfortunately means reverting r28797 which introduced poping noise
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30904 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/audio/wm8751.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c
index c37341ef26..ca62f69d95 100644
--- a/firmware/drivers/audio/wm8751.c
+++ b/firmware/drivers/audio/wm8751.c
@@ -219,20 +219,22 @@ static void audiohw_mute(bool mute)
/* Reset and power up the WM8751 */
void audiohw_preinit(void)
{
-#ifdef MROBE_100
+#if defined(MROBE_100)
/* controls headphone ouput */
GPIOL_ENABLE |= 0x10;
GPIOL_OUTPUT_EN |= 0x10;
GPIOL_OUTPUT_VAL |= 0x10; /* disable */
-#endif
-
-#ifdef MPIO_HD200
+#elif defined(MPIO_HD200)
/* control headphone output
* disabled on startup
*/
- and_l(~(1<<25),&GPIO1_OUT);
+ and_l(~(1<<25), &GPIO1_OUT);
or_l((1<<25), &GPIO1_ENABLE);
or_l((1<<25), &GPIO1_FUNCTION);
+#elif defined(MPIO_HD300)
+ and_l(~(1<<5), &GPIO1_OUT);
+ or_l((1<<5), &GPIO1_ENABLE);
+ or_l((1<<5), &GPIO1_FUNCTION);
#endif
/*
@@ -322,15 +324,15 @@ void audiohw_postinit(void)
audiohw_mute(false);
-#ifdef MROBE_100
+#if defined(MROBE_100)
/* enable headphone output */
GPIOL_OUTPUT_VAL &= ~0x10;
GPIOL_OUTPUT_EN |= 0x10;
-#endif
-
-#ifdef MPIO_HD200
+#elif defined(MPIO_HD200)
/* enable headphone output */
- or_l((1<<25),&GPIO1_OUT);
+ or_l((1<<25), &GPIO1_OUT);
+#elif defined(MPIO_HD300)
+ or_l((1<<5), &GPIO1_OUT);
#endif
}
@@ -394,9 +396,11 @@ void audiohw_close(void)
/* 1. Set DACMU = 1 to soft-mute the audio DACs. */
audiohw_mute(true);
-#ifdef MPIO_HD200
+#if defined(MPIO_HD200)
/* disable headphone out */
and_l(~(1<<25), &GPIO1_OUT);
+#elif defined(MPIO_HD300)
+ and_l(~(1<<5), &GPIO1_OUT);
#endif
/* 2. Disable all output buffers. */