1 #ifndef __IST30XX_TRACKING_H__
\r
2 #define __IST30XX_TRACKING_H__
\r
5 #define IST30XX_RINGBUF_NO_ERR (0)
\r
6 #define IST30XX_RINGBUF_NOT_ENOUGH (1)
\r
7 #define IST30XX_RINGBUF_EMPTY (2)
\r
8 #define IST30XX_RINGBUF_FULL (3)
\r
9 #define IST30XX_RINGBUF_TIMEOUT (4)
\r
10 #define IST30XX_MAX_LOG_SIZE (4 * 100 * 1024) // 4bytes * 100Kbytes, Single touch: about 12minutes
\r
12 #define TRACK_PWR_ON (0x1)
\r
13 #define TRACK_PWR_OFF (0x2)
\r
14 #define TRACK_PWR_RESET (0x3)
\r
15 #define TRACK_INTR_ENABLE (0x4)
\r
16 #define TRACK_INTR_DISABLE (0x5)
\r
17 #define TRACK_CMD_RUN_DEVICE (0x10)
\r
18 #define TRACK_CMD_SCAN (0x11)
\r
19 #define TRACK_CMD_TACON (0x12)
\r
20 #define TRACK_CMD_TADISCON (0x13)
\r
21 #define TRACK_CMD_FWUPDATE (0x14)
\r
22 #define TRACK_CMD_PRUPDATE (0x15)
\r
23 #define TRACK_CMD_CALIB (0x16)
\r
24 #define TRACK_CMD_CHECK_CALIB (0x17)
\r
25 #define TRACK_CMD_CHKSUM (0x18)
\r
26 #define TRACK_CMD_CHKSUM_ALL (0x19)
\r
27 #define TRACK_CMD_ENTER_REG (0x1A)
\r
28 #define TRACK_CMD_EXIT_REG (0x1B)
\r
29 #define TRACK_POS_FINGER (0x20)
\r
30 #define TRACK_POS_KEY (0x30)
\r
31 #define TRACK_POS_UNKNOWN (0x3F)
\r
33 #define IST30XX_TRACKING_MAGIC (0x7750 << 16)
\r
36 typedef struct _IST30XX_RINGBUF {
\r
37 u32 RingBufCtr; // Number of characters in the ring buffer
\r
40 u8 LogBuf[IST30XX_MAX_LOG_SIZE]; // Ring buffer for status
\r
44 void ist30xx_tracking_init(void);
\r
45 void ist30xx_tracking_deinit(void);
\r
47 int ist30xx_get_track(u32 *track, int cnt);
\r
48 int ist30xx_put_track(u32 *track, int cnt);
\r
49 int ist30xx_put_track_ms(u32 ms);
\r
51 u32 ist30xx_get_track_cnt(void);
\r
53 int ist30xx_tracking(u32 status);
\r
55 int ist30xx_init_tracking_sysfs(void);
\r
57 #endif // __IST30XX_TRACKING_H__
\r