2023年12月9日發(fā)(作者:珍惜愛)

RK平臺mipi屏初始化序列配置
RK平臺mipi屏初始化序列都是在dts中進(jìn)行配置,有兩種方式,下面分別介紹兩種方式的配置方法。
方式一
RK平臺較老的SDK采用下面方式配置mipi參數(shù),如:RK3128 5.1 SDK中就是采用的下面方式。
示例:
/ {
/* about mipi */
disp_mipi_init: mipi_dsi_init{
compatible = "rockchip,mipi_dsi_init";
rockchip,screen_init = <1>;
rockchip,dsi_lane = <4>;
rockchip,dsi_hs_clk = <550>;
rockchip,mipi_dsi_num = <1>;
};
disp_mipi_power_ctr: mipi_power_ctr {
compatible = "rockchip,mipi_power_ctr";
/*
mipi_lcd_rst:mipi_lcd_rst{
compatible = "rockchip,lcd_rst";
rockchip,gpios = <&gpio2 GPIO_D1 GPIO_ACTIVE_HIGH>;
rockchip,delay = <20>;
};
mipi_lcd_en:mipi_lcd_en {
compatible = "rockchip,lcd_en";
rockchip,gpios = <&gpio2 GPIO_D0 GPIO_ACTIVE_LOW>;
rockchip,delay = <100>;
};
*/
};
disp_mipi_init_cmds: screen-on-cmds {
compatible = "rockchip,screen-on-cmds";
rockchip,cmd_debug = <1>;
rockchip,on-cmds1 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xE0 0x00>;
rockchip,cmd_delay = <0>;
};
rockchip,on-cmds2 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0x55 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10>;
rockchip,cmd_delay = <0>;
};
//SLP OUT
rockchip,on-cmds3 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x05 0x11>;
rockchip,cmd_delay = <120>;
};
//DISP ON
rockchip,on-cmds4 {
rockchip,on-cmds4 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x05 0x29>;
rockchip,cmd_delay = <5>;
};
};
disp_timings: display-timings {
native-mode = <&timing0>;
compatible = "rockchip,display-timings";
timing0: timing0 {
screen-type =
lvds-format =
out-face =
clock-frequency = <67330000>;
hactive = <800>;
vactive = <1280>;
hback-porch = <18>;
hfront-porch = <18>;
vback-porch = <10>;
vfront-porch = <20>;
hsync-len = <18>;
vsync-len = <4>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
swap-rb = <0>;
swap-rg = <0>;
swap-gb = <0>;
};
};
};
這里只分析disp_mipi_init_cmds的配置規(guī)則,disp_mipi_init、disp_mipi_power_ctl、disp_timings不分析,其中disp_timings可以參考另一
篇文章:《如何確定lcd timing參數(shù)》。
下面代碼段為一條mipi初始化數(shù)據(jù),主要關(guān)心的參數(shù)有“rockchip,cmd”和“rockchip,cmd_delay”。
rockchip,on-cmds1 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xE0 0x00>;
rockchip,cmd_delay = <0>;
};
rockchip,cmd
命令格式如下:
0x15 0xE0 0x00
| | |
| | 數(shù)據(jù)
| 寄存器地址
命令類型(0x05: 單字節(jié)數(shù)據(jù) 0x15: 雙字節(jié)數(shù)據(jù) 0x39: 多字節(jié)數(shù)據(jù))
單字節(jié)數(shù)據(jù)舉例:
rockchip,on-cmds3 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x05 0x11>;
rockchip,cmd_delay = <120>;
};
雙字節(jié)數(shù)據(jù)舉例:
rockchip,on-cmds1 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x15 0xE0 0x00>;
rockchip,cmd_delay = <0>;
};
多字節(jié)數(shù)據(jù)舉例:
rockchip,on-cmds2 {
compatible = "rockchip,on-cmds";
rockchip,cmd_type =
rockchip,dsi_id = <0>;
rockchip,cmd = <0x39 0x55 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10>;
rockchip,cmd_delay = <0>;
};
rockchip,cmd_delay
此字段定義發(fā)送完命令后延時時長,單位毫秒(ms),大部分命令無須延時。
方式二
RK平臺新的SDK已經(jīng)統(tǒng)一采用下面方式配置mipi參數(shù),如:RK3288 8.1 SDK中就是采用的下面方式。
示例:
&dsi0 {
status = "okay";
rockchip,lane-rate = <600>;
panel: panel {
compatible = "simple-panel-dsi";
reg = <0>;
backlight = <&backlight>;
enable-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
//ret-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
power-supply = <&vcc_lcd>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST)>;
dsi,format =
dsi,lanes = <4>;
ret-delay-ms = <20>;
init-delay-ms = <20>;
enable-delay-ms = <120>;
prepare-delay-ms = <120>;
status = "okay";
panel-init-quence = [
15 00 02 80 77
15 00 02 81 77
15 00 02 82 77
15 00 02 83 77
15 00 02 84 77
15 00 02 85 77
15 00 02 86 77
05 64 01 11
05 14 01 29
];
panel-exit-quence = [
05 64 01 28
05 96 01 10
];
disp_timings: display-timings {
native-mode = <&timing2>;
timing2: timing0 {
clock-frequency = <52000000>;
hactive = <1024>;
vactive = <600>;
hback-porch = <160>;
hfront-porch = <160>;
vback-porch = <23>;
vfront-porch = <12>;
hsync-len = <10>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
};
};
這里依然只分析panel-init-quence和panel-exit-quence的配置規(guī)則,其它配置可以參考另一篇文章:《如何確定lcd timing參數(shù)》。
新的mipi初始化序列配置規(guī)則與老方法其實(shí)是一致的,只是改寫了表達(dá)方式,如下:
panel-init-quence = [
15 00 02 80 77
15 00 02 81 77
15 00 02 82 77
15 00 02 83 77
15 00 02 84 77
15 00 02 85 77
15 00 02 86 77
39 00 0D C3 01 66 13 23 00 66 85 33 20 38 38 00
05 64 01 11
05 14 01 29
];
中括號里的內(nèi)容,每一行表示一串命令字,規(guī)則如下:
15 00 02 80 77
| | | | |
| | | | 數(shù)據(jù)
| | | | 寄存器地址
| | 數(shù)據(jù)長度
| 延時
命令類型(0x05: 單字節(jié)數(shù)據(jù) 0x15: 雙字節(jié)數(shù)據(jù) 0x39: 多字節(jié)數(shù)據(jù))
單字節(jié)數(shù)據(jù)舉例:
05 64 01 11
雙字節(jié)數(shù)據(jù)舉例:
15 00 02 86 77
多字節(jié)數(shù)據(jù)舉例:
39 00 0D C3 01 66 13 23 00 66 85 33 20 38 38 00
本文發(fā)布于:2023-12-09 21:26:16,感謝您對本站的認(rèn)可!
本文鏈接:http://www.newhan.cn/zhishi/a/170212837640125.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:RK平臺mipi屏初始化序列配置.doc
本文 PDF 下載地址:RK平臺mipi屏初始化序列配置.pdf
| 留言與評論(共有 0 條評論) |