cs48l32_registers.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Register definitions for Cirrus Logic CS48L32
  4. *
  5. * Copyright (C) 2017-2018, 2020, 2022, 2025 Cirrus Logic, Inc. and
  6. * Cirrus Logic International Semiconductor Ltd.
  7. */
  8. #ifndef CS48L32_REGISTERS_H
  9. #define CS48L32_REGISTERS_H
  10. /* Register Addresses. */
  11. #define CS48L32_DEVID 0x0
  12. #define CS48L32_REVID 0x4
  13. #define CS48L32_OTPID 0x10
  14. #define CS48L32_SFT_RESET 0x20
  15. #define CS48L32_CTRL_IF_DEBUG3 0xA8
  16. #define CS48L32_MCU_CTRL1 0x804
  17. #define CS48L32_GPIO1_CTRL1 0xc08
  18. #define CS48L32_GPIO3_CTRL1 0xc10
  19. #define CS48L32_GPIO7_CTRL1 0xc20
  20. #define CS48L32_GPIO16_CTRL1 0xc44
  21. #define CS48L32_OUTPUT_SYS_CLK 0x1020
  22. #define CS48L32_AUXPDM_CTRL 0x1044
  23. #define CS48L32_AUXPDM_CTRL2 0x105c
  24. #define CS48L32_CLOCK32K 0x1400
  25. #define CS48L32_SYSTEM_CLOCK1 0x1404
  26. #define CS48L32_SYSTEM_CLOCK2 0x1408
  27. #define CS48L32_SAMPLE_RATE1 0x1420
  28. #define CS48L32_SAMPLE_RATE2 0x1424
  29. #define CS48L32_SAMPLE_RATE3 0x1428
  30. #define CS48L32_SAMPLE_RATE4 0x142c
  31. #define CS48L32_DSP_CLOCK1 0x1510
  32. #define CS48L32_FLL1_CONTROL1 0x1c00
  33. #define CS48L32_FLL1_CONTROL5 0x1c10
  34. #define CS48L32_FLL1_CONTROL6 0x1c14
  35. #define CS48L32_FLL1_GPIO_CLOCK 0x1ca0
  36. #define CS48L32_CHARGE_PUMP1 0x2000
  37. #define CS48L32_LDO2_CTRL1 0x2408
  38. #define CS48L32_MICBIAS_CTRL1 0x2410
  39. #define CS48L32_MICBIAS_CTRL5 0x2418
  40. #define CS48L32_IRQ1_CTRL_AOD 0x2710
  41. #define CS48L32_AOD_PAD_CTRL 0x2718
  42. #define CS48L32_INPUT_CONTROL 0x4000
  43. #define CS48L32_INPUT_STATUS 0x4004
  44. #define CS48L32_INPUT_RATE_CONTROL 0x4008
  45. #define CS48L32_INPUT_CONTROL2 0x400c
  46. #define CS48L32_INPUT_CONTROL3 0x4014
  47. #define CS48L32_INPUT1_CONTROL1 0x4020
  48. #define CS48L32_IN1L_CONTROL1 0x4024
  49. #define CS48L32_IN1L_CONTROL2 0x4028
  50. #define CS48L32_IN1R_CONTROL1 0x4044
  51. #define CS48L32_IN1R_CONTROL2 0x4048
  52. #define CS48L32_INPUT2_CONTROL1 0x4060
  53. #define CS48L32_IN2L_CONTROL1 0x4064
  54. #define CS48L32_IN2L_CONTROL2 0x4068
  55. #define CS48L32_IN2R_CONTROL1 0x4084
  56. #define CS48L32_IN2R_CONTROL2 0x4088
  57. #define CS48L32_INPUT_HPF_CONTROL 0x4244
  58. #define CS48L32_INPUT_VOL_CONTROL 0x4248
  59. #define CS48L32_AUXPDM_CONTROL1 0x4300
  60. #define CS48L32_AUXPDM_CONTROL2 0x4304
  61. #define CS48L32_AUXPDM1_CONTROL1 0x4308
  62. #define CS48L32_AUXPDM2_CONTROL1 0x4310
  63. #define CS48L32_ADC1L_ANA_CONTROL1 0x4688
  64. #define CS48L32_ADC1R_ANA_CONTROL1 0x468c
  65. #define CS48L32_ASP1_ENABLES1 0x6000
  66. #define CS48L32_ASP1_CONTROL3 0x600C
  67. #define CS48L32_ASP1_DATA_CONTROL5 0x6040
  68. #define CS48L32_ASP2_ENABLES1 0x6080
  69. #define CS48L32_ASP2_CONTROL3 0x608C
  70. #define CS48L32_ASP2_DATA_CONTROL5 0x60c0
  71. #define CS48L32_ASP1TX1_INPUT1 0x8200
  72. #define CS48L32_ASP1TX2_INPUT1 0x8210
  73. #define CS48L32_ASP1TX3_INPUT1 0x8220
  74. #define CS48L32_ASP1TX4_INPUT1 0x8230
  75. #define CS48L32_ASP1TX5_INPUT1 0x8240
  76. #define CS48L32_ASP1TX6_INPUT1 0x8250
  77. #define CS48L32_ASP1TX7_INPUT1 0x8260
  78. #define CS48L32_ASP1TX8_INPUT1 0x8270
  79. #define CS48L32_ASP1TX8_INPUT4 0x827c
  80. #define CS48L32_ASP2TX1_INPUT1 0x8300
  81. #define CS48L32_ASP2TX2_INPUT1 0x8310
  82. #define CS48L32_ASP2TX3_INPUT1 0x8320
  83. #define CS48L32_ASP2TX4_INPUT1 0x8330
  84. #define CS48L32_ASP2TX4_INPUT4 0x833c
  85. #define CS48L32_ISRC1INT1_INPUT1 0x8980
  86. #define CS48L32_ISRC1INT2_INPUT1 0x8990
  87. #define CS48L32_ISRC1INT3_INPUT1 0x89a0
  88. #define CS48L32_ISRC1INT4_INPUT1 0x89b0
  89. #define CS48L32_ISRC1DEC1_INPUT1 0x89c0
  90. #define CS48L32_ISRC1DEC2_INPUT1 0x89d0
  91. #define CS48L32_ISRC1DEC3_INPUT1 0x89e0
  92. #define CS48L32_ISRC1DEC4_INPUT1 0x89f0
  93. #define CS48L32_ISRC2INT1_INPUT1 0x8a00
  94. #define CS48L32_ISRC2INT2_INPUT1 0x8a10
  95. #define CS48L32_ISRC2DEC1_INPUT1 0x8a40
  96. #define CS48L32_ISRC2DEC2_INPUT1 0x8a50
  97. #define CS48L32_ISRC3INT1_INPUT1 0x8a80
  98. #define CS48L32_ISRC3INT2_INPUT1 0x8a90
  99. #define CS48L32_ISRC3DEC1_INPUT1 0x8ac0
  100. #define CS48L32_ISRC3DEC2_INPUT1 0x8ad0
  101. #define CS48L32_EQ1_INPUT1 0x8b80
  102. #define CS48L32_EQ2_INPUT1 0x8b90
  103. #define CS48L32_EQ3_INPUT1 0x8ba0
  104. #define CS48L32_EQ4_INPUT1 0x8bb0
  105. #define CS48L32_EQ4_INPUT4 0x8bbc
  106. #define CS48L32_DRC1L_INPUT1 0x8c00
  107. #define CS48L32_DRC1R_INPUT1 0x8c10
  108. #define CS48L32_DRC1R_INPUT4 0x8c1c
  109. #define CS48L32_DRC2L_INPUT1 0x8c20
  110. #define CS48L32_DRC2R_INPUT1 0x8c30
  111. #define CS48L32_DRC2R_INPUT4 0x8c3c
  112. #define CS48L32_LHPF1_INPUT1 0x8c80
  113. #define CS48L32_LHPF1_INPUT4 0x8c8c
  114. #define CS48L32_LHPF2_INPUT1 0x8c90
  115. #define CS48L32_LHPF2_INPUT4 0x8c9c
  116. #define CS48L32_LHPF3_INPUT1 0x8ca0
  117. #define CS48L32_LHPF3_INPUT4 0x8cac
  118. #define CS48L32_LHPF4_INPUT1 0x8cb0
  119. #define CS48L32_LHPF4_INPUT4 0x8cbc
  120. #define CS48L32_DSP1RX1_INPUT1 0x9000
  121. #define CS48L32_DSP1RX2_INPUT1 0x9010
  122. #define CS48L32_DSP1RX3_INPUT1 0x9020
  123. #define CS48L32_DSP1RX4_INPUT1 0x9030
  124. #define CS48L32_DSP1RX5_INPUT1 0x9040
  125. #define CS48L32_DSP1RX6_INPUT1 0x9050
  126. #define CS48L32_DSP1RX7_INPUT1 0x9060
  127. #define CS48L32_DSP1RX8_INPUT1 0x9070
  128. #define CS48L32_DSP1RX8_INPUT4 0x907c
  129. #define CS48L32_ISRC1_CONTROL1 0xa400
  130. #define CS48L32_ISRC1_CONTROL2 0xa404
  131. #define CS48L32_ISRC2_CONTROL1 0xa510
  132. #define CS48L32_ISRC2_CONTROL2 0xa514
  133. #define CS48L32_ISRC3_CONTROL1 0xa620
  134. #define CS48L32_ISRC3_CONTROL2 0xa624
  135. #define CS48L32_FX_SAMPLE_RATE 0xa800
  136. #define CS48L32_EQ_CONTROL1 0xa808
  137. #define CS48L32_EQ_CONTROL2 0xa80c
  138. #define CS48L32_EQ1_GAIN1 0xa810
  139. #define CS48L32_EQ1_GAIN2 0xa814
  140. #define CS48L32_EQ1_BAND1_COEFF1 0xa818
  141. #define CS48L32_EQ1_BAND1_COEFF2 0xa81c
  142. #define CS48L32_EQ1_BAND1_PG 0xa820
  143. #define CS48L32_EQ1_BAND2_COEFF1 0xa824
  144. #define CS48L32_EQ1_BAND2_COEFF2 0xa828
  145. #define CS48L32_EQ1_BAND2_PG 0xa82c
  146. #define CS48L32_EQ1_BAND3_COEFF1 0xa830
  147. #define CS48L32_EQ1_BAND3_COEFF2 0xa834
  148. #define CS48L32_EQ1_BAND3_PG 0xa838
  149. #define CS48L32_EQ1_BAND4_COEFF1 0xa83c
  150. #define CS48L32_EQ1_BAND4_COEFF2 0xa840
  151. #define CS48L32_EQ1_BAND4_PG 0xa844
  152. #define CS48L32_EQ1_BAND5_COEFF1 0xa848
  153. #define CS48L32_EQ1_BAND5_PG 0xa850
  154. #define CS48L32_EQ2_GAIN1 0xa854
  155. #define CS48L32_EQ2_GAIN2 0xa858
  156. #define CS48L32_EQ2_BAND1_COEFF1 0xa85c
  157. #define CS48L32_EQ2_BAND1_COEFF2 0xa860
  158. #define CS48L32_EQ2_BAND1_PG 0xa864
  159. #define CS48L32_EQ2_BAND2_COEFF1 0xa868
  160. #define CS48L32_EQ2_BAND2_COEFF2 0xa86c
  161. #define CS48L32_EQ2_BAND2_PG 0xa870
  162. #define CS48L32_EQ2_BAND3_COEFF1 0xa874
  163. #define CS48L32_EQ2_BAND3_COEFF2 0xa878
  164. #define CS48L32_EQ2_BAND3_PG 0xa87c
  165. #define CS48L32_EQ2_BAND4_COEFF1 0xa880
  166. #define CS48L32_EQ2_BAND4_COEFF2 0xa884
  167. #define CS48L32_EQ2_BAND4_PG 0xa888
  168. #define CS48L32_EQ2_BAND5_COEFF1 0xa88c
  169. #define CS48L32_EQ2_BAND5_PG 0xa894
  170. #define CS48L32_EQ3_GAIN1 0xa898
  171. #define CS48L32_EQ3_GAIN2 0xa89c
  172. #define CS48L32_EQ3_BAND1_COEFF1 0xa8a0
  173. #define CS48L32_EQ3_BAND1_COEFF2 0xa8a4
  174. #define CS48L32_EQ3_BAND1_PG 0xa8a8
  175. #define CS48L32_EQ3_BAND2_COEFF1 0xa8ac
  176. #define CS48L32_EQ3_BAND2_COEFF2 0xa8b0
  177. #define CS48L32_EQ3_BAND2_PG 0xa8b4
  178. #define CS48L32_EQ3_BAND3_COEFF1 0xa8b8
  179. #define CS48L32_EQ3_BAND3_COEFF2 0xa8bc
  180. #define CS48L32_EQ3_BAND3_PG 0xa8c0
  181. #define CS48L32_EQ3_BAND4_COEFF1 0xa8c4
  182. #define CS48L32_EQ3_BAND4_COEFF2 0xa8c8
  183. #define CS48L32_EQ3_BAND4_PG 0xa8cc
  184. #define CS48L32_EQ3_BAND5_COEFF1 0xa8d0
  185. #define CS48L32_EQ3_BAND5_PG 0xa8d8
  186. #define CS48L32_EQ4_GAIN1 0xa8dc
  187. #define CS48L32_EQ4_GAIN2 0xa8e0
  188. #define CS48L32_EQ4_BAND1_COEFF1 0xa8e4
  189. #define CS48L32_EQ4_BAND1_COEFF2 0xa8e8
  190. #define CS48L32_EQ4_BAND1_PG 0xa8ec
  191. #define CS48L32_EQ4_BAND2_COEFF1 0xa8f0
  192. #define CS48L32_EQ4_BAND2_COEFF2 0xa8f4
  193. #define CS48L32_EQ4_BAND2_PG 0xa8f8
  194. #define CS48L32_EQ4_BAND3_COEFF1 0xa8fc
  195. #define CS48L32_EQ4_BAND3_COEFF2 0xa900
  196. #define CS48L32_EQ4_BAND3_PG 0xa904
  197. #define CS48L32_EQ4_BAND4_COEFF1 0xa908
  198. #define CS48L32_EQ4_BAND4_COEFF2 0xa90c
  199. #define CS48L32_EQ4_BAND4_PG 0xa910
  200. #define CS48L32_EQ4_BAND5_COEFF1 0xa914
  201. #define CS48L32_EQ4_BAND5_PG 0xa91c
  202. #define CS48L32_LHPF_CONTROL1 0xaa30
  203. #define CS48L32_LHPF_CONTROL2 0xaa34
  204. #define CS48L32_LHPF1_COEFF 0xaa38
  205. #define CS48L32_LHPF2_COEFF 0xaa3c
  206. #define CS48L32_LHPF3_COEFF 0xaa40
  207. #define CS48L32_LHPF4_COEFF 0xaa44
  208. #define CS48L32_DRC1_CONTROL1 0xab00
  209. #define CS48L32_DRC1_CONTROL4 0xab0c
  210. #define CS48L32_DRC2_CONTROL1 0xab14
  211. #define CS48L32_DRC2_CONTROL4 0xab20
  212. #define CS48L32_TONE_GENERATOR1 0xb000
  213. #define CS48L32_TONE_GENERATOR2 0xb004
  214. #define CS48L32_COMFORT_NOISE_GENERATOR 0xb400
  215. #define CS48L32_US_CONTROL 0xb800
  216. #define CS48L32_US1_CONTROL 0xb804
  217. #define CS48L32_US1_DET_CONTROL 0xb808
  218. #define CS48L32_US2_CONTROL 0xb814
  219. #define CS48L32_US2_DET_CONTROL 0xb818
  220. #define CS48L32_DSP1_XM_SRAM_IBUS_SETUP_0 0x1700c
  221. #define CS48L32_DSP1_XM_SRAM_IBUS_SETUP_1 0x17010
  222. #define CS48L32_DSP1_XM_SRAM_IBUS_SETUP_24 0x1706c
  223. #define CS48L32_DSP1_YM_SRAM_IBUS_SETUP_0 0x17070
  224. #define CS48L32_DSP1_YM_SRAM_IBUS_SETUP_1 0x17074
  225. #define CS48L32_DSP1_YM_SRAM_IBUS_SETUP_8 0x17090
  226. #define CS48L32_DSP1_PM_SRAM_IBUS_SETUP_0 0x17094
  227. #define CS48L32_DSP1_PM_SRAM_IBUS_SETUP_1 0x17098
  228. #define CS48L32_DSP1_PM_SRAM_IBUS_SETUP_7 0x170b0
  229. #define CS48L32_IRQ1_STATUS 0x18004
  230. #define CS48L32_IRQ1_EINT_1 0x18010
  231. #define CS48L32_IRQ1_EINT_2 0x18014
  232. #define CS48L32_IRQ1_EINT_7 0x18028
  233. #define CS48L32_IRQ1_EINT_9 0x18030
  234. #define CS48L32_IRQ1_EINT_11 0x18038
  235. #define CS48L32_IRQ1_STS_1 0x18090
  236. #define CS48L32_IRQ1_STS_6 0x180a4
  237. #define CS48L32_IRQ1_STS_11 0x180b8
  238. #define CS48L32_IRQ1_MASK_1 0x18110
  239. #define CS48L32_IRQ1_MASK_2 0x18114
  240. #define CS48L32_IRQ1_MASK_7 0x18128
  241. #define CS48L32_IRQ1_MASK_9 0x18130
  242. #define CS48L32_IRQ1_MASK_11 0x18138
  243. #define CS48L32_DSP1_XMEM_PACKED_0 0x2000000
  244. #define CS48L32_DSP1_XMEM_PACKED_LAST 0x208fff0
  245. #define CS48L32_DSP1_SYS_INFO_ID 0x25e0000
  246. #define CS48L32_DSP1_AHBM_WINDOW_DEBUG_1 0x25e2044
  247. #define CS48L32_DSP1_XMEM_UNPACKED24_0 0x2800000
  248. #define CS48L32_DSP1_XMEM_UNPACKED24_LAST 0x28bfff4
  249. #define CS48L32_DSP1_CLOCK_FREQ 0x2b80000
  250. #define CS48L32_DSP1_SAMPLE_RATE_TX8 0x2b802b8
  251. #define CS48L32_DSP1_SCRATCH1 0x2b805c0
  252. #define CS48L32_DSP1_SCRATCH4 0x2b805d8
  253. #define CS48L32_DSP1_CCM_CORE_CONTROL 0x2bc1000
  254. #define CS48L32_DSP1_STREAM_ARB_RESYNC_MSK1 0x2bc5a00
  255. #define CS48L32_DSP1_YMEM_PACKED_0 0x2c00000
  256. #define CS48L32_DSP1_YMEM_PACKED_LAST 0x2c2fff0
  257. #define CS48L32_DSP1_YMEM_UNPACKED24_0 0x3400000
  258. #define CS48L32_DSP1_YMEM_UNPACKED24_LAST 0x343fff4
  259. #define CS48L32_DSP1_PMEM_0 0x3800000
  260. #define CS48L32_DSP1_PMEM_LAST 0x3845fe8
  261. /* (0x0) DEVID */
  262. #define CS48L32_DEVID_MASK 0x00ffffff
  263. #define CS48L32_DEVID_SHIFT 0
  264. /* (0x4) REVID */
  265. #define CS48L32_AREVID_MASK 0x000000f0
  266. #define CS48L32_AREVID_SHIFT 4
  267. #define CS48L32_MTLREVID_MASK 0x0000000f
  268. #define CS48L32_MTLREVID_SHIFT 0
  269. /* (0x10) OTPID */
  270. #define CS48L32_OTPID_MASK 0x0000000f
  271. /* (0x0804) MCU_CTRL1 */
  272. #define CS48L32_MCU_STS_MASK 0x0000ff00
  273. #define CS48L32_MCU_STS_SHIFT 8
  274. /* (0xc08) GPIO1_CTRL1 */
  275. #define CS48L32_GPIOX_CTRL1_FN_MASK 0x000003ff
  276. /* (0x1020) OUTPUT_SYS_CLK */
  277. #define CS48L32_OPCLK_EN_SHIFT 15
  278. #define CS48L32_OPCLK_DIV_MASK 0x000000f8
  279. #define CS48L32_OPCLK_DIV_SHIFT 3
  280. #define CS48L32_OPCLK_SEL_MASK 0x00000007
  281. /* (0x105c) AUXPDM_CTRL2 */
  282. #define CS48L32_AUXPDMDAT2_SRC_SHIFT 4
  283. #define CS48L32_AUXPDMDAT1_SRC_SHIFT 0
  284. /* (0x1400) CLOCK32K */
  285. #define CS48L32_CLK_32K_EN_MASK 0x00000040
  286. #define CS48L32_CLK_32K_SRC_MASK 0x00000003
  287. /* (0x1404) SYSTEM_CLOCK1 */
  288. #define CS48L32_SYSCLK_FRAC_MASK 0x00008000
  289. #define CS48L32_SYSCLK_FREQ_MASK 0x00000700
  290. #define CS48L32_SYSCLK_FREQ_SHIFT 8
  291. #define CS48L32_SYSCLK_EN_SHIFT 6
  292. #define CS48L32_SYSCLK_SRC_MASK 0x0000001f
  293. #define CS48L32_SYSCLK_SRC_SHIFT 0
  294. /* (0x1408) SYSTEM_CLOCK2 */
  295. #define CS48L32_SYSCLK_FREQ_STS_MASK 0x00000700
  296. #define CS48L32_SYSCLK_FREQ_STS_SHIFT 8
  297. /* (0x1420) SAMPLE_RATE1 */
  298. #define CS48L32_SAMPLE_RATE_1_MASK 0x0000001f
  299. #define CS48L32_SAMPLE_RATE_1_SHIFT 0
  300. /* (0x1510) DSP_CLOCK1 */
  301. #define CS48L32_DSP_CLK_FREQ_MASK 0xffff0000
  302. #define CS48L32_DSP_CLK_FREQ_SHIFT 16
  303. /* (0x1c00) FLL_CONTROL1 */
  304. #define CS48L32_FLL_CTRL_UPD_MASK 0x00000004
  305. #define CS48L32_FLL_HOLD_MASK 0x00000002
  306. #define CS48L32_FLL_EN_MASK 0x00000001
  307. /* (0x1c04) FLL_CONTROL2 */
  308. #define CS48L32_FLL_LOCKDET_THR_MASK 0xf0000000
  309. #define CS48L32_FLL_LOCKDET_THR_SHIFT 28
  310. #define CS48L32_FLL_LOCKDET_MASK 0x08000000
  311. #define CS48L32_FLL_PHASEDET_MASK 0x00400000
  312. #define CS48L32_FLL_PHASEDET_SHIFT 22
  313. #define CS48L32_FLL_REFCLK_DIV_MASK 0x00030000
  314. #define CS48L32_FLL_REFCLK_DIV_SHIFT 16
  315. #define CS48L32_FLL_REFCLK_SRC_MASK 0x0000f000
  316. #define CS48L32_FLL_REFCLK_SRC_SHIFT 12
  317. #define CS48L32_FLL_N_MASK 0x000003ff
  318. #define CS48L32_FLL_N_SHIFT 0
  319. /* (0x1c08) FLL_CONTROL3 */
  320. #define CS48L32_FLL_LAMBDA_MASK 0xffff0000
  321. #define CS48L32_FLL_LAMBDA_SHIFT 16
  322. #define CS48L32_FLL_THETA_MASK 0x0000ffff
  323. #define CS48L32_FLL_THETA_SHIFT 0
  324. /* (0x1c0c) FLL_CONTROL4 */
  325. #define CS48L32_FLL_FD_GAIN_COARSE_SHIFT 16
  326. #define CS48L32_FLL_HP_MASK 0x00003000
  327. #define CS48L32_FLL_HP_SHIFT 12
  328. #define CS48L32_FLL_FB_DIV_MASK 0x000003ff
  329. #define CS48L32_FLL_FB_DIV_SHIFT 0
  330. /* (0x1c10) FLL_CONTROL5 */
  331. #define CS48L32_FLL_FRC_INTEG_UPD_MASK 0x00008000
  332. /* (0x2000) CHARGE_PUMP1 */
  333. #define CS48L32_CP2_BYPASS_SHIFT 1
  334. #define CS48L32_CP2_EN_SHIFT 0
  335. /* (0x2408) LDO2_CTRL1 */
  336. #define CS48L32_LDO2_VSEL_MASK 0x000007e0
  337. #define CS48L32_LDO2_VSEL_SHIFT 5
  338. /* (0x2410) MICBIAS_CTRL1 */
  339. #define CS48L32_MICB1_LVL_MASK 0x000001e0
  340. #define CS48L32_MICB1_LVL_SHIFT 5
  341. #define CS48L32_MICB1_EN_SHIFT 0
  342. /* (0x2418) MICBIAS_CTRL5 */
  343. #define CS48L32_MICB1C_EN_SHIFT 8
  344. #define CS48L32_MICB1B_EN_SHIFT 4
  345. #define CS48L32_MICB1A_EN_SHIFT 0
  346. /* (0x2710) IRQ1_CTRL_AOD */
  347. #define CS48L32_IRQ_POL_MASK 0x00000400
  348. /* (0x4000) INPUT_CONTROL */
  349. #define CS48L32_IN2L_EN_SHIFT 3
  350. #define CS48L32_IN2R_EN_SHIFT 2
  351. #define CS48L32_IN1L_EN_SHIFT 1
  352. #define CS48L32_IN1R_EN_SHIFT 0
  353. /* (0x400c) INPUT_CONTROL2 */
  354. #define CS48L32_PDM_FLLCLK_SRC_MASK 0x0000000f
  355. #define CS48L32_PDM_FLLCLK_SRC_SHIFT 0
  356. /* (0x4014) INPUT_CONTROL3 */
  357. #define CS48L32_IN_VU 0x20000000
  358. #define CS48L32_IN_VU_MASK 0x20000000
  359. #define CS48L32_IN_VU_SHIFT 29
  360. #define CS48L32_IN_VU_WIDTH 1
  361. /* (0x4020) INPUT1_CONTROL1 */
  362. #define CS48L32_IN1_OSR_SHIFT 16
  363. #define CS48L32_IN1_PDM_SUP_MASK 0x00000300
  364. #define CS48L32_IN1_PDM_SUP_SHIFT 8
  365. #define CS48L32_IN1_MODE_SHIFT 0
  366. /*
  367. * (0x4024) IN1L_CONTROL1
  368. * (0x4044) IN1R_CONTROL1
  369. */
  370. #define CS48L32_INx_SRC_MASK 0x30000000
  371. #define CS48L32_INx_SRC_SHIFT 28
  372. #define CS48L32_INx_RATE_MASK 0x0000f800
  373. #define CS48L32_INx_RATE_SHIFT 11
  374. #define CS48L32_INx_HPF_SHIFT 2
  375. #define CS48L32_INx_LP_MODE_SHIFT 0
  376. /*
  377. * (0x4028) IN1L_CONTROL2
  378. * (0x4048) IN1R_CONTROL2
  379. */
  380. #define CS48L32_INx_MUTE_MASK 0x10000000
  381. #define CS48L32_INx_VOL_SHIFT 16
  382. #define CS48L32_INx_PGA_VOL_SHIFT 1
  383. /* (0x4244) INPUT_HPF_CONTROL */
  384. #define CS48L32_IN_HPF_CUT_SHIFT 0
  385. /* (0x4248) INPUT_VOL_CONTROL */
  386. #define CS48L32_IN_VD_RAMP_SHIFT 4
  387. #define CS48L32_IN_VI_RAMP_SHIFT 0
  388. /* (0x4308) AUXPDM1_CONTROL1 */
  389. #define CS48L32_AUXPDM1_FREQ_SHIFT 16
  390. #define CS48L32_AUXPDM1_SRC_MASK 0x00000f00
  391. #define CS48L32_AUXPDM1_SRC_SHIFT 8
  392. /* (0x4688) ADC1L_ANA_CONTROL1 */
  393. /* (0x468c) ADC1R_ANA_CONTROL1 */
  394. #define CS48L32_ADC1x_INT_ENA_FRC_MASK 0x00000002
  395. /* (0x6004) ASPn_CONTROL1 */
  396. #define CS48L32_ASP_RATE_MASK 0x00001f00
  397. #define CS48L32_ASP_RATE_SHIFT 8
  398. #define CS48L32_ASP_BCLK_FREQ_MASK 0x0000003f
  399. /* (0x6008) ASPn_CONTROL2 */
  400. #define CS48L32_ASP_RX_WIDTH_MASK 0xff000000
  401. #define CS48L32_ASP_RX_WIDTH_SHIFT 24
  402. #define CS48L32_ASP_TX_WIDTH_MASK 0x00ff0000
  403. #define CS48L32_ASP_TX_WIDTH_SHIFT 16
  404. #define CS48L32_ASP_FMT_MASK 0x00000700
  405. #define CS48L32_ASP_FMT_SHIFT 8
  406. #define CS48L32_ASP_BCLK_INV_MASK 0x00000040
  407. #define CS48L32_ASP_BCLK_MSTR_MASK 0x00000010
  408. #define CS48L32_ASP_FSYNC_INV_MASK 0x00000004
  409. #define CS48L32_ASP_FSYNC_MSTR_MASK 0x00000001
  410. /* (0x6010) ASPn_CONTROL3 */
  411. #define CS48L32_ASP_DOUT_HIZ_MASK 0x00000003
  412. /* (0x6030) ASPn_DATA_CONTROL1 */
  413. #define CS48L32_ASP_TX_WL_MASK 0x0000003f
  414. /* (0x6040) ASPn_DATA_CONTROL5 */
  415. #define CS48L32_ASP_RX_WL_MASK 0x0000003f
  416. /* (0x82xx - 0x90xx) *_INPUT[1-4] */
  417. #define CS48L32_MIXER_VOL_MASK 0x00FE0000
  418. #define CS48L32_MIXER_VOL_SHIFT 17
  419. #define CS48L32_MIXER_VOL_WIDTH 7
  420. #define CS48L32_MIXER_SRC_MASK 0x000001ff
  421. #define CS48L32_MIXER_SRC_SHIFT 0
  422. #define CS48L32_MIXER_SRC_WIDTH 9
  423. /* (0xa400) ISRC1_CONTROL1 */
  424. #define CS48L32_ISRC1_FSL_MASK 0xf8000000
  425. #define CS48L32_ISRC1_FSL_SHIFT 27
  426. #define CS48L32_ISRC1_FSH_MASK 0x0000f800
  427. #define CS48L32_ISRC1_FSH_SHIFT 11
  428. /* (0xa404) ISRC1_CONTROL2 */
  429. #define CS48L32_ISRC1_INT4_EN_SHIFT 11
  430. #define CS48L32_ISRC1_INT3_EN_SHIFT 10
  431. #define CS48L32_ISRC1_INT2_EN_SHIFT 9
  432. #define CS48L32_ISRC1_INT1_EN_SHIFT 8
  433. #define CS48L32_ISRC1_DEC4_EN_SHIFT 3
  434. #define CS48L32_ISRC1_DEC3_EN_SHIFT 2
  435. #define CS48L32_ISRC1_DEC2_EN_SHIFT 1
  436. #define CS48L32_ISRC1_DEC1_EN_SHIFT 0
  437. /* (0xa800) FX_SAMPLE_RATE */
  438. #define CS48L32_FX_RATE_MASK 0x0000f800
  439. #define CS48L32_FX_RATE_SHIFT 11
  440. /* (0xab00) DRC1_CONTROL1 */
  441. #define CS48L32_DRC1L_EN_SHIFT 1
  442. #define CS48L32_DRC1R_EN_SHIFT 0
  443. /* (0xb400) Comfort_Noise_Generator */
  444. #define CS48L32_NOISE_GEN_RATE_MASK 0x0000f800
  445. #define CS48L32_NOISE_GEN_RATE_SHIFT 11
  446. #define CS48L32_NOISE_GEN_EN_SHIFT 5
  447. #define CS48L32_NOISE_GEN_GAIN_SHIFT 0
  448. /* (0xb800) US_CONTROL */
  449. #define CS48L32_US1_DET_EN_SHIFT 8
  450. /* (0xb804) US1_CONTROL */
  451. #define CS48L32_US1_RATE_MASK 0xf8000000
  452. #define CS48L32_US1_RATE_SHIFT 27
  453. #define CS48L32_US1_GAIN_SHIFT 12
  454. #define CS48L32_US1_SRC_MASK 0x00000f00
  455. #define CS48L32_US1_SRC_SHIFT 8
  456. #define CS48L32_US1_FREQ_MASK 0x00000070
  457. #define CS48L32_US1_FREQ_SHIFT 4
  458. /* (0xb808) US1_DET_CONTROL */
  459. #define CS48L32_US1_DET_DCY_SHIFT 28
  460. #define CS48L32_US1_DET_HOLD_SHIFT 24
  461. #define CS48L32_US1_DET_NUM_SHIFT 20
  462. #define CS48L32_US1_DET_THR_SHIFT 16
  463. #define CS48L32_US1_DET_LPF_CUT_SHIFT 5
  464. #define CS48L32_US1_DET_LPF_SHIFT 4
  465. /* (0x18004) IRQ1_STATUS */
  466. #define CS48L32_IRQ1_STS_MASK 0x00000001
  467. /* (0x18014) IRQ1_EINT_2 */
  468. #define CS48L32_BOOT_DONE_EINT1_MASK 0x00000008
  469. /* (0x18028) IRQ1_EINT_7 */
  470. #define CS48L32_DSP1_MPU_ERR_EINT1_MASK 0x00200000
  471. #define CS48L32_DSP1_WDT_EXPIRE_EINT1_MASK 0x00100000
  472. /* (0x18030) IRQ1_EINT_9 */
  473. #define CS48L32_DSP1_IRQ0_EINT1_MASK 0x00000001
  474. /* (0x180a4) IRQ1_STS_6 */
  475. #define CS48L32_FLL1_LOCK_STS1_MASK 0x00000001
  476. #endif