power.h 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891
  1. /*
  2. * Copyright (C) 2011 Samsung Electronics
  3. * Heungjun Kim <riverful.kim@samsung.com>
  4. *
  5. * See file CREDITS for list of people who contributed to this
  6. * project.
  7. *
  8. * This program is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU General Public License as
  10. * published by the Free Software Foundation; either version 2 of
  11. * the License, or (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program; if not, write to the Free Software
  20. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21. * MA 02111-1307 USA
  22. */
  23. #ifndef __ASM_ARM_ARCH_POWER_H_
  24. #define __ASM_ARM_ARCH_POWER_H_
  25. #ifndef __ASSEMBLY__
  26. struct exynos4_power {
  27. unsigned int om_stat;
  28. unsigned char res1[0x8];
  29. unsigned int rtc_clko_sel;
  30. unsigned int gnss_rtc_out_ctrl;
  31. unsigned char res2[0x1ec];
  32. unsigned int system_power_down_ctrl;
  33. unsigned char res3[0x1];
  34. unsigned int system_power_down_option;
  35. unsigned char res4[0x1f4];
  36. unsigned int swreset;
  37. unsigned int rst_stat;
  38. unsigned char res5[0x1f8];
  39. unsigned int wakeup_stat;
  40. unsigned int eint_wakeup_mask;
  41. unsigned int wakeup_mask;
  42. unsigned char res6[0xf4];
  43. unsigned int hdmi_phy_control;
  44. unsigned int usbdevice_phy_control;
  45. unsigned int usbhost_phy_control;
  46. unsigned int dac_phy_control;
  47. unsigned int mipi_phy0_control;
  48. unsigned int mipi_phy1_control;
  49. unsigned int adc_phy_control;
  50. unsigned int pcie_phy_control;
  51. unsigned int sata_phy_control;
  52. unsigned char res7[0xdc];
  53. unsigned int inform0;
  54. unsigned int inform1;
  55. unsigned int inform2;
  56. unsigned int inform3;
  57. unsigned int inform4;
  58. unsigned int inform5;
  59. unsigned int inform6;
  60. unsigned int inform7;
  61. unsigned char res8[0x1e0];
  62. unsigned int pmu_debug;
  63. unsigned char res9[0x5fc];
  64. unsigned int arm_core0_sys_pwr_reg;
  65. unsigned char res10[0xc];
  66. unsigned int arm_core1_sys_pwr_reg;
  67. unsigned char res11[0x6c];
  68. unsigned int arm_common_sys_pwr_reg;
  69. unsigned char res12[0x3c];
  70. unsigned int arm_cpu_l2_0_sys_pwr_reg;
  71. unsigned int arm_cpu_l2_1_sys_pwr_reg;
  72. unsigned char res13[0x38];
  73. unsigned int cmu_aclkstop_sys_pwr_reg;
  74. unsigned int cmu_sclkstop_sys_pwr_reg;
  75. unsigned char res14[0x4];
  76. unsigned int cmu_reset_sys_pwr_reg;
  77. unsigned char res15[0x10];
  78. unsigned int apll_sysclk_sys_pwr_reg;
  79. unsigned int mpll_sysclk_sys_pwr_reg;
  80. unsigned int vpll_sysclk_sys_pwr_reg;
  81. unsigned int epll_sysclk_sys_pwr_reg;
  82. unsigned char res16[0x8];
  83. unsigned int cmu_clkstop_gps_alive_sys_pwr_reg;
  84. unsigned int cmu_reset_gps_alive_sys_pwr_reg;
  85. unsigned int cmu_clkstop_cam_sys_pwr_reg;
  86. unsigned int cmu_clkstop_tv_sys_pwr_reg;
  87. unsigned int cmu_clkstop_mfc_sys_pwr_reg;
  88. unsigned int cmu_clkstop_g3d_sys_pwr_reg;
  89. unsigned int cmu_clkstop_lcd0_sys_pwr_reg;
  90. unsigned int cmu_clkstop_lcd1_sys_pwr_reg;
  91. unsigned int cmu_clkstop_maudio_sys_pwr_reg;
  92. unsigned int cmu_clkstop_gps_sys_pwr_reg;
  93. unsigned int cmu_reset_cam_sys_pwr_reg;
  94. unsigned int cmu_reset_tv_sys_pwr_reg;
  95. unsigned int cmu_reset_mfc_sys_pwr_reg;
  96. unsigned int cmu_reset_g3d_sys_pwr_reg;
  97. unsigned int cmu_reset_lcd0_sys_pwr_reg;
  98. unsigned int cmu_reset_lcd1_sys_pwr_reg;
  99. unsigned int cmu_reset_maudio_sys_pwr_reg;
  100. unsigned int cmu_reset_gps_sys_pwr_reg;
  101. unsigned int top_bus_sys_pwr_reg;
  102. unsigned int top_retention_sys_pwr_reg;
  103. unsigned int top_pwr_sys_pwr_reg;
  104. unsigned char res17[0x1c];
  105. unsigned int logic_reset_sys_pwr_reg;
  106. unsigned char res18[0x14];
  107. unsigned int onenandxl_mem_sys_pwr_reg;
  108. unsigned int modemif_mem_sys_pwr_reg;
  109. unsigned char res19[0x4];
  110. unsigned int usbdevice_mem_sys_pwr_reg;
  111. unsigned int sdmmc_mem_sys_pwr_reg;
  112. unsigned int cssys_mem_sys_pwr_reg;
  113. unsigned int secss_mem_sys_pwr_reg;
  114. unsigned char res20[0x4];
  115. unsigned int pcie_mem_sys_pwr_reg;
  116. unsigned int sata_mem_sys_pwr_reg;
  117. unsigned char res21[0x18];
  118. unsigned int pad_retention_dram_sys_pwr_reg;
  119. unsigned int pad_retention_maudio_sys_pwr_reg;
  120. unsigned char res22[0x18];
  121. unsigned int pad_retention_gpio_sys_pwr_reg;
  122. unsigned int pad_retention_uart_sys_pwr_reg;
  123. unsigned int pad_retention_mmca_sys_pwr_reg;
  124. unsigned int pad_retention_mmcb_sys_pwr_reg;
  125. unsigned int pad_retention_ebia_sys_pwr_reg;
  126. unsigned int pad_retention_ebib_sys_pwr_reg;
  127. unsigned char res23[0x8];
  128. unsigned int pad_isolation_sys_pwr_reg;
  129. unsigned char res24[0x1c];
  130. unsigned int pad_alv_sel_sys_pwr_reg;
  131. unsigned char res25[0x1c];
  132. unsigned int xusbxti_sys_pwr_reg;
  133. unsigned int xxti_sys_pwr_reg;
  134. unsigned char res26[0x38];
  135. unsigned int ext_regulator_sys_pwr_reg;
  136. unsigned char res27[0x3c];
  137. unsigned int gpio_mode_sys_pwr_reg;
  138. unsigned char res28[0x3c];
  139. unsigned int gpio_mode_maudio_sys_pwr_reg;
  140. unsigned char res29[0x3c];
  141. unsigned int cam_sys_pwr_reg;
  142. unsigned int tv_sys_pwr_reg;
  143. unsigned int mfc_sys_pwr_reg;
  144. unsigned int g3d_sys_pwr_reg;
  145. unsigned int lcd0_sys_pwr_reg;
  146. unsigned int lcd1_sys_pwr_reg;
  147. unsigned int maudio_sys_pwr_reg;
  148. unsigned int gps_sys_pwr_reg;
  149. unsigned int gps_alive_sys_pwr_reg;
  150. unsigned char res30[0xc5c];
  151. unsigned int arm_core0_configuration;
  152. unsigned int arm_core0_status;
  153. unsigned int arm_core0_option;
  154. unsigned char res31[0x74];
  155. unsigned int arm_core1_configuration;
  156. unsigned int arm_core1_status;
  157. unsigned int arm_core1_option;
  158. unsigned char res32[0x37c];
  159. unsigned int arm_common_option;
  160. unsigned char res33[0x1f4];
  161. unsigned int arm_cpu_l2_0_configuration;
  162. unsigned int arm_cpu_l2_0_status;
  163. unsigned char res34[0x18];
  164. unsigned int arm_cpu_l2_1_configuration;
  165. unsigned int arm_cpu_l2_1_status;
  166. unsigned char res35[0xa00];
  167. unsigned int pad_retention_maudio_option;
  168. unsigned char res36[0xdc];
  169. unsigned int pad_retention_gpio_option;
  170. unsigned char res37[0x1c];
  171. unsigned int pad_retention_uart_option;
  172. unsigned char res38[0x1c];
  173. unsigned int pad_retention_mmca_option;
  174. unsigned char res39[0x1c];
  175. unsigned int pad_retention_mmcb_option;
  176. unsigned char res40[0x1c];
  177. unsigned int pad_retention_ebia_option;
  178. unsigned char res41[0x1c];
  179. unsigned int pad_retention_ebib_option;
  180. unsigned char res42[0x160];
  181. unsigned int ps_hold_control;
  182. unsigned char res43[0xf0];
  183. unsigned int xusbxti_configuration;
  184. unsigned int xusbxti_status;
  185. unsigned char res44[0x14];
  186. unsigned int xusbxti_duration;
  187. unsigned int xxti_configuration;
  188. unsigned int xxti_status;
  189. unsigned char res45[0x14];
  190. unsigned int xxti_duration;
  191. unsigned char res46[0x1dc];
  192. unsigned int ext_regulator_duration;
  193. unsigned char res47[0x5e0];
  194. unsigned int cam_configuration;
  195. unsigned int cam_status;
  196. unsigned int cam_option;
  197. unsigned char res48[0x14];
  198. unsigned int tv_configuration;
  199. unsigned int tv_status;
  200. unsigned int tv_option;
  201. unsigned char res49[0x14];
  202. unsigned int mfc_configuration;
  203. unsigned int mfc_status;
  204. unsigned int mfc_option;
  205. unsigned char res50[0x14];
  206. unsigned int g3d_configuration;
  207. unsigned int g3d_status;
  208. unsigned int g3d_option;
  209. unsigned char res51[0x14];
  210. unsigned int lcd0_configuration;
  211. unsigned int lcd0_status;
  212. unsigned int lcd0_option;
  213. unsigned char res52[0x14];
  214. unsigned int lcd1_configuration;
  215. unsigned int lcd1_status;
  216. unsigned int lcd1_option;
  217. unsigned char res53[0x34];
  218. unsigned int gps_configuration;
  219. unsigned int gps_status;
  220. unsigned int gps_option;
  221. unsigned char res54[0x14];
  222. unsigned int gps_alive_configuration;
  223. unsigned int gps_alive_status;
  224. unsigned int gps_alive_option;
  225. };
  226. struct exynos5_power {
  227. unsigned int om_stat;
  228. unsigned char res1[0x18];
  229. unsigned int rtc_clko_sel;
  230. unsigned int gnss_rtc_out_ctrl;
  231. unsigned char res2[0x1dc];
  232. unsigned int central_seq_configuration;
  233. unsigned int central_seq_status;
  234. unsigned int central_seq_option;
  235. unsigned char res3[0x14];
  236. unsigned int seq_transition0;
  237. unsigned int seq_transition1;
  238. unsigned int seq_transition2;
  239. unsigned int seq_transition3;
  240. unsigned int seq_transition4;
  241. unsigned int seq_transition5;
  242. unsigned int seq_transition6;
  243. unsigned int seq_transition7;
  244. unsigned int central_seq_dmc_configuration;
  245. unsigned int central_seq_dmc_status;
  246. unsigned int central_seq_dmc_option;
  247. unsigned char res4[0x14];
  248. unsigned int seq_dmc_transition0;
  249. unsigned int seq_dmc_transition1;
  250. unsigned int seq_dmc_transition2;
  251. unsigned int seq_dmc_transition3;
  252. unsigned int seq_dmc_transition4;
  253. unsigned int seq_dmc_transition5;
  254. unsigned int seq_dmc_transition6;
  255. unsigned int seq_dmc_transition7;
  256. unsigned char res5[0x180];
  257. unsigned int swreset;
  258. unsigned int rst_stat;
  259. unsigned int automatic_wdt_reset_disable;
  260. unsigned int mask_wdt_reset_request;
  261. unsigned int mask_wreset_request;
  262. unsigned char res6[0xec];
  263. unsigned int reset_sequencer_configuration;
  264. unsigned int reset_sequencer_status;
  265. unsigned int reset_sequencer_option;
  266. unsigned char res7[0xf4];
  267. unsigned int wakeup_stat;
  268. unsigned int eint_wakeup_mask;
  269. unsigned int wakeup_mask;
  270. unsigned int wakeup_interrupt;
  271. unsigned char res8[0x10];
  272. unsigned int wakeup_stat_dmc;
  273. unsigned int eint_wakeup_mask_dmc;
  274. unsigned int wakeup_mask_dmc;
  275. unsigned int wakeup_interrupt_dmc;
  276. unsigned char res9[0xd0];
  277. unsigned int hdmi_phy_control;
  278. unsigned int usbdrd_phy_control;
  279. unsigned int usbhost_phy_control;
  280. unsigned int efnand_phy_control;
  281. unsigned int mipi_phy0_control;
  282. unsigned int mipi_phy1_control;
  283. unsigned int adc_phy_control;
  284. unsigned int mtcadc_phy_control;
  285. unsigned int dptx_phy_control;
  286. unsigned int sata_phy_control;
  287. unsigned char res10[0xd8];
  288. unsigned int inform0;
  289. unsigned int inform1;
  290. unsigned int inform2;
  291. unsigned int inform3;
  292. unsigned int sysip_dat0;
  293. unsigned int sysip_dat1;
  294. unsigned int sysip_dat2;
  295. unsigned int sysip_dat3;
  296. unsigned char res11[0xe0];
  297. unsigned int pmu_spare0;
  298. unsigned int pmu_spare1;
  299. unsigned int pmu_spare2;
  300. unsigned int pmu_spare3;
  301. unsigned char res12[0x70];
  302. unsigned int irom_data_reg0;
  303. unsigned int irom_data_reg1;
  304. unsigned int irom_data_reg2;
  305. unsigned int irom_data_reg3;
  306. unsigned char res13[0x70];
  307. unsigned int pmu_debug;
  308. unsigned char res14[0x5fc];
  309. unsigned int arm_core0_sys_pwr_reg;
  310. unsigned int dis_irq_arm_core0_local_sys_pwr_reg;
  311. unsigned int dis_irq_arm_core0_central_sys_pwr_reg;
  312. unsigned char res15[0x4];
  313. unsigned int arm_core1_sys_pwr_reg;
  314. unsigned int dis_irq_arm_core1_local_sys_pwr_reg;
  315. unsigned int dis_irq_arm_core1_central_sys_pwr_reg;
  316. unsigned char res16[0x24];
  317. unsigned int fsys_arm_sys_pwr_reg;
  318. unsigned int dis_irq_fsys_arm_local_sys_pwr_reg;
  319. unsigned int dis_irq_fsys_arm_central_sys_pwr_reg;
  320. unsigned char res17[0x4];
  321. unsigned int isp_arm_sys_pwr_reg;
  322. unsigned int dis_irq_isp_arm_local_sys_pwr_reg;
  323. unsigned int dis_irq_isp_arm_central_sys_pwr_reg;
  324. unsigned char res18[0x24];
  325. unsigned int arm_common_sys_pwr_reg;
  326. unsigned char res19[0x3c];
  327. unsigned int arm_l2_sys_pwr_reg;
  328. unsigned char res20[0x3c];
  329. unsigned int cmu_aclkstop_sys_pwr_reg;
  330. unsigned int cmu_sclkstop_sys_pwr_reg;
  331. unsigned char res21[0x4];
  332. unsigned int cmu_reset_sys_pwr_reg;
  333. unsigned char res22[0x10];
  334. unsigned int cmu_aclkstop_dmc_sys_pwr_reg;
  335. unsigned int cmu_sclkstop_dmc_sys_pwr_reg;
  336. unsigned char res23[0x4];
  337. unsigned int cmu_reset_dmc_sys_pwr_reg;
  338. unsigned char res24[0x8];
  339. unsigned int ddrphy_dlllock_sys_pwr_reg;
  340. unsigned char res25[0x4];
  341. unsigned int apll_sysclk_sys_pwr_reg;
  342. unsigned int mpll_sysclk_sys_pwr_reg;
  343. unsigned int vpll_sysclk_sys_pwr_reg;
  344. unsigned int epll_sysclk_sys_pwr_reg;
  345. unsigned int bpll_sysclk_sys_pwr_reg;
  346. unsigned int cpll_sysclk_sys_pwr_reg;
  347. unsigned int gpll_sysclk_sys_pwr_reg;
  348. unsigned char res26[0x8];
  349. unsigned int mplluser_sysclk_sys_pwr_reg;
  350. unsigned char res27[0x8];
  351. unsigned int bplluser_sysclk_sys_pwr_reg;
  352. unsigned char res28[0xc];
  353. unsigned int top_bus_sys_pwr_reg;
  354. unsigned int top_retention_sys_pwr_reg;
  355. unsigned int top_pwr_sys_pwr_reg;
  356. unsigned char res29[0x4];
  357. unsigned int top_bus_dmc_sys_pwr_reg;
  358. unsigned int top_retention_dmc_sys_pwr_reg;
  359. unsigned int top_pwr_dmc_sys_pwr_reg;
  360. unsigned char res30[0x4];
  361. unsigned int logic_reset_sys_pwr_reg;
  362. unsigned int oscclk_gate_sys_pwr_reg;
  363. unsigned char res31[0x8];
  364. unsigned int logic_reset_dmc_sys_pwr_reg;
  365. unsigned int oscclk_gate_dmc_sys_pwr_reg;
  366. unsigned char res32[0x8];
  367. unsigned int usbotg_mem_sys_pwr_reg;
  368. unsigned char res33[0x4];
  369. unsigned int g2d_mem_sys_pwr_reg;
  370. unsigned int usbdrd_mem_sys_pwr_reg;
  371. unsigned int efnand_mem_sys_pwr_reg;
  372. unsigned int cssys_mem_sys_pwr_reg;
  373. unsigned int secss_mem_sys_pwr_reg;
  374. unsigned int rotator_mem_sys_pwr_reg;
  375. unsigned int intram_mem_sys_pwr_reg;
  376. unsigned int introm_mem_sys_pwr_reg;
  377. unsigned int jpeg_mem_sys_pwr_reg;
  378. unsigned int hsi_mem_sys_pwr_reg;
  379. unsigned char res34[0x4];
  380. unsigned int mcuiop_mem_sys_pwr_reg;
  381. unsigned char res35[0x4];
  382. unsigned int sata_mem_sys_pwr_reg;
  383. unsigned int pad_retention_dram_sys_pwr_reg;
  384. unsigned int pad_retention_mau_sys_pwr_reg;
  385. unsigned int pad_retention_jtag_sys_pwr_reg;
  386. unsigned char res36[0xc];
  387. unsigned int pad_retention_mmc2_sys_pwr_reg;
  388. unsigned int pad_retention_mmc3_sys_pwr_reg;
  389. unsigned int pad_retention_gpio_sys_pwr_reg;
  390. unsigned int pad_retention_uart_sys_pwr_reg;
  391. unsigned int pad_retention_mmc0_sys_pwr_reg;
  392. unsigned int pad_retention_mmc1_sys_pwr_reg;
  393. unsigned int pad_retention_ebia_sys_pwr_reg;
  394. unsigned int pad_retention_ebib_sys_pwr_reg;
  395. unsigned int pad_retention_spi_sys_pwr_reg;
  396. unsigned int pad_retention_gpio_dmc_sys_pwr_reg;
  397. unsigned int pad_isolation_sys_pwr_reg;
  398. unsigned char res37[0xc];
  399. unsigned int pad_isolation_dmc_sys_pwr_reg;
  400. unsigned char res38[0xc];
  401. unsigned int pad_alv_sel_sys_pwr_reg;
  402. unsigned char res39[0x20];
  403. unsigned int xxti_sys_pwr_reg;
  404. unsigned char res40[0x38];
  405. unsigned int ext_regulator_sys_pwr_reg;
  406. unsigned char res41[0x3c];
  407. unsigned int gpio_mode_sys_pwr_reg;
  408. unsigned char res42[0x1c];
  409. unsigned int gpio_mode_dmc_sys_pwr_reg;
  410. unsigned char res43[0x1c];
  411. unsigned int gpio_mode_mau_sys_pwr_reg;
  412. unsigned int top_asb_reset_sys_pwr_reg;
  413. unsigned int top_asb_isolation_sys_pwr_reg;
  414. unsigned char res44[0xb4];
  415. unsigned int gscl_sys_pwr_reg;
  416. unsigned int isp_sys_pwr_reg;
  417. unsigned int mfc_sys_pwr_reg;
  418. unsigned int g3d_sys_pwr_reg;
  419. unsigned char res45[0x4];
  420. unsigned int disp1_sys_pwr_reg;
  421. unsigned int mau_sys_pwr_reg;
  422. unsigned char res46[0x64];
  423. unsigned int cmu_clkstop_gscl_sys_pwr_reg;
  424. unsigned int cmu_clkstop_isp_sys_pwr_reg;
  425. unsigned int cmu_clkstop_mfc_sys_pwr_reg;
  426. unsigned int cmu_clkstop_g3d_sys_pwr_reg;
  427. unsigned char res47[0x4];
  428. unsigned int cmu_clkstop_disp1_sys_pwr_reg;
  429. unsigned int cmu_clkstop_mau_sys_pwr_reg;
  430. unsigned char res48[0x24];
  431. unsigned int cmu_sysclk_gscl_sys_pwr_reg;
  432. unsigned int cmu_sysclk_isp_sys_pwr_reg;
  433. unsigned int cmu_sysclk_mfc_sys_pwr_reg;
  434. unsigned int cmu_sysclk_g3d_sys_pwr_reg;
  435. unsigned char res49[0x4];
  436. unsigned int cmu_sysclk_disp1_sys_pwr_reg;
  437. unsigned int cmu_sysclk_mau_sys_pwr_reg;
  438. unsigned char res50[0xa4];
  439. unsigned int cmu_reset_gscl_sys_pwr_reg;
  440. unsigned int cmu_reset_isp_sys_pwr_reg;
  441. unsigned int cmu_reset_mfc_sys_pwr_reg;
  442. unsigned int cmu_reset_g3d_sys_pwr_reg;
  443. unsigned char res51[0x4];
  444. unsigned int cmu_reset_disp1_sys_pwr_reg;
  445. unsigned int cmu_reset_mau_sys_pwr_reg;
  446. unsigned char res52[0xa64];
  447. unsigned int arm_core0_configuration;
  448. unsigned int arm_core0_status;
  449. unsigned int arm_core0_option;
  450. unsigned char res53[0x14];
  451. unsigned int dis_irq_arm_core0_local_configuration;
  452. unsigned int dis_irq_arm_core0_local_status;
  453. unsigned int dis_irq_arm_core0_local_option;
  454. unsigned char res54[0x14];
  455. unsigned int dis_irq_arm_core0_central_configuration;
  456. unsigned int dis_irq_arm_core0_central_status;
  457. unsigned int dis_irq_arm_core0_central_option;
  458. unsigned char res55[0x34];
  459. unsigned int arm_core1_configuration;
  460. unsigned int arm_core1_status;
  461. unsigned int arm_core1_option;
  462. unsigned char res56[0x14];
  463. unsigned int dis_irq_arm_core1_local_configuration;
  464. unsigned int dis_irq_arm_core1_local_status;
  465. unsigned int dis_irq_arm_core1_local_option;
  466. unsigned char res57[0x14];
  467. unsigned int dis_irq_arm_core1_central_configuration;
  468. unsigned int dis_irq_arm_core1_central_status;
  469. unsigned int dis_irq_arm_core1_central_option;
  470. unsigned char res58[0x134];
  471. unsigned int fsys_arm_configuration;
  472. unsigned int fsys_arm_status;
  473. unsigned int fsys_arm_option;
  474. unsigned char res59[0x14];
  475. unsigned int dis_irq_fsys_arm_local_configuration;
  476. unsigned int dis_irq_fsys_arm_local_status;
  477. unsigned int dis_irq_fsys_arm_local_option;
  478. unsigned char res60[0x14];
  479. unsigned int dis_irq_fsys_arm_central_configuration;
  480. unsigned int dis_irq_fsys_arm_central_status;
  481. unsigned int dis_irq_fsys_arm_central_option;
  482. unsigned char res61[0x34];
  483. unsigned int isp_arm_configuration;
  484. unsigned int isp_arm_status;
  485. unsigned int isp_arm_option;
  486. unsigned char res62[0x14];
  487. unsigned int dis_irq_isp_arm_local_configuration;
  488. unsigned int dis_irq_isp_arm_local_status;
  489. unsigned int dis_irq_isp_arm_local_option;
  490. unsigned char res63[0x14];
  491. unsigned int dis_irq_isp_arm_central_configuration;
  492. unsigned int dis_irq_isp_arm_central_status;
  493. unsigned int dis_irq_isp_arm_central_option;
  494. unsigned char res64[0x134];
  495. unsigned int arm_common_configuration;
  496. unsigned int arm_common_status;
  497. unsigned int arm_common_option;
  498. unsigned char res65[0x1f4];
  499. unsigned int arm_l2_configuration;
  500. unsigned int arm_l2_status;
  501. unsigned int arm_l2_option;
  502. unsigned char res66[0x1f4];
  503. unsigned int cmu_aclkstop_configuration;
  504. unsigned int cmu_aclkstop_status;
  505. unsigned int cmu_aclkstop_option;
  506. unsigned char res67[0x14];
  507. unsigned int cmu_sclkstop_configuration;
  508. unsigned int cmu_sclkstop_status;
  509. unsigned int cmu_sclkstop_option;
  510. unsigned char res68[0x34];
  511. unsigned int cmu_reset_configuration;
  512. unsigned int cmu_reset_status;
  513. unsigned int cmu_reset_option;
  514. unsigned char res69[0x94];
  515. unsigned int cmu_aclkstop_dmc_configuration;
  516. unsigned int cmu_aclkstop_dmc_status;
  517. unsigned int cmu_aclkstop_dmc_option;
  518. unsigned char res70[0x14];
  519. unsigned int cmu_sclkstop_dmc_configuration;
  520. unsigned int cmu_sclkstop_dmc_status;
  521. unsigned int cmu_sclkstop_dmc_option;
  522. unsigned char res71[0x34];
  523. unsigned int cmu_reset_dmc_configuration;
  524. unsigned int cmu_reset_dmc_status;
  525. unsigned int cmu_reset_dmc_option;
  526. unsigned char res72[0x54];
  527. unsigned int ddrphy_dlllock_configuration;
  528. unsigned int ddrphy_dlllock_status;
  529. unsigned int ddrphy_dlllock_option;
  530. unsigned char res73[0x34];
  531. unsigned int apll_sysclk_configuration;
  532. unsigned int apll_sysclk_status;
  533. unsigned int apll_sysclk_option;
  534. unsigned char res74[0x18];
  535. unsigned int mpll_sysclk_status;
  536. unsigned int mpll_sysclk_option;
  537. unsigned char res75[0x14];
  538. unsigned int vpll_sysclk_configuration;
  539. unsigned int vpll_sysclk_status;
  540. unsigned int vpll_sysclk_option;
  541. unsigned char res76[0x14];
  542. unsigned int epll_sysclk_configuration;
  543. unsigned int epll_sysclk_status;
  544. unsigned int epll_sysclk_option;
  545. unsigned char res77[0x14];
  546. unsigned int bpll_sysclk_configuration;
  547. unsigned int bpll_sysclk_status;
  548. unsigned int bpll_sysclk_option;
  549. unsigned char res78[0x14];
  550. unsigned int cpll_sysclk_configuration;
  551. unsigned int cpll_sysclk_status;
  552. unsigned int cpll_sysclk_option;
  553. unsigned char res79[0x14];
  554. unsigned int gpll_sysclk_configuration;
  555. unsigned int gpll_sysclk_status;
  556. unsigned int gpll_sysclk_option;
  557. unsigned char res80[0x54];
  558. unsigned int mplluser_sysclk_configuration;
  559. unsigned int mplluser_sysclk_status;
  560. unsigned int mplluser_sysclk_option;
  561. unsigned char res81[0x54];
  562. unsigned int bplluser_sysclk_configuration;
  563. unsigned int bplluser_sysclk_status;
  564. unsigned int bplluser_sysclk_option;
  565. unsigned char res82[0x74];
  566. unsigned int top_bus_configuration;
  567. unsigned int top_bus_status;
  568. unsigned int top_bus_option;
  569. unsigned char res83[0x14];
  570. unsigned int top_retention_configuration;
  571. unsigned int top_retention_status;
  572. unsigned int top_retention_option;
  573. unsigned char res84[0x14];
  574. unsigned int top_pwr_configuration;
  575. unsigned int top_pwr_status;
  576. unsigned int top_pwr_option;
  577. unsigned char res85[0x34];
  578. unsigned int top_bus_dmc_configuration;
  579. unsigned int top_bus_dmc_status;
  580. unsigned int top_bus_dmc_option;
  581. unsigned char res86[0x14];
  582. unsigned int top_retention_dmc_configuration;
  583. unsigned int top_retention_dmc_status;
  584. unsigned int top_retention_dmc_option;
  585. unsigned char res87[0x14];
  586. unsigned int top_pwr_dmc_configuration;
  587. unsigned int top_pwr_dmc_status;
  588. unsigned int top_pwr_dmc_option;
  589. unsigned char res88[0x34];
  590. unsigned int logic_reset_configuration;
  591. unsigned int logic_reset_status;
  592. unsigned int logic_reset_option;
  593. unsigned char res89[0x14];
  594. unsigned int oscclk_gate_configuration;
  595. unsigned int oscclk_gate_status;
  596. unsigned int oscclk_gate_option;
  597. unsigned char res90[0x54];
  598. unsigned int logic_reset_dmc_configuration;
  599. unsigned int logic_reset_dmc_status;
  600. unsigned int logic_reset_dmc_option;
  601. unsigned char res91[0x14];
  602. unsigned int oscclk_gate_dmc_configuration;
  603. unsigned int oscclk_gate_dmc_status;
  604. unsigned int oscclk_gate_dmc_option;
  605. unsigned char res92[0x54];
  606. unsigned int usbotg_mem_configuration;
  607. unsigned int usbotg_mem_status;
  608. unsigned int usbotg_mem_option;
  609. unsigned char res93[0x34];
  610. unsigned int g2d_mem_configuration;
  611. unsigned int g2d_mem_status;
  612. unsigned int g2d_mem_option;
  613. unsigned char res94[0x14];
  614. unsigned int usbdrd_mem_configuration;
  615. unsigned int usbdrd_mem_status;
  616. unsigned int usbdrd_mem_option;
  617. unsigned char res95[0x14];
  618. unsigned int efnand_mem_configuration;
  619. unsigned int efnand_mem_status;
  620. unsigned int efnand_mem_option;
  621. unsigned char res96[0x14];
  622. unsigned int cssys_mem_configuration;
  623. unsigned int cssys_mem_status;
  624. unsigned int cssys_mem_option;
  625. unsigned char res97[0x14];
  626. unsigned int secss_mem_configuration;
  627. unsigned int secss_mem_status;
  628. unsigned int secss_mem_option;
  629. unsigned char res98[0x14];
  630. unsigned int rotator_mem_configuration;
  631. unsigned int rotator_mem_status;
  632. unsigned int rotator_mem_option;
  633. unsigned char res99[0x14];
  634. unsigned int intram_mem_configuration;
  635. unsigned int intram_mem_status;
  636. unsigned int intram_mem_option;
  637. unsigned char res100[0x14];
  638. unsigned int introm_mem_configuration;
  639. unsigned int introm_mem_status;
  640. unsigned int introm_mem_option;
  641. unsigned char res101[0x14];
  642. unsigned int jpeg_mem_configuration;
  643. unsigned int jpeg_mem_status;
  644. unsigned int jpeg_mem_option;
  645. unsigned char res102[0x14];
  646. unsigned int hsi_mem_configuration;
  647. unsigned int hsi_mem_status;
  648. unsigned int hsi_mem_option;
  649. unsigned char res103[0x34];
  650. unsigned int mcuiop_mem_configuration;
  651. unsigned int mcuiop_mem_status;
  652. unsigned int mcuiop_mem_option;
  653. unsigned char res104[0x14];
  654. unsigned int sata_mem_configuration;
  655. unsigned int sata_mem_status;
  656. unsigned int sata_mem_option;
  657. unsigned char res105[0x34];
  658. unsigned int pad_retention_dram_configuration;
  659. unsigned int pad_retention_dram_status;
  660. unsigned int pad_retention_dram_option;
  661. unsigned char res106[0x14];
  662. unsigned int pad_retention_mau_configuration;
  663. unsigned int pad_retention_mau_status;
  664. unsigned int pad_retention_mau_option;
  665. unsigned char res107[0x14];
  666. unsigned int pad_retention_jtag_configuration;
  667. unsigned int pad_retention_jtag_status;
  668. unsigned int pad_retention_jtag_option;
  669. unsigned char res108[0x74];
  670. unsigned int pad_retention_mmc2_configuration;
  671. unsigned int pad_retention_mmc2_status;
  672. unsigned int pad_retention_mmc2_option;
  673. unsigned char res109[0x14];
  674. unsigned int pad_retention_mmc3_configuration;
  675. unsigned int pad_retention_mmc3_status;
  676. unsigned int pad_retention_mmc3_option;
  677. unsigned char res110[0x14];
  678. unsigned int pad_retention_gpio_configuration;
  679. unsigned int pad_retention_gpio_status;
  680. unsigned int pad_retention_gpio_option;
  681. unsigned char res111[0x14];
  682. unsigned int pad_retention_uart_configuration;
  683. unsigned int pad_retention_uart_status;
  684. unsigned int pad_retention_uart_option;
  685. unsigned char res112[0x14];
  686. unsigned int pad_retention_mmc0_configuration;
  687. unsigned int pad_retention_mmc0_status;
  688. unsigned int pad_retention_mmc0_option;
  689. unsigned char res113[0x14];
  690. unsigned int pad_retention_mmc1_configuration;
  691. unsigned int pad_retention_mmc1_status;
  692. unsigned int pad_retention_mmc1_option;
  693. unsigned char res114[0x14];
  694. unsigned int pad_retention_ebia_configuration;
  695. unsigned int pad_retention_ebia_status;
  696. unsigned int pad_retention_ebia_option;
  697. unsigned char res115[0x14];
  698. unsigned int pad_retention_ebib_configuration;
  699. unsigned int pad_retention_ebib_status;
  700. unsigned int pad_retention_ebib_option;
  701. unsigned char res116[0x14];
  702. unsigned int pad_retention_spi_configuration;
  703. unsigned int pad_retention_spi_status;
  704. unsigned int pad_retention_spi_option;
  705. unsigned char res117[0x14];
  706. unsigned int pad_retention_gpio_dmc_configuration;
  707. unsigned int pad_retention_gpio_dmc_status;
  708. unsigned int pad_retention_gpio_dmc_option;
  709. unsigned char res118[0x14];
  710. unsigned int pad_isolation_configuration;
  711. unsigned int pad_isolation_status;
  712. unsigned int pad_isolation_option;
  713. unsigned char res119[0x74];
  714. unsigned int pad_isolation_dmc_configuration;
  715. unsigned int pad_isolation_dmc_status;
  716. unsigned int pad_isolation_dmc_option;
  717. unsigned char res120[0x74];
  718. unsigned int pad_alv_sel_configuration;
  719. unsigned int pad_alv_sel_status;
  720. unsigned int pad_alv_sel_option0;
  721. unsigned int ps_hold_control;
  722. unsigned char res130[0x110];
  723. unsigned int xxti_configuration;
  724. unsigned int xxti_status;
  725. unsigned int xxti_option;
  726. unsigned char res131[0x10];
  727. unsigned int xxti_duration3;
  728. unsigned char res132[0x1c0];
  729. unsigned int ext_regulator_configuration;
  730. unsigned int ext_regulator_status;
  731. unsigned int ext_regulator_option;
  732. unsigned char res133[0x10];
  733. unsigned int ext_regulator_duration3;
  734. unsigned char res134[0x1e0];
  735. unsigned int gpio_mode_configuration;
  736. unsigned int gpio_mode_status;
  737. unsigned int gpio_mode_option;
  738. unsigned char res135[0xf4];
  739. unsigned int gpio_mode_dmc_configuration;
  740. unsigned int gpio_mode_dmc_status;
  741. unsigned int gpio_mode_dmc_option;
  742. unsigned char res136[0xd4];
  743. unsigned int gpio_mode_mau_configuration;
  744. unsigned int gpio_mode_mau_status;
  745. unsigned int gpio_mode_mau_option;
  746. unsigned char res137[0x14];
  747. unsigned int top_asb_reset_configuration;
  748. unsigned int top_asb_reset_status;
  749. unsigned int top_asb_reset_option;
  750. unsigned char res138[0x14];
  751. unsigned int top_asb_isolation_configuration;
  752. unsigned int top_asb_isolation_status;
  753. unsigned int top_asb_isolation_option;
  754. unsigned char res139[0x5d4];
  755. unsigned int gscl_configuration;
  756. unsigned int gscl_status;
  757. unsigned int gscl_option;
  758. unsigned char res140[0x14];
  759. unsigned int isp_configuration;
  760. unsigned int isp_status;
  761. unsigned int isp_option;
  762. unsigned char res141[0x14];
  763. unsigned int mfc_configuration;
  764. unsigned int mfc_status;
  765. unsigned int mfc_option;
  766. unsigned char res142[0x14];
  767. unsigned int g3d_configuration;
  768. unsigned int g3d_status;
  769. unsigned int g3d_option;
  770. unsigned char res143[0x34];
  771. unsigned int disp1_configuration;
  772. unsigned int disp1_status;
  773. unsigned int disp1_option;
  774. unsigned char res144[0x14];
  775. unsigned int mau_configuration;
  776. unsigned int mau_status;
  777. unsigned int mau_option;
  778. unsigned char res145[0x334];
  779. unsigned int cmu_clkstop_gscl_configuration;
  780. unsigned int cmu_clkstop_gscl_status;
  781. unsigned int cmu_clkstop_gscl_option;
  782. unsigned char res146[0x14];
  783. unsigned int cmu_clkstop_isp_configuration;
  784. unsigned int cmu_clkstop_isp_status;
  785. unsigned int cmu_clkstop_isp_option;
  786. unsigned char res147[0x14];
  787. unsigned int cmu_clkstop_mfc_configuration;
  788. unsigned int cmu_clkstop_mfc_status;
  789. unsigned int cmu_clkstop_mfc_option;
  790. unsigned char res148[0x14];
  791. unsigned int cmu_clkstop_g3d_configuration;
  792. unsigned int cmu_clkstop_g3d_status;
  793. unsigned int cmu_clkstop_g3d_option;
  794. unsigned char res149[0x34];
  795. unsigned int cmu_clkstop_disp1_configuration;
  796. unsigned int cmu_clkstop_disp1_status;
  797. unsigned int cmu_clkstop_disp1_option;
  798. unsigned char res150[0x14];
  799. unsigned int cmu_clkstop_mau_configuration;
  800. unsigned int cmu_clkstop_mau_status;
  801. unsigned int cmu_clkstop_mau_option;
  802. unsigned char res151[0x134];
  803. unsigned int cmu_sysclk_gscl_configuration;
  804. unsigned int cmu_sysclk_gscl_status;
  805. unsigned int cmu_sysclk_gscl_option;
  806. unsigned char res152[0x18];
  807. unsigned int cmu_sysclk_isp_status;
  808. unsigned int cmu_sysclk_isp_option;
  809. unsigned char res153[0x18];
  810. unsigned int cmu_sysclk_mfc_status;
  811. unsigned int cmu_sysclk_mfc_option;
  812. unsigned char res154[0x18];
  813. unsigned int cmu_sysclk_g3d_status;
  814. unsigned int cmu_sysclk_g3d_option;
  815. unsigned char res155[0x38];
  816. unsigned int cmu_sysclk_disp1_status;
  817. unsigned int cmu_sysclk_disp1_option;
  818. unsigned char res156[0x18];
  819. unsigned int cmu_sysclk_mau_status;
  820. unsigned int cmu_sysclk_mau_option;
  821. unsigned char res157[0x534];
  822. unsigned int cmu_reset_gscl_configuration;
  823. unsigned int cmu_reset_gscl_status;
  824. unsigned int cmu_reset_gscl_option;
  825. unsigned char res158[0x14];
  826. unsigned int cmu_reset_isp_configuration;
  827. unsigned int cmu_reset_isp_status;
  828. unsigned int cmu_reset_isp_option;
  829. unsigned char res159[0x14];
  830. unsigned int cmu_reset_mfc_configuration;
  831. unsigned int cmu_reset_mfc_status;
  832. unsigned int cmu_reset_mfc_option;
  833. unsigned char res160[0x14];
  834. unsigned int cmu_reset_g3d_configuration;
  835. unsigned int cmu_reset_g3d_status;
  836. unsigned int cmu_reset_g3d_option;
  837. unsigned char res161[0x34];
  838. unsigned int cmu_reset_disp1_configuration;
  839. unsigned int cmu_reset_disp1_status;
  840. unsigned int cmu_reset_disp1_option;
  841. unsigned char res162[0x14];
  842. unsigned int cmu_reset_mau_configuration;
  843. unsigned int cmu_reset_mau_status;
  844. unsigned int cmu_reset_mau_option;
  845. unsigned char res163[0x24];
  846. };
  847. #endif /* __ASSEMBLY__ */
  848. void set_mipi_phy_ctrl(unsigned int dev_index, unsigned int enable);
  849. #define EXYNOS_MIPI_PHY_ENABLE (1 << 0)
  850. #define EXYNOS_MIPI_PHY_SRESETN (1 << 1)
  851. #define EXYNOS_MIPI_PHY_MRESETN (1 << 2)
  852. void set_usbhost_phy_ctrl(unsigned int enable);
  853. /* Enables hardware tripping to power off the system when TMU fails */
  854. void set_hw_thermal_trip(void);
  855. #define POWER_USB_HOST_PHY_CTRL_EN (1 << 0)
  856. #define POWER_USB_HOST_PHY_CTRL_DISABLE (0 << 0)
  857. void set_dp_phy_ctrl(unsigned int enable);
  858. #define EXYNOS_DP_PHY_ENABLE (1 << 0)
  859. #define EXYNOS_PS_HOLD_CONTROL_DATA_HIGH (1 << 8)
  860. #define POWER_ENABLE_HW_TRIP (1UL << 31)
  861. /*
  862. * Set ps_hold data driving value high
  863. * This enables the machine to stay powered on
  864. * after the initial power-on condition goes away
  865. * (e.g. power button).
  866. */
  867. void set_ps_hold_ctrl(void);
  868. /* PMU_DEBUG bits [12:8] = 0x1000 selects XXTI clock source */
  869. #define PMU_DEBUG_XXTI 0x1000
  870. /* Mask bit[12:8] for xxti clock selection */
  871. #define PMU_DEBUG_CLKOUT_SEL_MASK 0x1f00
  872. /*
  873. * Pmu debug is used for xclkout, enable xclkout with
  874. * source as XXTI
  875. */
  876. void set_xclkout(void);
  877. #endif