天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第五篇 LCD+触摸屏移植

6 篇文章 0 订阅

经过前面的移植,我们的板子已经可以成功进入linux,但是这个时候看不到画面的,还需要进一步调通LCD显示和触摸屏驱动。

1.uboot环境变量。

为了LCD能显示需要如下设置uboot变量:

     $setenv mynetargs 'setenv bootargs console=${console},${baudrate} ${smp} video=${myvideo} root=/dev/nfs ip=dhcp rw nfsroot=${serverip}:${nfsroot},v3,tcp''

     $setenv myvideo 'mxcfb0:dev=lcd,CLAA-WVGA,if=RGB24'

2.修改dts。

mxcfb1,2,4分别是ldb,hdmi,ldb接口,只有mxxcfb3是lcd接口,所以紧保留mxcfb3打开。

$vi arch/arm/boot/dts/imx6q-sabresd.dts

修改如下内容:

 &mxcfb1 {
      status = "disabled";
  };
 
  &mxcfb2 {
      status = "disabled";
  };
 
  &mxcfb3 {
      status = "okay";
  };
 
  &mxcfb4 {
      status = "disabled";
  };
 
  &sata {
      status = "okay";
 
};

$vi arch/arm/boot/imx6qdl-sabresd.dtsi

如上设置了uboot环境变量则该文件下面两处通常不用再修改,如果颜色或分辨率不对,则修改如下:

  mxcfb3: fb@2 {
        compatible = "fsl,mxc_sdc_fb";
        disp_dev = "lcd";
        interface_pix_fmt = "RGB24"; //把默认色彩格式从RGB565改成RGB24
        mode_str ="CLAA-WVGA";
        default_bpp = <16>;
        int_clk = <0>;
        late_init = <0>;
        status = "disabled";
    };

lcd@0 {
        compatible = "fsl,lcd";
        ipu_id = <0>;
        disp_id = <0>;
        default_ifmt = "RGB24"; //把默认色彩格式从RGB565改成RGB24
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ipu1>;
        status = "okay";
    };

此时进入系统会不断报max11801的错误,这是因为NXP的imx6q sabresd板子用的触摸芯片是max11801而天嵌E9则不是,查看原理图E9板子上触摸控制芯片并没有焊接,而是直接在LCD显示屏排线中留了用于触摸芯片通讯的I2C两管脚以及触摸芯片的中断管脚和使能管脚,我手上的天嵌配套屏幕是7存LCD电容屏,查看天嵌源码发现天嵌提供触摸驱动只是个module文件,可以在屏幕版面背面找到ft5216芯片,这个就是这里实际的触摸芯片,在内核中搜索并没有该芯片,只是找到了个ft5x06的驱动,实测该驱动可用于ft5216,结合Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt文件做如下修改:

$vi arch/arm/boot/dts/imx6qdl-sabresd.dtsi

    mma8451@1c {
        compatible = "fsl,mma8451";
        reg = <0x1c>;
        position = <0>;
        vdd-supply = <&reg_sensor>;
        vddio-supply = <&reg_sensor>;
        interrupt-parent = <&gpio1>;
        interrupts = <18 8>;
        interrupt-route = <1>;
    };
    ft5216@38 { //在i2c节点下添加ft5216配置节点
        compatible = "edt,edt-ft5206";
        reg = <0x38>;
        interrupt-parent = <&gpio1>;
        interrupts = <9 0>;
        status = "okay";
    };

3.修改内核

$source /opt/fsl-imx-x11/4.1.15-2.0.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

     $make menuconfig

取消max11801驱动

Symbol: TOUCHSCREEN_MAX11801 [=n]                                                              
  Type  : tristate                                                                                
 
  Prompt: MAX11801 based touchscreens                                                            
    Location:                                                                                    
      -> Device Drivers                                                                          
       
  -> Input device support                                                                  
         
    -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])                  
       
      -> Touchscreens (INPUT_TOUCHSCREEN [=y])  

[*]选中ft5x06驱动

 Symbol: TOUCHSCREEN_EDT_FT5X06 [=y]                                                            
  Type  : tristate                                                                                
  Prompt: EDT FocalTech FT5x06 I2C Touchscreen support                                            
    Location:                                                                                    
      -> Device Drivers                                                                          
       
  -> Input device support                                                                  
         
    -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])                  
       
         -> Touchscreens (INPUT_TOUCHSCREEN [=y])                                              
    Defined at drivers/input/touchscreen/Kconfig:597                                              
    Depends on: !UML && INPUT [=y] && INPUT_TOUCHSCREEN [=y] && I2C [=y] 


重新生成dtb和zImage

$make imx6q-sabresd.dtb

$make zImage

$cp arch/arm/boot/imx6q-sabresd.dtb arch/arm/boot/zImage /opt/tftpboot/


重启板子,即可进入qt5视窗,校准触摸后,触摸屏幕光标可移动。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值