// 主题:Real6410移植linux-2.6.39.1

// 作者:kevinjz2010@gmail.com

// 版权:kevinjz原创

// 平台:linux-2.39.1 real6410 (real6410开发板)

// 发布日期:2011-06-23

// 最后修改:2011-06-23

// 注意事项:欢迎转载,但不得在转载的时候擅自修改、删除文章的任何部分

//-------------------------------------------------------------------------------------------------

参考REAL论坛的移植步骤

1、首先,修改mach-real6410.c文件

添加所需头文件:

#incldeu <linux/fb.h>

#include <video/platform_lcd.h>

#include <mach/regs-fb.h>

#include <plat/fb.h>

#include <mach/regs-gpio.h>

#include <mach/regs-modem.h>

另外需要将28内核中的regs-lcd.h复制到plat/

2、加入设备初始化代码

static struct s3c_fb_pd_win real6410_fb_win[] = {

/* {

.win_mode = { 4.3" 480x272

.left_margin = 3,

.right_margin = 2,

.upper_margin = 1,

.lower_margin = 1,

.hsync_len = 40,

.vsync_len = 1,

.xres = 480,

.yres = 272,

},

.max_bpp = 32,

.default_bpp = 16,

}, */

{

.win_mode = { /* 7.0" 800x480 */

.left_margin = 8,

.right_margin = 13,

.upper_margin = 7,

.lower_margin = 5,

.hsync_len = 3,

.vsync_len = 1,

.xres = 800,

.yres = 480,

},

.max_bpp = 32,

.default_bpp = 16,

},

};//根据所用的显示屏尺寸更改

static struct s3c_fb_platdata real6410_lcd_pdata __initdata = {

.setup_gpio = s3c64xx_fb_gpio_setup_24bpp,

.win[0] = &real6410_fb_win[0],

.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,

.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,

};

static struct map_desc real6410_iodesc[] = {

{

/* LCD support */

.virtual = (unsigned long)S3C_VA_LCD,

.pfn = __phys_to_pfn(S3C_PA_FB),

.length = SZ_16K,

.type = MT_DEVICE,

},

};

在platform_device中加入

&s3c_device_fb,

在real6410_map_io中加入

s3c64xx_init_io(real6410_iodesc, ARRAY_SIZE(real6410_iodesc));

/* set the LCD type */

tmp = __raw_readl(S3C64XX_SPCON);

tmp &= ~S3C64XX_SPCON_LCD_SEL_MASK;

tmp |= S3C64XX_SPCON_LCD_SEL_RGB;

__raw_writel(tmp, S3C64XX_SPCON);

/* remove the LCD bypass */

tmp = __raw_readl(S3C64XX_MODEM_MIFPCON);

tmp &= ~MIFPCON_LCD_BYPASS;

__raw_writel(tmp, S3C64XX_MODEM_MIFPCON);

在real6410_machine_init加入注册代码

s3c_fb_set_platdata(&real6410_lcd_pdata);

3、修改/mach-s3c64xx/map.h,加入

#define S3C64XX_VA_HOSTIFA S3C_ADDR(0x00B00000)

#define S3C64XX_PA_HOSTIFA (0x74000000)

#define S3C64XX_SZ_HOSTIFA SZ_1M

#define S3C64XX_VA_HOSTIFB S3C_ADDR(0x00C00000)

#define S3C64XX_PA_HOSTIFB (0x74100000)

#define S3C64XX_SZ_HOSTIFB SZ_1M

4、修改plat-samsung/dev-fb.c,加入

static struct s3c_platform_fb default_fb_data __initdata = {

.hw_ver = 0x40,

.clk_name = "lcd",

.nr_wins = 5,

.default_win = CONFIG_FB_S3C,

.swap = FB_SWAP_HWORD,

};

并注意s3c_device_fb中的设备名称必须和驱动中的名称相对应,否则驱动不会被加载

修改plat/fb.h

#define FB_SWAP_WORD (1 << 24)

#define FB_SWAP_HWORD (1 << 16)

#define FB_SWAP_BYTE (1 << 8)

#define FB_SWAP_BIT (1 << 0)

struct s3c_platform_fb {

int hw_ver;

const char clk_name[16];

int nr_wins;

int nr_buffers[5];

int default_win;

int swap;

void (*cfg_gpio)(struct platform_device *dev);

int (*backlight_on)(struct platform_device *dev);

int (*reset_lcd)(struct platform_device *dev);

};

4、在plat/map-base.h加入

#define S3C_VA_LCD S3C_ADDR(0x01100000) /* LCD */

5、将28内核中/drivers/video/中samsung文件夹拷贝至相对应目录

6、修改video中的Kconfig,

加入source “drivers/video/samsung/Kconfig”,并将CONFIG_FB_S3C改成别的名字。

7、修改video中的Makefile,加入

:obj-$(CONFIG_FB_S3C) += SAMSUNG/

8、配置内核

$make menuconfig

在 device drivers->Graphics support->Support for frame buffer devices中选中

S3C Framebuffer Support

S3C Lcd Support Advanced options for S3C Framebuffer

Select BPP(Bits Per Pixel) (16 BPP) --->

Number of Framebuffers(4)

Enable Virtual Screen Enable Double Buffering

9、编译会有很多错误,大多是头文件的位置问题

10、修改samsung/Makefile,屏蔽obj-$(CONFIG_FB_S3C_VIDEO) += ch7026.o,以及s3cfb_video.c中的ch7026_init();

11、s3cfb_fimd4x.c中的错误按照REAL论坛上的修改,并将1222行屏蔽。

12、s3cfb.c中的驱动名称和之前设备名称需要对应

13、内核启动参数:

setenv bootargs noinitrd root=/dev/mtdblock0 console=ttySAC0 init=/linuxrc video=fb:AT070TN83

Real6410移植linux-2.6.39.1记录(2)-LCD驱动移植相关推荐

  1. 移植Linux(ucLinux)到GBA的记录

    移植Linux(ucLinux)到GBA的记录 v1.0 teawater@hotmail.com 1.感谢 向所有直接和间接帮助过我的的朋友们表示衷心的感谢,因为人数太多我就不一一提到了. 2.写在 ...

  2. linux在开发板LCD上显,W35型LCD驱动移植 - linux-2.6.32在mini2440开发板上移植_Linux编程_Linux公社-Linux系统门户网站...

    编者注:本移植主要步骤还是按照手册来,里面讲解了一些有用的基础知识.但书册上提供了集中屏幕的方案,我们这里主要就用一种,也就是开发板自带的W35型号.液晶驱动的源程序在src/drivers/vide ...

  3. 移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植

    移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植的过程记录下来: (1)首先打一个补丁:s3c2410_touchscreen.patch, 在内核解压的根目录下 patch -N ...

  4. linux-2.6.32在mini2440开发板上移植 ---W35型LCD驱动移植

    转载:http://blog.csdn.net/viewsky11/article/details/11846359 编者注:本移植主要步骤还是按照手册来,里面讲解了一些有用的基础知识.但书册上提供了 ...

  5. [lcm] Qualcomm平台的显示屏lcd驱动移植步骤

    1lk部分 1-1 target_displayc 1-2 oem_panelc 1-3 panel_innont51021b_1200p_videoh 2Kernel 2-1 dsi-panel-b ...

  6. STM32MP157 Linux系统移植开发篇14:Linux内核RGB LCD驱动移植

    本文章为<STM32MP157 Linux系统移植开发篇>系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板).stm32mp157是ARM双核,2 ...

  7. Linux环境下使用WIFI模块:WIFI驱动移植

    WIFI驱动移植 实验平台 内核版本:Linux-4.19.5 开发板:SAMSUNG JZ2440 WIFI模块:Ralink rt3070 查看WIFI设备的PID 直接将WIFI模块接到电脑的U ...

  8. Barebox for Tiny6410(LCD驱动移植)

    一.目的 熟悉Barebox的Frame buffer框架.LCD驱动的移植和测试命令的编写. 二.主要内容 1.1 为Barebox移植基于Tiny6410的LCD驱动. 1.2 编写lcd命令测试 ...

  9. LCD驱动移植之开机logo

    移植环境 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 LCD:TFT480*272 参考资料:<天嵌 ...

  10. 基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)

    最近在学习王维波老师的<STM32Cube高效开发教程>,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了 ...

最新文章

  1. 激活函数之ReLU/softplus介绍及C++实现
  2. Spring Cloud JWT文件生成
  3. python下载文件到指定目录-Python获取指定文件夹下的文件名的方法
  4. C# linq创建嵌套组
  5. EOS 消息设计(2)并行处理
  6. 考驾照重点科目的关键考试技巧
  7. 详细解析RxAndroid的使用方式
  8. InnoDB Plugin 1.0.2 for MySQL 5.1.30 (GA) Released
  9. Linux c中一些常用函数总结(c语言中文网。。。)
  10. im即时通讯软件app源码-仿微信-开发日记
  11. FinePrint双面打印设置
  12. Java去除使用富文本编辑器时自动生成的标签
  13. 海尔计算机显卡驱动,海尔t621显卡驱动(最新更新)海尔t68d显卡驱动
  14. 聊一聊积分墙的那些事儿
  15. php js广告,JavaScript_用JS调用谷歌 AdSense广告的方法, 具体的google广告的js文件做 - phpStudy...
  16. 百度收录批量查询_如何查看网站是否被收录?
  17. 金三银四跳槽季,教你这几招提高面试成功率
  18. Host文件的使用与说明
  19. pytorch 模型model 的一些常用属性和函数说明
  20. 小游戏类项目 —— 扫雷

热门文章

  1. 金蝶K3仓存管理模块术语表
  2. 大学生交友平台 APP——YouQu
  3. HP 5200LX驱动安装历程
  4. GBase8s性能简介
  5. 计算机制图用什么图纸,制图用什么笔记本好
  6. JWT —— 生成Token、解析Token的简单工具类
  7. HTTP HTTPS 协议
  8. OpenCV仿射变换--平移
  9. iBatis与Mybatis的区别对比
  10. 到底什么是商业模式?