1
0
Fork 0
forked from len0rd/rockbox

HD200 - GPIO57 is headphone output enable. Proper handling of this line fixes hissing noise after startup.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28270 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Marcin Bukat 2010-10-13 20:35:58 +00:00
parent 29503eea86
commit d793a971d8
2 changed files with 20 additions and 1 deletions

View file

@ -190,6 +190,15 @@ void audiohw_preinit(void)
GPIOL_OUTPUT_VAL |= 0x10; /* disable */ GPIOL_OUTPUT_VAL |= 0x10; /* disable */
#endif #endif
#ifdef MPIO_HD200
/* control headphone output
* disabled on startup
*/
and_l((1<<25),&GPIO1_OUT);
or_l((1<<25), &GPIO1_ENABLE);
or_l((1<<25), &GPIO1_FUNCTION);
#endif
/* /*
* 1. Switch on power supplies. * 1. Switch on power supplies.
* By default the WM8751 is in Standby Mode, the DAC is * By default the WM8751 is in Standby Mode, the DAC is
@ -274,6 +283,11 @@ void audiohw_postinit(void)
GPIOL_OUTPUT_VAL &= ~0x10; GPIOL_OUTPUT_VAL &= ~0x10;
GPIOL_OUTPUT_EN |= 0x10; GPIOL_OUTPUT_EN |= 0x10;
#endif #endif
#ifdef MPIO_HD200
/* enable headphone output */
or_l((1<<25),&GPIO1_OUT);
#endif
} }
void audiohw_set_master_vol(int vol_l, int vol_r) void audiohw_set_master_vol(int vol_l, int vol_r)
@ -327,6 +341,11 @@ void audiohw_close(void)
/* 1. Set DACMU = 1 to soft-mute the audio DACs. */ /* 1. Set DACMU = 1 to soft-mute the audio DACs. */
audiohw_mute(true); audiohw_mute(true);
#ifdef MPIO_HD200
/* disable headphone out */
and_l(~(1<<25), &GPIO1_OUT);
#endif
/* 2. Disable all output buffers. */ /* 2. Disable all output buffers. */
wmcodec_write(PWRMGMT2, 0x0); wmcodec_write(PWRMGMT2, 0x0);

View file

@ -278,7 +278,7 @@ start:
#ifdef MPIO_HD200 #ifdef MPIO_HD200
/* Set KEEP_ACT */ /* Set KEEP_ACT */
move.l #0x02200000,%d0 move.l #0x00200000,%d0
or.l %d0,(0xb4,%a1) or.l %d0,(0xb4,%a1)
or.l %d0,(0xb8,%a1) or.l %d0,(0xb8,%a1)
or.l %d0,(0xbc,%a1) or.l %d0,(0xbc,%a1)