设为首页 加入收藏

TOP

Linux下的nandflash驱动分析(1)——基于S3C6410平台
2014-11-24 12:33:29 来源: 作者: 【 】 浏览:0
Tags:Linux nandflash 驱动 分析 基于 S3C6410 平台

源码主要在S3c_nand.c (linux2.6.28\drivers\mtd\nand)文件中。


相关阅读:


1、模块加载和卸载


module_init(s3c_nand_init);
module_exit(s3c_nand_exit);


static void __exit s3c_nand_exit(void)
{
platform_driver_unregister(&s3c2450_nand_driver);
platform_driver_unregister(&s3c6400_nand_driver);
platform_driver_unregister(&s3c6410_nand_driver);
platform_driver_unregister(&s5pc100_nand_driver);
}


static int __init s3c_nand_init(void)
{
printk("S3C NAND Driver, (c) 2008 Samsung Electronics\n");

platform_driver_register(&s3c2450_nand_driver);
platform_driver_register(&s3c6400_nand_driver);
platform_driver_register(&s3c6410_nand_driver);我们关系的部分
return platform_driver_register(&s5pc100_nand_driver);
}


对应的platform_device如下所示:


static struct resource s3c_nand_resource[] = {
[0] = {
.start = S3C64XX_PA_NAND,
.end = S3C64XX_PA_NAND + S3C64XX_SZ_NAND - 1,
.flags = IORESOURCE_MEM,
}
};

struct platform_device s3c_device_nand = {
.name = "s3c-nand",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_nand_resource),
.resource = s3c_nand_resource,
};


对应的platform_driver如下所示:


static struct platform_driver s3c6410_nand_driver = {
.probe = s3c6410_nand_probe,
.remove = s3c_nand_remove,
.suspend = s3c_nand_suspend,
.resume = s3c_nand_resume,
.driver = {
.name = "s3c6410-nand",
.owner = THIS_MODULE,
},
};


有没有感觉到上面有什么不对?平台设备的驱动名和设备名应该是一样的,可现在不一样了。不过在下面这个函数中:进行了修正。


static void __init smdk6410_map_io(void)
{
s3c_device_nand.name = "s3c6410-nand";


...............


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇用C语言进行BMP文件的读写 下一篇将一个数组转换成深度最低的二叉树

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)