From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F2111A9F9B; Mon, 20 Apr 2026 01:13:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776647596; cv=none; b=lbJPy71vLw+4Dmn7xlbt/E0SMoYQaM7afR3sijSznye8tMOPKBY+7uU7/vDTGTNX2dGZLqQo2wvrMGeoVqagSHJTNOO1UuPeUIclF2UQlPh39ukblcnpxRpeYX+NaHWTCESNF6Btkj8C5a/jrCVT45JGW/AJ2bl7tCLLTbONlaE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776647596; c=relaxed/simple; bh=xqTJm1fnWUxobvqEOV7IoMV26zSaSXSztSyilAClzCA=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=B8F4WHbebzJts1iE5ZZYCmPFWjzpVoPlUOulMBOcObZEQn1s4rtBcWvhmtKzTKlkH6lw0tQRG3YYDdBp45vlVocNsy8lDjGsssqIIDnyS8czlOTTJZigj8mjRaDSg905sWltmbTfSbWJfHq6Af32x07Z1QOXQWzQfhq82U9ZQiQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.99) (envelope-from ) id 1wEdC9-000000002Vw-0ur0; Mon, 20 Apr 2026 01:13:01 +0000 Date: Mon, 20 Apr 2026 02:12:56 +0100 From: Daniel Golle To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno , Jaroslav Kysela , Takashi Iwai , Arnd Bergmann , Cyril Chao , Daniel Golle , =?iso-8859-1?Q?N=EDcolas_F=2E_R=2E_A=2E?= Prado , Kuninori Morimoto , Eugen Hristev , linux-sound@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH v2 0/9] ASoC: mediatek: mt2701: HDMI audio support Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline This series wires up on-chip HDMI audio on MT2701 and MT7623N, from the DRM bridge down through the AFE into a small machine driver that binds the AFE HDMI BE to the HDMI TX codec already exposed by the mediatek-drm-hdmi driver. Bindings, DT and a BananaPi R2 board node are included. In order to survive vblank or late hotplug of the monitor, the fix submitted separately [1] is required as well. Everything here was developed for and tested on a BananaPi R2 (MT7623N), which turns ten years old this year -- a nice occasion to finally land HDMI audio for a SoC which was truly ahead of its time. [1]: https://patchwork.kernel.org/project/linux-mediatek/patch/a3e22cbae528c9a38d854a586d1736b860998d41.1776265222.git.daniel@makrotopia.org/ Changes since v1: * Restrict the four HDMI clocks to mediatek,mt2701-audio only using an allOf/if/then conditional; MT7622 is capped at 34 clocks (Krzysztof Kozlowski) * Fix subject prefix to use schema filename (Krzysztof Kozlowski) * Rewrite title and description to describe hardware, not driver (Krzysztof Kozlowski) * Clarify in commit message why this is a separate binding from mediatek,mt2701-audio (Krzysztof Kozlowski) * use named masks and explicitly set BIT_WIDTH_16 when programming AFE_HDMI_OUT_CON0 channel count (Mark Brown) * add AUDIO_TOP_CON3, AFE_HDMI_OUT_CON0, AFE_HDMI_CONN0, AFE_8CH_I2S_OUT_CON to suspend/resume backup list (Mark Brown) Daniel Golle (9): ASoC: dt-bindings: mt2701-afe-pcm: add HDMI audio path clocks ASoC: dt-bindings: mediatek,mt2701-hdmi-audio: add HDMI audio output binding ASoC: mediatek: mt2701: add AFE HDMI register definitions ASoC: mediatek: mt2701: add optional HDMI audio path clocks ASoC: mediatek: mt2701: add HDMI audio memif, FE and BE DAIs ASoC: mediatek: mt2701: add machine driver for on-chip HDMI codec ARM: dts: mediatek: mt2701: wire HDMI audio path clocks into AFE ARM: dts: mediatek: mt7623: wire HDMI audio path clocks into AFE ARM: dts: mediatek: mt7623n-bananapi-bpi-r2: add HDMI audio machine node .../bindings/sound/mediatek,mt2701-audio.yaml | 23 ++ .../sound/mediatek,mt2701-hdmi-audio.yaml | 48 +++ arch/arm/boot/dts/mediatek/mt2701.dtsi | 21 +- arch/arm/boot/dts/mediatek/mt7623.dtsi | 21 +- .../dts/mediatek/mt7623n-bananapi-bpi-r2.dts | 7 + sound/soc/mediatek/Kconfig | 10 + sound/soc/mediatek/mt2701/Makefile | 1 + .../mediatek/mt2701/mt2701-afe-clock-ctrl.c | 22 ++ sound/soc/mediatek/mt2701/mt2701-afe-common.h | 6 + sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 293 +++++++++++++++++- sound/soc/mediatek/mt2701/mt2701-hdmi.c | 114 +++++++ sound/soc/mediatek/mt2701/mt2701-reg.h | 35 +++ 12 files changed, 590 insertions(+), 11 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt2701-hdmi-audio.yaml create mode 100644 sound/soc/mediatek/mt2701/mt2701-hdmi.c -- 2.53.0