Platform: ROCKCHIP
Chip: RK3399
OS: Android7.1.2
Kernel: 4.4.126
edp屏添加
edp驱动被分成两个文件,一个是rk驱动文件: analogix_dp-rockchip.c, 另一个是drm驱动文件analogix_dp_core.c
1.硬件原理图:
电源IO对应gpio1_b5,gpio1_b5所在模块的电源供电是VCC_3V0,在rk808电源模块对应VLDO8,在对应dtsi里查找其名称
对应流程如下
EDP屏硬件直接按照上电时序连接好控制,软件无需干预。
EDP_HPD pin可接可不接。
所以要做的就是配置edp屏的背光使能脚以及edp屏的供电脚, 对应的是GPIO4_D6与GPIO1_B5
eDP屏参数
3.板级dts配置
- edp_panel: edp-panel {
-
status = "disabled";
-
ports {
-
panel_in_edp: endpoint {
-
remote-endpoint = <&edp_out_panel>;
-
};
-
};
- };
+&edp {
- force-hpd;
- status = “okay”;
- ports {
-
edp_out: port@1 {
-
reg = <1>;
-
#address-cells = <1>;
-
#size-cells = <0>;
-
edp_out_panel: endpoint {
-
reg = <0>;
-
remote-endpoint = <&panel_in_edp>;
-
};
-
};
- };
+};
+&edp_panel {
- status = “okay”;
- compatible = “lg,lp079qx1-sp0v”,“simple-panel”;//
- backlight = <&backlight>;
- //enable-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;//gpio4_c6 backlight使能
- enable-delay-ms = <120>;
- power-supply = <&vcc_lcd>;
- edp_disp_timings: display-timings {
-
native-mode = <&timing2>;
-
timing2: timing2 {
-
clock-frequency = <139000000>;
-
hactive = <1920>;
-
vactive = <1080>;
-
hfront-porch = <60>;
-
hsync-len = <40>;
-
hback-porch = <60>;
-
vfront-porch = <13>;
-
vsync-len = <5>;
-
vback-porch = <13>;
-
hsync-active = <0>;
-
vsync-active = <0>;
-
de-active = <0>;
-
pixelclk-active = <0>;
-
};
- };
+};
+&route_edp {
- status = “okay”;
- connect = <&vopb_out_edp>;
};
+&edp_in_vopb {
- status = “okay”;
+};
+&edp_in_vopl { - status = “disabled”;
+};
所遇问题
1.edp屏:当时我用的是hdmi+edp屏,设备uboot有显示,起kernel后,黑屏没输出
设备刷屏打印:
rockchip-vop ff8f0000.vop: [drm:vop_isr] ERROR POST_BUF_EMPTY irq err
原因:表示带宽不足,要调整vopl与vopb,ff8f0000–对应vopl,绑定的是hdmi,出现带宽不足,
解决:hdmi绑定vopb ;edp绑定vopl
2.pwm没回应 设备起不来
设备刷屏打印:
rockchip_dp_component_ops): -517
17:33:17[ 4.035073] rockchip-drm display-subsystem: master bind failed: -517
17:33:17[ 4.036974] panel-simple edp-panel: failed to find backlight: -517
17:33:17[ 4.038823] rockchip-drm display-subsystem: devfreq is ready
17:33:17[ 4.039073] mmc2: queuing unknown CIS tuple 0x80 (2 bytes)
17:33:17[ 4.039459] rockchip-vop ff900000.vop: missing rockchip,grf property
17:33:17[ 4.039964] rockchip-vop ff900000.vop: unable to request PWM
17:33:17[ 4.040073] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
17:33:17[ 4.040337] rockchip-vop ff8f0000.vop: missing rockchip,grf property
17:33:17[ 4.040629] mmc2: queuing unknown CIS tuple 0x80 (3 bytes)
17:33:17[ 4.040753] rockchip-vop ff8f0000.vop: unable to request PWM
17:33:17[ 4.040932] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
17:33:17[ 4.041523] rockchip-drm display-subsystem: failed to bind ff970000.edp (ops
原因:有两个情况1.backlight没使能,没找到backlight节点 2.backlight的使能管脚被其他处用到(管脚被重复用)
解决:找到对应的节点 加上正确的gpio即可,其他处有引用的看是否写错或者没用到的屏掉
3.设备闪屏或设备黑屏打印如下
AUX CH command reply failed!
analogix_dp_read_byte_from_dpcd: Aux Transaction fail!
analogix_dp_read_byte_from_dpcd: Aux Transaction fail!
原因:edp屏线路接触不良 导致 没应答
解决:测电路是否能通
————————————————
版权声明:本文为CSDN博主「sz勿扰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_38022615/article/details/113312988