linux/drivers/input/touchscreen/elo.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Elo serial touchscreen driver
 *
 * Copyright (c) 2004 Vojtech Pavlik
 */


/*
 * This driver can handle serial Elo touchscreens using either the Elo standard
 * 'E271-2210' 10-byte protocol, Elo legacy 'E281A-4002' 6-byte protocol, Elo
 * legacy 'E271-140' 4-byte protocol and Elo legacy 'E261-280' 3-byte protocol.
 */

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

#define DRIVER_DESC

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

/*
 * Definitions & global arrays.
 */

#define ELO_MAX_LENGTH

#define ELO10_PACKET_LEN
#define ELO10_TOUCH
#define ELO10_PRESSURE

#define ELO10_LEAD_BYTE

#define ELO10_ID_CMD

#define ELO10_TOUCH_PACKET
#define ELO10_ACK_PACKET
#define ELI10_ID_PACKET

/*
 * Per-touchscreen data.
 */

struct elo {};

static void elo_process_data_10(struct elo *elo, unsigned char data)
{}

static void elo_process_data_6(struct elo *elo, unsigned char data)
{}

static void elo_process_data_3(struct elo *elo, unsigned char data)
{}

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

static int elo_command_10(struct elo *elo, unsigned char *packet)
{}

static int elo_setup_10(struct elo *elo)
{}

/*
 * elo_disconnect() is the opposite of elo_connect()
 */

static void elo_disconnect(struct serio *serio)
{}

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

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

/*
 * The serio driver structure.
 */

static const struct serio_device_id elo_serio_ids[] =;

MODULE_DEVICE_TABLE(serio, elo_serio_ids);

static struct serio_driver elo_drv =;

module_serio_driver();