1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Intel Arria 10 SoCFPGA configuration
4 */
5
6#ifndef __SOCFPGA_ARRIA10_CONFIG_H__
7#define __SOCFPGA_ARRIA10_CONFIG_H__
8
9/* Clocks */
10#define CB_INTOSC_LS_CLK_HZ 60000000
11#define EMAC0_CLK_HZ 250000000
12#define EMAC1_CLK_HZ 250000000
13#define EMAC2_CLK_HZ 250000000
14#define EOSC1_CLK_HZ 25000000
15#define F2H_FREE_CLK_HZ 200000000
16#define H2F_USER0_CLK_HZ 400000000
17#define H2F_USER1_CLK_HZ 400000000
18#define L3_MAIN_FREE_CLK_HZ 200000000
19#define SDMMC_CLK_HZ 200000000
20#define TPIU_CLK_HZ 100000000
21#define MAINPLLGRP_CNTR15CLK_CNT 900
22#define MAINPLLGRP_CNTR2CLK_CNT 900
23#define MAINPLLGRP_CNTR3CLK_CNT 900
24#define MAINPLLGRP_CNTR4CLK_CNT 900
25#define MAINPLLGRP_CNTR5CLK_CNT 900
26#define MAINPLLGRP_CNTR6CLK_CNT 900
27#define MAINPLLGRP_CNTR7CLK_CNT 900
28#define MAINPLLGRP_CNTR7CLK_SRC 0
29#define MAINPLLGRP_CNTR8CLK_CNT 900
30#define MAINPLLGRP_CNTR9CLK_CNT 900
31#define MAINPLLGRP_CNTR9CLK_SRC 0
32#define MAINPLLGRP_MPUCLK_CNT 0
33#define MAINPLLGRP_MPUCLK_SRC 0
34#define MAINPLLGRP_NOCCLK_CNT 0
35#define MAINPLLGRP_NOCCLK_SRC 0
36#define MAINPLLGRP_NOCDIV_CSATCLK 0
37#define MAINPLLGRP_NOCDIV_CSPDBGCLK 1
38#define MAINPLLGRP_NOCDIV_CSTRACECLK 1
39#define MAINPLLGRP_NOCDIV_L4MAINCLK 0
40#define MAINPLLGRP_NOCDIV_L4MPCLK 0
41#define MAINPLLGRP_NOCDIV_L4SPCLK 2
42#define MAINPLLGRP_VCO0_PSRC 0
43#define MAINPLLGRP_VCO1_DENOM 1
44#define MAINPLLGRP_VCO1_NUMER 191
45#define PERPLLGRP_CNTR2CLK_CNT 7
46#define PERPLLGRP_CNTR2CLK_SRC 1
47#define PERPLLGRP_CNTR3CLK_CNT 900
48#define PERPLLGRP_CNTR3CLK_SRC 1
49#define PERPLLGRP_CNTR4CLK_CNT 19
50#define PERPLLGRP_CNTR4CLK_SRC 1
51#define PERPLLGRP_CNTR5CLK_CNT 499
52#define PERPLLGRP_CNTR5CLK_SRC 1
53#define PERPLLGRP_CNTR6CLK_CNT 9
54#define PERPLLGRP_CNTR6CLK_SRC 1
55#define PERPLLGRP_CNTR7CLK_CNT 900
56#define PERPLLGRP_CNTR8CLK_CNT 900
57#define PERPLLGRP_CNTR8CLK_SRC 0
58#define PERPLLGRP_CNTR9CLK_CNT 900
59#define PERPLLGRP_EMACCTL_EMAC0SEL 0
60#define PERPLLGRP_EMACCTL_EMAC1SEL 0
61#define PERPLLGRP_EMACCTL_EMAC2SEL 0
62#define PERPLLGRP_GPIODIV_GPIODBCLK 32000
63#define PERPLLGRP_VCO0_PSRC 0
64#define PERPLLGRP_VCO1_DENOM 1
65#define PERPLLGRP_VCO1_NUMER 159
66#define CLKMGR_TESTIOCTRL_DEBUGCLKSEL 16
67#define CLKMGR_TESTIOCTRL_MAINCLKSEL 8
68#define CLKMGR_TESTIOCTRL_PERICLKSEL 8
69#define ALTERAGRP_MPUCLK_MAINCNT 1
70#define ALTERAGRP_MPUCLK_PERICNT 900
71#define ALTERAGRP_NOCCLK_MAINCNT 11
72#define ALTERAGRP_NOCCLK_PERICNT 900
73#define ALTERAGRP_MPUCLK ((ALTERAGRP_MPUCLK_PERICNT << 16) | \
74	(ALTERAGRP_MPUCLK_MAINCNT))
75#define ALTERAGRP_NOCCLK ((ALTERAGRP_NOCCLK_PERICNT << 16) | \
76	(ALTERAGRP_NOCCLK_MAINCNT))
77
78/* Pin Mux Configuration */
79#define CONFIG_IO_10_INPUT_BUF_EN 0
80#define CONFIG_IO_10_PD_DRV_STRG 0
81#define CONFIG_IO_10_PD_SLW_RT 0
82#define CONFIG_IO_10_PU_DRV_STRG 0
83#define CONFIG_IO_10_PU_SLW_RT 0
84#define CONFIG_IO_10_RTRIM 1
85#define CONFIG_IO_10_WK_PU_EN 1
86#define CONFIG_IO_11_INPUT_BUF_EN 0
87#define CONFIG_IO_11_PD_DRV_STRG 0
88#define CONFIG_IO_11_PD_SLW_RT 0
89#define CONFIG_IO_11_PU_DRV_STRG 0
90#define CONFIG_IO_11_PU_SLW_RT 0
91#define CONFIG_IO_11_RTRIM 1
92#define CONFIG_IO_11_WK_PU_EN 1
93#define CONFIG_IO_12_INPUT_BUF_EN 1
94#define CONFIG_IO_12_PD_DRV_STRG 10
95#define CONFIG_IO_12_PD_SLW_RT 1
96#define CONFIG_IO_12_PU_DRV_STRG 8
97#define CONFIG_IO_12_PU_SLW_RT 1
98#define CONFIG_IO_12_RTRIM 1
99#define CONFIG_IO_12_WK_PU_EN 1
100#define CONFIG_IO_13_INPUT_BUF_EN 1
101#define CONFIG_IO_13_PD_DRV_STRG 10
102#define CONFIG_IO_13_PD_SLW_RT 1
103#define CONFIG_IO_13_PU_DRV_STRG 8
104#define CONFIG_IO_13_PU_SLW_RT 1
105#define CONFIG_IO_13_RTRIM 1
106#define CONFIG_IO_13_WK_PU_EN 1
107#define CONFIG_IO_14_INPUT_BUF_EN 1
108#define CONFIG_IO_14_PD_DRV_STRG 10
109#define CONFIG_IO_14_PD_SLW_RT 1
110#define CONFIG_IO_14_PU_DRV_STRG 8
111#define CONFIG_IO_14_PU_SLW_RT 1
112#define CONFIG_IO_14_RTRIM 1
113#define CONFIG_IO_14_WK_PU_EN 1
114#define CONFIG_IO_15_INPUT_BUF_EN 1
115#define CONFIG_IO_15_PD_DRV_STRG 10
116#define CONFIG_IO_15_PD_SLW_RT 1
117#define CONFIG_IO_15_PU_DRV_STRG 8
118#define CONFIG_IO_15_PU_SLW_RT 1
119#define CONFIG_IO_15_RTRIM 1
120#define CONFIG_IO_15_WK_PU_EN 1
121#define CONFIG_IO_16_INPUT_BUF_EN 0
122#define CONFIG_IO_16_PD_DRV_STRG 10
123#define CONFIG_IO_16_PD_SLW_RT 1
124#define CONFIG_IO_16_PU_DRV_STRG 8
125#define CONFIG_IO_16_PU_SLW_RT 1
126#define CONFIG_IO_16_RTRIM 1
127#define CONFIG_IO_16_WK_PU_EN 0
128#define CONFIG_IO_17_INPUT_BUF_EN 1
129#define CONFIG_IO_17_PD_DRV_STRG 10
130#define CONFIG_IO_17_PD_SLW_RT 1
131#define CONFIG_IO_17_PU_DRV_STRG 8
132#define CONFIG_IO_17_PU_SLW_RT 1
133#define CONFIG_IO_17_RTRIM 1
134#define CONFIG_IO_17_WK_PU_EN 0
135#define CONFIG_IO_1_INPUT_BUF_EN 1
136#define CONFIG_IO_1_PD_DRV_STRG 10
137#define CONFIG_IO_1_PD_SLW_RT 0
138#define CONFIG_IO_1_PU_DRV_STRG 8
139#define CONFIG_IO_1_PU_SLW_RT 0
140#define CONFIG_IO_1_RTRIM 1
141#define CONFIG_IO_1_WK_PU_EN 1
142#define CONFIG_IO_2_INPUT_BUF_EN 1
143#define CONFIG_IO_2_PD_DRV_STRG 10
144#define CONFIG_IO_2_PD_SLW_RT 0
145#define CONFIG_IO_2_PU_DRV_STRG 8
146#define CONFIG_IO_2_PU_SLW_RT 0
147#define CONFIG_IO_2_RTRIM 1
148#define CONFIG_IO_2_WK_PU_EN 1
149#define CONFIG_IO_3_INPUT_BUF_EN 1
150#define CONFIG_IO_3_PD_DRV_STRG 10
151#define CONFIG_IO_3_PD_SLW_RT 0
152#define CONFIG_IO_3_PU_DRV_STRG 8
153#define CONFIG_IO_3_PU_SLW_RT 0
154#define CONFIG_IO_3_RTRIM 1
155#define CONFIG_IO_3_WK_PU_EN 1
156#define CONFIG_IO_4_INPUT_BUF_EN 1
157#define CONFIG_IO_4_PD_DRV_STRG 10
158#define CONFIG_IO_4_PD_SLW_RT 1
159#define CONFIG_IO_4_PU_DRV_STRG 8
160#define CONFIG_IO_4_PU_SLW_RT 1
161#define CONFIG_IO_4_RTRIM 1
162#define CONFIG_IO_4_WK_PU_EN 0
163#define CONFIG_IO_5_INPUT_BUF_EN 1
164#define CONFIG_IO_5_PD_DRV_STRG 10
165#define CONFIG_IO_5_PD_SLW_RT 1
166#define CONFIG_IO_5_PU_DRV_STRG 8
167#define CONFIG_IO_5_PU_SLW_RT 1
168#define CONFIG_IO_5_RTRIM 1
169#define CONFIG_IO_5_WK_PU_EN 0
170#define CONFIG_IO_6_INPUT_BUF_EN 0
171#define CONFIG_IO_6_PD_DRV_STRG 10
172#define CONFIG_IO_6_PD_SLW_RT 1
173#define CONFIG_IO_6_PU_DRV_STRG 8
174#define CONFIG_IO_6_PU_SLW_RT 1
175#define CONFIG_IO_6_RTRIM 1
176#define CONFIG_IO_6_WK_PU_EN 0
177#define CONFIG_IO_7_INPUT_BUF_EN 1
178#define CONFIG_IO_7_PD_DRV_STRG 10
179#define CONFIG_IO_7_PD_SLW_RT 1
180#define CONFIG_IO_7_PU_DRV_STRG 8
181#define CONFIG_IO_7_PU_SLW_RT 1
182#define CONFIG_IO_7_RTRIM 1
183#define CONFIG_IO_7_WK_PU_EN 0
184#define CONFIG_IO_8_INPUT_BUF_EN 1
185#define CONFIG_IO_8_PD_DRV_STRG 10
186#define CONFIG_IO_8_PD_SLW_RT 1
187#define CONFIG_IO_8_PU_DRV_STRG 8
188#define CONFIG_IO_8_PU_SLW_RT 1
189#define CONFIG_IO_8_RTRIM 1
190#define CONFIG_IO_8_WK_PU_EN 0
191#define CONFIG_IO_9_INPUT_BUF_EN 1
192#define CONFIG_IO_9_PD_DRV_STRG 10
193#define CONFIG_IO_9_PD_SLW_RT 1
194#define CONFIG_IO_9_PU_DRV_STRG 8
195#define CONFIG_IO_9_PU_SLW_RT 1
196#define CONFIG_IO_9_RTRIM 1
197#define CONFIG_IO_9_WK_PU_EN 0
198#define CONFIG_IO_BANK_VOLTAGE_SEL_CLKRST_IO 1
199#define CONFIG_IO_BANK_VOLTAGE_SEL_PERI_IO 1
200#define PINMUX_DEDICATED_IO_10_SEL 10
201#define PINMUX_DEDICATED_IO_11_SEL 10
202#define PINMUX_DEDICATED_IO_12_SEL 8
203#define PINMUX_DEDICATED_IO_13_SEL 8
204#define PINMUX_DEDICATED_IO_14_SEL 8
205#define PINMUX_DEDICATED_IO_15_SEL 8
206#define PINMUX_DEDICATED_IO_16_SEL 13
207#define PINMUX_DEDICATED_IO_17_SEL 13
208#define PINMUX_DEDICATED_IO_4_SEL 8
209#define PINMUX_DEDICATED_IO_5_SEL 8
210#define PINMUX_DEDICATED_IO_6_SEL 8
211#define PINMUX_DEDICATED_IO_7_SEL 8
212#define PINMUX_DEDICATED_IO_8_SEL 8
213#define PINMUX_DEDICATED_IO_9_SEL 8
214#define PINMUX_I2C0_USEFPGA_SEL 0
215#define PINMUX_I2C1_USEFPGA_SEL 0
216#define PINMUX_I2CEMAC0_USEFPGA_SEL 0
217#define PINMUX_I2CEMAC1_USEFPGA_SEL 0
218#define PINMUX_I2CEMAC2_USEFPGA_SEL 0
219#define PINMUX_NAND_USEFPGA_SEL 0
220#define PINMUX_PLL_CLOCK_OUT_USEFPGA_SEL 0
221#define PINMUX_QSPI_USEFPGA_SEL 0
222#define PINMUX_RGMII0_USEFPGA_SEL 0
223#define PINMUX_RGMII1_USEFPGA_SEL 0
224#define PINMUX_RGMII2_USEFPGA_SEL 0
225#define PINMUX_SDMMC_USEFPGA_SEL 0
226#define PINMUX_SHARED_IO_Q1_10_SEL 8
227#define PINMUX_SHARED_IO_Q1_11_SEL 8
228#define PINMUX_SHARED_IO_Q1_12_SEL 8
229#define PINMUX_SHARED_IO_Q1_1_SEL 8
230#define PINMUX_SHARED_IO_Q1_2_SEL 8
231#define PINMUX_SHARED_IO_Q1_3_SEL 8
232#define PINMUX_SHARED_IO_Q1_4_SEL 8
233#define PINMUX_SHARED_IO_Q1_5_SEL 8
234#define PINMUX_SHARED_IO_Q1_6_SEL 8
235#define PINMUX_SHARED_IO_Q1_7_SEL 8
236#define PINMUX_SHARED_IO_Q1_8_SEL 8
237#define PINMUX_SHARED_IO_Q1_9_SEL 8
238#define PINMUX_SHARED_IO_Q2_10_SEL 4
239#define PINMUX_SHARED_IO_Q2_11_SEL 4
240#define PINMUX_SHARED_IO_Q2_12_SEL 4
241#define PINMUX_SHARED_IO_Q2_1_SEL 4
242#define PINMUX_SHARED_IO_Q2_2_SEL 4
243#define PINMUX_SHARED_IO_Q2_3_SEL 4
244#define PINMUX_SHARED_IO_Q2_4_SEL 4
245#define PINMUX_SHARED_IO_Q2_5_SEL 4
246#define PINMUX_SHARED_IO_Q2_6_SEL 4
247#define PINMUX_SHARED_IO_Q2_7_SEL 4
248#define PINMUX_SHARED_IO_Q2_8_SEL 4
249#define PINMUX_SHARED_IO_Q2_9_SEL 4
250#define PINMUX_SHARED_IO_Q3_10_SEL 10
251#define PINMUX_SHARED_IO_Q3_11_SEL 1
252#define PINMUX_SHARED_IO_Q3_12_SEL 1
253#define PINMUX_SHARED_IO_Q3_1_SEL 3
254#define PINMUX_SHARED_IO_Q3_2_SEL 3
255#define PINMUX_SHARED_IO_Q3_3_SEL 3
256#define PINMUX_SHARED_IO_Q3_4_SEL 3
257#define PINMUX_SHARED_IO_Q3_5_SEL 3
258#define PINMUX_SHARED_IO_Q3_6_SEL 15
259#define PINMUX_SHARED_IO_Q3_7_SEL 10
260#define PINMUX_SHARED_IO_Q3_8_SEL 10
261#define PINMUX_SHARED_IO_Q3_9_SEL 10
262#define PINMUX_SHARED_IO_Q4_10_SEL 12
263#define PINMUX_SHARED_IO_Q4_11_SEL 12
264#define PINMUX_SHARED_IO_Q4_12_SEL 12
265#define PINMUX_SHARED_IO_Q4_1_SEL 0
266#define PINMUX_SHARED_IO_Q4_2_SEL 0
267#define PINMUX_SHARED_IO_Q4_3_SEL 15
268#define PINMUX_SHARED_IO_Q4_4_SEL 12
269#define PINMUX_SHARED_IO_Q4_5_SEL 15
270#define PINMUX_SHARED_IO_Q4_6_SEL 15
271#define PINMUX_SHARED_IO_Q4_7_SEL 10
272#define PINMUX_SHARED_IO_Q4_8_SEL 15
273#define PINMUX_SHARED_IO_Q4_9_SEL 12
274#define PINMUX_SPIM0_USEFPGA_SEL 0
275#define PINMUX_SPIM1_USEFPGA_SEL 0
276#define PINMUX_SPIS0_USEFPGA_SEL 0
277#define PINMUX_SPIS1_USEFPGA_SEL 0
278#define PINMUX_UART0_USEFPGA_SEL 0
279#define PINMUX_UART1_USEFPGA_SEL 0
280#define PINMUX_USB0_USEFPGA_SEL 0
281#define PINMUX_USB1_USEFPGA_SEL 0
282
283/* Bridge Configuration */
284#define F2H_AXI_SLAVE 1
285#define F2SDRAM0_AXI_SLAVE 1
286#define F2SDRAM1_AXI_SLAVE 0
287#define F2SDRAM2_AXI_SLAVE 1
288#define H2F_AXI_MASTER 1
289#define LWH2F_AXI_MASTER 1
290
291/* Voltage Select for Config IO */
292#define CONFIG_IO_BANK_VSEL \
293	(((CONFIG_IO_BANK_VOLTAGE_SEL_CLKRST_IO & 0x3) << 8) | \
294	(CONFIG_IO_BANK_VOLTAGE_SEL_PERI_IO & 0x3))
295
296/* Macro for Config IO bit mapping */
297#define CONFIG_IO_MACRO(NAME) (((NAME ## _RTRIM & 0xff) << 19) | \
298	((NAME ## _INPUT_BUF_EN & 0x3) << 17) | \
299	((NAME ## _WK_PU_EN & 0x1) << 16) | \
300	((NAME ## _PU_SLW_RT & 0x1) << 13) | \
301	((NAME ## _PU_DRV_STRG & 0xf) << 8) | \
302	((NAME ## _PD_SLW_RT & 0x1) << 5) | \
303	(NAME ## _PD_DRV_STRG & 0x1f))
304
305#endif /* __SOCFPGA_ARRIA10_CONFIG_H__ */
306