slv_fw_ap_ifc.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  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 _SLV_FW_AP_IFC_H_
  13. #define _SLV_FW_AP_IFC_H_
  14. // Auto generated by dtools(see dtools.txt for its version).
  15. // Don't edit it manually!
  16. #define REG_SLV_FW_AP_IFC_BASE (0x51321000)
  17. typedef volatile struct
  18. {
  19. uint32_t port0_default_address_0; // 0x00000000
  20. uint32_t port_int_en; // 0x00000004
  21. uint32_t port_int_clr; // 0x00000008
  22. uint32_t port_int_raw; // 0x0000000c
  23. uint32_t port_int_fin; // 0x00000010
  24. uint32_t rd_sec_0; // 0x00000014
  25. uint32_t wr_sec_0; // 0x00000018
  26. uint32_t id0_first_addr_0; // 0x0000001c
  27. uint32_t id0_last_addr_0; // 0x00000020
  28. uint32_t id0_mstid_0; // 0x00000024
  29. uint32_t id0_mstid_1; // 0x00000028
  30. uint32_t id0_mstid_2; // 0x0000002c
  31. uint32_t id0_mstid_3; // 0x00000030
  32. uint32_t id0_mstid_4; // 0x00000034
  33. uint32_t id0_mstid_5; // 0x00000038
  34. uint32_t id0_mstid_6; // 0x0000003c
  35. uint32_t id0_mstid_7; // 0x00000040
  36. uint32_t id1_first_addr_0; // 0x00000044
  37. uint32_t id1_last_addr_0; // 0x00000048
  38. uint32_t id1_mstid_0; // 0x0000004c
  39. uint32_t id1_mstid_1; // 0x00000050
  40. uint32_t id1_mstid_2; // 0x00000054
  41. uint32_t id1_mstid_3; // 0x00000058
  42. uint32_t id1_mstid_4; // 0x0000005c
  43. uint32_t id1_mstid_5; // 0x00000060
  44. uint32_t id1_mstid_6; // 0x00000064
  45. uint32_t id1_mstid_7; // 0x00000068
  46. uint32_t id2_first_addr_0; // 0x0000006c
  47. uint32_t id2_last_addr_0; // 0x00000070
  48. uint32_t id2_mstid_0; // 0x00000074
  49. uint32_t id2_mstid_1; // 0x00000078
  50. uint32_t id2_mstid_2; // 0x0000007c
  51. uint32_t id2_mstid_3; // 0x00000080
  52. uint32_t id2_mstid_4; // 0x00000084
  53. uint32_t id2_mstid_5; // 0x00000088
  54. uint32_t id2_mstid_6; // 0x0000008c
  55. uint32_t id2_mstid_7; // 0x00000090
  56. uint32_t id3_first_addr_0; // 0x00000094
  57. uint32_t id3_last_addr_0; // 0x00000098
  58. uint32_t id3_mstid_0; // 0x0000009c
  59. uint32_t id3_mstid_1; // 0x000000a0
  60. uint32_t id3_mstid_2; // 0x000000a4
  61. uint32_t id3_mstid_3; // 0x000000a8
  62. uint32_t id3_mstid_4; // 0x000000ac
  63. uint32_t id3_mstid_5; // 0x000000b0
  64. uint32_t id3_mstid_6; // 0x000000b4
  65. uint32_t id3_mstid_7; // 0x000000b8
  66. uint32_t id4_first_addr_0; // 0x000000bc
  67. uint32_t id4_last_addr_0; // 0x000000c0
  68. uint32_t id4_mstid_0; // 0x000000c4
  69. uint32_t id4_mstid_1; // 0x000000c8
  70. uint32_t id4_mstid_2; // 0x000000cc
  71. uint32_t id4_mstid_3; // 0x000000d0
  72. uint32_t id4_mstid_4; // 0x000000d4
  73. uint32_t id4_mstid_5; // 0x000000d8
  74. uint32_t id4_mstid_6; // 0x000000dc
  75. uint32_t id4_mstid_7; // 0x000000e0
  76. uint32_t id5_first_addr_0; // 0x000000e4
  77. uint32_t id5_last_addr_0; // 0x000000e8
  78. uint32_t id5_mstid_0; // 0x000000ec
  79. uint32_t id5_mstid_1; // 0x000000f0
  80. uint32_t id5_mstid_2; // 0x000000f4
  81. uint32_t id5_mstid_3; // 0x000000f8
  82. uint32_t id5_mstid_4; // 0x000000fc
  83. uint32_t id5_mstid_5; // 0x00000100
  84. uint32_t id5_mstid_6; // 0x00000104
  85. uint32_t id5_mstid_7; // 0x00000108
  86. uint32_t clk_gate_bypass; // 0x0000010c
  87. } HWP_SLV_FW_AP_IFC_T;
  88. #define hwp_slvFwApIfc ((HWP_SLV_FW_AP_IFC_T *)REG_ACCESS_ADDRESS(REG_SLV_FW_AP_IFC_BASE))
  89. // port0_default_address_0
  90. typedef union {
  91. uint32_t v;
  92. struct
  93. {
  94. uint32_t port0_default_address_0 : 16; // [15:0]
  95. uint32_t __31_16 : 16; // [31:16]
  96. } b;
  97. } REG_SLV_FW_AP_IFC_PORT0_DEFAULT_ADDRESS_0_T;
  98. // port_int_en
  99. typedef union {
  100. uint32_t v;
  101. struct
  102. {
  103. uint32_t port_0_w_en : 1; // [0]
  104. uint32_t port_0_r_en : 1; // [1]
  105. uint32_t __31_2 : 30; // [31:2]
  106. } b;
  107. } REG_SLV_FW_AP_IFC_PORT_INT_EN_T;
  108. // port_int_clr
  109. typedef union {
  110. uint32_t v;
  111. struct
  112. {
  113. uint32_t port_0_w_clr : 1; // [0], write clear
  114. uint32_t port_0_r_clr : 1; // [1], write clear
  115. uint32_t __31_2 : 30; // [31:2]
  116. } b;
  117. } REG_SLV_FW_AP_IFC_PORT_INT_CLR_T;
  118. // port_int_raw
  119. typedef union {
  120. uint32_t v;
  121. struct
  122. {
  123. uint32_t port_0_w_raw : 1; // [0], read only
  124. uint32_t port_0_r_raw : 1; // [1], read only
  125. uint32_t __31_2 : 30; // [31:2]
  126. } b;
  127. } REG_SLV_FW_AP_IFC_PORT_INT_RAW_T;
  128. // port_int_fin
  129. typedef union {
  130. uint32_t v;
  131. struct
  132. {
  133. uint32_t port_0_w_fin : 1; // [0], read only
  134. uint32_t port_0_r_fin : 1; // [1], read only
  135. uint32_t __31_2 : 30; // [31:2]
  136. } b;
  137. } REG_SLV_FW_AP_IFC_PORT_INT_FIN_T;
  138. // rd_sec_0
  139. typedef union {
  140. uint32_t v;
  141. struct
  142. {
  143. uint32_t ap_ifc_rd_sec : 2; // [1:0]
  144. uint32_t camera_rd_sec : 2; // [3:2]
  145. uint32_t sdmmc_rd_sec : 2; // [5:4]
  146. uint32_t uart6_rd_sec : 2; // [7:6]
  147. uint32_t uart5_rd_sec : 2; // [9:8]
  148. uint32_t uart4_rd_sec : 2; // [11:10]
  149. uint32_t __31_12 : 20; // [31:12]
  150. } b;
  151. } REG_SLV_FW_AP_IFC_RD_SEC_0_T;
  152. // wr_sec_0
  153. typedef union {
  154. uint32_t v;
  155. struct
  156. {
  157. uint32_t ap_ifc_wr_sec : 2; // [1:0]
  158. uint32_t camera_wr_sec : 2; // [3:2]
  159. uint32_t sdmmc_wr_sec : 2; // [5:4]
  160. uint32_t uart6_wr_sec : 2; // [7:6]
  161. uint32_t uart5_wr_sec : 2; // [9:8]
  162. uint32_t uart4_wr_sec : 2; // [11:10]
  163. uint32_t __31_12 : 20; // [31:12]
  164. } b;
  165. } REG_SLV_FW_AP_IFC_WR_SEC_0_T;
  166. // id0_first_addr_0
  167. typedef union {
  168. uint32_t v;
  169. struct
  170. {
  171. uint32_t first_addr_0 : 16; // [15:0]
  172. uint32_t __31_16 : 16; // [31:16]
  173. } b;
  174. } REG_SLV_FW_AP_IFC_ID0_FIRST_ADDR_0_T;
  175. // id0_last_addr_0
  176. typedef union {
  177. uint32_t v;
  178. struct
  179. {
  180. uint32_t last_addr_0 : 16; // [15:0]
  181. uint32_t __31_16 : 16; // [31:16]
  182. } b;
  183. } REG_SLV_FW_AP_IFC_ID0_LAST_ADDR_0_T;
  184. // id1_first_addr_0
  185. typedef union {
  186. uint32_t v;
  187. struct
  188. {
  189. uint32_t first_addr_0 : 16; // [15:0]
  190. uint32_t __31_16 : 16; // [31:16]
  191. } b;
  192. } REG_SLV_FW_AP_IFC_ID1_FIRST_ADDR_0_T;
  193. // id1_last_addr_0
  194. typedef union {
  195. uint32_t v;
  196. struct
  197. {
  198. uint32_t last_addr_0 : 16; // [15:0]
  199. uint32_t __31_16 : 16; // [31:16]
  200. } b;
  201. } REG_SLV_FW_AP_IFC_ID1_LAST_ADDR_0_T;
  202. // id2_first_addr_0
  203. typedef union {
  204. uint32_t v;
  205. struct
  206. {
  207. uint32_t first_addr_0 : 16; // [15:0]
  208. uint32_t __31_16 : 16; // [31:16]
  209. } b;
  210. } REG_SLV_FW_AP_IFC_ID2_FIRST_ADDR_0_T;
  211. // id2_last_addr_0
  212. typedef union {
  213. uint32_t v;
  214. struct
  215. {
  216. uint32_t last_addr_0 : 16; // [15:0]
  217. uint32_t __31_16 : 16; // [31:16]
  218. } b;
  219. } REG_SLV_FW_AP_IFC_ID2_LAST_ADDR_0_T;
  220. // id3_first_addr_0
  221. typedef union {
  222. uint32_t v;
  223. struct
  224. {
  225. uint32_t first_addr_0 : 16; // [15:0]
  226. uint32_t __31_16 : 16; // [31:16]
  227. } b;
  228. } REG_SLV_FW_AP_IFC_ID3_FIRST_ADDR_0_T;
  229. // id3_last_addr_0
  230. typedef union {
  231. uint32_t v;
  232. struct
  233. {
  234. uint32_t last_addr_0 : 16; // [15:0]
  235. uint32_t __31_16 : 16; // [31:16]
  236. } b;
  237. } REG_SLV_FW_AP_IFC_ID3_LAST_ADDR_0_T;
  238. // id4_first_addr_0
  239. typedef union {
  240. uint32_t v;
  241. struct
  242. {
  243. uint32_t first_addr_0 : 16; // [15:0]
  244. uint32_t __31_16 : 16; // [31:16]
  245. } b;
  246. } REG_SLV_FW_AP_IFC_ID4_FIRST_ADDR_0_T;
  247. // id4_last_addr_0
  248. typedef union {
  249. uint32_t v;
  250. struct
  251. {
  252. uint32_t last_addr_0 : 16; // [15:0]
  253. uint32_t __31_16 : 16; // [31:16]
  254. } b;
  255. } REG_SLV_FW_AP_IFC_ID4_LAST_ADDR_0_T;
  256. // id5_first_addr_0
  257. typedef union {
  258. uint32_t v;
  259. struct
  260. {
  261. uint32_t first_addr_0 : 16; // [15:0]
  262. uint32_t __31_16 : 16; // [31:16]
  263. } b;
  264. } REG_SLV_FW_AP_IFC_ID5_FIRST_ADDR_0_T;
  265. // id5_last_addr_0
  266. typedef union {
  267. uint32_t v;
  268. struct
  269. {
  270. uint32_t last_addr_0 : 16; // [15:0]
  271. uint32_t __31_16 : 16; // [31:16]
  272. } b;
  273. } REG_SLV_FW_AP_IFC_ID5_LAST_ADDR_0_T;
  274. // clk_gate_bypass
  275. typedef union {
  276. uint32_t v;
  277. struct
  278. {
  279. uint32_t clk_gate_bypass : 1; // [0]
  280. uint32_t fw_resp_en : 1; // [1]
  281. uint32_t __31_2 : 30; // [31:2]
  282. } b;
  283. } REG_SLV_FW_AP_IFC_CLK_GATE_BYPASS_T;
  284. // port0_default_address_0
  285. #define SLV_FW_AP_IFC_PORT0_DEFAULT_ADDRESS_0(n) (((n)&0xffff) << 0)
  286. // port_int_en
  287. #define SLV_FW_AP_IFC_PORT_0_W_EN (1 << 0)
  288. #define SLV_FW_AP_IFC_PORT_0_R_EN (1 << 1)
  289. // port_int_clr
  290. #define SLV_FW_AP_IFC_PORT_0_W_CLR (1 << 0)
  291. #define SLV_FW_AP_IFC_PORT_0_R_CLR (1 << 1)
  292. // port_int_raw
  293. #define SLV_FW_AP_IFC_PORT_0_W_RAW (1 << 0)
  294. #define SLV_FW_AP_IFC_PORT_0_R_RAW (1 << 1)
  295. // port_int_fin
  296. #define SLV_FW_AP_IFC_PORT_0_W_FIN (1 << 0)
  297. #define SLV_FW_AP_IFC_PORT_0_R_FIN (1 << 1)
  298. // rd_sec_0
  299. #define SLV_FW_AP_IFC_AP_IFC_RD_SEC(n) (((n)&0x3) << 0)
  300. #define SLV_FW_AP_IFC_CAMERA_RD_SEC(n) (((n)&0x3) << 2)
  301. #define SLV_FW_AP_IFC_SDMMC_RD_SEC(n) (((n)&0x3) << 4)
  302. #define SLV_FW_AP_IFC_UART6_RD_SEC(n) (((n)&0x3) << 6)
  303. #define SLV_FW_AP_IFC_UART5_RD_SEC(n) (((n)&0x3) << 8)
  304. #define SLV_FW_AP_IFC_UART4_RD_SEC(n) (((n)&0x3) << 10)
  305. // wr_sec_0
  306. #define SLV_FW_AP_IFC_AP_IFC_WR_SEC(n) (((n)&0x3) << 0)
  307. #define SLV_FW_AP_IFC_CAMERA_WR_SEC(n) (((n)&0x3) << 2)
  308. #define SLV_FW_AP_IFC_SDMMC_WR_SEC(n) (((n)&0x3) << 4)
  309. #define SLV_FW_AP_IFC_UART6_WR_SEC(n) (((n)&0x3) << 6)
  310. #define SLV_FW_AP_IFC_UART5_WR_SEC(n) (((n)&0x3) << 8)
  311. #define SLV_FW_AP_IFC_UART4_WR_SEC(n) (((n)&0x3) << 10)
  312. // id0_first_addr_0
  313. #define SLV_FW_AP_IFC_FIRST_ADDR_0(n) (((n)&0xffff) << 0)
  314. // id0_last_addr_0
  315. #define SLV_FW_AP_IFC_LAST_ADDR_0(n) (((n)&0xffff) << 0)
  316. // id1_first_addr_0
  317. #define SLV_FW_AP_IFC_FIRST_ADDR_0(n) (((n)&0xffff) << 0)
  318. // id1_last_addr_0
  319. #define SLV_FW_AP_IFC_LAST_ADDR_0(n) (((n)&0xffff) << 0)
  320. // id2_first_addr_0
  321. #define SLV_FW_AP_IFC_FIRST_ADDR_0(n) (((n)&0xffff) << 0)
  322. // id2_last_addr_0
  323. #define SLV_FW_AP_IFC_LAST_ADDR_0(n) (((n)&0xffff) << 0)
  324. // id3_first_addr_0
  325. #define SLV_FW_AP_IFC_FIRST_ADDR_0(n) (((n)&0xffff) << 0)
  326. // id3_last_addr_0
  327. #define SLV_FW_AP_IFC_LAST_ADDR_0(n) (((n)&0xffff) << 0)
  328. // id4_first_addr_0
  329. #define SLV_FW_AP_IFC_FIRST_ADDR_0(n) (((n)&0xffff) << 0)
  330. // id4_last_addr_0
  331. #define SLV_FW_AP_IFC_LAST_ADDR_0(n) (((n)&0xffff) << 0)
  332. // id5_first_addr_0
  333. #define SLV_FW_AP_IFC_FIRST_ADDR_0(n) (((n)&0xffff) << 0)
  334. // id5_last_addr_0
  335. #define SLV_FW_AP_IFC_LAST_ADDR_0(n) (((n)&0xffff) << 0)
  336. // clk_gate_bypass
  337. #define SLV_FW_AP_IFC_CLK_GATE_BYPASS (1 << 0)
  338. #define SLV_FW_AP_IFC_FW_RESP_EN (1 << 1)
  339. #endif // _SLV_FW_AP_IFC_H_