max98390.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (c) 2020, Maxim Integrated.
  4. */
  5. #ifndef _MAX98390_H
  6. #define _MAX98390_H
  7. /* MAX98390 Register Address */
  8. #define MAX98390_SOFTWARE_RESET 0x2000
  9. #define MAX98390_INT_RAW1 0x2002
  10. #define MAX98390_INT_RAW2 0x2003
  11. #define MAX98390_INT_RAW3 0x2004
  12. #define MAX98390_INT_STATE1 0x2005
  13. #define MAX98390_INT_STATE2 0x2006
  14. #define MAX98390_INT_STATE3 0x2007
  15. #define MAX98390_INT_FLAG1 0x2008
  16. #define MAX98390_INT_FLAG2 0x2009
  17. #define MAX98390_INT_FLAG3 0x200a
  18. #define MAX98390_INT_EN1 0x200b
  19. #define MAX98390_INT_EN2 0x200c
  20. #define MAX98390_INT_EN3 0x200d
  21. #define MAX98390_INT_FLAG_CLR1 0x200e
  22. #define MAX98390_INT_FLAG_CLR2 0x200f
  23. #define MAX98390_INT_FLAG_CLR3 0x2010
  24. #define MAX98390_IRQ_CTRL 0x2011
  25. #define MAX98390_CLK_MON 0x2012
  26. #define MAX98390_DAT_MON 0x2014
  27. #define MAX98390_WDOG_CTRL 0x2015
  28. #define MAX98390_WDOG_RST 0x2016
  29. #define MAX98390_MEAS_ADC_THERM_WARN_THRESH 0x2017
  30. #define MAX98390_MEAS_ADC_THERM_SHDN_THRESH 0x2018
  31. #define MAX98390_MEAS_ADC_THERM_HYSTERESIS 0x2019
  32. #define MAX98390_PIN_CFG 0x201a
  33. #define MAX98390_PCM_RX_EN_A 0x201b
  34. #define MAX98390_PCM_RX_EN_B 0x201c
  35. #define MAX98390_PCM_TX_EN_A 0x201d
  36. #define MAX98390_PCM_TX_EN_B 0x201e
  37. #define MAX98390_PCM_TX_HIZ_CTRL_A 0x201f
  38. #define MAX98390_PCM_TX_HIZ_CTRL_B 0x2020
  39. #define MAX98390_PCM_CH_SRC_1 0x2021
  40. #define MAX98390_PCM_CH_SRC_2 0x2022
  41. #define MAX98390_PCM_CH_SRC_3 0x2023
  42. #define MAX98390_PCM_MODE_CFG 0x2024
  43. #define MAX98390_PCM_MASTER_MODE 0x2025
  44. #define MAX98390_PCM_CLK_SETUP 0x2026
  45. #define MAX98390_PCM_SR_SETUP 0x2027
  46. #define MAX98390_ICC_RX_EN_A 0x202c
  47. #define MAX98390_ICC_RX_EN_B 0x202d
  48. #define MAX98390_ICC_TX_EN_A 0x202e
  49. #define MAX98390_ICC_TX_EN_B 0x202f
  50. #define MAX98390_ICC_HIZ_MANUAL_MODE 0x2030
  51. #define MAX98390_ICC_TX_HIZ_EN_A 0x2031
  52. #define MAX98390_ICC_TX_HIZ_EN_B 0x2032
  53. #define MAX98390_ICC_LNK_EN 0x2033
  54. #define MAX98390_R2039_AMP_DSP_CFG 0x2039
  55. #define MAX98390_R203A_AMP_EN 0x203a
  56. #define MAX98390_TONE_GEN_DC_CFG 0x203b
  57. #define MAX98390_SPK_SRC_SEL 0x203c
  58. #define MAX98390_R203D_SPK_GAIN 0x203d
  59. #define MAX98390_SSM_CFG 0x203e
  60. #define MAX98390_MEAS_EN 0x203f
  61. #define MAX98390_MEAS_DSP_CFG 0x2040
  62. #define MAX98390_BOOST_CTRL0 0x2041
  63. #define MAX98390_BOOST_CTRL3 0x2042
  64. #define MAX98390_BOOST_CTRL1 0x2043
  65. #define MAX98390_MEAS_ADC_CFG 0x2044
  66. #define MAX98390_MEAS_ADC_BASE_MSB 0x2045
  67. #define MAX98390_MEAS_ADC_BASE_LSB 0x2046
  68. #define MAX98390_ADC_CH0_DIVIDE 0x2047
  69. #define MAX98390_ADC_CH1_DIVIDE 0x2048
  70. #define MAX98390_ADC_CH2_DIVIDE 0x2049
  71. #define MAX98390_ADC_CH0_FILT_CFG 0x204a
  72. #define MAX98390_ADC_CH1_FILT_CFG 0x204b
  73. #define MAX98390_ADC_CH2_FILT_CFG 0x204c
  74. #define MAX98390_MEAS_ADC_CH0_READ 0x204d
  75. #define MAX98390_MEAS_ADC_CH1_READ 0x204e
  76. #define MAX98390_MEAS_ADC_CH2_READ 0x204f
  77. #define MAX98390_PWR_GATE_CTL 0x2050
  78. #define MAX98390_PWR_GATE_STATUS 0x2051
  79. #define MAX98390_VBAT_LOW_STATUS 0x2052
  80. #define MAX98390_PVDD_LOW_STATUS 0x2053
  81. #define MAX98390_BROWNOUT_STATUS 0x2054
  82. #define MAX98390_BROWNOUT_EN 0x2055
  83. #define MAX98390_BROWNOUT_INFINITE_HOLD 0x2056
  84. #define MAX98390_BROWNOUT_INFINITE_HOLD_CLR 0x2057
  85. #define MAX98390_BROWNOUT_LVL_HOLD 0x2058
  86. #define MAX98390_BROWNOUT_LVL1_THRESH 0x2059
  87. #define MAX98390_BROWNOUT_LVL2_THRESH 0x205a
  88. #define MAX98390_BROWNOUT_LVL3_THRESH 0x205b
  89. #define MAX98390_BROWNOUT_LVL4_THRESH 0x205c
  90. #define MAX98390_BROWNOUT_THRESH_HYSTERYSIS 0x205d
  91. #define MAX98390_BROWNOUT_AMP_LIMITER_ATK_REL 0x205e
  92. #define MAX98390_BROWNOUT_AMP_GAIN_ATK_REL 0x205f
  93. #define MAX98390_BROWNOUT_AMP1_CLIP_MODE 0x2060
  94. #define MAX98390_BROWNOUT_LVL1_CUR_LIMIT 0x2061
  95. #define MAX98390_BROWNOUT_LVL1_AMP1_CTRL1 0x2062
  96. #define MAX98390_BROWNOUT_LVL1_AMP1_CTRL2 0x2063
  97. #define MAX98390_BROWNOUT_LVL1_AMP1_CTRL3 0x2064
  98. #define MAX98390_BROWNOUT_LVL2_CUR_LIMIT 0x2065
  99. #define MAX98390_BROWNOUT_LVL2_AMP1_CTRL1 0x2066
  100. #define MAX98390_BROWNOUT_LVL2_AMP1_CTRL2 0x2067
  101. #define MAX98390_BROWNOUT_LVL2_AMP1_CTRL3 0x2068
  102. #define MAX98390_BROWNOUT_LVL3_CUR_LIMIT 0x2069
  103. #define MAX98390_BROWNOUT_LVL3_AMP1_CTRL1 0x206a
  104. #define MAX98390_BROWNOUT_LVL3_AMP1_CTRL2 0x206b
  105. #define MAX98390_BROWNOUT_LVL3_AMP1_CTRL3 0x206c
  106. #define MAX98390_BROWNOUT_LVL4_CUR_LIMIT 0x206d
  107. #define MAX98390_BROWNOUT_LVL4_AMP1_CTRL1 0x206e
  108. #define MAX98390_BROWNOUT_LVL4_AMP1_CTRL2 0x206f
  109. #define MAX98390_BROWNOUT_LVL4_AMP1_CTRL3 0x2070
  110. #define MAX98390_BROWNOUT_LOWEST_STATUS 0x2071
  111. #define MAX98390_BROWNOUT_ILIM_HLD 0x2072
  112. #define MAX98390_BROWNOUT_LIM_HLD 0x2073
  113. #define MAX98390_BROWNOUT_CLIP_HLD 0x2074
  114. #define MAX98390_BROWNOUT_GAIN_HLD 0x2075
  115. #define MAX98390_ENV_TRACK_VOUT_HEADROOM 0x2076
  116. #define MAX98390_ENV_TRACK_BOOST_VOUT_DELAY 0x2077
  117. #define MAX98390_ENV_TRACK_REL_RATE 0x2078
  118. #define MAX98390_ENV_TRACK_HOLD_RATE 0x2079
  119. #define MAX98390_ENV_TRACK_CTRL 0x207a
  120. #define MAX98390_ENV_TRACK_BOOST_VOUT_READ 0x207b
  121. #define MAX98390_BOOST_BYPASS1 0x207c
  122. #define MAX98390_BOOST_BYPASS2 0x207d
  123. #define MAX98390_BOOST_BYPASS3 0x207e
  124. #define MAX98390_FET_SCALING1 0x207f
  125. #define MAX98390_FET_SCALING2 0x2080
  126. #define MAX98390_FET_SCALING3 0x2081
  127. #define MAX98390_FET_SCALING4 0x2082
  128. #define MAX98390_SPK_SPEEDUP 0x2084
  129. #define DSM_STBASS_HPF_B0_BYTE0 0x2101
  130. #define DSM_STBASS_HPF_B0_BYTE1 0x2102
  131. #define DSM_STBASS_HPF_B0_BYTE2 0x2103
  132. #define DSM_STBASS_HPF_B1_BYTE0 0x2105
  133. #define DSM_STBASS_HPF_B1_BYTE1 0x2106
  134. #define DSM_STBASS_HPF_B1_BYTE2 0x2107
  135. #define DSM_STBASS_HPF_B2_BYTE0 0x2109
  136. #define DSM_STBASS_HPF_B2_BYTE1 0x210a
  137. #define DSM_STBASS_HPF_B2_BYTE2 0x210b
  138. #define DSM_STBASS_HPF_A1_BYTE0 0x210d
  139. #define DSM_STBASS_HPF_A1_BYTE1 0x210e
  140. #define DSM_STBASS_HPF_A1_BYTE2 0x210f
  141. #define DSM_STBASS_HPF_A2_BYTE0 0x2111
  142. #define DSM_STBASS_HPF_A2_BYTE1 0x2112
  143. #define DSM_STBASS_HPF_A2_BYTE2 0x2113
  144. #define DSM_STBASS_LPF_B0_BYTE0 0x2115
  145. #define DSM_STBASS_LPF_B0_BYTE1 0x2116
  146. #define DSM_STBASS_LPF_B0_BYTE2 0x2117
  147. #define DSM_STBASS_LPF_B1_BYTE0 0x2119
  148. #define DSM_STBASS_LPF_B1_BYTE1 0x211a
  149. #define DSM_STBASS_LPF_B1_BYTE2 0x211b
  150. #define DSM_STBASS_LPF_B2_BYTE0 0x211d
  151. #define DSM_STBASS_LPF_B2_BYTE1 0x211e
  152. #define DSM_STBASS_LPF_B2_BYTE2 0x211f
  153. #define DSM_STBASS_LPF_A1_BYTE0 0x2121
  154. #define DSM_STBASS_LPF_A1_BYTE1 0x2122
  155. #define DSM_STBASS_LPF_A1_BYTE2 0x2123
  156. #define DSM_STBASS_LPF_A2_BYTE0 0x2125
  157. #define DSM_STBASS_LPF_A2_BYTE1 0x2126
  158. #define DSM_STBASS_LPF_A2_BYTE2 0x2127
  159. #define DSM_EQ_BQ1_B0_BYTE0 0x2129
  160. #define DSM_EQ_BQ1_B0_BYTE1 0x212a
  161. #define DSM_EQ_BQ1_B0_BYTE2 0x212b
  162. #define DSM_EQ_BQ1_B1_BYTE0 0x212d
  163. #define DSM_EQ_BQ1_B1_BYTE1 0x212e
  164. #define DSM_EQ_BQ1_B1_BYTE2 0x212f
  165. #define DSM_EQ_BQ1_B2_BYTE0 0x2131
  166. #define DSM_EQ_BQ1_B2_BYTE1 0x2132
  167. #define DSM_EQ_BQ1_B2_BYTE2 0x2133
  168. #define DSM_EQ_BQ1_A1_BYTE0 0x2135
  169. #define DSM_EQ_BQ1_A1_BYTE1 0x2136
  170. #define DSM_EQ_BQ1_A1_BYTE2 0x2137
  171. #define DSM_EQ_BQ1_A2_BYTE0 0x2139
  172. #define DSM_EQ_BQ1_A2_BYTE1 0x213a
  173. #define DSM_EQ_BQ1_A2_BYTE2 0x213b
  174. #define DSM_EQ_BQ2_B0_BYTE0 0x213d
  175. #define DSM_EQ_BQ2_B0_BYTE1 0x213e
  176. #define DSM_EQ_BQ2_B0_BYTE2 0x213f
  177. #define DSM_EQ_BQ2_B1_BYTE0 0x2141
  178. #define DSM_EQ_BQ2_B1_BYTE1 0x2142
  179. #define DSM_EQ_BQ2_B1_BYTE2 0x2143
  180. #define DSM_EQ_BQ2_B2_BYTE0 0x2145
  181. #define DSM_EQ_BQ2_B2_BYTE1 0x2146
  182. #define DSM_EQ_BQ2_B2_BYTE2 0x2147
  183. #define DSM_EQ_BQ2_A1_BYTE0 0x2149
  184. #define DSM_EQ_BQ2_A1_BYTE1 0x214a
  185. #define DSM_EQ_BQ2_A1_BYTE2 0x214b
  186. #define DSM_EQ_BQ2_A2_BYTE0 0x214d
  187. #define DSM_EQ_BQ2_A2_BYTE1 0x214e
  188. #define DSM_EQ_BQ2_A2_BYTE2 0x214f
  189. #define DSM_EQ_BQ3_B0_BYTE0 0x2151
  190. #define DSM_EQ_BQ3_B0_BYTE1 0x2152
  191. #define DSM_EQ_BQ3_B0_BYTE2 0x2153
  192. #define DSM_EQ_BQ3_B1_BYTE0 0x2155
  193. #define DSM_EQ_BQ3_B1_BYTE1 0x2156
  194. #define DSM_EQ_BQ3_B1_BYTE2 0x2157
  195. #define DSM_EQ_BQ3_B2_BYTE0 0x2159
  196. #define DSM_EQ_BQ3_B2_BYTE1 0x215a
  197. #define DSM_EQ_BQ3_B2_BYTE2 0x215b
  198. #define DSM_EQ_BQ3_A1_BYTE0 0x215d
  199. #define DSM_EQ_BQ3_A1_BYTE1 0x215e
  200. #define DSM_EQ_BQ3_A1_BYTE2 0x215f
  201. #define DSM_EQ_BQ3_A2_BYTE0 0x2161
  202. #define DSM_EQ_BQ3_A2_BYTE1 0x2162
  203. #define DSM_EQ_BQ3_A2_BYTE2 0x2163
  204. #define DSM_EQ_BQ4_B0_BYTE0 0x2165
  205. #define DSM_EQ_BQ4_B0_BYTE1 0x2166
  206. #define DSM_EQ_BQ4_B0_BYTE2 0x2167
  207. #define DSM_EQ_BQ4_B1_BYTE0 0x2169
  208. #define DSM_EQ_BQ4_B1_BYTE1 0x216a
  209. #define DSM_EQ_BQ4_B1_BYTE2 0x216b
  210. #define DSM_EQ_BQ4_B2_BYTE0 0x216d
  211. #define DSM_EQ_BQ4_B2_BYTE1 0x216e
  212. #define DSM_EQ_BQ4_B2_BYTE2 0x216f
  213. #define DSM_EQ_BQ4_A1_BYTE0 0x2171
  214. #define DSM_EQ_BQ4_A1_BYTE1 0x2172
  215. #define DSM_EQ_BQ4_A1_BYTE2 0x2173
  216. #define DSM_EQ_BQ4_A2_BYTE0 0x2175
  217. #define DSM_EQ_BQ4_A2_BYTE1 0x2176
  218. #define DSM_EQ_BQ4_A2_BYTE2 0x2177
  219. #define DSM_EQ_BQ5_B0_BYTE0 0x2179
  220. #define DSM_EQ_BQ5_B0_BYTE1 0x217a
  221. #define DSM_EQ_BQ5_B0_BYTE2 0x217b
  222. #define DSM_EQ_BQ5_B1_BYTE0 0x217d
  223. #define DSM_EQ_BQ5_B1_BYTE1 0x217e
  224. #define DSM_EQ_BQ5_B1_BYTE2 0x217f
  225. #define DSM_EQ_BQ5_B2_BYTE0 0x2181
  226. #define DSM_EQ_BQ5_B2_BYTE1 0x2182
  227. #define DSM_EQ_BQ5_B2_BYTE2 0x2183
  228. #define DSM_EQ_BQ5_A1_BYTE0 0x2185
  229. #define DSM_EQ_BQ5_A1_BYTE1 0x2186
  230. #define DSM_EQ_BQ5_A1_BYTE2 0x2187
  231. #define DSM_EQ_BQ5_A2_BYTE0 0x2189
  232. #define DSM_EQ_BQ5_A2_BYTE1 0x218a
  233. #define DSM_EQ_BQ5_A2_BYTE2 0x218b
  234. #define DSM_EQ_BQ6_B0_BYTE0 0x218d
  235. #define DSM_EQ_BQ6_B0_BYTE1 0x218e
  236. #define DSM_EQ_BQ6_B0_BYTE2 0x218f
  237. #define DSM_EQ_BQ6_B1_BYTE0 0x2191
  238. #define DSM_EQ_BQ6_B1_BYTE1 0x2192
  239. #define DSM_EQ_BQ6_B1_BYTE2 0x2193
  240. #define DSM_EQ_BQ6_B2_BYTE0 0x2195
  241. #define DSM_EQ_BQ6_B2_BYTE1 0x2196
  242. #define DSM_EQ_BQ6_B2_BYTE2 0x2197
  243. #define DSM_EQ_BQ6_A1_BYTE0 0x2199
  244. #define DSM_EQ_BQ6_A1_BYTE1 0x219a
  245. #define DSM_EQ_BQ6_A1_BYTE2 0x219b
  246. #define DSM_EQ_BQ6_A2_BYTE0 0x219d
  247. #define DSM_EQ_BQ6_A2_BYTE1 0x219e
  248. #define DSM_EQ_BQ6_A2_BYTE2 0x219f
  249. #define DSM_EQ_BQ7_B0_BYTE0 0x21a1
  250. #define DSM_EQ_BQ7_B0_BYTE1 0x21a2
  251. #define DSM_EQ_BQ7_B0_BYTE2 0x21a3
  252. #define DSM_EQ_BQ7_B1_BYTE0 0x21a5
  253. #define DSM_EQ_BQ7_B1_BYTE1 0x21a6
  254. #define DSM_EQ_BQ7_B1_BYTE2 0x21a7
  255. #define DSM_EQ_BQ7_B2_BYTE0 0x21a9
  256. #define DSM_EQ_BQ7_B2_BYTE1 0x21aa
  257. #define DSM_EQ_BQ7_B2_BYTE2 0x21ab
  258. #define DSM_EQ_BQ7_A1_BYTE0 0x21ad
  259. #define DSM_EQ_BQ7_A1_BYTE1 0x21ae
  260. #define DSM_EQ_BQ7_A1_BYTE2 0x21af
  261. #define DSM_EQ_BQ7_A2_BYTE0 0x21b1
  262. #define DSM_EQ_BQ7_A2_BYTE1 0x21b2
  263. #define DSM_EQ_BQ7_A2_BYTE2 0x21b3
  264. #define DSM_EQ_BQ8_B0_BYTE0 0x21b5
  265. #define DSM_EQ_BQ8_B0_BYTE1 0x21b6
  266. #define DSM_EQ_BQ8_B0_BYTE2 0x21b7
  267. #define DSM_EQ_BQ8_B1_BYTE0 0x21b9
  268. #define DSM_EQ_BQ8_B1_BYTE1 0x21ba
  269. #define DSM_EQ_BQ8_B1_BYTE2 0x21bb
  270. #define DSM_EQ_BQ8_B2_BYTE0 0x21bd
  271. #define DSM_EQ_BQ8_B2_BYTE1 0x21be
  272. #define DSM_EQ_BQ8_B2_BYTE2 0x21bf
  273. #define DSM_EQ_BQ8_A1_BYTE0 0x21c1
  274. #define DSM_EQ_BQ8_A1_BYTE1 0x21c2
  275. #define DSM_EQ_BQ8_A1_BYTE2 0x21c3
  276. #define DSM_EQ_BQ8_A2_BYTE0 0x21c5
  277. #define DSM_EQ_BQ8_A2_BYTE1 0x21c6
  278. #define DSM_EQ_BQ8_A2_BYTE2 0x21c7
  279. #define DSM_LFX_BQ_B0_BYTE0 0x21c9
  280. #define DSM_LFX_BQ_B0_BYTE1 0x21ca
  281. #define DSM_LFX_BQ_B0_BYTE2 0x21cb
  282. #define DSM_LFX_BQ_B1_BYTE0 0x21cd
  283. #define DSM_LFX_BQ_B1_BYTE1 0x21ce
  284. #define DSM_LFX_BQ_B1_BYTE2 0x21cf
  285. #define DSM_LFX_BQ_B2_BYTE0 0x21d1
  286. #define DSM_LFX_BQ_B2_BYTE1 0x21d2
  287. #define DSM_LFX_BQ_B2_BYTE2 0x21d3
  288. #define DSM_LFX_BQ_A1_BYTE0 0x21d5
  289. #define DSM_LFX_BQ_A1_BYTE1 0x21d6
  290. #define DSM_LFX_BQ_A1_BYTE2 0x21d7
  291. #define DSM_LFX_BQ_A2_BYTE0 0x21d9
  292. #define DSM_LFX_BQ_A2_BYTE1 0x21da
  293. #define DSM_LFX_BQ_A2_BYTE2 0x21db
  294. #define DSM_PPR_HPF_B0_BYTE0 0x21dd
  295. #define DSM_PPR_HPF_B0_BYTE1 0x21de
  296. #define DSM_PPR_HPF_B0_BYTE2 0x21df
  297. #define DSM_PPR_HPF_B1_BYTE0 0x21e1
  298. #define DSM_PPR_HPF_B1_BYTE1 0x21e2
  299. #define DSM_PPR_HPF_B1_BYTE2 0x21e3
  300. #define DSM_PPR_HPF_B2_BYTE0 0x21e5
  301. #define DSM_PPR_HPF_B2_BYTE1 0x21e6
  302. #define DSM_PPR_HPF_B2_BYTE2 0x21e7
  303. #define DSM_PPR_HPF_A1_BYTE0 0x21e9
  304. #define DSM_PPR_HPF_A1_BYTE1 0x21ea
  305. #define DSM_PPR_HPF_A1_BYTE2 0x21eb
  306. #define DSM_PPR_HPF_A2_BYTE0 0x21ed
  307. #define DSM_PPR_HPF_A2_BYTE1 0x21ee
  308. #define DSM_PPR_HPF_A2_BYTE2 0x21ef
  309. #define DSM_PPR_LPF_B0_BYTE0 0x21f1
  310. #define DSM_PPR_LPF_B0_BYTE1 0x21f2
  311. #define DSM_PPR_LPF_B0_BYTE2 0x21f3
  312. #define DSM_PPR_LPF_B1_BYTE0 0x21f5
  313. #define DSM_PPR_LPF_B1_BYTE1 0x21f6
  314. #define DSM_PPR_LPF_B1_BYTE2 0x21f7
  315. #define DSM_PPR_LPF_B2_BYTE0 0x21f9
  316. #define DSM_PPR_LPF_B2_BYTE1 0x21fa
  317. #define DSM_PPR_LPF_B2_BYTE2 0x21fb
  318. #define DSM_PPR_LPF_A1_BYTE0 0x21fd
  319. #define DSM_PPR_LPF_A1_BYTE1 0x21fe
  320. #define DSM_PPR_LPF_A1_BYTE2 0x21ff
  321. #define DSM_PPR_LPF_A2_BYTE0 0x2201
  322. #define DSM_PPR_LPF_A2_BYTE1 0x2202
  323. #define DSM_PPR_LPF_A2_BYTE2 0x2203
  324. #define DSM_SPL_BQ_B0_BYTE0 0x2205
  325. #define DSM_SPL_BQ_B0_BYTE1 0x2206
  326. #define DSM_SPL_BQ_B0_BYTE2 0x2207
  327. #define DSM_SPL_BQ_B1_BYTE0 0x2209
  328. #define DSM_SPL_BQ_B1_BYTE1 0x220a
  329. #define DSM_SPL_BQ_B1_BYTE2 0x220b
  330. #define DSM_SPL_BQ_B2_BYTE0 0x220d
  331. #define DSM_SPL_BQ_B2_BYTE1 0x220e
  332. #define DSM_SPL_BQ_B2_BYTE2 0x220f
  333. #define DSM_SPL_BQ_A1_BYTE0 0x2211
  334. #define DSM_SPL_BQ_A1_BYTE1 0x2212
  335. #define DSM_SPL_BQ_A1_BYTE2 0x2213
  336. #define DSM_SPL_BQ_A2_BYTE0 0x2215
  337. #define DSM_SPL_BQ_A2_BYTE1 0x2216
  338. #define DSM_SPL_BQ_A2_BYTE2 0x2217
  339. #define DSM_EXCUR_BQ_B0_BYTE0 0x2219
  340. #define DSM_EXCUR_BQ_B0_BYTE1 0x221a
  341. #define DSM_EXCUR_BQ_B0_BYTE2 0x221b
  342. #define DSM_EXCUR_BQ_B1_BYTE0 0x221d
  343. #define DSM_EXCUR_BQ_B1_BYTE1 0x221e
  344. #define DSM_EXCUR_BQ_B1_BYTE2 0x221f
  345. #define DSM_EXCUR_BQ_B2_BYTE0 0x2221
  346. #define DSM_EXCUR_BQ_B2_BYTE1 0x2222
  347. #define DSM_EXCUR_BQ_B2_BYTE2 0x2223
  348. #define DSM_EXCUR_BQ_A1_BYTE0 0x2225
  349. #define DSM_EXCUR_BQ_A1_BYTE1 0x2226
  350. #define DSM_EXCUR_BQ_A1_BYTE2 0x2227
  351. #define DSM_EXCUR_BQ_A2_BYTE0 0x2229
  352. #define DSM_EXCUR_BQ_A2_BYTE1 0x222a
  353. #define DSM_EXCUR_BQ_A2_BYTE2 0x222b
  354. #define DSM_EXCPROT_HPF1_B0_BYTE0 0x222d
  355. #define DSM_EXCPROT_HPF1_B0_BYTE1 0x222e
  356. #define DSM_EXCPROT_HPF1_B0_BYTE2 0x222f
  357. #define DSM_EXCPROT_HPF1_B1_BYTE0 0x2231
  358. #define DSM_EXCPROT_HPF1_B1_BYTE1 0x2232
  359. #define DSM_EXCPROT_HPF1_B1_BYTE2 0x2233
  360. #define DSM_EXCPROT_HPF1_B2_BYTE0 0x2235
  361. #define DSM_EXCPROT_HPF1_B2_BYTE1 0x2236
  362. #define DSM_EXCPROT_HPF1_B2_BYTE2 0x2237
  363. #define DSM_EXCPROT_HPF1_A1_BYTE0 0x2239
  364. #define DSM_EXCPROT_HPF1_A1_BYTE1 0x223a
  365. #define DSM_EXCPROT_HPF1_A1_BYTE2 0x223b
  366. #define DSM_EXCPROT_HPF1_A2_BYTE0 0x223d
  367. #define DSM_EXCPROT_HPF1_A2_BYTE1 0x223e
  368. #define DSM_EXCPROT_HPF1_A2_BYTE2 0x223f
  369. #define DSM_EXCPROT_HPF2_B0_BYTE0 0x2241
  370. #define DSM_EXCPROT_HPF2_B0_BYTE1 0x2242
  371. #define DSM_EXCPROT_HPF2_B0_BYTE2 0x2243
  372. #define DSM_EXCPROT_HPF2_B1_BYTE0 0x2245
  373. #define DSM_EXCPROT_HPF2_B1_BYTE1 0x2246
  374. #define DSM_EXCPROT_HPF2_B1_BYTE2 0x2247
  375. #define DSM_EXCPROT_HPF2_B2_BYTE0 0x2249
  376. #define DSM_EXCPROT_HPF2_B2_BYTE1 0x224a
  377. #define DSM_EXCPROT_HPF2_B2_BYTE2 0x224b
  378. #define DSM_EXCPROT_HPF2_A1_BYTE0 0x224d
  379. #define DSM_EXCPROT_HPF2_A1_BYTE1 0x224e
  380. #define DSM_EXCPROT_HPF2_A1_BYTE2 0x224f
  381. #define DSM_EXCPROT_HPF2_A2_BYTE0 0x2251
  382. #define DSM_EXCPROT_HPF2_A2_BYTE1 0x2252
  383. #define DSM_EXCPROT_HPF2_A2_BYTE2 0x2253
  384. #define DSM_EXCPROT_HPF3_B0_BYTE0 0x2255
  385. #define DSM_EXCPROT_HPF3_B0_BYTE1 0x2256
  386. #define DSM_EXCPROT_HPF3_B0_BYTE2 0x2257
  387. #define DSM_EXCPROT_HPF3_B1_BYTE0 0x2259
  388. #define DSM_EXCPROT_HPF3_B1_BYTE1 0x225a
  389. #define DSM_EXCPROT_HPF3_B1_BYTE2 0x225b
  390. #define DSM_EXCPROT_HPF3_B2_BYTE0 0x225d
  391. #define DSM_EXCPROT_HPF3_B2_BYTE1 0x225e
  392. #define DSM_EXCPROT_HPF3_B2_BYTE2 0x225f
  393. #define DSM_EXCPROT_HPF3_A1_BYTE0 0x2261
  394. #define DSM_EXCPROT_HPF3_A1_BYTE1 0x2262
  395. #define DSM_EXCPROT_HPF3_A1_BYTE2 0x2263
  396. #define DSM_EXCPROT_HPF3_A2_BYTE0 0x2265
  397. #define DSM_EXCPROT_HPF3_A2_BYTE1 0x2266
  398. #define DSM_EXCPROT_HPF3_A2_BYTE2 0x2267
  399. #define DSM_EXCPROT_HPF4_B0_BYTE0 0x2269
  400. #define DSM_EXCPROT_HPF4_B0_BYTE1 0x226a
  401. #define DSM_EXCPROT_HPF4_B0_BYTE2 0x226b
  402. #define DSM_EXCPROT_HPF4_B1_BYTE0 0x226d
  403. #define DSM_EXCPROT_HPF4_B1_BYTE1 0x226e
  404. #define DSM_EXCPROT_HPF4_B1_BYTE2 0x226f
  405. #define DSM_EXCPROT_HPF4_B2_BYTE0 0x2271
  406. #define DSM_EXCPROT_HPF4_B2_BYTE1 0x2272
  407. #define DSM_EXCPROT_HPF4_B2_BYTE2 0x2273
  408. #define DSM_EXCPROT_HPF4_A1_BYTE0 0x2275
  409. #define DSM_EXCPROT_HPF4_A1_BYTE1 0x2276
  410. #define DSM_EXCPROT_HPF4_A1_BYTE2 0x2277
  411. #define DSM_EXCPROT_HPF4_A2_BYTE0 0x2279
  412. #define DSM_EXCPROT_HPF4_A2_BYTE1 0x227a
  413. #define DSM_EXCPROT_HPF4_A2_BYTE2 0x227b
  414. #define DSM_EXCPROT_HPF5_B0_BYTE0 0x227d
  415. #define DSM_EXCPROT_HPF5_B0_BYTE1 0x227e
  416. #define DSM_EXCPROT_HPF5_B0_BYTE2 0x227f
  417. #define DSM_EXCPROT_HPF5_B1_BYTE0 0x2281
  418. #define DSM_EXCPROT_HPF5_B1_BYTE1 0x2282
  419. #define DSM_EXCPROT_HPF5_B1_BYTE2 0x2283
  420. #define DSM_EXCPROT_HPF5_B2_BYTE0 0x2285
  421. #define DSM_EXCPROT_HPF5_B2_BYTE1 0x2286
  422. #define DSM_EXCPROT_HPF5_B2_BYTE2 0x2287
  423. #define DSM_EXCPROT_HPF5_A1_BYTE0 0x2289
  424. #define DSM_EXCPROT_HPF5_A1_BYTE1 0x228a
  425. #define DSM_EXCPROT_HPF5_A1_BYTE2 0x228b
  426. #define DSM_EXCPROT_HPF5_A2_BYTE0 0x228d
  427. #define DSM_EXCPROT_HPF5_A2_BYTE1 0x228e
  428. #define DSM_EXCPROT_HPF5_A2_BYTE2 0x228f
  429. #define DSM_DEBUZZ_BPF_B0_BYTE0 0x2291
  430. #define DSM_DEBUZZ_BPF_B0_BYTE1 0x2292
  431. #define DSM_DEBUZZ_BPF_B0_BYTE2 0x2293
  432. #define DSM_DEBUZZ_BPF_B1_BYTE0 0x2295
  433. #define DSM_DEBUZZ_BPF_B1_BYTE1 0x2296
  434. #define DSM_DEBUZZ_BPF_B1_BYTE2 0x2297
  435. #define DSM_DEBUZZ_BPF_B2_BYTE0 0x2299
  436. #define DSM_DEBUZZ_BPF_B2_BYTE1 0x229a
  437. #define DSM_DEBUZZ_BPF_B2_BYTE2 0x229b
  438. #define DSM_DEBUZZ_BPF_A1_BYTE0 0x229d
  439. #define DSM_DEBUZZ_BPF_A1_BYTE1 0x229e
  440. #define DSM_DEBUZZ_BPF_A1_BYTE2 0x229f
  441. #define DSM_DEBUZZ_BPF_A2_BYTE0 0x22a1
  442. #define DSM_DEBUZZ_BPF_A2_BYTE1 0x22a2
  443. #define DSM_DEBUZZ_BPF_A2_BYTE2 0x22a3
  444. #define DSM_DEBUZZ_PORT_B0_BYTE0 0x22a5
  445. #define DSM_DEBUZZ_PORT_B0_BYTE1 0x22a6
  446. #define DSM_DEBUZZ_PORT_B0_BYTE2 0x22a7
  447. #define DSM_DEBUZZ_PORT_B1_BYTE0 0x22a9
  448. #define DSM_DEBUZZ_PORT_B1_BYTE1 0x22aa
  449. #define DSM_DEBUZZ_PORT_B1_BYTE2 0x22ab
  450. #define DSM_DEBUZZ_PORT_B2_BYTE0 0x22ad
  451. #define DSM_DEBUZZ_PORT_B2_BYTE1 0x22ae
  452. #define DSM_DEBUZZ_PORT_B2_BYTE2 0x22af
  453. #define DSM_DEBUZZ_PORT_A1_BYTE0 0x22b1
  454. #define DSM_DEBUZZ_PORT_A1_BYTE1 0x22b2
  455. #define DSM_DEBUZZ_PORT_A1_BYTE2 0x22b3
  456. #define DSM_DEBUZZ_PORT_A2_BYTE0 0x22b5
  457. #define DSM_DEBUZZ_PORT_A2_BYTE1 0x22b6
  458. #define DSM_DEBUZZ_PORT_A2_BYTE2 0x22b7
  459. #define DSM_DEBUZZ_NOTCH_B0_BYTE0 0x22b9
  460. #define DSM_DEBUZZ_NOTCH_B0_BYTE1 0x22ba
  461. #define DSM_DEBUZZ_NOTCH_B0_BYTE2 0x22bb
  462. #define DSM_DEBUZZ_NOTCH_B1_BYTE0 0x22bd
  463. #define DSM_DEBUZZ_NOTCH_B1_BYTE1 0x22be
  464. #define DSM_DEBUZZ_NOTCH_B1_BYTE2 0x22bf
  465. #define DSM_DEBUZZ_NOTCH_B2_BYTE0 0x22c1
  466. #define DSM_DEBUZZ_NOTCH_B2_BYTE1 0x22c2
  467. #define DSM_DEBUZZ_NOTCH_B2_BYTE2 0x22c3
  468. #define DSM_DEBUZZ_NOTCH_A1_BYTE0 0x22c5
  469. #define DSM_DEBUZZ_NOTCH_A1_BYTE1 0x22c6
  470. #define DSM_DEBUZZ_NOTCH_A1_BYTE2 0x22c7
  471. #define DSM_DEBUZZ_NOTCH_A2_BYTE0 0x22c9
  472. #define DSM_DEBUZZ_NOTCH_A2_BYTE1 0x22ca
  473. #define DSM_DEBUZZ_NOTCH_A2_BYTE2 0x22cb
  474. #define DSM_THERMAL_BQ_B0_BYTE0 0x22cd
  475. #define DSM_THERMAL_BQ_B0_BYTE1 0x22ce
  476. #define DSM_THERMAL_BQ_B0_BYTE2 0x22cf
  477. #define DSM_THERMAL_BQ_B1_BYTE0 0x22d1
  478. #define DSM_THERMAL_BQ_B1_BYTE1 0x22d2
  479. #define DSM_THERMAL_BQ_B1_BYTE2 0x22d3
  480. #define DSM_THERMAL_BQ_B2_BYTE0 0x22d5
  481. #define DSM_THERMAL_BQ_B2_BYTE1 0x22d6
  482. #define DSM_THERMAL_BQ_B2_BYTE2 0x22d7
  483. #define DSM_THERMAL_BQ_A1_BYTE0 0x22d9
  484. #define DSM_THERMAL_BQ_A1_BYTE1 0x22da
  485. #define DSM_THERMAL_BQ_A1_BYTE2 0x22db
  486. #define DSM_THERMAL_BQ_A2_BYTE0 0x22dd
  487. #define DSM_THERMAL_BQ_A2_BYTE1 0x22de
  488. #define DSM_THERMAL_BQ_A2_BYTE2 0x22df
  489. #define DSM_WBDRC_FILT1_B0_BYTE0 0x22e1
  490. #define DSM_WBDRC_FILT1_B0_BYTE1 0x22e2
  491. #define DSM_WBDRC_FILT1_B0_BYTE2 0x22e3
  492. #define DSM_WBDRC_FILT1_B1_BYTE0 0x22e5
  493. #define DSM_WBDRC_FILT1_B1_BYTE1 0x22e6
  494. #define DSM_WBDRC_FILT1_B1_BYTE2 0x22e7
  495. #define DSM_WBDRC_FILT1_B2_BYTE0 0x22e9
  496. #define DSM_WBDRC_FILT1_B2_BYTE1 0x22ea
  497. #define DSM_WBDRC_FILT1_B2_BYTE2 0x22eb
  498. #define DSM_WBDRC_FILT1_A1_BYTE0 0x22ed
  499. #define DSM_WBDRC_FILT1_A1_BYTE1 0x22ee
  500. #define DSM_WBDRC_FILT1_A1_BYTE2 0x22ef
  501. #define DSM_WBDRC_FILT1_A2_BYTE0 0x22f1
  502. #define DSM_WBDRC_FILT1_A2_BYTE1 0x22f2
  503. #define DSM_WBDRC_FILT1_A2_BYTE2 0x22f3
  504. #define DSM_WBDRC_FILT2_B0_BYTE0 0x22f5
  505. #define DSM_WBDRC_FILT2_B0_BYTE1 0x22f6
  506. #define DSM_WBDRC_FILT2_B0_BYTE2 0x22f7
  507. #define DSM_WBDRC_FILT2_B1_BYTE0 0x22f9
  508. #define DSM_WBDRC_FILT2_B1_BYTE1 0x22fa
  509. #define DSM_WBDRC_FILT2_B1_BYTE2 0x22fb
  510. #define DSM_WBDRC_FILT2_B2_BYTE0 0x22fd
  511. #define DSM_WBDRC_FILT2_B2_BYTE1 0x22fe
  512. #define DSM_WBDRC_FILT2_B2_BYTE2 0x22ff
  513. #define DSM_WBDRC_FILT2_A1_BYTE0 0x2301
  514. #define DSM_WBDRC_FILT2_A1_BYTE1 0x2302
  515. #define DSM_WBDRC_FILT2_A1_BYTE2 0x2303
  516. #define DSM_WBDRC_FILT2_A2_BYTE0 0x2305
  517. #define DSM_WBDRC_FILT2_A2_BYTE1 0x2306
  518. #define DSM_WBDRC_FILT2_A2_BYTE2 0x2307
  519. #define DSM_PPR_RELEASE_TIME_BYTE0 0x2309
  520. #define DSM_PPR_RELEASE_TIME_BYTE1 0x230a
  521. #define DSM_PPR_RELEASE_TIME_BYTE2 0x230b
  522. #define DSM_PPR_ATTACK_TIME_BYTE0 0x230d
  523. #define DSM_PPR_ATTACK_TIME_BYTE1 0x230e
  524. #define DSM_PPR_ATTACK_TIME_BYTE2 0x230f
  525. #define DSM_DEBUZZER_RELEASE_TIME_BYTE0 0x2311
  526. #define DSM_DEBUZZER_RELEASE_TIME_BYTE1 0x2312
  527. #define DSM_DEBUZZER_RELEASE_TIME_BYTE2 0x2313
  528. #define DSM_DEBUZZER_ATTACK_TIME_BYTE0 0x2315
  529. #define DSM_DEBUZZER_ATTACK_TIME_BYTE1 0x2316
  530. #define DSM_DEBUZZER_ATTACK_TIME_BYTE2 0x2317
  531. #define DSMIG_WB_DRC_RELEASE_TIME_1 0x2380
  532. #define DSMIG_WB_DRC_RELEASE_TIME_2 0x2381
  533. #define DSMIG_WB_DRC_ATTACK_TIME_1 0x2382
  534. #define DSMIG_WB_DRC_ATTACK_TIME_2 0x2383
  535. #define DSMIG_WB_DRC_COMPRESSION_RATIO 0x2384
  536. #define DSMIG_WB_DRC_COMPRESSION_THRESHOLD 0x2385
  537. #define DSMIG_WB_DRC_MAKEUPGAIN 0x2386
  538. #define DSMIG_WB_DRC_NOISE_GATE_THRESHOLD 0x2387
  539. #define DSMIG_WBDRC_HPF_ENABLE 0x2388
  540. #define DSMIG_WB_DRC_TEST_SMOOTHER_OUT_EN 0x2389
  541. #define DSMIG_PPR_THRESHOLD 0x238b
  542. #define DSM_STEREO_BASS_CHANNEL_SELECT 0x238d
  543. #define DSM_TPROT_THRESHOLD_BYTE0 0x238e
  544. #define DSM_TPROT_THRESHOLD_BYTE1 0x238f
  545. #define DSM_TPROT_ROOM_TEMPERATURE_BYTE0 0x2390
  546. #define DSM_TPROT_ROOM_TEMPERATURE_BYTE1 0x2391
  547. #define DSM_TPROT_RECIP_RDC_ROOM_BYTE0 0x2392
  548. #define DSM_TPROT_RECIP_RDC_ROOM_BYTE1 0x2393
  549. #define DSM_TPROT_RECIP_RDC_ROOM_BYTE2 0x2394
  550. #define DSM_TPROT_RECIP_TCONST_BYTE0 0x2395
  551. #define DSM_TPROT_RECIP_TCONST_BYTE1 0x2396
  552. #define DSM_TPROT_RECIP_TCONST_BYTE2 0x2397
  553. #define DSM_THERMAL_ATTENUATION_SETTINGS 0x2398
  554. #define DSM_THERMAL_PILOT_TONE_ATTENUATION 0x2399
  555. #define DSM_TPROT_PG_TEMP_THRESH_BYTE0 0x239a
  556. #define DSM_TPROT_PG_TEMP_THRESH_BYTE1 0x239b
  557. #define THERMAL_RDC_RD_BACK_BYTE1 0x239c
  558. #define THERMAL_RDC_RD_BACK_BYTE0 0x239d
  559. #define THERMAL_COILTEMP_RD_BACK_BYTE1 0x239e
  560. #define THERMAL_COILTEMP_RD_BACK_BYTE0 0x239f
  561. #define DSMIG_DEBUZZER_THRESHOLD 0x23b5
  562. #define DSMIG_DEBUZZER_ALPHA_COEF_TEST_ONLY 0x23b6
  563. #define DSM_VOL_ENA 0x23b9
  564. #define DSM_VOL_CTRL 0x23ba
  565. #define DSMIG_EN 0x23e0
  566. #define MAX98390_R23E1_DSP_GLOBAL_EN 0x23e1
  567. #define DSM_THERMAL_GAIN 0x23f0
  568. #define DSM_PPR_GAIN 0x23f1
  569. #define DSM_DBZ_GAIN 0x23f2
  570. #define DSM_WBDRC_GAIN 0x23f3
  571. #define MAX98390_R23FF_GLOBAL_EN 0x23FF
  572. #define MAX98390_R24FF_REV_ID 0x24FF
  573. /* MAX98390_R2021_PCM_RX_SRC_1 */
  574. #define MAX98390_PCM_RX_CH_SRC_SHIFT (0)
  575. #define MAX98390_PCM_RX_CH_SRC_BASS_SHIFT (4)
  576. /* MAX98390_R2022_PCM_TX_SRC_1 */
  577. #define MAX98390_PCM_TX_CH_SRC_A_V_SHIFT (0)
  578. #define MAX98390_PCM_TX_CH_SRC_A_I_SHIFT (4)
  579. /* MAX98390_R2024_PCM_DATA_FMT_CFG */
  580. #define MAX98390_PCM_MODE_CFG_FORMAT_MASK (0x7 << 3)
  581. #define MAX98390_PCM_MODE_CFG_FORMAT_SHIFT (3)
  582. #define MAX98390_PCM_TX_CH_INTERLEAVE_MASK (0x1 << 2)
  583. #define MAX98390_PCM_FORMAT_I2S (0x0 << 0)
  584. #define MAX98390_PCM_FORMAT_LJ (0x1 << 0)
  585. #define MAX98390_PCM_FORMAT_TDM_MODE0 (0x3 << 0)
  586. #define MAX98390_PCM_FORMAT_TDM_MODE1 (0x4 << 0)
  587. #define MAX98390_PCM_FORMAT_TDM_MODE2 (0x5 << 0)
  588. #define MAX98390_PCM_MODE_CFG_CHANSZ_MASK (0x3 << 6)
  589. #define MAX98390_PCM_MODE_CFG_CHANSZ_16 (0x1 << 6)
  590. #define MAX98390_PCM_MODE_CFG_CHANSZ_24 (0x2 << 6)
  591. #define MAX98390_PCM_MODE_CFG_CHANSZ_32 (0x3 << 6)
  592. /* MAX98390_R2039_AMP_DSP_CFG */
  593. #define MAX98390_AMP_DSP_CFG_RMP_UP_SHIFT (4)
  594. #define MAX98390_AMP_DSP_CFG_RMP_DN_SHIFT (5)
  595. /* MAX98390_R203A_AMP_EN */
  596. #define MAX98390_R203A_AMP_EN_SHIFT (0)
  597. /* MAX98390_PCM_MASTER_MODE */
  598. #define MAX98390_PCM_MASTER_MODE_MASK (0x3 << 0)
  599. #define MAX98390_PCM_MASTER_MODE_SLAVE (0x0 << 0)
  600. #define MAX98390_PCM_MASTER_MODE_MASTER (0x3 << 0)
  601. #define MAX98390_PCM_MASTER_MODE_MCLK_MASK (0xF << 2)
  602. #define MAX98390_PCM_MASTER_MODE_MCLK_RATE_SHIFT (2)
  603. /* PCM_CLK_SETUP */
  604. #define MAX98390_PCM_MODE_CFG_PCM_BCLKEDGE (0x1 << 2)
  605. #define MAX98390_PCM_CLK_SETUP_BSEL_MASK (0xF << 0)
  606. /* PCM_SR_SETUP */
  607. #define MAX98390_PCM_SR_SET1_SR_MASK (0xF << 0)
  608. #define MAX98390_PCM_SR_SET1_SR_8000 (0x0 << 0)
  609. #define MAX98390_PCM_SR_SET1_SR_11025 (0x1 << 0)
  610. #define MAX98390_PCM_SR_SET1_SR_12000 (0x2 << 0)
  611. #define MAX98390_PCM_SR_SET1_SR_16000 (0x3 << 0)
  612. #define MAX98390_PCM_SR_SET1_SR_22050 (0x4 << 0)
  613. #define MAX98390_PCM_SR_SET1_SR_24000 (0x5 << 0)
  614. #define MAX98390_PCM_SR_SET1_SR_32000 (0x6 << 0)
  615. #define MAX98390_PCM_SR_SET1_SR_44100 (0x7 << 0)
  616. #define MAX98390_PCM_SR_SET1_SR_48000 (0x8 << 0)
  617. /* PCM_TO_SPK_MONO_MIX_1 */
  618. #define MAX98390_PCM_TO_SPK_MONOMIX_CFG_MASK (0x3 << 6)
  619. #define MAX98390_PCM_TO_SPK_MONOMIX_CFG_SHIFT (6)
  620. #define MAX98390_PCM_TO_SPK_CH0_SRC_MASK (0xF << 0)
  621. #define MAX98390_PCM_TO_SPK_CH1_SRC_MASK (0xF << 4)
  622. /* MAX98390_BOOST_CTRL3 */
  623. #define MAX98390_BOOST_CLK_PHASE_CFG_SHIFT (2)
  624. /* SOFT_RESET */
  625. #define MAX98390_SOFT_RESET_MASK (0x1 << 0)
  626. #define MAX98390_GLOBAL_EN_MASK (0x1 << 0)
  627. #define MAX98390_AMP_EN_MASK (0x1 << 0)
  628. /* DSM register offset */
  629. #define MAX98390_DSM_PAYLOAD_OFFSET 16
  630. #define MAX98390_DSM_PARAM_MAX_SIZE 1024
  631. #define MAX98390_DSM_PARAM_MIN_SIZE 670
  632. struct max98390_priv {
  633. struct regmap *regmap;
  634. unsigned int sysclk;
  635. unsigned int master;
  636. unsigned int tdm_mode;
  637. unsigned int ref_rdc_value;
  638. unsigned int ambient_temp_value;
  639. };
  640. #endif