Config配置
RK3568 SDK下kernel/arch/arm64/configs/*_defconfig已经把LCD相关的配置设置好了,如果自己做了修改,请注意把以下配置加上:
CONFIG_DRM_ROCKCHIP=y
CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_DRM_PANEL_SIMPLE=y
MIPI DTS配置
以RK3568的SDK 中MIPI DSI的DTS文件为例(
kernel/arch/arm64/boot/dts/rockchip/rk3568-mipi101_M101014_BE45_A1.dts),此DTS文件为MIPI_DSI0+HDMI屏配置,MIPI_DSI1 默认关闭,接下来以此DTS中的dsi0配置作为范例来进行相关的LCD驱动介绍。
从DTS文件中我们可以看到以下语句:
&dsi0 {
status = "okay";
//rockchip,lane-rate = <1000>;
dsi0_panel: panel@0 {
status = "okay";
......
//enable-gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_LOW>;
enable-delay-ms = <35>;
prepare-delay-ms = <6>;
......
disp_timings0: display-timings {
native-mode = <&dsi0_timing0>;
dsi0_timing0: timing0 {
clock-frequency = <76000000>;//<80000000>;
hactive = <800>;//<768>;
vactive = <1280>;
hsync-len = <14>; //20, 50,10
hback-porch = <25>; //50, 56,10
hfront-porch = <25>;//50, 30,180
vsync-len = <8>;//4
vback-porch = <32>;//4
vfront-porch = <146>;//8
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
};
};
参数看起来挺多的,其实真正需要修改的并不多。究竟哪些都需要修改是根据不同的LCD参考其规格书修改的,dts中需要重点关注的有以下几个参数:
hactive 、vactive 、hsync-len、hback-porch、hfront-porch、 vsync-len、vback-porch、vfront-porch,相关的参数一般可以在屏的规格书中找到。上述六个参数按照规格书来填充(目前大多数屏都是DE mode,DE模式的话一般都会标明DE mode only),DE模式只需要关注两个参数Vertical section blanking和Horizontal section blanking。
背光配置
backlight: backlight {
status = "okay";
compatible = "pwm-backlight";
enable-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
pwms = <&pwm4 0 50000 1>;
brightness-levels = <
60 60 60 61 61 61 62 62
62 63