AudDrv_Afe.c 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  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.h
  21. *
  22. * Project:
  23. * --------
  24. * MT6583 Audio Driver Afe Register setting
  25. *
  26. * Description:
  27. * ------------
  28. * Audio register
  29. *
  30. * Author:
  31. * -------
  32. * Chipeng Chang
  33. *
  34. *------------------------------------------------------------------------------
  35. *
  36. *
  37. *******************************************************************************/
  38. /*****************************************************************************
  39. * C O M P I L E R F L A G S
  40. *****************************************************************************/
  41. /*****************************************************************************
  42. * E X T E R N A L R E F E R E N C E S
  43. *****************************************************************************/
  44. #include "AudDrv_Common.h"
  45. #include "AudDrv_Afe.h"
  46. #include "AudDrv_Clk.h"
  47. #include "AudDrv_Def.h"
  48. #include <linux/types.h>
  49. /*****************************************************************************
  50. * D A T A T Y P E S
  51. *****************************************************************************/
  52. /*****************************************************************************
  53. * FUNCTION IMPLEMENTATION
  54. *****************************************************************************/
  55. static bool CheckOffset(uint32 offset)
  56. {
  57. if (offset > AFE_MAXLENGTH)
  58. return false;
  59. return true;
  60. }
  61. /*****************************************************************************
  62. * FUNCTION
  63. * Auddrv_Reg_map
  64. *
  65. * DESCRIPTION
  66. * Auddrv_Reg_map
  67. *
  68. *****************************************************************************
  69. */
  70. /*
  71. * global variable control
  72. */
  73. static const unsigned int SramCaptureOffSet = (16 * 1024);
  74. /* address for ioremap audio hardware register */
  75. void *AFE_BASE_ADDRESS = 0;
  76. void *AFE_SRAM_ADDRESS = 0;
  77. void *AFE_TOP_ADDRESS = 0;
  78. void *AFE_CLK_ADDRESS = 0;
  79. void *AFE_INFRA_ADDRESS = 0;
  80. void *APLL_BASE_ADDRESS = 0;
  81. void Auddrv_Reg_map(void)
  82. {
  83. AFE_SRAM_ADDRESS = ioremap_nocache(AFE_INTERNAL_SRAM_PHY_BASE, AFE_INTERNAL_SRAM_SIZE);
  84. #ifndef CONFIG_OF
  85. AFE_BASE_ADDRESS = ioremap_nocache(AUDIO_HW_PHYSICAL_BASE, 0x1000);
  86. #endif
  87. /* temp for hardawre code set 0x1000629c = 0xd */
  88. AFE_TOP_ADDRESS = ioremap_nocache(AUDIO_POWER_TOP, 0x1000);
  89. AFE_INFRA_ADDRESS = ioremap_nocache(AUDIO_INFRA_BASE, 0x1000);
  90. /* temp for hardawre code set clg cfg */
  91. AFE_CLK_ADDRESS = ioremap_nocache(AUDIO_CLKCFG_PHYSICAL_BASE, 0x1000);
  92. /* temp for hardawre code set pll cfg */
  93. APLL_BASE_ADDRESS = ioremap_nocache(APLL_PHYSICAL_BASE, 0x1000);
  94. }
  95. dma_addr_t Get_Afe_Sram_Phys_Addr(void)
  96. {
  97. return (dma_addr_t) AFE_INTERNAL_SRAM_PHY_BASE;
  98. }
  99. dma_addr_t Get_Afe_Sram_Capture_Phys_Addr(void)
  100. {
  101. return (dma_addr_t) (AFE_INTERNAL_SRAM_PHY_BASE + SramCaptureOffSet);
  102. }
  103. void *Get_Afe_SramBase_Pointer()
  104. {
  105. return AFE_SRAM_ADDRESS;
  106. }
  107. void *Get_Afe_SramCaptureBase_Pointer()
  108. {
  109. char *CaptureSramPointer = (char *)(AFE_SRAM_ADDRESS) + SramCaptureOffSet;
  110. return (void *)CaptureSramPointer;
  111. }
  112. void *Get_Afe_Powertop_Pointer()
  113. {
  114. return AFE_TOP_ADDRESS;
  115. }
  116. void *Get_AudClk_Pointer()
  117. {
  118. return AFE_CLK_ADDRESS;
  119. }
  120. void *Get_Afe_Infra_Pointer()
  121. {
  122. return AFE_INFRA_ADDRESS;
  123. }
  124. void Afe_Set_Reg(uint32 offset, uint32 value, uint32 mask)
  125. {
  126. volatile long address;
  127. volatile uint32 *AFE_Register;
  128. volatile uint32 val_tmp;
  129. if (CheckOffset(offset) == false)
  130. return;
  131. #ifdef AUDIO_MEM_IOREMAP
  132. PRINTK_AUDDRV("Afe_Set_Reg AUDIO_MEM_IOREMAP AFE_BASE_ADDRESS = %p\n", AFE_BASE_ADDRESS);
  133. address = (long)((char *)AFE_BASE_ADDRESS + offset);
  134. #else
  135. address = (long)(AFE_BASE + offset);
  136. #endif
  137. AFE_Register = (volatile uint32 *)address;
  138. PRINTK_AFE_REG("Afe_Set_Reg offset=%x, value=%x, mask=%x\n", offset, value, mask);
  139. val_tmp = Afe_Get_Reg(offset);
  140. val_tmp &= (~mask);
  141. val_tmp |= (value & mask);
  142. mt_reg_sync_writel(val_tmp, AFE_Register);
  143. }
  144. EXPORT_SYMBOL(Afe_Set_Reg);
  145. uint32 Afe_Get_Reg(uint32 offset)
  146. {
  147. volatile long address;
  148. volatile uint32 *value;
  149. if (CheckOffset(offset) == false)
  150. return 0xffffffff;
  151. #ifdef AUDIO_MEM_IOREMAP
  152. PRINTK_AUDDRV("Afe_Get_Reg AUDIO_MEM_IOREMAP AFE_BASE_ADDRESS = %p, offset = %x\n",
  153. AFE_BASE_ADDRESS, offset);
  154. address = (long)((char *)AFE_BASE_ADDRESS + offset);
  155. #else
  156. address = (long)(AFE_BASE + offset);
  157. #endif
  158. value = (volatile uint32 *)(address);
  159. PRINTK_AFE_REG("Afe_Get_Reg offset=%x address = %x value = 0x%x\n", offset, address,
  160. *value);
  161. return *value;
  162. }
  163. EXPORT_SYMBOL(Afe_Get_Reg);
  164. /* function to Set Cfg */
  165. uint32 GetClkCfg(uint32 offset)
  166. {
  167. volatile long address = (long)((char *)AFE_CLK_ADDRESS + offset);
  168. volatile uint32 *value;
  169. value = (volatile uint32 *)(address);
  170. /* PRINTK_AUDDRV("GetClkCfg offset=%x address=%x value=%x\n", offset, address, *value); */
  171. return *value;
  172. }
  173. EXPORT_SYMBOL(GetClkCfg);
  174. void SetClkCfg(uint32 offset, uint32 value, uint32 mask)
  175. {
  176. volatile long address = (long)((char *)AFE_CLK_ADDRESS + offset);
  177. volatile uint32 *AFE_Register = (volatile uint32 *)address;
  178. volatile uint32 val_tmp;
  179. PRINTK_AUDDRV("SetClkCfg offset=%x, value=%x, mask=%x\n", offset, value, mask);
  180. val_tmp = GetClkCfg(offset);
  181. val_tmp &= (~mask);
  182. val_tmp |= (value & mask);
  183. mt_reg_sync_writel(val_tmp, AFE_Register);
  184. }
  185. EXPORT_SYMBOL(SetClkCfg);
  186. /* function to Set Cfg */
  187. uint32 GetInfraCfg(uint32 offset)
  188. {
  189. volatile long address = (long)((char *)AFE_INFRA_ADDRESS + offset);
  190. volatile uint32 *value;
  191. value = (volatile uint32 *)(address);
  192. /* PRINTK_AUDDRV("GetInfraCfg offset=%x address=%x value=%x\n", offset, address, *value); */
  193. return *value;
  194. }
  195. void SetInfraCfg(uint32 offset, uint32 value, uint32 mask)
  196. {
  197. volatile long address = (long)((char *)AFE_INFRA_ADDRESS + offset);
  198. volatile uint32 *AFE_Register = (volatile uint32 *)address;
  199. volatile uint32 val_tmp;
  200. PRINTK_AUDDRV("SetInfraCfg offset=%x, value=%x, mask=%x\n", offset, value, mask);
  201. val_tmp = GetInfraCfg(offset);
  202. val_tmp &= (~mask);
  203. val_tmp |= (value & mask);
  204. mt_reg_sync_writel(val_tmp, AFE_Register);
  205. }
  206. /* function to Set pll */
  207. uint32 GetpllCfg(uint32 offset)
  208. {
  209. volatile long address = (long)((char *)APLL_BASE_ADDRESS + offset);
  210. volatile uint32 *value;
  211. value = (volatile uint32 *)(address);
  212. /* PRINTK_AUDDRV("GetClkCfg offset=%x address=%x value=%x\n", offset, address, *value); */
  213. return *value;
  214. }
  215. EXPORT_SYMBOL(GetInfraCfg);
  216. void SetpllCfg(uint32 offset, uint32 value, uint32 mask)
  217. {
  218. volatile long address = (long)((char *)APLL_BASE_ADDRESS + offset);
  219. volatile uint32 *AFE_Register = (volatile uint32 *)address;
  220. volatile uint32 val_tmp;
  221. PRINTK_AUDDRV("SetpllCfg offset=%x, value=%x, mask=%x\n", offset, value, mask);
  222. val_tmp = GetpllCfg(offset);
  223. val_tmp &= (~mask);
  224. val_tmp |= (value & mask);
  225. mt_reg_sync_writel(val_tmp, AFE_Register);
  226. }
  227. EXPORT_SYMBOL(SetInfraCfg);
  228. void Afe_Log_Print(void)
  229. {
  230. AudDrv_Clk_On();
  231. pr_debug("+AudDrv Afe_Log_Print\n");
  232. pr_debug("AUDIO_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON0));
  233. pr_debug("AUDIO_TOP_CON1 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON1));
  234. pr_debug("AUDIO_TOP_CON2 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON2));
  235. pr_debug("AUDIO_TOP_CON3 = 0x%x\n", Afe_Get_Reg(AUDIO_TOP_CON3));
  236. pr_debug("AFE_DAC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_DAC_CON0));
  237. pr_debug("AFE_DAC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_DAC_CON1));
  238. pr_debug("AFE_I2S_CON = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON));
  239. pr_debug("AFE_DAIBT_CON0 = 0x%x\n", Afe_Get_Reg(AFE_DAIBT_CON0));
  240. pr_debug("AFE_CONN0 = 0x%x\n", Afe_Get_Reg(AFE_CONN0));
  241. pr_debug("AFE_CONN1 = 0x%x\n", Afe_Get_Reg(AFE_CONN1));
  242. pr_debug("AFE_CONN2 = 0x%x\n", Afe_Get_Reg(AFE_CONN2));
  243. pr_debug("AFE_CONN3 = 0x%x\n", Afe_Get_Reg(AFE_CONN3));
  244. pr_debug("AFE_CONN4 = 0x%x\n", Afe_Get_Reg(AFE_CONN4));
  245. pr_debug("AFE_I2S_CON1 = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON1));
  246. pr_debug("AFE_I2S_CON2 = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON2));
  247. pr_debug("AFE_MRGIF_CON = 0x%x\n", Afe_Get_Reg(AFE_MRGIF_CON));
  248. pr_debug("AFE_DL1_BASE = 0x%x\n", Afe_Get_Reg(AFE_DL1_BASE));
  249. pr_debug("AFE_DL1_CUR = 0x%x\n", Afe_Get_Reg(AFE_DL1_CUR));
  250. pr_debug("AFE_DL1_END = 0x%x\n", Afe_Get_Reg(AFE_DL1_END));
  251. pr_debug("AFE_DL1_D2_BASE = 0x%x\n", Afe_Get_Reg(AFE_DL1_D2_BASE));
  252. pr_debug("AFE_DL1_D2_CUR = 0x%x\n", Afe_Get_Reg(AFE_DL1_D2_CUR));
  253. pr_debug("AFE_DL1_D2_END = 0x%x\n", Afe_Get_Reg(AFE_DL1_D2_END));
  254. pr_debug("AFE_VUL_D2_BASE = 0x%x\n", Afe_Get_Reg(AFE_VUL_D2_BASE));
  255. pr_debug("AFE_VUL_D2_END = 0x%x\n", Afe_Get_Reg(AFE_VUL_D2_END));
  256. pr_debug("AFE_VUL_D2_CUR = 0x%x\n", Afe_Get_Reg(AFE_VUL_D2_CUR));
  257. pr_debug("AFE_I2S_CON3 = 0x%x\n", Afe_Get_Reg(AFE_I2S_CON3));
  258. pr_debug("AFE_DL2_BASE = 0x%x\n", Afe_Get_Reg(AFE_DL2_BASE));
  259. pr_debug("AFE_DL2_CUR = 0x%x\n", Afe_Get_Reg(AFE_DL2_CUR));
  260. pr_debug("AFE_DL2_END = 0x%x\n", Afe_Get_Reg(AFE_DL2_END));
  261. pr_debug("AFE_CONN5 = 0x%x\n", Afe_Get_Reg(AFE_CONN5));
  262. pr_debug("AFE_CONN_24BIT = 0x%x\n", Afe_Get_Reg(AFE_CONN_24BIT));
  263. pr_debug("AFE_AWB_BASE = 0x%x\n", Afe_Get_Reg(AFE_AWB_BASE));
  264. pr_debug("AFE_AWB_END = 0x%x\n", Afe_Get_Reg(AFE_AWB_END));
  265. pr_debug("AFE_AWB_CUR = 0x%x\n", Afe_Get_Reg(AFE_AWB_CUR));
  266. pr_debug("AFE_VUL_BASE = 0x%x\n", Afe_Get_Reg(AFE_VUL_BASE));
  267. pr_debug("AFE_VUL_END = 0x%x\n", Afe_Get_Reg(AFE_VUL_END));
  268. pr_debug("AFE_VUL_CUR = 0x%x\n", Afe_Get_Reg(AFE_VUL_CUR));
  269. pr_debug("AFE_DAI_BASE = 0x%x\n", Afe_Get_Reg(AFE_DAI_BASE));
  270. pr_debug("AFE_DAI_END = 0x%x\n", Afe_Get_Reg(AFE_DAI_END));
  271. pr_debug("AFE_DAI_CUR = 0x%x\n", Afe_Get_Reg(AFE_DAI_CUR));
  272. pr_debug("AFE_CONN6 = 0x%x\n", Afe_Get_Reg(AFE_CONN6));
  273. pr_debug("AFE_MEMIF_MSB = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MSB));
  274. pr_debug("AFE_MEMIF_MON0 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON0));
  275. pr_debug("AFE_MEMIF_MON1 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON1));
  276. pr_debug("AFE_MEMIF_MON2 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON2));
  277. pr_debug("AFE_MEMIF_MON4 = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MON4));
  278. pr_debug("AFE_ADDA_DL_SRC2_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_DL_SRC2_CON0));
  279. pr_debug("AFE_ADDA_DL_SRC2_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_DL_SRC2_CON1));
  280. pr_debug("AFE_ADDA_UL_SRC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_UL_SRC_CON0));
  281. pr_debug("AFE_ADDA_UL_SRC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_UL_SRC_CON1));
  282. pr_debug("AFE_ADDA_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_TOP_CON0));
  283. pr_debug("AFE_ADDA_UL_DL_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_UL_DL_CON0));
  284. pr_debug("AFE_ADDA_SRC_DEBUG = 0x%x\n", Afe_Get_Reg(AFE_ADDA_SRC_DEBUG));
  285. pr_debug("AFE_ADDA_SRC_DEBUG_MON0= 0x%x\n", Afe_Get_Reg(AFE_ADDA_SRC_DEBUG_MON0));
  286. pr_debug("AFE_ADDA_SRC_DEBUG_MON1= 0x%x\n", Afe_Get_Reg(AFE_ADDA_SRC_DEBUG_MON1));
  287. pr_debug("AFE_ADDA_NEWIF_CFG0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_NEWIF_CFG0));
  288. pr_debug("AFE_ADDA_NEWIF_CFG1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_NEWIF_CFG1));
  289. pr_debug("AFE_SIDETONE_DEBUG = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_DEBUG));
  290. pr_debug("AFE_SIDETONE_MON = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_MON));
  291. pr_debug("AFE_SIDETONE_CON0 = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_CON0));
  292. pr_debug("AFE_SIDETONE_COEFF = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_COEFF));
  293. pr_debug("AFE_SIDETONE_CON1 = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_CON1));
  294. pr_debug("AFE_SIDETONE_GAIN = 0x%x\n", Afe_Get_Reg(AFE_SIDETONE_GAIN));
  295. pr_debug("AFE_SGEN_CON0 = 0x%x\n", Afe_Get_Reg(AFE_SGEN_CON0));
  296. pr_debug("AFE_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AFE_TOP_CON0));
  297. pr_debug("AFE_ADDA_PREDIS_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_PREDIS_CON0));
  298. pr_debug("AFE_ADDA_PREDIS_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA_PREDIS_CON1));
  299. pr_debug("AFE_MRGIF_MON0 = 0x%x\n", Afe_Get_Reg(AFE_MRGIF_MON0));
  300. pr_debug("AFE_MRGIF_MON1 = 0x%x\n", Afe_Get_Reg(AFE_MRGIF_MON1));
  301. pr_debug("AFE_MRGIF_MON2 = 0x%x\n", Afe_Get_Reg(AFE_MRGIF_MON2));
  302. pr_debug("AFE_MOD_DAI_BASE = 0x%x\n", Afe_Get_Reg(AFE_MOD_DAI_BASE));
  303. pr_debug("AFE_MOD_DAI_END = 0x%x\n", Afe_Get_Reg(AFE_MOD_DAI_END));
  304. pr_debug("AFE_MOD_DAI_CUR = 0x%x\n", Afe_Get_Reg(AFE_MOD_DAI_CUR));
  305. pr_debug("AFE_IRQ_MCU_CON = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CON));
  306. pr_debug("AFE_IRQ_MCU_STATUS = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_STATUS));
  307. pr_debug("AFE_IRQ_MCU_CLR = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CLR));
  308. pr_debug("AFE_IRQ_MCU_CNT1 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CNT1));
  309. pr_debug("AFE_IRQ_MCU_CNT2 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CNT2));
  310. pr_debug("AFE_IRQ_MCU_EN = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_EN));
  311. pr_debug("AFE_IRQ_MCU_MON2 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_MON2));
  312. pr_debug("AFE_IRQ_CNT5 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_CNT5));
  313. pr_debug("AFE_IRQ1_MCU_CNT_MON = 0x%x\n", Afe_Get_Reg(AFE_IRQ1_MCU_CNT_MON));
  314. pr_debug("AFE_IRQ2_MCU_CNT_MON = 0x%x\n", Afe_Get_Reg(AFE_IRQ2_MCU_CNT_MON));
  315. pr_debug("AFE_IRQ1_MCU_EN_CNT_MON= 0x%x\n", Afe_Get_Reg(AFE_IRQ1_MCU_EN_CNT_MON));
  316. pr_debug("AFE_IRQ_DEBUG = 0x%x\n", Afe_Get_Reg(AFE_IRQ_DEBUG));
  317. pr_debug("AFE_MEMIF_MAXLEN = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_MAXLEN));
  318. pr_debug("AFE_MEMIF_PBUF_SIZE = 0x%x\n", Afe_Get_Reg(AFE_MEMIF_PBUF_SIZE));
  319. pr_debug("AFE_IRQ_MCU_CNT7 = 0x%x\n", Afe_Get_Reg(AFE_IRQ_MCU_CNT7));
  320. pr_debug("AFE_APLL1_TUNER_CFG = 0x%x\n", Afe_Get_Reg(AFE_APLL1_TUNER_CFG));
  321. pr_debug("AFE_APLL2_TUNER_CFG = 0x%x\n", Afe_Get_Reg(AFE_APLL2_TUNER_CFG));
  322. pr_debug("AFE_GAIN1_CON0 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON0));
  323. pr_debug("AFE_GAIN1_CON1 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON1));
  324. pr_debug("AFE_GAIN1_CON2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON2));
  325. pr_debug("AFE_GAIN1_CON3 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CON3));
  326. pr_debug("AFE_GAIN1_CONN = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CONN));
  327. pr_debug("AFE_GAIN1_CUR = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CUR));
  328. pr_debug("AFE_GAIN2_CON0 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON0));
  329. pr_debug("AFE_GAIN2_CON1 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON1));
  330. pr_debug("AFE_GAIN2_CON2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON2));
  331. pr_debug("AFE_GAIN2_CON3 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CON3));
  332. pr_debug("AFE_GAIN2_CONN = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CONN));
  333. pr_debug("AFE_GAIN2_CUR = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CUR));
  334. pr_debug("AFE_GAIN2_CONN2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CONN2));
  335. pr_debug("AFE_GAIN2_CONN3 = 0x%x\n", Afe_Get_Reg(AFE_GAIN2_CONN3));
  336. pr_debug("AFE_GAIN1_CONN2 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CONN2));
  337. pr_debug("AFE_GAIN1_CONN3 = 0x%x\n", Afe_Get_Reg(AFE_GAIN1_CONN3));
  338. pr_debug("AFE_CONN7 = 0x%x\n", Afe_Get_Reg(AFE_CONN7));
  339. pr_debug("AFE_CONN8 = 0x%x\n", Afe_Get_Reg(AFE_CONN8));
  340. pr_debug("AFE_CONN9 = 0x%x\n", Afe_Get_Reg(AFE_CONN9));
  341. pr_debug("AFE_CONN10 = 0x%x\n", Afe_Get_Reg(AFE_CONN10));
  342. pr_debug("FPGA_CFG2 = 0x%x\n", Afe_Get_Reg(FPGA_CFG2));
  343. pr_debug("FPGA_CFG3 = 0x%x\n", Afe_Get_Reg(FPGA_CFG3));
  344. pr_debug("FPGA_CFG0 = 0x%x\n", Afe_Get_Reg(FPGA_CFG0));
  345. pr_debug("FPGA_CFG1 = 0x%x\n", Afe_Get_Reg(FPGA_CFG1));
  346. pr_debug("FPGA_VER = 0x%x\n", Afe_Get_Reg(FPGA_VER));
  347. pr_debug("FPGA_STC = 0x%x\n", Afe_Get_Reg(FPGA_STC));
  348. pr_debug("AFE_ASRC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON0));
  349. pr_debug("AFE_ASRC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON1));
  350. pr_debug("AFE_ASRC_CON2 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON2));
  351. pr_debug("AFE_ASRC_CON3 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON3));
  352. pr_debug("AFE_ASRC_CON4 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON4));
  353. pr_debug("AFE_ASRC_CON5 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON5));
  354. pr_debug("AFE_ASRC_CON6 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON6));
  355. pr_debug("AFE_ASRC_CON7 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON7));
  356. pr_debug("AFE_ASRC_CON8 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON8));
  357. pr_debug("AFE_ASRC_CON9 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON9));
  358. pr_debug("AFE_ASRC_CON10 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON10));
  359. pr_debug("AFE_ASRC_CON11 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON11));
  360. pr_debug("PCM_INTF_CON = 0x%x\n", Afe_Get_Reg(PCM_INTF_CON));
  361. pr_debug("PCM_INTF_CON2 = 0x%x\n", Afe_Get_Reg(PCM_INTF_CON2));
  362. pr_debug("PCM2_INTF_CON = 0x%x\n", Afe_Get_Reg(PCM2_INTF_CON));
  363. pr_debug("AFE_ASRC_CON13 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON13));
  364. pr_debug("AFE_ASRC_CON14 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON14));
  365. pr_debug("AFE_ASRC_CON15 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON15));
  366. pr_debug("AFE_ASRC_CON16 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON16));
  367. pr_debug("AFE_ASRC_CON17 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON17));
  368. pr_debug("AFE_ASRC_CON18 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON18));
  369. pr_debug("AFE_ASRC_CON19 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON19));
  370. pr_debug("AFE_ASRC_CON20 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON20));
  371. pr_debug("AFE_ASRC_CON21 = 0x%x\n", Afe_Get_Reg(AFE_ASRC_CON21));
  372. pr_debug("AFE_ASRC4_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON0));
  373. pr_debug("AFE_ASRC4_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON1));
  374. pr_debug("AFE_ASRC4_CON2 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON2));
  375. pr_debug("AFE_ASRC4_CON3 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON3));
  376. pr_debug("AFE_ASRC4_CON4 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON4));
  377. pr_debug("AFE_ASRC4_CON5 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON5));
  378. pr_debug("AFE_ASRC4_CON6 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON6));
  379. pr_debug("AFE_ASRC4_CON7 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON7));
  380. pr_debug("AFE_ASRC4_CON8 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON8));
  381. pr_debug("AFE_ASRC4_CON9 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON9));
  382. pr_debug("AFE_ASRC4_CON10 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON10));
  383. pr_debug("AFE_ASRC4_CON11 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON11));
  384. pr_debug("AFE_ASRC4_CON12 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON12));
  385. pr_debug("AFE_ASRC4_CON13 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON13));
  386. pr_debug("AFE_ASRC4_CON14 = 0x%x\n", Afe_Get_Reg(AFE_ASRC4_CON14));
  387. pr_debug("AFE_ASRC2_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON0));
  388. pr_debug("AFE_ASRC2_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON1));
  389. pr_debug("AFE_ASRC2_CON2 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON2));
  390. pr_debug("AFE_ASRC2_CON3 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON3));
  391. pr_debug("AFE_ASRC2_CON4 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON4));
  392. pr_debug("AFE_ASRC2_CON5 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON5));
  393. pr_debug("AFE_ASRC2_CON6 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON6));
  394. pr_debug("AFE_ASRC2_CON7 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON7));
  395. pr_debug("AFE_ASRC2_CON8 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON8));
  396. pr_debug("AFE_ASRC2_CON9 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON9));
  397. pr_debug("AFE_ASRC2_CON10 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON10));
  398. pr_debug("AFE_ASRC2_CON11 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON11));
  399. pr_debug("AFE_ASRC2_CON12 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON12));
  400. pr_debug("AFE_ASRC2_CON13 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON13));
  401. pr_debug("AFE_ASRC2_CON14 = 0x%x\n", Afe_Get_Reg(AFE_ASRC2_CON14));
  402. pr_debug("AFE_ASRC3_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON0));
  403. pr_debug("AFE_ASRC3_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON1));
  404. pr_debug("AFE_ASRC3_CON2 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON2));
  405. pr_debug("AFE_ASRC3_CON3 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON3));
  406. pr_debug("AFE_ASRC3_CON4 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON4));
  407. pr_debug("AFE_ASRC3_CON5 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON5));
  408. pr_debug("AFE_ASRC3_CON6 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON6));
  409. pr_debug("AFE_ASRC3_CON7 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON7));
  410. pr_debug("AFE_ASRC3_CON8 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON8));
  411. pr_debug("AFE_ASRC3_CON9 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON9));
  412. pr_debug("AFE_ASRC3_CON10 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON10));
  413. pr_debug("AFE_ASRC3_CON11 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON11));
  414. pr_debug("AFE_ASRC3_CON12 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON12));
  415. pr_debug("AFE_ASRC3_CON13 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON13));
  416. pr_debug("AFE_ASRC3_CON14 = 0x%x\n", Afe_Get_Reg(AFE_ASRC3_CON14));
  417. pr_debug("AFE_ADDA4_TOP_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA4_TOP_CON0));
  418. pr_debug("AFE_ADDA4_UL_SRC_CON0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA4_UL_SRC_CON0));
  419. pr_debug("AFE_ADDA4_UL_SRC_CON1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA4_UL_SRC_CON1));
  420. pr_debug("AFE_ADDA4_SRC_DEBUG = 0x%x\n", Afe_Get_Reg(AFE_ADDA4_SRC_DEBUG));
  421. pr_debug("AFE_ADDA4_SRC_DEBUG_MON= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_SRC_DEBUG_MON0));
  422. pr_debug("AFE_ADDA4_SRC_DEBUG_MON= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_SRC_DEBUG_MON1));
  423. pr_debug("AFE_ADDA4_NEWIF_CFG0 = 0x%x\n", Afe_Get_Reg(AFE_ADDA4_NEWIF_CFG0));
  424. pr_debug("AFE_ADDA4_NEWIF_CFG1 = 0x%x\n", Afe_Get_Reg(AFE_ADDA4_NEWIF_CFG1));
  425. pr_debug("AFE_ADDA4_ULCF_CFG_02_0= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_02_01));
  426. pr_debug("AFE_ADDA4_ULCF_CFG_04_0= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_04_03));
  427. pr_debug("AFE_ADDA4_ULCF_CFG_06_0= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_06_05));
  428. pr_debug("AFE_ADDA4_ULCF_CFG_08_0= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_08_07));
  429. pr_debug("AFE_ADDA4_ULCF_CFG_10_0= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_10_09));
  430. pr_debug("AFE_ADDA4_ULCF_CFG_12_1= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_12_11));
  431. pr_debug("AFE_ADDA4_ULCF_CFG_14_1= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_14_13));
  432. pr_debug("AFE_ADDA4_ULCF_CFG_16_1= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_16_15));
  433. pr_debug("AFE_ADDA4_ULCF_CFG_18_1= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_18_17));
  434. pr_debug("AFE_ADDA4_ULCF_CFG_20_1= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_20_19));
  435. pr_debug("AFE_ADDA4_ULCF_CFG_22_2= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_22_21));
  436. pr_debug("AFE_ADDA4_ULCF_CFG_24_2= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_24_23));
  437. pr_debug("AFE_ADDA4_ULCF_CFG_26_2= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_26_25));
  438. pr_debug("AFE_ADDA4_ULCF_CFG_28_2= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_28_27));
  439. pr_debug("AFE_ADDA4_ULCF_CFG_30_2= 0x%x\n", Afe_Get_Reg(AFE_ADDA4_ULCF_CFG_30_29));
  440. AudDrv_Clk_Off();
  441. pr_debug("-AudDrv Afe_Log_Print\n");
  442. }
  443. EXPORT_SYMBOL(Afe_Log_Print);