wqh_001 发表于 2022-6-13 20:37:17

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






799959745 发表于 2022-6-14 09:15:17

其实我们有做 mk 适配 mipi 屏幕的:
./build.sh device/rockchip/rk3588/itx-3588j-BE45-A1-ubuntu.mk

wqh_001 发表于 2022-6-14 09:51:15

太着急了,今天早上才看到,感谢!
页: [1]
查看完整版本: ITX-3588J MIPI显示屏无法显示