]> asedeno.scripts.mit.edu Git - linux.git/blob - drivers/pinctrl/aspeed/pinctrl-aspeed-g4.c
Merge tag 'pwm/for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[linux.git] / drivers / pinctrl / aspeed / pinctrl-aspeed-g4.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (C) 2016 IBM Corp.
4  */
5 #include <linux/bitops.h>
6 #include <linux/init.h>
7 #include <linux/io.h>
8 #include <linux/kernel.h>
9 #include <linux/mutex.h>
10 #include <linux/of.h>
11 #include <linux/platform_device.h>
12 #include <linux/pinctrl/pinctrl.h>
13 #include <linux/pinctrl/pinmux.h>
14 #include <linux/pinctrl/pinconf.h>
15 #include <linux/pinctrl/pinconf-generic.h>
16 #include <linux/string.h>
17 #include <linux/types.h>
18
19 #include "../core.h"
20 #include "../pinctrl-utils.h"
21 #include "pinctrl-aspeed.h"
22
23 /*
24  * Uses undefined macros for symbol naming and references, eg GPIOA0, MAC1LINK,
25  * TIMER3 etc.
26  *
27  * Pins are defined in GPIO bank order:
28  *
29  * GPIOA0: 0
30  * ...
31  * GPIOA7: 7
32  * GPIOB0: 8
33  * ...
34  * GPIOZ7: 207
35  * GPIOAA0: 208
36  * ...
37  * GPIOAB3: 219
38  *
39  * Not all pins have their signals defined (yet).
40  */
41
42 #define D6 0
43 SSSF_PIN_DECL(D6, GPIOA0, MAC1LINK, SIG_DESC_SET(SCU80, 0));
44
45 #define B5 1
46 SSSF_PIN_DECL(B5, GPIOA1, MAC2LINK, SIG_DESC_SET(SCU80, 1));
47
48 #define A4 2
49 SSSF_PIN_DECL(A4, GPIOA2, TIMER3, SIG_DESC_SET(SCU80, 2));
50
51 #define E6 3
52 SSSF_PIN_DECL(E6, GPIOA3, TIMER4, SIG_DESC_SET(SCU80, 3));
53
54 #define I2C9_DESC       SIG_DESC_SET(SCU90, 22)
55
56 #define C5 4
57 SIG_EXPR_LIST_DECL_SINGLE(SCL9, I2C9, I2C9_DESC);
58 SIG_EXPR_LIST_DECL_SINGLE(TIMER5, TIMER5, SIG_DESC_SET(SCU80, 4));
59 MS_PIN_DECL(C5, GPIOA4, SCL9, TIMER5);
60
61 FUNC_GROUP_DECL(TIMER5, C5);
62
63 #define B4 5
64 SIG_EXPR_LIST_DECL_SINGLE(SDA9, I2C9, I2C9_DESC);
65 SIG_EXPR_LIST_DECL_SINGLE(TIMER6, TIMER6, SIG_DESC_SET(SCU80, 5));
66 MS_PIN_DECL(B4, GPIOA5, SDA9, TIMER6);
67
68 FUNC_GROUP_DECL(TIMER6, B4);
69 FUNC_GROUP_DECL(I2C9, C5, B4);
70
71 #define MDIO2_DESC      SIG_DESC_SET(SCU90, 2)
72
73 #define A3 6
74 SIG_EXPR_LIST_DECL_SINGLE(MDC2, MDIO2, MDIO2_DESC);
75 SIG_EXPR_LIST_DECL_SINGLE(TIMER7, TIMER7, SIG_DESC_SET(SCU80, 6));
76 MS_PIN_DECL(A3, GPIOA6, MDC2, TIMER7);
77
78 FUNC_GROUP_DECL(TIMER7, A3);
79
80 #define D5 7
81 SIG_EXPR_LIST_DECL_SINGLE(MDIO2, MDIO2, MDIO2_DESC);
82 SIG_EXPR_LIST_DECL_SINGLE(TIMER8, TIMER8, SIG_DESC_SET(SCU80, 7));
83 MS_PIN_DECL(D5, GPIOA7, MDIO2, TIMER8);
84
85 FUNC_GROUP_DECL(TIMER8, D5);
86 FUNC_GROUP_DECL(MDIO2, A3, D5);
87
88 #define J21 8
89 SSSF_PIN_DECL(J21, GPIOB0, SALT1, SIG_DESC_SET(SCU80, 8));
90
91 #define J20 9
92 SSSF_PIN_DECL(J20, GPIOB1, SALT2, SIG_DESC_SET(SCU80, 9));
93
94 #define H18 10
95 SSSF_PIN_DECL(H18, GPIOB2, SALT3, SIG_DESC_SET(SCU80, 10));
96
97 #define F18 11
98 SSSF_PIN_DECL(F18, GPIOB3, SALT4, SIG_DESC_SET(SCU80, 11));
99
100 #define E19 12
101 SIG_EXPR_DECL(LPCRST, LPCRST, SIG_DESC_SET(SCU80, 12));
102 SIG_EXPR_DECL(LPCRST, LPCRSTS, SIG_DESC_SET(HW_STRAP1, 14));
103 SIG_EXPR_LIST_DECL_DUAL(LPCRST, LPCRST, LPCRSTS);
104 SS_PIN_DECL(E19, GPIOB4, LPCRST);
105
106 FUNC_GROUP_DECL(LPCRST, E19);
107
108 #define H19 13
109 #define H19_DESC        SIG_DESC_SET(SCU80, 13)
110 SIG_EXPR_LIST_DECL_SINGLE(LPCPD, LPCPD, H19_DESC);
111 SIG_EXPR_LIST_DECL_SINGLE(LPCSMI, LPCSMI, H19_DESC);
112 MS_PIN_DECL(H19, GPIOB5, LPCPD, LPCSMI);
113
114 FUNC_GROUP_DECL(LPCPD, H19);
115 FUNC_GROUP_DECL(LPCSMI, H19);
116
117 #define H20 14
118 SSSF_PIN_DECL(H20, GPIOB6, LPCPME, SIG_DESC_SET(SCU80, 14));
119
120 #define E18 15
121 SIG_EXPR_LIST_DECL_SINGLE(EXTRST, EXTRST,
122                 SIG_DESC_SET(SCU80, 15),
123                 SIG_DESC_BIT(SCU90, 31, 0),
124                 SIG_DESC_SET(SCU3C, 3));
125 SIG_EXPR_LIST_DECL_SINGLE(SPICS1, SPICS1,
126                 SIG_DESC_SET(SCU80, 15),
127                 SIG_DESC_SET(SCU90, 31));
128 MS_PIN_DECL(E18, GPIOB7, EXTRST, SPICS1);
129
130 FUNC_GROUP_DECL(EXTRST, E18);
131 FUNC_GROUP_DECL(SPICS1, E18);
132
133 #define SD1_DESC        SIG_DESC_SET(SCU90, 0)
134 #define I2C10_DESC      SIG_DESC_SET(SCU90, 23)
135
136 #define C4 16
137 SIG_EXPR_LIST_DECL_SINGLE(SD1CLK, SD1, SD1_DESC);
138 SIG_EXPR_LIST_DECL_SINGLE(SCL10, I2C10, I2C10_DESC);
139 MS_PIN_DECL(C4, GPIOC0, SD1CLK, SCL10);
140
141 #define B3 17
142 SIG_EXPR_LIST_DECL_SINGLE(SD1CMD, SD1, SD1_DESC);
143 SIG_EXPR_LIST_DECL_SINGLE(SDA10, I2C10, I2C10_DESC);
144 MS_PIN_DECL(B3, GPIOC1, SD1CMD, SDA10);
145
146 FUNC_GROUP_DECL(I2C10, C4, B3);
147
148 #define I2C11_DESC      SIG_DESC_SET(SCU90, 24)
149
150 #define A2 18
151 SIG_EXPR_LIST_DECL_SINGLE(SD1DAT0, SD1, SD1_DESC);
152 SIG_EXPR_LIST_DECL_SINGLE(SCL11, I2C11, I2C11_DESC);
153 MS_PIN_DECL(A2, GPIOC2, SD1DAT0, SCL11);
154
155 #define E5 19
156 SIG_EXPR_LIST_DECL_SINGLE(SD1DAT1, SD1, SD1_DESC);
157 SIG_EXPR_LIST_DECL_SINGLE(SDA11, I2C11, I2C11_DESC);
158 MS_PIN_DECL(E5, GPIOC3, SD1DAT1, SDA11);
159
160 FUNC_GROUP_DECL(I2C11, A2, E5);
161
162 #define I2C12_DESC      SIG_DESC_SET(SCU90, 25)
163
164 #define D4 20
165 SIG_EXPR_LIST_DECL_SINGLE(SD1DAT2, SD1, SD1_DESC);
166 SIG_EXPR_LIST_DECL_SINGLE(SCL12, I2C12, I2C12_DESC);
167 MS_PIN_DECL(D4, GPIOC4, SD1DAT2, SCL12);
168
169 #define C3 21
170 SIG_EXPR_LIST_DECL_SINGLE(SD1DAT3, SD1, SD1_DESC);
171 SIG_EXPR_LIST_DECL_SINGLE(SDA12, I2C12, I2C12_DESC);
172 MS_PIN_DECL(C3, GPIOC5, SD1DAT3, SDA12);
173
174 FUNC_GROUP_DECL(I2C12, D4, C3);
175
176 #define I2C13_DESC      SIG_DESC_SET(SCU90, 26)
177
178 #define B2 22
179 SIG_EXPR_LIST_DECL_SINGLE(SD1CD, SD1, SD1_DESC);
180 SIG_EXPR_LIST_DECL_SINGLE(SCL13, I2C13, I2C13_DESC);
181 MS_PIN_DECL(B2, GPIOC6, SD1CD, SCL13);
182
183 #define A1 23
184 SIG_EXPR_LIST_DECL_SINGLE(SD1WP, SD1, SD1_DESC);
185 SIG_EXPR_LIST_DECL_SINGLE(SDA13, I2C13, I2C13_DESC);
186 MS_PIN_DECL(A1, GPIOC7, SD1WP, SDA13);
187
188 FUNC_GROUP_DECL(I2C13, B2, A1);
189 FUNC_GROUP_DECL(SD1, C4, B3, A2, E5, D4, C3, B2, A1);
190
191 #define SD2_DESC        SIG_DESC_SET(SCU90, 1)
192 #define GPID_DESC       SIG_DESC_SET(HW_STRAP1, 21)
193 #define GPID0_DESC      SIG_DESC_SET(SCU8C, 8)
194
195 #define A18 24
196 SIG_EXPR_LIST_DECL_SINGLE(SD2CLK, SD2, SD2_DESC);
197 SIG_EXPR_DECL(GPID0IN, GPID0, GPID0_DESC);
198 SIG_EXPR_DECL(GPID0IN, GPID, GPID_DESC);
199 SIG_EXPR_LIST_DECL_DUAL(GPID0IN, GPID0, GPID);
200 MS_PIN_DECL(A18, GPIOD0, SD2CLK, GPID0IN);
201
202 #define D16 25
203 SIG_EXPR_LIST_DECL_SINGLE(SD2CMD, SD2, SD2_DESC);
204 SIG_EXPR_DECL(GPID0OUT, GPID0, GPID0_DESC);
205 SIG_EXPR_DECL(GPID0OUT, GPID, GPID_DESC);
206 SIG_EXPR_LIST_DECL_DUAL(GPID0OUT, GPID0, GPID);
207 MS_PIN_DECL(D16, GPIOD1, SD2CMD, GPID0OUT);
208
209 FUNC_GROUP_DECL(GPID0, A18, D16);
210
211 #define GPID2_DESC      SIG_DESC_SET(SCU8C, 9)
212
213 #define B17 26
214 SIG_EXPR_LIST_DECL_SINGLE(SD2DAT0, SD2, SD2_DESC);
215 SIG_EXPR_DECL(GPID2IN, GPID2, GPID2_DESC);
216 SIG_EXPR_DECL(GPID2IN, GPID, GPID_DESC);
217 SIG_EXPR_LIST_DECL_DUAL(GPID2IN, GPID2, GPID);
218 MS_PIN_DECL(B17, GPIOD2, SD2DAT0, GPID2IN);
219
220 #define A17 27
221 SIG_EXPR_LIST_DECL_SINGLE(SD2DAT1, SD2, SD2_DESC);
222 SIG_EXPR_DECL(GPID2OUT, GPID2, GPID2_DESC);
223 SIG_EXPR_DECL(GPID2OUT, GPID, GPID_DESC);
224 SIG_EXPR_LIST_DECL_DUAL(GPID2OUT, GPID2, GPID);
225 MS_PIN_DECL(A17, GPIOD3, SD2DAT1, GPID2OUT);
226
227 FUNC_GROUP_DECL(GPID2, B17, A17);
228
229 #define GPID4_DESC      SIG_DESC_SET(SCU8C, 10)
230
231 #define C16 28
232 SIG_EXPR_LIST_DECL_SINGLE(SD2DAT2, SD2, SD2_DESC);
233 SIG_EXPR_DECL(GPID4IN, GPID4, GPID4_DESC);
234 SIG_EXPR_DECL(GPID4IN, GPID, GPID_DESC);
235 SIG_EXPR_LIST_DECL_DUAL(GPID4IN, GPID4, GPID);
236 MS_PIN_DECL(C16, GPIOD4, SD2DAT2, GPID4IN);
237
238 #define B16 29
239 SIG_EXPR_LIST_DECL_SINGLE(SD2DAT3, SD2, SD2_DESC);
240 SIG_EXPR_DECL(GPID4OUT, GPID4, GPID4_DESC);
241 SIG_EXPR_DECL(GPID4OUT, GPID, GPID_DESC);
242 SIG_EXPR_LIST_DECL_DUAL(GPID4OUT, GPID4, GPID);
243 MS_PIN_DECL(B16, GPIOD5, SD2DAT3, GPID4OUT);
244
245 FUNC_GROUP_DECL(GPID4, C16, B16);
246
247 #define GPID6_DESC      SIG_DESC_SET(SCU8C, 11)
248
249 #define A16 30
250 SIG_EXPR_LIST_DECL_SINGLE(SD2CD, SD2, SD2_DESC);
251 SIG_EXPR_DECL(GPID6IN, GPID6, GPID6_DESC);
252 SIG_EXPR_DECL(GPID6IN, GPID, GPID_DESC);
253 SIG_EXPR_LIST_DECL_DUAL(GPID6IN, GPID6, GPID);
254 MS_PIN_DECL(A16, GPIOD6, SD2CD, GPID6IN);
255
256 #define E15 31
257 SIG_EXPR_LIST_DECL_SINGLE(SD2WP, SD2, SD2_DESC);
258 SIG_EXPR_DECL(GPID6OUT, GPID6, GPID6_DESC);
259 SIG_EXPR_DECL(GPID6OUT, GPID, GPID_DESC);
260 SIG_EXPR_LIST_DECL_DUAL(GPID6OUT, GPID6, GPID);
261 MS_PIN_DECL(E15, GPIOD7, SD2WP, GPID6OUT);
262
263 FUNC_GROUP_DECL(GPID6, A16, E15);
264 FUNC_GROUP_DECL(SD2, A18, D16, B17, A17, C16, B16, A16, E15);
265 FUNC_GROUP_DECL(GPID, A18, D16, B17, A17, C16, B16, A16, E15);
266
267 #define GPIE_DESC       SIG_DESC_SET(HW_STRAP1, 22)
268 #define GPIE0_DESC      SIG_DESC_SET(SCU8C, 12)
269 #define GPIE2_DESC      SIG_DESC_SET(SCU8C, 13)
270 #define GPIE4_DESC      SIG_DESC_SET(SCU8C, 14)
271 #define GPIE6_DESC      SIG_DESC_SET(SCU8C, 15)
272
273 #define D15 32
274 SIG_EXPR_LIST_DECL_SINGLE(NCTS3, NCTS3, SIG_DESC_SET(SCU80, 16));
275 SIG_EXPR_DECL(GPIE0IN, GPIE0, GPIE0_DESC);
276 SIG_EXPR_DECL(GPIE0IN, GPIE, GPIE_DESC);
277 SIG_EXPR_LIST_DECL_DUAL(GPIE0IN, GPIE0, GPIE);
278 MS_PIN_DECL(D15, GPIOE0, NCTS3, GPIE0IN);
279
280 FUNC_GROUP_DECL(NCTS3, D15);
281
282 #define C15 33
283 SIG_EXPR_LIST_DECL_SINGLE(NDCD3, NDCD3, SIG_DESC_SET(SCU80, 17));
284 SIG_EXPR_DECL(GPIE0OUT, GPIE0, GPIE0_DESC);
285 SIG_EXPR_DECL(GPIE0OUT, GPIE, GPIE_DESC);
286 SIG_EXPR_LIST_DECL_DUAL(GPIE0OUT, GPIE0, GPIE);
287 MS_PIN_DECL(C15, GPIOE1, NDCD3, GPIE0OUT);
288
289 FUNC_GROUP_DECL(NDCD3, C15);
290 FUNC_GROUP_DECL(GPIE0, D15, C15);
291
292 #define B15 34
293 SIG_EXPR_LIST_DECL_SINGLE(NDSR3, NDSR3, SIG_DESC_SET(SCU80, 18));
294 SIG_EXPR_DECL(GPIE2IN, GPIE2, GPIE2_DESC);
295 SIG_EXPR_DECL(GPIE2IN, GPIE, GPIE_DESC);
296 SIG_EXPR_LIST_DECL_DUAL(GPIE2IN, GPIE2, GPIE);
297 MS_PIN_DECL(B15, GPIOE2, NDSR3, GPIE2IN);
298
299 FUNC_GROUP_DECL(NDSR3, B15);
300
301 #define A15 35
302 SIG_EXPR_LIST_DECL_SINGLE(NRI3, NRI3, SIG_DESC_SET(SCU80, 19));
303 SIG_EXPR_DECL(GPIE2OUT, GPIE2, GPIE2_DESC);
304 SIG_EXPR_DECL(GPIE2OUT, GPIE, GPIE_DESC);
305 SIG_EXPR_LIST_DECL_DUAL(GPIE2OUT, GPIE2, GPIE);
306 MS_PIN_DECL(A15, GPIOE3, NRI3, GPIE2OUT);
307
308 FUNC_GROUP_DECL(NRI3, A15);
309 FUNC_GROUP_DECL(GPIE2, B15, A15);
310
311 #define E14 36
312 SIG_EXPR_LIST_DECL_SINGLE(NDTR3, NDTR3, SIG_DESC_SET(SCU80, 20));
313 SIG_EXPR_DECL(GPIE4IN, GPIE4, GPIE4_DESC);
314 SIG_EXPR_DECL(GPIE4IN, GPIE, GPIE_DESC);
315 SIG_EXPR_LIST_DECL_DUAL(GPIE4IN, GPIE4, GPIE);
316 MS_PIN_DECL(E14, GPIOE4, NDTR3, GPIE4IN);
317
318 FUNC_GROUP_DECL(NDTR3, E14);
319
320 #define D14 37
321 SIG_EXPR_LIST_DECL_SINGLE(NRTS3, NRTS3, SIG_DESC_SET(SCU80, 21));
322 SIG_EXPR_DECL(GPIE4OUT, GPIE4, GPIE4_DESC);
323 SIG_EXPR_DECL(GPIE4OUT, GPIE, GPIE_DESC);
324 SIG_EXPR_LIST_DECL_DUAL(GPIE4OUT, GPIE4, GPIE);
325 MS_PIN_DECL(D14, GPIOE5, NRTS3, GPIE4OUT);
326
327 FUNC_GROUP_DECL(NRTS3, D14);
328 FUNC_GROUP_DECL(GPIE4, E14, D14);
329
330 #define C14 38
331 SIG_EXPR_LIST_DECL_SINGLE(TXD3, TXD3, SIG_DESC_SET(SCU80, 22));
332 SIG_EXPR_DECL(GPIE6IN, GPIE6, GPIE6_DESC);
333 SIG_EXPR_DECL(GPIE6IN, GPIE, GPIE_DESC);
334 SIG_EXPR_LIST_DECL_DUAL(GPIE6IN, GPIE6, GPIE);
335 MS_PIN_DECL(C14, GPIOE6, TXD3, GPIE6IN);
336
337 FUNC_GROUP_DECL(TXD3, C14);
338
339 #define B14 39
340 SIG_EXPR_LIST_DECL_SINGLE(RXD3, RXD3, SIG_DESC_SET(SCU80, 23));
341 SIG_EXPR_DECL(GPIE6OUT, GPIE6, GPIE6_DESC);
342 SIG_EXPR_DECL(GPIE6OUT, GPIE, GPIE_DESC);
343 SIG_EXPR_LIST_DECL_DUAL(GPIE6OUT, GPIE6, GPIE);
344 MS_PIN_DECL(B14, GPIOE7, RXD3, GPIE6OUT);
345
346 FUNC_GROUP_DECL(RXD3, B14);
347 FUNC_GROUP_DECL(GPIE6, C14, B14);
348
349 #define D18 40
350 SSSF_PIN_DECL(D18, GPIOF0, NCTS4, SIG_DESC_SET(SCU80, 24));
351
352 #define ACPI_DESC       SIG_DESC_BIT(HW_STRAP1, 19, 0)
353
354 #define B19 41
355 SIG_EXPR_LIST_DECL_SINGLE(NDCD4, NDCD4, SIG_DESC_SET(SCU80, 25));
356 SIG_EXPR_DECL(SIOPBI, SIOPBI, SIG_DESC_SET(SCUA4, 12));
357 SIG_EXPR_DECL(SIOPBI, ACPI, ACPI_DESC);
358 SIG_EXPR_LIST_DECL_DUAL(SIOPBI, SIOPBI, ACPI);
359 MS_PIN_DECL(B19, GPIOF1, NDCD4, SIOPBI);
360 FUNC_GROUP_DECL(NDCD4, B19);
361 FUNC_GROUP_DECL(SIOPBI, B19);
362
363 #define A20 42
364 SIG_EXPR_LIST_DECL_SINGLE(NDSR4, NDSR4, SIG_DESC_SET(SCU80, 26));
365 SIG_EXPR_DECL(SIOPWRGD, SIOPWRGD, SIG_DESC_SET(SCUA4, 12));
366 SIG_EXPR_DECL(SIOPWRGD, ACPI, ACPI_DESC);
367 SIG_EXPR_LIST_DECL_DUAL(SIOPWRGD, SIOPWRGD, ACPI);
368 MS_PIN_DECL(A20, GPIOF2, NDSR4, SIOPWRGD);
369 FUNC_GROUP_DECL(NDSR4, A20);
370 FUNC_GROUP_DECL(SIOPWRGD, A20);
371
372 #define D17 43
373 SIG_EXPR_LIST_DECL_SINGLE(NRI4, NRI4, SIG_DESC_SET(SCU80, 27));
374 SIG_EXPR_DECL(SIOPBO, SIOPBO, SIG_DESC_SET(SCUA4, 14));
375 SIG_EXPR_DECL(SIOPBO, ACPI, ACPI_DESC);
376 SIG_EXPR_LIST_DECL_DUAL(SIOPBO, SIOPBO, ACPI);
377 MS_PIN_DECL(D17, GPIOF3, NRI4, SIOPBO);
378 FUNC_GROUP_DECL(NRI4, D17);
379 FUNC_GROUP_DECL(SIOPBO, D17);
380
381 #define B18 44
382 SSSF_PIN_DECL(B18, GPIOF4, NDTR4, SIG_DESC_SET(SCU80, 28));
383
384 #define A19 45
385 SIG_EXPR_LIST_DECL_SINGLE(NDTS4, NDTS4, SIG_DESC_SET(SCU80, 29));
386 SIG_EXPR_DECL(SIOSCI, SIOSCI, SIG_DESC_SET(SCUA4, 15));
387 SIG_EXPR_DECL(SIOSCI, ACPI, ACPI_DESC);
388 SIG_EXPR_LIST_DECL_DUAL(SIOSCI, SIOSCI, ACPI);
389 MS_PIN_DECL(A19, GPIOF5, NDTS4, SIOSCI);
390 FUNC_GROUP_DECL(NDTS4, A19);
391 FUNC_GROUP_DECL(SIOSCI, A19);
392
393 #define E16 46
394 SSSF_PIN_DECL(E16, GPIOF6, TXD4, SIG_DESC_SET(SCU80, 30));
395
396 #define C17 47
397 SSSF_PIN_DECL(C17, GPIOF7, RXD4, SIG_DESC_SET(SCU80, 31));
398
399 #define A14 48
400 SSSF_PIN_DECL(A14, GPIOG0, SGPSCK, SIG_DESC_SET(SCU84, 0));
401
402 #define E13 49
403 SSSF_PIN_DECL(E13, GPIOG1, SGPSLD, SIG_DESC_SET(SCU84, 1));
404
405 #define D13 50
406 SSSF_PIN_DECL(D13, GPIOG2, SGPSI0, SIG_DESC_SET(SCU84, 2));
407
408 #define C13 51
409 SSSF_PIN_DECL(C13, GPIOG3, SGPSI1, SIG_DESC_SET(SCU84, 3));
410
411 #define B13 52
412 SIG_EXPR_LIST_DECL_SINGLE(OSCCLK, OSCCLK, SIG_DESC_SET(SCU2C, 1));
413 SIG_EXPR_LIST_DECL_SINGLE(WDTRST1, WDTRST1, SIG_DESC_SET(SCU84, 4));
414 MS_PIN_DECL(B13, GPIOG4, OSCCLK, WDTRST1);
415
416 FUNC_GROUP_DECL(OSCCLK, B13);
417 FUNC_GROUP_DECL(WDTRST1, B13);
418
419 #define Y21 53
420 SIG_EXPR_LIST_DECL_SINGLE(USBCKI, USBCKI, SIG_DESC_SET(HW_STRAP1, 23));
421 SIG_EXPR_LIST_DECL_SINGLE(WDTRST2, WDTRST2, SIG_DESC_SET(SCU84, 5));
422 MS_PIN_DECL(Y21, GPIOG5, USBCKI, WDTRST2);
423
424 FUNC_GROUP_DECL(USBCKI, Y21);
425 FUNC_GROUP_DECL(WDTRST2, Y21);
426
427 #define AA22 54
428 SSSF_PIN_DECL(AA22, GPIOG6, FLBUSY, SIG_DESC_SET(SCU84, 6));
429
430 #define U18 55
431 SSSF_PIN_DECL(U18, GPIOG7, FLWP, SIG_DESC_SET(SCU84, 7));
432
433 #define UART6_DESC      SIG_DESC_SET(SCU90, 7)
434 #define ROM16_DESC      SIG_DESC_SET(SCU90, 6)
435 #define FLASH_WIDE      SIG_DESC_SET(HW_STRAP1, 4)
436 #define BOOT_SRC_NOR    { ASPEED_IP_SCU, HW_STRAP1, GENMASK(1, 0), 0, 0 }
437
438 #define A8 56
439 SIG_EXPR_DECL(ROMD8, ROM16, ROM16_DESC);
440 SIG_EXPR_DECL(ROMD8, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
441 SIG_EXPR_LIST_DECL_DUAL(ROMD8, ROM16, ROM16S);
442 SIG_EXPR_LIST_DECL_SINGLE(NCTS6, NCTS6, UART6_DESC);
443 MS_PIN_DECL(A8, GPIOH0, ROMD8, NCTS6);
444
445 #define C7 57
446 SIG_EXPR_DECL(ROMD9, ROM16, ROM16_DESC);
447 SIG_EXPR_DECL(ROMD9, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
448 SIG_EXPR_LIST_DECL_DUAL(ROMD9, ROM16, ROM16S);
449 SIG_EXPR_LIST_DECL_SINGLE(NDCD6, NDCD6, UART6_DESC);
450 MS_PIN_DECL(C7, GPIOH1, ROMD9, NDCD6);
451
452 #define B7 58
453 SIG_EXPR_DECL(ROMD10, ROM16, ROM16_DESC);
454 SIG_EXPR_DECL(ROMD10, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
455 SIG_EXPR_LIST_DECL_DUAL(ROMD10, ROM16, ROM16S);
456 SIG_EXPR_LIST_DECL_SINGLE(NDSR6, NDSR6, UART6_DESC);
457 MS_PIN_DECL(B7, GPIOH2, ROMD10, NDSR6);
458
459 #define A7 59
460 SIG_EXPR_DECL(ROMD11, ROM16, ROM16_DESC);
461 SIG_EXPR_DECL(ROMD11, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
462 SIG_EXPR_LIST_DECL_DUAL(ROMD11, ROM16, ROM16S);
463 SIG_EXPR_LIST_DECL_SINGLE(NRI6, NRI6, UART6_DESC);
464 MS_PIN_DECL(A7, GPIOH3, ROMD11, NRI6);
465
466 #define D7 60
467 SIG_EXPR_DECL(ROMD12, ROM16, ROM16_DESC);
468 SIG_EXPR_DECL(ROMD12, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
469 SIG_EXPR_LIST_DECL_DUAL(ROMD12, ROM16, ROM16S);
470 SIG_EXPR_LIST_DECL_SINGLE(NDTR6, NDTR6, UART6_DESC);
471 MS_PIN_DECL(D7, GPIOH4, ROMD12, NDTR6);
472
473 #define B6 61
474 SIG_EXPR_DECL(ROMD13, ROM16, ROM16_DESC);
475 SIG_EXPR_DECL(ROMD13, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
476 SIG_EXPR_LIST_DECL_DUAL(ROMD13, ROM16, ROM16S);
477 SIG_EXPR_LIST_DECL_SINGLE(NRTS6, NRTS6, UART6_DESC);
478 MS_PIN_DECL(B6, GPIOH5, ROMD13, NRTS6);
479
480 #define A6 62
481 SIG_EXPR_DECL(ROMD14, ROM16, ROM16_DESC);
482 SIG_EXPR_DECL(ROMD14, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
483 SIG_EXPR_LIST_DECL_DUAL(ROMD14, ROM16, ROM16S);
484 SIG_EXPR_LIST_DECL_SINGLE(TXD6, TXD6, UART6_DESC);
485 MS_PIN_DECL(A6, GPIOH6, ROMD14, TXD6);
486
487 #define E7 63
488 SIG_EXPR_DECL(ROMD15, ROM16, ROM16_DESC);
489 SIG_EXPR_DECL(ROMD15, ROM16S, FLASH_WIDE, BOOT_SRC_NOR);
490 SIG_EXPR_LIST_DECL_DUAL(ROMD15, ROM16, ROM16S);
491 SIG_EXPR_LIST_DECL_SINGLE(RXD6, RXD6, UART6_DESC);
492 MS_PIN_DECL(E7, GPIOH7, ROMD15, RXD6);
493
494 FUNC_GROUP_DECL(UART6, A8, C7, B7, A7, D7, B6, A6, E7);
495
496 #define SPI1_DESC \
497         { ASPEED_IP_SCU, HW_STRAP1, GENMASK(13, 12), 1, 0 }
498 #define SPI1DEBUG_DESC \
499         { ASPEED_IP_SCU, HW_STRAP1, GENMASK(13, 12), 2, 0 }
500 #define SPI1PASSTHRU_DESC \
501         { ASPEED_IP_SCU, HW_STRAP1, GENMASK(13, 12), 3, 0 }
502
503 #define C22 64
504 SIG_EXPR_DECL(SYSCS, SPI1DEBUG, SPI1DEBUG_DESC);
505 SIG_EXPR_DECL(SYSCS, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
506 SIG_EXPR_LIST_DECL_DUAL(SYSCS, SPI1DEBUG, SPI1PASSTHRU);
507 SS_PIN_DECL(C22, GPIOI0, SYSCS);
508
509 #define G18 65
510 SIG_EXPR_DECL(SYSCK, SPI1DEBUG, SPI1DEBUG_DESC);
511 SIG_EXPR_DECL(SYSCK, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
512 SIG_EXPR_LIST_DECL_DUAL(SYSCK, SPI1DEBUG, SPI1PASSTHRU);
513 SS_PIN_DECL(G18, GPIOI1, SYSCK);
514
515 #define D19 66
516 SIG_EXPR_DECL(SYSDO, SPI1DEBUG, SPI1DEBUG_DESC);
517 SIG_EXPR_DECL(SYSDO, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
518 SIG_EXPR_LIST_DECL_DUAL(SYSDO, SPI1DEBUG, SPI1PASSTHRU);
519 SS_PIN_DECL(D19, GPIOI2, SYSDO);
520
521 #define C20 67
522 SIG_EXPR_DECL(SYSDI, SPI1DEBUG, SPI1DEBUG_DESC);
523 SIG_EXPR_DECL(SYSDI, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
524 SIG_EXPR_LIST_DECL_DUAL(SYSDI, SPI1DEBUG, SPI1PASSTHRU);
525 SS_PIN_DECL(C20, GPIOI3, SYSDI);
526
527 #define VB_DESC SIG_DESC_SET(HW_STRAP1, 5)
528
529 #define B22 68
530 SIG_EXPR_DECL(SPI1CS0, SPI1, SPI1_DESC);
531 SIG_EXPR_DECL(SPI1CS0, SPI1DEBUG, SPI1DEBUG_DESC);
532 SIG_EXPR_DECL(SPI1CS0, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
533 SIG_EXPR_LIST_DECL(SPI1CS0, SIG_EXPR_PTR(SPI1CS0, SPI1),
534                             SIG_EXPR_PTR(SPI1CS0, SPI1DEBUG),
535                             SIG_EXPR_PTR(SPI1CS0, SPI1PASSTHRU));
536 SIG_EXPR_LIST_DECL_SINGLE(VBCS, VGABIOS_ROM, VB_DESC);
537 MS_PIN_DECL(B22, GPIOI4, SPI1CS0, VBCS);
538
539 #define G19 69
540 SIG_EXPR_DECL(SPI1CK, SPI1, SPI1_DESC);
541 SIG_EXPR_DECL(SPI1CK, SPI1DEBUG, SPI1DEBUG_DESC);
542 SIG_EXPR_DECL(SPI1CK, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
543 SIG_EXPR_LIST_DECL(SPI1CK, SIG_EXPR_PTR(SPI1CK, SPI1),
544                             SIG_EXPR_PTR(SPI1CK, SPI1DEBUG),
545                             SIG_EXPR_PTR(SPI1CK, SPI1PASSTHRU));
546 SIG_EXPR_LIST_DECL_SINGLE(VBCK, VGABIOS_ROM, VB_DESC);
547 MS_PIN_DECL(G19, GPIOI5, SPI1CK, VBCK);
548
549 #define C18 70
550 SIG_EXPR_DECL(SPI1DO, SPI1, SPI1_DESC);
551 SIG_EXPR_DECL(SPI1DO, SPI1DEBUG, SPI1DEBUG_DESC);
552 SIG_EXPR_DECL(SPI1DO, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
553 SIG_EXPR_LIST_DECL(SPI1DO, SIG_EXPR_PTR(SPI1DO, SPI1),
554                             SIG_EXPR_PTR(SPI1DO, SPI1DEBUG),
555                             SIG_EXPR_PTR(SPI1DO, SPI1PASSTHRU));
556 SIG_EXPR_LIST_DECL_SINGLE(VBDO, VGABIOS_ROM, VB_DESC);
557 MS_PIN_DECL(C18, GPIOI6, SPI1DO, VBDO);
558
559 #define E20 71
560 SIG_EXPR_DECL(SPI1DI, SPI1, SPI1_DESC);
561 SIG_EXPR_DECL(SPI1DI, SPI1DEBUG, SPI1DEBUG_DESC);
562 SIG_EXPR_DECL(SPI1DI, SPI1PASSTHRU, SPI1PASSTHRU_DESC);
563 SIG_EXPR_LIST_DECL(SPI1DI, SIG_EXPR_PTR(SPI1DI, SPI1),
564                             SIG_EXPR_PTR(SPI1DI, SPI1DEBUG),
565                             SIG_EXPR_PTR(SPI1DI, SPI1PASSTHRU));
566 SIG_EXPR_LIST_DECL_SINGLE(VBDI, VGABIOS_ROM, VB_DESC);
567 MS_PIN_DECL(E20, GPIOI7, SPI1DI, VBDI);
568
569 FUNC_GROUP_DECL(SPI1, B22, G19, C18, E20);
570 FUNC_GROUP_DECL(SPI1DEBUG, C22, G18, D19, C20, B22, G19, C18, E20);
571 FUNC_GROUP_DECL(SPI1PASSTHRU, C22, G18, D19, C20, B22, G19, C18, E20);
572 FUNC_GROUP_DECL(VGABIOS_ROM, B22, G19, C18, E20);
573
574 #define J5 72
575 SSSF_PIN_DECL(J5, GPIOJ0, SGPMCK, SIG_DESC_SET(SCU84, 8));
576
577 #define J4 73
578 SSSF_PIN_DECL(J4, GPIOJ1, SGPMLD, SIG_DESC_SET(SCU84, 9));
579
580 #define K5 74
581 SSSF_PIN_DECL(K5, GPIOJ2, SGPMO, SIG_DESC_SET(SCU84, 10));
582
583 #define J3 75
584 SSSF_PIN_DECL(J3, GPIOJ3, SGPMI, SIG_DESC_SET(SCU84, 11));
585
586 #define T4 76
587 SSSF_PIN_DECL(T4, GPIOJ4, VGAHS, SIG_DESC_SET(SCU84, 12));
588
589 #define U2 77
590 SSSF_PIN_DECL(U2, GPIOJ5, VGAVS, SIG_DESC_SET(SCU84, 13));
591
592 #define T2 78
593 SSSF_PIN_DECL(T2, GPIOJ6, DDCCLK, SIG_DESC_SET(SCU84, 14));
594
595 #define T1 79
596 SSSF_PIN_DECL(T1, GPIOJ7, DDCDAT, SIG_DESC_SET(SCU84, 15));
597
598 #define I2C5_DESC       SIG_DESC_SET(SCU90, 18)
599
600 #define E3 80
601 SIG_EXPR_LIST_DECL_SINGLE(SCL5, I2C5, I2C5_DESC);
602 SS_PIN_DECL(E3, GPIOK0, SCL5);
603
604 #define D2 81
605 SIG_EXPR_LIST_DECL_SINGLE(SDA5, I2C5, I2C5_DESC);
606 SS_PIN_DECL(D2, GPIOK1, SDA5);
607
608 FUNC_GROUP_DECL(I2C5, E3, D2);
609
610 #define I2C6_DESC       SIG_DESC_SET(SCU90, 19)
611
612 #define C1 82
613 SIG_EXPR_LIST_DECL_SINGLE(SCL6, I2C6, I2C6_DESC);
614 SS_PIN_DECL(C1, GPIOK2, SCL6);
615
616 #define F4 83
617 SIG_EXPR_LIST_DECL_SINGLE(SDA6, I2C6, I2C6_DESC);
618 SS_PIN_DECL(F4, GPIOK3, SDA6);
619
620 FUNC_GROUP_DECL(I2C6, C1, F4);
621
622 #define I2C7_DESC       SIG_DESC_SET(SCU90, 20)
623
624 #define E2 84
625 SIG_EXPR_LIST_DECL_SINGLE(SCL7, I2C7, I2C7_DESC);
626 SS_PIN_DECL(E2, GPIOK4, SCL7);
627
628 #define D1 85
629 SIG_EXPR_LIST_DECL_SINGLE(SDA7, I2C7, I2C7_DESC);
630 SS_PIN_DECL(D1, GPIOK5, SDA7);
631
632 FUNC_GROUP_DECL(I2C7, E2, D1);
633
634 #define I2C8_DESC       SIG_DESC_SET(SCU90, 21)
635
636 #define G5 86
637 SIG_EXPR_LIST_DECL_SINGLE(SCL8, I2C8, I2C8_DESC);
638 SS_PIN_DECL(G5, GPIOK6, SCL8);
639
640 #define F3 87
641 SIG_EXPR_LIST_DECL_SINGLE(SDA8, I2C8, I2C8_DESC);
642 SS_PIN_DECL(F3, GPIOK7, SDA8);
643
644 FUNC_GROUP_DECL(I2C8, G5, F3);
645
646 #define U1 88
647 SSSF_PIN_DECL(U1, GPIOL0, NCTS1, SIG_DESC_SET(SCU84, 16));
648
649 #define VPI18_DESC      { ASPEED_IP_SCU, SCU90, GENMASK(5, 4), 1, 0 }
650 #define VPI24_DESC      { ASPEED_IP_SCU, SCU90, GENMASK(5, 4), 2, 0 }
651 #define VPI30_DESC      { ASPEED_IP_SCU, SCU90, GENMASK(5, 4), 3, 0 }
652
653 #define T5 89
654 #define T5_DESC         SIG_DESC_SET(SCU84, 17)
655 SIG_EXPR_DECL(VPIDE, VPI18, VPI18_DESC, T5_DESC);
656 SIG_EXPR_DECL(VPIDE, VPI24, VPI24_DESC, T5_DESC);
657 SIG_EXPR_DECL(VPIDE, VPI30, VPI30_DESC, T5_DESC);
658 SIG_EXPR_LIST_DECL(VPIDE, SIG_EXPR_PTR(VPIDE, VPI18),
659                 SIG_EXPR_PTR(VPIDE, VPI24),
660                 SIG_EXPR_PTR(VPIDE, VPI30));
661 SIG_EXPR_LIST_DECL_SINGLE(NDCD1, NDCD1, T5_DESC);
662 MS_PIN_DECL(T5, GPIOL1, VPIDE, NDCD1);
663 FUNC_GROUP_DECL(NDCD1, T5);
664
665 #define U3 90
666 #define U3_DESC         SIG_DESC_SET(SCU84, 18)
667 SIG_EXPR_DECL(VPIODD, VPI18, VPI18_DESC, U3_DESC);
668 SIG_EXPR_DECL(VPIODD, VPI24, VPI24_DESC, U3_DESC);
669 SIG_EXPR_DECL(VPIODD, VPI30, VPI30_DESC, U3_DESC);
670 SIG_EXPR_LIST_DECL(VPIODD, SIG_EXPR_PTR(VPIODD, VPI18),
671                 SIG_EXPR_PTR(VPIODD, VPI24),
672                 SIG_EXPR_PTR(VPIODD, VPI30));
673 SIG_EXPR_LIST_DECL_SINGLE(NDSR1, NDSR1, U3_DESC);
674 MS_PIN_DECL(U3, GPIOL2, VPIODD, NDSR1);
675 FUNC_GROUP_DECL(NDSR1, U3);
676
677 #define V1 91
678 #define V1_DESC         SIG_DESC_SET(SCU84, 19)
679 SIG_EXPR_DECL(VPIHS, VPI18, VPI18_DESC, V1_DESC);
680 SIG_EXPR_DECL(VPIHS, VPI24, VPI24_DESC, V1_DESC);
681 SIG_EXPR_DECL(VPIHS, VPI30, VPI30_DESC, V1_DESC);
682 SIG_EXPR_LIST_DECL(VPIHS, SIG_EXPR_PTR(VPIHS, VPI18),
683                 SIG_EXPR_PTR(VPIHS, VPI24),
684                 SIG_EXPR_PTR(VPIHS, VPI30));
685 SIG_EXPR_LIST_DECL_SINGLE(NRI1, NRI1, V1_DESC);
686 MS_PIN_DECL(V1, GPIOL3, VPIHS, NRI1);
687 FUNC_GROUP_DECL(NRI1, V1);
688
689 #define U4 92
690 #define U4_DESC         SIG_DESC_SET(SCU84, 20)
691 SIG_EXPR_DECL(VPIVS, VPI18, VPI18_DESC, U4_DESC);
692 SIG_EXPR_DECL(VPIVS, VPI24, VPI24_DESC, U4_DESC);
693 SIG_EXPR_DECL(VPIVS, VPI30, VPI30_DESC, U4_DESC);
694 SIG_EXPR_LIST_DECL(VPIVS, SIG_EXPR_PTR(VPIVS, VPI18),
695                 SIG_EXPR_PTR(VPIVS, VPI24),
696                 SIG_EXPR_PTR(VPIVS, VPI30));
697 SIG_EXPR_LIST_DECL_SINGLE(NDTR1, NDTR1, U4_DESC);
698 MS_PIN_DECL(U4, GPIOL4, VPIVS, NDTR1);
699 FUNC_GROUP_DECL(NDTR1, U4);
700
701 #define V2 93
702 #define V2_DESC         SIG_DESC_SET(SCU84, 21)
703 SIG_EXPR_DECL(VPICLK, VPI18, VPI18_DESC, V2_DESC);
704 SIG_EXPR_DECL(VPICLK, VPI24, VPI24_DESC, V2_DESC);
705 SIG_EXPR_DECL(VPICLK, VPI30, VPI30_DESC, V2_DESC);
706 SIG_EXPR_LIST_DECL(VPICLK, SIG_EXPR_PTR(VPICLK, VPI18),
707                 SIG_EXPR_PTR(VPICLK, VPI24),
708                 SIG_EXPR_PTR(VPICLK, VPI30));
709 SIG_EXPR_LIST_DECL_SINGLE(NRTS1, NRTS1, V2_DESC);
710 MS_PIN_DECL(V2, GPIOL5, VPICLK, NRTS1);
711 FUNC_GROUP_DECL(NRTS1, V2);
712
713 #define W1 94
714 #define W1_DESC         SIG_DESC_SET(SCU84, 22)
715 SIG_EXPR_LIST_DECL_SINGLE(VPIB0, VPI30, VPI30_DESC, W1_DESC);
716 SIG_EXPR_LIST_DECL_SINGLE(TXD1, TXD1, W1_DESC);
717 MS_PIN_DECL(W1, GPIOL6, VPIB0, TXD1);
718 FUNC_GROUP_DECL(TXD1, W1);
719
720 #define U5 95
721 #define U5_DESC         SIG_DESC_SET(SCU84, 23)
722 SIG_EXPR_LIST_DECL_SINGLE(VPIB1, VPI30, VPI30_DESC, U5_DESC);
723 SIG_EXPR_LIST_DECL_SINGLE(RXD1, RXD1, U5_DESC);
724 MS_PIN_DECL(U5, GPIOL7, VPIB1, RXD1);
725 FUNC_GROUP_DECL(RXD1, U5);
726
727 #define V3 96
728 #define V3_DESC         SIG_DESC_SET(SCU84, 24)
729 SIG_EXPR_DECL(VPIOB2, VPI18, VPI18_DESC, V3_DESC);
730 SIG_EXPR_DECL(VPIOB2, VPI24, VPI24_DESC, V3_DESC);
731 SIG_EXPR_DECL(VPIOB2, VPI30, VPI30_DESC, V3_DESC);
732 SIG_EXPR_LIST_DECL(VPIOB2, SIG_EXPR_PTR(VPIOB2, VPI18),
733                 SIG_EXPR_PTR(VPIOB2, VPI24),
734                 SIG_EXPR_PTR(VPIOB2, VPI30));
735 SIG_EXPR_LIST_DECL_SINGLE(NCTS2, NCTS2, V3_DESC);
736 MS_PIN_DECL(V3, GPIOM0, VPIOB2, NCTS2);
737 FUNC_GROUP_DECL(NCTS2, V3);
738
739 #define W2 97
740 #define W2_DESC         SIG_DESC_SET(SCU84, 25)
741 SIG_EXPR_DECL(VPIOB3, VPI18, VPI18_DESC, W2_DESC);
742 SIG_EXPR_DECL(VPIOB3, VPI24, VPI24_DESC, W2_DESC);
743 SIG_EXPR_DECL(VPIOB3, VPI30, VPI30_DESC, W2_DESC);
744 SIG_EXPR_LIST_DECL(VPIOB3, SIG_EXPR_PTR(VPIOB3, VPI18),
745                 SIG_EXPR_PTR(VPIOB3, VPI24),
746                 SIG_EXPR_PTR(VPIOB3, VPI30));
747 SIG_EXPR_LIST_DECL_SINGLE(NDCD2, NDCD2, W2_DESC);
748 MS_PIN_DECL(W2, GPIOM1, VPIOB3, NDCD2);
749 FUNC_GROUP_DECL(NDCD2, W2);
750
751 #define Y1 98
752 #define Y1_DESC         SIG_DESC_SET(SCU84, 26)
753 SIG_EXPR_DECL(VPIOB4, VPI18, VPI18_DESC, Y1_DESC);
754 SIG_EXPR_DECL(VPIOB4, VPI24, VPI24_DESC, Y1_DESC);
755 SIG_EXPR_DECL(VPIOB4, VPI30, VPI30_DESC, Y1_DESC);
756 SIG_EXPR_LIST_DECL(VPIOB4, SIG_EXPR_PTR(VPIOB4, VPI18),
757                 SIG_EXPR_PTR(VPIOB4, VPI24),
758                 SIG_EXPR_PTR(VPIOB4, VPI30));
759 SIG_EXPR_LIST_DECL_SINGLE(NDSR2, NDSR2, Y1_DESC);
760 MS_PIN_DECL(Y1, GPIOM2, VPIOB4, NDSR2);
761 FUNC_GROUP_DECL(NDSR2, Y1);
762
763 #define V4 99
764 #define V4_DESC         SIG_DESC_SET(SCU84, 27)
765 SIG_EXPR_DECL(VPIOB5, VPI18, VPI18_DESC, V4_DESC);
766 SIG_EXPR_DECL(VPIOB5, VPI24, VPI24_DESC, V4_DESC);
767 SIG_EXPR_DECL(VPIOB5, VPI30, VPI30_DESC, V4_DESC);
768 SIG_EXPR_LIST_DECL(VPIOB5, SIG_EXPR_PTR(VPIOB5, VPI18),
769                 SIG_EXPR_PTR(VPIOB5, VPI24),
770                 SIG_EXPR_PTR(VPIOB5, VPI30));
771 SIG_EXPR_LIST_DECL_SINGLE(NRI2, NRI2, V4_DESC);
772 MS_PIN_DECL(V4, GPIOM3, VPIOB5, NRI2);
773 FUNC_GROUP_DECL(NRI2, V4);
774
775 #define W3 100
776 #define W3_DESC         SIG_DESC_SET(SCU84, 28)
777 SIG_EXPR_DECL(VPIOB6, VPI18, VPI18_DESC, W3_DESC);
778 SIG_EXPR_DECL(VPIOB6, VPI24, VPI24_DESC, W3_DESC);
779 SIG_EXPR_DECL(VPIOB6, VPI30, VPI30_DESC, W3_DESC);
780 SIG_EXPR_LIST_DECL(VPIOB6, SIG_EXPR_PTR(VPIOB6, VPI18),
781                 SIG_EXPR_PTR(VPIOB6, VPI24),
782                 SIG_EXPR_PTR(VPIOB6, VPI30));
783 SIG_EXPR_LIST_DECL_SINGLE(NDTR2, NDTR2, W3_DESC);
784 MS_PIN_DECL(W3, GPIOM4, VPIOB6, NDTR2);
785 FUNC_GROUP_DECL(NDTR2, W3);
786
787 #define Y2 101
788 #define Y2_DESC         SIG_DESC_SET(SCU84, 29)
789 SIG_EXPR_DECL(VPIOB7, VPI18, VPI18_DESC, Y2_DESC);
790 SIG_EXPR_DECL(VPIOB7, VPI24, VPI24_DESC, Y2_DESC);
791 SIG_EXPR_DECL(VPIOB7, VPI30, VPI30_DESC, Y2_DESC);
792 SIG_EXPR_LIST_DECL(VPIOB7, SIG_EXPR_PTR(VPIOB7, VPI18),
793                 SIG_EXPR_PTR(VPIOB7, VPI24),
794                 SIG_EXPR_PTR(VPIOB7, VPI30));
795 SIG_EXPR_LIST_DECL_SINGLE(NRTS2, NRTS2, Y2_DESC);
796 MS_PIN_DECL(Y2, GPIOM5, VPIOB7, NRTS2);
797 FUNC_GROUP_DECL(NRTS2, Y2);
798
799 #define AA1 102
800 #define AA1_DESC        SIG_DESC_SET(SCU84, 30)
801 SIG_EXPR_DECL(VPIOB8, VPI18, VPI18_DESC, AA1_DESC);
802 SIG_EXPR_DECL(VPIOB8, VPI24, VPI24_DESC, AA1_DESC);
803 SIG_EXPR_DECL(VPIOB8, VPI30, VPI30_DESC, AA1_DESC);
804 SIG_EXPR_LIST_DECL(VPIOB8, SIG_EXPR_PTR(VPIOB8, VPI18),
805                 SIG_EXPR_PTR(VPIOB8, VPI24),
806                 SIG_EXPR_PTR(VPIOB8, VPI30));
807 SIG_EXPR_LIST_DECL_SINGLE(TXD2, TXD2, AA1_DESC);
808 MS_PIN_DECL(AA1, GPIOM6, VPIOB8, TXD2);
809 FUNC_GROUP_DECL(TXD2, AA1);
810
811 #define V5 103
812 #define V5_DESC         SIG_DESC_SET(SCU84, 31)
813 SIG_EXPR_DECL(VPIOB9, VPI18, VPI18_DESC, V5_DESC);
814 SIG_EXPR_DECL(VPIOB9, VPI24, VPI24_DESC, V5_DESC);
815 SIG_EXPR_DECL(VPIOB9, VPI30, VPI30_DESC, V5_DESC);
816 SIG_EXPR_LIST_DECL(VPIOB9, SIG_EXPR_PTR(VPIOB9, VPI18),
817                 SIG_EXPR_PTR(VPIOB9, VPI24),
818                 SIG_EXPR_PTR(VPIOB9, VPI30));
819 SIG_EXPR_LIST_DECL_SINGLE(RXD2, RXD2, V5_DESC);
820 MS_PIN_DECL(V5, GPIOM7, VPIOB9, RXD2);
821 FUNC_GROUP_DECL(RXD2, V5);
822
823 #define W4 104
824 #define W4_DESC         SIG_DESC_SET(SCU88, 0)
825 SIG_EXPR_LIST_DECL_SINGLE(VPIG0, VPI30, VPI30_DESC, W4_DESC);
826 SIG_EXPR_LIST_DECL_SINGLE(PWM0, PWM0, W4_DESC);
827 MS_PIN_DECL(W4, GPION0, VPIG0, PWM0);
828 FUNC_GROUP_DECL(PWM0, W4);
829
830 #define Y3 105
831 #define Y3_DESC         SIG_DESC_SET(SCU88, 1)
832 SIG_EXPR_LIST_DECL_SINGLE(VPIG1, VPI30, VPI30_DESC, Y3_DESC);
833 SIG_EXPR_LIST_DECL_SINGLE(PWM1, PWM1, Y3_DESC);
834 MS_PIN_DECL(Y3, GPION1, VPIG1, PWM1);
835 FUNC_GROUP_DECL(PWM1, Y3);
836
837 #define AA2 106
838 #define AA2_DESC        SIG_DESC_SET(SCU88, 2)
839 SIG_EXPR_DECL(VPIG2, VPI18, VPI18_DESC, AA2_DESC);
840 SIG_EXPR_DECL(VPIG2, VPI24, VPI24_DESC, AA2_DESC);
841 SIG_EXPR_DECL(VPIG2, VPI30, VPI30_DESC, AA2_DESC);
842 SIG_EXPR_LIST_DECL(VPIG2, SIG_EXPR_PTR(VPIG2, VPI18),
843                 SIG_EXPR_PTR(VPIG2, VPI24),
844                 SIG_EXPR_PTR(VPIG2, VPI30));
845 SIG_EXPR_LIST_DECL_SINGLE(PWM2, PWM2, AA2_DESC);
846 MS_PIN_DECL(AA2, GPION2, VPIG2, PWM2);
847 FUNC_GROUP_DECL(PWM2, AA2);
848
849 #define AB1 107
850 #define AB1_DESC        SIG_DESC_SET(SCU88, 3)
851 SIG_EXPR_DECL(VPIG3, VPI18, VPI18_DESC, AB1_DESC);
852 SIG_EXPR_DECL(VPIG3, VPI24, VPI24_DESC, AB1_DESC);
853 SIG_EXPR_DECL(VPIG3, VPI30, VPI30_DESC, AB1_DESC);
854 SIG_EXPR_LIST_DECL(VPIG3, SIG_EXPR_PTR(VPIG3, VPI18),
855                 SIG_EXPR_PTR(VPIG3, VPI24),
856                 SIG_EXPR_PTR(VPIG3, VPI30));
857 SIG_EXPR_LIST_DECL_SINGLE(PWM3, PWM3, AB1_DESC);
858 MS_PIN_DECL(AB1, GPION3, VPIG3, PWM3);
859 FUNC_GROUP_DECL(PWM3, AB1);
860
861 #define W5 108
862 #define W5_DESC         SIG_DESC_SET(SCU88, 4)
863 SIG_EXPR_DECL(VPIG4, VPI18, VPI18_DESC, W5_DESC);
864 SIG_EXPR_DECL(VPIG4, VPI24, VPI24_DESC, W5_DESC);
865 SIG_EXPR_DECL(VPIG4, VPI30, VPI30_DESC, W5_DESC);
866 SIG_EXPR_LIST_DECL(VPIG4, SIG_EXPR_PTR(VPIG4, VPI18),
867                 SIG_EXPR_PTR(VPIG4, VPI24),
868                 SIG_EXPR_PTR(VPIG4, VPI30));
869 SIG_EXPR_LIST_DECL_SINGLE(PWM4, PWM4, W5_DESC);
870 MS_PIN_DECL(W5, GPION4, VPIG4, PWM4);
871 FUNC_GROUP_DECL(PWM4, W5);
872
873 #define Y4 109
874 #define Y4_DESC         SIG_DESC_SET(SCU88, 5)
875 SIG_EXPR_DECL(VPIG5, VPI18, VPI18_DESC, Y4_DESC);
876 SIG_EXPR_DECL(VPIG5, VPI24, VPI24_DESC, Y4_DESC);
877 SIG_EXPR_DECL(VPIG5, VPI30, VPI30_DESC, Y4_DESC);
878 SIG_EXPR_LIST_DECL(VPIG5, SIG_EXPR_PTR(VPIG5, VPI18),
879                 SIG_EXPR_PTR(VPIG5, VPI24),
880                 SIG_EXPR_PTR(VPIG5, VPI30));
881 SIG_EXPR_LIST_DECL_SINGLE(PWM5, PWM5, Y4_DESC);
882 MS_PIN_DECL(Y4, GPION5, VPIG5, PWM5);
883 FUNC_GROUP_DECL(PWM5, Y4);
884
885 #define AA3 110
886 #define AA3_DESC        SIG_DESC_SET(SCU88, 6)
887 SIG_EXPR_LIST_DECL_SINGLE(VPIG6, VPI30, VPI30_DESC, AA3_DESC);
888 SIG_EXPR_LIST_DECL_SINGLE(PWM6, PWM6, AA3_DESC);
889 MS_PIN_DECL(AA3, GPION6, VPIG6, PWM6);
890 FUNC_GROUP_DECL(PWM6, AA3);
891
892 #define AB2 111
893 #define AB2_DESC        SIG_DESC_SET(SCU88, 7)
894 SIG_EXPR_LIST_DECL_SINGLE(VPIG7, VPI30, VPI30_DESC, AB2_DESC);
895 SIG_EXPR_LIST_DECL_SINGLE(PWM7, PWM7, AB2_DESC);
896 MS_PIN_DECL(AB2, GPION7, VPIG7, PWM7);
897 FUNC_GROUP_DECL(PWM7, AB2);
898
899 #define V6 112
900 SIG_EXPR_LIST_DECL_SINGLE(VPIG8, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 8));
901 SS_PIN_DECL(V6, GPIOO0, VPIG8);
902
903 #define Y5 113
904 SIG_EXPR_LIST_DECL_SINGLE(VPIG9, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 9));
905 SS_PIN_DECL(Y5, GPIOO1, VPIG9);
906
907 #define AA4 114
908 SIG_EXPR_LIST_DECL_SINGLE(VPIR0, VPI30, VPI30_DESC, SIG_DESC_SET(SCU88, 10));
909 SS_PIN_DECL(AA4, GPIOO2, VPIR0);
910
911 #define AB3 115
912 SIG_EXPR_LIST_DECL_SINGLE(VPIR1, VPI30, VPI30_DESC, SIG_DESC_SET(SCU88, 11));
913 SS_PIN_DECL(AB3, GPIOO3, VPIR1);
914
915 #define W6 116
916 SIG_EXPR_LIST_DECL_SINGLE(VPIR2, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 12));
917 SS_PIN_DECL(W6, GPIOO4, VPIR2);
918
919 #define AA5 117
920 SIG_EXPR_LIST_DECL_SINGLE(VPIR3, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 13));
921 SS_PIN_DECL(AA5, GPIOO5, VPIR3);
922
923 #define AB4 118
924 SIG_EXPR_LIST_DECL_SINGLE(VPIR4, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 14));
925 SS_PIN_DECL(AB4, GPIOO6, VPIR4);
926
927 #define V7 119
928 SIG_EXPR_LIST_DECL_SINGLE(VPIR5, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 15));
929 SS_PIN_DECL(V7, GPIOO7, VPIR5);
930
931 #define Y6 120
932 SIG_EXPR_LIST_DECL_SINGLE(VPIR6, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 16));
933 SS_PIN_DECL(Y6, GPIOP0, VPIR6);
934
935 #define AB5 121
936 SIG_EXPR_LIST_DECL_SINGLE(VPIR7, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 17));
937 SS_PIN_DECL(AB5, GPIOP1, VPIR7);
938
939 #define W7 122
940 SIG_EXPR_LIST_DECL_SINGLE(VPIR8, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 18));
941 SS_PIN_DECL(W7, GPIOP2, VPIR8);
942
943 #define AA6 123
944 SIG_EXPR_LIST_DECL_SINGLE(VPIR9, VPI24, VPI24_DESC, SIG_DESC_SET(SCU88, 19));
945 SS_PIN_DECL(AA6, GPIOP3, VPIR9);
946
947 FUNC_GROUP_DECL(VPI18, T5, U3, V1, U4, V2, V3, W2, Y1, V4, W3, Y2, AA1, V5,
948                 AA22, W5, Y4, AA3, AB2);
949 FUNC_GROUP_DECL(VPI24, T5, U3, V1, U4, V2, V3, W2, Y1, V4, W3, Y2, AA1, V5,
950                 AA22, W5, Y4, AA3, AB2, V6, Y5, W6, AA5, AB4, V7, Y6, AB5, W7,
951                 AA6);
952 FUNC_GROUP_DECL(VPI30, T5, U3, V1, U4, V2, W1, U5, V3, W2, Y1, V4, W3, Y2, AA1,
953                 V5, W4, Y3, AA22, W5, Y4, AA3, AB2, AA4, AB3);
954
955 #define AB6 124
956 SIG_EXPR_LIST_DECL_SINGLE(GPIOP4, GPIOP4);
957 MS_PIN_DECL_(AB6, SIG_EXPR_LIST_PTR(GPIOP4));
958
959 #define Y7 125
960 SIG_EXPR_LIST_DECL_SINGLE(GPIOP5, GPIOP5);
961 MS_PIN_DECL_(Y7, SIG_EXPR_LIST_PTR(GPIOP5));
962
963 #define AA7 126
964 SSSF_PIN_DECL(AA7, GPIOP6, BMCINT, SIG_DESC_SET(SCU88, 22));
965
966 #define AB7 127
967 SSSF_PIN_DECL(AB7, GPIOP7, FLACK, SIG_DESC_SET(SCU88, 23));
968
969 #define I2C3_DESC       SIG_DESC_SET(SCU90, 16)
970
971 #define D3 128
972 SIG_EXPR_LIST_DECL_SINGLE(SCL3, I2C3, I2C3_DESC);
973 SS_PIN_DECL(D3, GPIOQ0, SCL3);
974
975 #define C2 129
976 SIG_EXPR_LIST_DECL_SINGLE(SDA3, I2C3, I2C3_DESC);
977 SS_PIN_DECL(C2, GPIOQ1, SDA3);
978
979 FUNC_GROUP_DECL(I2C3, D3, C2);
980
981 #define I2C4_DESC       SIG_DESC_SET(SCU90, 17)
982
983 #define B1 130
984 SIG_EXPR_LIST_DECL_SINGLE(SCL4, I2C4, I2C4_DESC);
985 SS_PIN_DECL(B1, GPIOQ2, SCL4);
986
987 #define F5 131
988 SIG_EXPR_LIST_DECL_SINGLE(SDA4, I2C4, I2C4_DESC);
989 SS_PIN_DECL(F5, GPIOQ3, SDA4);
990
991 FUNC_GROUP_DECL(I2C4, B1, F5);
992
993 #define I2C14_DESC      SIG_DESC_SET(SCU90, 27)
994
995 #define H4 132
996 SIG_EXPR_LIST_DECL_SINGLE(SCL14, I2C14, I2C14_DESC);
997 SS_PIN_DECL(H4, GPIOQ4, SCL14);
998
999 #define H3 133
1000 SIG_EXPR_LIST_DECL_SINGLE(SDA14, I2C14, I2C14_DESC);
1001 SS_PIN_DECL(H3, GPIOQ5, SDA14);
1002
1003 FUNC_GROUP_DECL(I2C14, H4, H3);
1004
1005 /*
1006  * There are several opportunities to document USB port 4 in the datasheet, but
1007  * it is only mentioned in one location. Particularly, the Multi-function Pins
1008  * Mapping and Control table in the datasheet elides the signal names,
1009  * suggesting that port 4 may not actually be functional. As such we define the
1010  * signal names and control bit, but don't export the capability's function or
1011  * group.
1012  */
1013 #define USB11H3_DESC    SIG_DESC_SET(SCU90, 28)
1014
1015 #define H2 134
1016 SIG_EXPR_LIST_DECL_SINGLE(USB11HDP3, USB11H3, USB11H3_DESC);
1017 SS_PIN_DECL(H2, GPIOQ6, USB11HDP3);
1018
1019 #define H1 135
1020 SIG_EXPR_LIST_DECL_SINGLE(USB11HDN3, USB11H3, USB11H3_DESC);
1021 SS_PIN_DECL(H1, GPIOQ7, USB11HDN3);
1022
1023 #define V20 136
1024 SSSF_PIN_DECL(V20, GPIOR0, ROMCS1, SIG_DESC_SET(SCU88, 24));
1025
1026 #define W21 137
1027 SSSF_PIN_DECL(W21, GPIOR1, ROMCS2, SIG_DESC_SET(SCU88, 25));
1028
1029 #define Y22 138
1030 SSSF_PIN_DECL(Y22, GPIOR2, ROMCS3, SIG_DESC_SET(SCU88, 26));
1031
1032 #define U19 139
1033 SSSF_PIN_DECL(U19, GPIOR3, ROMCS4, SIG_DESC_SET(SCU88, 27));
1034
1035 #define VPOOFF0_DESC    { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 0, 0 }
1036 #define VPO12_DESC      { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 1, 0 }
1037 #define VPO24_DESC      { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 2, 0 }
1038 #define VPOOFF1_DESC    { ASPEED_IP_SCU, SCU94, GENMASK(1, 0), 3, 0 }
1039 #define VPO_OFF_12      { ASPEED_IP_SCU, SCU94, 0x2, 0, 0 }
1040 #define VPO_24_OFF      SIG_DESC_SET(SCU94, 1)
1041
1042 #define V21 140
1043 #define V21_DESC        SIG_DESC_SET(SCU88, 28)
1044 SIG_EXPR_DECL(ROMA24, ROM8, V21_DESC, VPO_OFF_12);
1045 SIG_EXPR_DECL(ROMA24, ROM16, V21_DESC, VPO_OFF_12);
1046 SIG_EXPR_DECL(ROMA24, ROM16S, V21_DESC, VPO_OFF_12);
1047 SIG_EXPR_LIST_DECL(ROMA24, SIG_EXPR_PTR(ROMA24, ROM8),
1048                 SIG_EXPR_PTR(ROMA24, ROM16),
1049                 SIG_EXPR_PTR(ROMA24, ROM16S));
1050 SIG_EXPR_LIST_DECL_SINGLE(VPOR6, VPO24, V21_DESC, VPO_24_OFF);
1051 MS_PIN_DECL(V21, GPIOR4, ROMA24, VPOR6);
1052
1053 #define W22 141
1054 #define W22_DESC        SIG_DESC_SET(SCU88, 29)
1055 SIG_EXPR_DECL(ROMA25, ROM8, W22_DESC, VPO_OFF_12);
1056 SIG_EXPR_DECL(ROMA25, ROM16, W22_DESC, VPO_OFF_12);
1057 SIG_EXPR_DECL(ROMA25, ROM16S, W22_DESC, VPO_OFF_12);
1058 SIG_EXPR_LIST_DECL(ROMA25, SIG_EXPR_PTR(ROMA25, ROM8),
1059                 SIG_EXPR_PTR(ROMA25, ROM16),
1060                 SIG_EXPR_PTR(ROMA25, ROM16S));
1061 SIG_EXPR_LIST_DECL_SINGLE(VPOR7, VPO24, W22_DESC, VPO_24_OFF);
1062 MS_PIN_DECL(W22, GPIOR5, ROMA25, VPOR7);
1063
1064 #define C6 142
1065 SIG_EXPR_LIST_DECL_SINGLE(MDC1, MDIO1, SIG_DESC_SET(SCU88, 30));
1066 SS_PIN_DECL(C6, GPIOR6, MDC1);
1067
1068 #define A5 143
1069 SIG_EXPR_LIST_DECL_SINGLE(MDIO1, MDIO1, SIG_DESC_SET(SCU88, 31));
1070 SS_PIN_DECL(A5, GPIOR7, MDIO1);
1071
1072 FUNC_GROUP_DECL(MDIO1, C6, A5);
1073
1074 #define U21 144
1075 #define U21_DESC        SIG_DESC_SET(SCU8C, 0)
1076 SIG_EXPR_DECL(ROMD4, ROM8, U21_DESC, VPOOFF0_DESC);
1077 SIG_EXPR_DECL(ROMD4, ROM16, U21_DESC, VPOOFF0_DESC);
1078 SIG_EXPR_DECL(ROMD4, ROM16S, U21_DESC, VPOOFF0_DESC);
1079 SIG_EXPR_LIST_DECL(ROMD4, SIG_EXPR_PTR(ROMD4, ROM8),
1080                 SIG_EXPR_PTR(ROMD4, ROM16),
1081                 SIG_EXPR_PTR(ROMD4, ROM16S));
1082 SIG_EXPR_DECL(VPODE, VPO12, U21_DESC, VPO12_DESC);
1083 SIG_EXPR_DECL(VPODE, VPO24, U21_DESC, VPO12_DESC);
1084 SIG_EXPR_LIST_DECL_DUAL(VPODE, VPO12, VPO24);
1085 MS_PIN_DECL(U21, GPIOS0, ROMD4, VPODE);
1086
1087 #define T19 145
1088 #define T19_DESC        SIG_DESC_SET(SCU8C, 1)
1089 SIG_EXPR_DECL(ROMD5, ROM8, T19_DESC, VPOOFF0_DESC);
1090 SIG_EXPR_DECL(ROMD5, ROM16, T19_DESC, VPOOFF0_DESC);
1091 SIG_EXPR_DECL(ROMD5, ROM16S, T19_DESC, VPOOFF0_DESC);
1092 SIG_EXPR_LIST_DECL(ROMD5, SIG_EXPR_PTR(ROMD5, ROM8),
1093                 SIG_EXPR_PTR(ROMD5, ROM16),
1094                 SIG_EXPR_PTR(ROMD5, ROM16S));
1095 SIG_EXPR_DECL(VPOHS, VPO12, T19_DESC, VPO12_DESC);
1096 SIG_EXPR_DECL(VPOHS, VPO24, T19_DESC, VPO24_DESC);
1097 SIG_EXPR_LIST_DECL_DUAL(VPOHS, VPO12, VPO24);
1098 MS_PIN_DECL(T19, GPIOS1, ROMD5, VPOHS);
1099
1100 #define V22 146
1101 #define V22_DESC        SIG_DESC_SET(SCU8C, 2)
1102 SIG_EXPR_DECL(ROMD6, ROM8, V22_DESC, VPOOFF0_DESC);
1103 SIG_EXPR_DECL(ROMD6, ROM16, V22_DESC, VPOOFF0_DESC);
1104 SIG_EXPR_DECL(ROMD6, ROM16S, V22_DESC, VPOOFF0_DESC);
1105 SIG_EXPR_LIST_DECL(ROMD6, SIG_EXPR_PTR(ROMD6, ROM8),
1106                 SIG_EXPR_PTR(ROMD6, ROM16),
1107                 SIG_EXPR_PTR(ROMD6, ROM16S));
1108 SIG_EXPR_DECL(VPOVS, VPO12, V22_DESC, VPO12_DESC);
1109 SIG_EXPR_DECL(VPOVS, VPO24, V22_DESC, VPO24_DESC);
1110 SIG_EXPR_LIST_DECL_DUAL(VPOVS, VPO12, VPO24);
1111 MS_PIN_DECL(V22, GPIOS2, ROMD6, VPOVS);
1112
1113 #define U20 147
1114 #define U20_DESC        SIG_DESC_SET(SCU8C, 3)
1115 SIG_EXPR_DECL(ROMD7, ROM8, U20_DESC, VPOOFF0_DESC);
1116 SIG_EXPR_DECL(ROMD7, ROM16, U20_DESC, VPOOFF0_DESC);
1117 SIG_EXPR_DECL(ROMD7, ROM16S, U20_DESC, VPOOFF0_DESC);
1118 SIG_EXPR_LIST_DECL(ROMD7, SIG_EXPR_PTR(ROMD7, ROM8),
1119                 SIG_EXPR_PTR(ROMD7, ROM16),
1120                 SIG_EXPR_PTR(ROMD7, ROM16S));
1121 SIG_EXPR_DECL(VPOCLK, VPO12, U20_DESC, VPO12_DESC);
1122 SIG_EXPR_DECL(VPOCLK, VPO24, U20_DESC, VPO24_DESC);
1123 SIG_EXPR_LIST_DECL_DUAL(VPOCLK, VPO12, VPO24);
1124 MS_PIN_DECL(U20, GPIOS3, ROMD7, VPOCLK);
1125
1126 #define R18 148
1127 #define ROMOE_DESC      SIG_DESC_SET(SCU8C, 4)
1128 SIG_EXPR_LIST_DECL_SINGLE(GPIOS4, GPIOS4);
1129 SIG_EXPR_DECL(ROMOE, ROM8, ROMOE_DESC);
1130 SIG_EXPR_DECL(ROMOE, ROM16, ROMOE_DESC);
1131 SIG_EXPR_DECL(ROMOE, ROM16S, ROMOE_DESC);
1132 SIG_EXPR_LIST_DECL(ROMOE, SIG_EXPR_PTR(ROMOE, ROM8),
1133                 SIG_EXPR_PTR(ROMOE, ROM16),
1134                 SIG_EXPR_PTR(ROMOE, ROM16S));
1135 MS_PIN_DECL_(R18, SIG_EXPR_LIST_PTR(ROMOE), SIG_EXPR_LIST_PTR(GPIOS4));
1136
1137 #define N21 149
1138 #define ROMWE_DESC      SIG_DESC_SET(SCU8C, 5)
1139 SIG_EXPR_LIST_DECL_SINGLE(GPIOS5, GPIOS5);
1140 SIG_EXPR_DECL(ROMWE, ROM8, ROMWE_DESC);
1141 SIG_EXPR_DECL(ROMWE, ROM16, ROMWE_DESC);
1142 SIG_EXPR_DECL(ROMWE, ROM16S, ROMWE_DESC);
1143 SIG_EXPR_LIST_DECL(ROMWE, SIG_EXPR_PTR(ROMWE, ROM8),
1144                 SIG_EXPR_PTR(ROMWE, ROM16),
1145                 SIG_EXPR_PTR(ROMWE, ROM16S));
1146 MS_PIN_DECL_(N21, SIG_EXPR_LIST_PTR(ROMWE), SIG_EXPR_LIST_PTR(GPIOS5));
1147
1148 #define L22 150
1149 #define L22_DESC        SIG_DESC_SET(SCU8C, 6)
1150 SIG_EXPR_DECL(ROMA22, ROM8, L22_DESC, VPO_OFF_12);
1151 SIG_EXPR_DECL(ROMA22, ROM16, L22_DESC, VPO_OFF_12);
1152 SIG_EXPR_DECL(ROMA22, ROM16S, L22_DESC, VPO_OFF_12);
1153 SIG_EXPR_LIST_DECL(ROMA22, SIG_EXPR_PTR(ROMA22, ROM8),
1154                 SIG_EXPR_PTR(ROMA22, ROM16),
1155                 SIG_EXPR_PTR(ROMA22, ROM16S));
1156 SIG_EXPR_LIST_DECL_SINGLE(VPOR4, VPO24, L22_DESC, VPO_24_OFF);
1157 MS_PIN_DECL(L22, GPIOS6, ROMA22, VPOR4);
1158
1159 #define K18 151
1160 #define K18_DESC        SIG_DESC_SET(SCU8C, 7)
1161 SIG_EXPR_DECL(ROMA23, ROM8, K18_DESC, VPO_OFF_12);
1162 SIG_EXPR_DECL(ROMA23, ROM16, K18_DESC, VPO_OFF_12);
1163 SIG_EXPR_DECL(ROMA23, ROM16S, K18_DESC, VPO_OFF_12);
1164 SIG_EXPR_LIST_DECL(ROMA23, SIG_EXPR_PTR(ROMA23, ROM8),
1165                 SIG_EXPR_PTR(ROMA23, ROM16),
1166                 SIG_EXPR_PTR(ROMA23, ROM16S));
1167 SIG_EXPR_LIST_DECL_SINGLE(VPOR5, VPO24, K18_DESC, VPO_24_OFF);
1168 MS_PIN_DECL(K18, GPIOS7, ROMA23, VPOR5);
1169
1170 #define RMII1_DESC      SIG_DESC_BIT(HW_STRAP1, 6, 0)
1171
1172 #define A12 152
1173 SIG_EXPR_LIST_DECL_SINGLE(GPIOT0, GPIOT0, SIG_DESC_SET(SCUA0, 0));
1174 SIG_EXPR_LIST_DECL_SINGLE(RMII1TXEN, RMII1, RMII1_DESC);
1175 SIG_EXPR_LIST_DECL_SINGLE(RGMII1TXCK, RGMII1);
1176 MS_PIN_DECL_(A12, SIG_EXPR_LIST_PTR(GPIOT0), SIG_EXPR_LIST_PTR(RMII1TXEN),
1177                 SIG_EXPR_LIST_PTR(RGMII1TXCK));
1178
1179 #define B12 153
1180 SIG_EXPR_LIST_DECL_SINGLE(GPIOT1, GPIOT1, SIG_DESC_SET(SCUA0, 1));
1181 SIG_EXPR_LIST_DECL_SINGLE(DASHB12, RMII1, RMII1_DESC);
1182 SIG_EXPR_LIST_DECL_SINGLE(RGMII1TXCTL, RGMII1);
1183 MS_PIN_DECL_(B12, SIG_EXPR_LIST_PTR(GPIOT1), SIG_EXPR_LIST_PTR(DASHB12),
1184                 SIG_EXPR_LIST_PTR(RGMII1TXCTL));
1185
1186 #define C12 154
1187 SIG_EXPR_LIST_DECL_SINGLE(GPIOT2, GPIOT2, SIG_DESC_SET(SCUA0, 2));
1188 SIG_EXPR_LIST_DECL_SINGLE(RMII1TXD0, RMII1, RMII1_DESC);
1189 SIG_EXPR_LIST_DECL_SINGLE(RGMII1TXD0, RGMII1);
1190 MS_PIN_DECL_(C12, SIG_EXPR_LIST_PTR(GPIOT2), SIG_EXPR_LIST_PTR(RMII1TXD0),
1191                 SIG_EXPR_LIST_PTR(RGMII1TXD0));
1192
1193 #define D12 155
1194 SIG_EXPR_LIST_DECL_SINGLE(GPIOT3, GPIOT3, SIG_DESC_SET(SCUA0, 3));
1195 SIG_EXPR_LIST_DECL_SINGLE(RMII1TXD1, RMII1, RMII1_DESC);
1196 SIG_EXPR_LIST_DECL_SINGLE(RGMII1TXD1, RGMII1);
1197 MS_PIN_DECL_(D12, SIG_EXPR_LIST_PTR(GPIOT3), SIG_EXPR_LIST_PTR(RMII1TXD1),
1198                 SIG_EXPR_LIST_PTR(RGMII1TXD1));
1199
1200 #define E12 156
1201 SIG_EXPR_LIST_DECL_SINGLE(GPIOT4, GPIOT4, SIG_DESC_SET(SCUA0, 4));
1202 SIG_EXPR_LIST_DECL_SINGLE(DASHE12, RMII1, RMII1_DESC);
1203 SIG_EXPR_LIST_DECL_SINGLE(RGMII1TXD2, RGMII1);
1204 MS_PIN_DECL_(E12, SIG_EXPR_LIST_PTR(GPIOT4), SIG_EXPR_LIST_PTR(DASHE12),
1205                 SIG_EXPR_LIST_PTR(RGMII1TXD2));
1206
1207 #define A13 157
1208 SIG_EXPR_LIST_DECL_SINGLE(GPIOT5, GPIOT5, SIG_DESC_SET(SCUA0, 5));
1209 SIG_EXPR_LIST_DECL_SINGLE(DASHA13, RMII1, RMII1_DESC);
1210 SIG_EXPR_LIST_DECL_SINGLE(RGMII1TXD3, RGMII1);
1211 MS_PIN_DECL_(A13, SIG_EXPR_LIST_PTR(GPIOT5), SIG_EXPR_LIST_PTR(DASHA13),
1212                 SIG_EXPR_LIST_PTR(RGMII1TXD3));
1213
1214 #define RMII2_DESC      SIG_DESC_BIT(HW_STRAP1, 7, 0)
1215
1216 #define D9 158
1217 SIG_EXPR_LIST_DECL_SINGLE(GPIOT6, GPIOT6, SIG_DESC_SET(SCUA0, 6));
1218 SIG_EXPR_LIST_DECL_SINGLE(RMII2TXEN, RMII2, RMII2_DESC);
1219 SIG_EXPR_LIST_DECL_SINGLE(RGMII2TXCK, RGMII2);
1220 MS_PIN_DECL_(D9, SIG_EXPR_LIST_PTR(GPIOT6), SIG_EXPR_LIST_PTR(RMII2TXEN),
1221                 SIG_EXPR_LIST_PTR(RGMII2TXCK));
1222
1223 #define E9 159
1224 SIG_EXPR_LIST_DECL_SINGLE(GPIOT7, GPIOT7, SIG_DESC_SET(SCUA0, 7));
1225 SIG_EXPR_LIST_DECL_SINGLE(DASHE9, RMII2, RMII2_DESC);
1226 SIG_EXPR_LIST_DECL_SINGLE(RGMII2TXCTL, RGMII2);
1227 MS_PIN_DECL_(E9, SIG_EXPR_LIST_PTR(GPIOT7), SIG_EXPR_LIST_PTR(DASHE9),
1228                 SIG_EXPR_LIST_PTR(RGMII2TXCTL));
1229
1230 #define A10 160
1231 SIG_EXPR_LIST_DECL_SINGLE(GPIOU0, GPIOU0, SIG_DESC_SET(SCUA0, 8));
1232 SIG_EXPR_LIST_DECL_SINGLE(RMII2TXD0, RMII2, RMII2_DESC);
1233 SIG_EXPR_LIST_DECL_SINGLE(RGMII2TXD0, RGMII2);
1234 MS_PIN_DECL_(A10, SIG_EXPR_LIST_PTR(GPIOU0), SIG_EXPR_LIST_PTR(RMII2TXD0),
1235                 SIG_EXPR_LIST_PTR(RGMII2TXD0));
1236
1237 #define B10 161
1238 SIG_EXPR_LIST_DECL_SINGLE(GPIOU1, GPIOU1, SIG_DESC_SET(SCUA0, 9));
1239 SIG_EXPR_LIST_DECL_SINGLE(RMII2TXD1, RMII2, RMII2_DESC);
1240 SIG_EXPR_LIST_DECL_SINGLE(RGMII2TXD1, RGMII2);
1241 MS_PIN_DECL_(B10, SIG_EXPR_LIST_PTR(GPIOU1), SIG_EXPR_LIST_PTR(RMII2TXD1),
1242                 SIG_EXPR_LIST_PTR(RGMII2TXD1));
1243
1244 #define C10 162
1245 SIG_EXPR_LIST_DECL_SINGLE(GPIOU2, GPIOU2, SIG_DESC_SET(SCUA0, 10));
1246 SIG_EXPR_LIST_DECL_SINGLE(DASHC10, RMII2, RMII2_DESC);
1247 SIG_EXPR_LIST_DECL_SINGLE(RGMII2TXD2, RGMII2);
1248 MS_PIN_DECL_(C10, SIG_EXPR_LIST_PTR(GPIOU2), SIG_EXPR_LIST_PTR(DASHC10),
1249                 SIG_EXPR_LIST_PTR(RGMII2TXD2));
1250
1251 #define D10 163
1252 SIG_EXPR_LIST_DECL_SINGLE(GPIOU3, GPIOU3, SIG_DESC_SET(SCUA0, 11));
1253 SIG_EXPR_LIST_DECL_SINGLE(DASHD10, RMII2, RMII2_DESC);
1254 SIG_EXPR_LIST_DECL_SINGLE(RGMII2TXD3, RGMII2);
1255 MS_PIN_DECL_(D10, SIG_EXPR_LIST_PTR(GPIOU3), SIG_EXPR_LIST_PTR(DASHD10),
1256                 SIG_EXPR_LIST_PTR(RGMII2TXD3));
1257
1258 #define E11 164
1259 SIG_EXPR_LIST_DECL_SINGLE(GPIOU4, GPIOU4, SIG_DESC_SET(SCUA0, 12));
1260 SIG_EXPR_LIST_DECL_SINGLE(RMII1RCLK, RMII1, RMII1_DESC);
1261 SIG_EXPR_LIST_DECL_SINGLE(RGMII1RXCK, RGMII1);
1262 MS_PIN_DECL_(E11, SIG_EXPR_LIST_PTR(GPIOU4), SIG_EXPR_LIST_PTR(RMII1RCLK),
1263                 SIG_EXPR_LIST_PTR(RGMII1RXCK));
1264
1265 #define D11 165
1266 SIG_EXPR_LIST_DECL_SINGLE(GPIOU5, GPIOU5, SIG_DESC_SET(SCUA0, 13));
1267 SIG_EXPR_LIST_DECL_SINGLE(DASHD11, RMII1, RMII1_DESC);
1268 SIG_EXPR_LIST_DECL_SINGLE(RGMII1RXCTL, RGMII1);
1269 MS_PIN_DECL_(D11, SIG_EXPR_LIST_PTR(GPIOU5), SIG_EXPR_LIST_PTR(DASHD11),
1270                 SIG_EXPR_LIST_PTR(RGMII1RXCTL));
1271
1272 #define C11 166
1273 SIG_EXPR_LIST_DECL_SINGLE(GPIOU6, GPIOU6, SIG_DESC_SET(SCUA0, 14));
1274 SIG_EXPR_LIST_DECL_SINGLE(RMII1RXD0, RMII1, RMII1_DESC);
1275 SIG_EXPR_LIST_DECL_SINGLE(RGMII1RXD0, RGMII1);
1276 MS_PIN_DECL_(C11, SIG_EXPR_LIST_PTR(GPIOU6), SIG_EXPR_LIST_PTR(RMII1RXD0),
1277                 SIG_EXPR_LIST_PTR(RGMII1RXD0));
1278
1279 #define B11 167
1280 SIG_EXPR_LIST_DECL_SINGLE(GPIOU7, GPIOU7, SIG_DESC_SET(SCUA0, 15));
1281 SIG_EXPR_LIST_DECL_SINGLE(RMII1RXD1, RMII1, RMII1_DESC);
1282 SIG_EXPR_LIST_DECL_SINGLE(RGMII1RXD1, RGMII1);
1283 MS_PIN_DECL_(B11, SIG_EXPR_LIST_PTR(GPIOU7), SIG_EXPR_LIST_PTR(RMII1RXD1),
1284                 SIG_EXPR_LIST_PTR(RGMII1RXD1));
1285
1286 #define A11 168
1287 SIG_EXPR_LIST_DECL_SINGLE(GPIOV0, GPIOV0, SIG_DESC_SET(SCUA0, 16));
1288 SIG_EXPR_LIST_DECL_SINGLE(RMII1CRSDV, RMII1, RMII1_DESC);
1289 SIG_EXPR_LIST_DECL_SINGLE(RGMII1RXD2, RGMII1);
1290 MS_PIN_DECL_(A11, SIG_EXPR_LIST_PTR(GPIOV0), SIG_EXPR_LIST_PTR(RMII1CRSDV),
1291                 SIG_EXPR_LIST_PTR(RGMII1RXD2));
1292
1293 #define E10 169
1294 SIG_EXPR_LIST_DECL_SINGLE(GPIOV1, GPIOV1, SIG_DESC_SET(SCUA0, 17));
1295 SIG_EXPR_LIST_DECL_SINGLE(RMII1RXER, RMII1, RMII1_DESC);
1296 SIG_EXPR_LIST_DECL_SINGLE(RGMII1RXD3, RGMII1);
1297 MS_PIN_DECL_(E10, SIG_EXPR_LIST_PTR(GPIOV1), SIG_EXPR_LIST_PTR(RMII1RXER),
1298                 SIG_EXPR_LIST_PTR(RGMII1RXD3));
1299
1300 #define C9 170
1301 SIG_EXPR_LIST_DECL_SINGLE(GPIOV2, GPIOV2, SIG_DESC_SET(SCUA0, 18));
1302 SIG_EXPR_LIST_DECL_SINGLE(RMII2RCLK, RMII2, RMII2_DESC);
1303 SIG_EXPR_LIST_DECL_SINGLE(RGMII2RXCK, RGMII2);
1304 MS_PIN_DECL_(C9, SIG_EXPR_LIST_PTR(GPIOV2), SIG_EXPR_LIST_PTR(RMII2RCLK),
1305                 SIG_EXPR_LIST_PTR(RGMII2RXCK));
1306
1307 #define B9 171
1308 SIG_EXPR_LIST_DECL_SINGLE(GPIOV3, GPIOV3, SIG_DESC_SET(SCUA0, 19));
1309 SIG_EXPR_LIST_DECL_SINGLE(DASHB9, RMII2, RMII2_DESC);
1310 SIG_EXPR_LIST_DECL_SINGLE(RGMII2RXCTL, RGMII2);
1311 MS_PIN_DECL_(B9, SIG_EXPR_LIST_PTR(GPIOV3), SIG_EXPR_LIST_PTR(DASHB9),
1312                 SIG_EXPR_LIST_PTR(RGMII2RXCTL));
1313
1314 #define A9 172
1315 SIG_EXPR_LIST_DECL_SINGLE(GPIOV4, GPIOV4, SIG_DESC_SET(SCUA0, 20));
1316 SIG_EXPR_LIST_DECL_SINGLE(RMII2RXD0, RMII2, RMII2_DESC);
1317 SIG_EXPR_LIST_DECL_SINGLE(RGMII2RXD0, RGMII2);
1318 MS_PIN_DECL_(A9, SIG_EXPR_LIST_PTR(GPIOV4), SIG_EXPR_LIST_PTR(RMII2RXD0),
1319                 SIG_EXPR_LIST_PTR(RGMII2RXD0));
1320
1321 #define E8 173
1322 SIG_EXPR_LIST_DECL_SINGLE(GPIOV5, GPIOV5, SIG_DESC_SET(SCUA0, 21));
1323 SIG_EXPR_LIST_DECL_SINGLE(RMII2RXD1, RMII2, RMII2_DESC);
1324 SIG_EXPR_LIST_DECL_SINGLE(RGMII2RXD1, RGMII2);
1325 MS_PIN_DECL_(E8, SIG_EXPR_LIST_PTR(GPIOV5), SIG_EXPR_LIST_PTR(RMII2RXD1),
1326                 SIG_EXPR_LIST_PTR(RGMII2RXD1));
1327
1328 #define D8 174
1329 SIG_EXPR_LIST_DECL_SINGLE(GPIOV6, GPIOV6, SIG_DESC_SET(SCUA0, 22));
1330 SIG_EXPR_LIST_DECL_SINGLE(RMII2CRSDV, RMII2, RMII2_DESC);
1331 SIG_EXPR_LIST_DECL_SINGLE(RGMII2RXD2, RGMII2);
1332 MS_PIN_DECL_(D8, SIG_EXPR_LIST_PTR(GPIOV6), SIG_EXPR_LIST_PTR(RMII2CRSDV),
1333                 SIG_EXPR_LIST_PTR(RGMII2RXD2));
1334
1335 #define C8 175
1336 SIG_EXPR_LIST_DECL_SINGLE(GPIOV7, GPIOV7, SIG_DESC_SET(SCUA0, 23));
1337 SIG_EXPR_LIST_DECL_SINGLE(RMII2RXER, RMII2, RMII2_DESC);
1338 SIG_EXPR_LIST_DECL_SINGLE(RGMII2RXD3, RGMII2);
1339 MS_PIN_DECL_(C8, SIG_EXPR_LIST_PTR(GPIOV7), SIG_EXPR_LIST_PTR(RMII2RXER),
1340                 SIG_EXPR_LIST_PTR(RGMII2RXD3));
1341
1342 FUNC_GROUP_DECL(RMII1, A12, B12, C12, D12, E12, A13, E11, D11, C11, B11, A11,
1343                 E10);
1344 FUNC_GROUP_DECL(RGMII1, A12, B12, C12, D12, E12, A13, E11, D11, C11, B11, A11,
1345                 E10);
1346
1347 FUNC_GROUP_DECL(RMII2, D9, E9, A10, B10, C10, D10, C9, B9, A9, E8, D8, C8);
1348 FUNC_GROUP_DECL(RGMII2, D9, E9, A10, B10, C10, D10, C9, B9, A9, E8, D8, C8);
1349
1350 #define L5 176
1351 SIG_EXPR_LIST_DECL_SINGLE(GPIOW0, GPIOW0, SIG_DESC_SET(SCUA0, 24));
1352 SIG_EXPR_LIST_DECL_SINGLE(ADC0, ADC0);
1353 MS_PIN_DECL_(L5, SIG_EXPR_LIST_PTR(GPIOW0), SIG_EXPR_LIST_PTR(ADC0));
1354 FUNC_GROUP_DECL(ADC0, L5);
1355
1356 #define L4 177
1357 SIG_EXPR_LIST_DECL_SINGLE(GPIOW1, GPIOW1, SIG_DESC_SET(SCUA0, 25));
1358 SIG_EXPR_LIST_DECL_SINGLE(ADC1, ADC1);
1359 MS_PIN_DECL_(L4, SIG_EXPR_LIST_PTR(GPIOW1), SIG_EXPR_LIST_PTR(ADC1));
1360 FUNC_GROUP_DECL(ADC1, L4);
1361
1362 #define L3 178
1363 SIG_EXPR_LIST_DECL_SINGLE(GPIOW2, GPIOW2, SIG_DESC_SET(SCUA0, 26));
1364 SIG_EXPR_LIST_DECL_SINGLE(ADC2, ADC2);
1365 MS_PIN_DECL_(L3, SIG_EXPR_LIST_PTR(GPIOW2), SIG_EXPR_LIST_PTR(ADC2));
1366 FUNC_GROUP_DECL(ADC2, L3);
1367
1368 #define L2 179
1369 SIG_EXPR_LIST_DECL_SINGLE(GPIOW3, GPIOW3, SIG_DESC_SET(SCUA0, 27));
1370 SIG_EXPR_LIST_DECL_SINGLE(ADC3, ADC3);
1371 MS_PIN_DECL_(L2, SIG_EXPR_LIST_PTR(GPIOW3), SIG_EXPR_LIST_PTR(ADC3));
1372 FUNC_GROUP_DECL(ADC3, L2);
1373
1374 #define L1 180
1375 SIG_EXPR_LIST_DECL_SINGLE(GPIOW4, GPIOW4, SIG_DESC_SET(SCUA0, 28));
1376 SIG_EXPR_LIST_DECL_SINGLE(ADC4, ADC4);
1377 MS_PIN_DECL_(L1, SIG_EXPR_LIST_PTR(GPIOW4), SIG_EXPR_LIST_PTR(ADC4));
1378 FUNC_GROUP_DECL(ADC4, L1);
1379
1380 #define M5 181
1381 SIG_EXPR_LIST_DECL_SINGLE(GPIOW5, GPIOW5, SIG_DESC_SET(SCUA0, 29));
1382 SIG_EXPR_LIST_DECL_SINGLE(ADC5, ADC5);
1383 MS_PIN_DECL_(M5, SIG_EXPR_LIST_PTR(GPIOW5), SIG_EXPR_LIST_PTR(ADC5));
1384 FUNC_GROUP_DECL(ADC5, M5);
1385
1386 #define M4 182
1387 SIG_EXPR_LIST_DECL_SINGLE(GPIOW6, GPIOW6, SIG_DESC_SET(SCUA0, 30));
1388 SIG_EXPR_LIST_DECL_SINGLE(ADC6, ADC6);
1389 MS_PIN_DECL_(M4, SIG_EXPR_LIST_PTR(GPIOW6), SIG_EXPR_LIST_PTR(ADC6));
1390 FUNC_GROUP_DECL(ADC6, M4);
1391
1392 #define M3 183
1393 SIG_EXPR_LIST_DECL_SINGLE(GPIOW7, GPIOW7, SIG_DESC_SET(SCUA0, 31));
1394 SIG_EXPR_LIST_DECL_SINGLE(ADC7, ADC7);
1395 MS_PIN_DECL_(M3, SIG_EXPR_LIST_PTR(GPIOW7), SIG_EXPR_LIST_PTR(ADC7));
1396 FUNC_GROUP_DECL(ADC7, M3);
1397
1398 #define M2 184
1399 SIG_EXPR_LIST_DECL_SINGLE(GPIOX0, GPIOX0, SIG_DESC_SET(SCUA4, 0));
1400 SIG_EXPR_LIST_DECL_SINGLE(ADC8, ADC8);
1401 MS_PIN_DECL_(M2, SIG_EXPR_LIST_PTR(GPIOX0), SIG_EXPR_LIST_PTR(ADC8));
1402 FUNC_GROUP_DECL(ADC8, M2);
1403
1404 #define M1 185
1405 SIG_EXPR_LIST_DECL_SINGLE(GPIOX1, GPIOX1, SIG_DESC_SET(SCUA4, 1));
1406 SIG_EXPR_LIST_DECL_SINGLE(ADC9, ADC9);
1407 MS_PIN_DECL_(M1, SIG_EXPR_LIST_PTR(GPIOX1), SIG_EXPR_LIST_PTR(ADC9));
1408 FUNC_GROUP_DECL(ADC9, M1);
1409
1410 #define N5 186
1411 SIG_EXPR_LIST_DECL_SINGLE(GPIOX2, GPIOX2, SIG_DESC_SET(SCUA4, 2));
1412 SIG_EXPR_LIST_DECL_SINGLE(ADC10, ADC10);
1413 MS_PIN_DECL_(N5, SIG_EXPR_LIST_PTR(GPIOX2), SIG_EXPR_LIST_PTR(ADC10));
1414 FUNC_GROUP_DECL(ADC10, N5);
1415
1416 #define N4 187
1417 SIG_EXPR_LIST_DECL_SINGLE(GPIOX3, GPIOX3, SIG_DESC_SET(SCUA4, 3));
1418 SIG_EXPR_LIST_DECL_SINGLE(ADC11, ADC11);
1419 MS_PIN_DECL_(N4, SIG_EXPR_LIST_PTR(GPIOX3), SIG_EXPR_LIST_PTR(ADC11));
1420 FUNC_GROUP_DECL(ADC11, N4);
1421
1422 #define N3 188
1423 SIG_EXPR_LIST_DECL_SINGLE(GPIOX4, GPIOX4, SIG_DESC_SET(SCUA4, 4));
1424 SIG_EXPR_LIST_DECL_SINGLE(ADC12, ADC12);
1425 MS_PIN_DECL_(N3, SIG_EXPR_LIST_PTR(GPIOX4), SIG_EXPR_LIST_PTR(ADC12));
1426 FUNC_GROUP_DECL(ADC12, N3);
1427
1428 #define N2 189
1429 SIG_EXPR_LIST_DECL_SINGLE(GPIOX5, GPIOX5, SIG_DESC_SET(SCUA4, 5));
1430 SIG_EXPR_LIST_DECL_SINGLE(ADC13, ADC13);
1431 MS_PIN_DECL_(N2, SIG_EXPR_LIST_PTR(GPIOX5), SIG_EXPR_LIST_PTR(ADC13));
1432 FUNC_GROUP_DECL(ADC13, N2);
1433
1434 #define N1 190
1435 SIG_EXPR_LIST_DECL_SINGLE(GPIOX6, GPIOX6, SIG_DESC_SET(SCUA4, 6));
1436 SIG_EXPR_LIST_DECL_SINGLE(ADC14, ADC14);
1437 MS_PIN_DECL_(N1, SIG_EXPR_LIST_PTR(GPIOX6), SIG_EXPR_LIST_PTR(ADC14));
1438 FUNC_GROUP_DECL(ADC14, N1);
1439
1440 #define P5 191
1441 SIG_EXPR_LIST_DECL_SINGLE(GPIOX7, GPIOX7, SIG_DESC_SET(SCUA4, 7));
1442 SIG_EXPR_LIST_DECL_SINGLE(ADC15, ADC15);
1443 MS_PIN_DECL_(P5, SIG_EXPR_LIST_PTR(GPIOX7), SIG_EXPR_LIST_PTR(ADC15));
1444 FUNC_GROUP_DECL(ADC15, P5);
1445
1446 #define C21 192
1447 SIG_EXPR_DECL(SIOS3, SIOS3, SIG_DESC_SET(SCUA4, 8));
1448 SIG_EXPR_DECL(SIOS3, ACPI, ACPI_DESC);
1449 SIG_EXPR_LIST_DECL_DUAL(SIOS3, SIOS3, ACPI);
1450 SS_PIN_DECL(C21, GPIOY0, SIOS3);
1451 FUNC_GROUP_DECL(SIOS3, C21);
1452
1453 #define F20 193
1454 SIG_EXPR_DECL(SIOS5, SIOS5, SIG_DESC_SET(SCUA4, 9));
1455 SIG_EXPR_DECL(SIOS5, ACPI, ACPI_DESC);
1456 SIG_EXPR_LIST_DECL_DUAL(SIOS5, SIOS5, ACPI);
1457 SS_PIN_DECL(F20, GPIOY1, SIOS5);
1458 FUNC_GROUP_DECL(SIOS5, F20);
1459
1460 #define G20 194
1461 SIG_EXPR_DECL(SIOPWREQ, SIOPWREQ, SIG_DESC_SET(SCUA4, 10));
1462 SIG_EXPR_DECL(SIOPWREQ, ACPI, ACPI_DESC);
1463 SIG_EXPR_LIST_DECL_DUAL(SIOPWREQ, SIOPWREQ, ACPI);
1464 SS_PIN_DECL(G20, GPIOY2, SIOPWREQ);
1465 FUNC_GROUP_DECL(SIOPWREQ, G20);
1466
1467 #define K20 195
1468 SIG_EXPR_DECL(SIOONCTRL, SIOONCTRL, SIG_DESC_SET(SCUA4, 11));
1469 SIG_EXPR_DECL(SIOONCTRL, ACPI, ACPI_DESC);
1470 SIG_EXPR_LIST_DECL_DUAL(SIOONCTRL, SIOONCTRL, ACPI);
1471 SS_PIN_DECL(K20, GPIOY3, SIOONCTRL);
1472 FUNC_GROUP_DECL(SIOONCTRL, K20);
1473
1474 FUNC_GROUP_DECL(ACPI, B19, A20, D17, A19, C21, F20, G20, K20);
1475
1476 #define R22 200
1477 #define R22_DESC        SIG_DESC_SET(SCUA4, 16)
1478 SIG_EXPR_DECL(ROMA2, ROM8, R22_DESC, VPOOFF0_DESC);
1479 SIG_EXPR_DECL(ROMA2, ROM16, R22_DESC, VPOOFF0_DESC);
1480 SIG_EXPR_LIST_DECL_DUAL(ROMA2, ROM8, ROM16);
1481 SIG_EXPR_DECL(VPOB0, VPO12, R22_DESC, VPO12_DESC);
1482 SIG_EXPR_DECL(VPOB0, VPO24, R22_DESC, VPO24_DESC);
1483 SIG_EXPR_DECL(VPOB0, VPOOFF1, R22_DESC, VPOOFF1_DESC);
1484 SIG_EXPR_LIST_DECL(VPOB0, SIG_EXPR_PTR(VPOB0, VPO12),
1485                 SIG_EXPR_PTR(VPOB0, VPO24), SIG_EXPR_PTR(VPOB0, VPOOFF1));
1486 MS_PIN_DECL(R22, GPIOZ0, ROMA2, VPOB0);
1487
1488 #define P18 201
1489 #define P18_DESC        SIG_DESC_SET(SCUA4, 17)
1490 SIG_EXPR_DECL(ROMA3, ROM8, P18_DESC, VPOOFF0_DESC);
1491 SIG_EXPR_DECL(ROMA3, ROM16, P18_DESC, VPOOFF0_DESC);
1492 SIG_EXPR_LIST_DECL_DUAL(ROMA3, ROM8, ROM16);
1493 SIG_EXPR_DECL(VPOB1, VPO12, P18_DESC, VPO12_DESC);
1494 SIG_EXPR_DECL(VPOB1, VPO24, P18_DESC, VPO24_DESC);
1495 SIG_EXPR_DECL(VPOB1, VPOOFF1, P18_DESC, VPOOFF1_DESC);
1496 SIG_EXPR_LIST_DECL(VPOB1, SIG_EXPR_PTR(VPOB1, VPO12),
1497                 SIG_EXPR_PTR(VPOB1, VPO24), SIG_EXPR_PTR(VPOB1, VPOOFF1));
1498 MS_PIN_DECL(P18, GPIOZ1, ROMA3, VPOB1);
1499
1500 #define P19 202
1501 #define P19_DESC        SIG_DESC_SET(SCUA4, 18)
1502 SIG_EXPR_DECL(ROMA4, ROM8, P19_DESC, VPOOFF0_DESC);
1503 SIG_EXPR_DECL(ROMA4, ROM16, P19_DESC, VPOOFF0_DESC);
1504 SIG_EXPR_LIST_DECL_DUAL(ROMA4, ROM8, ROM16);
1505 SIG_EXPR_DECL(VPOB2, VPO12, P19_DESC, VPO12_DESC);
1506 SIG_EXPR_DECL(VPOB2, VPO24, P19_DESC, VPO24_DESC);
1507 SIG_EXPR_DECL(VPOB2, VPOOFF1, P19_DESC, VPOOFF1_DESC);
1508 SIG_EXPR_LIST_DECL(VPOB2, SIG_EXPR_PTR(VPOB2, VPO12),
1509                 SIG_EXPR_PTR(VPOB2, VPO24), SIG_EXPR_PTR(VPOB2, VPOOFF1));
1510 MS_PIN_DECL(P19, GPIOZ2, ROMA4, VPOB2);
1511
1512 #define P20 203
1513 #define P20_DESC        SIG_DESC_SET(SCUA4, 19)
1514 SIG_EXPR_DECL(ROMA5, ROM8, P20_DESC, VPOOFF0_DESC);
1515 SIG_EXPR_DECL(ROMA5, ROM16, P20_DESC, VPOOFF0_DESC);
1516 SIG_EXPR_LIST_DECL_DUAL(ROMA5, ROM8, ROM16);
1517 SIG_EXPR_DECL(VPOB3, VPO12, P20_DESC, VPO12_DESC);
1518 SIG_EXPR_DECL(VPOB3, VPO24, P20_DESC, VPO24_DESC);
1519 SIG_EXPR_DECL(VPOB3, VPOOFF1, P20_DESC, VPOOFF1_DESC);
1520 SIG_EXPR_LIST_DECL(VPOB3, SIG_EXPR_PTR(VPOB3, VPO12),
1521                 SIG_EXPR_PTR(VPOB3, VPO24), SIG_EXPR_PTR(VPOB3, VPOOFF1));
1522 MS_PIN_DECL(P20, GPIOZ3, ROMA5, VPOB3);
1523
1524 #define P21 204
1525 #define P21_DESC        SIG_DESC_SET(SCUA4, 20)
1526 SIG_EXPR_DECL(ROMA6, ROM8, P21_DESC, VPOOFF0_DESC);
1527 SIG_EXPR_DECL(ROMA6, ROM16, P21_DESC, VPOOFF0_DESC);
1528 SIG_EXPR_LIST_DECL_DUAL(ROMA6, ROM8, ROM16);
1529 SIG_EXPR_DECL(VPOB4, VPO12, P21_DESC, VPO12_DESC);
1530 SIG_EXPR_DECL(VPOB4, VPO24, P21_DESC, VPO24_DESC);
1531 SIG_EXPR_DECL(VPOB4, VPOOFF1, P21_DESC, VPOOFF1_DESC);
1532 SIG_EXPR_LIST_DECL(VPOB4, SIG_EXPR_PTR(VPOB4, VPO12),
1533                 SIG_EXPR_PTR(VPOB4, VPO24), SIG_EXPR_PTR(VPOB4, VPOOFF1));
1534 MS_PIN_DECL(P21, GPIOZ4, ROMA6, VPOB4);
1535
1536 #define P22 205
1537 #define P22_DESC        SIG_DESC_SET(SCUA4, 21)
1538 SIG_EXPR_DECL(ROMA7, ROM8, P22_DESC, VPOOFF0_DESC);
1539 SIG_EXPR_DECL(ROMA7, ROM16, P22_DESC, VPOOFF0_DESC);
1540 SIG_EXPR_LIST_DECL_DUAL(ROMA7, ROM8, ROM16);
1541 SIG_EXPR_DECL(VPOB5, VPO12, P22_DESC, VPO12_DESC);
1542 SIG_EXPR_DECL(VPOB5, VPO24, P22_DESC, VPO24_DESC);
1543 SIG_EXPR_DECL(VPOB5, VPOOFF1, P22_DESC, VPOOFF1_DESC);
1544 SIG_EXPR_LIST_DECL(VPOB5, SIG_EXPR_PTR(VPOB5, VPO12),
1545                 SIG_EXPR_PTR(VPOB5, VPO24), SIG_EXPR_PTR(VPOB5, VPOOFF1));
1546 MS_PIN_DECL(P22, GPIOZ5, ROMA7, VPOB5);
1547
1548 #define M19 206
1549 #define M19_DESC        SIG_DESC_SET(SCUA4, 22)
1550 SIG_EXPR_DECL(ROMA8, ROM8, M19_DESC, VPOOFF0_DESC);
1551 SIG_EXPR_DECL(ROMA8, ROM16, M19_DESC, VPOOFF0_DESC);
1552 SIG_EXPR_LIST_DECL_DUAL(ROMA8, ROM8, ROM16);
1553 SIG_EXPR_DECL(VPOB6, VPO12, M19_DESC, VPO12_DESC);
1554 SIG_EXPR_DECL(VPOB6, VPO24, M19_DESC, VPO24_DESC);
1555 SIG_EXPR_DECL(VPOB6, VPOOFF1, M19_DESC, VPOOFF1_DESC);
1556 SIG_EXPR_LIST_DECL(VPOB6, SIG_EXPR_PTR(VPOB6, VPO12),
1557                 SIG_EXPR_PTR(VPOB6, VPO24), SIG_EXPR_PTR(VPOB6, VPOOFF1));
1558 MS_PIN_DECL(M19, GPIOZ6, ROMA8, VPOB6);
1559
1560 #define M20 207
1561 #define M20_DESC        SIG_DESC_SET(SCUA4, 23)
1562 SIG_EXPR_DECL(ROMA9, ROM8, M20_DESC, VPOOFF0_DESC);
1563 SIG_EXPR_DECL(ROMA9, ROM16, M20_DESC, VPOOFF0_DESC);
1564 SIG_EXPR_LIST_DECL_DUAL(ROMA9, ROM8, ROM16);
1565 SIG_EXPR_DECL(VPOB7, VPO12, M20_DESC, VPO12_DESC);
1566 SIG_EXPR_DECL(VPOB7, VPO24, M20_DESC, VPO24_DESC);
1567 SIG_EXPR_DECL(VPOB7, VPOOFF1, M20_DESC, VPOOFF1_DESC);
1568 SIG_EXPR_LIST_DECL(VPOB7, SIG_EXPR_PTR(VPOB7, VPO12),
1569                 SIG_EXPR_PTR(VPOB7, VPO24), SIG_EXPR_PTR(VPOB7, VPOOFF1));
1570 MS_PIN_DECL(M20, GPIOZ7, ROMA9, VPOB7);
1571
1572 #define M21 208
1573 #define M21_DESC        SIG_DESC_SET(SCUA4, 24)
1574 SIG_EXPR_DECL(ROMA10, ROM8, M21_DESC, VPOOFF0_DESC);
1575 SIG_EXPR_DECL(ROMA10, ROM16, M21_DESC, VPOOFF0_DESC);
1576 SIG_EXPR_LIST_DECL_DUAL(ROMA10, ROM8, ROM16);
1577 SIG_EXPR_DECL(VPOG0, VPO12, M21_DESC, VPO12_DESC);
1578 SIG_EXPR_DECL(VPOG0, VPO24, M21_DESC, VPO24_DESC);
1579 SIG_EXPR_DECL(VPOG0, VPOOFF1, M21_DESC, VPOOFF1_DESC);
1580 SIG_EXPR_LIST_DECL(VPOG0, SIG_EXPR_PTR(VPOG0, VPO12),
1581                 SIG_EXPR_PTR(VPOG0, VPO24), SIG_EXPR_PTR(VPOG0, VPOOFF1));
1582 MS_PIN_DECL(M21, GPIOAA0, ROMA10, VPOG0);
1583
1584 #define M22 209
1585 #define M22_DESC        SIG_DESC_SET(SCUA4, 25)
1586 SIG_EXPR_DECL(ROMA11, ROM8, M22_DESC, VPOOFF0_DESC);
1587 SIG_EXPR_DECL(ROMA11, ROM16, M22_DESC, VPOOFF0_DESC);
1588 SIG_EXPR_LIST_DECL_DUAL(ROMA11, ROM8, ROM16);
1589 SIG_EXPR_DECL(VPOG1, VPO12, M22_DESC, VPO12_DESC);
1590 SIG_EXPR_DECL(VPOG1, VPO24, M22_DESC, VPO24_DESC);
1591 SIG_EXPR_DECL(VPOG1, VPOOFF1, M22_DESC, VPOOFF1_DESC);
1592 SIG_EXPR_LIST_DECL(VPOG1, SIG_EXPR_PTR(VPOG1, VPO12),
1593                 SIG_EXPR_PTR(VPOG1, VPO24), SIG_EXPR_PTR(VPOG1, VPOOFF1));
1594 MS_PIN_DECL(M22, GPIOAA1, ROMA11, VPOG1);
1595
1596 #define L18 210
1597 #define L18_DESC        SIG_DESC_SET(SCUA4, 26)
1598 SIG_EXPR_DECL(ROMA12, ROM8, L18_DESC, VPOOFF0_DESC);
1599 SIG_EXPR_DECL(ROMA12, ROM16, L18_DESC, VPOOFF0_DESC);
1600 SIG_EXPR_LIST_DECL_DUAL(ROMA12, ROM8, ROM16);
1601 SIG_EXPR_DECL(VPOG2, VPO12, L18_DESC, VPO12_DESC);
1602 SIG_EXPR_DECL(VPOG2, VPO24, L18_DESC, VPO24_DESC);
1603 SIG_EXPR_DECL(VPOG2, VPOOFF1, L18_DESC, VPOOFF1_DESC);
1604 SIG_EXPR_LIST_DECL(VPOG2, SIG_EXPR_PTR(VPOG2, VPO12),
1605                 SIG_EXPR_PTR(VPOG2, VPO24), SIG_EXPR_PTR(VPOG2, VPOOFF1));
1606 MS_PIN_DECL(L18, GPIOAA2, ROMA12, VPOG2);
1607
1608 #define L19 211
1609 #define L19_DESC        SIG_DESC_SET(SCUA4, 27)
1610 SIG_EXPR_DECL(ROMA13, ROM8, L19_DESC, VPOOFF0_DESC);
1611 SIG_EXPR_DECL(ROMA13, ROM16, L19_DESC, VPOOFF0_DESC);
1612 SIG_EXPR_LIST_DECL_DUAL(ROMA13, ROM8, ROM16);
1613 SIG_EXPR_DECL(VPOG3, VPO12, L19_DESC, VPO12_DESC);
1614 SIG_EXPR_DECL(VPOG3, VPO24, L19_DESC, VPO24_DESC);
1615 SIG_EXPR_DECL(VPOG3, VPOOFF1, L19_DESC, VPOOFF1_DESC);
1616 SIG_EXPR_LIST_DECL(VPOG3, SIG_EXPR_PTR(VPOG3, VPO12),
1617                 SIG_EXPR_PTR(VPOG3, VPO24), SIG_EXPR_PTR(VPOG3, VPOOFF1));
1618 MS_PIN_DECL(L19, GPIOAA3, ROMA13, VPOG3);
1619
1620 #define L20 212
1621 #define L20_DESC        SIG_DESC_SET(SCUA4, 28)
1622 SIG_EXPR_DECL(ROMA14, ROM8, L20_DESC, VPO_OFF_12);
1623 SIG_EXPR_DECL(ROMA14, ROM16, L20_DESC, VPO_OFF_12);
1624 SIG_EXPR_LIST_DECL_DUAL(ROMA14, ROM8, ROM16);
1625 SIG_EXPR_DECL(VPOG4, VPO24, L20_DESC, VPO24_DESC);
1626 SIG_EXPR_DECL(VPOG4, VPOOFF1, L20_DESC, VPOOFF1_DESC);
1627 SIG_EXPR_LIST_DECL_DUAL(VPOG4, VPO24, VPOOFF1);
1628 MS_PIN_DECL(L20, GPIOAA4, ROMA14, VPOG4);
1629
1630 #define L21 213
1631 #define L21_DESC        SIG_DESC_SET(SCUA4, 29)
1632 SIG_EXPR_DECL(ROMA15, ROM8, L21_DESC, VPO_OFF_12);
1633 SIG_EXPR_DECL(ROMA15, ROM16, L21_DESC, VPO_OFF_12);
1634 SIG_EXPR_LIST_DECL_DUAL(ROMA15, ROM8, ROM16);
1635 SIG_EXPR_DECL(VPOG5, VPO24, L21_DESC, VPO24_DESC);
1636 SIG_EXPR_DECL(VPOG5, VPOOFF1, L21_DESC, VPOOFF1_DESC);
1637 SIG_EXPR_LIST_DECL_DUAL(VPOG5, VPO24, VPOOFF1);
1638 MS_PIN_DECL(L21, GPIOAA5, ROMA15, VPOG5);
1639
1640 #define T18 214
1641 #define T18_DESC        SIG_DESC_SET(SCUA4, 30)
1642 SIG_EXPR_DECL(ROMA16, ROM8, T18_DESC, VPO_OFF_12);
1643 SIG_EXPR_DECL(ROMA16, ROM16, T18_DESC, VPO_OFF_12);
1644 SIG_EXPR_LIST_DECL_DUAL(ROMA16, ROM8, ROM16);
1645 SIG_EXPR_DECL(VPOG6, VPO24, T18_DESC, VPO24_DESC);
1646 SIG_EXPR_DECL(VPOG6, VPOOFF1, T18_DESC, VPOOFF1_DESC);
1647 SIG_EXPR_LIST_DECL_DUAL(VPOG6, VPO24, VPOOFF1);
1648 MS_PIN_DECL(T18, GPIOAA6, ROMA16, VPOG6);
1649
1650 #define N18 215
1651 #define N18_DESC        SIG_DESC_SET(SCUA4, 31)
1652 SIG_EXPR_DECL(ROMA17, ROM8, N18_DESC, VPO_OFF_12);
1653 SIG_EXPR_DECL(ROMA17, ROM16, N18_DESC, VPO_OFF_12);
1654 SIG_EXPR_LIST_DECL_DUAL(ROMA17, ROM8, ROM16);
1655 SIG_EXPR_DECL(VPOG7, VPO24, N18_DESC, VPO24_DESC);
1656 SIG_EXPR_DECL(VPOG7, VPOOFF1, N18_DESC, VPOOFF1_DESC);
1657 SIG_EXPR_LIST_DECL_DUAL(VPOG7, VPO24, VPOOFF1);
1658 MS_PIN_DECL(N18, GPIOAA7, ROMA17, VPOG7);
1659
1660 #define N19 216
1661 #define N19_DESC        SIG_DESC_SET(SCUA8, 0)
1662 SIG_EXPR_DECL(ROMA18, ROM8, N19_DESC, VPO_OFF_12);
1663 SIG_EXPR_DECL(ROMA18, ROM16, N19_DESC, VPO_OFF_12);
1664 SIG_EXPR_LIST_DECL_DUAL(ROMA18, ROM8, ROM16);
1665 SIG_EXPR_DECL(VPOR0, VPO24, N19_DESC, VPO24_DESC);
1666 SIG_EXPR_DECL(VPOR0, VPOOFF1, N19_DESC, VPOOFF1_DESC);
1667 SIG_EXPR_LIST_DECL_DUAL(VPOR0, VPO24, VPOOFF1);
1668 MS_PIN_DECL(N19, GPIOAB0, ROMA18, VPOR0);
1669
1670 #define M18 217
1671 #define M18_DESC        SIG_DESC_SET(SCUA8, 1)
1672 SIG_EXPR_DECL(ROMA19, ROM8, M18_DESC, VPO_OFF_12);
1673 SIG_EXPR_DECL(ROMA19, ROM16, M18_DESC, VPO_OFF_12);
1674 SIG_EXPR_LIST_DECL_DUAL(ROMA19, ROM8, ROM16);
1675 SIG_EXPR_DECL(VPOR1, VPO24, M18_DESC, VPO24_DESC);
1676 SIG_EXPR_DECL(VPOR1, VPOOFF1, M18_DESC, VPOOFF1_DESC);
1677 SIG_EXPR_LIST_DECL_DUAL(VPOR1, VPO24, VPOOFF1);
1678 MS_PIN_DECL(M18, GPIOAB1, ROMA19, VPOR1);
1679
1680 #define N22 218
1681 #define N22_DESC        SIG_DESC_SET(SCUA8, 2)
1682 SIG_EXPR_DECL(ROMA20, ROM8, N22_DESC, VPO_OFF_12);
1683 SIG_EXPR_DECL(ROMA20, ROM16, N22_DESC, VPO_OFF_12);
1684 SIG_EXPR_LIST_DECL_DUAL(ROMA20, ROM8, ROM16);
1685 SIG_EXPR_DECL(VPOR2, VPO24, N22_DESC, VPO24_DESC);
1686 SIG_EXPR_DECL(VPOR2, VPOOFF1, N22_DESC, VPOOFF1_DESC);
1687 SIG_EXPR_LIST_DECL_DUAL(VPOR2, VPO24, VPOOFF1);
1688 MS_PIN_DECL(N22, GPIOAB2, ROMA20, VPOR2);
1689
1690 #define N20 219
1691 #define N20_DESC        SIG_DESC_SET(SCUA8, 3)
1692 SIG_EXPR_DECL(ROMA21, ROM8, N20_DESC, VPO_OFF_12);
1693 SIG_EXPR_DECL(ROMA21, ROM16, N20_DESC, VPO_OFF_12);
1694 SIG_EXPR_LIST_DECL_DUAL(ROMA21, ROM8, ROM16);
1695 SIG_EXPR_DECL(VPOR3, VPO24, N20_DESC, VPO24_DESC);
1696 SIG_EXPR_DECL(VPOR3, VPOOFF1, N20_DESC, VPOOFF1_DESC);
1697 SIG_EXPR_LIST_DECL_DUAL(VPOR3, VPO24, VPOOFF1);
1698 MS_PIN_DECL(N20, GPIOAB3, ROMA21, VPOR3);
1699
1700 FUNC_GROUP_DECL(ROM8, V20, U21, T19, V22, U20, R18, N21, L22, K18, W21, Y22,
1701                 U19, R22, P18, P19, P20, P21, P22, M19, M20, M21, M22, L18,
1702                 L19, L20, L21, T18, N18, N19, M18, N22, N20);
1703 FUNC_GROUP_DECL(ROM16, V20, U21, T19, V22, U20, R18, N21, L22, K18,
1704                 A8, C7, B7, A7, D7, B6, A6, E7, W21, Y22, U19, R22, P18, P19,
1705                 P20, P21, P22, M19, M20, M21, M22, L18, L19, L20, L21, T18,
1706                 N18, N19, M18, N22, N20);
1707 FUNC_GROUP_DECL(VPO12, U21, T19, V22, U20, R22, P18, P19, P20, P21, P22, M19,
1708                 M20, M21, M22, L18, L19, L20, L21, T18, N18, N19, M18, N22,
1709                 N20);
1710 FUNC_GROUP_DECL(VPO24, U21, T19, V22, U20, L22, K18, V21, W22, R22, P18, P19,
1711                 P20, P21, P22, M19, M20, M21, M22, L18, L19);
1712
1713 #define USB11H2_DESC    SIG_DESC_SET(SCU90, 3)
1714 #define USB11D1_DESC    SIG_DESC_BIT(SCU90, 3, 0)
1715
1716 #define K4 220
1717 SIG_EXPR_LIST_DECL_SINGLE(USB11HDP2, USB11H2, USB11H2_DESC);
1718 SIG_EXPR_LIST_DECL_SINGLE(USB11DP1, USB11D1, USB11D1_DESC);
1719 MS_PIN_DECL_(K4, SIG_EXPR_LIST_PTR(USB11HDP2), SIG_EXPR_LIST_PTR(USB11DP1));
1720
1721 #define K3 221
1722 SIG_EXPR_LIST_DECL_SINGLE(USB11HDN1, USB11H2, USB11H2_DESC);
1723 SIG_EXPR_LIST_DECL_SINGLE(USB11DDN1, USB11D1, USB11D1_DESC);
1724 MS_PIN_DECL_(K3, SIG_EXPR_LIST_PTR(USB11HDN1), SIG_EXPR_LIST_PTR(USB11DDN1));
1725
1726 FUNC_GROUP_DECL(USB11H2, K4, K3);
1727 FUNC_GROUP_DECL(USB11D1, K4, K3);
1728
1729 #define USB2H1_DESC     SIG_DESC_SET(SCU90, 29)
1730 #define USB2D1_DESC     SIG_DESC_BIT(SCU90, 29, 0)
1731
1732 #define AB21 222
1733 SIG_EXPR_LIST_DECL_SINGLE(USB2HDP1, USB2H1, USB2H1_DESC);
1734 SIG_EXPR_LIST_DECL_SINGLE(USB2DDP1, USB2D1, USB2D1_DESC);
1735 MS_PIN_DECL_(AB21, SIG_EXPR_LIST_PTR(USB2HDP1), SIG_EXPR_LIST_PTR(USB2DDP1));
1736
1737 #define AB20 223
1738 SIG_EXPR_LIST_DECL_SINGLE(USB2HDN1, USB2H1, USB2H1_DESC);
1739 SIG_EXPR_LIST_DECL_SINGLE(USB2DDN1, USB2D1, USB2D1_DESC);
1740 MS_PIN_DECL_(AB20, SIG_EXPR_LIST_PTR(USB2HDN1), SIG_EXPR_LIST_PTR(USB2DDN1));
1741
1742 FUNC_GROUP_DECL(USB2H1, AB21, AB20);
1743 FUNC_GROUP_DECL(USB2D1, AB21, AB20);
1744
1745 /* Note we account for GPIOY4-GPIOY7 even though they're not valid, thus 216
1746  * pins becomes 220. Four additional non-GPIO-capable pins are present for USB.
1747  */
1748 #define ASPEED_G4_NR_PINS 224
1749
1750 /* Pins, groups and functions are sort(1):ed alphabetically for sanity */
1751
1752 static struct pinctrl_pin_desc aspeed_g4_pins[ASPEED_G4_NR_PINS] = {
1753         ASPEED_PINCTRL_PIN(A1),
1754         ASPEED_PINCTRL_PIN(A10),
1755         ASPEED_PINCTRL_PIN(A11),
1756         ASPEED_PINCTRL_PIN(A12),
1757         ASPEED_PINCTRL_PIN(A13),
1758         ASPEED_PINCTRL_PIN(A14),
1759         ASPEED_PINCTRL_PIN(A15),
1760         ASPEED_PINCTRL_PIN(A16),
1761         ASPEED_PINCTRL_PIN(A17),
1762         ASPEED_PINCTRL_PIN(A18),
1763         ASPEED_PINCTRL_PIN(A19),
1764         ASPEED_PINCTRL_PIN(A2),
1765         ASPEED_PINCTRL_PIN(A20),
1766         ASPEED_PINCTRL_PIN(A3),
1767         ASPEED_PINCTRL_PIN(A4),
1768         ASPEED_PINCTRL_PIN(A5),
1769         ASPEED_PINCTRL_PIN(A6),
1770         ASPEED_PINCTRL_PIN(A7),
1771         ASPEED_PINCTRL_PIN(A8),
1772         ASPEED_PINCTRL_PIN(A9),
1773         ASPEED_PINCTRL_PIN(AA1),
1774         ASPEED_PINCTRL_PIN(AA2),
1775         ASPEED_PINCTRL_PIN(AA22),
1776         ASPEED_PINCTRL_PIN(AA3),
1777         ASPEED_PINCTRL_PIN(AA4),
1778         ASPEED_PINCTRL_PIN(AA5),
1779         ASPEED_PINCTRL_PIN(AA6),
1780         ASPEED_PINCTRL_PIN(AA7),
1781         ASPEED_PINCTRL_PIN(AB1),
1782         ASPEED_PINCTRL_PIN(AB2),
1783         ASPEED_PINCTRL_PIN(AB3),
1784         ASPEED_PINCTRL_PIN(AB4),
1785         ASPEED_PINCTRL_PIN(AB5),
1786         ASPEED_PINCTRL_PIN(AB6),
1787         ASPEED_PINCTRL_PIN(AB7),
1788         ASPEED_PINCTRL_PIN(AB20),
1789         ASPEED_PINCTRL_PIN(AB21),
1790         ASPEED_PINCTRL_PIN(B1),
1791         ASPEED_PINCTRL_PIN(B10),
1792         ASPEED_PINCTRL_PIN(B11),
1793         ASPEED_PINCTRL_PIN(B12),
1794         ASPEED_PINCTRL_PIN(B13),
1795         ASPEED_PINCTRL_PIN(B14),
1796         ASPEED_PINCTRL_PIN(B15),
1797         ASPEED_PINCTRL_PIN(B16),
1798         ASPEED_PINCTRL_PIN(B17),
1799         ASPEED_PINCTRL_PIN(B18),
1800         ASPEED_PINCTRL_PIN(B19),
1801         ASPEED_PINCTRL_PIN(B2),
1802         ASPEED_PINCTRL_PIN(B22),
1803         ASPEED_PINCTRL_PIN(B3),
1804         ASPEED_PINCTRL_PIN(B4),
1805         ASPEED_PINCTRL_PIN(B5),
1806         ASPEED_PINCTRL_PIN(B6),
1807         ASPEED_PINCTRL_PIN(B7),
1808         ASPEED_PINCTRL_PIN(B9),
1809         ASPEED_PINCTRL_PIN(C1),
1810         ASPEED_PINCTRL_PIN(C10),
1811         ASPEED_PINCTRL_PIN(C11),
1812         ASPEED_PINCTRL_PIN(C12),
1813         ASPEED_PINCTRL_PIN(C13),
1814         ASPEED_PINCTRL_PIN(C14),
1815         ASPEED_PINCTRL_PIN(C15),
1816         ASPEED_PINCTRL_PIN(C16),
1817         ASPEED_PINCTRL_PIN(C17),
1818         ASPEED_PINCTRL_PIN(C18),
1819         ASPEED_PINCTRL_PIN(C2),
1820         ASPEED_PINCTRL_PIN(C20),
1821         ASPEED_PINCTRL_PIN(C21),
1822         ASPEED_PINCTRL_PIN(C22),
1823         ASPEED_PINCTRL_PIN(C3),
1824         ASPEED_PINCTRL_PIN(C4),
1825         ASPEED_PINCTRL_PIN(C5),
1826         ASPEED_PINCTRL_PIN(C6),
1827         ASPEED_PINCTRL_PIN(C7),
1828         ASPEED_PINCTRL_PIN(C8),
1829         ASPEED_PINCTRL_PIN(C9),
1830         ASPEED_PINCTRL_PIN(D1),
1831         ASPEED_PINCTRL_PIN(D10),
1832         ASPEED_PINCTRL_PIN(D11),
1833         ASPEED_PINCTRL_PIN(D12),
1834         ASPEED_PINCTRL_PIN(D13),
1835         ASPEED_PINCTRL_PIN(D14),
1836         ASPEED_PINCTRL_PIN(D15),
1837         ASPEED_PINCTRL_PIN(D16),
1838         ASPEED_PINCTRL_PIN(D17),
1839         ASPEED_PINCTRL_PIN(D18),
1840         ASPEED_PINCTRL_PIN(D19),
1841         ASPEED_PINCTRL_PIN(D2),
1842         ASPEED_PINCTRL_PIN(D3),
1843         ASPEED_PINCTRL_PIN(D4),
1844         ASPEED_PINCTRL_PIN(D5),
1845         ASPEED_PINCTRL_PIN(D6),
1846         ASPEED_PINCTRL_PIN(D7),
1847         ASPEED_PINCTRL_PIN(D8),
1848         ASPEED_PINCTRL_PIN(D9),
1849         ASPEED_PINCTRL_PIN(E10),
1850         ASPEED_PINCTRL_PIN(E11),
1851         ASPEED_PINCTRL_PIN(E12),
1852         ASPEED_PINCTRL_PIN(E13),
1853         ASPEED_PINCTRL_PIN(E14),
1854         ASPEED_PINCTRL_PIN(E15),
1855         ASPEED_PINCTRL_PIN(E16),
1856         ASPEED_PINCTRL_PIN(E18),
1857         ASPEED_PINCTRL_PIN(E19),
1858         ASPEED_PINCTRL_PIN(E2),
1859         ASPEED_PINCTRL_PIN(E20),
1860         ASPEED_PINCTRL_PIN(E3),
1861         ASPEED_PINCTRL_PIN(E5),
1862         ASPEED_PINCTRL_PIN(E6),
1863         ASPEED_PINCTRL_PIN(E7),
1864         ASPEED_PINCTRL_PIN(E8),
1865         ASPEED_PINCTRL_PIN(E9),
1866         ASPEED_PINCTRL_PIN(F18),
1867         ASPEED_PINCTRL_PIN(F20),
1868         ASPEED_PINCTRL_PIN(F3),
1869         ASPEED_PINCTRL_PIN(F4),
1870         ASPEED_PINCTRL_PIN(F5),
1871         ASPEED_PINCTRL_PIN(G18),
1872         ASPEED_PINCTRL_PIN(G19),
1873         ASPEED_PINCTRL_PIN(G20),
1874         ASPEED_PINCTRL_PIN(G5),
1875         ASPEED_PINCTRL_PIN(H1),
1876         ASPEED_PINCTRL_PIN(H18),
1877         ASPEED_PINCTRL_PIN(H19),
1878         ASPEED_PINCTRL_PIN(H2),
1879         ASPEED_PINCTRL_PIN(H20),
1880         ASPEED_PINCTRL_PIN(H3),
1881         ASPEED_PINCTRL_PIN(H4),
1882         ASPEED_PINCTRL_PIN(J20),
1883         ASPEED_PINCTRL_PIN(J21),
1884         ASPEED_PINCTRL_PIN(J3),
1885         ASPEED_PINCTRL_PIN(J4),
1886         ASPEED_PINCTRL_PIN(J5),
1887         ASPEED_PINCTRL_PIN(K18),
1888         ASPEED_PINCTRL_PIN(K20),
1889         ASPEED_PINCTRL_PIN(K3),
1890         ASPEED_PINCTRL_PIN(K4),
1891         ASPEED_PINCTRL_PIN(K5),
1892         ASPEED_PINCTRL_PIN(L1),
1893         ASPEED_PINCTRL_PIN(L18),
1894         ASPEED_PINCTRL_PIN(L19),
1895         ASPEED_PINCTRL_PIN(L2),
1896         ASPEED_PINCTRL_PIN(L20),
1897         ASPEED_PINCTRL_PIN(L21),
1898         ASPEED_PINCTRL_PIN(L22),
1899         ASPEED_PINCTRL_PIN(L3),
1900         ASPEED_PINCTRL_PIN(L4),
1901         ASPEED_PINCTRL_PIN(L5),
1902         ASPEED_PINCTRL_PIN(M1),
1903         ASPEED_PINCTRL_PIN(M18),
1904         ASPEED_PINCTRL_PIN(M19),
1905         ASPEED_PINCTRL_PIN(M2),
1906         ASPEED_PINCTRL_PIN(M20),
1907         ASPEED_PINCTRL_PIN(M21),
1908         ASPEED_PINCTRL_PIN(M22),
1909         ASPEED_PINCTRL_PIN(M3),
1910         ASPEED_PINCTRL_PIN(M4),
1911         ASPEED_PINCTRL_PIN(M5),
1912         ASPEED_PINCTRL_PIN(N1),
1913         ASPEED_PINCTRL_PIN(N18),
1914         ASPEED_PINCTRL_PIN(N19),
1915         ASPEED_PINCTRL_PIN(N2),
1916         ASPEED_PINCTRL_PIN(N20),
1917         ASPEED_PINCTRL_PIN(N21),
1918         ASPEED_PINCTRL_PIN(N22),
1919         ASPEED_PINCTRL_PIN(N3),
1920         ASPEED_PINCTRL_PIN(N4),
1921         ASPEED_PINCTRL_PIN(N5),
1922         ASPEED_PINCTRL_PIN(P18),
1923         ASPEED_PINCTRL_PIN(P19),
1924         ASPEED_PINCTRL_PIN(P20),
1925         ASPEED_PINCTRL_PIN(P21),
1926         ASPEED_PINCTRL_PIN(P22),
1927         ASPEED_PINCTRL_PIN(P5),
1928         ASPEED_PINCTRL_PIN(R18),
1929         ASPEED_PINCTRL_PIN(R22),
1930         ASPEED_PINCTRL_PIN(T1),
1931         ASPEED_PINCTRL_PIN(T18),
1932         ASPEED_PINCTRL_PIN(T19),
1933         ASPEED_PINCTRL_PIN(T2),
1934         ASPEED_PINCTRL_PIN(T4),
1935         ASPEED_PINCTRL_PIN(T5),
1936         ASPEED_PINCTRL_PIN(U1),
1937         ASPEED_PINCTRL_PIN(U18),
1938         ASPEED_PINCTRL_PIN(U19),
1939         ASPEED_PINCTRL_PIN(U2),
1940         ASPEED_PINCTRL_PIN(U20),
1941         ASPEED_PINCTRL_PIN(U21),
1942         ASPEED_PINCTRL_PIN(U3),
1943         ASPEED_PINCTRL_PIN(U4),
1944         ASPEED_PINCTRL_PIN(U5),
1945         ASPEED_PINCTRL_PIN(V1),
1946         ASPEED_PINCTRL_PIN(V2),
1947         ASPEED_PINCTRL_PIN(V20),
1948         ASPEED_PINCTRL_PIN(V21),
1949         ASPEED_PINCTRL_PIN(V22),
1950         ASPEED_PINCTRL_PIN(V3),
1951         ASPEED_PINCTRL_PIN(V4),
1952         ASPEED_PINCTRL_PIN(V5),
1953         ASPEED_PINCTRL_PIN(V6),
1954         ASPEED_PINCTRL_PIN(V7),
1955         ASPEED_PINCTRL_PIN(W1),
1956         ASPEED_PINCTRL_PIN(W2),
1957         ASPEED_PINCTRL_PIN(W21),
1958         ASPEED_PINCTRL_PIN(W22),
1959         ASPEED_PINCTRL_PIN(W3),
1960         ASPEED_PINCTRL_PIN(W4),
1961         ASPEED_PINCTRL_PIN(W5),
1962         ASPEED_PINCTRL_PIN(W6),
1963         ASPEED_PINCTRL_PIN(W7),
1964         ASPEED_PINCTRL_PIN(Y1),
1965         ASPEED_PINCTRL_PIN(Y2),
1966         ASPEED_PINCTRL_PIN(Y21),
1967         ASPEED_PINCTRL_PIN(Y22),
1968         ASPEED_PINCTRL_PIN(Y3),
1969         ASPEED_PINCTRL_PIN(Y4),
1970         ASPEED_PINCTRL_PIN(Y5),
1971         ASPEED_PINCTRL_PIN(Y6),
1972         ASPEED_PINCTRL_PIN(Y7),
1973 };
1974
1975 static const struct aspeed_pin_group aspeed_g4_groups[] = {
1976         ASPEED_PINCTRL_GROUP(ACPI),
1977         ASPEED_PINCTRL_GROUP(ADC0),
1978         ASPEED_PINCTRL_GROUP(ADC1),
1979         ASPEED_PINCTRL_GROUP(ADC10),
1980         ASPEED_PINCTRL_GROUP(ADC11),
1981         ASPEED_PINCTRL_GROUP(ADC12),
1982         ASPEED_PINCTRL_GROUP(ADC13),
1983         ASPEED_PINCTRL_GROUP(ADC14),
1984         ASPEED_PINCTRL_GROUP(ADC15),
1985         ASPEED_PINCTRL_GROUP(ADC2),
1986         ASPEED_PINCTRL_GROUP(ADC3),
1987         ASPEED_PINCTRL_GROUP(ADC4),
1988         ASPEED_PINCTRL_GROUP(ADC5),
1989         ASPEED_PINCTRL_GROUP(ADC6),
1990         ASPEED_PINCTRL_GROUP(ADC7),
1991         ASPEED_PINCTRL_GROUP(ADC8),
1992         ASPEED_PINCTRL_GROUP(ADC9),
1993         ASPEED_PINCTRL_GROUP(BMCINT),
1994         ASPEED_PINCTRL_GROUP(DDCCLK),
1995         ASPEED_PINCTRL_GROUP(DDCDAT),
1996         ASPEED_PINCTRL_GROUP(EXTRST),
1997         ASPEED_PINCTRL_GROUP(FLACK),
1998         ASPEED_PINCTRL_GROUP(FLBUSY),
1999         ASPEED_PINCTRL_GROUP(FLWP),
2000         ASPEED_PINCTRL_GROUP(GPID),
2001         ASPEED_PINCTRL_GROUP(GPID0),
2002         ASPEED_PINCTRL_GROUP(GPID2),
2003         ASPEED_PINCTRL_GROUP(GPID4),
2004         ASPEED_PINCTRL_GROUP(GPID6),
2005         ASPEED_PINCTRL_GROUP(GPIE0),
2006         ASPEED_PINCTRL_GROUP(GPIE2),
2007         ASPEED_PINCTRL_GROUP(GPIE4),
2008         ASPEED_PINCTRL_GROUP(GPIE6),
2009         ASPEED_PINCTRL_GROUP(I2C10),
2010         ASPEED_PINCTRL_GROUP(I2C11),
2011         ASPEED_PINCTRL_GROUP(I2C12),
2012         ASPEED_PINCTRL_GROUP(I2C13),
2013         ASPEED_PINCTRL_GROUP(I2C14),
2014         ASPEED_PINCTRL_GROUP(I2C3),
2015         ASPEED_PINCTRL_GROUP(I2C4),
2016         ASPEED_PINCTRL_GROUP(I2C5),
2017         ASPEED_PINCTRL_GROUP(I2C6),
2018         ASPEED_PINCTRL_GROUP(I2C7),
2019         ASPEED_PINCTRL_GROUP(I2C8),
2020         ASPEED_PINCTRL_GROUP(I2C9),
2021         ASPEED_PINCTRL_GROUP(LPCPD),
2022         ASPEED_PINCTRL_GROUP(LPCPME),
2023         ASPEED_PINCTRL_GROUP(LPCRST),
2024         ASPEED_PINCTRL_GROUP(LPCSMI),
2025         ASPEED_PINCTRL_GROUP(MAC1LINK),
2026         ASPEED_PINCTRL_GROUP(MAC2LINK),
2027         ASPEED_PINCTRL_GROUP(MDIO1),
2028         ASPEED_PINCTRL_GROUP(MDIO2),
2029         ASPEED_PINCTRL_GROUP(NCTS1),
2030         ASPEED_PINCTRL_GROUP(NCTS2),
2031         ASPEED_PINCTRL_GROUP(NCTS3),
2032         ASPEED_PINCTRL_GROUP(NCTS4),
2033         ASPEED_PINCTRL_GROUP(NDCD1),
2034         ASPEED_PINCTRL_GROUP(NDCD2),
2035         ASPEED_PINCTRL_GROUP(NDCD3),
2036         ASPEED_PINCTRL_GROUP(NDCD4),
2037         ASPEED_PINCTRL_GROUP(NDSR1),
2038         ASPEED_PINCTRL_GROUP(NDSR2),
2039         ASPEED_PINCTRL_GROUP(NDSR3),
2040         ASPEED_PINCTRL_GROUP(NDSR4),
2041         ASPEED_PINCTRL_GROUP(NDTR1),
2042         ASPEED_PINCTRL_GROUP(NDTR2),
2043         ASPEED_PINCTRL_GROUP(NDTR3),
2044         ASPEED_PINCTRL_GROUP(NDTR4),
2045         ASPEED_PINCTRL_GROUP(NDTS4),
2046         ASPEED_PINCTRL_GROUP(NRI1),
2047         ASPEED_PINCTRL_GROUP(NRI2),
2048         ASPEED_PINCTRL_GROUP(NRI3),
2049         ASPEED_PINCTRL_GROUP(NRI4),
2050         ASPEED_PINCTRL_GROUP(NRTS1),
2051         ASPEED_PINCTRL_GROUP(NRTS2),
2052         ASPEED_PINCTRL_GROUP(NRTS3),
2053         ASPEED_PINCTRL_GROUP(OSCCLK),
2054         ASPEED_PINCTRL_GROUP(PWM0),
2055         ASPEED_PINCTRL_GROUP(PWM1),
2056         ASPEED_PINCTRL_GROUP(PWM2),
2057         ASPEED_PINCTRL_GROUP(PWM3),
2058         ASPEED_PINCTRL_GROUP(PWM4),
2059         ASPEED_PINCTRL_GROUP(PWM5),
2060         ASPEED_PINCTRL_GROUP(PWM6),
2061         ASPEED_PINCTRL_GROUP(PWM7),
2062         ASPEED_PINCTRL_GROUP(RGMII1),
2063         ASPEED_PINCTRL_GROUP(RGMII2),
2064         ASPEED_PINCTRL_GROUP(RMII1),
2065         ASPEED_PINCTRL_GROUP(RMII2),
2066         ASPEED_PINCTRL_GROUP(ROM16),
2067         ASPEED_PINCTRL_GROUP(ROM8),
2068         ASPEED_PINCTRL_GROUP(ROMCS1),
2069         ASPEED_PINCTRL_GROUP(ROMCS2),
2070         ASPEED_PINCTRL_GROUP(ROMCS3),
2071         ASPEED_PINCTRL_GROUP(ROMCS4),
2072         ASPEED_PINCTRL_GROUP(RXD1),
2073         ASPEED_PINCTRL_GROUP(RXD2),
2074         ASPEED_PINCTRL_GROUP(RXD3),
2075         ASPEED_PINCTRL_GROUP(RXD4),
2076         ASPEED_PINCTRL_GROUP(SALT1),
2077         ASPEED_PINCTRL_GROUP(SALT2),
2078         ASPEED_PINCTRL_GROUP(SALT3),
2079         ASPEED_PINCTRL_GROUP(SALT4),
2080         ASPEED_PINCTRL_GROUP(SD1),
2081         ASPEED_PINCTRL_GROUP(SD2),
2082         ASPEED_PINCTRL_GROUP(SGPMCK),
2083         ASPEED_PINCTRL_GROUP(SGPMI),
2084         ASPEED_PINCTRL_GROUP(SGPMLD),
2085         ASPEED_PINCTRL_GROUP(SGPMO),
2086         ASPEED_PINCTRL_GROUP(SGPSCK),
2087         ASPEED_PINCTRL_GROUP(SGPSI0),
2088         ASPEED_PINCTRL_GROUP(SGPSI1),
2089         ASPEED_PINCTRL_GROUP(SGPSLD),
2090         ASPEED_PINCTRL_GROUP(SIOONCTRL),
2091         ASPEED_PINCTRL_GROUP(SIOPBI),
2092         ASPEED_PINCTRL_GROUP(SIOPBO),
2093         ASPEED_PINCTRL_GROUP(SIOPWREQ),
2094         ASPEED_PINCTRL_GROUP(SIOPWRGD),
2095         ASPEED_PINCTRL_GROUP(SIOS3),
2096         ASPEED_PINCTRL_GROUP(SIOS5),
2097         ASPEED_PINCTRL_GROUP(SIOSCI),
2098         ASPEED_PINCTRL_GROUP(SPI1),
2099         ASPEED_PINCTRL_GROUP(SPI1DEBUG),
2100         ASPEED_PINCTRL_GROUP(SPI1PASSTHRU),
2101         ASPEED_PINCTRL_GROUP(SPICS1),
2102         ASPEED_PINCTRL_GROUP(TIMER3),
2103         ASPEED_PINCTRL_GROUP(TIMER4),
2104         ASPEED_PINCTRL_GROUP(TIMER5),
2105         ASPEED_PINCTRL_GROUP(TIMER6),
2106         ASPEED_PINCTRL_GROUP(TIMER7),
2107         ASPEED_PINCTRL_GROUP(TIMER8),
2108         ASPEED_PINCTRL_GROUP(TXD1),
2109         ASPEED_PINCTRL_GROUP(TXD2),
2110         ASPEED_PINCTRL_GROUP(TXD3),
2111         ASPEED_PINCTRL_GROUP(TXD4),
2112         ASPEED_PINCTRL_GROUP(UART6),
2113         ASPEED_PINCTRL_GROUP(USB11D1),
2114         ASPEED_PINCTRL_GROUP(USB11H2),
2115         ASPEED_PINCTRL_GROUP(USB2D1),
2116         ASPEED_PINCTRL_GROUP(USB2H1),
2117         ASPEED_PINCTRL_GROUP(USBCKI),
2118         ASPEED_PINCTRL_GROUP(VGABIOS_ROM),
2119         ASPEED_PINCTRL_GROUP(VGAHS),
2120         ASPEED_PINCTRL_GROUP(VGAVS),
2121         ASPEED_PINCTRL_GROUP(VPI18),
2122         ASPEED_PINCTRL_GROUP(VPI24),
2123         ASPEED_PINCTRL_GROUP(VPI30),
2124         ASPEED_PINCTRL_GROUP(VPO12),
2125         ASPEED_PINCTRL_GROUP(VPO24),
2126         ASPEED_PINCTRL_GROUP(WDTRST1),
2127         ASPEED_PINCTRL_GROUP(WDTRST2),
2128 };
2129
2130 static const struct aspeed_pin_function aspeed_g4_functions[] = {
2131         ASPEED_PINCTRL_FUNC(ACPI),
2132         ASPEED_PINCTRL_FUNC(ADC0),
2133         ASPEED_PINCTRL_FUNC(ADC1),
2134         ASPEED_PINCTRL_FUNC(ADC10),
2135         ASPEED_PINCTRL_FUNC(ADC11),
2136         ASPEED_PINCTRL_FUNC(ADC12),
2137         ASPEED_PINCTRL_FUNC(ADC13),
2138         ASPEED_PINCTRL_FUNC(ADC14),
2139         ASPEED_PINCTRL_FUNC(ADC15),
2140         ASPEED_PINCTRL_FUNC(ADC2),
2141         ASPEED_PINCTRL_FUNC(ADC3),
2142         ASPEED_PINCTRL_FUNC(ADC4),
2143         ASPEED_PINCTRL_FUNC(ADC5),
2144         ASPEED_PINCTRL_FUNC(ADC6),
2145         ASPEED_PINCTRL_FUNC(ADC7),
2146         ASPEED_PINCTRL_FUNC(ADC8),
2147         ASPEED_PINCTRL_FUNC(ADC9),
2148         ASPEED_PINCTRL_FUNC(BMCINT),
2149         ASPEED_PINCTRL_FUNC(DDCCLK),
2150         ASPEED_PINCTRL_FUNC(DDCDAT),
2151         ASPEED_PINCTRL_FUNC(EXTRST),
2152         ASPEED_PINCTRL_FUNC(FLACK),
2153         ASPEED_PINCTRL_FUNC(FLBUSY),
2154         ASPEED_PINCTRL_FUNC(FLWP),
2155         ASPEED_PINCTRL_FUNC(GPID),
2156         ASPEED_PINCTRL_FUNC(GPID0),
2157         ASPEED_PINCTRL_FUNC(GPID2),
2158         ASPEED_PINCTRL_FUNC(GPID4),
2159         ASPEED_PINCTRL_FUNC(GPID6),
2160         ASPEED_PINCTRL_FUNC(GPIE0),
2161         ASPEED_PINCTRL_FUNC(GPIE2),
2162         ASPEED_PINCTRL_FUNC(GPIE4),
2163         ASPEED_PINCTRL_FUNC(GPIE6),
2164         ASPEED_PINCTRL_FUNC(I2C10),
2165         ASPEED_PINCTRL_FUNC(I2C11),
2166         ASPEED_PINCTRL_FUNC(I2C12),
2167         ASPEED_PINCTRL_FUNC(I2C13),
2168         ASPEED_PINCTRL_FUNC(I2C14),
2169         ASPEED_PINCTRL_FUNC(I2C3),
2170         ASPEED_PINCTRL_FUNC(I2C4),
2171         ASPEED_PINCTRL_FUNC(I2C5),
2172         ASPEED_PINCTRL_FUNC(I2C6),
2173         ASPEED_PINCTRL_FUNC(I2C7),
2174         ASPEED_PINCTRL_FUNC(I2C8),
2175         ASPEED_PINCTRL_FUNC(I2C9),
2176         ASPEED_PINCTRL_FUNC(LPCPD),
2177         ASPEED_PINCTRL_FUNC(LPCPME),
2178         ASPEED_PINCTRL_FUNC(LPCRST),
2179         ASPEED_PINCTRL_FUNC(LPCSMI),
2180         ASPEED_PINCTRL_FUNC(MAC1LINK),
2181         ASPEED_PINCTRL_FUNC(MAC2LINK),
2182         ASPEED_PINCTRL_FUNC(MDIO1),
2183         ASPEED_PINCTRL_FUNC(MDIO2),
2184         ASPEED_PINCTRL_FUNC(NCTS1),
2185         ASPEED_PINCTRL_FUNC(NCTS2),
2186         ASPEED_PINCTRL_FUNC(NCTS3),
2187         ASPEED_PINCTRL_FUNC(NCTS4),
2188         ASPEED_PINCTRL_FUNC(NDCD1),
2189         ASPEED_PINCTRL_FUNC(NDCD2),
2190         ASPEED_PINCTRL_FUNC(NDCD3),
2191         ASPEED_PINCTRL_FUNC(NDCD4),
2192         ASPEED_PINCTRL_FUNC(NDSR1),
2193         ASPEED_PINCTRL_FUNC(NDSR2),
2194         ASPEED_PINCTRL_FUNC(NDSR3),
2195         ASPEED_PINCTRL_FUNC(NDSR4),
2196         ASPEED_PINCTRL_FUNC(NDTR1),
2197         ASPEED_PINCTRL_FUNC(NDTR2),
2198         ASPEED_PINCTRL_FUNC(NDTR3),
2199         ASPEED_PINCTRL_FUNC(NDTR4),
2200         ASPEED_PINCTRL_FUNC(NDTS4),
2201         ASPEED_PINCTRL_FUNC(NRI1),
2202         ASPEED_PINCTRL_FUNC(NRI2),
2203         ASPEED_PINCTRL_FUNC(NRI3),
2204         ASPEED_PINCTRL_FUNC(NRI4),
2205         ASPEED_PINCTRL_FUNC(NRTS1),
2206         ASPEED_PINCTRL_FUNC(NRTS2),
2207         ASPEED_PINCTRL_FUNC(NRTS3),
2208         ASPEED_PINCTRL_FUNC(OSCCLK),
2209         ASPEED_PINCTRL_FUNC(PWM0),
2210         ASPEED_PINCTRL_FUNC(PWM1),
2211         ASPEED_PINCTRL_FUNC(PWM2),
2212         ASPEED_PINCTRL_FUNC(PWM3),
2213         ASPEED_PINCTRL_FUNC(PWM4),
2214         ASPEED_PINCTRL_FUNC(PWM5),
2215         ASPEED_PINCTRL_FUNC(PWM6),
2216         ASPEED_PINCTRL_FUNC(PWM7),
2217         ASPEED_PINCTRL_FUNC(RGMII1),
2218         ASPEED_PINCTRL_FUNC(RGMII2),
2219         ASPEED_PINCTRL_FUNC(RMII1),
2220         ASPEED_PINCTRL_FUNC(RMII2),
2221         ASPEED_PINCTRL_FUNC(ROM16),
2222         ASPEED_PINCTRL_FUNC(ROM8),
2223         ASPEED_PINCTRL_FUNC(ROMCS1),
2224         ASPEED_PINCTRL_FUNC(ROMCS2),
2225         ASPEED_PINCTRL_FUNC(ROMCS3),
2226         ASPEED_PINCTRL_FUNC(ROMCS4),
2227         ASPEED_PINCTRL_FUNC(RXD1),
2228         ASPEED_PINCTRL_FUNC(RXD2),
2229         ASPEED_PINCTRL_FUNC(RXD3),
2230         ASPEED_PINCTRL_FUNC(RXD4),
2231         ASPEED_PINCTRL_FUNC(SALT1),
2232         ASPEED_PINCTRL_FUNC(SALT2),
2233         ASPEED_PINCTRL_FUNC(SALT3),
2234         ASPEED_PINCTRL_FUNC(SALT4),
2235         ASPEED_PINCTRL_FUNC(SD1),
2236         ASPEED_PINCTRL_FUNC(SD2),
2237         ASPEED_PINCTRL_FUNC(SGPMCK),
2238         ASPEED_PINCTRL_FUNC(SGPMI),
2239         ASPEED_PINCTRL_FUNC(SGPMLD),
2240         ASPEED_PINCTRL_FUNC(SGPMO),
2241         ASPEED_PINCTRL_FUNC(SGPSCK),
2242         ASPEED_PINCTRL_FUNC(SGPSI0),
2243         ASPEED_PINCTRL_FUNC(SGPSI1),
2244         ASPEED_PINCTRL_FUNC(SGPSLD),
2245         ASPEED_PINCTRL_FUNC(SIOONCTRL),
2246         ASPEED_PINCTRL_FUNC(SIOPBI),
2247         ASPEED_PINCTRL_FUNC(SIOPBO),
2248         ASPEED_PINCTRL_FUNC(SIOPWREQ),
2249         ASPEED_PINCTRL_FUNC(SIOPWRGD),
2250         ASPEED_PINCTRL_FUNC(SIOS3),
2251         ASPEED_PINCTRL_FUNC(SIOS5),
2252         ASPEED_PINCTRL_FUNC(SIOSCI),
2253         ASPEED_PINCTRL_FUNC(SPI1),
2254         ASPEED_PINCTRL_FUNC(SPI1DEBUG),
2255         ASPEED_PINCTRL_FUNC(SPI1PASSTHRU),
2256         ASPEED_PINCTRL_FUNC(SPICS1),
2257         ASPEED_PINCTRL_FUNC(TIMER3),
2258         ASPEED_PINCTRL_FUNC(TIMER4),
2259         ASPEED_PINCTRL_FUNC(TIMER5),
2260         ASPEED_PINCTRL_FUNC(TIMER6),
2261         ASPEED_PINCTRL_FUNC(TIMER7),
2262         ASPEED_PINCTRL_FUNC(TIMER8),
2263         ASPEED_PINCTRL_FUNC(TXD1),
2264         ASPEED_PINCTRL_FUNC(TXD2),
2265         ASPEED_PINCTRL_FUNC(TXD3),
2266         ASPEED_PINCTRL_FUNC(TXD4),
2267         ASPEED_PINCTRL_FUNC(UART6),
2268         ASPEED_PINCTRL_FUNC(USB11D1),
2269         ASPEED_PINCTRL_FUNC(USB11H2),
2270         ASPEED_PINCTRL_FUNC(USB2D1),
2271         ASPEED_PINCTRL_FUNC(USB2H1),
2272         ASPEED_PINCTRL_FUNC(USBCKI),
2273         ASPEED_PINCTRL_FUNC(VGABIOS_ROM),
2274         ASPEED_PINCTRL_FUNC(VGAHS),
2275         ASPEED_PINCTRL_FUNC(VGAVS),
2276         ASPEED_PINCTRL_FUNC(VPI18),
2277         ASPEED_PINCTRL_FUNC(VPI24),
2278         ASPEED_PINCTRL_FUNC(VPI30),
2279         ASPEED_PINCTRL_FUNC(VPO12),
2280         ASPEED_PINCTRL_FUNC(VPO24),
2281         ASPEED_PINCTRL_FUNC(WDTRST1),
2282         ASPEED_PINCTRL_FUNC(WDTRST2),
2283 };
2284
2285 static const struct aspeed_pin_config aspeed_g4_configs[] = {
2286         /* GPIO banks ranges [A, B], [D, J], [M, R] */
2287         { PIN_CONFIG_BIAS_PULL_DOWN, { D6,  D5  }, SCU8C, 16 },
2288         { PIN_CONFIG_BIAS_DISABLE,   { D6,  D5  }, SCU8C, 16 },
2289         { PIN_CONFIG_BIAS_PULL_DOWN, { J21, E18 }, SCU8C, 17 },
2290         { PIN_CONFIG_BIAS_DISABLE,   { J21, E18 }, SCU8C, 17 },
2291         { PIN_CONFIG_BIAS_PULL_DOWN, { A18, E15 }, SCU8C, 19 },
2292         { PIN_CONFIG_BIAS_DISABLE,   { A18, E15 }, SCU8C, 19 },
2293         { PIN_CONFIG_BIAS_PULL_DOWN, { D15, B14 }, SCU8C, 20 },
2294         { PIN_CONFIG_BIAS_DISABLE,   { D15, B14 }, SCU8C, 20 },
2295         { PIN_CONFIG_BIAS_PULL_DOWN, { D18, C17 }, SCU8C, 21 },
2296         { PIN_CONFIG_BIAS_DISABLE,   { D18, C17 }, SCU8C, 21 },
2297         { PIN_CONFIG_BIAS_PULL_DOWN, { A14, U18 }, SCU8C, 22 },
2298         { PIN_CONFIG_BIAS_DISABLE,   { A14, U18 }, SCU8C, 22 },
2299         { PIN_CONFIG_BIAS_PULL_DOWN, { A8,  E7  }, SCU8C, 23 },
2300         { PIN_CONFIG_BIAS_DISABLE,   { A8,  E7  }, SCU8C, 23 },
2301         { PIN_CONFIG_BIAS_PULL_DOWN, { C22, E20 }, SCU8C, 24 },
2302         { PIN_CONFIG_BIAS_DISABLE,   { C22, E20 }, SCU8C, 24 },
2303         { PIN_CONFIG_BIAS_PULL_DOWN, { J5,  T1  }, SCU8C, 25 },
2304         { PIN_CONFIG_BIAS_DISABLE,   { J5,  T1  }, SCU8C, 25 },
2305         { PIN_CONFIG_BIAS_PULL_DOWN, { U1,  U5  }, SCU8C, 26 },
2306         { PIN_CONFIG_BIAS_DISABLE,   { U1,  U5  }, SCU8C, 26 },
2307         { PIN_CONFIG_BIAS_PULL_DOWN, { V3,  V5  }, SCU8C, 27 },
2308         { PIN_CONFIG_BIAS_DISABLE,   { V3,  V5  }, SCU8C, 27 },
2309         { PIN_CONFIG_BIAS_PULL_DOWN, { W4,  AB2 }, SCU8C, 28 },
2310         { PIN_CONFIG_BIAS_DISABLE,   { W4,  AB2 }, SCU8C, 28 },
2311         { PIN_CONFIG_BIAS_PULL_DOWN, { V6,  V7  }, SCU8C, 29 },
2312         { PIN_CONFIG_BIAS_DISABLE,   { V6,  V7  }, SCU8C, 29 },
2313         { PIN_CONFIG_BIAS_PULL_DOWN, { Y6,  AB7 }, SCU8C, 30 },
2314         { PIN_CONFIG_BIAS_DISABLE,   { Y6,  AB7 }, SCU8C, 30 },
2315         { PIN_CONFIG_BIAS_PULL_DOWN, { V20, A5  }, SCU8C, 31 },
2316         { PIN_CONFIG_BIAS_DISABLE,   { V20, A5  }, SCU8C, 31 },
2317
2318         /* GPIOs T[0-5] (RGMII1 Tx pins) */
2319         { PIN_CONFIG_DRIVE_STRENGTH, { A12, A13 }, SCU90, 9  },
2320         { PIN_CONFIG_BIAS_PULL_DOWN, { A12, A13 }, SCU90, 12 },
2321         { PIN_CONFIG_BIAS_DISABLE,   { A12, A13 }, SCU90, 12 },
2322
2323         /* GPIOs T[6-7], U[0-3] (RGMII2 TX pins) */
2324         { PIN_CONFIG_DRIVE_STRENGTH, { D9,  D10 }, SCU90, 11 },
2325         { PIN_CONFIG_BIAS_PULL_DOWN, { D9,  D10 }, SCU90, 14 },
2326         { PIN_CONFIG_BIAS_DISABLE,   { D9,  D10 }, SCU90, 14 },
2327
2328         /* GPIOs U[4-7], V[0-1] (RGMII1 Rx pins) */
2329         { PIN_CONFIG_BIAS_PULL_DOWN, { E11, E10 }, SCU90, 13 },
2330         { PIN_CONFIG_BIAS_DISABLE,   { E11, E10 }, SCU90, 13 },
2331
2332         /* GPIOs V[2-7] (RGMII2 Rx pins) */
2333         { PIN_CONFIG_BIAS_PULL_DOWN, { C9,  C8  }, SCU90, 15 },
2334         { PIN_CONFIG_BIAS_DISABLE,   { C9,  C8  }, SCU90, 15 },
2335
2336         /* ADC pull-downs (SCUA8[19:4]) */
2337         { PIN_CONFIG_BIAS_PULL_DOWN, { L5,  L5  }, SCUA8, 4 },
2338         { PIN_CONFIG_BIAS_DISABLE,   { L5,  L5  }, SCUA8, 4 },
2339         { PIN_CONFIG_BIAS_PULL_DOWN, { L4,  L4  }, SCUA8, 5 },
2340         { PIN_CONFIG_BIAS_DISABLE,   { L4,  L4  }, SCUA8, 5 },
2341         { PIN_CONFIG_BIAS_PULL_DOWN, { L3,  L3  }, SCUA8, 6 },
2342         { PIN_CONFIG_BIAS_DISABLE,   { L3,  L3  }, SCUA8, 6 },
2343         { PIN_CONFIG_BIAS_PULL_DOWN, { L2,  L2  }, SCUA8, 7 },
2344         { PIN_CONFIG_BIAS_DISABLE,   { L2,  L2  }, SCUA8, 7 },
2345         { PIN_CONFIG_BIAS_PULL_DOWN, { L1,  L1  }, SCUA8, 8 },
2346         { PIN_CONFIG_BIAS_DISABLE,   { L1,  L1  }, SCUA8, 8 },
2347         { PIN_CONFIG_BIAS_PULL_DOWN, { M5,  M5  }, SCUA8, 9 },
2348         { PIN_CONFIG_BIAS_DISABLE,   { M5,  M5  }, SCUA8, 9 },
2349         { PIN_CONFIG_BIAS_PULL_DOWN, { M4,  M4  }, SCUA8, 10 },
2350         { PIN_CONFIG_BIAS_DISABLE,   { M4,  M4  }, SCUA8, 10 },
2351         { PIN_CONFIG_BIAS_PULL_DOWN, { M3,  M3  }, SCUA8, 11 },
2352         { PIN_CONFIG_BIAS_DISABLE,   { M3,  M3  }, SCUA8, 11 },
2353         { PIN_CONFIG_BIAS_PULL_DOWN, { M2,  M2  }, SCUA8, 12 },
2354         { PIN_CONFIG_BIAS_DISABLE,   { M2,  M2  }, SCUA8, 12 },
2355         { PIN_CONFIG_BIAS_PULL_DOWN, { M1,  M1  }, SCUA8, 13 },
2356         { PIN_CONFIG_BIAS_DISABLE,   { M1,  M1  }, SCUA8, 13 },
2357         { PIN_CONFIG_BIAS_PULL_DOWN, { N5,  N5  }, SCUA8, 14 },
2358         { PIN_CONFIG_BIAS_DISABLE,   { N5,  N5  }, SCUA8, 14 },
2359         { PIN_CONFIG_BIAS_PULL_DOWN, { N4,  N4  }, SCUA8, 15 },
2360         { PIN_CONFIG_BIAS_DISABLE,   { N4,  N4  }, SCUA8, 15 },
2361         { PIN_CONFIG_BIAS_PULL_DOWN, { N3,  N3  }, SCUA8, 16 },
2362         { PIN_CONFIG_BIAS_DISABLE,   { N3,  N3  }, SCUA8, 16 },
2363         { PIN_CONFIG_BIAS_PULL_DOWN, { N2,  N2  }, SCUA8, 17 },
2364         { PIN_CONFIG_BIAS_DISABLE,   { N2,  N2  }, SCUA8, 17 },
2365         { PIN_CONFIG_BIAS_PULL_DOWN, { N1,  N1  }, SCUA8, 18 },
2366         { PIN_CONFIG_BIAS_DISABLE,   { N1,  N1  }, SCUA8, 18 },
2367         { PIN_CONFIG_BIAS_PULL_DOWN, { P5,  P5  }, SCUA8, 19 },
2368         { PIN_CONFIG_BIAS_DISABLE,   { P5,  P5  }, SCUA8, 19 },
2369
2370         /*
2371          * Debounce settings for GPIOs D and E passthrough mode are in
2372          * SCUA8[27:20] and so are managed by pinctrl. Normal GPIO debounce for
2373          * banks D and E is handled by the GPIO driver - GPIO passthrough is
2374          * treated like any other non-GPIO mux function. There is a catch
2375          * however, in that the debounce period is configured in the GPIO
2376          * controller. Due to this tangle between GPIO and pinctrl we don't yet
2377          * fully support pass-through debounce.
2378          */
2379         { PIN_CONFIG_INPUT_DEBOUNCE, { A18, D16 }, SCUA8, 20 },
2380         { PIN_CONFIG_INPUT_DEBOUNCE, { B17, A17 }, SCUA8, 21 },
2381         { PIN_CONFIG_INPUT_DEBOUNCE, { C16, B16 }, SCUA8, 22 },
2382         { PIN_CONFIG_INPUT_DEBOUNCE, { A16, E15 }, SCUA8, 23 },
2383         { PIN_CONFIG_INPUT_DEBOUNCE, { D15, C15 }, SCUA8, 24 },
2384         { PIN_CONFIG_INPUT_DEBOUNCE, { B15, A15 }, SCUA8, 25 },
2385         { PIN_CONFIG_INPUT_DEBOUNCE, { E14, D14 }, SCUA8, 26 },
2386         { PIN_CONFIG_INPUT_DEBOUNCE, { C14, B14 }, SCUA8, 27 },
2387 };
2388
2389 static struct aspeed_pinctrl_data aspeed_g4_pinctrl_data = {
2390         .pins = aspeed_g4_pins,
2391         .npins = ARRAY_SIZE(aspeed_g4_pins),
2392         .groups = aspeed_g4_groups,
2393         .ngroups = ARRAY_SIZE(aspeed_g4_groups),
2394         .functions = aspeed_g4_functions,
2395         .nfunctions = ARRAY_SIZE(aspeed_g4_functions),
2396         .configs = aspeed_g4_configs,
2397         .nconfigs = ARRAY_SIZE(aspeed_g4_configs),
2398 };
2399
2400 static const struct pinmux_ops aspeed_g4_pinmux_ops = {
2401         .get_functions_count = aspeed_pinmux_get_fn_count,
2402         .get_function_name = aspeed_pinmux_get_fn_name,
2403         .get_function_groups = aspeed_pinmux_get_fn_groups,
2404         .set_mux = aspeed_pinmux_set_mux,
2405         .gpio_request_enable = aspeed_gpio_request_enable,
2406         .strict = true,
2407 };
2408
2409 static const struct pinctrl_ops aspeed_g4_pinctrl_ops = {
2410         .get_groups_count = aspeed_pinctrl_get_groups_count,
2411         .get_group_name = aspeed_pinctrl_get_group_name,
2412         .get_group_pins = aspeed_pinctrl_get_group_pins,
2413         .pin_dbg_show = aspeed_pinctrl_pin_dbg_show,
2414         .dt_node_to_map = pinconf_generic_dt_node_to_map_all,
2415         .dt_free_map = pinctrl_utils_free_map,
2416 };
2417
2418 static const struct pinconf_ops aspeed_g4_conf_ops = {
2419         .is_generic = true,
2420         .pin_config_get = aspeed_pin_config_get,
2421         .pin_config_set = aspeed_pin_config_set,
2422         .pin_config_group_get = aspeed_pin_config_group_get,
2423         .pin_config_group_set = aspeed_pin_config_group_set,
2424 };
2425
2426 static struct pinctrl_desc aspeed_g4_pinctrl_desc = {
2427         .name = "aspeed-g4-pinctrl",
2428         .pins = aspeed_g4_pins,
2429         .npins = ARRAY_SIZE(aspeed_g4_pins),
2430         .pctlops = &aspeed_g4_pinctrl_ops,
2431         .pmxops = &aspeed_g4_pinmux_ops,
2432         .confops = &aspeed_g4_conf_ops,
2433 };
2434
2435 static int aspeed_g4_pinctrl_probe(struct platform_device *pdev)
2436 {
2437         int i;
2438
2439         for (i = 0; i < ARRAY_SIZE(aspeed_g4_pins); i++)
2440                 aspeed_g4_pins[i].number = i;
2441
2442         return aspeed_pinctrl_probe(pdev, &aspeed_g4_pinctrl_desc,
2443                         &aspeed_g4_pinctrl_data);
2444 }
2445
2446 static const struct of_device_id aspeed_g4_pinctrl_of_match[] = {
2447         { .compatible = "aspeed,ast2400-pinctrl", },
2448         { .compatible = "aspeed,g4-pinctrl", },
2449         { },
2450 };
2451
2452 static struct platform_driver aspeed_g4_pinctrl_driver = {
2453         .probe = aspeed_g4_pinctrl_probe,
2454         .driver = {
2455                 .name = "aspeed-g4-pinctrl",
2456                 .of_match_table = aspeed_g4_pinctrl_of_match,
2457         },
2458 };
2459
2460 static int aspeed_g4_pinctrl_init(void)
2461 {
2462         return platform_driver_register(&aspeed_g4_pinctrl_driver);
2463 }
2464
2465 arch_initcall(aspeed_g4_pinctrl_init);