|
|
|
@ -16,6 +16,7 @@ |
|
|
|
|
#include <g_dnl.h> |
|
|
|
|
#include <usb_mass_storage.h> |
|
|
|
|
#include <dfu.h> |
|
|
|
|
#include <thor.h> |
|
|
|
|
|
|
|
|
|
#include "gadget_chips.h" |
|
|
|
|
#include "composite.c" |
|
|
|
@ -101,6 +102,8 @@ static int g_dnl_do_config(struct usb_configuration *c) |
|
|
|
|
ret = dfu_add(c); |
|
|
|
|
else if (!strcmp(s, "usb_dnl_ums")) |
|
|
|
|
ret = fsg_add(c); |
|
|
|
|
else if (!strcmp(s, "usb_dnl_thor")) |
|
|
|
|
ret = thor_add(c); |
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
@ -191,8 +194,8 @@ static struct usb_composite_driver g_dnl_driver = { |
|
|
|
|
|
|
|
|
|
int g_dnl_register(const char *type) |
|
|
|
|
{ |
|
|
|
|
/* We only allow "dfu" atm, so 3 should be enough */ |
|
|
|
|
static char name[sizeof(shortname) + 3]; |
|
|
|
|
/* The largest function name is 4 */ |
|
|
|
|
static char name[sizeof(shortname) + 4]; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
if (!strcmp(type, "dfu")) { |
|
|
|
@ -201,6 +204,9 @@ int g_dnl_register(const char *type) |
|
|
|
|
} else if (!strcmp(type, "ums")) { |
|
|
|
|
strcpy(name, shortname); |
|
|
|
|
strcat(name, type); |
|
|
|
|
} else if (!strcmp(type, "thor")) { |
|
|
|
|
strcpy(name, shortname); |
|
|
|
|
strcat(name, type); |
|
|
|
|
} else { |
|
|
|
|
printf("%s: unknown command: %s\n", __func__, type); |
|
|
|
|
return -EINVAL; |
|
|
|
|