Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
a90c4fb8
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
a90c4fb8
编写于
7月 27, 2009
作者:
E
Eric Miao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ARM] pxa/corgi: make use of GPIO based matrix keypad driver
Signed-off-by:
N
Eric Miao
<
eric.y.miao@gmail.com
>
上级
e2c509c7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
130 addition
and
1 deletion
+130
-1
arch/arm/mach-pxa/corgi.c
arch/arm/mach-pxa/corgi.c
+130
-1
未找到文件。
arch/arm/mach-pxa/corgi.c
浏览文件 @
a90c4fb8
...
...
@@ -29,6 +29,7 @@
#include <linux/spi/ads7846.h>
#include <linux/spi/corgi_lcd.h>
#include <linux/mtd/sharpsl.h>
#include <linux/input/matrix_keypad.h>
#include <video/w100fb.h>
#include <asm/setup.h>
...
...
@@ -104,6 +105,28 @@ static unsigned long corgi_pin_config[] __initdata = {
GPIO6_MMC_CLK
,
GPIO8_MMC_CS0
,
/* GPIO Matrix Keypad */
GPIO66_GPIO
,
/* column 0 */
GPIO67_GPIO
,
/* column 1 */
GPIO68_GPIO
,
/* column 2 */
GPIO69_GPIO
,
/* column 3 */
GPIO70_GPIO
,
/* column 4 */
GPIO71_GPIO
,
/* column 5 */
GPIO72_GPIO
,
/* column 6 */
GPIO73_GPIO
,
/* column 7 */
GPIO74_GPIO
,
/* column 8 */
GPIO75_GPIO
,
/* column 9 */
GPIO76_GPIO
,
/* column 10 */
GPIO77_GPIO
,
/* column 11 */
GPIO58_GPIO
,
/* row 0 */
GPIO59_GPIO
,
/* row 1 */
GPIO60_GPIO
,
/* row 2 */
GPIO61_GPIO
,
/* row 3 */
GPIO62_GPIO
,
/* row 4 */
GPIO63_GPIO
,
/* row 5 */
GPIO64_GPIO
,
/* row 6 */
GPIO65_GPIO
,
/* row 7 */
/* GPIO */
GPIO9_GPIO
,
/* CORGI_GPIO_nSD_DETECT */
GPIO7_GPIO
,
/* CORGI_GPIO_nSD_WP */
...
...
@@ -267,9 +290,115 @@ static struct platform_device corgifb_device = {
/*
* Corgi Keyboard Device
*/
#define CORGI_KEY_CALENDER KEY_F1
#define CORGI_KEY_ADDRESS KEY_F2
#define CORGI_KEY_FN KEY_F3
#define CORGI_KEY_CANCEL KEY_F4
#define CORGI_KEY_OFF KEY_SUSPEND
#define CORGI_KEY_EXOK KEY_F5
#define CORGI_KEY_EXCANCEL KEY_F6
#define CORGI_KEY_EXJOGDOWN KEY_F7
#define CORGI_KEY_EXJOGUP KEY_F8
#define CORGI_KEY_JAP1 KEY_LEFTCTRL
#define CORGI_KEY_JAP2 KEY_LEFTALT
#define CORGI_KEY_MAIL KEY_F10
#define CORGI_KEY_OK KEY_F11
#define CORGI_KEY_MENU KEY_F12
static
const
uint32_t
corgikbd_keymap
[]
=
{
KEY
(
0
,
1
,
KEY_1
),
KEY
(
0
,
2
,
KEY_3
),
KEY
(
0
,
3
,
KEY_5
),
KEY
(
0
,
4
,
KEY_6
),
KEY
(
0
,
5
,
KEY_7
),
KEY
(
0
,
6
,
KEY_9
),
KEY
(
0
,
7
,
KEY_0
),
KEY
(
0
,
8
,
KEY_BACKSPACE
),
KEY
(
1
,
1
,
KEY_2
),
KEY
(
1
,
2
,
KEY_4
),
KEY
(
1
,
3
,
KEY_R
),
KEY
(
1
,
4
,
KEY_Y
),
KEY
(
1
,
5
,
KEY_8
),
KEY
(
1
,
6
,
KEY_I
),
KEY
(
1
,
7
,
KEY_O
),
KEY
(
1
,
8
,
KEY_P
),
KEY
(
2
,
0
,
KEY_TAB
),
KEY
(
2
,
1
,
KEY_Q
),
KEY
(
2
,
2
,
KEY_E
),
KEY
(
2
,
3
,
KEY_T
),
KEY
(
2
,
4
,
KEY_G
),
KEY
(
2
,
5
,
KEY_U
),
KEY
(
2
,
6
,
KEY_J
),
KEY
(
2
,
7
,
KEY_K
),
KEY
(
3
,
0
,
CORGI_KEY_CALENDER
),
KEY
(
3
,
1
,
KEY_W
),
KEY
(
3
,
2
,
KEY_S
),
KEY
(
3
,
3
,
KEY_F
),
KEY
(
3
,
4
,
KEY_V
),
KEY
(
3
,
5
,
KEY_H
),
KEY
(
3
,
6
,
KEY_M
),
KEY
(
3
,
7
,
KEY_L
),
KEY
(
3
,
9
,
KEY_RIGHTSHIFT
),
KEY
(
4
,
0
,
CORGI_KEY_ADDRESS
),
KEY
(
4
,
1
,
KEY_A
),
KEY
(
4
,
2
,
KEY_D
),
KEY
(
4
,
3
,
KEY_C
),
KEY
(
4
,
4
,
KEY_B
),
KEY
(
4
,
5
,
KEY_N
),
KEY
(
4
,
6
,
KEY_DOT
),
KEY
(
4
,
8
,
KEY_ENTER
),
KEY
(
4
,
10
,
KEY_LEFTSHIFT
),
KEY
(
5
,
0
,
CORGI_KEY_MAIL
),
KEY
(
5
,
1
,
KEY_Z
),
KEY
(
5
,
2
,
KEY_X
),
KEY
(
5
,
3
,
KEY_MINUS
),
KEY
(
5
,
4
,
KEY_SPACE
),
KEY
(
5
,
5
,
KEY_COMMA
),
KEY
(
5
,
7
,
KEY_UP
),
KEY
(
5
,
11
,
CORGI_KEY_FN
),
KEY
(
6
,
0
,
KEY_SYSRQ
),
KEY
(
6
,
1
,
CORGI_KEY_JAP1
),
KEY
(
6
,
2
,
CORGI_KEY_JAP2
),
KEY
(
6
,
3
,
CORGI_KEY_CANCEL
),
KEY
(
6
,
4
,
CORGI_KEY_OK
),
KEY
(
6
,
5
,
CORGI_KEY_MENU
),
KEY
(
6
,
6
,
KEY_LEFT
),
KEY
(
6
,
7
,
KEY_DOWN
),
KEY
(
6
,
8
,
KEY_RIGHT
),
KEY
(
7
,
0
,
CORGI_KEY_OFF
),
KEY
(
7
,
1
,
CORGI_KEY_EXOK
),
KEY
(
7
,
2
,
CORGI_KEY_EXCANCEL
),
KEY
(
7
,
3
,
CORGI_KEY_EXJOGDOWN
),
KEY
(
7
,
4
,
CORGI_KEY_EXJOGUP
),
};
static
struct
matrix_keymap_data
corgikbd_keymap_data
=
{
.
keymap
=
corgikbd_keymap
,
.
keymap_size
=
ARRAY_SIZE
(
corgikbd_keymap
),
};
static
const
int
corgikbd_row_gpios
[]
=
{
58
,
59
,
60
,
61
,
62
,
63
,
64
,
65
};
static
const
int
corgikbd_col_gpios
[]
=
{
66
,
67
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
75
,
76
,
77
};
static
struct
matrix_keypad_platform_data
corgikbd_pdata
=
{
.
keymap_data
=
&
corgikbd_keymap_data
,
.
row_gpios
=
corgikbd_row_gpios
,
.
col_gpios
=
corgikbd_col_gpios
,
.
num_row_gpios
=
ARRAY_SIZE
(
corgikbd_row_gpios
),
.
num_col_gpios
=
ARRAY_SIZE
(
corgikbd_col_gpios
),
.
col_scan_delay_us
=
10
,
.
debounce_ms
=
10
,
.
wakeup
=
1
,
};
static
struct
platform_device
corgikbd_device
=
{
.
name
=
"
corgi-keyboar
d"
,
.
name
=
"
matrix-keypa
d"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
corgikbd_pdata
,
},
};
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录