summaryrefslogtreecommitdiff
path: root/supervisor/shared
diff options
context:
space:
mode:
Diffstat (limited to 'supervisor/shared')
-rw-r--r--supervisor/shared/display.c23
-rw-r--r--supervisor/shared/serial.c1
-rw-r--r--supervisor/shared/usb/tusb_config.h9
-rw-r--r--supervisor/shared/usb/usb.c12
-rw-r--r--supervisor/shared/usb/usb_desc.c7
5 files changed, 35 insertions, 17 deletions
diff --git a/supervisor/shared/display.c b/supervisor/shared/display.c
index 9c9c66cd7..1919cf4a4 100644
--- a/supervisor/shared/display.c
+++ b/supervisor/shared/display.c
@@ -270,15 +270,20 @@ displayio_tilegrid_t blinka_sprite = {
};
#if CIRCUITPY_TERMINALIO
-#define CHILD_COUNT 2
-displayio_group_child_t splash_children[2] = {
- {&blinka_sprite, &blinka_sprite},
- {&supervisor_terminal_text_grid, &supervisor_terminal_text_grid}
+mp_obj_t members[] = { &blinka_sprite, &supervisor_terminal_text_grid, };
+mp_obj_list_t splash_children = {
+ .base = {.type = &mp_type_list },
+ .alloc = 2,
+ .len = 2,
+ .items = members,
};
#else
-#define CHILD_COUNT 1
-displayio_group_child_t splash_children[1] = {
- {&blinka_sprite, &blinka_sprite},
+mp_obj_t members[] = { &blinka_sprite };
+mp_obj_list_t splash_children = {
+ .base = {.type = &mp_type_list },
+ .alloc = 1,
+ .len = 1,
+ .items = members,
};
#endif
@@ -287,9 +292,7 @@ displayio_group_t circuitpython_splash = {
.x = 0,
.y = 0,
.scale = 2,
- .size = CHILD_COUNT,
- .max_size = CHILD_COUNT,
- .children = splash_children,
+ .members = &splash_children,
.item_removed = false,
.in_group = false,
.hidden = false,
diff --git a/supervisor/shared/serial.c b/supervisor/shared/serial.c
index b9feb04f2..9cc12de51 100644
--- a/supervisor/shared/serial.c
+++ b/supervisor/shared/serial.c
@@ -118,7 +118,6 @@ bool serial_bytes_available(void) {
return tud_cdc_available() > 0;
#endif
}
-
void serial_write_substring(const char* text, uint32_t length) {
if (length == 0) {
return;
diff --git a/supervisor/shared/usb/tusb_config.h b/supervisor/shared/usb/tusb_config.h
index d3a35f537..676810119 100644
--- a/supervisor/shared/usb/tusb_config.h
+++ b/supervisor/shared/usb/tusb_config.h
@@ -61,11 +61,16 @@
// DEVICE CONFIGURATION
//--------------------------------------------------------------------+
-#define CFG_TUD_ENDOINT0_SIZE 64
+#define CFG_TUD_ENDPOINT0_SIZE 64
//------------- CLASS -------------//
+
+// Could be 2 if secondary CDC channel requested.
+#ifndef CFG_TUD_CDC
#define CFG_TUD_CDC 1
-#define CFG_TUD_MSC 1
+#endif
+
+#define CFG_TUD_MSC CIRCUITPY_USB_MSC
#define CFG_TUD_HID CIRCUITPY_USB_HID
#define CFG_TUD_MIDI CIRCUITPY_USB_MIDI
#define CFG_TUD_VENDOR CIRCUITPY_USB_VENDOR
diff --git a/supervisor/shared/usb/usb.c b/supervisor/shared/usb/usb.c
index 43564d5d5..614bf85e0 100644
--- a/supervisor/shared/usb/usb.c
+++ b/supervisor/shared/usb/usb.c
@@ -26,7 +26,6 @@
#include "py/objstr.h"
#include "shared-bindings/microcontroller/Processor.h"
-#include "shared-module/usb_midi/__init__.h"
#include "supervisor/background_callback.h"
#include "supervisor/port.h"
#include "supervisor/serial.h"
@@ -35,6 +34,10 @@
#include "lib/utils/interrupt_char.h"
#include "lib/mp-readline/readline.h"
+#if CIRCUITPY_USB_MIDI
+#include "shared-module/usb_midi/__init__.h"
+#endif
+
#include "tusb.h"
#if CIRCUITPY_USB_VENDOR
@@ -59,6 +62,7 @@ void load_serial_number(void) {
uint8_t raw_id[COMMON_HAL_MCU_PROCESSOR_UID_LENGTH];
common_hal_mcu_processor_get_uid(raw_id);
+ usb_serial_number[0] = 0x300 | sizeof(usb_serial_number);
for (int i = 0; i < COMMON_HAL_MCU_PROCESSOR_UID_LENGTH; i++) {
for (int j = 0; j < 2; j++) {
uint8_t nibble = (raw_id[i] >> (j * 4)) & 0xf;
@@ -127,12 +131,16 @@ void usb_irq_handler(void) {
// Invoked when device is mounted
void tud_mount_cb(void) {
+#if CIRCUITPY_USB_MSC
usb_msc_mount();
+#endif
}
// Invoked when device is unmounted
void tud_umount_cb(void) {
+#if CIRCUITPY_USB_MSC
usb_msc_umount();
+#endif
}
// Invoked when usb bus is suspended
@@ -216,7 +224,7 @@ bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_requ
return true;
}
-#endif CIRCUITPY_USB_VENDOR
+#endif // CIRCUITPY_USB_VENDOR
#if MICROPY_KBD_EXCEPTION
diff --git a/supervisor/shared/usb/usb_desc.c b/supervisor/shared/usb/usb_desc.c
index 080187ebc..b08d3b227 100644
--- a/supervisor/shared/usb/usb_desc.c
+++ b/supervisor/shared/usb/usb_desc.c
@@ -43,12 +43,15 @@ uint8_t const * tud_descriptor_configuration_cb(uint8_t index) {
return usb_desc_cfg;
}
+#if CIRCUITPY_USB_HID
// Invoked when received GET HID REPORT DESCRIPTOR
// Application return pointer to descriptor
// Descriptor contents must exist long enough for transfer to complete
-uint8_t const * tud_hid_descriptor_report_cb(void) {
- return hid_report_descriptor;
+uint8_t const * tud_hid_descriptor_report_cb(uint8_t itf) {
+ (void) itf;
+ return hid_report_descriptor;
}
+#endif
// Invoked when received GET STRING DESCRIPTOR request
// Application return pointer to descriptor, whose contents must exist long enough for transfer to complete