RK3399 驱动开发 | 01 - 双Mipi触摸屏驱动调试

本文详细介绍了基于RK3399平台的TFT LCD和GT911触摸芯片的驱动开发过程。从屏幕初始化、设备树修改,到GT911的驱动调试,包括通信检测、驱动加载、设备树配置,以及针对触摸不准问题的分析和解决,最终实现了准确的触摸屏功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文是基于RK3399平台开发的驱动,支持双Mipi触摸屏功能。

系统:Android8.1
内核 : Kernel 4.4.126
电容触控芯片 : GT911
TFT LCD : OTA7290B

一、TFT LCD使用

1. 屏幕初始化

当前使用版本:JC080FH014_4L_MIPI
屏幕初始化厂家提供如下:
params->dsi.vertical_sync_active = 1;
params->dsi.vertical_backporch = 25;
params->dsi.vertical_frontporch = 35;
params->dsi.vertical_active_line = 1200;

params->dsi.horizontal_sync_active = 1;
params->dsi.horizontal_backporch = 60;
params->dsi.horizontal_frontporch = 80;
params->dsi.horizontal_active_pixel = 1920;

DCS_Short_Write_1P(0x11,0x00);
MDELAY(120);
DCS_Short_Write_1P(0x29,0x00);
MDELAY(120); 

2. 修改设备树dts

由于使用的是双Mipi,故dsi 和 dsi1均需配置。
&dsi {
   
   
    status = "okay";
	//rockchip,dual-channel = <&dsi1>;
    rockchip,lane-rate = <500>;
    panel@0 {
   
      
        compatible = "simple-panel-dsi";
        reg = <0>;

        dsi,flags = <(MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO |
			      MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
		dsi,format = <MIPI_DSI_FMT_RGB888>;
		bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
		dsi,lanes = <4>;
        status = "okay";
        display-timings {
   
   
                          native-mode = <&timing0>;
                          timing0: timing0 {
   
   
                                       clock-frequency = <80000000>;
                                       hactive = <1200>;
                                       vactive = <1920>;
                                       hback-porch = <60>; 
                                       hfront-porch = <80>;
                                       vback-porch = <25>;
                                       vfront-porch = <35>;
                                       hsync-len = <2>;  
                                       vsync-len = <2>;
                                       hsync-active = <1>;
                                       vsync-active = <1>;
                                       de-active = <0>
### RK3399 驱动开发教程与资源 #### 以太网驱动调试 针对RK3399平台上的以太网调试,存在详细的指导文档。此指南不仅概述了驱动程序框架的核心概念,还展示了实际应用中的源代码片段。遵循这些说明可以有效地完成RK3399的以太网初始化和故障排查工作[^1]。 ```python # 示例:加载以太网模块 sudo modprobe rk805_ethernet ``` #### RTC(实时时钟)驱动开发 对于RTC设备的支持,在Linux内核中有专门的设计模式用于管理这类硬件组件。`devm_rtc_device_register` API被用来向系统注册一个新的RTC实例;在此之前会先利用`devm_rtc_allocate_device`创建并配置必要的数据结构。整个过程涉及到多个层次间的交互,从高层的应用接口到底层的具体实现细节均有所涉及[^2]。 #### LED驱动编写实践 当着手于LED控制功能时,《基于RK3399的LED驱动开发》一文提供了完整的项目构建方法论以及Makefile模板。这使得开发者可以根据自己的需求调整编译选项,并轻松集成自定义逻辑至目标环境中[^3]。 #### 触摸屏适配挑战 面对MIPI触控面板可能出现的问题,《RK3399 驱动开发 | 01 - Mipi触摸屏驱动调试》深入探讨了一个特定案例——即Goodix GT9XX系列芯片组所引发的位置映射失准现象及其修正措施。通过对源码级参数设定的理解与修改,最终实现了预期效果[^4]。 #### USB体系架构理解 最后,在研究USB连接机制方面,《RK3399平台开发系列讲解(USB篇)如何去学习USB驱动 - 视频课》视频课程给出了清晰易懂的教学内容。它解释了诸如UDC这样的核心概念如何帮助建立稳固可靠的通信链路,同时也推荐了一些辅助工具如UsbTreeView来辅助日常维护作业[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值