Add support for PIXPAPER 4.26 monochrome e-ink panel
LiangCheng Wang
maintainercover Add support for PIXPAPER 4.26 monochrome e-ink panel
This patch series adds support for the Mayqueen Pixpaper 4.26 monochrome e-ink display panel, controlled via SPI.
The series includes:
- Device tree binding updates for the Pixpaper 4.26 panel
- A DRM tiny driver implementation for the Pixpaper 4.26 panel
- A MAINTAINERS update for the Pixpaper DRM drivers and binding
The panel supports 800x480 resolution with XRGB8888 framebuffer input and uses SPI, along with GPIO lines for reset, busy, and data/command control.
The driver has been tested on:
- Raspberry Pi 5
with Linux kernel 7.1.0-rc1.
Feedback is welcome.
---
LiangCheng Wang (2):
dt-bindings: display: mayqueen,pixpaper: add pixpaper-426m drm/tiny: add support for PIXPAPER 4.26 monochrome e-ink panel
.../bindings/display/mayqueen,pixpaper.yaml | 25 +- MAINTAINERS | 3 +- drivers/gpu/drm/tiny/Kconfig | 15 + drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/pixpaper-426m.c | 828 +++++++++++++++++++++ 5 files changed, 866 insertions(+), 6 deletions(-)
---
base-commit: a293ec25d59dd96309058c70df5a4dd0f889a1e4
change-id: 20260505-bar-523f2c3f6939
Best regards,
Signature · 1 line
LiangCheng Wang <[email protected]>
LiangCheng Wang
maintainerPATCH 1/2 dt-bindings: display: mayqueen,pixpaper: add pixpaper-426m
Add the compatible string for the PIXPAPER 4.26 monochrome e-ink panel to the Mayqueen Pixpaper binding.
The new panel uses the same SPI and GPIO control interface as the existing Pixpaper panel, so extend the existing binding instead of adding a separate schema. Document the new compatible string and add an example node for pixpaper-426m.
--- .../bindings/display/mayqueen,pixpaper.yaml | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-)
Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml +20 -5
@@ -4,22 +4,23 @@ $id: http://devicetree.org/schemas/display/mayqueen,pixpaper.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# -title: Mayqueen Pixpaper e-ink display panel +title: Mayqueen Pixpaper e-ink display panels maintainers: - LiangCheng Wang <[email protected]> description: - The Pixpaper is an e-ink display panel controlled via an SPI interface. - The panel has a resolution of 122x250 pixels and requires GPIO pins for - reset, busy, and data/command control. + Mayqueen Pixpaper e-ink display panels are controlled via an SPI interface + and require GPIO pins for reset, busy, and data/command control. allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# properties: compatible: - const: mayqueen,pixpaper + enum: + - mayqueen,pixpaper + - mayqueen,pixpaper-426m reg: maxItems: 1
@@ -61,3 +62,17 @@ examples: dc-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; }; }; + - | + #include <dt-bindings/gpio/gpio.h> + spi { + #address-cells = <1>; + #size-cells = <0>; + display@0 { + compatible = "mayqueen,pixpaper-426m"; + reg = <0>; + spi-max-frequency = <1000000>; + reset-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; + busy-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; + dc-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; + }; + };
Signature · 1 line
2.34.1
Re: [PATCH 1/2] dt-bindings: display: mayqueen,pixpaper: add pixpaper-426m
Quoted 33 lines · LiangCheng Wang
Add the compatible string for the PIXPAPER 4.26 monochrome e-ink panel to the Mayqueen Pixpaper binding.
The new panel uses the same SPI and GPIO control interface as the existing Pixpaper panel, so extend the existing binding instead of adding a separate schema. Document the new compatible string and add an example node for pixpaper-426m.
Signed-off-by LiangCheng Wang <[email protected]>--- .../bindings/display/mayqueen,pixpaper.yaml | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-)Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml +3
-4@@ -4,22 +4,23 @@ $id: http://devicetree.org/schemas/display/mayqueen,pixpaper.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# -title: Mayqueen Pixpaper e-ink display panel +title: Mayqueen Pixpaper e-ink display panels maintainers: - LiangCheng Wang <[email protected]> description: - The Pixpaper is an e-ink display panel controlled via an SPI interface. - The panel has a resolution of 122x250 pixels and requires GPIO pins for - reset, busy, and data/command control. + Mayqueen Pixpaper e-ink display panels are controlled via an SPI interface + and require GPIO pins for reset, busy, and data/command control.
Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml line 23
Quoted 10 lines
Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml +3
-1allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# properties: compatible: - const: mayqueen,pixpaper + enum: + - mayqueen,pixpaper + - mayqueen,pixpaper-426m
The commit message makes it sound like both devices could be compatible, but the diff says they are not. What actually makes them incompatible?
Quoted 11 lines
Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml +4
-0reg: maxItems: 1@@ -61,3 +62,17 @@ examples: dc-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; }; }; + - | + #include <dt-bindings/gpio/gpio.h> + spi { + #address-cells = <1>;
Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml examples: · line 78
Quoted 10 lines
Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml +10
-0+ #size-cells = <0>; + display@0 { + compatible = "mayqueen,pixpaper-426m"; + reg = <0>; + spi-max-frequency = <1000000>; + reset-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; + busy-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; + dc-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; + }; + };
This example just duplicates the existing one, there's no value in adding it.
pw-bot: changes-requested
Cheers,
Conor.
Quoted 4 lines
Signature · 2 lines
-- 2.34.1
LiangCheng Wang
maintainerRe: [PATCH 1/2] dt-bindings: display: mayqueen,pixpaper: add pixpaper-426m
Hi Conor,
Thanks for the review.
You're right on both points.
The new panel uses the same DT properties as the existing Pixpaper panel, but it requires a distinct compatible because the driver selects a different panel-specific initialization and update sequence.
The second example is also redundant, so I'll drop it.
I'll fold these fixes into the next revision and wait a bit longer for any driver-side feedback before sending v2.
Thanks,
LiangCheng
Re: [PATCH 1/2] dt-bindings: display: mayqueen,pixpaper: add pixpaper-426m
Quoted 9 lines · LiangCheng Wang
Hi Conor,
Thanks for the review.
You're right on both points.
The new panel uses the same DT properties as the existing Pixpaper panel, but it requires a distinct compatible because the driver selects a different panel-specific initialization and update sequence.
Can't see what you're replying to, but please note this in the commit message on your v2.
Quoted 8 lines
The second example is also redundant, so I'll drop it.
I'll fold these fixes into the next revision and wait a bit longer for any driver-side feedback before sending v2.
Thanks,
LiangCheng
LiangCheng Wang
maintainerPATCH 2/2 drm/tiny: add support for PIXPAPER 4.26 monochrome e-ink panel
In reply to LiangCheng WangIntroduce a DRM driver for the Mayqueen Pixpaper 4.26 monochrome e-ink display panel, which is controlled via SPI. The driver supports an 800x480 display with XRGB8888 framebuffer input.
Also, add Kconfig and Makefile entries for the driver and update MAINTAINERS for the Pixpaper DRM drivers and binding.
--- MAINTAINERS | 3 +- drivers/gpu/drm/tiny/Kconfig | 15 + drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/pixpaper-426m.c | 828 +++++++++++++++++++++++++++++++++++ 4 files changed, 846 insertions(+), 1 deletion(-)
MAINTAINERS +2 -1
@@ -8234,11 +8234,12 @@ T: git https://gitlab.freedesktop.org/drm/misc/kernel.git F: Documentation/devicetree/bindings/display/repaper.txt F: drivers/gpu/drm/tiny/repaper.c -DRM DRIVER FOR PIXPAPER E-INK PANEL +DRM DRIVER FOR PIXPAPER E-INK PANELS M: LiangCheng Wang <[email protected]> L: [email protected] S: Maintained F: Documentation/devicetree/bindings/display/mayqueen,pixpaper.yaml +F: drivers/gpu/drm/tiny/pixpaper-426m.c F: drivers/gpu/drm/tiny/pixpaper.c DRM DRIVER FOR QEMU'S CIRRUS DEVICE
drivers/gpu/drm/tiny/Kconfig +15 -0
@@ -98,6 +98,21 @@ config DRM_PIXPAPER If M is selected, the module will be built as pixpaper.ko. +config DRM_PIXPAPER_426M + tristate "DRM support for PIXPAPER 4.26 monochrome display panel" + depends on DRM && SPI + select DRM_CLIENT_SELECTION + select DRM_GEM_DMA_HELPER + select DRM_KMS_HELPER + help + DRM driver for the Mayqueen Pixpaper 4.26 monochrome e-ink + display panel. + + This driver supports SPI-connected 800x480 monochrome panels + with an XRGB8888 framebuffer input format. + + If M is selected, the module will be built as pixpaper-426m.ko. + config TINYDRM_HX8357D tristate "DRM support for HX8357D display panels" depends on DRM && SPI
drivers/gpu/drm/tiny/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus-qemu.o obj-$(CONFIG_DRM_GM12U320) += gm12u320.o obj-$(CONFIG_DRM_PANEL_MIPI_DBI) += panel-mipi-dbi.o obj-$(CONFIG_DRM_PIXPAPER) += pixpaper.o +obj-$(CONFIG_DRM_PIXPAPER_426M) += pixpaper-426m.o obj-$(CONFIG_TINYDRM_HX8357D) += hx8357d.o obj-$(CONFIG_TINYDRM_ILI9163) += ili9163.o obj-$(CONFIG_TINYDRM_ILI9225) += ili9225.o
drivers/gpu/drm/tiny/pixpaper-426m.c new file +828 -0
828 lines not on this page · raw message
Signature · 1 line
2.34.1
LiangCheng Wang
maintainerRe: [PATCH 2/2] drm/tiny: add support for PIXPAPER 4.26 monochrome e-ink panel
Hi,
Gentle ping on this driver patch.
The DT binding patch has already received feedback from Conor, which I will address in v2 by documenting why this panel needs a distinct compatible despite sharing the same DT properties as the existing Pixpaper panel.
Any DRM-side feedback on this driver would be appreciated.
Thanks,
LiangCheng