Commit Graph

1094 Commits

Author SHA1 Message Date
hathach ab2eec77d4 complete suspend, resume, remote wakeup for nrf52 2021-08-16 20:22:14 +07:00
Ha Thach 2bb63406e9
Merge pull request #959 from KarlK90/gd32vf103-support-tiny-usb
[PORT] Add GD32VF103 support and Sipeed Longan Nano Board support
2021-08-15 18:50:00 +07:00
hathach 09e4348adc move gd32vf103 to its own family 2021-08-15 17:19:25 +07:00
hathach 6af1950c8d
synopsys clear DAD on bus_reset 2021-08-14 01:51:13 +07:00
Tobias Ringström 0ec794376b Fix dcd_set_address bug when called more than once with different
addresses (e.g. after plugging the device into a different port).
2021-08-13 14:11:14 +02:00
hathach 17ef9f4843
add ready check for edpt claim 2021-08-12 15:54:04 +07:00
hathach 4ad47d9e26
bus_reset will reset all endpoints
allow for dynamic configuration as well as state-less enumeration
2021-08-12 15:40:26 +07:00
Jerzy Kasenberg cde607338d da1469x: Fix no VBUS startup
For self powered device if device started without VBUS present
it would not be correctly attached to USB bus even if tusb_vbus_changed()
was later called.

This modifies dcd_init() so it starts USB state machine without checking
if VBUS is present or not, like all others drivers do.
tusb_vbus_changed() function is also removed its content was moved to dcd_init.
2021-08-12 09:12:25 +02:00
hathach 4f2999bc04
white space 2021-08-12 00:31:26 +07:00
hathach 88d4cb402d
simplify hw_endpoint_init() 2021-08-12 00:11:04 +07:00
hathach a2baf9427d
more dcd clean up 2021-08-11 20:36:23 +07:00
hathach 979af6c2a8
clean up endpoint set/clear stall 2021-08-11 20:29:39 +07:00
hathach f3a6e564ee
rp2040 enable suspend and resume interrupt 2021-08-11 20:06:57 +07:00
Jerzy Kasenberg 2c7bb540b4 dcd_da1469x: Use mcu.h instead of MCU specific header
dcd_da1469x can work with broader range of MCUs that
share same USB core.
Specific header file that was used DA1469xAB.h now it is changed
to mcu/mcu.h which includes actual MCU specific register file.
2021-08-10 20:26:51 +02:00
Robert Manzke ea72d64992 STM32L151 portable driver adaptations 2021-08-08 08:30:52 +02:00
Stefan Kerkmann 4cebde65ec Remove unnecessary define guard
The GD32VF103 family only has USB-OTG peripherals.
2021-08-07 12:00:13 +02:00
Stefan Kerkmann c6d495d643 Remove dependencies to external libraries for the dcd driver
The core of tinyusb must be as independent as possible, we previously
relied on nuclei-sdk or the GD32VF103 firmware library for the synopsys
driver to work with the GD32VF103. Fortunatly we needed very few parts
from them so we implement them here.
2021-08-07 08:55:25 +02:00
Ha Thach 88f5c04fe0
Merge pull request #985 from HiFiPhile/same70
SAMx7x improvements
2021-08-06 11:32:57 +07:00
MasterPhi a698dda67e Minor fix. 2021-08-05 09:56:24 +02:00
Stefan Kerkmann 3eb54d878a Add stm32 license header 2021-08-03 20:21:06 +02:00
Stefan Kerkmann 2657560b63 Add hacky GD32VF103 support 2021-08-03 20:00:35 +02:00
kkitayam 45e55a8ea0 fix: D0FIFOSEL setting was incorrectly when big-endian is selected.
In pipe_xfer_in(), the endianness setting of D0FIFOSEL was lacking due to refactoring.
And add type cast operation to avoid warnings by CCRX.
2021-07-31 12:20:19 +09:00
MasterPhi 383290a634 Move register define to separate header. 2021-07-30 21:15:58 +02:00
MasterPhi c4cd36980d Add cache clean/invalidate. 2021-07-30 12:07:23 +02:00
kkitayam e7c9cf4aea Change the accessing method of TU_FIFO from read/write_n_const_addr_full_words to get_write/read_info and advance_write/read_pointer pairs. 2021-07-29 20:24:11 +09:00
kkitayam 3f49380b37 added support for dcd_edpt_xfer_fifo 2021-07-29 20:22:33 +09:00
kkitayam 1c2e353193 Refactor and clean up 2021-07-29 20:22:33 +09:00
hathach 15112fdbba clean up compiler 2021-07-22 22:10:48 +07:00
hathach 8cd23489d5 update endian 2021-07-22 17:49:39 +07:00
hathach c4da1abb1e rename bit filed order
clean up packed/bit order begin end
2021-07-22 17:30:08 +07:00
hathach 4e50ceba48 rename packed begin/end 2021-07-22 17:07:39 +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 c737aa6fbb
Merge pull request #693 from HiFiPhile/dcd_same70
SAMx7x (E70, S70, V70, V71) DCD Support
2021-07-22 00:07:33 +07:00
MasterPhi 8c6cd5396c Fix non-DMA IN irq. 2021-07-21 10:50:07 +02:00
MasterPhi 5492d9148c Re-enable SETUP irq on EP0 stall. 2021-07-21 10:29:47 +02:00
MasterPhi 9c26c0c01e Remove redundant TX irq. 2021-07-21 09:42:26 +02:00
MasterPhi eec927ea95 Fix EP0 issue (again) 2021-07-21 00:28:51 +02:00
MasterPhi fa9a327a71 Workaround of EP0 issue, clean up. 2021-07-20 13:24:39 +02:00
MasterPhi 895c913aa9 Merge branch 'dcd_same70' of https://github.com/HiFiPhile/tinyusb into dcd_same70 2021-07-19 22:04:34 +02:00
MasterPhi 75f61328ea Remove clock init. 2021-07-19 22:03:47 +02:00
Ben Evans cee980c598 Fix for dcd_synopsys driver integer overflow in HS mode (issue #968). 2021-07-19 17:45:12 +10:00
hathach 05f59fb8ed clean up warning 2021-07-19 12:08:01 +07:00
MasterPhi 8cae17bfc8 Fixing NAKed OUT xfer 2021-07-19 01:07:33 +02:00
MasterPhi bae0d3b7bb Fix build error. 2021-07-17 14:42:23 +02:00
MasterPhi 7e3e41952f Fix ISO support. 2021-07-17 13:48:21 +02:00
HiFiPhile b194aa240b
Merge branch 'master' into dcd_same70 2021-07-17 12:10:35 +02:00
kkitayam 1ff3b76451 remove unnecessary blocking operation.
add comments why resume event is sent manually.
2021-07-05 21:27:08 +09:00
kkitayam 3019c6eb40 Add SUSPEND/RESUME handling for Renesas RX family. 2021-07-03 23:35:58 +09:00
Wini-Buh 4c0cce4b1d Make toolchain dependency more consistent 2021-06-29 21:45:18 +02:00
Wini-Buh 36ba9608bd Merge from current master. Fixed a compilation error with the GNUC toolchain 2021-06-29 00:43:41 +02: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
Ha Thach 6e939de9d6
Merge pull request #891 from hathach/host-rp2040-double-buffer
RP2040 double buffer
2021-06-28 17:39:09 +07:00
Ha Thach b2feae15e4
Merge pull request #927 from hathach/add-rx65n-board
Add rx65n board
2021-06-28 13:53:42 +07:00
DuMaM b5ce269675
GCC 11 build fix
During Adafruit Bootloader compilation, I spotted bellow error which do not allow me build project.

``` c
    inlined from 'hfclk_running' at lib/tinyusb/src/portable/nordic/nrf5x/dcd_nrf5x.c:785:13:
lib/tinyusb/src/portable/nordic/nrf5x/dcd_nrf5x.c:792:31: error: 'is_running' may be used uninitialized [-Werror=maybe-uninitialized]
  792 |     return (is_running ? true : false);
      |            ~~~~~~~~~~~~~~~~~~~^~~~~~~~
```
2021-06-26 17:03:46 +02:00
kkitayam 393a9120ac add the entry for RX65N 2021-06-26 23:09:18 +09:00
Wini-Buh 51c6444e1d final clean up 2021-06-22 23:49:24 +02:00
Wini-Buh c5f6b57755 Merge remote-tracking branch 'upstream/master' into CCRX_Port 2021-06-22 23:21:01 +02:00
Ha Thach 81fa9966de
Merge pull request #895 from ElectronicCats/master
add support SAML21
2021-06-20 01:01:00 +07:00
hathach 6b621baeb3 fix race condition with control since TASKS_EP0RCVOUT also require EasyDMA 2021-06-19 01:58:27 +07:00
hathach 82618d2d5f fix build with mm32 board 2021-06-18 17:18:11 +07:00
hathach 5006b1065a remove duplicate mm32 dcd 2021-06-18 12:49:41 +07:00
zhangslice 7b27607f1a mit license
Signed-off-by: zhangslice <1304224508@qq.com>
2021-06-18 12:46:27 +07:00
zhangslice 3ba72b53d8 Add MM32 SDK and USB driver
Signed-off-by: zhangslice <1304224508@qq.com>
2021-06-18 12:46:27 +07:00
hathach 832d22d7ad force single buffered for device mode, out endpoint 2021-06-17 01:55:35 +07:00
MasterPhi 30fff56aa4 Revert "Use byte copy.", add barrier after buffer write.
Signed-off-by: MasterPhi <admin@hifiphile.com>
2021-06-16 00:18:38 +02:00
MasterPhi 67a6560ec9 Default use dual bank for FS, use dcd irq switch. 2021-06-15 21:52:14 +02:00
MasterPhi 6cc702e9ec Prevent buffer overflow.
Signed-off-by: MasterPhi <admin@hifiphile.com>
2021-06-15 21:16:51 +02:00
MasterPhi 54dc694be4 Use byte copy. 2021-06-15 19:11:53 +02:00
MasterPhi ca8e8041ef Fix resume, always init FS clock.
Signed-off-by: MasterPhi <admin@hifiphile.com>
2021-06-15 17:53:09 +02:00
sabas1080 7bed7d70f0 add support SAML21 2021-06-15 00:01:28 -05:00
hathach 5c567129ea fix calculating xferred bytes with double buffer with short packet on buffer0 2021-06-13 18:30:26 +07:00
hathach f38c460433 fix ep tx with double buffered 2021-06-13 17:19:14 +07:00
hathach bd039c8d37 fix build with log for device 2021-06-13 16:16:25 +07:00
hathach 1af64f9729 remove sent_setup from hw endpoint 2021-06-13 15:31:00 +07:00
hathach 289ccf3c93 remove dev_ep_map 2021-06-13 13:19:20 +07:00
MasterPhi 85fc423569 Rename SAM7X to SAMX7X
Signed-off-by: MasterPhi <admin@hifiphile.com>
2021-06-12 12:36:59 +02:00
MasterPhi f039607afc Fix indent.
Signed-off-by: MasterPhi <admin@hifiphile.com>
2021-06-12 11:19:08 +02:00
Rafael Silva 776a770947 dcd: sam7x: rename family dcd to include the whole family
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2021-06-12 00:09:24 +01: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
Rafael Silva 2196991df3 dcd: same70: trim trailling spaces
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2021-06-11 21:03:36 +01:00
Rafael Silva bcd3e31bd6 dcd: same70: fix unused variable warning
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2021-06-11 20:59:48 +01:00
Rafael Silva 9a03ab9dfa dcd: same70: change cmsis deprecated macros
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2021-06-11 20:52:22 +01:00
hathach 910e11a8ab fix ci build 2021-06-11 19:04:16 +07:00
hathach dfe5a727c6 log clean up 2021-06-11 18:54:09 +07:00
hathach b39faa15ef map pico_info to log2, pico_trace to log3 2021-06-11 18:44:08 +07:00
hathach a6d22f5a68 replace pico_warn by log level 1 2021-06-11 18:40:01 +07:00
hathach 66c8a13f13 remove unused variable in hw endpoint
last_buf, buf_sel, transfer_size
2021-06-11 18:26:41 +07:00
hathach 93cb2ff4cf more refactor double buffered rp2040 2021-06-11 18:16:13 +07:00
hathach 1d48320d8a rename hw endpoint
- total_len to remaining_len
- len to xferred_len
2021-06-11 17:58:29 +07:00
hathach 5d6e381ef6 refactor rp2040 usb
- make _hw_endpoint_xfer_sync and _hw_endpoint_start_next_buffer private
- drop prefix _ from _hw_endpoint_xfer_continue and
_hw_endpoint_reset_transfer
2021-06-11 17:34:51 +07:00
MasterPhi c291deccfa Add fifo & DMA linked list mode support. 2021-06-11 12:17:11 +02:00
HiFiPhile 24de9d39af Format. 2021-06-11 12:17:11 +02:00
HiFiPhile 1dafcd1132 - Add Full Speed switch
- Add DMA support
- Add Dual bank support

Signed-off-by: HiFiPhile <admin@hifiphile.com>
2021-06-11 12:17:11 +02:00
HiFiPhile 4f4a33b378 Seems like fixed ep0 issues, code format.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2021-06-11 12:17:11 +02:00
HiFiPhile f8aa4b3ff3 Add sketchy SAME70 DCD driver. 2021-06-11 12:17:10 +02:00
hathach a1a03c92f6 double buffered work with host 2021-06-11 17:05:49 +07:00
hathach 43656dc0a7 more clean up 2021-06-10 23:29:02 +07:00
hathach cf0a475a2e clean up 2021-06-10 22:00:59 +07:00
hathach c7f51cde40 implement usbh_edpt_busy (WIP), remove hcd_edpt_busy 2021-06-10 17:19:21 +07:00
hathach 7e6cba7359 remove hcd_edpt_stalled() 2021-06-10 16:55:12 +07:00
Ha Thach 3c4ab6bd8a
Merge pull request #883 from hathach/fix-rp2040-host-transferred-bytes
fix computing transferred bytes with E4
2021-06-10 11:35:51 +07:00
hathach 501de2a5e8 fix computing transferred bytes with E4 2021-06-08 10:29:22 +07:00
hathach c2b85c8d6d add OPT_MCU_MM32F327X
move dcd_mm32f into mindmotion folder
2021-06-07 18:51:44 +07:00
zhangslice 26b9fc38ed
Add MM32 SDK and USB driver (#869)
* Add MM32 SDK and USB driver
* add mindmotion mm32sdk as submodule
remove the local copy of mm32
* mit  license
Signed-off-by: zhangslice <1304224508@qq.com>
Co-authored-by: hathach <thach@tinyusb.org>
2021-06-07 17:32:46 +07:00
Wini-Buh 5a554508ca Merge remote-tracking branch 'upstream/master' into CCRX_Port 2021-06-03 22:17:30 +02:00
graham sanderson c81bc38d42 Add __unused to variables that are only used if TU_LOG does something 2021-06-03 10:10:44 -05:00
Wini-Buh e26cf6b26c Missing RX device dependency corrected 2021-06-02 21:33:32 +02:00
Ha Thach 8ea0dfba68
Merge pull request #865 from kilograham/pico-0.10.0
Pico 0.10.0
2021-06-03 01:02:54 +07:00
hathach bc0a0386e9
clean up 2021-05-31 18:41:08 +07:00
hathach 31077f48d2
correct ohci endpoint address in xfer complete 2021-05-31 18:16:07 +07:00
hathach 4e98ce9147
use hcd_frame_number() instead of uframe 2021-05-31 18:15:47 +07:00
hathach da8000d42d
clean up ohci, remove obsolete api 2021-05-31 16:34:16 +07:00
hathach 04797bc5a5
clean up 2021-05-31 16:05:55 +07:00
hathach 3fb80e76ce remove obsolete hcd_pipe_queue_xfer()/hcd_pipe_xfer() 2021-05-31 12:08:37 +07:00
hathach 5cf930d78a fix cast-align warning in msc host 2021-05-31 11:11:00 +07:00
hathach c2a0c1507b add more comment 2021-05-30 23:44:29 +07:00
hathach 54c9150574 add errata number 2021-05-30 23:41:59 +07:00
hathach 6498ee1996 fix incorrect data toggle when max packet size < 64
fix host buf_sel panic with "already available"
2021-05-30 23:35:54 +07:00
graham sanderson 3973ec4b5e rp2040: fix debug compilation error 2021-05-30 08:16:15 -05:00
Wini-Buh b4f092ec74 Adaptations for Renesas CCRX toolchain and Rx72N controller performed 2021-05-29 21:23:39 +02:00
hathach 164778a716 update limit each transfer not less than 64 2021-05-28 17:42:13 +07:00
hathach 9ad6fadf6a
more include clean up 2021-05-27 18:34:07 +07:00
hathach b36b211c26
clean up tusb_fifo.h include 2021-05-27 17:58:42 +07:00
hathach 13613eafb7 correct ehci control endpoint address report on xfer complete
improve host log
2021-05-18 12:58:24 +07:00
hathach 1dd2cd43dd add hcd_ehci.h as interface for ehci port 2021-05-18 12:58:24 +07:00
hathach 9233269a2c only apply errata walkaround for nrf52 2021-05-11 18:38:23 +07:00
Jerzy Kasenberg e2f795067a Allow build for NRF5340 MCU
Errata code referred to NRF_USBD_BASE.
This definition is not present in NRF5340 but both NRF52 and NRF53
do have NRF_USBD which maps to NRF_USBD_BASE for NRF52 and
to NRF_USBD_S_BASE for NRF5340.
This just make build possible for NRF5340.
2021-05-11 12:37:08 +02:00
corvus-ossifragus 72f5202086 Update trace statements that referenced deprecated structure elements. 2021-05-10 10:09:09 -04:00
Ha Thach 2a343ba916
Merge pull request #826 from hathach/minor-cleanup
minor clean up
2021-05-10 19:29:45 +07:00
hathach 13de8f5d98 minor clean up 2021-05-10 19:15:46 +07:00
corvus-ossifragus 13b510ad8e Update hcd_rp2040.c
Remove reference to the deprecated "num" and "in" members  of struct hw_endpoint which still exist in an assert statement and break DEBUG builds.
2021-05-07 16:49:48 -04:00
Ha Thach 42a1d2f3b9
Merge pull request #804 from hathach/audio_make_dma_ready
Implement functions to allow for DMA usage in audio driver.
2021-05-02 15:29:38 +07:00
hathach ba90a8cb79 use correct NBYTES_MAX for full and high speed 2021-04-26 20:22:40 +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 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
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 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
Joey Castillo 7c8b4991f1 Add support for SAM L22 family 2021-04-09 17:33:14 -04: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
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 a1efd41649 Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-04-03 09:50:08 +02: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
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
Rafael Silva 2807644e7e add efm32 driver
Signed-off-by: Rafael Silva <silvagracarafael@gmail.com>
2021-03-23 20:45:56 +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
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
hathach 82e24306e2 fix build with OPT_MCU_LPC177X_8X 2021-03-16 15:49:09 +07: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 8cabbb28df fix enum walkaround forever check for SE0 when pull up is disabled 2021-03-04 18:36:18 +07: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 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
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
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
Ha Thach 0c05a02e67
Merge pull request #682 from hathach/rp2040_fix_hcd_init
Update RP2040 hcd_init to have rhport argument.
2021-02-26 11:52:48 +07:00
Liam Fraser e6e7c73f6e Update RP2040 hcd_init to have rhport argument. 2021-02-25 15:48:19 +00:00
majbthrd efea18a888
Merge branch 'master' into rp2040epaddr 2021-02-25 09:15:42 -06:00
majbthrd 0632ecf556
Merge branch 'master' into rp2040device 2021-02-25 08:57:09 -06:00
Peter Lawrence 999ef227d0 rp2040: requested code mode in rp2040_usb.h 2021-02-25 08:45:47 -06:00
Ha Thach 50a0bddd8b
Merge pull request #672 from majbthrd/rp2040trim
rp2040: correctly size variables to reduce RAM usage
2021-02-25 21:17:59 +07:00
Peter Lawrence 762f262be7 rp2040: requested change from TU_MIN to tu_min16 2021-02-25 07:58:54 -06:00
Reinhard Panhuber 5ebe53f02d Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-02-24 20:54:35 +01:00
Kamil Tomaszewski 448dcdc4cf spresense: fix setup processed flag 2021-02-24 17:39:16 +01:00
Reinhard Panhuber a7f07a1a63 Fix pointer type 2021-02-23 21:53:17 +01:00
Reinhard Panhuber 697c9476b7 Fix pointer type 2021-02-23 21:42:38 +01:00
Reinhard Panhuber cb33840a9b Fix pointer type 2021-02-23 21:15:27 +01:00
Peter Lawrence e00178a1af rp2040: don't compile in host code when in device mode 2021-02-23 14:04:56 -06:00
Reinhard Panhuber 00248de15a Fix shadowing declartion in dcd_da146xx.c 2021-02-23 20:23:26 +01:00
Reinhard Panhuber c76e04f835 Add dcd_edpt_iso_xfer() to dcd_template.c 2021-02-23 19:50:54 +01:00
Reinhard Panhuber e223d46033 Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer
Conflicts:
	src/common/tusb_fifo.h
	src/osal/osal_none.h
2021-02-23 19:47:57 +01:00
Reinhard Panhuber 313dd1439d Implement dcd_edpt_iso_xfer() for dcd_da146xx.c BUT WITHOUT DMA SUPPORT 2021-02-23 19:41:21 +01:00
Peter Lawrence c5422a5c48 rp2040: use TU endpoint conventions and remove redundant variables 2021-02-23 12:06:41 -06:00
Ha Thach 656673fb58
Merge pull request #674 from hathach/host-msc
Enhance Host MSC
2021-02-24 00:19:38 +07:00
hathach 451650fa32 move ehci and ohci to portable folder 2021-02-23 23:09:48 +07:00
Peter Lawrence 5a8ae31316 rp2040: leverage existing macro for capping endpoints in pico-sdk 2021-02-23 10:08:38 -06:00
Peter Lawrence 592d047936 rp2040: correctly size variables to reduce RAM usage 2021-02-22 20:53:16 -06:00
hathach de95585258 nxp tdi: hcd_init() reset and set host mode 2021-02-23 01:27:52 +07:00
hathach c5b8980398 separate hcd_init from ehci 2021-02-22 22:40:51 +07:00
hathach 8a2e4c79fd make hcd tdi more generic 2021-02-22 18:02:52 +07:00
Kamil Tomaszewski b591a66b3d Pass the correct speed on Spresense 2021-02-22 11:24:16 +01:00
hathach 00b4b74e82 rename hcd_lpc18_43 to hcd_transdimension 2021-02-22 17:15:06 +07:00
hathach 43ca626774 merge iso and cbi transaction size to max ep size 2021-02-22 12:27:02 +07:00
ndinsmore cb5b9eb2f6
Remove stray. commented out line 2021-02-19 08:33:06 -05:00
ndinsmore ac87a4547d
Change to using tu_min32
This was a github edit, not tested
2021-02-18 08:25:04 -05:00
Nicholas R Dinsmore 27f4b6f5a4 Included size check for ISO buffers 2021-02-17 18:22:24 -05:00
Reinhard Panhuber 6cb9a6ebb1 Add (void *) for pointer cast. 2021-02-17 23:04:19 +01:00
Reinhard Panhuber d8481ac7e4 Fix wrong pointer call in dcd_samg.c 2021-02-17 22:52:59 +01:00
Reinhard Panhuber 666e0fad35 Fix wrong tu_fifo_read_n() call in dcd_stm32_fsdev.c 2021-02-17 22:50:49 +01:00
Reinhard Panhuber 402005c9e0 Fix missing pointer operator in dcd_nuc505.c 2021-02-17 22:49:10 +01:00
Reinhard Panhuber 94bf4f54da Fix missing FIFO definitions 2021-02-17 22:29:51 +01:00
Reinhard Panhuber eee47493a3 Fix bug in evasion buffer list 2021-02-17 21:59:32 +01:00
Reinhard Panhuber 2d7b61972c Implement dcd_edpt_iso_xfer() for dcd_stm32_fsdev
Implemented a special copy strategy to copy directly from the FIFO. This
function, however, is untested and should be regarded as unreliable
until somebody was able to test it
2021-02-17 20:46:31 +01:00
Nicholas R Dinsmore 79b360f0a6 Enable iso buffers per rp2040 spec 2021-02-17 13:22:34 -05:00
Reinhard Panhuber a5d7b6266d Implement dcd_edpt_iso_xfer() for msp430 2021-02-14 14:05:15 +01:00
Reinhard Panhuber 893f997dcb Change FIFO use indication to ff == NULL to avoid future errors.
This way people don't need to pay attention for the buffer pointer
2021-02-14 09:25:34 +01:00
Reinhard Panhuber b634b5958b Implement dcd_edpt_iso_xfer() for INTERRUPT driven dcd_nuc505 2021-02-13 21:00:55 +01:00
Reinhard Panhuber 0c3dc8f99b Implement dcd_edpt_iso_xfer() for dcd_nuc121.c 2021-02-13 17:44:59 +01:00
Reinhard Panhuber 126e46e38a Fix not increment xfer->buffer if xfer->buffer == NULL in dcd_samg.c 2021-02-13 17:37:13 +01:00
Reinhard Panhuber e681678402 Implement dcd_edpt_iso_xfer() for dcd_nuc120.c 2021-02-13 17:06:27 +01:00
Reinhard Panhuber 7ab389db21 Implement dcd_edpt_iso_xfer() for dcd_samg.c. NOTE: ISO EP not supported 2021-02-13 16:36:32 +01:00
Reinhard Panhuber 59d6ed9ea4 Implement dcd_edpt_iso_xfer() for dcd_esp32s2.c 2021-02-13 12:13:10 +01:00
Reinhard Panhuber cdf600048f Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-02-12 18:05:20 +01:00
Reinhard Panhuber a9fd0a454a Complete redesign of audio driver. 2021-02-12 16:28:41 +01:00
ndinsmore 09868434cd
Fixes RP2040 buffer reallocation overrun problem (#642)
Fix running out of memory on a device that repeatedly closes and opens an endpoint. This is a workaround at the moment. A better solution would be to implement reclaiming usb buffer memory when closing an endpoint (i.e. implement dcd_edpt_close).
2021-02-12 08:16:46 +00:00
Ha Thach 78f50518a4
Merge pull request #610 from hathach/rp2040-followup2
Rp2040 followup2
2021-02-01 12:44:53 +07:00
Ha Thach a044578a33
Merge pull request #601 from majbthrd/start_pi2tu
start the assimilation of Pi Pico into TU
2021-02-01 12:43:59 +07:00
Reinhard Panhuber 84406f1654 Rework audio driver 2021-01-31 19:08:23 +01:00
hathach 1abf9eeb80 clean up rp2040 assigned_address, remove panic from remote_wakeup 2021-01-27 13:18:03 +07:00
hathach c3c4f65fea wrap rp2040_usb around opt mcu 2021-01-27 13:04:38 +07:00
Kamil Tomaszewski 5f999fa6a0 Fix dcd issues on cxd56
Pass the next setup package when USB stack is ready to receive it.
When the transfer is 0 on EP0 send complete to the USB stack
Pass the data received after the setup package to the USB stack.
2021-01-25 11:13:56 +01:00
Peter Lawrence edc2224118 rp2040: start to adopt TU coding conventions 2021-01-23 20:21:58 -06:00
Peter Lawrence 587d1b334b rp2040_hcd: check pointer before using 2021-01-23 20:19:10 -06:00
Ha Thach 1e134cbb31
Merge branch 'master' into pico 2021-01-21 16:35:13 +07:00
graham sanderson e0aa405d19 RP2040 support 2021-01-19 19:52:07 -06:00
Reinhard Panhuber 56edc2b261 Change names from edpt_ISO_xfer to edpt_iso_xfer 2021-01-19 10:50:19 +01:00
Reinhard Panhuber 595a88b34c Correct include path to #include "common/tusb_fifo.h" 2021-01-18 17:38:32 +01:00
Reinhard Panhuber dff588d772 Implement dcd_edpt_ISO_xfer() and adapt transmission scheme 2021-01-18 17:15:23 +01:00
Reinhard Panhuber 485d8fa77e Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer 2021-01-09 12:10:08 +01:00
hathach d33b22d127 fix ci 2021-01-08 22:48:52 +07:00
hathach 6e6e6265e4 use dcd_event_bus_reset() with speed to replace bus_signal 2021-01-08 22:34:36 +07:00
hathach cca27fc383 another rename 2021-01-08 16:54:50 +07:00
hathach 201ea7ca6d remove inline for update_grxfsiz 2021-01-08 16:38:41 +07:00
hathach 9998e8a665 more minor work 2021-01-08 16:34:36 +07:00
hathach 86c34a9a33 minor clean up following pr581 2021-01-08 16:25:30 +07:00
Ha Thach 1f00a182c4
Merge pull request #581 from hathach/dcd_synopsis_mem_allocation
Dcd synopsis mem allocation
2021-01-08 12:45:46 +07:00
hathach 3e1d85eed2 comment clean up 2021-01-08 11:43:26 +07:00
hathach cc5dfd03cd update comment and correct the size to 8+2 2021-01-08 11:21:26 +07:00
hathach 60620dca42 walkround for samd21 setup_packet overflow
increase setup packet size from 8 to 12, since USB DMA controller is
suspected to overflow the buffer with 2 extra bytes
2021-01-08 01:21:03 +07:00
Reinhard Panhuber f2b4567a2b Correct function declaration 2021-01-04 17:15:42 +01:00
Reinhard Panhuber 2fa500af18 Minor corrections for PR
- externerlize code into functions
- correct comments
2021-01-04 17:00:23 +01:00
Reinhard Panhuber 37bb14678a Remove too verbose comment 2021-01-04 12:06:16 +01:00
Reinhard Panhuber 09d8ead4b8 Start changes - not yet finished 2021-01-04 12:02:08 +01:00
Reinhard Panhuber 13b499f910 Clean up 2021-01-03 17:59:50 +01:00
Reinhard Panhuber 56c47188d8 Rework USB FIFO allocation scheme and allow RX FIFO size reduction 2021-01-03 16:11:56 +01:00
kkitayam 2737166d2b fixed wrong direction to enable EP in dcd_edpt_open.
fixed incorrect handling of STALL other than EP0
convert tabs to spaces
removed unused symbols
2020-12-23 20:32:29 +09:00
kkitayam 2bbfc56bd8 added support for frdm_kl25z 2020-12-18 00:07:50 +09:00
hathach 8b34f2fca8 fix ci 2020-11-27 16:07:13 +07:00
hathach 94527951a0 add bus suspend & resume support for esp32s2 2020-11-27 15:54:55 +07:00
hathach 496c7c701a fix ci 2020-11-09 01:23:19 +07:00
Jacob Potter 229be75a98 Move into if statement 2020-10-24 17:16:05 -06:00
Jacob Potter 01996457c8 CR feedback: compare CFG_TUSB_RHPORT1_MODE instead of using new macro 2020-10-24 17:11:32 -06:00
Jacob Potter c87ed8eff1 Allow use of internal FS PHY on OTG_HS interface
Some ST parts (like STM32F74xxx / STM32F75xxx) allow the USB_OTG_HS core to be used with
either an external high-speed ULPI PHY or an internal full-speed-only (12mbps) PHY. Currently
the code assumes than an ULPI PHY is used unless the chip has an internal high-speed PHY
(`#if defined(USB_HS_PHYC)`), with no provision to use the internal FS PHY.
2020-10-18 17:01:17 -06:00
Ha Thach 6ce5395947
Merge pull request #525 from kasjer/kasjer/da1469x-iso
da1469x iso support
2020-10-11 16:12:20 +07:00
Ha Thach 80c509a0f3
Merge pull request #520 from salkinium/feature/misc_enhancements
STM32F3 IRQ remap option and some minor improvements
2020-10-11 14:55:06 +07:00
Ha Thach 762b390433
Merge pull request #521 from PanRe/uac2
Uac2
2020-10-10 14:33:42 +07:00
Niklas Hauser f914e48d25 Dynamically check STM32F3 IRQ remap option 2020-10-10 05:02:37 +02:00
Reinhard Panhuber 032e84c9be Revert dcd_alloc_mem_for_conf() but keep changes from @kasjer for ISO EP
Add tud_audio_set_itf_close_EP_cb()
2020-10-09 19:50:05 +02:00
Jerzy Kasenberg d36bfddc30 DA146xx: Allow transmitting of packets larger then 64 bytes
FIFO is limited to 64 bytes yet MCU is capable of transmitting
larger packets provided that FIFO will be filled on the fly
and USB_USB_TXCx_REG_USB_LAST_Msk bit is set after FIFO is
filled with all the data that should be transmitted.

This change allows to use FIFO level warning interrupt to fill
FIFO. When DMA is available it will be used instead of interrupts.
Some function names were changed to better reflect what each function
does.
2020-10-08 13:20:58 +02:00
Jerzy Kasenberg 33a5081bd1 DA146xx: Add support for ISO endpoints
Few changes were needed to have working ISO endpoints.
2020-10-08 13:20:58 +02:00
Jerzy Kasenberg 6615dd9062 DA146xx: Add dcd_edpt_close
Closing endpoints can be important when there are alternate
instances. This adds functionality of closing endpoints
similar to what exists in other drivers.
2020-10-08 13:20:58 +02:00
Jerzy Kasenberg 9edf4334c4 DA146xx: Allow receiving of packets larger then 64 bytes
Internal FIFO for each endpoint is limited to 64 bytes.
It is possible to have longer packets if respective FIFO
is read during actual packet transmission.
This change updates receive data path to allow packets (and
endpoint size) larger then 64 bytes.
If DMA is not used yet DMA is setup for reception of big packets.
If DMA is already assigned to some transfer, code enables FIFO level
warning interrupts and tries to read data before FIFO is filled up.
2020-10-08 13:20:58 +02:00
Ha Thach 440e23c491
Merge pull request #529 from gh2o/stm32-race
stm32 fsdev: fix ISTR and CTR_RX/TX race conditions
2020-10-07 15:16:55 +07:00
Gavin Li 020ad47bb0 stm32: fix ISTR and CTR_RX/TX race conditions 2020-10-06 14:43:10 -07:00
hathach d41248900b Merge branch 'uac2' of https://github.com/PanRe/tinyusb into PanRe-uac2 2020-10-06 22:32:22 +07:00
Jerzy Kasenberg 96da1ca4b8 nrf5x: Add support for ISO endpoints
ISO endpoints were not covered so far by the driver code.
This adds support for ISO IN and OUT endpoint handling.
Registers for ISO IN(OUT) endpoints are placed just after normal IN(OUT)
so in some cases common code could be used for handling all type of
transfers.
Generally code synchronizes ISO endpoint handling to SOF interrupt.
This code does not change the way of how non-ISO endpoints are treated.

Code uses strategy outlined in nRF52840 Produce Specification v1.0
sections 6.35.11.1 and 6.35.11.2.
2020-10-01 09:22:55 +02:00
Jerzy Kasenberg 6f5ee09511 nrf5x: Increase size of mps to 16 bits
msp stores max packet size.
For ISO endpoints 8 bits is not enough so it's changed to 16 bits.
2020-10-01 09:22:55 +02:00
Jerzy Kasenberg fceb8853c7 nrf5x: Add dcd_edpt_close
Closing endpoints can be important when there are alternate
instances. This adds functionality of closing endpoints
similar to what exists in other drivers.
2020-10-01 09:22:55 +02:00
Reinhard Panhuber 9c837300f1 Fix minor issue.
- Change set_EP0_max_pkt_size() to set_EP0_max_pkt_size(void).
2020-09-28 19:23:38 +02:00
Reinhard Panhuber 529622710c Cleanup for PR. 2020-09-28 18:10:57 +02:00
Reinhard Panhuber 142871654e Merge remote-tracking branch 'upstream/master' into uac2 2020-09-28 18:08:39 +02:00
Jerzy Kasenberg 642a8b00c8 synopsys: Fix odd/even frame handling for ISO
Current implementation always sets odd/even bit for ISO transactions.
This is a good strategy only if interval is 1.
For ISO endpoint interval in (micro)frames is computed as
2^(interval-1), which means that odd/frame number should stay
same for interval values > 1.
With this change only when interval is 1 odd/even bit is modified.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg 6b52330969 synopsys: Remove compilation warning in dcd_edpt_close
dcd_edpt_close() no longer modifies FIFO distribution.
Code that that was commented out is removed along with
variables that are no longer used.
FIFO distribution among endpoints is handled upfront
and does not need to be modified in open and close endpoint
functions.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg 6f3d0af1e6 synopsys: Fix fifo allocation schema
Recommended FIFO allocation schema includes 2 maximum endpoint sizes.
Comment suggested that this is the case while it would work according
to this description only in checked endpoints were ascending sizes.
Also two same size endpoints would be counted as one.
That is fixed by way sz is filled.

Calculation used too much modulo operation while single division was enough
to account for odd FIFO sizes.

Extra space that is evenly distributed between Bulk and control endpoints
was incorrectly calculated it could prevent allocation of ISO endpoint FIFO
when bulk endpoints existed with smaller endpoint numbers.

Minimum endpoint FIFO size is 16 32bit words, FIFO space requirement is
now observed.
2020-09-28 08:41:17 +02:00
Jerzy Kasenberg 62a76c0e04 nrf52: Fix edpt_dma_start() wrong condition check
Operator < used in while condition was obviously incorrect.
Loop starts with checking if unsigned variable is less then 0.
This condition is always false.

This reverses condition to follow intention of of the code.
2020-09-15 16:08:23 +02:00
Reinhard Panhuber 4e789b240d Start of sampling works. 2020-09-06 11:37:59 +02:00
Reinhard Panhuber 12562fc966 Merge remote-tracking branch 'upstream/master' into uac2 2020-09-04 16:23:39 +02:00
Ha Thach 19f08a02f6
Merge pull request #486 from kasjer/kasjer/add-endpoint-close-to-synopsys
Add dcd_edpt_close() to synopsys
2020-08-24 13:10:46 +07:00
hathach 9d3a9cf546 add OPT_MCU_SAMD11
skip ci build for example that need more ROM/RAM could fit into SAMD11
2020-08-22 18:46:19 +07:00
Reinhard Panhuber 37be0ca732 Fix formatting, get rid of all tabs. 2020-08-20 20:09:44 +02:00
Reinhard Panhuber c14f68e2c1 Commit before sharing.
Setup a test example - UNTESTED!
Missing: Start transmitting audio data in set_interface.
2020-08-19 21:07:43 +02:00
Reinhard Panhuber 6309364722 Merge remote-tracking branch 'upstream/master' into uac2
Conflicts:
	src/device/usbd.c
	src/device/usbd.h
	src/portable/st/synopsys/dcd_synopsys.c
2020-08-16 14:08:24 +02:00
Reinhard Panhuber 444e4d2821 Add EP close. Fix bug in set_interface within audio. 2020-08-16 13:48:25 +02:00
Jerzy Kasenberg e8d50a3c57 Add dcd_edpt_close() to synopsys
Endpoint close was implemented only in one driver so far.
This function is needed for interfaces with several alternate settings.

The way FIFO is allocated in dcd_edpt_open() allows to correctly close
only one IN endpoint (the one that was opened last).
2020-08-14 14:29:35 +02:00
Jerzy Kasenberg 88c5e2a37f Fix synopsys fifo flush during stall
Wrong FIFO was flushed in dcd_edpt_stall().
(epnum - 1) should only be used when accessing DIEPTXF registers.

For DIEPCTL and GRSTCTL epnum is correct index.
2020-08-12 10:26:36 +02:00
Ha Thach 6f3378f71d
Merge pull request #476 from kasjer/kasjer/fix-synopsys-fix-iso-frame-bit
Fix synopsys odd/even frame bit for IN ISO endpoints
2020-08-05 22:36:05 +07:00
Jerzy Kasenberg e9aa36a6e8 Fix synopsys odd/even frame bit for IN ISO endpoints
For ISO endpoint driver has to specify when data
is to be transmitted (odd or even frame).
Currently code was not updating this bit resulting in
data being sent every other frame.
If interval was 1ms full data packed was sent every 2ms, and
ZLP was sent in between.
2020-08-04 09:32:41 +02:00
hathach 7d9efd0697 manually submit unplugged event for nrf dcd_disconnect() 2020-08-04 14:18:12 +07:00
Ha Thach 026a1e7ac8
Merge pull request #478 from hathach/move-dcdconnect-to-dcdinit
Move pull-up enabling to dcd_init() instead of usbd
2020-08-04 14:11:32 +07:00