Commit 647da406 authored by simon's avatar simon Committed by David S. Miller

usb: plusb: Add support for PL-25A1

This patch adds support for the PL-25A1 by adding the appropriate
USB ID's. This chip is used in the Belkin 'Windows Easy Transfer'
Cables.
Signed-off-by: default avatarSimon Wood <simon@mungewell.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6e4d2d9e
...@@ -258,7 +258,7 @@ config USB_NET_NET1080 ...@@ -258,7 +258,7 @@ config USB_NET_NET1080
optionally with LEDs that indicate traffic optionally with LEDs that indicate traffic
config USB_NET_PLUSB config USB_NET_PLUSB
tristate "Prolific PL-2301/2302 based cables" tristate "Prolific PL-2301/2302/25A1 based cables"
# if the handshake/init/reset problems, from original 'plusb', # if the handshake/init/reset problems, from original 'plusb',
# are ever resolved ... then remove "experimental" # are ever resolved ... then remove "experimental"
depends on USB_USBNET && EXPERIMENTAL depends on USB_USBNET && EXPERIMENTAL
......
...@@ -45,6 +45,14 @@ ...@@ -45,6 +45,14 @@
* seems to get wedged under load. Prolific docs are weak, and * seems to get wedged under load. Prolific docs are weak, and
* don't identify differences between PL2301 and PL2302, much less * don't identify differences between PL2301 and PL2302, much less
* anything to explain the different PL2302 versions observed. * anything to explain the different PL2302 versions observed.
*
* NOTE: pl2501 has several modes, including pl2301 and pl2302
* compatibility. Some docs suggest the difference between 2301
* and 2302 is only to make MS-Windows use a different driver...
*
* pl25a1 glue based on patch from Tony Gibbs. Prolific "docs" on
* this chip are as usual incomplete about what control messages
* are supported.
*/ */
/* /*
...@@ -95,7 +103,7 @@ static int pl_reset(struct usbnet *dev) ...@@ -95,7 +103,7 @@ static int pl_reset(struct usbnet *dev)
} }
static const struct driver_info prolific_info = { static const struct driver_info prolific_info = {
.description = "Prolific PL-2301/PL-2302", .description = "Prolific PL-2301/PL-2302/PL-25A1",
.flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT, .flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT,
/* some PL-2302 versions seem to fail usb_set_interface() */ /* some PL-2302 versions seem to fail usb_set_interface() */
.reset = pl_reset, .reset = pl_reset,
...@@ -111,6 +119,7 @@ static const struct driver_info prolific_info = { ...@@ -111,6 +119,7 @@ static const struct driver_info prolific_info = {
static const struct usb_device_id products [] = { static const struct usb_device_id products [] = {
/* full speed cables */
{ {
USB_DEVICE(0x067b, 0x0000), // PL-2301 USB_DEVICE(0x067b, 0x0000), // PL-2301
.driver_info = (unsigned long) &prolific_info, .driver_info = (unsigned long) &prolific_info,
...@@ -119,6 +128,15 @@ static const struct usb_device_id products [] = { ...@@ -119,6 +128,15 @@ static const struct usb_device_id products [] = {
.driver_info = (unsigned long) &prolific_info, .driver_info = (unsigned long) &prolific_info,
}, },
/* high speed cables */
{
USB_DEVICE(0x067b, 0x25a1), /* PL-25A1, no eeprom */
.driver_info = (unsigned long) &prolific_info,
}, {
USB_DEVICE(0x050d, 0x258a), /* Belkin F5U258/F5U279 (PL-25A1) */
.driver_info = (unsigned long) &prolific_info,
},
{ }, // END { }, // END
}; };
MODULE_DEVICE_TABLE(usb, products); MODULE_DEVICE_TABLE(usb, products);
...@@ -145,5 +163,5 @@ static void __exit plusb_exit(void) ...@@ -145,5 +163,5 @@ static void __exit plusb_exit(void)
module_exit(plusb_exit); module_exit(plusb_exit);
MODULE_AUTHOR("David Brownell"); MODULE_AUTHOR("David Brownell");
MODULE_DESCRIPTION("Prolific PL-2301/2302 USB Host to Host Link Driver"); MODULE_DESCRIPTION("Prolific PL-2301/2302/25A1 USB Host to Host Link Driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment