Skip to contentSkip to conversation

Properly support FriendlyElec HD702E

PATCH Applied Robin Murphy 3 participants 11 messages Jan 23 – Feb 22

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

v2 cover Properly support FriendlyElec HD702E

v1: https://lore.kernel.org/linux-rockchip/[email protected]/

Changelogs in the patches - fingers crossed this is good to go now, thanks all for the acks and reviews.

Cheers,
Robin.

Robin Murphy (4):
dt-bindings: display: panel: Move FriendlyElec HD702E to eDP drm/panel-edp: Move FriendlyELEC HD702E
arm64: dts: rockchip: Move RK3399 eDP pinctrl to boards
arm64: dts: rockchip: Add overlay for FriendlyElec HD702E

 .../display/panel/panel-edp-legacy.yaml       |  2 +
 .../bindings/display/panel/panel-simple.yaml  |  2 -
 arch/arm64/boot/dts/rockchip/Makefile         |  5 +
 arch/arm64/boot/dts/rockchip/rk3399-base.dtsi |  3 +-
 .../dts/rockchip/rk3399-gru-chromebook.dtsi   |  2 +
 .../dts/rockchip/rk3399-nanopc-t4-hd702e.dtso | 96 +++++++++++++++++++
 .../boot/dts/rockchip/rk3399-pinebook-pro.dts |  2 -
 .../rockchip/rk3399-sapphire-excavator.dts    |  2 +
 drivers/gpu/drm/panel/panel-edp.c             | 26 +++++
 drivers/gpu/drm/panel/panel-simple.c          | 25 -----
 10 files changed, 134 insertions(+), 31 deletions(-)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso
Signature · 1 line
2.34.1
#1 lore raw

PATCH v2 1/4 dt-bindings: display: panel: Move FriendlyElec HD702E to eDP

The "E" alludes to the fact that FriendlyElec's HD702E is actually an eDP panel - move its compatible to the appropriate binding doc.

---
 .../devicetree/bindings/display/panel/panel-edp-legacy.yaml     | 2 ++
 .../devicetree/bindings/display/panel/panel-simple.yaml         | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/display/panel/panel-edp-legacy.yaml +2 -0
index b308047c1edf..afe7dc54ebf4 100644
@@ -44,6 +44,8 @@ properties:
       - boe,nv133fhm-n62
         # BOE NV140FHM-N49 14.0" FHD a-Si FT panel
       - boe,nv140fhmn49
+        # FriendlyELEC HD702E 800x1280 LCD panel
+      - friendlyarm,hd702e
         # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
       - innolux,n116bca-ea1
         # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +0 -2
index 24e277b19094..a01cf025aad1 100644
@@ -144,8 +144,6 @@ properties:
       - foxlink,fl500wvr00-a0t
         # Frida FRD350H54004 3.5" QVGA TFT LCD panel
       - frida,frd350h54004
-        # FriendlyELEC HD702E 800x1280 LCD panel
-      - friendlyarm,hd702e
         # GiantPlus GPG48273QS5 4.3" (480x272) WQVGA TFT LCD panel
       - giantplus,gpg48273qs5
         # GiantPlus GPM940B0 3.0" QVGA TFT LCD panel
Signature · 1 line
2.34.1
reviewer Reviewed-by on v2 1/4
#2 lore raw

Re: [PATCH v2 1/4] dt-bindings: display: panel: Move FriendlyElec HD702E to eDP

Hi,

Quoted 11 lines · Robin Murphy

The "E" alludes to the fact that FriendlyElec's HD702E is actually an eDP panel - move its compatible to the appropriate binding doc.

---
 .../devicetree/bindings/display/panel/panel-edp-legacy.yaml     | 2 ++
 .../devicetree/bindings/display/panel/panel-simple.yaml         | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)
reviewer
#3 lore raw

Re: [PATCH v2 1/4] dt-bindings: display: panel: Move FriendlyElec HD702E to eDP

In reply to Robin Murphy

Hi,

Quoted 11 lines · Robin Murphy

The "E" alludes to the fact that FriendlyElec's HD702E is actually an eDP panel - move its compatible to the appropriate binding doc.

---
 .../devicetree/bindings/display/panel/panel-edp-legacy.yaml     | 2 ++
 .../devicetree/bindings/display/panel/panel-simple.yaml         | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)

Pushed patches to drm-misc-next:

[1/4] dt-bindings: display: panel: Move FriendlyElec HD702E to eDP

      commit: e2242223b714ac9fd8233546ca74ce972024111f
#4 lore raw

PATCH v2 2/4 drm/panel-edp: Move FriendlyELEC HD702E

In reply to Robin Murphy

FriendlyELEC's HD702E module is an eDP panel (in as much as it's some LVDS LCD behind a Chrontel CH7511B eDP bridge), so move its data over to the eDP driver, also resolving the warning about the missing bpc value in the process.

The unfortunate combination of HPD not being wired up and the RK3399 eDP controller's behaviour seems to result in the EDID not being readable over DP-AUX without probing the panel first, thus the hard-coded mode is still needed to get things going.

---
v2: Clarify issue with the generic binding

---
 drivers/gpu/drm/panel/panel-edp.c    | 26 ++++++++++++++++++++++++++
 drivers/gpu/drm/panel/panel-simple.c | 25 -------------------------
 2 files changed, 26 insertions(+), 25 deletions(-)
drivers/gpu/drm/panel/panel-edp.c +26 -0
index 415b894890ad..dd53ccc209ce 100644
@@ -1256,6 +1256,29 @@ static const struct panel_desc boe_nv140fhmn49 = {
 	},
 };
 
+static const struct drm_display_mode friendlyarm_hd702e_mode = {
+	.clock		= 67185,
+	.hdisplay	= 800,
+	.hsync_start	= 800 + 20,
+	.hsync_end	= 800 + 20 + 24,
+	.htotal		= 800 + 20 + 24 + 20,
+	.vdisplay	= 1280,
+	.vsync_start	= 1280 + 4,
+	.vsync_end	= 1280 + 4 + 8,
+	.vtotal		= 1280 + 4 + 8 + 4,
+	.flags		= DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+};
+
+static const struct panel_desc friendlyarm_hd702e = {
+	.modes = &friendlyarm_hd702e_mode,
+	.num_modes = 1,
+	.bpc = 8,
+	.size = {
+		.width	= 94,
+		.height	= 151,
+	},
+};
+
 static const struct drm_display_mode innolux_n116bca_ea1_mode = {
 	.clock = 76420,
 	.hdisplay = 1366,
@@ -1663,6 +1686,9 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "boe,nv140fhmn49",
 		.data = &boe_nv140fhmn49,
+	}, {
+		.compatible = "friendlyarm,hd702e",
+		.data = &friendlyarm_hd702e,
 	}, {
 		.compatible = "innolux,n116bca-ea1",
 		.data = &innolux_n116bca_ea1,
drivers/gpu/drm/panel/panel-simple.c +0 -25
index b26b682826bc..3ea52667b858 100644
@@ -2359,28 +2359,6 @@ static const struct panel_desc frida_frd350h54004 = {
 	.connector_type = DRM_MODE_CONNECTOR_DPI,
 };
 
-static const struct drm_display_mode friendlyarm_hd702e_mode = {
-	.clock		= 67185,
-	.hdisplay	= 800,
-	.hsync_start	= 800 + 20,
-	.hsync_end	= 800 + 20 + 24,
-	.htotal		= 800 + 20 + 24 + 20,
-	.vdisplay	= 1280,
-	.vsync_start	= 1280 + 4,
-	.vsync_end	= 1280 + 4 + 8,
-	.vtotal		= 1280 + 4 + 8 + 4,
-	.flags		= DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
-};
-
-static const struct panel_desc friendlyarm_hd702e = {
-	.modes = &friendlyarm_hd702e_mode,
-	.num_modes = 1,
-	.size = {
-		.width	= 94,
-		.height	= 151,
-	},
-};
-
 static const struct drm_display_mode giantplus_gpg482739qs5_mode = {
 	.clock = 9000,
 	.hdisplay = 480,
@@ -5235,9 +5213,6 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "frida,frd350h54004",
 		.data = &frida_frd350h54004,
-	}, {
-		.compatible = "friendlyarm,hd702e",
-		.data = &friendlyarm_hd702e,
 	}, {
 		.compatible = "giantplus,gpg482739qs5",
 		.data = &giantplus_gpg482739qs5
Signature · 1 line
2.34.1
reviewer Reviewed-by on v2 2/4
#5 lore raw

Re: [PATCH v2 2/4] drm/panel-edp: Move FriendlyELEC HD702E

Hi,

Quoted 11 lines · Robin Murphy

FriendlyELEC's HD702E module is an eDP panel (in as much as it's some LVDS LCD behind a Chrontel CH7511B eDP bridge), so move its data over to the eDP driver, also resolving the warning about the missing bpc value in the process.

The unfortunate combination of HPD not being wired up and the RK3399 eDP controller's behaviour seems to result in the EDID not being readable over DP-AUX without probing the panel first, thus the hard-coded mode is still needed to get things going.

Quoted 8 lines

---
v2: Clarify issue with the generic binding

---
 drivers/gpu/drm/panel/panel-edp.c    | 26 ++++++++++++++++++++++++++
 drivers/gpu/drm/panel/panel-simple.c | 25 -------------------------
 2 files changed, 26 insertions(+), 25 deletions(-)

I'll plan to apply patches #1 and #2 in ~1 week to drm-misc-next if there are no other comments. If someone else wants to beat me to it, though, I'm also OK w/ that.

-Doug

reviewer
#6 lore raw

Re: [PATCH v2 2/4] drm/panel-edp: Move FriendlyELEC HD702E

Hi,

Quoted 24 lines · Doug Anderson

Hi,

Quoted 11 lines · Robin Murphy

FriendlyELEC's HD702E module is an eDP panel (in as much as it's some LVDS LCD behind a Chrontel CH7511B eDP bridge), so move its data over to the eDP driver, also resolving the warning about the missing bpc value in the process.

The unfortunate combination of HPD not being wired up and the RK3399 eDP controller's behaviour seems to result in the EDID not being readable over DP-AUX without probing the panel first, thus the hard-coded mode is still needed to get things going.

Quoted 8 lines

---
v2: Clarify issue with the generic binding

---
 drivers/gpu/drm/panel/panel-edp.c    | 26 ++++++++++++++++++++++++++
 drivers/gpu/drm/panel/panel-simple.c | 25 -------------------------
 2 files changed, 26 insertions(+), 25 deletions(-)
Quoted 5 lines

I'll plan to apply patches #1 and #2 in ~1 week to drm-misc-next if there are no other comments. If someone else wants to beat me to it, though, I'm also OK w/ that.

Pushed patches to drm-misc-next:

[2/4] drm/panel-edp: Move FriendlyELEC HD702E

      commit: 5c323ea948ff0f9e50418119cbbb3d94f2bd6a96
#7 lore raw

PATCH v2 3/4 arm64: dts: rockchip: Move RK3399 eDP pinctrl to boards

In reply to Robin Murphy

The EDP_HOTPLUG pin is optional, and muxed with other functions (notably HDMI CEC), so move its selection from the SoC DTSI to the boards which apparently want it, namely those which enable eDP without "force-hpd". By the same token we drop it from Pinebook Pro, which already uses "force-hpd", and according to the schematics does not have the pin wired at all.

---
v2: Add /omit-if-no-ref/ attribute [Dragan]

---
 arch/arm64/boot/dts/rockchip/rk3399-base.dtsi              | 3 +--
 arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi    | 2 ++
 arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts       | 2 --
 arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts | 2 ++
 4 files changed, 5 insertions(+), 4 deletions(-)
arch/arm64/boot/dts/rockchip/rk3399-base.dtsi +1 -2
index 4dcceb9136b7..49c68fe65de6 100644
@@ -2145,8 +2145,6 @@ edp: dp@ff970000 {
 		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
 		clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
 		clock-names = "dp", "pclk", "grf";
-		pinctrl-names = "default";
-		pinctrl-0 = <&edp_hpd>;
 		power-domains = <&power RK3399_PD_EDP>;
 		resets = <&cru SRST_P_EDP_CTRL>;
 		reset-names = "dp";
@@ -2384,6 +2382,7 @@ cif_clkouta: cif-clkouta {
 		};
 
 		edp {
+			/omit-if-no-ref/
 			edp_hpd: edp-hpd {
 				rockchip,pins =
 					<4 RK_PC7 2 &pcfg_pull_none>;
arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi +2 -0
index 9d07353df52c..3f3cb0eb5809 100644
@@ -241,6 +241,8 @@ &dmc {
 };
 
 &edp {
+	pinctrl-names = "default";
+	pinctrl-0 = <&edp_hpd>;
 	status = "okay";
 
 	/*
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +0 -2
index eaaca08a7601..dcab04863d28 100644
@@ -401,8 +401,6 @@ &cpu_l3 {
 
 &edp {
 	force-hpd;
-	pinctrl-names = "default";
-	pinctrl-0 = <&edp_hpd>;
 	status = "okay";
 };
 
arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts +2 -0
index a4ceafe6dd7a..80d6ea0eda84 100644
@@ -141,6 +141,8 @@ sdio_pwrseq: sdio-pwrseq {
 };
 
 &edp {
+	pinctrl-names = "default";
+	pinctrl-0 = <&edp_hpd>;
 	status = "okay";
 };
 
Signature · 1 line
2.34.1
#8 lore raw

PATCH v2 4/4 arm64: dts: rockchip: Add overlay for FriendlyElec HD702E

In reply to Robin Murphy

Add an overlay to support FriendlyElec's HD702E 7" eDP LCD touchscreen module for the NanoPC-T4 board:

https://www.friendlyelec.com/index.php?route=product/product&path=81&product_id=230

---
v2:
- Add pinctrl, tweak some naming [Doug]
- Add main 3.3v regulator to tidy up power supplies

---
 arch/arm64/boot/dts/rockchip/Makefile         |  5 +
 .../dts/rockchip/rk3399-nanopc-t4-hd702e.dtso | 96 +++++++++++++++++++
 2 files changed, 101 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso
arch/arm64/boot/dts/rockchip/Makefile +5 -0
index dbdda9783e93..4ab58a5961aa 100644
@@ -62,6 +62,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-v.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-kobol-helios64.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-leez-p710.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4-hd702e.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4b.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb
@@ -238,6 +239,10 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou-haikou-video-demo.dtb
 px30-ringneck-haikou-haikou-video-demo-dtbs := px30-ringneck-haikou.dtb \
 	px30-ringneck-haikou-video-demo.dtbo
 
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4-hd702e.dtb
+rk3399-nanopc-t4-hd702e-dtbs := rk3399-nanopc-t4.dtb \
+	rk3399-nanopc-t4-hd702e.dtbo
+
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-haikou-video-demo.dtb
 rk3399-puma-haikou-haikou-video-demo-dtbs := rk3399-puma-haikou.dtb \
 	rk3399-puma-haikou-video-demo.dtbo
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso new file +96 -0

96 lines not on this page · raw message

Signature · 1 line
2.34.1
maintainer
#9 lore raw

Re: [PATCH v2 4/4] arm64: dts: rockchip: Add overlay for FriendlyElec HD702E

Am Freitag, 23. Januar 2026, 20:22:23 Mitteleuropäische Normalzeit schrieb Robin Murphy:

Quoted 6 lines

Add an overlay to support FriendlyElec's HD702E 7" eDP LCD touchscreen module for the NanoPC-T4 board:

https://www.friendlyelec.com/index.php?route=product/product&path=81&product_id=230

[...]

arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso line 6

Quoted 12 lines
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso new file +6 -0
new file mode 100644
index 000000000000..66ac530392b7
@@ -0,0 +1,96 @@
+&edp {
+	force-hpd;
+	status = "okay";
+
+	aux-bus {
+		edp-panel {

The dtbs-check was unhappy, because the auxbus binding wishes for this node to be named "panel". I'll just change this when applying.

Heiko

Quoted 13 lines
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso new file +13 -0
+			compatible = "friendlyarm,hd702e";
+			backlight = <&backlight>;
+			no-hpd;
+			power-supply = <&vdd_3_3v>;
+
+			port {
+				panel_in_edp: endpoint {
+					remote-endpoint = <&edp_out_panel>;
+				};
+			};
+		};
+	};
+};
maintainer Applied
#10 lore raw

Re: (subset) [PATCH v2 0/4] Properly support FriendlyElec HD702E

In reply to Robin Murphy
Quoted 9 lines · Robin Murphy

v1: https://lore.kernel.org/linux-rockchip/[email protected]/

Changelogs in the patches - fingers crossed this is good to go now, thanks all for the acks and reviews.

Cheers,
Robin.

[...]

Applied, thanks!

[3/4] arm64: dts: rockchip: Move RK3399 eDP pinctrl to boards

      commit: 638fa970ac669e5d0fb2c5cc0bea3d4443299ac6
[4/4] arm64: dts: rockchip: Add overlay for FriendlyElec HD702E
      commit: 25afddad23b8e91fcff625756e51a805e288ab38

Best regards,

Signature · 1 line
Heiko Stuebner <[email protected]>