Skip to content

Commit 5f73f2e

Browse files
committed
correct reboot to download mode
1 parent 14f9638 commit 5f73f2e

File tree

7 files changed

+23
-21
lines changed

7 files changed

+23
-21
lines changed

libraries/Adafruit_TinyUSB_Arduino/src/arduino/hid/Adafruit_USBD_HID.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,10 @@ uint16_t Adafruit_USBD_HID::getInterfaceDescriptor(uint8_t itfnum, uint8_t *buf,
8383
// usb core will automatically update endpoint number
8484
uint8_t const desc_inout[] = {
8585
TUD_HID_INOUT_DESCRIPTOR(itfnum, 0, _protocol, _desc_report_len, EPIN,
86-
EPOUT, CFG_TUD_HID_BUFSIZE, _interval_ms)};
86+
EPOUT, CFG_TUD_HID_EP_BUFSIZE, _interval_ms)};
8787
uint8_t const desc_in_only[] = {
8888
TUD_HID_DESCRIPTOR(itfnum, 0, _protocol, _desc_report_len, EPIN,
89-
CFG_TUD_HID_BUFSIZE, _interval_ms)};
89+
CFG_TUD_HID_EP_BUFSIZE, _interval_ms)};
9090

9191
uint8_t const *desc;
9292
uint16_t len;

libraries/Adafruit_TinyUSB_Arduino/src/arduino/ports/esp32/Adafruit_TinyUSB_esp32.cpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,6 @@ static void usb_device_task(void *param) {
115115
void TinyUSB_Port_InitDevice(uint8_t rhport) {
116116
(void)rhport;
117117

118-
REG_CLR_BIT(RTC_CNTL_USB_CONF_REG, RTC_CNTL_IO_MUX_RESET_DISABLE);
119-
REG_CLR_BIT(RTC_CNTL_USB_CONF_REG, RTC_CNTL_USB_RESET_DISABLE);
120-
121118
// Reset USB module
122119
periph_module_reset(PERIPH_USB_MODULE);
123120
periph_module_enable(PERIPH_USB_MODULE);
@@ -126,6 +123,10 @@ void TinyUSB_Port_InitDevice(uint8_t rhport) {
126123
usb_hal_init(&hal);
127124
configure_pins(&hal);
128125

126+
// reset core, should be in dcd_esp32sx.c (do that later with more proper testing)
127+
USB0.grstctl |= USB_CSFTRST;
128+
while ((USB0.grstctl & USB_CSFTRST) == USB_CSFTRST) {}
129+
129130
tusb_init();
130131

131132
// Create a task for tinyusb device stack
@@ -136,8 +137,9 @@ void TinyUSB_Port_InitDevice(uint8_t rhport) {
136137
void TinyUSB_Port_EnterDFU(void) {
137138
// Reset to Bootloader
138139

139-
periph_module_reset(PERIPH_USB_MODULE);
140-
periph_module_enable(PERIPH_USB_MODULE);
140+
// Reset USB Core
141+
USB0.grstctl |= USB_CSFTRST;
142+
while ((USB0.grstctl & USB_CSFTRST) == USB_CSFTRST) {}
141143

142144
REG_WRITE(RTC_CNTL_OPTION1_REG, RTC_CNTL_FORCE_DOWNLOAD_BOOT);
143145
esp_restart();

libraries/Adafruit_TinyUSB_Arduino/src/arduino/ports/esp32/tusb_config_esp32.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ extern "C" {
6666
#define CFG_TUD_CDC_TX_BUFSIZE 256
6767

6868
// MSC Buffer size of Device Mass storage
69-
#define CFG_TUD_MSC_BUFSIZE 512
69+
#define CFG_TUD_MSC_EP_BUFSIZE 512
7070

7171
// HID buffer size Should be sufficient to hold ID (if any) + Data
72-
#define CFG_TUD_HID_BUFSIZE 64
72+
#define CFG_TUD_HID_EP_BUFSIZE 64
7373

7474
// MIDI FIFO size of TX and RX
7575
#define CFG_TUD_MIDI_RX_BUFSIZE 128

libraries/Adafruit_TinyUSB_Arduino/src/arduino/ports/nrf/tusb_config_nrf.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ extern "C" {
6666
#define CFG_TUD_CDC_TX_BUFSIZE 256
6767

6868
// MSC Buffer size of Device Mass storage
69-
#define CFG_TUD_MSC_BUFSIZE 512
69+
#define CFG_TUD_MSC_EP_BUFSIZE 512
7070

7171
// HID buffer size Should be sufficient to hold ID (if any) + Data
72-
#define CFG_TUD_HID_BUFSIZE 64
72+
#define CFG_TUD_HID_EP_BUFSIZE 64
7373

7474
// MIDI FIFO size of TX and RX
7575
#define CFG_TUD_MIDI_RX_BUFSIZE 128

libraries/Adafruit_TinyUSB_Arduino/src/arduino/ports/rp2040/tusb_config_rp2040.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ extern "C" {
7070
#define CFG_TUD_CDC_TX_BUFSIZE 256
7171

7272
// MSC Buffer size of Device Mass storage
73-
#define CFG_TUD_MSC_BUFSIZE 512
73+
#define CFG_TUD_MSC_EP_BUFSIZE 512
7474

7575
// HID buffer size Should be sufficient to hold ID (if any) + Data
76-
#define CFG_TUD_HID_BUFSIZE 64
76+
#define CFG_TUD_HID_EP_BUFSIZE 64
7777

7878
// MIDI FIFO size of TX and RX
7979
#define CFG_TUD_MIDI_RX_BUFSIZE 128

libraries/Adafruit_TinyUSB_Arduino/src/arduino/ports/samd/tusb_config_samd.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ extern "C" {
7272
#define CFG_TUD_CDC_TX_BUFSIZE 256
7373

7474
// MSC Buffer size of Device Mass storage
75-
#define CFG_TUD_MSC_BUFSIZE 512
75+
#define CFG_TUD_MSC_EP_BUFSIZE 512
7676

7777
// HID buffer size Should be sufficient to hold ID (if any) + Data
78-
#define CFG_TUD_HID_BUFSIZE 64
78+
#define CFG_TUD_HID_EP_BUFSIZE 64
7979

8080
// MIDI FIFO size of TX and RX
8181
#define CFG_TUD_MIDI_RX_BUFSIZE 128

libraries/Adafruit_TinyUSB_Arduino/src/tusb_config.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@
3131

3232
#if defined(ARDUINO_ARCH_SAMD)
3333
#include "arduino/ports/samd/tusb_config_samd.h"
34-
#endif
3534

36-
#if defined(ARDUINO_ARCH_NRF52)
35+
#elif defined(ARDUINO_ARCH_NRF52)
3736
#include "arduino/ports/nrf/tusb_config_nrf.h"
38-
#endif
3937

40-
#if defined(ARDUINO_ARCH_RP2040)
38+
#elif defined(ARDUINO_ARCH_RP2040)
4139
#include "arduino/ports/rp2040/tusb_config_rp2040.h"
42-
#endif
4340

44-
#if defined(ARDUINO_ARCH_ESP32)
41+
#elif defined(ARDUINO_ARCH_ESP32)
4542
#include "arduino/ports/esp32/tusb_config_esp32.h"
43+
44+
#else
45+
#error TinyUSB Arduino Library does not support your core yet
4646
#endif
4747

4848
#ifdef __cplusplus

0 commit comments

Comments
 (0)