summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/as3525/usb-as3525.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/firmware/target/arm/as3525/usb-as3525.c b/firmware/target/arm/as3525/usb-as3525.c
index ab2f51e..9fcf2cb 100644
--- a/firmware/target/arm/as3525/usb-as3525.c
+++ b/firmware/target/arm/as3525/usb-as3525.c
@@ -24,6 +24,16 @@
#include "as3525.h"
#include <stdbool.h>
+#if defined(SANSA_CLIP)
+#define USB_DETECT_PIN 6
+
+#elif defined(SANSA_FUZE) || defined(SANSA_E200V2)
+#define USB_DETECT_PIN 3
+
+#elif defined(SANSA_C200V2)
+#define USB_DETECT_PIN 1
+#endif
+
void usb_enable(bool on)
{
(void)on;
@@ -31,19 +41,13 @@ void usb_enable(bool on)
void usb_init_device(void)
{
- /* TODO */
+ GPIOA_DIR &= ~(1 << USB_DETECT_PIN); /* set as input */
}
int usb_detect(void)
{
-#if defined(SANSA_CLIP)
- return !GPIOA_PIN(6);
-#elif defined(SANSA_FUZE) || defined(SANSA_E200V2)
- return !GPIOA_PIN(3);
-#elif defined(SANSA_C200V2)
- return !GPIOA_PIN(1);
-#else
- /* TODO: Implement USB detection */
- return USB_EXTRACTED;
-#endif
+ if (GPIOA_PIN( USB_DETECT_PIN ))
+ return USB_INSERTED;
+ else
+ return USB_EXTRACTED;
}