FreeBSD kernel usb device Code
umoscom.c File Reference
#include <sys/stdint.h>
#include <sys/stddef.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/module.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/sysctl.h>
#include <sys/sx.h>
#include <sys/unistd.h>
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include "usbdevs.h"
#include <dev/usb/usb_debug.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/serial/usb_serial.h>
Include dependency graph for umoscom.c:

Go to the source code of this file.

Data Structures

struct  umoscom_softc
 

Macros

#define USB_DEBUG_VAR   umoscom_debug
 
#define UMOSCOM_BUFSIZE   1024 /* bytes */
 
#define UMOSCOM_CONFIG_INDEX   0
 
#define UMOSCOM_IFACE_INDEX   0
 
#define UMOSCOM_IIR_RLS   0x06
 
#define UMOSCOM_IIR_RDA   0x04
 
#define UMOSCOM_IIR_CTI   0x0c
 
#define UMOSCOM_IIR_THR   0x02
 
#define UMOSCOM_IIR_MS   0x00
 
#define UMOSCOM_READ   0x0d
 
#define UMOSCOM_WRITE   0x0e
 
#define UMOSCOM_UART_REG   0x0300
 
#define UMOSCOM_VEND_REG   0x0000
 
#define UMOSCOM_TXBUF   0x00 /* Write */
 
#define UMOSCOM_RXBUF   0x00 /* Read */
 
#define UMOSCOM_INT   0x01
 
#define UMOSCOM_FIFO   0x02 /* Write */
 
#define UMOSCOM_ISR   0x02 /* Read */
 
#define UMOSCOM_LCR   0x03
 
#define UMOSCOM_MCR   0x04
 
#define UMOSCOM_LSR   0x05
 
#define UMOSCOM_MSR   0x06
 
#define UMOSCOM_SCRATCH   0x07
 
#define UMOSCOM_DIV_LO   0x08
 
#define UMOSCOM_DIV_HI   0x09
 
#define UMOSCOM_EFR   0x0a
 
#define UMOSCOM_XON1   0x0b
 
#define UMOSCOM_XON2   0x0c
 
#define UMOSCOM_XOFF1   0x0d
 
#define UMOSCOM_XOFF2   0x0e
 
#define UMOSCOM_BAUDLO   0x00
 
#define UMOSCOM_BAUDHI   0x01
 
#define UMOSCOM_INT_RXEN   0x01
 
#define UMOSCOM_INT_TXEN   0x02
 
#define UMOSCOM_INT_RSEN   0x04
 
#define UMOSCOM_INT_MDMEM   0x08
 
#define UMOSCOM_INT_SLEEP   0x10
 
#define UMOSCOM_INT_XOFF   0x20
 
#define UMOSCOM_INT_RTS   0x40
 
#define UMOSCOM_FIFO_EN   0x01
 
#define UMOSCOM_FIFO_RXCLR   0x02
 
#define UMOSCOM_FIFO_TXCLR   0x04
 
#define UMOSCOM_FIFO_DMA_BLK   0x08
 
#define UMOSCOM_FIFO_TXLVL_MASK   0x30
 
#define UMOSCOM_FIFO_TXLVL_8   0x00
 
#define UMOSCOM_FIFO_TXLVL_16   0x10
 
#define UMOSCOM_FIFO_TXLVL_32   0x20
 
#define UMOSCOM_FIFO_TXLVL_56   0x30
 
#define UMOSCOM_FIFO_RXLVL_MASK   0xc0
 
#define UMOSCOM_FIFO_RXLVL_8   0x00
 
#define UMOSCOM_FIFO_RXLVL_16   0x40
 
#define UMOSCOM_FIFO_RXLVL_56   0x80
 
#define UMOSCOM_FIFO_RXLVL_80   0xc0
 
#define UMOSCOM_ISR_MDM   0x00
 
#define UMOSCOM_ISR_NONE   0x01
 
#define UMOSCOM_ISR_TX   0x02
 
#define UMOSCOM_ISR_RX   0x04
 
#define UMOSCOM_ISR_LINE   0x06
 
#define UMOSCOM_ISR_RXTIMEOUT   0x0c
 
#define UMOSCOM_ISR_RX_XOFF   0x10
 
#define UMOSCOM_ISR_RTSCTS   0x20
 
#define UMOSCOM_ISR_FIFOEN   0xc0
 
#define UMOSCOM_LCR_DBITS(x)   ((x) - 5)
 
#define UMOSCOM_LCR_STOP_BITS_1   0x00
 
#define UMOSCOM_LCR_STOP_BITS_2   0x04 /* 2 if 6-8 bits/char or 1.5 if 5 */
 
#define UMOSCOM_LCR_PARITY_NONE   0x00
 
#define UMOSCOM_LCR_PARITY_ODD   0x08
 
#define UMOSCOM_LCR_PARITY_EVEN   0x18
 
#define UMOSCOM_LCR_BREAK   0x40
 
#define UMOSCOM_LCR_DIVLATCH_EN   0x80
 
#define UMOSCOM_MCR_DTR   0x01
 
#define UMOSCOM_MCR_RTS   0x02
 
#define UMOSCOM_MCR_LOOP   0x04
 
#define UMOSCOM_MCR_INTEN   0x08
 
#define UMOSCOM_MCR_LOOPBACK   0x10
 
#define UMOSCOM_MCR_XONANY   0x20
 
#define UMOSCOM_MCR_IRDA_EN   0x40
 
#define UMOSCOM_MCR_BAUD_DIV4   0x80
 
#define UMOSCOM_LSR_RXDATA   0x01
 
#define UMOSCOM_LSR_RXOVER   0x02
 
#define UMOSCOM_LSR_RXPAR_ERR   0x04
 
#define UMOSCOM_LSR_RXFRM_ERR   0x08
 
#define UMOSCOM_LSR_RXBREAK   0x10
 
#define UMOSCOM_LSR_TXEMPTY   0x20
 
#define UMOSCOM_LSR_TXALLEMPTY   0x40
 
#define UMOSCOM_LSR_TXFIFO_ERR   0x80
 
#define UMOSCOM_MSR_CTS_CHG   0x01
 
#define UMOSCOM_MSR_DSR_CHG   0x02
 
#define UMOSCOM_MSR_RI_CHG   0x04
 
#define UMOSCOM_MSR_CD_CHG   0x08
 
#define UMOSCOM_MSR_CTS   0x10
 
#define UMOSCOM_MSR_RTS   0x20
 
#define UMOSCOM_MSR_RI   0x40
 
#define UMOSCOM_MSR_CD   0x80
 
#define UMOSCOM_BAUD_REF   115200
 

Enumerations

enum  { UMOSCOM_BULK_DT_WR , UMOSCOM_BULK_DT_RD , UMOSCOM_INTR_DT_RD , UMOSCOM_N_TRANSFER }
 

Functions

static void umoscom_free_softc (struct umoscom_softc *)
 
static void umoscom_free (struct ucom_softc *)
 
static void umoscom_cfg_open (struct ucom_softc *)
 
static void umoscom_cfg_close (struct ucom_softc *)
 
static void umoscom_cfg_set_break (struct ucom_softc *, uint8_t)
 
static void umoscom_cfg_set_dtr (struct ucom_softc *, uint8_t)
 
static void umoscom_cfg_set_rts (struct ucom_softc *, uint8_t)
 
static int umoscom_pre_param (struct ucom_softc *, struct termios *)
 
static void umoscom_cfg_param (struct ucom_softc *, struct termios *)
 
static void umoscom_cfg_get_status (struct ucom_softc *, uint8_t *, uint8_t *)
 
static void umoscom_cfg_write (struct umoscom_softc *, uint16_t, uint16_t)
 
static uint8_t umoscom_cfg_read (struct umoscom_softc *, uint16_t)
 
static void umoscom_start_read (struct ucom_softc *)
 
static void umoscom_stop_read (struct ucom_softc *)
 
static void umoscom_start_write (struct ucom_softc *)
 
static void umoscom_stop_write (struct ucom_softc *)
 
static void umoscom_poll (struct ucom_softc *ucom)
 
 DRIVER_MODULE (umoscom, uhub, umoscom_driver, umoscom_devclass, NULL, 0)
 
 MODULE_DEPEND (umoscom, ucom, 1, 1, 1)
 
 MODULE_DEPEND (umoscom, usb, 1, 1, 1)
 
 MODULE_VERSION (umoscom, 1)
 
 USB_PNP_HOST_INFO (umoscom_devs)
 
static int umoscom_probe (device_t dev)
 
static int umoscom_attach (device_t dev)
 
static int umoscom_detach (device_t dev)
 
 UCOM_UNLOAD_DRAIN (umoscom)
 
static void umoscom_write_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void umoscom_read_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void umoscom_intr_callback (struct usb_xfer *xfer, usb_error_t error)
 

Variables

static device_probe_t umoscom_probe
 
static device_attach_t umoscom_attach
 
static device_detach_t umoscom_detach
 
static usb_callback_t umoscom_write_callback
 
static usb_callback_t umoscom_read_callback
 
static usb_callback_t umoscom_intr_callback
 
static const struct usb_config umoscom_config_data [UMOSCOM_N_TRANSFER]
 
static const struct ucom_callback umoscom_callback
 
static device_method_t umoscom_methods []
 
static devclass_t umoscom_devclass
 
static driver_t umoscom_driver
 
static const STRUCT_USB_HOST_ID umoscom_devs []
 

Macro Definition Documentation

◆ UMOSCOM_BAUD_REF

#define UMOSCOM_BAUD_REF   115200

Definition at line 167 of file umoscom.c.

◆ UMOSCOM_BAUDHI

#define UMOSCOM_BAUDHI   0x01

Definition at line 96 of file umoscom.c.

◆ UMOSCOM_BAUDLO

#define UMOSCOM_BAUDLO   0x00

Definition at line 95 of file umoscom.c.

◆ UMOSCOM_BUFSIZE

#define UMOSCOM_BUFSIZE   1024 /* bytes */

Definition at line 59 of file umoscom.c.

◆ UMOSCOM_CONFIG_INDEX

#define UMOSCOM_CONFIG_INDEX   0

Definition at line 61 of file umoscom.c.

◆ UMOSCOM_DIV_HI

#define UMOSCOM_DIV_HI   0x09

Definition at line 88 of file umoscom.c.

◆ UMOSCOM_DIV_LO

#define UMOSCOM_DIV_LO   0x08

Definition at line 87 of file umoscom.c.

◆ UMOSCOM_EFR

#define UMOSCOM_EFR   0x0a

Definition at line 89 of file umoscom.c.

◆ UMOSCOM_FIFO

#define UMOSCOM_FIFO   0x02 /* Write */

Definition at line 80 of file umoscom.c.

◆ UMOSCOM_FIFO_DMA_BLK

#define UMOSCOM_FIFO_DMA_BLK   0x08

Definition at line 109 of file umoscom.c.

◆ UMOSCOM_FIFO_EN

#define UMOSCOM_FIFO_EN   0x01

Definition at line 106 of file umoscom.c.

◆ UMOSCOM_FIFO_RXCLR

#define UMOSCOM_FIFO_RXCLR   0x02

Definition at line 107 of file umoscom.c.

◆ UMOSCOM_FIFO_RXLVL_16

#define UMOSCOM_FIFO_RXLVL_16   0x40

Definition at line 117 of file umoscom.c.

◆ UMOSCOM_FIFO_RXLVL_56

#define UMOSCOM_FIFO_RXLVL_56   0x80

Definition at line 118 of file umoscom.c.

◆ UMOSCOM_FIFO_RXLVL_8

#define UMOSCOM_FIFO_RXLVL_8   0x00

Definition at line 116 of file umoscom.c.

◆ UMOSCOM_FIFO_RXLVL_80

#define UMOSCOM_FIFO_RXLVL_80   0xc0

Definition at line 119 of file umoscom.c.

◆ UMOSCOM_FIFO_RXLVL_MASK

#define UMOSCOM_FIFO_RXLVL_MASK   0xc0

Definition at line 115 of file umoscom.c.

◆ UMOSCOM_FIFO_TXCLR

#define UMOSCOM_FIFO_TXCLR   0x04

Definition at line 108 of file umoscom.c.

◆ UMOSCOM_FIFO_TXLVL_16

#define UMOSCOM_FIFO_TXLVL_16   0x10

Definition at line 112 of file umoscom.c.

◆ UMOSCOM_FIFO_TXLVL_32

#define UMOSCOM_FIFO_TXLVL_32   0x20

Definition at line 113 of file umoscom.c.

◆ UMOSCOM_FIFO_TXLVL_56

#define UMOSCOM_FIFO_TXLVL_56   0x30

Definition at line 114 of file umoscom.c.

◆ UMOSCOM_FIFO_TXLVL_8

#define UMOSCOM_FIFO_TXLVL_8   0x00

Definition at line 111 of file umoscom.c.

◆ UMOSCOM_FIFO_TXLVL_MASK

#define UMOSCOM_FIFO_TXLVL_MASK   0x30

Definition at line 110 of file umoscom.c.

◆ UMOSCOM_IFACE_INDEX

#define UMOSCOM_IFACE_INDEX   0

Definition at line 62 of file umoscom.c.

◆ UMOSCOM_IIR_CTI

#define UMOSCOM_IIR_CTI   0x0c

Definition at line 67 of file umoscom.c.

◆ UMOSCOM_IIR_MS

#define UMOSCOM_IIR_MS   0x00

Definition at line 69 of file umoscom.c.

◆ UMOSCOM_IIR_RDA

#define UMOSCOM_IIR_RDA   0x04

Definition at line 66 of file umoscom.c.

◆ UMOSCOM_IIR_RLS

#define UMOSCOM_IIR_RLS   0x06

Definition at line 65 of file umoscom.c.

◆ UMOSCOM_IIR_THR

#define UMOSCOM_IIR_THR   0x02

Definition at line 68 of file umoscom.c.

◆ UMOSCOM_INT

#define UMOSCOM_INT   0x01

Definition at line 79 of file umoscom.c.

◆ UMOSCOM_INT_MDMEM

#define UMOSCOM_INT_MDMEM   0x08

Definition at line 101 of file umoscom.c.

◆ UMOSCOM_INT_RSEN

#define UMOSCOM_INT_RSEN   0x04

Definition at line 100 of file umoscom.c.

◆ UMOSCOM_INT_RTS

#define UMOSCOM_INT_RTS   0x40

Definition at line 104 of file umoscom.c.

◆ UMOSCOM_INT_RXEN

#define UMOSCOM_INT_RXEN   0x01

Definition at line 98 of file umoscom.c.

◆ UMOSCOM_INT_SLEEP

#define UMOSCOM_INT_SLEEP   0x10

Definition at line 102 of file umoscom.c.

◆ UMOSCOM_INT_TXEN

#define UMOSCOM_INT_TXEN   0x02

Definition at line 99 of file umoscom.c.

◆ UMOSCOM_INT_XOFF

#define UMOSCOM_INT_XOFF   0x20

Definition at line 103 of file umoscom.c.

◆ UMOSCOM_ISR

#define UMOSCOM_ISR   0x02 /* Read */

Definition at line 81 of file umoscom.c.

◆ UMOSCOM_ISR_FIFOEN

#define UMOSCOM_ISR_FIFOEN   0xc0

Definition at line 129 of file umoscom.c.

◆ UMOSCOM_ISR_LINE

#define UMOSCOM_ISR_LINE   0x06

Definition at line 125 of file umoscom.c.

◆ UMOSCOM_ISR_MDM

#define UMOSCOM_ISR_MDM   0x00

Definition at line 121 of file umoscom.c.

◆ UMOSCOM_ISR_NONE

#define UMOSCOM_ISR_NONE   0x01

Definition at line 122 of file umoscom.c.

◆ UMOSCOM_ISR_RTSCTS

#define UMOSCOM_ISR_RTSCTS   0x20

Definition at line 128 of file umoscom.c.

◆ UMOSCOM_ISR_RX

#define UMOSCOM_ISR_RX   0x04

Definition at line 124 of file umoscom.c.

◆ UMOSCOM_ISR_RX_XOFF

#define UMOSCOM_ISR_RX_XOFF   0x10

Definition at line 127 of file umoscom.c.

◆ UMOSCOM_ISR_RXTIMEOUT

#define UMOSCOM_ISR_RXTIMEOUT   0x0c

Definition at line 126 of file umoscom.c.

◆ UMOSCOM_ISR_TX

#define UMOSCOM_ISR_TX   0x02

Definition at line 123 of file umoscom.c.

◆ UMOSCOM_LCR

#define UMOSCOM_LCR   0x03

Definition at line 82 of file umoscom.c.

◆ UMOSCOM_LCR_BREAK

#define UMOSCOM_LCR_BREAK   0x40

Definition at line 137 of file umoscom.c.

◆ UMOSCOM_LCR_DBITS

#define UMOSCOM_LCR_DBITS (   x)    ((x) - 5)

Definition at line 131 of file umoscom.c.

◆ UMOSCOM_LCR_DIVLATCH_EN

#define UMOSCOM_LCR_DIVLATCH_EN   0x80

Definition at line 138 of file umoscom.c.

◆ UMOSCOM_LCR_PARITY_EVEN

#define UMOSCOM_LCR_PARITY_EVEN   0x18

Definition at line 136 of file umoscom.c.

◆ UMOSCOM_LCR_PARITY_NONE

#define UMOSCOM_LCR_PARITY_NONE   0x00

Definition at line 134 of file umoscom.c.

◆ UMOSCOM_LCR_PARITY_ODD

#define UMOSCOM_LCR_PARITY_ODD   0x08

Definition at line 135 of file umoscom.c.

◆ UMOSCOM_LCR_STOP_BITS_1

#define UMOSCOM_LCR_STOP_BITS_1   0x00

Definition at line 132 of file umoscom.c.

◆ UMOSCOM_LCR_STOP_BITS_2

#define UMOSCOM_LCR_STOP_BITS_2   0x04 /* 2 if 6-8 bits/char or 1.5 if 5 */

Definition at line 133 of file umoscom.c.

◆ UMOSCOM_LSR

#define UMOSCOM_LSR   0x05

Definition at line 84 of file umoscom.c.

◆ UMOSCOM_LSR_RXBREAK

#define UMOSCOM_LSR_RXBREAK   0x10

Definition at line 153 of file umoscom.c.

◆ UMOSCOM_LSR_RXDATA

#define UMOSCOM_LSR_RXDATA   0x01

Definition at line 149 of file umoscom.c.

◆ UMOSCOM_LSR_RXFRM_ERR

#define UMOSCOM_LSR_RXFRM_ERR   0x08

Definition at line 152 of file umoscom.c.

◆ UMOSCOM_LSR_RXOVER

#define UMOSCOM_LSR_RXOVER   0x02

Definition at line 150 of file umoscom.c.

◆ UMOSCOM_LSR_RXPAR_ERR

#define UMOSCOM_LSR_RXPAR_ERR   0x04

Definition at line 151 of file umoscom.c.

◆ UMOSCOM_LSR_TXALLEMPTY

#define UMOSCOM_LSR_TXALLEMPTY   0x40

Definition at line 155 of file umoscom.c.

◆ UMOSCOM_LSR_TXEMPTY

#define UMOSCOM_LSR_TXEMPTY   0x20

Definition at line 154 of file umoscom.c.

◆ UMOSCOM_LSR_TXFIFO_ERR

#define UMOSCOM_LSR_TXFIFO_ERR   0x80

Definition at line 156 of file umoscom.c.

◆ UMOSCOM_MCR

#define UMOSCOM_MCR   0x04

Definition at line 83 of file umoscom.c.

◆ UMOSCOM_MCR_BAUD_DIV4

#define UMOSCOM_MCR_BAUD_DIV4   0x80

Definition at line 147 of file umoscom.c.

◆ UMOSCOM_MCR_DTR

#define UMOSCOM_MCR_DTR   0x01

Definition at line 140 of file umoscom.c.

◆ UMOSCOM_MCR_INTEN

#define UMOSCOM_MCR_INTEN   0x08

Definition at line 143 of file umoscom.c.

◆ UMOSCOM_MCR_IRDA_EN

#define UMOSCOM_MCR_IRDA_EN   0x40

Definition at line 146 of file umoscom.c.

◆ UMOSCOM_MCR_LOOP

#define UMOSCOM_MCR_LOOP   0x04

Definition at line 142 of file umoscom.c.

◆ UMOSCOM_MCR_LOOPBACK

#define UMOSCOM_MCR_LOOPBACK   0x10

Definition at line 144 of file umoscom.c.

◆ UMOSCOM_MCR_RTS

#define UMOSCOM_MCR_RTS   0x02

Definition at line 141 of file umoscom.c.

◆ UMOSCOM_MCR_XONANY

#define UMOSCOM_MCR_XONANY   0x20

Definition at line 145 of file umoscom.c.

◆ UMOSCOM_MSR

#define UMOSCOM_MSR   0x06

Definition at line 85 of file umoscom.c.

◆ UMOSCOM_MSR_CD

#define UMOSCOM_MSR_CD   0x80

Definition at line 165 of file umoscom.c.

◆ UMOSCOM_MSR_CD_CHG

#define UMOSCOM_MSR_CD_CHG   0x08

Definition at line 161 of file umoscom.c.

◆ UMOSCOM_MSR_CTS

#define UMOSCOM_MSR_CTS   0x10

Definition at line 162 of file umoscom.c.

◆ UMOSCOM_MSR_CTS_CHG

#define UMOSCOM_MSR_CTS_CHG   0x01

Definition at line 158 of file umoscom.c.

◆ UMOSCOM_MSR_DSR_CHG

#define UMOSCOM_MSR_DSR_CHG   0x02

Definition at line 159 of file umoscom.c.

◆ UMOSCOM_MSR_RI

#define UMOSCOM_MSR_RI   0x40

Definition at line 164 of file umoscom.c.

◆ UMOSCOM_MSR_RI_CHG

#define UMOSCOM_MSR_RI_CHG   0x04

Definition at line 160 of file umoscom.c.

◆ UMOSCOM_MSR_RTS

#define UMOSCOM_MSR_RTS   0x20

Definition at line 163 of file umoscom.c.

◆ UMOSCOM_READ

#define UMOSCOM_READ   0x0d

Definition at line 72 of file umoscom.c.

◆ UMOSCOM_RXBUF

#define UMOSCOM_RXBUF   0x00 /* Read */

Definition at line 78 of file umoscom.c.

◆ UMOSCOM_SCRATCH

#define UMOSCOM_SCRATCH   0x07

Definition at line 86 of file umoscom.c.

◆ UMOSCOM_TXBUF

#define UMOSCOM_TXBUF   0x00 /* Write */

Definition at line 77 of file umoscom.c.

◆ UMOSCOM_UART_REG

#define UMOSCOM_UART_REG   0x0300

Definition at line 74 of file umoscom.c.

◆ UMOSCOM_VEND_REG

#define UMOSCOM_VEND_REG   0x0000

Definition at line 75 of file umoscom.c.

◆ UMOSCOM_WRITE

#define UMOSCOM_WRITE   0x0e

Definition at line 73 of file umoscom.c.

◆ UMOSCOM_XOFF1

#define UMOSCOM_XOFF1   0x0d

Definition at line 92 of file umoscom.c.

◆ UMOSCOM_XOFF2

#define UMOSCOM_XOFF2   0x0e

Definition at line 93 of file umoscom.c.

◆ UMOSCOM_XON1

#define UMOSCOM_XON1   0x0b

Definition at line 90 of file umoscom.c.

◆ UMOSCOM_XON2

#define UMOSCOM_XON2   0x0c

Definition at line 91 of file umoscom.c.

◆ USB_DEBUG_VAR

#define USB_DEBUG_VAR   umoscom_debug

Definition at line 44 of file umoscom.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UMOSCOM_BULK_DT_WR 
UMOSCOM_BULK_DT_RD 
UMOSCOM_INTR_DT_RD 
UMOSCOM_N_TRANSFER 

Definition at line 169 of file umoscom.c.

Function Documentation

◆ DRIVER_MODULE()

DRIVER_MODULE ( umoscom  ,
uhub  ,
umoscom_driver  ,
umoscom_devclass  ,
NULL  ,
 
)

◆ MODULE_DEPEND() [1/2]

MODULE_DEPEND ( umoscom  ,
ucom  ,
,
,
 
)

◆ MODULE_DEPEND() [2/2]

MODULE_DEPEND ( umoscom  ,
usb  ,
,
,
 
)

◆ MODULE_VERSION()

MODULE_VERSION ( umoscom  ,
 
)

◆ UCOM_UNLOAD_DRAIN()

UCOM_UNLOAD_DRAIN ( umoscom  )

◆ umoscom_attach()

◆ umoscom_cfg_close()

static void umoscom_cfg_close ( struct ucom_softc ucom)
static

Definition at line 414 of file umoscom.c.

◆ umoscom_cfg_get_status()

static void umoscom_cfg_get_status ( struct ucom_softc ucom,
uint8_t *  p_lsr,
uint8_t *  p_msr 
)
static

Definition at line 523 of file umoscom.c.

References ucom_softc::sc_parent, umoscom_cfg_read(), UMOSCOM_LSR, UMOSCOM_MSR, UMOSCOM_MSR_CD, UMOSCOM_MSR_CTS, UMOSCOM_MSR_RI, and UMOSCOM_MSR_RTS.

Here is the call graph for this function:

◆ umoscom_cfg_open()

static void umoscom_cfg_open ( struct ucom_softc ucom)
static

◆ umoscom_cfg_param()

◆ umoscom_cfg_read()

static uint8_t umoscom_cfg_read ( struct umoscom_softc sc,
uint16_t  reg 
)
static

Definition at line 569 of file umoscom.c.

References DPRINTF, reg, req, umoscom_softc::sc_ucom, umoscom_softc::sc_udev, ucom_cfg_do_request, UMOSCOM_READ, USETW, UT_READ_VENDOR_DEVICE, and val.

Referenced by umoscom_cfg_get_status().

Here is the caller graph for this function:

◆ umoscom_cfg_set_break()

static void umoscom_cfg_set_break ( struct ucom_softc ucom,
uint8_t  onoff 
)
static

Definition at line 420 of file umoscom.c.

References umoscom_softc::sc_lcr, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_LCR, UMOSCOM_LCR_BREAK, UMOSCOM_UART_REG, and val.

Here is the call graph for this function:

◆ umoscom_cfg_set_dtr()

static void umoscom_cfg_set_dtr ( struct ucom_softc ucom,
uint8_t  onoff 
)
static

Definition at line 433 of file umoscom.c.

References umoscom_softc::sc_mcr, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_MCR, UMOSCOM_MCR_DTR, and UMOSCOM_UART_REG.

Here is the call graph for this function:

◆ umoscom_cfg_set_rts()

static void umoscom_cfg_set_rts ( struct ucom_softc ucom,
uint8_t  onoff 
)
static

Definition at line 446 of file umoscom.c.

References umoscom_softc::sc_mcr, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_MCR, UMOSCOM_MCR_RTS, and UMOSCOM_UART_REG.

Here is the call graph for this function:

◆ umoscom_cfg_write()

static void umoscom_cfg_write ( struct umoscom_softc sc,
uint16_t  reg,
uint16_t  val 
)
static

◆ umoscom_detach()

static int umoscom_detach ( device_t  dev)
static

◆ umoscom_free()

static void umoscom_free ( struct ucom_softc ucom)
static

Definition at line 382 of file umoscom.c.

References ucom_softc::sc_parent, and umoscom_free_softc().

Here is the call graph for this function:

◆ umoscom_free_softc()

static void umoscom_free_softc ( struct umoscom_softc sc)
static

Definition at line 373 of file umoscom.c.

References umoscom_softc::sc_mtx, umoscom_softc::sc_super_ucom, and ucom_unref().

Referenced by umoscom_detach(), and umoscom_free().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ umoscom_intr_callback()

static void umoscom_intr_callback ( struct usb_xfer xfer,
usb_error_t  error 
)
static

◆ umoscom_poll()

static void umoscom_poll ( struct ucom_softc ucom)
static

Definition at line 729 of file umoscom.c.

References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_N_TRANSFER, and usbd_transfer_poll().

Here is the call graph for this function:

◆ umoscom_pre_param()

static int umoscom_pre_param ( struct ucom_softc ucom,
struct termios *  t 
)
static

Definition at line 459 of file umoscom.c.

◆ umoscom_probe()

static int umoscom_probe ( device_t  dev)
static

◆ umoscom_read_callback()

static void umoscom_read_callback ( struct usb_xfer xfer,
usb_error_t  error 
)
static

◆ umoscom_start_read()

static void umoscom_start_read ( struct ucom_softc ucom)
static

Definition at line 589 of file umoscom.c.

References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_RD, UMOSCOM_INTR_DT_RD, and usbd_transfer_start().

Here is the call graph for this function:

◆ umoscom_start_write()

static void umoscom_start_write ( struct ucom_softc ucom)
static

Definition at line 614 of file umoscom.c.

References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_WR, and usbd_transfer_start().

Here is the call graph for this function:

◆ umoscom_stop_read()

static void umoscom_stop_read ( struct ucom_softc ucom)
static

Definition at line 602 of file umoscom.c.

References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_RD, UMOSCOM_INTR_DT_RD, and usbd_transfer_stop().

Here is the call graph for this function:

◆ umoscom_stop_write()

static void umoscom_stop_write ( struct ucom_softc ucom)
static

Definition at line 622 of file umoscom.c.

References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_WR, and usbd_transfer_stop().

Here is the call graph for this function:

◆ umoscom_write_callback()

static void umoscom_write_callback ( struct usb_xfer xfer,
usb_error_t  error 
)
static

◆ USB_PNP_HOST_INFO()

USB_PNP_HOST_INFO ( umoscom_devs  )

Variable Documentation

◆ umoscom_attach

device_attach_t umoscom_attach
static

Definition at line 191 of file umoscom.c.

◆ umoscom_callback

const struct ucom_callback umoscom_callback
static
Initial value:
= {
.ucom_cfg_get_status = &umoscom_cfg_get_status,
.ucom_cfg_set_dtr = &umoscom_cfg_set_dtr,
.ucom_cfg_set_rts = &umoscom_cfg_set_rts,
.ucom_cfg_set_break = &umoscom_cfg_set_break,
.ucom_cfg_param = &umoscom_cfg_param,
.ucom_cfg_open = &umoscom_cfg_open,
.ucom_cfg_close = &umoscom_cfg_close,
.ucom_pre_param = &umoscom_pre_param,
.ucom_start_read = &umoscom_start_read,
.ucom_stop_read = &umoscom_stop_read,
.ucom_start_write = &umoscom_start_write,
.ucom_stop_write = &umoscom_stop_write,
.ucom_poll = &umoscom_poll,
.ucom_free = &umoscom_free,
}
static void umoscom_cfg_set_dtr(struct ucom_softc *, uint8_t)
Definition: umoscom.c:433
static void umoscom_cfg_set_break(struct ucom_softc *, uint8_t)
Definition: umoscom.c:420
static void umoscom_stop_read(struct ucom_softc *)
Definition: umoscom.c:602
static void umoscom_cfg_close(struct ucom_softc *)
Definition: umoscom.c:414
static void umoscom_start_read(struct ucom_softc *)
Definition: umoscom.c:589
static void umoscom_stop_write(struct ucom_softc *)
Definition: umoscom.c:622
static void umoscom_start_write(struct ucom_softc *)
Definition: umoscom.c:614
static void umoscom_cfg_open(struct ucom_softc *)
Definition: umoscom.c:388
static void umoscom_poll(struct ucom_softc *ucom)
Definition: umoscom.c:729
static void umoscom_free(struct ucom_softc *)
Definition: umoscom.c:382
static void umoscom_cfg_get_status(struct ucom_softc *, uint8_t *, uint8_t *)
Definition: umoscom.c:523
static int umoscom_pre_param(struct ucom_softc *, struct termios *)
Definition: umoscom.c:459
static void umoscom_cfg_param(struct ucom_softc *, struct termios *)
Definition: umoscom.c:468
static void umoscom_cfg_set_rts(struct ucom_softc *, uint8_t)
Definition: umoscom.c:446

Definition at line 246 of file umoscom.c.

Referenced by umoscom_attach().

◆ umoscom_config_data

const struct usb_config umoscom_config_data[UMOSCOM_N_TRANSFER]
static
Initial value:
= {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
.bufsize = UMOSCOM_BUFSIZE,
.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
.callback = &umoscom_write_callback,
},
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.bufsize = UMOSCOM_BUFSIZE,
.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
.callback = &umoscom_read_callback,
},
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
.bufsize = 0,
.callback = &umoscom_intr_callback,
},
}
@ UMOSCOM_BULK_DT_WR
Definition: umoscom.c:170
@ UMOSCOM_INTR_DT_RD
Definition: umoscom.c:172
@ UMOSCOM_BULK_DT_RD
Definition: umoscom.c:171
#define UMOSCOM_BUFSIZE
Definition: umoscom.c:59
static usb_callback_t umoscom_read_callback
Definition: umoscom.c:196
static usb_callback_t umoscom_write_callback
Definition: umoscom.c:195
static usb_callback_t umoscom_intr_callback
Definition: umoscom.c:197
#define UE_INTERRUPT
Definition: usb.h:544
#define UE_ADDR_ANY
Definition: usb.h:537
#define UE_BULK
Definition: usb.h:543
#define UE_DIR_IN
Definition: usb.h:531
#define UE_DIR_OUT
Definition: usb.h:532

Definition at line 217 of file umoscom.c.

Referenced by umoscom_attach().

◆ umoscom_detach

device_detach_t umoscom_detach
static

Definition at line 192 of file umoscom.c.

Referenced by umoscom_attach().

◆ umoscom_devclass

devclass_t umoscom_devclass
static

Definition at line 273 of file umoscom.c.

◆ umoscom_devs

const STRUCT_USB_HOST_ID umoscom_devs[]
static
Initial value:
= {
{USB_VPI(USB_VENDOR_MOSCHIP, USB_PRODUCT_MOSCHIP_MCS7703, 0)}
}
#define USB_VPI(vend, prod, info)
Definition: usbdi.h:367

Definition at line 281 of file umoscom.c.

Referenced by umoscom_probe().

◆ umoscom_driver

driver_t umoscom_driver
static
Initial value:
= {
.name = "umoscom",
.methods = umoscom_methods,
.size = sizeof(struct umoscom_softc),
}
static device_method_t umoscom_methods[]
Definition: umoscom.c:266

Definition at line 275 of file umoscom.c.

◆ umoscom_intr_callback

usb_callback_t umoscom_intr_callback
static

Definition at line 197 of file umoscom.c.

◆ umoscom_methods

device_method_t umoscom_methods[]
static
Initial value:
= {
DEVMETHOD(device_probe, umoscom_probe),
DEVMETHOD(device_attach, umoscom_attach),
DEVMETHOD(device_detach, umoscom_detach),
DEVMETHOD_END
}
static device_attach_t umoscom_attach
Definition: umoscom.c:191
static device_probe_t umoscom_probe
Definition: umoscom.c:190
static device_detach_t umoscom_detach
Definition: umoscom.c:192

Definition at line 266 of file umoscom.c.

◆ umoscom_probe

device_probe_t umoscom_probe
static

Definition at line 190 of file umoscom.c.

◆ umoscom_read_callback

usb_callback_t umoscom_read_callback
static

Definition at line 196 of file umoscom.c.

◆ umoscom_write_callback

usb_callback_t umoscom_write_callback
static

Definition at line 195 of file umoscom.c.