Odroid-M2: Add support for Hardkernel ODROID-Vu8S panel#9627
Odroid-M2: Add support for Hardkernel ODROID-Vu8S panel#9627mlegenovic wants to merge 1 commit intoarmbian:mainfrom
Conversation
📝 WalkthroughWalkthroughAdds ODROID‑Vu8S MIPI‑DSI panel support: device‑tree fragments/overlays and Makefile entries for RK3588(S) Odroid M2, plus a new ILI9881C panel descriptor, init sequence, and 800×1280 mode in the DRM panel driver. Changes
Sequence Diagram(s)sequenceDiagram
participant DT as "Device Tree / Overlay"
participant Kernel as "Kernel (driver probe)"
participant DSI as "DSI Host / VOP"
participant Panel as "ILI9881C panel"
participant BL as "Backlight Regulator / PWM"
participant TS as "Goodix Touch (I2C)"
DT->>Kernel: overlay applied / nodes enabled
Kernel->>Kernel: match OF compatible "odroid,vu8s"
Kernel->>Panel: probe + run init sequence
Panel->>DSI: configure MIPI lanes, video mode (800x1280)
Kernel->>BL: enable regulator, start PWM
Kernel->>TS: register touchscreen (disabled by default / can be enabled)
Panel->>Kernel: report panel ready
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
patch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patch (1)
413-428: Minor formatting issue in display mode definition.There's an extraneous space before the comma on line 421 (
.vsync_start = 1280 + 8 ,). This is a cosmetic issue that doesn't affect functionality.🧹 Suggested formatting fix
.vdisplay = 1280, - .vsync_start = 1280 + 8 , + .vsync_start = 1280 + 8, .vsync_end = 1280 + 8 + 4,🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@patch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patch` around lines 413 - 428, In the odroid_hj080be31ia1_default_mode drm_display_mode definition remove the extraneous space before the comma in the .vsync_start initializer (the ".vsync_start = 1280 + 8 ,") so it reads ".vsync_start = 1280 + 8,"; keep formatting consistent with other initializers in the struct.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@patch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patch`:
- Around line 413-428: In the odroid_hj080be31ia1_default_mode drm_display_mode
definition remove the extraneous space before the comma in the .vsync_start
initializer (the ".vsync_start = 1280 + 8 ,") so it reads ".vsync_start = 1280 +
8,"; keep formatting consistent with other initializers in the struct.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 7910ff66-5641-4e8a-9550-5043dcbde765
📒 Files selected for processing (6)
patch/kernel/archive/rockchip64-6.18/board-odroidm2-support-for-vu8s-panel.patchpatch/kernel/archive/rockchip64-6.18/overlay/Makefilepatch/kernel/archive/rockchip64-6.18/overlay/rockchip-rk3588-odroidm2-display-vu8s.dtsopatch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patchpatch/kernel/archive/rockchip64-7.0/overlay/Makefilepatch/kernel/archive/rockchip64-7.0/overlay/rockchip-rk3588-odroidm2-display-vu8s.dtso
Signed-off-by: Milivoje Legenovic <m.legenovic@gmail.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
patch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patch (1)
106-115: DSI1 endpoint defined without corresponding panel - verify intent.The
dsi1_in_vp3endpoint referencesvp3_out_dsi1, but there's nodsi1_outendpoint or panel defined on DSI1. If this is intentional preparatory wiring for potential dual-DSI or future expansion, this is fine. Otherwise, it could be dead code.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@patch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patch` around lines 106 - 115, The new device-tree fragment adds a dsi1_in node and an endpoint label dsi1_in_vp3 that points to vp3_out_dsi1 but there is no matching DSI1 panel/out node (e.g. a dsi1_out endpoint or panel node) in the patch; either remove this unused endpoint or add the corresponding DSI1 panel/out endpoint that provides the referenced label (ensure the remote-endpoint property matches the actual label name), and if this is intentionally stubbing future hardware, add a clear comment and leave status = "disabled" while keeping labels consistent (update dsi1_in, dsi1_in_vp3, and vp3_out_dsi1 references accordingly).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@patch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patch`:
- Around line 106-115: The new device-tree fragment adds a dsi1_in node and an
endpoint label dsi1_in_vp3 that points to vp3_out_dsi1 but there is no matching
DSI1 panel/out node (e.g. a dsi1_out endpoint or panel node) in the patch;
either remove this unused endpoint or add the corresponding DSI1 panel/out
endpoint that provides the referenced label (ensure the remote-endpoint property
matches the actual label name), and if this is intentionally stubbing future
hardware, add a clear comment and leave status = "disabled" while keeping labels
consistent (update dsi1_in, dsi1_in_vp3, and vp3_out_dsi1 references
accordingly).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: d007abd5-70c4-45ff-9648-a547b193c3c9
📒 Files selected for processing (6)
patch/kernel/archive/rockchip64-6.18/board-odroidm2-support-for-vu8s-panel.patchpatch/kernel/archive/rockchip64-6.18/overlay/Makefilepatch/kernel/archive/rockchip64-6.18/overlay/rockchip-rk3588-odroidm2-display-vu8s.dtsopatch/kernel/archive/rockchip64-7.0/board-odroidm2-support-for-vu8s-panel.patchpatch/kernel/archive/rockchip64-7.0/overlay/Makefilepatch/kernel/archive/rockchip64-7.0/overlay/rockchip-rk3588-odroidm2-display-vu8s.dtso
✅ Files skipped from review due to trivial changes (2)
- patch/kernel/archive/rockchip64-7.0/overlay/rockchip-rk3588-odroidm2-display-vu8s.dtso
- patch/kernel/archive/rockchip64-6.18/overlay/rockchip-rk3588-odroidm2-display-vu8s.dtso
🚧 Files skipped from review as they are similar to previous changes (3)
- patch/kernel/archive/rockchip64-7.0/overlay/Makefile
- patch/kernel/archive/rockchip64-6.18/overlay/Makefile
- patch/kernel/archive/rockchip64-6.18/board-odroidm2-support-for-vu8s-panel.patch
Description
This adds support for Odroid Vu8S 8inch MIPI LCD panel. Driver and DT is ported from Hardkernel 5.10 kernel. It is well tested over longer time period. Touchscreen is tested first with evtest, then on GNOME and KDE. Night light works well on KDE, but it does not work on GNOME because of known problem in Mutter.
Documentation summary
Use
armbian-configto enable overlayodroidm2-display-vu8sor add it directly in /boot/armbianEnv.txt (overlays=odroidm2-display-vu8s). HDMI and Vu8S cannot be used at the same time, so if you want to use HDMI port again, remove this overlay and reboot.Checklist:
Summary by CodeRabbit