AudDrv_Afe.c 22 KB

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