Nano2G - reboot into disk mode when USB is inserted.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23070 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2009-10-10 15:26:38 +00:00
parent 4ff7666388
commit 8c078f34ff
2 changed files with 27 additions and 13 deletions

View file

@ -20,6 +20,9 @@
****************************************************************************/
#include "config.h"
#include "usb.h"
#include "cpu.h"
#include "system.h"
#include "string.h"
void usb_init_device(void)
{
@ -27,21 +30,27 @@ void usb_init_device(void)
void usb_enable(bool on)
{
(void)on;
/* This device specific code will eventually give way to proper USB
handling, which should be the same for all S5L870x targets. */
if (on)
{
#ifdef IPOD_ARCH
/* For iPod, we can only do one thing with USB mode atm - reboot
into the flash-based disk-mode. This does not return. */
memcpy((void *)0x0002bf00, "diskmodehotstuff\1\0\0\0", 20);
system_reboot(); /* Reboot */
#endif
}
}
void usb_attach(void)
{
}
static bool usb_pin_state(void)
{
return false;
}
/* detect host or charger (INSERTED or EXTRACTED) */
int usb_detect(void)
{
return usb_pin_state() ? USB_INSERTED : USB_EXTRACTED;
#if defined(IPOD_NANO2G)
if ((PDAT14 & 0x8) == 0x0)
return USB_INSERTED;
#endif
return USB_EXTRACTED;
}