* [PATCH 1/4] dt-bindings: display: panel: Move FriendlyElec HD702E to eDP
2025-12-30 17:20 [PATCH 0/4] Properly support FriendlyElec HD702E Robin Murphy
@ 2025-12-30 17:20 ` Robin Murphy
2025-12-30 17:20 ` [PATCH 2/4] drm/panel-edp: Move FriendlyELEC HD702E Robin Murphy
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Robin Murphy @ 2025-12-30 17:20 UTC (permalink / raw)
To: heiko, neil.armstrong, dianders, thierry.reding, sam
Cc: jesszhan0024, dri-devel, linux-rockchip, linux-arm-kernel,
devicetree
The "E" alludes to the fact that FriendlyElec's HD702E is actually an
eDP panel - move its compatible to the appropriate binding doc.
Cc: <devicetree@vger.kernel.org>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
.../devicetree/bindings/display/panel/panel-edp-legacy.yaml | 2 ++
.../devicetree/bindings/display/panel/panel-simple.yaml | 2 --
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-edp-legacy.yaml b/Documentation/devicetree/bindings/display/panel/panel-edp-legacy.yaml
index b308047c1edf..afe7dc54ebf4 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-edp-legacy.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-edp-legacy.yaml
@@ -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
diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
index 24e277b19094..a01cf025aad1 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -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
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/4] drm/panel-edp: Move FriendlyELEC HD702E
2025-12-30 17:20 [PATCH 0/4] Properly support FriendlyElec HD702E Robin Murphy
2025-12-30 17:20 ` [PATCH 1/4] dt-bindings: display: panel: Move FriendlyElec HD702E to eDP Robin Murphy
@ 2025-12-30 17:20 ` Robin Murphy
2025-12-30 17:20 ` [PATCH 3/4] arm64: dts: rockchip: Move RK3399 eDP pinctrl to boards Robin Murphy
2025-12-30 17:20 ` [PATCH 4/4] arm64: dts: rockchip: Add overlay for FriendlyElec HD702E Robin Murphy
3 siblings, 0 replies; 5+ messages in thread
From: Robin Murphy @ 2025-12-30 17:20 UTC (permalink / raw)
To: heiko, neil.armstrong, dianders, thierry.reding, sam
Cc: jesszhan0024, dri-devel, linux-rockchip, linux-arm-kernel
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.
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
drivers/gpu/drm/panel/panel-edp.c | 26 ++++++++++++++++++++++++++
drivers/gpu/drm/panel/panel-simple.c | 25 -------------------------
2 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
index 415b894890ad..dd53ccc209ce 100644
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -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,
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index b26b682826bc..3ea52667b858 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -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
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 3/4] arm64: dts: rockchip: Move RK3399 eDP pinctrl to boards
2025-12-30 17:20 [PATCH 0/4] Properly support FriendlyElec HD702E Robin Murphy
2025-12-30 17:20 ` [PATCH 1/4] dt-bindings: display: panel: Move FriendlyElec HD702E to eDP Robin Murphy
2025-12-30 17:20 ` [PATCH 2/4] drm/panel-edp: Move FriendlyELEC HD702E Robin Murphy
@ 2025-12-30 17:20 ` Robin Murphy
2025-12-30 17:20 ` [PATCH 4/4] arm64: dts: rockchip: Add overlay for FriendlyElec HD702E Robin Murphy
3 siblings, 0 replies; 5+ messages in thread
From: Robin Murphy @ 2025-12-30 17:20 UTC (permalink / raw)
To: heiko, neil.armstrong, dianders, thierry.reding, sam
Cc: jesszhan0024, dri-devel, linux-rockchip, linux-arm-kernel
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.
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 2 --
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, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi
index 4dcceb9136b7..19a312baa9f1 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi
@@ -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";
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
index 9d07353df52c..3f3cb0eb5809 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
@@ -241,6 +241,8 @@ &dmc {
};
&edp {
+ pinctrl-names = "default";
+ pinctrl-0 = <&edp_hpd>;
status = "okay";
/*
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
index eaaca08a7601..dcab04863d28 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
@@ -401,8 +401,6 @@ &cpu_l3 {
&edp {
force-hpd;
- pinctrl-names = "default";
- pinctrl-0 = <&edp_hpd>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts
index a4ceafe6dd7a..80d6ea0eda84 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts
@@ -141,6 +141,8 @@ sdio_pwrseq: sdio-pwrseq {
};
&edp {
+ pinctrl-names = "default";
+ pinctrl-0 = <&edp_hpd>;
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 4/4] arm64: dts: rockchip: Add overlay for FriendlyElec HD702E
2025-12-30 17:20 [PATCH 0/4] Properly support FriendlyElec HD702E Robin Murphy
` (2 preceding siblings ...)
2025-12-30 17:20 ` [PATCH 3/4] arm64: dts: rockchip: Move RK3399 eDP pinctrl to boards Robin Murphy
@ 2025-12-30 17:20 ` Robin Murphy
3 siblings, 0 replies; 5+ messages in thread
From: Robin Murphy @ 2025-12-30 17:20 UTC (permalink / raw)
To: heiko, neil.armstrong, dianders, thierry.reding, sam
Cc: jesszhan0024, dri-devel, linux-rockchip, linux-arm-kernel
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
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
arch/arm64/boot/dts/rockchip/Makefile | 5 ++
.../dts/rockchip/rk3399-nanopc-t4-hd702e.dtso | 62 +++++++++++++++++++
2 files changed, 67 insertions(+)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index dbdda9783e93..4ab58a5961aa 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -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
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso b/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso
new file mode 100644
index 000000000000..ab643a1edd7b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4-hd702e.dtso
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * FriendlyElec HD702E LCD on NanoPC-T4 board
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+&{/} {
+ pwm_bl: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm0 0 25000 0>;
+ enable-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
+ brightness-levels = <0 255>;
+ default-brightness-level = <200>;
+ num-interpolated-steps = <255>;
+ };
+};
+
+&edp {
+ force-hpd;
+ status = "okay";
+
+ aux-bus {
+ edp-panel {
+ compatible = "friendlyarm,hd702e";
+ backlight = <&pwm_bl>;
+ no-hpd;
+ power-supply = <&vcc12v0_sys>;
+
+ port {
+ panel_in_edp: endpoint {
+ remote-endpoint = <&edp_out_panel>;
+ };
+ };
+ };
+ };
+};
+
+&edp_out {
+ edp_out_panel: endpoint {
+ remote-endpoint = <&panel_in_edp>;
+ };
+};
+
+&i2c4 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@5d {
+ compatible = "goodix,gt9271";
+ reg = <0x5d>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <RK_PC4 IRQ_TYPE_EDGE_FALLING>;
+ irq-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread