跳到主要内容

1 Introduction

:::info 文档信息

发布日期:2019-2-28 · 页数:68 · 语言:英文

原始文档:Rockchip_DRM_Panel_Porting_Guide_V1.6_20190228.pdf

:::

章节大纲​

  • 1 Introduction(P6)
    • 1.1 Display Pipe(P6)
  • 2 Panel(P6)
    • 2.1 Documentation and Source Code(P6)
    • 2.2 DT Bindings(P7)
    • 2.3 常见问题(P9)
  • 3 MIPI-DSI(P10)
    • 3.1 Documentation and Source Code(P10)
    • 3.2 DT Bindings(P10)
      • 3.2.1 Host(P10)
      • 3.2.2 PHY(P13)
      • 3.2.3 VOP Routing(P13)
      • 3.2.4 Logo(P13)
      • 3.2.5 Panel(P13)
    • 3.3 Command(P16)
      • 3.3.1 Data Type(P17)
      • 3.3.2 Delay(P19)
      • 3.3.3 Payload Length(P19)
      • 3.3.4 Payload(P19)
      • 3.3.5 Exmaple(P19)
    • 3.4 常见问题(P20)
  • 4 eDP(P24)
    • 4.1 Documentation and Source Code(P24)
    • 4.2 DT Bindings(P25)
      • 4.2.1 Host(P25)
      • 4.2.2 PHY(P26)
      • 4.2.3 VOP Routing(P26)
      • 4.2.4 Logo(P26)
      • 4.2.5 Panel(P27)
    • 4.3 常见问题(P28)
  • 5 LVDS(P28)
    • 5.1 Documentation and Source Code(P28)
    • 5.2 DT Bindings(P29)
      • 5.2.1 Host(P29)
      • 5.2.2 PHY(P30)
      • 5.2.3 VOP Routing(P30)
      • 5.2.4 Logo(P31)
      • 5.2.5 Panel(P32)
    • 5.3 Data Mapping(P34)
      • 5.3.1 6 bit output mode(P34)
      • 5.3.2 8 bit output mode(P35)
  • 6 RGB(P35)
    • 6.1 Documentation and Source Code(P35)
    • 6.2 DT Bingdings(P36)
      • 6.2.1 Host(P36)
      • 6.2.2 PHY(P36)
      • 6.2.3 VOP Routing(P37)
      • 6.2.4 Logo(P37)
      • 6.2.5 Panel(P38)
    • 6.3 Data Mapping(P39)
  • 7 DP Alt Mode(P40)
    • 7.1 Documentation and Source Code(P40)
    • 7.2 DT Bindings(P41)
      • 7.2.1 DP_TX(P41)
      • 7.2.2 USB Type-C PHY(P41)
      • 7.2.3 USB PD(P41)
      • 7.2.4 VOP Routing(P42)
  • 8 RK618(P42)
    • 8.1 Documentation and Source Code(P42)
    • 8.2 DT Bindings(P43)
      • 8.2.1 RK618(P43)
      • 8.2.2 CRU(P44)
      • 8.2.3 HDMI(P45)
      • 8.2.4 LVDS(P46)
      • 8.2.5 RGB(P49)
      • 8.2.6 MIPI-DSI(P52)
      • 8.2.7 Clone Mode(P55)
      • 8.2.8 调试步骤(P60)
  • 9 MCU/CPU(P62)
    • 9.1 Interface(P62)
    • 9.2 Panel(P63)
    • 9.3 MCU timing(P64)
  • 10 Dual-Display(P64)
  • 11 DEBUG(P66)

在线预览​

若预览无法显示,请直接下载 PDF 后用本地阅读器打开。


1.1 Display Pipe​

LCD​

Display​

Panel​

Conctroller​

Interface​

1)Rockchip 平台的LCD Controller 称为VOP(Video Output Processor),芯片中一般集

成 1~2 个 VOP。只有支持两个 VOP 的芯片,才能支持双屏异显。在进行显示路由配置时,

应该选择哪个 VOP 作为输入的依据主要是 VOP 支持的最大分辨率,以 RK3399 为例,

RK3399 有两个 VOP,分别为 VOPB(4096x2160),VOPL(2560x1600),所以对于

分辨率大于2560x1600 的应用,只能选择VOPB 作为输入。

2)Rockchip 平台的芯片集成丰富的显示接口,包括HDMI/MIPI-DSI/RGB/LVDS/eDP/DP 等

等,不同芯片可能包含其中的N 个接口,不同的显示接口对应不同的驱动。

3)对于Embedded Connection 的 Panel,一般不需要支持 HPD,需要手动配置上电时序以及

显示相关信息,所以需要单独的驱动。而对于 box-to-box 的 Monitor,一般支持 HPD,可

以自动识别显示相关信息,所以不需要单独的驱动。

2 Panel​

2.1 Documentation and Source Code​

Kernel (develop-4.4)

drivers/gpu/drm/panel/panel-simple.c

Documentation/devicetree/bindings/display/panel/simple-panel.txt

U-Boot (next-dev)

drivers/video/drm/rockchip_panel.c U-Boot (rkdevelop)

drivers/video/rockchip_panel.c

drivers/video/rockchip_dsi_panel.c

2.2 DT Bindings​

  1. simple-panel(LVDS/RGB/eDP)

  2. simple-panel-dsi (MIPI-DSI)这里只列出通用配置,其他与特定显示接口相关的配置在各个显示接口章节中单独说明。

PropertyValueComment
compatiblesimple-panel or simple-panel-dsi
backlight背光节点引用
power-supply可选,Regulator 配置。
reset-gpios可选,Reset GPIO 配置。
enable-gpios可选,Enable GPIO 配置。
prepare-delay-ms可选,具体时序参考屏驱动。
reset-delay-ms可选,具体时序参考屏驱动。
init-delay-ms可选,具体时序参考屏驱动。
enable-delay-ms可选,具体时序参考屏驱动。
unprepare-delay-ms可选,具体时序参考屏驱动。
disable-delay-ms可选,具体时序参考屏驱动。
display-timingsLCD 时序参数,按屏规格书填写。
width-mmLCD 物理宽度,按屏规格书填写。
height-mmLCD 物理高度,按屏规格书填写。

2.3 常见问题​

  1. reset 脚一般为LOW 有效,驱动最后会把reset 脚拉高,如果reset 脚为 HIGH 有效,驱动

最后会把reset 脚拉低。enable 脚一般为HIGH 有效,驱动最后会把enable 脚拉高,如果

enable 脚为LOW 有效,驱动最后会把 enable 脚拉低。

  1. 如果 drm 驱动一直 bind 失败,返回-517(-EPROBE_DEFER),往往是由于 panel 驱动

probe 失败引起的,这个时候就需要检查 panel 相关的配置,比如reset/enable 是否与其他

模块配置冲突。

  1. Simple-panel 只是一个通用驱动,只能满足一般需求,如果代码不支持,可以考虑对现有驱动进行扩展或者单独写一个特定的驱动。

3 MIPI-DSI​

1)rk3128/rk3326/px30/rk3368 (1~4lanes, 1Gbps per lane)

2)rk3288/rk3399 (1~8lanes, 1.5Gbps per lane)

3.1 Documentation and Source Code​

Kernel (develop-4.4)

drivers/gpu/drm/rockchip/dw-mipi-dsi.c

drivers/phy/rockchip/phy-rockchip-inno-video-combo-phy.c

Documentation/devicetree/bindings/display/rockchip/dw_mipi_dsi_rockchip.txt

Documentation/devicetree/bindings/phy/phy-rockchip-inno-video-combo-phy.txt

U-Boot (next-dev)

drivers/video/drm/dw_mipi_dsi.c

drivers/video/drm/inno_video_combo_phy.c

U-boot (rkdevelop)

drivers/video/rockchip-dw-mipi-dsi.c

drivers/video/rockchip-inno-mipi-dphy.c

3.2 DT Bindings​

3.2.1 Host

1)Single-channel

VOP​

MIPI-DSI​

Panel​

2)Dual-channel (RK3288/RK3399)

MIPI-DSI​

VOP​

Panel​

MIPI-DSI​

① 标准的dual-channel 接口MIPI 屏;

MIPI-DSI​

Panel​

left

VOP​

MIPI-DSI​

Panel​

right

② 分别接一样的屏,组合成dual-channel 接口MIPI 屏,panel0 显示左半屏,panel1 显示右

半屏。

3)Dual-link (RK3399)

VOPB​

MIPI-DSI​

Panel​

MIPI-DSI​

Panel​

VOPL​

因为 MIPI_PHY_TX0 和 MIPI_PHY_TXRX 共用一个 PLL,所以 Dual-link 模式下,如果

panel0 和 panel1 是一样的屏,那么在同一个 lane-rate 下都能正常显示;但如果 panel0 和

panel1 是不一样的屏,只有两个屏都能在同一个lane-rate 下都能正常显示,才能支持这种模式。

PropertyValueComment
rockchip,lane-rate0~1500指定DATA LANE 的速率,单位为mbps/lane, _ CLK LANE 的频率为该值的一半,比如配置为 _ 400Mbps,相应的 CLK 频率为 200MHz。如 果 没 有 配 置 该 属 性 , 驱 动 会 自 动 计 算 lane-rate。
rockchip,dual-chan nel对于Dual-channel mode,该属性必须配置。

3.2.2 PHY

NOTE: 对于有单独PHY 节点的芯片(rk3128/px30/rk3326/rk3368),需要使能该节点。

3.2.3 VOP Routing

NOTE:对于有两个 VOP 的芯片,需要选择其一,如果有打开 LOGO,route_dsi 的connect

属性也要指定为同一个 VOP。

3.2.4 Logo

3.2.5 Panel

1)Single-channel 2) Dual-channel

子模式①和Single-channel 的主要区别是dsi,lanes 的值大于4。

子模式②和 Single-channel 的主要区别是 dsi,lanes,clock-frequency,hactive,

hfront-porch,hsync-len,hback-portch 在单个 panel 的基础上x2。

PropertyValueComment
compatiblesimple-panel-dsi
reg0virtual channel
dsi,flags(MIPI DSI MODE VIDEO _ _ _ | MIPI DSI MODE VIDEO _ _ _ _ BURST | MIPI DSI MODE EOT PA _ _ _ _ CKET | MIPI DSI MODE LPM) _ _ _MIPI DSI MODE VIDEO, _ _ _ MIPI DSI MODE VIDEO BURST, _ _ _ _ 表示Video Burst Mode。 MIPI DSI MODE LPM 表示默认在 _ _ _ LP 模式下发送初始化序列。 MIPI DSI MODE EOT PACKET 表 _ _ _ _ 示关闭EOTP 特性。
dsi,formatMIPI DSI FMT RGB888 _ _ _Pixel Format
dsi,lanes4Lane Number(1 ~ 8),大于4 表 示 为 Dual-channel MIPI-DSI Panel。
panel-init-sequenc e…屏的上电初始化序列,具体参数配置方 式参考下文说明。
panel-exit-sequenc e…屏的下电初始化序列,具体参数配置方 式参考下文说明。

3.3 Command​

格式说明:头部3 个字节(16 进制),分别代表Data Type,Delay,Payload Length。

从第四个字节开始的数据代表长度为 Length 的 Payload。

第一条命令的解析如下:

Data Type:0x39 (DCS Long Write)

Delay:0x00 (0 ms)

Payload Length:0x04 (4 Bytes)

Payload:0xb9 0xff 0x83 0x94

最后一条命令的解析如下:

Data Type:0x05 (DCS Short Write, no parameters)

Delay:0x14 (20 ms)

Payload Length:0x01 (1 Bytes)

Payload:0x29 3.3.1 Data Type ① DCS Write

DCS packet 包括一个字节的dcs 命令,以及n 个字节的parameters。

如果n < 2,将以 Short Packet 的形式对Payload 进行打包。n = 0,表示只发送dcs 命

令,不带参数,Data Type 为0x05;n = 1,表示发送dcs 命令,带一个参数,Data Type 为

0x15。

如果 n >= 2,将以 Long Packet 的形式对 Payload 进行打包。此时发送 dcs 命令,带n

个参数,Data Type 为 0x39。

② Generic Write

Gerneic Packet 包括 n 个字节的parameters。

如果 n < 3,将以 Short Packet 的形式对 Payload 进行打包。n = 0,表示 no

parameters,Data Type 为0x03;n = 1,表示 1 parameter,Data Type 为 0x13;n =

2,表示2 parameters,Data Type 为0x23。

如果n >= 3,将以Long Packet 的形式进行对Payload 打包,表示n parameters,Data Type 为0x29。

3.3.2 Delay

表示当前Packet 发送完成之后,需要延时多少ms,再开始发送下一条命令。

3.3.3 Payload Length

表示 Packet 的有效负载长度。

3.3.4 Payload

表示 Packet 的有效负载,长度为 Payload Length。

3.3.5 Exmaple

3.4 常见问题​

  1. 如何对MIPI-DSI 外设进行读写操作。

drivers/gpu/drm/drm_mipi_dsi.c

drivers/gpu/drm/drm_mipi_dsi.h

提供了对MIPI-DSI 外设通信的相关API。2. 如何判断MIPI-DSI 外设有正常工作?

可以对MIPI-DSI 外设进行读操作,如果通信正常,说明外设有正常工作。比如支持DCS 标

准 MIPI_DCS_GET_POWER_MODE(0x0A)命令的外设,可以通过读取power_mode 来判

断。在外设硬件复位之后,读取 power_mode,err=0 说明通信正常,从而判断设备供电和复

位是正常的,mode=0x08 说明设备目前是 OFF 状态。在发送初始化命令之后,读取

power_mode,mode=0x9c,说明设备目前是ON 状态。

  1. 如何支持DCS 背光。

如果设备支持标准 DCS 背光调节,并且代码已经实现 DCS 背光驱动,可以使能 DCS 背光

功能。

  1. 如何使能EOTP(EoT packet)特性。

DSI 驱动根据 MIPI_DSI_MODE_EOT_PACKET 来判断是否使能 EOTP,如果 flags 没有

MIPI_DSI_MODE_EOT_PACKET ,使能EOTP flags配置特性,如果有配置

MIPI_DSI_MODE_EOT_PACKET,关闭 EOTP 特性。5. 如何发送data_type MIPI_DSI_SHUTDOWN_PERIPHERAL ( 0x22 )和为

MIPI_DSI_TURN_ON_PERIPHERAL(0x32)的packet。

  1. 如何使能非连续时钟?

DSI 驱动根据 MIPI_DSI_CLOCK_NON_CONTINUOUS 来判断是否使能非连续时钟,如

果 flags 没有配置MIPI_DSI_CLOCK_NON_CONTINUOUS,表示连续时钟,如果 flags 有配

置 MIPI_DSI_MODE_EOT_PACKET,表示非连续时钟。

4 eDP​

1)rk3288/rk3368 (1/2/4 lanes, 1.62Gbps/2.7Gbps)

2)rk3399 (1/2/4 lanes, 1.62Gbps/2.7Gbps/5.4Gbps)

4.1 Documentation and Source Code​

Kernel (develop-4.4):

drivers/gpu/drm/bridge/analogix/analogix_dp_core.c

drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c

drivers/gpu/drm/rockchip/analogix_dp-rockchip.c

drivers/phy/rockchip/phy-rockchip-dp.c

Documentation/devicetree/bindings/display/bridge/analogix_dp.txt

Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt

Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt

U-Boot (next-dev):

drivers/video/drm/analogix_dp.c

drivers/video/drm/analogix_dp_reg.c

U-Boot (rkdevelop)

drivers/video/rockchip_analogix_dp.c

drivers/video/rockchip_analogix_dp_reg.c

4.2 DT Bindings​

4.2.1 Host

1)Embedded Connection

eDP​

Panel​

VOP​

2)Box-to-box Connection

eDP​

Monitor​

VOP​

PropertyValueComment
force-hpd对于 Embedded Connection,一般不需要 HPD 功能,需要加上该属性。

对于 Box-to-box Connection,一般需要HPD hpd-gpios

功能,需要配置该属性。

4.2.2 PHY

NOTE: 对于有单独PHY 节点的芯片,需要使能该节点。

4.2.3 VOP Routing

NOTE:对于有两个 VOP 的芯片,需要选择其一,如果有打开LOGO,route_edp 的 connect

属性也要指定为同一个 VOP。

4.2.4 Logo 4.2.5 Panel

① 属性说明

PropertyValueComment
bpc6 or 8Bit pixel component

分别对应6bit 和8bit 屏bus-forma MEDIA_BUS_FMT_RGB666_1X18

t MEDIA_BUS_FMT_RGB888_1X24

4.3 常见问题​

  1. Aux Transaction fail

[ 33.319392] rockchip-dp ff970000.edp: Rx Max Link Rate is abnormal :c0 !

[ 33.319543] rockchip-dp ff970000.edp: Rx Max Lane count is abnormal :0 !

[ 33.322377] rockchip-dp ff970000.edp: AUX CH command reply failed!

Aux 通信失败一般是由于设备端没有正常工作或者屏线问题,导致没有应答,应当检查设备

端的供电是否正常以及排线。

5 LVDS​

1)rk3128/px30/rk3326/rk3368(single-channel)

2)rk3288 (single-channel/dual-channel)

5.1 Documentation and Source Code​

Kernel (develop-4.4):

drivers/gpu/drm/rockchip/rockchip_lvds.c

drivers/phy/rockchip/phy-rockchip-inno-video-combo-phy.c

drivers/phy/rockchip/phy-rockchip-inno-video-phy.c

Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt

Documentation/devicetree/bindings/phy/phy-rockchip-inno-video-combo-phy.txt

Documentation/devicetree/bindings/phy/phy-rockchip-inno-video-phy.txt

U-Boot (next-dev):

drivers/video/drm/rockchip_lvds.c

drivers/video/drm/inno_video_combo_phy.c drivers/video/drm/inno_video_phy.c

U-Boot (rkdevelop):

drivers/video/rockchip_lvds.c

5.2 DT Bindings​

5.2.1 Host

LVDS​

Panel​

VOP​

1)Single-channel

2)Dual-channel

PropertyValueComment
dual-channel使能Dual-channel 模式
rockchip,data-s wap在Dual-channel 模式下,对两个通道的奇偶像素进行互换。

5.2.2 PHY

5.2.3 VOP Routing

NOTE:对于有两个VOP 的芯片,需要选择其一,如果有打开LOGO,route_lvds 的connect

属性也要指定为同一个 VOP。5.2.4 Logo 5.2.5 Panel

① 属性说明

PropertyValueComment
bus-formMEDIA BUS FMT RGB666 1X7X3 _ _ _ _ _LVDS 信号的数据映射方式,分别对应

"vesa-18","vesa-24","jeida-24",at SPWG

"jeida-18" 。具体映射关系参考 data MEDIA_BUS_FMT_RGB888_1X7X4_

mapping 说明。SPWG

MEDIA_BUS_FMT_RGB888_1X7X4_

JEIDA

MEDIA_BUS_FMT_RGB666_1X7X3_

JEIDA

5.3 Data Mapping​

5.3.1 6 bit output mode 5.3.2 8 bit output mode

6 RGB​

1)rk3128/rk3326/px30/rk3288/rk3368

6.1 Documentation and Source Code​

Kernel (develop-4.4):

drivers/gpu/drm/rockchip/rockchip_rgb.c

drivers/phy/rockchip/phy-rockchip-inno-video-combo-phy.c drivers/phy/rockchip/phy-rockchip-inno-video-phy.c

Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt

Documentation/devicetree/bindings/phy/phy-rockchip-inno-video-combo-phy.txt

Documentation/devicetree/bindings/phy/phy-rockchip-inno-video-phy.txt

U-Boot (next-dev):

drivers/video/drm/rockchip_rgb.c

drivers/video/drm/inno_video_combo_phy.c

drivers/video/drm/inno_video_phy.c

U-Boot (rkdevelop):

drivers/video/rockchip_lvds.c

6.2 DT Bingdings​

6.2.1 Host

6.2.2 PHY 6.2.3 VOP Routing

NOTE:对于有两个 VOP 的芯片,需要选择其一,如果有打开 LOGO,route_rgb 的 connect

属性也要指定为同一个 VOP。

6.2.4 Logo 6.2.5 Panel

PropertyValueComment
bus-form atMEDIA BUS FMT RBG888 1X24 _ _ _ _ MEDIA BUS FMT RGB666 1X24 C _ _ _ _ _ PADHI MEDIA BUS FMT RGB666 1X18 _ _ _ _RGB 信 号 的 输 出 关 系 , 分 别 对 应 "OUT P888" , "OUT D888 P666" , _ _ _ "OUT P666"。具体参考 data mapping _ 说明。

6.3 Data Mapping​

7 DP Alt Mode​

7.1 Documentation and Source Code​

Kernel (develop-4.4):

drivers/gpu/drm/rockchip/cdn-dp-core.c

drivers/gpu/drm/rockchip/cdn-dp-reg.c

drivers/gpu/drm/rockchip/cdn-dp-link-training.c

drivers/phy/rockchip/phy-rockchip-typec.c Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt

Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt

7.2 DT Bindings​

7.2.1 DP_TX

7.2.2 USB Type-C PHY

7.2.3 USB PD 7.2.4 VOP Routing

NOTE:对于有两个 VOP 的芯片,需要选择其一,一般选择VOPB,因为需要支持 4K。

8 RK618​

RK616/RK618 是Rockchip 平台的配套显示转换芯片,该芯片具有如下特性:

① 两个RGB 输入接口(LCD0,LCD1)。如果分别把LCD0 和LCD1 接到不同的源,可以实现

双屏异显;如果只接 LCD0,可以实现单屏/双屏同显,此时可以不使用 LCD1 或者将 LCD1

复用为RGB 输出接口。

② 一个RGB 输出口,与 LVDS 输出口复用。

③ 一个 LVDS 输出口,与 RGB 输出口复用,RK618 支持 dual-channel,RK616 不支持

dual-channel。

④ 一个MIPI-DSI 输出口,RK618 支持该接口,RK616 不支持该接口。

⑤ 一个HDMI 输出口。

8.1 Documentation and Source Code​

Kernel (develop-4.4):

drivers/mfd/rk618.c

drivers/clk/rockchip/rk618/clk-rk618.c

drivers/gpu/drm/rockchip/rk618/rk618_lvds.c

drivers/gpu/drm/rockchip/rk618/rk618_rgb.c

drivers/gpu/drm/rockchip/rk618/rk618_scaler.c drivers/gpu/drm/rockchip/rk618/rk618_vif.c

drivers/gpu/drm/rockchip/rk618/rk618_hdmi.c

drivers/gpu/drm/rockchip/rk618/rk618_dither.c

drivers/gpu/drm/rockchip/rk618/rk618_dsi.c

Documentation/devicetree/bindings/mfd/rk618.txt

Documentation/devicetree/bindings/clock/rockchip,rk618-cru.txt

Documentation/devicetree/bindings/display/rockchip/rockchip,rk618.txt

U-Boot (next-dev):

drivers/video/drm/rk618.c

drivers/video/drm/rk618_lvds.c

8.2 DT Bindings​

8.2.1 RK618

PropertyValueComment
pinctrl-names pinctrl-0输入时钟CLKIN 引脚复用配置
clocks clock-names输入时钟CLKIN 引用
assigned-clocks assigned-clock-rates指定CLKIN 初始频率为12MHz
reset-gpiosReset 引脚配置,可选。
enable-gpiosEnable 引脚配置,可选。
power-supplyRegulator 配置,可选。

8.2.2 CRU

PropertyValueComment
clocks clock-names输入时钟CLKIN 引用,以及LCDC0 DCLKP 引用 _
assigned-clocks指定内部时钟默认父时钟

assigned-clock-rates

8.2.3 HDMI

VOP​

RGB​

HDMI​

PropertyValueComment
interrupt-parent interruptsINTERUPT 引脚配置

8.2.4 LVDS

VOP​

RGB​

Panel​

LVDS​

PropertyValueComment
dual-channel使能dual-channel 模式,RK616 不支持dual-channel, RK618 支持dual-channel。

8.2.5 RGB

VOP​

RGB​

Panel​

RGB​

8.2.6 MIPI-DSI

VOP​

RGB​

Panel​

MIPI-DSI​

8.2.7 Clone Mode

VOP RGB HDMI VIF SCALER LVDS Panel

该模式需要选用横屏的 LCD,因为输入源的分辨率是 HDMI 分辨率,SCALER 模块会对这个

源根据LCD 分辨率进行缩放,如果 LCD 是竖屏,会造成显示效果不佳。8.2.8 调试步骤

  1. 首先根据硬件设计,按 8.2.1 配置 RK618 节点,如果软件驱动没有报错,那么会生成相关

调试节点,根据 registers 节点可以通过 I2C 读到 RK618 相关寄存器值。如果读出来的值

是 XXXXXXXX,说明设备没有正常工作,需要确认RK618 供电以及复位 IO 是否配置正确,硬件设计是否有问题。如果供电和复位正常,需要确认 CLKIN 输入时钟是否为 12MHz 连续

波形。

  1. 参考现有配置,并对板级配置进行适配。

目前驱动只支持LCD0 作为输入的单显以及双屏同显应用。

如果需求是双屏同显,建议先把 HDMI 和单屏先分别调试完成,再修改配置为双屏同显。

Single-channel LVDS:

arch/arm64/boot/dts/rockchip/px30-ad-r35-mb-rk618-lvds.dts

Dual-channel LVDS: arch/arm64/boot/dts/rockchip/px30-ad-r35-mb-rk618-dual-lvds.dts

HDMI: arch/arm64/boot/dts/rockchip/px30-ad-r35-mb-rk618-hdmi.dts

DSI: arch/arm64/boot/dts/rockchip/px30-z7-a0-rk618-dsi.dts

Clone Mode (HDMI and LVDS):

arch/arm64/boot/dts/rockchip/px30-ad-r35-mb-rk618-hdmi-lvds.dts

9 MCU/CPU​

9.1 Interface​

MCU 屏又叫 CPU 屏基于 i80 总线协议,具有 CS、RS、RD、WR 四根控制信号线和

8/16/18/24 数据线,MCU 屏的优点是控制简单,无需同步信号和时钟信号,缺点是屏内部需要

集成GRAM,成本较高,无法做到大分辨率的屏。目前 RK3188、RK3308、RK3326/PX30 支

持 MCU 屏。

控制信号:

CS: 屏的片选信号,低有效,和 VSYNC 复用。

RS: 数据和命令区分信号,1 表示发送数据,0 表示发送命令,和DCLK 复用。

RD: 1 表示发数据到屏,0 表示从屏读数据(RK 平台不支持),和DEN 复用。

WR: 写使能信号,上升沿有效,和 HSYNC 复用。

9.2 Panel​

特殊属性说明

PropertyValueComment
rgb-modep888、p666、p565、s888、 s888 dummy _屏的数据接口类型
rockchip,cmd-typespi or mcuspi:通过spi 接口发送初始化命令 mcu:通过mcu 接口发送初始化命令

9.3 MCU timing​

  1. mcu-pix-total: 发送一次数据/命令需要几个 DCLK 周期;

  2. mcu-cs-pst/mcu-cs-pend: 片选开始和结束位置;

  3. mcu-rw-pst/mcu-rw-pend: 数据发送开始和结束位置;

时序图:

10 Dual-Display​

  1. 主副屏属性配置(HDMI-A/eDP/DP/LVDS/DPI/DSI)

device/rockchip/common/ system.prop

sys.hwc.device.primary=eDP

sys.hwc.device.extend=HDMI-A

  1. 关闭 AFBC 特性VOPL 不支持AFBC(Arm Frame Buffer Compression),需要关闭AFBC 特性。

hardware/rockchip/libgralloc/Android.mk

将-DUSE_AFBC_LAYER=$(USE_AFBC_LAYER)改为-DUSE_AFBC_LAYER=0.

  1. DCLK 父时钟配置

如果是 RK3399 平台,并且 uboot 是 rkdevelop 分支,需要对 VOP 的 DCLK 父时钟进行

调整,避免时钟切换影响正常显示。

  1. 关闭DDR 变频

如果是 RK3326/PX30 平台,如果因为带宽不足,导致 VOP 报错,需要将 auto-freq-en

属性设为0。

11 DEBUG​

  1. 确认显示驱动已经正常加载。

Drm 驱动的加载存在依赖关系,所以可能会多次因为驱动资源暂时获取不到而返回

-EPROBE_DEFER(-517),但是只要配置正确,待相关组件驱动能够完整获取到资源后,最终

就会bound 成功。

  1. 当前显示信息3. connector 当前连接状态

  2. connector 当前使能状态

  3. connector 支持的显示模式

  4. connector 当前的显示模式7. 手动灭屏/亮屏

# echo off > /sys/class/drm/card0-eDP-1/status

# echo on > /sys/class/drm/card0-eDP-1/status