Module Name:    src
Committed By:   mlelstv
Date:           Mon Jan 21 19:08:43 UTC 2013

Modified Files:
        src/sys/dev/usb: uftdi.c uftdireg.h

Log Message:
force chip into serial mode
add 232RL product id


To generate a diff of this commit:
cvs rdiff -u -r1.55 -r1.56 src/sys/dev/usb/uftdi.c
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/usb/uftdireg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/usb/uftdi.c
diff -u src/sys/dev/usb/uftdi.c:1.55 src/sys/dev/usb/uftdi.c:1.56
--- src/sys/dev/usb/uftdi.c:1.55	Sun Jan 20 13:43:24 2013
+++ src/sys/dev/usb/uftdi.c	Mon Jan 21 19:08:42 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: uftdi.c,v 1.55 2013/01/20 13:43:24 reinoud Exp $	*/
+/*	$NetBSD: uftdi.c,v 1.56 2013/01/21 19:08:42 mlelstv Exp $	*/
 
 /*
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uftdi.c,v 1.55 2013/01/20 13:43:24 reinoud Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uftdi.c,v 1.56 2013/01/21 19:08:42 mlelstv Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -126,6 +126,7 @@ static const struct usb_devno uftdi_devs
 	{ USB_VENDOR_FALCOM, USB_PRODUCT_FALCOM_TWIST },
 	{ USB_VENDOR_FALCOM, USB_PRODUCT_FALCOM_SAMBA },
 	{ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_232H },
+	{ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_232RL },
 	{ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232C },
 	{ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_4232H },
 	{ USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U100AX },
@@ -525,6 +526,15 @@ uftdi_param(void *vsc, int portno, struc
 	if (sc->sc_dying)
 		return (EIO);
 
+	req.bmRequestType = UT_WRITE_VENDOR_DEVICE;
+	req.bRequest = FTDI_SIO_SET_BITMODE;
+	USETW(req.wValue, FTDI_BITMODE_RESET << 8 | 0x00);
+	USETW(req.wIndex, portno);
+	USETW(req.wLength, 0);
+	err = usbd_do_request(sc->sc_udev, &req, NULL);
+	if (err)
+		return (EIO);
+
 	switch (sc->sc_type) {
 	case UFTDI_TYPE_SIO:
 		switch (t->c_ospeed) {

Index: src/sys/dev/usb/uftdireg.h
diff -u src/sys/dev/usb/uftdireg.h:1.7 src/sys/dev/usb/uftdireg.h:1.8
--- src/sys/dev/usb/uftdireg.h:1.7	Fri Aug 24 01:36:14 2012
+++ src/sys/dev/usb/uftdireg.h	Mon Jan 21 19:08:42 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: uftdireg.h,v 1.7 2012/08/24 01:36:14 msaitoh Exp $ */
+/*	$NetBSD: uftdireg.h,v 1.8 2013/01/21 19:08:42 mlelstv Exp $ */
 
 /*
  * Definitions for the FTDI USB Single Port Serial Converter -
@@ -17,14 +17,15 @@
 /* Modified by Lennart Augustsson */
 
 /* Vendor Request Interface */
-#define FTDI_SIO_RESET 		0 /* Reset the port */
-#define FTDI_SIO_MODEM_CTRL 	1 /* Set the modem control register */
-#define FTDI_SIO_SET_FLOW_CTRL	2 /* Set flow control register */
-#define FTDI_SIO_SET_BAUD_RATE	3 /* Set baud rate */
-#define FTDI_SIO_SET_DATA	4 /* Set the data characteristics of the port */
-#define FTDI_SIO_GET_STATUS	5 /* Retrieve current value of status reg */
-#define FTDI_SIO_SET_EVENT_CHAR	6 /* Set the event character */
-#define FTDI_SIO_SET_ERROR_CHAR	7 /* Set the error character */
+#define FTDI_SIO_RESET 		0   /* Reset the port */
+#define FTDI_SIO_MODEM_CTRL 	1   /* Set the modem control register */
+#define FTDI_SIO_SET_FLOW_CTRL	2   /* Set flow control register */
+#define FTDI_SIO_SET_BAUD_RATE	3   /* Set baud rate */
+#define FTDI_SIO_SET_DATA	4   /* Set the data characteristics of the port */
+#define FTDI_SIO_GET_STATUS	5   /* Retrieve current value of status reg */
+#define FTDI_SIO_SET_EVENT_CHAR	6   /* Set the event character */
+#define FTDI_SIO_SET_ERROR_CHAR	7   /* Set the error character */
+#define FTDI_SIO_SET_BITMODE    11  /* Set FIFO/Serial mode */
 
 /* Port Identifier Table */
 #define FTDI_PIT_DEFAULT 	0 /* SIOA */
@@ -345,3 +346,24 @@ enum {
 #define FTDI_GET_LSR(p) ((p)[1])
 #define FTDI_LSR_MASK (~0x60) /* interesting bits */
 #define FTDI_OUT_TAG(len, port) (((len) << 2) | (port))
+
+/*
+ * BmRequestType:  0100 0000B
+ * bRequest:       FTDI_SIO_SET_BITMODE
+ * wValue:         Bitmode value - see below
+ * wIndex:         Port
+ * wLength:        0
+ * Data:           None
+ *
+ * Not all modes are available on all chips
+ */
+/* FTDI_SIO_SET_BITMODE */
+#define FTDI_BITMODE_RESET   0x00 /* UART mode */
+#define FTDI_BITMODE_BITBANG 0x01 /* asynchrounous bitbang mode */
+#define FTDI_BITMODE_MPSSE   0x02 /* MPSSE mode */
+#define FTDI_BITMODE_SYNCBB  0x04 /* synchronous bitbang mode */
+#define FTDI_BITMODE_MCU     0x08 /* MCU Host Bus Emulation mode */
+#define FTDI_BITMODE_OPTO    0x10 /* Fast Opto-Isolated Serial Interface Mode */
+#define FTDI_BITMODE_CBUS    0x20 /* Bitbang on CBUS pins */
+#define FTDI_BITMODE_SYNCFF  0x40 /* Synchronous FIFO mode */
+

Reply via email to