Commit Graph

2973 Commits

Author SHA1 Message Date
77f0726361 fix ehci issue with portsc when enable port power and port reset
fix attached device not regconized if attached before power on
2023-05-09 17:32:14 +07:00
654f182176 build host examples with imx 2023-05-08 00:24:48 +07:00
6945c594d5 update all device cmake example for imx 2023-05-07 22:09:08 +07:00
f15f79df5d cmake work well with imxrt 2023-05-06 15:14:54 +07:00
cda5ab8b25 more temp work 2023-05-05 19:15:19 +07:00
8a9d2b4b75 wip 2023-05-04 23:29:37 +07:00
1763eede48 more update to host serial API 2023-04-28 22:14:14 +07:00
fb5fe3360f allow call tuh cdc with blocking (callback = NULL)
- tuh_cdc_set_control_line_state()
- tuh_cdc_set_baudrate()
- tuh_cdc_set_line_coding()
2023-04-28 21:50:54 +07:00
0a43a7b418 improve host serial drivers
- tuh_control_xfer() update xfer result to user_data if complete
callback = NULL (sync/blocking)
- refactor host serial driver for acm/ftdi/cp210x
2023-04-28 19:13:25 +07:00
190acc1fb0 add aligned(4) for cdc_line_coding_t 2023-04-28 11:12:03 +07:00
8f47976639 cdc: fix line_coding aligment
While calling tud_cdc_n_get_line_coding, the structure is copied into
the destination.

Dump of assembler code for function tud_cdc_n_get_line_coding:
   0x000193f4 <+0>:	mov.w	r2, #2112	@ 0x840
0x000193f8 <+4>:	ldr	r3, [pc, #20]	@ (0x19410
<tud_cdc_n_get_line_coding+28>)
   0x000193fa <+6>:	mla	r0, r2, r0, r3
=> 0x000193fe <+10>:	ldr.w	r3, [r0, #6]
   0x00019402 <+14>:	str	r3, [r1, #0]

On some platform (tested on LPC55S28), the address needs to be 4-bytes
aligned. Without this, the address is

(gdb) p &_cdcd_itf.line_coding
$3 = (cdc_line_coding_t *) 0x40100006 <_cdcd_itf+6>

which leads to a HardFault. With this fix

(gdb) p &_cdcd_itf.line_coding
$5 = (cdc_line_coding_t *) 0x40100008 <_cdcd_itf+8>

and the function can be called properly

Signed-off-by: Jean-Baptiste Theou <jb@thing.com>
2023-04-27 15:48:15 -10:00
732686cc10 add tuh_cdc_set_baudrate() 2023-04-27 23:22:10 +07:00
ee58278ed2 add code to calculate divisor from baudrate for ftdi 2023-04-27 23:08:25 +07:00
8214f0f497 clean up 2023-04-27 17:40:08 +07:00
c10f52b237 forgot to add cp210x header 2023-04-27 17:39:02 +07:00
438387be8c more refactor 2023-04-27 17:32:56 +07:00
86f6fd17ed cp210x seems to work well 2023-04-27 17:09:21 +07:00
a32ef1cde1 more host serial refactor 2023-04-27 16:32:42 +07:00
9698a088db refactor acm function 2023-04-27 15:29:44 +07:00
85d9925d24 refactor ftdi driver 2023-04-27 15:20:04 +07:00
293a6222f8 rename ftdi_host to ftdi_sio 2023-04-27 11:08:42 +07:00
45169d833d hacky, but ftdi work with hard code baudrate = 9600 2023-04-26 22:36:17 +07:00
964e7ebf21 Merge pull request #2013 from tannewt/imx_1042
Handle iMX RT 1042 usb naming
2023-04-24 16:53:24 +07:00
8ede566c41 Merge pull request #2039 from hathach/add-cmake-build
Add cmake build
2023-04-24 16:43:40 +07:00
a4d5d51549 add wip note 2023-04-24 16:24:06 +07:00
5254202b20 minor update 2023-04-24 11:54:58 +07:00
0afe1b3684 example run well with cmake for imxrt 2023-04-21 18:10:28 +07:00
9bf97e3e52 [rp2040] Make writes to SIE_CTRL aware of concurrent access
This commit makes it so that when setting the START_TRANS bit in the
SIE_CTRL register, along with some other bits, we first set all the
other bits, then wait some cycles, and then set the START_TRANS bit.

Doing so protects against a situation where the USB controller is
reading the register at the same time and gets an incorrect value.

This mirrors the procedure already applied to buffer control
registers.
2023-04-20 20:23:31 +02:00
c0674142a8 Merge branch 'hathach:master' into master 2023-04-18 23:20:25 +08:00
9002dc7067 Use __GNUC__ macro to determine if __has_attribute is supported 2023-04-18 17:27:42 +08:00
c3a60ed355 Merge pull request #1920 from mikee47/fix/midi-definition
MIDI_CIN_NOTE_ON definition transposed with MIDI_CIN_NOTE_OFF
2023-04-18 10:43:52 +07:00
fa8f3731c1 Implement TU_BSWAP{16,32} correctly for Microchip XC16 2023-04-17 21:02:12 +08:00
d97b6d57de Fix compatibility with the latest Microchip XC16 compiler 2023-04-17 20:20:22 +08:00
2cda9b60c9 Handle iMX RT 1042 usb naming 2023-04-06 15:45:23 -07:00
6db24e0dba implement tuh_hid_receive_ready() and tuh_hid_send_ready() 2023-04-06 11:16:28 +07:00
106084289d add define for vendor_flush() to write_flush() for backward compatible 2023-04-06 11:15:57 +07:00
f7aa716a61 Merge pull request #2000 from jncronin/stm32l5
Add STM32L5 support - no OTG similar to some L4s
2023-04-04 16:30:47 +07:00
718bcdb8bc Add STM32L5 support - no OTG similar to some L4s 2023-04-03 13:56:16 +01:00
1372d4e4d5 Remove trailing whitespace 2023-03-31 12:58:51 -05:00
1fb2a2f1bd Update vendor_device.c 2023-03-28 14:01:33 -05:00
876f49f6ad Update vendor_device.c 2023-03-28 14:00:23 -05:00
faaed198b4 Update vendor_device.h 2023-03-28 13:59:59 -05:00
5add4c97fa Merge pull request #1979 from hathach/fix-cdc-host-unsupported-line-request
fix cdc host enumeration issue when device does not support line request
2023-03-24 17:58:34 +07:00
df5f60b6d6 fix shadow warning 2023-03-24 17:36:29 +07:00
b054229780 fix cdc host enumeration issue when device does not support line request 2023-03-24 17:26:30 +07:00
59cbfbbdbe Merge pull request #1971 from MattMills/class_net_net_device_mac_address_shouldnt_be_consts
Update net_device.h to make MAC addresses not const.
2023-03-24 16:48:33 +07:00
f640163ee9 Merge pull request #1969 from hathach/fix-tmc488-bit-order-1658
Fix tmc488 bit order 1658
2023-03-24 14:41:57 +07:00
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
4274cab395 Update net_device.h 2023-03-22 07:18:27 -06:00
096da11e88 more update 2023-03-22 17:01:04 +07:00