Add support for ROCKNIX overlays by binding to "rocknix,generic-dsi" compatible

This commit is contained in:
Douglas Teles
2026-05-11 18:27:23 -03:00
parent 926cca9cd4
commit 57a57855b4
2 changed files with 37 additions and 0 deletions
@@ -0,0 +1,31 @@
From: ArchR <noreply@archr-linux>
Subject: [PATCH] archr-joypad: bind to "rocknix-joypad" compatible
ROCKNIX's overlay_server produces DTBOs whose MyMini joypad variant
fragment sets:
compatible = "rocknix-joypad";
If a user flashes ArchR and applies a ROCKNIX-generated overlay, the
joypad node fails to bind because ArchR's MyMini-style driver only
registers under "archr-joypad" / "odroidgo3-joypad". The hardware is
identical and the driver code is the same lineage, so we add the
ROCKNIX compatible string to the match table — controls then come up
with no further changes.
The arch-r.io overlay generator already emits both compatibles in a
stringlist, so its DTBOs always worked on ArchR. This patch is for
the third-party / ROCKNIX-site case where only "rocknix-joypad" is
present.
--- a/archr-joypad.c
+++ b/archr-joypad.c
@@ -640,6 +640,7 @@
static const struct of_device_id joypad_of_match[] = {
{ .compatible = "archr-joypad", },
{ .compatible = "odroidgo3-joypad", },
+ { .compatible = "rocknix-joypad", },
{},
};
@@ -669,6 +669,12 @@ static void generic_panel_remove(struct mipi_dsi_device *dsi)
static const struct of_device_id generic_panel_of_match[] = {
{ .compatible = "archr,generic-dsi" },
/* Also bind to overlays produced by ROCKNIX (overlay_server, nightly
* builds, dtbo-overlay branch) so users can flash ArchR with a DTBO
* generated upstream and have the panel come up. The init sequence
* and panel_description format are identical between the two — only
* the compatible string differs. */
{ .compatible = "rocknix,generic-dsi" },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, generic_panel_of_match);