单片机
返回首页

移植OK6410 LCD驱动

2024-09-30 来源:cnblogs

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[] = {

    [0] = {

        .start = S3C64XX_PA_LCD,

        .end   = S3C64XX_PA_LCD + SZ_1M - 1,

        .flags = IORESOURCE_MEM,

    },

    [1] = {

        .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          = -1,

    .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.启动时出现小企鹅

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 基于IC555的可变PWM振荡器电路

  • 优化电路板布局的简单方法

  • 如何使用LED驱动器LM3915制作振动计

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章