![Daniel Kurtz](/assets/img/avatar_default.png)
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. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Benson Leung <bleung@chromium.org> Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Tested-by: Olof Johansson <olof@lixom.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
/*
|
|
* Atmel maXTouch Touchscreen driver
|
|
*
|
|
* Copyright (C) 2010 Samsung Electronics Co.Ltd
|
|
* Author: Joonyoung Shim <jy0922.shim@samsung.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*/
|
|
|
|
#ifndef __LINUX_ATMEL_MXT_TS_H
|
|
#define __LINUX_ATMEL_MXT_TS_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
/* For key_map array */
|
|
#define MXT_NUM_GPIO 4
|
|
|
|
/* Orient */
|
|
#define MXT_NORMAL 0x0
|
|
#define MXT_DIAGONAL 0x1
|
|
#define MXT_HORIZONTAL_FLIP 0x2
|
|
#define MXT_ROTATED_90_COUNTER 0x3
|
|
#define MXT_VERTICAL_FLIP 0x4
|
|
#define MXT_ROTATED_90 0x5
|
|
#define MXT_ROTATED_180 0x6
|
|
#define MXT_DIAGONAL_COUNTER 0x7
|
|
|
|
/* The platform data for the Atmel maXTouch touchscreen driver */
|
|
struct mxt_platform_data {
|
|
const u8 *config;
|
|
size_t config_length;
|
|
|
|
unsigned int x_line;
|
|
unsigned int y_line;
|
|
unsigned int x_size;
|
|
unsigned int y_size;
|
|
unsigned int blen;
|
|
unsigned int threshold;
|
|
unsigned int voltage;
|
|
unsigned char orient;
|
|
unsigned long irqflags;
|
|
bool is_tp;
|
|
const unsigned int key_map[MXT_NUM_GPIO];
|
|
};
|
|
|
|
#endif /* __LINUX_ATMEL_MXT_TS_H */
|