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
-
simple-panel(LVDS/RGB/eDP)
-
simple-panel-dsi (MIPI-DSI)这里只列出通用配置,其他与特定显示接口相关的配置在各个显示接口章节中单独说明。
| Property | Value | Comment |
|---|---|---|
| compatible | simple-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-timings | LCD 时序参数,按屏规格书填写。 | |
| width-mm | LCD 物理宽度,按屏规格书填写。 | |
| height-mm | LCD 物理高度,按屏规格书填写。 |
2.3 常见问题
- reset 脚一般为LOW 有效,驱动最后会把reset 脚拉高,如果reset 脚为 HIGH 有效,驱动
最后会把reset 脚拉低。enable 脚一般为HIGH 有效,驱动最后会把enable 脚拉高,如果
enable 脚为LOW 有效,驱动最后会把 enable 脚拉低。
- 如果 drm 驱动一直 bind 失败,返回-517(-EPROBE_DEFER),往往是由于 panel 驱动
probe 失败引起的,这个时候就需要检查 panel 相关的配置,比如reset/enable 是否与其他
模块配置冲突。
- 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 下都能正常显示,才能支持这种模式。
| Property | Value | Comment |
|---|---|---|
| rockchip,lane-rate | 0~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。
| Property | Value | Comment |
|---|---|---|
| compatible | simple-panel-dsi | |
| reg | 0 | virtual 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,format | MIPI DSI FMT RGB888 _ _ _ | Pixel Format |
| dsi,lanes | 4 | Lane 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 常见问题
- 如何对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 状态。
- 如何支持DCS 背光。
如果设备支持标准 DCS 背光调节,并且代码已经实现 DCS 背光驱动,可以使能 DCS 背光
功能。
- 如何使能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。
- 如何使能非连续时钟?
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
| Property | Value | Comment |
|---|---|---|
| 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
① 属性说明
| Property | Value | Comment |
|---|---|---|
| bpc | 6 or 8 | Bit pixel component |
分别对应6bit 和8bit 屏bus-forma MEDIA_BUS_FMT_RGB666_1X18
t MEDIA_BUS_FMT_RGB888_1X24
4.3 常见问题
- 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
| Property | Value | Comment |
|---|---|---|
| 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
① 属性说明
| Property | Value | Comment |
|---|---|---|
| bus-form | MEDIA 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
| Property | Value | Comment |
|---|---|---|
| bus-form at | MEDIA 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
| Property | Value | Comment |
|---|---|---|
| pinctrl-names pinctrl-0 | 输入时钟CLKIN 引脚复用配置 |
| clocks clock-names | 输入时钟CLKIN 引用 |
|---|---|
| assigned-clocks assigned-clock-rates | 指定CLKIN 初始频率为12MHz |
| reset-gpios | Reset 引脚配置,可选。 |
| enable-gpios | Enable 引脚配置,可选。 |
| power-supply | Regulator 配置,可选。 |
8.2.2 CRU
| Property | Value | Comment |
|---|---|---|
| clocks clock-names | 输入时钟CLKIN 引用,以及LCDC0 DCLKP 引用 _ | |
| assigned-clocks | 指定内部时钟默认父时钟 |
assigned-clock-rates
8.2.3 HDMI
VOP
RGB
HDMI
| Property | Value | Comment |
|---|---|---|
| interrupt-parent interrupts | INTERUPT 引脚配置 |
8.2.4 LVDS
VOP
RGB
Panel
LVDS
| Property | Value | Comment |
|---|---|---|
| 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 调试步骤
- 首先根据硬件设计,按 8.2.1 配置 RK618 节点,如果软件驱动没有报错,那么会生成相关
调试节点,根据 registers 节点可以通过 I2C 读到 RK618 相关寄存器值。如果读出来的值
是 XXXXXXXX,说明设备没有正常工作,需要确认RK618 供电以及复位 IO 是否配置正确,硬件设计是否有问题。如果供电和复位正常,需要确认 CLKIN 输入时钟是否为 12MHz 连续
波形。
- 参考现有配置,并对板级配置进行适配。
目前驱动只支持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
特殊属性说明
| Property | Value | Comment |
|---|---|---|
| rgb-mode | p888、p666、p565、s888、 s888 dummy _ | 屏的数据接口类型 |
| rockchip,cmd-type | spi or mcu | spi:通过spi 接口发送初始化命令 mcu:通过mcu 接口发送初始化命令 |
9.3 MCU timing
-
mcu-pix-total: 发送一次数据/命令需要几个 DCLK 周期;
-
mcu-cs-pst/mcu-cs-pend: 片选开始和结束位置;
-
mcu-rw-pst/mcu-rw-pend: 数据发送开始和结束位置;
时序图:
10 Dual-Display
- 主副屏属性配置(HDMI-A/eDP/DP/LVDS/DPI/DSI)
device/rockchip/common/ system.prop
sys.hwc.device.primary=eDP
sys.hwc.device.extend=HDMI-A
- 关闭 AFBC 特性VOPL 不支持AFBC(Arm Frame Buffer Compression),需要关闭AFBC 特性。
hardware/rockchip/libgralloc/Android.mk
将-DUSE_AFBC_LAYER=$(USE_AFBC_LAYER)改为-DUSE_AFBC_LAYER=0.
- DCLK 父时钟配置
如果是 RK3399 平台,并且 uboot 是 rkdevelop 分支,需要对 VOP 的 DCLK 父时钟进行
调整,避免时钟切换影响正常显示。
- 关闭DDR 变频
如果是 RK3326/PX30 平台,如果因为带宽不足,导致 VOP 报错,需要将 auto-freq-en
属性设为0。
11 DEBUG
- 确认显示驱动已经正常加载。
Drm 驱动的加载存在依赖关系,所以可能会多次因为驱动资源暂时获取不到而返回
-EPROBE_DEFER(-517),但是只要配置正确,待相关组件驱动能够完整获取到资源后,最终
就会bound 成功。
-
当前显示信息3. connector 当前连接状态
-
connector 当前使能状态
-
connector 支持的显示模式
-
connector 当前的显示模式7. 手动灭屏/亮屏
# echo off > /sys/class/drm/card0-eDP-1/status
# echo on > /sys/class/drm/card0-eDP-1/status