tinyusb  0.4
Click here to lend your support to tinyusb donation and make a donation at pledgie.com
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages

Data Structures

struct  descriptor_hub_desc_t
 
struct  hub_status_response_t
 
struct  hub_port_status_response_t
 

Enumerations

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
}
 

Functions

 STATIC_ASSERT (sizeof(descriptor_hub_desc_t)==9,"size is not correct")
 
 STATIC_ASSERT (sizeof(hub_status_response_t)==4,"size is not correct")
 
 STATIC_ASSERT (sizeof(hub_port_status_response_t)==4,"size is not correct")
 
tusb_error_t hub_port_reset_subtask (uint8_t hub_addr, uint8_t hub_port)
 
tusb_error_t hub_port_clear_feature_subtask (uint8_t hub_addr, uint8_t hub_port, uint8_t feature)
 
tusb_speed_t hub_port_get_speed (void)
 
tusb_error_t hub_status_pipe_queue (uint8_t dev_addr)
 

Detailed Description

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.