summaryrefslogtreecommitdiff
path: root/sound/soc/mediatek/mt7986/mt7986-reg.h
blob: c2b200743c3f9db9739b0ed3c83fba4a29606c9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * mt7986-reg.h  --  MediaTek 7986 audio driver reg definition
 *
 * Copyright (c) 2023 MediaTek Inc.
 * Authors: Vic Wu <vic.wu@mediatek.com>
 *          Maso Huang <maso.huang@mediatek.com>
 */

#ifndef _MT7986_REG_H_
#define _MT7986_REG_H_

#define AUDIO_TOP_CON2                  0x0008
#define AUDIO_TOP_CON4                  0x0010
#define AUDIO_ENGEN_CON0                0x0014
#define AFE_IRQ_MCU_EN                  0x0100
#define AFE_IRQ_MCU_STATUS              0x0120
#define AFE_IRQ_MCU_CLR                 0x0128
#define AFE_IRQ0_MCU_CFG0               0x0140
#define AFE_IRQ0_MCU_CFG1               0x0144
#define AFE_IRQ1_MCU_CFG0               0x0148
#define AFE_IRQ1_MCU_CFG1               0x014c
#define AFE_IRQ2_MCU_CFG0               0x0150
#define AFE_IRQ2_MCU_CFG1               0x0154
#define ETDM_IN5_CON0                   0x13f0
#define ETDM_IN5_CON1                   0x13f4
#define ETDM_IN5_CON2                   0x13f8
#define ETDM_IN5_CON3                   0x13fc
#define ETDM_IN5_CON4                   0x1400
#define ETDM_OUT5_CON0                  0x1570
#define ETDM_OUT5_CON4                  0x1580
#define ETDM_OUT5_CON5                  0x1584
#define ETDM_4_7_COWORK_CON0            0x15e0
#define ETDM_4_7_COWORK_CON1            0x15e4
#define AFE_CONN018_1                   0x1b44
#define AFE_CONN018_4                   0x1b50
#define AFE_CONN019_1                   0x1b64
#define AFE_CONN019_4                   0x1b70
#define AFE_CONN124_1                   0x2884
#define AFE_CONN124_4                   0x2890
#define AFE_CONN125_1                   0x28a4
#define AFE_CONN125_4                   0x28b0
#define AFE_CONN_RS_0                   0x3920
#define AFE_CONN_RS_3                   0x392c
#define AFE_CONN_16BIT_0                0x3960
#define AFE_CONN_16BIT_3                0x396c
#define AFE_CONN_24BIT_0                0x3980
#define AFE_CONN_24BIT_3                0x398c
#define AFE_MEMIF_CON0                  0x3d98
#define AFE_MEMIF_RD_MON                0x3da0
#define AFE_MEMIF_WR_MON                0x3da4
#define AFE_DL0_BASE_MSB                0x3e40
#define AFE_DL0_BASE                    0x3e44
#define AFE_DL0_CUR_MSB                 0x3e48
#define AFE_DL0_CUR                     0x3e4c
#define AFE_DL0_END_MSB                 0x3e50
#define AFE_DL0_END                     0x3e54
#define AFE_DL0_RCH_MON                 0x3e58
#define AFE_DL0_LCH_MON                 0x3e5c
#define AFE_DL0_CON0                    0x3e60
#define AFE_VUL0_BASE_MSB               0x4220
#define AFE_VUL0_BASE                   0x4224
#define AFE_VUL0_CUR_MSB                0x4228
#define AFE_VUL0_CUR                    0x422c
#define AFE_VUL0_END_MSB                0x4230
#define AFE_VUL0_END                    0x4234
#define AFE_VUL0_CON0                   0x4238

#define AFE_MAX_REGISTER AFE_VUL0_CON0
#define AFE_IRQ_STATUS_BITS             0x7
#define AFE_IRQ_CNT_SHIFT               0
#define AFE_IRQ_CNT_MASK	        0xffffff

/* AUDIO_TOP_CON2 */
#define CLK_OUT5_PDN                    BIT(14)
#define CLK_OUT5_PDN_MASK               BIT(14)
#define CLK_IN5_PDN                     BIT(7)
#define CLK_IN5_PDN_MASK                BIT(7)

/* AUDIO_TOP_CON4 */
#define PDN_APLL_TUNER2                 BIT(12)
#define PDN_APLL_TUNER2_MASK            BIT(12)

/* AUDIO_ENGEN_CON0 */
#define AUD_APLL2_EN                    BIT(3)
#define AUD_APLL2_EN_MASK               BIT(3)
#define AUD_26M_EN                      BIT(0)
#define AUD_26M_EN_MASK                 BIT(0)

/* AFE_DL0_CON0 */
#define DL0_ON_SFT                      28
#define DL0_ON_MASK                     0x1
#define DL0_ON_MASK_SFT                 BIT(28)
#define DL0_MINLEN_SFT                  20
#define DL0_MINLEN_MASK                 0xf
#define DL0_MINLEN_MASK_SFT             (0xf << 20)
#define DL0_MODE_SFT                    8
#define DL0_MODE_MASK                   0x1f
#define DL0_MODE_MASK_SFT               (0x1f << 8)
#define DL0_PBUF_SIZE_SFT               5
#define DL0_PBUF_SIZE_MASK              0x3
#define DL0_PBUF_SIZE_MASK_SFT          (0x3 << 5)
#define DL0_MONO_SFT                    4
#define DL0_MONO_MASK                   0x1
#define DL0_MONO_MASK_SFT               BIT(4)
#define DL0_HALIGN_SFT                  2
#define DL0_HALIGN_MASK                 0x1
#define DL0_HALIGN_MASK_SFT             BIT(2)
#define DL0_HD_MODE_SFT                 0
#define DL0_HD_MODE_MASK                0x3
#define DL0_HD_MODE_MASK_SFT            (0x3 << 0)

/* AFE_VUL0_CON0 */
#define VUL0_ON_SFT                     28
#define VUL0_ON_MASK                    0x1
#define VUL0_ON_MASK_SFT                BIT(28)
#define VUL0_MODE_SFT                   8
#define VUL0_MODE_MASK                  0x1f
#define VUL0_MODE_MASK_SFT              (0x1f << 8)
#define VUL0_MONO_SFT                   4
#define VUL0_MONO_MASK                  0x1
#define VUL0_MONO_MASK_SFT              BIT(4)
#define VUL0_HALIGN_SFT                 2
#define VUL0_HALIGN_MASK                0x1
#define VUL0_HALIGN_MASK_SFT            BIT(2)
#define VUL0_HD_MODE_SFT                0
#define VUL0_HD_MODE_MASK               0x3
#define VUL0_HD_MODE_MASK_SFT           (0x3 << 0)

/* AFE_IRQ_MCU_CON */
#define IRQ_MCU_MODE_SFT                4
#define IRQ_MCU_MODE_MASK               0x1f
#define IRQ_MCU_MODE_MASK_SFT           (0x1f << 4)
#define IRQ_MCU_ON_SFT                  0
#define IRQ_MCU_ON_MASK                 0x1
#define IRQ_MCU_ON_MASK_SFT             BIT(0)
#define IRQ0_MCU_CLR_SFT                0
#define IRQ0_MCU_CLR_MASK               0x1
#define IRQ0_MCU_CLR_MASK_SFT           BIT(0)
#define IRQ1_MCU_CLR_SFT                1
#define IRQ1_MCU_CLR_MASK               0x1
#define IRQ1_MCU_CLR_MASK_SFT           BIT(1)
#define IRQ2_MCU_CLR_SFT                2
#define IRQ2_MCU_CLR_MASK               0x1
#define IRQ2_MCU_CLR_MASK_SFT           BIT(2)

/* ETDM_IN5_CON2 */
#define IN_CLK_SRC(x)                   ((x) << 10)
#define IN_CLK_SRC_SFT                  10
#define IN_CLK_SRC_MASK                 GENMASK(12, 10)

/* ETDM_IN5_CON3 */
#define IN_SEL_FS(x)                    ((x) << 26)
#define IN_SEL_FS_SFT                   26
#define IN_SEL_FS_MASK                  GENMASK(30, 26)

/* ETDM_IN5_CON4 */
#define IN_RELATCH(x)                   ((x) << 20)
#define IN_RELATCH_SFT                  20
#define IN_RELATCH_MASK                 GENMASK(24, 20)
#define IN_CLK_INV                      BIT(18)
#define IN_CLK_INV_MASK                 BIT(18)

/* ETDM_IN5_CON0 & ETDM_OUT5_CON0 */
#define RELATCH_SRC_MASK                GENMASK(30, 28)
#define ETDM_CH_NUM_MASK                GENMASK(27, 23)
#define ETDM_WRD_LEN_MASK               GENMASK(20, 16)
#define ETDM_BIT_LEN_MASK               GENMASK(15, 11)
#define ETDM_FMT_MASK                   GENMASK(8, 6)
#define ETDM_SYNC                       BIT(1)
#define ETDM_SYNC_MASK                  BIT(1)
#define ETDM_EN                         BIT(0)
#define ETDM_EN_MASK                    BIT(0)

/* ETDM_OUT5_CON4 */
#define OUT_RELATCH(x)                  ((x) << 24)
#define OUT_RELATCH_SFT                 24
#define OUT_RELATCH_MASK                GENMASK(28, 24)
#define OUT_CLK_SRC(x)                  ((x) << 6)
#define OUT_CLK_SRC_SFT                 6
#define OUT_CLK_SRC_MASK                GENMASK(8, 6)
#define OUT_SEL_FS(x)                   (x)
#define OUT_SEL_FS_SFT                  0
#define OUT_SEL_FS_MASK                 GENMASK(4, 0)

/* ETDM_OUT5_CON5 */
#define ETDM_CLK_DIV                    BIT(12)
#define ETDM_CLK_DIV_MASK               BIT(12)
#define OUT_CLK_INV                     BIT(9)
#define OUT_CLK_INV_MASK                BIT(9)

/* ETDM_4_7_COWORK_CON0 */
#define OUT_SEL(x)                      ((x) << 12)
#define OUT_SEL_SFT                     12
#define OUT_SEL_MASK                    GENMASK(15, 12)
#endif