Commit Graph

549 Commits

Author SHA1 Message Date
Peter Lawrence 03d7988df3 add NCM driver in a compatible manner : hathach/tinyusb#550 2021-09-25 17:05:58 -05:00
Jerzy Kasenberg c62c1433e7 usbd: Workaround for non standard device descriptor request
Windows and Linux host during enumeration requests device
descriptor with request size set to 64 bytes when device
was in default state (no address).
Those systems do not want 64 bytes though since usb descriptors is
only 18 bytes long so they silently expect that only one packet
will be received possibly 18 bytes for EPS > 16 or 8 or 16 bytes
for smaller EP0.

For devices with CFG_TUD_ENDPOINT0_SIZE size 8 or 16 there was
workaround that reduced request size to CFG_TUD_ENDPOINT0_SIZE
and that was enough to satisfy Windows and Linux hosts.

However USBCV testing application also requests device descriptor
but with size set to 18 bytes. Workaround for Window/Linux
prevented USBVC to tests devices with 8 bytes EP0 size since it
send only 8 bytes while application did wanted 18 bytes.

Solution that satisfies both cases it to check if in default state device
descriptor request wants more bytes than descriptor size (18).
If so host is expecting to receive less bytes then requested
and workaround would be applied since Linux/Windows only try
to read one packet.
If 18 bytes was requested as is the case for USBCV, core returns
descriptor in 2 or 3 packets as application expects.
2021-09-24 14:19:04 +02:00
hathach ea595d3161 update dcd attr for mm32 2021-09-18 16:53:16 +07:00
Scott Shawcroft 2499c9382d
rpi start. doesn't work 2021-09-17 16:51:34 -07:00
MasterPhi 0ded1c5bac Reset EP flags on close. 2021-09-14 21:08:12 +02:00
hathach a23944035d correct assoc_itf_count for bth driver 2021-09-15 00:51:01 +07:00
hathach b474522245 make vendor driver more flexible
- skip additional custom descriptor between interface and endpoints
- can have up to 2 bulk endpoint ( 1 in & 1 out)
2021-09-14 21:30:38 +07:00
hathach 25ea8f9c9e update configuration parser 2021-09-14 21:02:38 +07:00
MasterPhi 3639168066 Fix warning. 2021-09-14 11:58:22 +02:00
hathach 5404d6d8ae usbd pre-compute total interface length without replying on driver open 2021-09-14 12:47:20 +07:00
hathach 27800f7e4f
remove connected check for DCD_EVENT_UNPLUGGED since previous bus reset can clear this
implement unplugged detection for trans dimension dcd
2021-09-09 16:01:05 +07:00
hathach f81368174b
add other speed descriptor callback tud_descriptor_other_speed_configuration_cb()
example implement tud_descriptor_device_qualifier_cb() and
tud_descriptor_other_speed_configuration_cb() on high speed device to
fully compliant to usbcv
2021-09-09 15:17:19 +07:00
hathach d4c56c70a8
minor clean up 2021-09-01 20:01:40 +07:00
hathach 1398226bb5
only attempt to clear if stalled, and stall if cleared 2021-09-01 16:54:03 +07:00
hathach fc889ece74
rp2040 correct ep set/clear stall
- stall will remove pending (not complete) transfer. Correct reset data
toggle when clear stall.
- remove buf ctrl debug code
2021-09-01 16:52:27 +07:00
hathach 90dc9bc289
revert previous changes, edpt stall also clear any pending (not complete) transfer 2021-09-01 12:42:45 +07:00
hathach d047b28aa2
remove set/clear busy flag in set/clear stall since they are different status
note: dcd should resume to prio-stalled queued transfer when unstall
2021-08-31 17:39:54 +07:00
Ha Thach 38f5aee9c3
Merge pull request #1058 from hathach/usbcv-compliant-test
nrf5x USB Compliance Verification Test suite
2021-08-30 17:31:50 +07:00
hathach 9394de6ae7 update msc driver to pass MSC BOT error recovery compliant test 2021-08-27 12:38:41 +07:00
Xu Chun Guang 2202845507 fix: bth stridx error 2021-08-27 10:58:38 +08:00
hathach 71e77e47fa
add dcd_edpt_close_all() for clear existing configured state
correctly responded to TD 9.13 Set Configuration Test
2021-08-26 17:07:03 +07:00
hathach 07adc26ce3
fix usbcv TD 9.4 Interface Descriptor test 2021-08-26 13:07:10 +07:00
Greg Steiert 86201f77be initial commit of support for K32L2B 2021-08-23 16:17:57 -07:00
hathach beb1a5c678 minor clean up 2021-08-20 19:39:33 +07:00
hathach 1cef2b6a42 extra common edpt helper for device and host stack
tu_edpt_validate() and tu_edpt_bind_driver()
2021-08-20 18:01:10 +07:00
Ha Thach 830757d9ce
Merge pull request #1020 from hathach/rp2040-disconnect-suspend
Add Rp2040 suspend & resume support
2021-08-18 16:45:35 +07:00
hathach 9b869463dd skipped suspend/resume if not connected 2021-08-17 17:00:53 +07:00
hathach ab2eec77d4 complete suspend, resume, remote wakeup for nrf52 2021-08-16 20:22:14 +07:00
hathach d52b981c3a
revert ready() check in claim (do it later in separated PR) 2021-08-12 17:07:39 +07:00
hathach 17ef9f4843
add ready check for edpt claim 2021-08-12 15:54:04 +07:00
hathach 88d4cb402d
simplify hw_endpoint_init() 2021-08-12 00:11:04 +07:00
Stefan Kerkmann 7682829820 Add correct endpoint count for GD32VF103
This controller family only supports USB FS with four endpoints
2021-08-07 09:01:01 +02:00
hathach 8cd23489d5 update endian 2021-07-22 17:49:39 +07:00
hathach b35ad6edcb clean up max packet size endian 2021-07-22 17:04:55 +07:00
hathach fa0936bf58 Merge branch 'CCRX_Port' of https://github.com/Wini-Buh/tinyusb into Wini-Buh-CCRX_Port 2021-07-22 16:48:18 +07:00
Ha Thach 1c2bc47c07
Merge pull request #950 from HiFiPhile/dfu
DFU improvements
2021-07-22 11:17:01 +07:00
hathach aff7b100ca update dcd attr for samx7x 2021-07-22 00:28:37 +07:00
hathach 8ee1141a70 correct check 2021-07-22 00:12:01 +07:00
hathach a9f3532252 more ci 2021-07-22 00:12:01 +07:00
hathach 37cac414f8 fix ci 2021-07-22 00:12:01 +07:00
hathach a226dbaa4d add dcd_attr for DCD_ATTR_ENDPOINT_MAX
could be useful with more dcd specific attribute
2021-07-22 00:12:01 +07:00
HiFiPhile b194aa240b
Merge branch 'master' into dcd_same70 2021-07-17 12:10:35 +02:00
hathach 3960beece0 rename CFG_TUD_DFU_MODE to simply CFG_TUD_DFU 2021-07-15 20:52:58 +07:00
hathach daca9e520b wrap up DFU update 2021-07-15 20:47:50 +07:00
hathach 680b000bd1 simplify TUD_DFU_DESCRIPTOR with alternate count
remove CFG_TUD_DFU_ALT_COUNT since there is only one DFU functional
descriptor
2021-07-12 20:15:59 +07:00
hathach 2916cd4575 rename TUD_DFU_MODE_DESCRIPTOR to TUD_DFU_DESCRIPTOR 2021-07-12 18:51:57 +07:00
hathach 10a7e0502a Merge branch 'dfu' of https://github.com/HiFiPhile/tinyusb into HiFiPhile-dfu 2021-07-12 17:50:11 +07:00
Mengsk 5b4b5ca533 Add bwPollTimeout set callback, postpone download callback after GETSTATUS 2021-07-08 00:25:12 +02:00
HiFiPhile 7e883e0f41 Refactor with one DFU functionnal descriptor 2021-07-07 19:01:00 +02:00
Mengsk 941b02c6a9 Reactor to one functional descriptor. 2021-07-07 18:02:04 +02:00
Mengsk c2d8ed3fd1 Add alt settings support in DFU class. 2021-07-05 17:56:21 +02:00
MasterPhi 6e9da70c18 Fix audiod_get_AS_interface_index in audio class.
Enhance uac2_headset example with multiple sample rates.
Add macro to calculate EP size.
2021-07-04 15:46:10 +02:00
hathach ca98996e1f better support for hid device set/get protocol
add caplock detection for hid_composite
2021-07-01 22:46:39 +07:00
Wini-Buh cb0f1d98db Merge remote-tracking branch 'origin/master' into CCRX_Port
# Conflicts:
#	src/portable/renesas/usba/dcd_usba.c
#	src/tusb_option.h
2021-06-29 00:19:30 +02:00
Mengsk b9e9773d04 fix warning 2021-06-24 12:58:18 +02:00
Wini-Buh 51c6444e1d final clean up 2021-06-22 23:49:24 +02:00
hathach 832d22d7ad force single buffered for device mode, out endpoint 2021-06-17 01:55:35 +07:00
Wini-Buh 60d8ecbfe6 clean up 2021-06-11 22:36:17 +02:00
Wini-Buh 1c23462b43 weak atrribute work around removed from CCRX_Port 2021-06-11 22:25:36 +02:00
hathach c7f51cde40 implement usbh_edpt_busy (WIP), remove hcd_edpt_busy 2021-06-10 17:19:21 +07:00
hathach 13cb016042 add usbh_classdriver.h 2021-06-10 16:48:20 +07:00
Wini-Buh 5a554508ca Merge remote-tracking branch 'upstream/master' into CCRX_Port 2021-06-03 22:17:30 +02:00
Wini-Buh b4f092ec74 Adaptations for Renesas CCRX toolchain and Rx72N controller performed 2021-05-29 21:23:39 +02:00
hathach 9736e54734
include clean up 2021-05-27 17:40:39 +07:00
hathach c7cecf28c8
clean up 2021-05-27 00:16:45 +07:00
hathach faa31152b4 rename usbd_edpt_iso_xfer to usbd_edpt_xfer_fifo 2021-05-26 20:34:06 +07:00
Jeremiah McCarthy ce59d69520 Merge remote-tracking branch 'official/master' 2021-05-25 09:27:35 -04:00
hathach 4f03332118 clean up 2021-05-23 20:14:01 +07:00
hathach 40cd3a7e20 Merge branch 'master' into host-hid 2021-05-18 13:08:30 +07:00
hathach db8ea7ea1c clean up 2021-05-18 12:58:24 +07:00
hathach 791efecfdf add tuh_device_ready() 2021-05-18 12:58:24 +07:00
hathach 3a7f8b3ac3 separte tusb_init/inited() to tud/tuh init/inited
add rhport to tud_init()
2021-05-18 12:58:24 +07:00
hathach 2666e1efec add tuh_inited() and tud_inited() 2021-05-18 12:58:24 +07:00
Jeremiah McCarthy 05892a5a1e Merge branch 'master' of github.com:xmos-jmccarthy/tinyusb 2021-05-06 12:18:55 -04:00
hathach b15d126d59 lpc55 improve multiple controller support
port1 highspeed requires USB_RAM
2021-04-24 13:36:05 +07:00
Jeremiah McCarthy 45e401e69d Remove unused alt_setting 2021-04-22 16:42:54 -04:00
hathach 9ecb91e1bd fix build with LOG=2 2021-04-15 23:47:28 +07:00
Jeremiah McCarthy 7b45b38fe4 Remove DFU mode and rt 2021-04-12 11:17:01 -04:00
Jeremiah McCarthy 2e2dc7bdc5 Revise per initial comments
Returns the RT driver to the function state of previous iteration, which
did not support the will_detach.  Behavior should be fine without this
feature.  This removes much of the added bloat to track state, and
handle requests in the APP_DETACH state which is no longer required.

Removes the optional bloat added to the RT driver, such as responding to
GETSTATE requests.

Fixes the DFU Mode to extract the attr bits from the functional
descriptor when opened.

Fixes some incorrect bitwise if checks.

Also, updates some naming of functions to be consistent with the rest of
the library.
2021-04-07 17:05:04 -04:00
Jeremiah McCarthy c39b7b8177 Add DFU runtime and mode "class"
With the runtime and mode portions in separate classes, a single
application should only be building with one or the other enabled.  In
some applications both might be desired at build time.

The CFG_TUD_DFU_RUNTIME_AND_MODE option creates a DFU class, which asks
the application which mode to initialize to.  This allows a runtime
change between RT and DFU mode, by just reinitializing tusb.
2021-04-05 17:52:33 -04:00
Jeremiah McCarthy bc2cb99780 Remove unreachable callback 2021-04-05 17:06:27 -04:00
Jeremiah McCarthy c5b8ef1529 Separate DFU RT and Mode. Untested 2021-04-05 16:32:58 -04:00
Reinhard Panhuber 9b2ddd9cc6 Generalize audio driver for 3 audio functions plus a lot more.
- Audio format and parameters are parsed from descriptors thus user no
longer needs to give them explicitely

- Tested for 4 channel software type I PCM encoding with 16 bit with 1
channel per FIFO and 2 channels per FIFO (this is I2S specific)
2021-04-03 09:49:27 +02:00
Jeremiah McCarthy 1138f8cc70 Add DFU Class per Version 1.1 Spec 2021-03-26 15:30:43 -04:00
hathach a397353916 fix ci build with rp2040 2021-03-10 17:58:39 +07:00
hathach 794083b647 Merge branch 'master' into edpt_ISO_xfer 2021-03-10 17:10:49 +07:00
hathach eeea19c0ab usbd ack SET_INTERFACE if it is not implemented by class driver. 2021-03-10 11:33:03 +07:00
hathach a655a4169e add note for MIDI (audio v1.0) endpoint decriptor use 9 bytes instead of 7 2021-03-04 01:18:49 +07:00
Ha Thach 68db108b35
Merge pull request #688 from duddie/master
Fix Endpoint descriptor size for MIDI Device
2021-03-04 01:10:37 +07:00
Reinhard Panhuber 7b8a08d2e1 Rename dcd_edpt_iso_xfer() to dcd_edpt_xfer_fifo() 2021-03-02 20:00:39 +01:00
hathach 9d5e369170 rp2040 add disconnection detection
- also use dcd_event_bus_reset()
- Add TODO for suspend, resume later on (need to test with/without vbus
detection).
2021-03-02 23:24:36 +07:00
Duddie 72c1066ed1 Fix Endpoint descriptor for MIDI Device
Endpoint descriptor should be 9 bytes in length (not 7) and have two extra bytes at the end: bRefresh and bSynchAddress

According to MIDI USB specification 1.0 (6.2.1 Standard MS Bulk Data Endpoint Descriptor)
2021-02-28 22:18:35 +08:00
Reinhard Panhuber cdf600048f Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-02-12 18:05:20 +01:00
Ha Thach 04ab6b4082
Merge pull request #648 from hathach/rename-dfu-rt-to-runtime
Rename dfu rt to runtime
2021-02-11 15:29:55 +07:00
Ha Thach d4281291e5
Merge pull request #647 from hathach/correct-fs-bulk-epsize
more epsize checking per type
2021-02-11 12:36:19 +07:00
hathach e12c25ec2c rename dfu_rt to dfu_runtime for easy reading
also rename tud_dfu_rt_reboot_to_dfu to tud_dfu_runtime_reboot_to_dfu_cb
2021-02-11 12:05:22 +07:00
hathach 9812cfc6c6 clean up 2021-02-11 11:48:34 +07:00
hathach 919bb9ce38 more epsize checking per type 2021-02-11 11:45:24 +07:00
hathach 49bc97b0ca remove the requirement of std SET/CLEAR_FEATURE must not return zlp status 2021-02-11 11:22:02 +07:00
hathach bb2f93d427 prepare for release 2021-02-05 20:41:41 +07:00