diff options
Diffstat (limited to 'libusb')
-rw-r--r-- | libusb/CMakeLists.txt | 2 | ||||
-rw-r--r-- | libusb/include/libusb/usb_common.h | 2 | ||||
-rw-r--r-- | libusb/usb_common.c | 16 |
3 files changed, 7 insertions, 13 deletions
diff --git a/libusb/CMakeLists.txt b/libusb/CMakeLists.txt index c23f30e..012ab71 100644 --- a/libusb/CMakeLists.txt +++ b/libusb/CMakeLists.txt @@ -9,9 +9,7 @@ target_sources(libusb INTERFACE usb_common.c ) target_link_libraries(libusb INTERFACE - pico_unique_id tinyusb_device - tinyusb_board libcr_ipc libmisc diff --git a/libusb/include/libusb/usb_common.h b/libusb/include/libusb/usb_common.h index e31b3ab..9fe0794 100644 --- a/libusb/include/libusb/usb_common.h +++ b/libusb/include/libusb/usb_common.h @@ -27,7 +27,7 @@ enum { /* Globals ********************************************************************/ extern uint8_t cfgnum_std; -void usb_common_earlyinit(void); +void usb_common_earlyinit(uint16_t *serial, uint8_t serial_bytelen); void usb_common_lateinit(void); COROUTINE usb_common_cr(void *arg); diff --git a/libusb/usb_common.c b/libusb/usb_common.c index ccddceb..9a23998 100644 --- a/libusb/usb_common.c +++ b/libusb/usb_common.c @@ -8,7 +8,6 @@ #include <stddef.h> /* for size_t */ #include <string.h> /* memcpy(newlib) */ #include <stdlib.h> /* for malloc(pico_malloc), realloc(pico_malloc), reallocarray(pico_malloc) */ -#include "bsp/board_api.h" /* for board_init(), board_init_after_usb(), board_usb_get_serial(TinyUSB) */ #include "tusb.h" /* for various tusb_*_t types */ #include <libmisc/assert.h> @@ -64,10 +63,8 @@ uint16_t const *tud_descriptor_string_cb(uint8_t strid, uint16_t langid) { case STRID_CFG: CONST_STR(TU_UTF16("Standard Configuration")); break; case STRID_KBD_IFC: CONST_STR(TU_UTF16("Keyboard Interface")); break; case STRID_SERIAL: -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Waddress-of-packed-member" - bytelen = 2 * board_usb_get_serial(desc.bString, TU_ARRAY_SIZE(desc.bString)); -#pragma GCC diagnostic pop + bytelen = globals.serial_bytelen; + memcpy(desc.bString, globals.serial, bytelen); break; default: debugf("GET STRING: unknown string id=%"PRIu8, strid); @@ -87,7 +84,9 @@ uint16_t const *tud_descriptor_string_cb(uint8_t strid, uint16_t langid) { /* Main entrypoints ***********************************************************/ -void usb_common_earlyinit(void) { +void usb_common_earlyinit(uint16_t *serial, uint8_t serial_bytelen) { + globals.serial = serial; + globals.serial_bytelen = serial_bytelen; if (cfgnum_std) return; cfgnum_std = usb_add_config( @@ -97,10 +96,7 @@ void usb_common_earlyinit(void) { } void usb_common_lateinit(void) { - board_init(); - tud_init(BOARD_TUD_RHPORT); - if (board_init_after_tusb) - board_init_after_tusb(); + tud_init(CONFIG_USB_COMMON_RHPORT); } COROUTINE usb_common_cr(void *_arg) { |