Hello all,

        I've found that the Belkin_sa drivers in the 2.4.5 kernel do
seem to support the Belkin F5U120-PC (4 Port Hub, 2 PS/2, 1 LP, 1 Serial)
Serial port.  It only seems to require adding the appropriate entries
for the additional product code (050d:1203), tables, and initialization
to belkin_sa.[ch].

        This almost seemed TOO easy but I haven't run into a gotcha yet.
It's talking to a modem successfully and I'm about to try out an IrDA
dongle (an old Belkin serial IrDA module, no less).

        All the other functions on this hub (LP and PS/2 as well as hub)
are already supported.

        The diff is small.  Attached below.

        Mike
-- 
 Michael H. Warfield    |  (770) 985-6132   |  [EMAIL PROTECTED]
  (The Mad Wizard)      |  (678) 463-0932   |  http://www.wittsend.com/mhw/
  NIC whois:  MHW9      |  An optimist believes we live in the best of all
 PGP Key: 0xDF1DD471    |  possible worlds.  A pessimist is sure of it!

============================================================================
diff -urN linux-2.4.5/drivers/usb/serial/belkin_sa.c 
linux-2.4.5.new/drivers/usb/serial/belkin_sa.c
--- linux-2.4.5/drivers/usb/serial/belkin_sa.c  Mon May 21 18:02:06 2001
+++ linux-2.4.5.new/drivers/usb/serial/belkin_sa.c      Thu May 31 12:06:04 2001
@@ -24,6 +24,9 @@
  * -- Add support for flush commands
  * -- Add everything that is missing :)
  * 
+ * 31-May-2001 Michael H. Warfield
+ *     - Added support for Belkin F5U120-PC multifunction hub serial port.
+ *
  * 08-Apr-2001 gb
  *     - Identify version on module load.
  *
@@ -102,6 +105,7 @@
 
 static __devinitdata struct usb_device_id id_table_combined [] = {
        { USB_DEVICE(BELKIN_SA_VID, BELKIN_SA_PID) },
+       { USB_DEVICE(BELKIN_PC_VID, BELKIN_PC_PID) },
        { USB_DEVICE(BELKIN_OLD_VID, BELKIN_OLD_PID) },
        { USB_DEVICE(PERACOM_VID, PERACOM_PID) },
        { USB_DEVICE(GOHUBS_VID, GOHUBS_PID) },
@@ -113,6 +117,11 @@
        { }                                                     /* Terminating entry */
 };
 
+static __devinitdata struct usb_device_id belkin_pc_table [] = {
+       { USB_DEVICE(BELKIN_PC_VID, BELKIN_PC_PID) },
+       { }                                                     /* Terminating entry */
+};
+
 static __devinitdata struct usb_device_id belkin_old_table [] = {
        { USB_DEVICE(BELKIN_OLD_VID, BELKIN_OLD_PID) },
        { }                                                     /* Terminating entry */
@@ -152,6 +161,28 @@
 };
 
 
+/* All of the device info needed for the Belkin serial converter */
+struct usb_serial_device_type belkin_pc_device = {
+       name:                   "Belkin F5U120-PC USB Serial Adapter",
+       id_table:               belkin_pc_table,                /* the Belkin F5U120 
+serial port device */
+       needs_interrupt_in:     MUST_HAVE,                      /* this device must 
+have an interrupt in endpoint */
+       needs_bulk_in:          MUST_HAVE,                      /* this device must 
+have a bulk in endpoint */
+       needs_bulk_out:         MUST_HAVE,                      /* this device must 
+have a bulk out endpoint */
+       num_interrupt_in:       1,
+       num_bulk_in:            1,
+       num_bulk_out:           1,
+       num_ports:              1,
+       open:                   belkin_sa_open,
+       close:                  belkin_sa_close,
+       read_int_callback:      belkin_sa_read_int_callback,    /* How we get the 
+status info */
+       ioctl:                  belkin_sa_ioctl,
+       set_termios:            belkin_sa_set_termios,
+       break_ctl:              belkin_sa_break_ctl,
+       startup:                belkin_sa_startup,
+       shutdown:               belkin_sa_shutdown,
+};
+
+
 /* This driver also supports the "old" school Belkin single port adaptor */
 struct usb_serial_device_type belkin_old_device = {
        name:                   "Belkin USB Serial Adapter",
@@ -597,6 +628,7 @@
 static int __init belkin_sa_init (void)
 {
        usb_serial_register (&belkin_sa_device);
+       usb_serial_register (&belkin_pc_device);
        usb_serial_register (&belkin_old_device);
        usb_serial_register (&peracom_device);
        usb_serial_register (&gocom232_device);
@@ -609,6 +641,7 @@
 static void __exit belkin_sa_exit (void)
 {
        usb_serial_deregister (&belkin_sa_device);
+       usb_serial_deregister (&belkin_pc_device);
        usb_serial_deregister (&belkin_old_device);
        usb_serial_deregister (&peracom_device);
        usb_serial_deregister (&gocom232_device);
diff -urN linux-2.4.5/drivers/usb/serial/belkin_sa.h 
linux-2.4.5.new/drivers/usb/serial/belkin_sa.h
--- linux-2.4.5/drivers/usb/serial/belkin_sa.h  Fri Apr  6 18:51:52 2001
+++ linux-2.4.5.new/drivers/usb/serial/belkin_sa.h      Thu May 31 12:00:55 2001
@@ -14,6 +14,9 @@
  *     (at your option) any later version.
  *
  * See Documentation/usb/usb-serial.txt for more information on using this driver
+ * 
+ * 31-May-2001 Michael H. Warfield
+ *     - Added support for Belkin F5U120-PC multifunction hub serial port.
  *
  * 12-Mar-2001 gkh
  *     Added GoHubs GO-COM232 device id.
@@ -35,6 +38,10 @@
 
 #define BELKIN_SA_VID  0x050d  /* Vendor Id */
 #define BELKIN_SA_PID  0x0103  /* Product Id */
+
+/*     F5U120-PC       */
+#define BELKIN_PC_VID  0x050d  /* Vendor Id */
+#define BELKIN_PC_PID  0x1203  /* Product Id */
 
 #define BELKIN_OLD_VID 0x056c  /* Belkin's "old" vendor id */
 #define BELKIN_OLD_PID 0x8007  /* Belkin's "old" single port serial converter's id */

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to