[v2,1/2] arm64: dts: st: move Engicam MicroGEA-STM32MP257D-RMM display to an overlay
Commit Message
The board is fitted with different displays depending on the product
variant. Keep in the board dts only what is common to all variants and
move the RK050HR345-CT106A RGB panel and its touchscreen to an overlay.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes in v2:
- Keep the full cs-gpios in the board dts, the overlay only adds the
panel node. Suggested by Sashiko.
arch/arm64/boot/dts/st/Makefile | 6 ++
...icrogea-rmm-overlay-rk050hr345-ct106a.dtso | 68 +++++++++++++++++++
.../st/stm32mp257d-engicam-microgea-rmm.dts | 46 +------------
3 files changed, 75 insertions(+), 45 deletions(-)
create mode 100644 arch/arm64/boot/dts/st/stm32mp257d-engicam-microgea-rmm-overlay-rk050hr345-ct106a.dtso
@@ -1,7 +1,13 @@
# SPDX-License-Identifier: GPL-2.0-only
+stm32mp257d-engicam-microgea-rmm-overlay-rk050hr345-ct106a-dtbs := \
+ stm32mp257d-engicam-microgea-rmm.dtb \
+ stm32mp257d-engicam-microgea-rmm-overlay-rk050hr345-ct106a.dtbo
+
dtb-$(CONFIG_ARCH_STM32) += \
stm32mp215f-dk.dtb \
stm32mp235f-dk.dtb \
stm32mp257d-engicam-microgea-rmm.dtb \
+ stm32mp257d-engicam-microgea-rmm-overlay-rk050hr345-ct106a.dtb \
+ stm32mp257d-engicam-microgea-rmm-overlay-rk050hr345-ct106a.dtbo \
stm32mp257f-dk.dtb \
stm32mp257f-ev1.dtb
new file mode 100644
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2026 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com>
+ * Copyright (C) 2026 Engicam srl
+ *
+ * Rocktech RK050HR345-CT106A 5" 480x854 RGB panel with EDT FT5306
+ * I2C touchscreen controller.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+&i2c1 {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&i2c1_pins_a>;
+ pinctrl-1 = <&i2c1_sleep_pins_a>;
+ i2c-scl-rising-time-ns = <185>;
+ i2c-scl-falling-time-ns = <20>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ touchscreen@38 {
+ compatible = "edt,edt-ft5306";
+ reg = <0x38>;
+ interrupt-parent = <&gpiob>;
+ interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&gpiod 1 GPIO_ACTIVE_LOW>;
+ touchscreen-size-x = <480>;
+ touchscreen-size-y = <854>;
+ };
+};
+
+<dc {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <<dc_pins_a>;
+ pinctrl-1 = <<dc_sleep_pins_a>;
+ status = "okay";
+
+ port {
+ ltdc_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+};
+
+&spi1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ display@0 {
+ compatible = "rocktech,rk050hr345-ct106a", "ilitek,ili9806e";
+ reg = <0>;
+ vdd-supply = <®_3v3>;
+ spi-max-frequency = <10000000>;
+ reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
+ backlight = <&backlight>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <<dc_out>;
+ };
+ };
+ };
+};
@@ -116,25 +116,9 @@ &arm_wdt {
};
&i2c1 {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&i2c1_pins_a>;
- pinctrl-1 = <&i2c1_sleep_pins_a>;
- i2c-scl-rising-time-ns = <185>;
- i2c-scl-falling-time-ns = <20>;
- status = "okay";
- /* spare dmas for other usage */
+ /* dt overlays don't support /delete-property/ */
/delete-property/dmas;
/delete-property/dma-names;
-
- touchscreen@38 {
- compatible = "edt,edt-ft5306";
- reg = <0x38>;
- interrupt-parent = <&gpiob>;
- interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
- reset-gpios = <&gpiod 1 GPIO_ACTIVE_LOW>;
- touchscreen-size-x = <480>;
- touchscreen-size-y = <854>;
- };
};
&i2c2 {
@@ -179,19 +163,6 @@ sgtl5000_rx_endpoint: endpoint@1 {
};
};
-<dc {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <<dc_pins_a>;
- pinctrl-1 = <<dc_sleep_pins_a>;
- status = "okay";
-
- port {
- ltdc_out: endpoint {
- remote-endpoint = <&panel_in>;
- };
- };
-};
-
&m_can1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&m_can1_pins_a>;
@@ -259,21 +230,6 @@ &spi1 {
#size-cells = <0>;
cs-gpios = <&gpioh 8 GPIO_ACTIVE_LOW>, <&gpioh 3 GPIO_ACTIVE_HIGH>;
status = "okay";
-
- display: display@0 {
- compatible = "rocktech,rk050hr345-ct106a", "ilitek,ili9806e";
- reg = <0>;
- vdd-supply = <®_3v3>;
- spi-max-frequency = <10000000>;
- reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
- backlight = <&backlight>;
-
- port {
- panel_in: endpoint {
- remote-endpoint = <<dc_out>;
- };
- };
- };
};
&timers2 {