当前位置: 技术问答>linux和unix
关于mini2440按键驱动
来源: 互联网 发布时间:2017-02-15
本文导语: 小弟最近在学习驱动,在做到按键驱动设计的时候,发现设备使用的是平台类型注册的,但是在平台类型驱动的prob函数里面又注册了混杂设备。着实不解:怎么又是平台又是混杂的? //下面这段代码是在设备...
小弟最近在学习驱动,在做到按键驱动设计的时候,发现设备使用的是平台类型注册的,但是在平台类型驱动的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; istart;
//printk("button_irqs[%d]=%dn",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;
//下面这段代码是在设备程序里面的
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; istart;
//printk("button_irqs[%d]=%dn",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;
|
platform_init在哪个文件? 我没搜到
|
平台设备应该是为了“机制和策略分离”,混杂设备应该是为了导出设备文件。毕竟平台设备用户空间看不到。
猜的,仅供才能考
猜的,仅供才能考