linux/drivers/input/touchscreen/penmount.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Penmount serial touchscreen driver
 *
 * Copyright (c) 2006 Rick Koch <[email protected]>
 * Copyright (c) 2011 John Sung <[email protected]>
 *
 * Based on ELO driver (drivers/input/touchscreen/elo.c)
 * Copyright (c) 2004 Vojtech Pavlik
 */


#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/input.h>
#include <linux/input/mt.h>
#include <linux/serio.h>

#define DRIVER_DESC

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

/*
 * Definitions & global arrays.
 */

#define PM_MAX_LENGTH
#define PM_MAX_MTSLOT
#define PM_3000_MTSLOT
#define PM_6250_MTSLOT

/*
 * Multi-touch slot
 */

struct mt_slot {};

/*
 * Per-touchscreen data.
 */

struct pm {};

/*
 * pm_mtevent() sends mt events and also emulates pointer movement
 */

static void pm_mtevent(struct pm *pm, struct input_dev *input)
{}

/*
 * pm_checkpacket() checks if data packet is valid
 */

static bool pm_checkpacket(unsigned char *packet)
{}

static void pm_parse_9000(struct pm *pm)
{}

static void pm_parse_6000(struct pm *pm)
{}

static void pm_parse_3000(struct pm *pm)
{}

static void pm_parse_6250(struct pm *pm)
{}

static irqreturn_t pm_interrupt(struct serio *serio,
		unsigned char data, unsigned int flags)
{}

/*
 * pm_disconnect() is the opposite of pm_connect()
 */

static void pm_disconnect(struct serio *serio)
{}

/*
 * pm_connect() is the routine that is called when someone adds a
 * new serio device that supports PenMount protocol and registers it as
 * an input device.
 */

static int pm_connect(struct serio *serio, struct serio_driver *drv)
{}

/*
 * The serio driver structure.
 */

static const struct serio_device_id pm_serio_ids[] =;

MODULE_DEVICE_TABLE(serio, pm_serio_ids);

static struct serio_driver pm_drv =;

module_serio_driver();