linux/drivers/input/mouse/focaltech.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Focaltech TouchPad PS/2 mouse driver
 *
 * Copyright (c) 2014 Red Hat Inc.
 * Copyright (c) 2014 Mathias Gottschlag <[email protected]>
 *
 * Red Hat authors:
 *
 * Hans de Goede <[email protected]>
 */


#include <linux/device.h>
#include <linux/libps2.h>
#include <linux/input/mt.h>
#include <linux/serio.h>
#include <linux/slab.h>
#include "psmouse.h"
#include "focaltech.h"

static const char * const focaltech_pnp_ids[] =;

/*
 * Even if the kernel is built without support for Focaltech PS/2 touchpads (or
 * when the real driver fails to recognize the device), we still have to detect
 * them in order to avoid further detection attempts confusing the touchpad.
 * This way it at least works in PS/2 mouse compatibility mode.
 */
int focaltech_detect(struct psmouse *psmouse, bool set_properties)
{}

#ifdef CONFIG_MOUSE_PS2_FOCALTECH

/*
 * Packet types - the numbers are not consecutive, so we might be missing
 * something here.
 */
#define FOC_TOUCH
#define FOC_ABS
#define FOC_REL

#define FOC_MAX_FINGERS

/*
 * Current state of a single finger on the touchpad.
 */
struct focaltech_finger_state {};

/*
 * Description of the current state of the touchpad hardware.
 */
struct focaltech_hw_state {};

struct focaltech_data {};

static void focaltech_report_state(struct psmouse *psmouse)
{}

static void focaltech_process_touch_packet(struct psmouse *psmouse,
					   unsigned char *packet)
{}

static void focaltech_process_abs_packet(struct psmouse *psmouse,
					 unsigned char *packet)
{}

static void focaltech_process_rel_packet(struct psmouse *psmouse,
					 unsigned char *packet)
{}

static void focaltech_process_packet(struct psmouse *psmouse)
{}

static psmouse_ret_t focaltech_process_byte(struct psmouse *psmouse)
{}

static int focaltech_switch_protocol(struct psmouse *psmouse)
{}

static void focaltech_reset(struct psmouse *psmouse)
{}

static void focaltech_disconnect(struct psmouse *psmouse)
{}

static int focaltech_reconnect(struct psmouse *psmouse)
{}

static void focaltech_set_input_params(struct psmouse *psmouse)
{}

static int focaltech_read_register(struct ps2dev *ps2dev, int reg,
				   unsigned char *param)
{}

static int focaltech_read_size(struct psmouse *psmouse)
{}

static void focaltech_set_resolution(struct psmouse *psmouse,
				     unsigned int resolution)
{}

static void focaltech_set_rate(struct psmouse *psmouse, unsigned int rate)
{}

static void focaltech_set_scale(struct psmouse *psmouse,
				enum psmouse_scale scale)
{}

int focaltech_init(struct psmouse *psmouse)
{}
#endif /* CONFIG_MOUSE_PS2_FOCALTECH */