csirs.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  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 _CSIRS_H_
  13. #define _CSIRS_H_
  14. // Auto generated by dtools(see dtools.txt for its version).
  15. // Don't edit it manually!
  16. #define REG_CSIRS_BASE (0x18b00000)
  17. typedef volatile struct
  18. {
  19. uint32_t csi_start; // 0x00000000
  20. uint32_t csi_cfg_nxt; // 0x00000004
  21. uint32_t csi_ri_threshold_nxt; // 0x00000008
  22. uint32_t csi_code_index1_nxt; // 0x0000000c
  23. uint32_t csi_code_index2_nxt; // 0x00000010
  24. uint32_t csi_inten_nxt; // 0x00000014
  25. uint32_t csi_cinit1_nxt; // 0x00000018
  26. uint32_t csi_cinit2_nxt; // 0x0000001c
  27. uint32_t csi_intf; // 0x00000020
  28. uint32_t csi_sw_stop; // 0x00000024
  29. uint32_t csi_sw_stop_flag; // 0x00000028
  30. uint32_t csi_ri_rpt; // 0x0000002c
  31. uint32_t csi_pmi_rpt; // 0x00000030
  32. uint32_t csi_rx1_sig_rpt; // 0x00000034
  33. uint32_t csi_rx2_sig_rpt; // 0x00000038
  34. uint32_t csi_rx1_noise_rpt; // 0x0000003c
  35. uint32_t csi_rx2_noise_rpt; // 0x00000040
  36. uint32_t csi_cfg_cur; // 0x00000044
  37. uint32_t csi_ri_threshold_cur; // 0x00000048
  38. uint32_t csi_code_index1_cur; // 0x0000004c
  39. uint32_t csi_code_index2_cur; // 0x00000050
  40. uint32_t csi_inten_cur; // 0x00000054
  41. uint32_t csi_cinit1_cur; // 0x00000058
  42. uint32_t csi_cinit2_cur; // 0x0000005c
  43. uint32_t __96[8168]; // 0x00000060
  44. uint32_t rs_fh_mem1; // 0x00008000
  45. uint32_t __32772[1023]; // 0x00008004
  46. uint32_t rs_fh_mem2; // 0x00009000
  47. uint32_t __36868[1023]; // 0x00009004
  48. uint32_t hls_mem1; // 0x0000a000
  49. uint32_t __40964[2047]; // 0x0000a004
  50. uint32_t out_mem; // 0x0000c000
  51. } HWP_CSIRS_T;
  52. #define hwp_csirs ((HWP_CSIRS_T *)REG_ACCESS_ADDRESS(REG_CSIRS_BASE))
  53. // csi_start
  54. typedef union {
  55. uint32_t v;
  56. struct
  57. {
  58. uint32_t csi_en : 1; // [0]
  59. uint32_t dma_start_en : 1; // [1]
  60. uint32_t data_drive_en : 1; // [2]
  61. uint32_t __31_3 : 29; // [31:3]
  62. } b;
  63. } REG_CSIRS_CSI_START_T;
  64. // csi_cfg_nxt
  65. typedef union {
  66. uint32_t v;
  67. struct
  68. {
  69. uint32_t tx_num : 2; // [1:0]
  70. uint32_t sub_nrb : 4; // [5:2]
  71. uint32_t total_nrb : 7; // [12:6]
  72. uint32_t old_ri_ind : 1; // [13]
  73. uint32_t ri_en : 1; // [14]
  74. uint32_t pmi_en : 1; // [15]
  75. uint32_t ri_sel : 1; // [16]
  76. uint32_t sw_ri : 1; // [17]
  77. uint32_t ls_en : 1; // [18]
  78. uint32_t csi_crs_ind : 1; // [19]
  79. uint32_t fh_bit_sel : 5; // [24:20]
  80. uint32_t cp : 1; // [25]
  81. uint32_t __31_26 : 6; // [31:26]
  82. } b;
  83. } REG_CSIRS_CSI_CFG_NXT_T;
  84. // csi_ri_threshold_nxt
  85. typedef union {
  86. uint32_t v;
  87. struct
  88. {
  89. uint32_t th1_cfg : 15; // [14:0]
  90. uint32_t __15_15 : 1; // [15]
  91. uint32_t th2_cfg : 15; // [30:16]
  92. uint32_t __31_31 : 1; // [31]
  93. } b;
  94. } REG_CSIRS_CSI_RI_THRESHOLD_NXT_T;
  95. // csi_code_index1_nxt
  96. typedef union {
  97. uint32_t v;
  98. struct
  99. {
  100. uint32_t code_index1_mask1 : 16; // [15:0]
  101. uint32_t code_index1_mask2 : 16; // [31:16]
  102. } b;
  103. } REG_CSIRS_CSI_CODE_INDEX1_NXT_T;
  104. // csi_code_index2_nxt
  105. typedef union {
  106. uint32_t v;
  107. struct
  108. {
  109. uint32_t code_index2_mask1 : 16; // [15:0]
  110. uint32_t code_index2_mask2 : 16; // [31:16]
  111. } b;
  112. } REG_CSIRS_CSI_CODE_INDEX2_NXT_T;
  113. // csi_inten_nxt
  114. typedef union {
  115. uint32_t v;
  116. struct
  117. {
  118. uint32_t csi_inten : 1; // [0]
  119. uint32_t __3_1 : 3; // [3:1]
  120. uint32_t phy_factor : 4; // [7:4]
  121. uint32_t __31_8 : 24; // [31:8]
  122. } b;
  123. } REG_CSIRS_CSI_INTEN_NXT_T;
  124. // csi_cinit1_nxt
  125. typedef union {
  126. uint32_t v;
  127. struct
  128. {
  129. uint32_t cinit0 : 31; // [30:0]
  130. uint32_t __31_31 : 1; // [31]
  131. } b;
  132. } REG_CSIRS_CSI_CINIT1_NXT_T;
  133. // csi_cinit2_nxt
  134. typedef union {
  135. uint32_t v;
  136. struct
  137. {
  138. uint32_t cinit1 : 31; // [30:0]
  139. uint32_t __31_31 : 1; // [31]
  140. } b;
  141. } REG_CSIRS_CSI_CINIT2_NXT_T;
  142. // csi_intf
  143. typedef union {
  144. uint32_t v;
  145. struct
  146. {
  147. uint32_t csi_intf : 1; // [0], write clear
  148. uint32_t __3_1 : 3; // [3:1]
  149. uint32_t phy_factor : 4; // [7:4], write clear
  150. uint32_t __31_8 : 24; // [31:8]
  151. } b;
  152. } REG_CSIRS_CSI_INTF_T;
  153. // csi_sw_stop
  154. typedef union {
  155. uint32_t v;
  156. struct
  157. {
  158. uint32_t sw_stop_en : 1; // [0]
  159. uint32_t sw_pause_en : 1; // [1]
  160. uint32_t sw_pause_way : 1; // [2]
  161. uint32_t __31_3 : 29; // [31:3]
  162. } b;
  163. } REG_CSIRS_CSI_SW_STOP_T;
  164. // csi_sw_stop_flag
  165. typedef union {
  166. uint32_t v;
  167. struct
  168. {
  169. uint32_t sw_stop_flag : 1; // [0], write clear
  170. uint32_t sw_pause_flag : 1; // [1], write clear
  171. uint32_t __31_2 : 30; // [31:2]
  172. } b;
  173. } REG_CSIRS_CSI_SW_STOP_FLAG_T;
  174. // csi_ri_rpt
  175. typedef union {
  176. uint32_t v;
  177. struct
  178. {
  179. uint32_t ri_total_rpt : 1; // [0], read only
  180. uint32_t __31_1 : 31; // [31:1]
  181. } b;
  182. } REG_CSIRS_CSI_RI_RPT_T;
  183. // csi_pmi_rpt
  184. typedef union {
  185. uint32_t v;
  186. struct
  187. {
  188. uint32_t pmi_total_rpt : 8; // [7:0], read only
  189. uint32_t __31_8 : 24; // [31:8]
  190. } b;
  191. } REG_CSIRS_CSI_PMI_RPT_T;
  192. // csi_rx1_sig_rpt
  193. typedef union {
  194. uint32_t v;
  195. struct
  196. {
  197. uint32_t rx1_sig_rpt : 28; // [27:0], read only
  198. uint32_t __31_28 : 4; // [31:28]
  199. } b;
  200. } REG_CSIRS_CSI_RX1_SIG_RPT_T;
  201. // csi_rx2_sig_rpt
  202. typedef union {
  203. uint32_t v;
  204. struct
  205. {
  206. uint32_t rx2_sig_rpt : 28; // [27:0], read only
  207. uint32_t __31_28 : 4; // [31:28]
  208. } b;
  209. } REG_CSIRS_CSI_RX2_SIG_RPT_T;
  210. // csi_rx1_noise_rpt
  211. typedef union {
  212. uint32_t v;
  213. struct
  214. {
  215. uint32_t rx1_noise_rpt : 30; // [29:0], read only
  216. uint32_t __31_30 : 2; // [31:30]
  217. } b;
  218. } REG_CSIRS_CSI_RX1_NOISE_RPT_T;
  219. // csi_rx2_noise_rpt
  220. typedef union {
  221. uint32_t v;
  222. struct
  223. {
  224. uint32_t rx2_noise_rpt : 30; // [29:0], read only
  225. uint32_t __31_30 : 2; // [31:30]
  226. } b;
  227. } REG_CSIRS_CSI_RX2_NOISE_RPT_T;
  228. // csi_cfg_cur
  229. typedef union {
  230. uint32_t v;
  231. struct
  232. {
  233. uint32_t tx_num : 2; // [1:0]
  234. uint32_t sub_nrb : 4; // [5:2]
  235. uint32_t total_nrb : 7; // [12:6]
  236. uint32_t old_ri_ind : 1; // [13]
  237. uint32_t ri_en : 1; // [14]
  238. uint32_t pmi_en : 1; // [15]
  239. uint32_t ri_sel : 1; // [16]
  240. uint32_t sw_ri : 1; // [17]
  241. uint32_t ls_en : 1; // [18]
  242. uint32_t csi_crs_ind : 1; // [19]
  243. uint32_t fh_bit_sel : 5; // [24:20]
  244. uint32_t cp : 1; // [25]
  245. uint32_t __31_26 : 6; // [31:26]
  246. } b;
  247. } REG_CSIRS_CSI_CFG_CUR_T;
  248. // csi_ri_threshold_cur
  249. typedef union {
  250. uint32_t v;
  251. struct
  252. {
  253. uint32_t th1_cfg : 15; // [14:0]
  254. uint32_t __15_15 : 1; // [15]
  255. uint32_t th2_cfg : 15; // [30:16]
  256. uint32_t __31_31 : 1; // [31]
  257. } b;
  258. } REG_CSIRS_CSI_RI_THRESHOLD_CUR_T;
  259. // csi_code_index1_cur
  260. typedef union {
  261. uint32_t v;
  262. struct
  263. {
  264. uint32_t code_index1_mask1 : 16; // [15:0]
  265. uint32_t code_index1_mask2 : 16; // [31:16]
  266. } b;
  267. } REG_CSIRS_CSI_CODE_INDEX1_CUR_T;
  268. // csi_code_index2_cur
  269. typedef union {
  270. uint32_t v;
  271. struct
  272. {
  273. uint32_t code_index2_mask1 : 16; // [15:0]
  274. uint32_t code_index2_mask2 : 16; // [31:16]
  275. } b;
  276. } REG_CSIRS_CSI_CODE_INDEX2_CUR_T;
  277. // csi_inten_cur
  278. typedef union {
  279. uint32_t v;
  280. struct
  281. {
  282. uint32_t csi_inten : 1; // [0]
  283. uint32_t __31_1 : 31; // [31:1]
  284. } b;
  285. } REG_CSIRS_CSI_INTEN_CUR_T;
  286. // csi_cinit1_cur
  287. typedef union {
  288. uint32_t v;
  289. struct
  290. {
  291. uint32_t cinit0 : 31; // [30:0]
  292. uint32_t __31_31 : 1; // [31]
  293. } b;
  294. } REG_CSIRS_CSI_CINIT1_CUR_T;
  295. // csi_cinit2_cur
  296. typedef union {
  297. uint32_t v;
  298. struct
  299. {
  300. uint32_t cinit1 : 31; // [30:0]
  301. uint32_t __31_31 : 1; // [31]
  302. } b;
  303. } REG_CSIRS_CSI_CINIT2_CUR_T;
  304. // rs_fh_mem1
  305. typedef union {
  306. uint32_t v;
  307. struct
  308. {
  309. uint32_t __3_0 : 4; // [3:0]
  310. uint32_t rs_fh_mem1_2 : 12; // [15:4]
  311. uint32_t __19_16 : 4; // [19:16]
  312. uint32_t rs_fh_mem1_1 : 12; // [31:20]
  313. } b;
  314. } REG_CSIRS_RS_FH_MEM1_T;
  315. // rs_fh_mem2
  316. typedef union {
  317. uint32_t v;
  318. struct
  319. {
  320. uint32_t __3_0 : 4; // [3:0]
  321. uint32_t rs_fh_mem2_2 : 12; // [15:4]
  322. uint32_t __19_16 : 4; // [19:16]
  323. uint32_t rs_fh_mem2_1 : 12; // [31:20]
  324. } b;
  325. } REG_CSIRS_RS_FH_MEM2_T;
  326. // hls_mem1
  327. typedef union {
  328. uint32_t v;
  329. struct
  330. {
  331. uint32_t __3_0 : 4; // [3:0]
  332. uint32_t hls_mem1_2 : 12; // [15:4]
  333. uint32_t __19_16 : 4; // [19:16]
  334. uint32_t hls_mem1_1 : 12; // [31:20]
  335. } b;
  336. } REG_CSIRS_HLS_MEM1_T;
  337. // csi_start
  338. #define CSIRS_CSI_EN (1 << 0)
  339. #define CSIRS_DMA_START_EN (1 << 1)
  340. #define CSIRS_DATA_DRIVE_EN (1 << 2)
  341. // csi_cfg_nxt
  342. #define CSIRS_TX_NUM(n) (((n)&0x3) << 0)
  343. #define CSIRS_SUB_NRB(n) (((n)&0xf) << 2)
  344. #define CSIRS_TOTAL_NRB(n) (((n)&0x7f) << 6)
  345. #define CSIRS_OLD_RI_IND (1 << 13)
  346. #define CSIRS_RI_EN (1 << 14)
  347. #define CSIRS_PMI_EN (1 << 15)
  348. #define CSIRS_RI_SEL (1 << 16)
  349. #define CSIRS_SW_RI (1 << 17)
  350. #define CSIRS_LS_EN (1 << 18)
  351. #define CSIRS_CSI_CRS_IND (1 << 19)
  352. #define CSIRS_FH_BIT_SEL(n) (((n)&0x1f) << 20)
  353. #define CSIRS_CP (1 << 25)
  354. // csi_ri_threshold_nxt
  355. #define CSIRS_TH1_CFG(n) (((n)&0x7fff) << 0)
  356. #define CSIRS_TH2_CFG(n) (((n)&0x7fff) << 16)
  357. // csi_code_index1_nxt
  358. #define CSIRS_CODE_INDEX1_MASK1(n) (((n)&0xffff) << 0)
  359. #define CSIRS_CODE_INDEX1_MASK2(n) (((n)&0xffff) << 16)
  360. // csi_code_index2_nxt
  361. #define CSIRS_CODE_INDEX2_MASK1(n) (((n)&0xffff) << 0)
  362. #define CSIRS_CODE_INDEX2_MASK2(n) (((n)&0xffff) << 16)
  363. // csi_inten_nxt
  364. #define CSIRS_CSI_INTEN (1 << 0)
  365. #define CSIRS_PHY_FACTOR(n) (((n)&0xf) << 4)
  366. // csi_cinit1_nxt
  367. #define CSIRS_CINIT0(n) (((n)&0x7fffffff) << 0)
  368. // csi_cinit2_nxt
  369. #define CSIRS_CINIT1(n) (((n)&0x7fffffff) << 0)
  370. // csi_intf
  371. #define CSIRS_CSI_INTF (1 << 0)
  372. #define CSIRS_PHY_FACTOR(n) (((n)&0xf) << 4)
  373. // csi_sw_stop
  374. #define CSIRS_SW_STOP_EN (1 << 0)
  375. #define CSIRS_SW_PAUSE_EN (1 << 1)
  376. #define CSIRS_SW_PAUSE_WAY (1 << 2)
  377. // csi_sw_stop_flag
  378. #define CSIRS_SW_STOP_FLAG (1 << 0)
  379. #define CSIRS_SW_PAUSE_FLAG (1 << 1)
  380. // csi_ri_rpt
  381. #define CSIRS_RI_TOTAL_RPT (1 << 0)
  382. // csi_pmi_rpt
  383. #define CSIRS_PMI_TOTAL_RPT(n) (((n)&0xff) << 0)
  384. // csi_rx1_sig_rpt
  385. #define CSIRS_RX1_SIG_RPT(n) (((n)&0xfffffff) << 0)
  386. // csi_rx2_sig_rpt
  387. #define CSIRS_RX2_SIG_RPT(n) (((n)&0xfffffff) << 0)
  388. // csi_rx1_noise_rpt
  389. #define CSIRS_RX1_NOISE_RPT(n) (((n)&0x3fffffff) << 0)
  390. // csi_rx2_noise_rpt
  391. #define CSIRS_RX2_NOISE_RPT(n) (((n)&0x3fffffff) << 0)
  392. // csi_cfg_cur
  393. #define CSIRS_TX_NUM(n) (((n)&0x3) << 0)
  394. #define CSIRS_SUB_NRB(n) (((n)&0xf) << 2)
  395. #define CSIRS_TOTAL_NRB(n) (((n)&0x7f) << 6)
  396. #define CSIRS_OLD_RI_IND (1 << 13)
  397. #define CSIRS_RI_EN (1 << 14)
  398. #define CSIRS_PMI_EN (1 << 15)
  399. #define CSIRS_RI_SEL (1 << 16)
  400. #define CSIRS_SW_RI (1 << 17)
  401. #define CSIRS_LS_EN (1 << 18)
  402. #define CSIRS_CSI_CRS_IND (1 << 19)
  403. #define CSIRS_FH_BIT_SEL(n) (((n)&0x1f) << 20)
  404. #define CSIRS_CP (1 << 25)
  405. // csi_ri_threshold_cur
  406. #define CSIRS_TH1_CFG(n) (((n)&0x7fff) << 0)
  407. #define CSIRS_TH2_CFG(n) (((n)&0x7fff) << 16)
  408. // csi_code_index1_cur
  409. #define CSIRS_CODE_INDEX1_MASK1(n) (((n)&0xffff) << 0)
  410. #define CSIRS_CODE_INDEX1_MASK2(n) (((n)&0xffff) << 16)
  411. // csi_code_index2_cur
  412. #define CSIRS_CODE_INDEX2_MASK1(n) (((n)&0xffff) << 0)
  413. #define CSIRS_CODE_INDEX2_MASK2(n) (((n)&0xffff) << 16)
  414. // csi_inten_cur
  415. #define CSIRS_CSI_INTEN (1 << 0)
  416. // csi_cinit1_cur
  417. #define CSIRS_CINIT0(n) (((n)&0x7fffffff) << 0)
  418. // csi_cinit2_cur
  419. #define CSIRS_CINIT1(n) (((n)&0x7fffffff) << 0)
  420. // rs_fh_mem1
  421. #define CSIRS_RS_FH_MEM1_2(n) (((n)&0xfff) << 4)
  422. #define CSIRS_RS_FH_MEM1_1(n) (((n)&0xfff) << 20)
  423. // rs_fh_mem2
  424. #define CSIRS_RS_FH_MEM2_2(n) (((n)&0xfff) << 4)
  425. #define CSIRS_RS_FH_MEM2_1(n) (((n)&0xfff) << 20)
  426. // hls_mem1
  427. #define CSIRS_HLS_MEM1_2(n) (((n)&0xfff) << 4)
  428. #define CSIRS_HLS_MEM1_1(n) (((n)&0xfff) << 20)
  429. #endif // _CSIRS_H_