#include <linux/device.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/input/ad714x.h>
#include <linux/module.h>
#include "ad714x.h"
#define AD714X_PWR_CTRL …
#define AD714X_STG_CAL_EN_REG …
#define AD714X_AMB_COMP_CTRL0_REG …
#define AD714X_PARTID_REG …
#define AD7142_PARTID …
#define AD7143_PARTID …
#define AD7147_PARTID …
#define AD7148_PARTID …
#define AD714X_STAGECFG_REG …
#define AD714X_SYSCFG_REG …
#define STG_LOW_INT_EN_REG …
#define STG_HIGH_INT_EN_REG …
#define STG_COM_INT_EN_REG …
#define STG_LOW_INT_STA_REG …
#define STG_HIGH_INT_STA_REG …
#define STG_COM_INT_STA_REG …
#define CDC_RESULT_S0 …
#define CDC_RESULT_S1 …
#define CDC_RESULT_S2 …
#define CDC_RESULT_S3 …
#define CDC_RESULT_S4 …
#define CDC_RESULT_S5 …
#define CDC_RESULT_S6 …
#define CDC_RESULT_S7 …
#define CDC_RESULT_S8 …
#define CDC_RESULT_S9 …
#define CDC_RESULT_S10 …
#define CDC_RESULT_S11 …
#define STAGE0_AMBIENT …
#define STAGE1_AMBIENT …
#define STAGE2_AMBIENT …
#define STAGE3_AMBIENT …
#define STAGE4_AMBIENT …
#define STAGE5_AMBIENT …
#define STAGE6_AMBIENT …
#define STAGE7_AMBIENT …
#define STAGE8_AMBIENT …
#define STAGE9_AMBIENT …
#define STAGE10_AMBIENT …
#define STAGE11_AMBIENT …
#define PER_STAGE_REG_NUM …
#define STAGE_CFGREG_NUM …
#define SYS_CFGREG_NUM …
enum ad714x_device_state { … };
struct ad714x_slider_drv { … };
struct ad714x_wheel_drv { … };
struct ad714x_touchpad_drv { … };
struct ad714x_button_drv { … };
struct ad714x_driver_data { … };
static void ad714x_use_com_int(struct ad714x_chip *ad714x,
int start_stage, int end_stage)
{ … }
static void ad714x_use_thr_int(struct ad714x_chip *ad714x,
int start_stage, int end_stage)
{ … }
static int ad714x_cal_highest_stage(struct ad714x_chip *ad714x,
int start_stage, int end_stage)
{ … }
static int ad714x_cal_abs_pos(struct ad714x_chip *ad714x,
int start_stage, int end_stage,
int highest_stage, int max_coord)
{ … }
static void ad714x_button_state_machine(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_cal_sensor_val(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_cal_highest_stage(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_cal_abs_pos(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_cal_flt_pos(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_use_com_int(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_use_thr_int(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_slider_state_machine(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_cal_highest_stage(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_cal_sensor_val(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_cal_abs_pos(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_cal_flt_pos(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_use_com_int(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_use_thr_int(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_wheel_state_machine(struct ad714x_chip *ad714x, int idx)
{ … }
static void touchpad_cal_sensor_val(struct ad714x_chip *ad714x, int idx)
{ … }
static void touchpad_cal_highest_stage(struct ad714x_chip *ad714x, int idx)
{ … }
static int touchpad_check_second_peak(struct ad714x_chip *ad714x, int idx)
{ … }
static void touchpad_cal_abs_pos(struct ad714x_chip *ad714x, int idx)
{ … }
static void touchpad_cal_flt_pos(struct ad714x_chip *ad714x, int idx)
{ … }
#define LEFT_END_POINT_DETECTION_LEVEL …
#define RIGHT_END_POINT_DETECTION_LEVEL …
#define LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL …
#define TOP_END_POINT_DETECTION_LEVEL …
#define BOTTOM_END_POINT_DETECTION_LEVEL …
#define TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL …
static int touchpad_check_endpoint(struct ad714x_chip *ad714x, int idx)
{ … }
static void touchpad_use_com_int(struct ad714x_chip *ad714x, int idx)
{ … }
static void touchpad_use_thr_int(struct ad714x_chip *ad714x, int idx)
{ … }
static void ad714x_touchpad_state_machine(struct ad714x_chip *ad714x, int idx)
{ … }
static int ad714x_hw_detect(struct ad714x_chip *ad714x)
{ … }
static void ad714x_hw_init(struct ad714x_chip *ad714x)
{ … }
static irqreturn_t ad714x_interrupt_thread(int irq, void *data)
{ … }
struct ad714x_chip *ad714x_probe(struct device *dev, u16 bus_type, int irq,
ad714x_read_t read, ad714x_write_t write)
{ … }
EXPORT_SYMBOL(…);
static int ad714x_suspend(struct device *dev)
{ … }
static int ad714x_resume(struct device *dev)
{ … }
EXPORT_SIMPLE_DEV_PM_OPS(…);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;