|
【Linux】
ITX-3588J MIPI显示屏无法显示
发表于 2022-6-13 20:37:17
浏览:5563
|
回复:2
打印
只看该作者
[复制链接]
楼主
-
固件类型:
自行编译的固件
-
SDK包名称:
rk3588_repo_sdk_v0.1.0a.7z
-
SDK更新到哪个COMMIT:
0000-00-00 00:00:00
-
SDK修改内容:
rk3588-firefly-itx-3588j.dts
-
Log日志:
ubuntu_rk3588j_panel_err.txt
问题描述及复现步骤:
本帖最后由 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>;
- };
- };
- };
- };
复制代码 执行仅升级
- sudo upgrade_tool di -b kernel/boot.img
复制代码
问题来了。测试HDMI正常显示,但是panel黑屏无显示
uboot打印
- Using display timing dts
- dsi@fde20000: detailed mode clock 72600 kHz, flags[a]
- H: 0800 0832 0846 0872
- V: 1280 1360 1368 1388
- bus_format: 100e
- VOP update mode to: 800x1280p0, type: MIPI0 for VP3
- [list]p_rate=1188000000, best_rate=69882352, div=17, sel=0
- [list]p_rate=1500000000, best_rate=71428571, div=21, sel=1
- [list]p_rate=0, best_rate=71428571, div=21, sel=1
- [list]p_rate=786215976, best_rate=71474179, div=11, sel=3
- [result]p_rate=786215976, best_rate=71474179, div=11, sel=3
- VOP VP3 enable Esmart3[500x501->500x501@150x389] fmt[2] addr[0xedf20000]
- 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-1 card0-Writeback-1 renderD128 version
- card0-DP-1 card0-DSI-1 card0-HDMI-A-2 card1 renderD129
- <b>root@firefly:~# cat /sys/kernel/debug/dri/0/summary</b>
- Video Port0: DISABLED
- Video Port1: ACTIVE
- Connector: HDMI-A-2
- bus_format[100a]: RGB888_1X24
- overlay_mode[0] output_mode[f] color_space[0], eotf:0
- Display mode: 1920x1080p60
- clk[148500] real_clk[148500] type[48] flag[5]
- H: 1920 2008 2052 2200
- V: 1080 1084 1089 1125
- Esmart1-win0: ACTIVE
- win_id: 10
- format: XR24 little-endian (0x34325258) SDR[0] color_space[0] glb_alpha[0xff]
- rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
- csc: y2r[0] r2y[0] csc mode[0]
- zpos: 1
- src: pos[0, 0] rect[1920 x 1080]
- dst: pos[0, 0] rect[1920 x 1080]
- buf[0]: addr: 0x00000000eed7e000 pitch: 7680 offset: 0
- Video Port2: DISABLED
- Video Port3: ACTIVE
- Connector: DSI-1
- bus_format[100a]: RGB888_1X24
- overlay_mode[0] output_mode[0] color_space[0], eotf:0
- Display mode: 800x1280p60
- clk[72600] real_clk[72600] type[48] flag[a]
- H: 800 832 846 872
- V: 1280 1360 1368 1388
- Esmart3-win0: ACTIVE
- win_id: 11
- format: XR24 little-endian (0x34325258) SDR[0] color_space[0] glb_alpha[0xff]
- rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
- csc: y2r[0] r2y[0] csc mode[0]
- zpos: 3
- src: pos[0, 0] rect[800 x 1280]
- dst: pos[0, 0] rect[800 x 1280]
- buf[0]: addr: 0x00000000ee996000 pitch: 3200 offset: 0
- <b>root@firefly:~# cat /sys/class/drm/card0-DSI-1/status</b>
- connected
复制代码
|
|