How to enable eDP panel on EDGE-V

Hi there,

can anybody give me some hints how to use an eDP-panel with the EDGE-V and Android?
I found this document http://rockchip.wikidot.com/edp but have problems to apply it for my case.
Without modifying any files the eDP display stays black and the directory “/sys/class/drm/card0-eDP-1” is not created. What exactly would I need to do to get it running?

Thanks for any help & best regards,
Raimo

You will most likely need to enable the edp node in the dts file and recompile the kernel.
I will help to check it in Android Pie when it’s released.

rk3399-evb-rev3-android-edp.dts
rk3399-evb-rev3-android-mipi-edp.dts(mipi-panel+edp-panel)
You can refer to the above two DTS to configure, and the following documentation:

RKDocs/common/display/Rockchip_DRM_Panel_Porting_Guide_V1.5_20180830.pdf

Thanks a lot! Your help is very much appreciated. :slightly_smiling_face:

The documentation is very difficult to follow without major knowledge (and without knowing Chinese). Would I need to copy relevant parts into rk3399-khadas-edge-android.dts and then recompile the kernel? Do you have any more detailed information about this? Thanks a lot!

Yes, replace the relevant screen nodes with rk3399-khadas-edge-android.dts and then recompile the kernel.
If you don’t know Chinese, you can translate it by Google.

RKDocs/common/display/基于DRM的Android显示使用指南_V1.0_20180129.pdf

The above documentation is more detailed.

1 Like

Thanks a lot, that was already very helpful, I added to rk3399-khadas-edge-android.dts

edp_panel: edp-panel {
	compatible = "lg,lp079qx1-sp0v", "panel-simple";
	backlight = <&backlight>;
	power-supply = <&vcc3v3_s0>;
	enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;

	ports {
		panel_in_edp: endpoint {
			remote-endpoint = <&edp_out_panel>;
		};
	};
};

and

&edp {
	status = "okay";
	ports {
		edp_out: port@1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			edp_out_panel: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&panel_in_edp>;
			};
		};
	};
	
	disp_timings: display-timings {
		native-mode = <&timing0>;
		timing0: timing0 {
			clock-frequency = <138780000>;
			hactive = <1920>;
			vactive = <1080>;
			hfront-porch = <0>;
			hsync-len = <160>;
			hback-porch = <0>;
			vfront-porch = <0>;
			vsync-len = <32>;
			vback-porch = <0>;
			hsync-active = <0>;
			vsync-active = <0>;
			de-active = <0>;
			pixelclk-active = <0>;
		};
	};
};

Unfortunately I have no idea about the values for

hfront-porch = <0>;
hsync-len = <160>;
hback-porch = <0>;
vfront-porch = <0>;
vsync-len = <32>;
vback-porch = <0>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;

as there is no good translation for them in the rockship-pdf. I tried to follow this resource: https://www.digi.com/resources/documentation/digidocs/90001945-13/reference/yocto/r_an_adding_custom_display.htm but except hsync-len and vsync-len I am not sure what to put. Any idea?

Here is the display datasheet: http://www.szdengyi.com/upload/web/lcdspec/N133HSE-EB3_laptop_lcd.pdf

Well, with this attempt Android stops booting while showing the Khadas Logo (but not on the edp display).

How did you compile and upgrade the firmware?

I followed the instruction at https://docs.khadas.com/edge/BuildAndroid.html and flashed the eMMC via SD card.

$ cd PATH_YOUR_PROJECT
$ cd kernel
$ make ARCH=arm64 kedge_defconfig -jN
$ make ARCH=arm64 rk3399-khadas-edge-android.img -jN

$ source build/envsetup.sh
$ lunch rk3399_all-userdebug
$ ./mkimage.sh
$ ./pack_image.sh

$ ./mkimage.sh
Has this order been executed? This is very important.

Yes, I did it exactly that way. I ordered the Khadas eDP panel now to have a working reference.

A general question about eDP: from the specs it looks like the pinout between the panel and the EDGE-V does not match. The panel follows the specs for eDP 1.2. After all is an eDP 1.2 panel compatible with eDP 1.3 (EDGE-V)? If not can you recommend displays which are compatible? I am looking for a 13.3’’ one with 1080p but can only find displays where the pinout is different.

Is there an image display in the beginning?
Your display configuration requirements is:
HDMI + eDP or only eDP ?

HDMI + eDP for modify:

--- a/rk3399_all.mk
+++ b/rk3399_all.mk
@@ -112,7 +112,7 @@ PRODUCT_PACKAGES += \

 PRODUCT_PROPERTY_OVERRIDES += \
     sys.hwc.device.primary=HDMI-A \
-    sys.hwc.device.extend=DP
+    sys.hwc.device.extend=eDP

only eDP for modify:

--- a/rk3399_all.mk
+++ b/rk3399_all.mk
@@ -112,7 +112,7 @@ PRODUCT_PACKAGES += \
 
 PRODUCT_PROPERTY_OVERRIDES += \
-    sys.hwc.device.primary=HDMI-A \
-    sys.hwc.device.extend=DP
+    sys.hwc.device.primary=eDP

DTS should also be modified accordingly, please refer to the documentation for details

Yes, at the moment HDMI + eDP for debugging, but I want to get rid of the HDMI connection. I will try what you suggested.

Regarding my last post, should the eDP 1.2 panel work in theory or do I need to look for a different one?

Thanks a lot for your help :slight_smile:

I don’t know, but I think it’s generally downward compatible.