mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
3c93af8b20
Firmware reports minimum/maximum coordinates when touches are from outside of active area. Generate a release event in this case to handle touches that are going to inactive area. Add pdata entries for minimum values and check before reporting the coordinates to userspace. CRs-fixed: 326858 Change-Id: I385fb80eb670e539b45d232c04969c4502cdf65a Signed-off-by: Mohan Pallaka <mpallaka@codeaurora.org>
80 lines
1.9 KiB
C
80 lines
1.9 KiB
C
/*
|
|
* Atmel maXTouch Touchscreen driver
|
|
*
|
|
* Copyright (C) 2010 Samsung Electronics Co.Ltd
|
|
* Author: Joonyoung Shim <jy0922.shim@samsung.com>
|
|
* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
|
|
*
|
|
* 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>
|
|
|
|
/* 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
|
|
|
|
/* MXT_TOUCH_KEYARRAY_T15 */
|
|
#define MXT_KEYARRAY_MAX_KEYS 32
|
|
|
|
/* Bootoader IDs */
|
|
#define MXT_BOOTLOADER_ID_224 0x0A
|
|
#define MXT_BOOTLOADER_ID_224E 0x06
|
|
#define MXT_BOOTLOADER_ID_1386 0x01
|
|
#define MXT_BOOTLOADER_ID_1386E 0x10
|
|
|
|
/* Config data for a given maXTouch controller with a specific firmware */
|
|
struct mxt_config_info {
|
|
const u8 *config;
|
|
size_t config_length;
|
|
u8 family_id;
|
|
u8 variant_id;
|
|
u8 version;
|
|
u8 build;
|
|
u8 bootldr_id;
|
|
/* Points to the firmware name to be upgraded to */
|
|
const char *fw_name;
|
|
};
|
|
|
|
/* The platform data for the Atmel maXTouch touchscreen driver */
|
|
struct mxt_platform_data {
|
|
const struct mxt_config_info *config_array;
|
|
size_t config_array_size;
|
|
|
|
/* touch panel's minimum and maximum coordinates */
|
|
u32 panel_minx;
|
|
u32 panel_maxx;
|
|
u32 panel_miny;
|
|
u32 panel_maxy;
|
|
|
|
/* display's minimum and maximum coordinates */
|
|
u32 disp_minx;
|
|
u32 disp_maxx;
|
|
u32 disp_miny;
|
|
u32 disp_maxy;
|
|
|
|
unsigned long irqflags;
|
|
bool i2c_pull_up;
|
|
bool digital_pwr_regulator;
|
|
int reset_gpio;
|
|
int irq_gpio;
|
|
int *key_codes;
|
|
|
|
u8(*read_chg) (void);
|
|
int (*init_hw) (bool);
|
|
int (*power_on) (bool);
|
|
};
|
|
|
|
#endif /* __LINUX_ATMEL_MXT_TS_H */
|