Initial commit
[kernel/linux-3.0.git] / include / linux / i2c / mxt1664s.h
1 /*
2  *  Copyright (C) 2012, Samsung Electronics Co. Ltd. All Rights Reserved.
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  */
15
16 #ifndef __MXT_H__
17 #define __MXT_H__
18
19 #define MXT_DEV_NAME "Atmel MXT1664S"
20
21 #define MXT_1664S_SW_RESET_TIME         300     /* msec */
22 #define MXT_1664S_HW_RESET_TIME         300     /* msec */
23 #define MXT_1664S_FW_RESET_TIME         500     /* msec */
24
25 enum { RESERVED_T0 = 0,
26         RESERVED_T1,
27         DEBUG_DELTAS_T2,
28         DEBUG_REFERENCES_T3,
29         DEBUG_SIGNALS_T4,
30         GEN_MESSAGEPROCESSOR_T5,
31         GEN_COMMANDPROCESSOR_T6,
32         GEN_POWERCONFIG_T7,
33         GEN_ACQUISITIONCONFIG_T8,
34         TOUCH_MULTITOUCHSCREEN_T9,
35         TOUCH_SINGLETOUCHSCREEN_T10,
36         TOUCH_XSLIDER_T11,
37         TOUCH_YSLIDER_T12,
38         TOUCH_XWHEEL_T13,
39         TOUCH_YWHEEL_T14,
40         TOUCH_KEYARRAY_T15,
41         PROCG_SIGNALFILTER_T16,
42         PROCI_LINEARIZATIONTABLE_T17,
43         SPT_COMCONFIG_T18,
44         SPT_GPIOPWM_T19,
45         PROCI_GRIPFACESUPPRESSION_T20,
46         RESERVED_T21,
47         PROCG_NOISESUPPRESSION_T22,
48         TOUCH_PROXIMITY_T23,
49         PROCI_ONETOUCHGESTUREPROCESSOR_T24,
50         SPT_SELFTEST_T25,
51         DEBUG_CTERANGE_T26,
52         PROCI_TWOTOUCHGESTUREPROCESSOR_T27,
53         SPT_CTECONFIG_T28,
54         SPT_GPI_T29,
55         SPT_GATE_T30,
56         TOUCH_KEYSET_T31,
57         TOUCH_XSLIDERSET_T32,
58         RESERVED_T33,
59         GEN_MESSAGEBLOCK_T34,
60         SPT_GENERICDATA_T35,
61         RESERVED_T36,
62         DEBUG_DIAGNOSTIC_T37,
63         SPT_USERDATA_T38,
64         SPARE_T39,
65         PROCI_GRIPSUPPRESSION_T40,
66         SPARE_T41,
67         PROCI_TOUCHSUPPRESSION_T42,
68         SPT_DIGITIZER_T43,
69         SPARE_T44,
70         SPARE_T45,
71         SPT_CTECONFIG_T46,
72         PROCI_STYLUS_T47,
73         PROCG_NOISESUPPRESSION_T48,
74         SPARE_T49,
75         SPARE_T50,
76         SPARE_T51,
77         TOUCH_PROXIMITY_KEY_T52,
78         GEN_DATASOURCE_T53,
79         SPARE_T54,
80         ADAPTIVE_T55,
81         PROCI_SHIELDLESS_T56,
82         PROCI_EXTRATOUCHSCREENDATA_T57,
83         SPARE_T58,
84         SPARE_T59,
85         SPARE_T60,
86         SPT_TIMER_T61,
87         PROCG_NOISESUPPRESSION_T62,
88         RESERVED_T255 = 255,
89 };
90
91 struct mxt_callbacks {
92         void (*inform_charger)(struct mxt_callbacks *, bool);
93 };
94
95 struct mxt_platform_data {
96         int max_finger_touches;
97         int gpio_read_done;
98         const u8 **config;
99         int min_x;
100         int max_x;
101         int min_y;
102         int max_y;
103         int min_z;
104         int max_z;
105         int min_w;
106         int max_w;
107         int (*power_on) (void);
108         int (*power_off) (void);
109         int (*power_reset) (void);
110         u8 *(*register_cb)(struct mxt_callbacks *);
111         u8 boot_address;
112         const char *config_version;
113 };
114
115 #endif                          /*  */