3 * Copyright (C) 2011 Goodix, Inc.
9 #ifndef _LINUX_GOODIX_TOUCH_H
10 #define _LINUX_GOODIX_TOUCH_H
12 #include <linux/earlysuspend.h>
13 #include <linux/hrtimer.h>
14 #include <linux/i2c.h>
15 #include <linux/input.h>
26 #define RELEASE_DATE "2012-02-07"
28 #define GOODIX_I2C_NAME "Goodix-TS-82X"
29 #define GOODIX_I2C_ADDR 0X5D
32 #define GTDEBUG(fmt, arg...) printk("<--GT-DEBUG-->"fmt, ##arg)
34 #define DEBUG(fmt, arg...)
38 #define GTNOTICE(fmt, arg...) printk("<--GT-NOTICE-->"fmt, ##arg)
40 #define NOTICE(fmt, arg...)
44 #define GTWARNING(fmt, arg...) printk("<--GT-WARNING-->"fmt, ##arg)
46 #define WARNING(fmt, arg...)
50 #define GTDEBUG_MSG(fmt, arg...) printk("<--GT msg-->"fmt, ##arg)
52 #define DEBUG_MSG(fmt, arg...)
56 #define GTDEBUG_UPDATE(fmt, arg...) printk("<--GT update-->"fmt, ##arg)
58 #define DEBUG_UPDATE(fmt, arg...)
62 #define GTDEBUG_COOR(fmt, arg...) printk(fmt, ##arg)
65 #define GTDEBUG_COOR(fmt, arg...)
66 #define DEBUG_COOR(fmt, arg...)
70 #define GTDEBUG_ARRAY(array, num) do{\
73 for (i = 0; i < (num); i++)\
75 printk("%02x ", (a)[i]);\
76 if ((i + 1 ) %10 == 0)\
84 #define DEBUG_ARRAY(array, num)
87 #define ADDR_MAX_LENGTH 2
88 #define ADDR_LENGTH ADDR_MAX_LENGTH
90 //#define CREATE_WR_NODE
91 //#define AUTO_UPDATE_GUITAR //Èç¹û¶¨ÒåÁËÔòÉϵç»á×Ô¶¯ÅжÏÊÇ·ñÐèÒªÉý¼¶
93 //--------------------------For user redefine-----------------------------//
94 //-------------------------GPIO REDEFINE START----------------------------//
95 #define GPIO_DIRECTION_INPUT(port) gpio_direction_input(port)
96 #define GPIO_DIRECTION_OUTPUT(port, val) gpio_direction_output(port, val)
97 #define GPIO_SET_VALUE(port, val) gpio_set_value(port, val)
98 #define GPIO_FREE(port) gpio_free(port)
99 #define GPIO_REQUEST(port, name) gpio_request(port, name)
100 #define GPIO_PULL_UPDOWN(port, val) gpio_pull_updown(port,val) // s3c_gpio_setpull(port, val)
101 #define GPIO_CFG_PIN(port, cfg) //s3c_gpio_cfgpin(port, cfg)
102 //-------------------------GPIO REDEFINE END------------------------------//
105 //*************************TouchScreen Work Part Start**************************
107 #define RESET_PORT S3C64XX_GPF(3) //RESET¹Ü½ÅºÅ
108 #define INT_PORT S3C64XX_GPL(10) //Int IO port
110 #define TS_INT gpio_to_irq(INT_PORT) //Interrupt Number,EINT18(119)
111 #define INT_CFG S3C_GPIO_SFN(3) //IO configer as EINT
117 #define GT_IRQ_RISING IRQ_TYPE_EDGE_RISING
118 #define GT_IRQ_FALLING IRQ_TYPE_EDGE_FALLING
119 #define INT_TRIGGER GT_IRQ_FALLING
120 #define POLL_TIME 10 //actual query spacing interval:POLL_TIME+6
122 #define GOODIX_MULTI_TOUCH
123 #ifdef GOODIX_MULTI_TOUCH
124 #define MAX_FINGER_NUM 5
126 #define MAX_FINGER_NUM 1
129 #define gtswap(x, y) do { typeof(x) z = x; x = y; y = z; } while (0)
131 struct goodix_i2c_rmi_platform_data {
135 s32 use_reset; //use RESET flag
136 s32 use_irq; //use EINT flag
138 s32 (*power)(struct goodix_ts_data * ts, s32 on);
139 struct i2c_client *client;
140 struct input_dev *input_dev;
141 struct hrtimer timer;
142 struct work_struct work;
143 struct early_suspend early_suspend;
146 uint32_t version; /* Use this entry for panels with */
147 unsigned gpio_shutdown;
150 bool irq_edge; /* 0:rising edge, 1:falling edge */
158 int (*init_platform_hw)(void);
161 //*************************TouchScreen Work Part End****************************
163 #endif /* _LINUX_GOODIX_TOUCH_H */