其实,要了解,关于驱动框架部分,你所要做的事情的话,只要看看三星的整个Nand Flash驱动中的这个结构体,就差不多了:
static struct platform_driver s3c2410_nand_driver = {
.probe = s3c2410_nand_probe,
.remove = s3c2410_nand_remove,
.suspend = s3c24xx_nand_suspend,
.resume = s3c24xx_nand_resume,
.driver = {
.name = "s3c2410-nand",
.owner = THIS_MODULE,
},
};
| probe就是系统“探测”,就是前面解释的整个过程,这个过程中的多数步骤,都是和你自己的Nand Flash相关的,尤其是那些硬件初始化部分,是你必须要自己实现的。 |
| remove,就是和probe对应的,“反初始化”相关的动作。主要是释放系统相关资源和关闭硬件的时钟等常见操作了。 |
| suspend和resume,对于很多没用到电源管理的情况下,至少对于我们刚开始写基本的驱动的时候,可以不用关心,放个空函数即可。 |