2 * drivers/input/touchscreen/gt818_ts.h
4 * Copyright (C) 2011 Goodix, Inc.
10 #ifndef _LINUX_GOODIX_TOUCH_H
11 #define _LINUX_GOODIX_TOUCH_H
13 #include <linux/earlysuspend.h>
14 #include <linux/hrtimer.h>
15 #include <linux/i2c.h>
16 #include <linux/input.h>
19 //*************************TouchScreen Work Part*****************************
20 #define GOODIX_I2C_NAME "gt818_ts"
23 #define GUITAR_UPDATE_STATE 0x02
24 //#define NO_DEFAULT_ID
27 //define resolution of the touchscreen
28 #define TOUCH_MAX_HEIGHT 7168
29 #define TOUCH_MAX_WIDTH 5120
31 //define resolution of the LCD
32 #define SCREEN_MAX_HEIGHT 800
33 #define SCREEN_MAX_WIDTH 480
37 #define SHUTDOWN_PORT pdata->gpio_reset //SHUTDOWN¹Ü½ÅºÅ
38 #define INT_PORT pdata->gpio_pendown
41 #define TS_INT gpio_to_irq(INT_PORT) //Interrupt Number
46 #define HAVE_TOUCH_KEY
51 //set GT801 PLUS trigger mode,Ö»ÄÜÉèÖÃ0»ò1
53 #define POLL_TIME 10 //actual query spacing interval:POLL_TIME+6
55 #define GOODIX_MULTI_TOUCH
56 #ifdef GOODIX_MULTI_TOUCH
57 #define MAX_FINGER_NUM 2
59 #define MAX_FINGER_NUM 1
62 #define swap(x, y) do { typeof(x) z = x; x = y; y = z; } while (0)
64 #define READ_TOUCH_ADDR_H 0x07
65 #define READ_TOUCH_ADDR_L 0x12
66 #define READ_KEY_ADDR_H 0x07
67 #define READ_KEY_ADDR_L 0x21
68 #define READ_COOR_ADDR_H 0x07
69 #define READ_COOR_ADDR_L 0x22
70 #define READ_ID_ADDR_H 0x00
71 #define READ_ID_ADDR_L 0xff
74 #define IOMUX_NAME_SIZE 48
75 struct gt818_platform_data {
78 bool swap_xy; /* swap x and y axes */
82 int gpio_reset_active_low;
83 int gpio_pendown; /* the GPIO used to decide the pendown */
85 char pendown_iomux_name[IOMUX_NAME_SIZE];
86 char resetpin_iomux_name[IOMUX_NAME_SIZE];
87 int pendown_iomux_mode;
88 int resetpin_iomux_mode;
90 int (*get_pendown_state)(void);
94 struct gt818_ts_data {
99 struct i2c_client *client;
100 struct input_dev *input_dev;
101 int use_reset; //use RESET flag
102 int use_irq; //use EINT flag
103 int read_mode; //read moudle mode,20110221 by andrew
104 struct hrtimer timer;
105 struct work_struct work;
109 struct early_suspend early_suspend;
110 int (*power)(struct gt818_ts_data * ts, int on);
115 #endif /* _LINUX_GOODIX_TOUCH_H */