1.本次移植过程选择 linux-2.6.28 lcd驱动为参考移植到 linux-2.6.34 ok6410 开发板上。

2.移植过程

主要以给内核增加驱动的思想,在/driver/video/ 下增加 samsung目录,提取 2.6.28 中驱动相关源代码,将源代码复制到samsung 下。

修改 /driver/video 下的Makefile 文件,增加进入samsung目录编译的编译条目

obj-$(CONFIG_FB_S3C)              += samsung/

修改 /driver/video 下的Kconfig 文件,增加 /samsung/Kconfig 配置条目

comment "Frame buffer hardware drivers"
depends on FB
config FB_S3C
tristate "S3C Framebuffer Support"
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
depends on FB && (ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX) default n
---help---
TBA choice
depends on FB_S3C
prompt "Select LCD Type"
default FB_LIYUTAI_WXCAT35 config FB_WXCAT35
bool "WXCAT35 320x240"
---help---
TBA
config FB_WXCAT43
bool "WXCAT43 480x272"
---help---
TBA config FB_AT056
bool "AT056 640x480"
---help---
TBA
config FB_AT070
bool "AT070 800x480"
---help---
TBA config FB_AT080
bool "AT080 800x600"
---help---
TBA config FB_S3C_VGA800
bool "VGA800 800x600"
---help---
TBA
config FB_S3C_XGA
bool "XGA 1024x768"
---help---
TBA endchoice config FB_S3C_BPP
tristate "Advanced options for S3C Framebuffer"
depends on FB_S3C
default n
---help---
TBA choice
depends on FB_S3C_BPP
prompt "Select BPP(Bits Per Pixel)"
default FB_S3C_BPP_16
config FB_S3C_BPP_8
bool "8 BPP"
---help---
TBA config FB_S3C_BPP_16
bool "16 BPP"
---help---
TBA config FB_S3C_BPP_24
bool "24 BPP(XRGB888)"
---help---
TBA config FB_S3C_BPP_28
bool "28 BPP(ARGB4888)"
---help---
TBA config FB_S3C_BPP_32
bool "32 BPP(ARGB8888)"
---help---
TBA
endchoice config FB_S3C_NUM
int "Number of Framebuffers"
depends on FB_S3C_BPP && (ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX)
default "1"
---help---
TBA config FB_S3C_VIRTUAL_SCREEN
bool "Enable Virtual Screen"
depends on FB_S3C_BPP default n
---help---
TBA config FB_S3C_DOUBLE_BUFFERING
bool "Enable Double Buffering"
depends on FB_S3C_BPP default n
---help---
TBA

3. 增加 platform_device

找到移植系统时增加的板文件 mach-ok6410.c ,增加 lcd device

/* LCD Controller */

static struct resource s3c_lcd_resource[] = {
[] = {
.start = S3C64XX_PA_LCD,
.end = S3C64XX_PA_LCD + SZ_1M - ,
.flags = IORESOURCE_MEM,
},
[] = {
.start = IRQ_LCD_VSYNC,
.end = IRQ_LCD_SYSTEM,
.flags = IORESOURCE_IRQ,
}
}; static u64 s3c_device_lcd_dmamask = 0xffffffffUL; struct platform_device s3c_device_lcd = {
.name = "s3c-lcd",
.id = -,
.num_resources = ARRAY_SIZE(s3c_lcd_resource),
.resource = s3c_lcd_resource,
.dev = {
.dma_mask = &s3c_device_lcd_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};

再修改 struct platform_device *ok6410_devices[],增加

&s3c_device_lcd,

4.启动时出现小企鹅

移植ok6410 LCD驱动的更多相关文章

  1. LCD驱动移植在在mini2440(linux2.6.29)和FS4412(linux3.14.78)上实现对比(deep dive)

    1.Linux帧缓冲子系统 帧缓冲(FrameBuffer)是Linux为显示设备提供的一个接口,用户可以将帧缓冲看成是显示内存的一种映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作 ...

  2. AM335x(TQ335x)学习笔记——LCD驱动移植

    TI的LCD控制器驱动是非常完善的,共通的地方已经由驱动封装好了,与按键一样,我们可以通过DTS配置完成LCD的显示.下面,我们来讨论下使用DTS方式配置内核完成LCD驱动的思路. (1)初步分析 由 ...

  3. TQ2440平台上LCD驱动的移植

    参考: http://liu1227787871.blog.163.com/blog/static/205363197201242393031250/ http://blog.csdn.net/cum ...

  4. Linux的LCD驱动分析及移植

    测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 LCD驱动分析 LCD屏的驱动总体上分成两块,一块是GUI ...

  5. 全志A33移植LCD驱动(ILI9806E)

    0x00 环境说明: 所使用的开发板为锐尔威视的插针版A33_Vstar 屏幕是买的第三方的KD050FWFPA011-C009A,其中LCD驱动IC为ILI9806E,所使用的接口为RGB666 0 ...

  6. 【转】 linux内核移植和网卡驱动(二)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708911.html 一,内核移植步骤: 1, 修改顶层目录下的Makefile ARCH       ...

  7. Linux学习: LCD驱动

    一.LCD驱动框架: 1.分配一个fb_info结构体:s3c_lcd = framebuffer_alloc(0,NULL); 2.设置fb_info(s3c_lcd): ID.固定参数.可变参数. ...

  8. LCD驱动应该怎么写?–基于stm32F407 [复制链接]

    够用的硬件能用的代码使用的教程 (拷贝过来的代码有点乱,请下载附件查看文档) 资料下载地址:https://pan.baidu.com/s/1bHUVe6X6tymktUHk_z91cA 网络上配套S ...

  9. linux 驱动之LCD驱动(有framebuffer)

    <简介> LCD驱动里有个很重要的概念叫帧缓冲(framebuffer),它是Linux系统为显示设备提供的一个接口,应用程序在图形模式允许对显示缓冲区进行读写操作.用户根本不用关心物理显 ...

随机推荐

  1. 零基础学习python_with(34课)

    今天学习的with语句,with的表达形式如下:据说context必须是上下文管理器,这我就懵比了,啥玩意啊... with语句的表达形式: with context as var:    block ...

  2. python协程的使用

    1.Python对协程的支持是通过generator(生成器 yield)实现的.协程执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行. 2.调用生成器运行的过程中 ...

  3. 关于Git的一些总结【自用】

    创建ssh keyssh-keygen -t rsa -C "邮箱" cat is_rsa.pub  获取public key ssh -T git@github.com  测试是 ...

  4. 12.通过微信小程序端访问企查查(采集工商信息)

    需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qichacha.com/wxa/v1/base/getEn ...

  5. 54.纯 CSS 创作一副国际象棋

    原文地址:https://segmentfault.com/a/1190000015310484 感想:棋盘是 CSS 画的,棋子是 unicode 字符. HTML code: <html&g ...

  6. Centos7 搭建Gitlab服务器并配置项目全过程

    https://blog.csdn.net/Abysscarry/article/details/79402695 gitlab与jenkins整合搭建      https://blog.csdn. ...

  7. 1. 在config.ini文件中加入dm.park.time=1,会使uap中的tomcat启动加快

    在config.ini文件中加入dm.park.time=1,会使uap中的tomcat启动加快

  8. PHP Composer 包管理器的安装和使用

    一,包管理器的安装 01,首先确定 php 命令能够全局使用,要是不能请修改环境变量 02,使用 curl 命令安装 => curl -sS http://install.phpcomposer ...

  9. 如何创建一个django工程与和mysql打通

    1. 安装Django # 在指定解释器环境下安装django 1.11.x # 在真实python3环境下: pip3 install django==1.11.x # 查看django版本: dj ...

  10. Installing PHP5 on Ubuntu Server

    When installing PHP 5 from source I ran into the following problems and solutions: Problem:configure ...