summaryrefslogtreecommitdiff
path: root/firmware/drivers/audio/wm8751.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/audio/wm8751.c')
-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)
219/* Reset and power up the WM8751 */ 219/* Reset and power up the WM8751 */
220void audiohw_preinit(void) 220void audiohw_preinit(void)
221{ 221{
222#ifdef MROBE_100 222#if defined(MROBE_100)
223 /* controls headphone ouput */ 223 /* controls headphone ouput */
224 GPIOL_ENABLE |= 0x10; 224 GPIOL_ENABLE |= 0x10;
225 GPIOL_OUTPUT_EN |= 0x10; 225 GPIOL_OUTPUT_EN |= 0x10;
226 GPIOL_OUTPUT_VAL |= 0x10; /* disable */ 226 GPIOL_OUTPUT_VAL |= 0x10; /* disable */
227#endif 227#elif defined(MPIO_HD200)
228
229#ifdef MPIO_HD200
230 /* control headphone output 228 /* control headphone output
231 * disabled on startup 229 * disabled on startup
232 */ 230 */
233 and_l(~(1<<25),&GPIO1_OUT); 231 and_l(~(1<<25), &GPIO1_OUT);
234 or_l((1<<25), &GPIO1_ENABLE); 232 or_l((1<<25), &GPIO1_ENABLE);
235 or_l((1<<25), &GPIO1_FUNCTION); 233 or_l((1<<25), &GPIO1_FUNCTION);
234#elif defined(MPIO_HD300)
235 and_l(~(1<<5), &GPIO1_OUT);
236 or_l((1<<5), &GPIO1_ENABLE);
237 or_l((1<<5), &GPIO1_FUNCTION);
236#endif 238#endif
237 239
238 /* 240 /*
@@ -322,15 +324,15 @@ void audiohw_postinit(void)
322 324
323 audiohw_mute(false); 325 audiohw_mute(false);
324 326
325#ifdef MROBE_100 327#if defined(MROBE_100)
326 /* enable headphone output */ 328 /* enable headphone output */
327 GPIOL_OUTPUT_VAL &= ~0x10; 329 GPIOL_OUTPUT_VAL &= ~0x10;
328 GPIOL_OUTPUT_EN |= 0x10; 330 GPIOL_OUTPUT_EN |= 0x10;
329#endif 331#elif defined(MPIO_HD200)
330
331#ifdef MPIO_HD200
332 /* enable headphone output */ 332 /* enable headphone output */
333 or_l((1<<25),&GPIO1_OUT); 333 or_l((1<<25), &GPIO1_OUT);
334#elif defined(MPIO_HD300)
335 or_l((1<<5), &GPIO1_OUT);
334#endif 336#endif
335} 337}
336 338
@@ -394,9 +396,11 @@ void audiohw_close(void)
394 /* 1. Set DACMU = 1 to soft-mute the audio DACs. */ 396 /* 1. Set DACMU = 1 to soft-mute the audio DACs. */
395 audiohw_mute(true); 397 audiohw_mute(true);
396 398
397#ifdef MPIO_HD200 399#if defined(MPIO_HD200)
398 /* disable headphone out */ 400 /* disable headphone out */
399 and_l(~(1<<25), &GPIO1_OUT); 401 and_l(~(1<<25), &GPIO1_OUT);
402#elif defined(MPIO_HD300)
403 and_l(~(1<<5), &GPIO1_OUT);
400#endif 404#endif
401 405
402 /* 2. Disable all output buffers. */ 406 /* 2. Disable all output buffers. */