static int key_probe(struct platform_device *pdev)
{
int err;
struct resource *res;
//获取中断资源
res = platform_get_resource(pdev, IORESOURCE_IRQ,0);
if(!res){
printk("fail to platform_get_resource\n");
return -ENODEV;
}
printk("IRQ :%d\n",res->start);
printk("Name :%s\n",res->name);
printk("Flags:%#x\n",(unsigned int)res->flags);//0x408,控制电平的只要8就行
return 0;
}
static int key_remove(struct platform_device *pdev)
{
return 0;
}
static const struct of_device_id key_of_match[] = {
{.compatible = "fs4412-key"},
{/*Sentinel*/}
};
static struct platform_driver key_driver = {
.probe = key_probe,
.remove = key_remove,
.driver = {
.name = "fs4412-key",
.owner = THIS_MODULE,
.of_match_table = key_of_match,
},
};
**//注册driver以及模块初始化和退出都是用这个宏替代了**
module_platform_driver(key_driver);
MODULE_LICENSE("GPL v2");
简化版平台总线与设备树模块驱动开发
最新推荐文章于 2024-07-29 15:08:35 发布