From 94c004724ccbe2b74af74fc1753184f6b3ccb9cf Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 4 Mar 2013 16:21:41 +0700 Subject: [PATCH] allow configure host/device by controller basic - make changes to adapt add mcu_capacity.h --- demos/host/tusb_config.h | 7 +- tests/test/host/ehci/test_ehci_init.c | 10 +- tests/test/host/ehci/test_ehci_structure.c | 2 +- tests/test/support/tusb_config.h | 9 +- tests/test/test_project_settings.c | 5 - tinyusb/host/ehci/ehci.c | 8 +- tinyusb/host/ehci/ehci.h | 4 +- tinyusb/mcu_capacity.h | 105 +++++++++++++++++++++ tinyusb/tusb_option.h | 15 +-- 9 files changed, 135 insertions(+), 30 deletions(-) create mode 100644 tinyusb/mcu_capacity.h diff --git a/demos/host/tusb_config.h b/demos/host/tusb_config.h index 22c1778ae..f482e333b 100644 --- a/demos/host/tusb_config.h +++ b/demos/host/tusb_config.h @@ -55,13 +55,18 @@ extern "C" { #endif +//--------------------------------------------------------------------+ +// CONTROLLER CONFIGURATION +//--------------------------------------------------------------------+ +#define TUSB_CFG_CONTROLLER0_MODE TUSB_MODE_HOST +#define TUSB_CFG_CONTROLLER1_MODE TUSB_MODE_HOST + //--------------------------------------------------------------------+ // HOST CONFIGURATION //--------------------------------------------------------------------+ #define TUSB_CFG_HOST //------------- CONTROLLER -------------// -#define TUSB_CFG_HOST_CONTROLLER_NUM 1 #define TUSB_CFG_HOST_CONTROLLER_START_INDEX 0 #define TUSB_CFG_HOST_DEVICE_MAX 1 diff --git a/tests/test/host/ehci/test_ehci_init.c b/tests/test/host/ehci/test_ehci_init.c index f83d5f979..ab4e8d219 100644 --- a/tests/test/host/ehci/test_ehci_init.c +++ b/tests/test/host/ehci/test_ehci_init.c @@ -81,7 +81,7 @@ void test_hcd_init_usbint(void) { hcd_init(); - for(uint32_t i=0; i 1 +#if CONTROLLER_HOST_NUMBER > 1 STATIC_ ehci_link_t period_frame_list1[EHCI_FRAMELIST_SIZE] ATTR_ALIGNED(4096) TUSB_CFG_ATTR_USBRAM; #endif //------------- Validation -------------// STATIC_ASSERT( ALIGN_OF(period_frame_list0) == 4096, "Period Framelist must be 4k alginment"); -#if TUSB_CFG_HOST_CONTROLLER_NUM > 1 +#if CONTROLLER_HOST_NUMBER > 1 STATIC_ASSERT( ALIGN_OF(period_frame_list1) == 4096, "Period Framelist must be 4k alginment"); #endif @@ -77,7 +77,7 @@ STATIC_ INLINE_ ehci_registers_t* const get_operational_register(uint8_t hostid) STATIC_ INLINE_ ehci_link_t* const get_period_frame_list(uint8_t list_idx) ATTR_PURE ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; STATIC_ INLINE_ ehci_link_t* const get_period_frame_list(uint8_t list_idx) { -#if TUSB_CFG_HOST_CONTROLLER_NUM > 1 +#if CONTROLLER_HOST_NUMBER > 1 return list_idx ? period_frame_list1 : period_frame_list0; // TODO more than 2 controller #else return period_frame_list0; @@ -108,7 +108,7 @@ tusb_error_t hcd_init(void) //------------- Data Structure init -------------// memclr_(&ehci_data, sizeof(ehci_data_t)); - for(i=0; i 0) +#define MODE_DEVICE (CONTROLLER_DEVICE_NUMBER > 0) + +//--------------------------------------------------------------------+ +// Validation +//--------------------------------------------------------------------+ +#if (CAP_CONTROLLER_NUMBER == 1) && ( defined TUSB_CFG_CONTROLLER1_MODE) + #error current MCU does not have the required number of controllers +#endif + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_MCU_CAPACITY_H_ */ + +/** @} */ diff --git a/tinyusb/tusb_option.h b/tinyusb/tusb_option.h index 20769a326..3b1830419 100644 --- a/tinyusb/tusb_option.h +++ b/tinyusb/tusb_option.h @@ -61,10 +61,15 @@ /// define this symbol will make tinyusb look for external configure file #include "tusb_config.h" +#include "mcu_capacity.h" //--------------------------------------------------------------------+ // COMMON OPTIONS //--------------------------------------------------------------------+ +#define TUSB_MODE_HOST BIN8(10) +#define TUSB_MODE_DEVICE BIN8(01) +#define TUSB_MODE_NONE BIN8(00) + /// 0: no debug information 3: most debug information provided #ifndef TUSB_CFG_DEBUG #define TUSB_CFG_DEBUG 3 @@ -89,21 +94,11 @@ #warning TUSB_CFG_CONFIGURATION_MAX is not defined, default value is 1 #endif -// TODO may move to other places -#define MCU_LPC13UXX 1 -#define MCU_LPC11UXX 2 -#define MCU_LPC43XX 3 -#define MCU_LPC18XX 4 - //--------------------------------------------------------------------+ // HOST OPTIONS //--------------------------------------------------------------------+ #ifdef TUSB_CFG_HOST //------------- Controller -------------// - #ifndef TUSB_CFG_HOST_CONTROLLER_NUM - #define TUSB_CFG_HOST_CONTROLLER_NUM 1 - #warning TUSB_CFG_HOST_CONTROLLER_NUM is not defined, default value is 1 - #endif #ifndef TUSB_CFG_HOST_CONTROLLER_START_INDEX #error TUSB_CFG_HOST_CONTROLLER_START_INDEX is not defined