linux/drivers/usb/serial/keyspan_pda.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * USB Keyspan PDA / Xircom / Entrega Converter driver
 *
 * Copyright (C) 1999 - 2001 Greg Kroah-Hartman	<[email protected]>
 * Copyright (C) 1999, 2000 Brian Warner	<[email protected]>
 * Copyright (C) 2000 Al Borchers		<[email protected]>
 * Copyright (C) 2020 Johan Hovold <[email protected]>
 *
 * See Documentation/usb/usb-serial.rst for more information on using this
 * driver
 */

#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/tty_flip.h>
#include <linux/module.h>
#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/uaccess.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/usb/ezusb.h>

#define DRIVER_AUTHOR
#define DRIVER_DESC

#define KEYSPAN_TX_THRESHOLD

struct keyspan_pda_private {};

static int keyspan_pda_write_start(struct usb_serial_port *port);

#define KEYSPAN_VENDOR_ID
#define KEYSPAN_PDA_FAKE_ID
#define KEYSPAN_PDA_ID

/* For Xircom PGSDB9 and older Entrega version of the same device */
#define XIRCOM_VENDOR_ID
#define XIRCOM_FAKE_ID
#define XIRCOM_FAKE_ID_2
#define ENTREGA_VENDOR_ID
#define ENTREGA_FAKE_ID

static const struct usb_device_id id_table_combined[] =;
MODULE_DEVICE_TABLE(usb, id_table_combined);

static const struct usb_device_id id_table_std[] =;

static const struct usb_device_id id_table_fake[] =;

static int keyspan_pda_get_write_room(struct keyspan_pda_private *priv)
{}

static void keyspan_pda_request_unthrottle(struct work_struct *work)
{}

static void keyspan_pda_rx_interrupt(struct urb *urb)
{}

static void keyspan_pda_rx_throttle(struct tty_struct *tty)
{}

static void keyspan_pda_rx_unthrottle(struct tty_struct *tty)
{}

static speed_t keyspan_pda_setbaud(struct usb_serial *serial, speed_t baud)
{}

static int keyspan_pda_break_ctl(struct tty_struct *tty, int break_state)
{}

static void keyspan_pda_set_termios(struct tty_struct *tty,
				    struct usb_serial_port *port,
				    const struct ktermios *old_termios)
{}

/*
 * Modem control pins: DTR and RTS are outputs and can be controlled.
 * DCD, RI, DSR, CTS are inputs and can be read. All outputs can also be
 * read. The byte passed is: DTR(b7) DCD RI DSR CTS RTS(b2) unused unused.
 */
static int keyspan_pda_get_modem_info(struct usb_serial *serial,
				      unsigned char *value)
{}

static int keyspan_pda_set_modem_info(struct usb_serial *serial,
				      unsigned char value)
{}

static int keyspan_pda_tiocmget(struct tty_struct *tty)
{}

static int keyspan_pda_tiocmset(struct tty_struct *tty,
				unsigned int set, unsigned int clear)
{}

static int keyspan_pda_write_start(struct usb_serial_port *port)
{}

static void keyspan_pda_write_bulk_callback(struct urb *urb)
{}

static int keyspan_pda_write(struct tty_struct *tty, struct usb_serial_port *port,
		const unsigned char *buf, int count)
{}

static void keyspan_pda_dtr_rts(struct usb_serial_port *port, int on)
{}


static int keyspan_pda_open(struct tty_struct *tty,
					struct usb_serial_port *port)
{}

static void keyspan_pda_close(struct usb_serial_port *port)
{}

/* download the firmware to a "fake" device (pre-renumeration) */
static int keyspan_pda_fake_startup(struct usb_serial *serial)
{}

MODULE_FIRMWARE();
MODULE_FIRMWARE();

static int keyspan_pda_port_probe(struct usb_serial_port *port)
{}

static void keyspan_pda_port_remove(struct usb_serial_port *port)
{}

static struct usb_serial_driver keyspan_pda_fake_device =;

static struct usb_serial_driver keyspan_pda_device =;

static struct usb_serial_driver * const serial_drivers[] =;

module_usb_serial_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();