]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Bootloader/dfu.desc.c
Adding McHCK DFU Bootloader
[kiibohd-controller.git] / Bootloader / dfu.desc.c
diff --git a/Bootloader/dfu.desc.c b/Bootloader/dfu.desc.c
new file mode 100644 (file)
index 0000000..5d7d69c
--- /dev/null
@@ -0,0 +1,115 @@
+// Originally Generated from MCHCK Toolkit
+/* Copyright (c) Jacob Alexander 2014 <haata@kiibohd.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// ----- Local Includes -----
+
+#include "dfu.desc.h"
+
+
+
+// ----- Generated Includes -----
+
+#include <buildvars.h>
+
+
+
+// ----- Structs -----
+
+static const struct usb_config_1 usb_config_1 = {
+       .config = {
+               .bLength = sizeof(struct usb_desc_config_t),
+               .bDescriptorType = USB_DESC_CONFIG,
+               .wTotalLength = sizeof(struct usb_config_1),
+               .bNumInterfaces = 1,
+               .bConfigurationValue = 1,
+               .iConfiguration = 0,
+               .one = 1,
+               .bMaxPower = 100
+       },
+       .usb_function_0 = {
+               .iface = {
+                       .bLength = sizeof(struct usb_desc_iface_t),
+                       .bDescriptorType = USB_DESC_IFACE,
+                       .bInterfaceNumber = 0,
+                       .bAlternateSetting = 0,
+                       .bNumEndpoints = 0,
+                       .bInterfaceClass = USB_DEV_CLASS_APP,
+                       .bInterfaceSubClass = USB_DEV_SUBCLASS_APP_DFU,
+                       .bInterfaceProtocol = USB_DEV_PROTO_DFU_DFU,
+                       .iInterface = 0
+               },
+
+       .dfu = {
+               .bLength = sizeof(struct dfu_desc_functional),
+               .bDescriptorType = {
+                       .id = 0x1,
+                       .type_type = USB_DESC_TYPE_CLASS
+               },
+               .will_detach = 1,
+               .manifestation_tolerant = 0,
+               .can_upload = 0,
+               .can_download = 1,
+               .wDetachTimeOut = 0,
+               .wTransferSize = USB_DFU_TRANSFER_SIZE,
+               .bcdDFUVersion = { .maj = 1, .min = 1 }
+       }
+},
+
+};
+
+static const struct usbd_config usbd_config_1 = {
+       .init = init_usb_bootloader,
+       .suspend = NULL,
+       .resume = NULL,
+       .desc = &usb_config_1.config,
+       .function = {&dfu_function},
+};
+
+static const struct usb_desc_dev_t dfu_device_dev_desc = {
+       .bLength = sizeof(struct usb_desc_dev_t),
+       .bDescriptorType = USB_DESC_DEV,
+       .bcdUSB = { .maj = 2 },
+       .bDeviceClass = USB_DEV_CLASS_SEE_IFACE,
+       .bDeviceSubClass = USB_DEV_SUBCLASS_SEE_IFACE,
+       .bDeviceProtocol = USB_DEV_PROTO_SEE_IFACE,
+       .bMaxPacketSize0 = EP0_BUFSIZE,
+       .idVendor = VENDOR_ID,
+       .idProduct = PRODUCT_ID,
+       .bcdDevice = { .raw = 0 },
+       .iManufacturer = 1,
+       .iProduct = 2,
+       .iSerialNumber = 3,
+       .bNumConfigurations = 1,
+};
+
+static const struct usb_desc_string_t * const dfu_device_str_desc[] = {
+       USB_DESC_STRING_LANG_ENUS,
+       USB_DESC_STRING(STR_MANUFACTURER),
+       USB_DESC_STRING(STR_PRODUCT),
+       USB_DESC_STRING(STR_SERIAL),
+       NULL
+};
+
+const struct usbd_device dfu_device = {
+       .dev_desc = &dfu_device_dev_desc,
+       .string_descs = dfu_device_str_desc,
+       .configs = {
+               &usbd_config_1,
+               NULL
+       }
+};
+