|
enum | {
HUB_REQUEST_GET_STATUS = 0
, HUB_REQUEST_CLEAR_FEATURE = 1
, HUB_REQUEST_SET_FEATURE = 3
, HUB_REQUEST_GET_DESCRIPTOR = 6
,
HUB_REQUEST_SET_DESCRIPTOR = 7
, HUB_REQUEST_CLEAR_TT_BUFFER = 8
, HUB_REQUEST_RESET_TT = 9
, HUB_REQUEST_GET_TT_STATE = 10
,
HUB_REQUEST_STOP_TT = 11
} |
|
enum | { HUB_FEATURE_HUB_LOCAL_POWER_CHANGE = 0
, HUB_FEATURE_HUB_OVER_CURRENT_CHANGE
} |
|
enum | {
HUB_FEATURE_PORT_CONNECTION = 0
, HUB_FEATURE_PORT_ENABLE = 1
, HUB_FEATURE_PORT_SUSPEND = 2
, HUB_FEATURE_PORT_OVER_CURRENT = 3
,
HUB_FEATURE_PORT_RESET = 4
, HUB_FEATURE_PORT_POWER = 8
, HUB_FEATURE_PORT_LOW_SPEED = 9
, HUB_FEATURE_PORT_CONNECTION_CHANGE = 16
,
HUB_FEATURE_PORT_ENABLE_CHANGE = 17
, HUB_FEATURE_PORT_SUSPEND_CHANGE = 18
, HUB_FEATURE_PORT_OVER_CURRENT_CHANGE = 19
, HUB_FEATURE_PORT_RESET_CHANGE = 20
,
HUB_FEATURE_PORT_TEST = 21
, HUB_FEATURE_PORT_INDICATOR = 22
} |
|
|
| TU_VERIFY_STATIC (sizeof(descriptor_hub_desc_t)==9, "size is not correct") |
|
| TU_VERIFY_STATIC (sizeof(hub_status_response_t)==4, "size is not correct") |
|
| TU_VERIFY_STATIC (sizeof(hub_port_status_response_t)==4, "size is not correct") |
|
bool | hub_port_clear_feature (uint8_t hub_addr, uint8_t hub_port, uint8_t feature, tuh_xfer_cb_t complete_cb, uintptr_t user_data) |
|
bool | hub_port_set_feature (uint8_t hub_addr, uint8_t hub_port, uint8_t feature, tuh_xfer_cb_t complete_cb, uintptr_t user_data) |
|
bool | hub_port_get_status (uint8_t hub_addr, uint8_t hub_port, void *resp, tuh_xfer_cb_t complete_cb, uintptr_t user_data) |
|
bool | hub_edpt_status_xfer (uint8_t dev_addr) |
|
static TU_ATTR_ALWAYS_INLINE bool | hub_port_reset (uint8_t hub_addr, uint8_t hub_port, tuh_xfer_cb_t complete_cb, uintptr_t user_data) |
|
static TU_ATTR_ALWAYS_INLINE bool | hub_port_clear_reset_change (uint8_t hub_addr, uint8_t hub_port, tuh_xfer_cb_t complete_cb, uintptr_t user_data) |
|
bool | hub_init (void) |
|
bool | hub_deinit (void) |
|
bool | hub_open (uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *itf_desc, uint16_t max_len) |
|
bool | hub_set_config (uint8_t dev_addr, uint8_t itf_num) |
|
bool | hub_xfer_cb (uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes) |
|
void | hub_close (uint8_t dev_addr) |
|
Like most PC's OS, Hub support is completely hidden from Application. In fact, application cannot determine whether a device is mounted directly via roothub or via a hub's port. All Hub-related procedures are performed and managed by tinyusb stack. Unless you are trying to develop the stack itself, there are nothing else can be used by Application.
- Note
- Due to my laziness, only 1-level of Hub is supported. In other way, the stack cannot mount a hub via another hub.
◆ anonymous enum
Enumerator |
---|
HUB_REQUEST_GET_STATUS | |
HUB_REQUEST_CLEAR_FEATURE | |
HUB_REQUEST_SET_FEATURE | |
HUB_REQUEST_GET_DESCRIPTOR | |
HUB_REQUEST_SET_DESCRIPTOR | |
HUB_REQUEST_CLEAR_TT_BUFFER | |
HUB_REQUEST_RESET_TT | |
HUB_REQUEST_GET_TT_STATE | |
HUB_REQUEST_STOP_TT | |
Definition at line 96 of file hub.h.
◆ anonymous enum
Enumerator |
---|
HUB_FEATURE_HUB_LOCAL_POWER_CHANGE | |
HUB_FEATURE_HUB_OVER_CURRENT_CHANGE | |
Definition at line 110 of file hub.h.
◆ anonymous enum
Enumerator |
---|
HUB_FEATURE_PORT_CONNECTION | |
HUB_FEATURE_PORT_ENABLE | |
HUB_FEATURE_PORT_SUSPEND | |
HUB_FEATURE_PORT_OVER_CURRENT | |
HUB_FEATURE_PORT_RESET | |
HUB_FEATURE_PORT_POWER | |
HUB_FEATURE_PORT_LOW_SPEED | |
HUB_FEATURE_PORT_CONNECTION_CHANGE | |
HUB_FEATURE_PORT_ENABLE_CHANGE | |
HUB_FEATURE_PORT_SUSPEND_CHANGE | |
HUB_FEATURE_PORT_OVER_CURRENT_CHANGE | |
HUB_FEATURE_PORT_RESET_CHANGE | |
HUB_FEATURE_PORT_TEST | |
HUB_FEATURE_PORT_INDICATOR | |
Definition at line 115 of file hub.h.
◆ hub_close()
void hub_close |
( |
uint8_t |
dev_addr | ) |
|
◆ hub_deinit()
◆ hub_edpt_status_xfer()
bool hub_edpt_status_xfer |
( |
uint8_t |
dev_addr | ) |
|
◆ hub_init()
◆ hub_open()
bool hub_open |
( |
uint8_t |
rhport, |
|
|
uint8_t |
dev_addr, |
|
|
tusb_desc_interface_t const * |
itf_desc, |
|
|
uint16_t |
max_len |
|
) |
| |
◆ hub_port_clear_feature()
bool hub_port_clear_feature |
( |
uint8_t |
hub_addr, |
|
|
uint8_t |
hub_port, |
|
|
uint8_t |
feature, |
|
|
tuh_xfer_cb_t |
complete_cb, |
|
|
uintptr_t |
user_data |
|
) |
| |
Definition at line 86 of file hub.c.
◆ hub_port_clear_reset_change()
static TU_ATTR_ALWAYS_INLINE bool hub_port_clear_reset_change |
( |
uint8_t |
hub_addr, |
|
|
uint8_t |
hub_port, |
|
|
tuh_xfer_cb_t |
complete_cb, |
|
|
uintptr_t |
user_data |
|
) |
| |
|
inlinestatic |
◆ hub_port_get_status()
bool hub_port_get_status |
( |
uint8_t |
hub_addr, |
|
|
uint8_t |
hub_port, |
|
|
void * |
resp, |
|
|
tuh_xfer_cb_t |
complete_cb, |
|
|
uintptr_t |
user_data |
|
) |
| |
◆ hub_port_reset()
static TU_ATTR_ALWAYS_INLINE bool hub_port_reset |
( |
uint8_t |
hub_addr, |
|
|
uint8_t |
hub_port, |
|
|
tuh_xfer_cb_t |
complete_cb, |
|
|
uintptr_t |
user_data |
|
) |
| |
|
inlinestatic |
◆ hub_port_set_feature()
bool hub_port_set_feature |
( |
uint8_t |
hub_addr, |
|
|
uint8_t |
hub_port, |
|
|
uint8_t |
feature, |
|
|
tuh_xfer_cb_t |
complete_cb, |
|
|
uintptr_t |
user_data |
|
) |
| |
◆ hub_set_config()
bool hub_set_config |
( |
uint8_t |
dev_addr, |
|
|
uint8_t |
itf_num |
|
) |
| |
◆ hub_xfer_cb()
bool hub_xfer_cb |
( |
uint8_t |
dev_addr, |
|
|
uint8_t |
ep_addr, |
|
|
xfer_result_t |
event, |
|
|
uint32_t |
xferred_bytes |
|
) |
| |
◆ TU_VERIFY_STATIC() [1/3]
TU_VERIFY_STATIC |
( |
sizeof(descriptor_hub_desc_t) |
= =9 , |
|
|
"size is not correct" |
|
|
) |
| |
◆ TU_VERIFY_STATIC() [2/3]
◆ TU_VERIFY_STATIC() [3/3]