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