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