hathach
1f95a417f2
Add tuh_rhport_is_active() and tuh_rhport_reset_bus()
...
- also improve ehci bus reset
- seperate bus reset delay and contact debouncing delay in enumeration
2023-08-07 20:48:07 +07:00
hathach
dc74e634f9
fix unaligned hub status_change
2023-07-25 12:35:40 +07:00
hathach
20ef6c4ef7
slightly clean up
2023-05-29 13:29:11 +07:00
hathach
5c428d35a6
check status_change is not zero first
2023-05-29 13:27:20 +07:00
Ivo Popov
8ad024e51b
Even when we get an empty "status change" interrupt from the hub, schedule another interrupt poll.
...
During enumeration, when there are multiple devices attached to the
hub as it's plugged into the Pi Pico, enumeration hangs, because we
get a "status change" callback with value zero. With this patch, we
retry several times on "zero" status change callbacks, until
eventually we succeed.
This is the cheapo hub that exhibits this behavior, but I assume it's
not the only one: https://www.amazon.com/gp/product/B083RQMC7S .
While debugging this, I consulted the implementation in the Linux
kernel. There, hub setup explicitly checks each port individually,
before starting to depend on "status change" interrupts:
https://elixir.bootlin.com/linux/latest/source/drivers/usb/core/hub.c#L1133 .
We probably should do something like that here, but it's a much bigger
change.
2023-05-29 13:18:16 +07:00
hathach
206d63e038
correct EHCI reporting failed xfer (instead of stalled) when device is unplugged
2023-05-16 11:09:21 +07:00
hathach
71fb6469d4
separate CFG_TUSB_MEM_SECTION and CFG_TUSB_MEM_ALIGN to
...
- CFG_TUD_MEM_SECTION and CFG_TUD_MEM_ALIGN
- CFG_TUH_MEM_SECTION and CFG_TUH_MEM_ALIGN
- fix missing mem section and align for host
2023-03-24 14:05:21 +07:00
hathach
3623ba1884
fix trailing space and new line
...
temporarily disable codespell
2023-03-17 16:12:49 +07:00
Ryzee119
2b2354d302
Hub: Clear other port feature changes
2022-08-16 18:25:46 +09:30
Ryzee119
3c7b5dcaff
Hub: Handle hub device status change interrupt
2022-08-16 18:25:43 +09:30
Ryzee119
aafea8ef5d
Hub: Rename port status callback to be more generic
2022-08-15 17:43:04 +09:30
Ryzee119
5efef4393c
Hub: Expand hub helpers to handle device events
2022-08-15 17:42:56 +09:30
hathach
0042eccb3b
fix redundant-decls warnings by usbd/usbh
2022-06-24 22:52:11 +07:00
Ryzee119
9e30ec4f16
Hub: Retry port status transfer if failed
2022-05-29 14:15:23 +09:30
hathach
821be65b03
rename usbh_edpt_open() to tuh_edpt_open()
2022-03-19 14:59:31 +07:00
hathach
4795cca04a
add parse config descriptor to example
...
move usbh_edpt_open() to public API, remove rhport from its signature
2022-03-19 00:43:31 +07:00
hathach
8750e3b577
move daddr into xfer struct
2022-03-18 16:39:35 +07:00
hathach
f89ff939d8
rename user_arg to user_data
2022-03-17 22:37:51 +07:00
hathach
55428d7dd2
rename tuh_control_xfer_t to tuh_xfer_t
2022-03-17 20:52:16 +07:00
hathach
8aedb2ff37
slightly change the signature of tuh_control_xfer
2022-03-17 17:25:53 +07:00
hathach
66942b814b
change return type of callback to void
2022-03-17 16:55:29 +07:00
hathach
deab8c276a
remove const in xfer callback
2022-03-17 16:53:54 +07:00
hathach
6df420f7f3
move result into transfer struct
2022-03-17 16:24:43 +07:00
hathach
68bfd048a5
change tuh_control_xfer_t struct
2022-03-17 12:53:52 +07:00
hathach
a5a565f7eb
rework usbh enumeration process using user arg from control transfer as state
2022-03-12 14:20:57 +07:00
hathach
bcdeb386cc
rework usbh control xfer
...
- change API of tuh_control_xfer and its callback
- rename tuh_control_complete_cb_t to tuh_control_xfer_cb_t
- add user argument to control callback
- migrate usbh and hub
2022-03-11 21:57:55 +07:00
hathach
66c933fb61
fix enumeration issue when plugging hub with multiple devices attached
2022-03-10 23:16:59 +07:00
hathach
96165a1950
rename HCD_MAX_XFER to CFG_TUH_ENDPOINT_MAX
...
minor clean up
2022-03-04 17:07:04 +07:00
hathach
31aa077cb0
rename TUSB_OPT_HOST_ENABLED to CFG_TUH_ENABLED
2022-02-25 18:35:21 +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
a490a3fe61
add hcd attr, add note for ehci framelist on NXP derivative
2021-08-23 15:40:57 +07:00
hathach
6a16f6ccdd
rename CFG_TUSB_HOST_DEVICE_MAX to CFG_TUH_DEVICE_MAX
2021-08-23 11:01:40 +07:00
hathach
22a5b1608c
change host driver open return type to bool
...
the descriptor len used by driver will be calculated by usbh
2021-08-20 19:31:38 +07:00
hathach
5811122cfd
change usbh open driver to have max_len and return driver len
2021-06-28 17:39:57 +07:00
hathach
13cb016042
add usbh_classdriver.h
2021-06-10 16:48:20 +07:00
hathach
4b2f32b778
update hub
2021-05-31 15:47:37 +07:00
hathach
65e5872d81
add hub_port_set_feature()
2021-05-31 15:19:07 +07:00
hathach
3fb80e76ce
remove obsolete hcd_pipe_queue_xfer()/hcd_pipe_xfer()
2021-05-31 12:08:37 +07:00
hathach
9ad6fadf6a
more include clean up
2021-05-27 18:34:07 +07:00
hathach
2efdc2fb64
get hub work more reliably
2020-11-02 08:46:24 +07:00
hathach
6eafdfab93
update usbh with hub to use async control transfer
...
work ok with msc + hub, but definitely need more testing.
2020-11-02 00:54:04 +07:00
hathach
b3e81673c0
change xfer_cb return type from void to bool
2020-09-06 12:11:07 +07:00
hathach
15ad585e67
replacing hcd_pipe_xfer by usbh_edpt_xfer
2020-09-06 11:49:00 +07:00
hathach
828f720207
refactor hub class
...
- separate connect/disconnect handling
- hub work with full speed, but doesn't seem to work with Low speed
device (with mcb1800)
- need to update msc host after migrating from isr to xfer_cb (blocked
at inquiry)
2020-09-05 20:20:45 +07:00
hathach
b8b95e8494
add in_isr to all hcd event functions
2020-09-05 15:46:50 +07:00
hathach
f7cf8cdf27
defer xfer_isr to xfer_cb
2020-09-05 14:41:31 +07:00
hathach
58cedf4c06
usb0 host on mcb1800 work with fullspeed mode.
...
use usbh_edpt_open() to correctly map ep2drv[]
2020-05-19 00:55:43 +07:00
Nathan Conrad
25c1bea782
Normalize line endings
2020-01-15 14:47:43 -05:00
hathach
13e01c7dca
add TU_ prefix to compiler ATTR to prevent name conflict with application
2019-06-06 10:39:37 +07:00
hathach
3e6d911ce9
more clean up use inline bit funciton instead of macros
2019-05-14 12:54:29 +07:00