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/[email protected]/ 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(+) > >
