summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2007-02-12 07:05:15 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2007-02-12 07:05:15 +0000
commitb0810520be34bbcedeadab92e4bf63d04af03720 (patch)
tree957160cdecd233f455172dbc88b629fa05475c5e /firmware/target/arm
parentce584280ab74aadf8496d73dd8374328e24542f7 (diff)
downloadrockbox-b0810520be34bbcedeadab92e4bf63d04af03720.tar.gz
rockbox-b0810520be34bbcedeadab92e4bf63d04af03720.zip
Gigabeat Cradle USB Support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12284 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/usb-meg-fx.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/firmware/target/arm/gigabeat/meg-fx/usb-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/usb-meg-fx.c
index 2415a099ba..503bb54069 100644
--- a/firmware/target/arm/gigabeat/meg-fx/usb-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/usb-meg-fx.c
@@ -31,21 +31,21 @@
#define USB_VPLUS_PWR_ASSERT GPBDAT |= (1 << 6)
#define USB_VPLUS_PWR_DEASSERT GPBDAT &= ~(1 << 6)
-#define USB_IS_PRESENT (!(GPFDAT & 1))
-
+#define USB_UNIT_IS_PRESENT !(GPFDAT & 0x01)
+#define USB_CRADLE_IS_PRESENT ((GPFDAT &0x02)&&!(GPGDAT&0x00004000))
+#define USB_CRADLE_BUS_ENABLE GPHDAT |= (1 << 8)
+#define USB_CRADLE_BUS_DISABLE GPHDAT &= ~(1 << 8)
/* The usb detect is one pin to the cpu active low */
inline bool usb_detect(void)
{
- return USB_IS_PRESENT;
+ return USB_UNIT_IS_PRESENT | USB_CRADLE_IS_PRESENT;
}
-
-
void usb_init_device(void)
{
- USB_VPLUS_PWR_ASSERT;
+ USB_VPLUS_PWR_ASSERT;
sleep(HZ/20);
/* Reset the usb port */
@@ -70,22 +70,22 @@ void usb_init_device(void)
sleep(HZ/25);
}
-
-
void usb_enable(bool on)
{
if (on)
{
- /* make sure ata_en is high */
+ /* make sure ata_en is high */
USB_VPLUS_PWR_ASSERT;
- USB_ATA_ENABLE;
+ USB_ATA_ENABLE;
+ if(USB_CRADLE_IS_PRESENT) USB_CRADLE_BUS_ENABLE;
}
else
{
/* make sure ata_en is low */
+ if(USB_CRADLE_IS_PRESENT) USB_CRADLE_BUS_DISABLE;
USB_ATA_DISABLE;
USB_VPLUS_PWR_DEASSERT;
}
-
+
sleep(HZ/20); // > 50ms for detecting the enable state change
}