sun8iw18-codec.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939
  1. /*
  2. * Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved.
  3. *
  4. * Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in
  5. * the the people's Republic of China and other countries.
  6. * All Allwinner Technology Co.,Ltd. trademarks are used with permission.
  7. *
  8. * DISCLAIMER
  9. * THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT.
  10. * IF YOU NEED TO INTEGRATE THIRD PARTY’S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.)
  11. * IN ALLWINNERS’SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN
  12. * ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES.
  13. * ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS
  14. * COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE.
  15. * YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY’S TECHNOLOGY.
  16. *
  17. *
  18. * THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT
  19. * PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND,
  20. * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING
  21. * THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE
  22. * OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  23. * IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  24. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  25. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  26. * LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION)
  27. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  28. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  30. * OF THE POSSIBILITY OF SUCH DAMAGE.
  31. */
  32. #ifndef __SUN8IW18_CODEC_H
  33. #define __SUN8IW18_CODEC_H
  34. #define SUNXI_CODEC_BASE_ADDR (0x05096000)
  35. #define SUNXI_DAC_DPC 0x00
  36. #define SUNXI_DAC_FIFO_CTL 0x10
  37. #define SUNXI_DAC_FIFO_STA 0x14
  38. #define SUNXI_DAC_TXDATA 0X20
  39. #define SUNXI_DAC_CNT 0x24
  40. #define SUNXI_DAC_DG 0x28
  41. #define SUNXI_ADC_FIFO_CTL 0x30
  42. #define SUNXI_ADC_FIFO_STA 0x38
  43. #define SUNXI_ADC_RXDATA 0x40
  44. #define SUNXI_ADC_CNT 0x44
  45. #define SUNXI_ADC_DG 0x4C
  46. /* DAP */
  47. #define SUNXI_DAC_DAP_CTL 0xf0
  48. #define SUNXI_ADC_DAP_CTL 0xf8
  49. #define AC_DAC_DRC_HHPFC (0x100)
  50. #define AC_DAC_DRC_LHPFC (0x104)
  51. #define AC_DAC_DRC_CTL (0x108)
  52. #define AC_DAC_DRC_LPFHAT (0x10c)
  53. #define AC_DAC_DRC_LPFLAT (0x110)
  54. #define AC_DAC_DRC_RPFHAT (0x114)
  55. #define AC_DAC_DRC_RPFLAT (0x118)
  56. #define AC_DAC_DRC_LPFHRT (0x11c)
  57. #define AC_DAC_DRC_LPFLRT (0x120)
  58. #define AC_DAC_DRC_RPFHRT (0x124)
  59. #define AC_DAC_DRC_RPFLRT (0x128)
  60. #define AC_DAC_DRC_LRMSHAT (0x12c)
  61. #define AC_DAC_DRC_LRMSLAT (0x130)
  62. #define AC_DAC_DRC_RRMSHAT (0x134)
  63. #define AC_DAC_DRC_RRMSLAT (0x138)
  64. #define AC_DAC_DRC_HCT (0x13c)
  65. #define AC_DAC_DRC_LCT (0x140)
  66. #define AC_DAC_DRC_HKC (0x144)
  67. #define AC_DAC_DRC_LKC (0x148)
  68. #define AC_DAC_DRC_HOPC (0x14c)
  69. #define AC_DAC_DRC_LOPC (0x150)
  70. #define AC_DAC_DRC_HLT (0x154)
  71. #define AC_DAC_DRC_LLT (0x158)
  72. #define AC_DAC_DRC_HKI (0x15c)
  73. #define AC_DAC_DRC_LKI (0x160)
  74. #define AC_DAC_DRC_HOPL (0x164)
  75. #define AC_DAC_DRC_LOPL (0x168)
  76. #define AC_DAC_DRC_HET (0x16c)
  77. #define AC_DAC_DRC_LET (0x170)
  78. #define AC_DAC_DRC_HKE (0x174)
  79. #define AC_DAC_DRC_LKE (0x178)
  80. #define AC_DAC_DRC_HOPE (0x17c)
  81. #define AC_DAC_DRC_LOPE (0x180)
  82. #define AC_DAC_DRC_HKN (0x184)
  83. #define AC_DAC_DRC_LKN (0x188)
  84. #define AC_DAC_DRC_SFHAT (0x18c)
  85. #define AC_DAC_DRC_SFLAT (0x190)
  86. #define AC_DAC_DRC_SFHRT (0x194)
  87. #define AC_DAC_DRC_SFLRT (0x198)
  88. #define AC_DAC_DRC_MXGHS (0x19c)
  89. #define AC_DAC_DRC_MXGLS (0x1a0)
  90. #define AC_DAC_DRC_MNGHS (0x1a4)
  91. #define AC_DAC_DRC_MNGLS (0x1a8)
  92. #define AC_DAC_DRC_EPSHC (0x1ac)
  93. #define AC_DAC_DRC_EPSLC (0x1b0)
  94. #define AC_DAC_DRC_OPT (0x1b4)
  95. #define AC_DAC_DRC_HPFHGAIN (0x1b8)
  96. #define AC_DAC_DRC_HPFLGAIN (0x1bc)
  97. /*
  98. * DAC_DRC Control Register
  99. * AC_DAC_DRC_CTL:codecbase+0x108
  100. */
  101. #define DAC_DRC_CTL_COMPLETE (15)
  102. #define DAC_DRC_CTL_SIGNAL_DEL_TIMESET (8)
  103. #define DAC_DRC_CTL_DELAY_USE_BUF (7)
  104. #define DAC_DRC_CTL_GAIN_MAXLIM_EN (6)
  105. #define DAC_DRC_CTL_GAIN_MINLIM_EN (5)
  106. #define DAC_DRC_CTL_CONTROL_DRC_EN (4)
  107. #define DAC_DRC_CTL_SIGNAL_FUN_SEL (3)
  108. #define DAC_DRC_CTL_DEL_FUN_EN (2)
  109. #define DAC_DRC_CTL_DRC_LT_EN (1)
  110. #define DAC_DRC_CTL_DRC_ET_EN (0)
  111. /*
  112. * DAC_DRC Left Peak Filter High Attack Time Coef Register
  113. * AC_DAC_DRC_LPFHAT:codecbase+0x10c
  114. */
  115. #define DAC_DRC_LPFHAT_ATT_TIME_PARA_SET (0)
  116. /*
  117. * DAC_DRC Left Peak Filter Low Attack Time Coef Register
  118. * AC_DAC_DRC_LPFLAT:codecbase+0x110
  119. */
  120. #define DAC_DRC_LPFLAT_ATT_TIME_PARA_SET (0)
  121. /*
  122. * DAC_DRC Right Peak Filter High Attack Time Coef Register
  123. * AC_DAC_DRC_RPFHAT:codecbase+0x114
  124. */
  125. #define DAC_DRC_RPFHAT_ATT_TIME_PARA_SET (0)
  126. /*
  127. * DAC_DRC Right Peak Filter Low Attack Time Coef Register
  128. * AC_DAC_DRC_RPFLAT:codecbase+0x118
  129. */
  130. #define DAC_DRC_RPFLAT_ATT_TIME_PARA_SET (0)
  131. /*
  132. * DAC_DRC Left Peak Filter High Release Time Coef Register
  133. * AC_DAC_DRC_LPFHRT:codecbase+0x11c
  134. */
  135. #define DAC_DRC_LPFHRT_REL_TIME_PARA_SET (0)
  136. /*
  137. * DAC_DRC Left Peak Filter Low Release Time Coef Register
  138. * AC_DAC_DRC_LPFLRT:codecbase+0x120
  139. */
  140. #define DAC_DRC_LPFLRT_REL_TIME_PARA_SET (0)
  141. /*
  142. * DAC_DRC Right Peak Filter High Release Time Coef Register
  143. * AC_DAC_DRC_RPFHRT:codecbase+0x124
  144. */
  145. #define DAC_DRC_RPFHRT_REL_TIME_PARA_SET (0)
  146. /*
  147. * DAC_DRC Left Peak Filter Low Release Time Coef Register
  148. * AC_DAC_DRC_RPFLRT:codecbase+0x128
  149. */
  150. #define DAC_DRC_RPFLRT_REL_TIME_PARA_SET (0)
  151. /*
  152. * DAC_DRC Left RMS Filter High Coef Register
  153. * AC_DAC_DRC_LRMSHAT:codecbase+0x12c
  154. */
  155. #define DAC_DRC_LRMSHAT_AVE_TIME_PARA_SET (0)
  156. /*
  157. * DAC_DRC Left RMS Filter Low Coef Register
  158. * AC_DAC_DRC_LRMSLAT:codecbase+0x130
  159. */
  160. #define DAC_DRC_LRMSHAT_AVE_TIME_PARA_SET (0)
  161. /*
  162. * DAC_DRC Right RMS Filter High Coef Register
  163. * AC_DAC_DRC_RRMSHAT:codecbase+0x134
  164. */
  165. #define DAC_DRC_RRMSHAT_AVE_TIME_PARA_SET (0)
  166. /*
  167. * DAC_DRC Right RMS Filter Low Coef Register
  168. * AC_DAC_DRC_RRMSLAT:codecbase+0x138
  169. */
  170. #define DAC_DRC_RRMSLAT_AVE_TIME_PARA_SET (0)
  171. /*
  172. * DAC_DRC Compressor Theshold High Setting Register
  173. * AC_DAC_DRC_HCT:codecbase+0x13c
  174. */
  175. #define DAC_DRC_HCT_COMP_THRES_SET (0)
  176. /*
  177. * DAC_DRC Compressor Theshold Low Setting Register
  178. * AC_DAC_DRC_LCT:codecbase+0x140
  179. */
  180. #define DAC_DRC_LCT_COMP_THRES_SET (0)
  181. /*
  182. * DAC_DRC Compressor Slope High Setting Register
  183. * AC_DAC_DRC_HKC:codecbase+0x144
  184. */
  185. #define DAC_DRC_HKC_SLOPE_SET (0)
  186. /*
  187. * DAC_DRC Compressor Slope Low Setting Register
  188. * AC_DAC_DRC_LKC:codecbase+0x148
  189. */
  190. #define DAC_DRC_LKC_SLOPE_SET (0)
  191. /*
  192. * DAC_DRC Compressor High Output at Compressor Threshold Register
  193. * AC_DAC_DRC_HOPC:codecbase+0x14c
  194. */
  195. #define DAC_DRC_HOPC_COMP_OUT (0)
  196. /*
  197. * DAC_DRC Compressor Low Output at Compressor Threshold Register
  198. * AC_DAC_DRC_LOPC:codecbase+0x150
  199. */
  200. #define DAC_DRC_LOPC_COMP_OUT (0)
  201. /*
  202. * DAC_DRC Limiter Threshold High Setting Register
  203. * AC_DAC_DRC_HLT:codecbase+0x154
  204. */
  205. #define DAC_DRC_HLT_LIM_THRES_SET (0)
  206. /*
  207. * DAC_DRC Limiter Threshold Low Setting Register
  208. * AC_DAC_DRC_LLT:codecbase+0x158
  209. */
  210. #define DAC_DRC_LLT_LIM_THRES_SET (0)
  211. /*
  212. * DAC_DRC Limiter Slope High Setting Register
  213. * AC_DAC_DRC_HKI:codecbase+0x15c
  214. */
  215. #define DAC_DRC_HKI_LIM_SLOPE_SET (0)
  216. /*
  217. * DAC_DRC Limiter Slope Low Setting Register
  218. * AC_DAC_DRC_LKI:codecbase+0x160
  219. */
  220. #define DAC_DRC_LKI_LIM_SLOPE_SET (0)
  221. /*
  222. * DAC_DRC Limiter High Output at Limiter Threshold
  223. * AC_DAC_DRC_HOPL:codecbase+0x164
  224. */
  225. #define DAC_DRC_HOPL_LIM_THRES_OUT (0)
  226. /*
  227. * DAC_DRC Limiter Low Output at Limiter Threshold
  228. * AC_DAC_DRC_LOPL:codecbase+0x168
  229. */
  230. #define DAC_DRC_LOPL_LIM_THRES_OUT (0)
  231. /*
  232. * DAC_DRC Expander Theshold High Setting Register
  233. * AC_DAC_DRC_HET:codecbase+0x16c
  234. */
  235. #define DAC_DRC_HET_EXPAN_THRES_SET (0)
  236. /*
  237. * DAC_DRC Expander Theshold Low Setting Register
  238. * AC_DAC_DRC_LET:codecbase+0x170
  239. */
  240. #define DAC_DRC_LET_EXPAN_THRES_SET (0)
  241. /*
  242. * DAC_DRC Expander Slope High Setting Register
  243. * AC_DAC_DRC_HKE:codecbase+0x174
  244. */
  245. #define DAC_DRC_HKE_EXPAN_SLOPE_SET (0)
  246. /*
  247. * DAC_DRC Expander Slope Low Setting Register
  248. * AC_DAC_DRC_LKE:codecbase+0x178
  249. */
  250. #define DAC_DRC_LKE_EXPAN_SLOPE_SET (0)
  251. /*
  252. * DAC_DRC Expander High Output at Expander Threshold
  253. * AC_DAC_DRC_HOPE:codecbase+0x17c
  254. */
  255. #define DAC_DRC_HOPE_EXPAN_DET_EQU (0)
  256. /*
  257. * DAC_DRC Expander Low Output at Expander Threshold
  258. * AC_DAC_DRC_LOPE:codecbase+0x180
  259. */
  260. #define DAC_DRC_LOPE_EXPAN_DET_EQU (0)
  261. /*
  262. * DAC_DRC Linear Slope High Setting Register
  263. * AC_DAC_DRC_HKN:codecbase+0x184
  264. */
  265. #define DAC_DRC_HKN_SLOPE_LIN_DET_EQU (0)
  266. /*
  267. * DAC_DRC Linear Slope Low Setting Register
  268. * AC_DAC_DRC_LKN:codecbase+0x188
  269. */
  270. #define DAC_DRC_LKN_SLOPE_LIN_DET_EQU (0)
  271. /*
  272. * DAC_DRC Smooth filter Gain High Attack Time Coef Register
  273. * AC_DAC_DRC_SFHAT:codecbase+0x18c
  274. */
  275. #define DAC_DRC_SFHAT_ATT_TIME_PARAM_SET (0)
  276. /*
  277. * DAC_DRC Smooth filter Gain Low Attack Time Coef Register
  278. * AC_DAC_DRC_SFLAT:codecbase+0x190
  279. */
  280. #define DAC_DRC_SFLAT_ATT_TIME_PARAM_SET (0)
  281. /*
  282. * DAC_DRC Smooth filter Gain High Release Time Coef Register
  283. * AC_DAC_DRC_SFHRT:codecbase+0x194
  284. */
  285. #define DAC_DRC_SFHRT_REL_TIME_PARAM_SET (0)
  286. /*
  287. * DAC_DRC Smooth filter Gain Low Release Time Coef Register
  288. * AC_DAC_DRC_SFLRT:codecbase+0x198
  289. */
  290. #define DAC_DRC_SFLRT_REL_TIME_PARAM_SET (0)
  291. /*
  292. * DAC_DRC MAX Gain High Setting Register
  293. * AC_DAC_DRC_MXGHS:codecbase+0x19c
  294. */
  295. #define DAC_DRC_MXGHS_GAIN_SET_DET_EUQ (0)
  296. /*
  297. * DAC_DRC MAX Gain Low Setting Register
  298. * AC_DAC_DRC_MXGLS:codecbase+0x1A0
  299. */
  300. #define DAC_DRC_MXGLS_GAIN_SET_DET_EUQ (0)
  301. /*
  302. * DAC_DRC Min Gain High Setting Register
  303. * AC_DAC_DRC_MNGHS:codecbase+0x1A4
  304. */
  305. #define DAC_DRC_MNGHS_GAIN_SET_DET_EUQ (0)
  306. /*
  307. * DAC_DRC Min Gain Low Setting Register
  308. * AC_DAC_DRC_MNGHS:codecbase+0x1A8
  309. */
  310. #define DAC_DRC_MNGLS_GAIN_SET_DET_EUQ (0)
  311. /*
  312. * DAC_DRC Expander Smooth Time High Coef Register
  313. * AC_DAC_DRC_EPSHC:codecbase+0x1AC
  314. */
  315. #define DAC_DRC_EPSHC_GAIN_FILT_REL_ATT_PARA (0)
  316. /*
  317. * DAC_DRC Expander Smooth Time Low Coef Register
  318. * AC_DAC_DRC_EPSLC:codecbase+0x1B0
  319. */
  320. #define DAC_DRC_EPSLC_GAIN_FILT_REL_ATT_PARA (0)
  321. /*
  322. * DAC_DRC Optimum Register
  323. * AC_DAC_DRC_OPT:codecbase+0x1B4
  324. */
  325. #define DAC_DRC_OPT_GS_EXP_COEFF_USE_SEL (10)
  326. #define DAC_DRC_OPT_GS_COEFF_MOD_SEL (9)
  327. #define DAC_DRC_OPT_MIN_ENERGY (8)
  328. #define DAC_DRC_OPT_RMS_DET_MOD (7)
  329. #define DAC_DRC_OPT_DATA_OUTPUT (6)
  330. #define DAC_DRC_OPT_GAIN_DEFAULT_VAL (5)
  331. #define DAC_DRC_OPT_HYS_GAIN_SMOOTH_DEL_TIME (0)
  332. /*
  333. * DAC_DRC HPF Gain High Coef Register
  334. * AC_DAC_DRC_HPFHGAIN:codecbase+0x1B8
  335. */
  336. #define DAC_DRC_HPFHGAIN_GAIN_HPF_COEFF_SET (0)
  337. /*
  338. * DAC_DRC HPF Gain Low Coef Register
  339. * AC_DAC_DRC_HPFLGAIN:codecbase+0x1Bc
  340. */
  341. #define DAC_DRC_HPFLGAIN_GAIN_HPF_COEFF_SET (0)
  342. /*
  343. * ADC DRC
  344. */
  345. #define AC_ADC_DRC_HHPFC (0x200)
  346. #define AC_ADC_DRC_LHPFC (0x204)
  347. #define AC_ADC_DRC_CTRL (0x208)
  348. #define AC_ADC_DRC_LPFHAT (0x20c)
  349. #define AC_ADC_DRC_LPFLAT (0x210)
  350. #define AC_ADC_DRC_RPFHAT (0x214)
  351. #define AC_ADC_DRC_RPFLAT (0x218)
  352. #define AC_ADC_DRC_LPFHRT (0x21c)
  353. #define AC_ADC_DRC_LPFLRT (0x220)
  354. #define AC_ADC_DRC_RPFHRT (0x224)
  355. #define AC_ADC_DRC_RPFLRT (0x228)
  356. #define AC_ADC_DRC_LRMSHAT (0x22c)
  357. #define AC_ADC_DRC_LRMSLAT (0x230)
  358. #define AC_ADC_DRC_RRMSHAT (0x234)
  359. #define AC_ADC_DRC_RRMSLAT (0x238)
  360. #define AC_ADC_DRC_HCT (0x23c)
  361. #define AC_ADC_DRC_LCT (0x240)
  362. #define AC_ADC_DRC_HKC (0x244)
  363. #define AC_ADC_DRC_LKC (0x248)
  364. #define AC_ADC_DRC_HOPC (0x24c)
  365. #define AC_ADC_DRC_LOPC (0x250)
  366. #define AC_ADC_DRC_HLT (0x254)
  367. #define AC_ADC_DRC_LLT (0x258)
  368. #define AC_ADC_DRC_HKI (0x25c)
  369. #define AC_ADC_DRC_LKI (0x260)
  370. #define AC_ADC_DRC_HOPL (0x264)
  371. #define AC_ADC_DRC_LOPL (0x268)
  372. #define AC_ADC_DRC_HET (0x26c)
  373. #define AC_ADC_DRC_LET (0x270)
  374. #define AC_ADC_DRC_HKE (0x274)
  375. #define AC_ADC_DRC_LKE (0x278)
  376. #define AC_ADC_DRC_HOPE (0x27c)
  377. #define AC_ADC_DRC_LOPE (0x280)
  378. #define AC_ADC_DRC_HKN (0x284)
  379. #define AC_ADC_DRC_LKN (0x288)
  380. #define AC_ADC_DRC_SFHAT (0x28c)
  381. #define AC_ADC_DRC_SFLAT (0x290)
  382. #define AC_ADC_DRC_SFHRT (0x294)
  383. #define AC_ADC_DRC_SFLRT (0x298)
  384. #define AC_ADC_DRC_MXGHS (0x29c)
  385. #define AC_ADC_DRC_MXGLS (0x2a0)
  386. #define AC_ADC_DRC_MNGHS (0x2a4)
  387. #define AC_ADC_DRC_MNGLS (0x2a8)
  388. #define AC_ADC_DRC_EPSHC (0x2ac)
  389. #define AC_ADC_DRC_EPSLC (0x2b0)
  390. #define AC_ADC_DRC_OPT (0x2b4)
  391. #define AC_ADC_DRC_HPFHGAIN (0x2b8)
  392. #define AC_ADC_DRC_HPFLGAIN (0x2bc)
  393. #define AC_VERSION (0x2c0)
  394. /*
  395. * ADC_DRC High HPF Coef Register
  396. * AC_ADC_DRC_HHPFC:codecbase+0x200
  397. */
  398. #define ADC_DRC_HHPFC_COEF_SET (0)
  399. /*
  400. * ADC_DRC Low HPF Coef Register
  401. * AC_ADC_DRC_LHPFC:codecbase+0x204
  402. */
  403. #define ADC_DRC_LHPFC_COEF_SET (0)
  404. /*
  405. * ADC_DRC Control Register
  406. * AC_ADC_DRC_CTRL:codecbase+0x208
  407. */
  408. #define ADC_DRC_CTL_COMPLETE (15)
  409. #define ADC_DRC_CTL_SIGNAL_DEL_TIMESET (8)
  410. #define ADC_DRC_CTL_DELAY_USE_BUF (7)
  411. #define ADC_DRC_CTL_GAIN_MAXLIM_EN (6)
  412. #define ADC_DRC_CTL_GAIN_MINLIM_EN (5)
  413. #define ADC_DRC_CTL_CONTROL_DRC_EN (4)
  414. #define ADC_DRC_CTL_SIGNAL_FUN_SEL (3)
  415. #define ADC_DRC_CTL_DEL_FUN_EN (2)
  416. #define ADC_DRC_CTL_DRC_LT_EN (1)
  417. #define ADC_DRC_CTL_DRC_ET_EN (0)
  418. /*
  419. * ADC_DRC Left Peak Filter High Attack Time Coef Register
  420. * AC_ADC_DRC_LPFHAT:codecbase+0x20c
  421. */
  422. #define ADC_DRC_LPFHAT_ATT_TIME_PARA_SET (0)
  423. /*
  424. * ADC_DRC Left Peak Filter Low Attack Time Coef Register
  425. * AC_ADC_DRC_LPFLAT:codecbase+0x210
  426. */
  427. #define ADC_DRC_LPFLAT_ATT_TIME_PARA_SET (0)
  428. /*
  429. * ADC_DRC Right Peak Filter High Attack Time Coef Register
  430. * AC_ADC_DRC_RPFHAT:codecbase+0x214
  431. */
  432. #define ADC_DRC_RPFHAT_ATT_TIME_PARA_SET (0)
  433. /*
  434. * ADC_DRC Right Peak Filter Low Attack Time Coef Register
  435. * AC_ADC_DRC_RPFLAT:codecbase+0x218
  436. */
  437. #define ADC_DRC_RPFLAT_ATT_TIME_PARA_SET (0)
  438. /*
  439. * ADC_DRC Left Peak Filter High Release Time Coef Register
  440. * AC_ADC_DRC_LPFHRT:codecbase+0x21c
  441. */
  442. #define DRC7_LPFHRT_REL_TIME_PARA_SET (0)
  443. /*
  444. * ADC_DRC Left Peak Filter Low Release Time Coef Register
  445. * AC_ADC_DRC_LPFLRT:codecbase+0x220
  446. */
  447. #define ADC_DRC_LPFLRT_REL_TIME_PARA_SET (0)
  448. /*
  449. * ADC_DRC Right Peak Filter High Release Time Coef Register
  450. * AC_ADC_DRC_RPFHRT:codecbase+0x224
  451. */
  452. #define ADC_DRC_RPFHRT_REL_TIME_PARA_SET (0)
  453. /*
  454. * ADC_DRC Left Peak Filter Low Release Time Coef Register
  455. * AC_ADC_DRC_RPFLRT:codecbase+0x228
  456. */
  457. #define ADC_DRC_RPFLRT_REL_TIME_PARA_SET (0)
  458. /*
  459. * ADC_DRC Left RMS Filter High Coef Register
  460. * AC_ADC_DRC_LRMSHAT:codecbase+0x22c
  461. */
  462. #define ADC_DRC_LRMSHAT_AVE_TIME_PARA_SET (0)
  463. /*
  464. * ADC_DRC Left RMS Filter Low Coef Register
  465. * AC_ADC_DRC_LRMSLAT:codecbase+0x230
  466. */
  467. #define ADC_DRC_LRMSHAT_AVE_TIME_PARA_SET (0)
  468. /*
  469. * ADC_DRC Right RMS Filter High Coef Register
  470. * AC_ADC_DRC_RRMSHAT:codecbase+0x234
  471. */
  472. #define ADC_DRC_RRMSHAT_AVE_TIME_PARA_SET (0)
  473. /*
  474. * ADC_DRC Right RMS Filter Low Coef Register
  475. * AC_ADC_DRC_RRMSLAT:codecbase+0x238
  476. */
  477. #define ADC_DRC_RRMSLAT_AVE_TIME_PARA_SET (0)
  478. /*
  479. * ADC_DRC Compressor Theshold High Setting Register
  480. * AC_ADC_DRC_HCT:codecbase+0x23c
  481. */
  482. #define ADC_DRC_HCT_COMP_THRES_SET (0)
  483. /*
  484. * ADC_DRC Compressor Theshold Low Setting Register
  485. * AC_ADC_DRC_LCT:codecbase+0x240
  486. */
  487. #define ADC_DRC_LCT_COMP_THRES_SET (0)
  488. /*
  489. * ADC_DRC Compressor Slope High Setting Register
  490. * AC_ADC_DRC_HKC:codecbase+0x244
  491. */
  492. #define ADC_DRC_HKC_SLOPE_SET (0)
  493. /*
  494. * ADC_DRC Compressor Slope Low Setting Register
  495. * AC_ADC_DRC_LKC:codecbase+0x248
  496. */
  497. #define ADC_DRC_LKC_SLOPE_SET (0)
  498. /*
  499. * ADC_DRC Compressor High Output at Compressor Threshold Register
  500. * AC_ADC_DRC_HOPC:codecbase+0x24c
  501. */
  502. #define ADC_DRC_HOPC_COMP_OUT (0)
  503. /*
  504. * ADC_DRC Compressor Low Output at Compressor Threshold Register
  505. * AC_ADC_DRC_LOPC:codecbase+0x250
  506. */
  507. #define ADC_DRC_LOPC_COMP_OUT (0)
  508. /*
  509. * ADC_DRC Limiter Threshold High Setting Register
  510. * AC_ADC_DRC_HLT:codecbase+0x254
  511. */
  512. #define ADC_DRC_HLT_LIM_THRES_SET (0)
  513. /*
  514. * ADC_DRC Limiter Threshold Low Setting Register
  515. * AC_ADC_DRC_LLT:codecbase+0x258
  516. */
  517. #define ADC_DRC_LLT_LIM_THRES_SET (0)
  518. /*
  519. * ADC_DRC Limiter Slope High Setting Register
  520. * AC_ADC_DRC_HKI:codecbase+0x25c
  521. */
  522. #define ADC_DRC_HKI_LIM_SLOPE_SET (0)
  523. /*
  524. * ADC_DRC Limiter Slope Low Setting Register
  525. * AC_ADC_DRC_LKI:codecbase+0x260
  526. */
  527. #define ADC_DRC_LKI_LIM_SLOPE_SET (0)
  528. /*
  529. * ADC_DRC Limiter High Output at Limiter Threshold
  530. * AC_ADC_DRC_HOPL:codecbase+0x264
  531. */
  532. #define ADC_DRC_HOPL_LIM_THRES_OUT (0)
  533. /*
  534. * ADC_DRC Limiter Low Output at Limiter Threshold
  535. * AC_ADC_DRC_LOPL:codecbase+0x268
  536. */
  537. #define ADC_DRC_LOPL_LIM_THRES_OUT (0)
  538. /*
  539. * ADC_DRC Expander Theshold High Setting Register
  540. * AC_ADC_DRC_HET:codecbase+0x26c
  541. */
  542. #define ADC_DRC_HET_EXPAN_THRES_SET (0)
  543. /*
  544. * ADC_DRC Expander Theshold Low Setting Register
  545. * AC_ADC_DRC_LET:codecbase+0x270
  546. */
  547. #define ADC_DRC_LET_EXPAN_THRES_SET (0)
  548. /*
  549. * ADC_DRC Expander Slope High Setting Register
  550. * AC_ADC_DRC_HKE:codecbase+0x274
  551. */
  552. #define ADC_DRC_HKE_EXPAN_SLOPE_SET (0)
  553. /*
  554. * ADC_DRC Expander Slope Low Setting Register
  555. * AC_ADC_DRC_LKE:codecbase+0x278
  556. */
  557. #define ADC_DRC_LKE_EXPAN_SLOPE_SET (0)
  558. /*
  559. * ADC_DRC Expander High Output at Expander Threshold
  560. * AC_ADC_DRC_HOPE:codecbase+0x27c
  561. */
  562. #define ADC_DRC_HOPE_EXPAN_DET_EQU (0)
  563. /*
  564. * ADC_DRC Expander Low Output at Expander Threshold
  565. * AC_ADC_DRC_LOPE:codecbase+0x280
  566. */
  567. #define ADC_DRC_LOPE_EXPAN_DET_EQU (0)
  568. /*
  569. * ADC_DRC Linear Slope High Setting Register
  570. * AC_ADC_DRC_HKN:codecbase+0x284
  571. */
  572. #define ADC_DRC_HKN_SLOPE_LIN_DET_EQU (0)
  573. /*
  574. * ADC_DRC Linear Slope Low Setting Register
  575. * AC_ADC_DRC_LKN:codecbase+0x288
  576. */
  577. #define ADC_DRC_LKN_SLOPE_LIN_DET_EQU (0)
  578. /*
  579. * ADC_DRC Smooth filter Gain High Attack Time Coef Register
  580. * AC_ADC_DRC_SFHAT:codecbase+0x28c
  581. */
  582. #define ADC_DRC_SFHAT_ATT_TIME_PARAM_SET (0)
  583. /*
  584. * ADC_DRC Smooth filter Gain Low Attack Time Coef Register
  585. * AC_ADC_DRC_SFLAT:codecbase+0x290
  586. */
  587. #define ADC_DRC_SFLAT_ATT_TIME_PARAM_SET (0)
  588. /*
  589. * ADC_DRC Smooth filter Gain High Release Time Coef Register
  590. * AC_ADC_DRC_SFHRT:codecbase+0x294
  591. */
  592. #define ADC_DRC_SFHRT_REL_TIME_PARAM_SET (0)
  593. /*
  594. * ADC_DRC Smooth filter Gain Low Release Time Coef Register
  595. * AC_ADC_DRC_SFLRT:codecbase+0x298
  596. */
  597. #define ADC_DRC_SFLRT_REL_TIME_PARAM_SET (0)
  598. /*
  599. * ADC_DRC MAX Gain High Setting Register
  600. * AC_ADC_DRC_MXGHS:codecbase+0x29c
  601. */
  602. #define ADC_DRC_MXGHS_GAIN_SET_DET_EUQ (0)
  603. /*
  604. * ADC_DRC MAX Gain Low Setting Register
  605. * AC_ADC_DRC_MXGLS:codecbase+0x2A0
  606. */
  607. #define ADC_DRC_MXGLS_GAIN_SET_DET_EUQ (0)
  608. /*
  609. * ADC_DRC Min Gain High Setting Register
  610. * AC_ADC_DRC_MNGHS:codecbase+0x2A4
  611. */
  612. #define ADC_DRC_MNGHS_GAIN_SET_DET_EUQ (0)
  613. /*
  614. * ADC_DRC Min Gain Low Setting Register
  615. * AC_ADC_DRC_MNGHS:codecbase+0x2A8
  616. */
  617. #define ADC_DRC_MNGLS_GAIN_SET_DET_EUQ (0)
  618. /*
  619. * ADC_DRC Expander Smooth Time High Coef Register
  620. * AC_ADC_DRC_EPSHC:codecbase+0x2AC
  621. */
  622. #define ADC_DRC_EPSHC_GAIN_FILT_REL_ATT_PARA (0)
  623. /*
  624. * ADC_DRC Expander Smooth Time Low Coef Register
  625. * AC_ADC_DRC_EPSLC:codecbase+0x2B0
  626. */
  627. #define ADC_DRC_EPSLC_GAIN_FILT_REL_ATT_PARA (0)
  628. /*
  629. * ADC_DRC Optimum Register
  630. * AC_ADC_DRC_OPT:codecbase+0x2B4
  631. */
  632. #define ADC_DRC_OPT_GS_EXP_COEFF_USE_SEL (10)
  633. #define ADC_DRC_OPT_GS_COEFF_MOD_SEL (9)
  634. #define ADC_DRC_OPT_MIN_ENERGY (8)
  635. #define ADC_DRC_OPT_RMS_DET_MOD (7)
  636. #define ADC_DRC_OPT_DATA_OUTPUT (6)
  637. #define ADC_DRC_OPT_GAIN_DEFAULT_VAL (5)
  638. #define ADC_DRC_OPT_HYS_GAIN_SMOOTH_DEL_TIME (0)
  639. /*
  640. * ADC_DRC HPF Gain High Coef Register
  641. * AC_ADC_DRC_HPFHGAIN:codecbase+0x2B8
  642. */
  643. #define ADC_DRC_HPFHGAIN_GAIN_HPF_COEFF_SET (0)
  644. /*
  645. * ADC_DRC HPF Gain Low Coef Register
  646. * AC_ADC_DRC_HPFLGAIN:codecbase+0x2Bc
  647. */
  648. #define ADC_DRC_HPFLGAIN_GAIN_HPF_COEFF_SET (0)
  649. /* Analog register base - Digital register base */
  650. /*SUNXI_PR_CFG is to tear the acreg and dcreg, it is of no real meaning*/
  651. #define SUNXI_PR_CFG 0x300
  652. #define SUNXI_HP_CTL (SUNXI_PR_CFG + 0x00)
  653. #define SUNXI_MIX_DAC_CTL (SUNXI_PR_CFG + 0x03)
  654. #define SUNXI_LINEOUT_CTL0 (SUNXI_PR_CFG + 0x05)
  655. #define SUNXI_LINEOUT_CTL1 (SUNXI_PR_CFG + 0x06)
  656. #define SUNXI_MIC1_CTL (SUNXI_PR_CFG + 0x07)
  657. #define SUNXI_MIC2_MIC3_CTL (SUNXI_PR_CFG + 0x08)
  658. #define SUNXI_LADCMIX_SRC (SUNXI_PR_CFG + 0x09)
  659. #define SUNXI_RADCMIX_SRC (SUNXI_PR_CFG + 0x0A)
  660. #define SUNXI_XADCMIX_SRC (SUNXI_PR_CFG + 0x0B)
  661. #define SUNXI_ADC_CTL (SUNXI_PR_CFG + 0x0D)
  662. #define SUNXI_MBIAS_CTL (SUNXI_PR_CFG + 0x0E)
  663. #define SUNXI_APT_REG (SUNXI_PR_CFG + 0x0F)
  664. #define SUNXI_OP_BIAS_CTL0 (SUNXI_PR_CFG + 0x10)
  665. #define SUNXI_OP_BIAS_CTL1 (SUNXI_PR_CFG + 0x11)
  666. #define SUNXI_ZC_VOL_CTL (SUNXI_PR_CFG + 0x12)
  667. #define SUNXI_BIAS_CAL_CTRL (SUNXI_PR_CFG + 0x15)
  668. /* SUNXI_DAC_DPC:0x00 */
  669. #define EN_DAC 31
  670. #define MODQU 25
  671. #define DWA_EN 24
  672. #define HPF_EN 18
  673. #define DVOL 12
  674. #define DAC_HUB_EN 0
  675. /* SUNXI_DAC_FIFO_CTL:0x10 */
  676. #define DAC_FS 29
  677. #define FIR_VER 28
  678. #define SEND_LASAT 26
  679. #define FIFO_MODE 24
  680. #define DAC_DRQ_CLR_CNT 21
  681. #define TX_TRIG_LEVEL 8
  682. #define DAC_MONO_EN 6
  683. #define TX_SAMPLE_BITS 5
  684. #define DAC_DRQ_EN 4
  685. #define DAC_IRQ_EN 3
  686. #define FIFO_UNDERRUN_IRQ_EN 2
  687. #define FIFO_OVERRUN_IRQ_EN 1
  688. #define FIFO_FLUSH 0
  689. /* SUNXI_DAC_FIFO_STA:0x14 */
  690. #define TX_EMPTY 23
  691. #define DAC_TXE_CNT 8
  692. #define DAC_TXE_INT 3
  693. #define DAC_TXU_INT 2
  694. #define DAC_TXO_INT 1
  695. /* SUNXI_DAC_DG:0x28 */
  696. #define DAC_MODU_SEL 11
  697. #define DAC_PATTERN_SEL 9
  698. #define CODEC_CLK_SELECT 8
  699. #define DA_SWP 6
  700. #define ADDA_LOOP_MODE 0
  701. /* SUNXI_ADC_FIFO_CTL:0x30 */
  702. #define ADC_FS 29
  703. #define EN_AD 28
  704. #define ADCFDT 26
  705. #define ADCDFEN 25
  706. #define RX_FIFO_MODE 24
  707. #define RX_SAMPLE_BITS 16
  708. #define ADC_CHAN_SEL 12
  709. #define RX_FIFO_TRG_LEVEL 4
  710. #define ADC_DRQ_EN 3
  711. #define ADC_IRQ_EN 2
  712. #define ADC_OVERRUN_IRQ_EN 1
  713. #define ADC_FIFO_FLUSH 0
  714. /* SUNXI_ADC_FIFO_STA:0x38 */
  715. #define ADC_RXA 23
  716. #define ADC_RXA_CNT 8
  717. #define ADC_RXA_INT 3
  718. #define ADC_RXO_INT 1
  719. /* SUNXI_ADC_DG:0x4C */
  720. #define AD_SWP 4
  721. /* SUNXI_DAC_DAP_CTL:0xf0 */
  722. #define DDAP_EN 31
  723. #define DDAP_DRC_EN 29
  724. #define DDAP_HPF_EN 28
  725. /* SUNXI_ADC_DAP_CTL:0xf8 */
  726. #define ADC_DAP0_EN 31
  727. #define ADC_DRC0_EN 29
  728. #define ADC_HPF0_EN 28
  729. #define ADC_DAP1_EN 27
  730. #define ADC_DRC1_EN 25
  731. #define ADC_HPF1_EN 24
  732. /* SUNXI_PR_CFG:0x07010280 */
  733. #define AC_PR_RST 28
  734. #define AC_PR_RW 24
  735. #define AC_PR_ADDR 16
  736. #define ADDA_PR_WDAT 8
  737. #define ADDA_PR_RDAT 0
  738. /* SUNXI_HP_CTL:0x00 */
  739. #define PA_CLK_GATE 7
  740. /* SUNXI_MIX_DAC_CTL:0x03 */
  741. #define DACALEN 6
  742. /* SUNXI_LINEOUT_CTL0:0x05 */
  743. #define LINEOUTL_EN 7
  744. #define LINEOUTR_EN 6
  745. #define LINEOUTL_SRC 5
  746. #define LINEOUTR_SRC 4
  747. /* SUNXI_LINEOUT_CTL1:0x06 */
  748. #define LINEOUT_VOL 0
  749. /* SUNXI_MIC1_CTL:0x07 */
  750. #define MIC1AMPEN 3
  751. #define MIC1BOOST 0
  752. /* SUNXI_MIC2_MIC3_CTL:0x08 */
  753. #define MIC3AMPEN 7
  754. #define MIC3BOOST 4
  755. #define MIC2AMPEN 3
  756. #define MIC2BOOST 0
  757. /* SUNXI_LADCMIX_SRC:0x09 */
  758. #define LADC_MIC3_STAGE 4
  759. #define LADC_MIC2_STAGE 3
  760. #define LADC_MIC1_STAGE 2
  761. #define LADC_DACL 1
  762. #define LADCMIXMUTE 0
  763. /* SUNXI_RADCMIX_SRC:0x0A*/
  764. #define RADC_MIC3_STAGE 4
  765. #define RADC_MIC2_STAGE 3
  766. #define RADC_MIC1_STAGE 2
  767. #define RADC_DACL 0
  768. #define RADCMIXMUTE 0
  769. /* SUNXI_XADCMIX_SRC:0x0B*/
  770. #define XADC_MIC3_STAGE 4
  771. #define XADC_MIC2_STAGE 3
  772. #define XADC_MIC1_STAGE 2
  773. #define XADC_DACL 1
  774. #define XADCMIXMUTE 0
  775. /* SUNXI_ADC_CTL:0x0D */
  776. #define ADCREN 7
  777. #define ADCLEN 6
  778. #define ADCXEN 4
  779. #define DITHER_SEL 3
  780. #define ADCG 0
  781. /* SUNXI_MBIAS_CTL:0x0E */
  782. #define MMICBIASEN 7
  783. #define MBIASSEL 5
  784. /* SUNXI_APT_REG:0x0F */
  785. #define MMIC_BIAS_CHOP_EN 7
  786. #define MMIC_BIAS_CHOP_CLK_SEL 5
  787. #define DITHER 4
  788. #define DITHER_CLK_SEL 2
  789. #define BIHE_CTRL 0
  790. /* SUNXI_OP_BIAS_CTL0:0x10 */
  791. #define OPDRV_OPEAR_CUR 6
  792. #define OPADC1_BIAS_CUR 4
  793. #define OPADC2_BIAS_CUR 2
  794. #define OPAAF_BIAS_CUR 0
  795. /* SUNXI_OP_BIAS_CTL1:0x11 */
  796. #define OPMIC_BIAS_CUR 6
  797. #define OPVR_BIAS_CUR 4
  798. #define OPDAC_BIAS_CUR 2
  799. #define OPMIX_BIAS_CUR 0
  800. /* SUNXI_ZC_VOL_CTL:0x12 */
  801. #define ZC_EN 7
  802. #define ZC_TIMEOUT_SEL 6
  803. #define USB_BIAS_CUR 0
  804. /* SUNXI_BIAS_CAL_CTRL:0x15 */
  805. #define CUR_TEST_SEL 6
  806. #endif /* __SUN8IW18_CODEC_H */