forked from len0rd/rockbox
Player: Correctly probe the ability of the box to control HD power. This is not determined by the ROM version.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5486 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
68dd081a32
commit
78acda25b3
1 changed files with 18 additions and 6 deletions
|
@ -122,12 +122,24 @@ void PlatformInit(void)
|
|||
#endif
|
||||
|
||||
#if defined PLATFORM_PLAYER
|
||||
BRR1 = 0x19; /* 14400 Baud for monitor */
|
||||
PACR2 &= 0xFFFC; /* GPIO for PA0 (charger detection, input by default) */
|
||||
if (FW_VERSION > 451 && (PADRL & 0x01))
|
||||
{ /* "new" Player and charger not plugged? */
|
||||
PBDR |= 0x0010; /* set PB4 to 1 to power-up the harddisk early */
|
||||
PBIOR |= 0x0010; /* make PB4 an output */
|
||||
BRR1 = 0x19; /* 14400 Baud for monitor */
|
||||
PBDRL |= 0x10; /* set PB4 to 1 to power the hd early (and prepare for
|
||||
* probing in case the charger is connected) */
|
||||
PBIORL |= 0x10; /* make PB4 an output */
|
||||
PACR2 &= 0xFFFC; /* GPIO for PA0 (charger detection, input by default) */
|
||||
if (!(PADRL & 0x01)) /* charger plugged? */
|
||||
{ /* we need to probe whether the box is able to control hd power */
|
||||
int i;
|
||||
|
||||
PBIORL &= ~0x10; /* set PB4 to input */
|
||||
/* wait whether it goes low, max. ~1 ms */
|
||||
for (i = 0; (PBDRL & 0x10) && i < 1000; i++);
|
||||
|
||||
if (~(PBDRL & 0x10)) /* pulled low -> power controllable */
|
||||
PBDRL &= 0x10; /* set PB4 low */
|
||||
else /* still floating high -> not controllable */
|
||||
PBDRL |= 0x10; /* set PB4 high */
|
||||
PBIORL |= 0x10; /* ..and output again */
|
||||
}
|
||||
#elif defined PLATFORM_RECORDER
|
||||
BRR1 = 0x02; /* 115200 Baud for monitor */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue