ITX-3588J MIPI显示屏无法显示
本帖最后由 wqh_001 于 2022-6-13 20:44 编辑刚到手的ITX-3588J和DM-M10R800 V2 显示屏模组连接到一起。
网上下载并烧录“ITX-3588J-BE45-A1_Ubuntu20.04-Gnome-r211_v0.1.0a_220424.img”,ubuntu正常启动,HDMI与MIPI-DSI均正常。
在rk3588_repo_sdk_v0.1.0a.7z开发包上更新至rk3588/linux_release_v1.0.0b。
1.未做任何修改,全编译后,仅升级kernel/boot.img,ubuntu正常启动,HDMI正常,原始dts没有panel设备树,故panel无显示。
2.修改设备树rk3588-firefly-itx-3588j.dts为:
/dts-v1/;
#include "rk3588-firefly-itx-3588j.dtsi"
#include "rk3588-firefly-itx-cam-8ms1m.dtsi"
/ {
model = "Firefly ITX-3588J HDMI(Linux)";
compatible = "rockchip,rk3588-firefly-itx-3588j", "rockchip,rk3588";
backlight: backlight {
status = "okay";
compatible = "pwm-backlight";
enable-gpios = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>;
pwms = <&pwm12 0 50000 1>;
};
};
&pwm12 {
pinctrl-0 = <&pwm12m1_pins>;
status = "okay";
};
//设置 dsi0 的开机 logo
&route_dsi0 {
status = "okay";
connect = <&vp3_out_dsi0>;
};
//把 dsi0 连接在 Port3 上
&dsi0_in_vp3 {
status = "okay";
};
//打开 DPHY
&mipi_dcphy0 {
status = "okay";
};
//打开 dsi0(注意这一部分较重要,涉及到屏幕的上电时序)
&dsi0 {
status = "okay";
//rockchip,lane-rate = <1000>;
dsi0_panel: panel@0 {
status = "okay";
compatible = "simple-panel-dsi";
reg = <0>;
//选择之前的配置的背光节点
backlight = <&backlight>;
//设置 LCD 使能引脚
enable-gpios = <&pca9555 PCA_IO0_2 GPIO_ACTIVE_HIGH>;
//设置 LCD 复位引脚
reset-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_LOW>;
//设置 LCD 屏幕的上下电时序
enable-delay-ms = <50>;
prepare-delay-ms = <200>;
reset-delay-ms = <50>;
init-delay-ms = <55>;
unprepare-delay-ms = <50>;
disable-delay-ms = <20>;
mipi-data-delay-ms = <200>;
size,width = <120>;
size,height = <170>;
//设置 DSI(DPHY)的输出模式,一般默认为 Video 模式
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
//设置 DSI 像素数据的输出格式,这部分的设置取决于接收端的屏幕是否支持该格式
dsi,format = <MIPI_DSI_FMT_RGB888>;
//设置使用的 lane 数量,默认为 4 lane
dsi,lanes= <4>;
//设置 MIPI DSI 的上电指令
panel-init-sequence = [
//39 00 04 B9 83 10 2E
// 15 00 02 CF FF
05 78 01 11
05 32 01 29
//15 00 02 35 00
];
//设置 MIPI DSI 的下电指令
panel-exit-sequence = [
05 00 01 28
05 00 01 10
];
//设置 LCD 屏幕的显示时序(该部分内容一般都可以从对应屏幕的 datasheet 中获取,如上图所示)
disp_timings0: display-timings {
native-mode = <&dsi0_timing0>;
dsi0_timing0: timing0 {
/* 显示时序的换算公式一般为:
(hactive + hsync-len + hback-porch + hfront-porch)
x
( vactive + vsync-len + vback-porch + vfront-porch)x fps
= clock-frequency
*/
clock-frequency = <72600000>;//<80000000>;
hactive = <800>;//<768>;
vactive = <1280>;
hsync-len = <14>; //20, 50,10
hback-porch = <26>; //50, 56,10
hfront-porch = <32>;//50, 30,180
vsync-len = <8>;//4
vback-porch = <20>;//4
vfront-porch = <80>;//8
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
panel_in_dsi: endpoint {
remote-endpoint = <&dsi_out_panel>;
};
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
dsi_out_panel: endpoint {
remote-endpoint = <&panel_in_dsi>;
};
};
};
};执行./build.sh kernel仅升级
sudo upgrade_tool di -b kernel/boot.img
问题来了。测试HDMI正常显示,但是panel黑屏无显示
uboot打印
Using display timing dts
dsi@fde20000:detailed mode clock 72600 kHz, flags
H: 0800 0832 0846 0872
V: 1280 1360 1368 1388
bus_format: 100e
VOP update mode to: 800x1280p0, type: MIPI0 for VP3
p_rate=1188000000, best_rate=69882352, div=17, sel=0
p_rate=1500000000, best_rate=71428571, div=21, sel=1
p_rate=0, best_rate=71428571, div=21, sel=1
p_rate=786215976, best_rate=71474179, div=11, sel=3
p_rate=786215976, best_rate=71474179, div=11, sel=3
VOP VP3 enable Esmart3 fmt addr
final DSI-Link bandwidth: 0 Kbps x 4
command interface is busy: 0x10001
failed to write cmd0: -110
failed to send on cmds: -110
kernel打印
[ 4.915197] rockchip-drm display-subsystem: bound fde20000.dsi (ops 0xffffffc01115cd48)
抓取状态打印
<b>root@firefly:~# cat /sys/kernel/ls /sys/class/drm</b>
card0 card0-DP-2 card0-HDMI-A-1card0-Writeback-1renderD128version
card0-DP-1card0-DSI-1card0-HDMI-A-2card1 renderD129
<b>root@firefly:~# cat /sys/kernel/debug/dri/0/summary</b>
Video Port0: DISABLED
Video Port1: ACTIVE
Connector: HDMI-A-2
bus_format: RGB888_1X24
overlay_mode output_mode color_space, eotf:0
Display mode: 1920x1080p60
clk real_clk type flag
H: 1920 2008 2052 2200
V: 1080 1084 1089 1125
Esmart1-win0: ACTIVE
win_id: 10
format: XR24 little-endian (0x34325258) SDR color_space glb_alpha
rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
csc: y2r r2y csc mode
zpos: 1
src: pos rect
dst: pos rect
buf: addr: 0x00000000eed7e000 pitch: 7680 offset: 0
Video Port2: DISABLED
Video Port3: ACTIVE
Connector: DSI-1
bus_format: RGB888_1X24
overlay_mode output_mode color_space, eotf:0
Display mode: 800x1280p60
clk real_clk type flag
H: 800 832 846 872
V: 1280 1360 1368 1388
Esmart3-win0: ACTIVE
win_id: 11
format: XR24 little-endian (0x34325258) SDR color_space glb_alpha
rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
csc: y2r r2y csc mode
zpos: 3
src: pos rect
dst: pos rect
buf: addr: 0x00000000ee996000 pitch: 3200 offset: 0
<b>root@firefly:~# cat /sys/class/drm/card0-DSI-1/status</b>
connected
其实我们有做 mk 适配 mipi 屏幕的:
./build.sh device/rockchip/rk3588/itx-3588j-BE45-A1-ubuntu.mk 太着急了,今天早上才看到,感谢!
页:
[1]