import PULS_20180308
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / sound / mt8127 / AudDrv_Ana_6397.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 * MT6397 Audio Driver Digital/Analog
25 *
26 * Description:
27 * ------------
28 * Audio register
29 *
30 * Author:
31 * -------
32 * Luke Liu
33 * Daniel Hsiao (mtk00469)
34 * Chipeng Chang (mtk02308)
35 *
36 *------------------------------------------------------------------------------
37 * $Revision: #1 $
38 * $Modtime:$
39 * $Log:$
40 *
41 *
42 *******************************************************************************/
43
44#ifndef _AUDDRV_ANA_H_
45#define _AUDDRV_ANA_H_
46
47/*****************************************************************************
48 * C O M P I L E R F L A G S
49 *****************************************************************************/
50
51
52/*****************************************************************************
53 * E X T E R N A L R E F E R E N C E S
54 *****************************************************************************/
55
56#include "AudDrv_Common.h"
57#include "AudDrv_Def.h"
58
59
60/*****************************************************************************
61 * D A T A T Y P E S
62 *****************************************************************************/
63
64
65/*****************************************************************************
66 * M A C R O
67 *****************************************************************************/
68
69/*****************************************************************************
70 * R E G I S T E R D E F I N I T I O N
71 *****************************************************************************/
4b9e9796 72
6fa3eb70
S
73//---------------digital pmic register define start -------------------------------------------
74#define AFE_PMICDIG_AUDIO_BASE (0x4000)
75#define AFE_UL_DL_CON0 (AFE_PMICDIG_AUDIO_BASE+0x0000)
76#define AFE_DL_SRC2_CON0_H (AFE_PMICDIG_AUDIO_BASE+0x0002)
77#define AFE_DL_SRC2_CON0_L (AFE_PMICDIG_AUDIO_BASE+0x0004)
78#define AFE_DL_SDM_CON0 (AFE_PMICDIG_AUDIO_BASE + 0x0006)
79#define AFE_DL_SDM_CON1 (AFE_PMICDIG_AUDIO_BASE + 0x0008)
80#define AFE_UL_SRC_CON0_H (AFE_PMICDIG_AUDIO_BASE + 0x000A)
81#define AFE_UL_SRC_CON0_L (AFE_PMICDIG_AUDIO_BASE + 0x000C)
82#define AFE_UL_SRC_CON1_H (AFE_PMICDIG_AUDIO_BASE + 0x000E)
83#define AFE_UL_SRC_CON1_L (AFE_PMICDIG_AUDIO_BASE + 0x0010)
84#define ANA_AFE_TOP_CON0 (AFE_PMICDIG_AUDIO_BASE + 0x0012)
85#define ANA_AUDIO_TOP_CON0 (AFE_PMICDIG_AUDIO_BASE + 0x0014)
86#define AFE_DL_SRC_MON0 (AFE_PMICDIG_AUDIO_BASE + 0x0016)
87#define AFE_DL_SDM_TEST0 (AFE_PMICDIG_AUDIO_BASE + 0x0018)
88#define AFE_MON_DEBUG0 (AFE_PMICDIG_AUDIO_BASE + 0x001A)
89#define AFUNC_AUD_CON0 (AFE_PMICDIG_AUDIO_BASE + 0x001C)
90#define AFUNC_AUD_CON1 (AFE_PMICDIG_AUDIO_BASE + 0x001E)
91#define AFUNC_AUD_CON2 (AFE_PMICDIG_AUDIO_BASE + 0x0020)
92#define AFUNC_AUD_CON3 (AFE_PMICDIG_AUDIO_BASE + 0x0022)
93#define AFUNC_AUD_CON4 (AFE_PMICDIG_AUDIO_BASE + 0x0024)
94#define AFUNC_AUD_MON0 (AFE_PMICDIG_AUDIO_BASE + 0x0026)
95#define AFUNC_AUD_MON1 (AFE_PMICDIG_AUDIO_BASE + 0x0028)
96#define AUDRC_TUNE_MON0 (AFE_PMICDIG_AUDIO_BASE + 0x002A)
97#define AFE_UP8X_FIFO_CFG0 (AFE_PMICDIG_AUDIO_BASE + 0x002C) //6397 new
98#define AFE_UP8X_FIFO_LOG_MON0 (AFE_PMICDIG_AUDIO_BASE + 0x002E) //6397 new
99#define AFE_UP8X_FIFO_LOG_MON1 (AFE_PMICDIG_AUDIO_BASE + 0x0030) //6397 new
100#define AFE_DL_DC_COMP_CFG0 (AFE_PMICDIG_AUDIO_BASE + 0x0032)
101#define AFE_DL_DC_COMP_CFG1 (AFE_PMICDIG_AUDIO_BASE + 0x0034)
102#define AFE_DL_DC_COMP_CFG2 (AFE_PMICDIG_AUDIO_BASE + 0x0036)
103#define AFE_PMIC_NEWIF_CFG0 (AFE_PMICDIG_AUDIO_BASE + 0x0038)
104#define AFE_PMIC_NEWIF_CFG1 (AFE_PMICDIG_AUDIO_BASE + 0x003A)
105#define AFE_PMIC_NEWIF_CFG2 (AFE_PMICDIG_AUDIO_BASE + 0x003C)
106#define AFE_PMIC_NEWIF_CFG3 (AFE_PMICDIG_AUDIO_BASE + 0x003E)
107#define AFE_SGEN_CFG0 (AFE_PMICDIG_AUDIO_BASE + 0x0040)
108#define AFE_SGEN_CFG1 (AFE_PMICDIG_AUDIO_BASE + 0x0042)
109//---------------digital pmic register define end ---------------------------------------
110
4b9e9796
S
111/* The valid range of audio digital hardware in PMIC */
112#define AFE_ADDR_START AFE_UL_DL_CON0
113#define AFE_ADDR_END AFE_SGEN_CFG1
114
6fa3eb70
S
115//---------------analog pmic register define start --------------------------------------
116#if 0
117#define AFE_PMICANA_AUDIO_BASE (0x0)
118
119#define TOP_CKPDN (AFE_PMICANA_AUDIO_BASE + 0x0102)
120#define TOP_CKPDN_SET (AFE_PMICANA_AUDIO_BASE + 0x0104)
121#define TOP_CKPDN_CLR (AFE_PMICANA_AUDIO_BASE + 0x0106)
122#define TOP_CKPDN2 (AFE_PMICANA_AUDIO_BASE + 0x0108)
123#define TOP_CKPDN2_SET (AFE_PMICANA_AUDIO_BASE + 0x010a)
124#define TOP_CKPDN2_CLR (AFE_PMICANA_AUDIO_BASE + 0x010c)
125#define TOP_CKCON1 (AFE_PMICANA_AUDIO_BASE + 0x0128)
126
127#define SPK_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0600)
128#define SPK_CON1 (AFE_PMICANA_AUDIO_BASE + 0x0602)
129#define SPK_CON2 (AFE_PMICANA_AUDIO_BASE + 0x0604)
130#define SPK_CON3 (AFE_PMICANA_AUDIO_BASE + 0x0606)
131#define SPK_CON4 (AFE_PMICANA_AUDIO_BASE + 0x0608)
132#define SPK_CON5 (AFE_PMICANA_AUDIO_BASE + 0x060A)
133#define SPK_CON6 (AFE_PMICANA_AUDIO_BASE + 0x060C)
134#define SPK_CON7 (AFE_PMICANA_AUDIO_BASE + 0x060E)
135#define SPK_CON8 (AFE_PMICANA_AUDIO_BASE + 0x0610)
136#define SPK_CON9 (AFE_PMICANA_AUDIO_BASE + 0x0612)
137#define SPK_CON10 (AFE_PMICANA_AUDIO_BASE + 0x0614)
138#define SPK_CON11 (AFE_PMICANA_AUDIO_BASE + 0x0616)
139
140#define AUDDAC_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0700)
141#define AUDBUF_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x0702)
142#define AUDBUF_CFG1 (AFE_PMICANA_AUDIO_BASE + 0x0704)
143#define AUDBUF_CFG2 (AFE_PMICANA_AUDIO_BASE + 0x0706)
144#define AUDBUF_CFG3 (AFE_PMICANA_AUDIO_BASE + 0x0708)
145#define AUDBUF_CFG4 (AFE_PMICANA_AUDIO_BASE + 0x070a)
146#define IBIASDIST_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x070c)
147#define AUDACCDEPOP_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x070e)
148#define AUD_IV_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x0710)
149#define AUDCLKGEN_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x0712)
150#define AUDLDO_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x0714)
151#define AUDLDO_CFG1 (AFE_PMICANA_AUDIO_BASE + 0x0716)
152#define AUDNVREGGLB_CFG0 (AFE_PMICANA_AUDIO_BASE + 0x0718)
153#define AUD_NCP0 (AFE_PMICANA_AUDIO_BASE + 0x071a)
154#define AUDPREAMP_CON0 (AFE_PMICANA_AUDIO_BASE + 0x071c)
155#define AUDADC_CON0 (AFE_PMICANA_AUDIO_BASE + 0x071e)
156#define AUDADC_CON1 (AFE_PMICANA_AUDIO_BASE + 0x0720)
157#define AUDADC_CON2 (AFE_PMICANA_AUDIO_BASE + 0x0722)
158#define AUDADC_CON3 (AFE_PMICANA_AUDIO_BASE + 0x0724)
159#define AUDADC_CON4 (AFE_PMICANA_AUDIO_BASE + 0x0726)
160#define AUDADC_CON5 (AFE_PMICANA_AUDIO_BASE + 0x0728)
161#define AUDADC_CON6 (AFE_PMICANA_AUDIO_BASE + 0x072a)
162#define AUDDIGMI_CON0 (AFE_PMICANA_AUDIO_BASE + 0x072c)
163#define AUDLSBUF_CON0 (AFE_PMICANA_AUDIO_BASE + 0x072e)
164#define AUDLSBUF_CON1 (AFE_PMICANA_AUDIO_BASE + 0x0730)
165#define AUDENCSPARE_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0732)
166#define AUDENCCLKSQ_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0734)
167#define AUDPREAMPGAIN_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0736)
168#define ZCD_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0738)
169#define ZCD_CON1 (AFE_PMICANA_AUDIO_BASE + 0x073a)
170#define ZCD_CON2 (AFE_PMICANA_AUDIO_BASE + 0x073c)
171#define ZCD_CON3 (AFE_PMICANA_AUDIO_BASE + 0x073e)
172#define ZCD_CON4 (AFE_PMICANA_AUDIO_BASE + 0x0740)
173#define ZCD_CON5 (AFE_PMICANA_AUDIO_BASE + 0x0742)
174#define NCP_CLKDIV_CON0 (AFE_PMICANA_AUDIO_BASE + 0x0744)
175#define NCP_CLKDIV_CON1 (AFE_PMICANA_AUDIO_BASE + 0x0746)
176#else
177#include <mach/upmu_hw.h>
178#endif
179
4b9e9796
S
180/* The valid range of audio analog hardware in PMIC */
181#define AUDTOP_MAX_ADDR_OFFSET (0x079A)
6fa3eb70
S
182//---------------analog pmic register define end ---------------------------------------
183
184typedef struct
185{
186volatile uint16 Suspend_Ana_AFE_UL_DL_CON0;
187volatile uint16 Suspend_Ana_AFE_DL_SRC2_CON0_H;
188volatile uint16 Suspend_Ana_AFE_DL_SRC2_CON0_L;
189volatile uint16 Suspend_Ana_AFE_DL_SDM_CON0;
190volatile uint16 Suspend_Ana_AFE_DL_SDM_CON1;
191volatile uint16 Suspend_Ana_AFE_UL_SRC_CON0_H;
192volatile uint16 Suspend_Ana_AFE_UL_SRC_CON0_L;
193volatile uint16 Suspend_Ana_AFE_UL_SRC_CON1_H;
194volatile uint16 Suspend_Ana_AFE_UL_SRC_CON1_L;
195volatile uint16 Suspend_Ana_AFE_TOP_CON0;
196volatile uint16 Suspend_Ana_AUDIO_TOP_CON0;
197volatile uint16 Suspend_Ana_AFUNC_AUD_CON0;
198volatile uint16 Suspend_Ana_AFUNC_AUD_CON1;
199volatile uint16 Suspend_Ana_AFUNC_AUD_CON2;
200volatile uint16 Suspend_Ana_AFUNC_AUD_CON3;
201volatile uint16 Suspend_Ana_AFUNC_AUD_CON4;
202volatile uint16 Suspend_Ana_AFE_UP8X_FIFO_CFG0;
203volatile uint16 Suspend_Ana_AFE_DL_DC_COMP_CFG0;
204volatile uint16 Suspend_Ana_AFE_DL_DC_COMP_CFG1;
205volatile uint16 Suspend_Ana_AFE_DL_DC_COMP_CFG2;
206volatile uint16 Suspend_Ana_AFE_PMIC_NEWIF_CFG0;
207volatile uint16 Suspend_Ana_AFE_PMIC_NEWIF_CFG1;
208volatile uint16 Suspend_Ana_AFE_PMIC_NEWIF_CFG2;
209volatile uint16 Suspend_Ana_AFE_PMIC_NEWIF_CFG3;
210volatile uint16 Suspend_Ana_AFE_SGEN_CFG0;
211volatile uint16 Suspend_Ana_AFE_SGEN_CFG1;
212
213volatile uint16 Suspend_Ana_TOP_CKPDN;
214volatile uint16 Suspend_Ana_TOP_CKPDN_SET;
215volatile uint16 Suspend_Ana_TOP_CKPDN_CLR;
216volatile uint16 Suspend_Ana_TOP_CKPDN2;
217volatile uint16 Suspend_Ana_TOP_CKPDN2_SET;
218volatile uint16 Suspend_Ana_TOP_CKPDN2_CLR;
219volatile uint16 Suspend_Ana_TOP_CKCON1;
220 volatile uint16 Suspend_Ana_SPK_CON0;
221 volatile uint16 Suspend_Ana_SPK_CON1;
222 volatile uint16 Suspend_Ana_SPK_CON2;
223volatile uint16 Suspend_Ana_SPK_CON3;
224volatile uint16 Suspend_Ana_SPK_CON4;
225volatile uint16 Suspend_Ana_SPK_CON5;
226 volatile uint16 Suspend_Ana_SPK_CON6;
227 volatile uint16 Suspend_Ana_SPK_CON7;
228 volatile uint16 Suspend_Ana_SPK_CON8;
229 volatile uint16 Suspend_Ana_SPK_CON9;
230 volatile uint16 Suspend_Ana_SPK_CON10;
231 volatile uint16 Suspend_Ana_SPK_CON11;
232volatile uint16 Suspend_Ana_AUDDAC_CON0;
233volatile uint16 Suspend_Ana_AUDBUF_CFG0;
234volatile uint16 Suspend_Ana_AUDBUF_CFG1;
235volatile uint16 Suspend_Ana_AUDBUF_CFG2;
236volatile uint16 Suspend_Ana_AUDBUF_CFG3;
237volatile uint16 Suspend_Ana_AUDBUF_CFG4;
238volatile uint16 Suspend_Ana_IBIASDIST_CFG0;
239volatile uint16 Suspend_Ana_AUDACCDEPOP_CFG0;
240volatile uint16 Suspend_Ana_AUD_IV_CFG0;
241volatile uint16 Suspend_Ana_AUDCLKGEN_CFG0;
242volatile uint16 Suspend_Ana_AUDLDO_CFG0;
243volatile uint16 Suspend_Ana_AUDLDO_CFG1;
244volatile uint16 Suspend_Ana_AUDNVREGGLB_CFG0;
245volatile uint16 Suspend_Ana_AUD_NCP0;
246volatile uint16 Suspend_Ana_AUDPREAMP_CON0;
247volatile uint16 Suspend_Ana_AUDADC_CON0;
248volatile uint16 Suspend_Ana_AUDADC_CON1;
249volatile uint16 Suspend_Ana_AUDADC_CON2;
250volatile uint16 Suspend_Ana_AUDADC_CON3;
251volatile uint16 Suspend_Ana_AUDADC_CON4;
252volatile uint16 Suspend_Ana_AUDADC_CON5;
253volatile uint16 Suspend_Ana_AUDADC_CON6;
254volatile uint16 Suspend_Ana_AUDDIGMI_CON0;
255volatile uint16 Suspend_Ana_AUDLSBUF_CON0;
256volatile uint16 Suspend_Ana_AUDLSBUF_CON1;
257volatile uint16 Suspend_Ana_AUDENCSPARE_CON0;
258volatile uint16 Suspend_Ana_AUDENCCLKSQ_CON0;
259volatile uint16 Suspend_Ana_AUDPREAMPGAIN_CON0;
260volatile uint16 Suspend_Ana_ZCD_CON0;
261volatile uint16 Suspend_Ana_ZCD_CON1;
262volatile uint16 Suspend_Ana_ZCD_CON2;
263volatile uint16 Suspend_Ana_ZCD_CON3;
264volatile uint16 Suspend_Ana_ZCD_CON4;
265volatile uint16 Suspend_Ana_ZCD_CON5;
266volatile uint16 Suspend_Ana_NCP_CLKDIV_CON0;
267volatile uint16 Suspend_Ana_NCP_CLKDIV_CON1;
268
269} AudAna_Suspend_Reg;
270
271void Ana_Set_Reg(uint32 offset, uint32 value, uint32 mask);
272uint32 Ana_Get_Reg(uint32 offset);
273void AudDrv_Store_reg_ANA(AudAna_Suspend_Reg *pBackup_reg);
274void AudDrv_Recover_reg_ANA(AudAna_Suspend_Reg *pBackup_reg);
275
276
277
278// for debug usage
279void Ana_Log_Print(void);
280
281#endif
282