linux/drivers/input/touchscreen/tsc200x-core.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _TSC200X_CORE_H
#define _TSC200X_CORE_H

/* control byte 1 */
#define TSC200X_CMD
#define TSC200X_CMD_NORMAL
#define TSC200X_CMD_STOP
#define TSC200X_CMD_12BIT

/* control byte 0 */
#define TSC200X_REG_READ
#define TSC200X_REG_PND0
#define TSC200X_REG_X
#define TSC200X_REG_Y
#define TSC200X_REG_Z1
#define TSC200X_REG_Z2
#define TSC200X_REG_AUX
#define TSC200X_REG_TEMP1
#define TSC200X_REG_TEMP2
#define TSC200X_REG_STATUS
#define TSC200X_REG_AUX_HIGH
#define TSC200X_REG_AUX_LOW
#define TSC200X_REG_TEMP_HIGH
#define TSC200X_REG_TEMP_LOW
#define TSC200X_REG_CFR0
#define TSC200X_REG_CFR1
#define TSC200X_REG_CFR2
#define TSC200X_REG_CONV_FUNC

/* configuration register 0 */
#define TSC200X_CFR0_PRECHARGE_276US
#define TSC200X_CFR0_STABTIME_1MS
#define TSC200X_CFR0_CLOCK_1MHZ
#define TSC200X_CFR0_RESOLUTION12
#define TSC200X_CFR0_PENMODE
#define TSC200X_CFR0_INITVALUE

/* bits common to both read and write of configuration register 0 */
#define TSC200X_CFR0_RW_MASK

/* configuration register 1 */
#define TSC200X_CFR1_BATCHDELAY_4MS
#define TSC200X_CFR1_INITVALUE

/* configuration register 2 */
#define TSC200X_CFR2_MAVE_Z
#define TSC200X_CFR2_MAVE_Y
#define TSC200X_CFR2_MAVE_X
#define TSC200X_CFR2_AVG_7
#define TSC200X_CFR2_MEDIUM_15
#define TSC200X_CFR2_INITVALUE

#define MAX_12BIT
#define TSC200X_DEF_X_FUZZ
#define TSC200X_DEF_Y_FUZZ
#define TSC200X_DEF_P_FUZZ
#define TSC200X_DEF_RESISTOR

#define TSC2005_SPI_MAX_SPEED_HZ
#define TSC200X_PENUP_TIME_MS

extern const struct regmap_config tsc200x_regmap_config;
extern const struct dev_pm_ops tsc200x_pm_ops;
extern const struct attribute_group *tsc200x_groups[];

int tsc200x_probe(struct device *dev, int irq, const struct input_id *tsc_id,
		  struct regmap *regmap,
		  int (*tsc200x_cmd)(struct device *dev, u8 cmd));

#endif