system_manager_s10.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /* SPDX-License-Identifier: GPL-2.0
  2. *
  3. * Copyright (C) 2016-2018 Intel Corporation <www.intel.com>
  4. *
  5. */
  6. #ifndef _SYSTEM_MANAGER_S10_
  7. #define _SYSTEM_MANAGER_S10_
  8. void sysmgr_pinmux_init(void);
  9. void populate_sysmgr_fpgaintf_module(void);
  10. void populate_sysmgr_pinmux(void);
  11. void sysmgr_pinmux_table_sel(const u32 **table, unsigned int *table_len);
  12. void sysmgr_pinmux_table_ctrl(const u32 **table, unsigned int *table_len);
  13. void sysmgr_pinmux_table_fpga(const u32 **table, unsigned int *table_len);
  14. void sysmgr_pinmux_table_delay(const u32 **table, unsigned int *table_len);
  15. struct socfpga_system_manager {
  16. /* System Manager Module */
  17. u32 siliconid1; /* 0x00 */
  18. u32 siliconid2;
  19. u32 wddbg;
  20. u32 _pad_0xc;
  21. u32 mpu_status; /* 0x10 */
  22. u32 mpu_ace;
  23. u32 _pad_0x18_0x1c[2];
  24. u32 dma; /* 0x20 */
  25. u32 dma_periph;
  26. /* SDMMC Controller Group */
  27. u32 sdmmcgrp_ctrl;
  28. u32 sdmmcgrp_l3master;
  29. /* NAND Flash Controller Register Group */
  30. u32 nandgrp_bootstrap; /* 0x30 */
  31. u32 nandgrp_l3master;
  32. /* USB Controller Group */
  33. u32 usb0_l3master;
  34. u32 usb1_l3master;
  35. /* EMAC Group */
  36. u32 emac_gbl; /* 0x40 */
  37. u32 emac0;
  38. u32 emac1;
  39. u32 emac2;
  40. u32 emac0_ace; /* 0x50 */
  41. u32 emac1_ace;
  42. u32 emac2_ace;
  43. u32 nand_axuser;
  44. u32 _pad_0x60_0x64[2]; /* 0x60 */
  45. /* FPGA interface Group */
  46. u32 fpgaintf_en_1;
  47. u32 fpgaintf_en_2;
  48. u32 fpgaintf_en_3; /* 0x70 */
  49. u32 dma_l3master;
  50. u32 etr_l3master;
  51. u32 _pad_0x7c;
  52. u32 sec_ctrl_slt; /* 0x80 */
  53. u32 osc_trim;
  54. u32 _pad_0x88_0x8c[2];
  55. /* ECC Group */
  56. u32 ecc_intmask_value; /* 0x90 */
  57. u32 ecc_intmask_set;
  58. u32 ecc_intmask_clr;
  59. u32 ecc_intstatus_serr;
  60. u32 ecc_intstatus_derr; /* 0xa0 */
  61. u32 _pad_0xa4_0xac[3];
  62. u32 noc_addr_remap; /* 0xb0 */
  63. u32 hmc_clk;
  64. u32 io_pa_ctrl;
  65. u32 _pad_0xbc;
  66. /* NOC Group */
  67. u32 noc_timeout; /* 0xc0 */
  68. u32 noc_idlereq_set;
  69. u32 noc_idlereq_clr;
  70. u32 noc_idlereq_value;
  71. u32 noc_idleack; /* 0xd0 */
  72. u32 noc_idlestatus;
  73. u32 fpga2soc_ctrl;
  74. u32 fpga_config;
  75. u32 iocsrclk_gate; /* 0xe0 */
  76. u32 gpo;
  77. u32 gpi;
  78. u32 _pad_0xec;
  79. u32 mpu; /* 0xf0 */
  80. u32 sdm_hps_spare;
  81. u32 hps_sdm_spare;
  82. u32 _pad_0xfc_0x1fc[65];
  83. /* Boot scratch register group */
  84. u32 boot_scratch_cold0; /* 0x200 */
  85. u32 boot_scratch_cold1;
  86. u32 boot_scratch_cold2;
  87. u32 boot_scratch_cold3;
  88. u32 boot_scratch_cold4; /* 0x210 */
  89. u32 boot_scratch_cold5;
  90. u32 boot_scratch_cold6;
  91. u32 boot_scratch_cold7;
  92. u32 boot_scratch_cold8; /* 0x220 */
  93. u32 boot_scratch_cold9;
  94. u32 _pad_0x228_0xffc[886];
  95. /* Pin select and pin control group */
  96. u32 pinsel0[40]; /* 0x1000 */
  97. u32 _pad_0x10a0_0x10fc[24];
  98. u32 pinsel40[8];
  99. u32 _pad_0x1120_0x112c[4];
  100. u32 ioctrl0[28];
  101. u32 _pad_0x11a0_0x11fc[24];
  102. u32 ioctrl28[20];
  103. u32 _pad_0x1250_0x12fc[44];
  104. /* Use FPGA mux */
  105. u32 rgmii0usefpga; /* 0x1300 */
  106. u32 rgmii1usefpga;
  107. u32 rgmii2usefpga;
  108. u32 i2c0usefpga;
  109. u32 i2c1usefpga;
  110. u32 i2c_emac0_usefpga;
  111. u32 i2c_emac1_usefpga;
  112. u32 i2c_emac2_usefpga;
  113. u32 nandusefpga;
  114. u32 _pad_0x1324;
  115. u32 spim0usefpga;
  116. u32 spim1usefpga;
  117. u32 spis0usefpga;
  118. u32 spis1usefpga;
  119. u32 uart0usefpga;
  120. u32 uart1usefpga;
  121. u32 mdio0usefpga;
  122. u32 mdio1usefpga;
  123. u32 mdio2usefpga;
  124. u32 _pad_0x134c;
  125. u32 jtagusefpga;
  126. u32 sdmmcusefpga;
  127. u32 hps_osc_clk;
  128. u32 _pad_0x135c_0x13fc[41];
  129. u32 iodelay0[40];
  130. u32 _pad_0x14a0_0x14fc[24];
  131. u32 iodelay40[8];
  132. };
  133. #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGPINMUX BIT(0)
  134. #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGIO BIT(1)
  135. #define SYSMGR_ECC_OCRAM_EN BIT(0)
  136. #define SYSMGR_ECC_OCRAM_SERR BIT(3)
  137. #define SYSMGR_ECC_OCRAM_DERR BIT(4)
  138. #define SYSMGR_FPGAINTF_USEFPGA 0x1
  139. #define SYSMGR_FPGAINTF_NAND BIT(4)
  140. #define SYSMGR_FPGAINTF_SDMMC BIT(8)
  141. #define SYSMGR_FPGAINTF_SPIM0 BIT(16)
  142. #define SYSMGR_FPGAINTF_SPIM1 BIT(24)
  143. #define SYSMGR_FPGAINTF_EMAC0 (0x11 << 0)
  144. #define SYSMGR_FPGAINTF_EMAC1 (0x11 << 8)
  145. #define SYSMGR_FPGAINTF_EMAC2 (0x11 << 16)
  146. #define SYSMGR_SDMMC_SMPLSEL_SHIFT 4
  147. #define SYSMGR_SDMMC_DRVSEL_SHIFT 0
  148. /* EMAC Group Bit definitions */
  149. #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII 0x0
  150. #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII 0x1
  151. #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII 0x2
  152. #define SYSMGR_EMACGRP_CTRL_PHYSEL0_LSB 0
  153. #define SYSMGR_EMACGRP_CTRL_PHYSEL1_LSB 2
  154. #define SYSMGR_EMACGRP_CTRL_PHYSEL_MASK 0x3
  155. #define SYSMGR_NOC_H2F_MSK 0x00000001
  156. #define SYSMGR_NOC_LWH2F_MSK 0x00000010
  157. #define SYSMGR_HMC_CLK_STATUS_MSK 0x00000001
  158. #define SYSMGR_DMA_IRQ_NS 0xFF000000
  159. #define SYSMGR_DMA_MGR_NS 0x00010000
  160. #define SYSMGR_DMAPERIPH_ALL_NS 0xFFFFFFFF
  161. #define SYSMGR_WDDBG_PAUSE_ALL_CPU 0x0F0F0F0F
  162. #endif /* _SYSTEM_MANAGER_S10_ */