linux/drivers/input/touchscreen/silead.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* -------------------------------------------------------------------------
 * Copyright (C) 2014-2015, Intel Corporation
 *
 * Derived from:
 *  gslX68X.c
 *  Copyright (C) 2010-2015, Shanghai Sileadinc Co.Ltd
 *
 * -------------------------------------------------------------------------
 */

#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/acpi.h>
#include <linux/interrupt.h>
#include <linux/gpio/consumer.h>
#include <linux/delay.h>
#include <linux/firmware.h>
#include <linux/input.h>
#include <linux/input/mt.h>
#include <linux/input/touchscreen.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include <linux/irq.h>
#include <linux/regulator/consumer.h>

#include <linux/unaligned.h>

#define SILEAD_TS_NAME

#define SILEAD_REG_RESET
#define SILEAD_REG_DATA
#define SILEAD_REG_TOUCH_NR
#define SILEAD_REG_POWER
#define SILEAD_REG_CLOCK
#define SILEAD_REG_STATUS
#define SILEAD_REG_ID
#define SILEAD_REG_MEM_CHECK

#define SILEAD_STATUS_OK
#define SILEAD_TS_DATA_LEN
#define SILEAD_CLOCK

#define SILEAD_CMD_RESET
#define SILEAD_CMD_START

#define SILEAD_POINT_DATA_LEN
#define SILEAD_POINT_Y_OFF
#define SILEAD_POINT_Y_MSB_OFF
#define SILEAD_POINT_X_OFF
#define SILEAD_POINT_X_MSB_OFF
#define SILEAD_EXTRA_DATA_MASK

#define SILEAD_CMD_SLEEP_MIN
#define SILEAD_CMD_SLEEP_MAX
#define SILEAD_POWER_SLEEP
#define SILEAD_STARTUP_SLEEP

#define SILEAD_MAX_FINGERS

enum silead_ts_power {};

struct silead_ts_data {};

struct silead_fw_data {};

static void silead_apply_efi_fw_min_max(struct silead_ts_data *data)
{}

static int silead_ts_request_input_dev(struct silead_ts_data *data)
{}

static int silead_ts_request_pen_input_dev(struct silead_ts_data *data)
{}

static void silead_ts_set_power(struct i2c_client *client,
				enum silead_ts_power state)
{}

static bool silead_ts_handle_pen_data(struct silead_ts_data *data, u8 *buf)
{}

static void silead_ts_read_data(struct i2c_client *client)
{}

static int silead_ts_init(struct i2c_client *client)
{}

static int silead_ts_reset(struct i2c_client *client)
{}

static int silead_ts_startup(struct i2c_client *client)
{}

static int silead_ts_load_fw(struct i2c_client *client)
{}

static u32 silead_ts_get_status(struct i2c_client *client)
{}

static int silead_ts_get_id(struct i2c_client *client)
{}

static int silead_ts_setup(struct i2c_client *client)
{}

static irqreturn_t silead_ts_threaded_irq_handler(int irq, void *id)
{}

static void silead_ts_read_props(struct i2c_client *client)
{}

#ifdef CONFIG_ACPI
static int silead_ts_set_default_fw_name(struct silead_ts_data *data,
					 const struct i2c_device_id *id)
{}
#else
static int silead_ts_set_default_fw_name(struct silead_ts_data *data,
					 const struct i2c_device_id *id)
{
	snprintf(data->fw_name, sizeof(data->fw_name),
		 "silead/%s.fw", id->name);
	return 0;
}
#endif

static void silead_disable_regulator(void *arg)
{}

static int silead_ts_probe(struct i2c_client *client)
{}

static int silead_ts_suspend(struct device *dev)
{}

static int silead_ts_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(silead_ts_pm, silead_ts_suspend, silead_ts_resume);

static const struct i2c_device_id silead_ts_id[] =;
MODULE_DEVICE_TABLE(i2c, silead_ts_id);

#ifdef CONFIG_ACPI
static const struct acpi_device_id silead_ts_acpi_match[] =;
MODULE_DEVICE_TABLE(acpi, silead_ts_acpi_match);
#endif

#ifdef CONFIG_OF
static const struct of_device_id silead_ts_of_match[] =;
MODULE_DEVICE_TABLE(of, silead_ts_of_match);
#endif

static struct i2c_driver silead_ts_driver =;
module_i2c_driver();

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