linux/drivers/hid/hid-elo.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * HID driver for ELO usb touchscreen 4000/4500
 *
 * Copyright (c) 2013 Jiri Slaby
 *
 * Data parsing taken from elousb driver by Vojtech Pavlik.
 */

#include <linux/hid.h>
#include <linux/input.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/workqueue.h>

#include "hid-ids.h"

#define ELO_PERIODIC_READ_INTERVAL
#define ELO_SMARTSET_CMD_TIMEOUT

/* Elo SmartSet commands */
#define ELO_FLUSH_SMARTSET_RESPONSES
#define ELO_SEND_SMARTSET_COMMAND
#define ELO_GET_SMARTSET_RESPONSE
#define ELO_DIAG
#define ELO_SMARTSET_PACKET_SIZE

struct elo_priv {};

static struct workqueue_struct *wq;
static bool use_fw_quirk =;
module_param(use_fw_quirk, bool, S_IRUGO);
MODULE_PARM_DESC();

static int elo_input_configured(struct hid_device *hdev,
		struct hid_input *hidinput)
{}

static void elo_process_data(struct input_dev *input, const u8 *data, int size)
{}

static int elo_raw_event(struct hid_device *hdev, struct hid_report *report,
	 u8 *data, int size)
{}

static int elo_smartset_send_get(struct usb_device *dev, u8 command,
		void *data)
{}

static int elo_flush_smartset_responses(struct usb_device *dev)
{}

static void elo_work(struct work_struct *work)
{}

/*
 * Not all Elo devices need the periodic HID descriptor reads.
 * Only firmware version M needs this.
 */
static bool elo_broken_firmware(struct usb_device *dev)
{}

static int elo_probe(struct hid_device *hdev, const struct hid_device_id *id)
{}

static void elo_remove(struct hid_device *hdev)
{}

static const struct hid_device_id elo_devices[] =;
MODULE_DEVICE_TABLE(hid, elo_devices);

static struct hid_driver elo_driver =;

static int __init elo_driver_init(void)
{}
module_init();

static void __exit elo_driver_exit(void)
{}
module_exit(elo_driver_exit);

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