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