xref: /arm-trusted-firmware/plat/intel/soc/agilex5/include/agilex5_pinmux.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2019-2023, Intel Corporation. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef AGX5_PINMUX_H
8*91f16700Schasinglulu #define AGX5_PINMUX_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu /* PINMUX REGISTER ADDRESS */
11*91f16700Schasinglulu #define AGX5_PINMUX_PIN0SEL					0x10d13000
12*91f16700Schasinglulu #define AGX5_PINMUX_IO0CTRL					0x10d13130
13*91f16700Schasinglulu #define AGX5_PINMUX_EMAC0_USEFPGA				0x10d13300
14*91f16700Schasinglulu #define AGX5_PINMUX_IO0_DELAY					0x10d13400
15*91f16700Schasinglulu #define AGX5_PERIPHERAL						0x10d14044
16*91f16700Schasinglulu 
17*91f16700Schasinglulu #include "socfpga_handoff.h"
18*91f16700Schasinglulu 
19*91f16700Schasinglulu /* PINMUX DEFINE */
20*91f16700Schasinglulu #define PINMUX_HANDOFF_ARRAY_SIZE(x)				(sizeof(x) / sizeof((x)[0]))
21*91f16700Schasinglulu #define PINMUX_HANDOFF_CONFIG_ADDR				0xbeec
22*91f16700Schasinglulu #define PINMUX_HANDOFF_CONFIG_VAL				0x7e000
23*91f16700Schasinglulu 
24*91f16700Schasinglulu /* Macros */
25*91f16700Schasinglulu #define SOCFPGA_PINMUX_SEL_NAND					(0x03)
26*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN0SEL					(0x00)
27*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN1SEL					(0x04)
28*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN2SEL					(0x08)
29*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN3SEL					(0x0C)
30*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN4SEL					(0x10)
31*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN5SEL					(0x14)
32*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN6SEL					(0x18)
33*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN7SEL					(0x1C)
34*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN8SEL					(0x20)
35*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN9SEL					(0x24)
36*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN10SEL					(0x28)
37*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN11SEL					(0x2C)
38*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN12SEL					(0x30)
39*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN13SEL					(0x34)
40*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN14SEL					(0x38)
41*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN15SEL					(0x3C)
42*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN16SEL					(0x40)
43*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN17SEL					(0x44)
44*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN18SEL					(0x48)
45*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN19SEL					(0x4C)
46*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN20SEL					(0x50)
47*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN21SEL					(0x54)
48*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN22SEL					(0x58)
49*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN23SEL					(0x5C)
50*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN24SEL					(0x60)
51*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN25SEL					(0x64)
52*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN26SEL					(0x68)
53*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN27SEL					(0x6C)
54*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN28SEL					(0x70)
55*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN29SEL					(0x74)
56*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN30SEL					(0x78)
57*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN31SEL					(0x7C)
58*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN32SEL					(0x80)
59*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN33SEL					(0x84)
60*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN34SEL					(0x88)
61*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN35SEL					(0x8C)
62*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN36SEL					(0x90)
63*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN37SEL					(0x94)
64*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN38SEL					(0x98)
65*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN39SEL					(0x9C)
66*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN40SEL					(0x100)
67*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN41SEL					(0x104)
68*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN42SEL					(0x108)
69*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN43SEL					(0x10C)
70*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN44SEL					(0x110)
71*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN45SEL					(0x114)
72*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN46SEL					(0x118)
73*91f16700Schasinglulu #define SOCFPGA_PINMUX_PIN47SEL					(0x11C)
74*91f16700Schasinglulu 
75*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO0CTRL					(0x00)
76*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO1CTRL					(0x04)
77*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO2CTRL					(0x08)
78*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO3CTRL					(0x0C)
79*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO4CTRL					(0x10)
80*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO5CTRL					(0x14)
81*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO6CTRL					(0x18)
82*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO7CTRL					(0x1C)
83*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO8CTRL					(0x20)
84*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO9CTRL					(0x24)
85*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO10CTRL					(0x28)
86*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO11CTRL					(0x2C)
87*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO12CTRL					(0x30)
88*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO13CTRL					(0x34)
89*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO14CTRL					(0x38)
90*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO15CTRL					(0x3C)
91*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO16CTRL					(0x40)
92*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO17CTRL					(0x44)
93*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO18CTRL					(0x48)
94*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO19CTRL					(0x4C)
95*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO20CTRL					(0x50)
96*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO21CTRL					(0x54)
97*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO22CTRL					(0x58)
98*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO23CTRL					(0x5C)
99*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO24CTRL					(0x60)
100*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO25CTRL					(0x64)
101*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO26CTRL					(0x68)
102*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO27CTRL					(0x6C)
103*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO28CTRL					(0xD0)
104*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO29CTRL					(0xD4)
105*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO30CTRL					(0xD8)
106*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO31CTRL					(0xDC)
107*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO32CTRL					(0xE0)
108*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO33CTRL					(0xE4)
109*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO34CTRL					(0xE8)
110*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO35CTRL					(0xEC)
111*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO36CTRL					(0xF0)
112*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO37CTRL					(0xF4)
113*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO38CTRL					(0xF8)
114*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO39CTRL					(0xFC)
115*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO40CTRL					(0x100)
116*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO41CTRL					(0x104)
117*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO42CTRL					(0x108)
118*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO43CTRL					(0x10C)
119*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO44CTRL					(0x110)
120*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO45CTRL					(0x114)
121*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO46CTRL					(0x118)
122*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO47CTRL					(0x11C)
123*91f16700Schasinglulu 
124*91f16700Schasinglulu #define SOCFPGA_PINMUX_EMAC0_USEFPGA				(0x00)
125*91f16700Schasinglulu #define SOCFPGA_PINMUX_EMAC1_USEFPGA				(0x04)
126*91f16700Schasinglulu #define SOCFPGA_PINMUX_EMAC2_USEFPGA				(0x08)
127*91f16700Schasinglulu #define SOCFPGA_PINMUX_I2C0_USEFPGA				(0x0C)
128*91f16700Schasinglulu #define SOCFPGA_PINMUX_I2C1_USEFPGA				(0x10)
129*91f16700Schasinglulu #define SOCFPGA_PINMUX_I2C_EMAC0_USEFPGA			(0x14)
130*91f16700Schasinglulu #define SOCFPGA_PINMUX_I2C_EMAC1_USEFPGA			(0x18)
131*91f16700Schasinglulu #define SOCFPGA_PINMUX_I2C_EMAC2_USEFPGA			(0x1C)
132*91f16700Schasinglulu #define SOCFPGA_PINMUX_NAND_USEFPGA				(0x20)
133*91f16700Schasinglulu #define SOCFPGA_PINMUX_SPIM0_USEFPGA				(0x28)
134*91f16700Schasinglulu #define SOCFPGA_PINMUX_SPIM1_USEFPGA				(0x2C)
135*91f16700Schasinglulu #define SOCFPGA_PINMUX_SPIS0_USEFPGA				(0x30)
136*91f16700Schasinglulu #define SOCFPGA_PINMUX_SPIS1_USEFPGA				(0x34)
137*91f16700Schasinglulu #define SOCFPGA_PINMUX_UART0_USEFPGA				(0x38)
138*91f16700Schasinglulu #define SOCFPGA_PINMUX_UART1_USEFPGA				(0x3C)
139*91f16700Schasinglulu #define SOCFPGA_PINMUX_MDIO0_USEFPGA				(0x40)
140*91f16700Schasinglulu #define SOCFPGA_PINMUX_MDIO1_USEFPGA				(0x44)
141*91f16700Schasinglulu #define SOCFPGA_PINMUX_MDIO2_USEFPGA				(0x48)
142*91f16700Schasinglulu #define SOCFPGA_PINMUX_JTAG_USEFPGA				(0x50)
143*91f16700Schasinglulu #define SOCFPGA_PINMUX_SDMMC_USEFPGA				(0x54)
144*91f16700Schasinglulu 
145*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO0DELAY					(0x00)
146*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO1DELAY					(0x04)
147*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO2DELAY					(0x08)
148*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO3DELAY					(0x0C)
149*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO4DELAY					(0x10)
150*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO5DELAY					(0x14)
151*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO6DELAY					(0x18)
152*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO7DELAY					(0x1C)
153*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO8DELAY					(0x20)
154*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO9DELAY					(0x24)
155*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO10DELAY				(0x28)
156*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO11DELAY				(0x2C)
157*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO12DELAY				(0x30)
158*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO13DELAY				(0x34)
159*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO14DELAY				(0x38)
160*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO15DELAY				(0x3C)
161*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO16DELAY				(0x40)
162*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO17DELAY				(0x44)
163*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO18DELAY				(0x48)
164*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO19DELAY				(0x4C)
165*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO20DELAY				(0x50)
166*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO21DELAY				(0x54)
167*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO22DELAY				(0x58)
168*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO23DELAY				(0x5C)
169*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO24DELAY				(0x60)
170*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO25DELAY				(0x64)
171*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO26DELAY				(0x68)
172*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO27DELAY				(0x6C)
173*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO28DELAY				(0x70)
174*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO29DELAY				(0x74)
175*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO30DELAY				(0x78)
176*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO31DELAY				(0x7C)
177*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO32DELAY				(0x80)
178*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO33DELAY				(0x84)
179*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO34DELAY				(0x88)
180*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO35DELAY				(0x8C)
181*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO36DELAY				(0x90)
182*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO37DELAY				(0x94)
183*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO38DELAY				(0x98)
184*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO39DELAY				(0x9C)
185*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO40DELAY				(0xA0)
186*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO41DELAY				(0xA4)
187*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO42DELAY				(0xA8)
188*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO43DELAY				(0xAC)
189*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO44DELAY				(0xB0)
190*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO45DELAY				(0xB4)
191*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO46DELAY				(0xB8)
192*91f16700Schasinglulu #define SOCFPGA_PINMUX_IO47DELAY				(0xBC)
193*91f16700Schasinglulu 
194*91f16700Schasinglulu #define SOCFPGA_PINMUX_I3C0_USEFPGA				(0xC0)
195*91f16700Schasinglulu #define SOCFPGA_PINMUX_I3C1_USEFPGA				(0xC4)
196*91f16700Schasinglulu 
197*91f16700Schasinglulu #define SOCFPGA_PINMUX(_reg)					(SOCFPGA_PINMUX_REG_BASE \
198*91f16700Schasinglulu 								+ (SOCFPGA_PINMUX_##_reg))
199*91f16700Schasinglulu 
200*91f16700Schasinglulu void config_pinmux(handoff *handoff);
201*91f16700Schasinglulu void config_peripheral(handoff *handoff);
202*91f16700Schasinglulu #endif
203