Skip to content

gs201 felix: display (DPU/DECON/DSIM) bring-up #5

@ccrutchf

Description

@ccrutchf

Goal

Get the panel(s) lit on Pixel Fold (felix), so kernel printk and console are visible without requiring UART. Chosen as the next major bring-up effort over CS40L26 haptic and USB-gadget CDC.

Why display over haptic / USB-gadget

  • Display is on a fully independent hardware path from USB-C (DPU → DSIM → DSI → panels, dedicated cmu_dpu clocks, dedicated pinctrl banks). UART stays continuously available throughout the entire bring-up — every probe failure, every crash, we see live.
  • USB-gadget would have a chicken-and-egg problem: the bring-up itself has the cable conflict (UART + USB share the USB-C port), and the thing we'd be building is the only channel that would replace UART.
  • Bigger payoff than haptic. Once display works, kernel boot is visible directly, login prompt is on the panel, and a basic graphical desktop is plausible later. Comparable effort to haptic but with much higher value per unit of work.

Hardware

felix is a foldable with two command-mode panels:

  • samsung-ana6707-f10 — inner foldable, 1840×2208, product id 0x8408
  • ea8182-f10 — cover, 1080×2092, product id 0xd18018

Command-mode panels need DECON to drive frame triggers; simple-framebuffer will not work (already proven on AOSP).

Mainline gap

  • samsung-dsim bridge: present in mainline, may need a gs201 compat
  • DECON for gs101/gs201: not in mainline. Closest: exynos7-decon, exynos5433-decon
  • AOSP reference: private/google-modules/display/ (DPU CAL cal_9855 for gs201, panel drivers under panels/, samsung/cal_common helpers)

Milestone plan

Each step testable with UART:

  1. DT skeleton. Add cmu_dpu clocks (or stub like cmu_peric0), DECON/DSIM/panel nodes. Win: kernel boots without crashing on new DT.
  2. DECON probe stub. Driver probes, can read a known register, doesn't drive hw.
  3. DSIM probe via mainline samsung-dsim. Add gs201 compat if needed. Win: read panel product ID via DSI MIPI (expect 0x8408).
  4. Panel driver port for samsung-ana6707-f10 from private/google-modules/display/panels/ — long init command sequence.
  5. DECON scan-out one window to DSIM with a framebuffer.
  6. fbcon enabled → kernel printk visible on panel.

Tracker

This is an epic. Sub-issues per milestone will be filed as work begins.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions