Commit Graph

942 Commits

Author SHA1 Message Date
Scott Shawcroft 909891325a
Fix slow CDC OUT by NAKing
This NAKs CDC OUT packets when the ring buffer doesn't have
enough space for it. This makes CDC OUT reliable rather than
allowing overwriting into the ring buffer.
2019-03-21 14:52:56 -07:00
hathach c211ee19dd migrate license from BSD 3 clause to MIT 2019-03-20 16:11:42 +07:00
hathach a19455d1ff follow up to PR #39 2019-03-04 11:51:36 +07:00
Gregory P. Smith fa8141f31f Fixes #33: Remove invalid use of strncpy().
This was causing a stringop-truncation compiler warning in gcc 8 when
the #defined values being copied from were string literals.
 `error: 'strncpy' output truncated before terminating nul copying 8 bytes from a string of the same length [-Werror=stringop-truncation]`

These fields aren't NUL terminated C strings, they are a fixed width buffer
that is supposed to be space (0x20) padded.
2019-03-03 19:41:41 -08:00
hathach f2d76a39eb mscd: send scsi status before invoke read10/write10/scsi complete callback 2019-02-22 01:31:13 +07:00
Scott Shawcroft c870efffc0
Fix write protected MSC. The bits were flipped. 2019-02-20 15:12:36 -08:00
hathach 59c1b4b427
zero init internal class/device data 2019-01-29 19:39:34 +07:00
Scott Shawcroft 52abbec7c5
Remove txbuf in favor of fifo.
Fifo incurs a second copy into a USB buffer but this ensures the
correct USB buffer alignment. Some LPC chips require 64 byte
alignment that txbuf couldn't do.
2019-01-08 14:10:40 -08:00
Scott Shawcroft 048fc9694c
Split out txbuf and add unit test. 2019-01-04 18:27:00 -08:00
Scott Shawcroft a3173b8de4
Add USB Midi support.
It also introduces a txbuffer which copies data into it but passes
the buffer straight to the USB rather than another copy.
2019-01-04 12:16:27 -08:00
hathach 257d60fe1a white spaces 2018-12-21 12:58:53 +07:00
hathach 902697ca07 add dcd_get_microframe() 2018-12-17 12:14:11 +07:00
hathach 2a60427bdc rename bit_* helper to tu_bit_*, BIT_* to TU_BIT_* for consistency 2018-12-14 15:30:54 +07:00
hathach a3713f801d clean up compiler attribute 2018-12-14 13:08:21 +07:00
hathach a6b9432600 clean up error enum 2018-12-13 14:57:21 +07:00
hathach 1c49c479ca seperate tusb_task() to tud_task() and tuh_task()
tusb_task() still exists for backward compatible
2018-12-13 14:51:37 +07:00
hathach bb544a0951
minor update 2018-12-12 14:43:45 +07:00
hathach c1c501e0c2
change usbd xfer_cb return type to bool 2018-12-12 13:12:06 +07:00
hathach b6cb4757d2
change class driver open return type to bool 2018-12-12 13:00:59 +07:00
hathach 6c0b0917e1
rename descriptor_* helper to tu_desc_* 2018-12-12 12:01:15 +07:00
hathach 6d86db3977
rename edpt_dir/number/addr to tu_edpt_* 2018-12-12 11:51:31 +07:00
hathach 67d6d753d6
replace all hcd pipe close by hcd_device_remove 2018-12-12 00:00:33 +07:00
hathach 600fac1845
fix build error with ohci 2018-12-11 16:18:56 +07:00
hathach dbc560658a
more hcd_pipe to hcd_edpt rename 2018-12-11 13:15:05 +07:00
hathach 0d04e6eb96
rename to hcd_edpt_open() 2018-12-11 13:12:21 +07:00
hathach 7c2056defb
remove pipe handle in host msc 2018-12-11 01:03:15 +07:00
hathach 7a626dbc8b
completely remove pipe handle for cdc/hub/ehci 2018-12-11 00:56:21 +07:00
hathach e863c99a6f
fix msc host 2018-12-10 23:15:53 +07:00
hathach 212deaf2f8
usbh name change 2018-12-10 22:19:01 +07:00
hathach 9c3c782b64
host msc built but got hardfault with inquiry command 2018-12-10 22:11:02 +07:00
hathach dffe9b335e
clean up host pipe api 2018-12-10 20:26:47 +07:00
hathach 4e7596ca9c
add tuh_mount_cb/tuh_umount_cb 2018-12-10 19:25:57 +07:00
hathach 9c4c797502
add ep addr to host cdc 2018-12-10 19:01:28 +07:00
hathach 0ae8a1aa89
remove pipe handle.dev_addr 2018-12-10 16:58:17 +07:00
hathach a486da33ee
usbh clean up 2018-12-10 05:55:02 +07:00
hathach a31f83dbb0
removing pipe handle 2018-12-10 05:44:08 +07:00
hathach 05913a7350
change usbh class driver open signature 2018-12-09 12:34:05 +07:00
hathach 607658d047
rename MODE_HOST_SUPPORTED to TUSB_OPT_HOST_ENABLED 2018-12-07 23:38:52 +07:00
hathach e6e3679136
simple cdc host demo work 2018-12-07 17:37:54 +07:00
hathach 9b74f0e98f
add connect to cdc for testing 2018-12-07 15:07:00 +07:00
hathach 366ab79776
able to build host hid 2018-12-07 14:57:58 +07:00
hathach 89820a36a1 able to build with host msc 2018-12-07 12:56:42 +07:00
hathach ac829c0a87 minor clean up 2018-12-06 22:56:58 +07:00
hathach 07c3fd5e1e clean up hub 2018-12-06 22:47:49 +07:00
hathach 7d3ff7aff6 rename CFG_TUSB_HOST_CDC/MSC to CFG_TUH_CDC/MSC 2018-12-06 22:24:31 +07:00
hathach 5f7d7a34f5 able to complete enumeration with os none blocking 2018-12-06 00:38:00 +07:00
hathach d96347a0f5
rename OPT_MCU_LPC13UXX to OPT_MCU_LPC13XX 2018-11-30 12:48:06 +07:00
hathach 8b03b6d3b4 add Auto descriptor endpoint num config to support lpc17xx
CFG_TUD_DESC_*_EPNUM
2018-11-28 16:10:31 +07:00
hathach 80ecf1fd54
add OPT_MODE_HIGH_SPEED 2018-11-26 14:56:07 +07:00
hathach 064eec5dd8
clean up warnings 2018-11-26 12:29:55 +07:00
Scott Shawcroft 47fabe42ed
One tweak to make -Wdiscarded-qualifiers happy. 2018-11-23 12:48:55 -08:00
hathach 394a22ecf7
remove pragma GCC diagnostic 2018-11-23 15:25:25 +07:00
hathach f196b24dce
rename DCD_XFER_SUCCESS to XFER_RESULT_SUCCESS 2018-11-23 15:22:46 +07:00
hathach a619ff88a3
rename xfer complete enum 2018-11-23 15:17:43 +07:00
hathach cb8782e5f2
rename tusb_event_t to xfer_result_t 2018-11-23 15:14:47 +07:00
hathach 60d8cde695
rename CFG_TUSB_MEM_SECTION to CFG_TUSB_MEM_SECTION 2018-11-22 17:21:07 +07:00
hathach 4314be9aeb
msc device block count and block num
- replace CFG_TUD_MSC_BLOCK_NUM & CFG_TUD_MSC_BLOCK_SZ by
tud_msc_capacity_cb() (mandatory callback)
2018-11-22 12:11:06 +07:00
hathach 215f8603b1 nrf5x: refactor device control transfer.
- make control transfer as part of usbd. Class driver must use
usbd_control_ API() instead of dcd_ api.
- change the signature of class driver's control_request
- allow control request complete to stall in staus stage
- move control request parser & handling to usbd.
2018-11-16 21:56:39 +07:00
hathach 983225ae60
Merge pull request #7 from tannewt/tinyusb_samd
Add SAMD support and simplify OS_NONE
2018-11-14 15:36:12 +07:00
hathach 3fe7cd1659 added tud_cdc_write_str, tu_fifo only use mutex for RTOS config 2018-11-13 15:45:22 +07:00
Scott Shawcroft 299a2f12de
Support the no CDC protocol as well. 2018-11-09 11:32:59 -08:00
Scott Shawcroft 537a29273c
Exempt from strict warnings for struct packing and add MCU options 2018-11-09 00:10:44 -08:00
Scott Shawcroft 30e3c64134
Polish up control split and treat it more like a normal endpoint. 2018-11-08 13:45:30 -08:00
Scott Shawcroft 7a40ec2647
Split out the control endpoint logic 2018-11-07 23:04:34 -08:00
Scott Shawcroft c582c0fda9
Add SAMD21 and SAMD51 support for CircuitPython.
The ProtoThreads style subtasks were removed because it led to
extremely unclear control flow. RTOSes can be used if threading is
needed.

Also added some additional functionality to MSC to support dynamic
LUNs and read-only LUNs.
2018-11-07 12:02:28 -08:00
hathach cb9bcce6a2 use mutex for cdc device fifo 2018-11-02 18:40:47 +07:00
hathach bfa10016ae rename verify_breakpoint to TU_BREAKPOINT 2018-10-24 12:37:43 +07:00
hathach 55427606ef replace dcd_xfer_complete by dcd_xfer_complete() 2018-10-24 00:44:26 +07:00
hathach f339ac7a6a clean up msc device 2018-10-23 12:48:49 +07:00
hathach c7340f4b0e clean up helper func 2018-10-23 12:19:32 +07:00
hathach 33c61bfda2 comment out cdc flush on write (for now). Since it has issue with circuitpython 2018-10-05 21:35:40 +07:00
hathach e623fc656d cdc flush on write() if queue more than epsize 2018-08-30 15:28:19 +07:00
hathach 61e4a8c3d3 remove CFG_TUD_CDC_FLUSH_ON_SOF option 2018-08-30 15:20:15 +07:00
hathach bb2a8fcebf cdc device : rename epin_buf, epout_buf 2018-08-28 14:18:39 +07:00
hathach b0d14e2e41 minor nrf52 driver correct 2018-08-28 13:15:03 +07:00
hathach c5d2f661e7 rename common func to avoid conflict 2018-08-23 20:09:28 +07:00
hathach d996bd5295 correct cdc line coding memory align 2018-08-15 17:57:33 +07:00
hathach e07b1acbed rename VERIFY to TU_VERIFY to avoid conflict with application 2018-08-13 18:10:23 +07:00
hathach 6d96b12e27 improve auto descriptor 2018-08-01 00:50:04 +07:00
hathach 9444d45af6 dev hid enhancement, add report descriptor templates for keyboard, mouse, consumer, syscontrol, gamepad 2018-07-31 23:10:50 +07:00
hathach a2b7b9ddb9 fix hid warning, move report descriptor template to hid.h 2018-07-31 14:59:39 +07:00
hathach cc143cccf4 move default option 2018-07-31 14:27:48 +07:00
hathach 191b73b58c tud_hid_generic_get_report_cb and tud_hid_generic_set_report_cb are mandantory 2018-07-31 13:45:31 +07:00
hathach 1a0ffcee25 add tud_hid_generic_report() 2018-07-31 13:31:03 +07:00
hathach 8eeee22ffc enhance device hid driver
seperate inteface and report
2018-07-30 17:01:20 +07:00
hathach 683bb574e7 hid device enhance 2018-07-29 14:03:48 +07:00
hathach 8b17c54609 fix hid generic various error 2018-07-28 22:42:44 +07:00
hathach c729db2294 beter hid report 2018-07-28 18:14:30 +07:00
hathach 6034553be7 adding hid_generic support 2018-07-28 13:50:46 +07:00
hathach 9f61493020 change HID config, move HID boot config to part of auto descriptor only 2018-07-28 12:38:45 +07:00
hathach 456506045f seperate CFG_TUD_HID_BOOT_PROTOCOL to CFG_TUD_HID_KEYBOARD_BOOT & CFG_TUD_HID_MOUSE_BOOT 2018-07-27 21:48:15 +07:00
hathach cf6c534c19 add usb msc callback description 2018-07-27 17:20:15 +07:00
hathach 5dd02cbdd3 house keeping 2018-07-27 16:59:57 +07:00
hathach 72b600c393 update device msc callback 2018-07-26 22:41:46 +07:00
hathach e362f5fd64 rename some scsi command struct, add SCSI_CMD_MODE_SENSE_6 to built-in support command 2018-07-26 16:57:30 +07:00
hathach faf88d00c2 clean up 2018-07-26 16:01:14 +07:00
hathach f5b2912372 add tud_msc_set_sense(), update msc device to reponse with default sense (illegal request) when there is issue with scsi command 2018-07-26 15:59:13 +07:00
hathach 602315cd57 fix hid keyboard idle rate 2018-07-26 11:27:34 +07:00
hathach 8694285ad2 add SCSI_CMD_REQUEST_SENSE into device msc built-in command 2018-07-25 23:56:06 +07:00
hathach 226a4f8816 clean up device msc 2018-07-25 22:51:43 +07:00
hathach 93db46292a update msc example 2018-07-25 22:35:02 +07:00
hathach 8fc1d151fc correct msc stall behavior 2018-07-25 22:24:58 +07:00
hathach be7b0caf2d enhance device msc response in case of STALL response 2018-07-25 22:21:14 +07:00
hathach 9365794623 clean up device msc API 2018-07-25 20:34:56 +07:00
hathach d2ab4db25e add scsi start stop unit struct, improve device msc, correctly stall unsupported scsi command 2018-07-25 16:56:57 +07:00
hathach 1982886f87 add control set boot protocol support and keyboard idle rate
- tud_hid_keyboard_is_boot_protocol()
- tud_hid_mouse_is_boot_protocol()
2018-07-25 15:58:52 +07:00
hathach 2729937e87 add tud_msc_ready() 2018-07-25 12:26:08 +07:00
hathach a6fede4962 improve tud_hid_mouse API() 2018-07-24 20:51:50 +07:00
hathach b370283174 rename tud_hid_mouse_busy to tud_hid_mouse_ready 2018-07-24 20:41:06 +07:00
hathach 17369cfda0 change tud_hid_keyboard_busy() to tud_hid_keyboard_ready() for positive meaning 2018-07-24 18:18:02 +07:00
hathach 255f832904 rename device mouse API 2018-07-24 16:55:30 +07:00
hathach 3dc1d847b8 rename device keyboard api 2018-07-24 16:52:38 +07:00
hathach 3400dfdf4e nrf52840 boot mouse does not work, need more work 2018-07-24 00:45:07 +07:00
hathach 5f6cd49031 clean up include 2018-07-23 23:41:14 +07:00
hathach 51903a60c5 rename timeout_ API to tu_timeout API 2018-07-23 22:36:29 +07:00
hathach 361928f429 rename timeout_timer.h to tusb_timeout.h 2018-07-23 22:32:21 +07:00
hathach 176607dbe1 rename tud_hid_mouse_is_busy to tud_hid_mouse_busy 2018-07-23 22:30:24 +07:00
hathach 3e209f9c20 enhance device hid
- add CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP
- add tud_hid_keyboard_send_keycode(), tud_hid_keyboard_send_char(),
tud_hid_keyboard_send_string()
- add timeout_blocking_wait()
2018-07-23 17:46:07 +07:00
hathach 4342325ee1 reworking device hid class driver 2018-07-23 15:25:45 +07:00
hathach 141ac25e3b also added wanted char to fifo 2018-07-20 15:47:28 +07:00
hathach 6129670e4a forgot to add tud_cdc_read_flush() 2018-07-17 21:20:37 +07:00
hathach 798ce59ebd revert usbd_control_xfer_st() implementation
enhance cdc with better multiple interfaces support
add default ep size for cdc and msc device CFG_TUD_CDC_EPSIZE,
CFG_TUD_MSC_EPSIZE
2018-07-17 16:04:55 +07:00
hathach abb37e98ba rename tud_cdc_flush() to tud_cdc_write_flush(), add tud_cdc_read_flush() 2018-07-14 23:43:19 +07:00
hathach 19b6bbfd14 add device cdc wanted char callback, cdc peek 2018-07-14 23:28:07 +07:00
hathach e0c4e11ea3 use _usbd_ctrl_buf for control transferm refactor cdc device 2018-07-14 15:12:42 +07:00
hathach 7a1f40593f only call class xfer callback associated with endpoint address 2018-07-13 18:01:16 +07:00
hathach 1efb552bfd add ep2drv, rename descriptor offset 2018-07-13 17:48:26 +07:00
hathach dccb06ba7d rename class driver close() to reset() 2018-07-13 16:09:26 +07:00
hathach ffdd925854 clean up 2018-07-13 00:34:32 +07:00
hathach a623f0c179 better multiple interfaces support for cdc device 2018-07-13 00:32:02 +07:00
hathach a4292e5906 changing cdc device to support multiple interface (not yet) 2018-07-12 23:08:54 +07:00
hathach fc139b009f add CFG_TUD_MSC_VENDOR,CFG_TUD_MSC_PRODUCT, CFG_TUD_MSC_PRODUCT_REV for msc inquiry response 2018-07-04 15:00:46 +07:00
hathach 3eb410cf85 add CFG_TUD_MSC_BLOCK_NUM, CFG_TUD_MSC_BLOCK_SZ msc device auto response to scsi read capa and read format cap 2018-07-04 14:39:32 +07:00
hathach 3e66d2d31e rename fifo * to tu_fifo to avoid conflict with other module 2018-07-04 00:22:15 +07:00
hathach a08cb6e727 clean up 2018-07-01 15:54:40 +07:00
hathach cfd5e1e6d1 clean up 2018-06-24 22:30:44 +07:00
hathach 6b2b6aaa3f fix msc device with transfer len > 65k bytes 2018-06-24 00:16:22 +07:00
hathach b9f8575e2d clean up device cdc
separate cdc tx & rx bufsize
2018-06-23 13:19:36 +07:00
hathach 5f1bec943b fix msc block count get 2018-06-21 12:20:21 +07:00
hathach a6a06bca69 update msc device adjust lba for read10, write10 callback 2018-06-19 22:59:54 +07:00
hathach 3ace03cbc7 re-increase cdc buffer for nrf52840 due to bulk out issue 2018-06-19 15:16:26 +07:00
hathach 424735d440 rename subfolder source to src 2018-06-18 14:05:24 +07:00