| Message ID | 20260904213329.3910099-1-barzin221@gmail.com (mailing list archive) |
|---|---|
| Headers |
Return-Path: <linux-sunxi+bounces-25601-sunxi=pue.re@lists.linux.dev>
X-Original-To: noreply@patchwork.local
Delivered-To: noreply@patchwork.local
Received: from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])
by mxe881.netcup.net (Postfix) with ESMTPS id 47C361C02B2
for <noreply@patchwork.local>; Fri, 4 Sep 2026 23:33:39 +0200 (CEST)
Authentication-Results: mxe881;
dkim=pass header.d=gmail.com;
spf=pass (sender IP is 172.105.105.114)
smtp.mailfrom=linux-sunxi+bounces-25601-noreply=patchwork.local@lists.linux.dev
smtp.helo=tor.lore.kernel.org
Received-SPF: pass (mxe881: domain of lists.linux.dev designates
172.105.105.114 as permitted sender) client-ip=172.105.105.114;
envelope-from=linux-sunxi+bounces-25601-noreply=patchwork.local@lists.linux.dev;
helo=tor.lore.kernel.org;
Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org
[100.90.174.1])
by tor.lore.kernel.org (Postfix) with ESMTP id 9002629D0C
for <noreply@patchwork.local>; Fri, 4 Sep 2026 21:33:37 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by smtp.subspace.kernel.org (Postfix) with ESMTP id 2AFC03D47C8;
Fri, 4 Sep 2026 21:33:35 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b="C+venESV"
X-Original-To: linux-sunxi@lists.linux.dev
Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com
[209.85.160.179])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by smtp.subspace.kernel.org (Postfix) with ESMTPS id A63363876B8
for <linux-sunxi@lists.linux.dev>; Fri, 4 Sep 2026 21:33:33 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
arc=none smtp.client-ip=209.85.160.179
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
t=1788557615; cv=none;
b=R0muEBD3uaCO39vxHiAJzsrUN4mfjtSQ3YBaZONahB+ntBww1khoFzFP0QbF5AJTr7dyfjC2UKDOOn4t+wQfPNiBDeIclskaLKRo1urOGJsk50RVp6tN0ZUJCT0Mf6Qp953jRbN65gqscwAHqm4vSpaWLLSnCecBOUEP1v01dBw=
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
s=arc-20240116; t=1788557615; c=relaxed/simple;
bh=anGfUtiHyTDnvv5CR6dVKodyZYcTvafQEd9tT4rOXZE=;
h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;
b=nR79kxaQw649UDZsGJWAtjY7GG3s+gVZxPUH2MaBjo4+joBlmd2tqwf3wgY+OnuGHwDd0I+XE6YNNuFfZkzW1QapqZVcqn4gxIvq8uZumLF0bZ3Qg7xmWq3eHCkt9xzbVbYPjL2mX2fczx9awzWG7Wawhi4Al7K2wkLC6KAbxkM=
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
dmarc=pass (p=none dis=none) header.from=gmail.com;
spf=pass smtp.mailfrom=gmail.com;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b=C+venESV; arc=none smtp.client-ip=209.85.160.179
Authentication-Results: smtp.subspace.kernel.org;
dmarc=pass (p=none dis=none) header.from=gmail.com
Authentication-Results: smtp.subspace.kernel.org;
spf=pass smtp.mailfrom=gmail.com
Received: by mail-qt1-f179.google.com with SMTP id
d75a77b69052e-51bfe810293so14920131cf.1
for <linux-sunxi@lists.linux.dev>;
Fri, 04 Sep 2026 14:33:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20251104; t=1788557612; x=1789162412;
darn=lists.linux.dev;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:from:to:cc:subject:date:message-id:reply-to:content-type;
bh=Z5/Xia7rxdpyQybCgSGxs4a0QCDbKXZF9niLTTnJnSM=;
b=C+venESVbsd/h8gIZv0qcT316tthEbb39WS6ZdtmZ8xPomOZohWGr+AGoyudN+GP8Y
cpcvGc0uQtVAl8dJNyGgcCBZp1H9qhShkGl9yybrcDH1+Byfx3OnHVxqAqklZl2NlrtE
FKike/6u4LbT83Mj+Giwq2UEIaqrb4iEmSI3bk2kF9as8lSxp2Owe1b+NOmQlgW1QwvH
nQJtpHuqRjMoctg6wXHu2yOZCSs+a7yHm4xrsRPRk5W0B3shdIbAV91Er2NQFBrapcNm
GiBYZGmSNdppr3kUMAzophRovOfFjucUqYbvH/k1RjSVdVK2j2TRBNSUi58wHOCEh0WS
vgGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20251104; t=1788557612; x=1789162412;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to:content-type;
bh=Z5/Xia7rxdpyQybCgSGxs4a0QCDbKXZF9niLTTnJnSM=;
b=crF9Blyy93FBkIk2jxTnbd8Yo102ui2vEgOlpWCOgW+9KSl4ZqlMugHWfk27SFdIaI
vVWFGI+J3AT1DuH7kw9AROvR0PIrG6D4oNkSO/vX9djhdnOH1NPYEkHAgrZtURKS1RbV
Rp/csUFv5PTKFVZGpXe8dGa3eQaAryoc8dh3fHXKeoxYvcbkz5AM8m3UmcdWfOR7lTuC
4LpYTUq7e942d/ck3xXzK5aOh+JomJlN1E/RkcKeJv3h8PJFuTvQ8Djj583/2Rkz72kA
rzHRP2NqbmSA7BP8mkFdC2oR0b1F+pQVVABQ9ZTUot4F5VGIXHtdmuzuqdvwuDkQg2oY
VCfQ==
X-Forwarded-Encrypted: i=1;
AKwUvBxMYEr7W1fWsT7tiPyL+NQxEtN1tgNs9KdCAW8WBKkglEXIs3NXLjd0NEkIRH1Js7FZR/FOwUuJoKcOJQ==@lists.linux.dev
X-Gm-Message-State: AFuF++lVBBdaR24RDIGfDLMnNtbdRs/rbpdecgMnuJlEejVnDBFdnelX
QLptFtT/8ZYrkcTGIBOlYKWL4fMGLwDwJntu9YBefvbVI2ZJefqUdZQ=
X-Gm-Gg: AYBFou3C1ucw9dvqZVAKtFz4b9cSAf2bQaZQ8krWx2SD7raaXgQiD7FJu0GamcLQbXc
WqUE2srqUNRymdLDTpp13Y6K2oPhFGEyRGxgQK+H5h66Q4LhlPTzfcBZIf38kvHUoReQXfhx4sG
YgFkTs6InAZryjpBBhQIme+PHiDh8pIKvORwrDMJJASTI3+8wgK27d5dyq0BVbYCGMhB2pbNYzs
kHl+nOK4JmV7tmoHXrbS/W5bDDBQ5CWqbXijuG1yaW7HUGqK/YplBcYA+ppMJjkQutjNJtUf78Z
kjF7uKSDL5yv5YaBd5G065nm759dhoJNQngAl2Vcusvz1brfhZbulRu8YyF03826ac9ixCZEx7M
jMPCNoIBlWiH7YjL7bsn4KXOhv4AuULJEzuYBeYaveoBnD3wb8LHukEQgXBYZFGFdWfubEi4FB2
vmN3M9rBcrlaPkBd2ANGeTxgLjQYWOOs0vfHGcrYnzfwrzauf3GzxyaP02xyf5Xwq/sDD7YH/99
1TZU6WabFZof8A=
X-Received: by 2002:a05:622a:1493:b0:52e:12e6:6d7b with SMTP id
d75a77b69052e-530549f8c81mr96143391cf.39.1788557612371;
Fri, 04 Sep 2026 14:33:32 -0700 (PDT)
Received: from X570.phub.net.cable.rogers.com
([2607:fea8:744f:d200:9441:f2ae:56aa:8a81])
by smtp.gmail.com with ESMTPSA id
d75a77b69052e-53054227a0esm29646561cf.29.2026.09.04.14.33.30
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Fri, 04 Sep 2026 14:33:31 -0700 (PDT)
From: Barzin Lotfabadi <barzin221@gmail.com>
To: Chen-Yu Tsai <wens@kernel.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Samuel Holland <samuel@sholland.org>,
Maxime Ripard <mripard@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
David Airlie <airlied@gmail.com>,
Simona Vetter <simona@ffwll.ch>
Cc: Ryan Walklin <ryan@testtoast.com>,
dri-devel@lists.freedesktop.org,
linux-sunxi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH 0/2] arm64: dts: allwinner: h616: add HDMI device tree nodes
Date: Fri, 4 Sep 2026 17:33:27 -0400
Message-ID: <20260904213329.3910099-1-barzin221@gmail.com>
X-Mailer: git-send-email 2.55.0
Precedence: bulk
X-Mailing-List: linux-sunxi@lists.linux.dev
List-Id: <linux-sunxi.lists.linux.dev>
List-Subscribe: <mailto:linux-sunxi+subscribe@lists.linux.dev>
List-Unsubscribe: <mailto:linux-sunxi+unsubscribe@lists.linux.dev>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd-worker-8404
X-Spamd-Result: default: False [0.34 / 15.00];
BAYES_HAM(-5.50)[100.00%];
RBL_SENDERSCORE(2.00)[172.105.105.114:from];
SUSPICIOUS_RECIPS(1.50)[];
DMARC_POLICY_SOFTFAIL(1.00)[gmail.com : SPF not aligned (relaxed),
No valid DKIM,none];
MID_CONTAINS_FROM(1.00)[];
R_MISSING_CHARSET(0.50)[];
MAILLIST(-0.15)[generic];
BAD_REP_POLICIES(0.10)[];
MIME_GOOD(-0.10)[text/plain];
HAS_LIST_UNSUB(-0.01)[];
TAGGED_RCPT(0.00)[dt];
PRECEDENCE_BULK(0.00)[];
RCPT_COUNT_TWELVE(0.00)[15];
FROM_HAS_DN(0.00)[];
FORGED_RECIPIENTS_MAILLIST(0.00)[];
FORGED_SENDER_MAILLIST(0.00)[];
DBL_BLOCKED_OPENRESOLVER(0.00)[tor.lore.kernel.org:rdns,tor.lore.kernel.org:helo];
RCVD_VIA_SMTP_AUTH(0.00)[];
FROM_NEQ_ENVFROM(0.00)[barzin221@gmail.com,linux-sunxi@lists.linux.dev];
ARC_ALLOW(0.00)[subspace.kernel.org:s=arc-20240116:i=1];
FREEMAIL_FROM(0.00)[gmail.com];
R_SPF_ALLOW(0.00)[+ip4:172.105.105.114];
TO_DN_SOME(0.00)[];
RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[209.85.160.179:received];
RCVD_COUNT_FIVE(0.00)[6];
FREEMAIL_TO(0.00)[kernel.org,gmail.com,sholland.org,ffwll.ch];
MIME_TRACE(0.00)[0:+];
TAGGED_FROM(0.00)[bounces-25601-noreply=patchwork.local];
RECEIVED_SPAMHAUS_PBL(0.00)[2607:fea8:744f:d200:9441:f2ae:56aa:8a81:received];
ASN(0.00)[asn:63949, ipnet:172.105.96.0/20, country:SG];
RCVD_TLS_LAST(0.00)[];
RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[172.105.105.114:from]
X-Rspamd-Queue-Id: 47C361C02B2
X-MORS-Enabled: yes
X-MORS-DOMAIN: patchwork.local
X-MORS-HOSTING: hosting172546
X-MORS-USER: hosting172546
X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?=
|
| Series |
arm64: dts: allwinner: h616: add HDMI device tree nodes
|
|
Message
Barzin Lotfabadi
Sept. 4, 2026, 9:33 p.m. UTC
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. 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(+)
Comments
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@siol.net/ 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(+) > >