mirror of
https://github.com/hathach/tinyusb.git
synced 2025-04-16 05:42:56 +00:00
merge CFG_TUSB_RHPORT1_MODE into CFG_TUSB_RHPORT0_MODE
each port is 1 byte for easy maintenance
This commit is contained in:
parent
62a746bdc7
commit
fad088719e
@ -34,19 +34,30 @@
|
|||||||
// COMMON CONFIGURATION
|
// COMMON CONFIGURATION
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
// defined by compiler flags for flexibility
|
// defined by board.mk
|
||||||
#ifndef CFG_TUSB_MCU
|
#ifndef CFG_TUSB_MCU
|
||||||
#error CFG_TUSB_MCU must be defined
|
#error CFG_TUSB_MCU must be defined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT10XX || \
|
// RHPort number used for device can be defined by board.mk, default to port 0
|
||||||
CFG_TUSB_MCU == OPT_MCU_NUC505 || CFG_TUSB_MCU == OPT_MCU_CXD56
|
#ifndef BOARD_DEVICE_RHPORT_NUM
|
||||||
#define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE | OPT_MODE_HIGH_SPEED)
|
#define BOARD_DEVICE_RHPORT_NUM 0
|
||||||
#else
|
|
||||||
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CFG_TUSB_OS OPT_OS_NONE
|
// RHPort max operational speed can defined by board.mk
|
||||||
|
// Default to Highspeed for MCU with internal HighSpeed PHY (can be port specific), otherwise FullSpeed
|
||||||
|
#ifndef BOARD_DEVICE_RHPORT_SPEED
|
||||||
|
#if (CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT10XX || \
|
||||||
|
CFG_TUSB_MCU == OPT_MCU_NUC505 || CFG_TUSB_MCU == OPT_MCU_CXD56)
|
||||||
|
#define BOARD_DEVICE_RHPORT_SPEED OPT_MODE_HIGH_SPEED
|
||||||
|
#else
|
||||||
|
#define BOARD_DEVICE_RHPORT_SPEED OPT_MODE_FULL_SPEED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Device mode with rhport and speed defined by board.mk
|
||||||
|
#define CFG_TUSB_RHPORT0_MODE ((OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED) << (8*BOARD_DEVICE_RHPORT_NUM))
|
||||||
|
#define CFG_TUSB_OS OPT_OS_NONE
|
||||||
|
|
||||||
// CFG_TUSB_DEBUG is defined by compiler in DEBUG build
|
// CFG_TUSB_DEBUG is defined by compiler in DEBUG build
|
||||||
// #define CFG_TUSB_DEBUG 0
|
// #define CFG_TUSB_DEBUG 0
|
||||||
|
@ -149,7 +149,7 @@ void board_init(void)
|
|||||||
* status feedback from the distribution switch. GPIO54 is used for VBUS sensing. 15Kohm pull-down
|
* status feedback from the distribution switch. GPIO54 is used for VBUS sensing. 15Kohm pull-down
|
||||||
* resistors are always active
|
* resistors are always active
|
||||||
*/
|
*/
|
||||||
#if CFG_TUSB_RHPORT0_MODE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE | OPT_MODE_HOST)
|
||||||
Chip_USB0_Init();
|
Chip_USB0_Init();
|
||||||
|
|
||||||
// // Reset controller
|
// // Reset controller
|
||||||
@ -185,7 +185,7 @@ void board_init(void)
|
|||||||
* of VBUS can be read via U31.
|
* of VBUS can be read via U31.
|
||||||
* JP16 shall not be inserted.
|
* JP16 shall not be inserted.
|
||||||
*/
|
*/
|
||||||
#if CFG_TUSB_RHPORT1_MODE
|
#if CFG_TUSB_RHPORT0_MODE & ((OPT_MODE_DEVICE | OPT_MODE_HOST) << 8)
|
||||||
Chip_USB1_Init();
|
Chip_USB1_Init();
|
||||||
|
|
||||||
// // Reset controller
|
// // Reset controller
|
||||||
@ -232,11 +232,11 @@ void USB0_IRQHandler(void)
|
|||||||
|
|
||||||
void USB1_IRQHandler(void)
|
void USB1_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -43,11 +43,11 @@ void USB0_IRQHandler(void)
|
|||||||
|
|
||||||
void USB1_IRQHandler(void)
|
void USB1_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -163,7 +163,7 @@ void board_init(void)
|
|||||||
};
|
};
|
||||||
|
|
||||||
// USB0
|
// USB0
|
||||||
#if CFG_TUSB_RHPORT0_MODE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE | OPT_MODE_HOST)
|
||||||
Chip_USB0_Init();
|
Chip_USB0_Init();
|
||||||
|
|
||||||
// // Reset controller
|
// // Reset controller
|
||||||
@ -180,7 +180,7 @@ void board_init(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// USB1
|
// USB1
|
||||||
#if CFG_TUSB_RHPORT1_MODE
|
#if CFG_TUSB_RHPORT0_MODE & ((OPT_MODE_DEVICE | OPT_MODE_HOST) << 8)
|
||||||
Chip_USB1_Init();
|
Chip_USB1_Init();
|
||||||
|
|
||||||
// // Reset controller
|
// // Reset controller
|
||||||
|
@ -134,11 +134,11 @@ void USB_OTG1_IRQHandler(void)
|
|||||||
|
|
||||||
void USB_OTG2_IRQHandler(void)
|
void USB_OTG2_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -134,11 +134,11 @@ void USB_OTG1_IRQHandler(void)
|
|||||||
|
|
||||||
void USB_OTG2_IRQHandler(void)
|
void USB_OTG2_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -134,11 +134,11 @@ void USB_OTG1_IRQHandler(void)
|
|||||||
|
|
||||||
void USB_OTG2_IRQHandler(void)
|
void USB_OTG2_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,7 @@ void board_init(void)
|
|||||||
* status feedback from the distribution switch. GPIO54 is used for VBUS sensing. 15Kohm pull-down
|
* status feedback from the distribution switch. GPIO54 is used for VBUS sensing. 15Kohm pull-down
|
||||||
* resistors are always active
|
* resistors are always active
|
||||||
*/
|
*/
|
||||||
#if CFG_TUSB_RHPORT0_MODE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE | OPT_MODE_HOST)
|
||||||
Chip_USB0_Init();
|
Chip_USB0_Init();
|
||||||
|
|
||||||
// // Reset controller
|
// // Reset controller
|
||||||
@ -197,7 +197,7 @@ void board_init(void)
|
|||||||
* of VBUS can be read via U31.
|
* of VBUS can be read via U31.
|
||||||
* JP16 shall not be inserted.
|
* JP16 shall not be inserted.
|
||||||
*/
|
*/
|
||||||
#if CFG_TUSB_RHPORT1_MODE
|
#if CFG_TUSB_RHPORT0_MODE & ((OPT_MODE_DEVICE | OPT_MODE_HOST) << 8)
|
||||||
Chip_USB1_Init();
|
Chip_USB1_Init();
|
||||||
|
|
||||||
// // Reset controller
|
// // Reset controller
|
||||||
@ -235,11 +235,11 @@ void USB0_IRQHandler(void)
|
|||||||
|
|
||||||
void USB1_IRQHandler(void)
|
void USB1_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -135,11 +135,11 @@ void USB_OTG1_IRQHandler(void)
|
|||||||
|
|
||||||
void USB_OTG2_IRQHandler(void)
|
void USB_OTG2_IRQHandler(void)
|
||||||
{
|
{
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)
|
||||||
tuh_isr(1);
|
tuh_isr(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
|
#if CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)
|
||||||
tud_int_handler(1);
|
tud_int_handler(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -114,44 +114,50 @@
|
|||||||
/** \addtogroup group_configuration
|
/** \addtogroup group_configuration
|
||||||
* @{ */
|
* @{ */
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
// CONTROLLER
|
// RootHub Mode Configuration
|
||||||
// Only 1 roothub port can be configured to be device and/or host.
|
//
|
||||||
// tinyusb does not support dual devices or dual host configuration
|
// Each byte of the CFG_TUSB_RHPORTx_MODE contains operation mode for
|
||||||
|
// a roothub port (device or host). Therefore each macro can have up to
|
||||||
|
// 4 ports.
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
/** \defgroup group_mode Controller Mode Selection
|
|
||||||
* \brief CFG_TUSB_CONTROLLER_N_MODE must be defined with these
|
// Lower 4-bit is operational mode
|
||||||
* @{ */
|
|
||||||
#define OPT_MODE_NONE 0x00 ///< Disabled
|
#define OPT_MODE_NONE 0x00 ///< Disabled
|
||||||
#define OPT_MODE_DEVICE 0x01 ///< Device Mode
|
#define OPT_MODE_DEVICE 0x01 ///< Device Mode
|
||||||
#define OPT_MODE_HOST 0x02 ///< Host Mode
|
#define OPT_MODE_HOST 0x02 ///< Host Mode
|
||||||
#define OPT_MODE_HIGH_SPEED 0x10 ///< High speed
|
|
||||||
/** @} */
|
// Higher 4-bit is max operational speed (corresponding to tusb_speed_t)
|
||||||
|
#define OPT_MODE_FULL_SPEED 0x00 ///< Max Full Speed
|
||||||
|
#define OPT_MODE_LOW_SPEED 0x10 ///< Max Low Speed
|
||||||
|
#define OPT_MODE_HIGH_SPEED 0x20 ///< Max High Speed
|
||||||
|
|
||||||
|
|
||||||
#ifndef CFG_TUSB_RHPORT0_MODE
|
#ifndef CFG_TUSB_RHPORT0_MODE
|
||||||
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_NONE
|
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_NONE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CFG_TUSB_RHPORT1_MODE
|
//#ifndef CFG_TUSB_RHPORT1_MODE
|
||||||
#define CFG_TUSB_RHPORT1_MODE OPT_MODE_NONE
|
// #define CFG_TUSB_RHPORT1_MODE OPT_MODE_NONE
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
#if ((CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST) && (CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST)) || \
|
#if ((CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST ) && (CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)) ) || \
|
||||||
((CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE) && (CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE))
|
((CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE) && (CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)) )
|
||||||
#error "tinyusb does not support same modes on more than 1 roothub port"
|
#error "TinyUSB currently does not support same modes on more than 1 roothub port"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Which roothub port is configured as host
|
// Which roothub port is configured as host
|
||||||
#define TUH_OPT_RHPORT ( (CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST) ? 0 : ((CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST) ? 1 : -1) )
|
#define TUH_OPT_RHPORT ( (CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST) ? 0 : ((CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HOST << 8)) ? 1 : -1) )
|
||||||
#define TUSB_OPT_HOST_ENABLED ( TUH_OPT_RHPORT >= 0 )
|
#define TUSB_OPT_HOST_ENABLED ( TUH_OPT_RHPORT >= 0 )
|
||||||
|
|
||||||
// Which roothub port is configured as device
|
// Which roothub port is configured as device
|
||||||
#define TUD_OPT_RHPORT ( (CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE) ? 0 : ((CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE) ? 1 : -1) )
|
#define TUD_OPT_RHPORT ( (CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE) ? 0 : ((CFG_TUSB_RHPORT0_MODE & (OPT_MODE_DEVICE << 8)) ? 1 : -1) )
|
||||||
|
|
||||||
#if TUD_OPT_RHPORT == 0
|
#if TUD_OPT_RHPORT == 0
|
||||||
#define TUD_OPT_HIGH_SPEED ( CFG_TUSB_RHPORT0_MODE & OPT_MODE_HIGH_SPEED )
|
#define TUD_OPT_HIGH_SPEED ( CFG_TUSB_RHPORT0_MODE & OPT_MODE_HIGH_SPEED )
|
||||||
#else
|
#else
|
||||||
#define TUD_OPT_HIGH_SPEED ( CFG_TUSB_RHPORT1_MODE & OPT_MODE_HIGH_SPEED )
|
#define TUD_OPT_HIGH_SPEED ( CFG_TUSB_RHPORT0_MODE & (OPT_MODE_HIGH_SPEED << 8) )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TUSB_OPT_DEVICE_ENABLED ( TUD_OPT_RHPORT >= 0 )
|
#define TUSB_OPT_DEVICE_ENABLED ( TUD_OPT_RHPORT >= 0 )
|
||||||
@ -168,15 +174,15 @@
|
|||||||
|
|
||||||
// place data in accessible RAM for usb controller
|
// place data in accessible RAM for usb controller
|
||||||
#ifndef CFG_TUSB_MEM_SECTION
|
#ifndef CFG_TUSB_MEM_SECTION
|
||||||
#define CFG_TUSB_MEM_SECTION
|
#define CFG_TUSB_MEM_SECTION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CFG_TUSB_MEM_ALIGN
|
#ifndef CFG_TUSB_MEM_ALIGN
|
||||||
#define CFG_TUSB_MEM_ALIGN TU_ATTR_ALIGNED(4)
|
#define CFG_TUSB_MEM_ALIGN TU_ATTR_ALIGNED(4)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CFG_TUSB_OS
|
#ifndef CFG_TUSB_OS
|
||||||
#define CFG_TUSB_OS OPT_OS_NONE
|
#define CFG_TUSB_OS OPT_OS_NONE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
@ -184,7 +190,7 @@
|
|||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef CFG_TUD_ENDPOINT0_SIZE
|
#ifndef CFG_TUD_ENDPOINT0_SIZE
|
||||||
#define CFG_TUD_ENDPOINT0_SIZE 64
|
#define CFG_TUD_ENDPOINT0_SIZE 64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CFG_TUD_CDC
|
#ifndef CFG_TUD_CDC
|
||||||
|
Loading…
x
Reference in New Issue
Block a user