Re: [PATCH v7 0/8] Verisilicon DC8200 driver (and adaption to TH1520)

Icenowy Zheng
2026-02-05T09:32:54Z

在 2026-02-05星期四的 10:30 +0100，Thomas Zimmermann写道：
> Hi,
>
> patches 1 to 5 have been merged into drm-misc-next. In patch 3, I
> replaced COMPILER_TEST with COMPILE_TEST in the Kconfig file.

Ah, Thanks for correcting this.

Thanks,
Icenowy

>
> Best regards
> Thomas
>
> Am 29.01.26 um 03:39 schrieb Icenowy Zheng:
> > This patchset tries to add a driver for Verisilicon DC8200 driver,
> > and
> > demonstrates the driver on T-Head TH1520 with its HDMI output.
> >
> > This display controller IP is used on StarFive JH7110 too, but as
> > the
> > HDMI controller used there isn't as common as the DesignWare one, I
> > choose to use TH1520 in this patchset.
> >
> > The DC driver is written with other DC-series (mainly DC8000, which
> > is
> > known to be used on Eswin EIC7700 SoC) display controllers in mind,
> > and
> > uses the identification registers available on all Vivante branded
> > IPs.
> > A known exception is DCNano display controller, which is unlikely
> > to be
> > supported by this driver because of totally different register map
> > and
> > no known identification registers. (P.S. the in-tree loongson DRM
> > driver
> > seems to be for some DCNano instances based on the register map.)
> >
> > The HDMI controller seems to come with some common PHY by Synopsys,
> > the
> > DesignWare HDMI TX 2.0 PHY. By searching a few register names from
> > the
> > BSP driver of that PHY, that PHY seems to be used by a in-tree dw-
> > hdmi
> > glue, rcar_dw_hdmi -- an updated downstream version of rcar_dw_hdmi
> > contains all 6 registers set here in the th1520-dw-hdmi driver.
> > Some
> > more suprising thing is that RK3288 uses the same PHY too, but the
> > in-tree dw_hdmi-rockchip driver writes the configuration data array
> > in a
> > weird way to reuse the HDMI 3D TX PHY configuring function. It
> > might be
> > valuable to add common configuring function and configuration data
> > definition for this HDMI 2.0 PHY too, but the current driver in
> > this
> > patchset simply duplicated most configuration logic from
> > rcar_dw_hdmi
> > driver (but with 3 extra configuration registers configured, which
> > is
> > done by their downstream kernel).
> >
> > This revision contains only little code change -- only a Kconfig
> > select
> > is added. The other purpose is to collect Thomas Zimmermann's tags
> > and
> > squash MAINTAINERS change to real driver per his suggestion.
> >
> > Icenowy Zheng (8):
> >    dt-bindings: vendor-prefixes: add verisilicon
> >    dt-bindings: display: add verisilicon,dc
> >    drm: verisilicon: add a driver for Verisilicon display
> > controllers
> >    dt-bindings: display/bridge: add binding for TH1520 HDMI
> > controller
> >    drm/bridge: add a driver for T-Head TH1520 HDMI controller
> >    riscv: dts: thead: add DPU and HDMI device tree nodes
> >    riscv: dts: thead: lichee-pi-4a: enable HDMI
> >    mailmap: map all Icenowy Zheng's mail addresses
> >
> >   .mailmap                                      |   4 +
> >   .../display/bridge/thead,th1520-dw-hdmi.yaml  | 120 ++++++
> >   .../bindings/display/verisilicon,dc.yaml      | 122 ++++++
> >   .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
> >   MAINTAINERS                                   |   8 +
> >   .../boot/dts/thead/th1520-lichee-pi-4a.dts    |  25 ++
> >   arch/riscv/boot/dts/thead/th1520.dtsi         |  66 ++++
> >   drivers/gpu/drm/Kconfig                       |   2 +
> >   drivers/gpu/drm/Makefile                      |   1 +
> >   drivers/gpu/drm/bridge/Kconfig                |  10 +
> >   drivers/gpu/drm/bridge/Makefile               |   1 +
> >   drivers/gpu/drm/bridge/th1520-dw-hdmi.c       | 173 ++++++++
> >   drivers/gpu/drm/verisilicon/Kconfig           |  16 +
> >   drivers/gpu/drm/verisilicon/Makefile          |   5 +
> >   drivers/gpu/drm/verisilicon/vs_bridge.c       | 371
> > ++++++++++++++++++
> >   drivers/gpu/drm/verisilicon/vs_bridge.h       |  39 ++
> >   drivers/gpu/drm/verisilicon/vs_bridge_regs.h  |  54 +++
> >   drivers/gpu/drm/verisilicon/vs_crtc.c         | 191 +++++++++
> >   drivers/gpu/drm/verisilicon/vs_crtc.h         |  31 ++
> >   drivers/gpu/drm/verisilicon/vs_crtc_regs.h    |  60 +++
> >   drivers/gpu/drm/verisilicon/vs_dc.c           | 207 ++++++++++
> >   drivers/gpu/drm/verisilicon/vs_dc.h           |  38 ++
> >   drivers/gpu/drm/verisilicon/vs_dc_top_regs.h  |  27 ++
> >   drivers/gpu/drm/verisilicon/vs_drm.c          | 182 +++++++++
> >   drivers/gpu/drm/verisilicon/vs_drm.h          |  28 ++
> >   drivers/gpu/drm/verisilicon/vs_hwdb.c         | 150 +++++++
> >   drivers/gpu/drm/verisilicon/vs_hwdb.h         |  29 ++
> >   drivers/gpu/drm/verisilicon/vs_plane.c        | 124 ++++++
> >   drivers/gpu/drm/verisilicon/vs_plane.h        |  72 ++++
> >   .../gpu/drm/verisilicon/vs_primary_plane.c    | 173 ++++++++
> >   .../drm/verisilicon/vs_primary_plane_regs.h   |  53 +++
> >   31 files changed, 2384 insertions(+)
> >   create mode 100644
> > Documentation/devicetree/bindings/display/bridge/thead,th1520-dw-
> > hdmi.yaml
> >   create mode 100644
> > Documentation/devicetree/bindings/display/verisilicon,dc.yaml
> >   create mode 100644 drivers/gpu/drm/bridge/th1520-dw-hdmi.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/Kconfig
> >   create mode 100644 drivers/gpu/drm/verisilicon/Makefile
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_bridge.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_bridge.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_bridge_regs.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc_regs.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_dc.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_dc.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_dc_top_regs.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_drm.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_drm.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_hwdb.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_hwdb.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_plane.c
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_plane.h
> >   create mode 100644 drivers/gpu/drm/verisilicon/vs_primary_plane.c
> >   create mode 100644
> > drivers/gpu/drm/verisilicon/vs_primary_plane_regs.h
> >