]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Output/pjrcUSB/arm/usb_dev.c
UARTConnect enumeration working!
[kiibohd-controller.git] / Output / pjrcUSB / arm / usb_dev.c
index 5c12a4174f9a50bfa2daa8aeca64140b496ddc61..1f2e725868aadd1d25f89dd9b5dff3cff62ea81d 100644 (file)
@@ -1,7 +1,7 @@
 /* Teensyduino Core Library
  * http://www.pjrc.com/teensy/
  * Copyright (c) 2013 PJRC.COM, LLC.
- * Modifications by Jacob Alexander (2013-2014)
+ * Modifications by Jacob Alexander (2013-2015)
  *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
@@ -167,7 +167,6 @@ volatile uint8_t usb_reboot_timer = 0;
 
 static uint8_t reply_buffer[8];
 
-volatile uint8_t remote_wakeup_enabled = 0;
 
 
 // ----- Functions -----
@@ -205,6 +204,7 @@ static void usb_setup()
                print("CONFIGURE - ");
                #endif
                usb_configuration = setup.wValue;
+               Output_Available = usb_configuration;
                reg = &USB0_ENDPT1;
                cfg = usb_endpoint_config_table;
                // clear all BDT entries, free any allocated memory...
@@ -295,8 +295,7 @@ static void usb_setup()
                data = reply_buffer;
                break;
        case 0x0080: // GET_STATUS (device)
-               //I think this is the corrent endianess
-               reply_buffer[0] = (remote_wakeup_enabled)<<1;
+               reply_buffer[0] = 0;
                reply_buffer[1] = 0;
                datalen = 2;
                data = reply_buffer;
@@ -316,11 +315,6 @@ static void usb_setup()
                datalen = 2;
                break;
        case 0x0100: // CLEAR_FEATURE (device)
-               //Disable DEVICE_REMOTE_WAKEUP feature
-               if (setup.wValue == 0x01) {
-                       remote_wakeup_enabled = 0;
-               }
-               break;
        case 0x0101: // CLEAR_FEATURE (interface)
                // TODO: Currently ignoring, perhaps useful? -HaaTa
                endpoint0_stall();
@@ -341,11 +335,6 @@ static void usb_setup()
                endpoint0_stall();
                return;
        case 0x0300: // SET_FEATURE (device)
-               //Enable DEVICE_REMOTE_WAKEUP feature
-               if (setup.wValue == 0x01) {
-                   remote_wakeup_enabled = 1;
-               }
-               break;
        case 0x0301: // SET_FEATURE (interface)
                // TODO: Currently ignoring, perhaps useful? -HaaTa
                endpoint0_stall();
@@ -873,6 +862,13 @@ void usb_device_reload()
                SOFTWARE_RESET();
        }
 
+// Kiibohd mk20dx256vlh7
+#elif defined(_mk20dx256vlh7_)
+       // Copies variable into the VBAT register, must be identical to the variable in the bootloader to jump to the bootloader flash mode
+       for ( int pos = 0; pos < sizeof(sys_reset_to_loader_magic); pos++ )
+               (&VBAT)[ pos ] = sys_reset_to_loader_magic[ pos ];
+       SOFTWARE_RESET();
+
 // Teensy 3.0 and 3.1
 #else
        asm volatile("bkpt");
@@ -1120,11 +1116,6 @@ restart:
                //serial_print("sleep\n");
                USB0_ISTAT = USB_ISTAT_SLEEP;
        }
-
-       if ( (status & USB_ISTAT_RESUME /* 20 */ ) ) {
-               //serial_print("resume\n");
-               USB0_ISTAT = USB_ISTAT_RESUME;
-       }
 }
 
 
@@ -1135,11 +1126,6 @@ uint8_t usb_init()
        print("USB INIT"NL);
        #endif
 
-       // If no USB cable is attached, do not initialize usb
-       // XXX Test -HaaTa
-       //if ( USB0_OTGISTAT & USB_OTGSTAT_ID )
-       //      return 0;
-
        // Clear out endpoints table
        for ( int i = 0; i <= NUM_ENDPOINTS * 4; i++ )
        {