Chromium Code Reviews| 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 |