linux/drivers/input/touchscreen/zinitix.c

// SPDX-License-Identifier: GPL-2.0-only

#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/input/mt.h>
#include <linux/input/touchscreen.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>

/* Register Map */

#define ZINITIX_SWRESET_CMD
#define ZINITIX_WAKEUP_CMD

#define ZINITIX_IDLE_CMD
#define ZINITIX_SLEEP_CMD

#define ZINITIX_CLEAR_INT_STATUS_CMD
#define ZINITIX_CALIBRATE_CMD
#define ZINITIX_SAVE_STATUS_CMD
#define ZINITIX_SAVE_CALIBRATION_CMD
#define ZINITIX_RECALL_FACTORY_CMD

#define ZINITIX_THRESHOLD

#define ZINITIX_LARGE_PALM_REJECT_AREA_TH

#define ZINITIX_DEBUG_REG

#define ZINITIX_TOUCH_MODE
#define ZINITIX_CHIP_REVISION
#define ZINITIX_FIRMWARE_VERSION

#define ZINITIX_USB_DETECT

#define ZINITIX_MINOR_FW_VERSION

#define ZINITIX_VENDOR_ID
#define ZINITIX_HW_ID

#define ZINITIX_DATA_VERSION_REG
#define ZINITIX_SUPPORTED_FINGER_NUM
#define ZINITIX_EEPROM_INFO
#define ZINITIX_INITIAL_TOUCH_MODE

#define ZINITIX_TOTAL_NUMBER_OF_X
#define ZINITIX_TOTAL_NUMBER_OF_Y

#define ZINITIX_DELAY_RAW_FOR_HOST

#define ZINITIX_BUTTON_SUPPORTED_NUM
#define ZINITIX_BUTTON_SENSITIVITY
#define ZINITIX_DUMMY_BUTTON_SENSITIVITY

#define ZINITIX_X_RESOLUTION
#define ZINITIX_Y_RESOLUTION

#define ZINITIX_POINT_STATUS_REG
#define ZINITIX_ICON_STATUS_REG

#define ZINITIX_POINT_COORD_REG

#define ZINITIX_AFE_FREQUENCY
#define ZINITIX_DND_N_COUNT
#define ZINITIX_DND_U_COUNT

#define ZINITIX_RAWDATA_REG

#define ZINITIX_EEPROM_INFO_REG

#define ZINITIX_INT_ENABLE_FLAG
#define ZINITIX_PERIODICAL_INTERRUPT_INTERVAL

#define ZINITIX_BTN_WIDTH

#define ZINITIX_CHECKSUM_RESULT

#define ZINITIX_INIT_FLASH
#define ZINITIX_WRITE_FLASH
#define ZINITIX_READ_FLASH

#define ZINITIX_INTERNAL_FLAG_02
#define ZINITIX_INTERNAL_FLAG_03

#define ZINITIX_I2C_CHECKSUM_WCNT
#define ZINITIX_I2C_CHECKSUM_RESULT

/* Interrupt & status register flags */

#define BIT_PT_CNT_CHANGE
#define BIT_DOWN
#define BIT_MOVE
#define BIT_UP
#define BIT_PALM
#define BIT_PALM_REJECT
#define BIT_RESERVED_0
#define BIT_RESERVED_1
#define BIT_WEIGHT_CHANGE
#define BIT_PT_NO_CHANGE
#define BIT_REJECT
#define BIT_PT_EXIST
#define BIT_RESERVED_2
#define BIT_ERROR
#define BIT_DEBUG
#define BIT_ICON_EVENT

#define SUB_BIT_EXIST
#define SUB_BIT_DOWN
#define SUB_BIT_MOVE
#define SUB_BIT_UP
#define SUB_BIT_UPDATE
#define SUB_BIT_WAIT

#define DEFAULT_TOUCH_POINT_MODE
#define MAX_SUPPORTED_FINGER_NUM

#define CHIP_ON_DELAY
#define FIRMWARE_ON_DELAY

struct point_coord {};

struct touch_event {};

struct bt541_ts_data {};

static int zinitix_read_data(struct i2c_client *client,
			     u16 reg, void *values, size_t length)
{}

static int zinitix_write_u16(struct i2c_client *client, u16 reg, u16 value)
{}

static int zinitix_write_cmd(struct i2c_client *client, u16 reg)
{}

static int zinitix_init_touch(struct bt541_ts_data *bt541)
{}

static int zinitix_init_regulators(struct bt541_ts_data *bt541)
{}

static int zinitix_send_power_on_sequence(struct bt541_ts_data *bt541)
{}

static void zinitix_report_finger(struct bt541_ts_data *bt541, int slot,
				  const struct point_coord *p)
{}

static irqreturn_t zinitix_ts_irq_handler(int irq, void *bt541_handler)
{}

static int zinitix_start(struct bt541_ts_data *bt541)
{}

static int zinitix_stop(struct bt541_ts_data *bt541)
{}

static int zinitix_input_open(struct input_dev *dev)
{}

static void zinitix_input_close(struct input_dev *dev)
{}

static int zinitix_init_input_dev(struct bt541_ts_data *bt541)
{}

static int zinitix_ts_probe(struct i2c_client *client)
{}

static int zinitix_suspend(struct device *dev)
{}

static int zinitix_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(zinitix_pm_ops, zinitix_suspend, zinitix_resume);

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

static struct i2c_driver zinitix_ts_driver =;
module_i2c_driver();

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