blob: 2310989ff020623f28eb821fb97278031bd2adf1 [file] [log] [blame]
/*
*
* FocalTech ft5x06 TouchScreen driver header file.
*
* Copyright (c) 2010 Focal tech Ltd.
* Copyright (c) 2012-2015, 2018 The Linux Foundation. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef __LINUX_FT5X06_TS_H__
#define __LINUX_FT5X06_TS_H__
#define FT5X06_ID 0x55
#define FT5X16_ID 0x0A
#define FT5X36_ID 0x14
#define FT6X06_ID 0x06
#define FT6X36_ID 0x36
struct fw_upgrade_info {
bool auto_cal;
u16 delay_aa;
u16 delay_55;
u8 upgrade_id_1;
u8 upgrade_id_2;
u16 delay_readid;
u16 delay_erase_flash;
};
struct ft5x06_gesture_platform_data {
int gesture_enable_to_set; /* enable/disable gesture */
int in_pocket; /* whether in pocket mode or not */
struct device *dev;
struct class *gesture_class;
struct ft5x06_ts_data *data;
};
struct ft5x06_ts_platform_data {
struct fw_upgrade_info info;
const char *name;
const char *fw_name;
u32 irqflags;
u32 irq_gpio;
u32 irq_gpio_flags;
u32 reset_gpio;
u32 reset_gpio_flags;
u32 family_id;
u32 x_max;
u32 y_max;
u32 x_min;
u32 y_min;
u32 panel_minx;
u32 panel_miny;
u32 panel_maxx;
u32 panel_maxy;
u32 group_id;
u32 hard_rst_dly;
u32 soft_rst_dly;
u32 num_max_touches;
bool fw_vkey_support;
bool no_force_update;
bool i2c_pull_up;
bool ignore_id_check;
bool gesture_support;
bool resume_in_workqueue;
int (*power_init)(bool);
int (*power_on)(bool);
};
#endif