From: LiangCheng Wang <zaq14760@gmail.com>
To: "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Christian König" <christian.koenig@amd.com>,
"Wig Cheng" <onlywig@gmail.com>,
"LiangCheng Wang" <zaq14760@gmail.com>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org,
linaro-mm-sig@lists.linaro.org,
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: [PATCH v3 0/3] Add support for Mayqueen Pixpaper e-ink panel
Date: Mon, 21 Jul 2025 11:00:46 +0800 [thread overview]
Message-ID: <20250721-drm-v3-0-e16c3cee7263@gmail.com> (raw)
This patch series adds support for the Mayqueen Pixpaper e-ink display panel,
controlled via SPI.
The series includes:
- A new vendor-prefix entry for "mayqueen"
- Device tree binding documentation for the Pixpaper panel
- A DRM tiny driver implementation for the Pixpaper panel
- A MAINTAINERS entry for the Pixpaper DRM driver and binding
The panel supports 122x250 resolution with XRGB8888 format and uses SPI,
along with GPIO lines for reset, busy, and data/command control.
The driver has been tested on:
- Raspberry Pi 2 Model B
with Linux kernel 6.16.
---
Changes in v3:
- MAINTAINERS
- Added pixpaper-regs.h
- Kconfig
- Rename config symbol to DRM_PIXPAPER (drop TINYDRM_ prefix).
- Reordered Kconfig select lines alphabetically.
- Code structure & style
- Fix include order: move <linux/> headers above <drm/> headers.
- Removed forward declarations; placed static functions next to usage
- Switched logging to drm_err()/drm_warn()/drm_dbg() (legacy DRM_ERROR/WARN removed)
- Remove dev_info() statements.
- Switched encoder type to DRM_MODE_ENCODER_NONE
- Moved pixpaper_panel_hw_init() from atomic_enable() to probe() to avoid redundant hardware init.
- Use helper to_pixpaper_panel() instead of container_of() on crtc.
- Robustness
- Added timeout + warning in pixpaper_wait_busy() to ensure robustness if BUSY line gets stuck.
- Introduced struct pixpaper_error_ctx to propagate SPI/GPIO errors
- Clean‑ups
- Removed drm_plane_enable_fb_damage_clips() (full‑frame updates)
- Removed noisy info prints; kept drm_dbg() only where helpful
- Consolidated all magic register values/commands into new
pixpaper-regs.h with datasheet‑aligned naming
- Memory helpers
- Driver now uses GEM SHMEM helpers; GEM DMA helpers dropped
(panel has no bus‑mastering DMA)
- Functionality fixes
- Rewrote pack_pixels_to_byte() to correctly handle 4-color (B/W/R/Y) layout
based on expected panel color encoding
- DRM callback safety
- Add missing drm_dev_enter()/drm_dev_exit() in callbacks.
- Tags added
- Reviewed-by: Rob Herring <robh@kernel.org> (from v1)
- Acked-by: Rob Herring <robh@kernel.org> (from v1)
- Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> (from v2)
- Link to v2: https://lore.kernel.org/r/20250714-drm-v2-0-5d1a2e12796c@gmail.com
Changes in v2:
- Reordered patches so that DT bindings come before the driver (suggested by Rob Herring)
- Fixed sparse warning: removed duplicate `.reset` initializer in `pixpaper_plane_funcs`
- Fixed checkpatch issues reported by Media CI:
- Removed unnecessary blank line before closing brace
- Moved opening parentheses up to function call lines (e.g., `DRM_WARN(...)`)
- Fixed alignment of conditionals
- Fixed `dev_warn(` and `drm_universal_plane_init(` formatting
- Thanks to Rob Herring for ack on vendor-prefix patch
- Link to v1: https://lore.kernel.org/r/20250708-drm-v1-0-45055fdadc8a@gmail.com
Thanks to all reviewers for feedback across earlier versions.
Best regards,
LiangCheng Wang
<zaq14760@gmail.com>
---
LiangCheng Wang (2):
dt-bindings: display: Add Mayqueen Pixpaper e-ink panel
drm: tiny: Add support for Mayqueen Pixpaper e-ink panel
Wig Cheng (1):
dt-bindings: vendor-prefixes: Add Mayqueen name
.../bindings/display/mayqueen,pixpaper.yaml | 63 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
MAINTAINERS | 7 +
drivers/gpu/drm/tiny/Kconfig | 15 +
drivers/gpu/drm/tiny/Makefile | 1 +
drivers/gpu/drm/tiny/pixpaper-regs.h | 428 +++++++++++
drivers/gpu/drm/tiny/pixpaper.c | 790 +++++++++++++++++++++
7 files changed, 1306 insertions(+)
---
base-commit: 6832a9317eee280117cd695fa885b2b7a7a38daf
change-id: 20250708-drm-6021df0715d7
Best regards,
--
LiangCheng Wang <zaq14760@gmail.com>
next reply other threads:[~2025-07-21 3:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-21 3:00 LiangCheng Wang [this message]
2025-07-21 3:00 ` [PATCH v3 1/3] dt-bindings: vendor-prefixes: Add Mayqueen name LiangCheng Wang
2025-07-21 3:00 ` [PATCH v3 2/3] dt-bindings: display: Add Mayqueen Pixpaper e-ink panel LiangCheng Wang
2025-07-21 3:00 ` [PATCH v3 3/3] drm: tiny: Add support for " LiangCheng Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250721-drm-v3-0-e16c3cee7263@gmail.com \
--to=zaq14760@gmail.com \
--cc=airlied@gmail.com \
--cc=christian.koenig@amd.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=onlywig@gmail.com \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=sumit.semwal@linaro.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).