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

Unified 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, 8 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 side-by-side diff with in-line comments
Download patch
« drivers/input/mouse/cypress_i2c.c ('K') | « drivers/input/mouse/cypress_i2c.c ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/linux/cyapa.h
diff --git a/include/linux/cyapa.h b/include/linux/cyapa.h
index a8f22cd068bd513b2faf2bd4f92ea0f1852e6355..c21d95f02dd13213a50ef1771a477d166c945c90 100644
--- a/include/linux/cyapa.h
+++ b/include/linux/cyapa.h
@@ -1,8 +1,11 @@
-#ifndef CYAPA_H
-#define CYAPA_H
+#ifndef _CYAPA_H
+#define _CYAPA_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
#define CYAPA_I2C_NAME "cypress_i2c_apa"
+#define CYAPA_MISC_NAME "cyapa_misc_dev"
Olof Johansson 2011/05/02 05:47:12 This is unneccessarily long. It means udev will cr
/* Active power state scanning/processing refresh interval time. unit: ms. */
#define CYAPA_ACTIVE_POLLING_INTVAL_TIME 0x00
@@ -14,45 +17,101 @@
/* Max report rate limited for Cypress Trackpad. */
#define CYAPA_NO_LIMITED_REPORT_RATE 0
#define CYAPA_REPORT_RATE (CYAPA_NO_LIMITED_REPORT_RATE)
-#define CYAPA_POLLING_REPORTRATE_DEFAULT 125
+#define CYAPA_POLLING_REPORTRATE_DEFAULT 60
+/* trackpad device */
+enum cyapa_work_mode {
+ CYAPA_STREAM_MODE = 0x00,
+ CYAPA_BOOTLOAD_MODE = 0x01,
+};
/* APA trackpad firmware generation */
-enum cyapa_gen
-{
- CYAPA_GEN1 = 0x01,
- CYAPA_GEN2 = 0x02,
+enum cyapa_gen {
+ CYAPA_GEN1 = 0x01, /* only one finger supported. */
+ CYAPA_GEN2 = 0x02, /* max five fingers supported. */
};
/*
** APA trackpad power states.
** Used in register 0x00, bit3-2, PowerMode field.
*/
-enum cyapa_powerstate
-{
+enum cyapa_powerstate {
CYAPA_PWR_ACTIVE = 0x01,
CYAPA_PWR_LIGHT_SLEEP = 0x02,
CYAPA_PWR_MEDIUM_SLEEP = 0x03,
CYAPA_PWR_DEEP_SLEEP = 0x04,
};
-struct cyapa_platform_data
-{
- u32 flag; /* reserved for future use. */
+struct cyapa_platform_data {
+ __u32 flag; /* reserved for future use. */
enum cyapa_gen gen; /* trackpad firmware generation. */
enum cyapa_powerstate power_state;
- unsigned use_absolute_mode:1; /* use absolute data report or relative data report. */
- unsigned use_polling_mode:1; /* use polling mode or interrupt mode. */
- u8 polling_interval_time_active; /* active mode, polling refresh interval; ms */
- u8 polling_interval_time_lowpower; /* low power mode, polling refresh interval; ms */
- u8 active_touch_timeout; /* active touch timeout; ms */
+
+ /* active mode, polling refresh interval; ms */
+ __u8 polling_interval_time_active;
+ /* low power mode, polling refresh interval; ms */
+ __u8 polling_interval_time_lowpower;
+ __u8 active_touch_timeout; /* active touch timeout; ms */
char *name; /* device name of Cypress I2C trackpad. */
- s16 irq_gpio; /* the gpio id used for interrupt to notify host data is ready. */
- u32 report_rate; /* max limitation of data report rate. */
+ /* the gpio id used for interrupt to notify host data is ready. */
+ __s16 irq_gpio;
+ __u32 report_rate; /* max limitation of data report rate. */
int (*wakeup)(void);
int (*init)(void);
};
-#endif //#ifndef CYAPA_H
+/*
+** Data structures for misc device ioclt read/write.
+*/
+struct cyapa_misc_ioctl_data {
+ __u8 *buf; /* pointer to a buffer for read/write data. */
+ __u16 len; /* valid data lenght in buf. */
+ __u16 flag; /* additional flag to speical ioctl command. */
+ __u16 rev; /* reserved. */
+};
+
+struct cyapa_driver_ver {
+ __u8 major_ver;
+ __u8 minor_ver;
+ __u8 revision;
+};
+
+struct cyapa_firmware_ver {
+ __u8 major_ver;
+ __u8 minor_ver;
+};
+
+struct cyapa_hardware_ver {
+ __u8 major_ver;
+ __u8 minor_ver;
+};
+
+/*
+** Macro codes for misc device ioctl functions.
+***********************************************************
+|device type|serial num|direction| data bytes |
+|-----------|----------|---------|-------------|
+| 8 bit | 8 bit | 2 bit | 8~14 bit |
+|-----------|----------|---------|-------------|
+***********************************************************
+*/
+#define CYAPA_IOC_MAGIC 'C'
+#define CYAPA_IOC(nr) _IOC(_IOC_NONE, CYAPA_IOC_MAGIC, nr, 0)
+/* bytes value is the bytes should be read/writen in 'buf' area
+** in struct cyapa_misc_ioctl_data data structure. */
+#define CYAPA_IOC_R(nr, bytes) _IOC(IOC_OUT, CYAPA_IOC_MAGIC, nr, bytes)
+#define CYAPA_IOC_W(nr, bytes) _IOC(IOC_IN, CYAPA_IOC_MAGIC, nr, bytes)
+#define CYAPA_IOC_RW(nr, bytes) _IOC(IOC_INOUT, CYAPA_IOC_MAGIC, nr, bytes)
+
+
+#define CYAPA_GET_PRODUCT_ID CYAPA_IOC_R(0x00, 16)
+#define CYAPA_GET_DRIVER_VER CYAPA_IOC_R(0x01, 3)
+#define CYAPA_GET_FIRMWARE_VER CYAPA_IOC_R(0x02, 2)
+#define CYAPA_GET_HARDWARE_VER CYAPA_IOC_R(0x03, 2)
+
+#define CYAPA_SET_BOOTLOADER_MODE CYAPA_IOC(0x40)
+#define CYAPA_SET_STREAM_MODE CYAPA_IOC(0x41)
+
+#endif /* #ifndef _CYAPA_H */
« 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