summaryrefslogtreecommitdiff
path: root/libusb
diff options
context:
space:
mode:
Diffstat (limited to 'libusb')
-rw-r--r--libusb/CMakeLists.txt2
-rw-r--r--libusb/include/libusb/usb_common.h2
-rw-r--r--libusb/usb_common.c16
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) {