summaryrefslogtreecommitdiff
path: root/src/tusb_option.h
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2023-01-07 23:46:46 +0700
committerGitHub <[email protected]>2023-01-07 23:46:46 +0700
commit949950e592d9a23a4b449784b0f8e7e274129318 (patch)
tree9a9df1391a8227395d13a90458d6b56aa93a85ac /src/tusb_option.h
parent2683deb0dd2e049de6c9b15f49d28a2fef4380f6 (diff)
parent83cc71feaf442842e498343b5a3128f4735216bb (diff)
Merge branch 'master' into ch32v307
Diffstat (limited to 'src/tusb_option.h')
-rw-r--r--src/tusb_option.h81
1 files changed, 50 insertions, 31 deletions
diff --git a/src/tusb_option.h b/src/tusb_option.h
index 65d886e59..92fbbd33f 100644
--- a/src/tusb_option.h
+++ b/src/tusb_option.h
@@ -27,10 +27,13 @@
#ifndef _TUSB_OPTION_H_
#define _TUSB_OPTION_H_
+// To avoid GCC compiler warnings when -pedantic option is used (strict ISO C)
+typedef int make_iso_compilers_happy;
+
#include "common/tusb_compiler.h"
#define TUSB_VERSION_MAJOR 0
-#define TUSB_VERSION_MINOR 13
+#define TUSB_VERSION_MINOR 14
#define TUSB_VERSION_REVISION 0
#define TUSB_VERSION_STRING TU_STRING(TUSB_VERSION_MAJOR) "." TU_STRING(TUSB_VERSION_MINOR) "." TU_STRING(TUSB_VERSION_REVISION)
@@ -81,6 +84,7 @@
#define OPT_MCU_STM32G0 310 ///< ST G0
#define OPT_MCU_STM32G4 311 ///< ST G4
#define OPT_MCU_STM32WB 312 ///< ST WB
+#define OPT_MCU_STM32U5 313 ///< ST U5
// Sony
#define OPT_MCU_CXD56 400 ///< SONY CXD56
@@ -95,7 +99,9 @@
#define OPT_MCU_VALENTYUSB_EPTRI 600 ///< Fomu eptri config
// NXP iMX RT
-#define OPT_MCU_MIMXRT10XX 700 ///< NXP iMX RT10xx
+#define OPT_MCU_MIMXRT 700 ///< NXP iMX RT Series
+#define OPT_MCU_MIMXRT10XX OPT_MCU_MIMXRT ///< RT10xx
+#define OPT_MCU_MIMXRT11XX OPT_MCU_MIMXRT ///< RT11xx
// Nuvoton
#define OPT_MCU_NUC121 800
@@ -141,6 +147,11 @@
// PIC
#define OPT_MCU_PIC32MZ 1900 ///< MicroChip PIC32MZ family
+#define OPT_MCU_PIC32MM 1901 ///< MicroChip PIC32MM family
+#define OPT_MCU_PIC32MX 1902 ///< MicroChip PIC32MX family
+#define OPT_MCU_PIC32MK 1903 ///< MicroChip PIC32MK family
+#define OPT_MCU_PIC24 1910 ///< MicroChip PIC24 family
+#define OPT_MCU_DSPIC33 1911 ///< MicroChip DSPIC33 family
// BridgeTek
#define OPT_MCU_FT90X 2000 ///< BridgeTek FT90x
@@ -195,60 +206,67 @@
#define OPT_MODE_HIGH_SPEED 0x0400 ///< High Speed
#define OPT_MODE_SPEED_MASK 0xff00
-#ifndef CFG_TUSB_RHPORT0_MODE
- #define CFG_TUSB_RHPORT0_MODE OPT_MODE_NONE
-#endif
-
-#ifndef CFG_TUSB_RHPORT1_MODE
- #define CFG_TUSB_RHPORT1_MODE OPT_MODE_NONE
-#endif
-
-#if (((CFG_TUSB_RHPORT0_MODE) & OPT_MODE_HOST ) && ((CFG_TUSB_RHPORT1_MODE) & OPT_MODE_HOST )) || \
- (((CFG_TUSB_RHPORT0_MODE) & OPT_MODE_DEVICE) && ((CFG_TUSB_RHPORT1_MODE) & OPT_MODE_DEVICE))
- #error "TinyUSB currently does not support same modes on more than 1 roothub port"
-#endif
-
//------------- Roothub as Device -------------//
-#if (CFG_TUSB_RHPORT0_MODE) & OPT_MODE_DEVICE
+#if defined(CFG_TUSB_RHPORT0_MODE) && ((CFG_TUSB_RHPORT0_MODE) & OPT_MODE_DEVICE)
#define TUD_RHPORT_MODE (CFG_TUSB_RHPORT0_MODE)
#define TUD_OPT_RHPORT 0
-#elif (CFG_TUSB_RHPORT1_MODE) & OPT_MODE_DEVICE
+#elif defined(CFG_TUSB_RHPORT1_MODE) && ((CFG_TUSB_RHPORT1_MODE) & OPT_MODE_DEVICE)
#define TUD_RHPORT_MODE (CFG_TUSB_RHPORT1_MODE)
#define TUD_OPT_RHPORT 1
#else
#define TUD_RHPORT_MODE OPT_MODE_NONE
- #define TUD_OPT_RHPORT -1
#endif
-#define CFG_TUD_ENABLED (TUD_RHPORT_MODE & OPT_MODE_DEVICE)
+#ifndef CFG_TUD_ENABLED
+ // fallback to use CFG_TUSB_RHPORTx_MODE
+ #define CFG_TUD_ENABLED (TUD_RHPORT_MODE & OPT_MODE_DEVICE)
+#endif
-#if CFG_TUD_ENABLED
- #define TUD_OPT_HIGH_SPEED ((TUD_RHPORT_MODE & OPT_MODE_SPEED_MASK) ? (TUD_RHPORT_MODE & OPT_MODE_HIGH_SPEED) : (TUP_RHPORT_HIGHSPEED & (1 << TUD_OPT_RHPORT)))
-#else
- #define TUD_OPT_HIGH_SPEED 0
+#ifndef CFG_TUD_MAX_SPEED
+ // fallback to use CFG_TUSB_RHPORTx_MODE
+ #define CFG_TUD_MAX_SPEED (TUD_RHPORT_MODE & OPT_MODE_SPEED_MASK)
#endif
+// For backward compatible
+#define TUSB_OPT_DEVICE_ENABLED CFG_TUD_ENABLED
+
+// highspeed support indicator
+#define TUD_OPT_HIGH_SPEED (CFG_TUD_MAX_SPEED ? (CFG_TUD_MAX_SPEED & OPT_MODE_HIGH_SPEED) : TUP_RHPORT_HIGHSPEED)
+
//------------- Roothub as Host -------------//
-#if (CFG_TUSB_RHPORT0_MODE) & OPT_MODE_HOST
+#if defined(CFG_TUSB_RHPORT0_MODE) && ((CFG_TUSB_RHPORT0_MODE) & OPT_MODE_HOST)
#define TUH_RHPORT_MODE (CFG_TUSB_RHPORT0_MODE)
#define TUH_OPT_RHPORT 0
-#elif (CFG_TUSB_RHPORT1_MODE) & OPT_MODE_HOST
+#elif defined(CFG_TUSB_RHPORT1_MODE) && ((CFG_TUSB_RHPORT1_MODE) & OPT_MODE_HOST)
#define TUH_RHPORT_MODE (CFG_TUSB_RHPORT1_MODE)
#define TUH_OPT_RHPORT 1
#else
#define TUH_RHPORT_MODE OPT_MODE_NONE
- #define TUH_OPT_RHPORT -1
#endif
-#define CFG_TUH_ENABLED (TUH_RHPORT_MODE & OPT_MODE_HOST)
+#ifndef CFG_TUH_ENABLED
+ // fallback to use CFG_TUSB_RHPORTx_MODE
+ #define CFG_TUH_ENABLED (TUH_RHPORT_MODE & OPT_MODE_HOST)
+#endif
+
+#ifndef CFG_TUH_MAX_SPEED
+ // fallback to use CFG_TUSB_RHPORTx_MODE
+ #define CFG_TUH_MAX_SPEED (TUH_RHPORT_MODE & OPT_MODE_SPEED_MASK)
+#endif
// For backward compatible
-#define TUSB_OPT_DEVICE_ENABLED CFG_TUD_ENABLED
#define TUSB_OPT_HOST_ENABLED CFG_TUH_ENABLED
+// highspeed support indicator
+#define TUH_OPT_HIGH_SPEED (CFG_TUH_MAX_SPEED ? (CFG_TUH_MAX_SPEED & OPT_MODE_HIGH_SPEED) : TUP_RHPORT_HIGHSPEED)
+
+
+//--------------------------------------------------------------------+
// TODO move later
+//--------------------------------------------------------------------+
+
// TUP_MCU_STRICT_ALIGN will overwrite TUP_ARCH_STRICT_ALIGN.
// In case TUP_MCU_STRICT_ALIGN = 1 and TUP_ARCH_STRICT_ALIGN =0, we will not reply on compiler
// to generate unaligned access code.
@@ -288,9 +306,6 @@
#define CFG_TUSB_OS_INC_PATH
#endif
-// mutex is only needed for RTOS TODO also required with multiple core MCUs
-#define TUSB_OPT_MUTEX (CFG_TUSB_OS != OPT_OS_NONE)
-
//--------------------------------------------------------------------
// Device Options (Default)
//--------------------------------------------------------------------
@@ -299,6 +314,10 @@
#define CFG_TUD_ENDPOINT0_SIZE 64
#endif
+#ifndef CFG_TUD_INTERFACE_MAX
+ #define CFG_TUD_INTERFACE_MAX 16
+#endif
+
#ifndef CFG_TUD_CDC
#define CFG_TUD_CDC 0
#endif