Commit Graph

1015 Commits

Author SHA1 Message Date
Jerzy Kasenberg 1503955860 dcd_da146xx: Clear transfer data on dcd_edpt_close
Closing endpoint clears data in affected xfer_ctl_t
2021-09-24 09:28:51 +02:00
Jerzy Kasenberg f172c5ee13 dcd_da146xx: Remove registers pointer from xfer_ctl_t
Note: this commit does not change any logic.

xfer_ctl_t structure keeps all dynamic data connected with transfer.
It used to have pointer to register set that was constant and was there
for convenience only.
Removing register pointer from structure makes cleanup easier as whole
structure can be erased with memset like function.

In many cases functions were using local variable regs and xfer->regs which
were same, that could be confusing so this part is unified.

Few macros were added for easy conversion between epnum, xfer, and regs.
2021-09-24 09:28:51 +02:00
Jerzy Kasenberg 428eedcd04 dcd_da146xx: Update bus handling
So far bus reset was handled (with some holes in it).
Sleep and remote wakeup were not really tested and did not work.

With this change:
- bus reset is reworked
- remote wakeup works
- bus signal sleep is handled
2021-09-23 14:12:50 +02:00
Jerzy Kasenberg c427712449 dcd_da146xx: Handle only enabled interrupts
Not much of an improvement but handle only interrupts
that were enabled and are expected.
2021-09-23 14:12:50 +02:00
Ha Thach 3e569f8e79
Merge pull request #1094 from kasjer/kasjer/da146xx-vbus-handling
dcd_da146xx: Add VBUS handling
2021-09-18 23:12:40 +07:00
hathach 3333703d25 Merge branch 'master' into zhangslice-master 2021-09-18 13:35:26 +07:00
Scott Shawcroft 2499c9382d
rpi start. doesn't work 2021-09-17 16:51:34 -07:00
Jerzy Kasenberg 6d8677a78a dcd_da146xx: Add VBUS handling
DA146xx are Bluetooth devices that may be battery
powered and when not connected to USB host there
is no need for USB peripheral to be running.

This change allows to enable USB peripheral when
VBUS is present otherwise USB is down reducing
power consumption.

tud_vsub_changed() function must be called
whenever VBUS change was detected.
For bus-powered devices this function should be called
at startup since VBUS must be present while device
is working.
2021-09-17 12:10:17 +02:00
hathach b363afc091 minor clean up 2021-09-17 00:46:29 +07:00
hathach c65cc75c6b use correct resume detection for kl25z 2021-09-17 00:44:39 +07:00
hathach 8dfe0898e7 minor update to dcd khci 2021-09-17 00:43:10 +07:00
kkitayam fbe1bf375c Fix stall interrupt handling 2021-09-15 21:39:02 +09:00
hathach 93ed3034c0 merge master and minor clean up 2021-09-15 18:35:52 +07:00
hathach f39656b6d7 Merge branch 'master' of github.com:hathach/tinyusb into kkitayam-impl_close_all_for_khci 2021-09-15 18:29:28 +07:00
Ha Thach 03866ddf9b
Merge pull request #1062 from HiFiPhile/fifo_dcd_transdimension
Improvements for dcd_transdimension
2021-09-15 16:07:06 +07:00
Ha Thach 6d3fb7eb98
Merge pull request #1087 from HiFiPhile/nuc_wkp
NUC126: fix remote_wakeup
2021-09-14 11:40:55 +07:00
hathach cdc63459eb esp32sx implement dcd_remote_wakeup(), fully compliance to chapter9 test suite 2021-09-13 16:49:38 +07:00
hathach e64bfb9ff5 implement dcd_edpt_close_all(), pass chapter9 test suite (without remote wakeup) 2021-09-13 16:16:37 +07:00
hathach 43e6555fd0 clean up 2021-09-13 13:09:38 +07:00
hathach ce5db06ba0 clear PID along with clear stall 2021-09-13 12:05:49 +07:00
hathach 6feda5ae8f Merge branch 'nuc_wkp' of https://github.com/HiFiPhile/tinyusb into HiFiPhile-nuc_wkp 2021-09-13 11:52:16 +07:00
hathach 9bed4e2e21 refactor nxp TDI dcd_edpt_xfer_fifo 2021-09-13 00:45:15 +07:00
hathach 038ec341f8 Merge branch 'fifo_dcd_transdimension' of https://github.com/HiFiPhile/tinyusb 2021-09-12 17:39:32 +07:00
hathach dd60ce784c nxp tdi: implement dcd edpt close all 2021-09-11 21:29:04 +07:00
hathach 1f7ade2b75 nxp tdi: fix error td prevent further transfer 2021-09-11 19:27:37 +07:00
MasterPhi 22571ec98e reset PID to DATA0 on clear_stall. 2021-09-10 16:04:47 +02:00
MasterPhi 8886de0d8a Fix remote_wakeup 2021-09-10 13:05:15 +02:00
MasterPhi 580893b3fe Shorter expr. 2021-09-10 11:17:33 +02:00
kkitayam 2998f67eac Fix dcd_edpt_clear_stall to reset data toggle 2021-09-10 00:18:43 +09:00
Mengsk 283783c082 dcd_edpt_xfer_fifo: use qtd_init if restriction not met. 2021-09-09 16:45:18 +02:00
hathach ad8c0ee818
nxp tdi: enhance qhd using DCD_ATTR_ENDPOINT_MAX 2021-09-09 20:26:03 +07:00
hathach f948cbe471
nxp tdi implement remote wakeup
enhance bus reset, unplugged, suspend, resume detection
2021-09-09 17:04:04 +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
kkitayam 780852efb3 Fix stall handling 2021-09-09 00:55:02 +09:00
kkitayam 22b5b47045 Implement dcd_edpt_close_all for NXP khci 2021-09-08 21:52:27 +09:00
Ha Thach d66d817c38
Merge pull request #1080 from hathach/rx-msc-compliance
Renesas RX reset PID to DATA0 when open endpoint
2021-09-08 18:31:42 +07:00
Ha Thach 5f141a4c13
Merge pull request #1077 from hathach/st-synopsy-compliance
St synopsy compliance
2021-09-08 18:00:44 +07:00
hathach d077574097 reset PID to DATA0 when open endpoint 2021-09-08 17:56:22 +07:00
hathach 67e80f60e3 fix build with gd32vf103 2021-09-08 13:35:11 +07:00
hathach 4ac136d81d implement remote wakeup for stm synopsys 2021-09-08 00:57:07 +07:00
hathach a54a974fa5 make synopsys usbcv compliance
- implement dcd_edpt_close_all()
- reset dtoggle when open endpoint
- correct dev interrupt mask on bus reset
2021-09-07 23:02:57 +07:00
kkitayam f3da48d46a Implement dcd_edpt_close_all() for Renesas RX family 2021-09-07 23:28:54 +09:00
hathach d6e9fe38be
rp2040 implement dcd_edpt_close_all()
aslo rename reset_ep0_pid() and clean up. We only need to reset pid when
setup packet received
2021-09-01 19:44:12 +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 ab0c3e8dd0
fix rp2040 chapter 9 TD 9.6 test 2021-08-31 17:41:08 +07:00
MasterPhi 16b802d50c add dcd_edpt_close and iso xfer. 2021-08-31 12:02:19 +02:00
MasterPhi 864d8381a7 dcd_transmission xfer_fifo support. 2021-08-31 11:59:51 +02:00
hathach 76345ea3a1
clear stall and reset data toggle when open edpt
required to pass one of msc test.
2021-08-31 16:41:45 +07:00
hathach ad21b69277 fix nrf clear data toggle sequence when clearing stall 2021-08-29 12:05:34 +07:00
hathach 66c292e2ec fix a couple of nrf dcd issue
- limit out xact dma to prevent usbd overflow in certain situation after
stalled
- drained already acked data when stalling an OUT endpoint
2021-08-29 00:34:21 +07:00
hathach 8bad0af849 explicitly clear stall and data toggle for edpoint upon open() 2021-08-27 22:31:08 +07:00
hathach 81c73c235f implement dcd_edpt_close_all() for nrf52840 2021-08-27 22:30:30 +07: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 88bb8fac3d
rename host API to be consistent with naming on device stack
- tuh_device_get_speed() to tuh_speed_get()
- tuh_device_configured() to tuh_mounted()
- tuh_device_ready() to tuh_ready()
2021-08-24 12:37:04 +07:00
Ha Thach 9c3fdb8135
Merge pull request #1043 from hathach/more-host-improvement
More host improvement
2021-08-24 12:28:41 +07:00
Greg Steiert 86201f77be initial commit of support for K32L2B 2021-08-23 16:17:57 -07:00
hathach 8dc16dd3a7 fix rp2040 build 2021-08-24 01:19:06 +07:00
hathach 3309425211 sepearate CFG_TUH_DEVICE_MAX and CFG_TUH_HUB
separate dev0 from _usbh_devices pool to save sram
2021-08-23 19:56:53 +07:00
hathach 75cd593b60 add hcd_devtree_get_info()
remove usbh_hcd.h
2021-08-23 17:00:41 +07:00
hathach a490a3fe61 add hcd attr, add note for ehci framelist on NXP derivative 2021-08-23 15:40:57 +07:00
hathach 4ca176c291 refactor ehci init api 2021-08-23 12:37:54 +07:00
hathach 6a16f6ccdd rename CFG_TUSB_HOST_DEVICE_MAX to CFG_TUH_DEVICE_MAX 2021-08-23 11:01:40 +07:00
MasterPhi 69e539fda4 Fix CI. 2021-08-21 12:11:35 +02:00
MasterPhi e20755442a nuc126: fix set_address & disable sof 2021-08-21 12:04:02 +02:00
kkitayam ff59e98a6a Add compile switch to enable SOF during suspend only 2021-08-19 23:57:34 +09:00
kkitayam 351581537f Removes redundant SOF processing from the Renesas RX family.
The same logic regarding the resume signal was implemented by usbd.

See also: #1023
2021-08-19 22:51:10 +09:00
Ha Thach 3a248951e2
Merge pull request #1024 from HiFiPhile/nuc
Fix nuc126 buffer copy with IAR
2021-08-18 19:14:03 +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 3e8276846e correct usb memcpy for nuc120 as well 2021-08-18 16:38:13 +07:00
Mengsk 7aff4b178e use USBD_MemCopy. 2021-08-17 00:53:12 +02:00
hathach 26d347be17 add note for renesas rx remote wakeup 2021-08-16 20:24:07 +07:00
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