dlfft.h 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  1. /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
  2. * All rights reserved.
  3. *
  4. * This software is supplied "AS IS" without any warranties.
  5. * RDA assumes no responsibility or liability for the use of the software,
  6. * conveys no license or title under any patent, copyright, or mask work
  7. * right to the product. RDA reserves the right to make changes in the
  8. * software without notification. RDA also make no representation or
  9. * warranty that such application will be suitable for the specified use
  10. * without further testing or modification.
  11. */
  12. #ifndef _DLFFT_H_
  13. #define _DLFFT_H_
  14. // Auto generated by dtools(see dtools.txt for its version).
  15. // Don't edit it manually!
  16. #define REG_DLFFT_BASE (0x18a00000)
  17. typedef volatile struct
  18. {
  19. uint32_t dlfft_frame_config_next; // 0x00000000
  20. uint32_t cat1_rs_ctrl_next; // 0x00000004
  21. uint32_t cat1_csi_para_next; // 0x00000008
  22. uint32_t cat1_agc_next; // 0x0000000c
  23. uint32_t cat1_dlfft_ctrl_next; // 0x00000010
  24. uint32_t cat1_sys_config_next; // 0x00000014
  25. uint32_t cat1_fft_gate_next; // 0x00000018
  26. uint32_t catm_nb_sys_config_next; // 0x0000001c
  27. uint32_t catm_nb_rs_config_next; // 0x00000020
  28. uint32_t catm_nb_nbw_next; // 0x00000024
  29. uint32_t catm_agc_next; // 0x00000028
  30. uint32_t abis_config_next; // 0x0000002c
  31. uint32_t delay_next1; // 0x00000030
  32. uint32_t delay_next2; // 0x00000034
  33. uint32_t pb_next; // 0x00000038
  34. uint32_t noise_delta_next; // 0x0000003c
  35. uint32_t noise_agc_next; // 0x00000040
  36. uint32_t dlfft_mode_next; // 0x00000044
  37. uint32_t fft_lnum_next; // 0x00000048
  38. uint32_t dlfft_frame_config_curr; // 0x0000004c
  39. uint32_t cat1_rs_ctrl_curr; // 0x00000050
  40. uint32_t cat1_csi_para_curr; // 0x00000054
  41. uint32_t cat1_agc_curr; // 0x00000058
  42. uint32_t cat1_dlfft_ctrl_curr; // 0x0000005c
  43. uint32_t cat1_sys_config_curr; // 0x00000060
  44. uint32_t cat1_fft_gate_curr; // 0x00000064
  45. uint32_t catm_nb_sys_config_curr; // 0x00000068
  46. uint32_t catm_nb_rs_config_curr; // 0x0000006c
  47. uint32_t catm_nb_nbw_curr; // 0x00000070
  48. uint32_t catm_agc_curr; // 0x00000074
  49. uint32_t abis_config_curr; // 0x00000078
  50. uint32_t delay_curr1; // 0x0000007c
  51. uint32_t delay_curr2; // 0x00000080
  52. uint32_t pb_curr; // 0x00000084
  53. uint32_t noise_delta_curr; // 0x00000088
  54. uint32_t noise_agc_curr; // 0x0000008c
  55. uint32_t dlfft_mode_curr; // 0x00000090
  56. uint32_t fft_lnum_curr; // 0x00000094
  57. uint32_t dlfft_inten; // 0x00000098
  58. uint32_t catm_nb_fft_gate; // 0x0000009c
  59. uint32_t dlfft_start; // 0x000000a0
  60. uint32_t dlfft_intf; // 0x000000a4
  61. uint32_t ofdm_count; // 0x000000a8
  62. uint32_t master_card; // 0x000000ac
  63. uint32_t llr_out1; // 0x000000b0
  64. uint32_t llr_out2; // 0x000000b4
  65. uint32_t llr_out3; // 0x000000b8
  66. uint32_t crs_pow_max1; // 0x000000bc
  67. uint32_t crs_pow_agc1; // 0x000000c0
  68. uint32_t crs_pow_max2; // 0x000000c4
  69. uint32_t crs_pow_agc2; // 0x000000c8
  70. uint32_t crs_pow_max3; // 0x000000cc
  71. uint32_t crs_pow_agc3; // 0x000000d0
  72. uint32_t crs_pow_max4; // 0x000000d4
  73. uint32_t crs_pow_agc4; // 0x000000d8
  74. uint32_t crs_pow_max5; // 0x000000dc
  75. uint32_t crs_pow_agc5; // 0x000000e0
  76. uint32_t fsm_state; // 0x000000e4
  77. uint32_t txrx_norm_gene1; // 0x000000e8
  78. uint32_t txrx_norm_gene2; // 0x000000ec
  79. uint32_t txrx_soft_offset; // 0x000000f0
  80. uint32_t ofdm_assert; // 0x000000f4
  81. uint32_t fsm_state_assert; // 0x000000f8
  82. uint32_t abis_real_time_flag; // 0x000000fc
  83. } HWP_DLFFT_T;
  84. #define hwp_dlfft ((HWP_DLFFT_T *)REG_ACCESS_ADDRESS(REG_DLFFT_BASE))
  85. // dlfft_frame_config_next
  86. typedef union {
  87. uint32_t v;
  88. struct
  89. {
  90. uint32_t sub_frame_num_next : 4; // [3:0]
  91. uint32_t sys_frame_num_next : 10; // [13:4]
  92. uint32_t master_card_next : 1; // [14]
  93. uint32_t fft_dma_inten_next : 1; // [15]
  94. uint32_t dlfft_only_en_next : 1; // [16]
  95. uint32_t fft_norm_en_next : 1; // [17]
  96. uint32_t fft_norm_sel_next : 1; // [18]
  97. uint32_t crs_pow_ofdm0_next : 1; // [19]
  98. uint32_t __31_20 : 12; // [31:20]
  99. } b;
  100. } REG_DLFFT_DLFFT_FRAME_CONFIG_NEXT_T;
  101. // cat1_rs_ctrl_next
  102. typedef union {
  103. uint32_t v;
  104. struct
  105. {
  106. uint32_t uers_en_next : 1; // [0]
  107. uint32_t cellrs_en_next : 1; // [1]
  108. uint32_t ueport_sel_next : 1; // [2]
  109. uint32_t cellport_sel_next : 2; // [4:3]
  110. uint32_t cp_sel_next : 1; // [5]
  111. uint32_t cellid_next : 9; // [14:6]
  112. uint32_t mbms_en_next : 1; // [15]
  113. uint32_t mbms_mode_sel_next : 2; // [17:16]
  114. uint32_t cat1_crs_pow_ofdm0_next : 1; // [18]
  115. uint32_t crs_pow_index_next : 3; // [21:19]
  116. uint32_t __31_22 : 10; // [31:22]
  117. } b;
  118. } REG_DLFFT_CAT1_RS_CTRL_NEXT_T;
  119. // cat1_csi_para_next
  120. typedef union {
  121. uint32_t v;
  122. struct
  123. {
  124. uint32_t csirs_ofdm0_next : 4; // [3:0]
  125. uint32_t csirs_ofdm1_next : 4; // [7:4]
  126. uint32_t csirs_bitmap_next : 12; // [19:8]
  127. uint32_t __31_20 : 12; // [31:20]
  128. } b;
  129. } REG_DLFFT_CAT1_CSI_PARA_NEXT_T;
  130. // cat1_agc_next
  131. typedef union {
  132. uint32_t v;
  133. struct
  134. {
  135. uint32_t agc0_next : 10; // [9:0]
  136. uint32_t agc1_next : 10; // [19:10]
  137. uint32_t __31_20 : 12; // [31:20]
  138. } b;
  139. } REG_DLFFT_CAT1_AGC_NEXT_T;
  140. // cat1_dlfft_ctrl_next
  141. typedef union {
  142. uint32_t v;
  143. struct
  144. {
  145. uint32_t csirs_en_next : 1; // [0]
  146. uint32_t pbch_en_next : 1; // [1]
  147. uint32_t __31_2 : 30; // [31:2]
  148. } b;
  149. } REG_DLFFT_CAT1_DLFFT_CTRL_NEXT_T;
  150. // cat1_sys_config_next
  151. typedef union {
  152. uint32_t v;
  153. struct
  154. {
  155. uint32_t s_frame_config : 4; // [3:0]
  156. uint32_t mode_sel_next : 1; // [4]
  157. uint32_t up_down_config : 3; // [7:5]
  158. uint32_t prb_index_next : 3; // [10:8]
  159. uint32_t __31_11 : 21; // [31:11]
  160. } b;
  161. } REG_DLFFT_CAT1_SYS_CONFIG_NEXT_T;
  162. // cat1_fft_gate_next
  163. typedef union {
  164. uint32_t v;
  165. struct
  166. {
  167. uint32_t fft_gate_next : 13; // [12:0]
  168. uint32_t __31_13 : 19; // [31:13]
  169. } b;
  170. } REG_DLFFT_CAT1_FFT_GATE_NEXT_T;
  171. // catm_nb_sys_config_next
  172. typedef union {
  173. uint32_t v;
  174. struct
  175. {
  176. uint32_t s_frame_config_next : 4; // [3:0]
  177. uint32_t mode_sel_next : 1; // [4]
  178. uint32_t up_down_config_next : 3; // [7:5]
  179. uint32_t cp_sel_next : 1; // [8]
  180. uint32_t prb_index_next : 3; // [11:9]
  181. uint32_t __31_12 : 20; // [31:12]
  182. } b;
  183. } REG_DLFFT_CATM_NB_SYS_CONFIG_NEXT_T;
  184. // catm_nb_rs_config_next
  185. typedef union {
  186. uint32_t v;
  187. struct
  188. {
  189. uint32_t __0_0 : 1; // [0]
  190. uint32_t rsport_sel_next : 2; // [2:1]
  191. uint32_t id_value_next : 9; // [11:3]
  192. uint32_t crs_nrs_sel_next : 1; // [12]
  193. uint32_t crs_pow_index_next : 3; // [15:13]
  194. uint32_t __31_16 : 16; // [31:16]
  195. } b;
  196. } REG_DLFFT_CATM_NB_RS_CONFIG_NEXT_T;
  197. // catm_nb_nbw_next
  198. typedef union {
  199. uint32_t v;
  200. struct
  201. {
  202. uint32_t nbw_cover_zero_sel_next : 1; // [0]
  203. uint32_t __31_1 : 31; // [31:1]
  204. } b;
  205. } REG_DLFFT_CATM_NB_NBW_NEXT_T;
  206. // catm_agc_next
  207. typedef union {
  208. uint32_t v;
  209. struct
  210. {
  211. uint32_t catm_agc_next : 10; // [9:0]
  212. uint32_t __31_10 : 22; // [31:10]
  213. } b;
  214. } REG_DLFFT_CATM_AGC_NEXT_T;
  215. // abis_config_next
  216. typedef union {
  217. uint32_t v;
  218. struct
  219. {
  220. uint32_t cellid_neibour_next1 : 9; // [8:0]
  221. uint32_t cellid_neibour_next2 : 9; // [17:9]
  222. uint32_t nrb_neibour_next1 : 3; // [20:18]
  223. uint32_t nrb_neibour_next2 : 3; // [23:21]
  224. uint32_t txnum_neibour_next1 : 2; // [25:24]
  225. uint32_t txnum_neibour_next2 : 2; // [27:26]
  226. uint32_t num_neibour_next : 2; // [29:28]
  227. uint32_t ctcg_sel_next : 1; // [30]
  228. uint32_t frame_intra_sel_next : 1; // [31]
  229. } b;
  230. } REG_DLFFT_ABIS_CONFIG_NEXT_T;
  231. // delay_next1
  232. typedef union {
  233. uint32_t v;
  234. struct
  235. {
  236. uint32_t delay_next1 : 19; // [18:0]
  237. uint32_t __31_19 : 13; // [31:19]
  238. } b;
  239. } REG_DLFFT_DELAY_NEXT1_T;
  240. // delay_next2
  241. typedef union {
  242. uint32_t v;
  243. struct
  244. {
  245. uint32_t delay_next2 : 19; // [18:0]
  246. uint32_t __31_19 : 13; // [31:19]
  247. } b;
  248. } REG_DLFFT_DELAY_NEXT2_T;
  249. // pb_next
  250. typedef union {
  251. uint32_t v;
  252. struct
  253. {
  254. uint32_t pb_next : 2; // [1:0]
  255. uint32_t __3_2 : 2; // [3:2]
  256. uint32_t abis_start_ofdm_next : 4; // [7:4]
  257. uint32_t abis_llr_shift_modify_next : 5; // [12:8]
  258. uint32_t __31_13 : 19; // [31:13]
  259. } b;
  260. } REG_DLFFT_PB_NEXT_T;
  261. // noise_agc_next
  262. typedef union {
  263. uint32_t v;
  264. struct
  265. {
  266. uint32_t noise_agc_next : 10; // [9:0]
  267. uint32_t __31_10 : 22; // [31:10]
  268. } b;
  269. } REG_DLFFT_NOISE_AGC_NEXT_T;
  270. // dlfft_mode_next
  271. typedef union {
  272. uint32_t v;
  273. struct
  274. {
  275. uint32_t dlfft_mode_sel_next : 2; // [1:0]
  276. uint32_t soft_irt_en_next : 1; // [2]
  277. uint32_t crs_pow_clr_next : 1; // [3]
  278. uint32_t dlfft_info_next : 10; // [13:4]
  279. uint32_t dlfft_info_sel_next : 1; // [14]
  280. uint32_t __31_15 : 17; // [31:15]
  281. } b;
  282. } REG_DLFFT_DLFFT_MODE_NEXT_T;
  283. // fft_lnum_next
  284. typedef union {
  285. uint32_t v;
  286. struct
  287. {
  288. uint32_t fft_lnum1_next : 2; // [1:0]
  289. uint32_t fft_lnum2_next : 2; // [3:2]
  290. uint32_t fft_lnum3_next : 2; // [5:4]
  291. uint32_t fft_lnum4_next : 2; // [7:6]
  292. uint32_t fft_lnum5_next : 2; // [9:8]
  293. uint32_t fft_lnum6_next : 2; // [11:10]
  294. uint32_t fft_lnum7_next : 2; // [13:12]
  295. uint32_t fft_lnum8_next : 2; // [15:14]
  296. uint32_t fft_lnum9_next : 2; // [17:16]
  297. uint32_t fft_lnum10_next : 2; // [19:18]
  298. uint32_t fft_lnum11_next : 2; // [21:20]
  299. uint32_t __31_22 : 10; // [31:22]
  300. } b;
  301. } REG_DLFFT_FFT_LNUM_NEXT_T;
  302. // dlfft_frame_config_curr
  303. typedef union {
  304. uint32_t v;
  305. struct
  306. {
  307. uint32_t sub_frame_num_curr : 4; // [3:0], read only
  308. uint32_t sys_frame_num_curr : 10; // [13:4], read only
  309. uint32_t master_card_curr : 1; // [14], read only
  310. uint32_t fft_dma_inten_curr : 1; // [15], read only
  311. uint32_t dlfft_only_en_curr : 1; // [16], read only
  312. uint32_t fft_norm_en_curr : 1; // [17], read only
  313. uint32_t fft_norm_sel_curr : 1; // [18], read only
  314. uint32_t crs_pow_ofdm0_curr : 1; // [19], read only
  315. uint32_t __31_20 : 12; // [31:20]
  316. } b;
  317. } REG_DLFFT_DLFFT_FRAME_CONFIG_CURR_T;
  318. // cat1_rs_ctrl_curr
  319. typedef union {
  320. uint32_t v;
  321. struct
  322. {
  323. uint32_t uers_en_curr : 1; // [0], read only
  324. uint32_t cellrs_en_curr : 1; // [1], read only
  325. uint32_t ueport_sel_curr : 1; // [2], read only
  326. uint32_t cellport_sel_curr : 2; // [4:3], read only
  327. uint32_t cp_sel_curr : 1; // [5], read only
  328. uint32_t cellid_curr : 9; // [14:6], read only
  329. uint32_t mbms_en_curr : 1; // [15], read only
  330. uint32_t mbms_mode_sel_curr : 2; // [17:16], read only
  331. uint32_t crs_pow_ofdm0_curr : 1; // [18], read only
  332. uint32_t crs_pow_index_curr : 3; // [21:19], read only
  333. uint32_t __31_22 : 10; // [31:22]
  334. } b;
  335. } REG_DLFFT_CAT1_RS_CTRL_CURR_T;
  336. // cat1_csi_para_curr
  337. typedef union {
  338. uint32_t v;
  339. struct
  340. {
  341. uint32_t csirs_ofdm0_curr : 4; // [3:0], read only
  342. uint32_t csirs_ofdm1_curr : 4; // [7:4], read only
  343. uint32_t csirs_bitmap_curr : 12; // [19:8], read only
  344. uint32_t __31_20 : 12; // [31:20]
  345. } b;
  346. } REG_DLFFT_CAT1_CSI_PARA_CURR_T;
  347. // cat1_agc_curr
  348. typedef union {
  349. uint32_t v;
  350. struct
  351. {
  352. uint32_t agc0_curr : 10; // [9:0], read only
  353. uint32_t agc1_curr : 10; // [19:10], read only
  354. uint32_t __31_20 : 12; // [31:20]
  355. } b;
  356. } REG_DLFFT_CAT1_AGC_CURR_T;
  357. // cat1_dlfft_ctrl_curr
  358. typedef union {
  359. uint32_t v;
  360. struct
  361. {
  362. uint32_t csirs_en_curr : 1; // [0], read only
  363. uint32_t pbch_en_curr : 1; // [1], read only
  364. uint32_t __31_2 : 30; // [31:2]
  365. } b;
  366. } REG_DLFFT_CAT1_DLFFT_CTRL_CURR_T;
  367. // cat1_sys_config_curr
  368. typedef union {
  369. uint32_t v;
  370. struct
  371. {
  372. uint32_t s_frame_config : 4; // [3:0], read only
  373. uint32_t mode_sel_curr : 1; // [4], read only
  374. uint32_t up_down_config : 3; // [7:5], read only
  375. uint32_t prb_index_curr : 3; // [10:8], read only
  376. uint32_t __31_11 : 21; // [31:11]
  377. } b;
  378. } REG_DLFFT_CAT1_SYS_CONFIG_CURR_T;
  379. // cat1_fft_gate_curr
  380. typedef union {
  381. uint32_t v;
  382. struct
  383. {
  384. uint32_t fft_gate_curr : 13; // [12:0], read only
  385. uint32_t __31_13 : 19; // [31:13]
  386. } b;
  387. } REG_DLFFT_CAT1_FFT_GATE_CURR_T;
  388. // catm_nb_sys_config_curr
  389. typedef union {
  390. uint32_t v;
  391. struct
  392. {
  393. uint32_t s_frame_config_curr : 4; // [3:0], read only
  394. uint32_t mode_sel_curr : 1; // [4], read only
  395. uint32_t up_down_config_curr : 3; // [7:5], read only
  396. uint32_t cp_sel_curr : 1; // [8], read only
  397. uint32_t prb_index_curr : 3; // [11:9], read only
  398. uint32_t __31_12 : 20; // [31:12]
  399. } b;
  400. } REG_DLFFT_CATM_NB_SYS_CONFIG_CURR_T;
  401. // catm_nb_rs_config_curr
  402. typedef union {
  403. uint32_t v;
  404. struct
  405. {
  406. uint32_t __0_0 : 1; // [0]
  407. uint32_t rsport_sel_curr : 2; // [2:1], read only
  408. uint32_t id_value_curr : 9; // [11:3], read only
  409. uint32_t crs_nrs_sel_curr : 1; // [12], read only
  410. uint32_t crs_pow_index_curr : 3; // [15:13], read only
  411. uint32_t __31_16 : 16; // [31:16]
  412. } b;
  413. } REG_DLFFT_CATM_NB_RS_CONFIG_CURR_T;
  414. // catm_nb_nbw_curr
  415. typedef union {
  416. uint32_t v;
  417. struct
  418. {
  419. uint32_t nbw_cover_zero_sel_curr : 1; // [0], read only
  420. uint32_t __31_1 : 31; // [31:1]
  421. } b;
  422. } REG_DLFFT_CATM_NB_NBW_CURR_T;
  423. // catm_agc_curr
  424. typedef union {
  425. uint32_t v;
  426. struct
  427. {
  428. uint32_t catm_agc_curr : 10; // [9:0], read only
  429. uint32_t __31_10 : 22; // [31:10]
  430. } b;
  431. } REG_DLFFT_CATM_AGC_CURR_T;
  432. // abis_config_curr
  433. typedef union {
  434. uint32_t v;
  435. struct
  436. {
  437. uint32_t cellid_neibour_curr1 : 9; // [8:0], read only
  438. uint32_t cellid_neibour_curr2 : 9; // [17:9], read only
  439. uint32_t nrb_neibour_curr1 : 3; // [20:18], read only
  440. uint32_t nrb_neibour_curr2 : 3; // [23:21], read only
  441. uint32_t txnum_neibour_curr1 : 2; // [25:24], read only
  442. uint32_t txnum_neibour_curr2 : 2; // [27:26], read only
  443. uint32_t num_neibour_curr : 2; // [29:28], read only
  444. uint32_t ctcg_sel_curr : 1; // [30], read only
  445. uint32_t frame_intra_sel_curr : 1; // [31], read only
  446. } b;
  447. } REG_DLFFT_ABIS_CONFIG_CURR_T;
  448. // delay_curr1
  449. typedef union {
  450. uint32_t v;
  451. struct
  452. {
  453. uint32_t delay_curr1 : 19; // [18:0], read only
  454. uint32_t __31_19 : 13; // [31:19]
  455. } b;
  456. } REG_DLFFT_DELAY_CURR1_T;
  457. // delay_curr2
  458. typedef union {
  459. uint32_t v;
  460. struct
  461. {
  462. uint32_t delay_curr2 : 19; // [18:0], read only
  463. uint32_t __31_19 : 13; // [31:19]
  464. } b;
  465. } REG_DLFFT_DELAY_CURR2_T;
  466. // pb_curr
  467. typedef union {
  468. uint32_t v;
  469. struct
  470. {
  471. uint32_t pb_curr : 2; // [1:0], read only
  472. uint32_t __3_2 : 2; // [3:2]
  473. uint32_t abis_start_ofdm_curr : 4; // [7:4], read only
  474. uint32_t abis_llr_shift_modify_curr : 5; // [12:8], read only
  475. uint32_t __31_13 : 19; // [31:13]
  476. } b;
  477. } REG_DLFFT_PB_CURR_T;
  478. // noise_agc_curr
  479. typedef union {
  480. uint32_t v;
  481. struct
  482. {
  483. uint32_t noise_agc_curr : 10; // [9:0], read only
  484. uint32_t __31_10 : 22; // [31:10]
  485. } b;
  486. } REG_DLFFT_NOISE_AGC_CURR_T;
  487. // dlfft_mode_curr
  488. typedef union {
  489. uint32_t v;
  490. struct
  491. {
  492. uint32_t dlfft_mode_sel_curr : 2; // [1:0], read only
  493. uint32_t soft_irt_en_curr : 1; // [2], read only
  494. uint32_t crs_pow_clr_curr : 1; // [3], read only
  495. uint32_t dlfft_info_curr : 10; // [13:4], read only
  496. uint32_t dlfft_info_sel_curr : 1; // [14], read only
  497. uint32_t __31_15 : 17; // [31:15]
  498. } b;
  499. } REG_DLFFT_DLFFT_MODE_CURR_T;
  500. // fft_lnum_curr
  501. typedef union {
  502. uint32_t v;
  503. struct
  504. {
  505. uint32_t fft_lnum1_curr : 2; // [1:0], read only
  506. uint32_t fft_lnum2_curr : 2; // [3:2], read only
  507. uint32_t fft_lnum3_curr : 2; // [5:4], read only
  508. uint32_t fft_lnum4_curr : 2; // [7:6], read only
  509. uint32_t fft_lnum5_curr : 2; // [9:8], read only
  510. uint32_t fft_lnum6_curr : 2; // [11:10], read only
  511. uint32_t fft_lnum7_curr : 2; // [13:12], read only
  512. uint32_t fft_lnum8_curr : 2; // [15:14], read only
  513. uint32_t fft_lnum9_curr : 2; // [17:16], read only
  514. uint32_t fft_lnum10_curr : 2; // [19:18], read only
  515. uint32_t fft_lnum11_curr : 2; // [21:20], read only
  516. uint32_t __31_22 : 10; // [31:22]
  517. } b;
  518. } REG_DLFFT_FFT_LNUM_CURR_T;
  519. // dlfft_inten
  520. typedef union {
  521. uint32_t v;
  522. struct
  523. {
  524. uint32_t fft_dma_inten : 1; // [0]
  525. uint32_t fft_core_inten : 1; // [1]
  526. uint32_t fft_err_inten : 1; // [2]
  527. uint32_t axi_dma_inten : 1; // [3]
  528. uint32_t rf_over_inten : 1; // [4]
  529. uint32_t rf_short_inten : 1; // [5]
  530. uint32_t rf_abnormal_down_inten : 1; // [6]
  531. uint32_t rf_abnormal_up_inten : 1; // [7]
  532. uint32_t rf_nodata_inten : 1; // [8]
  533. uint32_t rxcapt_err_inten : 1; // [9]
  534. uint32_t iddet_err_inten : 1; // [10]
  535. uint32_t spare2_err_inten : 1; // [11]
  536. uint32_t spare3_err_inten : 1; // [12]
  537. uint32_t __31_13 : 19; // [31:13]
  538. } b;
  539. } REG_DLFFT_DLFFT_INTEN_T;
  540. // catm_nb_fft_gate
  541. typedef union {
  542. uint32_t v;
  543. struct
  544. {
  545. uint32_t fft_gate : 13; // [12:0]
  546. uint32_t __31_13 : 19; // [31:13]
  547. } b;
  548. } REG_DLFFT_CATM_NB_FFT_GATE_T;
  549. // dlfft_start
  550. typedef union {
  551. uint32_t v;
  552. struct
  553. {
  554. uint32_t cat1_dlfft_start : 1; // [0]
  555. uint32_t catm_nb_dlfft_start : 1; // [1]
  556. uint32_t __31_2 : 30; // [31:2]
  557. } b;
  558. } REG_DLFFT_DLFFT_START_T;
  559. // dlfft_intf
  560. typedef union {
  561. uint32_t v;
  562. struct
  563. {
  564. uint32_t fft_dma_intf : 1; // [0], write clear
  565. uint32_t fft_core_intf : 1; // [1], write clear
  566. uint32_t txrx_rd_errf : 1; // [2], write clear
  567. uint32_t ldtc_wr_errf : 1; // [3], write clear
  568. uint32_t mmse_wr_errf : 1; // [4], write clear
  569. uint32_t csi_wr_errf : 1; // [5], write clear
  570. uint32_t axi_dma_intf : 1; // [6], write clear
  571. uint32_t rf_over_errf : 1; // [7], write clear
  572. uint32_t rf_short_errf : 1; // [8], write clear
  573. uint32_t rf_abnormal_down_errf : 1; // [9], write clear
  574. uint32_t rf_abnormal_up_errf : 1; // [10], write clear
  575. uint32_t coeff2ldtc1_errf : 1; // [11], write clear
  576. uint32_t coeff2ldtc_errf : 1; // [12], write clear
  577. uint32_t sd_rd_errf : 1; // [13], write clear
  578. uint32_t rf_nodata_errf : 1; // [14], write clear
  579. uint32_t measpwr_debug_errf : 1; // [15], write clear
  580. uint32_t rxcapt_errf : 1; // [16], write clear
  581. uint32_t iddet_errf : 1; // [17], write clear
  582. uint32_t spare2_errf : 1; // [18], write clear
  583. uint32_t spare3_errf : 1; // [19], write clear
  584. uint32_t __31_20 : 12; // [31:20]
  585. } b;
  586. } REG_DLFFT_DLFFT_INTF_T;
  587. // ofdm_count
  588. typedef union {
  589. uint32_t v;
  590. struct
  591. {
  592. uint32_t ofdm_count : 4; // [3:0], read only
  593. uint32_t __31_4 : 28; // [31:4]
  594. } b;
  595. } REG_DLFFT_OFDM_COUNT_T;
  596. // master_card
  597. typedef union {
  598. uint32_t v;
  599. struct
  600. {
  601. uint32_t master_card_out : 1; // [0], read only
  602. uint32_t dlfft_info_out1 : 10; // [10:1], read only
  603. uint32_t dlfft_info_out2 : 10; // [20:11], read only
  604. uint32_t __31_21 : 11; // [31:21]
  605. } b;
  606. } REG_DLFFT_MASTER_CARD_T;
  607. // llr_out1
  608. typedef union {
  609. uint32_t v;
  610. struct
  611. {
  612. uint32_t llr_out1 : 4; // [3:0], read only
  613. uint32_t __31_4 : 28; // [31:4]
  614. } b;
  615. } REG_DLFFT_LLR_OUT1_T;
  616. // llr_out2
  617. typedef union {
  618. uint32_t v;
  619. struct
  620. {
  621. uint32_t llr_out2 : 4; // [3:0], read only
  622. uint32_t __31_4 : 28; // [31:4]
  623. } b;
  624. } REG_DLFFT_LLR_OUT2_T;
  625. // llr_out3
  626. typedef union {
  627. uint32_t v;
  628. struct
  629. {
  630. uint32_t llr_out3 : 4; // [3:0], read only
  631. uint32_t __31_4 : 28; // [31:4]
  632. } b;
  633. } REG_DLFFT_LLR_OUT3_T;
  634. // crs_pow_agc1
  635. typedef union {
  636. uint32_t v;
  637. struct
  638. {
  639. uint32_t crs_pow_agc1 : 10; // [9:0], read only
  640. uint32_t __31_10 : 22; // [31:10]
  641. } b;
  642. } REG_DLFFT_CRS_POW_AGC1_T;
  643. // crs_pow_agc2
  644. typedef union {
  645. uint32_t v;
  646. struct
  647. {
  648. uint32_t crs_pow_agc2 : 10; // [9:0], read only
  649. uint32_t __31_10 : 22; // [31:10]
  650. } b;
  651. } REG_DLFFT_CRS_POW_AGC2_T;
  652. // crs_pow_agc3
  653. typedef union {
  654. uint32_t v;
  655. struct
  656. {
  657. uint32_t crs_pow_agc3 : 10; // [9:0], read only
  658. uint32_t __31_10 : 22; // [31:10]
  659. } b;
  660. } REG_DLFFT_CRS_POW_AGC3_T;
  661. // crs_pow_agc4
  662. typedef union {
  663. uint32_t v;
  664. struct
  665. {
  666. uint32_t crs_pow_agc4 : 10; // [9:0], read only
  667. uint32_t __31_10 : 22; // [31:10]
  668. } b;
  669. } REG_DLFFT_CRS_POW_AGC4_T;
  670. // crs_pow_agc5
  671. typedef union {
  672. uint32_t v;
  673. struct
  674. {
  675. uint32_t crs_pow_agc5 : 10; // [9:0], read only
  676. uint32_t __31_10 : 22; // [31:10]
  677. } b;
  678. } REG_DLFFT_CRS_POW_AGC5_T;
  679. // txrx_norm_gene1
  680. typedef union {
  681. uint32_t v;
  682. struct
  683. {
  684. uint32_t ofdm0_norm_gene : 4; // [3:0], read only
  685. uint32_t ofdm1_norm_gene : 4; // [7:4], read only
  686. uint32_t ofdm2_norm_gene : 4; // [11:8], read only
  687. uint32_t ofdm3_norm_gene : 4; // [15:12], read only
  688. uint32_t ofdm4_norm_gene : 4; // [19:16], read only
  689. uint32_t ofdm5_norm_gene : 4; // [23:20], read only
  690. uint32_t ofdm6_norm_gene : 4; // [27:24], read only
  691. uint32_t ofdm7_norm_gene : 4; // [31:28], read only
  692. } b;
  693. } REG_DLFFT_TXRX_NORM_GENE1_T;
  694. // txrx_norm_gene2
  695. typedef union {
  696. uint32_t v;
  697. struct
  698. {
  699. uint32_t ofdm8_norm_gene : 4; // [3:0], read only
  700. uint32_t ofdm9_norm_gene : 4; // [7:4], read only
  701. uint32_t ofdm10_norm_gene : 4; // [11:8], read only
  702. uint32_t ofdm11_norm_gene : 4; // [15:12], read only
  703. uint32_t ofdm12_norm_gene : 4; // [19:16], read only
  704. uint32_t ofdm13_norm_gene : 4; // [23:20], read only
  705. uint32_t __31_24 : 8; // [31:24]
  706. } b;
  707. } REG_DLFFT_TXRX_NORM_GENE2_T;
  708. // txrx_soft_offset
  709. typedef union {
  710. uint32_t v;
  711. struct
  712. {
  713. uint32_t txrx_soft_offset0 : 5; // [4:0], read only
  714. uint32_t txrx_soft_offset1 : 5; // [9:5], read only
  715. uint32_t __31_10 : 22; // [31:10]
  716. } b;
  717. } REG_DLFFT_TXRX_SOFT_OFFSET_T;
  718. // ofdm_assert
  719. typedef union {
  720. uint32_t v;
  721. struct
  722. {
  723. uint32_t ofdm_assert : 4; // [3:0], read only
  724. uint32_t txrx_enable_assert : 1; // [4], read only
  725. uint32_t __31_5 : 27; // [31:5]
  726. } b;
  727. } REG_DLFFT_OFDM_ASSERT_T;
  728. // abis_real_time_flag
  729. typedef union {
  730. uint32_t v;
  731. struct
  732. {
  733. uint32_t abis_real_time_flag1 : 1; // [0], read only
  734. uint32_t abis_real_time_flag2 : 1; // [1], read only
  735. uint32_t abis_real_time_flag3 : 1; // [2], read only
  736. uint32_t __31_3 : 29; // [31:3]
  737. } b;
  738. } REG_DLFFT_ABIS_REAL_TIME_FLAG_T;
  739. // dlfft_frame_config_next
  740. #define DLFFT_SUB_FRAME_NUM_NEXT(n) (((n)&0xf) << 0)
  741. #define DLFFT_SYS_FRAME_NUM_NEXT(n) (((n)&0x3ff) << 4)
  742. #define DLFFT_MASTER_CARD_NEXT (1 << 14)
  743. #define DLFFT_FFT_DMA_INTEN_NEXT (1 << 15)
  744. #define DLFFT_DLFFT_ONLY_EN_NEXT (1 << 16)
  745. #define DLFFT_FFT_NORM_EN_NEXT (1 << 17)
  746. #define DLFFT_FFT_NORM_SEL_NEXT (1 << 18)
  747. #define DLFFT_CRS_POW_OFDM0_NEXT (1 << 19)
  748. // cat1_rs_ctrl_next
  749. #define DLFFT_UERS_EN_NEXT (1 << 0)
  750. #define DLFFT_CELLRS_EN_NEXT (1 << 1)
  751. #define DLFFT_UEPORT_SEL_NEXT (1 << 2)
  752. #define DLFFT_CELLPORT_SEL_NEXT(n) (((n)&0x3) << 3)
  753. #define DLFFT_CAT1_RS_CTRL_NEXT_CP_SEL_NEXT (1 << 5)
  754. #define DLFFT_CELLID_NEXT(n) (((n)&0x1ff) << 6)
  755. #define DLFFT_MBMS_EN_NEXT (1 << 15)
  756. #define DLFFT_MBMS_MODE_SEL_NEXT(n) (((n)&0x3) << 16)
  757. #define DLFFT_CAT1_CRS_POW_OFDM0_NEXT (1 << 18)
  758. #define DLFFT_CAT1_RS_CTRL_NEXT_CRS_POW_INDEX_NEXT(n) (((n)&0x7) << 19)
  759. // cat1_csi_para_next
  760. #define DLFFT_CSIRS_OFDM0_NEXT(n) (((n)&0xf) << 0)
  761. #define DLFFT_CSIRS_OFDM1_NEXT(n) (((n)&0xf) << 4)
  762. #define DLFFT_CSIRS_BITMAP_NEXT(n) (((n)&0xfff) << 8)
  763. // cat1_agc_next
  764. #define DLFFT_AGC0_NEXT(n) (((n)&0x3ff) << 0)
  765. #define DLFFT_AGC1_NEXT(n) (((n)&0x3ff) << 10)
  766. // cat1_dlfft_ctrl_next
  767. #define DLFFT_CSIRS_EN_NEXT (1 << 0)
  768. #define DLFFT_PBCH_EN_NEXT (1 << 1)
  769. // cat1_sys_config_next
  770. #define DLFFT_S_FRAME_CONFIG(n) (((n)&0xf) << 0)
  771. #define DLFFT_MODE_SEL_NEXT (1 << 4)
  772. #define DLFFT_UP_DOWN_CONFIG(n) (((n)&0x7) << 5)
  773. #define DLFFT_CAT1_SYS_CONFIG_NEXT_PRB_INDEX_NEXT(n) (((n)&0x7) << 8)
  774. // cat1_fft_gate_next
  775. #define DLFFT_FFT_GATE_NEXT(n) (((n)&0x1fff) << 0)
  776. // catm_nb_sys_config_next
  777. #define DLFFT_S_FRAME_CONFIG_NEXT(n) (((n)&0xf) << 0)
  778. #define DLFFT_MODE_SEL_NEXT (1 << 4)
  779. #define DLFFT_UP_DOWN_CONFIG_NEXT(n) (((n)&0x7) << 5)
  780. #define DLFFT_CATM_NB_SYS_CONFIG_NEXT_CP_SEL_NEXT (1 << 8)
  781. #define DLFFT_CATM_NB_SYS_CONFIG_NEXT_PRB_INDEX_NEXT(n) (((n)&0x7) << 9)
  782. // catm_nb_rs_config_next
  783. #define DLFFT_RSPORT_SEL_NEXT(n) (((n)&0x3) << 1)
  784. #define DLFFT_ID_VALUE_NEXT(n) (((n)&0x1ff) << 3)
  785. #define DLFFT_CRS_NRS_SEL_NEXT (1 << 12)
  786. #define DLFFT_CATM_NB_RS_CONFIG_NEXT_CRS_POW_INDEX_NEXT(n) (((n)&0x7) << 13)
  787. // catm_nb_nbw_next
  788. #define DLFFT_NBW_COVER_ZERO_SEL_NEXT (1 << 0)
  789. // catm_agc_next
  790. #define DLFFT_CATM_AGC_NEXT(n) (((n)&0x3ff) << 0)
  791. // abis_config_next
  792. #define DLFFT_CELLID_NEIBOUR_NEXT1(n) (((n)&0x1ff) << 0)
  793. #define DLFFT_CELLID_NEIBOUR_NEXT2(n) (((n)&0x1ff) << 9)
  794. #define DLFFT_NRB_NEIBOUR_NEXT1(n) (((n)&0x7) << 18)
  795. #define DLFFT_NRB_NEIBOUR_NEXT2(n) (((n)&0x7) << 21)
  796. #define DLFFT_TXNUM_NEIBOUR_NEXT1(n) (((n)&0x3) << 24)
  797. #define DLFFT_TXNUM_NEIBOUR_NEXT2(n) (((n)&0x3) << 26)
  798. #define DLFFT_NUM_NEIBOUR_NEXT(n) (((n)&0x3) << 28)
  799. #define DLFFT_CTCG_SEL_NEXT (1 << 30)
  800. #define DLFFT_FRAME_INTRA_SEL_NEXT (1 << 31)
  801. // delay_next1
  802. #define DLFFT_DELAY_NEXT1(n) (((n)&0x7ffff) << 0)
  803. // delay_next2
  804. #define DLFFT_DELAY_NEXT2(n) (((n)&0x7ffff) << 0)
  805. // pb_next
  806. #define DLFFT_PB_NEXT(n) (((n)&0x3) << 0)
  807. #define DLFFT_ABIS_START_OFDM_NEXT(n) (((n)&0xf) << 4)
  808. #define DLFFT_ABIS_LLR_SHIFT_MODIFY_NEXT(n) (((n)&0x1f) << 8)
  809. // noise_agc_next
  810. #define DLFFT_NOISE_AGC_NEXT(n) (((n)&0x3ff) << 0)
  811. // dlfft_mode_next
  812. #define DLFFT_DLFFT_MODE_SEL_NEXT(n) (((n)&0x3) << 0)
  813. #define DLFFT_SOFT_IRT_EN_NEXT (1 << 2)
  814. #define DLFFT_CRS_POW_CLR_NEXT (1 << 3)
  815. #define DLFFT_DLFFT_INFO_NEXT(n) (((n)&0x3ff) << 4)
  816. #define DLFFT_DLFFT_INFO_SEL_NEXT (1 << 14)
  817. // fft_lnum_next
  818. #define DLFFT_FFT_LNUM1_NEXT(n) (((n)&0x3) << 0)
  819. #define DLFFT_FFT_LNUM2_NEXT(n) (((n)&0x3) << 2)
  820. #define DLFFT_FFT_LNUM3_NEXT(n) (((n)&0x3) << 4)
  821. #define DLFFT_FFT_LNUM4_NEXT(n) (((n)&0x3) << 6)
  822. #define DLFFT_FFT_LNUM5_NEXT(n) (((n)&0x3) << 8)
  823. #define DLFFT_FFT_LNUM6_NEXT(n) (((n)&0x3) << 10)
  824. #define DLFFT_FFT_LNUM7_NEXT(n) (((n)&0x3) << 12)
  825. #define DLFFT_FFT_LNUM8_NEXT(n) (((n)&0x3) << 14)
  826. #define DLFFT_FFT_LNUM9_NEXT(n) (((n)&0x3) << 16)
  827. #define DLFFT_FFT_LNUM10_NEXT(n) (((n)&0x3) << 18)
  828. #define DLFFT_FFT_LNUM11_NEXT(n) (((n)&0x3) << 20)
  829. // dlfft_frame_config_curr
  830. #define DLFFT_SUB_FRAME_NUM_CURR(n) (((n)&0xf) << 0)
  831. #define DLFFT_SYS_FRAME_NUM_CURR(n) (((n)&0x3ff) << 4)
  832. #define DLFFT_MASTER_CARD_CURR (1 << 14)
  833. #define DLFFT_FFT_DMA_INTEN_CURR (1 << 15)
  834. #define DLFFT_DLFFT_ONLY_EN_CURR (1 << 16)
  835. #define DLFFT_FFT_NORM_EN_CURR (1 << 17)
  836. #define DLFFT_FFT_NORM_SEL_CURR (1 << 18)
  837. #define DLFFT_DLFFT_FRAME_CONFIG_CURR_CRS_POW_OFDM0_CURR (1 << 19)
  838. // cat1_rs_ctrl_curr
  839. #define DLFFT_UERS_EN_CURR (1 << 0)
  840. #define DLFFT_CELLRS_EN_CURR (1 << 1)
  841. #define DLFFT_UEPORT_SEL_CURR (1 << 2)
  842. #define DLFFT_CELLPORT_SEL_CURR(n) (((n)&0x3) << 3)
  843. #define DLFFT_CAT1_RS_CTRL_CURR_CP_SEL_CURR (1 << 5)
  844. #define DLFFT_CELLID_CURR(n) (((n)&0x1ff) << 6)
  845. #define DLFFT_MBMS_EN_CURR (1 << 15)
  846. #define DLFFT_MBMS_MODE_SEL_CURR(n) (((n)&0x3) << 16)
  847. #define DLFFT_CAT1_RS_CTRL_CURR_CRS_POW_OFDM0_CURR (1 << 18)
  848. #define DLFFT_CAT1_RS_CTRL_CURR_CRS_POW_INDEX_CURR(n) (((n)&0x7) << 19)
  849. // cat1_csi_para_curr
  850. #define DLFFT_CSIRS_OFDM0_CURR(n) (((n)&0xf) << 0)
  851. #define DLFFT_CSIRS_OFDM1_CURR(n) (((n)&0xf) << 4)
  852. #define DLFFT_CSIRS_BITMAP_CURR(n) (((n)&0xfff) << 8)
  853. // cat1_agc_curr
  854. #define DLFFT_AGC0_CURR(n) (((n)&0x3ff) << 0)
  855. #define DLFFT_AGC1_CURR(n) (((n)&0x3ff) << 10)
  856. // cat1_dlfft_ctrl_curr
  857. #define DLFFT_CSIRS_EN_CURR (1 << 0)
  858. #define DLFFT_PBCH_EN_CURR (1 << 1)
  859. // cat1_sys_config_curr
  860. #define DLFFT_S_FRAME_CONFIG(n) (((n)&0xf) << 0)
  861. #define DLFFT_MODE_SEL_CURR (1 << 4)
  862. #define DLFFT_UP_DOWN_CONFIG(n) (((n)&0x7) << 5)
  863. #define DLFFT_CAT1_SYS_CONFIG_CURR_PRB_INDEX_CURR(n) (((n)&0x7) << 8)
  864. // cat1_fft_gate_curr
  865. #define DLFFT_FFT_GATE_CURR(n) (((n)&0x1fff) << 0)
  866. // catm_nb_sys_config_curr
  867. #define DLFFT_S_FRAME_CONFIG_CURR(n) (((n)&0xf) << 0)
  868. #define DLFFT_MODE_SEL_CURR (1 << 4)
  869. #define DLFFT_UP_DOWN_CONFIG_CURR(n) (((n)&0x7) << 5)
  870. #define DLFFT_CATM_NB_SYS_CONFIG_CURR_CP_SEL_CURR (1 << 8)
  871. #define DLFFT_CATM_NB_SYS_CONFIG_CURR_PRB_INDEX_CURR(n) (((n)&0x7) << 9)
  872. // catm_nb_rs_config_curr
  873. #define DLFFT_RSPORT_SEL_CURR(n) (((n)&0x3) << 1)
  874. #define DLFFT_ID_VALUE_CURR(n) (((n)&0x1ff) << 3)
  875. #define DLFFT_CRS_NRS_SEL_CURR (1 << 12)
  876. #define DLFFT_CATM_NB_RS_CONFIG_CURR_CRS_POW_INDEX_CURR(n) (((n)&0x7) << 13)
  877. // catm_nb_nbw_curr
  878. #define DLFFT_NBW_COVER_ZERO_SEL_CURR (1 << 0)
  879. // catm_agc_curr
  880. #define DLFFT_CATM_AGC_CURR(n) (((n)&0x3ff) << 0)
  881. // abis_config_curr
  882. #define DLFFT_CELLID_NEIBOUR_CURR1(n) (((n)&0x1ff) << 0)
  883. #define DLFFT_CELLID_NEIBOUR_CURR2(n) (((n)&0x1ff) << 9)
  884. #define DLFFT_NRB_NEIBOUR_CURR1(n) (((n)&0x7) << 18)
  885. #define DLFFT_NRB_NEIBOUR_CURR2(n) (((n)&0x7) << 21)
  886. #define DLFFT_TXNUM_NEIBOUR_CURR1(n) (((n)&0x3) << 24)
  887. #define DLFFT_TXNUM_NEIBOUR_CURR2(n) (((n)&0x3) << 26)
  888. #define DLFFT_NUM_NEIBOUR_CURR(n) (((n)&0x3) << 28)
  889. #define DLFFT_CTCG_SEL_CURR (1 << 30)
  890. #define DLFFT_FRAME_INTRA_SEL_CURR (1 << 31)
  891. // delay_curr1
  892. #define DLFFT_DELAY_CURR1(n) (((n)&0x7ffff) << 0)
  893. // delay_curr2
  894. #define DLFFT_DELAY_CURR2(n) (((n)&0x7ffff) << 0)
  895. // pb_curr
  896. #define DLFFT_PB_CURR(n) (((n)&0x3) << 0)
  897. #define DLFFT_ABIS_START_OFDM_CURR(n) (((n)&0xf) << 4)
  898. #define DLFFT_ABIS_LLR_SHIFT_MODIFY_CURR(n) (((n)&0x1f) << 8)
  899. // noise_agc_curr
  900. #define DLFFT_NOISE_AGC_CURR(n) (((n)&0x3ff) << 0)
  901. // dlfft_mode_curr
  902. #define DLFFT_DLFFT_MODE_SEL_CURR(n) (((n)&0x3) << 0)
  903. #define DLFFT_SOFT_IRT_EN_CURR (1 << 2)
  904. #define DLFFT_CRS_POW_CLR_CURR (1 << 3)
  905. #define DLFFT_DLFFT_INFO_CURR(n) (((n)&0x3ff) << 4)
  906. #define DLFFT_DLFFT_INFO_SEL_CURR (1 << 14)
  907. // fft_lnum_curr
  908. #define DLFFT_FFT_LNUM1_CURR(n) (((n)&0x3) << 0)
  909. #define DLFFT_FFT_LNUM2_CURR(n) (((n)&0x3) << 2)
  910. #define DLFFT_FFT_LNUM3_CURR(n) (((n)&0x3) << 4)
  911. #define DLFFT_FFT_LNUM4_CURR(n) (((n)&0x3) << 6)
  912. #define DLFFT_FFT_LNUM5_CURR(n) (((n)&0x3) << 8)
  913. #define DLFFT_FFT_LNUM6_CURR(n) (((n)&0x3) << 10)
  914. #define DLFFT_FFT_LNUM7_CURR(n) (((n)&0x3) << 12)
  915. #define DLFFT_FFT_LNUM8_CURR(n) (((n)&0x3) << 14)
  916. #define DLFFT_FFT_LNUM9_CURR(n) (((n)&0x3) << 16)
  917. #define DLFFT_FFT_LNUM10_CURR(n) (((n)&0x3) << 18)
  918. #define DLFFT_FFT_LNUM11_CURR(n) (((n)&0x3) << 20)
  919. // dlfft_inten
  920. #define DLFFT_FFT_DMA_INTEN (1 << 0)
  921. #define DLFFT_FFT_CORE_INTEN (1 << 1)
  922. #define DLFFT_FFT_ERR_INTEN (1 << 2)
  923. #define DLFFT_AXI_DMA_INTEN (1 << 3)
  924. #define DLFFT_RF_OVER_INTEN (1 << 4)
  925. #define DLFFT_RF_SHORT_INTEN (1 << 5)
  926. #define DLFFT_RF_ABNORMAL_DOWN_INTEN (1 << 6)
  927. #define DLFFT_RF_ABNORMAL_UP_INTEN (1 << 7)
  928. #define DLFFT_RF_NODATA_INTEN (1 << 8)
  929. #define DLFFT_RXCAPT_ERR_INTEN (1 << 9)
  930. #define DLFFT_IDDET_ERR_INTEN (1 << 10)
  931. #define DLFFT_SPARE2_ERR_INTEN (1 << 11)
  932. #define DLFFT_SPARE3_ERR_INTEN (1 << 12)
  933. // catm_nb_fft_gate
  934. #define DLFFT_FFT_GATE(n) (((n)&0x1fff) << 0)
  935. // dlfft_start
  936. #define DLFFT_CAT1_DLFFT_START (1 << 0)
  937. #define DLFFT_CATM_NB_DLFFT_START (1 << 1)
  938. // dlfft_intf
  939. #define DLFFT_FFT_DMA_INTF (1 << 0)
  940. #define DLFFT_FFT_CORE_INTF (1 << 1)
  941. #define DLFFT_TXRX_RD_ERRF (1 << 2)
  942. #define DLFFT_LDTC_WR_ERRF (1 << 3)
  943. #define DLFFT_MMSE_WR_ERRF (1 << 4)
  944. #define DLFFT_CSI_WR_ERRF (1 << 5)
  945. #define DLFFT_AXI_DMA_INTF (1 << 6)
  946. #define DLFFT_RF_OVER_ERRF (1 << 7)
  947. #define DLFFT_RF_SHORT_ERRF (1 << 8)
  948. #define DLFFT_RF_ABNORMAL_DOWN_ERRF (1 << 9)
  949. #define DLFFT_RF_ABNORMAL_UP_ERRF (1 << 10)
  950. #define DLFFT_COEFF2LDTC1_ERRF (1 << 11)
  951. #define DLFFT_COEFF2LDTC_ERRF (1 << 12)
  952. #define DLFFT_SD_RD_ERRF (1 << 13)
  953. #define DLFFT_RF_NODATA_ERRF (1 << 14)
  954. #define DLFFT_MEASPWR_DEBUG_ERRF (1 << 15)
  955. #define DLFFT_RXCAPT_ERRF (1 << 16)
  956. #define DLFFT_IDDET_ERRF (1 << 17)
  957. #define DLFFT_SPARE2_ERRF (1 << 18)
  958. #define DLFFT_SPARE3_ERRF (1 << 19)
  959. // ofdm_count
  960. #define DLFFT_OFDM_COUNT(n) (((n)&0xf) << 0)
  961. // master_card
  962. #define DLFFT_MASTER_CARD_OUT (1 << 0)
  963. #define DLFFT_DLFFT_INFO_OUT1(n) (((n)&0x3ff) << 1)
  964. #define DLFFT_DLFFT_INFO_OUT2(n) (((n)&0x3ff) << 11)
  965. // llr_out1
  966. #define DLFFT_LLR_OUT1(n) (((n)&0xf) << 0)
  967. // llr_out2
  968. #define DLFFT_LLR_OUT2(n) (((n)&0xf) << 0)
  969. // llr_out3
  970. #define DLFFT_LLR_OUT3(n) (((n)&0xf) << 0)
  971. // crs_pow_agc1
  972. #define DLFFT_CRS_POW_AGC1(n) (((n)&0x3ff) << 0)
  973. // crs_pow_agc2
  974. #define DLFFT_CRS_POW_AGC2(n) (((n)&0x3ff) << 0)
  975. // crs_pow_agc3
  976. #define DLFFT_CRS_POW_AGC3(n) (((n)&0x3ff) << 0)
  977. // crs_pow_agc4
  978. #define DLFFT_CRS_POW_AGC4(n) (((n)&0x3ff) << 0)
  979. // crs_pow_agc5
  980. #define DLFFT_CRS_POW_AGC5(n) (((n)&0x3ff) << 0)
  981. // txrx_norm_gene1
  982. #define DLFFT_OFDM0_NORM_GENE(n) (((n)&0xf) << 0)
  983. #define DLFFT_OFDM1_NORM_GENE(n) (((n)&0xf) << 4)
  984. #define DLFFT_OFDM2_NORM_GENE(n) (((n)&0xf) << 8)
  985. #define DLFFT_OFDM3_NORM_GENE(n) (((n)&0xf) << 12)
  986. #define DLFFT_OFDM4_NORM_GENE(n) (((n)&0xf) << 16)
  987. #define DLFFT_OFDM5_NORM_GENE(n) (((n)&0xf) << 20)
  988. #define DLFFT_OFDM6_NORM_GENE(n) (((n)&0xf) << 24)
  989. #define DLFFT_OFDM7_NORM_GENE(n) (((n)&0xf) << 28)
  990. // txrx_norm_gene2
  991. #define DLFFT_OFDM8_NORM_GENE(n) (((n)&0xf) << 0)
  992. #define DLFFT_OFDM9_NORM_GENE(n) (((n)&0xf) << 4)
  993. #define DLFFT_OFDM10_NORM_GENE(n) (((n)&0xf) << 8)
  994. #define DLFFT_OFDM11_NORM_GENE(n) (((n)&0xf) << 12)
  995. #define DLFFT_OFDM12_NORM_GENE(n) (((n)&0xf) << 16)
  996. #define DLFFT_OFDM13_NORM_GENE(n) (((n)&0xf) << 20)
  997. // txrx_soft_offset
  998. #define DLFFT_TXRX_SOFT_OFFSET0(n) (((n)&0x1f) << 0)
  999. #define DLFFT_TXRX_SOFT_OFFSET1(n) (((n)&0x1f) << 5)
  1000. // ofdm_assert
  1001. #define DLFFT_OFDM_ASSERT(n) (((n)&0xf) << 0)
  1002. #define DLFFT_TXRX_ENABLE_ASSERT (1 << 4)
  1003. // abis_real_time_flag
  1004. #define DLFFT_ABIS_REAL_TIME_FLAG1 (1 << 0)
  1005. #define DLFFT_ABIS_REAL_TIME_FLAG2 (1 << 1)
  1006. #define DLFFT_ABIS_REAL_TIME_FLAG3 (1 << 2)
  1007. #endif // _DLFFT_H_