关于nuc970 lcd的分析

本文深入探讨了NUC970平台的LCD硬件设备节点和驱动代码,包括设备节点定义、资源分配、中断处理,以及LCD控制器的初始化和帧缓冲管理。通过分析驱动代码,展示了如何在Linux内核中实现对LCD的完整支持。
摘要由CSDN通过智能技术生成

一.关于硬件设备节点的描述

内核平台代码路径linux-3.10.x\arch\arm\mach-nuc970下dev.c

内核设备节点如下

struct platform_device nuc970fb_device_lcd = {
.name             = "nuc970-lcd",
.id               = -1,
.num_resources    = ARRAY_SIZE(nuc970fb_lcd_resource),
.resource         = nuc970fb_lcd_resource,     
.dev              = {
.dma_mask               = &nuc970fb_device_lcd_dmamask,
.coherent_dma_mask      = -1,
.platform_data = &nuc970fb_fb_info,
}
};


nuc970fb_lcd_resource中定义了两个资源 lcd基地址和中断

static struct resource nuc970fb_lcd_resource[] = {
[0] = {
.start = NUC970_PA_LCD,
.end   = NUC970_PA_LCD + NUC970_SZ_LCD - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_LCD,
.end   = IRQ_LCD,
.flags = IORESOURCE_IRQ,
}
};


自定义的lcd描述硬件设备结构体

static struct nuc970fb_mach_info nuc970fb_fb_info = {
.displays = &nuc970fb_lcd_info[0],
.num_displays = ARRAY_SIZE(nuc970fb_lcd_info),
.default_display = 0,
    .gpio_blen          = NUC970_PG3,
    .gpio_lcs           = NUC970_PG2,
};


其中的nuc970fb_lcd_info添加了屏幕的详细信息

static struct nuc970fb_display nuc970fb_lcd_info[] = {
#ifdef CONFIG_A025DL02_320X240
/* AUO A035QN02V0 320x240 TFT Panel , 18bits*/
[0] = {
.type = LCM_DCCS_VA_SRC_RGB565,
.width = 320,
.height = 240,
.xres = 320,
.yres = 240,
.bpp = 16,
.pixclock = 4000000,
.left_margin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值