Merge branch 'master' into cdc_ch34x_support
# Conflicts: # src/class/cdc/cdc_host.c
This commit is contained in:
		| @@ -104,9 +104,9 @@ static bool acm_set_baudrate(cdch_interface_t* p_cdc, uint32_t baudrate, tuh_xfe | ||||
| #if CFG_TUH_CDC_FTDI | ||||
| #include "serial/ftdi_sio.h" | ||||
|  | ||||
| static uint16_t const ftdi_pids[] = { CFG_TUH_CDC_FTDI_PID_LIST }; | ||||
| static uint16_t const ftdi_vid_pid_list[][2] = {CFG_TUH_CDC_FTDI_VID_PID_LIST }; | ||||
| enum { | ||||
|   FTDI_PID_COUNT = TU_ARRAY_SIZE(ftdi_pids) | ||||
|   FTDI_PID_COUNT = TU_ARRAY_SIZE(ftdi_vid_pid_list) | ||||
| }; | ||||
|  | ||||
| // Store last request baudrate since divisor to baudrate is not easy | ||||
| @@ -122,9 +122,9 @@ static bool ftdi_sio_set_baudrate(cdch_interface_t* p_cdc, uint32_t baudrate, tu | ||||
| #if CFG_TUH_CDC_CP210X | ||||
| #include "serial/cp210x.h" | ||||
|  | ||||
| static uint16_t const cp210x_pids[] = { CFG_TUH_CDC_CP210X_PID_LIST }; | ||||
| static uint16_t const cp210x_vid_pid_list[][2] = {CFG_TUH_CDC_CP210X_VID_PID_LIST }; | ||||
| enum { | ||||
|   CP210X_PID_COUNT = TU_ARRAY_SIZE(cp210x_pids) | ||||
|   CP210X_PID_COUNT = TU_ARRAY_SIZE(cp210x_vid_pid_list) | ||||
| }; | ||||
|  | ||||
| static bool cp210x_open(uint8_t daddr, tusb_desc_interface_t const *itf_desc, uint16_t max_len); | ||||
| @@ -645,21 +645,17 @@ bool cdch_open(uint8_t rhport, uint8_t daddr, tusb_desc_interface_t const *itf_d | ||||
|     TU_VERIFY(tuh_vid_pid_get(daddr, &vid, &pid)); | ||||
|  | ||||
|     #if CFG_TUH_CDC_FTDI | ||||
|     if (TU_FTDI_VID == vid) { | ||||
|       for (size_t i = 0; i < FTDI_PID_COUNT; i++) { | ||||
|         if (ftdi_pids[i] == pid) { | ||||
|           return ftdi_open(daddr, itf_desc, max_len); | ||||
|         } | ||||
|     for (size_t i = 0; i < FTDI_PID_COUNT; i++) { | ||||
|       if (ftdi_vid_pid_list[i][0] == vid && ftdi_vid_pid_list[i][1] == pid) { | ||||
|         return ftdi_open(daddr, itf_desc, max_len); | ||||
|       } | ||||
|     } | ||||
|     #endif | ||||
|  | ||||
|     #if CFG_TUH_CDC_CP210X | ||||
|     if (TU_CP210X_VID == vid) { | ||||
|       for (size_t i = 0; i < CP210X_PID_COUNT; i++) { | ||||
|         if (cp210x_pids[i] == pid) { | ||||
|           return cp210x_open(daddr, itf_desc, max_len); | ||||
|         } | ||||
|     for (size_t i = 0; i < CP210X_PID_COUNT; i++) { | ||||
|       if (cp210x_vid_pid_list[i][0] == vid && cp210x_vid_pid_list[i][1] == pid) { | ||||
|         return cp210x_open(daddr, itf_desc, max_len); | ||||
|       } | ||||
|     } | ||||
|     #endif | ||||
|   | ||||
| @@ -453,10 +453,12 @@ | ||||
|   #define CFG_TUH_CDC_FTDI 0 | ||||
| #endif | ||||
|  | ||||
| #ifndef CFG_TUH_CDC_FTDI_PID_LIST | ||||
|   // List of product IDs that can use the FTDI CDC driver | ||||
|   #define CFG_TUH_CDC_FTDI_PID_LIST \ | ||||
|     0x6001, 0x6006, 0x6010, 0x6011, 0x6014, 0x6015, 0x8372, 0xFBFA, 0xCD18 | ||||
| #ifndef CFG_TUH_CDC_FTDI_VID_PID_LIST | ||||
|   // List of product IDs that can use the FTDI CDC driver. 0x0403 is FTDI's VID | ||||
|   #define CFG_TUH_CDC_FTDI_VID_PID_LIST \ | ||||
|     {0x0403, 0x6001}, {0x0403, 0x6006}, {0x0403, 0x6010}, {0x0403, 0x6011}, \ | ||||
|     {0x0403, 0x6014}, {0x0403, 0x6015}, {0x0403, 0x8372}, {0x0403, 0xFBFA}, \ | ||||
|     {0x0403, 0xCD18} | ||||
| #endif | ||||
|  | ||||
| #ifndef CFG_TUH_CDC_CP210X | ||||
| @@ -464,10 +466,10 @@ | ||||
|   #define CFG_TUH_CDC_CP210X 0 | ||||
| #endif | ||||
|  | ||||
| #ifndef CFG_TUH_CDC_CP210X_PID_LIST | ||||
|   // List of product IDs that can use the CP210X CDC driver | ||||
|   #define CFG_TUH_CDC_CP210X_PID_LIST \ | ||||
|     0xEA60, 0xEA70 | ||||
| #ifndef CFG_TUH_CDC_CP210X_VID_PID_LIST | ||||
|   // List of product IDs that can use the CP210X CDC driver. 0x10C4 is Silicon Labs' VID | ||||
|   #define CFG_TUH_CDC_CP210X_VID_PID_LIST \ | ||||
|     {0x10C4, 0xEA60}, {0x10C4, 0xEA70} | ||||
| #endif | ||||
|  | ||||
| #ifndef CFG_TUH_CDC_CH34X | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach