| /* |
| * Atmel maXTouch Touchscreen driver |
| * |
| * Copyright (C) 2010 Samsung Electronics Co.Ltd |
| * Author: Joonyoung Shim <jy0922.shim@samsung.com> |
| * Copyright (c) 2011-2013, The Linux Foundation. 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_336S 0x1A |
| #define MXT_BOOTLOADER_ID_1386 0x01 |
| #define MXT_BOOTLOADER_ID_1386E 0x10 |
| #define MXT_BOOTLOADER_ID_1664S 0x14 |
| |
| /* 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; |
| u32 reset_gpio_flags; |
| int irq_gpio; |
| u32 irq_gpio_flags; |
| int *key_codes; |
| bool need_calibration; |
| bool no_force_update; |
| u8 bl_addr; |
| |
| u8(*read_chg) (void); |
| int (*init_hw) (bool); |
| int (*power_on) (bool); |
| }; |
| |
| #endif /* __LINUX_ATMEL_MXT_TS_H */ |