upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / input / touchscreen / mcs8000_download_porting.h
1 \r
2 //--------------------------------------------------------\r
3 //\r
4 //\r
5 //      Melfas MCS7000 Series Download base v1.0 2010.04.05\r
6 //\r
7 //\r
8 //--------------------------------------------------------\r
9 \r
10 #ifndef __MELFAS_DOWNLOAD_PORTING_H_INCLUDED__\r
11 #define __MELFAS_DOWNLOAD_PORTING_H_INCLUDED__\r
12 \r
13 //============================================================\r
14 //\r
15 //      Porting order\r
16 //\r
17 //============================================================\r
18 /*\r
19 \r
20 1. melfas_download_porting.h\r
21    - Check typedef      [melfas_download_porting.h]\r
22 \r
23    - Check download options     [melfas_download_porting.h]\r
24 \r
25    - Add Port control code  ( CE, RESETB, I2C,... )     [melfas_download_porting.h]\r
26 \r
27    - Apply your delay function ( inside mcsdl_delaly() )        [melfas_download.c]\r
28       Modify delay parameter constant ( ex. MCSDL_DELAY_5MS ) to make it fit to your delay function.\r
29 \r
30    - Rename 'uart_printf()' to your console print function for debugging. [melfas_download_porting.h]\r
31           or, define uart_printf() as different function properly.\r
32 \r
33    - Check Watchdog timer, Interrupt factor\r
34 \r
35    - Including Melfas binary .c file\r
36 \r
37    - Basenad dealy function\r
38       fill up mcsdl_delay()\r
39 \r
40    - Implement processing external Melfas binary .bin file.\r
41 \r
42 */\r
43 \r
44 //============================================================\r
45 //\r
46 //      Type define\r
47 //\r
48 //============================================================\r
49 \r
50 typedef char                            INT8;\r
51 typedef unsigned char           UINT8;\r
52 //typedef unsigned char         uint8_t;\r
53 typedef short                           INT16;\r
54 typedef unsigned short          UINT16;\r
55 //typedef unsigned short        uint16_t;\r
56 typedef int                                     INT32;\r
57 typedef unsigned int            UINT32;\r
58 typedef unsigned char           BOOLEAN;\r
59 \r
60 \r
61 #ifndef TRUE\r
62 #define TRUE                            (1==1)\r
63 #endif\r
64 \r
65 #ifndef FALSE\r
66 #define FALSE                           (1==0)\r
67 #endif\r
68 \r
69 #ifndef NULL\r
70 #define NULL                            0\r
71 #endif\r
72 \r
73 #define GPIO_TOUCH_I2C_SDA\r
74 #ifndef GPIO_TOUCH_I2C_SDA\r
75 #define GPIO_TOUCH_I2C_SDA GPIO_I2C0_SDA\r
76 #define GPIO_TOUCH_I2C_SCL GPIO_I2C0_SCL\r
77 #endif\r
78 \r
79 //============================================================\r
80 //\r
81 //      Porting Download Options\r
82 //\r
83 //============================================================\r
84 \r
85 // For printing debug information. ( Please check 'printing function' )\r
86 #define MELFAS_ENABLE_DBG_PRINT                                                                                 1\r
87 #define MELFAS_ENABLE_DBG_PROGRESS_PRINT                                                                1\r
88 \r
89 // For delay function test. ( Disable after Porting is finished )\r
90 #define MELFAS_ENABLE_DELAY_TEST                                                                                0\r
91 \r
92 \r
93 //============================================================\r
94 //\r
95 //      IO Control poting.\r
96 //\r
97 //      Fill 'Using signal' up only.\r
98 //      See MCSDL_USE_VDD_CONTROL,\r
99 //              MCSDL_USE_CE_CONTROL,\r
100 //\r
101 //============================================================\r
102 \r
103 //----------------\r
104 // VDD\r
105 //----------------\r
106 #define GPIO_TOUCH_EN S5PV310_GPL0(3)\r
107 #if MCSDL_USE_VDD_CONTROL\r
108 #define MCSDL_VDD_SET_HIGH()                                    gpio_set_value(GPIO_TOUCH_EN, 1)\r
109 #define MCSDL_VDD_SET_LOW()                                     gpio_set_value(GPIO_TOUCH_EN, 0)\r
110 #else\r
111 #define MCSDL_VDD_SET_HIGH()                                    // Nothing\r
112 #define MCSDL_VDD_SET_LOW()                                     // Nothing\r
113 #endif\r
114 \r
115 //----------------\r
116 // CE\r
117 //----------------\r
118 #if MCSDL_USE_CE_CONTROL\r
119 #define MCSDL_CE_SET_HIGH()                                     gpio_set_value(GPIO_TOUCH_EN, 1)\r
120 #define MCSDL_CE_SET_LOW()                                      gpio_set_value(GPIO_TOUCH_EN, 0)\r
121 #define MCSDL_CE_SET_OUTPUT()                                   gpio_tlmm_config(GPIO_CFG(TOUCH_EN, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_16MA),GPIO_CFG_ENABLE)\r
122 #else\r
123 #define MCSDL_CE_SET_HIGH()                                                     // Nothing\r
124 #define MCSDL_CE_SET_LOW()                                                      // Nothing\r
125 #define MCSDL_CE_SET_OUTPUT()                                           // Nothing\r
126 #endif\r
127 \r
128 /* for samsung */\r
129 #define melfas_i2c_gpio_scl()                                gpio_tlmm_config(GPIO_CFG(GPIO_TSP_SCL,  0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA),1);\r
130 #define melfas_i2c_gpio_sda()                                gpio_tlmm_config(GPIO_CFG(GPIO_TSP_SDA,  0, GPIO_CFG_OUTPUT, GPIO_CFG_PULL_UP, GPIO_CFG_2MA),1);\r
131 \r
132 /* for samsung */\r
133 \r
134 //----------------\r
135 // RESETB\r
136 //----------------\r
137 #define GPIO_TOUCH_INT S5PV310_GPX0(4)\r
138 #if MCSDL_USE_RESETB_CONTROL\r
139 #define MCSDL_RESETB_SET_HIGH()                         gpio_set_value(GPIO_TOUCH_INT, 1)\r
140 #define MCSDL_RESETB_SET_LOW()                          gpio_set_value(GPIO_TOUCH_INT, 0)\r
141 #define MCSDL_RESETB_SET_OUTPUT(n)              gpio_direction_output(GPIO_TOUCH_INT, n)\r
142 #define MCSDL_RESETB_SET_INPUT()                        gpio_direction_input(GPIO_TOUCH_INT)\r
143 #else\r
144 #define MCSDL_RESETB_SET_HIGH()\r
145 #define MCSDL_RESETB_SET_LOW()\r
146 #define MCSDL_RESETB_SET_OUTPUT()\r
147 #define MCSDL_RESETB_SET_INPUT()\r
148 #endif\r
149 \r
150 \r
151 //------------------\r
152 // I2C SCL & SDA\r
153 //------------------\r
154 #define GPIO_TSP_SDA    S5PV310_GPA1(2)\r
155 #define GPIO_TSP_SCL    S5PV310_GPA1(3)\r
156 #define MCSDL_GPIO_SCL_SET_HIGH()                                       gpio_set_value(GPIO_TSP_SCL, 1)\r
157 #define MCSDL_GPIO_SCL_SET_LOW()                                        gpio_set_value(GPIO_TSP_SCL, 0)\r
158 \r
159 #define MCSDL_GPIO_SDA_SET_HIGH()                                       gpio_set_value(GPIO_TSP_SDA, 1)\r
160 #define MCSDL_GPIO_SDA_SET_LOW()                                        gpio_set_value(GPIO_TSP_SDA, 0)\r
161 \r
162 #define MCSDL_GPIO_SCL_SET_OUTPUT(n)                                    gpio_direction_output(GPIO_TSP_SCL, n)\r
163 #define MCSDL_GPIO_SCL_SET_INPUT()                                      gpio_direction_input(GPIO_TSP_SCL)\r
164 \r
165 #define MCSDL_GPIO_SDA_SET_OUTPUT(n)                                    gpio_direction_output(GPIO_TSP_SDA, n)\r
166 #define MCSDL_GPIO_SDA_SET_INPUT()                                      gpio_direction_input(GPIO_TSP_SDA)\r
167 \r
168 #define MCSDL_GPIO_SDA_IS_HIGH()                                        ((gpio_get_value(GPIO_TSP_SDA) > 0) ? 1 : 0)\r
169 \r
170 #define MCSDL_SET_GPIO_I2C()                                            // Nothing\r
171 #define MCSDL_SET_HW_I2C()                                                      // Nothing\r
172 \r
173 \r
174 \r
175 //============================================================\r
176 //\r
177 //      Delay parameter setting\r
178 //\r
179 //      These are used on 'mcsdl_delay()'\r
180 //\r
181 //============================================================\r
182 \r
183 #define MCSDL_DELAY_1US                                                             1\r
184 #define MCSDL_DELAY_2US                                                             2\r
185 #define MCSDL_DELAY_3US                                                             3\r
186 #define MCSDL_DELAY_5US                                                             5\r
187 #define MCSDL_DELAY_7US                                                                 7\r
188 #define MCSDL_DELAY_10US                                                           10\r
189 #define MCSDL_DELAY_15US                                                           15\r
190 #define MCSDL_DELAY_20US                                                           20\r
191 \r
192 #define MCSDL_DELAY_100US                                                         100\r
193 #define MCSDL_DELAY_150US                                                         150\r
194 #define MCSDL_DELAY_500US                                         500\r
195 #define MCSDL_DELAY_800US                                                         800\r
196 \r
197 \r
198 #define MCSDL_DELAY_1MS                                                          1000\r
199 #define MCSDL_DELAY_5MS                                                          5000\r
200 #define MCSDL_DELAY_10MS                                                        10000\r
201 #define MCSDL_DELAY_25MS                                                        25000\r
202 #define MCSDL_DELAY_30MS                                                        30000\r
203 #define MCSDL_DELAY_40MS                                                        40000\r
204 #define MCSDL_DELAY_45MS                                                        45000\r
205 \r
206 //start ADD DELAY   \r
207 #define MCSDL_DELAY_60MS                            60000\r
208 #define MCSDL_DELAY_40US                               40\r
209 #define MCSDL_DELAY_300US                             300\r
210 //end add delay\r
211 \r
212 //============================================================\r
213 //\r
214 //      Defence External Effect\r
215 //\r
216 //============================================================\r
217 #if 0\r
218 \r
219 #define MELFAS_DISABLE_BASEBAND_ISR()                           ____HERE!_____\r
220 #define MELFAS_DISABLE_WATCHDOG_TIMER_RESET()           ____HERE!_____\r
221 \r
222 #define MELFAS_ROLLBACK_BASEBAND_ISR()                          ____HERE!_____\r
223 #define MELFAS_ROLLBACK_WATCHDOG_TIMER_RESET()          ____HERE!_____\r
224 \r
225 #else\r
226 \r
227 #define MELFAS_DISABLE_BASEBAND_ISR()                           // Nothing\r
228 #define MELFAS_DISABLE_WATCHDOG_TIMER_RESET()           // Nothing\r
229 \r
230 #define MELFAS_ROLLBACK_BASEBAND_ISR()                          // Nothing\r
231 #define MELFAS_ROLLBACK_WATCHDOG_TIMER_RESET()          // Nothing\r
232 \r
233 #endif\r
234 \r
235 \r
236 \r
237 #endif\r
238 \r