设为首页 加入收藏

TOP

Linux-2.6驱动开发
2014-11-24 01:01:08 来源: 作者: 【 】 浏览:2
Tags:Linux-2.6 驱动 开发

以LCD为例,先注册device,再注册driver,两者名称一致。


static struct pxafb_mode_info tpo_tdo24mtea1_modes[] = {


[0] = {


/* VGA */


.pixclock = 38250,


.xres = 480,


.yres = 640,


.bpp = 16,


.hsync_len = 8,


.left_margin = 8,


.right_margin = 24,


.vsync_len = 2,


.upper_margin = 2,


.lower_margin = 4,


.sync = 0,


},


};


static struct pxafb_mach_info littleton_lcd_info = {


.modes = tpo_tdo24mtea1_modes,


.num_modes = 1,


.lccr0 = LCCR0_Act,


.lccr3 = LCCR3_HSP | LCCR3_VSP,


.pxafb_lcd_power = littleton_lcd_power,


.pxafb_backlight_power = littleton_lcd_backlight,


};


static struct resource pxafb_resources[] = {


[0] = {


.start = 0x44000000,


.end = 0x4400ffff,


.flags = IORESOURCE_MEM,


},


[1] = {


.start = IRQ_LCD,


.end = IRQ_LCD,


.flags = IORESOURCE_IRQ,


},


};


static u64 fb_dma_mask = ~(u64)0;


struct platform_device pxa_device_fb = {


.name = "pxa2xx-fb",


.id = -1,


.dev = {


.dma_mask = &fb_dma_mask,


.coherent_dma_mask = 0xffffffff,


.platform_data = littleton_lcd_info,


},


.num_resources = ARRAY_SIZE(pxafb_resources),


.resource = pxafb_resources,


};



platform_device_register(&pxa_device_fb);



/*****************************************************************************/



static struct platform_driver pxafb_driver = {


.probe = pxafb_probe,


#ifdef CONFIG_PM


.suspend = pxafb_suspend,


.resume = pxafb_resume,


.shutdown = pxafb_shutdown,


#endif


.driver = {


.name = "pxa2xx-fb",


},


};



platform_driver_register(&pxafb_driver);


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 2.1 架构解析 下一篇C++ 中的Virtual Function (虚函..

评论

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