Commit | Line | Data |
---|---|---|
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 | * AudioAfe.c | |
21 | * | |
22 | * Project: | |
23 | * -------- | |
24 | * MT8127 Audio Driver Afe Register setting | |
25 | * | |
26 | * Description: | |
27 | * ------------ | |
28 | * Audio register | |
29 | * | |
30 | * Author: | |
31 | * ------- | |
32 | * Luke Liu | |
33 | * Chipeng Chang | |
34 | * | |
35 | *------------------------------------------------------------------------------ | |
36 | * $Revision: #1 $ | |
37 | * $Modtime:$ | |
38 | * $Log:$ | |
39 | * | |
40 | * | |
41 | *******************************************************************************/ | |
42 | ||
43 | /***************************************************************************** | |
44 | * C O M P I L E R F L A G S | |
45 | *****************************************************************************/ | |
46 | ||
47 | ||
48 | /***************************************************************************** | |
49 | * E X T E R N A L R E F E R E N C E S | |
50 | *****************************************************************************/ | |
51 | ||
52 | #include "AudDrv_Common.h" | |
53 | #include "AudDrv_Afe.h" | |
54 | #include "AudDrv_Clk.h" | |
55 | #include "AudDrv_Def.h" | |
56 | ||
57 | /***************************************************************************** | |
58 | * D A T A T Y P E S | |
59 | *****************************************************************************/ | |
60 | ||
61 | ||
62 | ||
63 | /***************************************************************************** | |
64 | * FUNCTION DEFINITION | |
65 | *****************************************************************************/ | |
66 | void Afe_Set_Reg(uint32 offset, uint32 value, uint32 mask); | |
67 | uint32 Afe_Get_Reg(uint32 offset); | |
68 | ||
69 | /***************************************************************************** | |
70 | * FUNCTION IMPLEMENTATION | |
71 | *****************************************************************************/ | |
72 | ||
73 | void Afe_Set_Reg(uint32 offset, uint32 value, uint32 mask) | |
74 | { | |
75 | #ifdef AUDIO_MEM_IOREMAP | |
76 | extern void *AFE_BASE_ADDRESS; | |
77 | //PRINTK_AUDDRV("Afe_Set_Reg AUDIO_MEM_IOREMAP AFE_BASE_ADDRESS = %p\n",AFE_BASE_ADDRESS); | |
78 | volatile uint32 address = (uint32)((char *)AFE_BASE_ADDRESS + offset); | |
79 | #else | |
80 | volatile uint32 address = (AFE_BASE + offset); | |
81 | #endif | |
82 | ||
83 | volatile uint32 *AFE_Register = (volatile uint32 *)address; | |
84 | volatile uint32 val_tmp; | |
85 | ||
4b9e9796 S |
86 | if (offset > AFE_MAX_ADDR_OFFSET) |
87 | return; | |
88 | ||
89 | ||
6fa3eb70 S |
90 | val_tmp = Afe_Get_Reg(offset); |
91 | val_tmp &= (~mask); | |
92 | val_tmp |= (value & mask); | |
93 | mt65xx_reg_sync_writel(val_tmp, AFE_Register); | |
94 | } | |
95 | ||
96 | uint32 Afe_Get_Reg(uint32 offset) | |
97 | { | |
98 | #ifdef AUDIO_MEM_IOREMAP | |
99 | extern void *AFE_BASE_ADDRESS; | |
100 | //PRINTK_AUDDRV("Afe_Get_Reg AUDIO_MEM_IOREMAP AFE_BASE_ADDRESS = %p\ offset = %xn",AFE_BASE_ADDRESS,offset); | |
101 | volatile uint32 address = (uint32)((char *)AFE_BASE_ADDRESS + offset); | |
102 | #else | |
103 | volatile uint32 address = (AFE_BASE + offset); | |
104 | #endif | |
105 | volatile uint32 *value; | |
4b9e9796 S |
106 | |
107 | if (offset > AFE_MAX_ADDR_OFFSET) | |
108 | return 0; | |
109 | ||
110 | ||
6fa3eb70 S |
111 | value = (volatile uint32 *)(address); |
112 | return *value; | |
113 | } | |
114 | ||
115 | void Afe_Log_Print(void) | |
116 | { | |
117 | AudDrv_Clk_On(); | |
118 | printk("+AudDrv Afe_Log_Print \n"); | |
119 | printk("AUDIOAFE_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AUDIOAFE_TOP_CON0)); | |
120 | printk("AUDIO_TOP_CON1 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON1)); | |
121 | printk("AUDIO_TOP_CON2 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON2)); | |
122 | printk("AUDIO_TOP_CON3 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON3)); | |
123 | printk("AFE_DAC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_DAC_CON0)); | |
124 | printk("AFE_DAC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_DAC_CON1)); | |
125 | printk("AFE_I2S_CON = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON)); | |
126 | //printk("AFE_DAIBT_CON0 = 0x%x\n",Afe_Get_Reg(AFE_DAIBT_CON0)); | |
127 | printk("AFE_CONN0 = 0x%x\n", Afe_Get_Reg(AFE_CONN0)); | |
128 | printk("AFE_CONN1 = 0x%x\n", Afe_Get_Reg(AFE_CONN1)); | |
129 | printk("AFE_CONN2 = 0x%x\n", Afe_Get_Reg(AFE_CONN2)); | |
130 | printk("AFE_CONN3 = 0x%x\n", Afe_Get_Reg(AFE_CONN3)); | |
131 | printk("AFE_CONN4 = 0x%x\n", Afe_Get_Reg(AFE_CONN4)); | |
132 | printk("AFE_I2S_CON1 = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON1)); | |
133 | printk("AFE_I2S_CON2 = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON2)); | |
134 | //printk("AFE_MRGIF_CON = 0x%x\n",Afe_Get_Reg(AFE_MRGIF_CON)); | |
135 | ||
136 | printk("AFE_DL1_BASE = 0x%x\n", Afe_Get_Reg(AFE_DL1_BASE)); | |
137 | printk("AFE_DL1_CUR = 0x%x\n", Afe_Get_Reg(AFE_DL1_CUR)); | |
138 | printk("AFE_DL1_END = 0x%x\n", Afe_Get_Reg(AFE_DL1_END)); | |
139 | printk("AFE_I2S_CON3 = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON3)); | |
140 | ||
141 | printk("AFE_DL2_BASE = 0x%x\n", Afe_Get_Reg(AFE_DL2_BASE)); | |
142 | printk("AFE_DL2_CUR = 0x%x\n", Afe_Get_Reg(AFE_DL2_CUR)); | |
143 | printk("AFE_DL2_END = 0x%x\n", Afe_Get_Reg(AFE_DL2_END)); | |
144 | printk("AFE_AWB_BASE = 0x%x\n", Afe_Get_Reg(AFE_AWB_BASE)); | |
145 | printk("AFE_AWB_END = 0x%x\n", Afe_Get_Reg(AFE_AWB_END)); | |
146 | printk("AFE_AWB_CUR = 0x%x\n", Afe_Get_Reg(AFE_AWB_CUR)); | |
147 | printk("AFE_VUL_BASE = 0x%x\n", Afe_Get_Reg(AFE_VUL_BASE)); | |
148 | printk("AFE_VUL_END = 0x%x\n", Afe_Get_Reg(AFE_VUL_END)); | |
149 | printk("AFE_VUL_CUR = 0x%x\n", Afe_Get_Reg(AFE_VUL_CUR)); | |
150 | //printk("AFE_DAI_BASE = 0x%x\n",Afe_Get_Reg(AFE_DAI_BASE)); | |
151 | //printk("AFE_DAI_END = 0x%x\n",Afe_Get_Reg(AFE_DAI_END)); | |
152 | //printk("AFE_DAI_CUR = 0x%x\n",Afe_Get_Reg(AFE_DAI_CUR)); | |
153 | //printk("AFE_IRQ_CON = 0x%x\n",Afe_Get_Reg(AFE_IRQ_CON)); | |
154 | ||
155 | printk("AFE_MEMIF_MON0 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON0)); | |
156 | printk("AFE_MEMIF_MON1 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON1)); | |
157 | printk("AFE_MEMIF_MON2 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON2)); | |
158 | //printk("AFE_MEMIF_MON3 = 0x%x\n",Afe_Get_Reg(AFE_MEMIF_MON3)); | |
159 | printk("AFE_MEMIF_MON4 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON4)); | |
160 | //printk("AFE_FOC_CON = 0x%x\n",Afe_Get_Reg(AFE_FOC_CON)); | |
161 | //printk("AFE_FOC_CON1 = 0x%x\n",Afe_Get_Reg(AFE_FOC_CON1)); | |
162 | //printk("AFE_FOC_CON2 = 0x%x\n",Afe_Get_Reg(AFE_FOC_CON2)); | |
163 | //printk("AFE_FOC_CON3 = 0x%x\n",Afe_Get_Reg(AFE_FOC_CON3)); | |
164 | //printk("AFE_FOC_CON4 = 0x%x\n",Afe_Get_Reg(AFE_FOC_CON4)); | |
165 | //printk("AFE_FOC_CON5 = 0x%x\n",Afe_Get_Reg(AFE_FOC_CON5)); | |
166 | //printk("AFE_MON_STEP = 0x%x\n",Afe_Get_Reg(AFE_MON_STEP)); | |
167 | printk("AFE_ADDA_DL_SRC2_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_DL_SRC2_CON0)); | |
168 | printk("AFE_ADDA_DL_SRC2_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_DL_SRC2_CON1)); | |
169 | printk("AFE_ADDA_UL_SRC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_UL_SRC_CON0)); | |
170 | printk("AFE_ADDA_UL_SRC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_UL_SRC_CON1)); | |
171 | printk("AFE_ADDA_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_TOP_CON0)); | |
172 | printk("AFE_ADDA_UL_DL_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_UL_DL_CON0)); | |
173 | printk("AFE_ADDA_SRC_DEBUG = 0x%x\n", Afe_Get_Reg(AFE_ADDA_SRC_DEBUG)); | |
174 | printk("AFE_ADDA_SRC_DEBUG_MON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_SRC_DEBUG_MON0)); | |
175 | printk("AFE_ADDA_SRC_DEBUG_MON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_SRC_DEBUG_MON1)); | |
176 | printk("AFE_ADDA_NEWIF_CFG0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_NEWIF_CFG0)); | |
177 | printk("AFE_ADDA_NEWIF_CFG1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_NEWIF_CFG1)); | |
178 | printk("AFE_SIDETONE_DEBUG = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_DEBUG)); | |
179 | printk("AFE_SIDETONE_MON = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_MON)); | |
180 | printk("AFE_SIDETONE_CON0 = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_CON0)); | |
181 | printk("AFE_SIDETONE_COEFF = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_COEFF)); | |
182 | printk("AFE_SIDETONE_CON1 = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_CON1)); | |
183 | printk("AFE_SIDETONE_GAIN = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_GAIN)); | |
184 | printk("AFE_SGEN_CON0 = 0x%x\n", Afe_Get_Reg(AFE_SGEN_CON0)); | |
185 | //printk("AFE_MRG_MON0 = 0x%x\n",Afe_Get_Reg(AFE_MRG_MON0)); | |
186 | //printk("AFE_MRG_MON1 = 0x%x\n",Afe_Get_Reg(AFE_MRG_MON1)); | |
187 | //printk("AFE_MRG_MON2 = 0x%x\n",Afe_Get_Reg(AFE_MRG_MON2)); | |
188 | printk("AFE_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AFE_TOP_CON0)); | |
189 | printk("AFE_PREDIS_CON0 = 0x%x\n", Afe_Get_Reg(AFE_PREDIS_CON0)); //AFE_ADDA_PREDIS_CON0 | |
190 | printk("AFE_PREDIS_CON1 = 0x%x\n", Afe_Get_Reg(AFE_PREDIS_CON1)); //AFE_ADDA_PREDIS_CON1 | |
191 | ||
192 | printk("AFE_MOD_PCM_BASE = 0x%x\n", Afe_Get_Reg(AFE_MOD_PCM_BASE));//AFE_MOD_DAI_BASE | |
193 | printk("AFE_MOD_PCM_END = 0x%x\n", Afe_Get_Reg(AFE_MOD_PCM_END));//AFE_MOD_DAI_END | |
194 | printk("AFE_MOD_PCM_CUR = 0x%x\n", Afe_Get_Reg(AFE_MOD_PCM_CUR));//AFE_MOD_DAI_CUR | |
195 | ||
196 | printk("AFE_HDMI_OUT_CON0 = 0x%x\n", Afe_Get_Reg(AFE_HDMI_OUT_CON0)); | |
197 | printk("AFE_HDMI_OUT_BASE = 0x%x\n", Afe_Get_Reg(AFE_HDMI_OUT_BASE)); | |
198 | printk("AFE_HDMI_OUT_CUR = 0x%x\n", Afe_Get_Reg(AFE_HDMI_OUT_CUR)); | |
199 | printk("AFE_HDMI_OUT_END = 0x%x\n", Afe_Get_Reg(AFE_HDMI_OUT_END)); | |
200 | printk("AFE_SPDIF_OUT_CON0 = 0x%x\n", Afe_Get_Reg(AFE_SPDIF_OUT_CON0)); | |
201 | printk("AFE_SPDIF_BASE = 0x%x\n", Afe_Get_Reg(AFE_SPDIF_BASE)); | |
202 | printk("AFE_SPDIF_CUR = 0x%x\n", Afe_Get_Reg(AFE_SPDIF_CUR)); | |
203 | printk("AFE_SPDIF_END = 0x%x\n", Afe_Get_Reg(AFE_SPDIF_END)); | |
204 | printk("AFE_HDMI_CONN0 = 0x%x\n", Afe_Get_Reg(AFE_HDMI_CONN0)); | |
205 | printk("AFE_8CH_I2S_OUT_CON = 0x%x\n", Afe_Get_Reg(AFE_8CH_I2S_OUT_CON)); | |
206 | printk("AFE_HDMI_CONN1 = 0x%x\n", Afe_Get_Reg(AFE_HDMI_CONN1)); | |
207 | ||
208 | printk("AFE_IRQ_MCU_CON = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CON)); | |
209 | printk("AFE_IRQ_MCU_STATUS = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_STATUS)); | |
210 | printk("AFE_IRQ_CLR = 0x%x\n", Afe_Get_Reg(AFE_IRQ_CLR)); | |
211 | printk("AFE_IRQ_MCU_CNT1 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CNT1)); | |
212 | printk("AFE_IRQ_MCU_CNT2 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CNT2)); | |
213 | printk("AFE_IRQ_MCU_MON2 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_MON2)); | |
214 | printk("AFE_IRQ_MCU_CNT5 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CNT5)); | |
215 | printk("AFE_IRQ1_MCU_CNT_MON = 0x%x\n", Afe_Get_Reg(AFE_IRQ1_MCU_CNT_MON)); | |
216 | printk("AFE_IRQ2_MCU_CNT_MON = 0x%x\n", Afe_Get_Reg(AFE_IRQ2_MCU_CNT_MON)); | |
217 | printk("AFE_IRQ1_MCU_EN_CNT_MON = 0x%x\n", Afe_Get_Reg(AFE_IRQ1_MCU_EN_CNT_MON)); | |
218 | printk("AFE_IRQ5_MCU_EN_CNT_MON = 0x%x\n", Afe_Get_Reg(AFE_IRQ5_MCU_EN_CNT_MON)); | |
219 | //printk("AFE_MEMIF_MINLEN = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MINLEN)); | |
220 | printk("AFE_MEMIF_MAXLEN = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MAXLEN)); | |
221 | printk("AFE_MEMIF_PBUF_SIZE = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_PBUF_SIZE)); | |
222 | ||
223 | printk("AFE_GAIN1_CON0 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON0)); | |
224 | printk("AFE_GAIN1_CON1 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON1)); | |
225 | printk("AFE_GAIN1_CON2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON2)); | |
226 | printk("AFE_GAIN1_CON3 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON3)); | |
227 | printk("AFE_GAIN1_CONN = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CONN)); | |
228 | printk("AFE_GAIN1_CUR = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CUR)); | |
229 | printk("AFE_GAIN2_CON0 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON0)); | |
230 | printk("AFE_GAIN2_CON1 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON1)); | |
231 | printk("AFE_GAIN2_CON2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON2)); | |
232 | printk("AFE_GAIN2_CON3 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON3)); | |
233 | printk("AFE_GAIN2_CONN = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CONN)); | |
234 | printk("AFE_GAIN2_CUR = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CUR)); | |
235 | printk("AFE_GAIN2_CONN2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CONN2)); | |
236 | ||
237 | printk("AFE_IEC_CFG = 0x%x\n", Afe_Get_Reg(AFE_IEC_CFG)); | |
238 | printk("AFE_IEC_NSNUM = 0x%x\n", Afe_Get_Reg(AFE_IEC_NSNUM)); | |
239 | printk("AFE_IEC_BURST_INFO = 0x%x\n", Afe_Get_Reg(AFE_IEC_BURST_INFO)); | |
240 | printk("AFE_IEC_BURST_LEN = 0x%x\n", Afe_Get_Reg(AFE_IEC_BURST_LEN)); | |
241 | printk("AFE_IEC_NSADR = 0x%x\n", Afe_Get_Reg(AFE_IEC_NSADR)); | |
242 | printk("AFE_IEC_CHL_STAT0 = 0x%x\n", Afe_Get_Reg(AFE_IEC_CHL_STAT0)); | |
243 | printk("AFE_IEC_CHL_STAT1 = 0x%x\n", Afe_Get_Reg(AFE_IEC_CHL_STAT1)); | |
244 | printk("AFE_IEC_CHR_STAT0 = 0x%x\n", Afe_Get_Reg(AFE_IEC_CHR_STAT0)); | |
245 | printk("AFE_IEC_CHR_STAT1 = 0x%x\n", Afe_Get_Reg(AFE_IEC_CHR_STAT1)); | |
246 | ||
247 | printk("FPGA_CFG2 = 0x%x\n", Afe_Get_Reg(FPGA_CFG2)); | |
248 | printk("FPGA_CFG3 = 0x%x\n", Afe_Get_Reg(FPGA_CFG3)); | |
249 | printk("FPGA_CFG0 = 0x%x\n", Afe_Get_Reg(FPGA_CFG0)); | |
250 | printk("FPGA_CFG1 = 0x%x\n", Afe_Get_Reg(FPGA_CFG1)); | |
251 | printk("FPGA_STC = 0x%x\n", Afe_Get_Reg(FPGA_STC)); | |
252 | ||
253 | printk("AFE_ASRC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON0)); | |
254 | printk("AFE_ASRC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON1)); | |
255 | printk("AFE_ASRC_CON2 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON2)); | |
256 | printk("AFE_ASRC_CON3 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON3)); | |
257 | printk("AFE_ASRC_CON4 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON4)); | |
258 | printk("AFE_ASRC_CON5 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON5)); | |
259 | printk("AFE_ASRC_CON6 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON6)); | |
260 | printk("AFE_ASRC_CON7 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON7)); | |
261 | printk("AFE_ASRC_CON8 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON8)); | |
262 | printk("AFE_ASRC_CON9 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON9)); | |
263 | printk("AFE_ASRC_CON10 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON10)); | |
264 | printk("AFE_ASRC_CON11 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON11)); | |
265 | printk("PCM_INTF_CON1 = 0x%x\n", Afe_Get_Reg(PCM_INTF_CON1)); | |
266 | printk("PCM_INTF_CON2 = 0x%x\n", Afe_Get_Reg(PCM_INTF_CON2)); | |
267 | printk("PCM2_INTF_CON = 0x%x\n", Afe_Get_Reg(PCM2_INTF_CON)); | |
268 | ||
269 | // | |
270 | ||
271 | ||
272 | ||
273 | printk("AFE_ASRC_CON13 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON13)); | |
274 | printk("AFE_ASRC_CON14 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON14)); | |
275 | printk("AFE_ASRC_CON15 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON15)); | |
276 | printk("AFE_ASRC_CON16 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON16)); | |
277 | printk("AFE_ASRC_CON17 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON17)); | |
278 | printk("AFE_ASRC_CON18 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON18)); | |
279 | printk("AFE_ASRC_CON19 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON19)); | |
280 | printk("AFE_ASRC_CON20 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON20)); | |
281 | printk("AFE_ASRC_CON21 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON21)); | |
282 | ||
283 | AudDrv_Clk_Off(); | |
284 | printk("-AudDrv Afe_Log_Print \n"); | |
285 | } | |
286 | ||
287 | void AP_Set_Reg(uint32 offset, uint32 value, uint32 mask) | |
288 | { | |
289 | extern void *AFE_BASE_ADDRESS; | |
290 | volatile uint32 address = (uint32)(offset); | |
291 | ||
292 | volatile uint32 *AP_Register = (volatile uint32 *)address; | |
293 | volatile uint32 val_tmp; | |
294 | ||
295 | //PRINTK_AFE_REG("Afe_Set_Reg offset=%x, value=%x, mask=%x \n",offset,value,mask); | |
296 | val_tmp = AP_Get_Reg(offset); | |
297 | val_tmp &= (~mask); | |
298 | val_tmp |= (value & mask); | |
299 | ||
300 | //printk("AP_Set_Reg offset=%08x val=%08x (AFE_BASE_ADDRESS=%08x)\n", AP_Register, val_tmp, AFE_BASE_ADDRESS); | |
301 | mt65xx_reg_sync_writel(val_tmp, AP_Register); | |
302 | } | |
303 | ||
304 | uint32 AP_Get_Reg(uint32 offset) | |
305 | { | |
306 | extern void *AFE_BASE_ADDRESS; | |
307 | volatile uint32 address = (uint32)(offset); | |
308 | ||
309 | volatile uint32 *value; | |
310 | value = (volatile uint32 *)(address); | |
311 | ||
312 | //printk("AP_Get_Reg offset=%08x val=%08x (AFE_BASE_ADDRESS=%08x)\n", offset, *value, AFE_BASE_ADDRESS); | |
313 | return *value; | |
314 | } | |
315 | ||
316 | ||
317 | // export symbols for other module using | |
318 | EXPORT_SYMBOL(Afe_Set_Reg); | |
319 | EXPORT_SYMBOL(Afe_Get_Reg); | |
320 | EXPORT_SYMBOL(Afe_Log_Print); | |
321 | EXPORT_SYMBOL(AP_Set_Reg); | |
322 | EXPORT_SYMBOL(AP_Get_Reg); | |
323 |