s3c2440 linux lcd驱动解读

发布者:知音学友最新更新时间:2016-12-02 来源: eefocus关键字:s3c2440  linux  lcd驱动 手机看文章 扫描二维码
随时随地手机看文章

s3c2440 linux lcd驱动解读
驱动层即s3c2410fb.c定义platform_driver 如下面文件定义了s3c2410fb_driver:
\linux\linux-2.6.29\drivers\video\S3c2410fb.c
static struct platform_driver s3c2410fb_driver = {
 .probe  = s3c2410fb_probe,
 .remove  = s3c2410fb_remove,
 .suspend = s3c2410fb_suspend,
 .resume  = s3c2410fb_resume,
 .driver  = {
  .name = "s3c2410-lcd",
  .owner = THIS_MODULE,
 },
};

plat层定义device, 如下面文件定义了 s3c_device_lcd
\linux\linux-2.6.29\arch\arm\plat-s3c24xx\Devs.c
struct platform_device s3c_device_lcd = {
 .name    = "s3c2410-lcd",
 .id    = -1,
 .num_resources   = ARRAY_SIZE(s3c_lcd_resource),
 .resource   = s3c_lcd_resource,
 .dev              = {
  .dma_mask  = &s3c_device_lcd_dmamask,
  .coherent_dma_mask = 0xffffffffUL
 }
};


因为内核配置是针对s3c2440芯片的, s3c2440自带lcd控制器,因此内核已经知道有s3c_device_lcd这个device存在, 驱动为device服务,driver通过
platform_driver_register(&s3c2410fb_driver)
告诉内核驱动的存在,内核根据 driver.name 找到 device, 然后把device的信息通过 platform_device *pdev 这个参数传递给driver下挂着的各个功能函数,从而使驱动完成使命.

驱动函数s3c24xxfb_probe 所引用到的参数 mach_info, 即pdev->dev.platform_data 在 mach-mini2440.c里定义如下
static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
 .displays = &mini2440_lcd_cfg,
 .num_displays = 1,
 .default_display = 0,

 .gpccon =       0xaa955699,
 .gpccon_mask =  0xffc003cc,
 .gpcup =        0x0000ffff,
 .gpcup_mask =   0xffffffff,

 .gpdcon =       0xaa95aaa1,
 .gpdcon_mask =  0xffc0fff0,
 .gpdup =        0x0000faff,
 .gpdup_mask =   0xffffffff,


 .lpcsel  = 0xf82,
};

驱动根据 lcd device 信息建立一块buffer, 然后把这块buffer作为一个设备通过 ret = register_buffer(fbinfo) 注册到linux设备管理系统中, linux在 /dev 下生成一个叫 fb 的节点, GUI就对这个 fb 节点操作.


关键字:s3c2440  linux  lcd驱动 引用地址:s3c2440 linux lcd驱动解读

上一篇:ARM中的Ramdisk的使用
下一篇:触摸屏驱动分析之S3C2440_ts.c

推荐阅读最新更新时间:2024-03-16 15:22

S3C2440 Boot Loader引导代码功能简述
【前言】开始学习ARM的时候,基本上都要从裸机编程开始。为了减低入门的门槛,很多时候只要修改模板里的主函数main.c,可是,久而久之,就会产生些疑问,问什么下载了这些C代码编译链接生成出来的BIN就能在ARM上跑了呢?原因就在于,有几个文件已经不声不响的帮我们提前干了很多的事,而这些事C语言是干不了的,只能由汇编完成,美其名曰:ARM汇编引导代码。其实不光“裸奔”需要,Boot Loader也同样需要。那么到底这些汇编帮我干了些什么呢?笔者就结合S3C2440的Boot Loader引导代码简单分析整理下。 【一】变量及相关宏定义 开始首先用GET(相当于C语言里的#include)伪指令包含进来了三个头文件option.i
[单片机]
s3c2440裸机-电阻触摸屏编程(4.isr设计_4.1获取触摸屏坐标)
1.进入自动测量模式 上一节介绍了TSC的初始化,以及中断服务程序框架,能够对的触摸屏进行基本的按下松开检测。 那让bit =1, bit =00,则会进入auto measurement。如果bit =0,则需配置bit =01 or 10是手动测量x,y坐标。 #define AUTO_PST (1 2) /*自动转换*/ #define WAIT_INT_MODE (3) /*等待中断模式*/ #define NO_OPR_MODE (0) /*禁止模式*/ void enter_auto_measure_mode(void) {   ADCTSC = AUTO_PST | NO_OPR_M
[单片机]
<font color='red'>s3c2440</font>裸机-电阻触摸屏编程(4.isr设计_4.1获取触摸屏坐标)
S3C2440裸机------触摸屏_电阻触摸屏硬件原理
1.电阻触摸屏原理 2.电阻触摸屏等效电路 2.1触摸屏空闲状态 平时触摸屏没有被按下时,等效电路如图14.5所示。S4、S5闭合,S1、S2、S3断开,即YM接地、XP上拉、XP作为模拟输入(对CPU而言)、YP作为模拟输入、XM高阻。 平时触摸屏没有被按下时,由于上拉电阻的关系,Y_ADC为高电平,当x轴和y轴收挤压而接触导通后,Y_ADC的电压由于连通道y轴接地而变为低电平,此低电平可作为中断触发信号来通知CPU发生“Pen Down”事件。 2.2采样X_ADC电压 采样X_ADC电压,得到x坐标,等效电路如图14.6所示。 S1、S3闭合,S2、S4、S5断开,即XP 接上电源、XM接地、YP作
[单片机]
<font color='red'>S3C2440</font>裸机------触摸屏_电阻触摸屏硬件原理
S3C2440核心板原理图设计:与SDRAM接线分析
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。我们从其硬件的角度来分析其原理,然后再引出SDRAM的驱动编写过程。 内存是代码的执行空间,以PC机为例,程序是以文件的形式保存在硬盘里面的,程序在运行之前先由操作系统装载入内存中,由于内存是RAM(随机访问存储器),可以通过地址去定位一个字节的数据,CPU在执行程序时将PC的值设置为程序在内存中的开始地址, CPU会依次的从内存里取址,译码,执行,在内存没有被初始化之前,内存好比是未建好的房子,是不能读取
[单片机]
<font color='red'>S3C2440</font>核心板原理图设计:与SDRAM接线分析
嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(六)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器: arm-linux-gcc-4.3.2.tgz u-boot: u-boot-2009.08.tar.bz2 二、移植步骤 10)u-boot利用tftp服务下载内核和利用nfs服务挂载nfs文件系统。 知识点: tftp服务的安装与配置及测试; nfs服务的安装与配置及测试; u-boot到kernel的参数传递(重点)。 我们知道使用tftp下载内核和使用nfs挂载文件系统的好处是,当我们重新编译内核或文件系统后不用重新把这些镜像文件再烧
[单片机]
嵌入式<font color='red'>Linux</font>之我行——u-boot-2009.08在2440上的移植详解(六)
韦东山ARM裸机学习笔记——S3C2440的串口驱动编程原理
前言 讲解韦东山JZ2440开发板的串口驱动原理,对韦东山在维基教程串口使用内容的一些补充,串口使用点击这里进入。这里主要讲的是串口驱动的编程思路,如何根据s3c2440的芯片手册编写出最简单的串口驱动。 一、串口的初始化 串口初始化包括引脚初始化、串口时钟初始化和中断模式、波特率配置以及参数配置等。 1、引脚初始化 (1)看JZ2440开发板的原理图,可知UART0的引脚是GPH2(TXD0)和GPH3(RXD0)。 (2)到s3c2440芯片手册295页,看GPHCON(GPH控制寄存器),可以需要把GPH2也就是GPHCON 配置为10,GPH3也就是GPHCON 配置为10。 (3)配置引脚为内部上拉,
[单片机]
韦东山ARM裸机学习笔记——<font color='red'>S3C2440</font>的串口驱动编程原理
浅析linux权限管理
“一切皆是文件”是Unix/Linux的基本哲学之一,目录、字符设备、块设备、套接字等在Unix/Linux都是以文件的形式存在。面对众多的文件,如何理解和管理他们的读、写、执行权限呢? 在Windows下,可以通过鼠标右击文件,在属性栏查看文件的权限。Linux下的文件“哲学”是否与Windows相同呢?我们从以下几点分析。 文件权限设定的作用 文件权限的设定是为了保护系统及用户数据的安全性。对于用户来说,最重要的事情就是数据、文件的私密性及安全性。从系统管理员到普通用户,从文件属性到文件特殊加密 ,无不围绕着一个主题:权限管理。若一个关键文件被意外写入,轻则数据丢失,重则系统崩溃。 以根目录下的/proc目
[嵌入式]
浅析<font color='red'>linux</font>权限管理
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved