⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftdi_sio.c

📁 NP-Convert,usb4口转换器的驱动开发示例.面向Linux.
💻 C
📖 第 1 页 / 共 5 页
字号:
	{ USB_DEVICE_VER(FTDI_VID, INSIDE_ACCESSO, 0, 0x3ff) },	{ USB_DEVICE_VER(INTREPID_VID, INTREPID_VALUECAN_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(INTREPID_VID, INTREPID_NEOVI_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(FALCOM_VID, FALCOM_TWIST_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_SUUNTO_SPORTS_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_RM_CANVIEW_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(BANDB_VID, BANDB_USOTL4_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(BANDB_VID, BANDB_USTL4_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(BANDB_VID, BANDB_USO9ML2_PID, 0, 0x3ff) },	{ USB_DEVICE_VER(FTDI_VID, EVER_ECO_PRO_CDS, 0, 0x3ff) },	{ }						/* Terminating entry */};static struct usb_device_id id_table_FT232BM [] = {	{ USB_DEVICE_VER(FTDI_VID, FTDI_IRTRANS_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_8U232AM_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_8U232AM_ALT_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_RELAIS_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_NF_RIC_VID, FTDI_NF_RIC_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_632_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_634_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_547_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_633_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_631_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_635_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_640_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_XF_642_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_VNHCPCUSB_D_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_DSS20_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_0_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_5_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_6_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_PIEGROUP_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2101_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2102_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2103_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2104_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2201_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2201_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2202_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2202_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2203_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2203_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2401_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2401_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2401_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2401_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2402_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2402_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2402_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2402_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2403_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2403_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2403_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2403_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_5_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_6_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_7_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2801_8_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_5_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_6_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_7_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2802_8_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_5_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_6_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_7_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2803_8_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(IDTECH_VID, IDTECH_IDT1221U_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(OCT_VID, OCT_US101_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, PROTEGO_SPECIAL_1, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, PROTEGO_R2X0, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, PROTEGO_SPECIAL_3, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, PROTEGO_SPECIAL_4, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E808_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E809_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80A_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80B_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80C_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80D_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80E_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80F_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E888_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E889_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88A_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88B_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88C_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88D_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88E_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88F_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_ELV_UO100_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_ELV_UM100_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_SDMUSBQSS_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_MASTERDEVEL2_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_FUTURE_0_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_FUTURE_1_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_FUTURE_2_PID, 0x400, 0xffff) },	{ USB_DEVICE(FTDI_VID, FTDI_CCSICDU20_0_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_CCSICDU40_1_PID) },	{ USB_DEVICE_VER(FTDI_VID, INSIDE_ACCESSO, 0x400, 0xffff) },	{ USB_DEVICE_VER(INTREPID_VID, INTREPID_VALUECAN_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(INTREPID_VID, INTREPID_NEOVI_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FALCOM_VID, FALCOM_TWIST_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_SUUNTO_SPORTS_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_RM_CANVIEW_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(BANDB_VID, BANDB_USOTL4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(BANDB_VID, BANDB_USTL4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(BANDB_VID, BANDB_USO9ML2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, EVER_ECO_PRO_CDS, 0x400, 0xffff) },	{ }						/* Terminating entry */};static struct usb_device_id id_table_FT2232C[] = {	{ USB_DEVICE_VER(FTDI_VID, FTDI_8U2232C_PID, 0x500, 0xffff) },	{ }						/* Terminating entry */};static struct usb_device_id id_table_FT232R[] = {	{ USB_DEVICE_VER(FTDI_VID, FTDI_8U232AM_PID, 0x600, 0xffff) },	{ }						/* Terminating entry */};static struct usb_device_id id_table_USB_UIRT [] = {	{ USB_DEVICE(FTDI_VID, FTDI_USB_UIRT_PID) },	{ }						/* Terminating entry */};static struct usb_device_id id_table_HE_TIRA1 [] = {	{ USB_DEVICE_VER(FTDI_VID, FTDI_HE_TIRA1_PID, 0x400, 0xffff) },	{ }						/* Terminating entry */};static struct usb_device_id id_table_userdev [] = {	{ USB_DEVICE(-1, -1) },	{ }						/* Terminating entry */};static __devinitdata struct usb_device_id id_table_combined [] = {	{ USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_SIO_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },	{ USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) },	{ USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_632_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_634_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_547_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_633_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_631_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_635_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_640_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_XF_642_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_DSS20_PID) },	{ USB_DEVICE(FTDI_NF_RIC_VID, FTDI_NF_RIC_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_VNHCPCUSB_D_PID) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_0_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_1_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_2_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_3_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_4_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_5_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_6_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID, 0x400, 0xffff) },	{ USB_DEVICE(FTDI_VID, FTDI_PIEGROUP_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2101_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2102_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2103_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2104_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2201_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2201_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2202_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2202_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2203_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2203_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2401_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2401_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2401_3_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2401_4_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2402_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2402_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2402_3_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2402_4_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2403_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2403_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2403_3_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2403_4_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_3_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_4_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_5_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_6_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_7_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2801_8_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_3_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_4_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_5_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_6_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_7_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2802_8_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_1_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_2_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_3_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_4_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_5_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_6_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_7_PID) },	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_8_PID) },	{ USB_DEVICE(IDTECH_VID, IDTECH_IDT1221U_PID) },	{ USB_DEVICE(OCT_VID, OCT_US101_PID) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_HE_TIRA1_PID, 0x400, 0xffff) },	{ USB_DEVICE(FTDI_VID, FTDI_USB_UIRT_PID) },	{ USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_1) },	{ USB_DEVICE(FTDI_VID, PROTEGO_R2X0) },	{ USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_3) },	{ USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_4) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E808_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E809_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80A_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80B_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80C_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80D_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80E_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E80F_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E888_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E889_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88A_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88B_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88C_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88D_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88E_PID, 0x400, 0xffff) },	{ USB_DEVICE_VER(FTDI_VID, FTDI_GUDEADS_E88F_PID, 0x400, 0xffff) },	{ USB_DEVICE(FTDI_VID, FTDI_ELV_UO100_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_ELV_UM100_PID) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_SDMUSBQSS_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_MASTERDEVEL2_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_FUTURE_0_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_FUTURE_1_PID, 0x400, 0xffff) }, 	{ USB_DEVICE_VER(FTDI_VID, LINX_FUTURE_2_PID, 0x400, 0xffff) },	{ USB_DEVICE(FTDI_VID, FTDI_CCSICDU20_0_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_CCSICDU40_1_PID) },	{ USB_DEVICE(FTDI_VID, INSIDE_ACCESSO) },	{ USB_DEVICE(INTREPID_VID, INTREPID_VALUECAN_PID) },	{ USB_DEVICE(INTREPID_VID, INTREPID_NEOVI_PID) },	{ USB_DEVICE(FALCOM_VID, FALCOM_TWIST_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_SUUNTO_SPORTS_PID) },	{ USB_DEVICE(FTDI_VID, FTDI_RM_CANVIEW_PID) },	{ USB_DEVICE(BANDB_VID, BANDB_USOTL4_PID) },	{ USB_DEVICE(BANDB_VID, BANDB_USTL4_PID) },	{ USB_DEVICE(BANDB_VID, BANDB_USO9ML2_PID) },	{ USB_DEVICE(FTDI_VID, EVER_ECO_PRO_CDS) },	{ }						/* Terminating entry */};MODULE_DEVICE_TABLE (usb, id_table_combined);/* constants which set the number of write urb buffers */#define NUM_URBS			32/* Don't be tempted to increase this buffer to > 64 ! I tried it and it doesn't work */#define URB_TRANSFER_BUFFER_SIZE	64 /* the device's max packet size *//* Constant for read urb */#define BUFSZ 512#define PKTSZ 64static int vendor =-1, product = -1, baud_base = 48000000/2;     /* User specified VID and Product ID and baud base.  */ struct ftdi_private {	ftdi_chip_type_t chip_type;				/* type of the device, either SIO or FT8U232AM */	int baud_base;		/* baud base clock for divisor setting */	int custom_divisor;	/* custom_divisor kludge, this is for baud_base (different from what goes to the chip!) */	__u16 last_set_data_urb_value ;				/* the last data state set - needed for doing a break */        int write_offset;       /* This is the offset in the usb data block to write the serial data - 				 * it is different between devices				 */	int flags;		/* some ASYNC_xxxx flags are supported */	unsigned long last_dtr_rts;	/* saved modem control outputs */        wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */ 	char prev_status, diff_status;        /* Used for TIOCMIWAIT */	__u16 interface;		/* FT2232C */	struct urb	*write_urb_pool[NUM_URBS];	spinlock_t	write_urb_pool_lock;	int force_baud;		/* if non-zero, force the baud rate to this value */	int force_rtscts;	/* if non-zero, force RTS-CTS to always be enabled */};/* Used for TIOCMIWAIT */#define FTDI_STATUS_B0_MASK	(FTDI_RS0_CTS | FTDI_RS0_DSR | FTDI_RS0_RI | FTDI_RS0_RLSD)#define FTDI_STATUS_B1_MASK	(FTDI_RS_BI)/* End TIOCMIWAIT */#define FTDI_IMPL_ASYNC_FLAGS = ( ASYNC_SPD_HI | ASYNC_SPD_VHI \ ASYNC_SPD_CUST | ASYNC_SPD_SHI | ASYNC_SPD_WARP )/* function prototypes for a FTDI serial converter */static int  ftdi_SIO_startup		(struct usb_serial *serial);static int  ftdi_8U232AM_startup	(struct usb_serial *serial);static int  ftdi_FT232BM_startup	(struct usb_serial *serial);static int  ftdi_FT2232C_startup	(struct usb_serial *serial);static int  ftdi_FT232R_startup		(struct usb_serial *serial);static int  ftdi_USB_UIRT_startup	(struct usb_serial *serial);static int  ftdi_HE_TIRA1_startup	(struct usb_serial *serial);static int  ftdi_userdev_startup	(struct usb_serial *serial);static void ftdi_shutdown		(struct usb_serial *serial);static int  ftdi_open			(struct usb_serial_port *port, struct file *filp);static void ftdi_close			(struct usb_serial_port *port, struct file *filp);static int  ftdi_write			(struct usb_serial_port *port, int from_user, const unsigned char *buf, int count);static int  ftdi_write_room		(struct usb_serial_port *port);static int  ftdi_chars_in_buffer	(struct usb_serial_port *port);static void ftdi_write_bulk_callback	(struct urb *urb);static void ftdi_read_bulk_callback	(struct urb *urb);static void ftdi_set_termios		(struct usb_serial_port *port, struct termios * old);static int  ftdi_ioctl			(struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg);static void ftdi_break_ctl		(struct usb_serial_port *port, int break_state );static void ftdi_throttle		(struct usb_serial_port *port);static void ftdi_unthrottle		(struct usb_serial_port *port);static unsigned short int ftdi_232am_baud_base_to_divisor (int baud, int base);static unsigned short int ftdi_232am_baud_to_divisor (int baud);static __u32 ftdi_232bm_baud_base_to_divisor (int baud, int base);static __u32 ftdi_232bm_baud_to_divisor (int baud);static struct usb_serial_device_type ftdi_SIO_device = {	.owner =		THIS_MODULE,	.name =			"FTDI SIO",	.id_table =		id_table_sio,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -