This patch-series adds support for the Sitronix ST7920 controller, which
is a monochrome dot-matrix graphical LCD controller that has SPI and
parallel interfaces.
The st7920 driver only has support for SPI so displays using other
transport protocols are currently not supported.
* Patch #1 adds the driver.
* Patch #2 adds the DT binding schema.
* Patch #3 adds the MAINTAINERS information.
---
Changes in v5:
- Remove unused device variant structures and hard-code display
resolution.
- Fix GPIO reset logic to correctly handle logical levels.
- Use kzalloc() instead of kmemdup() for atomic state duplication.
- Refactor atomic update to integrate cpu access with the damage loop.
- Rename macros to avoid the reserved DRM_ prefix.
- Use DRM logging helpers instead of generic device logging.
- Link to v4: https://lore.kernel.org/r/20251031-st7920-v4-0-35291f8076b2@gmail.com
Changes in v4:
- Added definitions for the VDD power supply and the XRESET GPIO line,
which were identified as minimum requirements from the datasheet.
- The error handling strategy has been refactored to propagate an
error-tracking struct from the caller.
- The atomic enable/disable logic has been correctly moved from
drm_encoder_helper_funcs to drm_crtc_helper_funcs, as the
functionality is bound to the CRTC.
- Added drm_dev_enter() and drm_dev_exit() calls to the atomic_enable
and atomic_disable helpers to correctly manage the device's runtime
power state.
- Renamed macro definitions to match the correct terminology.
- Link to v3: https://lore.kernel.org/r/20251006-st7920-v3-0-4f89d656fa03@gmail.com
Changes in v3:
- Reorganize the patch documenting compatible (DT bindings) before their
use.
- Drop reduntant information from DT bindings.
- Use a goto label to ensure drm_dev_exit() is called in the error path
of drm_gem_fb_begin_cpu_access().
- Link to v2: https://lore.kernel.org/r/20250909-st7920-v2-0-409f4890fb5f@gmail.com
Changes in v2:
- Refactor SPI communication:
* Internalize error handling and delays within the st7920_spi_write()
helper.
* Split the main SPI write function into smaller, command-specific
helpers for clarity.
- Improve DRM/KMS logic:
* Relocate CPU access calls (drm_gem_fb...) to the atomic_update hook.
* Use standard DRM helpers (drm_crtc_helper_mode_valid_fixed and
drm_connector_helper_get_modes_fixed) for mode validation and
creation.
- General code cleanup:
* Remove dead code related to ST7920_FAMILY.
* Replace WARN_ON() with drm_WARN_ON_ONCE().
* Ensure single variable assignments per line.
- Fix probe initialization order:
* Move spi_set_drvdata() and st7920_init() to occur before device
registration.
- Devicetree:
* Update bindings to address feedback from review (e.g., reference
common SPI properties).
- MAINTAINERS:
* Add a proper commit message to the patch.
- Link to v1: https://lore.kernel.org/r/20250806-st7920-v1-0-64ab5a34f9a0@gmail.com
---
Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
---
Iker Pedrosa (3):
dt-bindings: display: sitronix,st7920: Add DT schema
drm: Add driver for Sitronix ST7920 LCD displays
MAINTAINERS: Add entry for Sitronix ST7920 driver
.../bindings/display/sitronix,st7920.yaml | 58 ++
MAINTAINERS | 7 +
drivers/gpu/drm/sitronix/Kconfig | 10 +
drivers/gpu/drm/sitronix/Makefile | 1 +
drivers/gpu/drm/sitronix/st7920.c | 866 +++++++++++++++++++++
5 files changed, 942 insertions(+)
---
base-commit: c571cb70e1ed43ee543c70151e61a001ab2eefa2
change-id: 20250806-st7920-e7aba32b3ab6
Best regards,
--
Iker Pedrosa <ikerpedrosam@gmail.com>