diff options
author | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-06-02 13:09:29 +0200 |
---|---|---|
committer | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-06-02 13:09:29 +0200 |
commit | c6da2cfeb05178a11c6d062a06f8078150ee492f (patch) | |
tree | f3b4021d252c52d6463a9b3c1bb7245e399b009c /drivers/input/touchscreen/s5pc210_ts.h | |
parent | c6d7c4dbff353eac7919342ae6b3299a378160a6 (diff) | |
download | kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.tar.gz kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.tar.bz2 kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.zip |
samsung update 1
Diffstat (limited to 'drivers/input/touchscreen/s5pc210_ts.h')
-rw-r--r-- | drivers/input/touchscreen/s5pc210_ts.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/s5pc210_ts.h b/drivers/input/touchscreen/s5pc210_ts.h new file mode 100644 index 00000000000..fc5cecb54ee --- /dev/null +++ b/drivers/input/touchscreen/s5pc210_ts.h @@ -0,0 +1,120 @@ +/* driver/input/touchscreen/s5pc210_ts.h + * + * Copyright (c) 2011 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * S5PC210 10.1" Touchscreen driver information + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#ifndef _S5PV310_TS_H_ +#define _S5PV310_TS_H_ + +#ifdef CONFIG_HAS_EARLYSUSPEND +#include <linux/earlysuspend.h> +#endif + +#include <mach/board_rev.h> + +#define S5PV310_TS_DEVICE_NAME "s5pc210_ts" + +#define TOUCH_PRESS 1 +#define TOUCH_RELEASE 0 + +/* Touch Configuration */ + +/* Touch Interrupt define */ +#ifdef CONFIG_MACH_SMDK4X12 + +#define TS_ATTB samsung_board_rev_is_0_0() ? EXYNOS4_GPX1(6) : EXYNOS4212_GPM3(4) +#define S5PV310_TS_IRQ gpio_to_irq(TS_ATTB) + +/* Touch should be reset before using. In order to reset it, the reset pin + should be set OUTPUT HIGH. The Reset pin is EXYNOS4_GPX1(5) (XEINT 13). + However, the SMDK4X12 uses this pin for resetting both LCD and touchscreen. + Therefore, it assumes that LCD driver will reset them by this pin. */ + +#elif defined (CONFIG_MACH_SMDKV310) + +#define S5PV310_TS_IRQ gpio_to_irq(EXYNOS4_GPX3(5)) +#define TS_ATTB (EXYNOS4_GPX3(5)) + +#else +#error Unsupported board! +#endif + +#define TS_ABS_MIN_X 0 +#define TS_ABS_MIN_Y 0 +#define TS_ABS_MAX_X 1366 +#define TS_ABS_MAX_Y 768 + +#define TS_X_THRESHOLD 1 +#define TS_Y_THRESHOLD 1 + + +/* touch register */ +#define MODULE_CALIBRATION 0x37 +#define MODULE_POWERMODE 0x14 +#define MODULE_INTMODE 0x15 +#define MODULE_INTWIDTH 0x16 + +#define PERIOD_10MS (HZ/100) /* 10ms */ +#define PERIOD_20MS (HZ/50) /* 20ms */ +#define PERIOD_50MS (HZ/20) /* 50ms */ + +#define TOUCH_STATE_BOOT 0 +#define TOUCH_STATE_RESUME 1 + +/* Touch hold event */ +#define SW_TOUCH_HOLD 0x09 + +#if defined(CONFIG_TOUCHSCREEN_EXYNOS4) +/* multi-touch data process struct */ +struct touch_process_data_t { + unsigned char finger_cnt; + unsigned int x1; + unsigned int y1; + unsigned int x2; + unsigned int y2; +}; +#endif + +struct s5pv310_ts_t { + struct input_dev *driver; + + /* seqlock_t */ + seqlock_t lock; + unsigned int seq; + + /* timer */ + struct timer_list penup_timer; + + /* data store */ + unsigned int status; + unsigned int x; + unsigned int y; + unsigned char rd[10]; + + /* sysfs used */ + unsigned char hold_status; + unsigned char sampling_rate; + + /* x data threshold (0-10) : default 3 */ + unsigned char threshold_x; + /* y data threshold (0-10) : default 3 */ + unsigned char threshold_y; + /* touch sensitivity (0-255) : default 0x14 */ + unsigned char sensitivity; + +#if defined CONFIG_TOUCHSCREEN_EXYNOS4 +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend power; +#endif +#endif +}; + +extern struct s5pv310_ts_t s5pv310_ts; +#endif |