Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Side by Side Diff: include/linux/cyapa.h

Issue 6905092: cyapa: support MT-A protocol, and add cyapa_misc_dev interface Base URL: http://git.chromium.org/git/kernel-next.git@chromeos-2.6.38
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 */
OLDNEW
« drivers/input/mouse/cypress_i2c.c ('K') | « drivers/input/mouse/cypress_i2c.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698