import PULS_20180308
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / sound / mt8127 / AudDrv_Ana_6323.h
CommitLineData
6fa3eb70
S
1/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16/*******************************************************************************
17 *
18 * Filename:
19 * ---------
20 * AudDrv_Ana.h
21 *
22 * Project:
23 * --------
24 * MT6583 Audio Driver Ana
25 *
26 * Description:
27 * ------------
28 * Audio register
29 *
30 * Author:
31 * -------
32 * Chipeng Chang (mtk02308)
33 *
34 *------------------------------------------------------------------------------
35 * $Revision: #1 $
36 * $Modtime:$
37 * $Log:$
38 *
39 *
40 *******************************************************************************/
41
42#ifndef _AUDDRV_ANA_H_
43#define _AUDDRV_ANA_H_
44
45/*****************************************************************************
46 * C O M P I L E R F L A G S
47 *****************************************************************************/
48
49
50/*****************************************************************************
51 * E X T E R N A L R E F E R E N C E S
52 *****************************************************************************/
53
54#include "AudDrv_Common.h"
55#include "AudDrv_Def.h"
56
57
58/*****************************************************************************
59 * D A T A T Y P E S
60 *****************************************************************************/
61
62
63/*****************************************************************************
64 * M A C R O
65 *****************************************************************************/
66
67/*****************************************************************************
68 * R E G I S T E R D E F I N I T I O N
69 *****************************************************************************/
70
71#define PMIC_ABB_AFE_REG_BASE (0x4000)
72#define ABB_AFE_CON0 (PMIC_ABB_AFE_REG_BASE+0x0000)
73#define ABB_AFE_CON1 (PMIC_ABB_AFE_REG_BASE+0x0002)
74#define ABB_AFE_CON2 (PMIC_ABB_AFE_REG_BASE+0x0004)
75#define ABB_AFE_CON3 (PMIC_ABB_AFE_REG_BASE+0x0006)
76#define ABB_AFE_CON4 (PMIC_ABB_AFE_REG_BASE+0x0008)
77#define ABB_AFE_CON5 (PMIC_ABB_AFE_REG_BASE+0x000A)
78#define ABB_AFE_CON6 (PMIC_ABB_AFE_REG_BASE+0x000C)
79#define ABB_AFE_CON7 (PMIC_ABB_AFE_REG_BASE+0x000E)
80#define ABB_AFE_CON8 (PMIC_ABB_AFE_REG_BASE+0x0010)
81#define ABB_AFE_CON9 (PMIC_ABB_AFE_REG_BASE+0x0012)
82#define ABB_AFE_CON10 (PMIC_ABB_AFE_REG_BASE+0x0014)
83#define ABB_AFE_CON11 (PMIC_ABB_AFE_REG_BASE+0x0016)
84#define ABB_AFE_STA0 (PMIC_ABB_AFE_REG_BASE+0x0018)
85#define ABB_AFE_STA1 (PMIC_ABB_AFE_REG_BASE+0x001A)
86#define ABB_AFE_STA2 (PMIC_ABB_AFE_REG_BASE+0x001C)
87#define ABB_AFE_UP8X_FIFO_CFG0 (PMIC_ABB_AFE_REG_BASE+0x001E)
88#define ABB_AFE_UP8X_FIFO_LOG_MON0 (PMIC_ABB_AFE_REG_BASE+0x0020)
89#define ABB_AFE_UP8X_FIFO_LOG_MON1 (PMIC_ABB_AFE_REG_BASE+0x0022)
90#define ABB_AFE_PMIC_NEWIF_CFG0 (PMIC_ABB_AFE_REG_BASE+0x0024)
91#define ABB_AFE_PMIC_NEWIF_CFG1 (PMIC_ABB_AFE_REG_BASE+0x0026)
92#define ABB_AFE_PMIC_NEWIF_CFG2 (PMIC_ABB_AFE_REG_BASE+0x0028)
93#define ABB_AFE_PMIC_NEWIF_CFG3 (PMIC_ABB_AFE_REG_BASE+0x002A)
94#define ABB_AFE_TOP_CON0 (PMIC_ABB_AFE_REG_BASE+0x002C)
95#define ABB_AFE_MON_DEBUG0 (PMIC_ABB_AFE_REG_BASE+0x002E)
4b9e9796
S
96
97
98/* The valid range of audio digital hardware in PMIC */
99#define ABB_AFE_ADDR_START ABB_AFE_CON0
100#define ABB_AFE_ADDR_END ABB_AFE_MON_DEBUG0
101
6fa3eb70
S
102//---------------digital pmic register define -------------------------------------------
103#if 0//
104#define AFE_PMICDIG_AUDIO_BASE (0x4000)
105#define AFE_UL_DL_CON0 (AFE_PMICDIG_AUDIO_BASE+0x0000)
106#define AFE_DL_SRC2_CON0_H (AFE_PMICDIG_AUDIO_BASE+0x0002)
107#define AFE_DL_SRC2_CON0_L (AFE_PMICDIG_AUDIO_BASE+0x0004)
108#define AFE_DL_SRC2_CON1_H (AFE_PMICDIG_AUDIO_BASE+0x0006)
109#define AFE_DL_SRC2_CON1_L (AFE_PMICDIG_AUDIO_BASE+0x0008)
110#define AFE_DL_SDM_CON0 (AFE_PMICDIG_AUDIO_BASE+0x000A)
111#define AFE_DL_SDM_CON1 (AFE_PMICDIG_AUDIO_BASE+0x000C)
112#define AFE_UL_SRC_CON0_H (AFE_PMICDIG_AUDIO_BASE+0x000E)
113#define AFE_UL_SRC_CON0_L (AFE_PMICDIG_AUDIO_BASE+0x0010)
114#define AFE_UL_SRC_CON1_H (AFE_PMICDIG_AUDIO_BASE+0x0012)
115#define AFE_UL_SRC_CON1_L (AFE_PMICDIG_AUDIO_BASE+0x0014)
116#define AFE_PREDIS_CON0_H (AFE_PMICDIG_AUDIO_BASE+0x0016)
117#define AFE_PREDIS_CON0_L (AFE_PMICDIG_AUDIO_BASE+0x0018)
118#define AFE_PREDIS_CON1_H (AFE_PMICDIG_AUDIO_BASE+0x001a)
119#define AFE_PREDIS_CON1_L (AFE_PMICDIG_AUDIO_BASE+0x001c)
120#define ANA_AFE_I2S_CON1 (AFE_PMICDIG_AUDIO_BASE+0x001e)
121#define AFE_I2S_FIFO_UL_CFG0 (AFE_PMICDIG_AUDIO_BASE+0x0020)
122#define AFE_I2S_FIFO_DL_CFG0 (AFE_PMICDIG_AUDIO_BASE+0x0022)
123#define ANA_AFE_TOP_CON0 (AFE_PMICDIG_AUDIO_BASE+0x0024)
124#define ANA_AUDIO_TOP_CON0 (AFE_PMICDIG_AUDIO_BASE+0x0026)
125#define AFE_UL_SRC_DEBUG (AFE_PMICDIG_AUDIO_BASE+0x0028)
126#define AFE_DL_SRC_DEBUG (AFE_PMICDIG_AUDIO_BASE+0x002a)
127#define AFE_UL_SRC_MON0 (AFE_PMICDIG_AUDIO_BASE+0x002c)
128#define AFE_DL_SRC_MON0 (AFE_PMICDIG_AUDIO_BASE+0x002e)
129#define AFE_DL_SDM_TEST0 (AFE_PMICDIG_AUDIO_BASE+0x0030)
130#define AFE_MON_DEBUG0 (AFE_PMICDIG_AUDIO_BASE+0x0032)
131#define AFUNC_AUD_CON0 (AFE_PMICDIG_AUDIO_BASE+0x0034)
132#define AFUNC_AUD_CON1 (AFE_PMICDIG_AUDIO_BASE+0x0036)
133#define AFUNC_AUD_CON2 (AFE_PMICDIG_AUDIO_BASE+0x0038)
134#define AFUNC_AUD_CON3 (AFE_PMICDIG_AUDIO_BASE+0x003A)
135#define AFUNC_AUD_CON4 (AFE_PMICDIG_AUDIO_BASE+0x003C)
136#define AFUNC_AUD_MON0 (AFE_PMICDIG_AUDIO_BASE+0x003E)
137#define AFUNC_AUD_MON1 (AFE_PMICDIG_AUDIO_BASE+0x0040)
138#define AUDRC_TUNE_MON0 (AFE_PMICDIG_AUDIO_BASE+0x0042)
139#define AFE_I2S_FIFO_MON0 (AFE_PMICDIG_AUDIO_BASE+0x0044)
140#define AFE_DL_DC_COMP_CFG0 (AFE_PMICDIG_AUDIO_BASE+0x0046)
141#define AFE_DL_DC_COMP_CFG1 (AFE_PMICDIG_AUDIO_BASE+0x0048)
142#define AFE_DL_DC_COMP_CFG2 (AFE_PMICDIG_AUDIO_BASE+0x004a)
143#define AFE_MBIST_CFG0 (AFE_PMICDIG_AUDIO_BASE+0x004c)
144#define AFE_MBIST_CFG1 (AFE_PMICDIG_AUDIO_BASE+0x004e)
145#define AFE_MBIST_CFG2 (AFE_PMICDIG_AUDIO_BASE+0x0050)
146#define AFE_I2S_FIFO_CFG0 (AFE_PMICDIG_AUDIO_BASE+0x0052)
147#endif
148//---------------digital pmic register define end ---------------------------------------
149
150//---------------analog pmic register define start --------------------------------------
151#if 0
152#define AFE_PMICANA_AUDIO_BASE (0x0)
153
154#define CID (AFE_PMICANA_AUDIO_BASE + 0x100)
155#define TOP_CKPDN0 (AFE_PMICANA_AUDIO_BASE + 0x102)
156#define TOP_CKPDN0_SET (AFE_PMICANA_AUDIO_BASE + 0x104)
157#define TOP_CKPDN0_CLR (AFE_PMICANA_AUDIO_BASE + 0x106)
158#define TOP_CKPDN1 (AFE_PMICANA_AUDIO_BASE + 0x108)
159#define TOP_CKPDN1_SET (AFE_PMICANA_AUDIO_BASE + 0x10A)
160#define TOP_CKPDN1_CLR (AFE_PMICANA_AUDIO_BASE + 0x10C)
161#define TOP_CKPDN2 (AFE_PMICANA_AUDIO_BASE + 0x10E)
162#define TOP_CKPDN2_SET (AFE_PMICANA_AUDIO_BASE + 0x110)
163#define TOP_CKPDN2_CLR (AFE_PMICANA_AUDIO_BASE + 0x112)
164#define TOP_CKCON1 (AFE_PMICANA_AUDIO_BASE + 0x126)
165
166#define SPK_CON0 (AFE_PMICANA_AUDIO_BASE + 0x052)
167#define SPK_CON1 (AFE_PMICANA_AUDIO_BASE + 0x054)
168#define SPK_CON2 (AFE_PMICANA_AUDIO_BASE + 0x056)
169#define SPK_CON6 (AFE_PMICANA_AUDIO_BASE + 0x05E)
170#define SPK_CON7 (AFE_PMICANA_AUDIO_BASE + 0x060)
171#define SPK_CON8 (AFE_PMICANA_AUDIO_BASE + 0x062)
172#define SPK_CON9 (AFE_PMICANA_AUDIO_BASE + 0x064)
173#define SPK_CON10 (AFE_PMICANA_AUDIO_BASE + 0x066)
174#define SPK_CON11 (AFE_PMICANA_AUDIO_BASE + 0x068)
175#define SPK_CON12 (AFE_PMICANA_AUDIO_BASE + 0x06A)
176
177#define AUDTOP_CON0 (AFE_PMICANA_AUDIO_BASE + 0x700)
178#define AUDTOP_CON1 (AFE_PMICANA_AUDIO_BASE + 0x702)
179#define AUDTOP_CON2 (AFE_PMICANA_AUDIO_BASE + 0x704)
180#define AUDTOP_CON3 (AFE_PMICANA_AUDIO_BASE + 0x706)
181#define AUDTOP_CON4 (AFE_PMICANA_AUDIO_BASE + 0x708)
182#define AUDTOP_CON5 (AFE_PMICANA_AUDIO_BASE + 0x70A)
183#define AUDTOP_CON6 (AFE_PMICANA_AUDIO_BASE + 0x70C)
184#define AUDTOP_CON7 (AFE_PMICANA_AUDIO_BASE + 0x70E)
185#define AUDTOP_CON8 (AFE_PMICANA_AUDIO_BASE + 0x710)
186#define AUDTOP_CON9 (AFE_PMICANA_AUDIO_BASE + 0x712)
187#else
188#include <mach/upmu_hw.h>
189#endif
190
4b9e9796
S
191/* The valid range of audio analog hardware in PMIC */
192#define AUDTOP_MAX_ADDR_OFFSET (0x079A)
6fa3eb70
S
193typedef struct
194{
195 volatile uint16 Suspend_Ana_ABB_AFE_CON0;
196 volatile uint16 Suspend_Ana_ABB_AFE_CON1;
197 volatile uint16 Suspend_Ana_ABB_AFE_CON2;
198 volatile uint16 Suspend_Ana_ABB_AFE_CON3;
199 volatile uint16 Suspend_Ana_ABB_AFE_CON4;
200 volatile uint16 Suspend_Ana_ABB_AFE_CON5;
201 volatile uint16 Suspend_Ana_ABB_AFE_CON6;
202 volatile uint16 Suspend_Ana_ABB_AFE_CON7;
203 volatile uint16 Suspend_Ana_ABB_AFE_CON8;
204 volatile uint16 Suspend_Ana_ABB_AFE_CON9;
205 volatile uint16 Suspend_Ana_ABB_AFE_CON10;
206 volatile uint16 Suspend_Ana_ABB_AFE_CON11;
207 volatile uint16 Suspend_Ana_ABB_AFE_UP8X_FIFO_CFG0;
208 volatile uint16 Suspend_Ana_ABB_AFE_PMIC_NEWIF_CFG0;
209 volatile uint16 Suspend_Ana_ABB_AFE_PMIC_NEWIF_CFG1;
210 volatile uint16 Suspend_Ana_ABB_AFE_PMIC_NEWIF_CFG2;
211 volatile uint16 Suspend_Ana_ABB_AFE_PMIC_NEWIF_CFG3;
212 volatile uint16 Suspend_Ana_ABB_AFE_TOP_CON0;
213 volatile uint16 Suspend_Ana_ABB_AFE_MON_DEBUG0;
214
215 volatile uint16 Suspend_Ana_SPK_CON0;
216 volatile uint16 Suspend_Ana_SPK_CON1;
217 volatile uint16 Suspend_Ana_SPK_CON2;
218 volatile uint16 Suspend_Ana_SPK_CON6;
219 volatile uint16 Suspend_Ana_SPK_CON7;
220 volatile uint16 Suspend_Ana_SPK_CON8;
221 volatile uint16 Suspend_Ana_SPK_CON9;
222 volatile uint16 Suspend_Ana_SPK_CON10;
223 volatile uint16 Suspend_Ana_SPK_CON11;
224 volatile uint16 Suspend_Ana_SPK_CON12;
225 volatile uint16 Suspend_Ana_TOP_CKPDN0;
226 volatile uint16 Suspend_Ana_TOP_CKPDN0_SET;
227 volatile uint16 Suspend_Ana_TOP_CKPDN0_CLR;
228 volatile uint16 Suspend_Ana_TOP_CKPDN1;
229 volatile uint16 Suspend_Ana_TOP_CKPDN1_SET;
230 volatile uint16 Suspend_Ana_TOP_CKPDN1_CLR;
231 volatile uint16 Suspend_Ana_TOP_CKPDN2;
232 volatile uint16 Suspend_Ana_TOP_CKPDN2_SET;
233 volatile uint16 Suspend_Ana_TOP_CKPDN2_CLR;
234 volatile uint16 Suspend_Ana_TOP_RST_CON;
235 volatile uint16 Suspend_Ana_TOP_RST_CON_SET;
236 volatile uint16 Suspend_Ana_TOP_RST_CON_CLR;
237 volatile uint16 Suspend_Ana_TOP_RST_MISC;
238 volatile uint16 Suspend_Ana_TOP_RST_MISC_SET;
239 volatile uint16 Suspend_Ana_TOP_RST_MISC_CLR;
240 volatile uint16 Suspend_Ana_TOP_CKCON0;
241 volatile uint16 Suspend_Ana_TOP_CKCON0_SET;
242 volatile uint16 Suspend_Ana_TOP_CKCON0_CLR;
243 volatile uint16 Suspend_Ana_TOP_CKCON1;
244 volatile uint16 Suspend_Ana_TOP_CKCON1_SET;
245 volatile uint16 Suspend_Ana_TOP_CKCON1_CLR;
246 volatile uint16 Suspend_Ana_TOP_CKTST0;
247 volatile uint16 Suspend_Ana_TOP_CKTST1;
248 volatile uint16 Suspend_Ana_TOP_CKTST2;
249
250 volatile uint16 Suspend_Ana_AUDTOP_CON0;
251 volatile uint16 Suspend_Ana_AUDTOP_CON1;
252 volatile uint16 Suspend_Ana_AUDTOP_CON2;
253 volatile uint16 Suspend_Ana_AUDTOP_CON3;
254 volatile uint16 Suspend_Ana_AUDTOP_CON4;
255 volatile uint16 Suspend_Ana_AUDTOP_CON5;
256 volatile uint16 Suspend_Ana_AUDTOP_CON6;
257 volatile uint16 Suspend_Ana_AUDTOP_CON7;
258 volatile uint16 Suspend_Ana_AUDTOP_CON8;
259 volatile uint16 Suspend_Ana_AUDTOP_CON9;
260} AudAna_Suspend_Reg;
261
262void Ana_Set_Reg(uint32 offset, uint32 value, uint32 mask);
263uint32 Ana_Get_Reg(uint32 offset);
264void AudDrv_Store_reg_ANA(AudAna_Suspend_Reg *pBackup_reg);
265void AudDrv_Recover_reg_ANA(AudAna_Suspend_Reg *pBackup_reg);
266
267
268// for debug usage
269void Ana_Log_Print(void);
270
271#endif
272