mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-01 03:11:59 +00:00
ti_usb_3410_5052: add Multi-Tech modem support
Add Multi-Tech cellular modem support to the ti_usb_3410_5052 driver. Signed-off-by: Chris Adams <cmadams@hiwaay.net> Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
05a3d9050a
commit
cb7a7c6a2c
2 changed files with 39 additions and 5 deletions
|
@ -176,9 +176,14 @@ static unsigned int product_5052_count;
|
||||||
/* the array dimension is the number of default entries plus */
|
/* the array dimension is the number of default entries plus */
|
||||||
/* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */
|
/* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */
|
||||||
/* null entry */
|
/* null entry */
|
||||||
static struct usb_device_id ti_id_table_3410[2+TI_EXTRA_VID_PID_COUNT+1] = {
|
static struct usb_device_id ti_id_table_3410[7+TI_EXTRA_VID_PID_COUNT+1] = {
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_NO_FW_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) },
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct usb_device_id ti_id_table_5052[4+TI_EXTRA_VID_PID_COUNT+1] = {
|
static struct usb_device_id ti_id_table_5052[4+TI_EXTRA_VID_PID_COUNT+1] = {
|
||||||
|
@ -191,6 +196,11 @@ static struct usb_device_id ti_id_table_5052[4+TI_EXTRA_VID_PID_COUNT+1] = {
|
||||||
static struct usb_device_id ti_id_table_combined[6+2*TI_EXTRA_VID_PID_COUNT+1] = {
|
static struct usb_device_id ti_id_table_combined[6+2*TI_EXTRA_VID_PID_COUNT+1] = {
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_NO_FW_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) },
|
||||||
|
{ USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) },
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) },
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) },
|
||||||
{ USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) },
|
{ USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) },
|
||||||
|
@ -1689,10 +1699,26 @@ static int ti_download_firmware(struct ti_device *tdev)
|
||||||
sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor,
|
sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor,
|
||||||
dev->descriptor.idProduct);
|
dev->descriptor.idProduct);
|
||||||
if ((status = request_firmware(&fw_p, buf, &dev->dev)) != 0) {
|
if ((status = request_firmware(&fw_p, buf, &dev->dev)) != 0) {
|
||||||
|
buf[0] = '\0';
|
||||||
|
if (dev->descriptor.idVendor == MTS_VENDOR_ID) {
|
||||||
|
switch (dev->descriptor.idProduct) {
|
||||||
|
case MTS_CDMA_PRODUCT_ID:
|
||||||
|
strcpy(buf, "mts_cdma.fw");
|
||||||
|
break;
|
||||||
|
case MTS_GSM_PRODUCT_ID:
|
||||||
|
strcpy(buf, "mts_gsm.fw");
|
||||||
|
break;
|
||||||
|
case MTS_EDGE_PRODUCT_ID:
|
||||||
|
strcpy(buf, "mts_edge.fw");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (buf[0] == '\0') {
|
||||||
if (tdev->td_is_3410)
|
if (tdev->td_is_3410)
|
||||||
strcpy(buf, "ti_3410.fw");
|
strcpy(buf, "ti_3410.fw");
|
||||||
else
|
else
|
||||||
strcpy(buf, "ti_5052.fw");
|
strcpy(buf, "ti_5052.fw");
|
||||||
|
}
|
||||||
status = request_firmware(&fw_p, buf, &dev->dev);
|
status = request_firmware(&fw_p, buf, &dev->dev);
|
||||||
}
|
}
|
||||||
if (status) {
|
if (status) {
|
||||||
|
|
|
@ -34,6 +34,14 @@
|
||||||
#define TI_5052_EEPROM_PRODUCT_ID 0x505A /* EEPROM, no firmware */
|
#define TI_5052_EEPROM_PRODUCT_ID 0x505A /* EEPROM, no firmware */
|
||||||
#define TI_5052_FIRMWARE_PRODUCT_ID 0x505F /* firmware is running */
|
#define TI_5052_FIRMWARE_PRODUCT_ID 0x505F /* firmware is running */
|
||||||
|
|
||||||
|
/* Multi-Tech vendor and product ids */
|
||||||
|
#define MTS_VENDOR_ID 0x06E0
|
||||||
|
#define MTS_GSM_NO_FW_PRODUCT_ID 0xF108
|
||||||
|
#define MTS_CDMA_NO_FW_PRODUCT_ID 0xF109
|
||||||
|
#define MTS_CDMA_PRODUCT_ID 0xF110
|
||||||
|
#define MTS_GSM_PRODUCT_ID 0xF111
|
||||||
|
#define MTS_EDGE_PRODUCT_ID 0xF112
|
||||||
|
|
||||||
/* Commands */
|
/* Commands */
|
||||||
#define TI_GET_VERSION 0x01
|
#define TI_GET_VERSION 0x01
|
||||||
#define TI_GET_PORT_STATUS 0x02
|
#define TI_GET_PORT_STATUS 0x02
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue