]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: mediatek: mt2701: add AFE HDMI register definitions
authorDaniel Golle <daniel@makrotopia.org>
Fri, 24 Apr 2026 02:49:06 +0000 (03:49 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 5 May 2026 01:52:04 +0000 (10:52 +0900)
Add register offsets and bit defines for the MT2701/MT7623N AFE
HDMI audio output path: the HDMI BCK divider in AUDIO_TOP_CON3,
the HDMI output memif control and descriptor registers, the 8-bit
AFE_HDMI_CONN0 interconnect, and the AFE_8CH_I2S_OUT_CON engine
that drives the HDMI TX serial link. These are a prerequisite for
adding an HDMI playback path to the mt2701 AFE driver and have no
behavioural effect on their own.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/2c2a2e3e5d01da4a130160f5d5ffbd2a3808fe12.1776998727.git.daniel@makrotopia.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/mt2701/mt2701-reg.h

index c84d14cdd7ae8c5671e0daab8d368f01fffa44da..ca914df02c960ea2e8b3fee25991d91dab83d090 100644 (file)
 #define _MT2701_REG_H_
 
 #define AUDIO_TOP_CON0 0x0000
+#define AUDIO_TOP_CON3 0x000c
 #define AUDIO_TOP_CON4 0x0010
 #define AUDIO_TOP_CON5 0x0014
 #define AFE_DAIBT_CON0 0x001c
 #define AFE_MRGIF_CON 0x003c
+#define AFE_HDMI_OUT_CON0 0x0370
+#define AFE_HDMI_OUT_BASE 0x0374
+#define AFE_HDMI_OUT_CUR  0x0378
+#define AFE_HDMI_OUT_END  0x037c
+#define AFE_HDMI_CONN0    0x0390
+#define AFE_8CH_I2S_OUT_CON 0x0394
 #define ASMI_TIMING_CON1 0x0100
 #define ASMO_TIMING_CON1 0x0104
 #define PWR1_ASM_CON1 0x0108
 #define AFE_MEMIF_PBUF_SIZE_DLM_BYTE_MASK      (0x3 << 12)
 #define AFE_MEMIF_PBUF_SIZE_DLM_32BYTES                (0x1 << 12)
 
+/* AUDIO_TOP_CON3 (0x000c) -- HDMI BCK divider */
+#define AUDIO_TOP_CON3_HDMI_BCK_DIV_MASK       (0x3f << 8)
+#define AUDIO_TOP_CON3_HDMI_BCK_DIV(x)         (((x) & 0x3f) << 8)
+
+/* AFE_HDMI_OUT_CON0 (0x0370) */
+#define AFE_HDMI_OUT_CON0_OUT_ON               (0x1 << 0)
+#define AFE_HDMI_OUT_CON0_BIT_WIDTH_MASK       (0x1 << 1)
+#define AFE_HDMI_OUT_CON0_BIT_WIDTH_16         (0x0 << 1)
+#define AFE_HDMI_OUT_CON0_BIT_WIDTH_32         (0x1 << 1)
+#define AFE_HDMI_OUT_CON0_CH_NUM_MASK          (0xf << 4)
+#define AFE_HDMI_OUT_CON0_CH_NUM(x)            (((x) & 0xf) << 4)
+
+/* AFE_8CH_I2S_OUT_CON (0x0394) -- on-SoC 8-channel I2S that feeds HDMI TX */
+#define AFE_8CH_I2S_OUT_CON_EN                 (0x1 << 0)
+#define AFE_8CH_I2S_OUT_CON_BCK_INV            (0x1 << 1)
+#define AFE_8CH_I2S_OUT_CON_LRCK_INV           (0x1 << 2)
+#define AFE_8CH_I2S_OUT_CON_I2S_DELAY          (0x1 << 3)
+#define AFE_8CH_I2S_OUT_CON_WLEN_MASK          (0x3 << 4)
+#define AFE_8CH_I2S_OUT_CON_WLEN_16BIT         (0x1 << 4)
+#define AFE_8CH_I2S_OUT_CON_WLEN_24BIT         (0x2 << 4)
+#define AFE_8CH_I2S_OUT_CON_WLEN_32BIT         (0x3 << 4)
+
 /* I2S in/out register bit control */
 #define ASYS_I2S_CON_FS                        (0x1f << 8)
 #define ASYS_I2S_CON_FS_SET(x)         ((x) << 8)