平台:RK3399
KERNEL版本:kernel4.4
Android版本:android7.1
转换IC:LT9211(龙迅) mipi to lvds
接口: iic
总的思路:rk3399平台不支持lvds接口的输出,如果想要接lvds的屏,必须通过mipi转lvds芯片来转接,实现LCD显示,这里使用的IC是龙迅的LT9211。
第一步,我们需要拿到datasheet,包括转换IC的datasheet和LCD显示屏的Datesheet。
获取转换IC(mipi to lvds)的datasheet我们主要关注的是该IC的I2c从设备地址,我这里的芯片是龙迅的LT9211,i2c地址是0x2d。主要还是寄存器datasheet还有确认它的ID值(即i2c读取到的芯片id值,一般是复位之后会通过I2C去读取IC的id值,证明i2c总线识别检测到了该芯片)。
获取LCDdatasheet我们主要关注的是屏的分辨率和屏的接口,双路LVDS还是单路LVDS,还有时序参数TIMING这些数据。
LCD的时序参数(timing),一般在屏的datasheet都可以找到:
+ clock-frequency = <148500000>;
+ hactive = <1920>;
+ vactive = <1080>;
+ hback-porch = <65>;
+ hfront-porch = <65>;
+ vback-porch = <20>;
+ vfront-porch = <20>;
+ hsync-len = <10>;
+ vsync-len = <5>;
屏的参数做一下说明:
Horizontal 代表水平方向,HBP行后沿参数 、HFP 行前沿参数,单位是 clocks
Vertical 代表垂直方向,VBP 帧同步信号后肩、VFP 帧同步信号前肩,单位是 lines。
pclk (pixel clock frequence),像素时钟频率,也就是我们在 dts 中填充的 clock-frequence 这个参数。
另外根据以上的信息,我们还能计算出 Mipi Dsi Clock 。
DCLK = 100 + H_total×V_total × fps × 3 × 8 / lanes_nums
total 这里指的是 sync + front + back + active (分辨率值)
比如 H_total = Hsync + HFP(hfront-proch) + HBP(hback-porch) + Hactive
fps 指的是帧率,一般我们按照 60 帧来计算
3 × 8 代表一个 RGB 为 3 个字节,每个字节 8 bit
lanes 代表 mipi data 通道数。
第二步,使rk3399主控端输出mipi信号,即根据屏datasheet配置lcd控制器,在rk3399的dts加上LCD的时序参数,使有mipi信号输出。
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 25000 0>; //配置背光信息,这里用pwm1控制背光
brightness-levels = <
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71
72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95
96 97 98 99 100 101 102 103
104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119
120 121 122 123 124 125 126 127
128 129 130 131 132 133 134 135
136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151
152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167
168 169 170 171 172 173 174 175
176 177 178 179 180 181 182 183
184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199
200 201 202 203 204 205 206 207
208 209 210 211 212 213