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