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