793 Commits

Author SHA1 Message Date
hathach
f438aedccb overwrite setup packet 2020-06-14 18:29:38 +07:00
Jerzy Kasenberg
0635bafe0a Add DCD for Dialog DA1469x MCU
Dialog Semiconductor's BLE MCU DA1469x comes with full speed USB.
It's base on National Semiconductor discrete USB controller USBN9603/4.

This adds support for:
- control/interrupt/bulk endpoints (up to 64 bytes)
- ISO endpoint were not tested and may not work correctly
- reset/sleep/wakeup are handled
- code for VBUS changes is provided
2020-06-09 15:55:46 +02:00
hathach
710c54f8cb allow hs ep open with 512 bytes 2020-06-01 01:36:09 +07:00
hathach
f771afe6af fixed EP0 size to 64 since LS is not supported in device mode
- set turn-around and report actual speed in Enum Done
- add dcd_event_bus_reset() helper to report speed
2020-05-31 23:43:29 +07:00
hathach
5ffba8536d able to detect as hs 2020-05-31 19:41:22 +07:00
hathach
d4bf777c94 try to get synopsys work with OTG HS + external PHY 2020-05-27 11:01:33 +07:00
hathach
b4804d1592 random clean up for tdi 2020-05-26 22:15:38 +07:00
hathach
947c3eb10d multiple port support for global otg base 2020-05-26 16:07:48 +07:00
hathach
b7ab60aa44 suporting multiple port (OTG FS + HS) for stm32 2020-05-26 15:52:02 +07:00
hathach
ff9994116e fix nrf hanged (blocking wait) when called within critical section 2020-05-21 21:22:12 +07:00
hathach
550746097b fix cast-align warning for nuc505 2020-05-18 13:03:41 +07:00
hathach
1a8ce043ed enable -Wcast-align
suppress vendor sdk driver at board.mk
2020-05-17 14:24:15 +07:00
Jan Dümpelmann
42edbc0006 Allow EP0 to use xfer sizes larger than one packet 2020-05-15 22:26:14 +02:00
Jan Dümpelmann
28696de390 Interrupt time improvements 2020-05-15 18:21:44 +02:00
Jan Dümpelmann
3401e0f6ff Synopsys OUT EP improvements:
- Use register based XFRSIZ to determine transfer complete
  (xfer->queued_len and xfer->short_packet were deleted)
- Pop out as many RxFIFO data entries as available within a IRQ call
- less application interruption due to XFRC calls
2020-05-08 18:10:48 +02:00
hathach
58b99e59d4 detect if SD is actually present on the flash using SD magic
even with SOFTDEVICE_PRESENT defined, SD may not be present on actual
flash.
2020-05-05 23:07:56 +07:00
Ha Thach
101f234a16
Merge pull request #387 from duempel/redesign_transmit_synopsys
Redesign of Synopsys device transmission
2020-05-04 14:41:20 +07:00
Jan Dümpelmann
fd69cc3dcc clean up
renaming function and variables
changing indent size
2020-05-04 07:59:13 +02:00
hathach
0e30afa691 abstract all UDP_CSR 2020-05-02 18:24:23 +07:00
hathach
3ad0cd041b clean up 2020-05-02 16:29:22 +07:00
hathach
ac3c645dc1 fix EP0 data toggle issue 2020-05-02 16:09:28 +07:00
hathach
2a479175ae remove toggle walkaround, fix control stall race condition 2020-05-02 14:51:21 +07:00
hathach
a74a823b0a fix dcd samd race condition with setup packet
setup packet can complete together with previous status (in & out).
Always make sure to prepare valid buffer for holding setup packet when
queuing control status.
2020-04-30 00:29:47 +07:00
Jan Dümpelmann
59ff208c65 Changed switch into if statements 2020-04-29 12:37:29 +02:00
Jan Dümpelmann
3e6feb7f6d Redesign of Synopsys device transmission
Changes:
  - checking if tx buffer empty interrupt is masked
  - process more than one packet in isr
  - mask tx buffer empty just after all bytes were written
  - use of transmit_fifo_packet instead of transmit_packet
2020-04-29 11:32:22 +02:00
hathach
958b5510cb added comment for hw clearing TXFE 2020-04-27 13:17:47 +07:00
hathach
e785b09118 TXFE is read only bit 2020-04-27 12:06:14 +07:00
hathach
00fcf829a1 sync synopsis fix for esp32s2 2020-04-26 22:41:04 +07:00
hathach
8d18d6077b turn off TX FIFO Empty for EPIN if all bytes are written
fix dcd synopsys issue with usbnet #289
2020-04-26 22:14:59 +07:00
Jerzy Kasenberg
b949ae596f synopsys: Reduce interrupt time for IN ZLP
For IN endpoints output FIFO is filled in interrupt, therefor before
endpoint is enabled, DIEPTSIZ is set with correct size of packet.
Then endpoint is enabled and FIFO empty interrupt is enabled.

This works fine except for the ZLP. Enabling FIFO empty interrupt
results in interrupt handler being called all the time because
there is nothing to put in the FIFO.
Eventually it ends when IN token is received and empty
packed is transmitted out.

This change does not enable FIFO empty interrupt for ZLP reducing
CPU load.
2020-04-24 17:38:30 +02:00
Jan Dümpelmann
551724498a Added support for STM32F1 Connectivity Line MCU
STM32F105 and STM32F107 are using the Synopsys IP
2020-04-22 17:39:53 +02:00
hathach
1f442c0a9a also add wakeup event 2020-04-18 23:48:36 +07:00
hathach
c3fc5f1595 session end interrupt doesn't trigger on esp32 saola board
it is possibly due to the board design without vbus sense. Revisit
later.
2020-04-18 23:42:51 +07:00
hathach
fa71402e17 implement disconnection detection for stm32 synopsys
- disconnection is OTG INT session end bit
- add USE_SOF to disable 1ms interrupt on mcu which isn't used now by
the stack
- add suspend detection
2020-04-18 23:40:27 +07:00
hathach
6f9c256ad0
complete remove dcd_set_config(), fix unit test 2020-04-17 13:52:34 +07:00
hathach
05476d9ad7 Merge branch 'master' into remove-dcd-set-config 2020-04-17 13:38:22 +07:00
Ha Thach
85f0894fff
Merge pull request #347 from majbthrd/nuc505_config
nuc505: change dcd_set_config() behavior
2020-04-17 13:36:16 +07:00
Ha Thach
1f69807621
Merge pull request #354 from hathach/cxd56-disconnect-connect
Cxd56 disconnect connect
2020-04-17 13:12:47 +07:00
hathach
dddf30f532
added disconnect for spresense 2020-04-17 12:53:42 +07:00
hathach
50be9d7c3a
mass rename tud/dcd_irq_handler to tud/dcd_init_handler 2020-04-17 12:27:53 +07:00
hathach
89f99426fc
add code for disconnect/connect (not tested) 2020-04-17 11:48:49 +07:00
Ha Thach
4bbbba48cb
Merge pull request #351 from hathach/valentyusb-dcd-disconnect-connect
Valentyusb dcd disconnect connect
2020-04-17 09:52:29 +07:00
Ha Thach
19e2eb66c0
Merge pull request #350 from hathach/synopsys-msp430-dcd-disconnect-connect
Synopsys msp430 dcd disconnect connect
2020-04-17 09:51:15 +07:00
Ha Thach
9aa553ccc2
Merge pull request #352 from hathach/samg-dcd-disconnect-connect
samg implement dcd connect/disconnect
2020-04-16 23:14:42 +07:00
Ha Thach
33610751d7
Merge pull request #336 from pigrew/edpt_close
> If you notice my chain of events above, the bulk transfer was started BEFORE the SET_INTERFACE call. The USB device hardware swaps the order of them being delivered. On STM32, it gives priority to the lower-numbered EP index.

It shouldn't be a matter, control is 2+ stage, before sending the setup. Host should stop all communication to the endpoint that It wants to close.
2020-04-16 23:10:36 +07:00
hathach
36d4efa077
samg implement dcd connect/disconnect 2020-04-16 22:59:19 +07:00
hathach
6377699d77
implement dcd disconnect connect 2020-04-16 22:30:33 +07:00
hathach
3aaad8cd73
add int enable/disable for pullup 2020-04-16 21:30:12 +07:00
hathach
18d936b414
msp430 disconnect/connect 2020-04-16 21:04:28 +07:00
hathach
63655ac9d7
cleanup for esp32 2020-04-16 20:43:26 +07:00