cs35l43.h 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /************************************************/
  3. /* Software Reset and Hardware ID */
  4. /************************************************/
  5. #define CS35L43_DEVID 0x0000000
  6. #define CS35L43_REVID 0x0000004
  7. #define CS35L43_FABID 0x0000008
  8. #define CS35L43_RELID 0x000000C
  9. #define CS35L43_OTPID 0x0000010
  10. #define CS35L43_SFT_RESET 0x0000020
  11. /************************************************/
  12. /* Test Register Access */
  13. /************************************************/
  14. #define CS35L43_TEST_KEY_CTRL 0x0000040
  15. #define CS35L43_USER_KEY_CTRL 0x0000044
  16. /************************************************/
  17. /* CTRL_ASYNC */
  18. /************************************************/
  19. #define CS35L43_CTRL_ASYNC0 0x0000050
  20. #define CS35L43_CTRL_ASYNC1 0x0000054
  21. #define CS35L43_CTRL_ASYNC2 0x0000058
  22. #define CS35L43_CTRL_ASYNC3 0x000005C
  23. /************************************************/
  24. /* Control Interface Configuration */
  25. /************************************************/
  26. #define CS35L43_CTRL_IF_CONFIG1 0x0000100
  27. #define CS35L43_CTRL_IF_STATUS1 0x0000104
  28. #define CS35L43_CTRL_IF_STATUS2 0x0000108
  29. #define CS35L43_CTRL_IF_CONFIG2 0x0000110
  30. #define CS35L43_CTRL_IF_DEBUG1 0x0000120
  31. #define CS35L43_CTRL_IF_DEBUG2 0x0000124
  32. #define CS35L43_CTRL_IF_DEBUG3 0x0000128
  33. #define CS35L43_CIF_MON1 0x0000140
  34. #define CS35L43_CIF_MON2 0x0000144
  35. #define CS35L43_CIF_MON_PADDR 0x0000148
  36. #define CS35L43_CTRL_IF_SPARE1 0x0000154
  37. #define CS35L43_CTRL_IF_I2C 0x0000158
  38. #define CS35L43_CTRL_IF_I2C_1_CONTROL 0x0000160
  39. #define CS35L43_CTRL_IF_I2C_1_BROADCAST 0x0000164
  40. #define CS35L43_APB_MSTR_DSP_BRIDGE_ERR 0x0000174
  41. #define CS35L43_CIF1_BRIDGE_ERR 0x0000178
  42. #define CS35L43_CIF2_BRIDGE_ERR 0x000017C
  43. /************************************************/
  44. /* OTP_IF_MEM */
  45. /************************************************/
  46. #define CS35L43_OTP_MEM0 0x0000400
  47. #define CS35L43_OTP_MEM31 0x000047C
  48. /************************************************/
  49. /* One-Time Programmable (OTP) Control */
  50. /************************************************/
  51. #define CS35L43_OTP_CTRL0 0x0000500
  52. #define CS35L43_OTP_CTRL1 0x0000504
  53. #define CS35L43_OTP_CTRL3 0x0000508
  54. #define CS35L43_OTP_CTRL4 0x000050C
  55. #define CS35L43_OTP_CTRL5 0x0000510
  56. #define CS35L43_OTP_CTRL6 0x0000514
  57. #define CS35L43_OTP_CTRL7 0x0000518
  58. #define CS35L43_OTP_CTRL8 0x000051C
  59. /************************************************/
  60. /* Power, Global, and Release Control */
  61. /************************************************/
  62. #define CS35L43_DEVICE_ID 0x0002004
  63. #define CS35L43_FAB_ID 0x0002008
  64. #define CS35L43_REV_ID 0x000200C
  65. #define CS35L43_GLOBAL_ENABLES 0x0002014
  66. #define CS35L43_BLOCK_ENABLES 0x0002018
  67. #define CS35L43_BLOCK_ENABLES2 0x000201C
  68. #define CS35L43_GLOBAL_OVERRIDES 0x0002020
  69. #define CS35L43_GLOBAL_SYNC 0x0002024
  70. #define CS35L43_GLOBAL_STATUS 0x0002028
  71. #define CS35L43_DISCH_FILT 0x000202C
  72. #define CS35L43_OSC_TRIM 0x0002030
  73. #define CS35L43_ERROR_RELEASE 0x0002034
  74. #define CS35L43_PLL_OVERRIDE 0x0002038
  75. #define CS35L43_CHIP_STATUS 0x0002040
  76. #define CS35L43_CHIP_STATUS2 0x0002044
  77. #define CS35L43_TST_OSC 0x0002084
  78. /************************************************/
  79. /* Digital I/O Pad Control */
  80. /************************************************/
  81. #define CS35L43_LRCK_PAD_CONTROL 0x0002418
  82. #define CS35L43_SCLK_PAD_CONTROL 0x000241C
  83. #define CS35L43_SDIN_PAD_CONTROL 0x0002420
  84. #define CS35L43_SDOUT_PAD_CONTROL 0x0002424
  85. #define CS35L43_GPIO_PAD_CONTROL 0x000242C
  86. #define CS35L43_GPIO_GLOBAL_ENABLE_CONTROL 0x0002440
  87. /************************************************/
  88. /* Hibernation Power Management */
  89. /************************************************/
  90. #define CS35L43_PWRMGT_CTL 0x0002900
  91. #define CS35L43_WAKESRC_CTL 0x0002904
  92. #define CS35L43_WAKEI2C_CTL 0x0002908
  93. #define CS35L43_PWRMGT_STS 0x000290C
  94. #define CS35L43_PWRMGT_RST 0x0002910
  95. #define CS35L43_TEST_CTL 0x0002914
  96. #define CS35L43_WKSRC_SPI 0x200
  97. #define CS35L43_WKSRC_I2C 0x400
  98. /************************************************/
  99. /* Device Clocking and Sample Rate Control */
  100. /************************************************/
  101. #define CS35L43_REFCLK_INPUT 0x0002C04
  102. #define CS35L43_DSP_CLOCK_GEARING 0x0002C08
  103. #define CS35L43_GLOBAL_SAMPLE_RATE 0x0002C0C
  104. #define CS35L43_FS_MON_0 0x0002D10
  105. #define CS35L43_DSP1_SAMPLE_RATE_RX1 0x0002D3C
  106. #define CS35L43_DSP1_SAMPLE_RATE_RX2 0x0002D40
  107. #define CS35L43_DSP1_SAMPLE_RATE_TX1 0x0002D60
  108. #define CS35L43_DSP1_SAMPLE_RATE_TX2 0x0002D64
  109. #define CS35L43_LDOA_CTRL 0x000300C
  110. /************************************************/
  111. /* Multidevice Synchronization */
  112. /************************************************/
  113. #define CS35L43_SYNC_TX_RX_ENABLES 0x0003400
  114. /************************************************/
  115. /* Digital Boost Converter */
  116. /************************************************/
  117. #define CS35L43_VBST_CTL_1 0x0003800
  118. #define CS35L43_VBST_CTL_2 0x0003804
  119. #define CS35L43_BST_IPK_CTL 0x0003808
  120. #define CS35L43_SOFT_RAMP 0x000380C
  121. #define CS35L43_BST_LOOP_COEFF 0x0003810
  122. #define CS35L43_LBST_SLOPE 0x0003814
  123. #define CS35L43_BST_SW_FREQ 0x0003818
  124. #define CS35L43_BST_DCM_CTL 0x000381C
  125. #define CS35L43_DCM_FORCE 0x0003820
  126. #define CS35L43_VBST_OVP 0x0003830
  127. #define CS35L43_BST_RSVD_1 0x0003850
  128. /************************************************/
  129. /* VMON and IMON Signal Monitoring */
  130. /************************************************/
  131. #define CS35L43_MONITOR_FILT 0x0004008
  132. /************************************************/
  133. /* Die Temperature Monitoring */
  134. /************************************************/
  135. #define CS35L43_WARN_LIMIT_THRESHOLD 0x0004220
  136. #define CS35L43_CONFIGURATION 0x0004224
  137. #define CS35L43_STATUS 0x0004300
  138. #define CS35L43_ENABLES_AND_CODES_ANA 0x0004304
  139. #define CS35L43_ENABLES_AND_CODES_DIG 0x0004308
  140. /************************************************/
  141. /* ASP Data Interface */
  142. /************************************************/
  143. #define CS35L43_ASP_ENABLES1 0x0004800
  144. #define CS35L43_ASP_CONTROL1 0x0004804
  145. #define CS35L43_ASP_CONTROL2 0x0004808
  146. #define CS35L43_ASP_CONTROL3 0x000480C
  147. #define CS35L43_ASP_FRAME_CONTROL1 0x0004810
  148. #define CS35L43_ASP_FRAME_CONTROL5 0x0004820
  149. #define CS35L43_ASP_DATA_CONTROL1 0x0004830
  150. #define CS35L43_ASP_DATA_CONTROL5 0x0004840
  151. /************************************************/
  152. /* Data Routing */
  153. /************************************************/
  154. #define CS35L43_DACPCM1_INPUT 0x0004C00
  155. #define CS35L43_DACPCM2_INPUT 0x0004C08
  156. #define CS35L43_ASPTX1_INPUT 0x0004C20
  157. #define CS35L43_ASPTX2_INPUT 0x0004C24
  158. #define CS35L43_ASPTX3_INPUT 0x0004C28
  159. #define CS35L43_ASPTX4_INPUT 0x0004C2C
  160. #define CS35L43_DSP1RX1_INPUT 0x0004C40
  161. #define CS35L43_DSP1RX2_INPUT 0x0004C44
  162. #define CS35L43_DSP1RX3_INPUT 0x0004C48
  163. #define CS35L43_DSP1RX4_INPUT 0x0004C4C
  164. #define CS35L43_DSP1RX5_INPUT 0x0004C50
  165. #define CS35L43_DSP1RX6_INPUT 0x0004C54
  166. #define CS35L43_NGATE1_INPUT 0x0004C60
  167. #define CS35L43_NGATE2_INPUT 0x0004C64
  168. /************************************************/
  169. /* Amplifier Volume Control */
  170. /************************************************/
  171. #define CS35L43_AMP_CTRL 0x0006000
  172. #define CS35L43_HPF_TST 0x0006004
  173. #define CS35L43_VC_TST1 0x0006008
  174. #define CS35L43_VC_TST2 0x000600C
  175. #define CS35L43_INTP_TST 0x0006010
  176. /************************************************/
  177. /* SRC_MAGCOMP */
  178. /************************************************/
  179. #define CS35L43_SRC_MAGCOMP_TST 0x0006200
  180. #define CS35L43_SRC_MAGCOMP_B0_OVERRIDE 0x0006204
  181. #define CS35L43_SRC_MAGCOMP_B1_OVERRIDE 0x0006208
  182. #define CS35L43_SRC_MAGCOMP_A1_N_OVERRIDE 0x000620C
  183. /************************************************/
  184. /* VP and VBST Brownout Prevention + Temp Warning */
  185. /************************************************/
  186. #define CS35L43_VPBR_CONFIG 0x0006404
  187. #define CS35L43_VBBR_CONFIG 0x0006408
  188. #define CS35L43_VPBR_STATUS 0x000640C
  189. #define CS35L43_VBBR_STATUS 0x0006410
  190. #define CS35L43_OTW_CONFIG 0x0006414
  191. #define CS35L43_AMP_ERROR_VOL_SEL 0x0006418
  192. #define CS35L43_VOL_STATUS_TO_DSP 0x0006450
  193. /************************************************/
  194. /* Power Management - Class H, Weak-FET, and Noise Gating */
  195. /************************************************/
  196. #define CS35L43_CLASSH_CONFIG 0x0006800
  197. #define CS35L43_WKFET_AMP_CONFIG 0x0006804
  198. #define CS35L43_NG_CONFIG 0x0006808
  199. /************************************************/
  200. /* Dynamic Range Enhancement */
  201. /************************************************/
  202. #define CS35L43_AMP_GAIN 0x0006C04
  203. /************************************************/
  204. /* Diagnostic Signal Generator */
  205. /************************************************/
  206. #define CS35L43_DAC_MSM_CONFIG 0x0007400
  207. #define CS35L43_TST_DAC_MSM_CONFIG 0x0007404
  208. #define CS35L43_ALIVE_DCIN_WD 0x0007424
  209. /************************************************/
  210. /* Monitor Trim */
  211. /************************************************/
  212. #define CS35L43_SPKMON_OTP_3 0x000921C
  213. /************************************************/
  214. /* Interrupt Status and Mask Control */
  215. /************************************************/
  216. #define CS35L43_IRQ1_CFG 0x0010000
  217. #define CS35L43_IRQ1_STATUS 0x0010004
  218. #define CS35L43_IRQ1_EINT_1 0x0010010
  219. #define CS35L43_IRQ1_EINT_2 0x0010014
  220. #define CS35L43_IRQ1_EINT_3 0x0010018
  221. #define CS35L43_IRQ1_EINT_4 0x001001C
  222. #define CS35L43_IRQ1_EINT_5 0x0010020
  223. #define CS35L43_IRQ1_STS_1 0x0010090
  224. #define CS35L43_IRQ1_STS_2 0x0010094
  225. #define CS35L43_IRQ1_STS_3 0x0010098
  226. #define CS35L43_IRQ1_STS_4 0x001009C
  227. #define CS35L43_IRQ1_STS_5 0x00100A0
  228. #define CS35L43_IRQ1_MASK_1 0x0010110
  229. #define CS35L43_IRQ1_MASK_2 0x0010114
  230. #define CS35L43_IRQ1_MASK_3 0x0010118
  231. #define CS35L43_IRQ1_MASK_4 0x001011C
  232. #define CS35L43_IRQ1_MASK_5 0x0010120
  233. #define CS35L43_IRQ1_FRC_1 0x0010190
  234. #define CS35L43_IRQ1_FRC_2 0x0010194
  235. #define CS35L43_IRQ1_FRC_3 0x0010198
  236. #define CS35L43_IRQ1_FRC_4 0x001019C
  237. #define CS35L43_IRQ1_FRC_5 0x00101A0
  238. #define CS35L43_IRQ1_EDGE_1 0x0010210
  239. #define CS35L43_IRQ1_EDGE_4 0x001021C
  240. #define CS35L43_IRQ1_POL_1 0x0010290
  241. #define CS35L43_IRQ1_POL_2 0x0010294
  242. #define CS35L43_IRQ1_POL_3 0x0010298
  243. #define CS35L43_IRQ1_POL_4 0x001029C
  244. #define CS35L43_IRQ1_DB_2 0x0010314
  245. /************************************************/
  246. /* GPIO Control */
  247. /************************************************/
  248. #define CS35L43_GPIO_STATUS1 0x0011000
  249. #define CS35L43_GPIO_FORCE 0x0011004
  250. #define CS35L43_GPIO1_CTRL1 0x0011008
  251. #define CS35L43_GPIO2_CTRL1 0x001100C
  252. #define CS35L43_GPIO3_CTRL1 0x0011010
  253. #define CS35L43_GPIO4_CTRL1 0x0011014
  254. /************************************************/
  255. /* DSP Noise Gate Control */
  256. /************************************************/
  257. #define CS35L43_MIXER_NGATE_CFG 0x0012000
  258. #define CS35L43_MIXER_NGATE_CH1_CFG 0x0012004
  259. #define CS35L43_MIXER_NGATE_CH2_CFG 0x0012008
  260. /************************************************/
  261. /* DSP scratch space */
  262. /************************************************/
  263. #define CS35L43_DSP_MBOX_1 0x0013000
  264. #define CS35L43_DSP_MBOX_2 0x0013004
  265. #define CS35L43_DSP_MBOX_3 0x0013008
  266. #define CS35L43_DSP_MBOX_4 0x001300C
  267. #define CS35L43_DSP_MBOX_5 0x0013010
  268. #define CS35L43_DSP_MBOX_6 0x0013014
  269. #define CS35L43_DSP_MBOX_7 0x0013018
  270. #define CS35L43_DSP_MBOX_8 0x001301C
  271. /************************************************/
  272. /* DSP virtual 1 scratch space */
  273. /************************************************/
  274. #define CS35L43_DSP_VIRTUAL1_MBOX_1 0x0013020
  275. #define CS35L43_DSP_VIRTUAL1_MBOX_2 0x0013024
  276. #define CS35L43_DSP_VIRTUAL1_MBOX_3 0x0013028
  277. #define CS35L43_DSP_VIRTUAL1_MBOX_4 0x001302C
  278. #define CS35L43_DSP_VIRTUAL1_MBOX_5 0x0013030
  279. #define CS35L43_DSP_VIRTUAL1_MBOX_6 0x0013034
  280. #define CS35L43_DSP_VIRTUAL1_MBOX_7 0x0013038
  281. #define CS35L43_DSP_VIRTUAL1_MBOX_8 0x001303C
  282. /************************************************/
  283. /* DSP virtual 2 scratch space */
  284. /************************************************/
  285. #define CS35L43_DSP_VIRTUAL2_MBOX_1 0x0013040
  286. #define CS35L43_DSP_VIRTUAL2_MBOX_2 0x0013044
  287. #define CS35L43_DSP_VIRTUAL2_MBOX_3 0x0013048
  288. #define CS35L43_DSP_VIRTUAL2_MBOX_4 0x001304C
  289. #define CS35L43_DSP_VIRTUAL2_MBOX_5 0x0013050
  290. #define CS35L43_DSP_VIRTUAL2_MBOX_6 0x0013054
  291. #define CS35L43_DSP_VIRTUAL2_MBOX_7 0x0013058
  292. #define CS35L43_DSP_VIRTUAL2_MBOX_8 0x001305C
  293. /************************************************/
  294. /* Halo X Memory */
  295. /************************************************/
  296. #define CS35L43_DSP1_XMEM_PACKED_0 0x2000000
  297. #define CS35L43_DSP1_XMEM_PACKED_6143 0x2005FFC
  298. #define CS35L43_DSP1_XMEM_UNPACKED32_0 0x2400000
  299. #define CS35L43_DSP1_XMEM_UNPACKED32_4095 0x2403FFC
  300. #define CS35L43_DSP1_XMEM_UNPACKED24_0 0x2800000
  301. #define CS35L43_DSP1_XMEM_UNPACKED24_8191 0x2807FFC
  302. #define CS35L43_DSP1_XROM_UNPACKED24_0 0x2808000
  303. #define CS35L43_DSP1_XROM_UNPACKED24_6141 0x280DFF4
  304. /************************************************/
  305. /* Halo Control */
  306. /************************************************/
  307. #define CS35L43_DSP1_SYS_INFO_ID 0x25E0000
  308. #define CS35L43_DSP1_CLOCK_FREQ 0x2B80000
  309. #define CS35L43_DSP1_CORE_SOFT_RESET 0x2B80010
  310. #define CS35L43_DSP1_SCRATCH1 0x2B805C0
  311. #define CS35L43_DSP1_SCRATCH2 0x2B805C8
  312. #define CS35L43_DSP1_SCRATCH3 0x2B805D0
  313. #define CS35L43_DSP1_SCRATCH4 0x2B805D8
  314. #define CS35L43_DSP1_CCM_CORE_CONTROL 0x2BC1000
  315. #define CS35L43_DSP1_MPU_LOCK_STATE 0x2BC3140
  316. #define CS35L43_DSP1_MPU_XM_VIO_STATUS 0x2BC3104
  317. #define CS35L43_DSP1_MPU_YM_VIO_STATUS 0x2BC310C
  318. #define CS35L43_DSP1_MPU_PM_VIO_STATUS 0x2BC3114
  319. #define CS35L43_DSP1_WDT_CONTROL 0x2BC7000
  320. #define CS35L43_DSP1_WDT_STATUS 0x2BC7008
  321. /************************************************/
  322. /* Halo Y Memory */
  323. /************************************************/
  324. #define CS35L43_DSP1_YMEM_PACKED_0 0x2C00000
  325. #define CS35L43_DSP1_YMEM_PACKED_1532 0x2C017F0
  326. #define CS35L43_DSP1_YMEM_UNPACKED32_0 0x3000000
  327. #define CS35L43_DSP1_YMEM_UNPACKED32_1022 0x3000FF8
  328. #define CS35L43_DSP1_YMEM_UNPACKED24_0 0x3400000
  329. #define CS35L43_DSP1_YMEM_UNPACKED24_2045 0x3401FF4
  330. /************************************************/
  331. /* Halo P Memory */
  332. /************************************************/
  333. #define CS35L43_DSP1_PMEM_0 0x3800000
  334. #define CS35L43_DSP1_PMEM_5114 0x3804FE8
  335. /* #####################################################*/
  336. /* Fields */
  337. /* #####################################################*/
  338. /************************************************/
  339. /* Power Control 2 */
  340. /************************************************/
  341. #define CS35L43_IMON_EN_MASK 0x00002000
  342. #define CS35L43_IMON_EN_SHIFT 13
  343. #define CS35L43_IMON_EN_WIDTH 1
  344. #define CS35L43_VMON_EN_MASK 0x00001000
  345. #define CS35L43_VMON_EN_SHIFT 12
  346. #define CS35L43_VMON_EN_WIDTH 1
  347. #define CS35L43_TEMPMON_EN_MASK 0x00000400
  348. #define CS35L43_TEMPMON_EN_SHIFT 10
  349. #define CS35L43_TEMPMON_EN_WIDTH 1
  350. #define CS35L43_VBSTMON_EN_MASK 0x00000200
  351. #define CS35L43_VBSTMON_EN_SHIFT 9
  352. #define CS35L43_VBSTMON_EN_WIDTH 1
  353. #define CS35L43_VPMON_EN_MASK 0x00000100
  354. #define CS35L43_VPMON_EN_SHIFT 8
  355. #define CS35L43_VPMON_EN_WIDTH 1
  356. #define CS35L43_BST_EN_MASK 0x00000030
  357. #define CS35L43_BST_EN_SHIFT 4
  358. #define CS35L43_BST_EN_WIDTH 2
  359. #define CS35L43_AMP_EN_MASK 0x00000001
  360. #define CS35L43_AMP_EN_SHIFT 0
  361. #define CS35L43_AMP_EN_WIDTH 1
  362. #define CS35L43_BST_EN_DEFAULT 2
  363. /************************************************/
  364. /* Power Control 3 */
  365. /************************************************/
  366. #define CS35L43_WKFET_AMP_EN_MASK 0x01000000
  367. #define CS35L43_WKFET_AMP_EN_SHIFT 24
  368. #define CS35L43_AMP_DRE_EN_MASK 0x00100000
  369. #define CS35L43_AMP_DRE_EN_SHIFT 20
  370. #define CS35L43_VPI_LIM_EN_MASK 0x00010000
  371. #define CS35L43_VPI_LIM_EN_SHIFT 16
  372. #define CS35L43_VBBR_EN_MASK 0x00002000
  373. #define CS35L43_VBBR_EN_SHIFT 13
  374. #define CS35L43_VPBR_EN_MASK 0x00001000
  375. #define CS35L43_VPBR_EN_SHIFT 12
  376. #define CS35L43_SYNC_EN_MASK 0x00000100
  377. #define CS35L43_SYNC_EN_SHIFT 8
  378. #define CS35L43_CLASSH_EN_MASK 0x00000010
  379. #define CS35L43_CLASSH_EN_SHIFT 4
  380. /************************************************/
  381. /* Global Sync */
  382. /************************************************/
  383. #define CS35L43_AMP_MUTE_SHIFT 4
  384. /************************************************/
  385. /* Hibernation Control */
  386. /************************************************/
  387. #define CS35L43_MEM_RDY 0x00000002
  388. #define CS35L43_WKSRC_STS_MASK 0x000003F0
  389. /************************************************/
  390. /* Global Clocking Control */
  391. /************************************************/
  392. #define CS35L43_GLOBAL_FS_MASK 0x0000001F
  393. #define CS35L43_GLOBAL_FS_SHIFT 0
  394. #define CS35L43_GLOBAL_FS_WIDTH 5
  395. #define CS35L43_FS1_START_WINDOW_MASK 0x00000FFF
  396. #define CS35L43_FS2_START_WINDOW_SHIFT 12
  397. #define CS35L43_FS2_START_WINDOW_MASK 0x00FFF000
  398. /************************************************/
  399. /* PLL Clocking Control */
  400. /************************************************/
  401. #define CS35L43_PLL_FORCE_EN_MASK 0x00010000
  402. #define CS35L43_PLL_FORCE_EN_SHIFT 16
  403. #define CS35L43_PLL_FORCE_EN_WIDTH 1
  404. #define CS35L43_PLL_OPEN_LOOP_MASK 0x00000800
  405. #define CS35L43_PLL_OPEN_LOOP_SHIFT 11
  406. #define CS35L43_PLL_OPEN_LOOP_WIDTH 1
  407. #define CS35L43_PLL_REFCLK_FREQ_MASK 0x000007E0
  408. #define CS35L43_PLL_REFCLK_FREQ_SHIFT 5
  409. #define CS35L43_PLL_REFCLK_FREQ_WIDTH 6
  410. #define CS35L43_PLL_REFCLK_EN_MASK 0x00000010
  411. #define CS35L43_PLL_REFCLK_EN_SHIFT 4
  412. #define CS35L43_PLL_REFCLK_EN_WIDTH 1
  413. #define CS35L43_PLL_REFCLK_SEL_MASK 0x00000007
  414. #define CS35L43_PLL_REFCLK_SEL_SHIFT 0
  415. #define CS35L43_PLL_REFCLK_SEL_WIDTH 3
  416. /************************************************/
  417. /* GPIO Pad Interface Control */
  418. /************************************************/
  419. #define CS35L43_GP2_CTRL_MASK 0x07000000
  420. #define CS35L43_GP2_CTRL_SHIFT 24
  421. #define CS35L43_GP1_CTRL_MASK 0x00070000
  422. #define CS35L43_GP1_CTRL_SHIFT 16
  423. /************************************************/
  424. /* GPIO_GPIO1_CTRL1 */
  425. /************************************************/
  426. #define CS35L43_GP1_DIR_MASK 0x80000000
  427. #define CS35L43_GP1_DIR_SHIFT 31
  428. #define CS35L43_GP1_DBTIME_MASK 0x000F0000
  429. #define CS35L43_GP1_DBTIME_SHIFT 16
  430. #define CS35L43_GP1_LVL_MASK 0x00008000
  431. #define CS35L43_GP1_LVL_SHIFT 15
  432. #define CS35L43_GP1_DB_MASK 0x00002000
  433. #define CS35L43_GP1_DB_SHIFT 13
  434. #define CS35L43_GP1_POL_MASK 0x00001000
  435. #define CS35L43_GP1_POL_SHIFT 12
  436. #define CS35L43_GP1_FN_MASK 0x0000007F
  437. #define CS35L43_GP1_FN_SHIFT 0
  438. /************************************************/
  439. /* GPIO_GPIO2_CTRL1 */
  440. /************************************************/
  441. #define CS35L43_GP2_DIR_MASK 0x80000000
  442. #define CS35L43_GP2_DIR_SHIFT 31
  443. #define CS35L43_GP2_DBTIME_MASK 0x000F0000
  444. #define CS35L43_GP2_DBTIME_SHIFT 16
  445. #define CS35L43_GP2_LVL_MASK 0x00008000
  446. #define CS35L43_GP2_LVL_SHIFT 15
  447. #define CS35L43_GP2_DB_MASK 0x00002000
  448. #define CS35L43_GP2_DB_SHIFT 13
  449. #define CS35L43_GP2_POL_MASK 0x00001000
  450. #define CS35L43_GP2_POL_SHIFT 12
  451. #define CS35L43_GP2_FN_MASK 0x0000007F
  452. #define CS35L43_GP2_FN_SHIFT 0
  453. #define CS35L43_GP2_CTRL_OPEN_DRAIN_ACTV_LO 2
  454. #define CS35L43_GP2_CTRL_PUSH_PULL_ACTV_LO 4
  455. #define CS35L43_GP2_CTRL_PUSH_PULL_ACTV_HI 5
  456. /************************************************/
  457. /* Digital Boost Converter */
  458. /************************************************/
  459. /************************************************/
  460. /* Boost Converter Voltage Control 1 */
  461. /************************************************/
  462. #define CS35L43_BST_CTL_MASK 0x000000FF
  463. #define CS35L43_BST_CTL_SHIFT 0
  464. /************************************************/
  465. /* Boost Converter Voltage Control 2 */
  466. /************************************************/
  467. #define CS35L43_BST_CTL_EXT_EN_MASK 0x00000100
  468. #define CS35L43_BST_CTL_EXT_EN_SHIFT 8
  469. #define CS35L43_BST_CTL_LIM_EN_MASK 0x00000004
  470. #define CS35L43_BST_CTL_LIM_EN_SHIFT 2
  471. #define CS35L43_BST_CTL_SEL_MASK 0x00000003
  472. #define CS35L43_BST_CTL_SEL_SHIFT 0
  473. /************************************************/
  474. /* Boost Converter Peak Current */
  475. /************************************************/
  476. #define CS35L43_BST_IPK_MASK 0x0000007F
  477. #define CS35L43_BST_IPK_SHIFT 0
  478. /************************************************/
  479. /* DATAIF_ASP_ENABLES1 */
  480. /************************************************/
  481. #define CS35L43_ASP_RX3_EN_MASK 0x00040000
  482. #define CS35L43_ASP_RX3_EN_SHIFT 18
  483. #define CS35L43_ASP_RX3_EN_WIDTH 1
  484. #define CS35L43_ASP_RX2_EN_MASK 0x00020000
  485. #define CS35L43_ASP_RX2_EN_SHIFT 17
  486. #define CS35L43_ASP_RX2_EN_WIDTH 1
  487. #define CS35L43_ASP_RX1_EN_MASK 0x00010000
  488. #define CS35L43_ASP_RX1_EN_SHIFT 16
  489. #define CS35L43_ASP_RX1_EN_WIDTH 1
  490. #define CS35L43_ASP_TX4_EN_MASK 0x00000008
  491. #define CS35L43_ASP_TX4_EN_SHIFT 3
  492. #define CS35L43_ASP_TX4_EN_WIDTH 1
  493. #define CS35L43_ASP_TX3_EN_MASK 0x00000004
  494. #define CS35L43_ASP_TX3_EN_SHIFT 2
  495. #define CS35L43_ASP_TX3_EN_WIDTH 1
  496. #define CS35L43_ASP_TX2_EN_MASK 0x00000002
  497. #define CS35L43_ASP_TX2_EN_SHIFT 1
  498. #define CS35L43_ASP_TX2_EN_WIDTH 1
  499. #define CS35L43_ASP_TX1_EN_MASK 0x00000001
  500. #define CS35L43_ASP_TX1_EN_SHIFT 0
  501. #define CS35L43_ASP_TX1_EN_WIDTH 1
  502. /************************************************/
  503. /* DATAIF_ASP_CONTROL1 */
  504. /************************************************/
  505. #define CS35L43_ASP_BCLK_FREQ_MASK 0x0000003F
  506. #define CS35L43_ASP_BCLK_FREQ_SHIFT 0
  507. #define CS35L43_ASP_BCLK_FREQ_WIDTH 6
  508. /************************************************/
  509. /* DATAIF_ASP_CONTROL2 */
  510. /************************************************/
  511. #define CS35L43_ASP_RX_WIDTH_MASK 0xFF000000
  512. #define CS35L43_ASP_RX_WIDTH_SHIFT 24
  513. #define CS35L43_ASP_RX_WIDTH_WIDTH 8
  514. #define CS35L43_ASP_TX_WIDTH_MASK 0x00FF0000
  515. #define CS35L43_ASP_TX_WIDTH_SHIFT 16
  516. #define CS35L43_ASP_TX_WIDTH_WIDTH 8
  517. #define CS35L43_ASP_FMT_MASK 0x00000700
  518. #define CS35L43_ASP_FMT_SHIFT 8
  519. #define CS35L43_ASP_FMT_WIDTH 3
  520. #define CS35L43_ASP_BCLK_INV_MASK 0x00000040
  521. #define CS35L43_ASP_BCLK_INV_SHIFT 6
  522. #define CS35L43_ASP_BCLK_INV_WIDTH 1
  523. #define CS35L43_ASP_BCLK_FRC_MASK 0x00000020
  524. #define CS35L43_ASP_BCLK_FRC_SHIFT 5
  525. #define CS35L43_ASP_BCLK_FRC_WIDTH 1
  526. #define CS35L43_ASP_BCLK_MSTR_MASK 0x00000010
  527. #define CS35L43_ASP_BCLK_MSTR_SHIFT 4
  528. #define CS35L43_ASP_BCLK_MSTR_WIDTH 1
  529. #define CS35L43_ASP_FSYNC_INV_MASK 0x00000004
  530. #define CS35L43_ASP_FSYNC_INV_SHIFT 2
  531. #define CS35L43_ASP_FSYNC_INV_WIDTH 1
  532. #define CS35L43_ASP_FSYNC_FRC_MASK 0x00000002
  533. #define CS35L43_ASP_FSYNC_FRC_SHIFT 1
  534. #define CS35L43_ASP_FSYNC_FRC_WIDTH 1
  535. #define CS35L43_ASP_FSYNC_MSTR_MASK 0x00000001
  536. #define CS35L43_ASP_FSYNC_MSTR_SHIFT 0
  537. #define CS35L43_ASP_FSYNC_MSTR_WIDTH 1
  538. /************************************************/
  539. /* DATAIF_ASP_CONTROL3 */
  540. /************************************************/
  541. #define CS35L41_ASP_DOUT_HIZ_CTRL_SHIFT 0
  542. #define CS35L41_ASP_DOUT_HIZ_CTRL_MASK 0x00000003
  543. /************************************************/
  544. /* DATAIF_ASP_DATA_CONTROL1 */
  545. /************************************************/
  546. #define CS35L43_ASP_TX_WL_MASK 0x0000003F
  547. #define CS35L43_ASP_TX_WL_SHIFT 0
  548. #define CS35L43_ASP_TX_WL_WIDTH 6
  549. /************************************************/
  550. /* DATAIF_ASP_DATA_CONTROL5 */
  551. /************************************************/
  552. #define CS35L43_ASP_RX_WL_MASK 0x0000003F
  553. #define CS35L43_ASP_RX_WL_SHIFT 0
  554. #define CS35L43_ASP_RX_WL_WIDTH 6
  555. #define CS35L43_INPUT_SRC_ASPRX1 0x08
  556. #define CS35L43_INPUT_SRC_ASPRX2 0x09
  557. #define CS35L43_INPUT_SRC_VMON 0x18
  558. #define CS35L43_INPUT_SRC_IMON 0x19
  559. #define CS35L43_INPUT_SRC_VMON_FS2 0x1A
  560. #define CS35L43_INPUT_SRC_IMON_FS2 0x1B
  561. #define CS35L43_INPUT_SRC_CLASSH 0x21
  562. #define CS35L43_INPUT_SRC_VPMON 0x28
  563. #define CS35L43_INPUT_SRC_VBSTMON 0x29
  564. #define CS35L43_INPUT_SRC_TEMPMON 0x3A
  565. #define CS35L43_INPUT_DSP_TX1 0x32
  566. #define CS35L43_INPUT_DSP_TX2 0x33
  567. #define CS35L43_INPUT_DSP_TX3 0x34
  568. #define CS35L43_INPUT_DSP_TX4 0x35
  569. #define CS35L43_INPUT_DSP_TX5 0x36
  570. #define CS35L43_INPUT_DSP_TX6 0x37
  571. #define CS35L43_INPUT_MASK 0x3F
  572. /************************************************/
  573. /* DAC_MSM_ALIVE_DCIN_WD */
  574. /************************************************/
  575. #define CS35L43_WD_MODE_MASK 0x00000C00
  576. #define CS35L43_WD_MODE_SHIFT 10
  577. #define CS35L43_DCIN_WD_DUR_MASK 0x00000380
  578. #define CS35L43_DCIN_WD_DUR_SHIFT 7
  579. #define CS35L43_DCIN_WD_THLD_MASK 0x0000007E
  580. #define CS35L43_DCIN_WD_THLD_SHIFT 1
  581. #define CS35L43_DCIN_WD_EN_MASK 0x00000001
  582. #define CS35L43_DCIN_WD_EN_SHIFT 0
  583. /************************************************/
  584. /* VPBR Configuration */
  585. /************************************************/
  586. #define CS35L43_VPBR_REL_RATE_MASK 0x00E00000
  587. #define CS35L43_VPBR_REL_RATE_SHIFT 21
  588. #define CS35L43_VPBR_WAIT_MASK 0x00180000
  589. #define CS35L43_VPBR_WAIT_SHIFT 19
  590. #define CS35L43_VPBR_ATK_RATE_MASK 0x00070000
  591. #define CS35L43_VPBR_ATK_RATE_SHIFT 16
  592. #define CS35L43_VPBR_ATK_VOL_MASK 0x0000F000
  593. #define CS35L43_VPBR_ATK_VOL_SHIFT 12
  594. #define CS35L43_VPBR_MAX_ATT_MASK 0x00000F00
  595. #define CS35L43_VPBR_MAX_ATT_SHIFT 8
  596. #define CS35L43_VPBR_THLD1_MASK 0x0000001F
  597. #define CS35L43_VPBR_THLD1_SHIFT 0
  598. /************************************************/
  599. /* IRQ1_IRQ1_EINT_1 */
  600. /************************************************/
  601. #define CS35L43_DSP_VIRTUAL2_MBOX_WR_EINT1_MASK 0x80000000
  602. #define CS35L43_DSP_VIRTUAL2_MBOX_WR_EINT1_SHIFT 31
  603. #define CS35L43_DSP_VIRTUAL1_MBOX_WR_EINT1_MASK 0x40000000
  604. #define CS35L43_DSP_VIRTUAL1_MBOX_WR_EINT1_SHIFT 30
  605. #define CS35L43_DC_WATCHDOG_IRQ_FALL_EINT1_MASK 0x20000000
  606. #define CS35L43_DC_WATCHDOG_IRQ_FALL_EINT1_SHIFT 29
  607. #define CS35L43_DC_WATCHDOG_IRQ_RISE_EINT1_MASK 0x10000000
  608. #define CS35L43_DC_WATCHDOG_IRQ_RISE_EINT1_SHIFT 28
  609. #define CS35L43_AMP_ERR_EINT1_MASK 0x08000000
  610. #define CS35L43_AMP_ERR_EINT1_SHIFT 27
  611. #define CS35L43_TEMP_ERR_EINT1_MASK 0x04000000
  612. #define CS35L43_TEMP_ERR_EINT1_SHIFT 26
  613. #define CS35L43_TEMP_WARN_FALL_EINT1_MASK 0x02000000
  614. #define CS35L43_TEMP_WARN_FALL_EINT1_SHIFT 25
  615. #define CS35L43_TEMP_WARN_RISE_EINT1_MASK 0x01000000
  616. #define CS35L43_TEMP_WARN_RISE_EINT1_SHIFT 24
  617. #define CS35L43_BST_IPK_FLAG_EINT1_MASK 0x00800000
  618. #define CS35L43_BST_IPK_FLAG_EINT1_SHIFT 23
  619. #define CS35L43_BST_SHORT_ERR_EINT1_MASK 0x00400000
  620. #define CS35L43_BST_SHORT_ERR_EINT1_SHIFT 22
  621. #define CS35L43_BST_DCM_UVP_ERR_EINT1_MASK 0x00200000
  622. #define CS35L43_BST_DCM_UVP_ERR_EINT1_SHIFT 21
  623. #define CS35L43_BST_OVP_ERR_EINT1_MASK 0x00100000
  624. #define CS35L43_BST_OVP_ERR_EINT1_SHIFT 20
  625. #define CS35L43_BST_OVP_FLAG_FALL_EINT1_MASK 0x00080000
  626. #define CS35L43_BST_OVP_FLAG_FALL_EINT1_SHIFT 19
  627. #define CS35L43_BST_OVP_FLAG_RISE_EINT1_MASK 0x00040000
  628. #define CS35L43_BST_OVP_FLAG_RISE_EINT1_SHIFT 18
  629. #define CS35L43_MSM_PUP_DONE_EINT1_MASK 0x00020000
  630. #define CS35L43_MSM_PUP_DONE_EINT1_SHIFT 17
  631. #define CS35L43_MSM_PDN_DONE_EINT1_MASK 0x00010000
  632. #define CS35L43_MSM_PDN_DONE_EINT1_SHIFT 16
  633. #define CS35L43_MSM_GLOBAL_EN_ASSERT_EINT1_MASK 0x00008000
  634. #define CS35L43_MSM_GLOBAL_EN_ASSERT_EINT1_SHIFT 15
  635. #define CS35L43_WKSRC_STATUS6_EINT1_MASK 0x00004000
  636. #define CS35L43_WKSRC_STATUS6_EINT1_SHIFT 14
  637. #define CS35L43_WKSRC_STATUS5_EINT1_MASK 0x00002000
  638. #define CS35L43_WKSRC_STATUS5_EINT1_SHIFT 13
  639. #define CS35L43_WKSRC_STATUS4_EINT1_MASK 0x00001000
  640. #define CS35L43_WKSRC_STATUS4_EINT1_SHIFT 12
  641. #define CS35L43_WKSRC_STATUS3_EINT1_MASK 0x00000800
  642. #define CS35L43_WKSRC_STATUS3_EINT1_SHIFT 11
  643. #define CS35L43_WKSRC_STATUS2_EINT1_MASK 0x00000400
  644. #define CS35L43_WKSRC_STATUS2_EINT1_SHIFT 10
  645. #define CS35L43_WKSRC_STATUS1_EINT1_MASK 0x00000200
  646. #define CS35L43_WKSRC_STATUS1_EINT1_SHIFT 9
  647. #define CS35L43_WKSRC_STATUS_ANY_EINT1_MASK 0x00000100
  648. #define CS35L43_WKSRC_STATUS_ANY_EINT1_SHIFT 8
  649. #define CS35L43_IRQ1_EINT_1_GPIO4_FALL_EINT1_MASK 0x00000080
  650. #define CS35L43_IRQ1_EINT_1_GPIO4_FALL_EINT1_SHIFT 7
  651. #define CS35L43_IRQ1_EINT_1_GPIO4_RISE_EINT1_MASK 0x00000040
  652. #define CS35L43_IRQ1_EINT_1_GPIO4_RISE_EINT1_SHIFT 6
  653. #define CS35L43_IRQ1_EINT_1_GPIO3_FALL_EINT1_MASK 0x00000020
  654. #define CS35L43_IRQ1_EINT_1_GPIO3_FALL_EINT1_SHIFT 5
  655. #define CS35L43_IRQ1_EINT_1_GPIO3_RISE_EINT1_MASK 0x00000010
  656. #define CS35L43_IRQ1_EINT_1_GPIO3_RISE_EINT1_SHIFT 4
  657. #define CS35L43_GPIO2_FALL_EINT1_MASK 0x00000008
  658. #define CS35L43_GPIO2_FALL_EINT1_SHIFT 3
  659. #define CS35L43_GPIO2_RISE_EINT1_MASK 0x00000004
  660. #define CS35L43_GPIO2_RISE_EINT1_SHIFT 2
  661. #define CS35L43_GPIO1_FALL_EINT1_MASK 0x00000002
  662. #define CS35L43_GPIO1_FALL_EINT1_SHIFT 1
  663. #define CS35L43_GPIO1_RISE_EINT1_MASK 0x00000001
  664. #define CS35L43_GPIO1_RISE_EINT1_SHIFT 0
  665. /************************************************/
  666. /* IRQ1_IRQ1_EINT_2 */
  667. /************************************************/
  668. #define CS35L43_PWRMGT_SYNC_ERR_EINT1_MASK 0x20000000
  669. #define CS35L43_PWRMGT_SYNC_ERR_EINT1_SHIFT 29
  670. #define CS35L43_TIMER_CH2_EINT1_MASK 0x10000000
  671. #define CS35L43_TIMER_CH2_EINT1_SHIFT 28
  672. #define CS35L43_TIMER_CH1_EINT1_MASK 0x08000000
  673. #define CS35L43_TIMER_CH1_EINT1_SHIFT 27
  674. #define CS35L43_IMON_CLIPPED_EINT1_MASK 0x04000000
  675. #define CS35L43_IMON_CLIPPED_EINT1_SHIFT 26
  676. #define CS35L43_VMON_CLIPPED_EINT1_MASK 0x02000000
  677. #define CS35L43_VMON_CLIPPED_EINT1_SHIFT 25
  678. #define CS35L43_VBSTMON_CLIPPED_EINT1_MASK 0x01000000
  679. #define CS35L43_VBSTMON_CLIPPED_EINT1_SHIFT 24
  680. #define CS35L43_VPMON_CLIPPED_EINT1_MASK 0x00800000
  681. #define CS35L43_VPMON_CLIPPED_EINT1_SHIFT 23
  682. #define CS35L43_I2C_NACK_ERR_EINT1_MASK 0x00400000
  683. #define CS35L43_I2C_NACK_ERR_EINT1_SHIFT 22
  684. #define CS35L43_INTP_VC_DONE_EINT1_MASK 0x00200000
  685. #define CS35L43_INTP_VC_DONE_EINT1_SHIFT 21
  686. #define CS35L43_VBBR_ATT_CLR_EINT1_MASK 0x00100000
  687. #define CS35L43_VBBR_ATT_CLR_EINT1_SHIFT 20
  688. #define CS35L43_VBBR_FLAG_EINT1_MASK 0x00080000
  689. #define CS35L43_VBBR_FLAG_EINT1_SHIFT 19
  690. #define CS35L43_VPBR_ATT_CLR_EINT1_MASK 0x00040000
  691. #define CS35L43_VPBR_ATT_CLR_EINT1_SHIFT 18
  692. #define CS35L43_VPBR_FLAG_EINT1_MASK 0x00020000
  693. #define CS35L43_VPBR_FLAG_EINT1_SHIFT 17
  694. #define CS35L43_AMP_NG_ON_FALL_EINT1_MASK 0x00010000
  695. #define CS35L43_AMP_NG_ON_FALL_EINT1_SHIFT 16
  696. #define CS35L43_AMP_NG_ON_RISE_EINT1_MASK 0x00008000
  697. #define CS35L43_AMP_NG_ON_RISE_EINT1_SHIFT 15
  698. #define CS35L43_AUX_NG_CH2_EXIT_EINT1_MASK 0x00004000
  699. #define CS35L43_AUX_NG_CH2_EXIT_EINT1_SHIFT 14
  700. #define CS35L43_AUX_NG_CH2_ENTRY_EINT1_MASK 0x00002000
  701. #define CS35L43_AUX_NG_CH2_ENTRY_EINT1_SHIFT 13
  702. #define CS35L43_AUX_NG_CH1_EXIT_EINT1_MASK 0x00001000
  703. #define CS35L43_AUX_NG_CH1_EXIT_EINT1_SHIFT 12
  704. #define CS35L43_AUX_NG_CH1_ENTRY_EINT1_MASK 0x00000800
  705. #define CS35L43_AUX_NG_CH1_ENTRY_EINT1_SHIFT 11
  706. #define CS35L43_ASP_RXSLOT_CFG_ERR_EINT1_MASK 0x00000400
  707. #define CS35L43_ASP_RXSLOT_CFG_ERR_EINT1_SHIFT 10
  708. #define CS35L43_ASP_TXSLOT_CFG_ERR_EINT1_MASK 0x00000200
  709. #define CS35L43_ASP_TXSLOT_CFG_ERR_EINT1_SHIFT 9
  710. #define CS35L43_REFCLK_MISSING_RISE_EINT1_MASK 0x00000100
  711. #define CS35L43_REFCLK_MISSING_RISE_EINT1_SHIFT 8
  712. #define CS35L43_REFCLK_MISSING_FALL_EINT1_MASK 0x00000080
  713. #define CS35L43_REFCLK_MISSING_FALL_EINT1_SHIFT 7
  714. #define CS35L43_PLL_REFCLK_PRESENT_EINT1_MASK 0x00000040
  715. #define CS35L43_PLL_REFCLK_PRESENT_EINT1_SHIFT 6
  716. #define CS35L43_PLL_READY_RISE_EINT1_MASK 0x00000020
  717. #define CS35L43_PLL_READY_RISE_EINT1_SHIFT 5
  718. #define CS35L43_PLL_UNLOCK_FLAG_FALL_EINT1_MASK 0x00000010
  719. #define CS35L43_PLL_UNLOCK_FLAG_FALL_EINT1_SHIFT 4
  720. #define CS35L43_PLL_UNLOCK_FLAG_RISE_EINT1_MASK 0x00000008
  721. #define CS35L43_PLL_UNLOCK_FLAG_RISE_EINT1_SHIFT 3
  722. #define CS35L43_PLL_FREQ_LOCK_EINT1_MASK 0x00000004
  723. #define CS35L43_PLL_FREQ_LOCK_EINT1_SHIFT 2
  724. #define CS35L43_PLL_PHASE_LOCK_EINT1_MASK 0x00000002
  725. #define CS35L43_PLL_PHASE_LOCK_EINT1_SHIFT 1
  726. #define CS35L43_PLL_LOCK_EINT1_MASK 0x00000001
  727. #define CS35L43_PLL_LOCK_EINT1_SHIFT 0
  728. /************************************************/
  729. /* IRQ1_IRQ1_EINT_3 */
  730. /************************************************/
  731. #define CS35L43_OTP_BOOT_ERR_EINT1_MASK 0x00040000
  732. #define CS35L43_OTP_BOOT_ERR_EINT1_SHIFT 18
  733. #define CS35L43_DSP1_NMI_ERR_EINT1_MASK 0x00000001
  734. #define CS35L43_DSP1_NMI_ERR_EINT1_SHIFT 0
  735. #define CS35L43_DSP1_MPU_ERR_EINT1_MASK 0x00000040
  736. #define CS35L43_DSP1_MPU_ERR_EINT1_SHIFT 6
  737. #define CS35L43_DSP1_STRM_ARB_ERR_EINT1_MASK 0x00000080
  738. #define CS35L43_DSP1_STRM_ARB_ERR_EINT1_SHIFT 7
  739. /************************************************/
  740. /* Protection Release and Error Ignore Control */
  741. /************************************************/
  742. #define CS35L43_CLK_ERR_IGNORE_MASK 0x80000000
  743. #define CS35L43_CLK_ERR_IGNORE_SHIFT 31
  744. #define CS35L43_TEMP_ERR_IGNORE_MASK 0x40000000
  745. #define CS35L43_TEMP_ERR_IGNORE_SHIFT 30
  746. #define CS35L43_TEMP_WARN_IGNORE_MASK 0x20000000
  747. #define CS35L43_TEMP_WARN_IGNORE_SHIFT 29
  748. #define CS35L43_BST_UVP_ERR_IGNORE_MASK 0x10000000
  749. #define CS35L43_BST_UVP_ERR_IGNORE_SHIFT 28
  750. #define CS35L43_BST_OVP_ERR_IGNORE_MASK 0x08000000
  751. #define CS35L43_BST_OVP_ERR_IGNORE_SHIFT 27
  752. #define CS35L43_BST_SHORT_ERR_IGNORE_MASK 0x04000000
  753. #define CS35L43_BST_SHORT_ERR_IGNORE_SHIFT 26
  754. #define CS35L43_AMP_SHORT_ERR_IGNORE_MASK 0x02000000
  755. #define CS35L43_AMP_SHORT_ERR_IGNORE_SHIFT 25
  756. #define CS35L43_AMP_CAL_ERR_IGNORE_MASK 0x01000000
  757. #define CS35L43_AMP_CAL_ERR_IGNORE_SHIFT 24
  758. #define CS35L43_ERROR_RELEASE_CLK_ERR_RLS_MASK 0x00000080
  759. #define CS35L43_ERROR_RELEASE_CLK_ERR_RLS_SHIFT 7
  760. #define CS35L43_TEMP_ERR_RLS_MASK 0x00000040
  761. #define CS35L43_TEMP_ERR_RLS_SHIFT 6
  762. #define CS35L43_TEMP_WARN_RLS_MASK 0x00000020
  763. #define CS35L43_TEMP_WARN_RLS_SHIFT 5
  764. #define CS35L43_BST_UVP_ERR_RLS_MASK 0x00000010
  765. #define CS35L43_BST_UVP_ERR_RLS_SHIFT 4
  766. #define CS35L43_BST_OVP_ERR_RLS_MASK 0x00000008
  767. #define CS35L43_BST_OVP_ERR_RLS_SHIFT 3
  768. #define CS35L43_BST_SHORT_ERR_RLS_MASK 0x00000004
  769. #define CS35L43_BST_SHORT_ERR_RLS_SHIFT 2
  770. #define CS35L43_AMP_SHORT_ERR_RLS_MASK 0x00000002
  771. #define CS35L43_AMP_SHORT_ERR_RLS_SHIFT 1
  772. #define CS35L43_AMP_CAL_ERR_RLS_MASK 0x00000001
  773. #define CS35L43_AMP_CAL_ERR_RLS_SHIFT 0
  774. /************************************************/
  775. /* Amplifier Gain Control */
  776. /************************************************/
  777. #define CS35L43_AMP_GAIN_ZC_MASK 0x00000400
  778. #define CS35L43_AMP_GAIN_ZC_SHIFT 10
  779. #define CS35L43_AMP_GAIN_PCM_MASK 0x000003E0
  780. #define CS35L43_AMP_GAIN_PCM_SHIFT 5
  781. /************************************************/
  782. /* Amplifier Digital Volume Control */
  783. /************************************************/
  784. #define CS35L43_AMP_HPF_PCM_EN_MASK 0x00008000
  785. #define CS35L43_AMP_HPF_PCM_EN_SHIFT 15
  786. #define CS35L43_AMP_INV_PCM_MASK 0x00004000
  787. #define CS35L43_AMP_INV_PCM_SHIFT 14
  788. #define CS35L43_AMP_VOL_PCM_MASK 0x000007FF
  789. #define CS35L43_AMP_VOL_PCM_SHIFT 3
  790. #define CS35L43_AMP_RAMP_PCM_MASK 0x00000007
  791. #define CS35L43_AMP_RAMP_PCM_SHIFT 0
  792. #define CS35L43_AMP_VOL_PCM_DEFAULT 0x0000
  793. #define CS35L43_AMP_VOL_PCM_MUTE 0x04CF
  794. #define CS35L43_AMP_VOL_CTRL_DEFAULT 817
  795. #define CS35L43_AMP_VOL_MIN 102
  796. /************************************************/
  797. /* Amplifier High Rate Control */
  798. /************************************************/
  799. #define CS35L43_VIMON_DUAL_RATE_MASK 0x00010000
  800. #define CS35L43_VIMON_DUAL_RATE_SHIFT 16
  801. #define CS35L43_AMP_PCM_FSX2_EN_MASK 0x00000001
  802. #define CS35L43_DSP_RX1_RATE_MASK 0x00000003
  803. #define CS35L43_DSP_RX2_RATE_MASK 0x00000300
  804. #define CS35L43_DSP_RX3_RATE_MASK 0x00030000
  805. #define CS35L43_DSP_RX4_RATE_MASK 0x03000000
  806. #define CS35L43_DSP_RX5_RATE_MASK 0x00000003
  807. #define CS35L43_DSP_RX6_RATE_MASK 0x00000300
  808. #define CS35L43_DSP_TX1_RATE_MASK 0x00000003
  809. #define CS35L43_DSP_TX2_RATE_MASK 0x00000300
  810. #define CS35L43_DSP_TX3_RATE_MASK 0x00030000
  811. #define CS35L43_DSP_TX4_RATE_MASK 0x03000000
  812. #define CS35L43_DSP_TX5_RATE_MASK 0x00000003
  813. #define CS35L43_DSP_TX6_RATE_MASK 0x00000300
  814. #define CS35L43_DSP_RX1_RATE_SHIFT 0
  815. #define CS35L43_DSP_RX2_RATE_SHIFT 8
  816. #define CS35L43_DSP_RX3_RATE_SHIFT 16
  817. #define CS35L43_DSP_RX4_RATE_SHIFT 24
  818. #define CS35L43_DSP_RX5_RATE_SHIFT 0
  819. #define CS35L43_DSP_RX6_RATE_SHIFT 8
  820. #define CS35L43_DSP_TX1_RATE_SHIFT 0
  821. #define CS35L43_DSP_TX2_RATE_SHIFT 8
  822. #define CS35L43_DSP_TX3_RATE_SHIFT 16
  823. #define CS35L43_DSP_TX4_RATE_SHIFT 24
  824. #define CS35L43_DSP_TX5_RATE_SHIFT 0
  825. #define CS35L43_DSP_TX6_RATE_SHIFT 8
  826. #define CS35L43_BASE_RATE 0x1
  827. #define CS35L43_HIGH_RATE 0x3
  828. /************************************************/
  829. /* Monitor Trim */
  830. /************************************************/
  831. #define CS35L43_VMON_BST_COEFF_SHIFT 22
  832. #define CS35L43_VMON_BST_COEFF_MASK 0x3FC00000
  833. #define CS35L43_IMON_BST_COEFF_SHIFT 12
  834. #define CS35L43_IMON_BST_COEFF_MASK 0x003FF000
  835. /************************************************/
  836. /* DSP Noise Gate Control */
  837. /************************************************/
  838. /************************************************/
  839. /* NOISE_GATE_MIXER_NGATE_CFG */
  840. /************************************************/
  841. #define CS35L43_AUX_NGATE_FAST_MASK 0x00000001
  842. #define CS35L43_AUX_NGATE_FAST_SHIFT 0
  843. /************************************************/
  844. /* NOISE_GATE_MIXER_NGATE_CH1_CFG */
  845. /************************************************/
  846. #define CS35L43_AUX_NGATE_CH1_FRC_MASK 0x00020000
  847. #define CS35L43_AUX_NGATE_CH1_FRC_SHIFT 17
  848. #define CS35L43_AUX_NGATE_CH1_EN_MASK 0x00010000
  849. #define CS35L43_AUX_NGATE_CH1_EN_SHIFT 16
  850. #define CS35L43_AUX_NGATE_CH1_HOLD_MASK 0x00000F00
  851. #define CS35L43_AUX_NGATE_CH1_HOLD_SHIFT 8
  852. #define CS35L43_AUX_NGATE_CH1_THR_MASK 0x00000007
  853. #define CS35L43_AUX_NGATE_CH1_THR_SHIFT 0
  854. /************************************************/
  855. /* NOISE_GATE_MIXER_NGATE_CH2_CFG */
  856. /************************************************/
  857. #define CS35L43_AUX_NGATE_CH2_FRC_MASK 0x00020000
  858. #define CS35L43_AUX_NGATE_CH2_FRC_SHIFT 17
  859. #define CS35L43_AUX_NGATE_CH2_EN_MASK 0x00010000
  860. #define CS35L43_AUX_NGATE_CH2_EN_SHIFT 16
  861. #define CS35L43_AUX_NGATE_CH2_HOLD_MASK 0x00000F00
  862. #define CS35L43_AUX_NGATE_CH2_HOLD_SHIFT 8
  863. #define CS35L43_AUX_NGATE_CH2_THR_MASK 0x00000007
  864. #define CS35L43_AUX_NGATE_CH2_THR_SHIFT 0
  865. /************************************************/
  866. /* Noise Gate Configuration */
  867. /************************************************/
  868. #define CS35L43_NG_FRC_MASK 0x00008000
  869. #define CS35L43_NG_FRC_SHIFT 15
  870. #define CS35L43_NG_EN_SEL_MASK 0x00003F00
  871. #define CS35L43_NG_EN_SEL_SHIFT 8
  872. #define CS35L43_NG_DELAY_MASK 0x00000070
  873. #define CS35L43_NG_DELAY_SHIFT 4
  874. #define CS35L43_NG_PCM_THLD_MASK 0x00000007
  875. #define CS35L43_NG_PCM_THLD_SHIFT 0
  876. /* #####################################################*/
  877. /* Software Values */
  878. /* #####################################################*/
  879. #define CS35L43_MBOX_TYPE_PWR 0x2
  880. #define CS35L43_MBOX_TYPE_MEM_VAL 0x6
  881. #define CS35L43_MBOX_TYPE_SYS 0xA
  882. #define CS35L43_MBOX_TYPE_AUDIO 0xB
  883. #define CS35L43_MBOX_TYPE_ERROR 0xC
  884. #define CS35L43_MBOX_TYPE_EVENT 0xD
  885. #define CS35L43_MBOX_TYPE_WDT 0xE
  886. #define CS35L43_MBOX_MSG_ACK 0x0A000000
  887. #define CS35L43_MBOX_MSG_AWAKE 0x02000002
  888. #define CS35L43_MBOX_CMD_AUDIO_PLAY 0x0B000001
  889. #define CS35L43_MBOX_CMD_AUDIO_PAUSE 0x0B000002
  890. #define CS35L43_MBOX_CMD_AUDIO_REINIT 0x0B000003
  891. #define CS35L43_MBOX_CMD_HIBERNATE 0x02000001
  892. #define CS35L43_MBOX_CMD_WAKEUP 0x02000002
  893. #define CS35L43_MBOX_CMD_PREVENT_HIBERNATE 0x02000003
  894. #define CS35L43_MBOX_CMD_ALLOW_HIBERNATE 0x02000004
  895. #define CS35L43_MBOX_CMD_SHUTDOWN 0x02000005
  896. #define CS35L43_AUDIO_STATE_READY 0
  897. #define CS35L43_AUDIO_STATE_WAITING 1
  898. #define CS35L43_AUDIO_STATE_RUNNING 2
  899. #define CS35L43_AUDIO_STATE_ERROR 3
  900. #define CS35L43_AUDIO_STATE_MEM_ERR 4
  901. #define CS35L43_AUDIO_STATE_HW_ERR 5
  902. #define CS35L43_AUDIO_STATE_RAMPDOWN 6
  903. #define CS35L43_AUDIO_STATE_AUX_NG_MUTED 7
  904. #define CS35L43_ALG_ID_MAILBOX 0x5f203
  905. #define CS35L43_ALG_ID_PM 0x5f206
  906. #define CS35L43_POWER_SEQ_LENGTH 42
  907. #define CS35L43_POWER_SEQ_MAX_WORDS 129
  908. #define CS35L43_POWER_SEQ_NUM_OPS 8
  909. #define CS35L43_POWER_SEQ_OP_MASK GENMASK(23, 16)
  910. #define CS35L43_POWER_SEQ_OP_SHIFT 16
  911. #define CS35L43_POWER_SEQ_OP_WRITE_REG_FULL 0x00
  912. #define CS35L43_POWER_SEQ_OP_WRITE_REG_FULL_WORDS 3
  913. #define CS35L43_POWER_SEQ_OP_WRITE_FIELD 0x01
  914. #define CS35L43_POWER_SEQ_OP_WRITE_FIELD_WORDS 4
  915. #define CS35L43_POWER_SEQ_OP_WRITE_REG_ADDR8 0x02
  916. #define CS35L43_POWER_SEQ_OP_WRITE_REG_ADDR8_WORDS 2
  917. #define CS35L43_POWER_SEQ_OP_WRITE_REG_INCR 0x03
  918. #define CS35L43_POWER_SEQ_OP_WRITE_REG_INCR_WORDS 2
  919. #define CS35L43_POWER_SEQ_OP_WRITE_REG_L16 0x04
  920. #define CS35L43_POWER_SEQ_OP_WRITE_REG_L16_WORDS 2
  921. #define CS35L43_POWER_SEQ_OP_WRITE_REG_H16 0x05
  922. #define CS35L43_POWER_SEQ_OP_WRITE_REG_H16_WORDS 2
  923. #define CS35L43_POWER_SEQ_OP_DELAY 0xFE
  924. #define CS35L43_POWER_SEQ_OP_DELAY_WORDS 1
  925. #define CS35L43_POWER_SEQ_OP_END 0xFF
  926. #define CS35L43_POWER_SEQ_OP_END_WORDS 1
  927. #define CS35L43_SPI_MAX_FREQ_NO_PLL 4000000