idle_lps.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983
  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 _IDLE_LPS_H_
  13. #define _IDLE_LPS_H_
  14. // Auto generated by dtools(see dtools.txt for its version).
  15. // Don't edit it manually!
  16. #define REG_IDLE_LPS_SET_OFFSET (352)
  17. #define REG_IDLE_LPS_CLR_OFFSET (528)
  18. #define REG_IDLE_LPS_BASE (0x51702000)
  19. typedef volatile struct
  20. {
  21. uint32_t lps_ctrl_ap; // 0x00000000
  22. uint32_t ap_sig_en; // 0x00000004
  23. uint32_t ap_lps_sig_time; // 0x00000008
  24. uint32_t lps_ctrl_cp; // 0x0000000c
  25. uint32_t cp_pm2_sta; // 0x00000010
  26. uint32_t cp_sig_en; // 0x00000014
  27. uint32_t cp_lps_sig_time; // 0x00000018
  28. uint32_t pm2_off_time; // 0x0000001c
  29. uint32_t pm2_on_time; // 0x00000020
  30. uint32_t pm2_on_off_time; // 0x00000024
  31. uint32_t ap_pm2_sta; // 0x00000028
  32. uint32_t ap_pm2_mode_en; // 0x0000002c
  33. uint32_t aon_sig_en; // 0x00000030
  34. uint32_t sleep_prot_time; // 0x00000034
  35. uint32_t eliminate_jitter; // 0x00000038
  36. uint32_t ap_lps_sta; // 0x0000003c
  37. uint32_t cp_inten; // 0x00000040
  38. uint32_t __68[2]; // 0x00000044
  39. uint32_t cp_int_sta; // 0x0000004c
  40. uint32_t ap_inten; // 0x00000050
  41. uint32_t __84[2]; // 0x00000054
  42. uint32_t ap_int_sta; // 0x0000005c
  43. uint32_t ap_awk_en; // 0x00000060
  44. uint32_t __100[2]; // 0x00000064
  45. uint32_t ap_awk_st; // 0x0000006c
  46. uint32_t cp_awk_en; // 0x00000070
  47. uint32_t __116[2]; // 0x00000074
  48. uint32_t cp_awk_st; // 0x0000007c
  49. uint32_t cp_lps_sta; // 0x00000080
  50. uint32_t __132[1]; // 0x00000084
  51. uint32_t cp_p1_time; // 0x00000088
  52. uint32_t cp_p2_time; // 0x0000008c
  53. uint32_t lps_t_time1; // 0x00000090
  54. uint32_t lps_t_time2; // 0x00000094
  55. uint32_t lps_t_time3; // 0x00000098
  56. uint32_t lps_t_time4; // 0x0000009c
  57. uint32_t lps_t_time5; // 0x000000a0
  58. uint32_t lps_t_time6; // 0x000000a4
  59. uint32_t load_en; // 0x000000a8
  60. uint32_t lps_32k_ref; // 0x000000ac
  61. uint32_t ref_32k_fnl; // 0x000000b0
  62. uint32_t lps_tpctrl; // 0x000000b4
  63. uint32_t lps_tp_sta; // 0x000000b8
  64. uint32_t load_time; // 0x000000bc
  65. uint32_t mon_sel; // 0x000000c0
  66. uint32_t __196[2]; // 0x000000c4
  67. uint32_t lps_res0; // 0x000000cc
  68. uint32_t lps_res1; // 0x000000d0
  69. uint32_t lps_res2; // 0x000000d4
  70. uint32_t lps_res3; // 0x000000d8
  71. uint32_t lps_res4; // 0x000000dc
  72. uint32_t lps_res5; // 0x000000e0
  73. uint32_t lps_res6; // 0x000000e4
  74. uint32_t lps_res7; // 0x000000e8
  75. uint32_t lps_res8; // 0x000000ec
  76. uint32_t lps_res9; // 0x000000f0
  77. uint32_t lps_res10; // 0x000000f4
  78. uint32_t lps_res11; // 0x000000f8
  79. uint32_t cp_p1_en; // 0x000000fc
  80. uint32_t cp_p2_en; // 0x00000100
  81. uint32_t lps_t1_en; // 0x00000104
  82. uint32_t lps_t2_en; // 0x00000108
  83. uint32_t lps_t3_en; // 0x0000010c
  84. uint32_t lps_t4_en; // 0x00000110
  85. uint32_t lps_t5_en; // 0x00000114
  86. uint32_t lps_t6_en; // 0x00000118
  87. uint32_t ap_awk_en1; // 0x0000011c
  88. uint32_t __288[2]; // 0x00000120
  89. uint32_t ap_awk_st1; // 0x00000128
  90. uint32_t cp_awk_en1; // 0x0000012c
  91. uint32_t __304[2]; // 0x00000130
  92. uint32_t cp_awk_st1; // 0x00000138
  93. uint32_t lps_t_time7; // 0x0000013c
  94. uint32_t lps_t_time8; // 0x00000140
  95. uint32_t lps_t_time9; // 0x00000144
  96. uint32_t lps_t7_en; // 0x00000148
  97. uint32_t lps_t8_en; // 0x0000014c
  98. uint32_t lps_t9_en; // 0x00000150
  99. uint32_t cp_pm2_mode_en; // 0x00000154
  100. uint32_t __344[18]; // 0x00000158
  101. uint32_t cp_inten_set; // 0x000001a0
  102. uint32_t __420[3]; // 0x000001a4
  103. uint32_t ap_inten_set; // 0x000001b0
  104. uint32_t __436[3]; // 0x000001b4
  105. uint32_t ap_awk_en_set; // 0x000001c0
  106. uint32_t __452[3]; // 0x000001c4
  107. uint32_t cp_awk_en_set; // 0x000001d0
  108. uint32_t __468[19]; // 0x000001d4
  109. uint32_t mon_sel_set; // 0x00000220
  110. uint32_t __548[11]; // 0x00000224
  111. uint32_t cp_inten_clr; // 0x00000250
  112. uint32_t __596[3]; // 0x00000254
  113. uint32_t ap_inten_clr; // 0x00000260
  114. uint32_t __612[3]; // 0x00000264
  115. uint32_t ap_awk_en_clr; // 0x00000270
  116. uint32_t __628[2]; // 0x00000274
  117. uint32_t ap_awk_en1_set; // 0x0000027c
  118. uint32_t cp_awk_en_clr; // 0x00000280
  119. uint32_t __644[2]; // 0x00000284
  120. uint32_t cp_awk_en1_set; // 0x0000028c
  121. uint32_t __656[16]; // 0x00000290
  122. uint32_t mon_sel_clr; // 0x000002d0
  123. uint32_t __724[22]; // 0x000002d4
  124. uint32_t ap_awk_en1_clr; // 0x0000032c
  125. uint32_t __816[3]; // 0x00000330
  126. uint32_t cp_awk_en1_clr; // 0x0000033c
  127. } HWP_IDLE_LPS_T;
  128. #define hwp_idleLps ((HWP_IDLE_LPS_T *)REG_ACCESS_ADDRESS(REG_IDLE_LPS_BASE))
  129. // lps_ctrl_ap
  130. typedef union {
  131. uint32_t v;
  132. struct
  133. {
  134. uint32_t idct_ap : 1; // [0]
  135. uint32_t __31_1 : 31; // [31:1]
  136. } b;
  137. } REG_IDLE_LPS_LPS_CTRL_AP_T;
  138. // ap_sig_en
  139. typedef union {
  140. uint32_t v;
  141. struct
  142. {
  143. uint32_t ap_chip_pd_en : 1; // [0]
  144. uint32_t ap_pd_xtal_en : 1; // [1]
  145. uint32_t ap_pd_pll_en : 1; // [2]
  146. uint32_t ap_cg_en : 1; // [3]
  147. uint32_t ap_pow_on_en : 1; // [4]
  148. uint32_t ap_dis_val : 1; // [5]
  149. uint32_t __31_6 : 26; // [31:6]
  150. } b;
  151. } REG_IDLE_LPS_AP_SIG_EN_T;
  152. // ap_lps_sig_time
  153. typedef union {
  154. uint32_t v;
  155. struct
  156. {
  157. uint32_t ap_t1 : 8; // [7:0]
  158. uint32_t ap_t2 : 8; // [15:8]
  159. uint32_t ap_t3 : 8; // [23:16]
  160. uint32_t ap_t4 : 8; // [31:24]
  161. } b;
  162. } REG_IDLE_LPS_AP_LPS_SIG_TIME_T;
  163. // lps_ctrl_cp
  164. typedef union {
  165. uint32_t v;
  166. struct
  167. {
  168. uint32_t idct_cp : 1; // [0]
  169. uint32_t __31_1 : 31; // [31:1]
  170. } b;
  171. } REG_IDLE_LPS_LPS_CTRL_CP_T;
  172. // cp_pm2_sta
  173. typedef union {
  174. uint32_t v;
  175. struct
  176. {
  177. uint32_t cp_pm2_sta : 1; // [0]
  178. uint32_t __31_1 : 31; // [31:1]
  179. } b;
  180. } REG_IDLE_LPS_CP_PM2_STA_T;
  181. // cp_sig_en
  182. typedef union {
  183. uint32_t v;
  184. struct
  185. {
  186. uint32_t cp_chip_pd_en : 1; // [0]
  187. uint32_t cp_pd_xtal_en : 1; // [1]
  188. uint32_t cp_pd_pll_en : 1; // [2]
  189. uint32_t cp_cg_en : 1; // [3]
  190. uint32_t cp_pow_on_en : 1; // [4]
  191. uint32_t cp_dis_val : 1; // [5]
  192. uint32_t __31_6 : 26; // [31:6]
  193. } b;
  194. } REG_IDLE_LPS_CP_SIG_EN_T;
  195. // cp_lps_sig_time
  196. typedef union {
  197. uint32_t v;
  198. struct
  199. {
  200. uint32_t cp_t1 : 8; // [7:0]
  201. uint32_t cp_t2 : 8; // [15:8]
  202. uint32_t cp_t3 : 8; // [23:16]
  203. uint32_t cp_t4 : 8; // [31:24]
  204. } b;
  205. } REG_IDLE_LPS_CP_LPS_SIG_TIME_T;
  206. // pm2_off_time
  207. typedef union {
  208. uint32_t v;
  209. struct
  210. {
  211. uint32_t n1 : 8; // [7:0]
  212. uint32_t n2 : 8; // [15:8]
  213. uint32_t n3 : 8; // [23:16]
  214. uint32_t n4 : 8; // [31:24]
  215. } b;
  216. } REG_IDLE_LPS_PM2_OFF_TIME_T;
  217. // pm2_on_time
  218. typedef union {
  219. uint32_t v;
  220. struct
  221. {
  222. uint32_t __7_0 : 8; // [7:0]
  223. uint32_t p2 : 8; // [15:8]
  224. uint32_t p3 : 8; // [23:16]
  225. uint32_t p4 : 8; // [31:24]
  226. } b;
  227. } REG_IDLE_LPS_PM2_ON_TIME_T;
  228. // pm2_on_off_time
  229. typedef union {
  230. uint32_t v;
  231. struct
  232. {
  233. uint32_t n5 : 8; // [7:0]
  234. uint32_t n6 : 8; // [15:8]
  235. uint32_t p5 : 8; // [23:16]
  236. uint32_t p6 : 8; // [31:24]
  237. } b;
  238. } REG_IDLE_LPS_PM2_ON_OFF_TIME_T;
  239. // ap_pm2_sta
  240. typedef union {
  241. uint32_t v;
  242. struct
  243. {
  244. uint32_t ap_pm2_sta : 1; // [0]
  245. uint32_t __31_1 : 31; // [31:1]
  246. } b;
  247. } REG_IDLE_LPS_AP_PM2_STA_T;
  248. // ap_pm2_mode_en
  249. typedef union {
  250. uint32_t v;
  251. struct
  252. {
  253. uint32_t ap_pm2_mode_en : 1; // [0]
  254. uint32_t __31_1 : 31; // [31:1]
  255. } b;
  256. } REG_IDLE_LPS_AP_PM2_MODE_EN_T;
  257. // aon_sig_en
  258. typedef union {
  259. uint32_t v;
  260. struct
  261. {
  262. uint32_t clk_en_aon_en : 1; // [0]
  263. uint32_t pd_aon_iso : 1; // [1]
  264. uint32_t rst_aon_n_en : 1; // [2]
  265. uint32_t pd_aon_mem : 1; // [3]
  266. uint32_t pd_aon_shutdown_m_b_en : 1; // [4]
  267. uint32_t pd_aon_shutdown_d_b_en : 1; // [5]
  268. uint32_t dis_val : 1; // [6]
  269. uint32_t __31_7 : 25; // [31:7]
  270. } b;
  271. } REG_IDLE_LPS_AON_SIG_EN_T;
  272. // sleep_prot_time
  273. typedef union {
  274. uint32_t v;
  275. struct
  276. {
  277. uint32_t sleep_prot_time : 8; // [7:0]
  278. uint32_t __31_8 : 24; // [31:8]
  279. } b;
  280. } REG_IDLE_LPS_SLEEP_PROT_TIME_T;
  281. // eliminate_jitter
  282. typedef union {
  283. uint32_t v;
  284. struct
  285. {
  286. uint32_t eliminate_en : 24; // [23:0]
  287. uint32_t eliminate_time : 8; // [31:24]
  288. } b;
  289. } REG_IDLE_LPS_ELIMINATE_JITTER_T;
  290. // ap_lps_sta
  291. typedef union {
  292. uint32_t v;
  293. struct
  294. {
  295. uint32_t ap_lps_stat : 1; // [0], read only
  296. uint32_t ap_lps_end_stat : 1; // [1]
  297. uint32_t ap_pow_ack_stat : 1; // [2]
  298. uint32_t ap_perip_awk_stat : 1; // [3]
  299. uint32_t __31_4 : 28; // [31:4]
  300. } b;
  301. } REG_IDLE_LPS_AP_LPS_STA_T;
  302. // cp_inten
  303. typedef union {
  304. uint32_t v;
  305. struct
  306. {
  307. uint32_t cp_p1_irq_en : 1; // [0]
  308. uint32_t cp_p2_irq_en : 1; // [1]
  309. uint32_t cp_t1_irq_en : 1; // [2]
  310. uint32_t cp_t2_irq_en : 1; // [3]
  311. uint32_t cp_t3_irq_en : 1; // [4]
  312. uint32_t cp_t4_irq_en : 1; // [5]
  313. uint32_t cp_t5_irq_en : 1; // [6]
  314. uint32_t cp_t6_irq_en : 1; // [7]
  315. uint32_t cp_tstamp_irq_en : 1; // [8]
  316. uint32_t cp_sys_awk_irq_to_cp_en : 1; // [9]
  317. uint32_t ap_sys_awk_irq_to_cp_en : 1; // [10]
  318. uint32_t cp_load_irq_en : 1; // [11]
  319. uint32_t cp_t7_irq_en : 1; // [12]
  320. uint32_t cp_t8_irq_en : 1; // [13]
  321. uint32_t cp_t9_irq_en : 1; // [14]
  322. uint32_t __31_15 : 17; // [31:15]
  323. } b;
  324. } REG_IDLE_LPS_CP_INTEN_T;
  325. // cp_int_sta
  326. typedef union {
  327. uint32_t v;
  328. struct
  329. {
  330. uint32_t cp_int_sta : 15; // [14:0]
  331. uint32_t __31_15 : 17; // [31:15]
  332. } b;
  333. } REG_IDLE_LPS_CP_INT_STA_T;
  334. // ap_inten
  335. typedef union {
  336. uint32_t v;
  337. struct
  338. {
  339. uint32_t ap_p1_irq_en : 1; // [0]
  340. uint32_t ap_p2_irq_en : 1; // [1]
  341. uint32_t ap_t1_irq_en : 1; // [2]
  342. uint32_t ap_t2_irq_en : 1; // [3]
  343. uint32_t ap_t3_irq_en : 1; // [4]
  344. uint32_t ap_t4_irq_en : 1; // [5]
  345. uint32_t ap_t5_irq_en : 1; // [6]
  346. uint32_t ap_t6_irq_en : 1; // [7]
  347. uint32_t cp_sys_awk_irq_to_ap_en : 1; // [8]
  348. uint32_t ap_sys_awk_irq_to_ap_en : 1; // [9]
  349. uint32_t ap_load_irq_en : 1; // [10]
  350. uint32_t ap_tstamp_irq_en : 1; // [11]
  351. uint32_t ap_t7_irq_en : 1; // [12]
  352. uint32_t ap_t8_irq_en : 1; // [13]
  353. uint32_t ap_t9_irq_en : 1; // [14]
  354. uint32_t __31_15 : 17; // [31:15]
  355. } b;
  356. } REG_IDLE_LPS_AP_INTEN_T;
  357. // ap_int_sta
  358. typedef union {
  359. uint32_t v;
  360. struct
  361. {
  362. uint32_t ap_int_sta : 15; // [14:0]
  363. uint32_t __31_15 : 17; // [31:15]
  364. } b;
  365. } REG_IDLE_LPS_AP_INT_STA_T;
  366. // ap_awk_en
  367. typedef union {
  368. uint32_t v;
  369. struct
  370. {
  371. uint32_t ap_awk0_en : 1; // [0]
  372. uint32_t ap_awk1_en : 1; // [1]
  373. uint32_t ap_awk2_en : 1; // [2]
  374. uint32_t ap_awk3_en : 1; // [3]
  375. uint32_t ap_awk4_en : 1; // [4]
  376. uint32_t ap_awk5_en : 1; // [5]
  377. uint32_t ap_awk6_en : 1; // [6]
  378. uint32_t ap_awk7_en : 1; // [7]
  379. uint32_t ap_awk8_en : 1; // [8]
  380. uint32_t ap_awk9_en : 1; // [9]
  381. uint32_t ap_awk10_en : 1; // [10]
  382. uint32_t ap_awk11_en : 1; // [11]
  383. uint32_t ap_awk12_en : 1; // [12]
  384. uint32_t ap_awk13_en : 1; // [13]
  385. uint32_t ap_awk14_en : 1; // [14]
  386. uint32_t ap_awk15_en : 1; // [15]
  387. uint32_t ap_awk16_en : 1; // [16]
  388. uint32_t ap_awk17_en : 1; // [17]
  389. uint32_t ap_awk18_en : 1; // [18]
  390. uint32_t ap_awk19_en : 1; // [19]
  391. uint32_t ap_awk20_en : 1; // [20]
  392. uint32_t ap_awk21_en : 1; // [21]
  393. uint32_t ap_awk22_en : 1; // [22]
  394. uint32_t ap_awk23_en : 1; // [23]
  395. uint32_t ap_p1_awk_en : 1; // [24]
  396. uint32_t ap_t1_awk_en : 1; // [25]
  397. uint32_t ap_t2_awk_en : 1; // [26]
  398. uint32_t ap_t3_awk_en : 1; // [27]
  399. uint32_t ap_t4_awk_en : 1; // [28]
  400. uint32_t ap_t5_awk_en : 1; // [29]
  401. uint32_t ap_t6_awk_en : 1; // [30]
  402. uint32_t ap_p2_awk_en : 1; // [31]
  403. } b;
  404. } REG_IDLE_LPS_AP_AWK_EN_T;
  405. // cp_awk_en
  406. typedef union {
  407. uint32_t v;
  408. struct
  409. {
  410. uint32_t cp_awk0_en : 1; // [0]
  411. uint32_t cp_awk1_en : 1; // [1]
  412. uint32_t cp_awk2_en : 1; // [2]
  413. uint32_t cp_awk3_en : 1; // [3]
  414. uint32_t cp_awk4_en : 1; // [4]
  415. uint32_t cp_awk5_en : 1; // [5]
  416. uint32_t cp_awk6_en : 1; // [6]
  417. uint32_t cp_awk7_en : 1; // [7]
  418. uint32_t cp_awk8_en : 1; // [8]
  419. uint32_t cp_awk9_en : 1; // [9]
  420. uint32_t cp_awk10_en : 1; // [10]
  421. uint32_t cp_awk11_en : 1; // [11]
  422. uint32_t cp_awk12_en : 1; // [12]
  423. uint32_t cp_awk13_en : 1; // [13]
  424. uint32_t cp_awk14_en : 1; // [14]
  425. uint32_t cp_awk15_en : 1; // [15]
  426. uint32_t cp_awk16_en : 1; // [16]
  427. uint32_t cp_awk17_en : 1; // [17]
  428. uint32_t cp_awk18_en : 1; // [18]
  429. uint32_t cp_awk19_en : 1; // [19]
  430. uint32_t cp_awk20_en : 1; // [20]
  431. uint32_t cp_awk21_en : 1; // [21]
  432. uint32_t cp_awk22_en : 1; // [22]
  433. uint32_t cp_awk23_en : 1; // [23]
  434. uint32_t cp_p1_awk_en : 1; // [24]
  435. uint32_t cp_t1_awk_en : 1; // [25]
  436. uint32_t cp_t2_awk_en : 1; // [26]
  437. uint32_t cp_t3_awk_en : 1; // [27]
  438. uint32_t cp_t4_awk_en : 1; // [28]
  439. uint32_t cp_t5_awk_en : 1; // [29]
  440. uint32_t cp_t6_awk_en : 1; // [30]
  441. uint32_t cp_p2_awk_en : 1; // [31]
  442. } b;
  443. } REG_IDLE_LPS_CP_AWK_EN_T;
  444. // cp_lps_sta
  445. typedef union {
  446. uint32_t v;
  447. struct
  448. {
  449. uint32_t cp_lps_stat : 1; // [0]
  450. uint32_t cp_awk_up_stat : 1; // [1]
  451. uint32_t cp_lps_end_stat : 1; // [2]
  452. uint32_t cp_pow_ack_stat : 1; // [3]
  453. uint32_t cp_perip_awk_stat : 1; // [4]
  454. uint32_t __31_5 : 27; // [31:5]
  455. } b;
  456. } REG_IDLE_LPS_CP_LPS_STA_T;
  457. // load_en
  458. typedef union {
  459. uint32_t v;
  460. struct
  461. {
  462. uint32_t load_en : 1; // [0]
  463. uint32_t __31_1 : 31; // [31:1]
  464. } b;
  465. } REG_IDLE_LPS_LOAD_EN_T;
  466. // lps_tpctrl
  467. typedef union {
  468. uint32_t v;
  469. struct
  470. {
  471. uint32_t tstamp_en : 1; // [0]
  472. uint32_t tstamp_confg : 1; // [1]
  473. uint32_t __31_2 : 30; // [31:2]
  474. } b;
  475. } REG_IDLE_LPS_LPS_TPCTRL_T;
  476. // lps_tp_sta
  477. typedef union {
  478. uint32_t v;
  479. struct
  480. {
  481. uint32_t tp_sta0 : 1; // [0]
  482. uint32_t __31_1 : 31; // [31:1]
  483. } b;
  484. } REG_IDLE_LPS_LPS_TP_STA_T;
  485. // mon_sel
  486. typedef union {
  487. uint32_t v;
  488. struct
  489. {
  490. uint32_t mon0_sel : 2; // [1:0]
  491. uint32_t mon1_sel : 2; // [3:2]
  492. uint32_t mon2_sel : 2; // [5:4]
  493. uint32_t mon3_sel : 2; // [7:6]
  494. uint32_t mon4_sel : 2; // [9:8]
  495. uint32_t mon5_sel : 2; // [11:10]
  496. uint32_t mon6_sel : 2; // [13:12]
  497. uint32_t mon7_sel : 2; // [15:14]
  498. uint32_t mon8_sel : 2; // [17:16]
  499. uint32_t mon9_sel : 2; // [19:18]
  500. uint32_t mon10_sel : 2; // [21:20]
  501. uint32_t mon11_sel : 2; // [23:22]
  502. uint32_t mon12_sel : 2; // [25:24]
  503. uint32_t mon13_sel : 2; // [27:26]
  504. uint32_t mon14_sel : 2; // [29:28]
  505. uint32_t mon15_sel : 2; // [31:30]
  506. } b;
  507. } REG_IDLE_LPS_MON_SEL_T;
  508. // cp_p1_en
  509. typedef union {
  510. uint32_t v;
  511. struct
  512. {
  513. uint32_t lps_p1_en : 1; // [0]
  514. uint32_t __31_1 : 31; // [31:1]
  515. } b;
  516. } REG_IDLE_LPS_CP_P1_EN_T;
  517. // cp_p2_en
  518. typedef union {
  519. uint32_t v;
  520. struct
  521. {
  522. uint32_t lps_p2_en : 1; // [0]
  523. uint32_t __31_1 : 31; // [31:1]
  524. } b;
  525. } REG_IDLE_LPS_CP_P2_EN_T;
  526. // lps_t1_en
  527. typedef union {
  528. uint32_t v;
  529. struct
  530. {
  531. uint32_t lps_t1_en : 1; // [0]
  532. uint32_t __31_1 : 31; // [31:1]
  533. } b;
  534. } REG_IDLE_LPS_LPS_T1_EN_T;
  535. // lps_t2_en
  536. typedef union {
  537. uint32_t v;
  538. struct
  539. {
  540. uint32_t lps_t2_en : 1; // [0]
  541. uint32_t __31_1 : 31; // [31:1]
  542. } b;
  543. } REG_IDLE_LPS_LPS_T2_EN_T;
  544. // lps_t3_en
  545. typedef union {
  546. uint32_t v;
  547. struct
  548. {
  549. uint32_t lps_t3_en : 1; // [0]
  550. uint32_t __31_1 : 31; // [31:1]
  551. } b;
  552. } REG_IDLE_LPS_LPS_T3_EN_T;
  553. // lps_t4_en
  554. typedef union {
  555. uint32_t v;
  556. struct
  557. {
  558. uint32_t lps_t4_en : 1; // [0]
  559. uint32_t __31_1 : 31; // [31:1]
  560. } b;
  561. } REG_IDLE_LPS_LPS_T4_EN_T;
  562. // lps_t5_en
  563. typedef union {
  564. uint32_t v;
  565. struct
  566. {
  567. uint32_t lps_t5_en : 1; // [0]
  568. uint32_t __31_1 : 31; // [31:1]
  569. } b;
  570. } REG_IDLE_LPS_LPS_T5_EN_T;
  571. // lps_t6_en
  572. typedef union {
  573. uint32_t v;
  574. struct
  575. {
  576. uint32_t lps_t6_en : 1; // [0]
  577. uint32_t __31_1 : 31; // [31:1]
  578. } b;
  579. } REG_IDLE_LPS_LPS_T6_EN_T;
  580. // ap_awk_en1
  581. typedef union {
  582. uint32_t v;
  583. struct
  584. {
  585. uint32_t ap_t7_awk_en : 1; // [0]
  586. uint32_t ap_t8_awk_en : 1; // [1]
  587. uint32_t ap_t9_awk_en : 1; // [2]
  588. uint32_t __31_3 : 29; // [31:3]
  589. } b;
  590. } REG_IDLE_LPS_AP_AWK_EN1_T;
  591. // ap_awk_st1
  592. typedef union {
  593. uint32_t v;
  594. struct
  595. {
  596. uint32_t ap_awk_sta1 : 3; // [2:0]
  597. uint32_t __31_3 : 29; // [31:3]
  598. } b;
  599. } REG_IDLE_LPS_AP_AWK_ST1_T;
  600. // cp_awk_en1
  601. typedef union {
  602. uint32_t v;
  603. struct
  604. {
  605. uint32_t cp_t7_awk_en : 1; // [0]
  606. uint32_t cp_t8_awk_en : 1; // [1]
  607. uint32_t cp_t9_awk_en : 1; // [2]
  608. uint32_t __31_3 : 29; // [31:3]
  609. } b;
  610. } REG_IDLE_LPS_CP_AWK_EN1_T;
  611. // cp_awk_st1
  612. typedef union {
  613. uint32_t v;
  614. struct
  615. {
  616. uint32_t cp_awk_sta1 : 3; // [2:0]
  617. uint32_t __31_3 : 29; // [31:3]
  618. } b;
  619. } REG_IDLE_LPS_CP_AWK_ST1_T;
  620. // lps_t7_en
  621. typedef union {
  622. uint32_t v;
  623. struct
  624. {
  625. uint32_t lps_t7_en : 1; // [0]
  626. uint32_t __31_1 : 31; // [31:1]
  627. } b;
  628. } REG_IDLE_LPS_LPS_T7_EN_T;
  629. // lps_t8_en
  630. typedef union {
  631. uint32_t v;
  632. struct
  633. {
  634. uint32_t lps_t8_en : 1; // [0]
  635. uint32_t __31_1 : 31; // [31:1]
  636. } b;
  637. } REG_IDLE_LPS_LPS_T8_EN_T;
  638. // lps_t9_en
  639. typedef union {
  640. uint32_t v;
  641. struct
  642. {
  643. uint32_t lps_t9_en : 1; // [0]
  644. uint32_t __31_1 : 31; // [31:1]
  645. } b;
  646. } REG_IDLE_LPS_LPS_T9_EN_T;
  647. // cp_pm2_mode_en
  648. typedef union {
  649. uint32_t v;
  650. struct
  651. {
  652. uint32_t cp_pm2_mode_en : 1; // [0]
  653. uint32_t __31_1 : 31; // [31:1]
  654. } b;
  655. } REG_IDLE_LPS_CP_PM2_MODE_EN_T;
  656. // lps_ctrl_ap
  657. #define IDLE_LPS_IDCT_AP (1 << 0)
  658. // ap_sig_en
  659. #define IDLE_LPS_AP_CHIP_PD_EN (1 << 0)
  660. #define IDLE_LPS_AP_PD_XTAL_EN (1 << 1)
  661. #define IDLE_LPS_AP_PD_PLL_EN (1 << 2)
  662. #define IDLE_LPS_AP_CG_EN (1 << 3)
  663. #define IDLE_LPS_AP_POW_ON_EN (1 << 4)
  664. #define IDLE_LPS_AP_DIS_VAL (1 << 5)
  665. // ap_lps_sig_time
  666. #define IDLE_LPS_AP_T1(n) (((n)&0xff) << 0)
  667. #define IDLE_LPS_AP_T2(n) (((n)&0xff) << 8)
  668. #define IDLE_LPS_AP_T3(n) (((n)&0xff) << 16)
  669. #define IDLE_LPS_AP_T4(n) (((n)&0xff) << 24)
  670. // lps_ctrl_cp
  671. #define IDLE_LPS_IDCT_CP (1 << 0)
  672. // cp_pm2_sta
  673. #define IDLE_LPS_CP_PM2_STA (1 << 0)
  674. // cp_sig_en
  675. #define IDLE_LPS_CP_CHIP_PD_EN (1 << 0)
  676. #define IDLE_LPS_CP_PD_XTAL_EN (1 << 1)
  677. #define IDLE_LPS_CP_PD_PLL_EN (1 << 2)
  678. #define IDLE_LPS_CP_CG_EN (1 << 3)
  679. #define IDLE_LPS_CP_POW_ON_EN (1 << 4)
  680. #define IDLE_LPS_CP_DIS_VAL (1 << 5)
  681. // cp_lps_sig_time
  682. #define IDLE_LPS_CP_T1(n) (((n)&0xff) << 0)
  683. #define IDLE_LPS_CP_T2(n) (((n)&0xff) << 8)
  684. #define IDLE_LPS_CP_T3(n) (((n)&0xff) << 16)
  685. #define IDLE_LPS_CP_T4(n) (((n)&0xff) << 24)
  686. // pm2_off_time
  687. #define IDLE_LPS_N1(n) (((n)&0xff) << 0)
  688. #define IDLE_LPS_N2(n) (((n)&0xff) << 8)
  689. #define IDLE_LPS_N3(n) (((n)&0xff) << 16)
  690. #define IDLE_LPS_N4(n) (((n)&0xff) << 24)
  691. // pm2_on_time
  692. #define IDLE_LPS_P2(n) (((n)&0xff) << 8)
  693. #define IDLE_LPS_P3(n) (((n)&0xff) << 16)
  694. #define IDLE_LPS_P4(n) (((n)&0xff) << 24)
  695. // pm2_on_off_time
  696. #define IDLE_LPS_N5(n) (((n)&0xff) << 0)
  697. #define IDLE_LPS_N6(n) (((n)&0xff) << 8)
  698. #define IDLE_LPS_P5(n) (((n)&0xff) << 16)
  699. #define IDLE_LPS_P6(n) (((n)&0xff) << 24)
  700. // ap_pm2_sta
  701. #define IDLE_LPS_AP_PM2_STA (1 << 0)
  702. // ap_pm2_mode_en
  703. #define IDLE_LPS_AP_PM2_MODE_EN (1 << 0)
  704. // aon_sig_en
  705. #define IDLE_LPS_CLK_EN_AON_EN (1 << 0)
  706. #define IDLE_LPS_PD_AON_ISO (1 << 1)
  707. #define IDLE_LPS_RST_AON_N_EN (1 << 2)
  708. #define IDLE_LPS_PD_AON_MEM (1 << 3)
  709. #define IDLE_LPS_PD_AON_SHUTDOWN_M_B_EN (1 << 4)
  710. #define IDLE_LPS_PD_AON_SHUTDOWN_D_B_EN (1 << 5)
  711. #define IDLE_LPS_DIS_VAL (1 << 6)
  712. // sleep_prot_time
  713. #define IDLE_LPS_SLEEP_PROT_TIME(n) (((n)&0xff) << 0)
  714. // eliminate_jitter
  715. #define IDLE_LPS_ELIMINATE_EN(n) (((n)&0xffffff) << 0)
  716. #define IDLE_LPS_ELIMINATE_TIME(n) (((n)&0xff) << 24)
  717. // ap_lps_sta
  718. #define IDLE_LPS_AP_LPS_STAT (1 << 0)
  719. #define IDLE_LPS_AP_LPS_END_STAT (1 << 1)
  720. #define IDLE_LPS_AP_POW_ACK_STAT (1 << 2)
  721. #define IDLE_LPS_AP_PERIP_AWK_STAT (1 << 3)
  722. // cp_inten
  723. #define IDLE_LPS_CP_P1_IRQ_EN (1 << 0)
  724. #define IDLE_LPS_CP_P2_IRQ_EN (1 << 1)
  725. #define IDLE_LPS_CP_T1_IRQ_EN (1 << 2)
  726. #define IDLE_LPS_CP_T2_IRQ_EN (1 << 3)
  727. #define IDLE_LPS_CP_T3_IRQ_EN (1 << 4)
  728. #define IDLE_LPS_CP_T4_IRQ_EN (1 << 5)
  729. #define IDLE_LPS_CP_T5_IRQ_EN (1 << 6)
  730. #define IDLE_LPS_CP_T6_IRQ_EN (1 << 7)
  731. #define IDLE_LPS_CP_TSTAMP_IRQ_EN (1 << 8)
  732. #define IDLE_LPS_CP_SYS_AWK_IRQ_TO_CP_EN (1 << 9)
  733. #define IDLE_LPS_AP_SYS_AWK_IRQ_TO_CP_EN (1 << 10)
  734. #define IDLE_LPS_CP_LOAD_IRQ_EN (1 << 11)
  735. #define IDLE_LPS_CP_T7_IRQ_EN (1 << 12)
  736. #define IDLE_LPS_CP_T8_IRQ_EN (1 << 13)
  737. #define IDLE_LPS_CP_T9_IRQ_EN (1 << 14)
  738. // cp_int_sta
  739. #define IDLE_LPS_CP_INT_STA(n) (((n)&0x7fff) << 0)
  740. // ap_inten
  741. #define IDLE_LPS_AP_P1_IRQ_EN (1 << 0)
  742. #define IDLE_LPS_AP_P2_IRQ_EN (1 << 1)
  743. #define IDLE_LPS_AP_T1_IRQ_EN (1 << 2)
  744. #define IDLE_LPS_AP_T2_IRQ_EN (1 << 3)
  745. #define IDLE_LPS_AP_T3_IRQ_EN (1 << 4)
  746. #define IDLE_LPS_AP_T4_IRQ_EN (1 << 5)
  747. #define IDLE_LPS_AP_T5_IRQ_EN (1 << 6)
  748. #define IDLE_LPS_AP_T6_IRQ_EN (1 << 7)
  749. #define IDLE_LPS_CP_SYS_AWK_IRQ_TO_AP_EN (1 << 8)
  750. #define IDLE_LPS_AP_SYS_AWK_IRQ_TO_AP_EN (1 << 9)
  751. #define IDLE_LPS_AP_LOAD_IRQ_EN (1 << 10)
  752. #define IDLE_LPS_AP_TSTAMP_IRQ_EN (1 << 11)
  753. #define IDLE_LPS_AP_T7_IRQ_EN (1 << 12)
  754. #define IDLE_LPS_AP_T8_IRQ_EN (1 << 13)
  755. #define IDLE_LPS_AP_T9_IRQ_EN (1 << 14)
  756. // ap_int_sta
  757. #define IDLE_LPS_AP_INT_STA(n) (((n)&0x7fff) << 0)
  758. // ap_awk_en
  759. #define IDLE_LPS_AP_AWK0_EN (1 << 0)
  760. #define IDLE_LPS_AP_AWK1_EN (1 << 1)
  761. #define IDLE_LPS_AP_AWK2_EN (1 << 2)
  762. #define IDLE_LPS_AP_AWK3_EN (1 << 3)
  763. #define IDLE_LPS_AP_AWK4_EN (1 << 4)
  764. #define IDLE_LPS_AP_AWK5_EN (1 << 5)
  765. #define IDLE_LPS_AP_AWK6_EN (1 << 6)
  766. #define IDLE_LPS_AP_AWK7_EN (1 << 7)
  767. #define IDLE_LPS_AP_AWK8_EN (1 << 8)
  768. #define IDLE_LPS_AP_AWK9_EN (1 << 9)
  769. #define IDLE_LPS_AP_AWK10_EN (1 << 10)
  770. #define IDLE_LPS_AP_AWK11_EN (1 << 11)
  771. #define IDLE_LPS_AP_AWK12_EN (1 << 12)
  772. #define IDLE_LPS_AP_AWK13_EN (1 << 13)
  773. #define IDLE_LPS_AP_AWK14_EN (1 << 14)
  774. #define IDLE_LPS_AP_AWK15_EN (1 << 15)
  775. #define IDLE_LPS_AP_AWK16_EN (1 << 16)
  776. #define IDLE_LPS_AP_AWK17_EN (1 << 17)
  777. #define IDLE_LPS_AP_AWK18_EN (1 << 18)
  778. #define IDLE_LPS_AP_AWK19_EN (1 << 19)
  779. #define IDLE_LPS_AP_AWK20_EN (1 << 20)
  780. #define IDLE_LPS_AP_AWK21_EN (1 << 21)
  781. #define IDLE_LPS_AP_AWK22_EN (1 << 22)
  782. #define IDLE_LPS_AP_AWK23_EN (1 << 23)
  783. #define IDLE_LPS_AP_P1_AWK_EN (1 << 24)
  784. #define IDLE_LPS_AP_T1_AWK_EN (1 << 25)
  785. #define IDLE_LPS_AP_T2_AWK_EN (1 << 26)
  786. #define IDLE_LPS_AP_T3_AWK_EN (1 << 27)
  787. #define IDLE_LPS_AP_T4_AWK_EN (1 << 28)
  788. #define IDLE_LPS_AP_T5_AWK_EN (1 << 29)
  789. #define IDLE_LPS_AP_T6_AWK_EN (1 << 30)
  790. #define IDLE_LPS_AP_P2_AWK_EN (1 << 31)
  791. // cp_awk_en
  792. #define IDLE_LPS_CP_AWK0_EN (1 << 0)
  793. #define IDLE_LPS_CP_AWK1_EN (1 << 1)
  794. #define IDLE_LPS_CP_AWK2_EN (1 << 2)
  795. #define IDLE_LPS_CP_AWK3_EN (1 << 3)
  796. #define IDLE_LPS_CP_AWK4_EN (1 << 4)
  797. #define IDLE_LPS_CP_AWK5_EN (1 << 5)
  798. #define IDLE_LPS_CP_AWK6_EN (1 << 6)
  799. #define IDLE_LPS_CP_AWK7_EN (1 << 7)
  800. #define IDLE_LPS_CP_AWK8_EN (1 << 8)
  801. #define IDLE_LPS_CP_AWK9_EN (1 << 9)
  802. #define IDLE_LPS_CP_AWK10_EN (1 << 10)
  803. #define IDLE_LPS_CP_AWK11_EN (1 << 11)
  804. #define IDLE_LPS_CP_AWK12_EN (1 << 12)
  805. #define IDLE_LPS_CP_AWK13_EN (1 << 13)
  806. #define IDLE_LPS_CP_AWK14_EN (1 << 14)
  807. #define IDLE_LPS_CP_AWK15_EN (1 << 15)
  808. #define IDLE_LPS_CP_AWK16_EN (1 << 16)
  809. #define IDLE_LPS_CP_AWK17_EN (1 << 17)
  810. #define IDLE_LPS_CP_AWK18_EN (1 << 18)
  811. #define IDLE_LPS_CP_AWK19_EN (1 << 19)
  812. #define IDLE_LPS_CP_AWK20_EN (1 << 20)
  813. #define IDLE_LPS_CP_AWK21_EN (1 << 21)
  814. #define IDLE_LPS_CP_AWK22_EN (1 << 22)
  815. #define IDLE_LPS_CP_AWK23_EN (1 << 23)
  816. #define IDLE_LPS_CP_P1_AWK_EN (1 << 24)
  817. #define IDLE_LPS_CP_T1_AWK_EN (1 << 25)
  818. #define IDLE_LPS_CP_T2_AWK_EN (1 << 26)
  819. #define IDLE_LPS_CP_T3_AWK_EN (1 << 27)
  820. #define IDLE_LPS_CP_T4_AWK_EN (1 << 28)
  821. #define IDLE_LPS_CP_T5_AWK_EN (1 << 29)
  822. #define IDLE_LPS_CP_T6_AWK_EN (1 << 30)
  823. #define IDLE_LPS_CP_P2_AWK_EN (1 << 31)
  824. // cp_lps_sta
  825. #define IDLE_LPS_CP_LPS_STAT (1 << 0)
  826. #define IDLE_LPS_CP_AWK_UP_STAT (1 << 1)
  827. #define IDLE_LPS_CP_LPS_END_STAT (1 << 2)
  828. #define IDLE_LPS_CP_POW_ACK_STAT (1 << 3)
  829. #define IDLE_LPS_CP_PERIP_AWK_STAT (1 << 4)
  830. // load_en
  831. #define IDLE_LPS_LOAD_EN (1 << 0)
  832. // lps_tpctrl
  833. #define IDLE_LPS_TSTAMP_EN (1 << 0)
  834. #define IDLE_LPS_TSTAMP_CONFG (1 << 1)
  835. // lps_tp_sta
  836. #define IDLE_LPS_TP_STA0 (1 << 0)
  837. // mon_sel
  838. #define IDLE_LPS_MON0_SEL(n) (((n)&0x3) << 0)
  839. #define IDLE_LPS_MON1_SEL(n) (((n)&0x3) << 2)
  840. #define IDLE_LPS_MON2_SEL(n) (((n)&0x3) << 4)
  841. #define IDLE_LPS_MON3_SEL(n) (((n)&0x3) << 6)
  842. #define IDLE_LPS_MON4_SEL(n) (((n)&0x3) << 8)
  843. #define IDLE_LPS_MON5_SEL(n) (((n)&0x3) << 10)
  844. #define IDLE_LPS_MON6_SEL(n) (((n)&0x3) << 12)
  845. #define IDLE_LPS_MON7_SEL(n) (((n)&0x3) << 14)
  846. #define IDLE_LPS_MON8_SEL(n) (((n)&0x3) << 16)
  847. #define IDLE_LPS_MON9_SEL(n) (((n)&0x3) << 18)
  848. #define IDLE_LPS_MON10_SEL(n) (((n)&0x3) << 20)
  849. #define IDLE_LPS_MON11_SEL(n) (((n)&0x3) << 22)
  850. #define IDLE_LPS_MON12_SEL(n) (((n)&0x3) << 24)
  851. #define IDLE_LPS_MON13_SEL(n) (((n)&0x3) << 26)
  852. #define IDLE_LPS_MON14_SEL(n) (((n)&0x3) << 28)
  853. #define IDLE_LPS_MON15_SEL(n) (((n)&0x3) << 30)
  854. // cp_p1_en
  855. #define IDLE_LPS_LPS_P1_EN (1 << 0)
  856. // cp_p2_en
  857. #define IDLE_LPS_LPS_P2_EN (1 << 0)
  858. // lps_t1_en
  859. #define IDLE_LPS_LPS_T1_EN (1 << 0)
  860. // lps_t2_en
  861. #define IDLE_LPS_LPS_T2_EN (1 << 0)
  862. // lps_t3_en
  863. #define IDLE_LPS_LPS_T3_EN (1 << 0)
  864. // lps_t4_en
  865. #define IDLE_LPS_LPS_T4_EN (1 << 0)
  866. // lps_t5_en
  867. #define IDLE_LPS_LPS_T5_EN (1 << 0)
  868. // lps_t6_en
  869. #define IDLE_LPS_LPS_T6_EN (1 << 0)
  870. // ap_awk_en1
  871. #define IDLE_LPS_AP_T7_AWK_EN (1 << 0)
  872. #define IDLE_LPS_AP_T8_AWK_EN (1 << 1)
  873. #define IDLE_LPS_AP_T9_AWK_EN (1 << 2)
  874. // ap_awk_st1
  875. #define IDLE_LPS_AP_AWK_STA1(n) (((n)&0x7) << 0)
  876. // cp_awk_en1
  877. #define IDLE_LPS_CP_T7_AWK_EN (1 << 0)
  878. #define IDLE_LPS_CP_T8_AWK_EN (1 << 1)
  879. #define IDLE_LPS_CP_T9_AWK_EN (1 << 2)
  880. // cp_awk_st1
  881. #define IDLE_LPS_CP_AWK_STA1(n) (((n)&0x7) << 0)
  882. // lps_t7_en
  883. #define IDLE_LPS_LPS_T7_EN (1 << 0)
  884. // lps_t8_en
  885. #define IDLE_LPS_LPS_T8_EN (1 << 0)
  886. // lps_t9_en
  887. #define IDLE_LPS_LPS_T9_EN (1 << 0)
  888. // cp_pm2_mode_en
  889. #define IDLE_LPS_CP_PM2_MODE_EN (1 << 0)
  890. #endif // _IDLE_LPS_H_