Commit Graph

384 Commits

Author SHA1 Message Date
hathach 460bef9dbb
host msc example work well with rp2040 pio-usb 2022-11-21 15:49:38 +07:00
Ben Avison 01edbb8af6 IAR doesn't support __attribute__((fallthrough))
IAR generates warning Pa167 'the "fallthrough" attribute is not supported'.
It doesn't generate warnings when one switch case falls through to another,
so simply make TU_ATTR_FALLTHROUGH expand to an empty string.

Also replace one instance of __attribute__ with the macro.
2022-09-13 18:00:51 +01:00
Ben Avison 53f0d5538b Don't assume ints automatically convert to enums
IAR generates warning Pe188 'enumerated type mixed with another type'.
2022-09-13 18:00:50 +01: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 7e4c0f64cd
abtract attribute fallthrough 2022-07-14 18:39:47 +07:00
graham sanderson 4bd47bcb99 disable bad gcc 6 warning 2022-07-12 13:29:47 -05:00
hathach 345558307d fix incorrect null-dereference warnings when compiling with gcc7 2022-07-12 00:50:52 +07:00
hathach a0ef489890 fix all warnings with host rp2040 2022-06-27 17:11:24 +07:00
hathach 0042eccb3b
fix redundant-decls warnings by usbd/usbh 2022-06-24 22:52:11 +07:00
Ha Thach d7b579a978
Merge pull request #1480 from Ryzee119/multihub_rebase
Host: Add support for multi-level usb hubs
2022-06-16 16:33:48 +07:00
hathach f4a7b5b80c add note for recursive calls of process_device_unplugged() in case of hub 2022-06-16 14:37:57 +07:00
hathach 040ef0640d more dynamic controller for host 2022-06-10 14:53:03 +07:00
hathach 8cbc34de11 add tuh_configure() for port/dynamic host behavior config 2022-06-08 01:17:01 +07:00
Ryzee119 7df7590f7f Hub: Remove multi-level hub bypass 2022-06-04 18:58:20 +09:30
Ryzee119 b7c8cb3c41 Hub: Unplug downstream devices on non-root hub disconnect 2022-05-29 14:15:57 +09:30
Ryzee119 9e30ec4f16 Hub: Retry port status transfer if failed 2022-05-29 14:15:23 +09:30
Ryzee119 688a3a0cc2 Fix non-trivial designated initializers compile error 2022-05-29 14:15:18 +09:30
hathach 0b30a10ab3 configure hid_to_cdc example to build with rp2040 with pio usb as host 2022-04-29 22:24:36 +07:00
hathach 85dcb73774 more clean up 2022-04-28 18:00:30 +07:00
hathach a72d4e2462 make hcd_event_handler() fastfunc, and force inline other helper 2022-04-27 20:54:21 +07:00
hathach ae5490e5a5 clean up 2022-04-27 20:52:56 +07:00
hathach 98bbb0d402
Merge branch 'master' into pio-host 2022-04-21 12:05:22 +07:00
hathach 6a022c73db
add note for tud_task() behavior in freertos example 2022-04-20 18:35:38 +07:00
hathach b034c18077
add tud_task_ext(), tuh_task_ext() as exteneded version that take timeout and in_isr
also allow exit tud_task,tuh_task after processing all events for
running other background task for user
2022-04-20 18:29:41 +07:00
hathach a90839688c
add msec timeout to osal_queue_receive(), tud_task() and tuh_task() both pending for event queue with timeout of 1 ms 2022-04-20 13:25:38 +07:00
hathach d97c154695 add need_pre for pio usb, but not work out well 2022-04-05 00:04:47 +07:00
hathach e6e3dfedc8 hid example work well 2022-04-01 16:34:36 +07:00
hathach 75bca96bc6 pio usb control work well including stall response 2022-04-01 16:01:24 +07:00
hathach 45052c625e
Merge branch 'master' into pio-host 2022-03-20 00:51:00 +07:00
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 ba1185bf28
implement tuh_edpt_xfer() for non-control 2022-03-18 22:22:21 +07:00
hathach 9ae0304b1e
move code around 2022-03-18 18:04:25 +07:00
hathach 8750e3b577
move daddr into xfer struct 2022-03-18 16:39:35 +07:00
hathach 2ff8978dde
update sync API, move timeout into xfer struct
remove tuh_control_xfer_sync()
2022-03-18 13:38:30 +07:00
hathach 85c6d6d37d
minor update for control xfer 2022-03-18 12:51:12 +07:00
hathach c063ab4944
try to fix ci 2022-03-18 00:56:51 +07:00
hathach f89ff939d8
rename user_arg to user_data 2022-03-17 22:37:51 +07:00
hathach 9dd2f11f4a
add CFG_TUH_API_EDPT_XFER to enable generic edpt xfer 2022-03-17 21:20:20 +07:00
hathach 55428d7dd2
rename tuh_control_xfer_t to tuh_xfer_t 2022-03-17 20:52:16 +07:00
hathach 102b99a0e8
add actual_len supported 2022-03-17 20:48:32 +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 98d4ed0584
update hid host to use new control xfer for set config 2022-03-16 18:44:41 +07:00
hathach fd2ea2605e fix -Wnull-dereference warnings 2022-03-16 10:55:18 +07:00
hathach 2929afe2fa add synchronous (blocking) support for usbh control transfer
- add synchronous version of all get descriptor API
- update bare example to use sync API for string descriptor
- change order of index, language_id in tuh_descriptor_get_string() to
match similar API of libusb
- add index to tuh_descriptor_get_hid_report()
2022-03-13 17:45:46 +07:00
hathach 56695569e7 minor changes 2022-03-12 14:28:24 +07:00
hathach ac4483a7c5 misplace fallthrough 2022-03-12 14:26:48 +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 6b5490ced6 merge device_info into bare_api example 2022-03-11 13:12:36 +07:00
hathach a715077b10 remove usbh_control.c 2022-03-11 09:57:35 +07:00
hathach 951ece17e1 fix build warning 2022-03-10 23:20:12 +07:00
hathach 66c933fb61 fix enumeration issue when plugging hub with multiple devices attached 2022-03-10 23:16:59 +07:00
hathach 171d021ab5 refactor and integrate usbh control xfer back to usbh.c
fix enumeration with hub when reset port before set address
2022-03-10 22:22:05 +07:00
hathach b9ca301527 remove obsolete device state 2022-03-10 13:19:15 +07:00
hathach 5e9f522b9a refactor host control xfer 2022-03-10 12:56:15 +07:00
hathach b05401a5ab merge control stage host and device value 2022-03-10 11:59:51 +07:00
hathach 97636eff8e more clean up 2022-03-10 00:36:49 +07:00
hathach 0e5e644d27 minor clean up 2022-03-09 17:51:35 +07:00
hathach d56cde33ef refactor usbd to also use common endpoint claim/release 2022-03-09 17:34:12 +07:00
hathach 110879074f implement tu_edpt_release() 2022-03-09 17:26:55 +07:00
hathach a5fb20533c adding tusb_private.h to implement common edpt claim 2022-03-09 17:17:36 +07:00
hathach 708f05668d add tusb_debug.h remove tusb_error.h
move debug utils to new header
2022-03-09 16:44:19 +07:00
hathach 2f593e767c update use of mutex for host 2022-03-09 12:26:56 +07:00
hathach f920e1c171 rename host descriptor function 2022-03-09 11:21:13 +07:00
hathach db9d97c947 add tuh_descriptor_hid_report_get() 2022-03-09 11:03:29 +07:00
Scott Shawcroft f291243121
Fix string descriptor fetch 2022-03-04 11:38:02 -08: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
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 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 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
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
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 31aa077cb0 rename TUSB_OPT_HOST_ENABLED to CFG_TUH_ENABLED 2022-02-25 18:35:21 +07:00
hathach 4a5a53b3b8 improve rphort management for usbd 2022-02-25 18:35:21 +07: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
hathach 9cd5a87c64 add support for EFM32GG
merge GG12 GG12 to simply OPT_MCU_EFM32GG
2021-10-30 20:42:55 +07:00
hathach dbd31895bc
change usage of TU_CHECK_MCU() to prevent macro conflict 2021-10-25 17:04:03 +07:00
hathach 5af989384b remove ep descriptor wMaxPacketSize bitfield due to endian issue 2021-10-24 13:11:21 +07:00
hathach 6fcf4bee8c suppress null-dereference by usbh and lwip 2021-10-18 11:42:00 +07:00
hathach a5f516893b more with -Wcast-qual 2021-10-17 16:36:53 +07:00
hathach 75ad0c7d31
clean up 2021-10-01 22:53:14 +07:00
hathach b474522245 make vendor driver more flexible
- skip additional custom descriptor between interface and endpoints
- can have up to 2 bulk endpoint ( 1 in & 1 out)
2021-09-14 21:30:38 +07:00
hathach 25ea8f9c9e update configuration parser 2021-09-14 21:02:38 +07:00
hathach 5404d6d8ae usbd pre-compute total interface length without replying on driver open 2021-09-14 12:47:20 +07:00
hathach 3debeb637a
test hid controller with rp2040 2021-08-24 21:34:51 +07:00
hathach 3c0c051df1
add tuh_vid_pid_get()
complete Sony PS4 dualshock controller example
2021-08-24 19:10:23 +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
hathach 5d152503ee fix dev0 out of bound array due to leftover 2021-08-24 12:16:23 +07:00
hathach 353c070d00 exclude dev0 from usbh devices pool 2021-08-24 01:06:05 +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 6a16f6ccdd rename CFG_TUSB_HOST_DEVICE_MAX to CFG_TUH_DEVICE_MAX 2021-08-23 11:01:40 +07:00
hathach 800f85329e add tuh_hid_receive_report() for applicaiton to explicitly request report 2021-08-23 11:00:21 +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 97703587d9 improve host configuration parsing
- remove driver class code binding
- fully support IAD
- auto calculate total length for interface descriptor for driver
2021-08-20 19:08:38 +07:00
hathach 62f2efbe8c hid host skip get report descriptor if too large instead of assert 2021-08-20 18:26:56 +07:00
hathach 1cef2b6a42 extra common edpt helper for device and host stack
tu_edpt_validate() and tu_edpt_bind_driver()
2021-08-20 18:01:10 +07:00
hathach 5811122cfd change usbh open driver to have max_len and return driver len 2021-06-28 17:39:57 +07: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
Niklas Hauser 264dc35b95 Fix typo in TUH configuration define 2021-06-21 05:32:43 +02:00
hathach 910e11a8ab fix ci build 2021-06-11 19:04:16 +07:00
hathach 572d986a02 improve usbh 2021-06-11 17:14:22 +07:00
hathach 43656dc0a7 more clean up 2021-06-10 23:29:02 +07:00
hathach c7f51cde40 implement usbh_edpt_busy (WIP), remove hcd_edpt_busy 2021-06-10 17:19:21 +07:00
hathach 7e6cba7359 remove hcd_edpt_stalled() 2021-06-10 16:55:12 +07:00
hathach 13cb016042 add usbh_classdriver.h 2021-06-10 16:48:20 +07:00
hathach 4e98ce9147
use hcd_frame_number() instead of uframe 2021-05-31 18:15:47 +07:00
hathach 04797bc5a5
clean up 2021-05-31 16:05:55 +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 5cf930d78a fix cast-align warning in msc host 2021-05-31 11:11:00 +07:00
hathach 9ad6fadf6a
more include clean up 2021-05-27 18:34:07 +07:00
hathach 4f03332118 clean up 2021-05-23 20:14:01 +07:00
hathach 641f55f1f1 remove CFG_TUH_HID_KEYBOARD and CFG_TUH_HID_MOUSE 2021-05-18 12:58:24 +07:00
hathach db8ea7ea1c clean up 2021-05-18 12:58:24 +07:00
hathach 791efecfdf add tuh_device_ready() 2021-05-18 12:58:24 +07:00
hathach b7a8b278c8 rename tuh_device_is_configured() to tuh_device_configured()
- remove tuh_device_get_state()
- more hid mouse clean up
2021-05-18 12:58:24 +07:00
hathach 69defb5edc rename and moving 2021-05-18 12:58:24 +07:00
hathach a5cd81a226 correct hid host mount/unmount callback
rename HOST_CLASS_HID to CFG_TUH_HID
2021-05-18 12:58:24 +07:00
hathach e0dbb489ae rename CFG_TUSB_HOST_ENUM_BUFFER_SIZE to CFG_TUH_ENUMERATION_BUFSZIE
add usbh_get_enum_buf
2021-05-18 12:58:24 +07:00
hathach e83bdcdfdc reworking hid host 2021-05-18 12:58:24 +07:00
hathach 13613eafb7 correct ehci control endpoint address report on xfer complete
improve host log
2021-05-18 12:58:24 +07:00
hathach 3a7f8b3ac3 separte tusb_init/inited() to tud/tuh init/inited
add rhport to tud_init()
2021-05-18 12:58:24 +07:00
hathach 2666e1efec add tuh_inited() and tud_inited() 2021-05-18 12:58:24 +07:00
hathach 98f5082191 rename var to be consistent 2021-05-18 12:58:24 +07:00
hathach 1dd2cd43dd add hcd_ehci.h as interface for ehci port 2021-05-18 12:58:24 +07:00
hathach f6b48c07fc
add rp2040 to host example build 2021-02-26 14:05:08 +07:00
hathach 451650fa32 move ehci and ohci to portable folder 2021-02-23 23:09:48 +07:00