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