Re: [PATCH 0/2] arm64: dts: allwinner: h616: add HDMI device tree nodes

From: Jernej Škrabec

Date: Fri Sep 04 2026 - 23:18:08 EST


Dne petek, 4. september 2026 ob 23:33:27 Srednjeevropski poletni čas je Barzin Lotfabadi napisal(a):
> Hi all,
>
> These two patches add the device tree nodes needed for HDMI output on the
> Allwinner H616 family. Tested on an Orange Pi Zero 3 (H618, 4GB), which
> drives a 1920x1080@60Hz desktop with these applied.
>
> Mainline already has DE33 mixer support in the sun4i driver, but there are
> no display nodes at all in sun50i-h616.dtsi, so nothing probes. Ryan
> Walklin's "arm64: dts: allwinner: h616: add LCD timing controller and
> display engine support" series adds the display engine, bus, mixer and TCON
> nodes, but states that HDMI output is not provided. These patches are the
> missing HDMI half.
>
> Every register address, clock index and reset line was read out of the
> vendor device tree shipped with the board and translated to the mainline
> dt-bindings macros; the clock and reset numbering was verified identical
> between the vendor and mainline CCU headers before substitution.
>
> Two things I would appreciate guidance on:
>
> 1. Patch 1 currently also adds the display engine, bus, mixer and TCON
> nodes, because Ryan's series has not landed and the HDMI nodes need
> something to attach to. If his series is merged first, I am happy to
> respin this as an HDMI-only delta on top of it. That is probably the
> right shape; I did not want to post a series that applies to nothing in
> the meantime.
>
> 2. These nodes alone are not sufficient for a picture. Two driver changes
> are also needed: an H616 variant in sun8i_hdmi_phy.c (only
> a83t/h3/r40/a64/h6 exist today), and setting the TCON pad select bit in
> sun4i_tcon.c. Both exist in the Armbian sunxi-6.12 tree, authored by
> The-going. I have deliberately not included them here, because I cannot
> provide a Signed-off-by on another developer's work. If someone in a
> position to carry those forward would like to, I am happy to help test.
> Without them these nodes probe but produce no output.
>
> checkpatch is clean apart from one 103-column warning on a remote-endpoint
> line in patch 1; the identical construct at the same width already exists in
> sun50i-h6.dtsi:183, so I left it matching the surrounding convention.
>
> One implementation note worth recording, since it cost a boot cycle: the
> DE33 mixer's three register regions must be named "layers", "top" and
> "display". The driver fetches the latter two by name, so a wrong name here
> surfaces as "invalid resource (null)" and a -EINVAL bind failure several
> layers away from the cause.
>
> Result on the board, with the two driver patches also applied:
>
> sun4i-drm display-engine: bound 1100000.mixer (ops sun8i_mixer_ops)
> sun4i-drm display-engine: bound 6510000.tcon-top (ops sun8i_tcon_top_ops)
> sun4i-drm display-engine: bound 6515000.lcd-controller (ops sun4i_tcon_ops)
> sun8i-dw-hdmi 6000000.hdmi: Detected HDMI TX controller v2.12a with HDCP
> sun4i-drm display-engine: bound 6000000.hdmi (ops sun8i_dw_hdmi_ops)
> [drm] Initialized sun4i-drm 1.0.0 for display-engine on minor 0
>
> with the connector reading "connected", EDID read correctly from the sink,
> and 1920x1080 among the reported modes.
>
> Full boot logs, the decompiled vendor device tree the nodes were derived
> from, and a photo of the running desktop are at:
>
> https://github.com/BarzinL/h616-hdmi-mainline
>
> Based on mainline a500db7819c5.

NACK.

This uses old, improper description of HW. That's why it was never
merged. Two mixers would never work with it. Also, TCON_TOP
isn't directly compatible with H6.

Here is newer work:
https://lore.kernel.org/linux-sunxi/20260509190015.79086-1-jernej.skrabec@xxxxxxxx/

Best regards,
Jernej

>
> Barzin Lotfabadi (2):
> arm64: dts: allwinner: h616: add display engine and HDMI nodes
> arm64: dts: allwinner: orangepi-zero3: enable HDMI output
>
> arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 191 +++++++++++++++++++++
> .../dts/allwinner/sun50i-h618-orangepi-zero3.dts | 25 +++
> 2 files changed, 216 insertions(+)
>
>