[PATCH v3 0/9] Verisilicon DC8200 driver (and adaption to TH1520)

Icenowy Zheng posted 9 patches 1 week ago
There is a newer version of this series
.mailmap                                      |   4 +
.../display/bridge/thead,th1520-dw-hdmi.yaml  | 120 +++++++
.../bindings/display/verisilicon,dc.yaml      | 146 ++++++++
.../devicetree/bindings/vendor-prefixes.yaml  |   2 +
MAINTAINERS                                   |   8 +
.../boot/dts/thead/th1520-lichee-pi-4a.dts    |  25 ++
arch/riscv/boot/dts/thead/th1520.dtsi         |  70 ++++
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           |  15 +
drivers/gpu/drm/verisilicon/Makefile          |   5 +
drivers/gpu/drm/verisilicon/vs_bridge.c       | 330 ++++++++++++++++++
drivers/gpu/drm/verisilicon/vs_bridge.h       |  40 +++
drivers/gpu/drm/verisilicon/vs_bridge_regs.h  |  54 +++
drivers/gpu/drm/verisilicon/vs_crtc.c         | 217 ++++++++++++
drivers/gpu/drm/verisilicon/vs_crtc.h         |  29 ++
drivers/gpu/drm/verisilicon/vs_crtc_regs.h    |  60 ++++
drivers/gpu/drm/verisilicon/vs_dc.c           | 205 +++++++++++
drivers/gpu/drm/verisilicon/vs_dc.h           |  39 +++
drivers/gpu/drm/verisilicon/vs_dc_top_regs.h  |  27 ++
drivers/gpu/drm/verisilicon/vs_drm.c          | 177 ++++++++++
drivers/gpu/drm/verisilicon/vs_drm.h          |  29 ++
drivers/gpu/drm/verisilicon/vs_hwdb.c         | 150 ++++++++
drivers/gpu/drm/verisilicon/vs_hwdb.h         |  29 ++
drivers/gpu/drm/verisilicon/vs_plane.c        | 102 ++++++
drivers/gpu/drm/verisilicon/vs_plane.h        |  68 ++++
.../gpu/drm/verisilicon/vs_primary_plane.c    | 157 +++++++++
.../drm/verisilicon/vs_primary_plane_regs.h   |  53 +++
31 files changed, 2348 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
[PATCH v3 0/9] Verisilicon DC8200 driver (and adaption to TH1520)
Posted by Icenowy Zheng 1 week ago
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).

Revision v3 bump is part of my work for ISCAS, so the patches changed
are added with SoB from my ISCAS mailbox, and a patch modifying mailmap
is added.

Because of gaining knowledge about a chip reusing the whole DC RTL of
another chip (thus the same identification registers) without
re-generating, I decided to add SoC-specific compatible string in v3.

Icenowy Zheng (9):
  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
  MAINTAINERS: assign myself as maintainer for verisilicon DC driver
  mailmap: map all Icenowy Zheng's mail addresses

 .mailmap                                      |   4 +
 .../display/bridge/thead,th1520-dw-hdmi.yaml  | 120 +++++++
 .../bindings/display/verisilicon,dc.yaml      | 146 ++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   8 +
 .../boot/dts/thead/th1520-lichee-pi-4a.dts    |  25 ++
 arch/riscv/boot/dts/thead/th1520.dtsi         |  70 ++++
 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           |  15 +
 drivers/gpu/drm/verisilicon/Makefile          |   5 +
 drivers/gpu/drm/verisilicon/vs_bridge.c       | 330 ++++++++++++++++++
 drivers/gpu/drm/verisilicon/vs_bridge.h       |  40 +++
 drivers/gpu/drm/verisilicon/vs_bridge_regs.h  |  54 +++
 drivers/gpu/drm/verisilicon/vs_crtc.c         | 217 ++++++++++++
 drivers/gpu/drm/verisilicon/vs_crtc.h         |  29 ++
 drivers/gpu/drm/verisilicon/vs_crtc_regs.h    |  60 ++++
 drivers/gpu/drm/verisilicon/vs_dc.c           | 205 +++++++++++
 drivers/gpu/drm/verisilicon/vs_dc.h           |  39 +++
 drivers/gpu/drm/verisilicon/vs_dc_top_regs.h  |  27 ++
 drivers/gpu/drm/verisilicon/vs_drm.c          | 177 ++++++++++
 drivers/gpu/drm/verisilicon/vs_drm.h          |  29 ++
 drivers/gpu/drm/verisilicon/vs_hwdb.c         | 150 ++++++++
 drivers/gpu/drm/verisilicon/vs_hwdb.h         |  29 ++
 drivers/gpu/drm/verisilicon/vs_plane.c        | 102 ++++++
 drivers/gpu/drm/verisilicon/vs_plane.h        |  68 ++++
 .../gpu/drm/verisilicon/vs_primary_plane.c    | 157 +++++++++
 .../drm/verisilicon/vs_primary_plane_regs.h   |  53 +++
 31 files changed, 2348 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

-- 
2.52.0
Re: [PATCH v3 0/9] Verisilicon DC8200 driver (and adaption to TH1520)
Posted by Krzysztof Kozlowski 1 week ago
On 24/11/2025 11:52, Icenowy Zheng wrote:
> 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.


That's a v3, so please kindly always write changelog.

Best regards,
Krzysztof
Re: [PATCH v3 0/9] Verisilicon DC8200 driver (and adaption to TH1520)
Posted by Icenowy Zheng 1 week ago
在 2025-11-24星期一的 11:57 +0100,Krzysztof Kozlowski写道:
> On 24/11/2025 11:52, Icenowy Zheng wrote:
> > 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.
> 
> 
> That's a v3, so please kindly always write changelog.

Well I list changes in all individual commits.

Should I merge them to the cover letter the next time?

> 
> Best regards,
> Krzysztof
Re: [PATCH v3 0/9] Verisilicon DC8200 driver (and adaption to TH1520)
Posted by Krzysztof Kozlowski 1 week ago
On 24/11/2025 16:23, Icenowy Zheng wrote:
> 在 2025-11-24星期一的 11:57 +0100,Krzysztof Kozlowski写道:
>> On 24/11/2025 11:52, Icenowy Zheng wrote:
>>> 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.
>>
>>
>> That's a v3, so please kindly always write changelog.
> 
> Well I list changes in all individual commits.
> 
> Should I merge them to the cover letter the next time?

No, it's perfectly fine, I don't know why I did not see them. Sorry for
the noise.

Best regards,
Krzysztof