編寫一個platform_driver驅動包括以下步驟:
以下是一個簡單的platform_driver驅動示例代碼:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/platform_device.h>
static int mydriver_probe(struct platform_device *pdev)
{
printk(KERN_INFO "mydriver: device probed\n");
return 0;
}
static int mydriver_remove(struct platform_device *pdev)
{
printk(KERN_INFO "mydriver: device removed\n");
return 0;
}
static struct platform_driver mydriver_driver = {
.driver = {
.name = "mydriver",
.owner = THIS_MODULE,
},
.probe = mydriver_probe,
.remove = mydriver_remove,
};
static int __init mydriver_init(void)
{
return platform_driver_register(&mydriver_driver);
}
static void __exit mydriver_exit(void)
{
platform_driver_unregister(&mydriver_driver);
}
module_init(mydriver_init);
module_exit(mydriver_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A platform driver example");
在這個示例中,定義了一個名為mydriver的platform_driver驅動,包含probe和remove函數。在模塊的初始化函數中注冊了這個platform_driver,在模塊的退出函數中注銷了這個platform_driver。