Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
cf45b5a2
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
cf45b5a2
编写于
7月 29, 2012
作者:
D
Dmitry Torokhov
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next' into for-linus
Prepare second set of changes for 3.6 merge window.
上级
314820c9
c0394506
变更
8
展开全部
显示空白变更内容
内联
并排
Showing
8 changed file
with
1033 addition
and
3 deletion
+1033
-3
Documentation/input/edt-ft5x06.txt
Documentation/input/edt-ft5x06.txt
+54
-0
drivers/input/mouse/synaptics.c
drivers/input/mouse/synaptics.c
+22
-0
drivers/input/tablet/wacom_wac.c
drivers/input/tablet/wacom_wac.c
+19
-2
drivers/input/tablet/wacom_wac.h
drivers/input/tablet/wacom_wac.h
+2
-1
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/Kconfig
+13
-0
drivers/input/touchscreen/Makefile
drivers/input/touchscreen/Makefile
+1
-0
drivers/input/touchscreen/edt-ft5x06.c
drivers/input/touchscreen/edt-ft5x06.c
+898
-0
include/linux/input/edt-ft5x06.h
include/linux/input/edt-ft5x06.h
+24
-0
未找到文件。
Documentation/input/edt-ft5x06.txt
0 → 100644
浏览文件 @
cf45b5a2
EDT ft5x06 based Polytouch devices
----------------------------------
The edt-ft5x06 driver is useful for the EDT "Polytouch" family of capacitive
touch screens. Note that it is *not* suitable for other devices based on the
focaltec ft5x06 devices, since they contain vendor-specific firmware. In
particular this driver is not suitable for the Nook tablet.
It has been tested with the following devices:
* EP0350M06
* EP0430M06
* EP0570M06
* EP0700M06
The driver allows configuration of the touch screen via a set of sysfs files:
/sys/class/input/eventX/device/device/threshold:
allows setting the "click"-threshold in the range from 20 to 80.
/sys/class/input/eventX/device/device/gain:
allows setting the sensitivity in the range from 0 to 31. Note that
lower values indicate higher sensitivity.
/sys/class/input/eventX/device/device/offset:
allows setting the edge compensation in the range from 0 to 31.
/sys/class/input/eventX/device/device/report_rate:
allows setting the report rate in the range from 3 to 14.
For debugging purposes the driver provides a few files in the debug
filesystem (if available in the kernel). In /sys/kernel/debug/edt_ft5x06
you'll find the following files:
num_x, num_y:
(readonly) contains the number of sensor fields in X- and
Y-direction.
mode:
allows switching the sensor between "factory mode" and "operation
mode" by writing "1" or "0" to it. In factory mode (1) it is
possible to get the raw data from the sensor. Note that in factory
mode regular events don't get delivered and the options described
above are unavailable.
raw_data:
contains num_x * num_y big endian 16 bit values describing the raw
values for each sensor field. Note that each read() call on this
files triggers a new readout. It is recommended to provide a buffer
big enough to contain num_x * num_y * 2 bytes.
Note that reading raw_data gives a I/O error when the device is not in factory
mode. The same happens when reading/writing to the parameter files when the
device is not in regular operation mode.
drivers/input/mouse/synaptics.c
浏览文件 @
cf45b5a2
...
@@ -40,11 +40,27 @@
...
@@ -40,11 +40,27 @@
* Note that newer firmware allows querying device for maximum useable
* Note that newer firmware allows querying device for maximum useable
* coordinates.
* coordinates.
*/
*/
#define XMIN 0
#define XMAX 6143
#define YMIN 0
#define YMAX 6143
#define XMIN_NOMINAL 1472
#define XMIN_NOMINAL 1472
#define XMAX_NOMINAL 5472
#define XMAX_NOMINAL 5472
#define YMIN_NOMINAL 1408
#define YMIN_NOMINAL 1408
#define YMAX_NOMINAL 4448
#define YMAX_NOMINAL 4448
/* Size in bits of absolute position values reported by the hardware */
#define ABS_POS_BITS 13
/*
* Any position values from the hardware above the following limits are
* treated as "wrapped around negative" values that have been truncated to
* the 13-bit reporting range of the hardware. These are just reasonable
* guesses and can be adjusted if hardware is found that operates outside
* of these parameters.
*/
#define X_MAX_POSITIVE (((1 << ABS_POS_BITS) + XMAX) / 2)
#define Y_MAX_POSITIVE (((1 << ABS_POS_BITS) + YMAX) / 2)
/*****************************************************************************
/*****************************************************************************
* Stuff we need even when we do not want native Synaptics support
* Stuff we need even when we do not want native Synaptics support
...
@@ -588,6 +604,12 @@ static int synaptics_parse_hw_state(const unsigned char buf[],
...
@@ -588,6 +604,12 @@ static int synaptics_parse_hw_state(const unsigned char buf[],
hw
->
right
=
(
buf
[
0
]
&
0x02
)
?
1
:
0
;
hw
->
right
=
(
buf
[
0
]
&
0x02
)
?
1
:
0
;
}
}
/* Convert wrap-around values to negative */
if
(
hw
->
x
>
X_MAX_POSITIVE
)
hw
->
x
-=
1
<<
ABS_POS_BITS
;
if
(
hw
->
y
>
Y_MAX_POSITIVE
)
hw
->
y
-=
1
<<
ABS_POS_BITS
;
return
0
;
return
0
;
}
}
...
...
drivers/input/tablet/wacom_wac.c
浏览文件 @
cf45b5a2
...
@@ -464,7 +464,7 @@ static void wacom_intuos_general(struct wacom_wac *wacom)
...
@@ -464,7 +464,7 @@ static void wacom_intuos_general(struct wacom_wac *wacom)
t
=
(
data
[
6
]
<<
2
)
|
((
data
[
7
]
>>
6
)
&
3
);
t
=
(
data
[
6
]
<<
2
)
|
((
data
[
7
]
>>
6
)
&
3
);
if
((
features
->
type
>=
INTUOS4S
&&
features
->
type
<=
INTUOS4L
)
||
if
((
features
->
type
>=
INTUOS4S
&&
features
->
type
<=
INTUOS4L
)
||
(
features
->
type
>=
INTUOS5S
&&
features
->
type
<=
INTUOS5L
)
||
(
features
->
type
>=
INTUOS5S
&&
features
->
type
<=
INTUOS5L
)
||
features
->
type
==
WACOM_21UX2
||
features
->
type
==
WACOM_24HD
)
{
(
features
->
type
>=
WACOM_21UX2
&&
features
->
type
<=
WACOM_24HD
)
)
{
t
=
(
t
<<
1
)
|
(
data
[
1
]
&
1
);
t
=
(
t
<<
1
)
|
(
data
[
1
]
&
1
);
}
}
input_report_abs
(
input
,
ABS_PRESSURE
,
t
);
input_report_abs
(
input
,
ABS_PRESSURE
,
t
);
...
@@ -614,7 +614,7 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
...
@@ -614,7 +614,7 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
input_report_abs
(
input
,
ABS_MISC
,
0
);
input_report_abs
(
input
,
ABS_MISC
,
0
);
}
}
}
else
{
}
else
{
if
(
features
->
type
==
WACOM_21UX2
)
{
if
(
features
->
type
==
WACOM_21UX2
||
features
->
type
==
WACOM_22HD
)
{
input_report_key
(
input
,
BTN_0
,
(
data
[
5
]
&
0x01
));
input_report_key
(
input
,
BTN_0
,
(
data
[
5
]
&
0x01
));
input_report_key
(
input
,
BTN_1
,
(
data
[
6
]
&
0x01
));
input_report_key
(
input
,
BTN_1
,
(
data
[
6
]
&
0x01
));
input_report_key
(
input
,
BTN_2
,
(
data
[
6
]
&
0x02
));
input_report_key
(
input
,
BTN_2
,
(
data
[
6
]
&
0x02
));
...
@@ -633,6 +633,12 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
...
@@ -633,6 +633,12 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
input_report_key
(
input
,
BTN_Z
,
(
data
[
8
]
&
0x20
));
input_report_key
(
input
,
BTN_Z
,
(
data
[
8
]
&
0x20
));
input_report_key
(
input
,
BTN_BASE
,
(
data
[
8
]
&
0x40
));
input_report_key
(
input
,
BTN_BASE
,
(
data
[
8
]
&
0x40
));
input_report_key
(
input
,
BTN_BASE2
,
(
data
[
8
]
&
0x80
));
input_report_key
(
input
,
BTN_BASE2
,
(
data
[
8
]
&
0x80
));
if
(
features
->
type
==
WACOM_22HD
)
{
input_report_key
(
input
,
KEY_PROG1
,
data
[
9
]
&
0x01
);
input_report_key
(
input
,
KEY_PROG2
,
data
[
9
]
&
0x02
);
input_report_key
(
input
,
KEY_PROG3
,
data
[
9
]
&
0x04
);
}
}
else
{
}
else
{
input_report_key
(
input
,
BTN_0
,
(
data
[
5
]
&
0x01
));
input_report_key
(
input
,
BTN_0
,
(
data
[
5
]
&
0x01
));
input_report_key
(
input
,
BTN_1
,
(
data
[
5
]
&
0x02
));
input_report_key
(
input
,
BTN_1
,
(
data
[
5
]
&
0x02
));
...
@@ -1231,6 +1237,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
...
@@ -1231,6 +1237,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
case
CINTIQ
:
case
CINTIQ
:
case
WACOM_BEE
:
case
WACOM_BEE
:
case
WACOM_21UX2
:
case
WACOM_21UX2
:
case
WACOM_22HD
:
case
WACOM_24HD
:
case
WACOM_24HD
:
sync
=
wacom_intuos_irq
(
wacom_wac
);
sync
=
wacom_intuos_irq
(
wacom_wac
);
break
;
break
;
...
@@ -1432,6 +1439,12 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
...
@@ -1432,6 +1439,12 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
wacom_setup_cintiq
(
wacom_wac
);
wacom_setup_cintiq
(
wacom_wac
);
break
;
break
;
case
WACOM_22HD
:
__set_bit
(
KEY_PROG1
,
input_dev
->
keybit
);
__set_bit
(
KEY_PROG2
,
input_dev
->
keybit
);
__set_bit
(
KEY_PROG3
,
input_dev
->
keybit
);
/* fall through */
case
WACOM_21UX2
:
case
WACOM_21UX2
:
__set_bit
(
BTN_A
,
input_dev
->
keybit
);
__set_bit
(
BTN_A
,
input_dev
->
keybit
);
__set_bit
(
BTN_B
,
input_dev
->
keybit
);
__set_bit
(
BTN_B
,
input_dev
->
keybit
);
...
@@ -1858,6 +1871,9 @@ static const struct wacom_features wacom_features_0xF0 =
...
@@ -1858,6 +1871,9 @@ static const struct wacom_features wacom_features_0xF0 =
static
const
struct
wacom_features
wacom_features_0xCC
=
static
const
struct
wacom_features
wacom_features_0xCC
=
{
"Wacom Cintiq 21UX2"
,
WACOM_PKGLEN_INTUOS
,
87200
,
65600
,
2047
,
{
"Wacom Cintiq 21UX2"
,
WACOM_PKGLEN_INTUOS
,
87200
,
65600
,
2047
,
63
,
WACOM_21UX2
,
WACOM_INTUOS3_RES
,
WACOM_INTUOS3_RES
};
63
,
WACOM_21UX2
,
WACOM_INTUOS3_RES
,
WACOM_INTUOS3_RES
};
static
const
struct
wacom_features
wacom_features_0xFA
=
{
"Wacom Cintiq 22HD"
,
WACOM_PKGLEN_INTUOS
,
95840
,
54260
,
2047
,
63
,
WACOM_22HD
,
WACOM_INTUOS3_RES
,
WACOM_INTUOS3_RES
};
static
const
struct
wacom_features
wacom_features_0x90
=
static
const
struct
wacom_features
wacom_features_0x90
=
{
"Wacom ISDv4 90"
,
WACOM_PKGLEN_GRAPHIRE
,
26202
,
16325
,
255
,
{
"Wacom ISDv4 90"
,
WACOM_PKGLEN_GRAPHIRE
,
26202
,
16325
,
255
,
0
,
TABLETPC
,
WACOM_INTUOS_RES
,
WACOM_INTUOS_RES
};
0
,
TABLETPC
,
WACOM_INTUOS_RES
,
WACOM_INTUOS_RES
};
...
@@ -2075,6 +2091,7 @@ const struct usb_device_id wacom_ids[] = {
...
@@ -2075,6 +2091,7 @@ const struct usb_device_id wacom_ids[] = {
{
USB_DEVICE_WACOM
(
0xEF
)
},
{
USB_DEVICE_WACOM
(
0xEF
)
},
{
USB_DEVICE_WACOM
(
0x47
)
},
{
USB_DEVICE_WACOM
(
0x47
)
},
{
USB_DEVICE_WACOM
(
0xF4
)
},
{
USB_DEVICE_WACOM
(
0xF4
)
},
{
USB_DEVICE_WACOM
(
0xFA
)
},
{
USB_DEVICE_LENOVO
(
0x6004
)
},
{
USB_DEVICE_LENOVO
(
0x6004
)
},
{
}
{
}
};
};
...
...
drivers/input/tablet/wacom_wac.h
浏览文件 @
cf45b5a2
...
@@ -73,8 +73,9 @@ enum {
...
@@ -73,8 +73,9 @@ enum {
INTUOS5S
,
INTUOS5S
,
INTUOS5
,
INTUOS5
,
INTUOS5L
,
INTUOS5L
,
WACOM_24HD
,
WACOM_21UX2
,
WACOM_21UX2
,
WACOM_22HD
,
WACOM_24HD
,
CINTIQ
,
CINTIQ
,
WACOM_BEE
,
WACOM_BEE
,
WACOM_MO
,
WACOM_MO
,
...
...
drivers/input/touchscreen/Kconfig
浏览文件 @
cf45b5a2
...
@@ -472,6 +472,19 @@ config TOUCHSCREEN_PENMOUNT
...
@@ -472,6 +472,19 @@ config TOUCHSCREEN_PENMOUNT
To compile this driver as a module, choose M here: the
To compile this driver as a module, choose M here: the
module will be called penmount.
module will be called penmount.
config TOUCHSCREEN_EDT_FT5X06
tristate "EDT FocalTech FT5x06 I2C Touchscreen support"
depends on I2C
help
Say Y here if you have an EDT "Polytouch" touchscreen based
on the FocalTech FT5x06 family of controllers connected to
your system.
If unsure, say N.
To compile this driver as a module, choose M here: the
module will be called edt-ft5x06.
config TOUCHSCREEN_MIGOR
config TOUCHSCREEN_MIGOR
tristate "Renesas MIGO-R touchscreen"
tristate "Renesas MIGO-R touchscreen"
depends on SH_MIGOR && I2C
depends on SH_MIGOR && I2C
...
...
drivers/input/touchscreen/Makefile
浏览文件 @
cf45b5a2
...
@@ -24,6 +24,7 @@ obj-$(CONFIG_TOUCHSCREEN_CYTTSP_SPI) += cyttsp_spi.o
...
@@ -24,6 +24,7 @@ obj-$(CONFIG_TOUCHSCREEN_CYTTSP_SPI) += cyttsp_spi.o
obj-$(CONFIG_TOUCHSCREEN_DA9034)
+=
da9034-ts.o
obj-$(CONFIG_TOUCHSCREEN_DA9034)
+=
da9034-ts.o
obj-$(CONFIG_TOUCHSCREEN_DA9052)
+=
da9052_tsi.o
obj-$(CONFIG_TOUCHSCREEN_DA9052)
+=
da9052_tsi.o
obj-$(CONFIG_TOUCHSCREEN_DYNAPRO)
+=
dynapro.o
obj-$(CONFIG_TOUCHSCREEN_DYNAPRO)
+=
dynapro.o
obj-$(CONFIG_TOUCHSCREEN_EDT_FT5X06)
+=
edt-ft5x06.o
obj-$(CONFIG_TOUCHSCREEN_HAMPSHIRE)
+=
hampshire.o
obj-$(CONFIG_TOUCHSCREEN_HAMPSHIRE)
+=
hampshire.o
obj-$(CONFIG_TOUCHSCREEN_GUNZE)
+=
gunze.o
obj-$(CONFIG_TOUCHSCREEN_GUNZE)
+=
gunze.o
obj-$(CONFIG_TOUCHSCREEN_EETI)
+=
eeti_ts.o
obj-$(CONFIG_TOUCHSCREEN_EETI)
+=
eeti_ts.o
...
...
drivers/input/touchscreen/edt-ft5x06.c
0 → 100644
浏览文件 @
cf45b5a2
此差异已折叠。
点击以展开。
include/linux/input/edt-ft5x06.h
0 → 100644
浏览文件 @
cf45b5a2
#ifndef _EDT_FT5X06_H
#define _EDT_FT5X06_H
/*
* Copyright (c) 2012 Simon Budig, <simon.budig@kernelconcepts.de>
*
* 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.
*/
struct
edt_ft5x06_platform_data
{
int
irq_pin
;
int
reset_pin
;
/* startup defaults for operational parameters */
bool
use_parameters
;
u8
gain
;
u8
threshold
;
u8
offset
;
u8
report_rate
;
};
#endif
/* _EDT_FT5X06_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录