Commit Graph

119 Commits

Author SHA1 Message Date
hathach
3a54ad4c0d implement msc device class
usbd auto stall control for not supported return from class control request
usbd implement xfer isr callback mechanism
DCD
- implement dcd multiple qtd support
- dcd dcd_pipe_stall
- implement dcd_pipe_queue_xfer
- xfer_complete_isr
- flush control endpoint if received new setup while previous transfer is not complete
change msc_cmd_block_wrapper_t flags field to dir
force full speed for easy testing

NOTEs: somehow unable to get endpoint IN interrupt with ioc
2013-11-01 12:11:26 +07:00
hathach
357813f171 implementing sw device stack 2013-10-29 11:27:25 +07:00
hathach
b71ffe3d5a change TUSB_CFG_CONTROLLER0/1_MODE to TUSB_CFG_CONTROLLER_0/1_MODE for clearance
adding configuration docs for tinyusb_config.h
document HID mouse & keyboard API
2013-10-24 15:32:54 +07:00
hathach
de7e21dc66 refractor hub api
fix all test build errors
2013-10-16 11:05:33 +07:00
hathach
6f9172c15f clean up warnings here and there 2013-10-02 14:20:05 +07:00
hathach
640b0ec546 - move disconnection handle to enum task --> move tusbh_xxx_unmount is invoked in non-isr context 2013-10-01 13:53:54 +07:00
hathach
14ebd6c4d9 refractor hub 2013-10-01 11:29:25 +07:00
hathach
93821c55ce hack ehci advance async to handle disconnect via hub 2013-09-30 18:40:20 +07:00
hathach
3cc169f2fd able to mount one device on the hub 2013-09-30 15:16:23 +07:00
hathach
eb1a101667 house keeping 2013-09-27 22:38:23 +07:00
hathach
bbfa85aa08 allow a limited model to deal with stalled pipe/transaction
added stall clear & able to mount the stupid toshiba thumb drive

add HCD pipe API
- bool hcd_pipe_is_busy(pipe_handle_t pipe_hdl);
- bool hcd_pipe_is_stalled(pipe_handle_t pipe_hdl);
- uint8_t hcd_pipe_get_endpoint_addr(pipe_handle_t pipe_hdl);
- tusb_error_t hcd_pipe_clear_stall(pipe_handle_t pipe_hdl);

remove tusbh_device_mount_failed_cb (not neccessary for user)
2013-09-24 18:23:34 +07:00
hathach
63b776f7cf add some tests support for msc host
refractor msch buffer for getting inital scsi like inquiry, read capacity
adding support for resovling stall on control pipe
2013-09-24 15:21:16 +07:00
hathach
85f3ad9d3b refractor hcd API to allow queue xfer without actually transferring data 2013-09-23 00:24:51 +07:00
hathach
cc91a73cdc fix pingstate for highspeed bulk out transfer
temp implementation of msc host --> can issue inquiry command
2013-09-22 18:44:55 +07:00
hathach
5708863859 house keeping, clean up warnings 2013-09-21 14:38:40 +07:00
hathach
d15ba08fdc house keeping 2013-09-21 13:17:43 +07:00
hathach
f8f398a681 start to add msc host, fix dangerous problem with unstable device when plugged --> 200 ms delay. 50ms delay after each port reset 2013-09-20 23:53:48 +07:00
hathach
86681fe442 starting to add support for IAR workbench 2013-09-19 16:11:11 +07:00
hathach
c71f5c6f1b integrate & able to run cmsis-rtx with current code base 2013-09-13 16:53:17 +07:00
hathach
25304d142f refractor qhd_xfer_error_isr (omit xfer_type para)
add accumulated total xferred byte for an endpoint until transfer with IOC set
- control xfer will have length of data phase in usbh_xfer_isr callback
2013-07-06 14:52:02 +07:00
hathach
68da489c2e refractor ehci.c adding qhd_get_xfer_type 2013-07-06 13:41:48 +07:00
hathach
374aea7a11 change usbh_control_xfer_subtask to use flat API instead of passing tusb_control_request_t struct 2013-07-05 13:23:42 +07:00
hathach
391e132d6b no big deal, only rename tusb_std_request_t to tusb_control_request_t 2013-07-04 12:25:39 +07:00
hathach
539c7cdbe1 update usbh_xfer_isr to take actual byte transferred and correct tests 2013-07-02 17:37:55 +07:00
hathach
e1ad7b62cf add way to calculate the actual byte transferred with ehci
add come callback for cdch
add code for cdc serial demo
2013-07-02 17:20:25 +07:00
hathach
7e5c6ded2d add tusbh_cdc_serial_is_mounted API
test for cdch close driver
2013-07-02 15:32:41 +07:00
hathach
12526b34a1 extract qhd_xfer_error_isr
add support for period list in xfer_error_isr
pass period TUSB_EVENT_XFER_ERROR & TUSB_EVENT_XFER_STALLED tests
2013-07-02 12:22:46 +07:00
hathach
9fea5291bf refractor extract list_next
add support for TUSB_EVENT_XFER_STALL
add test for error/stall in periodic list
2013-07-02 12:01:51 +07:00
hathach
958d390a85 refractor code 2013-07-01 20:28:16 +07:00
hathach
3f9f3f08d2 add cdc host driver close cdch_close
refractor
- add helper function in ehci qhd_next & qtd_next
- extract function qhd_create_pipe_handle
rename tusb_transfer_type_t to tusb_xfer_type_t
add some handling for stall
2013-07-01 18:53:25 +07:00
hathach
d8bd749c75 change control xfer check in usbh_xfer_isr
rename
- async_list_process_isr to async_list_xfer_complete_isr
- period_list_process_isr to period_list_xfer_complete_isr

extract function void qhd_xfer_complete_isr(ehci_qhd_t * p_qhd, tusb_transfer_type_t xfer_type)
2013-07-01 16:14:46 +07:00
hathach
3f0d740776 rename usbh_isr to usbh_xfer_isr 2013-07-01 15:30:29 +07:00
hathach
2cc5df9b00 add custom bulk out test 2013-06-23 01:10:59 +07:00
hathach
fe53297b17 fix bug with custom class that terminate xfer after the first QTD 2013-06-22 22:26:00 +07:00
hathach
5c564df8c1 add api for hcd: hcd_pipe_is_idle
add api for usbh: tusbh_device_get_mounted_class_flag
implement api for custom class
- is mounted
- read
2013-06-21 14:20:08 +07:00
hathach
3924764dff [host lpc43xx] adding support for host custom class
refractor usbh class driver indexing
opt out periodic list code in EHCI (need to refractor/group later)
[device lpc176x] rename dcd_endpoint_configure to dcd_pipe_open
add usbd_pipe_open to manage pipe
2013-06-21 13:11:45 +07:00
hathach
63add70139 test clean up 2013-05-09 12:49:52 +07:00
hathach
861f02943d add log2_of and use this function in get_period_head 2013-05-06 20:51:34 +07:00
hathach
120db28a17 change format of file header & license spacing 2013-05-06 12:50:19 +07:00
hathach
fdd98e2fa9 clean up main 2013-04-28 00:00:48 +07:00
hathach
c0104b996e implement hcd_port_speed_get
move port reset & speed detection from isr context to usbh enumeration task
- decrease time in isr significantly from 50 ms to 580us
fix bug with osal_task_delay for freeRTOS buil
2013-04-25 17:48:55 +07:00
hathach
c20071c55c fix compiler error for USB1 to none in ehci.c
rename and moving bsp ea4357
2013-04-22 11:00:43 +07:00
hathach
3f9a73a34d change config to use USB0 only
fix some compiler warnings
2013-04-22 10:44:51 +07:00
hathach
ee9d53477a complete the support for correct polling of 1ms 2ms 4ms 8ms 2013-04-21 16:24:42 +07:00
hathach
a493fab753 separate fake ehci's run async & period list
refractor list_find_previous_item & list_remove_qhd to act on ehci_link_t* instead of ehci_qhd_t*
fully support 1ms, 2ms, 4ms, 8ms for period list (each list has a dummy queue head)
- change period list structure
limit the maximum polling interval to 256 ms
add max_loop static MAX number of iteration for list_find_previous_item
add test for close 256ms polling interrupt
2013-04-21 15:09:54 +07:00
hathach
357888a5e5 rename nxp_sof_received to nxp_int_sof
implementing freeRTOS integration
change get_period_frame_list from using lst_idx to hostid (fix bug)
adding polling interval supported for interrupt: 1ms, 2ms, 4ms, 8ms
- add interval_ms to get_period_head function
- add bInterval to qhd_init
- add support for sub-frame (less than 8 micro frames) interval
- add bunch of test for interrupt different intervals
2013-04-21 00:28:25 +07:00
hathach
fffe8b547d - ehci: free error TD for recovery 2013-04-10 02:40:09 +07:00
hathach
2d7fbb5153 change keyboard_app.c & mouse_app.c from polling API to interrupt-based (callback isr)
and using OSAL for task-base demo
- fix ehci error with XFER_COMPLETE callback to usbh_isr, TD need to be freed & unlink before invoking
callback
- fix bug in usbh.c set device state to CONFIGURED right after SET_CONFIGURE control xfer
2013-04-10 02:34:40 +07:00
hathach
c036efff1d adding code to allow configure MIC2555 to pull down D+/D- (still need bit bangding I2C on PB_0 PB_1)
add back port reset after get 8 bytes of device descriptor
2013-04-09 02:13:18 +07:00
hathach
27f860db9f rename hidh_keyboard_info_t to hidh_interface_info_t
rename tusb_bus_event_t to tusb_event_t
add test_mouse_init and more stuff for hidh mouse
move delay after port reset to only for speed detection
prioritize port change interrupt over xfer interrupt
- in case of unplugged, current connect change & xfer error both set
- xfer error only break to debugger if not because of unplugged

fix bug: set dev addr0 state to UNPLUG after close its control pipe in enumeration process
2013-04-07 05:09:18 +07:00