Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 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);