下载后可任意编辑Linux 的 LCD 驱动源码分析及移植(三部曲)第一部分:基于 ARM9 处理器的 linux-2.6.32.2 操作系统内核移植手记 part5.1(LCD 驱动源码分析及移植之 platform device)1.与 LCD 控制器硬件相关的寄存器内容请参照三星 S3C2440A 技术手册中的第 15 章。2. LCD Controller 的平台设备定义如下(文件位于 linux/arch/arm/plat-s3c24xx/devs.c):1./* LCD Controller */2.下载后可任意编辑3.static struct resource s3c_lcd_resource[] = {4. [0] = {5. .start = S3C24XX_PA_LCD,6. .end = S3C24XX_PA_LCD + S3C24XX_SZ_LCD - 1,7. .flags = IORESOURCE_MEM,8. },9. [1] = {10. .start = IRQ_LCD,11. .end = IRQ_LCD,12. .flags = IORESOURCE_IRQ,13. }14.15.};16.17.static u64 s3c_device_lcd_dmamask = 0xffffffffUL;18.19.struct platform_device s3c_device_lcd = {20. .name = "s3c2410-lcd",21. .id = -1,22. .num_resources = ARRAY_SIZE(s3c_lcd_resource),23. .resource = s3c_lcd_resource,24. .dev = {25. .dma_mask = &s3c_device_lcd_dmamask,26. .coherent_dma_mask = 0xffffffffUL27. }28.};29.30.EXPORT_SYMBOL(s3c_device_lcd);平台设备的结构体定义为 s3c_device_lcd,该设备在平台总线中的名字取为 s3c2410-lcd,该平台设备申请的两个板级资源为以 S3C24XX_PA_LCD 为起始的 IORESOURCE_MEM 资源和一个定义为 IRQ_LCD 的 IORESOURCE_IRQ 资源。其中,1.#define S3C24XX_PA_LCD S3C2410_PA_LCD1./* LCD controller */2.#define S3C2410_PA_LCD (0x4D000000)3.#define S3C24XX_SZ_LCD SZ_1M0x4D000000 为 LCDCON1 寄存器的地址。3. LCD Controller 的平台设备的注册如下(文件位于 linux/arch/arm/mach-s3c2440/mach-smdk2440.c):下载后可任意编辑1.static struct platform_device *smdk2440_devices[] __initdata = {2. &s3c_device_usb,3.4. &s3c_device_lcd,5.6. &s3c_device_wdt,7. &s3c_device_i2c0,8. &s3c_device_iis,9. &s3c_device_rtc,10.};以上第 4 行代码将 lcd 平台设备注册进内核。4.在系统初始化时将 smdk2440_fb_info 结构体添加进平台设备的私有结构中。具体流程如下:4.1下载后可任意编辑1.MACHINE_START(S3C2440, "SMDK2440")2. /* Maintainer: Be...