Skip to content

Commit ab16f98

Browse files
committed
add menu dropdown list for usb stack selection
1 parent 617cc6c commit ab16f98

21 files changed

+108
-14
lines changed

boards.txt

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ menu.speed=CPU Speed
1919
menu.opt=Optimize
2020
menu.maxspi=Max SPI
2121
menu.maxqspi=Max QSPI
22+
menu.usbstack=USB Stack
2223

2324
# Adafruit Feather M0 (SAMD21)
2425
# ------------------------------
@@ -49,6 +50,9 @@ adafruit_feather_m0.build.vid=0x239A
4950
adafruit_feather_m0.build.pid=0x800B
5051
adafruit_feather_m0.bootloader.tool=openocd
5152
adafruit_feather_m0.bootloader.file=featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin
53+
adafruit_feather_m0.menu.usbstack.arduino=Arduino
54+
adafruit_feather_m0.menu.usbstack.tinyusb=TinyUSB
55+
adafruit_feather_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
5256

5357
# Adafruit Feather M0 Express (SAMD21)
5458
# ------------------------------
@@ -79,6 +83,9 @@ adafruit_feather_m0_express.build.vid=0x239A
7983
adafruit_feather_m0_express.build.pid=0x801B
8084
adafruit_feather_m0_express.bootloader.tool=openocd
8185
adafruit_feather_m0_express.bootloader.file=featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin
86+
adafruit_feather_m0_express.menu.usbstack.arduino=Arduino
87+
adafruit_feather_m0_express.menu.usbstack.tinyusb=TinyUSB
88+
adafruit_feather_m0_express.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
8289

8390
#adafruit_radio_m0.name=Adafruit M0 Radio (Native USB Port)
8491
#adafruit_radio_m0.vid.0=0x239A
@@ -136,6 +143,9 @@ adafruit_metro_m0.build.vid=0x239A
136143
adafruit_metro_m0.build.pid=0x8013
137144
adafruit_metro_m0.bootloader.tool=openocd
138145
adafruit_metro_m0.bootloader.file=metroM0/bootloader-metro_m0-v2.0.0-adafruit.5.bin
146+
adafruit_metro_m0.menu.usbstack.arduino=Arduino
147+
adafruit_metro_m0.menu.usbstack.tinyusb=TinyUSB
148+
adafruit_metro_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
139149

140150
# Adafruit Circuit Playground Express (SAMD21)
141151
# ------------------------------
@@ -166,6 +176,9 @@ adafruit_circuitplayground_m0.build.vid=0x239A
166176
adafruit_circuitplayground_m0.build.pid=0x8018
167177
adafruit_circuitplayground_m0.bootloader.tool=openocd
168178
adafruit_circuitplayground_m0.bootloader.file=circuitplayM0/bootloader-circuitplay_m0-v2.0.0-adafruit.5.bin
179+
adafruit_circuitplayground_m0.menu.usbstack.arduino=Arduino
180+
adafruit_circuitplayground_m0.menu.usbstack.tinyusb=TinyUSB
181+
adafruit_circuitplayground_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
169182

170183
# Adafruit Gemma M0 (SAMD21)
171184
# ------------------------------
@@ -196,6 +209,9 @@ adafruit_gemma_m0.build.vid=0x239A
196209
adafruit_gemma_m0.build.pid=0x801C
197210
adafruit_gemma_m0.bootloader.tool=openocd
198211
adafruit_gemma_m0.bootloader.file=gemmaM0/bootloader-gemma_m0-v2.0.0-adafruit.5.bin
212+
adafruit_gemma_m0.menu.usbstack.arduino=Arduino
213+
adafruit_gemma_m0.menu.usbstack.tinyusb=TinyUSB
214+
adafruit_gemma_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
199215

200216
# Adafruit Trinket M0 (SAMD21)
201217
# ------------------------------
@@ -226,6 +242,9 @@ adafruit_trinket_m0.build.vid=0x239A
226242
adafruit_trinket_m0.build.pid=0x801E
227243
adafruit_trinket_m0.bootloader.tool=openocd
228244
adafruit_trinket_m0.bootloader.file=trinketM0/bootloader-trinket_m0-v2.0.0-adafruit.5.bin
245+
adafruit_trinket_m0.menu.usbstack.arduino=Arduino
246+
adafruit_trinket_m0.menu.usbstack.tinyusb=TinyUSB
247+
adafruit_trinket_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
229248

230249
# Adafruit ItsyBitsy M0 (SAMD21)
231250
# ------------------------------
@@ -258,6 +277,9 @@ adafruit_itsybitsy_m0.build.vid=0x239A
258277
adafruit_itsybitsy_m0.build.pid=0x800F
259278
adafruit_itsybitsy_m0.bootloader.tool=openocd
260279
adafruit_itsybitsy_m0.bootloader.file=itsybitsyM0/bootloader-itsybitsy_m0-v2.0.0-adafruit.5.bin
280+
adafruit_itsybitsy_m0.menu.usbstack.arduino=Arduino
281+
adafruit_itsybitsy_m0.menu.usbstack.tinyusb=TinyUSB
282+
adafruit_itsybitsy_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
261283

262284
# Adafruit PIRkey (SAMD21)
263285
# ------------------------------
@@ -288,6 +310,9 @@ adafruit_pirkey.build.vid=0x239A
288310
adafruit_pirkey.build.pid=0x801E
289311
adafruit_pirkey.bootloader.tool=openocd
290312
adafruit_pirkey.bootloader.file=pirkey/bootloader-pirkey-v2.0.0-adafruit.5.bin
313+
adafruit_pirkey.menu.usbstack.arduino=Arduino
314+
adafruit_pirkey.menu.usbstack.tinyusb=TinyUSB
315+
adafruit_pirkey.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
291316

292317
# Adafruit Metro M4 (SAMD51)
293318
# ------------------------------
@@ -347,6 +372,9 @@ adafruit_metro_m4.menu.maxqspi.50=50 MHz (standard)
347372
adafruit_metro_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
348373
adafruit_metro_m4.menu.maxqspi.fcpu=CPU Speed / 2
349374
adafruit_metro_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
375+
adafruit_metro_m4.menu.usbstack.arduino=Arduino
376+
adafruit_metro_m4.menu.usbstack.tinyusb=TinyUSB
377+
adafruit_metro_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
350378

351379
# Adafruit Grand Central M4 (SAMD51)
352380
# ------------------------------
@@ -406,6 +434,9 @@ adafruit_grandcentral_m4.menu.maxqspi.50=50 MHz (standard)
406434
adafruit_grandcentral_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
407435
adafruit_grandcentral_m4.menu.maxqspi.fcpu=CPU Speed / 2
408436
adafruit_grandcentral_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
437+
adafruit_grandcentral_m4.menu.usbstack.arduino=Arduino
438+
adafruit_grandcentral_m4.menu.usbstack.tinyusb=TinyUSB
439+
adafruit_grandcentral_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
409440

410441
# Adafruit ItsyBitsy M4 (SAMD51)
411442
# ------------------------------
@@ -465,6 +496,9 @@ adafruit_itsybitsy_m4.menu.maxqspi.50=50 MHz (standard)
465496
adafruit_itsybitsy_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
466497
adafruit_itsybitsy_m4.menu.maxqspi.fcpu=CPU Speed / 2
467498
adafruit_itsybitsy_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
499+
adafruit_itsybitsy_m4.menu.usbstack.arduino=Arduino
500+
adafruit_itsybitsy_m4.menu.usbstack.tinyusb=TinyUSB
501+
adafruit_itsybitsy_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
468502

469503
# Adafruit Feather M4 Express (SAMD51)
470504
# ------------------------------
@@ -524,7 +558,9 @@ adafruit_feather_m4.menu.maxqspi.50=50 MHz (standard)
524558
adafruit_feather_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
525559
adafruit_feather_m4.menu.maxqspi.fcpu=CPU Speed / 2
526560
adafruit_feather_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
527-
561+
adafruit_feather_m4.menu.usbstack.arduino=Arduino
562+
adafruit_feather_m4.menu.usbstack.tinyusb=TinyUSB
563+
adafruit_feather_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
528564

529565
# Adafruit HalloWing M0 (SAMD21)
530566
# ------------------------------
@@ -557,6 +593,9 @@ adafruit_hallowing.build.vid=0x239A
557593
adafruit_hallowing.build.pid=0xDEAD
558594
adafruit_hallowing.bootloader.tool=openocd
559595
adafruit_hallowing.bootloader.file=hallowingM0/bootloader-hallowing_m0-v2.0.0-adafruit.0-21-g887cc30.bin
596+
adafruit_hallowing.menu.usbstack.arduino=Arduino
597+
adafruit_hallowing.menu.usbstack.tinyusb=TinyUSB
598+
adafruit_hallowing.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
560599

561600
# Adafruit Trellis M4 (SAMD51)
562601
# ------------------------------
@@ -618,6 +657,9 @@ adafruit_trellis_m4.menu.maxqspi.50=50 MHz (standard)
618657
adafruit_trellis_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
619658
adafruit_trellis_m4.menu.maxqspi.fcpu=CPU Speed / 2
620659
adafruit_trellis_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
660+
adafruit_trellis_m4.menu.usbstack.arduino=Arduino
661+
adafruit_trellis_m4.menu.usbstack.tinyusb=TinyUSB
662+
adafruit_trellis_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
621663

622664
# Adafruit Crickit M0 (SAMD21)
623665
# ------------------------------
@@ -650,6 +692,9 @@ adafruit_crickit_m0.build.vid=0x239A
650692
adafruit_crickit_m0.build.pid=0x802D
651693
adafruit_crickit_m0.bootloader.tool=openocd
652694
adafruit_crickit_m0.bootloader.file=crickit/samd21_sam_ba.bin
695+
adafruit_crickit_m0.menu.usbstack.arduino=Arduino
696+
adafruit_crickit_m0.menu.usbstack.tinyusb=TinyUSB
697+
adafruit_crickit_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
653698

654699
# Adafruit PyPortal M4 (SAMD51)
655700
# ------------------------------
@@ -709,6 +754,9 @@ adafruit_pyportal_m4.menu.maxqspi.50=50 MHz (standard)
709754
adafruit_pyportal_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
710755
adafruit_pyportal_m4.menu.maxqspi.fcpu=CPU Speed / 2
711756
adafruit_pyportal_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
757+
adafruit_pyportal_m4.menu.usbstack.arduino=Arduino
758+
adafruit_pyportal_m4.menu.usbstack.tinyusb=TinyUSB
759+
adafruit_pyportal_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
712760

713761
# Adafruit pyBadge M4 (SAMD51)
714762
# ------------------------------
@@ -770,6 +818,10 @@ adafruit_pybadge_m4.menu.maxqspi.50=50 MHz (standard)
770818
adafruit_pybadge_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
771819
adafruit_pybadge_m4.menu.maxqspi.fcpu=CPU Speed / 2
772820
adafruit_pybadge_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
821+
adafruit_pybadge_m4.menu.usbstack.arduino=Arduino
822+
adafruit_pybadge_m4.menu.usbstack.tinyusb=TinyUSB
823+
adafruit_pybadge_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
824+
773825

774826
# Adafruit Metro M4 AirLift lite (SAMD51)
775827
# ------------------------------
@@ -829,6 +881,9 @@ adafruit_metro_m4_airliftlite.menu.maxqspi.50=50 MHz (standard)
829881
adafruit_metro_m4_airliftlite.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
830882
adafruit_metro_m4_airliftlite.menu.maxqspi.fcpu=CPU Speed / 2
831883
adafruit_metro_m4_airliftlite.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
884+
adafruit_metro_m4_airliftlite.menu.usbstack.arduino=Arduino
885+
adafruit_metro_m4_airliftlite.menu.usbstack.tinyusb=TinyUSB
886+
adafruit_metro_m4_airliftlite.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB
832887

833888
# Adafruit pyGamer M4 Express (SAMD51)
834889
# ------------------------------
@@ -890,3 +945,6 @@ adafruit_pygamer_m4.menu.maxqspi.50=50 MHz (standard)
890945
adafruit_pygamer_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000
891946
adafruit_pygamer_m4.menu.maxqspi.fcpu=CPU Speed / 2
892947
adafruit_pygamer_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu})
948+
adafruit_pygamer_m4.menu.usbstack.arduino=Arduino
949+
adafruit_pygamer_m4.menu.usbstack.tinyusb=TinyUSB
950+
adafruit_pygamer_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB

cores/arduino/Adafruit_TinyUSB_Core/Adafruit_TinyUSB_Core.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24-
#ifdef USBCON
24+
25+
#if defined(USE_TINYUSB) && defined(USBCON)
2526

2627
#include "Arduino.h"
2728
#include "Adafruit_TinyUSB_Core.h"

cores/arduino/Adafruit_TinyUSB_Core/Adafruit_USBD_CDC.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* THE SOFTWARE.
2323
*/
2424

25-
#ifdef USBCON
25+
#if defined(USE_TINYUSB) && defined(USBCON)
2626

2727
#include "Arduino.h"
2828
#include <Reset.h> // Needed for auto-reset with 1200bps port touch

cores/arduino/Adafruit_TinyUSB_Core/Adafruit_USBD_Device.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* THE SOFTWARE.
2323
*/
2424

25-
#ifdef USBCON
25+
#if defined(USE_TINYUSB) && defined(USBCON)
2626

2727
#include "Adafruit_USBD_Device.h"
2828

cores/arduino/Adafruit_TinyUSB_Core/tusb_config.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,17 @@
3333
// COMMON CONFIGURATION
3434
//--------------------------------------------------------------------
3535
#ifdef __SAMD51__
36-
#define CFG_TUSB_MCU OPT_MCU_SAMD51
36+
#define CFG_TUSB_MCU OPT_MCU_SAMD51
3737
#else
38-
#define CFG_TUSB_MCU OPT_MCU_SAMD21
38+
#define CFG_TUSB_MCU OPT_MCU_SAMD21
39+
#endif
40+
41+
#ifdef USE_TINYUSB
42+
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE
43+
#else
44+
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_NONE
3945
#endif
4046

41-
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE
4247
#define CFG_TUSB_OS OPT_OS_NONE
4348
#define CFG_TUSB_DEBUG 0
4449

cores/arduino/Arduino.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,13 @@ void loop( void ) ;
125125
#endif
126126

127127
// USB
128+
#ifdef USE_TINYUSB
128129
#include "Adafruit_TinyUSB_Core.h"
130+
#else
131+
#include "USB/USBDesc.h"
132+
#include "USB/USBCore.h"
133+
#include "USB/USBAPI.h"
134+
#include "USB/USB_host.h"
135+
#endif
129136

130137
#endif // Arduino_h

USB/CDC.cpp renamed to cores/arduino/USB/CDC.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1717
*/
1818

19+
#ifndef USE_TINYUSB
20+
1921
#include <Arduino.h>
2022
#include <Reset.h> // Needed for auto-reset with 1200bps port touch
2123

@@ -260,3 +262,5 @@ Serial_::operator bool()
260262
Serial_ Serial(USBDevice);
261263

262264
#endif
265+
266+
#endif // USE_TINYUSB

USB/PluggableUSB.cpp renamed to cores/arduino/USB/PluggableUSB.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1818
*/
1919

20+
#ifndef USE_TINYUSB
21+
2022
#include "USBAPI.h"
2123
#include "USBDesc.h"
2224
#include "USBCore.h"
@@ -113,4 +115,6 @@ PluggableUSB_::PluggableUSB_() : lastIf(CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT)
113115
}
114116

115117
#endif
116-
#endif
118+
#endif
119+
120+
#endif // USE_TINYUSB
File renamed without changes.

USB/SAMD21_USBDevice.cpp renamed to cores/arduino/USB/SAMD21_USBDevice.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Author: deanm
66
*/
77

8+
#ifndef USE_TINYUSB
89

910
#include "SAMD21_USBDevice.h"
1011

@@ -36,3 +37,5 @@ void USBDevice_SAMD21G18x::calibrate() {
3637
usb.PADCAL.bit.TRANSP = pad_transp;
3738
usb.PADCAL.bit.TRIM = pad_trim;
3839
}
40+
41+
#endif // USE_TINYUSB

0 commit comments

Comments
 (0)