双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于mini2440按键驱动

VNROOY VNROOY 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟最近在学习驱动,在做到按键驱动设计的时候,发现设备使用的是平台类型注册的,但是在平台类型驱动的prob函数里面又注册了混杂设备。着实不解:怎么又是平台又是混杂的?

//下面这段代码是在设备程序里面的
static struct platform_device *s3c_buttons;


static int __init platform_init(void)
{

s3c_buttons = platform_device_alloc("mini2440-buttons",-1);

platform_device_add_resources(s3c_buttons,&s3c_buttons_resource,7);

/*平台设备的注册*/
platform_device_add(s3c_buttons);


}

//下面这段代码是在驱动里面的
/*get irq number*/
for(i=0; i<6; i++){
buttons_irq = platform_get_resource(pdev,IORESOURCE_IRQ,i);
if(buttons_irq == NULL){
dev_err(dev,"no irq resource specified\n");
ret = -ENOENT;
goto err_map;
}
button_irqs[i] = buttons_irq->start;
//printk("button_irqs[%d]=%d\n",i,button_irqs[i]);
}
ret = misc_register(&mini2440_miscdev);//为啥还要混杂设备注册?

return 0;

err_map:
iounmap(buttons_base);

err_req:
release_resource(buttons_mem);
kfree(buttons_mem);

return ret;
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
VNROOY
Linux_Kernel 4,469 成员 17,458 内容