This same driver can be used by atmel based touchscreens and touchpads (buttonpads). Platform data may specify a device is a touchpad using the is_tp flag. This will cause the driver to perform some touchpad specific initializations, such as: * register input device name "Atmel maXTouch Touchpad" instead of Touchscreen. * register BTN_LEFT & BTN_TOOL_* event types. * register axis resolution (as a fixed constant, for now) * register BUTTONPAD property * process GPIO buttons using reportid T19 Input event GPIO mapping is done by the platform data key_map array. key_map[x] should contain the KEY or BTN code to send when processing GPIOx from T19. To specify a GPIO as not an input source, populate with KEY_RESERVED, or 0.
Showing the changes to include (1 of 2 files). Show all
Unified · Split
| @@ -15,6 +15,9 @@ · 14 unmodified lines | ||
| 15 | 15 | |
| 16 | 16 | #include <linux/types.h> |
| 17 | 17 | |
| 18 | +/* For key_map array */ | |
| 19 | +#define MXT_NUM_GPIO 4 | |
| 20 | + | |
| 18 | 21 | /* Orient */ |
| 19 | 22 | #define MXT_NORMAL 0x0 |
| 20 | 23 | #define MXT_DIAGONAL 0x1 |
| @@ -39,6 +42,8 @@ struct mxt_platform_data { · 18 unmodified lines | ||
| 39 | 42 | unsigned int voltage; |
| 40 | 43 | unsigned char orient; |
| 41 | 44 | unsigned long irqflags; |
| 45 | + bool is_tp; | |
| 46 | + const unsigned int key_map[MXT_NUM_GPIO]; | |
| 42 | 47 | }; |
| 43 | 48 | |
| 44 | 49 | #endif /* __LINUX_ATMEL_MXT_TS_H */ |