当前位置: 技术问答>linux和unix
按键驱动buttom.c
来源: 互联网 发布时间:2016-06-18
本文导语: 请教各位大哥:我在看一个s3c2410-button.c的按键驱动,一步步的分析,看到中断处理程序这里buttons_irq(int irq,void *dev_id,struct pt_regs *req),然后就有点卡住了,问题是在这儿: s3c2410_gpio_cfgpin(k->gpio_port, k->IN); up = s3c2...
请教各位大哥:我在看一个s3c2410-button.c的按键驱动,一步步的分析,看到中断处理程序这里buttons_irq(int irq,void *dev_id,struct pt_regs *req),然后就有点卡住了,问题是在这儿:
s3c2410_gpio_cfgpin(k->gpio_port, k->IN);
up = s3c2410_gpio_getpin(k->gpio_port);
local_irq_restore(flags);
s3c_irqext_type(irq, type);
if(irqkey_no;
ready=1;
}
然后其中s3c2410_gpio_cfgpin的原程序是这样的
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
{
void __iomem *base = S3C24XX_GPIO_BASE(pin);
unsigned long mask;
unsigned long con;
unsigned long flags;
if (pin
s3c2410_gpio_cfgpin(k->gpio_port, k->IN);
up = s3c2410_gpio_getpin(k->gpio_port);
local_irq_restore(flags);
s3c_irqext_type(irq, type);
if(irqkey_no;
ready=1;
}
然后其中s3c2410_gpio_cfgpin的原程序是这样的
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
{
void __iomem *base = S3C24XX_GPIO_BASE(pin);
unsigned long mask;
unsigned long con;
unsigned long flags;
if (pin