dcl_hts.h
8.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
#ifndef DCL_HTS_H_
#define DCL_HTS_H_
#include "dcl.h"
#define DCL_HTS_MAGIC_NUM 0x40000000
typedef DCL_UINT32 HTS_DEV;
typedef enum
{
TOUCH_PANEL_R=1
}HTS_DEV_T;
typedef DCL_UINT32 HTS_EVENT;
typedef enum
{
DCL_EVENT_HTS_PEN_DOWN=1,
DCL_EVENT_HTS_PEN_UP,
DCL_EVENT_HTS_MAX
}HTS_EVENT_T;
//touch panel driver command of hardware layer.
typedef DCL_UINT32 HTS_CMD;
typedef enum
{
HTS_CMD_GET_TP_ADC,
HTS_CMD_TS_READ_ADC,
HTS_CMD_GET_TP_LEVEL,
HTS_CMD_GET_TP_LEVEL_PRESSURE,
HTS_CMD_TP_UPDATENOTIFY,
HTS_CMD_GET_TP_PRESSURE,
HTS_CMD_TP_PRESSURE_VALUE,
HTS_CMD_SET_CONFIG,
HTS_CMD_GET_TP_POINT,
HTS_CMD_GET_TP_POINT_NUM,
HTS_CMD_GET_TP_TYPE,
HTS_CMD_SET_CALI_VALUE,
HTS_CMD_GET_CALI_VALUE,
HTS_CMD_SET_DEBOUNCE_TIME,
HTS_CMD_GET_DEBOUNCE_TIME,
HTS_CMD_SET_SPL_NUM,
HTS_CMD_GET_SPL_NUM
}HTS_CMD_T;
//HTS_CMD_SET_DEBOUNCE_TIME
typedef struct
{
DCL_UINT32 u4DebounceTime;
}HTS_CTRL_DT_T;
//HTS_CMD_TP_SET_PARAMETERS
typedef struct
{
DCL_UINT32 u4SampleResolution;
DCL_UINT32 u4ModeSelection;
} HTS_CTRL_CONFIG_T;
typedef enum {
//Not use the same values as ts_hw.h
//Otherwise it easy to cause bug if change ts_hw.h, but forget to change these
DCL_TS_CMD_DIFFERENTIAL,
DCL_TS_CMD_SINGLE_END,
DCL_TS_CMD_MODE_8BIT,
DCL_TS_CMD_MODE_10BIT,
DCL_TS_CMD_MODE_12BIT
} HTS_PARAMETER_T;
//HTS_CMD_TP_LEVEL,
typedef struct
{
DCL_BOOL fgIsUP;
DCL_UINT32 pressure_value;
} HTS_CTRL_TL_T;
//HTS_CMD_TP_READ_ADC
typedef struct
{
DCL_INT16 *pi2x;
DCL_INT16 *pi2y;
} HTS_CTRL_TPRA_T;
//HTS_CMD_TS_READ_ADC
typedef enum {
TS_COORD_HTS_ADDR_Y,
TS_COORD_HTS_ADDR_Z1,
TS_COORD_HTS_ADDR_Z2,
TS_COORD_HTS_ADDR_X
} TS_COORD_ENUM;
typedef struct
{
DCL_INT16 i2AdcValue;
TS_COORD_ENUM uCoord;
} HTS_CTRL_TSRA_T;
//HTS_CMD_TP_PRESSURE
typedef struct
{
DCL_BOOL fgIsPressed;
} HTS_CTRL_TPP_T;
//HTS_CMD_TP_PRESSURE_VALUE
typedef struct
{
DCL_INT32 fgPressureValue;
} HTS_CTRL_TPPV_T;
//HTS_CMD_READ_ADC
typedef struct
{
DCL_INT16 *pi2x;
DCL_INT16 *pi2y;
} HTS_CTRL_RA_T;
//HTS_CMD_ADC_TO_COORDINATE
typedef struct
{
DCL_BOOL fgValid;
DCL_INT16 *pi2x;
DCL_INT16 *pi2y;
} HTS_CTRL_ATC_T;
//HTS_CMD_GET_SPL_NUM
typedef struct
{
DCL_UINT32 u4SPLNum;
}HTS_CTRL_SN_T;
typedef union
{
HTS_CTRL_TL_T rTSCtrlTL;
HTS_CTRL_TPRA_T rTSCtrlTPRA;
HTS_CTRL_TSRA_T rTSCtrlTSRA;
HTS_CTRL_TPP_T rTSCtrlTPP;
HTS_CTRL_TPPV_T rTSCtrlTPPV;
HTS_CTRL_RA_T rTSCtrlRA;
HTS_CTRL_ATC_T rTSCtrlATC;
HTS_CTRL_CONFIG_T rTSCtrlConfig;
HTS_CTRL_DT_T rTSCtrlDebouncetime;
HTS_CTRL_SN_T rTSCtrlSPLNum;
}HTS_CTRL_DATA_T;
/*************************************************************************
* FUNCTION
* DclHTS_Close
*
* DESCRIPTION
* This function is to close the HW TS module.
*
* CALLS
* It is called to close HW TS module
*
* PARAMETERS
* None
*
* RETURNS
* DCL_STATUS_OK
* STATUS_INVALID_ARGUMENT: invalid arguments
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_Close(DCL_HANDLE handle);
/*************************************************************************
* FUNCTION
* DclHTS_Configure
*
* DESCRIPTION
* This function is to configure the HW TS module.
*
* CALLS
* It is called to configure of the HW TS module.
*
* PARAMETERS
* handle - a valid handle return by DclHTS_Open()
* configure - a structure which include the TS configuration.
*
* RETURNS
* STATUS_OK: command is executed successfully.
* STATUS_FAIL: not open yet.
* STATUS_INVALID_ARGUMENT: not a valid handle.
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
//extern DCL_STATUS DclHTS_Configure(DCL_HANDLE handle, DCL_CONFIGURE_T *configure);
/*************************************************************************
* FUNCTION
* DclHTS_Control
*
* DESCRIPTION
* This function is to send command to control the TS module.
*
* CALLS
* It is called to send command to control the TS module.
*
* PARAMETERS
* handle - a valid handle return by DclHTS_Open()
* cmd - a control command for TS module
* 1. HTS_CMD_TP_LEVEL :to detect whether TP is touched or NOT
* 2. HTS_CMD_TP_UPDATE_NOTIFY :to set a event to TP task to indicate we are at UP state
* 3. HTS_CMD_TP_READ_ADC :to read x and y adc value from AUXADC HW. (with touch_panel_filter_thresold which avoid detect error)
* 4. HTS_CMD_TP_PRESSURE :to check is touch panel pressed.
* 5. HTS_CMD_TS_DRV_INIT :to initial HW driver and switch on work around funciton
* 6. HTS_CMD_READ_ADC :to read adc from touch panel module. (with Landscape support, compile option: __PORTRAIT_LCM_SIMULATE_LANDSCAPE_LCM__)
* 7. HTS_CMD_TS_READ_ADC :to read x or y adc value from AUXADC HW.
*
* data - a union of DCL_CTRL_DATA_T
* rTSCtrlTL; //HTS_CTRL_TL_T
* rTSCtrlTPRA; //HTS_CTRL_TPRA_T
* rTSCtrlTPP; //HTS_CTRL_TPP_T
* rTSCtrlRA; //HTS_CTRL_RA_T
* rTSCtrlTSRA //HTS_CMD_TS_READ_ADC
*
* RETURNS
* STATUS_OK: command is executed successfully.
* STATUS_FAIL: command is failed.
* STATUS_INVALID_CMD: It's a invalid command.
* STATUS_INVALID_ARGUMENT: not a valid handle.
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_Control(DCL_HANDLE handle, HTS_CMD cmd, HTS_CTRL_DATA_T *data);
/*************************************************************************
* FUNCTION
* DclHTS_Initialize
*
* DESCRIPTION
* This function is to initialize HW TS module
*
* CALLS
* It is called to initialize HW TS module
*
* PARAMETERS
* None
*
* RETURNS
* DCL_STATUS_OK
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_Initialize(void);
/*************************************************************************
* FUNCTION
* DclHTS_Open
*
* DESCRIPTION
* This function is to open the TS HW module and return a handle
*
* CALLS
* It is called to open HW TS module
*
* PARAMETERS
* dev - valid for DCL_TS
* flags - no sepcial flags is needed. Please use FLAGS_NONE
*
* RETURNS
* DCL_HANDLE_INVALID - Open failed.
* Other value - a valid handle
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_HANDLE DclHTS_Open(HTS_DEV dev, DCL_FLAGS flags);
/*************************************************************************
* FUNCTION
* DclHTS_ReadData
*
* DESCRIPTION
* This function unsupported.
*
* CALLS
* It is unsupported.
*
* PARAMETERS
* handle
* buff
* buf_len
* options
*
* RETURNS
* STATUS_UNSUPPORTED: command unsupported
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_ReadData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN *buf_len, DCL_OPTIONS options);
/*************************************************************************
* FUNCTION
* DclHTS_RegisterCallback
*
* DESCRIPTION
* This function is to register HW TS call back funciton.
*
* CALLS
* It is called to register HW TS call back funciton.
*
* PARAMETERS
* event - a valid event indicate register which event's call back funciton
* 1. DCL_EVENT_HTS_PEN_DOWN,
* 2. DCL_EVENT_HTS_PEN_UP
* callback - a call back funciton
*
* RETURNS
* STATUS_OK: register is executed successfully.
* STATUS_FAIL: register is failed.
* STATUS_INVALID_CMD: It's a invalid command.
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_RegisterCallback(DCL_HANDLE handle, DCL_EVENT event, PFN_DCL_CALLBACK callback);
#endif