Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jun 2013 20:19:52 +0000 (UTC)
From:      Thomas Quinot <thomas@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r252123 - head/sys/dev/usb/serial
Message-ID:  <201306232019.r5NKJqOr064979@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: thomas
Date: Sun Jun 23 20:19:51 2013
New Revision: 252123
URL: http://svnweb.freebsd.org/changeset/base/252123

Log:
  Fix minor typo in comment

Modified:
  head/sys/dev/usb/serial/uark.c
  head/sys/dev/usb/serial/umcs.h

Modified: head/sys/dev/usb/serial/uark.c
==============================================================================
--- head/sys/dev/usb/serial/uark.c	Sun Jun 23 20:19:05 2013	(r252122)
+++ head/sys/dev/usb/serial/uark.c	Sun Jun 23 20:19:51 2013	(r252123)
@@ -92,6 +92,7 @@ struct uark_softc {
 
 	uint8_t	sc_msr;
 	uint8_t	sc_lsr;
+	uint8_t	sc_irda;	/* Set to 1 for IrDA */
 };
 
 /* prototypes */
@@ -173,8 +174,12 @@ MODULE_DEPEND(uark, ucom, 1, 1, 1);
 MODULE_DEPEND(uark, usb, 1, 1, 1);
 MODULE_VERSION(uark, 1);
 
+#define UARK_TYPE_SERIAL 0
+#define UARK_TYPE_IRDA 1
+
 static const STRUCT_USB_HOST_ID uark_devs[] = {
-	{USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, 0)},
+	{USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, UARK_TYPE_SERIAL)},
+	{USB_VPI(USB_VENDOR_ARKMICRO2, USB_PRODUCT_ARKMICRO2_ARK3118, UARK_TYPE_IRDA)},
 };
 
 static int
@@ -207,6 +212,7 @@ uark_attach(device_t dev)
 	ucom_ref(&sc->sc_super_ucom);
 
 	sc->sc_udev = uaa->device;
+	sc->sc_irda = (USB_GET_DRIVER_INFO (uaa) == UARK_TYPE_IRDA);
 
 	iface_index = UARK_IFACE_INDEX;
 	error = usbd_transfer_setup
@@ -378,6 +384,15 @@ uark_cfg_param(struct ucom_softc *ucom, 
 	uint32_t speed = t->c_ospeed;
 	uint16_t data;
 
+	if (!(sc->sc_irda)) {
+		uark_cfg_write(sc, 0xb, 0);
+	} else {
+		uark_cfg_write(sc, 0xb, 1);
+		uark_cfg_write(sc, 0xc, 0);
+		uark_cfg_write(sc, 0xd, 0x41);
+		uark_cfg_write(sc, 0xa, 1);
+	}
+
 	/*
 	 * NOTE: When reverse computing the baud rate from the "data" all
 	 * allowed baud rates are within 3% of the initial baud rate.
@@ -419,6 +434,10 @@ uark_cfg_param(struct ucom_softc *ucom, 
 	}
 	uark_cfg_write(sc, 3, 0x00);
 	uark_cfg_write(sc, 3, data);
+
+	uark_cfg_write(sc, 0xe, 0);
+	if (sc->sc_irda)
+		uark_cfg_write (sc, 9, 0);
 }
 
 static void

Modified: head/sys/dev/usb/serial/umcs.h
==============================================================================
--- head/sys/dev/usb/serial/umcs.h	Sun Jun 23 20:19:05 2013	(r252122)
+++ head/sys/dev/usb/serial/umcs.h	Sun Jun 23 20:19:51 2013	(r252123)
@@ -596,7 +596,7 @@
 #define	MCS7840_UART_LSR_RHROVERRUN	0x02	/* Data FIFO/register overflow */
 #define	MCS7840_UART_LSR_PARITYERR	0x04	/* Parity error */
 #define	MCS7840_UART_LSR_FRAMEERR	0x10	/* Framing error */
-#define	MCS7840_UART_LSR_BREAKERR	0x20	/* BREAK sigmal received */
+#define	MCS7840_UART_LSR_BREAKERR	0x20	/* BREAK signal received */
 #define	MCS7840_UART_LSR_THREMPTY	0x40	/* THR register is empty,
 						 * ready for transmit */
 #define	MCS7840_UART_LSR_HASERR		0x80	/* Has error in receiver FIFO */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306232019.r5NKJqOr064979>