Commit Graph

1787 Commits

Author SHA1 Message Date
Reinhard Panhuber 5f268608d7 Remove offset feature from fifo.c 2021-04-30 13:39:55 +02:00
Reinhard Panhuber 8f72c97f7b Change read infos to pointer type 2021-04-30 12:59:12 +02:00
Jeremiah McCarthy f830800d00 Fix typo and clean up reset 2021-04-29 16:04:18 -04:00
hathach c9177246d2 temporarily fix include recusrive loop 2021-04-28 12:31:24 +07:00
hathach ba90a8cb79 use correct NBYTES_MAX for full and high speed 2021-04-26 20:22:40 +07:00
hathach c26875e70d add TUP_MCU_STRICT_ALIGN macro that manually pick bytes for lpc55 port1 that is m4 but cannot unaligned acces on usb ram 2021-04-26 17:42:49 +07:00
hathach a8e109cb3d clean up 2021-04-26 17:14:20 +07:00
hathach 8ebdf2b097 ip3511 correct buffer offset, nbytes layout for highspeed port1
able to get passed enumeration and up to READ10
2021-04-26 14:43:58 +07:00
hathach f14daf2081 fix unaligned access with port1 hs 2021-04-24 15:04:58 +07:00
hathach b15d126d59 lpc55 improve multiple controller support
port1 highspeed requires USB_RAM
2021-04-24 13:36:05 +07:00
hathach 7089df2088 lpc55 correct bus_reset with highspeed on support controller
correct hsphy init for family
2021-04-24 12:19:13 +07:00
hathach 8bed369c7f lpc55 better multiport support 2021-04-24 11:30:14 +07:00
hathach 8642c2045c update dcd ip3511 for better multiple rhport support 2021-04-24 10:44:14 +07:00
Reinhard Panhuber 7072f0155e Change tu_fifo_get_linear_write/read_info() to return a struct
Compilers always complain that variables set by function via pointer
might be uninitialized so to avoid that return values are now delivered
via struct.
2021-04-23 11:48:54 +02:00
Reinhard Panhuber a98d0217a0 Init len_wrap = 0 to fix compiler complains. 2021-04-23 10:47:22 +02:00
Reinhard Panhuber 4dd1f1f3b5 Fix include path in audio_device.h 2021-04-23 10:32:22 +02:00
Reinhard Panhuber 03f974c9b9 Implement functions to allow for DMA usage in audio driver.
- Add tud_audio_n_get_ep_out_ff(), tud_audio_n_get_ep_in_ff(),
tud_audio_n_get_rx_support_ff(), and tud_audio_n_get_tx_support_ff()
- Change get_linear_read/write_info() to return linear and wrapped part
at once
- Adjusted affected code in audio_device.c and tested with
audio_4_channel.
2021-04-23 10:27:48 +02:00
Jeremiah McCarthy b8e5885c2b Removes polltimeout behaviour and restructures
Moves dfu_req_dnload_reply to ACK stage of a DNREQUEST.

Removes unneeded variables due to other simplifications.
2021-04-22 17:45:33 -04:00
Jeremiah McCarthy 8c80ddeb54 Fix statte check on DATA stage 2021-04-22 17:00:57 -04:00
Jeremiah McCarthy cc440ade81 Remove custom status description table 2021-04-22 16:47:05 -04:00
Jeremiah McCarthy 45e401e69d Remove unused alt_setting 2021-04-22 16:42:54 -04:00
Jeremiah McCarthy e54d9d10af Add const 2021-04-22 16:39:43 -04:00
Jeremiah McCarthy 289af581bb Remove uunused code 2021-04-22 16:06:06 -04:00
Jeremiah McCarthy 18e9d253e9 Remove usb reset callback 2021-04-22 16:04:09 -04:00
Jeremiah McCarthy 0936a76dc9 Remove nonstd behaviour 2021-04-22 15:59:49 -04:00
Jeremiah McCarthy 88dea7a0a8 Move debug from .h to .c 2021-04-22 15:02:50 -04:00
Jeremiah McCarthy 01661b3f28 Replace dfu_mode with dfu 2021-04-22 14:56:52 -04:00
Reinhard Panhuber 29bcc83d0f Remove unnecessary volatile and short audio function index to func_id 2021-04-21 17:01:38 +02:00
Reinhard Panhuber 705753f448 Merge remote-tracking branch 'upstream/master' into uac2_fix_cs_as_int_alt_set_0 2021-04-20 20:15:54 +02:00
Reinhard Panhuber c7c11b181c Clean up old depracted and misleading variable names 2021-04-20 20:15:02 +02:00
Reinhard Panhuber fef0d54559 Refactor static function for better performance 2021-04-20 19:56:40 +02:00
Reinhard Panhuber 4408ffce88 Fix pointer alt_setting to be cleared when driver gets initialized 2021-04-20 18:44:56 +02:00
Alex Lisitsyn 2f0cb8b5f1 tinyusb: add support of esp32s3 target
add support of new esp32s3 target and the board
update the roles.mk wrapper to allow dfu flashing of espressif chip
update examples to allow compilation for esp32s3_addax_1 board
once the code is tested the PR to original tinyusb repo will be submitted
2021-04-16 13:38:00 +02:00
hathach 9ecb91e1bd fix build with LOG=2 2021-04-15 23:47:28 +07:00
hathach b687a4fc20 Merge branch 'master' into edpt_ISO_xfer 2021-04-15 12:12:52 +07:00
hathach 3c84776e0a minor clean up 2021-04-15 12:09:12 +07:00
Reinhard Panhuber 8d9f60ca5e Improve user feedback in case of wrong configuration of audio driver 2021-04-14 21:52:54 +02:00
Jeremiah McCarthy 7b45b38fe4 Remove DFU mode and rt 2021-04-12 11:17:01 -04:00
Joey Castillo 7c8b4991f1 Add support for SAM L22 family 2021-04-09 17:33:14 -04:00
Reinhard Panhuber 2134c1a875 Fix defines in audio_device.c 2021-04-08 21:48:36 +02:00
Reinhard Panhuber 4bebb9ca49 Remove depracted defines in audio_device.c 2021-04-08 20:11:51 +02:00
Jeremiah McCarthy ae851bba31 Resolve gcc warnings for no parameter functions 2021-04-07 17:15:26 -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
Reinhard Panhuber 8eacdffebd Optimize encode/decode - refactor unnecessary repetitive division 2021-04-07 20:07:28 +02:00
hathach d9a0cc9e9f
more cleanup 2021-04-07 16:50:45 +07:00
hathach 893919a848 remove tu_fifo_backward_write/read_pointer API
since it is illegal from fifo perspective
2021-04-07 13:27:28 +07:00
hathach 2468f9e26d more _ff_pull/push clean up 2021-04-07 13:15:25 +07:00
hathach 9042e973d3 clean up _ff_push_n 2021-04-07 12:52:57 +07:00
hathach d6737fb5fe use tu_unaligned_write32() for _ff_push_const_addr 2021-04-07 12:34:00 +07:00
hathach d0fa4d5189 rename 2021-04-07 12:24:24 +07:00
hathach 8ac156622d fix cast-align warning 2021-04-07 00:38:12 +07:00
hathach a3c06aa7bc more clean up for _ff_pull_const_addr_in_full_words() 2021-04-06 23:39:39 +07:00
hathach d82ee2f8c0 refactor _ff_pull_n() with const addr 2021-04-06 23:12:04 +07:00
hathach 58bab86d79 minor clean up 2021-04-06 21:09:23 +07:00
hathach c5db2282ad Merge branch 'master' of github.com:hathach/tinyusb into edpt_ISO_xfer 2021-04-06 19:35:01 +07:00
Ha Thach 1d20c84798
add tu_unaligned_read32/write32 (#772)
* add tu_unaligned_read32/write32
* added tu_unaligned_read16/write16
* add TU_ATTR_ALWAYS_INLINE, add to most of simple inline function
2021-04-06 19:32:01 +07:00
hathach 8b79040c38 code format 2021-04-06 15:34:50 +07: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 fdc91f8d2c Fix bug during initialization of DFU Mode 2021-04-05 16:48:09 -04:00
Jeremiah McCarthy c5b8ef1529 Separate DFU RT and Mode. Untested 2021-04-05 16:32:58 -04:00
hathach 68687ed0f4 fix build 2021-04-06 01:16:51 +07:00
hathach 7ab8da949e audio driver only use USE_LINEAR_BUFFER = 0 for stm32 synopsys driver 2021-04-06 01:07:32 +07:00
hathach 3acf0c2d73 revert dcd_edpt_xfer_fifo() implementation for esp32s2 2021-04-06 01:00:00 +07:00
hathach 69ad092fce revert dcd_edpt_xfer_fifo() implementation for nuc120 121 2021-04-06 00:13:12 +07:00
hathach 49b2d8f26c revert dcd_edpt_xfer_fifo() implementation for msp430 2021-04-06 00:07:17 +07:00
Jeremiah McCarthy 164d3e82e3 Fix incorrect DNLOAD request len passed to app
Fixes bug where the app callback was getting the length of the status
request transfer rather than the length of the data stage payload.

TODO: Right now this returns the expected length, when it really should
be returning the transfer length.
2021-04-05 11:13:42 -04:00
hathach 8d2dfe872c revert dcd_edpt_xfer_fifo() implementation for stm32_fsdev 2021-04-05 19:19:49 +07:00
hathach bebe2f0bbf revert dcd_edpt_xfer_fifo() implementation for nuc505 2021-04-04 22:50:26 +07:00
hathach 586a46c7d3 revert dcd_edpt_xfer_fifo() implementation for samg
samg fifo is accessed byte by byte (although the register is 32 bit).
2021-04-04 21:33:19 +07:00
Reinhard Panhuber 1ac9e7e3a7 Fix wrong read mutexes in audio_device.c 2021-04-03 18:22:19 +02:00
Reinhard Panhuber f6ba58e370 Fix wrong pointer type in audio_device.c 2021-04-03 17:50:30 +02:00
Reinhard Panhuber 4af5189492 Fix potential bug in support FIFO sizes 2021-04-03 16:53:29 +02:00
Reinhard Panhuber 475badd087 Add missing #defines in uac2_headset example 2021-04-03 16:10:46 +02:00
Reinhard Panhuber fc65f39ff2 Fix error in #defines in uac2_headset 2021-04-03 15:58:41 +02:00
Reinhard Panhuber ec6b240de2 Fix #define error in audio_device.h 2021-04-03 15:44:44 +02:00
Reinhard Panhuber 6236effb14 Fix #define error in audio_device.h 2021-04-03 15:29:39 +02:00
Reinhard Panhuber 8b90c08b35 Fix #define errors in audio_device.h 2021-04-03 15:24:38 +02:00
Reinhard Panhuber a1efd41649 Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-04-03 09:50:08 +02: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
Ha Thach eb92986b88
Merge pull request #766 from hathach/enhance-midi
Enhance midi
2021-04-02 15:47:40 +07:00
hathach 48bb96f507 correct midi stream read behavior to read until user buffer is full or no more data from usb fifo 2021-04-02 15:08:36 +07:00
hathach 350eb11277 refactor midi read buffer to stream 2021-04-02 14:52:44 +07:00
hathach da59c4ad44 rename midi write()/read() to stream_write() stream_read()
also add deprecated for warning and rename hint
2021-04-02 14:43:38 +07:00
hathach 99b78e62f2 removed tud_midi_write24() 2021-04-02 14:34:13 +07:00
hathach 08fe16840f refactor midi write into stream 2021-04-02 14:26:55 +07:00
hathach 6b04efd443 refactor midi stream read 2021-04-02 13:55:51 +07:00
hathach 080b14b292 fix midi tx fifo overflow cause data corruption
rename
2021-04-02 13:26:55 +07:00
Ha Thach 2f5dda90b7
Merge pull request #757 from kkitayam/add_support_for_gr_citrus
Add support for GR-CITRUS
2021-03-31 22:01:43 +07:00
hathach 949ff791e0 code format 2021-03-31 00:34:09 +07:00
hathach b05084e406 remove tud_midi_read_flush() 2021-03-30 23:56:55 +07:00
hathach c5aa661c89 rename tud_midi_receive/send to tud_midi_packet_read/write 2021-03-30 23:54:17 +07:00
hathach 89a911ee43 correct hid key enter = 0x28, return = 0x9E 2021-03-30 21:26:35 +07:00
hathach d135825e9c add hid keys from 0x6B to 0xA4 2021-03-30 21:12:56 +07:00
kkitayam 4a597c9698 cleanup 2021-03-28 12:42:28 +09:00
kkitayam a1f1941c3f fixed a OUT transfer did not completed multiple of the max packet size 2021-03-27 16:03:04 +09:00
kkitayam e010ea30e5 using BRDY interruption for handling IN transfers. 2021-03-27 14:42:19 +09:00
Jeremiah McCarthy fb7b47cf07 Minor cleanup 2021-03-26 17:32:03 -04:00
Jeremiah McCarthy 1138f8cc70 Add DFU Class per Version 1.1 Spec 2021-03-26 15:30:43 -04:00
kkitayam f8cf88f918 update for gr_citurs 2021-03-26 19:32:39 +09:00
kkitayam 13735eb21d added dcd for Renesas USBa 2021-03-26 19:30:53 +09:00
Reinhard Panhuber 994dddc231 Fix shadowing parameter in fifo.c 2021-03-25 14:38:55 +01:00
Reinhard Panhuber bfddfbadc7 Implement unaligned word copy. 2021-03-25 14:28:59 +01:00
Reinhard Panhuber 1e4e87de51 Rework to copy wrapped word bytes by byte in copy_to_cont_dst etc. 2021-03-25 13:53:26 +01:00
Rafael Silva 2807644e7e add efm32 driver
Signed-off-by: Rafael Silva <silvagracarafael@gmail.com>
2021-03-23 20:45:56 +00:00
Rafael Silva 143582870c add efm32gg12 family
Signed-off-by: Rafael Silva <silvagracarafael@gmail.com>
2021-03-23 18:59:21 +00:00
Reinhard Panhuber a60bd0c8ac Fix bug in writing to constant src/dst address.
Copying has to be conduct in full words (at least for STM32). Renamed
copy function to tu_fifo_write_n_const_addr_full_words()
2021-03-23 19:33:04 +01:00
Ha Thach 7503b9f18c
Merge pull request #733 from hathach/fix-nrf-dcd-bulk-out-race
fix race condition that could cause drop packet of Bulk OUT transfer
2021-03-19 10:00:30 +07:00
hathach 64f41dea62 fix race condition that could cause drop packet of Bulk OUT transfer
NRF_USBD->SIZE.EPOUT[epnum] only need to write once to enable
Bulk/Interrupt transfer. We only need to do it in dcd_edpt_open() and
dcd_edpt_clear_stall()
2021-03-18 15:07:07 +07:00
Ha Thach 881321e763
Merge pull request #724 from xmos-jmccarthy/master
USB TMC Updates
2021-03-18 11:17:43 +07:00
Jeremiah McCarthy ec08dcf61a Implement requested changes for PR724 2021-03-17 09:25:01 -04:00
Michael Bruno 62d4652f86
Update usbtmc_device.c
Fix buffer alignment in TMC device class
2021-03-16 10:48:42 -04:00
hathach 82e24306e2 fix build with OPT_MCU_LPC177X_8X 2021-03-16 15:49:09 +07:00
Reinhard Panhuber cd491e296e Intermediate commit 2021-03-14 18:55:16 +01:00
hathach 4ee1216aaf fix fifo unlock typo, also clean up a bit 2021-03-13 00:22:04 +07:00
Ha Thach 3a27a9405f
Release 0.9.0 (#716)
* update change log for release
* move changelog into docs/
* more changelog
* increase macro version
2021-03-12 15:10:47 +07:00
hathach 31373fd55c use !tu_fifo_empty() instead of tu_fifo_count() 2021-03-12 12:55:18 +07:00
hathach 4310941daa Merge branch 'cdc_read' of https://github.com/HiFiPhile/tinyusb into HiFiPhile-cdc_read 2021-03-12 12:49:44 +07:00
HiFiPhile 5caad485f1 Add fifo empty check.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2021-03-11 20:36:46 +01:00
Reinhard Panhuber 8cb3bd3cd3 Merge remote-tracking branch 'upstream/edpt_ISO_xfer' into edpt_ISO_xfer 2021-03-10 19:33:11 +01:00
Reinhard Panhuber d5a5a1cab6 Implement audio PCM type I enc./decoding acc. to 2.3.1.5 Audio Streams
Extending capabilities of support FIFOs
Removing copy from to FIFO
Adjusting audio examples
Remove peek/read into other FIFO
2021-03-10 19:32:13 +01:00
hathach a397353916 fix ci build with rp2040 2021-03-10 17:58:39 +07:00
hathach e864bda627 fix build with freertos 2021-03-10 17:21:59 +07:00
hathach 794083b647 Merge branch 'master' into edpt_ISO_xfer 2021-03-10 17:10:49 +07:00
HiFiPhile 7fc99a9e11 Call One time tu_fifo_write_n on cdcd_xfer_cb
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2021-03-10 10:19:45 +01:00
hathach eeea19c0ab usbd ack SET_INTERFACE if it is not implemented by class driver. 2021-03-10 11:33:03 +07:00
Reinhard Panhuber de1f36f2b0 Adapt mutexes in fifo.c 2021-03-04 19:52:48 +01:00
Reinhard Panhuber 2e28861cf8 Remove TODOs done. 2021-03-04 18:20:22 +01:00
Ha Thach 5285548c75
Merge pull request #700 from hathach/fix-rp2040-bus-reset
fix enum walkaround forever check for SE0 when pull up is disabled
2021-03-04 21:01:39 +07:00
Reinhard Panhuber 7e56f46957 Extend FIFO mutex to use separate write and read mutexes.
Adjust all USB drivers using FIFO and mutexes.
2021-03-04 13:52:14 +01:00
hathach 33a29c9e4c add midi comment 2021-03-04 19:30:08 +07:00
hathach 8cabbb28df fix enum walkaround forever check for SE0 when pull up is disabled 2021-03-04 18:36:18 +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 848e403e37 Fix unused parameter in _ff_push_copy_fct() and _ff_pull_copy_fct 2021-03-03 08:18:57 +01:00
Reinhard Panhuber a1b07ae14c Change copy modes for new read/write functions in tusb_fifo.c 2021-03-02 21:52:42 +01:00
Reinhard Panhuber 3cdb82c21c Change for copy modes in dcd_synopsis.c 2021-03-02 21:42:24 +01:00
Reinhard Panhuber bd2bab7aff Remove set_copy_modes(), implement:
tu_fifo_read_n_const_addr(), tu_fifo_write_n_const_addr()
2021-03-02 21:41:51 +01:00
Reinhard Panhuber 7b8a08d2e1 Rename dcd_edpt_iso_xfer() to dcd_edpt_xfer_fifo() 2021-03-02 20:00:39 +01:00
Reinhard Panhuber c8b6d9b990 Revert implementation of dcd_edpt_iso_xfer() 2021-03-02 19:28:35 +01:00
hathach a298045f6c clean up 2021-03-02 23:30:21 +07:00
Reinhard Panhuber fc35b3f72d Switch back OPT_MCU_DA1469X to use linear buffers 2021-03-02 17:24:58 +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
hathach 1676a836d1 fix rp2040 host build 2021-03-02 14:54:12 +07:00
Ha Thach 559ff80643
Merge pull request #684 from hathach/rp2040-host-example
add rp2040 to host example build
2021-03-02 13:03:52 +07:00
Reinhard Panhuber 8ec99694d2 audio_decive clean up and bootstrapping of linear (formerly evade) buff. 2021-03-01 09:09:15 +01: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
Ha Thach 5a753c1ab0
Merge pull request #675 from majbthrd/rp2040epaddr
rp2040: use TU endpoint conventions and remove redundant variables
2021-02-27 00:38:53 +07:00
Peter Lawrence eb44b6f7db rp2040: improve _hw_endpoint_init() 2021-02-26 11:07:34 -06:00
hathach f6b48c07fc
add rp2040 to host example build 2021-02-26 14:05:08 +07:00