OLD | NEW |
---|---|
1 #ifndef CYAPA_H | 1 #ifndef _CYAPA_H |
2 #define CYAPA_H | 2 #define _CYAPA_H |
3 | 3 |
4 #include <linux/types.h> | |
5 #include <linux/ioctl.h> | |
4 | 6 |
5 #define CYAPA_I2C_NAME "cypress_i2c_apa" | 7 #define CYAPA_I2C_NAME "cypress_i2c_apa" |
8 #define CYAPA_MISC_NAME "cyapa_misc_dev" | |
Olof Johansson
2011/05/02 05:47:12
This is unneccessarily long. It means udev will cr
| |
6 | 9 |
7 /* Active power state scanning/processing refresh interval time. unit: ms. */ | 10 /* Active power state scanning/processing refresh interval time. unit: ms. */ |
8 #define CYAPA_ACTIVE_POLLING_INTVAL_TIME 0x00 | 11 #define CYAPA_ACTIVE_POLLING_INTVAL_TIME 0x00 |
9 /* Low power state scanning/processing refresh interval time. unit: ms. */ | 12 /* Low power state scanning/processing refresh interval time. unit: ms. */ |
10 #define CYAPA_LOWPOWER_POLLING_INTVAL_TIME 0x10 | 13 #define CYAPA_LOWPOWER_POLLING_INTVAL_TIME 0x10 |
11 /* Touch timeout for active power state. unit: ms. */ | 14 /* Touch timeout for active power state. unit: ms. */ |
12 #define CYAPA_ACTIVE_TOUCH_TIMEOUT 0xFF | 15 #define CYAPA_ACTIVE_TOUCH_TIMEOUT 0xFF |
13 | 16 |
14 /* Max report rate limited for Cypress Trackpad. */ | 17 /* Max report rate limited for Cypress Trackpad. */ |
15 #define CYAPA_NO_LIMITED_REPORT_RATE 0 | 18 #define CYAPA_NO_LIMITED_REPORT_RATE 0 |
16 #define CYAPA_REPORT_RATE (CYAPA_NO_LIMITED_REPORT_RATE) | 19 #define CYAPA_REPORT_RATE (CYAPA_NO_LIMITED_REPORT_RATE) |
17 #define CYAPA_POLLING_REPORTRATE_DEFAULT 125 | 20 #define CYAPA_POLLING_REPORTRATE_DEFAULT 60 |
18 | 21 |
22 /* trackpad device */ | |
23 enum cyapa_work_mode { | |
24 CYAPA_STREAM_MODE = 0x00, | |
25 CYAPA_BOOTLOAD_MODE = 0x01, | |
26 }; | |
19 | 27 |
20 /* APA trackpad firmware generation */ | 28 /* APA trackpad firmware generation */ |
21 enum cyapa_gen | 29 enum cyapa_gen { |
22 { | 30 » CYAPA_GEN1 = 0x01, /* only one finger supported. */ |
23 » CYAPA_GEN1 = 0x01, | 31 » CYAPA_GEN2 = 0x02, /* max five fingers supported. */ |
24 » CYAPA_GEN2 = 0x02, | |
25 }; | 32 }; |
26 | 33 |
27 /* | 34 /* |
28 ** APA trackpad power states. | 35 ** APA trackpad power states. |
29 ** Used in register 0x00, bit3-2, PowerMode field. | 36 ** Used in register 0x00, bit3-2, PowerMode field. |
30 */ | 37 */ |
31 enum cyapa_powerstate | 38 enum cyapa_powerstate { |
32 { | |
33 CYAPA_PWR_ACTIVE = 0x01, | 39 CYAPA_PWR_ACTIVE = 0x01, |
34 CYAPA_PWR_LIGHT_SLEEP = 0x02, | 40 CYAPA_PWR_LIGHT_SLEEP = 0x02, |
35 CYAPA_PWR_MEDIUM_SLEEP = 0x03, | 41 CYAPA_PWR_MEDIUM_SLEEP = 0x03, |
36 CYAPA_PWR_DEEP_SLEEP = 0x04, | 42 CYAPA_PWR_DEEP_SLEEP = 0x04, |
37 }; | 43 }; |
38 | 44 |
39 struct cyapa_platform_data | 45 struct cyapa_platform_data { |
40 { | 46 » __u32 flag; /* reserved for future use. */ |
41 » u32 flag; /* reserved for future use. */ | |
42 enum cyapa_gen gen; /* trackpad firmware generation. */ | 47 enum cyapa_gen gen; /* trackpad firmware generation. */ |
43 enum cyapa_powerstate power_state; | 48 enum cyapa_powerstate power_state; |
44 » unsigned use_absolute_mode:1; /* use absolute data report or relative d ata report. */ | 49 |
45 » unsigned use_polling_mode:1; /* use polling mode or interrupt mode. */ | 50 » /* active mode, polling refresh interval; ms */ |
46 » u8 polling_interval_time_active; /* active mode, polling refresh interv al; ms */ | 51 » __u8 polling_interval_time_active; |
47 » u8 polling_interval_time_lowpower; /* low power mode, polling refresh i nterval; ms */ | 52 » /* low power mode, polling refresh interval; ms */ |
48 » u8 active_touch_timeout; /* active touch timeout; ms */ | 53 » __u8 polling_interval_time_lowpower; |
54 » __u8 active_touch_timeout; /* active touch timeout; ms */ | |
49 char *name; /* device name of Cypress I2C trackpad. */ | 55 char *name; /* device name of Cypress I2C trackpad. */ |
50 » s16 irq_gpio; /* the gpio id used for interrupt to notify host data is ready. */ | 56 » /* the gpio id used for interrupt to notify host data is ready. */ |
51 » u32 report_rate; /* max limitation of data report rate. */ | 57 » __s16 irq_gpio; |
58 » __u32 report_rate; /* max limitation of data report rate. */ | |
52 | 59 |
53 int (*wakeup)(void); | 60 int (*wakeup)(void); |
54 int (*init)(void); | 61 int (*init)(void); |
55 }; | 62 }; |
56 | 63 |
57 | 64 |
58 #endif //#ifndef CYAPA_H | 65 /* |
66 ** Data structures for misc device ioclt read/write. | |
67 */ | |
68 struct cyapa_misc_ioctl_data { | |
69 » __u8 *buf; /* pointer to a buffer for read/write data. */ | |
70 » __u16 len; /* valid data lenght in buf. */ | |
71 » __u16 flag; /* additional flag to speical ioctl command. */ | |
72 » __u16 rev; /* reserved. */ | |
73 }; | |
74 | |
75 struct cyapa_driver_ver { | |
76 » __u8 major_ver; | |
77 » __u8 minor_ver; | |
78 » __u8 revision; | |
79 }; | |
80 | |
81 struct cyapa_firmware_ver { | |
82 » __u8 major_ver; | |
83 » __u8 minor_ver; | |
84 }; | |
85 | |
86 struct cyapa_hardware_ver { | |
87 » __u8 major_ver; | |
88 » __u8 minor_ver; | |
89 }; | |
90 | |
91 /* | |
92 ** Macro codes for misc device ioctl functions. | |
93 *********************************************************** | |
94 |device type|serial num|direction| data bytes | | |
95 |-----------|----------|---------|-------------| | |
96 | 8 bit | 8 bit | 2 bit | 8~14 bit | | |
97 |-----------|----------|---------|-------------| | |
98 *********************************************************** | |
99 */ | |
100 #define CYAPA_IOC_MAGIC 'C' | |
101 #define CYAPA_IOC(nr) _IOC(_IOC_NONE, CYAPA_IOC_MAGIC, nr, 0) | |
102 /* bytes value is the bytes should be read/writen in 'buf' area | |
103 ** in struct cyapa_misc_ioctl_data data structure. */ | |
104 #define CYAPA_IOC_R(nr, bytes) _IOC(IOC_OUT, CYAPA_IOC_MAGIC, nr, bytes) | |
105 #define CYAPA_IOC_W(nr, bytes) _IOC(IOC_IN, CYAPA_IOC_MAGIC, nr, bytes) | |
106 #define CYAPA_IOC_RW(nr, bytes) _IOC(IOC_INOUT, CYAPA_IOC_MAGIC, nr, bytes) | |
107 | |
108 | |
109 #define CYAPA_GET_PRODUCT_ID CYAPA_IOC_R(0x00, 16) | |
110 #define CYAPA_GET_DRIVER_VER CYAPA_IOC_R(0x01, 3) | |
111 #define CYAPA_GET_FIRMWARE_VER CYAPA_IOC_R(0x02, 2) | |
112 #define CYAPA_GET_HARDWARE_VER CYAPA_IOC_R(0x03, 2) | |
113 | |
114 #define CYAPA_SET_BOOTLOADER_MODE CYAPA_IOC(0x40) | |
115 #define CYAPA_SET_STREAM_MODE CYAPA_IOC(0x41) | |
116 | |
117 #endif /* #ifndef _CYAPA_H */ | |
OLD | NEW |