Commit Graph

352 Commits

Author SHA1 Message Date
hathach
77e142ed76 Merge branch 'master' into fork/HiFiPhile/async_io 2025-06-30 21:09:40 +07:00
HiFiPhile
d789a87a7d Merge branch 'master' into async_io
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-06-22 17:19:08 +02:00
hathach
5c974cee23 usbh make TU_API_SYNC() public, to implement sync() API, change return of sync API from uint8_t to tusb_xfer_result_t 2025-06-20 12:51:29 +07:00
hathach
9503883ba7 usbh: add new API tuh_descriptor_get_device_local()
cdc host: remove the local desc_dev and the get_device descriptor call for ftdi and pl2303
2025-06-18 23:44:03 +07:00
hathach
e41a63c60d add usbh_spin_lock/unlock() use spinlock instead of atomic flag for hcd max3421 2025-05-21 15:27:18 +07:00
hathach
fe4446090e fix dual example for rp2350 conflict printf and cdc_printf 2025-05-13 16:27:26 +07:00
hathach
baf67539fc fix warnings, minor clean up 2025-05-13 12:16:22 +07:00
hathach
809af3e74c chore(usbh): change removing_hubs to array instead of bitmask 2025-05-06 15:58:07 +07:00
hathach
bc37ed6e3e usbh: force removed device in the same bus info, before setting address.
usbh: move code around
hub: queue status endpoint for detach/remove event
2025-05-06 15:23:23 +07:00
hathach
e7d4b5c9e7 add enum for set addr recovery 2025-04-29 20:16:50 +07:00
hathach
42d4f7c81e remove the old attach duplicated logic, debouncing skip should take care of it. 2025-04-28 15:10:03 +07:00
hathach
2c1414b4c1 usbh: add roothub debounncing flag to ignore attach/remove event on the roothub that is currently doing debouncing delay 2025-04-28 14:59:32 +07:00
hathach
b5b7a4be60 hub check status before get 1st device descriptor 2025-04-24 22:21:38 +07:00
hathach
093720f60b fix build 2025-04-24 18:08:00 +07:00
hathach
0f784e8a07 refactor hub driver and move port reset on connection change to usbh.
hub: add hub_port_get_status_local(), ignore resp in hub_port_get_status(pot != 0)
usbh properly deboucning with hub/rootport accordingly to usb specs, also add 10ms of reset recovery
2025-04-24 17:59:45 +07:00
hathach
89f8d0cffb add tuh_address_set() API
minor rename and move code around
2025-04-24 10:41:00 +07:00
hathach
9a1f690ec4 move usbh ctrl_xfer into usbh_data 2025-04-23 16:50:58 +07:00
hathach
a2da575793 rename and expose tuh_bus_info_get() to application 2025-04-23 16:03:40 +07:00
hathach
741cb3cf02 rename hcd_devtree_info_t to tuh_bus_info_t, hcd_devtree_get_info to hcd_bus_info_get
streamline bus info to usbh_devies, also replace dev0 (renamed to dev0_bus)
2025-04-23 12:35:32 +07:00
HiFiPhile
b6170c965f Compile fix.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-22 21:14:04 +02:00
hathach
8f9ef7dfbe reduce ENUM_DEBOUNCING_DELAY_MS to 200ms
replace dev0.enumerating by enumerating_daddr for better clean up on unplugging while enumerating
move controller_id & enumerating_daddr into _usbh_data struct
2025-04-22 22:09:06 +07:00
hathach
940fe43e68 move removing dev0 to process_removing_device() 2025-04-22 17:33:37 +07:00
HiFiPhile
7ba63a6302 Also cleanup unaddressed device.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-22 16:58:13 +07:00
HiFiPhile
3c4e6a779d Move decouncing delay before USB reset.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-22 16:58:12 +07:00
HiFiPhile
9f096ac56b host: fix enumerate racing
- if a previous enumeration failed _ctrl_xfer status could stuck, it needs to be cleared before next attempt.
- after _dev0.enumerating is reset in hcd_event_handler(), if an attach event arrived before _ctrl_xfer clean up in remove event, a racing condition will happen.

Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-22 16:58:10 +07:00
hathach
5725d33121 improve usbh stability with failed setup send, prevent control stage locked out 2025-04-21 20:39:23 +07:00
HiFiPhile
b3d20442e2 Fix usbh racing later.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-18 14:57:53 +02:00
HiFiPhile
4c6736c277 Merge branch 'master' into dwc2-proper-attach-debouncing
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-18 14:54:20 +02:00
hathach
e8a84f9076 enum For string descriptor (langid, manufacturer product, serila): always get the first 2 bytes to determine the length first. otherwise, some device may have buffer overflow. 2025-04-18 10:53:12 +07:00
HiFiPhile
459e2cd39e Merge remote-tracking branch 'upstream/master' into async_io
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-04-11 23:07:22 +02:00
Maxime Vincent
2064ee470d dwc2/host: attach debouncing fixes 2025-04-11 12:26:36 +02:00
hathach
901ce2ad93 hcd/ehci: hcd_edpt_open() return false if ep is already opened. implement hcd_edpt_close() 2025-03-26 21:32:18 +07:00
hathach
65e01fff2e add tuh_edpt_close() API, it will abort any pending transfer
implement hcd_edpt_close() for pio-usb and max3421e, also move max3421e api into its own header.
2025-03-25 16:15:58 +07:00
hathach
9f541a3d96 host: add tuh_enum_descriptor_device_cb() and tuh_enum_descriptor_configuration_cb() callback
host: support device with multiple configurations
2025-03-24 22:55:04 +07:00
hathach
ee234a84ca hack: force/overwrite endpoint mps to 64 for device that incorrectly report 512 bytes for bulk in fullspeed mode. 2025-03-06 11:03:47 +07:00
hathach
8c0c21189c Merge branch 'master' into fork/atoktoto/midihost
# Conflicts:
#	src/host/usbh.c
2025-03-05 18:25:31 +07:00
hathach
5f447b76ad - add tuh_descriptor_get_string_langid() API
- host enumeration always get language id, manufacturer, product and serial string. Which is required by some device such as 8bitdo
2025-03-03 23:22:23 +07:00
hathach
6ebd362cfd Merge branch 'master' into fork/atoktoto/midihost
# Conflicts:
#	src/host/usbh.c
2025-02-21 10:59:40 +07:00
hathach
70ddb7a867 more hub improve, handle more failed transfer with polling interrupt status endpoint 2025-02-19 15:50:42 +07:00
hathach
792a446405 usbh always retry control transfer (max 3) in case of XFER_RESULT_FAILED.
added tuh_connected()
2025-02-17 22:40:19 +07:00
hathach
18d566b94c improve hub: retry if hub interrupt endpoint failed
bump up pio-usb to latest
2025-02-17 17:06:51 +07:00
hathach
bad6cbe489 update midi host to use endpoint stream API 2025-02-13 15:54:31 +07:00
hathach
e0b192b633 - use CFG_TUH_MIDI as number of midi host instance
- comment out tuh_descriptor_device_cb/tuh_desc_configuration_cb since it is unrelated to this PR
2025-02-12 22:16:08 +07:00
hathach
7c405236cf fix host midi build 2025-02-12 11:50:57 +07:00
hathach
85247e50dd clean up 2025-02-12 11:34:32 +07:00
hathach
87adc63226 Merge branch 'master' into fork/atoktoto/midihost
# Conflicts:
#	hw/bsp/rp2040/family.cmake
#	src/class/midi/midi.h
#	src/class/midi/midi_device.c
#	src/device/usbd_control.c
#	src/host/hcd.h
#	src/host/usbh.c
#	src/host/usbh.h
2025-02-12 11:28:16 +07:00
HiFiPhile
d1ee2bf18f Fix Auto speed display.
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2025-01-29 15:14:25 +01:00
hathach
3cacb01459 Merge branch 'refs/heads/master' into fork/GuavTek/recover_zero_length_desc 2024-11-28 10:36:17 +07:00
GuavTek
4212db1b83 Move desc_len sanity checks to start of loops 2024-11-27 22:19:42 +01:00
hathach
9e4b855e53 minor clean up 2024-11-27 11:35:21 +07:00