亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sbc2440_buttons.c

?? QQ2440板子
?? C
字號(hào):
/* * 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. * * 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. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org> * Samsung S3C2410 keyboard support * * Based on various pxa ipaq drivers. *  * ChangeLog * * 2005-07-24: Arnaud Patard <arnaud.patard@rtp-net.org> * 	- Added key repeat * * 2005-07-23: Arnaud Patard <arnaud.patard@rtp-net.org> * 	- Renamed all kbd occurences to something like buttons * 	- Added debounce (specially usefull for iPAQ power button) * * 2005-06-21: Arnaud Patard <arnaud.patard@rtp-net.org> *      - Initial version * */#include <linux/config.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/interrupt.h>#include <linux/device.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/arch/regs-gpio.h>/* For id.version */#define S3C2410BUTVERSION	0x0001#define DRV_NAME		"s3c2410-buttons"#define REPEAT_DELAY		HZ/10#ifdef DEBUG#define dprintk(msg...) printk(KERN_DEBUG "s3c2410_buttons: " msg);#else#define dprintk(msg...)#endifMODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");MODULE_DESCRIPTION("s3c2410 buttons driver");MODULE_LICENSE("GPL");struct s3c2410_button {	int irq;	int pin;	int pin_setting;	int keycode;	char *name;	int last_state;	struct timer_list timer;};/* To be moved later to a better place */static struct s3c2410_button s3c2410_buttons[] = {	{ IRQ_EINT0,  S3C2410_GPF0,  S3C2410_GPF0_EINT0,    KEY_3,	"sbc2440_k1", 0 },	{ IRQ_EINT2,  S3C2410_GPF2,  S3C2410_GPF2_EINT2,    KEY_2,	"sbc2440_k2", 0 },	{ IRQ_EINT11, S3C2410_GPG3,  S3C2410_GPG3_EINT11,   KEY_1,	"sbc2440_k3", 0 }, 	{ IRQ_EINT19, S3C2410_GPG11, S3C2410_GPG11_EINT19,  KEY_ESC,	"sbc2440_k4", 0 },};struct s3c2410_buttons_private {	struct input_dev	dev;	spinlock_t		lock;	int 			count;	int			shift;		char			phys[32];};static struct s3c2410_buttons_private priv;static irqreturn_t s3c2410but_keyevent(int irq, void *dev_id, struct pt_regs *regs){	struct s3c2410_button *button = (struct s3c2410_button *)dev_id;	int down;	if (!button)		return IRQ_HANDLED;	down = !(s3c2410_gpio_getpin(button->pin));	/* the power button of the ipaq are tricky. They send 'released' events even	 * when the button are already released. The work-around is to proceed only 	 * if the state changed.	 **/	if (button->last_state == down)		return IRQ_HANDLED;	button->last_state = down;		dprintk("%s button %s\n",button->name, down ? "pressed" : "released");	input_report_key(&priv.dev, button->keycode, down);	input_sync(&priv.dev);	if (down)		mod_timer(&button->timer, jiffies + REPEAT_DELAY);	return IRQ_HANDLED;}static void s3c2410but_timer_callback(unsigned long data){		struct s3c2410_button *button = (struct s3c2410_button *) data;		int down;		down = !(s3c2410_gpio_getpin(button->pin));				if (down) {			dprintk("Timer: %s button %s\n",button->name, down ? "pressed" : "released");			input_report_key(&priv.dev, button->keycode, down);			input_sync(&priv.dev);			mod_timer(&button->timer, jiffies + REPEAT_DELAY);		}}static int __init s3c2410but_probe(struct device *dev){	int i;	/* Initialise input stuff */	memset(&priv, 0, sizeof(struct s3c2410_buttons_private));	init_input_dev(&priv.dev);	priv.dev.evbit[0] = BIT(EV_KEY);	sprintf(priv.phys, "input/s3c2410_buttons0");	priv.dev.private = &priv;	priv.dev.name = DRV_NAME;	priv.dev.phys = priv.phys;	priv.dev.id.bustype = BUS_HOST;	priv.dev.id.vendor = 0xDEAD;	priv.dev.id.product = 0xBEEF;	priv.dev.id.version = S3C2410BUTVERSION;	for (i = 0; i < ARRAY_SIZE (s3c2410_buttons); i++) {		set_bit(s3c2410_buttons[i].keycode, priv.dev.keybit);		s3c2410_gpio_cfgpin(s3c2410_buttons[i].pin,s3c2410_buttons[i].pin_setting);		request_irq (s3c2410_buttons[i].irq, s3c2410but_keyevent,\				SA_SAMPLE_RANDOM, s3c2410_buttons[i].name, &s3c2410_buttons[i]);		set_irq_type(s3c2410_buttons[i].irq, IRQT_BOTHEDGE);				init_timer(&s3c2410_buttons[i].timer);		s3c2410_buttons[i].timer.function = s3c2410but_timer_callback;		s3c2410_buttons[i].timer.data     = (unsigned long)&s3c2410_buttons[i];	}		printk(KERN_INFO "%s successfully loaded\n", DRV_NAME);	/* All went ok, so register to the input system */	input_register_device(&priv.dev);	return 0;}static int s3c2410but_remove(struct device *dev){	int i;	for (i = 0; i < ARRAY_SIZE (s3c2410_buttons); i++) {		disable_irq(s3c2410_buttons[i].irq);		free_irq(s3c2410_buttons[i].irq,&priv.dev);	}	input_unregister_device(&priv.dev);	return 0;}static struct device_driver s3c2410but_driver = {       .name           = DRV_NAME,       .bus            = &platform_bus_type,       .probe          = s3c2410but_probe,       .remove         = s3c2410but_remove,};int __init s3c2410but_init(void){	return driver_register(&s3c2410but_driver);}void __exit s3c2410but_exit(void){	driver_unregister(&s3c2410but_driver);}module_init(s3c2410but_init);module_exit(s3c2410but_exit);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夜夜爽夜夜爽精品视频| 精品少妇一区二区三区在线播放 | 九九九久久久精品| 亚洲国产精品精华液2区45| 免费黄网站欧美| 九九国产精品视频| 国产精品久久久久久久久动漫| 日本精品一区二区三区高清| 丝袜亚洲另类欧美| 国产精品色在线| 欧美一卡在线观看| 色就色 综合激情| 国产精品亚洲视频| 秋霞电影网一区二区| 国产精品不卡在线| 欧美mv和日韩mv的网站| 91黄色小视频| 成人爽a毛片一区二区免费| 蜜臀99久久精品久久久久久软件 | 成人精品免费看| 国产日本欧美一区二区| 欧美亚一区二区| 成人影视亚洲图片在线| 美国十次了思思久久精品导航| 亚洲色图19p| 夜夜精品浪潮av一区二区三区| 日本一区二区免费在线| 日韩三级中文字幕| 欧美日韩在线播| 在线观看av一区二区| av网站免费线看精品| 岛国一区二区在线观看| 国产精品自拍三区| 国产美女精品在线| 精品午夜一区二区三区在线观看| 亚洲.国产.中文慕字在线| 亚洲一区二区三区中文字幕 | 久久精品噜噜噜成人av农村| 三级影片在线观看欧美日韩一区二区 | 国产精品卡一卡二| 中文av一区二区| 国产精品美女久久久久久| 久久免费视频一区| 久久精品欧美一区二区三区麻豆| 精品国产乱码久久久久久牛牛| 日韩欧美一二区| 精品免费国产一区二区三区四区| 欧美成人综合网站| 久久久久国产精品厨房| 国产精品私人影院| 亚洲一区二区黄色| 奇米一区二区三区| 国产99精品国产| 欧美日韩美女一区二区| 日韩精品一区二区三区蜜臀 | 九九精品视频在线看| 成av人片一区二区| 欧美日韩国产影片| 国产午夜精品久久| 一区二区三区日本| 狠狠狠色丁香婷婷综合激情| av激情综合网| 91精品国产免费| 国产精品进线69影院| 五月天精品一区二区三区| 国产一区二区三区综合| 日本一二三四高清不卡| 亚洲成av人片一区二区三区| 国产成人亚洲综合a∨婷婷图片| 色综合久久中文字幕| 日韩精品资源二区在线| 18涩涩午夜精品.www| 亚洲图片一区二区| 国产精品视频麻豆| 国产成人综合亚洲网站| 欧美大片一区二区| 亚洲国产精品一区二区久久| 老司机精品视频导航| 色欧美片视频在线观看| 久久婷婷成人综合色| 一区二区三区在线视频观看 | 91精品国产乱| 国产精品乱码人人做人人爱| gogo大胆日本视频一区| 久久色在线视频| 国产精品一区二区无线| 精品国产成人系列| 黄色日韩三级电影| 欧美成人激情免费网| 亚洲va中文字幕| 色域天天综合网| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美大片日本大片免费观看| 久久亚洲精品国产精品紫薇| 日本成人中文字幕| 欧美一区二区三区在线视频| 男男视频亚洲欧美| 久久综合九色欧美综合狠狠| 国产一区二区三区美女| 精品第一国产综合精品aⅴ| 极品少妇xxxx偷拍精品少妇| 欧美大片顶级少妇| 国产一区不卡在线| 国产精品久久免费看| 99久久精品免费看国产| 亚洲女同一区二区| 欧美三级一区二区| 日本aⅴ免费视频一区二区三区| 日韩欧美国产高清| 成人黄色一级视频| 亚洲免费在线播放| 欧美一二三区精品| 国产91精品一区二区麻豆亚洲| 国产精品久久久久aaaa| 在线观看亚洲一区| 久久精品国产精品亚洲红杏 | 精品第一国产综合精品aⅴ| 成人av网站大全| 亚洲二区视频在线| 久久男人中文字幕资源站| 色偷偷一区二区三区| 日韩成人精品在线| 国产欧美va欧美不卡在线| 欧美中文字幕一区二区三区| 捆绑变态av一区二区三区| 亚洲特黄一级片| 日韩精品一区国产麻豆| 91精品福利视频| 国产精品一区二区久久精品爱涩 | 色视频成人在线观看免| 黑人巨大精品欧美一区| 亚洲在线视频网站| 国产午夜精品理论片a级大结局| 欧美三级午夜理伦三级中视频| 国产激情视频一区二区在线观看| 一区二区三区欧美久久| 国产农村妇女毛片精品久久麻豆 | 欧美大度的电影原声| 在线亚洲一区观看| 波多野结衣欧美| 国产资源在线一区| 美女视频一区在线观看| 亚洲一区二区中文在线| 国产精品久久精品日日| 久久久久久久久久久99999| 91精品国产手机| 欧美日韩亚洲综合一区| 一本色道久久加勒比精品| 国产不卡视频在线播放| 精品一区免费av| 青青草91视频| 五月天婷婷综合| 天天色图综合网| 日韩**一区毛片| 日韩国产一区二| 日韩va亚洲va欧美va久久| 亚洲五码中文字幕| 污片在线观看一区二区 | 国产精品乱码一区二区三区软件| 国产欧美一区二区精品久导航 | 99re在线视频这里只有精品| 色呦呦国产精品| 精品无人码麻豆乱码1区2区 | 午夜精品成人在线视频| 亚洲二区在线观看| 精品在线播放午夜| 成人久久久精品乱码一区二区三区| 91视频一区二区| 欧美日韩1区2区| 日韩精品一区二区三区在线播放| 精品国产一区二区亚洲人成毛片 | 日韩一区和二区| 国产免费久久精品| 亚洲综合免费观看高清完整版| 亚洲高清不卡在线观看| 精品一区二区免费| 在线一区二区视频| 中文字幕在线免费不卡| 亚洲欧洲三级电影| 蜜桃一区二区三区在线观看| 高清在线成人网| 欧美日韩一二区| 欧美高清在线一区| 日韩精品久久理论片| 国产精品白丝jk黑袜喷水| 色先锋资源久久综合| 日韩女优视频免费观看| 综合欧美一区二区三区| 麻豆精品精品国产自在97香蕉| 99久久精品免费看国产免费软件| 亚洲精品一区二区三区香蕉| 亚洲国产精品一区二区www| 丁香激情综合国产| 日韩欧美国产不卡| 亚洲成人av在线电影| 91福利国产精品| 亚洲美女淫视频| 91蜜桃视频在线| 中文字幕日本乱码精品影院| 国产一区二三区|