arch/arm64/boot/dts/freescale/Makefile | 3 ++ .../freescale/imx93-11x11-frdm-pixpaper.dtso | 51 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx93-11x11-frdm-pixpaper.dtso
Add device tree overlay to support the MayQueen PixPaper e-paper display
on the NXP i.MX93 FRDM board. The display is connected via LPSPI3
interface and uses GPIO pins for reset, busy and DC control.
The overlay configures:
- LPSPI3 pinmux for SPI communication (MOSI, MISO, CLK, CE0)
- PixPaper display device with proper GPIO assignments
- SPI frequency set to 5MHz for stable operation
This enables support for the Open-EP Community pixpaper-213-c module on
the NXP i.MX93 platform.
Signed-off-by: Wig Cheng <onlywig@gmail.com>
---
arch/arm64/boot/dts/freescale/Makefile | 3 ++
.../freescale/imx93-11x11-frdm-pixpaper.dtso | 51 +++++++++++++++++++
2 files changed, 54 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..fedd3552b577 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -403,6 +403,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
+imx93-11x11-frdm-pixpaper-dtbs += imx93-11x11-frdm.dtb imx93-11x11-frdm-pixpaper.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm-pixpaper.dtb
+
imx93-phyboard-nash-jtag-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-jtag.dtbo
imx93-phyboard-nash-peb-wlbt-07-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-peb-wlbt-07.dtbo
imx93-phyboard-nash-pwm-fan-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-pwm-fan.dtbo
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..38e0c5dd82f9
--- /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>;
+ fsl,spi-num-chipselects = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lpspi3>, <&pinctrl_epd_ctrl>;
+ cs-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+ 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
Changes in v3: - Misunderstood reviewer's feedback in v1, improved commit message description Changes in v2: - Fix Makefile alphabetical ordering - Move vendor property before status in device tree - Simplify commit message as suggested by reviewer Wig Cheng (1): arm64: dts: freescale: add pixpaper display overlay for i.MX93 FRDM 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 -- 2.43.0
Add device tree overlay to support the MayQueen PixPaper e-paper display
on the NXP i.MX93 FRDM board. The display is connected via LPSPI3
interface and uses GPIO pins for reset, busy and DC control.
The overlay configures:
- LPSPI3 pinmux for SPI communication (MOSI, MISO, CLK, CE0)
- PixPaper display device with proper GPIO assignments
- SPI frequency set to 5MHz for stable operation
Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
Signed-off-by: Wig Cheng <onlywig@gmail.com>
---
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..a78284c10838
--- /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>;
+ 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
On Wed, Jan 28, 2026 at 12:55 PM Wig Cheng <onlywig@gmail.com> wrote:
> +&lpspi3 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lpspi3>, <&pinctrl_epd_ctrl>;
> + cs-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
> + fsl,spi-num-chipselects = <1>;
Drop fsl,spi-num-chipselects. It's not a valid property.
On Wed, Jan 28, 2026 at 11:55:29PM +0800, Wig Cheng wrote:
> Add device tree overlay to support the MayQueen PixPaper e-paper display
> on the NXP i.MX93 FRDM board. The display is connected via LPSPI3
> interface and uses GPIO pins for reset, busy and DC control.
>
> The overlay configures:
> - LPSPI3 pinmux for SPI communication (MOSI, MISO, CLK, CE0)
> - PixPaper display device with proper GPIO assignments
> - SPI frequency set to 5MHz for stable operation
>
> Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
>
> Signed-off-by: Wig Cheng <onlywig@gmail.com>
> ---
Not sure why v3 is under v0's email thread, suppose it should be new email
thread.
Reviewed-by: Frank Li <Frank.Li@nxp.com>
> 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..a78284c10838
> --- /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>;
> + 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
>
Changes in v2: - Fix Makefile alphabetical ordering - Move vendor property before status in device tree - Simplify commit message as suggested by reviewer Wig Cheng (1): arm64: dts: freescale: add pixpaper display overlay for i.MX93 FRDM 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 -- 2.43.0
Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
Signed-off-by: Wig Cheng <onlywig@gmail.com>
---
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>;
+ 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
On Wed, Jan 28, 2026 at 01:05:49PM +0800, Wig Cheng wrote:
"Add device tree overlay to support the MayQueen PixPaper e-paper display
on the NXP i.MX93 FRDM board. The display is connected via LPSPI3
interface and uses GPIO pins for reset, busy and DC control.
The overlay configures:
- LPSPI3 pinmux for SPI communication (MOSI, MISO, CLK, CE0)
- PixPaper display device with proper GPIO assignments
- SPI frequency set to 5MHz for stable operation
"
Sorry, My means just replace 3rd paragraph. First 2 paragraph is good.
Frank
> Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
>
> Signed-off-by: Wig Cheng <onlywig@gmail.com>
> ---
> 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>;
> + 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
>
On Wed, Jan 28, 2026 at 01:05:49PM +0800, Wig Cheng wrote:
>Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
>
>Signed-off-by: Wig Cheng <onlywig@gmail.com>
>---
> 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
>+ 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
>
Peng Fan <peng.fan@oss.nxp.com> 於 2026年1月28日週三 下午2:28寫道:
>
> On Wed, Jan 28, 2026 at 01:05:49PM +0800, Wig Cheng wrote:
> >Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
> >
> >Signed-off-by: Wig Cheng <onlywig@gmail.com>
> >---
> > 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
>
> >+ 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
On Tue, Jan 27, 2026 at 10:57:40AM +0800, Wig Cheng wrote:
> Add device tree overlay to support the MayQueen PixPaper e-paper display
> on the NXP i.MX93 FRDM board. The display is connected via LPSPI3
> interface and uses GPIO pins for reset, busy and DC control.
>
> The overlay configures:
> - LPSPI3 pinmux for SPI communication (MOSI, MISO, CLK, CE0)
> - PixPaper display device with proper GPIO assignments
> - SPI frequency set to 5MHz for stable operation
>
> This enables support for the Open-EP Community pixpaper-213-c module on
> the NXP i.MX93 platform.
Enable Open-EP Community pixpaper-213-c support on NXP i.MX93.
>
> Signed-off-by: Wig Cheng <onlywig@gmail.com>
> ---
> arch/arm64/boot/dts/freescale/Makefile | 3 ++
> .../freescale/imx93-11x11-frdm-pixpaper.dtso | 51 +++++++++++++++++++
> 2 files changed, 54 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..fedd3552b577 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -403,6 +403,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
>
> +imx93-11x11-frdm-pixpaper-dtbs += imx93-11x11-frdm.dtb imx93-11x11-frdm-pixpaper.dtbo
> +dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm-pixpaper.dtb
> +
imx93-11x11-frdm-pixpaper.dtb, Keep alphabet order.
> imx93-phyboard-nash-jtag-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-jtag.dtbo
> imx93-phyboard-nash-peb-wlbt-07-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-peb-wlbt-07.dtbo
> imx93-phyboard-nash-pwm-fan-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-nash-pwm-fan.dtbo
> 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..38e0c5dd82f9
> --- /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 {
keep alphabet according to node name.
> + 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>;
> + fsl,spi-num-chipselects = <1>;
vendor property should be last one just before status.
You can use https://github.com/lznuaa/dt-format to format your dts.
Frank Li
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lpspi3>, <&pinctrl_epd_ctrl>;
> + cs-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
> + 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
>
On Tue, Jan 27, 2026 at 5:02 AM Wig Cheng <onlywig@gmail.com> wrote: > > Add device tree overlay to support the MayQueen PixPaper e-paper display > on the NXP i.MX93 FRDM board. The display is connected via LPSPI3 > interface and uses GPIO pins for reset, busy and DC control. > > The overlay configures: > - LPSPI3 pinmux for SPI communication (MOSI, MISO, CLK, CE0) > - PixPaper display device with proper GPIO assignments > - SPI frequency set to 5MHz for stable operation > > This enables support for the Open-EP Community pixpaper-213-c module on > the NXP i.MX93 platform. > > Signed-off-by: Wig Cheng <onlywig@gmail.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
© 2016 - 2026 Red Hat, Inc.