197 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * mt7986-reg.h -- MediaTek 7986 audio driver reg definition4 *5 * Copyright (c) 2023 MediaTek Inc.6 * Authors: Vic Wu <vic.wu@mediatek.com>7 * Maso Huang <maso.huang@mediatek.com>8 */9 10#ifndef _MT7986_REG_H_11#define _MT7986_REG_H_12 13#define AUDIO_TOP_CON2 0x000814#define AUDIO_TOP_CON4 0x001015#define AUDIO_ENGEN_CON0 0x001416#define AFE_IRQ_MCU_EN 0x010017#define AFE_IRQ_MCU_STATUS 0x012018#define AFE_IRQ_MCU_CLR 0x012819#define AFE_IRQ0_MCU_CFG0 0x014020#define AFE_IRQ0_MCU_CFG1 0x014421#define AFE_IRQ1_MCU_CFG0 0x014822#define AFE_IRQ1_MCU_CFG1 0x014c23#define AFE_IRQ2_MCU_CFG0 0x015024#define AFE_IRQ2_MCU_CFG1 0x015425#define ETDM_IN5_CON0 0x13f026#define ETDM_IN5_CON1 0x13f427#define ETDM_IN5_CON2 0x13f828#define ETDM_IN5_CON3 0x13fc29#define ETDM_IN5_CON4 0x140030#define ETDM_OUT5_CON0 0x157031#define ETDM_OUT5_CON4 0x158032#define ETDM_OUT5_CON5 0x158433#define ETDM_4_7_COWORK_CON0 0x15e034#define ETDM_4_7_COWORK_CON1 0x15e435#define AFE_CONN018_1 0x1b4436#define AFE_CONN018_4 0x1b5037#define AFE_CONN019_1 0x1b6438#define AFE_CONN019_4 0x1b7039#define AFE_CONN124_1 0x288440#define AFE_CONN124_4 0x289041#define AFE_CONN125_1 0x28a442#define AFE_CONN125_4 0x28b043#define AFE_CONN_RS_0 0x392044#define AFE_CONN_RS_3 0x392c45#define AFE_CONN_16BIT_0 0x396046#define AFE_CONN_16BIT_3 0x396c47#define AFE_CONN_24BIT_0 0x398048#define AFE_CONN_24BIT_3 0x398c49#define AFE_MEMIF_CON0 0x3d9850#define AFE_MEMIF_RD_MON 0x3da051#define AFE_MEMIF_WR_MON 0x3da452#define AFE_DL0_BASE_MSB 0x3e4053#define AFE_DL0_BASE 0x3e4454#define AFE_DL0_CUR_MSB 0x3e4855#define AFE_DL0_CUR 0x3e4c56#define AFE_DL0_END_MSB 0x3e5057#define AFE_DL0_END 0x3e5458#define AFE_DL0_RCH_MON 0x3e5859#define AFE_DL0_LCH_MON 0x3e5c60#define AFE_DL0_CON0 0x3e6061#define AFE_VUL0_BASE_MSB 0x422062#define AFE_VUL0_BASE 0x422463#define AFE_VUL0_CUR_MSB 0x422864#define AFE_VUL0_CUR 0x422c65#define AFE_VUL0_END_MSB 0x423066#define AFE_VUL0_END 0x423467#define AFE_VUL0_CON0 0x423868 69#define AFE_MAX_REGISTER AFE_VUL0_CON070#define AFE_IRQ_STATUS_BITS 0x771#define AFE_IRQ_CNT_SHIFT 072#define AFE_IRQ_CNT_MASK 0xffffff73 74/* AUDIO_TOP_CON2 */75#define CLK_OUT5_PDN BIT(14)76#define CLK_OUT5_PDN_MASK BIT(14)77#define CLK_IN5_PDN BIT(7)78#define CLK_IN5_PDN_MASK BIT(7)79 80/* AUDIO_TOP_CON4 */81#define PDN_APLL_TUNER2 BIT(12)82#define PDN_APLL_TUNER2_MASK BIT(12)83 84/* AUDIO_ENGEN_CON0 */85#define AUD_APLL2_EN BIT(3)86#define AUD_APLL2_EN_MASK BIT(3)87#define AUD_26M_EN BIT(0)88#define AUD_26M_EN_MASK BIT(0)89 90/* AFE_DL0_CON0 */91#define DL0_ON_SFT 2892#define DL0_ON_MASK 0x193#define DL0_ON_MASK_SFT BIT(28)94#define DL0_MINLEN_SFT 2095#define DL0_MINLEN_MASK 0xf96#define DL0_MINLEN_MASK_SFT (0xf << 20)97#define DL0_MODE_SFT 898#define DL0_MODE_MASK 0x1f99#define DL0_MODE_MASK_SFT (0x1f << 8)100#define DL0_PBUF_SIZE_SFT 5101#define DL0_PBUF_SIZE_MASK 0x3102#define DL0_PBUF_SIZE_MASK_SFT (0x3 << 5)103#define DL0_MONO_SFT 4104#define DL0_MONO_MASK 0x1105#define DL0_MONO_MASK_SFT BIT(4)106#define DL0_HALIGN_SFT 2107#define DL0_HALIGN_MASK 0x1108#define DL0_HALIGN_MASK_SFT BIT(2)109#define DL0_HD_MODE_SFT 0110#define DL0_HD_MODE_MASK 0x3111#define DL0_HD_MODE_MASK_SFT (0x3 << 0)112 113/* AFE_VUL0_CON0 */114#define VUL0_ON_SFT 28115#define VUL0_ON_MASK 0x1116#define VUL0_ON_MASK_SFT BIT(28)117#define VUL0_MODE_SFT 8118#define VUL0_MODE_MASK 0x1f119#define VUL0_MODE_MASK_SFT (0x1f << 8)120#define VUL0_MONO_SFT 4121#define VUL0_MONO_MASK 0x1122#define VUL0_MONO_MASK_SFT BIT(4)123#define VUL0_HALIGN_SFT 2124#define VUL0_HALIGN_MASK 0x1125#define VUL0_HALIGN_MASK_SFT BIT(2)126#define VUL0_HD_MODE_SFT 0127#define VUL0_HD_MODE_MASK 0x3128#define VUL0_HD_MODE_MASK_SFT (0x3 << 0)129 130/* AFE_IRQ_MCU_CON */131#define IRQ_MCU_MODE_SFT 4132#define IRQ_MCU_MODE_MASK 0x1f133#define IRQ_MCU_MODE_MASK_SFT (0x1f << 4)134#define IRQ_MCU_ON_SFT 0135#define IRQ_MCU_ON_MASK 0x1136#define IRQ_MCU_ON_MASK_SFT BIT(0)137#define IRQ0_MCU_CLR_SFT 0138#define IRQ0_MCU_CLR_MASK 0x1139#define IRQ0_MCU_CLR_MASK_SFT BIT(0)140#define IRQ1_MCU_CLR_SFT 1141#define IRQ1_MCU_CLR_MASK 0x1142#define IRQ1_MCU_CLR_MASK_SFT BIT(1)143#define IRQ2_MCU_CLR_SFT 2144#define IRQ2_MCU_CLR_MASK 0x1145#define IRQ2_MCU_CLR_MASK_SFT BIT(2)146 147/* ETDM_IN5_CON2 */148#define IN_CLK_SRC(x) ((x) << 10)149#define IN_CLK_SRC_SFT 10150#define IN_CLK_SRC_MASK GENMASK(12, 10)151 152/* ETDM_IN5_CON3 */153#define IN_SEL_FS(x) ((x) << 26)154#define IN_SEL_FS_SFT 26155#define IN_SEL_FS_MASK GENMASK(30, 26)156 157/* ETDM_IN5_CON4 */158#define IN_RELATCH(x) ((x) << 20)159#define IN_RELATCH_SFT 20160#define IN_RELATCH_MASK GENMASK(24, 20)161#define IN_CLK_INV BIT(18)162#define IN_CLK_INV_MASK BIT(18)163 164/* ETDM_IN5_CON0 & ETDM_OUT5_CON0 */165#define RELATCH_SRC_MASK GENMASK(30, 28)166#define ETDM_CH_NUM_MASK GENMASK(27, 23)167#define ETDM_WRD_LEN_MASK GENMASK(20, 16)168#define ETDM_BIT_LEN_MASK GENMASK(15, 11)169#define ETDM_FMT_MASK GENMASK(8, 6)170#define ETDM_SYNC BIT(1)171#define ETDM_SYNC_MASK BIT(1)172#define ETDM_EN BIT(0)173#define ETDM_EN_MASK BIT(0)174 175/* ETDM_OUT5_CON4 */176#define OUT_RELATCH(x) ((x) << 24)177#define OUT_RELATCH_SFT 24178#define OUT_RELATCH_MASK GENMASK(28, 24)179#define OUT_CLK_SRC(x) ((x) << 6)180#define OUT_CLK_SRC_SFT 6181#define OUT_CLK_SRC_MASK GENMASK(8, 6)182#define OUT_SEL_FS(x) (x)183#define OUT_SEL_FS_SFT 0184#define OUT_SEL_FS_MASK GENMASK(4, 0)185 186/* ETDM_OUT5_CON5 */187#define ETDM_CLK_DIV BIT(12)188#define ETDM_CLK_DIV_MASK BIT(12)189#define OUT_CLK_INV BIT(9)190#define OUT_CLK_INV_MASK BIT(9)191 192/* ETDM_4_7_COWORK_CON0 */193#define OUT_SEL(x) ((x) << 12)194#define OUT_SEL_SFT 12195#define OUT_SEL_MASK GENMASK(15, 12)196#endif197