基于VS-RK3288 RK平台LCD调试说明
前言
LVDS调试
dts实例
screen_type
lvds_format
clock-frequency
out-face
其它参数
EDP调试
本篇博文使用Rockchip平台RK3288主控,向大家分享自己总结的Rockchip平台LCD调试的一些经验。
Platform : Rockchip
Soc : RK3288
System : Android 7.1
RK3288的LCD调试,根据屏幕规格书对dts作相应的修改基本都可点亮,配置也较为简单,有几个概念容易混淆,单纯的点屏基本上不需要了解相关的LVDS,EDP协议等。本篇博客大致讲述RK平台LVDS、EDP屏的调试经验,协议部分不会涉及,MIPI屏部分暂时还未深入了解。 前言在fb驱动这块,大致分为了四部分,rk_screen首先会读取dts中screen信息,传给screen_type驱动(本例也就是rk32_lvds.c),这些信息最终都会被fb获取。详细的流程分析请参考博文:RK平台fb源码分析系列 LVDS调试dts实例
贴一个LVDS屏参的实例,仅供参考: disp_timings: display-timings { native-mode = <&timing0>; timing0: timing0 { screen-type = <SCREEN_LVDS>; lvds-format = <LVDS_8BIT_2>; out-face = <OUT_P888>; color-mode = <COLOR_RGB>; clock-frequency = <43000000>; //43000000 hactive = <1024>; vactive = <600>; hback-porch = <100>; hfront-porch = <60>; vback-porch = <10>; vfront-porch = <8>; hsync-len = <5>; vsync-len = <2>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <1>; swap-rb = <0>; swap-rg = <0>; swap-gb = <0>; }; };
参数看起来挺多的,其实真正需要改的一般不多。那究竟哪些都需要修改呢?这当然是根据不同的LCD参考其规格书修改的,dts中需要重点关注的有以下几个参数:
screen_type,lvds-format,out-face,clock-frequency,hactive,vactive,hbp,hfp,vbp,vfp screen_type
screen-type表示屏幕类型(RGB,LVDS,EDP,MIPI,HDMI,MCU),如果该屏幕为LVDS屏,则screen-type就应该取值为SCREEN_LVDS。如果是RGB屏幕,则screen-type取值为SCREEN_RGB。screen-type的值有以下几种:SCREEN_RGB,SCREEN_LVDS(SCREEN_DUAL_LVDS,SCREEN_LVDS_10BIT,SCREEN_DUAL_LVDS_10BIT),SCREEN_HDMI,SCREEN_MIPI,SCREEN_DUAL_MIPI、SCREEN_EDP#define SCREEN_NULL 0#define SCREEN_RGB 1#define SCREEN_LVDS 2#define SCREEN_DUAL_LVDS 3#define SCREEN_MCU 4#define SCREEN_TVOUT 5#define SCREEN_HDMI 6#define SCREEN_MIPI 7#define SCREEN_DUAL_MIPI 8#define SCREEN_EDP 9#define SCREEN_TVOUT_TEST 10#define SCREEN_LVDS_10BIT 11#define SCREEN_DUAL_LVDS_10BIT 12
lvds_format
lvds-format表示LVDS的数据方式,只有在该屏幕是LVDS屏的时候该参数才有效。该值需要结合屏幕和LVDS在硬件上的连接方式来定义。lvds_format的值有以下几种:LVDS_8BIT_1、LVDS_8BIT_2、LVDS_8BIT_3、LVDS_6BIT。#define LVDS_8BIT_1 0#define LVDS_8BIT_2 1#define LVDS_8BIT_3 2#define LVDS_6BIT 3#define LVDS_10BIT_1 4#define LVDS_10BIT_2 5
|