参考:S3C2440 LCD驱动(FrameBuffer)实例开发<一>

     S3C2440 LCD驱动(FrameBuffer)实例开发<二>

1.平台设备注册

1.1在linux/arch/arm/plat-samsung/dev-fb.c中定义平台设备。

 static struct resource s3c_fb_resource[] = {
[] = {
.start = S3C_PA_FB,
.end = S3C_PA_FB + SZ_16K - ,
.flags = IORESOURCE_MEM,
},
[] = {
.start = IRQ_LCD_VSYNC,
.end = IRQ_LCD_VSYNC,
.flags = IORESOURCE_IRQ,
},
[] = {
.start = IRQ_LCD_FIFO,
.end = IRQ_LCD_FIFO,
.flags = IORESOURCE_IRQ,
},
[] = {
.start = IRQ_LCD_SYSTEM,
.end = IRQ_LCD_SYSTEM,
.flags = IORESOURCE_IRQ,
},
}; struct platform_device s3c_device_fb = {
.name = "s3c-fb",
.id = -,
.num_resources = ARRAY_SIZE(s3c_fb_resource),
.resource = s3c_fb_resource,
.dev.dma_mask = &s3c_device_fb.dev.coherent_dma_mask,
.dev.coherent_dma_mask = 0xffffffffUL,
};

1.2 在linux/arch/arm/mach-s3c64xx/mach-smdk6410.c中定义的指针数组指向dev-fb.c中的平台设备并注册

static struct platform_device *smdk6410_devices[] __initdata = {

  ......

  &s3c_device_fb,

  ......

}

static void __init smdk6410_machine_init(void)

  -->s3c_fb_set_platdata(&smdk6410_lcd_pdata);

  -->platform_add_devices(smdk6410_devices, ARRAY_SIZE(smdk6410_devices));

    -->platform_device_register(&s3c_device_fb);

2. 在drivers/video/samsung/s3cfb.c中注册平台驱动。

 static struct platform_driver s3cfb_driver = {
.probe = s3cfb_probe,
.remove = s3cfb_remove,
.suspend = s3cfb_suspend,
.resume = s3cfb_resume,
.driver = {
.name = "s3c-fb",
.owner = THIS_MODULE,
},
}; int __devinit s3cfb_init(void)
{
return platform_driver_register(&s3cfb_driver);
}

3. 当平台设备与驱动匹配后,调用s3cfb_probe()函数,调用register_framebuffer()函数。

static int __init s3cfb_probe(struct platform_device *pdev)

  -->register_framebuffer()//在/dev/目录下创建fb*设备节点

最新文章

  1. Razor 语法初级使用,不断更新此文章
  2. 半吊子学习Swift--天气预报程序-准备工作
  3. libtcc使用问题一二
  4. ubuntu 交换ctrl与caps lock 键
  5. win10 uwp 获得元素绝对坐标
  6. SSD-Tensorflow: 3 步运行 TensorFlow 单图片多盒目标检测器
  7. [tornado]websocket 最简单demo
  8. .NET 创建 classlib时,netcoreapp2.0与netstandard2.0的区别
  9. Python爬取南京市往年天气预报,使用pyecharts进行分析
  10. LeetCode算法题-Image Smoother(Java实现)
  11. nginx的configure流程
  12. 如何清理Docker占用的磁盘空间?
  13. hdu 3480 Division(四边形不等式优化)
  14. C#:读取视频的宽度和高度等信息
  15. 内联扩展 inline expansion
  16. JS和webView的交互
  17. 初识 JVM
  18. uiautomatorviewer定位App元素
  19. [BZOJ2961] 共点圆 [cdq分治+凸包]
  20. STM32通用定时器实现LED灯闪烁

热门文章

  1. 洛谷1005(dp)
  2. matplotlib 知识点13:绘制散点图(scatter函数精讲)
  3. session是什么时候创建的
  4. 前端之CSS盒模型介绍
  5. 11.JAVA-Object类之finalize(),clone(),toString()等方法覆写
  6. input type=file 选择图片并且实现预览效果
  7. 制作 Favicon.ico 图标教程
  8. mac配置android开发环境(一)
  9. cacti图形字符乱码
  10. IOS小技巧整理