1 /* SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2016-2018 Intel Corporation <www.intel.com>
7 #ifndef _SYSTEM_MANAGER_S10_
8 #define _SYSTEM_MANAGER_S10_
10 void sysmgr_pinmux_init(void);
11 void populate_sysmgr_fpgaintf_module(void);
12 void populate_sysmgr_pinmux(void);
13 void sysmgr_pinmux_table_sel(const u32 **table, unsigned int *table_len);
14 void sysmgr_pinmux_table_ctrl(const u32 **table, unsigned int *table_len);
15 void sysmgr_pinmux_table_fpga(const u32 **table, unsigned int *table_len);
16 void sysmgr_pinmux_table_delay(const u32 **table, unsigned int *table_len);
18 struct socfpga_system_manager {
19 /* System Manager Module */
20 u32 siliconid1; /* 0x00 */
24 u32 mpu_status; /* 0x10 */
26 u32 _pad_0x18_0x1c[2];
29 /* SDMMC Controller Group */
31 u32 sdmmcgrp_l3master;
32 /* NAND Flash Controller Register Group */
33 u32 nandgrp_bootstrap; /* 0x30 */
35 /* USB Controller Group */
39 u32 emac_gbl; /* 0x40 */
43 u32 emac0_ace; /* 0x50 */
47 u32 _pad_0x60_0x64[2]; /* 0x60 */
48 /* FPGA interface Group */
51 u32 fpgaintf_en_3; /* 0x70 */
55 u32 sec_ctrl_slt; /* 0x80 */
57 u32 _pad_0x88_0x8c[2];
59 u32 ecc_intmask_value; /* 0x90 */
62 u32 ecc_intstatus_serr;
63 u32 ecc_intstatus_derr; /* 0xa0 */
64 u32 _pad_0xa4_0xac[3];
65 u32 noc_addr_remap; /* 0xb0 */
70 u32 noc_timeout; /* 0xc0 */
73 u32 noc_idlereq_value;
74 u32 noc_idleack; /* 0xd0 */
78 u32 iocsrclk_gate; /* 0xe0 */
85 u32 _pad_0xfc_0x1fc[65];
86 /* Boot scratch register group */
87 u32 boot_scratch_cold0; /* 0x200 */
88 u32 boot_scratch_cold1;
89 u32 boot_scratch_cold2;
90 u32 boot_scratch_cold3;
91 u32 boot_scratch_cold4; /* 0x210 */
92 u32 boot_scratch_cold5;
93 u32 boot_scratch_cold6;
94 u32 boot_scratch_cold7;
95 u32 boot_scratch_cold8; /* 0x220 */
96 u32 boot_scratch_cold9;
97 u32 _pad_0x228_0xffc[886];
98 /* Pin select and pin control group */
99 u32 pinsel0[40]; /* 0x1000 */
100 u32 _pad_0x10a0_0x10fc[24];
102 u32 _pad_0x1120_0x112c[4];
104 u32 _pad_0x11a0_0x11fc[24];
106 u32 _pad_0x1250_0x12fc[44];
108 u32 rgmii0usefpga; /* 0x1300 */
113 u32 i2c_emac0_usefpga;
114 u32 i2c_emac1_usefpga;
115 u32 i2c_emac2_usefpga;
131 u32 _pad_0x135c_0x13fc[41];
133 u32 _pad_0x14a0_0x14fc[24];
138 #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGPINMUX BIT(0)
139 #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGIO BIT(1)
140 #define SYSMGR_ECC_OCRAM_EN BIT(0)
141 #define SYSMGR_ECC_OCRAM_SERR BIT(3)
142 #define SYSMGR_ECC_OCRAM_DERR BIT(4)
143 #define SYSMGR_FPGAINTF_USEFPGA 0x1
145 #define SYSMGR_FPGAINTF_NAND BIT(4)
146 #define SYSMGR_FPGAINTF_SDMMC BIT(8)
147 #define SYSMGR_FPGAINTF_SPIM0 BIT(16)
148 #define SYSMGR_FPGAINTF_SPIM1 BIT(24)
149 #define SYSMGR_FPGAINTF_EMAC0 (0x11 << 0)
150 #define SYSMGR_FPGAINTF_EMAC1 (0x11 << 8)
151 #define SYSMGR_FPGAINTF_EMAC2 (0x11 << 16)
153 #define SYSMGR_SDMMC_SMPLSEL_SHIFT 4
154 #define SYSMGR_SDMMC_DRVSEL_SHIFT 0
156 /* EMAC Group Bit definitions */
157 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII 0x0
158 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII 0x1
159 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII 0x2
161 #define SYSMGR_EMACGRP_CTRL_PHYSEL0_LSB 0
162 #define SYSMGR_EMACGRP_CTRL_PHYSEL1_LSB 2
163 #define SYSMGR_EMACGRP_CTRL_PHYSEL_MASK 0x3
165 #define SYSMGR_NOC_H2F_MSK 0x00000001
166 #define SYSMGR_NOC_LWH2F_MSK 0x00000010
167 #define SYSMGR_HMC_CLK_STATUS_MSK 0x00000001
169 #define SYSMGR_DMA_IRQ_NS 0xFF000000
170 #define SYSMGR_DMA_MGR_NS 0x00010000
172 #define SYSMGR_DMAPERIPH_ALL_NS 0xFFFFFFFF
174 #define SYSMGR_WDDBG_PAUSE_ALL_CPU 0x0F0F0F0F
176 #endif /* _SYSTEM_MANAGER_S10_ */