blob: d55bd285789a1a16d235843148949550c2d4aee9 [file] [log] [blame]
developerbe797a32021-12-16 16:56:09 +08001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * mt79xx-reg.h -- Mediatek 79xx audio driver reg definition
4 *
5 * Copyright (c) 2021 MediaTek Inc.
6 * Author: Vic Wu <vic.wu@mediatek.com>
7 */
8
9#ifndef _MT79XX_REG_H_
10#define _MT79XX_REG_H_
11
12#define AUDIO_TOP_CON2 0x0008
13#define AUDIO_TOP_CON4 0x0010
14#define AUDIO_ENGEN_CON0 0x0014
15#define AFE_IRQ_MCU_EN 0x0100
16#define AFE_IRQ_MCU_STATUS 0x0120
17#define AFE_IRQ_MCU_CLR 0x0128
18#define AFE_IRQ0_MCU_CFG0 0x0140
19#define AFE_IRQ0_MCU_CFG1 0x0144
20#define AFE_IRQ1_MCU_CFG0 0x0148
21#define AFE_IRQ1_MCU_CFG1 0x014c
22#define ETDM_IN5_CON0 0x13f0
23#define ETDM_IN5_CON1 0x13f4
24#define ETDM_IN5_CON2 0x13f8
25#define ETDM_IN5_CON3 0x13fc
26#define ETDM_IN5_CON4 0x1400
27#define ETDM_OUT5_CON0 0x1570
28#define ETDM_OUT5_CON4 0x1580
29#define ETDM_OUT5_CON5 0x1584
30#define ETDM_4_7_COWORK_CON0 0x15e0
31#define ETDM_4_7_COWORK_CON1 0x15e4
32#define AFE_CONN018_1 0x1b44
33#define AFE_CONN018_4 0x1b50
34#define AFE_CONN019_1 0x1b64
35#define AFE_CONN019_4 0x1b70
36#define AFE_CONN124_1 0x2884
37#define AFE_CONN124_4 0x2890
38#define AFE_CONN125_1 0x28a4
39#define AFE_CONN125_4 0x28b0
40#define AFE_CONN_RS_0 0x3920
41#define AFE_CONN_RS_3 0x392c
42#define AFE_CONN_16BIT_0 0x3960
43#define AFE_CONN_16BIT_3 0x396c
44#define AFE_CONN_24BIT_0 0x3980
45#define AFE_CONN_24BIT_3 0x398c
46#define AFE_MEMIF_CON0 0x3d98
47#define AFE_MEMIF_RD_MON 0x3da0
48#define AFE_MEMIF_WR_MON 0x3da4
49#define AFE_DL0_BASE_MSB 0x3e40
50#define AFE_DL0_BASE 0x3e44
51#define AFE_DL0_CUR_MSB 0x3e48
52#define AFE_DL0_CUR 0x3e4c
53#define AFE_DL0_END_MSB 0x3e50
54#define AFE_DL0_END 0x3e54
55#define AFE_DL0_RCH_MON 0x3e58
56#define AFE_DL0_LCH_MON 0x3e5c
57#define AFE_DL0_CON0 0x3e60
58#define AFE_VUL0_BASE_MSB 0x4220
59#define AFE_VUL0_BASE 0x4224
60#define AFE_VUL0_CUR_MSB 0x4228
61#define AFE_VUL0_CUR 0x422c
62#define AFE_VUL0_END_MSB 0x4230
63#define AFE_VUL0_END 0x4234
64#define AFE_VUL0_CON0 0x4238
65
66#define AFE_MAX_REGISTER AFE_VUL0_CON0
67#define AFE_IRQ_STATUS_BITS 0x1
68#define AFE_IRQ_CNT_SHIFT 0
69#define AFE_IRQ_CNT_MASK 0xffffff
70
71/* AUDIO_TOP_CON2 */
72#define CLK_OUT5_PDN BIT(14)
73#define CLK_OUT5_PDN_MASK BIT(14)
74#define CLK_IN5_PDN BIT(7)
75#define CLK_IN5_PDN_MASK BIT(7)
76
77/* AUDIO_TOP_CON4 */
78#define PDN_APLL_TUNER2 BIT(12)
79#define PDN_APLL_TUNER2_MASK BIT(12)
80
81/* AUDIO_ENGEN_CON0 */
82#define AUD_APLL2_EN BIT(3)
83#define AUD_APLL2_EN_MASK BIT(3)
84#define AUD_26M_EN BIT(0)
85#define AUD_26M_EN_MASK BIT(0)
86
87/* AFE_DL0_CON0 */
88#define DL0_ON_SFT 28
89#define DL0_ON_MASK 0x1
90#define DL0_ON_MASK_SFT BIT(28)
91#define DL0_MINLEN_SFT 20
92#define DL0_MINLEN_MASK 0xf
93#define DL0_MINLEN_MASK_SFT (0xf << 20)
94#define DL0_MODE_SFT 8
95#define DL0_MODE_MASK 0x1f
96#define DL0_MODE_MASK_SFT (0x1f << 8)
97#define DL0_PBUF_SIZE_SFT 5
98#define DL0_PBUF_SIZE_MASK 0x3
99#define DL0_PBUF_SIZE_MASK_SFT (0x3 << 5)
100#define DL0_MONO_SFT 4
101#define DL0_MONO_MASK 0x1
102#define DL0_MONO_MASK_SFT BIT(4)
103#define DL0_HALIGN_SFT 2
104#define DL0_HALIGN_MASK 0x1
105#define DL0_HALIGN_MASK_SFT BIT(2)
106#define DL0_HD_MODE_SFT 0
107#define DL0_HD_MODE_MASK 0x3
108#define DL0_HD_MODE_MASK_SFT (0x3 << 0)
109
110/* AFE_VUL0_CON0 */
111#define VUL0_ON_SFT 28
112#define VUL0_ON_MASK 0x1
113#define VUL0_ON_MASK_SFT BIT(28)
114#define VUL0_MODE_SFT 8
115#define VUL0_MODE_MASK 0x1f
116#define VUL0_MODE_MASK_SFT (0x1f << 8)
117#define VUL0_MONO_SFT 4
118#define VUL0_MONO_MASK 0x1
119#define VUL0_MONO_MASK_SFT BIT(4)
120#define VUL0_HALIGN_SFT 2
121#define VUL0_HALIGN_MASK 0x1
122#define VUL0_HALIGN_MASK_SFT BIT(2)
123#define VUL0_HD_MODE_SFT 0
124#define VUL0_HD_MODE_MASK 0x3
125#define VUL0_HD_MODE_MASK_SFT (0x3 << 0)
126
127/* AFE_IRQ_MCU_CON */
128#define IRQ_MCU_MODE_SFT 4
129#define IRQ_MCU_MODE_MASK 0x1f
130#define IRQ_MCU_MODE_MASK_SFT (0x1f << 4)
131#define IRQ_MCU_ON_SFT 0
132#define IRQ_MCU_ON_MASK 0x1
133#define IRQ_MCU_ON_MASK_SFT BIT(0)
134#define IRQ_MCU_CLR_SFT 0
135#define IRQ_MCU_CLR_MASK 0x1
136#define IRQ_MCU_CLR_MASK_SFT BIT(0)
137
138/* ETDM_IN5_CON2 */
139#define IN_CLK_SRC(x) ((x) << 10)
140#define IN_CLK_SRC_SFT 10
141#define IN_CLK_SRC_MASK GENMASK(12, 10)
142
143/* ETDM_IN5_CON3 */
144#define IN_SEL_FS(x) ((x) << 26)
145#define IN_SEL_FS_SFT 26
146#define IN_SEL_FS_MASK GENMASK(30, 26)
147
148/* ETDM_IN5_CON4 */
149#define IN_RELATCH(x) ((x) << 20)
150#define IN_RELATCH_SFT 20
151#define IN_RELATCH_MASK GENMASK(24, 20)
152#define IN_CLK_INV BIT(18)
153#define IN_CLK_INV_MASK BIT(18)
154
155/* ETDM_IN5_CON0 & ETDM_OUT5_CON0 */
156#define RELATCH_SRC(x) ((x) << 28)
157#define RELATCH_SRC_SFT 28
158#define RELATCH_SRC_MASK GENMASK(30, 28)
159#define ETDM_CH_NUM(x) (((x) - 1) << 23)
160#define ETDM_CH_NUM_SFT 23
161#define ETDM_CH_NUM_MASK GENMASK(27, 23)
162#define ETDM_WRD_LEN(x) (((x) - 1) << 16)
163#define ETDM_WRD_LEN_SFT 16
164#define ETDM_WRD_LEN_MASK GENMASK(20, 16)
165#define ETDM_BIT_LEN(x) (((x) - 1) << 11)
166#define ETDM_BIT_LEN_SFT 11
167#define ETDM_BIT_LEN_MASK GENMASK(15, 11)
168#define ETDM_FMT(x) ((x) << 6)
169#define ETDM_FMT_SFT 6
170#define ETDM_FMT_MASK GENMASK(8, 6)
171#define ETDM_SYNC BIT(1)
172#define ETDM_SYNC_MASK BIT(1)
173#define ETDM_EN BIT(0)
174#define ETDM_EN_MASK BIT(0)
175
176/* ETDM_OUT5_CON4 */
177#define OUT_RELATCH(x) ((x) << 24)
178#define OUT_RELATCH_SFT 24
179#define OUT_RELATCH_MASK GENMASK(28, 24)
180#define OUT_CLK_SRC(x) ((x) << 6)
181#define OUT_CLK_SRC_SFT 6
182#define OUT_CLK_SRC_MASK GENMASK(8, 6)
183#define OUT_SEL_FS(x) ((x) << 0)
184#define OUT_SEL_FS_SFT 0
185#define OUT_SEL_FS_MASK GENMASK(4, 0)
186
187/* ETDM_OUT5_CON5 */
188#define ETDM_CLK_DIV BIT(12)
189#define ETDM_CLK_DIV_MASK BIT(12)
190#define OUT_CLK_INV BIT(9)
191#define OUT_CLK_INV_MASK BIT(9)
192
193/* ETDM_4_7_COWORK_CON0 */
194#define OUT_SEL(x) ((x) << 12)
195#define OUT_SEL_SFT 12
196#define OUT_SEL_MASK GENMASK(15, 12)
197#endif