Commit Graph

2627 Commits

Author SHA1 Message Date
Ha Thach 8e0b8c15ea
Merge pull request #1369 from tannewt/host_string_desc
Add host string descriptor functions
2022-03-04 22:59:16 +07:00
hathach 56c2d4b666 fix naming, and build 2022-03-04 22:31:48 +07:00
hathach 271f905521 add tuh_descriptor_string_manufacturer/produce/serial_get 2022-03-04 22:23:56 +07:00
hathach 15ced09bb2 add tuh_configuration_set() 2022-03-04 21:41:27 +07:00
hathach 2bdf4d811a add tuh_descriptor_configuration_get() 2022-03-04 21:14:59 +07:00
hathach 7480c2e46b correct qhd and qtd count for ehci/ohci 2022-03-04 21:04:52 +07:00
hathach 032e2c2929 add CFG_TUH_INTERFACE_MAX config 2022-03-04 19:28:53 +07:00
hathach e08a875d52 add tuh_descriptor_get() and tuh_descriptor_device_get() 2022-03-04 19:26:54 +07:00
hathach 3a7d1cfead minor cleanup 2022-03-04 17:26:21 +07:00
hathach 96165a1950 rename HCD_MAX_XFER to CFG_TUH_ENDPOINT_MAX
minor clean up
2022-03-04 17:07:04 +07:00
Ha Thach 5453c7e97f
Merge pull request #1370 from hathach/fix-esp-idf
fix build with esp32s2, also use dwc2 for esp example
2022-03-04 15:20:51 +07:00
hathach f72da8ee7d fix build with esp32s2, also use dwc2 for esp example 2022-03-04 14:45:26 +07:00
Scott Shawcroft eb6b5d1219
Unused ok 2022-03-03 21:57:44 -08:00
Scott Shawcroft 2cd73ca602
Add host string descriptor functions
Plus typo fixes, GCC11 array bounds fix, snprintf for malloc-free
debug and pragmas for alignment checks.
2022-03-03 21:53:12 -08:00
hathach fa62d5abc9 got interrupt endpoint working 2022-03-03 21:57:29 +07:00
hathach 635fb9dcdd try to fix ci 2022-03-02 12:33:47 +07:00
hathach 918f3e9cae minor rename 2022-03-02 12:22:20 +07:00
hathach 1d29817139 start to add pio usb (host) support
run as proof of concept
2022-03-01 23:55:53 +07:00
Ha Thach 7c627f58d7
Merge pull request #1343 from Daft-Freak/patch-1
Open OUT endpoint for HID host
2022-02-28 20:00:40 +07:00
Ha Thach 8e84529c8d
Merge pull request #1345 from alexandre-perrin/iar-cpp-verify-static
Fix CPP compilation with IAR
2022-02-28 17:02:33 +07:00
Ha Thach c9b0fbc907
Merge pull request #1354 from hathach/mcu-specific
Mcu specific
2022-02-26 21:30:07 +07:00
Ha Thach 6dd4d50213
Merge pull request #1352 from ETCLabs/fix-ehci-isr-status-clear-error
Updated the clearing of the status register bits to use a straight '=…
2022-02-26 18:05:59 +07:00
Ha Thach f392054e70
Merge pull request #1353 from ETCLabs/iar-compiler-error-on-src-host-usbh.c
The IAR compilier does not resolve references to fields in the anonym…
2022-02-26 18:05:35 +07:00
hathach 2fe3a925fb add highspeed detect for f723/730/733 2022-02-26 17:34:29 +07:00
hathach a4ba3f2891 add TUP_USBIP_DWC2 2022-02-26 17:13:06 +07:00
hathach 11c89d43ab more internal rename 2022-02-26 17:06:50 +07:00
hathach bc63f59af2 mcu specific rename 2022-02-26 15:23:29 +07:00
Ha Thach 244154e087
Merge pull request #1311 from Wini-Buh/CCRX_Ext
Solve problems with CCRX toolchain
2022-02-26 14:34:18 +07:00
Tom Peterson c06ecbef0c The IAR compilier does not resolve references to fields in the anonymous structs defined within the usbh_dev0_t and usbh_device_t structs as they are defined. The problem seems to relate to the placement of the 'volatile' keyword at the struct level. I fixed the problem by removing the 'volatile' from the struct level, and instead placing it on each of the field declarations within the structs. 2022-02-25 16:49:55 -06:00
Tom Peterson 39fdbc8ffc Updated the clearing of the status register bits to use a straight '=', rather than an '|='. Use of the latter caused an extra, unwanted read of the status register before the write-to-clear operation, which, in some cases, allowed new status bits to assert (relative to the initial read of the status register two statements earlier), and then be cleared blindly and unconditionally during the write-back. This had the potential (and, in my case, observed) effect of dropping the handling of an enabled interrupt. Ultimately, the system would lock up in a busy state, with no hope of clearing the condition. See Issue #1339 for more information. 2022-02-25 12:39:09 -06:00
Ha Thach 5b7a01ba79
Merge pull request #1350 from hathach/enhance-multipl-ports
Enhance rhports management
2022-02-26 01:00:07 +07:00
Ha Thach 13a4582ce2
Merge pull request #1349 from iabdalkader/fix_inquiry_data
Set the standard inquiry response additional length field.
2022-02-26 00:22:55 +07:00
iabdalkader 8eeda60bd0 Set the standard inquiry response additional length field.
* The standard inquiry response additional length field needs to be set to
the length in bytes of the remaining standard inquiry data (i.e. N - 5),
otherwise the kernel driver issues a warning about short inquiry response..
2022-02-25 18:42:23 +02:00
hathach 0997589c45 more symbol rename 2022-02-25 23:05:15 +07:00
hathach 89115253da internal symbol rename 2022-02-25 22:45:05 +07:00
hathach 309540473b minor house keeping 2022-02-25 22:26:35 +07:00
hathach 99ad3ae2ca rename and move dcd_attr.h to tusb_mcu_attr.h 2022-02-25 18:35:21 +07:00
hathach a8af609dfe auto detect max rhport speed based on mcu 2022-02-25 18:35:21 +07:00
hathach 31aa077cb0 rename TUSB_OPT_HOST_ENABLED to CFG_TUH_ENABLED 2022-02-25 18:35:21 +07:00
hathach d10326cb4e rename TUSB_OPT_DEVICE_ENABLED to CFG_TUD_ENABLED
TUSB_OPT_DEVICE_ENABLED still usable for backward compatible
2022-02-25 18:35:21 +07:00
hathach 4a5a53b3b8 improve rphort management for usbd 2022-02-25 18:35:21 +07:00
Ha Thach b797d1aa50
Merge pull request #1340 from tannewt/hid_to_cdc
Add concurrent host and device example
2022-02-25 18:21:37 +07:00
hathach a8d6e82395 enhance dual role examples 2022-02-25 17:36:05 +07:00
Alexandre Perrin 81e33477ea Fix CPP compilation with IAR
IAR defines __STDC_VERSION__ in cpp as well.
Which causes TU_VERIFY_STATIC to be defined as _Static_assert
instead of cpp's static_assert.

This reorders __cplusplus__ to be first, then to fallback to
__STDC_VERSION__ if not CPP.
2022-02-23 18:27:52 +01:00
Charlie Birks 83b638f230
Open OUT endpoint for HID host 2022-02-23 13:03:20 +00:00
Charlie Birks c0a65ba0f6
Support interrupt OUT in RP2040 HCD 2022-02-23 12:25:01 +00:00
hathach 566e3abcea increase version, update doc for release 2022-02-23 11:55:57 +07:00
Ha Thach e04f15ff3d
Merge pull request #1280 from kasjer/kasjer/nrf5x-dma-race
nrf5x: Fix DMA access race condition
2022-02-22 21:00:51 +07:00
Ha Thach 4612332af7
Merge pull request #1331 from hathach/fix-esp-build
fix build with latest esp idf
2022-02-18 16:22:50 +07:00
hathach 52645fcc1b fix build with latest esp idf 2022-02-18 13:07:21 +07:00
hathach a53e83665e fix HID_REPORT_ID_N() 2022-02-17 12:12:42 +07:00
Ha Thach fcca8bb4ca
Merge pull request #1327 from hathach/msc-request-sense
Add msc request sense callback
2022-02-15 23:17:58 +07:00
hathach 46f4f7ff49 minor rename set sense function 2022-02-15 22:53:23 +07:00
hathach 391edc7afb msc example response PREVENT_ALLOW_MEDIUM_REMOVAL command as unsupported command
LUN1 of msc_disk_dual will be set to not ready to simulate medium not
present (e.g SD card removed)
2022-02-15 22:40:08 +07:00
hathach 456c06aa5e add tud_msc_request_sense_cb() as weak callback
set default error sense to NOT READY, Medium not present
2022-02-14 18:17:49 +07:00
Ha Thach 63cb3cdc74
Merge pull request #1304 from kkitayam/add_hcd_for_frdm_kl25z
Add hcd driver for frdm kl25z
2022-02-09 16:14:50 +07:00
Wini-Buh 5414cf275b
Merge branch 'hathach:master' into CCRX_Ext 2022-02-02 21:06:37 +01:00
Ha Thach d6fb1859a4
Merge pull request #1291 from kasjer/kasjer/da1469x-fix-resume
da1469x: fix resume
2022-02-02 20:20:39 +07:00
Roland 7beb92864e Merge branch 'CCRX_Ext' of https://github.com/Wini-Buh/tinyusb into CCRX_Ext 2022-02-01 23:49:20 +01:00
Roland e1f0c484c6 Modifications for CCRX toolchain 2022-02-01 23:45:52 +01:00
Ryzee119 453ba529a6
OHCI: Fix array out of bounds issue
If using a USB hub, a request outside the array size can occur

Original line:
ffb257ac17/src/portable/ohci/ohci.h (L162)

It can happen in a few places but one such example is here:
ffb257ac17/src/portable/ohci/ohci.c (L460)

ie. if HUB address is 5, this would be an array index out of bounds on control endpoints as `CFG_TUH_DEVICE_MAX+1` is only 5.

This fix just includes num of hubs in the reserve array size.

Fixing locally fixed this issue.
2022-01-28 14:02:34 +10:30
kkitayam 03d2e32dc1 Fix handling for pending transfers 2022-01-27 23:38:19 +09:00
kkitayam 60a0be82da Change hcd_edpt_xfer to send at the next SOF 2022-01-27 22:25:36 +09:00
kkitayam cc06a3585e Add handling for NAK response 2022-01-27 20:57:41 +09:00
kkitayam cdab869472 Fix handling control transfer 2022-01-27 20:57:41 +09:00
kkitayam a4bc6075ce Add HCD functions for KL25Z 2022-01-27 20:57:40 +09:00
hathach 578a123282 fix mynewt build sunxi 2022-01-26 12:59:53 +07:00
Ha Thach 7de166390e
Merge branch 'master' into master 2022-01-25 22:29:05 +07:00
Jerzy Kasenberg 7b078367e8 dcd_da1469x: Re-enable RX after resume
Going to suspend states disable reception on non-0 RX endpoints.

Now when USB resume condition is detected, all RX endpoints
with pending transfers are resumed.
2022-01-20 16:28:09 +01:00
Jerzy Kasenberg ae4d901d83 dcd_da1469x: Fix over-run/under-run mask
Bit mask enabling/disabling over-run/unde-run was shifted
by one nibble, so interrupt was never enabled.
It did not force any issue as this situation could only
happen on ISO endpoints without DMA.
2022-01-20 10:01:18 +01:00
Jerzy Kasenberg 4ca2215684 vendor: Add tx flush functionality
So far tud_vendor_n_write() always flushed data.
It requires to have whole vendor packed constructed
before in one buffer.

With this change data do get flushed when endpoint size
is filled on write, when there is no enough data to
fill endpoint data is not sent and subsequent calls to
write functions can add more bytes.

Vendor code needs to call tud_vendor_n_flush() when packet is
ready to be sent.
2022-01-19 15:08:12 +01:00
Jerzy Kasenberg d069ea1421 vendor: Add tx callback
Other drivers already have notification about data sent.
It allows batter control in application on vendor
protocol level.
2022-01-19 14:06:00 +01:00
Ha Thach e40547ada1
Merge pull request #1265 from kkitayam/add_hcd_for_renesas_rx
Add HCD driver for Renesas RX
2022-01-19 19:07:21 +07:00
Jerzy Kasenberg 36b6ed8ff9 nrf5x: Fix EP OUT race conditions in OS build
When two tasks entered dcd_edpt_xfer() it was possible that
first disabled interrupt to setup total_len and actual_len
but second task for another endpoint enabled interrupt
between total_len and actual_len resulting in race
condition with interrupt, hence mutex is added on top of interrupt being blocked.
2022-01-19 09:48:04 +01:00
Jerzy Kasenberg 980ffe3b4e nrf5x: Fix DMA access race condition
In multi-thread mode starting DMA in thread mode was
prone to race condition resulting in infinite loop.
It may happen on single core CPU with strict priority based
tasks scheduler where ready high prio task never yields to
ready low prio task (Mynewt).

Sequence that failed (T1 - low priority task, T2 - high priority task)
- T1 called start_dma()
- T1 set _dcd.dma_running (DMA not started yet, context switch happens)
- T2 took CPU and saw that _dcd.dma_running is set, so waits for _dcd.dma_running to be 0
- T1 never gets CPU again, DMA is not started T2 waits forever

OSAL mutex resolves problem of DMA starting from thread-context.
2022-01-19 09:06:43 +01:00
email af9a3f646c fix idfgh-6508: return type in tu_fifo_peek_n()
https://github.com/espressif/esp-idf/issues/8161
2022-01-19 09:00:43 +01:00
Ha Thach 0b6b4f2441
Merge pull request #1286 from hathach/fix-fifo-mutex-when-full
fix locked mutex when fifo is full
2022-01-19 10:45:33 +07:00
Ha Thach 983abfd6d8
Merge pull request #1279 from kasjer/kasjer/nrf5x-int-race
nrf5x: Fix EP OUT race conditions
2022-01-19 10:33:37 +07:00
hathach 161ba73c8b
fix locked mutex when fifo is full 2022-01-19 10:17:39 +07:00
Ha Thach 84f2ca77f7
Merge pull request #1283 from kasjer/kasjer/olimex-pic32-board-fixes
olimex pic32 board fixes
2022-01-19 09:55:18 +07:00
Ha Thach 92c36f187d
Merge pull request #1274 from kasjer/kasjer/nrf5x-request-clock-in-mynewt
nrf5x: Request HFXO via OS
2022-01-18 20:00:23 +07:00
Jerzy Kasenberg f4725120a4 nrf5x: Request HFXO via OS
Mynewt (similar to Soft Device) has its own reference counting for
HFXO oscillator.
So far TinyUSB requested HFXO when VBUS was detected and stopped when
VBUS was removed.
But with Mynewt running HFXO can be stopped when other interested parties
don't require HFXO anymore. This results in very difficult to track
USB transmission errors.

This change enables Mynewt specific HFXO management in Soft Device fashion.
2022-01-18 08:12:49 +01:00
Jerzy Kasenberg 168c7095e8 pic32mz: Fix remote_wakeup without OS
Remote wakeup requires 10ms of delay when RESUME bit
is toggled.
It was covered for OS build.
For non-OS build simple delay based on board_millis() is
used to wait required amount of time.
Without this remote wakup may not work.
2022-01-17 17:59:51 +01:00
Jerzy Kasenberg ec01428820 ft9xx: Fix Mynewt build
Includes were moved few lines down to restore build with Mynewt build system.
2022-01-17 09:14:41 +01:00
Ha Thach efc29baead
Merge branch 'master' into port-ft90x 2022-01-17 12:36:39 +07:00
Ha Thach 976405dea3
Merge pull request #1270 from kasjer/kasjer/pic32mz
Driver for Microchip PIC32MZ family
2022-01-16 20:24:14 +07:00
hathach c722133671 change OPT_MCU_PIC32MZ to value of 1900 2022-01-16 15:38:23 +07:00
hathach 45fb60e883 update format correction with actual bus speed 2022-01-16 12:12:57 +07:00
Jerzy Kasenberg da44fe3fc9 nrf5x: Fix EP OUT race conditions
When dcd_edpt_xfer() starts new transfer two separate problems were observed.
For both problems stream of OUT packets was pouring from host.

First problem was that total_len and actual_len were not atomic.
In case where incoming OUT packets are less (63) than MPS (64), actual_len and total_len
are set 63.
Then transfer complete from USBD is called that will schedule next 64 bytes transfer.
At that point incoming packet would start DMA if there is place in RAM, normally
it does not happen since actual_len == total_len.
If packets arrives and interrupt is raised after total_len is set (64) but actual_len is still 63 from
previous transfer, interrupt code sees that there is place in ram (1 byte) and transfer this 1 byte
to buffer that was already filled with previous packet.
To remedy this USB interrupt is blocked during transfer setup.

Second problem can happen when dcd_edpt_xfer setups xfer->total_len and actual_len correctly
but then context switch happens before xfer->data_received is checked.
If during this time two packets arrive one will be copied to RAM second will stay in endpoint with
data_received set to 1.
Then when xfer_edpt_xfer() checks data_receive flag it starts DMA again overwriting data.
To remedy this, data_received is checked together with check if data was already transferred.
If transfer was complete, there is no need to start DMA yet.
In such case data_received will be handled in same place by next xfer_edpt_xfer() correctly.
2022-01-14 09:46:39 +01:00
Jerzy Kasenberg 340309561d Add driver for PIC32MZ MCUs
Device-only driver for PIC32MZ MCUs.
2022-01-07 14:12:42 +01:00
Valentin Milea c2533a45bd Merge branch 'master' into feature/feedback_format 2022-01-07 15:12:07 +02:00
Valentin Milea a284e438f1 Disable feedback format correction by default #1234 2022-01-07 15:02:52 +02:00
EmergReanimator 44406a8940 Enable breakpoints for ARM8M (e.g. cortex-m33) 2022-01-06 09:56:45 +01:00
Scott Shawcroft 47218eeb67
No exceptions on broadcom. Add parens to if 2022-01-05 16:07:17 -08:00
Scott Shawcroft a79ffeb764
Add Raspberry Pi Zero W and Zero 2 W
These are different Broadcom chips. The peripherals are essentially
the same. The main differences are:
* The CPU(s)
* The interrupt controller
* The peripheral base address (but not the peripherals that we use)
2022-01-05 13:47:01 -08:00
Jerzy Kasenberg 2f69649bb6 Add register file for Microchip PIC32MZ 2021-12-31 22:53:27 +01:00
hathach c5d2c82cbb
fix unreachable warnings with keil 2021-12-30 20:59:53 +07:00
hathach adb848f754
update docs 2021-12-29 19:42:34 +07:00
hathach 5f280b3029
add license to dcd file, slightly update readme 2021-12-29 19:25:32 +07:00
hathach 30aba24ddc Merge branch 'master' of https://github.com/t123yh/tinyusb into t123yh-master 2021-12-29 18:27:29 +07:00
kkitayam 2b8b8a3a97 Fix hcd_edpt_clear_stall 2021-12-27 22:55:28 +09:00
kkitayam 2c0fcc2fa7 Add statements for control VBUS 2021-12-27 21:36:49 +09:00
kkitayam a76799b085 Add hcd for Renesas RX 2021-12-27 21:19:02 +09:00
Jerzy Kasenberg 7a596b9e55 Fix Mynewt build for Microchip PIC32MZ devices.
definition of DEBUG breaks Microchip pic32 builds for Mynewt.
When MCU is not VALENTYUSB_EPTRI there is no need to have any
preprocessor definitions.
It may not look like a big deal but for xc32 builds, compiler
automatically force-includes some file that have structure with field name
DEBUG that result in build error in dcd_eptri.c when this file
is not really needed.

Moving DEBUG and LOG_USB few lines down should not break eptri builds.
2021-12-27 10:14:38 +01:00
Gordon McNab 8d373b0887 Update midi_test endpoints and FT9xx code 2021-12-15 12:23:58 +00:00
Ha Thach bfb5e32e1f
Merge pull request #1233 from vmilea/rp2040_bugfix/ep_close
Handle the closing of endpoints on RP2040
2021-12-09 23:38:17 +07:00
Ha Thach 6bf7fba2a4
Merge pull request #1221 from kasjer/kasjer/fix-nrf5x-vbus-race-condition
nrf5x: Fix race condition during startup
2021-12-09 00:44:44 +07:00
Valentin Milea ae970ba2e2 Handle xfer events before closing EP 2021-12-08 12:34:00 +02:00
Gordon McNab 5039a5e54c Update code to implement changes from upstream master 2021-12-08 09:34:29 +00:00
Gordon McNab 9a7db98593 Merge branch 'master' into port-ft90x 2021-12-08 08:36:43 +00:00
Jerzy Kasenberg 21db2351fd nrf5x: Fix race condition during startup
When NRF5x device is reset by software (after DFU for example),
power event is ready from the beginning.
When power interrupt is triggered before tud_init() finished
USBD_IRQn is enabled before it would be enabled in tud_init().
This in turn may result in BUS RESET event being sent from
USB interrupt to USB task when queue is not initialized yet.
This scenario often happens in Mynewt build where queue creation
takes more time.

To prevent this scenario USBD_IRQn is not enabled in power event
interrupt handler before dcd_init() was called.
2021-12-08 08:27:27 +01:00
Valentin Milea 36e69b86bf Remove buffer reclaim logs 2021-12-07 15:35:30 +02:00
Ha Thach c157837878
Merge pull request #1213 from kkitayam/add_hcd_for_msp_exp432e401y
Add a HCD driver for MSP-EXP432E401Y
2021-12-07 19:24:41 +07:00
Valentin Milea ef879e8a8a Support disabling feedback format correction #1234 2021-12-06 18:49:58 +02:00
Yunhao Tian 96979a2c4a Fix handling of RXRDY bit 2021-12-06 19:56:27 +08:00
Yunhao Tian 1ffc366aa9 Change FIFO size to 4KB (not sure)
The datasheet says 2KB FIFO, but accroding to many
code examples, the F1C100s has at least 4KB of FIFO memory.
This is working with cdc_msc example,
but I'm not sure, this should be checked.
2021-12-05 22:40:05 +08:00
Yunhao Tian f308603a3a Fix a typo that leads to incorrect RX handling 2021-12-05 22:31:09 +08:00
Yunhao Tian 702698ee29 Add FIFO size check 2021-12-05 18:18:41 +08:00
Yunhao Tian 64b81fd4d3 Close all EPs upon reset 2021-12-05 18:08:01 +08:00
Yunhao Tian fa0e4d91f9 Save current EP before querying other EPs 2021-12-05 18:07:35 +08:00
Valentin Milea 48e1f6d899 Handle the closing of endpoints on RP2040 2021-12-04 16:04:48 +02:00
Yunhao Tian 68ca62dfd7 Add BSP support for F1C100s 2021-12-04 18:02:07 +08:00
Yunhao Tian dff54d854d Modify sunxi_musb code 2021-12-04 17:18:39 +08:00
kkitayam 7137a0a92f Fix buffer overrun at pipe_read_packet() 2021-12-04 01:25:34 +09:00
kkitayam 81285273a6 Fix memory overrun at pipe_read_packet() 2021-12-04 01:18:42 +09:00
Ha Thach 6ecd93eb60
Merge branch 'master' into add_hcd_for_msp_exp432e401y 2021-12-03 00:30:09 +07:00
hathach 207c60d055 more chipidea 2021-12-02 00:03:44 +07:00
hathach 83dc3e25f0 more work to abstract chipidea driver 2021-12-01 23:30:09 +07:00
hathach 61a9e125db more ci abstract 2021-12-01 23:19:17 +07:00
Yunhao Tian bb7d1fa3ba Add support for Allwinner F1Cx00s family
Allwinner F1Cx00s family is a series of SoCs
with Mentor MUSB controller and HS phy. It comes
with a slightly different register space layout,
and some quirks, so it's not multiplexed with
the existing musb support library.

This library currently requires to be compiled
with https://github.com/hongxuyao/F1C100s_with_Keil_RTX4_emWin5
2021-12-01 15:35:48 +08:00
hathach 0612433eef add chipidea highspeed controller
add warning to transdimension for the rename
2021-12-01 12:14:44 +07:00
kkitayam 9bccc8068b Add register settings to handle a HUB 2021-11-30 23:13:20 +09:00
hathach 3e3fe1e429 improve hcd_device_close() for rp2040 2021-11-30 17:36:52 +07:00
rppicomidi 006522e437 on unplug release device endpoints 2021-11-30 17:17:06 +07:00
rppicomidi 06f99c220e implement hcd device close 2021-11-30 17:17:06 +07:00
Yunhao Tian a6929cf03e Add support for Keil RTX4 OS abstraction layer 2021-11-30 17:19:11 +08:00
Yunhao Tian ac20605e3f Ignore certain compiler options on ARMCC
ARMCC also sets __GNU__ macro, but doesn't support
GCC diagnostic pragmas.
2021-11-30 17:19:11 +08:00
Yunhao Tian dba59217da usbd: supress "statement is unreachable" warning on ARMCC 2021-11-30 17:19:10 +08:00
hathach ab223eb1df
correct 32 button in gamepad hid descriptor template 2021-11-29 13:07:46 +07:00
kkitayam b50cf856b3 Add hcd_musb.c 2021-11-29 00:28:22 +09:00
kkitayam 7413b6b020 Add a compile condition for dcd 2021-11-27 10:26:32 +09:00
hathach c9e9f4785f more clean up 2021-11-23 09:52:11 +07:00
hathach 0fc11746c0 clean up 2021-11-23 09:46:45 +07:00
hathach a994540860 fix nrf easy dma race condition 2021-11-23 09:36:28 +07:00
Ha Thach b8d66e4d19
Merge pull request #1206 from hathach/bcm-dwc2-address
Bcm dwc2 address
2021-11-22 12:07:07 +07:00
hathach dac7574c98
use USB_OTG_GLOBAL_BASE instead of hard code value 2021-11-22 10:52:28 +07:00
hathach 301d6b4133
clean up 2021-11-17 09:48:08 +07:00
hathach 12e96ce571
set DCFG_XCVRDLY when using external ULPI highspeed phy 2021-11-15 12:18:28 +07:00
hathach d415bd4d7b
add missing musb type file 2021-11-08 17:39:37 +07:00
hathach f65917f51a
rename to simply OPT_MCU_MSP432E4, add msp432e to ci 2021-11-08 17:29:26 +07:00
hathach 6fea50f735 musb work well with tm4c123 2021-11-08 16:41:29 +07:00
hathach 23e6e0ef33 merge pull request 670 for tm4c123gxl bsp 2021-11-08 16:41:29 +07:00
kkitayam 26461d1efe Fix DCD_EVENT_XFER_COMPLETE was signaled, even after EP is closed 2021-11-07 18:25:11 +09:00
kkitayam 0b3c8c4a59 Implement dcd_edpt_xfer_fifo for dcd_musb 2021-11-06 00:06:27 +09:00
kkitayam 50ca0dda2c Add dcd_musb.c 2021-11-06 00:06:26 +09:00
kkitayam f183d0810b Add files for msp432e4 2021-11-06 00:06:26 +09:00
Ha Thach ab760290a5
Merge pull request #1181 from liamfraser/rp2040-hcd-assert-fix
Fix invalid assert in RP2040 host mode when compiled in debug mode
2021-11-05 21:40:42 +07:00
Jerzy Kasenberg d20a5b3a09 bth: Add IAD to BT descriptor
Bluetooth's specification defines IAD for primary controller.
While it seems that Windows and Linux can leave without this,
there is no reason TinyUSB should not provide it.
2021-11-05 13:03:31 +01:00
Jerzy Kasenberg ec8ece2c9d bth: Update driver to interface association changes
Two interfaces that are required by Bluetooth Primary Controller
do not have IAD according to Bluetooth specification.
Those two interfaces were opened separately in process_set_config().

Later interface association was inferred for BTH (along with other
drivers), since then only one call to open() is place for BTH driver
that should prepare both interfaces at once.

To make it work again btd_open() parses two interfaces at once.
2021-11-05 12:33:15 +01:00
Liam Fraser e692fa9ae4 RP2040 HCD: Move invalid ep->active assert in hw_trans_complete. The check for ep->active should only happen if a setup packet was just sent. Otherwise the transaction is handled in hw_handle_buff_status. 2021-11-05 09:39:31 +00:00
Ha Thach c04006bc13
Merge pull request #1180 from hathach/add-xmc4500
Add xmc4500
2021-11-05 14:38:23 +07:00
hathach d87a897a7b
xmc4500 ported, cdc msc example run fine 2021-11-05 13:13:21 +07:00
hathach a3fc107d94
xmc4500 led blinky, button ok 2021-11-05 11:57:36 +07:00
Jerzy Kasenberg e35bb6341c broadcom/dcd: Fix mynewt build
dcd_synopsys.c included broadcom/interrupts.h before
preprocessor check whether file should be used.

Since mynewt build does not include all folders it resulted in build
error.

Now offending include is moved few lines after preprocessor check.
2021-11-04 21:46:17 +01:00
hathach f90f5ea369 adding g4 family with g474nucleo, able to blink led and button 2021-11-04 16:16:51 +07:00
Ha Thach fc59515bfd
Merge pull request #1163 from hathach/generalize-synopsys-dwc2
Generalize synopsys dwc2
2021-11-04 13:41:25 +07:00
hathach 6cfdf697eb add hint/question with ISB 2021-11-04 12:42:28 +07:00
hathach b51d038b65 fix issue with bcm2711 caching issue by ading ISB() after dwc2_dcd_int_enable90
also add hwcfg_list for reference
2021-11-04 12:30:11 +07:00
hathach e16506cb52 clean up 2021-11-03 12:24:10 +07:00
hathach 7e68894726 grouping stm32L4 family in bsp 2021-11-02 16:10:40 +07:00
hathach b809429873 minor clean up 2021-11-02 14:51:15 +07:00
hathach aa682d7301 add fix for stm32l4 (version 3.10a) which generate transfer complete when setup recieved and control out data complete 2021-11-02 13:52:30 +07:00
Ha Thach 9245b8f89f
Merge pull request #1164 from suda-morris/refactor/update_include_header_esp32xx_dcd
update dcd_esp32sx with correct include list
2021-11-01 15:24:51 +07:00
hathach 215e0595ab change F207 to use new dwc2 2021-10-31 00:09:40 +07:00
hathach b85a6898af remove dcd_efm32 2021-10-30 20:45:58 +07:00
hathach 9cd5a87c64 add support for EFM32GG
merge GG12 GG12 to simply OPT_MCU_EFM32GG
2021-10-30 20:42:55 +07:00
hathach 660e8b8c88 skip snpsid check for gd32, abstract phyfs turnaround, set max timeout calibration.
still has issue with gd32 with msc (does work with running with rtt as
log).
2021-10-29 16:08:19 +07:00
hathach 6c67fc4125 correctly init hs phy for bcm 2021-10-29 00:53:30 +07:00
hathach 7def380058 support bcm2711 on pi4, enhance dcd init with utmi and ulpi hs phy 2021-10-28 12:52:18 +07:00
Gordon McNab 6a658007a5 Changes to use ft90x-sdk as submodule or installed SDK from toolchain. 2021-10-27 12:30:51 +01:00
hathach 49aa69a301 update bcm dcd 2021-10-26 23:57:48 +07:00
hathach 07829510e7 Merge branch 'tannewt-rpi' into generalize-synopsys-dwc2 2021-10-26 23:43:35 +07:00
hathach 9f1cd1a753 add synopsys id check, rename GCCFG_* to STM32_GCCFG-* 2021-10-26 23:10:26 +07:00
hathach bb5dab5c2e add hw config struct 2021-10-26 22:48:01 +07:00
hathach 68fa9d4064
enhance fifo read/write 2021-10-26 13:56:56 +07:00
hathach 5d05f8758f
more clean up 2021-10-26 13:36:43 +07:00
hathach 4ebfd00d67
clean up 2021-10-26 13:33:40 +07:00
hathach de413183d4
use dwc2->epin 2021-10-26 13:07:00 +07:00
hathach e7655a7567
update the access epout 2021-10-26 13:02:26 +07:00
hathach 34844c9061
use dwc2->fifo[] 2021-10-26 12:53:29 +07:00
hathach 5e1a031800
complete dwc2 regs struct 2021-10-26 12:22:41 +07:00
hathach 3755814f57
add epin, epout to dwc2 regs 2021-10-26 11:49:59 +07:00
hathach 8df078dc9e
more rename 2021-10-26 11:11:46 +07:00
hathach 7369d2441d
update dwc2_type 2021-10-26 00:55:24 +07:00
hathach 460052c8a0
spacing 2021-10-25 21:20:58 +07:00
suda-morris 7d0d6f85f2 update dcd_esp32sx with correct include list 2021-10-25 21:53:14 +08:00
hathach dbd31895bc
change usage of TU_CHECK_MCU() to prevent macro conflict 2021-10-25 17:04:03 +07:00
hathach 85e18b9172
house keeping 2021-10-25 15:58:12 +07:00
hathach 4ccf60954d
moving esp32s2 to dwc2, abstract dwc2_set_turnaround() 2021-10-25 15:51:41 +07:00
Tod Kurt 9f014b059a properly handle Program Change and Channel Aftertouch messages 2021-10-25 00:07:59 -07:00
hathach a0202df920
add TU_ARGS_APPLY(), TU_CHECK_MCU() now could check list of mcus 2021-10-25 13:49:59 +07:00
hathach 61c80840c3
update dwc int enable/disable 2021-10-25 00:40:21 +07:00
hathach 4ab931a361
more clean up 2021-10-25 00:23:18 +07:00
hathach 0e7c103e98
minor rename 2021-10-25 00:11:17 +07:00
hathach 32742571da
switch gd32 and stm32f4 to use new dwc2 driver 2021-10-25 00:06:57 +07:00
hathach 06de6b725c
adding generalized dwc2 driver 2021-10-24 23:24:46 +07:00
Ha Thach 55e0b5882a
Merge pull request #1160 from cr1901/msp-fix
msp430x5xx: Set base of transmit_packet buffer earlier to avoid incre…
2021-10-24 17:28:11 +07:00
hathach 109b7a6661 more wMaxPacketSize 2021-10-24 14:39:02 +07:00
hathach 5af989384b remove ep descriptor wMaxPacketSize bitfield due to endian issue 2021-10-24 13:11:21 +07:00
hathach 6f5b197a98 indent 2021-10-24 08:44:58 +07:00
William D. Jones 07c74c76d0 msp430x5xx: Set base of transmit_packet buffer earlier to avoid incrementing past unsent data. 2021-10-23 14:04:44 -04:00
Ha Thach 311c05b401
Merge branch 'master' into fix-warnings 2021-10-23 21:23:56 +07:00
Ha Thach b541c0f5e0
Merge pull request #1150 from kkitayam/change_input_terminal_type_to_camera
UVC example: change input terminal type to camera from external
2021-10-23 20:48:52 +07:00
Scott Shawcroft 2ef200003d
Update broadcom library 2021-10-22 09:31:24 -07:00
Scott Shawcroft 35b62810c3
Update submodule 2021-10-22 09:00:42 -07:00
hathach 5e437ee186
pi cm4 enumerated as full speed device 2021-10-22 21:55:15 +07:00
kkitayam b3b6b4f785 Update _negotiate_streaming_parameters() to handle some requests 2021-10-19 21:49:00 +09:00
Ha Thach 4bfab30c02
Merge pull request #1139 from hathach/release-0.12.0
update changelog and increase version for 0.12.0
2021-10-19 13:27:53 +07:00
kkitayam 4fd0ee4eef Implement GET_DEF and GET_LEN handling on Probe/Commit entities of streaming interface 2021-10-18 21:53:38 +09:00
hathach 6fcf4bee8c suppress null-dereference by usbh and lwip 2021-10-18 11:42:00 +07:00
hathach a7dd5b616c fix -Wnull-dereference in midi_device 2021-10-18 01:11:27 +07:00
hathach 826b34a8ac enable -Wnull-dereference 2021-10-18 00:13:40 +07:00
hathach 099d3b377f add volatile to EPx_REGS for -Wcast-qual
since gcc does difference between volatile struct and member when
casting pointer
2021-10-17 17:33:14 +07:00
hathach 31cd366935 more -Wcast-qual 2021-10-17 17:32:03 +07:00
hathach a5f516893b more with -Wcast-qual 2021-10-17 16:36:53 +07:00
kkitayam 7325dd6335 Change input terminal type to camera 2021-10-16 12:06:13 +09:00
hathach 0b249618b0 fix -Wcast-qual 2021-10-15 23:54:31 +07:00
Jerzy Kasenberg bf4b133084 dcd_da146xx: Drop unexpected data
USB3CV tool verifies MSC device by sending too short or
too long packets.
In case of too long packets (msc_device requested 31 bytes
but incoming data had 32 bytes) extra byte(s) were left in
FIFO resulting in some data mismatch later on.

Now if more data is received in packet that expected extra
bytes are just dropped.
2021-10-15 12:02:15 +02:00
Jerzy Kasenberg 49aa0b72a8 dcd_da146xx: Fix EPIN stall notification handling
Normal TX handler for IN non-0 endpoints is called during
outgoing transfer or just after it was finished.
It may need to fill TX fifo with same data if TX_DONE is present
but ACK_STAT is not.
It may need to fill more data when called during transfer.
But it may also be called when STALL was sent.
In this case TX_DONE is set ACK_STAT is not, just like for packets
that were sent but no ACK was received.
Code was trying to send something again. There was nothing to send
so empty ZLP was scheduled for stalled endpoint.
This ZLP was later send to host where valid response was required.

This change checks if notification was for STALL endpoint and
does not try to fill TX FIFO in that case.
2021-10-15 12:02:15 +02:00
hathach 7596cb3079 update some sense warning from -Wconversion 2021-10-15 15:54:32 +07:00
graham sanderson 06d9555389 More warning cleanup
- physically suppress warnings in TinyUSB headers using pragmas so they don't break -Werror compilation of external files that include them
 - fix compiler warnings in rp2040 port
 - add cmake method to rp2040 port to allow an external project to suppress warnings in TinyUSB itself
2021-10-14 15:23:26 -05:00
graham sanderson 7667299b48 Remove compiler warning 2021-10-14 12:13:39 -05:00
kkitayam 2a795d5fd0 Fix GUID of video compression formats 2021-10-14 23:15:35 +09:00
hathach 5cfe293001 update changelog and increase version for 0.12.0 2021-10-13 17:32:34 +07:00
Ha Thach 9da234cd7c
Merge pull request #1101 from kasjer/kasjer/da146xx-bus-reset-sleep
da146xx bus reset and sleep reworked
2021-10-13 16:33:54 +07:00
Scott Shawcroft 4ab14867da
Trying to get USB init 2021-10-12 16:47:53 -07:00
Ha Thach 379537cb6d
Merge branch 'master' into add_uvc 2021-10-12 22:01:02 +07:00
kkitayam 67f1603833 Fix a typo 2021-10-12 23:35:19 +09:00
hathach 4d9e44e09c more rename 2021-10-12 01:12:26 +07:00
hathach 7afcb1e5d5 minor code clean up without functionality changes 2021-10-12 00:56:20 +07:00
hathach 4d170614dc rename some video constants 2021-10-11 23:18:24 +07:00
hathach b3bfce2cb7 update the descriptor endpoint ISO for nrf5x 2021-10-11 16:07:34 +07:00
Ha Thach ecec0370ca
Merge pull request #1107 from majbthrd/add_ncm
add NCM driver in a compatible manner : hathach/tinyusb#550
2021-10-11 15:57:46 +07:00
hathach a6723f556d add ncm.h for magic number
mostly clean up magic number
2021-10-11 12:36:03 +07:00
hathach a8eea9f6a5
add backward compatible with warnings for CFG_TUD_NET 2021-10-09 11:28:55 +07:00
Gordon McNab 5e6edecaa3 Streamline settings for board. 2021-10-07 17:00:28 +01:00
Gordon McNab 8c40a74f29 Sort out board settings. 2021-10-06 17:13:44 +01:00
Gordon McNab 9966b8a5d6 Change author in header to Bridgetek Pte Ltd. 2021-10-06 16:54:52 +01:00
Gordon McNab 37c5eeb51d Rename directories to indicate that FT930 and FT900 devices are both covered by the same SDK and src/portable code. Board makefile includes __FT900__ macro for FT90x and __FT930__ macro for boards with FT93x. 2021-10-06 16:50:55 +01:00
Gordon McNab 62c613f6d2 Add initial port for FT9xx series from Bridgetek.
Add FT90X and FT93X to the list of devices in tusb_option.h. 1700 for FT90x and 1701 for FT93x.
Set endpoint attributes for FT90x and FT93x in dcd_attr.h.
Add FT90x routines for USB device in src/portable/bridgetek/ft90x/dcd_ft90x.c
The location for hardware header files and libraries is hw/mcu/bridgetek/ft90x/hardware. There are no files in the repository, but files will be linked as a submodule in the future. The required files can be copied from or linked to the location "C:/Program Files(x86)/Bridgetek/FT9xx Toolchain/Toolchain/hardware" once the toolchain is installed.
Makefile for the MM900EV1B board for developing with an FT900 device is present. Use "BOARD=mm900ev1b".
2021-10-05 13:54:47 +01:00