OK6410 LCD驱动移植
2012-04-30 18:12
399 查看
今天完成了 OK6410 的LCD 驱动移植,那么直接进入正题,我的操作环境是:
主机: XP系统, VMware Ubuntu 10.10 虚拟机。 开发板:OK6410,A板,256M+2G 。 LCD :飞凌4.3 寸TFT ,WXCAT43, 480*272
Uboot: 飞凌体统的Uboot。 移植内核版本:Linux1.6.36.2。 参考内核: 飞凌提供的 Linux2.6.36.2
如果你是参考这篇博文来移植的话,我还是要强调一下上面的 开发板环境 和 移植内核的版本,这很重要,因为不同的硬件有不同的要求和
说明,而不同的内核版本之间又有着不同的差异性。 当然这些也并不是绝对的。其他的环境也可以参考这篇博文。
我先来讲讲对于飞凌的OK6410 开发板 LCD 驱动移植的操作步骤,再来分析这些操作步骤和网上 LCD 驱动移植在方法和效果不同的地方。
LCD 驱动移植所依赖的文件有:
arch/arm/mach-s3c64xx/mach-smdk6410.c drivers/videl/samsung/s3cfb.c
drivers/videl/samsung/s3cfb_spi.c drivers/videl/samsung/WXCAT43.c
arch/arm/mach-s3c64xx/include/mach/regs-lcd.h
1、 修改 arch/arm/mach-s3c64xx/mach-smdk6410.c
注释掉 smdk6410_machine_init(void) 中的
在 sruct map_desc smdk6410_iodesc[] 中添加 LCD support
就像它将 smdk6410 作为它的开发板目录,而不去创建一个OK6410 的开发板基准目录一样。 在这里飞凌依旧沿用了他的这种作风,你可
以查看一下 在smdk6410.c 中是否已经有过 lcd 的一些结构体 和函数体, 飞凌就是利用了这些已经存在了的,而没有自己建立,学习飞凌
的开发板,你要学会适应这些。呵呵!
2、添加 drivers/video/samsung 目录。
我从linux.org 下载的基础内核没有 drivers/video/samsung 这个目录,所以需要添加。你可以 copy 飞凌2.6.36 源码下的 samsung 到你的
内核目录,这个目录下的文件主要是 Makefile, Kconfig ,s3cfb.c s3cfb_spi.c WXCAT43.c 这些就是你的LCD 驱动依赖文件。
3、修改drivers/video 目录下的Makefile 和 Kconfig
copy 完后,下来就是修改 drivers/video 下面的Makefile 和 Kconfig ,这样做的主要目的是为了,将你的驱动加载进 make menuconfig 的
配置菜单中,以便内核编译的时候,讲你的LCD驱动编译进内核。
修改 drivers/video/Makefile 在Makefile 的最后一行添加 obj-$(CONFIG_FB_S3C_EXT)+= samsung/
修改 drivers/video/Kconfig 在倒数第二行,endmenu 前添加: source “drivers/video/samsung/Kconfig”
修改完成后make menuconfig 在
Device Drivers -> Graphics support --->
选中 <*> Support for frame buffer devices ---> // 支持 FB
会发现下面添加了: 按照下面的配置内核:
<*> S3C Frambuffer Support (eXended)
Select LCD Type ( 4.3 inch 480*272 TFT LCD) --->
<*> Advanced options for S3C Frambuffer
Select Bpp(Bits Per Pixel ) ( 16 BPP ) --->
(4) Number of Framebufers
[ ] Enable Virtural Screen
[ * ] Enable Double Buffering.
如果 你配置内核时没有出现上面的选项。请检查是否选中了 FB 支持。如果已经有FB 支持,请检查上面修改的 Makefile 和 Kconfig。
配置支持LOGO
Graphics support --->
<*> Support for frame buffer devices
Console display driver support --->
<*> Framebuffer Console support
Logo configuration --->
[*] Bootup logo
[*] Standard 224-color Linux logo
4、make zImage
make zImage 时请留意在编译 drivers 目录下时,是否出现了 drivers/video/samsung 以检查你的去的那个模块是否被编译进内核。
5、下载zImage 开机出现小企鹅LOGO
![](http://my.csdn.net/uploads/201205/17/1337213904_8344.jpg)
启动是Uboot 的 LCD 的关键打印信息
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: LTE480WV will be initialized
Window[0] - FB1: map_video_memory: clear ff600000:0007f800
FB1: map_video_memory: dma=5f980000 cpu=ff600000 size=0007f800
Window[0] - FB2: map_video_memory: clear ff63fc00:0003fc00
FB2: map_video_memory: dma=5f9bfc00 cpu=ff63fc00 size=0003fc00
Console: switching to colour frame buffer device 60x34
fb0: s3cfb frame buffer device
Window[1] - FB1: map_video_memory: clear ff700000:0007f800
FB1: map_video_memory: dma=5fa00000 cpu=ff700000 size=0007f800
Window[1] - FB2: map_video_memory: clear ff73fc00:0003fc00
FB2: map_video_memory: dma=5fa3fc00 cpu=ff73fc00 size=0003fc00
fb1: s3cfb frame buffer device
Window[2] - FB1: map_video_memory: clear ff680000:0003fc00
FB1: map_video_memory: dma=5fa80000 cpu=ff680000 size=0003fc00
fb2: s3cfb frame buffer device
Window[3] - FB1: map_video_memory: clear ff780000:0003fc00
FB1: map_video_memory: dma=5fac0000 cpu=ff780000 size=0003fc00
fb3: s3cfb frame buffer device
jkq debug VIDCON0 is 353
主机: XP系统, VMware Ubuntu 10.10 虚拟机。 开发板:OK6410,A板,256M+2G 。 LCD :飞凌4.3 寸TFT ,WXCAT43, 480*272
Uboot: 飞凌体统的Uboot。 移植内核版本:Linux1.6.36.2。 参考内核: 飞凌提供的 Linux2.6.36.2
如果你是参考这篇博文来移植的话,我还是要强调一下上面的 开发板环境 和 移植内核的版本,这很重要,因为不同的硬件有不同的要求和
说明,而不同的内核版本之间又有着不同的差异性。 当然这些也并不是绝对的。其他的环境也可以参考这篇博文。
我先来讲讲对于飞凌的OK6410 开发板 LCD 驱动移植的操作步骤,再来分析这些操作步骤和网上 LCD 驱动移植在方法和效果不同的地方。
LCD 驱动移植所依赖的文件有:
arch/arm/mach-s3c64xx/mach-smdk6410.c drivers/videl/samsung/s3cfb.c
drivers/videl/samsung/s3cfb_spi.c drivers/videl/samsung/WXCAT43.c
arch/arm/mach-s3c64xx/include/mach/regs-lcd.h
1、 修改 arch/arm/mach-s3c64xx/mach-smdk6410.c
注释掉 smdk6410_machine_init(void) 中的
// gpio_request(S3C64XX_GPN(5), "LCD power"); // cancel by acanoe // gpio_request(S3C64XX_GPF(13), "LCD power"); // gpio_request(S3C64XX_GPF(15), "LCD power");
在 sruct map_desc smdk6410_iodesc[] 中添加 LCD support
static struct map_desc smdk6410_iodesc[] = { /**************** add by acanoe *****************************/ { /* LCD support */ .virtual = (unsigned long)S3C_VA_LCD, .pfn = __phys_to_pfn(S3C_PA_FB), .length = SZ_16K, .type = MT_DEVICE, } /**************** add by acanoe *****************************/ };操作说明:这里不用奇怪为什么仅仅这有这么少的修改, 因为飞凌的一贯作风就好似宁可少改,套用,仿照。 也不愿去建立自己的目录项。
就像它将 smdk6410 作为它的开发板目录,而不去创建一个OK6410 的开发板基准目录一样。 在这里飞凌依旧沿用了他的这种作风,你可
以查看一下 在smdk6410.c 中是否已经有过 lcd 的一些结构体 和函数体, 飞凌就是利用了这些已经存在了的,而没有自己建立,学习飞凌
的开发板,你要学会适应这些。呵呵!
2、添加 drivers/video/samsung 目录。
我从linux.org 下载的基础内核没有 drivers/video/samsung 这个目录,所以需要添加。你可以 copy 飞凌2.6.36 源码下的 samsung 到你的
内核目录,这个目录下的文件主要是 Makefile, Kconfig ,s3cfb.c s3cfb_spi.c WXCAT43.c 这些就是你的LCD 驱动依赖文件。
3、修改drivers/video 目录下的Makefile 和 Kconfig
copy 完后,下来就是修改 drivers/video 下面的Makefile 和 Kconfig ,这样做的主要目的是为了,将你的驱动加载进 make menuconfig 的
配置菜单中,以便内核编译的时候,讲你的LCD驱动编译进内核。
修改 drivers/video/Makefile 在Makefile 的最后一行添加 obj-$(CONFIG_FB_S3C_EXT)+= samsung/
修改 drivers/video/Kconfig 在倒数第二行,endmenu 前添加: source “drivers/video/samsung/Kconfig”
修改完成后make menuconfig 在
Device Drivers -> Graphics support --->
选中 <*> Support for frame buffer devices ---> // 支持 FB
会发现下面添加了: 按照下面的配置内核:
<*> S3C Frambuffer Support (eXended)
Select LCD Type ( 4.3 inch 480*272 TFT LCD) --->
<*> Advanced options for S3C Frambuffer
Select Bpp(Bits Per Pixel ) ( 16 BPP ) --->
(4) Number of Framebufers
[ ] Enable Virtural Screen
[ * ] Enable Double Buffering.
如果 你配置内核时没有出现上面的选项。请检查是否选中了 FB 支持。如果已经有FB 支持,请检查上面修改的 Makefile 和 Kconfig。
配置支持LOGO
Graphics support --->
<*> Support for frame buffer devices
Console display driver support --->
<*> Framebuffer Console support
Logo configuration --->
[*] Bootup logo
[*] Standard 224-color Linux logo
4、make zImage
make zImage 时请留意在编译 drivers 目录下时,是否出现了 drivers/video/samsung 以检查你的去的那个模块是否被编译进内核。
5、下载zImage 开机出现小企鹅LOGO
![](http://my.csdn.net/uploads/201205/17/1337213904_8344.jpg)
启动是Uboot 的 LCD 的关键打印信息
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: LTE480WV will be initialized
Window[0] - FB1: map_video_memory: clear ff600000:0007f800
FB1: map_video_memory: dma=5f980000 cpu=ff600000 size=0007f800
Window[0] - FB2: map_video_memory: clear ff63fc00:0003fc00
FB2: map_video_memory: dma=5f9bfc00 cpu=ff63fc00 size=0003fc00
Console: switching to colour frame buffer device 60x34
fb0: s3cfb frame buffer device
Window[1] - FB1: map_video_memory: clear ff700000:0007f800
FB1: map_video_memory: dma=5fa00000 cpu=ff700000 size=0007f800
Window[1] - FB2: map_video_memory: clear ff73fc00:0003fc00
FB2: map_video_memory: dma=5fa3fc00 cpu=ff73fc00 size=0003fc00
fb1: s3cfb frame buffer device
Window[2] - FB1: map_video_memory: clear ff680000:0003fc00
FB1: map_video_memory: dma=5fa80000 cpu=ff680000 size=0003fc00
fb2: s3cfb frame buffer device
Window[3] - FB1: map_video_memory: clear ff780000:0003fc00
FB1: map_video_memory: dma=5fac0000 cpu=ff780000 size=0003fc00
fb3: s3cfb frame buffer device
jkq debug VIDCON0 is 353
相关文章推荐
- Linux3.8.3在OK6410平台的移植LCD驱动
- 移植ok6410 LCD驱动
- LCD驱动在OK2440开发板的移植
- 【OK6410裸机程序】LCD驱动
- linux-3.2.7移植OK6410的SD卡驱动
- 6410 LCD驱动移植
- 6410 LCD驱动移植
- u-boot下wifi驱动在OK6410开发板下的移植-前言
- OK6410、2.6.36内核移植,dm9000 驱动移植,详细!
- OK6410-A开发板学习-⑥uboot移植(4)NAND驱动完善
- Linux3.6.7在OK6410平台的移植(三)NAND HWECC 8BIT驱动
- ARM11、OK6410_Linux、系统移植 和 驱动加载
- ok6410的LCD驱动
- 成功移植UT6410的800*480的LCD驱动
- 基于ok6410的韦东山驱动视频简要分析--lcd驱动
- OK6410开发板Linux-3.3.5驱动移植之DM900网卡驱动移植+NFS文件系统挂载
- ARM11、OK6410_Linux、系统移植 和 驱动加载
- UBOOT-2012-10在OK6410平台的移植(十)MLC NAND驱动(硬件8位ECC)
- UBOOT-2012-10在OK6410平台的移植(九)MMC驱动
- OK6410-LINUX2.6.39.2个人移植版本下载(板载硬件驱动基本都已移植成功)