Thread (12 messages) 12 messages, 5 authors, 2026-01-28

Re: [PATCH v2 1/1] arm64: dts: freescale: add pixpaper display overlay for i.MX93 FRDM

From: Wig Cheng <hidden>
Date: 2026-01-28 08:39:34
Also in: imx, linux-devicetree, lkml

Peng Fan [off-list ref] 於 2026年1月28日週三 下午2:28寫道:
On Wed, Jan 28, 2026 at 01:05:49PM +0800, Wig Cheng wrote:
quoted
Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.

Signed-off-by: Wig Cheng <redacted>
---
arch/arm64/boot/dts/freescale/Makefile        |  4 ++
.../freescale/imx93-11x11-frdm-pixpaper.dtso  | 51 +++++++++++++++++++
2 files changed, 55 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx93-11x11-frdm-pixpaper.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index ce8f937c2315..c2727f8061e2 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -398,6 +398,10 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb
+
+imx93-11x11-frdm-pixpaper-dtbs += imx93-11x11-frdm.dtb imx93-11x11-frdm-pixpaper.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm-pixpaper.dtb
+
dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm-pixpaper.dtso b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm-pixpaper.dtso
new file mode 100644
index 000000000000..1111503b08af
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm-pixpaper.dtso
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Overlay for Mayqueen (Open-EP Community) pixpaper display
+ * support on NXP FRDM i.MX 93 Development Board
+ *
+ * Copyright (C) 2026 Wig Cheng <onlywig@gmail.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx93-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+&iomuxc {
+      pinctrl_lpspi3: lpspi3grp {
+              fsl,pins = <
+                      MX93_PAD_GPIO_IO08__GPIO2_IO08          0x3fe /* SPI3 CE0 */
+                      MX93_PAD_GPIO_IO09__LPSPI3_SIN          0x3fe /* SPI3 MISO */
+                      MX93_PAD_GPIO_IO10__LPSPI3_SOUT         0x3fe /* SPI3 MOSI */
+                      MX93_PAD_GPIO_IO11__LPSPI3_SCK          0x3fe /* SPI3 CLK */
+              >;
+      };
+
+      pinctrl_epd_ctrl: epdctrlgrp {
+              fsl,pins = <
+                      MX93_PAD_GPIO_IO05__GPIO2_IO05          0x31e /* DC pin */
+                      MX93_PAD_GPIO_IO06__GPIO2_IO06          0x31e /* RESET pin */
+                      MX93_PAD_GPIO_IO26__GPIO2_IO26          0x31e /* BUSY pin */
+              >;
+      };
+};
+
+&lpspi3 {
+      #address-cells = <1>;
+      #size-cells = <0>;
The above two properties are in imx93_91_common.dtsi lpspi3 node, no need to
duplicate them.

Regards
Peng
quoted
+      pinctrl-names = "default";
+      pinctrl-0 = <&pinctrl_lpspi3>, <&pinctrl_epd_ctrl>;
+      cs-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+      fsl,spi-num-chipselects = <1>;
+      status = "okay";
+
+      display@0 {
+              compatible = "mayqueen,pixpaper";
+              reg = <0>;
+              spi-max-frequency = <5000000>;
+              reset-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
+              dc-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+              busy-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
+      };
+};
--
2.43.0
Hi Peng,

Thank you for the review. I understand that #address-cells and #size-cells
are already defined in imx91_93_common.dtsi for the lpspi3 node.

However, these properties need to be present in the overlay file for proper
DTC compilation. When compiling a device tree overlay (.dtbo), the DTC
compiler cannot see the properties defined in the base DTB. Without these
properties in the overlay, the build generates warnings:

    Warning (reg_format): /fragment@1/__overlay__/display@0:reg: property has
    invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)

    Warning (avoid_default_addr_size): /fragment@1/__overlay__/display@0:
    Relying on default #address-cells value

This is a known limitation of overlay compilation, and other overlay files
in the kernel tree follow the same pattern. For example:
  - arch/arm64/boot/dts/freescale/imx8mm-kontron-bl-lte.dtso (line 78-79)
  - arch/arm64/boot/dts/freescale/imx93-9x9-qsb-i3c.dtso (line 22-23)

These properties in the overlay don't conflict with the base dtb, they are
merged correctly at runtime. The duplication is necessary only for clean
compilation of the overlay, thanks a lot!

Regards,
Wig
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help