syscon_struct.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. // Copyright 2020 Espressif Systems (Shanghai) PTE LTD
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. #ifndef _SOC_SYSCON_STRUCT_H_
  15. #define _SOC_SYSCON_STRUCT_H_
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. typedef volatile struct syscon_dev_s {
  20. union {
  21. struct {
  22. uint32_t pre_div_cnt: 10;
  23. uint32_t clk_320m_en: 1;
  24. uint32_t clk_en: 1;
  25. uint32_t rst_tick_cnt: 1;
  26. uint32_t reserved13: 19;
  27. };
  28. uint32_t val;
  29. } sysclk_conf;
  30. union {
  31. struct {
  32. uint32_t xtal_tick_num: 8;
  33. uint32_t ck8m_tick_num: 8;
  34. uint32_t tick_enable: 1;
  35. uint32_t reserved17: 15;
  36. };
  37. uint32_t val;
  38. } tick_conf;
  39. union {
  40. struct {
  41. uint32_t clk20_oen: 1;
  42. uint32_t clk22_oen: 1;
  43. uint32_t clk44_oen: 1;
  44. uint32_t clk_bb_oen: 1;
  45. uint32_t clk80_oen: 1;
  46. uint32_t clk160_oen: 1;
  47. uint32_t clk_320m_oen: 1;
  48. uint32_t clk_adc_inf_oen: 1;
  49. uint32_t clk_dac_cpu_oen: 1;
  50. uint32_t clk40x_bb_oen: 1;
  51. uint32_t clk_xtal_oen: 1;
  52. uint32_t reserved11: 21;
  53. };
  54. uint32_t val;
  55. } clk_out_en;
  56. uint32_t wifi_bb_cfg; /**/
  57. uint32_t wifi_bb_cfg_2; /**/
  58. uint32_t wifi_clk_en; /**/
  59. uint32_t wifi_rst_en; /**/
  60. union {
  61. struct {
  62. uint32_t peri_io_swap: 8;
  63. uint32_t reserved8: 24;
  64. };
  65. uint32_t val;
  66. } host_inf_sel;
  67. union {
  68. struct {
  69. uint32_t ext_mem_pms_lock: 1;
  70. uint32_t reserved1: 31;
  71. };
  72. uint32_t val;
  73. } ext_mem_pms_lock;
  74. uint32_t reserved_24;
  75. union {
  76. struct {
  77. uint32_t flash_ace0_attr: 2;
  78. uint32_t reserved2: 30;
  79. };
  80. uint32_t val;
  81. } flash_ace0_attr;
  82. union {
  83. struct {
  84. uint32_t flash_ace1_attr: 2;
  85. uint32_t reserved2: 30;
  86. };
  87. uint32_t val;
  88. } flash_ace1_attr;
  89. union {
  90. struct {
  91. uint32_t flash_ace2_attr: 2;
  92. uint32_t reserved2: 30;
  93. };
  94. uint32_t val;
  95. } flash_ace2_attr;
  96. union {
  97. struct {
  98. uint32_t flash_ace3_attr: 2;
  99. uint32_t reserved2: 30;
  100. };
  101. uint32_t val;
  102. } flash_ace3_attr;
  103. uint32_t flash_ace0_addr; /**/
  104. uint32_t flash_ace1_addr; /**/
  105. uint32_t flash_ace2_addr; /**/
  106. uint32_t flash_ace3_addr; /**/
  107. union {
  108. struct {
  109. uint32_t flash_ace0_size:13;
  110. uint32_t reserved13: 19;
  111. };
  112. uint32_t val;
  113. } flash_ace0_size;
  114. union {
  115. struct {
  116. uint32_t flash_ace1_size:13;
  117. uint32_t reserved13: 19;
  118. };
  119. uint32_t val;
  120. } flash_ace1_size;
  121. union {
  122. struct {
  123. uint32_t flash_ace2_size:13;
  124. uint32_t reserved13: 19;
  125. };
  126. uint32_t val;
  127. } flash_ace2_size;
  128. union {
  129. struct {
  130. uint32_t flash_ace3_size:13;
  131. uint32_t reserved13: 19;
  132. };
  133. uint32_t val;
  134. } flash_ace3_size;
  135. uint32_t reserved_58;
  136. uint32_t reserved_5c;
  137. uint32_t reserved_60;
  138. uint32_t reserved_64;
  139. uint32_t reserved_68;
  140. uint32_t reserved_6c;
  141. uint32_t reserved_70;
  142. uint32_t reserved_74;
  143. uint32_t reserved_78;
  144. uint32_t reserved_7c;
  145. uint32_t reserved_80;
  146. uint32_t reserved_84;
  147. union {
  148. struct {
  149. uint32_t spi_mem_reject_int: 1;
  150. uint32_t spi_mem_reject_clr: 1;
  151. uint32_t spi_mem_reject_cde: 5;
  152. uint32_t reserved7: 25;
  153. };
  154. uint32_t val;
  155. } spi_mem_pms_ctrl;
  156. uint32_t spi_mem_reject_addr; /**/
  157. union {
  158. struct {
  159. uint32_t sdio_win_access_en: 1;
  160. uint32_t reserved1: 31;
  161. };
  162. uint32_t val;
  163. } sdio_ctrl;
  164. union {
  165. struct {
  166. uint32_t redcy_sig0: 31;
  167. uint32_t redcy_andor: 1;
  168. };
  169. uint32_t val;
  170. } redcy_sig0;
  171. union {
  172. struct {
  173. uint32_t redcy_sig1: 31;
  174. uint32_t redcy_nandor: 1;
  175. };
  176. uint32_t val;
  177. } redcy_sig1;
  178. union {
  179. struct {
  180. uint32_t agc_mem_force_pu: 1;
  181. uint32_t agc_mem_force_pd: 1;
  182. uint32_t pbus_mem_force_pu: 1;
  183. uint32_t pbus_mem_force_pd: 1;
  184. uint32_t dc_mem_force_pu: 1;
  185. uint32_t dc_mem_force_pd: 1;
  186. uint32_t reserved6: 26;
  187. };
  188. uint32_t val;
  189. } front_end_mem_pd;
  190. union {
  191. struct {
  192. uint32_t retention_link_addr: 27;
  193. uint32_t nobypass_cpu_iso_rst: 1;
  194. uint32_t reserved28: 4;
  195. };
  196. uint32_t val;
  197. } retention_ctrl;
  198. union {
  199. struct {
  200. uint32_t rom_clkgate_force_on: 2;
  201. uint32_t sram_clkgate_force_on: 4;
  202. uint32_t reserved6: 26;
  203. };
  204. uint32_t val;
  205. } clkgate_force_on;
  206. union {
  207. struct {
  208. uint32_t rom_power_down: 2;
  209. uint32_t sram_power_down: 4;
  210. uint32_t reserved6: 26;
  211. };
  212. uint32_t val;
  213. } mem_power_down;
  214. union {
  215. struct {
  216. uint32_t rom_power_up: 2;
  217. uint32_t sram_power_up: 4;
  218. uint32_t reserved6: 26;
  219. };
  220. uint32_t val;
  221. } mem_power_up;
  222. uint32_t rnd_data; /**/
  223. union {
  224. struct {
  225. uint32_t reserved0: 1;
  226. uint32_t peri_backup_flow_err: 2;
  227. uint32_t reserved3: 1;
  228. uint32_t peri_backup_burst_limit: 5;
  229. uint32_t peri_backup_tout_thres: 10;
  230. uint32_t peri_backup_size: 10;
  231. uint32_t peri_backup_start: 1;
  232. uint32_t peri_backup_to_mem: 1;
  233. uint32_t peri_backup_ena: 1;
  234. };
  235. uint32_t val;
  236. } peri_backup_config;
  237. uint32_t peri_backup_apb_addr; /**/
  238. uint32_t peri_backup_mem_addr; /**/
  239. union {
  240. struct {
  241. uint32_t peri_backup_done: 1;
  242. uint32_t peri_backup_err: 1;
  243. uint32_t reserved2: 30;
  244. };
  245. uint32_t val;
  246. } peri_backup_int_raw;
  247. union {
  248. struct {
  249. uint32_t peri_backup_done: 1;
  250. uint32_t peri_backup_err: 1;
  251. uint32_t reserved2: 30;
  252. };
  253. uint32_t val;
  254. } peri_backup_int_st;
  255. union {
  256. struct {
  257. uint32_t peri_backup_done: 1;
  258. uint32_t peri_backup_err: 1;
  259. uint32_t reserved2: 30;
  260. };
  261. uint32_t val;
  262. } peri_backup_int_ena;
  263. uint32_t reserved_cc;
  264. union {
  265. struct {
  266. uint32_t peri_backup_done: 1;
  267. uint32_t peri_backup_err: 1;
  268. uint32_t reserved2: 30;
  269. };
  270. uint32_t val;
  271. } peri_backup_int_clr;
  272. uint32_t reserved_d4;
  273. uint32_t reserved_d8;
  274. uint32_t reserved_dc;
  275. uint32_t reserved_e0;
  276. uint32_t reserved_e4;
  277. uint32_t reserved_e8;
  278. uint32_t reserved_ec;
  279. uint32_t reserved_f0;
  280. uint32_t reserved_f4;
  281. uint32_t reserved_f8;
  282. uint32_t reserved_fc;
  283. uint32_t reserved_100;
  284. uint32_t reserved_104;
  285. uint32_t reserved_108;
  286. uint32_t reserved_10c;
  287. uint32_t reserved_110;
  288. uint32_t reserved_114;
  289. uint32_t reserved_118;
  290. uint32_t reserved_11c;
  291. uint32_t reserved_120;
  292. uint32_t reserved_124;
  293. uint32_t reserved_128;
  294. uint32_t reserved_12c;
  295. uint32_t reserved_130;
  296. uint32_t reserved_134;
  297. uint32_t reserved_138;
  298. uint32_t reserved_13c;
  299. uint32_t reserved_140;
  300. uint32_t reserved_144;
  301. uint32_t reserved_148;
  302. uint32_t reserved_14c;
  303. uint32_t reserved_150;
  304. uint32_t reserved_154;
  305. uint32_t reserved_158;
  306. uint32_t reserved_15c;
  307. uint32_t reserved_160;
  308. uint32_t reserved_164;
  309. uint32_t reserved_168;
  310. uint32_t reserved_16c;
  311. uint32_t reserved_170;
  312. uint32_t reserved_174;
  313. uint32_t reserved_178;
  314. uint32_t reserved_17c;
  315. uint32_t reserved_180;
  316. uint32_t reserved_184;
  317. uint32_t reserved_188;
  318. uint32_t reserved_18c;
  319. uint32_t reserved_190;
  320. uint32_t reserved_194;
  321. uint32_t reserved_198;
  322. uint32_t reserved_19c;
  323. uint32_t reserved_1a0;
  324. uint32_t reserved_1a4;
  325. uint32_t reserved_1a8;
  326. uint32_t reserved_1ac;
  327. uint32_t reserved_1b0;
  328. uint32_t reserved_1b4;
  329. uint32_t reserved_1b8;
  330. uint32_t reserved_1bc;
  331. uint32_t reserved_1c0;
  332. uint32_t reserved_1c4;
  333. uint32_t reserved_1c8;
  334. uint32_t reserved_1cc;
  335. uint32_t reserved_1d0;
  336. uint32_t reserved_1d4;
  337. uint32_t reserved_1d8;
  338. uint32_t reserved_1dc;
  339. uint32_t reserved_1e0;
  340. uint32_t reserved_1e4;
  341. uint32_t reserved_1e8;
  342. uint32_t reserved_1ec;
  343. uint32_t reserved_1f0;
  344. uint32_t reserved_1f4;
  345. uint32_t reserved_1f8;
  346. uint32_t reserved_1fc;
  347. uint32_t reserved_200;
  348. uint32_t reserved_204;
  349. uint32_t reserved_208;
  350. uint32_t reserved_20c;
  351. uint32_t reserved_210;
  352. uint32_t reserved_214;
  353. uint32_t reserved_218;
  354. uint32_t reserved_21c;
  355. uint32_t reserved_220;
  356. uint32_t reserved_224;
  357. uint32_t reserved_228;
  358. uint32_t reserved_22c;
  359. uint32_t reserved_230;
  360. uint32_t reserved_234;
  361. uint32_t reserved_238;
  362. uint32_t reserved_23c;
  363. uint32_t reserved_240;
  364. uint32_t reserved_244;
  365. uint32_t reserved_248;
  366. uint32_t reserved_24c;
  367. uint32_t reserved_250;
  368. uint32_t reserved_254;
  369. uint32_t reserved_258;
  370. uint32_t reserved_25c;
  371. uint32_t reserved_260;
  372. uint32_t reserved_264;
  373. uint32_t reserved_268;
  374. uint32_t reserved_26c;
  375. uint32_t reserved_270;
  376. uint32_t reserved_274;
  377. uint32_t reserved_278;
  378. uint32_t reserved_27c;
  379. uint32_t reserved_280;
  380. uint32_t reserved_284;
  381. uint32_t reserved_288;
  382. uint32_t reserved_28c;
  383. uint32_t reserved_290;
  384. uint32_t reserved_294;
  385. uint32_t reserved_298;
  386. uint32_t reserved_29c;
  387. uint32_t reserved_2a0;
  388. uint32_t reserved_2a4;
  389. uint32_t reserved_2a8;
  390. uint32_t reserved_2ac;
  391. uint32_t reserved_2b0;
  392. uint32_t reserved_2b4;
  393. uint32_t reserved_2b8;
  394. uint32_t reserved_2bc;
  395. uint32_t reserved_2c0;
  396. uint32_t reserved_2c4;
  397. uint32_t reserved_2c8;
  398. uint32_t reserved_2cc;
  399. uint32_t reserved_2d0;
  400. uint32_t reserved_2d4;
  401. uint32_t reserved_2d8;
  402. uint32_t reserved_2dc;
  403. uint32_t reserved_2e0;
  404. uint32_t reserved_2e4;
  405. uint32_t reserved_2e8;
  406. uint32_t reserved_2ec;
  407. uint32_t reserved_2f0;
  408. uint32_t reserved_2f4;
  409. uint32_t reserved_2f8;
  410. uint32_t reserved_2fc;
  411. uint32_t reserved_300;
  412. uint32_t reserved_304;
  413. uint32_t reserved_308;
  414. uint32_t reserved_30c;
  415. uint32_t reserved_310;
  416. uint32_t reserved_314;
  417. uint32_t reserved_318;
  418. uint32_t reserved_31c;
  419. uint32_t reserved_320;
  420. uint32_t reserved_324;
  421. uint32_t reserved_328;
  422. uint32_t reserved_32c;
  423. uint32_t reserved_330;
  424. uint32_t reserved_334;
  425. uint32_t reserved_338;
  426. uint32_t reserved_33c;
  427. uint32_t reserved_340;
  428. uint32_t reserved_344;
  429. uint32_t reserved_348;
  430. uint32_t reserved_34c;
  431. uint32_t reserved_350;
  432. uint32_t reserved_354;
  433. uint32_t reserved_358;
  434. uint32_t reserved_35c;
  435. uint32_t reserved_360;
  436. uint32_t reserved_364;
  437. uint32_t reserved_368;
  438. uint32_t reserved_36c;
  439. uint32_t reserved_370;
  440. uint32_t reserved_374;
  441. uint32_t reserved_378;
  442. uint32_t reserved_37c;
  443. uint32_t reserved_380;
  444. uint32_t reserved_384;
  445. uint32_t reserved_388;
  446. uint32_t reserved_38c;
  447. uint32_t reserved_390;
  448. uint32_t reserved_394;
  449. uint32_t reserved_398;
  450. uint32_t reserved_39c;
  451. uint32_t reserved_3a0;
  452. uint32_t reserved_3a4;
  453. uint32_t reserved_3a8;
  454. uint32_t reserved_3ac;
  455. uint32_t reserved_3b0;
  456. uint32_t reserved_3b4;
  457. uint32_t reserved_3b8;
  458. uint32_t reserved_3bc;
  459. uint32_t reserved_3c0;
  460. uint32_t reserved_3c4;
  461. uint32_t reserved_3c8;
  462. uint32_t reserved_3cc;
  463. uint32_t reserved_3d0;
  464. uint32_t reserved_3d4;
  465. uint32_t reserved_3d8;
  466. uint32_t reserved_3dc;
  467. uint32_t reserved_3e0;
  468. uint32_t reserved_3e4;
  469. uint32_t reserved_3e8;
  470. uint32_t reserved_3ec;
  471. uint32_t reserved_3f0;
  472. uint32_t reserved_3f4;
  473. uint32_t reserved_3f8;
  474. uint32_t date; /*Version control*/
  475. } syscon_dev_t;
  476. extern syscon_dev_t SYSCON;
  477. #ifdef __cplusplus
  478. }
  479. #endif
  480. #endif /* _SOC_SYSCON_STRUCT_H_ */