linux/drivers/input/mouse/synaptics_usb.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * USB Synaptics device driver
 *
 *  Copyright (c) 2002 Rob Miller (rob@inpharmatica . co . uk)
 *  Copyright (c) 2003 Ron Lee ([email protected])
 *	cPad driver for kernel 2.4
 *
 *  Copyright (c) 2004 Jan Steinhoff (cpad@jan-steinhoff . de)
 *  Copyright (c) 2004 Ron Lee ([email protected])
 *	rewritten for kernel 2.6
 *
 *  cPad display character device part is not included. It can be found at
 *  http://jan-steinhoff.de/linux/synaptics-usb.html
 *
 * Bases on:	usb_skeleton.c v2.2 by Greg Kroah-Hartman
 *		drivers/hid/usbhid/usbmouse.c by Vojtech Pavlik
 *		drivers/input/mouse/synaptics.c by Peter Osterlund
 *
 * Trademarks are the property of their respective owners.
 */

/*
 * There are three different types of Synaptics USB devices: Touchpads,
 * touchsticks (or trackpoints), and touchscreens. Touchpads are well supported
 * by this driver, touchstick support has not been tested much yet, and
 * touchscreens have not been tested at all.
 *
 * Up to three alternate settings are possible:
 *	setting 0: one int endpoint for relative movement (used by usbhid.ko)
 *	setting 1: one int endpoint for absolute finger position
 *	setting 2 (cPad only): one int endpoint for absolute finger position and
 *		   two bulk endpoints for the display (in/out)
 * This driver uses setting 1.
 */

#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/usb.h>
#include <linux/input.h>
#include <linux/usb/input.h>

#define USB_VENDOR_ID_SYNAPTICS
#define USB_DEVICE_ID_SYNAPTICS_TP
#define USB_DEVICE_ID_SYNAPTICS_INT_TP
#define USB_DEVICE_ID_SYNAPTICS_CPAD
#define USB_DEVICE_ID_SYNAPTICS_TS
#define USB_DEVICE_ID_SYNAPTICS_STICK
#define USB_DEVICE_ID_SYNAPTICS_WP
#define USB_DEVICE_ID_SYNAPTICS_COMP_TP
#define USB_DEVICE_ID_SYNAPTICS_WTP
#define USB_DEVICE_ID_SYNAPTICS_DPAD

#define SYNUSB_TOUCHPAD
#define SYNUSB_STICK
#define SYNUSB_TOUCHSCREEN
#define SYNUSB_AUXDISPLAY
#define SYNUSB_COMBO
#define SYNUSB_IO_ALWAYS

#define USB_DEVICE_SYNAPTICS(prod, kind)

#define SYNUSB_RECV_SIZE

#define XMIN_NOMINAL
#define XMAX_NOMINAL
#define YMIN_NOMINAL
#define YMAX_NOMINAL

struct synusb {};

static void synusb_report_buttons(struct synusb *synusb)
{}

static void synusb_report_stick(struct synusb *synusb)
{}

static void synusb_report_touchpad(struct synusb *synusb)
{}

static void synusb_irq(struct urb *urb)
{}

static struct usb_endpoint_descriptor *
synusb_get_in_endpoint(struct usb_host_interface *iface)
{}

static int synusb_open(struct input_dev *dev)
{}

static void synusb_close(struct input_dev *dev)
{}

static int synusb_probe(struct usb_interface *intf,
			const struct usb_device_id *id)
{}

static void synusb_disconnect(struct usb_interface *intf)
{}

static int synusb_suspend(struct usb_interface *intf, pm_message_t message)
{}

static int synusb_resume(struct usb_interface *intf)
{}

static int synusb_pre_reset(struct usb_interface *intf)
{}

static int synusb_post_reset(struct usb_interface *intf)
{}

static int synusb_reset_resume(struct usb_interface *intf)
{}

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

static struct usb_driver synusb_driver =;

module_usb_driver();

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