lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250829073030.2749482-4-billy_tsai@aspeedtech.com>
Date: Fri, 29 Aug 2025 15:30:29 +0800
From: Billy Tsai <billy_tsai@...eedtech.com>
To: <lee@...nel.org>, <robh@...nel.org>, <krzk+dt@...nel.org>,
	<conor+dt@...nel.org>, <joel@....id.au>, <andrew@...econstruct.com.au>,
	<linus.walleij@...aro.org>, <brgl@...ev.pl>, <billy_tsai@...eedtech.com>,
	<devicetree@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
	<linux-aspeed@...ts.ozlabs.org>, <linux-kernel@...r.kernel.org>,
	<openbmc@...ts.ozlabs.org>, <linux-gpio@...r.kernel.org>,
	<BMC-SW@...eedtech.com>
Subject: [PATCH v1 3/4] pinctrl: aspeed: Add AST2700 pinmux support

This patch adds pinmux support for the AST2700, which includes two SoC
configurations:
- SoC0 closely resembles previous generations of ASPEED BMC SoCs, allowing
  the reuse of existing macros and callback functions.
- SoC1, however, introduces a new logic for configuring pin functions.
  Therefore, new g7_set_mux and gpio_request_enable functions are
  implemented to properly configure the pinctrl registers using the
  pin_cfg table and to resolve GPIO request errors.

The driver supports:
- All 12 GPIO-capable pins in SoC0
- All 212 GPIO-capable pins in SoC1

Additionally, this patch introduces several pseudo-ball definitions for
specific configuration purposes:
- USB function selection
- JTAG target selection
- PCIe RC PERST configuration
- SGMII PHY selection

Signed-off-by: Billy Tsai <billy_tsai@...eedtech.com>
---
 drivers/pinctrl/aspeed/Kconfig                |    8 +
 drivers/pinctrl/aspeed/Makefile               |    1 +
 .../pinctrl/aspeed/pinctrl-aspeed-g7-soc0.c   |  503 ++++
 .../pinctrl/aspeed/pinctrl-aspeed-g7-soc1.c   | 2523 +++++++++++++++++
 drivers/pinctrl/aspeed/pinctrl-aspeed.c       |   47 +
 drivers/pinctrl/aspeed/pinctrl-aspeed.h       |   11 +-
 drivers/pinctrl/aspeed/pinmux-aspeed.h        |   35 +-
 7 files changed, 3123 insertions(+), 5 deletions(-)
 create mode 100644 drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc0.c
 create mode 100644 drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc1.c

diff --git a/drivers/pinctrl/aspeed/Kconfig b/drivers/pinctrl/aspeed/Kconfig
index 1a4e5b9ed471..16743091a139 100644
--- a/drivers/pinctrl/aspeed/Kconfig
+++ b/drivers/pinctrl/aspeed/Kconfig
@@ -31,3 +31,11 @@ config PINCTRL_ASPEED_G6
 	help
 	  Say Y here to enable pin controller support for Aspeed's 6th
 	  generation SoCs. GPIO is provided by a separate GPIO driver.
+
+config PINCTRL_ASPEED_G7
+	bool "Aspeed G7 SoC pin control"
+	depends on (ARCH_ASPEED || COMPILE_TEST) && OF
+	select PINCTRL_ASPEED
+	help
+	  Say Y here to enable pin controller support for Aspeed's 7th
+	  generation SoCs. GPIO is provided by a separate GPIO driver.
diff --git a/drivers/pinctrl/aspeed/Makefile b/drivers/pinctrl/aspeed/Makefile
index db2a7600ae2b..1713f678a984 100644
--- a/drivers/pinctrl/aspeed/Makefile
+++ b/drivers/pinctrl/aspeed/Makefile
@@ -6,3 +6,4 @@ obj-$(CONFIG_PINCTRL_ASPEED)	+= pinctrl-aspeed.o pinmux-aspeed.o
 obj-$(CONFIG_PINCTRL_ASPEED_G4)	+= pinctrl-aspeed-g4.o
 obj-$(CONFIG_PINCTRL_ASPEED_G5)	+= pinctrl-aspeed-g5.o
 obj-$(CONFIG_PINCTRL_ASPEED_G6)	+= pinctrl-aspeed-g6.o
+obj-$(CONFIG_PINCTRL_ASPEED_G7) += pinctrl-aspeed-g7-soc0.o pinctrl-aspeed-g7-soc1.o
\ No newline at end of file
diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc0.c b/drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc0.c
new file mode 100644
index 000000000000..86da889cc010
--- /dev/null
+++ b/drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc0.c
@@ -0,0 +1,503 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/bits.h>
+#include <linux/device.h>
+#include <linux/gpio/driver.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/mod_devicetable.h>
+#include <linux/pinctrl/machine.h>
+#include <linux/pinctrl/pinconf.h>
+#include <linux/pinctrl/pinconf-generic.h>
+#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/pinmux.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+#include <linux/regmap.h>
+#include "pinctrl-aspeed.h"
+#include "../pinctrl-utils.h"
+
+#define SCU200 0x200 /* System Reset Control #1  */
+
+#define SCU400 0x400 /* Multi-function Pin Control #1  */
+#define SCU404 0x404 /* Multi-function Pin Control #2  */
+#define SCU408 0x408 /* Multi-function Pin Control #3  */
+#define SCU40C 0x40C /* Multi-function Pin Control #3  */
+#define SCU410 0x410 /* USB Multi-function Control Register  */
+#define SCU414 0x414 /* VGA Function Control Register  */
+
+#define SCU480 0x480 /* GPIO18A0 IO Control Register */
+#define SCU484 0x484 /* GPIO18A1 IO Control Register */
+#define SCU488 0x488 /* GPIO18A2 IO Control Register */
+#define SCU48C 0x48c /* GPIO18A3 IO Control Register */
+#define SCU490 0x490 /* GPIO18A4 IO Control Register */
+#define SCU494 0x494 /* GPIO18A5 IO Control Register */
+#define SCU498 0x498 /* GPIO18A6 IO Control Register */
+#define SCU49C 0x49c /* GPIO18A7 IO Control Register */
+#define SCU4A0 0x4A0 /* GPIO18B0 IO Control Register */
+#define SCU4A4 0x4A4 /* GPIO18B1 IO Control Register */
+#define SCU4A8 0x4A8 /* GPIO18B2 IO Control Register */
+#define SCU4AC 0x4AC /* GPIO18B3 IO Control Register */
+
+enum {
+	AC14,
+	AE15,
+	AD14,
+	AE14,
+	AF14,
+	AB13,
+	AB14,
+	AF15,
+	AF13,
+	AC13,
+	AD13,
+	AE13,
+	PORTA_U3, // SCU410[1:0]
+	PORTA_U2, // SCU410[3:2]
+	PORTB_U3, // SCU410[5:4]
+	PORTB_U2, // SCU410[7:6]
+	PORTA_U3_XHCI, // SCU410[9]
+	PORTA_U2_XHCI, // SCU410[9]
+	PORTB_U3_XHCI, // SCU410[10]
+	PORTB_U2_XHCI, // SCU410[10]
+	PORTA_MODE, // SCU410[25:24]
+	PORTB_MODE, // SCU410[29:28]
+	PORTA_U2_PHY,
+	PORTA_U3_PHY,
+	PORTB_U2_PHY,
+	PORTB_U3_PHY,
+	JTAG_PORT,
+	PCIERC0_PERST,
+	PCIERC1_PERST,
+};
+
+GROUP_DECL(EMMCG1, AC14, AE15, AD14);
+GROUP_DECL(EMMCG4, AC14, AE15, AD14, AE14, AF14, AB13);
+GROUP_DECL(EMMCG8, AC14, AE15, AD14, AE14, AF14, AB13, AF13, AC13, AD13, AE13);
+GROUP_DECL(EMMCWPN, AF15);
+GROUP_DECL(EMMCCDN, AB14);
+GROUP_DECL(VGADDC, AD13, AE13);
+GROUP_DECL(VB1, AC14, AE15, AD14, AE14);
+GROUP_DECL(VB0, AF15, AB14, AF13, AC13);
+//USB3A
+//xhci: BMC/PCIE, vHub/PHY/EXT port
+GROUP_DECL(USB3AXHD, PORTA_U3, PORTA_U3_XHCI);
+GROUP_DECL(USB3AXHPD, PORTA_U3, PORTA_U3_XHCI);
+GROUP_DECL(USB3AXH, PORTA_U3, PORTA_U3_XHCI, PORTA_U3_PHY);
+GROUP_DECL(USB3AXHP, PORTA_U3, PORTA_U3_XHCI, PORTA_U3_PHY);
+GROUP_DECL(USB3AXH2B, PORTA_U3, PORTA_U3_XHCI, PORTB_U3_PHY);
+GROUP_DECL(USB3AXHP2B, PORTA_U3, PORTA_U3_XHCI, PORTB_U3_PHY);
+
+//USB2A
+//xhci: BMC/PCIE, vHub/PHY/EXT port
+GROUP_DECL(USB2AXHD1, PORTA_U2, PORTA_U2_XHCI);
+GROUP_DECL(USB2AXHPD1, PORTA_U2, PORTA_U2_XHCI);
+GROUP_DECL(USB2AXH, PORTA_U2, PORTA_U2_XHCI, PORTA_U2_PHY);
+GROUP_DECL(USB2AXHP, PORTA_U2, PORTA_U2_XHCI, PORTA_U2_PHY);
+GROUP_DECL(USB2AXH2B, PORTA_U2, PORTA_U2_XHCI, PORTB_U2_PHY);
+GROUP_DECL(USB2AXHP2B, PORTA_U2, PORTA_U2_XHCI, PORTB_U2_PHY);
+// vhub to phy
+GROUP_DECL(USB2AD1, PORTA_U2, PORTA_U2_PHY);
+//ehci
+GROUP_DECL(USB2AHPD0, PORTA_MODE);
+GROUP_DECL(USB2AH, PORTA_MODE, PORTA_U2_PHY);
+GROUP_DECL(USB2AHP, PORTA_MODE, PORTA_U2_PHY);
+GROUP_DECL(USB2AD0, PORTA_MODE, PORTA_U2_PHY);
+
+//USB3B
+//xhci: BMC/PCIE, vHub/PHY/EXT port
+GROUP_DECL(USB3BXHD, PORTB_U3, PORTB_U3_XHCI);
+GROUP_DECL(USB3BXHPD, PORTB_U3, PORTB_U3_XHCI);
+GROUP_DECL(USB3BXH, PORTB_U3, PORTB_U3_XHCI, PORTB_U3_PHY);
+GROUP_DECL(USB3BXHP, PORTB_U3, PORTB_U3_XHCI, PORTB_U3_PHY);
+GROUP_DECL(USB3BXH2A, PORTB_U3, PORTB_U3_XHCI, PORTA_U3_PHY);
+GROUP_DECL(USB3BXHP2A, PORTB_U3, PORTB_U3_XHCI, PORTA_U3_PHY);
+
+//USB2B
+//xhci: BMC/PCIE, vHub/PHY/EXT port
+GROUP_DECL(USB2BXHD1, PORTB_U2, PORTB_U2_XHCI);
+GROUP_DECL(USB2BXHPD1, PORTB_U2, PORTB_U2_XHCI);
+GROUP_DECL(USB2BXH, PORTB_U2, PORTB_U2_XHCI, PORTB_U2_PHY);
+GROUP_DECL(USB2BXHP, PORTB_U2, PORTB_U2_XHCI, PORTB_U2_PHY);
+GROUP_DECL(USB2BXH2A, PORTB_U2, PORTB_U2_XHCI, PORTA_U2_PHY);
+GROUP_DECL(USB2BXHP2A, PORTB_U2, PORTB_U2_XHCI, PORTA_U2_PHY);
+// vhub to phy
+GROUP_DECL(USB2BD1, PORTB_U2, PORTB_U2_PHY);
+//ehci
+GROUP_DECL(USB2BHPD0, PORTB_MODE);
+GROUP_DECL(USB2BH, PORTB_MODE, PORTB_U2_PHY);
+GROUP_DECL(USB2BHP, PORTB_MODE, PORTB_U2_PHY);
+GROUP_DECL(USB2BD0, PORTB_MODE, PORTB_U2_PHY);
+//JTAG port
+GROUP_DECL(PSP, JTAG_PORT);
+GROUP_DECL(SSP, JTAG_PORT);
+GROUP_DECL(TSP, JTAG_PORT);
+GROUP_DECL(DDR, JTAG_PORT);
+GROUP_DECL(USB3A, JTAG_PORT);
+GROUP_DECL(USB3B, JTAG_PORT);
+GROUP_DECL(PCIEA, JTAG_PORT);
+GROUP_DECL(PCIEB, JTAG_PORT);
+GROUP_DECL(JTAGM0, JTAG_PORT);
+//PCIE RC PERST
+GROUP_DECL(PCIERC0PERST, PCIERC0_PERST);
+GROUP_DECL(PCIERC1PERST, PCIERC1_PERST);
+
+static struct aspeed_pin_group aspeed_g7_soc0_pingroups[] = {
+	ASPEED_PINCTRL_GROUP(EMMCG1),
+	ASPEED_PINCTRL_GROUP(EMMCG4),
+	ASPEED_PINCTRL_GROUP(EMMCG8),
+	ASPEED_PINCTRL_GROUP(EMMCWPN),
+	ASPEED_PINCTRL_GROUP(EMMCCDN),
+	ASPEED_PINCTRL_GROUP(VGADDC),
+	ASPEED_PINCTRL_GROUP(VB1),
+	ASPEED_PINCTRL_GROUP(VB0),
+	ASPEED_PINCTRL_GROUP(USB3AXHD),
+	ASPEED_PINCTRL_GROUP(USB3AXHPD),
+	ASPEED_PINCTRL_GROUP(USB3AXH),
+	ASPEED_PINCTRL_GROUP(USB3AXHP),
+	ASPEED_PINCTRL_GROUP(USB3AXH2B),
+	ASPEED_PINCTRL_GROUP(USB3AXHP2B),
+	ASPEED_PINCTRL_GROUP(USB2AXHD1),
+	ASPEED_PINCTRL_GROUP(USB2AXHPD1),
+	ASPEED_PINCTRL_GROUP(USB2AXH),
+	ASPEED_PINCTRL_GROUP(USB2AXHP),
+	ASPEED_PINCTRL_GROUP(USB2AXH2B),
+	ASPEED_PINCTRL_GROUP(USB2AXHP2B),
+	ASPEED_PINCTRL_GROUP(USB2AD1),
+	ASPEED_PINCTRL_GROUP(USB2AHPD0),
+	ASPEED_PINCTRL_GROUP(USB2AH),
+	ASPEED_PINCTRL_GROUP(USB2AHP),
+	ASPEED_PINCTRL_GROUP(USB2AD0),
+	ASPEED_PINCTRL_GROUP(USB3BXHD),
+	ASPEED_PINCTRL_GROUP(USB3BXHPD),
+	ASPEED_PINCTRL_GROUP(USB3BXH),
+	ASPEED_PINCTRL_GROUP(USB3BXHP),
+	ASPEED_PINCTRL_GROUP(USB3BXH2A),
+	ASPEED_PINCTRL_GROUP(USB3BXHP2A),
+	ASPEED_PINCTRL_GROUP(USB2BXHD1),
+	ASPEED_PINCTRL_GROUP(USB2BXHPD1),
+	ASPEED_PINCTRL_GROUP(USB2BXH),
+	ASPEED_PINCTRL_GROUP(USB2BXHP),
+	ASPEED_PINCTRL_GROUP(USB2BXH2A),
+	ASPEED_PINCTRL_GROUP(USB2BXHP2A),
+	ASPEED_PINCTRL_GROUP(USB2BD1),
+	ASPEED_PINCTRL_GROUP(USB2BHPD0),
+	ASPEED_PINCTRL_GROUP(USB2BH),
+	ASPEED_PINCTRL_GROUP(USB2BHP),
+	ASPEED_PINCTRL_GROUP(USB2BD0),
+	ASPEED_PINCTRL_GROUP(PSP),
+	ASPEED_PINCTRL_GROUP(SSP),
+	ASPEED_PINCTRL_GROUP(TSP),
+	ASPEED_PINCTRL_GROUP(DDR),
+	ASPEED_PINCTRL_GROUP(USB3A),
+	ASPEED_PINCTRL_GROUP(USB3B),
+	ASPEED_PINCTRL_GROUP(PCIEA),
+	ASPEED_PINCTRL_GROUP(PCIEB),
+	ASPEED_PINCTRL_GROUP(JTAGM0),
+	ASPEED_PINCTRL_GROUP(PCIERC0PERST),
+	ASPEED_PINCTRL_GROUP(PCIERC1PERST),
+};
+
+FUNC_DECL_(EMMC, "EMMCG1", "EMMCG4", "EMMCG8", "EMMCWPN", "EMMCCDN");
+FUNC_DECL_(VGADDC, "VGADDC");
+FUNC_DECL_(VB, "VB0", "VB1");
+FUNC_DECL_(USB3A, "USB3AXHD", "USB3AXHPD", "USB3AXH", "USB3AXHP", "USB3AXH2B",
+	   "USB3AXHP2B");
+FUNC_DECL_(USB2A, "USB2AXHD1", "USB2AXHPD1", "USB2AXH", "USB2AXHP", "USB2AXH2B",
+	   "USB2AXHP2B", "USB2AD1", "USB2AHPD0", "USB2AH", "USB2AHP",
+	   "USB2AD0");
+FUNC_DECL_(USB3B, "USB3BXHD", "USB3BXHPD", "USB3BXH", "USB3BXHP", "USB3BXH2A",
+	   "USB3BXHP2A");
+FUNC_DECL_(USB2B, "USB2BXHD1", "USB2BXHPD1", "USB2BXH", "USB2BXHP", "USB2BXH2A",
+	   "USB2BXHP2A", "USB2BD1", "USB2BHPD0", "USB2BH", "USB2BHP",
+	   "USB2BD0");
+FUNC_DECL_(JTAG0, "PSP", "SSP", "TSP", "DDR", "USB3A", "USB3B",
+	   "PCIEA", "PCIEB", "JTAGM0");
+FUNC_DECL_(PCIERC, "PCIERC0PERST", "PCIERC1PERST");
+
+static struct aspeed_pin_function aspeed_g7_soc0_funcs[] = {
+	ASPEED_PINCTRL_FUNC(EMMC),
+	ASPEED_PINCTRL_FUNC(VGADDC),
+	ASPEED_PINCTRL_FUNC(VB),
+	ASPEED_PINCTRL_FUNC(USB3A),
+	ASPEED_PINCTRL_FUNC(USB2A),
+	ASPEED_PINCTRL_FUNC(USB3B),
+	ASPEED_PINCTRL_FUNC(USB2B),
+	ASPEED_PINCTRL_FUNC(JTAG0),
+	ASPEED_PINCTRL_FUNC(PCIERC),
+};
+
+static const struct pinctrl_pin_desc aspeed_g7_soc0_pins[] = {
+	PINCTRL_PIN(AC14, "AC14"),
+	PINCTRL_PIN(AE15, "AE15"),
+	PINCTRL_PIN(AD14, "AD14"),
+	PINCTRL_PIN(AE14, "AE14"),
+	PINCTRL_PIN(AF14, "AF14"),
+	PINCTRL_PIN(AB13, "AB13"),
+	PINCTRL_PIN(AF15, "AF15"),
+	PINCTRL_PIN(AB14, "AB14"),
+	PINCTRL_PIN(AF13, "AF13"),
+	PINCTRL_PIN(AC13, "AC13"),
+	PINCTRL_PIN(AD13, "AD13"),
+	PINCTRL_PIN(AE13, "AE13"),
+	PINCTRL_PIN(PORTA_U3, "PORTA_U3"),
+	PINCTRL_PIN(PORTA_U2, "PORTA_U2"),
+	PINCTRL_PIN(PORTB_U3, "PORTB_U3"),
+	PINCTRL_PIN(PORTB_U2, "PORTB_U2"),
+	PINCTRL_PIN(PORTA_U3_XHCI, "PORTA_U3_XHCI"),
+	PINCTRL_PIN(PORTA_U2_XHCI, "PORTA_U2_XHCI"),
+	PINCTRL_PIN(PORTB_U3_XHCI, "PORTB_U3_XHCI"),
+	PINCTRL_PIN(PORTB_U2_XHCI, "PORTB_U2_XHCI"),
+	PINCTRL_PIN(PORTA_MODE, "PORTA_MODE"),
+	PINCTRL_PIN(PORTA_U3_PHY, "PORTA_U3_PHY"),
+	PINCTRL_PIN(PORTA_U2_PHY, "PORTA_U2_PHY"),
+	PINCTRL_PIN(PORTB_MODE, "PORTB_MODE"),
+	PINCTRL_PIN(PORTB_U3_PHY, "PORTB_U3_PHY"),
+	PINCTRL_PIN(PORTB_U2_PHY, "PORTB_U2_PHY"),
+	PINCTRL_PIN(JTAG_PORT, "JTAG_PORT"),
+	PINCTRL_PIN(PCIERC0_PERST, "PCIERC0_PERST"),
+	PINCTRL_PIN(PCIERC1_PERST, "PCIERC1_PERST"),
+};
+
+FUNCFG_DESCL(AC14, PIN_CFG(EMMCG1, SCU400, BIT_MASK(0), BIT(0)),
+	     PIN_CFG(EMMCG4, SCU400, BIT_MASK(0), BIT(0)),
+	     PIN_CFG(EMMCG8, SCU400, BIT_MASK(0), BIT(0)),
+	     PIN_CFG(VB1, SCU404, BIT_MASK(0), BIT(0)));
+FUNCFG_DESCL(AE15, PIN_CFG(EMMCG1, SCU400, BIT_MASK(1), BIT(1)),
+	     PIN_CFG(EMMCG4, SCU400, BIT_MASK(1), BIT(1)),
+	     PIN_CFG(EMMCG8, SCU400, BIT_MASK(1), BIT(1)),
+	     PIN_CFG(VB1, SCU404, BIT_MASK(1), BIT(1)));
+FUNCFG_DESCL(AD14, PIN_CFG(EMMCG1, SCU400, BIT_MASK(2), BIT(2)),
+	     PIN_CFG(EMMCG4, SCU400, BIT_MASK(2), BIT(2)),
+	     PIN_CFG(EMMCG8, SCU400, BIT_MASK(2), BIT(2)),
+	     PIN_CFG(VB1, SCU404, BIT_MASK(2), BIT(2)));
+FUNCFG_DESCL(AE14, PIN_CFG(EMMCG4, SCU400, BIT_MASK(3), BIT(3)),
+	     PIN_CFG(EMMCG8, SCU400, BIT_MASK(3), BIT(3)),
+	     PIN_CFG(VB1, SCU404, BIT_MASK(3), BIT(3)));
+FUNCFG_DESCL(AF14, PIN_CFG(EMMCG4, SCU400, BIT_MASK(4), BIT(4)),
+	     PIN_CFG(EMMCG8, SCU400, BIT_MASK(4), BIT(4)));
+FUNCFG_DESCL(AB13, PIN_CFG(EMMCG4, SCU400, BIT_MASK(5), BIT(5)),
+	     PIN_CFG(EMMCG8, SCU400, BIT_MASK(5), BIT(5)));
+FUNCFG_DESCL(AB14, PIN_CFG(EMMCCDN, SCU400, BIT_MASK(6), BIT(6)),
+	     PIN_CFG(VB0, SCU404, BIT_MASK(6), BIT(6)));
+FUNCFG_DESCL(AF15, PIN_CFG(EMMCWPN, SCU400, BIT_MASK(7), BIT(7)),
+	     PIN_CFG(VB0, SCU404, BIT_MASK(7), BIT(7)));
+FUNCFG_DESCL(AF13, PIN_CFG(EMMCG8, SCU400, BIT_MASK(8), BIT(8)),
+	     PIN_CFG(VB0, SCU404, BIT_MASK(8), BIT(8)));
+FUNCFG_DESCL(AC13, PIN_CFG(EMMCG8, SCU400, BIT_MASK(9), BIT(9)),
+	     PIN_CFG(VB0, SCU404, BIT_MASK(9), BIT(9)));
+FUNCFG_DESCL(AD13, PIN_CFG(EMMCG8, SCU400, BIT_MASK(10), BIT(10)),
+	     PIN_CFG(VGADDC, SCU404, BIT_MASK(10), BIT(10)));
+FUNCFG_DESCL(AE13, PIN_CFG(EMMCG8, SCU400, BIT_MASK(11), BIT(11)),
+	     PIN_CFG(VGADDC, SCU404, BIT_MASK(11), BIT(11)));
+FUNCFG_DESCL(PORTA_U3, PIN_CFG(USB3AXHD, SCU410, GENMASK(1, 0), 0),
+	     PIN_CFG(USB3AXHPD, SCU410, GENMASK(1, 0), 0),
+	     PIN_CFG(USB3AXH, SCU410, GENMASK(1, 0), 2),
+	     PIN_CFG(USB3AXHP, SCU410, GENMASK(1, 0), 2),
+	     PIN_CFG(USB3AXH2B, SCU410, GENMASK(1, 0), 3),
+	     PIN_CFG(USB3AXHP2B, SCU410, GENMASK(1, 0), 3));
+FUNCFG_DESCL(PORTA_U2, PIN_CFG(USB2AXHD1, SCU410, GENMASK(3, 2), 0),
+	     PIN_CFG(USB2AXHPD1, SCU410, GENMASK(3, 2), 0),
+	     PIN_CFG(USB2AXH, SCU410, GENMASK(3, 2), 2 << 2),
+	     PIN_CFG(USB2AXHP, SCU410, GENMASK(3, 2), 2 << 2),
+	     PIN_CFG(USB2AXH2B, SCU410, GENMASK(3, 2), 3 << 2),
+	     PIN_CFG(USB2AXHP2B, SCU410, GENMASK(3, 2), 3 << 2),
+	     PIN_CFG(USB2AD1, SCU410, GENMASK(3, 2), 1 << 2));
+FUNCFG_DESCL(PORTB_U3, PIN_CFG(USB3BXHD, SCU410, GENMASK(5, 4), 0),
+	     PIN_CFG(USB3BXHPD, SCU410, GENMASK(5, 4), 0),
+	     PIN_CFG(USB3BXH, SCU410, GENMASK(5, 4), 2 << 4),
+	     PIN_CFG(USB3BXHP, SCU410, GENMASK(5, 4), 2 << 4),
+	     PIN_CFG(USB3BXH2A, SCU410, GENMASK(5, 4), 3 << 4),
+	     PIN_CFG(USB3BXHP2A, SCU410, GENMASK(5, 4), 3 << 4));
+FUNCFG_DESCL(PORTB_U2, PIN_CFG(USB2BXHD1, SCU410, GENMASK(7, 6), 0),
+	     PIN_CFG(USB2BXHPD1, SCU410, GENMASK(7, 6), 0),
+	     PIN_CFG(USB2BXH, SCU410, GENMASK(7, 6), 2 << 6),
+	     PIN_CFG(USB2BXHP, SCU410, GENMASK(7, 6), 2 << 6),
+	     PIN_CFG(USB2BXH2A, SCU410, GENMASK(7, 6), 3 << 6),
+	     PIN_CFG(USB2BXHP2A, SCU410, GENMASK(7, 6), 3 << 6),
+	     PIN_CFG(USB2BD1, SCU410, GENMASK(7, 6), 1 << 6));
+FUNCFG_DESCL(PORTA_U3_XHCI, PIN_CFG(USB3AXHD, SCU410, BIT_MASK(9), 1 << 9),
+	     PIN_CFG(USB3AXHPD, SCU410, BIT_MASK(9), 0),
+	     PIN_CFG(USB3AXH, SCU410, BIT_MASK(9), 1 << 9),
+	     PIN_CFG(USB3AXHP, SCU410, BIT_MASK(9), 0),
+	     PIN_CFG(USB3AXH2B, SCU410, BIT_MASK(9), 1 << 9),
+	     PIN_CFG(USB3AXHP2B, SCU410, BIT_MASK(9), 0));
+FUNCFG_DESCL(PORTA_U2_XHCI, PIN_CFG(USB2AXHD1, SCU410, BIT_MASK(9), 1 << 9),
+	     PIN_CFG(USB2AXHPD1, SCU410, BIT_MASK(9), 0),
+	     PIN_CFG(USB2AXH, SCU410, BIT_MASK(9), 1 << 9),
+	     PIN_CFG(USB2AXHP, SCU410, BIT_MASK(9), 0),
+	     PIN_CFG(USB2AXH2B, SCU410, BIT_MASK(9), 1 << 9),
+	     PIN_CFG(USB2AXHP2B, SCU410, BIT_MASK(9), 0));
+FUNCFG_DESCL(PORTB_U3_XHCI, PIN_CFG(USB3BXHD, SCU410, BIT_MASK(10), 1 << 10),
+	     PIN_CFG(USB3BXHPD, SCU410, BIT_MASK(10), 0),
+	     PIN_CFG(USB3BXH, SCU410, BIT_MASK(10), 1 << 10),
+	     PIN_CFG(USB3BXHP, SCU410, BIT_MASK(10), 0),
+	     PIN_CFG(USB3BXH2A, SCU410, BIT_MASK(10), 1 << 10),
+	     PIN_CFG(USB3BXHP2A, SCU410, BIT_MASK(10), 0));
+FUNCFG_DESCL(PORTB_U2_XHCI, PIN_CFG(USB2BXHD1, SCU410, BIT_MASK(10), 1 << 10),
+	     PIN_CFG(USB2BXHPD1, SCU410, BIT_MASK(10), 0),
+	     PIN_CFG(USB2BXH, SCU410, BIT_MASK(10), 1 << 10),
+	     PIN_CFG(USB2BXHP, SCU410, BIT_MASK(10), 0),
+	     PIN_CFG(USB2BXH2A, SCU410, BIT_MASK(10), 1 << 10),
+	     PIN_CFG(USB2BXHP2A, SCU410, BIT_MASK(10), 0));
+FUNCFG_DESCL(PORTA_MODE, PIN_CFG(USB2AHPD0, SCU410, GENMASK(25, 24), 0),
+	     PIN_CFG(USB2AH, SCU410, GENMASK(25, 24), 2 << 24),
+	     PIN_CFG(USB2AHP, SCU410, GENMASK(25, 24), 3 << 24),
+	     PIN_CFG(USB2AD0, SCU410, GENMASK(25, 24), 1 << 24));
+FUNCFG_DESCL(PORTB_MODE, PIN_CFG(USB2BHPD0, SCU410, GENMASK(29, 28), 0),
+	     PIN_CFG(USB2BH, SCU410, GENMASK(29, 28), 2 << 28),
+	     PIN_CFG(USB2BHP, SCU410, GENMASK(29, 28), 3 << 28),
+	     PIN_CFG(USB2BD0, SCU410, GENMASK(29, 28), 1 << 28));
+FUNCFG_DESCL(PORTA_U3_PHY);
+FUNCFG_DESCL(PORTA_U2_PHY);
+FUNCFG_DESCL(PORTB_U3_PHY);
+FUNCFG_DESCL(PORTB_U2_PHY);
+FUNCFG_DESCL(JTAG_PORT, PIN_CFG(PSP, SCU408, GENMASK(12, 5), 0x0 << 5),
+	     PIN_CFG(SSP, SCU408, GENMASK(12, 5), 0x41 << 5),
+	     PIN_CFG(TSP, SCU408, GENMASK(12, 5), 0x42 << 5),
+	     PIN_CFG(DDR, SCU408, GENMASK(12, 5), 0x43 << 5),
+	     PIN_CFG(USB3A, SCU408, GENMASK(12, 5), 0x44 << 5),
+	     PIN_CFG(USB3B, SCU408, GENMASK(12, 5), 0x45 << 5),
+	     PIN_CFG(PCIEA, SCU408, GENMASK(12, 5), 0x46 << 5),
+	     PIN_CFG(PCIEB, SCU408, GENMASK(12, 5), 0x47 << 5),
+	     PIN_CFG(JTAGM0, SCU408, GENMASK(12, 5), 0x8 << 5));
+FUNCFG_DESCL(PCIERC0_PERST, PIN_CFG(PCIERC0PERST, SCU200, BIT_MASK(21), 1 << 21));
+FUNCFG_DESCL(PCIERC1_PERST, PIN_CFG(PCIERC1PERST, SCU200, BIT_MASK(19), 1 << 19));
+
+static const struct aspeed_g7_pincfg pin_cfg[] = {
+	PINCFG_PIN(AC14),	   PINCFG_PIN(AE15),
+	PINCFG_PIN(AD14),	   PINCFG_PIN(AE14),
+	PINCFG_PIN(AF14),	   PINCFG_PIN(AB13),
+	PINCFG_PIN(AB14),	   PINCFG_PIN(AF15),
+	PINCFG_PIN(AF13),	   PINCFG_PIN(AC13),
+	PINCFG_PIN(AD13),	   PINCFG_PIN(AE13),
+	PINCFG_PIN(PORTA_U3),	   PINCFG_PIN(PORTA_U2),
+	PINCFG_PIN(PORTB_U3),	   PINCFG_PIN(PORTB_U2),
+	PINCFG_PIN(PORTA_U3_XHCI), PINCFG_PIN(PORTA_U2_XHCI),
+	PINCFG_PIN(PORTB_U3_XHCI), PINCFG_PIN(PORTB_U2_XHCI),
+	PINCFG_PIN(PORTA_MODE),	   PINCFG_PIN(PORTB_MODE),
+	PINCFG_PIN(PORTA_U3_PHY),  PINCFG_PIN(PORTA_U2_PHY),
+	PINCFG_PIN(PORTB_U3_PHY),  PINCFG_PIN(PORTB_U2_PHY),
+	PINCFG_PIN(JTAG_PORT),     PINCFG_PIN(PCIERC0_PERST),
+	PINCFG_PIN(PCIERC1_PERST),
+};
+
+static const struct pinctrl_ops aspeed_g7_soc0_pinctrl_ops = {
+	.get_groups_count = aspeed_pinctrl_get_groups_count,
+	.get_group_name = aspeed_pinctrl_get_group_name,
+	.get_group_pins = aspeed_pinctrl_get_group_pins,
+	.pin_dbg_show = aspeed_pinctrl_pin_dbg_show,
+	.dt_node_to_map = pinconf_generic_dt_node_to_map_all,
+	.dt_free_map = pinctrl_utils_free_map,
+};
+
+static const struct pinmux_ops aspeed_g7_soc0_pinmux_ops = {
+	.get_functions_count = aspeed_pinmux_get_fn_count,
+	.get_function_name = aspeed_pinmux_get_fn_name,
+	.get_function_groups = aspeed_pinmux_get_fn_groups,
+	.set_mux = aspeed_g7_pinmux_set_mux,
+	.gpio_request_enable = aspeed_g7_gpio_request_enable,
+	.strict = true,
+};
+
+static const struct pinconf_ops aspeed_g7_soc0_pinconf_ops = {
+	.is_generic = true,
+	.pin_config_get = aspeed_pin_config_get,
+	.pin_config_set = aspeed_pin_config_set,
+	.pin_config_group_get = aspeed_pin_config_group_get,
+	.pin_config_group_set = aspeed_pin_config_group_set,
+};
+
+/* pinctrl_desc */
+static struct pinctrl_desc aspeed_g7_soc0_pinctrl_desc = {
+	.name = "aspeed-g7-soc0-pinctrl",
+	.pins = aspeed_g7_soc0_pins,
+	.npins = ARRAY_SIZE(aspeed_g7_soc0_pins),
+	.pctlops = &aspeed_g7_soc0_pinctrl_ops,
+	.pmxops = &aspeed_g7_soc0_pinmux_ops,
+	.confops = &aspeed_g7_soc0_pinconf_ops,
+	.owner = THIS_MODULE,
+};
+
+static struct aspeed_pin_config aspeed_g7_configs[] = {
+	/* GPIO18A */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AC14, AC14 }, SCU480, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AE15, AE15 }, SCU484, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AD14, AD14 }, SCU488, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AE14, AE14 }, SCU48C, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AF14, AF14 }, SCU490, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AB13, AB13 }, SCU494, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AB14, AB14 }, SCU498, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AF15, AF15 }, SCU49C, GENMASK(3, 0) },
+	/* GPIO18B */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AF13, AF13 }, SCU4A0, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AC13, AC13 }, SCU4A4, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AD13, AD13 }, SCU4A8, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AE13, AE13 }, SCU4AC, GENMASK(3, 0) },
+};
+
+static const struct aspeed_pin_config_map aspeed_g7_pin_config_map[] = {
+	{ PIN_CONFIG_DRIVE_STRENGTH, 0, 0, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 1, 1, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 2, 2, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 3, 3, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 4, 4, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 5, 5, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 6, 6, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 7, 7, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 8, 8, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 9, 9, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 10, 10, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 11, 11, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 12, 12, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 13, 13, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 14, 14, GENMASK(3, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, 15, 15, GENMASK(3, 0) },
+
+};
+
+static struct aspeed_pinctrl_data aspeed_g7_pinctrl_data = {
+	.pins = aspeed_g7_soc0_pins,
+	.npins = ARRAY_SIZE(aspeed_g7_soc0_pins),
+	.pinmux = {
+		.groups = aspeed_g7_soc0_pingroups,
+		.ngroups = ARRAY_SIZE(aspeed_g7_soc0_pingroups),
+		.functions = aspeed_g7_soc0_funcs,
+		.nfunctions = ARRAY_SIZE(aspeed_g7_soc0_funcs),
+		.configs_g7 = pin_cfg,
+		.nconfigs_g7 = ARRAY_SIZE(pin_cfg),
+	},
+	.configs = aspeed_g7_configs,
+	.nconfigs = ARRAY_SIZE(aspeed_g7_configs),
+	.confmaps = aspeed_g7_pin_config_map,
+	.nconfmaps = ARRAY_SIZE(aspeed_g7_pin_config_map),
+};
+
+static int aspeed_g7_soc0_pinctrl_probe(struct platform_device *pdev)
+{
+	return aspeed_pinctrl_probe(pdev, &aspeed_g7_soc0_pinctrl_desc,
+				    &aspeed_g7_pinctrl_data);
+}
+
+static const struct of_device_id aspeed_g7_soc0_pinctrl_match[] = {
+	{ .compatible = "aspeed,ast2700-soc0-pinctrl" },
+	{}
+};
+MODULE_DEVICE_TABLE(of, aspeed_g7_soc0_pinctrl_match);
+
+static struct platform_driver aspeed_g7_soc0_pinctrl_driver = {
+	.probe = aspeed_g7_soc0_pinctrl_probe,
+	.driver = {
+		.name = "aspeed-g7-soc0-pinctrl",
+		.of_match_table = aspeed_g7_soc0_pinctrl_match,
+		.suppress_bind_attrs = true,
+	},
+};
+
+static int __init aspeed_g7_soc0_pinctrl_register(void)
+{
+	return platform_driver_register(&aspeed_g7_soc0_pinctrl_driver);
+}
+arch_initcall(aspeed_g7_soc0_pinctrl_register);
diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc1.c b/drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc1.c
new file mode 100644
index 000000000000..7c5a5e208f63
--- /dev/null
+++ b/drivers/pinctrl/aspeed/pinctrl-aspeed-g7-soc1.c
@@ -0,0 +1,2523 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/bits.h>
+#include <linux/device.h>
+#include <linux/gpio/driver.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/mod_devicetable.h>
+#include <linux/pinctrl/machine.h>
+#include <linux/pinctrl/pinconf.h>
+#include <linux/pinctrl/pinconf-generic.h>
+#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/pinmux.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+#include "pinctrl-aspeed.h"
+
+#define SCU3B0 0x3B0 /* USB Controller Register */
+#define SCU3B4 0x3B4 /* USB Controller Lock Register */
+#define SCU3B8 0x3B8 /* USB Controller Secure Register #1 */
+#define SCU3BC 0x3BC /* USB Controller Secure Register #2 */
+#define SCU3C0 0x3C0 /* USB Controller Secure Register #3 */
+#define SCU400 0x400 /* Multi-function Pin Control #1 */
+#define SCU404 0x404 /* Multi-function Pin Control #2 */
+#define SCU408 0x408 /* Multi-function Pin Control #3 */
+#define SCU40C 0x40C /* Multi-function Pin Control #4 */
+#define SCU410 0x410 /* Multi-function Pin Control #5 */
+#define SCU414 0x414 /* Multi-function Pin Control #6 */
+#define SCU418 0x418 /* Multi-function Pin Control #7 */
+#define SCU41C 0x41C /* Multi-function Pin Control #8 */
+#define SCU420 0x420 /* Multi-function Pin Control #9 */
+#define SCU424 0x424 /* Multi-function Pin Control #10 */
+#define SCU428 0x428 /* Multi-function Pin Control #11 */
+#define SCU42C 0x42C /* Multi-function Pin Control #12 */
+#define SCU430 0x430 /* Multi-function Pin Control #13 */
+#define SCU434 0x434 /* Multi-function Pin Control #14 */
+#define SCU438 0x438 /* Multi-function Pin Control #15 */
+#define SCU43C 0x43C /* Multi-function Pin Control #16 */
+#define SCU440 0x440 /* Multi-function Pin Control #17 */
+#define SCU444 0x444 /* Multi-function Pin Control #18 */
+#define SCU448 0x448 /* Multi-function Pin Control #19 */
+#define SCU44C 0x44C /* Multi-function Pin Control #20 */
+#define SCU450 0x450 /* Multi-function Pin Control #21 */
+#define SCU454 0x454 /* Multi-function Pin Control #22 */
+#define SCU458 0x458 /* Multi-function Pin Control #23 */
+#define SCU45C 0x45C /* Multi-function Pin Control #24 */
+#define SCU460 0x460 /* Multi-function Pin Control #25 */
+#define SCU464 0x464 /* Multi-function Pin Control #26 */
+#define SCU468 0x468 /* Multi-function Pin Control #27 */
+#define SCU46C 0x46C /* Multi-function Pin Control #28 */
+#define SCU470 0x470 /* Multi-function Pin Control #29 */
+#define SCU474 0x474 /* Multi-function Pin Control #30 */
+#define SCU478 0x478 /* Multi-function Pin Control #31 */
+#define SCU47C 0x47C
+#define SCU480 0x480 /* Disable Pull-Down Control #1 */
+#define SCU484 0x484 /* Disable Pull-Down Control #2 */
+#define SCU488 0x488 /* Disable Pull-Down Control #3 */
+#define SCU48C 0x48C /* Disable Pull-Down Control #4 */
+#define SCU490 0x490 /* Disable Pull-Down Control #5 */
+#define SCU494 0x494 /* Disable Pull-Down Control #6 */
+#define SCU498 0x498 /* Disable Pull-Down Control #7 */
+#define SCU4A0 0x4A0 /* Voltage Selection */
+#define SCU4C0 0x4C0 /* Driving Strength #0 A-I */
+#define SCU4C4 0x4C4 /* Driving Strength #1 J-K */
+#define SCU4C8 0x4C8 /* Driving Strength #2 L-M */
+#define SCU4CC 0x4CC /* Driving Strength #3 N-O */
+#define SCU4D0 0x4D0 /* Driving Strength #4 P-Q */
+#define SCU4D4 0x4D4 /* Driving Strength #5 R-S */
+#define SCU4D8 0x4D8 /* Driving Strength #6 T-U */
+#define SCU4DC 0x4DC /* Driving Strength #7 W */
+
+#define SCU908 0x908 /* PCIe RC PERST Pin Control */
+
+enum {
+	C16,
+	C14,
+	C11,
+	D9,
+	F14,
+	D10,
+	C12,
+	C13,
+	AC26,
+	AA25,
+	AB23,
+	U22,
+	V21,
+	N26,
+	P25,
+	N25,
+	V23,
+	W22,
+	AB26,
+	AD26,
+	P26,
+	AE26,
+	AF26,
+	AF25,
+	AE25,
+	AD25,
+	AF23,
+	AF20,
+	AF21,
+	AE21,
+	AE23,
+	AD22,
+	AF17,
+	AA16,
+	Y16,
+	V17,
+	J13,
+	AB16,
+	AC16,
+	AF16,
+	AA15,
+	AB15,
+	AC15,
+	AD15,
+	Y15,
+	AA14,
+	W16,
+	V16,
+	AB18,
+	AC18,
+	K13,
+	AA17,
+	AB17,
+	AD16,
+	AC17,
+	AD17,
+	AE16,
+	AE17,
+	AB24,
+	W26,
+	HOLE0,
+	HOLE1,
+	HOLE2,
+	HOLE3,
+	W25,
+	Y23,
+	Y24,
+	W21,
+	AA23,
+	AC22,
+	AB22,
+	Y21,
+	AE20,
+	AF19,
+	Y22,
+	AA20,
+	AA22,
+	AB20,
+	AF18,
+	AE19,
+	AD20,
+	AC20,
+	AA21,
+	AB21,
+	AC19,
+	AE18,
+	AD19,
+	AD18,
+	U25,
+	U26,
+	Y26,
+	AA24,
+	R25,
+	AA26,
+	R26,
+	Y25,
+	B16,
+	D14,
+	B15,
+	B14,
+	C17,
+	B13,
+	E14,
+	C15,
+	D24,
+	B23,
+	B22,
+	C23,
+	B18,
+	B21,
+	M15,
+	B19,
+	B26,
+	A25,
+	A24,
+	B24,
+	E26,
+	A21,
+	A19,
+	A18,
+	D26,
+	C26,
+	A23,
+	A22,
+	B25,
+	F26,
+	A26,
+	A14,
+	E10,
+	E13,
+	D12,
+	F10,
+	E11,
+	F11,
+	F13,
+	N15,
+	C20,
+	C19,
+	A8,
+	R14,
+	A7,
+	P14,
+	D20,
+	A6,
+	B6,
+	N14,
+	B7,
+	B8,
+	B9,
+	M14,
+	J11,
+	E7,
+	D19,
+	B11,
+	D15,
+	B12,
+	B10,
+	P13,
+	C18,
+	C6,
+	C7,
+	D7,
+	N13,
+	C8,
+	C9,
+	C10,
+	M16,
+	A15,
+	G11,
+	H7,
+	H8,
+	H9,
+	H10,
+	H11,
+	J9,
+	J10,
+	E9,
+	F9,
+	F8,
+	M13,
+	F7,
+	D8,
+	E8,
+	L12,
+	F12,
+	E12,
+	J12,
+	G7,
+	G8,
+	G9,
+	G10,
+	K12,
+	W17,
+	V18,
+	W18,
+	Y17,
+	AA18,
+	AA13,
+	Y18,
+	AA12,
+	W20,
+	V20,
+	Y11,
+	V14,
+	V19,
+	W14,
+	Y20,
+	AB19,
+	U21,
+	T24,
+	V24,
+	V22,
+	T23,
+	AC25,
+	AB25,
+	AC24,
+	SGMII0,
+	PCIERC2_PERST,
+	PORTC_MODE, // SCU3B0[1:0]
+	PORTD_MODE, // SCU3B0[3:2]
+};
+
+GROUP_DECL(ESPI0, B16, D14, B15, B14, C17, B13, E14, C15);
+GROUP_DECL(ESPI1, C16, C14, C11, D9, F14, D10, C12, C13);
+GROUP_DECL(LPC0, AF26, AF25, B16, D14, B15, B14, C17, B13, E14, C15);
+GROUP_DECL(LPC1, C16, C14, C11, D9, F14, D10, C12, C13, AE16, AE17);
+GROUP_DECL(SD, C16, C14, C11, D9, F14, D10, C12, C13);
+GROUP_DECL(VPI, C16, C14, C11, D9, F14, D10, C12, C13, AC26, AA25, AB23, U22,
+	   V21, N26, P25, N25, V23, W22, AB26, AD26, P26, AE26, AF26, AF25,
+	   AE25, AD25, AF23, AF20, AF21, AE21);
+GROUP_DECL(OSCCLK, C17);
+GROUP_DECL(TACH0, AC26);
+GROUP_DECL(TACH1, AA25);
+GROUP_DECL(TACH2, AB23);
+GROUP_DECL(TACH3, U22);
+GROUP_DECL(THRU0, AC26, AA25);
+GROUP_DECL(THRU1, AB23, U22);
+GROUP_DECL(TACH4, V21);
+GROUP_DECL(TACH5, N26);
+GROUP_DECL(TACH6, P25);
+GROUP_DECL(TACH7, N25);
+GROUP_DECL(NTCS5, V21);
+GROUP_DECL(NDCD5, N26);
+GROUP_DECL(NDSR5, P25);
+GROUP_DECL(NRI5, N25);
+GROUP_DECL(SALT12, AB26);
+GROUP_DECL(SALT13, AD26);
+GROUP_DECL(SALT14, P26);
+GROUP_DECL(SALT15, AE26);
+GROUP_DECL(NDTR5, V23);
+GROUP_DECL(NRTS5, W22);
+GROUP_DECL(NCTS6, AB26);
+GROUP_DECL(NDCD6, AD26);
+GROUP_DECL(NDSR6, P26);
+GROUP_DECL(NRI6, AE26);
+GROUP_DECL(NDTR6, AF26);
+GROUP_DECL(NRTS6, AF25);
+GROUP_DECL(TACH8, V23);
+GROUP_DECL(TACH9, W22);
+GROUP_DECL(TACH10, AB26);
+GROUP_DECL(TACH11, AD26);
+GROUP_DECL(TACH12, P26);
+GROUP_DECL(TACH13, AE26);
+GROUP_DECL(TACH14, AF26);
+GROUP_DECL(TACH15, AF25);
+GROUP_DECL(SPIM0, AE25, AD25, AF23, AF20, AF21, AE21, AE23);
+GROUP_DECL(PWM0, AE25);
+GROUP_DECL(PWM1, AD25);
+GROUP_DECL(PWM2, AF23);
+GROUP_DECL(PWM3, AF20);
+GROUP_DECL(PWM4, AF21);
+GROUP_DECL(PWM5, AE21);
+GROUP_DECL(PWM6, AE23);
+GROUP_DECL(PWM7, AD22);
+GROUP_DECL(SIOPBON0, AE25);
+GROUP_DECL(SIOPBIN0, AD25);
+GROUP_DECL(SIOSCIN0, AF23);
+GROUP_DECL(SIOS3N0, AF20);
+GROUP_DECL(SIOS5N0, AF21);
+GROUP_DECL(SIOPWREQN0, AE21);
+GROUP_DECL(SIOONCTRLN0, AE23);
+GROUP_DECL(SIOPWRGD0, AD22);
+GROUP_DECL(NCTS0, AF17);
+GROUP_DECL(NDCD0, AA16);
+GROUP_DECL(NDSR0, Y16);
+GROUP_DECL(NRI0, V17);
+GROUP_DECL(NDTR0, J13);
+GROUP_DECL(NRTS0, AB16);
+GROUP_DECL(TXD0, AC16);
+GROUP_DECL(RXD0, AF16);
+GROUP_DECL(NCTS1, AA15);
+GROUP_DECL(NDCD1, AB15);
+GROUP_DECL(NDSR1, AC15);
+GROUP_DECL(NRI1, AD15);
+GROUP_DECL(NDTR1, Y15);
+GROUP_DECL(NRTS1, AA14);
+GROUP_DECL(TXD1, W16);
+GROUP_DECL(RXD1, V16);
+GROUP_DECL(TXD2, AB18);
+GROUP_DECL(RXD2, AC18);
+GROUP_DECL(TXD3, K13);
+GROUP_DECL(RXD3, AA17);
+GROUP_DECL(NCTS5, V21);
+GROUP_DECL(TXD5, AB17);
+GROUP_DECL(RXD5, AD16);
+GROUP_DECL(TXD6, AC17);
+GROUP_DECL(RXD6, AD17);
+GROUP_DECL(TXD7, AE16);
+GROUP_DECL(RXD7, AE17);
+GROUP_DECL(TXD8, M15);
+GROUP_DECL(RXD8, B19);
+GROUP_DECL(TXD9, B26);
+GROUP_DECL(RXD9, A25);
+GROUP_DECL(TXD10, A24);
+GROUP_DECL(RXD10, B24);
+GROUP_DECL(TXD11, E26);
+GROUP_DECL(RXD11, A21);
+GROUP_DECL(SPIM1, K13, AA17, AB17, AD16, AC17, AD17, AE16, AE17);
+GROUP_DECL(WDTRST0N, K13);
+GROUP_DECL(WDTRST1N, AA17);
+GROUP_DECL(WDTRST2N, AB17);
+GROUP_DECL(WDTRST3N, AD16);
+GROUP_DECL(WDTRST4N, AC25);
+GROUP_DECL(WDTRST5N, AB25);
+GROUP_DECL(WDTRST6N, AC24);
+GROUP_DECL(WDTRST7N, AB24);
+GROUP_DECL(PWM8, K13);
+GROUP_DECL(PWM9, AA17);
+GROUP_DECL(PWM10, AB17);
+GROUP_DECL(PWM11, AD16);
+GROUP_DECL(PWM12, AC17);
+GROUP_DECL(PWM13, AD17);
+GROUP_DECL(PWM14, AE16);
+GROUP_DECL(PWM15, AE17);
+GROUP_DECL(SALT0, AC17);
+GROUP_DECL(SALT1, AD17);
+GROUP_DECL(SALT2, AC15);
+GROUP_DECL(SALT3, AD15);
+GROUP_DECL(FSI0, AD20, AC20);
+GROUP_DECL(FSI1, AA21, AB21);
+GROUP_DECL(FSI2, AC19, AE18);
+GROUP_DECL(FSI3, AD19, AD18);
+GROUP_DECL(SPIM2, W25, Y23, Y24, W21, AA23, AC22, AB22, Y21);
+GROUP_DECL(SALT4, W17);
+GROUP_DECL(SALT5, V18);
+GROUP_DECL(SALT6, W18);
+GROUP_DECL(SALT7, Y17);
+GROUP_DECL(SALT8, AA18);
+GROUP_DECL(SALT9, AA13);
+GROUP_DECL(SALT10, Y18);
+GROUP_DECL(SALT11, AA12);
+GROUP_DECL(ADC0, W17);
+GROUP_DECL(ADC1, V18);
+GROUP_DECL(ADC2, W18);
+GROUP_DECL(ADC3, Y17);
+GROUP_DECL(ADC4, AA18);
+GROUP_DECL(ADC5, AA13);
+GROUP_DECL(ADC6, Y18);
+GROUP_DECL(ADC7, AA12);
+GROUP_DECL(ADC8, W20);
+GROUP_DECL(ADC9, V20);
+GROUP_DECL(ADC10, Y11);
+GROUP_DECL(ADC11, V14);
+GROUP_DECL(ADC12, V19);
+GROUP_DECL(ADC13, W14);
+GROUP_DECL(ADC14, Y20);
+GROUP_DECL(ADC15, AB19);
+GROUP_DECL(AUXPWRGOOD0, W14);
+GROUP_DECL(AUXPWRGOOD1, Y20);
+GROUP_DECL(SGPM0, U21, T24, V22, T23);
+GROUP_DECL(SGPM1, AC25, AB25, AB24, W26);
+GROUP_DECL(I2C0, G11, H7);
+GROUP_DECL(I2C1, H8, H9);
+GROUP_DECL(I2C2, H10, H11);
+GROUP_DECL(I2C3, J9, J10);
+GROUP_DECL(I2C4, E9, F9);
+GROUP_DECL(I2C5, F8, M13);
+GROUP_DECL(I2C6, F7, D8);
+GROUP_DECL(I2C7, E8, L12);
+GROUP_DECL(I2C8, F12, E12);
+GROUP_DECL(I2C9, J12, G7);
+GROUP_DECL(I2C10, G8, G9);
+GROUP_DECL(I2C11, G10, K12);
+GROUP_DECL(I2C12, AC18, AA17);
+GROUP_DECL(I2C13, AB17, AD16);
+GROUP_DECL(I2C14, AC17, AD17);
+GROUP_DECL(I2C15, AE16, AE17);
+GROUP_DECL(DI2C0, C16, D9);
+GROUP_DECL(DI2C1, C14, F14);
+GROUP_DECL(DI2C2, D10, C12);
+GROUP_DECL(DI2C3, C11, C13);
+GROUP_DECL(DI2C8, U25, U26);
+GROUP_DECL(DI2C9, Y26, AA24);
+GROUP_DECL(DI2C10, R25, AA26);
+GROUP_DECL(DI2C11, R26, Y25);
+GROUP_DECL(DI2C12, W25, Y23);
+GROUP_DECL(DI2C13, Y24, W21);
+GROUP_DECL(DI2C14, AA23, AC22);
+GROUP_DECL(DI2C15, AB22, Y21);
+GROUP_DECL(LTPI_I2C0, G11, H7);
+GROUP_DECL(LTPI_I2C1, H8, H9);
+GROUP_DECL(LTPI_I2C2, H10, H11);
+GROUP_DECL(LTPI_I2C3, J9, J10);
+GROUP_DECL(SIOPBON1, AF17);
+GROUP_DECL(SIOPBIN1, AA16);
+GROUP_DECL(SIOSCIN1, Y16);
+GROUP_DECL(SIOS3N1, V17);
+GROUP_DECL(SIOS5N1, J13);
+GROUP_DECL(SIOPWREQN1, AB16);
+GROUP_DECL(SIOONCTRLN1, AA15);
+GROUP_DECL(SIOPWRGD1, AB15);
+GROUP_DECL(HVI3C12, W25, Y23);
+GROUP_DECL(HVI3C13, Y24, W21);
+GROUP_DECL(HVI3C14, AA23, AC22);
+GROUP_DECL(HVI3C15, AB22, Y21);
+GROUP_DECL(I3C4, AE20, AF19);
+GROUP_DECL(I3C5, Y22, AA20);
+GROUP_DECL(I3C6, AA22, AB20);
+GROUP_DECL(I3C7, AF18, AE19);
+GROUP_DECL(I3C8, AD20, AC20);
+GROUP_DECL(I3C9, AA21, AB21);
+GROUP_DECL(I3C10, AC19, AE18);
+GROUP_DECL(I3C11, AD19, AD18);
+GROUP_DECL(HVI3C0, U25, U26);
+GROUP_DECL(HVI3C1, Y26, AA24);
+GROUP_DECL(HVI3C2, R25, AA26);
+GROUP_DECL(HVI3C3, R26, Y25);
+GROUP_DECL(LTPI, U25, U26, Y26, AA24);
+GROUP_DECL(SPI0, D24, B23, B22);
+GROUP_DECL(QSPI0, C23, B18);
+GROUP_DECL(SPI0CS1, B21);
+GROUP_DECL(SPI0ABR, M15);
+GROUP_DECL(SPI0WPN, B19);
+GROUP_DECL(SPI1, B26, A25, A24);
+GROUP_DECL(QSPI1, B24, E26);
+GROUP_DECL(SPI1CS1, A21);
+GROUP_DECL(SPI1ABR, A19);
+GROUP_DECL(SPI1WPN, A18);
+GROUP_DECL(SPI2, D26, C26, A23, A22);
+GROUP_DECL(QSPI2, B25, F26);
+GROUP_DECL(SPI2CS1, A26);
+GROUP_DECL(THRU2, A19, A18);
+GROUP_DECL(THRU3, B25, F26);
+GROUP_DECL(JTAGM1, D12, F10, E11, F11, F13);
+GROUP_DECL(MDIO0, B9, M14);
+GROUP_DECL(MDIO1, C9, C10);
+GROUP_DECL(MDIO2, E10, E13);
+GROUP_DECL(FWQSPI, M16, A15);
+GROUP_DECL(FWSPIABR, A14);
+GROUP_DECL(FWSPIWPN, N15);
+GROUP_DECL(RGMII0, C20, C19, A8, R14, A7, P14, D20, A6, B6, N14, B7, B8);
+GROUP_DECL(RGMII1, D19, B11, D15, B12, B10, P13, C18, C6, C7, D7, N13, C8);
+GROUP_DECL(RMII0, C20, A8, R14, A7, P14, A6, B6, N14);
+GROUP_DECL(RMII0RCLKO, D20);
+GROUP_DECL(RMII1, D19, D15, B12, B10, P13, C6, C7, D7);
+GROUP_DECL(RMII1RCLKO, C18);
+GROUP_DECL(VGA, J11, E7);
+GROUP_DECL(DSGPM1, D19, B10, C7, D7);
+GROUP_DECL(SGPS, B11, C18, N13, C8);
+GROUP_DECL(I2CF0, F12, E12, J12, G7);
+GROUP_DECL(I2CF1, E9, F9, F8, M13);
+GROUP_DECL(I2CF2, F7, D8, E8, L12);
+GROUP_DECL(CANBUS, G7, G8, G9);
+GROUP_DECL(USBUART, G10, K12);
+GROUP_DECL(HBLED, V24);
+GROUP_DECL(MACLINK0, U21);
+GROUP_DECL(MACLINK1, T24);
+GROUP_DECL(MACLINK2, AC24);
+GROUP_DECL(NCTS2, U21);
+GROUP_DECL(NDCD2, T24);
+GROUP_DECL(NDSR2, V22);
+GROUP_DECL(NRI2, T23);
+GROUP_DECL(NDTR2, AC25);
+GROUP_DECL(NRTS2, AB25);
+GROUP_DECL(SMON0, U21, T24, V22, T23);
+GROUP_DECL(SMON1, AB24, W26, AC25, AB25);
+GROUP_DECL(SGMII, SGMII0);
+//PCIE RC PERST
+GROUP_DECL(PE2SGRSTN, PCIERC2_PERST, E10);
+GROUP_DECL(USB2CUD, PORTC_MODE);
+GROUP_DECL(USB2CD, PORTC_MODE);
+GROUP_DECL(USB2CH, PORTC_MODE);
+GROUP_DECL(USB2CU, PORTC_MODE);
+GROUP_DECL(USB2DD, PORTD_MODE);
+GROUP_DECL(USB2DH, PORTD_MODE);
+
+static struct aspeed_pin_group aspeed_g7_soc1_pingroups[] = {
+	ASPEED_PINCTRL_GROUP(ESPI0),
+	ASPEED_PINCTRL_GROUP(ESPI1),
+	ASPEED_PINCTRL_GROUP(LPC0),
+	ASPEED_PINCTRL_GROUP(LPC1),
+	ASPEED_PINCTRL_GROUP(SD),
+	ASPEED_PINCTRL_GROUP(VPI),
+	ASPEED_PINCTRL_GROUP(OSCCLK),
+	ASPEED_PINCTRL_GROUP(TACH0),
+	ASPEED_PINCTRL_GROUP(TACH1),
+	ASPEED_PINCTRL_GROUP(TACH2),
+	ASPEED_PINCTRL_GROUP(TACH3),
+	ASPEED_PINCTRL_GROUP(THRU0),
+	ASPEED_PINCTRL_GROUP(THRU1),
+	ASPEED_PINCTRL_GROUP(TACH4),
+	ASPEED_PINCTRL_GROUP(TACH5),
+	ASPEED_PINCTRL_GROUP(TACH6),
+	ASPEED_PINCTRL_GROUP(TACH7),
+	ASPEED_PINCTRL_GROUP(NTCS5),
+	ASPEED_PINCTRL_GROUP(NDCD5),
+	ASPEED_PINCTRL_GROUP(NDSR5),
+	ASPEED_PINCTRL_GROUP(NRI5),
+	ASPEED_PINCTRL_GROUP(SALT12),
+	ASPEED_PINCTRL_GROUP(SALT13),
+	ASPEED_PINCTRL_GROUP(SALT14),
+	ASPEED_PINCTRL_GROUP(SALT15),
+	ASPEED_PINCTRL_GROUP(NDTR5),
+	ASPEED_PINCTRL_GROUP(NRTS5),
+	ASPEED_PINCTRL_GROUP(NCTS6),
+	ASPEED_PINCTRL_GROUP(NDCD6),
+	ASPEED_PINCTRL_GROUP(NDSR6),
+	ASPEED_PINCTRL_GROUP(NRI6),
+	ASPEED_PINCTRL_GROUP(NDTR6),
+	ASPEED_PINCTRL_GROUP(NRTS6),
+	ASPEED_PINCTRL_GROUP(TACH8),
+	ASPEED_PINCTRL_GROUP(TACH9),
+	ASPEED_PINCTRL_GROUP(TACH10),
+	ASPEED_PINCTRL_GROUP(TACH11),
+	ASPEED_PINCTRL_GROUP(TACH12),
+	ASPEED_PINCTRL_GROUP(TACH13),
+	ASPEED_PINCTRL_GROUP(TACH14),
+	ASPEED_PINCTRL_GROUP(TACH15),
+	ASPEED_PINCTRL_GROUP(SPIM0),
+	ASPEED_PINCTRL_GROUP(PWM0),
+	ASPEED_PINCTRL_GROUP(PWM1),
+	ASPEED_PINCTRL_GROUP(PWM2),
+	ASPEED_PINCTRL_GROUP(PWM3),
+	ASPEED_PINCTRL_GROUP(PWM4),
+	ASPEED_PINCTRL_GROUP(PWM5),
+	ASPEED_PINCTRL_GROUP(PWM6),
+	ASPEED_PINCTRL_GROUP(PWM7),
+	ASPEED_PINCTRL_GROUP(SIOPBON0),
+	ASPEED_PINCTRL_GROUP(SIOPBIN0),
+	ASPEED_PINCTRL_GROUP(SIOSCIN0),
+	ASPEED_PINCTRL_GROUP(SIOS3N0),
+	ASPEED_PINCTRL_GROUP(SIOS5N0),
+	ASPEED_PINCTRL_GROUP(SIOPWREQN0),
+	ASPEED_PINCTRL_GROUP(SIOONCTRLN0),
+	ASPEED_PINCTRL_GROUP(SIOPWRGD0),
+	ASPEED_PINCTRL_GROUP(NCTS0),
+	ASPEED_PINCTRL_GROUP(NDCD0),
+	ASPEED_PINCTRL_GROUP(NDSR0),
+	ASPEED_PINCTRL_GROUP(NRI0),
+	ASPEED_PINCTRL_GROUP(NDTR0),
+	ASPEED_PINCTRL_GROUP(NRTS0),
+	ASPEED_PINCTRL_GROUP(TXD0),
+	ASPEED_PINCTRL_GROUP(RXD0),
+	ASPEED_PINCTRL_GROUP(NCTS1),
+	ASPEED_PINCTRL_GROUP(NDCD1),
+	ASPEED_PINCTRL_GROUP(NDSR1),
+	ASPEED_PINCTRL_GROUP(NRI1),
+	ASPEED_PINCTRL_GROUP(NDTR1),
+	ASPEED_PINCTRL_GROUP(NRTS1),
+	ASPEED_PINCTRL_GROUP(TXD1),
+	ASPEED_PINCTRL_GROUP(RXD1),
+	ASPEED_PINCTRL_GROUP(TXD2),
+	ASPEED_PINCTRL_GROUP(RXD2),
+	ASPEED_PINCTRL_GROUP(TXD3),
+	ASPEED_PINCTRL_GROUP(RXD3),
+	ASPEED_PINCTRL_GROUP(NCTS5),
+	ASPEED_PINCTRL_GROUP(NDCD5),
+	ASPEED_PINCTRL_GROUP(NDSR5),
+	ASPEED_PINCTRL_GROUP(NRI5),
+	ASPEED_PINCTRL_GROUP(NDTR5),
+	ASPEED_PINCTRL_GROUP(NRTS5),
+	ASPEED_PINCTRL_GROUP(TXD5),
+	ASPEED_PINCTRL_GROUP(RXD5),
+	ASPEED_PINCTRL_GROUP(NCTS6),
+	ASPEED_PINCTRL_GROUP(NDCD6),
+	ASPEED_PINCTRL_GROUP(NDSR6),
+	ASPEED_PINCTRL_GROUP(NRI6),
+	ASPEED_PINCTRL_GROUP(NDTR6),
+	ASPEED_PINCTRL_GROUP(NRTS6),
+	ASPEED_PINCTRL_GROUP(TXD6),
+	ASPEED_PINCTRL_GROUP(RXD6),
+	ASPEED_PINCTRL_GROUP(TXD6),
+	ASPEED_PINCTRL_GROUP(RXD6),
+	ASPEED_PINCTRL_GROUP(TXD7),
+	ASPEED_PINCTRL_GROUP(RXD7),
+	ASPEED_PINCTRL_GROUP(TXD8),
+	ASPEED_PINCTRL_GROUP(RXD8),
+	ASPEED_PINCTRL_GROUP(TXD9),
+	ASPEED_PINCTRL_GROUP(RXD9),
+	ASPEED_PINCTRL_GROUP(TXD10),
+	ASPEED_PINCTRL_GROUP(RXD10),
+	ASPEED_PINCTRL_GROUP(TXD11),
+	ASPEED_PINCTRL_GROUP(RXD11),
+	ASPEED_PINCTRL_GROUP(SPIM1),
+	ASPEED_PINCTRL_GROUP(WDTRST0N),
+	ASPEED_PINCTRL_GROUP(WDTRST1N),
+	ASPEED_PINCTRL_GROUP(WDTRST2N),
+	ASPEED_PINCTRL_GROUP(WDTRST3N),
+	ASPEED_PINCTRL_GROUP(WDTRST4N),
+	ASPEED_PINCTRL_GROUP(WDTRST5N),
+	ASPEED_PINCTRL_GROUP(WDTRST6N),
+	ASPEED_PINCTRL_GROUP(WDTRST7N),
+	ASPEED_PINCTRL_GROUP(PWM8),
+	ASPEED_PINCTRL_GROUP(PWM9),
+	ASPEED_PINCTRL_GROUP(PWM10),
+	ASPEED_PINCTRL_GROUP(PWM11),
+	ASPEED_PINCTRL_GROUP(PWM12),
+	ASPEED_PINCTRL_GROUP(PWM13),
+	ASPEED_PINCTRL_GROUP(PWM14),
+	ASPEED_PINCTRL_GROUP(PWM15),
+	ASPEED_PINCTRL_GROUP(SALT0),
+	ASPEED_PINCTRL_GROUP(SALT1),
+	ASPEED_PINCTRL_GROUP(SALT2),
+	ASPEED_PINCTRL_GROUP(SALT3),
+	ASPEED_PINCTRL_GROUP(FSI0),
+	ASPEED_PINCTRL_GROUP(FSI1),
+	ASPEED_PINCTRL_GROUP(FSI2),
+	ASPEED_PINCTRL_GROUP(FSI3),
+	ASPEED_PINCTRL_GROUP(SPIM2),
+	ASPEED_PINCTRL_GROUP(SALT4),
+	ASPEED_PINCTRL_GROUP(SALT5),
+	ASPEED_PINCTRL_GROUP(SALT6),
+	ASPEED_PINCTRL_GROUP(SALT7),
+	ASPEED_PINCTRL_GROUP(SALT8),
+	ASPEED_PINCTRL_GROUP(SALT9),
+	ASPEED_PINCTRL_GROUP(SALT10),
+	ASPEED_PINCTRL_GROUP(SALT11),
+	ASPEED_PINCTRL_GROUP(ADC0),
+	ASPEED_PINCTRL_GROUP(ADC1),
+	ASPEED_PINCTRL_GROUP(ADC2),
+	ASPEED_PINCTRL_GROUP(ADC3),
+	ASPEED_PINCTRL_GROUP(ADC4),
+	ASPEED_PINCTRL_GROUP(ADC5),
+	ASPEED_PINCTRL_GROUP(ADC6),
+	ASPEED_PINCTRL_GROUP(ADC7),
+	ASPEED_PINCTRL_GROUP(ADC8),
+	ASPEED_PINCTRL_GROUP(ADC9),
+	ASPEED_PINCTRL_GROUP(ADC10),
+	ASPEED_PINCTRL_GROUP(ADC11),
+	ASPEED_PINCTRL_GROUP(ADC12),
+	ASPEED_PINCTRL_GROUP(ADC13),
+	ASPEED_PINCTRL_GROUP(ADC14),
+	ASPEED_PINCTRL_GROUP(ADC15),
+	ASPEED_PINCTRL_GROUP(AUXPWRGOOD0),
+	ASPEED_PINCTRL_GROUP(AUXPWRGOOD1),
+	ASPEED_PINCTRL_GROUP(SGPM0),
+	ASPEED_PINCTRL_GROUP(SGPM1),
+	ASPEED_PINCTRL_GROUP(I2C0),
+	ASPEED_PINCTRL_GROUP(I2C1),
+	ASPEED_PINCTRL_GROUP(I2C2),
+	ASPEED_PINCTRL_GROUP(I2C3),
+	ASPEED_PINCTRL_GROUP(I2C4),
+	ASPEED_PINCTRL_GROUP(I2C5),
+	ASPEED_PINCTRL_GROUP(I2C6),
+	ASPEED_PINCTRL_GROUP(I2C7),
+	ASPEED_PINCTRL_GROUP(I2C8),
+	ASPEED_PINCTRL_GROUP(I2C9),
+	ASPEED_PINCTRL_GROUP(I2C10),
+	ASPEED_PINCTRL_GROUP(I2C11),
+	ASPEED_PINCTRL_GROUP(I2C12),
+	ASPEED_PINCTRL_GROUP(I2C13),
+	ASPEED_PINCTRL_GROUP(I2C14),
+	ASPEED_PINCTRL_GROUP(I2C15),
+	ASPEED_PINCTRL_GROUP(DI2C0),
+	ASPEED_PINCTRL_GROUP(DI2C1),
+	ASPEED_PINCTRL_GROUP(DI2C2),
+	ASPEED_PINCTRL_GROUP(DI2C3),
+	ASPEED_PINCTRL_GROUP(DI2C8),
+	ASPEED_PINCTRL_GROUP(DI2C9),
+	ASPEED_PINCTRL_GROUP(DI2C10),
+	ASPEED_PINCTRL_GROUP(DI2C11),
+	ASPEED_PINCTRL_GROUP(DI2C12),
+	ASPEED_PINCTRL_GROUP(DI2C13),
+	ASPEED_PINCTRL_GROUP(DI2C14),
+	ASPEED_PINCTRL_GROUP(DI2C15),
+	ASPEED_PINCTRL_GROUP(SIOPBON1),
+	ASPEED_PINCTRL_GROUP(SIOPBIN1),
+	ASPEED_PINCTRL_GROUP(SIOSCIN1),
+	ASPEED_PINCTRL_GROUP(SIOS3N1),
+	ASPEED_PINCTRL_GROUP(SIOS5N1),
+	ASPEED_PINCTRL_GROUP(SIOPWREQN1),
+	ASPEED_PINCTRL_GROUP(SIOONCTRLN1),
+	ASPEED_PINCTRL_GROUP(SIOPWRGD1),
+	ASPEED_PINCTRL_GROUP(HVI3C12),
+	ASPEED_PINCTRL_GROUP(HVI3C13),
+	ASPEED_PINCTRL_GROUP(HVI3C14),
+	ASPEED_PINCTRL_GROUP(HVI3C15),
+	ASPEED_PINCTRL_GROUP(I3C4),
+	ASPEED_PINCTRL_GROUP(I3C5),
+	ASPEED_PINCTRL_GROUP(I3C6),
+	ASPEED_PINCTRL_GROUP(I3C7),
+	ASPEED_PINCTRL_GROUP(I3C8),
+	ASPEED_PINCTRL_GROUP(I3C9),
+	ASPEED_PINCTRL_GROUP(I3C10),
+	ASPEED_PINCTRL_GROUP(I3C11),
+	ASPEED_PINCTRL_GROUP(HVI3C0),
+	ASPEED_PINCTRL_GROUP(HVI3C1),
+	ASPEED_PINCTRL_GROUP(HVI3C2),
+	ASPEED_PINCTRL_GROUP(HVI3C3),
+	ASPEED_PINCTRL_GROUP(LTPI),
+	ASPEED_PINCTRL_GROUP(SPI0),
+	ASPEED_PINCTRL_GROUP(QSPI0),
+	ASPEED_PINCTRL_GROUP(SPI0CS1),
+	ASPEED_PINCTRL_GROUP(SPI0ABR),
+	ASPEED_PINCTRL_GROUP(SPI0WPN),
+	ASPEED_PINCTRL_GROUP(SPI1),
+	ASPEED_PINCTRL_GROUP(QSPI1),
+	ASPEED_PINCTRL_GROUP(SPI1CS1),
+	ASPEED_PINCTRL_GROUP(SPI1ABR),
+	ASPEED_PINCTRL_GROUP(SPI1WPN),
+	ASPEED_PINCTRL_GROUP(SPI2),
+	ASPEED_PINCTRL_GROUP(QSPI2),
+	ASPEED_PINCTRL_GROUP(SPI2CS1),
+	ASPEED_PINCTRL_GROUP(THRU2),
+	ASPEED_PINCTRL_GROUP(THRU3),
+	ASPEED_PINCTRL_GROUP(JTAGM1),
+	ASPEED_PINCTRL_GROUP(MDIO0),
+	ASPEED_PINCTRL_GROUP(MDIO1),
+	ASPEED_PINCTRL_GROUP(MDIO2),
+	ASPEED_PINCTRL_GROUP(FWQSPI),
+	ASPEED_PINCTRL_GROUP(FWSPIABR),
+	ASPEED_PINCTRL_GROUP(FWSPIWPN),
+	ASPEED_PINCTRL_GROUP(RGMII0),
+	ASPEED_PINCTRL_GROUP(RGMII1),
+	ASPEED_PINCTRL_GROUP(RMII0),
+	ASPEED_PINCTRL_GROUP(RMII0RCLKO),
+	ASPEED_PINCTRL_GROUP(RMII1),
+	ASPEED_PINCTRL_GROUP(RMII1RCLKO),
+	ASPEED_PINCTRL_GROUP(VGA),
+	ASPEED_PINCTRL_GROUP(DSGPM1),
+	ASPEED_PINCTRL_GROUP(SGPS),
+	ASPEED_PINCTRL_GROUP(I2CF0),
+	ASPEED_PINCTRL_GROUP(I2CF1),
+	ASPEED_PINCTRL_GROUP(I2CF2),
+	ASPEED_PINCTRL_GROUP(CANBUS),
+	ASPEED_PINCTRL_GROUP(USBUART),
+	ASPEED_PINCTRL_GROUP(HBLED),
+	ASPEED_PINCTRL_GROUP(MACLINK0),
+	ASPEED_PINCTRL_GROUP(MACLINK1),
+	ASPEED_PINCTRL_GROUP(MACLINK2),
+	ASPEED_PINCTRL_GROUP(NCTS2),
+	ASPEED_PINCTRL_GROUP(NDCD2),
+	ASPEED_PINCTRL_GROUP(NDSR2),
+	ASPEED_PINCTRL_GROUP(NRI2),
+	ASPEED_PINCTRL_GROUP(NDTR2),
+	ASPEED_PINCTRL_GROUP(NRTS2),
+	ASPEED_PINCTRL_GROUP(SMON0),
+	ASPEED_PINCTRL_GROUP(SMON1),
+	ASPEED_PINCTRL_GROUP(SGMII),
+	ASPEED_PINCTRL_GROUP(PE2SGRSTN),
+	ASPEED_PINCTRL_GROUP(USB2CUD),
+	ASPEED_PINCTRL_GROUP(USB2CD),
+	ASPEED_PINCTRL_GROUP(USB2CH),
+	ASPEED_PINCTRL_GROUP(USB2CU),
+	ASPEED_PINCTRL_GROUP(USB2DD),
+	ASPEED_PINCTRL_GROUP(USB2DH),
+};
+
+FUNC_DECL_(ESPI0, "ESPI0");
+FUNC_DECL_(ESPI1, "ESPI1");
+FUNC_DECL_(LPC0, "LPC0");
+FUNC_DECL_(LPC1, "LPC1");
+FUNC_DECL_(VPI, "VPI");
+FUNC_DECL_(SD, "SD");
+FUNC_DECL_(OSCCLK, "OSCCLK");
+FUNC_DECL_(TACH0, "TACH0");
+FUNC_DECL_(TACH1, "TACH1");
+FUNC_DECL_(TACH2, "TACH2");
+FUNC_DECL_(TACH3, "TACH3");
+FUNC_DECL_(TACH4, "TACH4");
+FUNC_DECL_(TACH5, "TACH5");
+FUNC_DECL_(TACH6, "TACH6");
+FUNC_DECL_(TACH7, "TACH7");
+FUNC_DECL_(THRU0, "THRU0");
+FUNC_DECL_(THRU1, "THRU1");
+FUNC_DECL_(NTCS5, "NTCS5");
+FUNC_DECL_(NDSR5, "NDSR5");
+FUNC_DECL_(NRI5, "NRI5");
+FUNC_DECL_(TACH8, "TACH8");
+FUNC_DECL_(TACH9, "TACH9");
+FUNC_DECL_(TACH10, "TACH10");
+FUNC_DECL_(TACH11, "TACH11");
+FUNC_DECL_(TACH12, "TACH12");
+FUNC_DECL_(TACH13, "TACH13");
+FUNC_DECL_(TACH14, "TACH14");
+FUNC_DECL_(TACH15, "TACH15");
+FUNC_DECL_(SALT12, "SALT12");
+FUNC_DECL_(SALT13, "SALT13");
+FUNC_DECL_(SALT14, "SALT14");
+FUNC_DECL_(SALT15, "SALT15");
+FUNC_DECL_(SPIM0, "SPIM0");
+FUNC_DECL_(PWM0, "PWM0");
+FUNC_DECL_(PWM1, "PWM1");
+FUNC_DECL_(PWM2, "PWM2");
+FUNC_DECL_(PWM3, "PWM3");
+FUNC_DECL_(PWM4, "PWM4");
+FUNC_DECL_(PWM5, "PWM5");
+FUNC_DECL_(PWM6, "PWM6");
+FUNC_DECL_(PWM7, "PWM7");
+FUNC_DECL_(SIOPBON0, "SIOPBON0");
+FUNC_DECL_(SIOPBIN0, "SIOPBIN0");
+FUNC_DECL_(SIOSCIN0, "SIOSCIN0");
+FUNC_DECL_(SIOS3N0, "SIOS3N0");
+FUNC_DECL_(SIOS5N0, "SIOS5N0");
+FUNC_DECL_(SIOPWREQN0, "SIOPWREQN0");
+FUNC_DECL_(SIOONCTRLN0, "SIOONCTRLN0");
+FUNC_DECL_(SIOPWRGD0, "SIOPWRGD0");
+FUNC_DECL_(UART0, "NCTS0", "NDCD0", "NDSR0", "NRI0", "NDTR0", "NRTS0", "TXD0", "RXD0");
+FUNC_DECL_(UART1, "NCTS1", "NDCD1", "NDSR1", "NRI1", "NDTR1", "NRTS1", "TXD1", "RXD1");
+FUNC_DECL_(UART2, "TXD2", "RXD2");
+FUNC_DECL_(UART3, "TXD3", "RXD3");
+FUNC_DECL_(UART5, "NCTS5", "NDCD5", "NDSR5", "NRI5", "NDTR5", "NRTS5", "TXD5", "RXD5");
+FUNC_DECL_(UART6, "NCTS6", "NDCD6", "NDSR6", "NRI6", "NDTR6", "NRTS6", "TXD6", "RXD6");
+FUNC_DECL_(UART7, "TXD7", "RXD7");
+FUNC_DECL_(UART8, "TXD8", "RXD8");
+FUNC_DECL_(UART9, "TXD9", "RXD9");
+FUNC_DECL_(UART10, "TXD10", "RXD10");
+FUNC_DECL_(UART11, "TXD11", "RXD11");
+FUNC_DECL_(SPIM1, "SPIM1");
+FUNC_DECL_(SPIM2, "SPIM2");
+FUNC_DECL_(PWM8, "PWM8");
+FUNC_DECL_(PWM9, "PWM9");
+FUNC_DECL_(PWM10, "PWM10");
+FUNC_DECL_(PWM11, "PWM11");
+FUNC_DECL_(PWM12, "PWM12");
+FUNC_DECL_(PWM13, "PWM13");
+FUNC_DECL_(PWM14, "PWM14");
+FUNC_DECL_(PWM15, "PWM15");
+FUNC_DECL_(WDTRST0N, "WDTRST0N");
+FUNC_DECL_(WDTRST1N, "WDTRST1N");
+FUNC_DECL_(WDTRST2N, "WDTRST2N");
+FUNC_DECL_(WDTRST3N, "WDTRST3N");
+FUNC_DECL_(WDTRST4N, "WDTRST4N");
+FUNC_DECL_(WDTRST5N, "WDTRST5N");
+FUNC_DECL_(WDTRST6N, "WDTRST6N");
+FUNC_DECL_(WDTRST7N, "WDTRST7N");
+FUNC_DECL_(FSI0, "FSI0");
+FUNC_DECL_(FSI1, "FSI1");
+FUNC_DECL_(FSI2, "FSI2");
+FUNC_DECL_(FSI3, "FSI3");
+FUNC_DECL_(SALT0, "SALT0");
+FUNC_DECL_(SALT1, "SALT1");
+FUNC_DECL_(SALT2, "SALT2");
+FUNC_DECL_(SALT3, "SALT3");
+FUNC_DECL_(SALT4, "SALT4");
+FUNC_DECL_(SALT5, "SALT5");
+FUNC_DECL_(SALT6, "SALT6");
+FUNC_DECL_(SALT7, "SALT7");
+FUNC_DECL_(SALT8, "SALT8");
+FUNC_DECL_(SALT9, "SALT9");
+FUNC_DECL_(SALT10, "SALT10");
+FUNC_DECL_(SALT11, "SALT11");
+FUNC_DECL_(ADC0, "ADC0");
+FUNC_DECL_(ADC1, "ADC1");
+FUNC_DECL_(ADC2, "ADC2");
+FUNC_DECL_(ADC3, "ADC3");
+FUNC_DECL_(ADC4, "ADC4");
+FUNC_DECL_(ADC5, "ADC5");
+FUNC_DECL_(ADC6, "ADC6");
+FUNC_DECL_(ADC7, "ADC7");
+FUNC_DECL_(ADC8, "ADC8");
+FUNC_DECL_(ADC9, "ADC9");
+FUNC_DECL_(ADC10, "ADC10");
+FUNC_DECL_(ADC11, "ADC11");
+FUNC_DECL_(ADC12, "ADC12");
+FUNC_DECL_(ADC13, "ADC13");
+FUNC_DECL_(ADC14, "ADC14");
+FUNC_DECL_(ADC15, "ADC15");
+FUNC_DECL_(AUXPWRGOOD0, "AUXPWRGOOD0");
+FUNC_DECL_(AUXPWRGOOD1, "AUXPWRGOOD1");
+FUNC_DECL_(SGPM0, "SGPM0");
+FUNC_DECL_(SGPM1, "SGPM1");
+FUNC_DECL_(I2C0, "I2C0", "DI2C0");
+FUNC_DECL_(I2C1, "I2C1", "DI2C1");
+FUNC_DECL_(I2C2, "I2C2", "DI2C2");
+FUNC_DECL_(I2C3, "I2C3", "DI2C3");
+FUNC_DECL_(I2C4, "I2C4");
+FUNC_DECL_(I2C5, "I2C5");
+FUNC_DECL_(I2C6, "I2C6");
+FUNC_DECL_(I2C7, "I2C7");
+FUNC_DECL_(I2C8, "I2C8", "DI2C8");
+FUNC_DECL_(I2C9, "I2C9", "DI2C9");
+FUNC_DECL_(I2C10, "I2C10", "DI2C10");
+FUNC_DECL_(I2C11, "I2C11", "DI2C11");
+FUNC_DECL_(I2C12, "I2C12", "DI2C12");
+FUNC_DECL_(I2C13, "I2C13", "DI2C13");
+FUNC_DECL_(I2C14, "I2C14", "DI2C14");
+FUNC_DECL_(I2C15, "I2C15", "DI2C15");
+FUNC_DECL_(SIOPBON1, "SIOPBON1");
+FUNC_DECL_(SIOPBIN1, "SIOPBIN1");
+FUNC_DECL_(SIOSCIN1, "SIOSCIN1");
+FUNC_DECL_(SIOS3N1, "SIOS3N1");
+FUNC_DECL_(SIOS5N1, "SIOS5N1");
+FUNC_DECL_(SIOPWREQN1, "SIOPWREQN1");
+FUNC_DECL_(SIOONCTRLN1, "SIOONCTRLN1");
+FUNC_DECL_(SIOPWRGD1, "SIOPWRGD1");
+FUNC_DECL_(I3C0, "HVI3C0");
+FUNC_DECL_(I3C1, "HVI3C1");
+FUNC_DECL_(I3C2, "HVI3C2");
+FUNC_DECL_(I3C3, "HVI3C3");
+FUNC_DECL_(I3C4, "I3C4");
+FUNC_DECL_(I3C5, "I3C5");
+FUNC_DECL_(I3C6, "I3C6");
+FUNC_DECL_(I3C7, "I3C7");
+FUNC_DECL_(I3C8, "I3C8");
+FUNC_DECL_(I3C9, "I3C9");
+FUNC_DECL_(I3C10, "I3C10");
+FUNC_DECL_(I3C11, "I3C11");
+FUNC_DECL_(I3C12, "HVI3C12");
+FUNC_DECL_(I3C13, "HVI3C13");
+FUNC_DECL_(I3C14, "HVI3C14");
+FUNC_DECL_(I3C15, "HVI3C15");
+FUNC_DECL_(LTPI, "LTPI");
+FUNC_DECL_(SPI0, "SPI0");
+FUNC_DECL_(QSPI0, "QSPI0");
+FUNC_DECL_(SPI0CS1, "SPI0CS1");
+FUNC_DECL_(SPI0ABR, "SPI0ABR");
+FUNC_DECL_(SPI0WPN, "SPI0WPN");
+FUNC_DECL_(SPI1, "SPI1");
+FUNC_DECL_(QSPI1, "QSPI1");
+FUNC_DECL_(SPI1CS1, "SPI1CS1");
+FUNC_DECL_(SPI1ABR, "SPI1ABR");
+FUNC_DECL_(SPI1WPN, "SPI1WPN");
+FUNC_DECL_(SPI2, "SPI2");
+FUNC_DECL_(QSPI2, "QSPI2");
+FUNC_DECL_(SPI2CS1, "SPI2CS1");
+FUNC_DECL_(THRU2, "THRU2");
+FUNC_DECL_(THRU3, "THRU3");
+FUNC_DECL_(JTAGM1, "JTAGM1");
+FUNC_DECL_(MDIO0, "MDIO0");
+FUNC_DECL_(MDIO1, "MDIO1");
+FUNC_DECL_(MDIO2, "MDIO2");
+FUNC_DECL_(FWQSPI, "FWQSPI");
+FUNC_DECL_(FWSPIABR, "FWSPIABR");
+FUNC_DECL_(FWSPIWPN, "FWSPIWPN");
+FUNC_DECL_(RGMII0, "RGMII0");
+FUNC_DECL_(RGMII1, "RGMII1");
+FUNC_DECL_(RMII0, "RMII0");
+FUNC_DECL_(RMII0RCLKO, "RMII0RCLKO");
+FUNC_DECL_(RMII1, "RMII1");
+FUNC_DECL_(RMII1RCLKO, "RMII1RCLKO");
+FUNC_DECL_(VGA, "VGA");
+FUNC_DECL_(DSGPM1, "DSGPM1");
+FUNC_DECL_(SGPS, "SGPS");
+FUNC_DECL_(I2CF0, "I2CF0");
+FUNC_DECL_(I2CF1, "I2CF1");
+FUNC_DECL_(I2CF2, "I2CF2");
+FUNC_DECL_(CANBUS, "CANBUS");
+FUNC_DECL_(USBUART, "USBUART");
+FUNC_DECL_(HBLED, "HBLED");
+FUNC_DECL_(MACLINK0, "MACLINK0");
+FUNC_DECL_(MACLINK1, "MACLINK1");
+FUNC_DECL_(MACLINK2, "MACLINK2");
+FUNC_DECL_(SMON0, "SMON0");
+FUNC_DECL_(SMON1, "SMON1");
+FUNC_DECL_(SGMII, "SGMII");
+FUNC_DECL_(PCIERC, "PE2SGRSTN");
+FUNC_DECL_(USB2C, "USB2CUD", "USB2CD", "USB2CH", "USB2CU");
+FUNC_DECL_(USB2D, "USB2DD", "USB2DH");
+
+static struct aspeed_pin_function aspeed_g7_soc1_funcs[] = {
+	ASPEED_PINCTRL_FUNC(ESPI0),
+	ASPEED_PINCTRL_FUNC(ESPI1),
+	ASPEED_PINCTRL_FUNC(LPC0),
+	ASPEED_PINCTRL_FUNC(LPC1),
+	ASPEED_PINCTRL_FUNC(VPI),
+	ASPEED_PINCTRL_FUNC(SD),
+	ASPEED_PINCTRL_FUNC(OSCCLK),
+	ASPEED_PINCTRL_FUNC(TACH0),
+	ASPEED_PINCTRL_FUNC(TACH1),
+	ASPEED_PINCTRL_FUNC(TACH2),
+	ASPEED_PINCTRL_FUNC(TACH3),
+	ASPEED_PINCTRL_FUNC(TACH4),
+	ASPEED_PINCTRL_FUNC(TACH5),
+	ASPEED_PINCTRL_FUNC(TACH6),
+	ASPEED_PINCTRL_FUNC(TACH7),
+	ASPEED_PINCTRL_FUNC(THRU0),
+	ASPEED_PINCTRL_FUNC(THRU1),
+	ASPEED_PINCTRL_FUNC(NTCS5),
+	ASPEED_PINCTRL_FUNC(NTCS5),
+	ASPEED_PINCTRL_FUNC(NDSR5),
+	ASPEED_PINCTRL_FUNC(NRI5),
+	ASPEED_PINCTRL_FUNC(NRI5),
+	ASPEED_PINCTRL_FUNC(SALT12),
+	ASPEED_PINCTRL_FUNC(SALT13),
+	ASPEED_PINCTRL_FUNC(SALT14),
+	ASPEED_PINCTRL_FUNC(SALT15),
+	ASPEED_PINCTRL_FUNC(TACH8),
+	ASPEED_PINCTRL_FUNC(TACH9),
+	ASPEED_PINCTRL_FUNC(TACH10),
+	ASPEED_PINCTRL_FUNC(TACH11),
+	ASPEED_PINCTRL_FUNC(TACH12),
+	ASPEED_PINCTRL_FUNC(TACH13),
+	ASPEED_PINCTRL_FUNC(TACH14),
+	ASPEED_PINCTRL_FUNC(TACH15),
+	ASPEED_PINCTRL_FUNC(SPIM0),
+	ASPEED_PINCTRL_FUNC(PWM0),
+	ASPEED_PINCTRL_FUNC(PWM1),
+	ASPEED_PINCTRL_FUNC(PWM2),
+	ASPEED_PINCTRL_FUNC(PWM3),
+	ASPEED_PINCTRL_FUNC(PWM4),
+	ASPEED_PINCTRL_FUNC(PWM5),
+	ASPEED_PINCTRL_FUNC(PWM6),
+	ASPEED_PINCTRL_FUNC(PWM7),
+	ASPEED_PINCTRL_FUNC(SIOPBON0),
+	ASPEED_PINCTRL_FUNC(SIOPBIN0),
+	ASPEED_PINCTRL_FUNC(SIOSCIN0),
+	ASPEED_PINCTRL_FUNC(SIOS3N0),
+	ASPEED_PINCTRL_FUNC(SIOS5N0),
+	ASPEED_PINCTRL_FUNC(SIOPWREQN0),
+	ASPEED_PINCTRL_FUNC(SIOONCTRLN0),
+	ASPEED_PINCTRL_FUNC(SIOPWRGD0),
+	ASPEED_PINCTRL_FUNC(UART0),
+	ASPEED_PINCTRL_FUNC(UART1),
+	ASPEED_PINCTRL_FUNC(UART2),
+	ASPEED_PINCTRL_FUNC(UART3),
+	ASPEED_PINCTRL_FUNC(UART5),
+	ASPEED_PINCTRL_FUNC(UART6),
+	ASPEED_PINCTRL_FUNC(UART7),
+	ASPEED_PINCTRL_FUNC(UART8),
+	ASPEED_PINCTRL_FUNC(UART9),
+	ASPEED_PINCTRL_FUNC(UART10),
+	ASPEED_PINCTRL_FUNC(UART11),
+	ASPEED_PINCTRL_FUNC(SPIM1),
+	ASPEED_PINCTRL_FUNC(PWM7),
+	ASPEED_PINCTRL_FUNC(PWM8),
+	ASPEED_PINCTRL_FUNC(PWM9),
+	ASPEED_PINCTRL_FUNC(PWM10),
+	ASPEED_PINCTRL_FUNC(PWM11),
+	ASPEED_PINCTRL_FUNC(PWM12),
+	ASPEED_PINCTRL_FUNC(PWM13),
+	ASPEED_PINCTRL_FUNC(PWM14),
+	ASPEED_PINCTRL_FUNC(PWM15),
+	ASPEED_PINCTRL_FUNC(WDTRST0N),
+	ASPEED_PINCTRL_FUNC(WDTRST1N),
+	ASPEED_PINCTRL_FUNC(WDTRST2N),
+	ASPEED_PINCTRL_FUNC(WDTRST3N),
+	ASPEED_PINCTRL_FUNC(WDTRST4N),
+	ASPEED_PINCTRL_FUNC(WDTRST5N),
+	ASPEED_PINCTRL_FUNC(WDTRST6N),
+	ASPEED_PINCTRL_FUNC(WDTRST7N),
+	ASPEED_PINCTRL_FUNC(FSI0),
+	ASPEED_PINCTRL_FUNC(FSI1),
+	ASPEED_PINCTRL_FUNC(FSI2),
+	ASPEED_PINCTRL_FUNC(FSI3),
+	ASPEED_PINCTRL_FUNC(SALT0),
+	ASPEED_PINCTRL_FUNC(SALT1),
+	ASPEED_PINCTRL_FUNC(SALT2),
+	ASPEED_PINCTRL_FUNC(SALT3),
+	ASPEED_PINCTRL_FUNC(SALT4),
+	ASPEED_PINCTRL_FUNC(SALT5),
+	ASPEED_PINCTRL_FUNC(SALT6),
+	ASPEED_PINCTRL_FUNC(SALT7),
+	ASPEED_PINCTRL_FUNC(SALT8),
+	ASPEED_PINCTRL_FUNC(SALT9),
+	ASPEED_PINCTRL_FUNC(SALT10),
+	ASPEED_PINCTRL_FUNC(SALT11),
+	ASPEED_PINCTRL_FUNC(ADC0),
+	ASPEED_PINCTRL_FUNC(ADC1),
+	ASPEED_PINCTRL_FUNC(ADC2),
+	ASPEED_PINCTRL_FUNC(ADC3),
+	ASPEED_PINCTRL_FUNC(ADC4),
+	ASPEED_PINCTRL_FUNC(ADC5),
+	ASPEED_PINCTRL_FUNC(ADC6),
+	ASPEED_PINCTRL_FUNC(ADC7),
+	ASPEED_PINCTRL_FUNC(ADC8),
+	ASPEED_PINCTRL_FUNC(ADC9),
+	ASPEED_PINCTRL_FUNC(ADC10),
+	ASPEED_PINCTRL_FUNC(ADC11),
+	ASPEED_PINCTRL_FUNC(ADC12),
+	ASPEED_PINCTRL_FUNC(ADC13),
+	ASPEED_PINCTRL_FUNC(ADC14),
+	ASPEED_PINCTRL_FUNC(ADC15),
+	ASPEED_PINCTRL_FUNC(AUXPWRGOOD0),
+	ASPEED_PINCTRL_FUNC(AUXPWRGOOD1),
+	ASPEED_PINCTRL_FUNC(SGPM0),
+	ASPEED_PINCTRL_FUNC(SGPM1),
+	ASPEED_PINCTRL_FUNC(SPIM2),
+	ASPEED_PINCTRL_FUNC(I2C0),
+	ASPEED_PINCTRL_FUNC(I2C1),
+	ASPEED_PINCTRL_FUNC(I2C2),
+	ASPEED_PINCTRL_FUNC(I2C3),
+	ASPEED_PINCTRL_FUNC(I2C4),
+	ASPEED_PINCTRL_FUNC(I2C5),
+	ASPEED_PINCTRL_FUNC(I2C6),
+	ASPEED_PINCTRL_FUNC(I2C7),
+	ASPEED_PINCTRL_FUNC(I2C8),
+	ASPEED_PINCTRL_FUNC(I2C9),
+	ASPEED_PINCTRL_FUNC(I2C10),
+	ASPEED_PINCTRL_FUNC(I2C11),
+	ASPEED_PINCTRL_FUNC(I2C12),
+	ASPEED_PINCTRL_FUNC(I2C13),
+	ASPEED_PINCTRL_FUNC(I2C14),
+	ASPEED_PINCTRL_FUNC(I2C15),
+	ASPEED_PINCTRL_FUNC(SIOPBON1),
+	ASPEED_PINCTRL_FUNC(SIOPBIN1),
+	ASPEED_PINCTRL_FUNC(SIOSCIN1),
+	ASPEED_PINCTRL_FUNC(SIOS3N1),
+	ASPEED_PINCTRL_FUNC(SIOS5N1),
+	ASPEED_PINCTRL_FUNC(SIOPWREQN1),
+	ASPEED_PINCTRL_FUNC(SIOONCTRLN1),
+	ASPEED_PINCTRL_FUNC(SIOPWRGD1),
+	ASPEED_PINCTRL_FUNC(I3C0),
+	ASPEED_PINCTRL_FUNC(I3C1),
+	ASPEED_PINCTRL_FUNC(I3C2),
+	ASPEED_PINCTRL_FUNC(I3C3),
+	ASPEED_PINCTRL_FUNC(I3C4),
+	ASPEED_PINCTRL_FUNC(I3C5),
+	ASPEED_PINCTRL_FUNC(I3C6),
+	ASPEED_PINCTRL_FUNC(I3C7),
+	ASPEED_PINCTRL_FUNC(I3C8),
+	ASPEED_PINCTRL_FUNC(I3C9),
+	ASPEED_PINCTRL_FUNC(I3C10),
+	ASPEED_PINCTRL_FUNC(I3C11),
+	ASPEED_PINCTRL_FUNC(I3C12),
+	ASPEED_PINCTRL_FUNC(I3C13),
+	ASPEED_PINCTRL_FUNC(I3C14),
+	ASPEED_PINCTRL_FUNC(I3C15),
+	ASPEED_PINCTRL_FUNC(LTPI),
+	ASPEED_PINCTRL_FUNC(SPI0),
+	ASPEED_PINCTRL_FUNC(QSPI0),
+	ASPEED_PINCTRL_FUNC(SPI0CS1),
+	ASPEED_PINCTRL_FUNC(SPI0ABR),
+	ASPEED_PINCTRL_FUNC(SPI0WPN),
+	ASPEED_PINCTRL_FUNC(SPI1),
+	ASPEED_PINCTRL_FUNC(QSPI1),
+	ASPEED_PINCTRL_FUNC(SPI1CS1),
+	ASPEED_PINCTRL_FUNC(SPI1ABR),
+	ASPEED_PINCTRL_FUNC(SPI1WPN),
+	ASPEED_PINCTRL_FUNC(SPI2),
+	ASPEED_PINCTRL_FUNC(QSPI2),
+	ASPEED_PINCTRL_FUNC(SPI2CS1),
+	ASPEED_PINCTRL_FUNC(THRU2),
+	ASPEED_PINCTRL_FUNC(THRU3),
+	ASPEED_PINCTRL_FUNC(JTAGM1),
+	ASPEED_PINCTRL_FUNC(MDIO0),
+	ASPEED_PINCTRL_FUNC(MDIO1),
+	ASPEED_PINCTRL_FUNC(MDIO2),
+	ASPEED_PINCTRL_FUNC(FWQSPI),
+	ASPEED_PINCTRL_FUNC(FWSPIABR),
+	ASPEED_PINCTRL_FUNC(FWSPIWPN),
+	ASPEED_PINCTRL_FUNC(RGMII0),
+	ASPEED_PINCTRL_FUNC(RGMII1),
+	ASPEED_PINCTRL_FUNC(RMII0),
+	ASPEED_PINCTRL_FUNC(RMII0RCLKO),
+	ASPEED_PINCTRL_FUNC(RMII1),
+	ASPEED_PINCTRL_FUNC(RMII1RCLKO),
+	ASPEED_PINCTRL_FUNC(VGA),
+	ASPEED_PINCTRL_FUNC(DSGPM1),
+	ASPEED_PINCTRL_FUNC(SGPS),
+	ASPEED_PINCTRL_FUNC(I2CF0),
+	ASPEED_PINCTRL_FUNC(I2CF1),
+	ASPEED_PINCTRL_FUNC(I2CF2),
+	ASPEED_PINCTRL_FUNC(CANBUS),
+	ASPEED_PINCTRL_FUNC(USBUART),
+	ASPEED_PINCTRL_FUNC(HBLED),
+	ASPEED_PINCTRL_FUNC(MACLINK0),
+	ASPEED_PINCTRL_FUNC(MACLINK1),
+	ASPEED_PINCTRL_FUNC(MACLINK2),
+	ASPEED_PINCTRL_FUNC(SMON0),
+	ASPEED_PINCTRL_FUNC(SMON1),
+	ASPEED_PINCTRL_FUNC(SGMII),
+	ASPEED_PINCTRL_FUNC(PCIERC),
+	ASPEED_PINCTRL_FUNC(USB2C),
+	ASPEED_PINCTRL_FUNC(USB2D),
+};
+
+/* number, name, drv_data */
+static const struct pinctrl_pin_desc aspeed_g7_soc1_pins[] = {
+	PINCTRL_PIN(C16, "C16"),
+	PINCTRL_PIN(C14, "C14"),
+	PINCTRL_PIN(C11, "C11"),
+	PINCTRL_PIN(D9, "D9"),
+	PINCTRL_PIN(F14, "F14"),
+	PINCTRL_PIN(D10, "D10"),
+	PINCTRL_PIN(C12, "C12"),
+	PINCTRL_PIN(C13, "C13"),
+	PINCTRL_PIN(AC26, "AC26"),
+	PINCTRL_PIN(AA25, "AA25"),
+	PINCTRL_PIN(AB23, "AB23"),
+	PINCTRL_PIN(U22, "U22"),
+	PINCTRL_PIN(V21, "V21"),
+	PINCTRL_PIN(N26, "N26"),
+	PINCTRL_PIN(P25, "P25"),
+	PINCTRL_PIN(N25, "N25"),
+	PINCTRL_PIN(V23, "V23"),
+	PINCTRL_PIN(W22, "W22"),
+	PINCTRL_PIN(AB26, "AB26"),
+	PINCTRL_PIN(AD26, "AD26"),
+	PINCTRL_PIN(P26, "P26"),
+	PINCTRL_PIN(AE26, "AE26"),
+	PINCTRL_PIN(AF26, "AF26"),
+	PINCTRL_PIN(AF25, "AF25"),
+	PINCTRL_PIN(AE25, "AE25"),
+	PINCTRL_PIN(AD25, "AD25"),
+	PINCTRL_PIN(AF23, "AF23"),
+	PINCTRL_PIN(AF20, "AF20"),
+	PINCTRL_PIN(AF21, "AF21"),
+	PINCTRL_PIN(AE21, "AE21"),
+	PINCTRL_PIN(AE23, "AE23"),
+	PINCTRL_PIN(AD22, "AD22"),
+	PINCTRL_PIN(AF17, "AF17"),
+	PINCTRL_PIN(AA16, "AA16"),
+	PINCTRL_PIN(Y16, "Y16"),
+	PINCTRL_PIN(V17, "V17"),
+	PINCTRL_PIN(J13, "J13"),
+	PINCTRL_PIN(AB16, "AB16"),
+	PINCTRL_PIN(AC16, "AC16"),
+	PINCTRL_PIN(AF16, "AF16"),
+	PINCTRL_PIN(AA15, "AA15"),
+	PINCTRL_PIN(AB15, "AB15"),
+	PINCTRL_PIN(AC15, "AC15"),
+	PINCTRL_PIN(AD15, "AD15"),
+	PINCTRL_PIN(Y15, "Y15"),
+	PINCTRL_PIN(AA14, "AA14"),
+	PINCTRL_PIN(W16, "W16"),
+	PINCTRL_PIN(V16, "V16"),
+	PINCTRL_PIN(AB18, "AB18"),
+	PINCTRL_PIN(AC18, "AC18"),
+	PINCTRL_PIN(K13, "K13"),
+	PINCTRL_PIN(AA17, "AA17"),
+	PINCTRL_PIN(AB17, "AB17"),
+	PINCTRL_PIN(AD16, "AD16"),
+	PINCTRL_PIN(AC17, "AC17"),
+	PINCTRL_PIN(AD17, "AD17"),
+	PINCTRL_PIN(AE16, "AE16"),
+	PINCTRL_PIN(AE17, "AE17"),
+	PINCTRL_PIN(AB24, "AB24"),
+	PINCTRL_PIN(W26, "W26"),
+	PINCTRL_PIN(HOLE0, "HOLE0"),
+	PINCTRL_PIN(HOLE1, "HOLE1"),
+	PINCTRL_PIN(HOLE2, "HOLE2"),
+	PINCTRL_PIN(HOLE3, "HOLE3"),
+	PINCTRL_PIN(W25, "W25"),
+	PINCTRL_PIN(Y23, "Y23"),
+	PINCTRL_PIN(Y24, "Y24"),
+	PINCTRL_PIN(W21, "W21"),
+	PINCTRL_PIN(AA23, "AA23"),
+	PINCTRL_PIN(AC22, "AC22"),
+	PINCTRL_PIN(AB22, "AB22"),
+	PINCTRL_PIN(Y21, "Y21"),
+	PINCTRL_PIN(AE20, "AE20"),
+	PINCTRL_PIN(AF19, "AF19"),
+	PINCTRL_PIN(Y22, "Y22"),
+	PINCTRL_PIN(AA20, "AA20"),
+	PINCTRL_PIN(AA22, "AA22"),
+	PINCTRL_PIN(AB20, "AB20"),
+	PINCTRL_PIN(AF18, "AF18"),
+	PINCTRL_PIN(AE19, "AE19"),
+	PINCTRL_PIN(AD20, "AD20"),
+	PINCTRL_PIN(AC20, "AC20"),
+	PINCTRL_PIN(AA21, "AA21"),
+	PINCTRL_PIN(AB21, "AB21"),
+	PINCTRL_PIN(AC19, "AC19"),
+	PINCTRL_PIN(AE18, "AE18"),
+	PINCTRL_PIN(AD19, "AD19"),
+	PINCTRL_PIN(AD18, "AD18"),
+	PINCTRL_PIN(U25, "U25"),
+	PINCTRL_PIN(U26, "U26"),
+	PINCTRL_PIN(Y26, "Y26"),
+	PINCTRL_PIN(AA24, "AA24"),
+	PINCTRL_PIN(R25, "R25"),
+	PINCTRL_PIN(AA26, "AA26"),
+	PINCTRL_PIN(R26, "R26"),
+	PINCTRL_PIN(Y25, "Y25"),
+	PINCTRL_PIN(B16, "B16"),
+	PINCTRL_PIN(D14, "D14"),
+	PINCTRL_PIN(B15, "B15"),
+	PINCTRL_PIN(B14, "B14"),
+	PINCTRL_PIN(C17, "C17"),
+	PINCTRL_PIN(B13, "B13"),
+	PINCTRL_PIN(E14, "E14"),
+	PINCTRL_PIN(C15, "C15"),
+	PINCTRL_PIN(D24, "D24"),
+	PINCTRL_PIN(B23, "B23"),
+	PINCTRL_PIN(B22, "B22"),
+	PINCTRL_PIN(C23, "C23"),
+	PINCTRL_PIN(B18, "B18"),
+	PINCTRL_PIN(B21, "B21"),
+	PINCTRL_PIN(M15, "M15"),
+	PINCTRL_PIN(B19, "B19"),
+	PINCTRL_PIN(B26, "B26"),
+	PINCTRL_PIN(A25, "A25"),
+	PINCTRL_PIN(A24, "A24"),
+	PINCTRL_PIN(B24, "B24"),
+	PINCTRL_PIN(E26, "E26"),
+	PINCTRL_PIN(A21, "A21"),
+	PINCTRL_PIN(A19, "A19"),
+	PINCTRL_PIN(A18, "A18"),
+	PINCTRL_PIN(D26, "D26"),
+	PINCTRL_PIN(C26, "C26"),
+	PINCTRL_PIN(A23, "A23"),
+	PINCTRL_PIN(A22, "A22"),
+	PINCTRL_PIN(B25, "B25"),
+	PINCTRL_PIN(F26, "F26"),
+	PINCTRL_PIN(A26, "A26"),
+	PINCTRL_PIN(A14, "A14"),
+	PINCTRL_PIN(E10, "E10"),
+	PINCTRL_PIN(E13, "E13"),
+	PINCTRL_PIN(D12, "D12"),
+	PINCTRL_PIN(F10, "F10"),
+	PINCTRL_PIN(E11, "E11"),
+	PINCTRL_PIN(F11, "F11"),
+	PINCTRL_PIN(F13, "F13"),
+	PINCTRL_PIN(N15, "N15"),
+	PINCTRL_PIN(C20, "C20"),
+	PINCTRL_PIN(C19, "C19"),
+	PINCTRL_PIN(A8, "A8"),
+	PINCTRL_PIN(R14, "R14"),
+	PINCTRL_PIN(A7, "A7"),
+	PINCTRL_PIN(P14, "P14"),
+	PINCTRL_PIN(D20, "D20"),
+	PINCTRL_PIN(A6, "A6"),
+	PINCTRL_PIN(B6, "B6"),
+	PINCTRL_PIN(N14, "N14"),
+	PINCTRL_PIN(B7, "B7"),
+	PINCTRL_PIN(B8, "B8"),
+	PINCTRL_PIN(B9, "B9"),
+	PINCTRL_PIN(M14, "M14"),
+	PINCTRL_PIN(J11, "J11"),
+	PINCTRL_PIN(E7, "E7"),
+	PINCTRL_PIN(D19, "D19"),
+	PINCTRL_PIN(B11, "B11"),
+	PINCTRL_PIN(D15, "D15"),
+	PINCTRL_PIN(B12, "B12"),
+	PINCTRL_PIN(B10, "B10"),
+	PINCTRL_PIN(P13, "P13"),
+	PINCTRL_PIN(C18, "C18"),
+	PINCTRL_PIN(C6, "C6"),
+	PINCTRL_PIN(C7, "C7"),
+	PINCTRL_PIN(D7, "D7"),
+	PINCTRL_PIN(N13, "N13"),
+	PINCTRL_PIN(C8, "C8"),
+	PINCTRL_PIN(C9, "C9"),
+	PINCTRL_PIN(C10, "C10"),
+	PINCTRL_PIN(M16, "M16"),
+	PINCTRL_PIN(A15, "A15"),
+	PINCTRL_PIN(G11, "G11"),
+	PINCTRL_PIN(H7, "H7"),
+	PINCTRL_PIN(H8, "H8"),
+	PINCTRL_PIN(H9, "H9"),
+	PINCTRL_PIN(H10, "H10"),
+	PINCTRL_PIN(H11, "H11"),
+	PINCTRL_PIN(J9, "J9"),
+	PINCTRL_PIN(J10, "J10"),
+	PINCTRL_PIN(E9, "E9"),
+	PINCTRL_PIN(F9, "F9"),
+	PINCTRL_PIN(F8, "F8"),
+	PINCTRL_PIN(M13, "M13"),
+	PINCTRL_PIN(F7, "F7"),
+	PINCTRL_PIN(D8, "D8"),
+	PINCTRL_PIN(E8, "E8"),
+	PINCTRL_PIN(L12, "L12"),
+	PINCTRL_PIN(F12, "F12"),
+	PINCTRL_PIN(E12, "E12"),
+	PINCTRL_PIN(J12, "J12"),
+	PINCTRL_PIN(G7, "G7"),
+	PINCTRL_PIN(G8, "G8"),
+	PINCTRL_PIN(G9, "G9"),
+	PINCTRL_PIN(G10, "G10"),
+	PINCTRL_PIN(K12, "K12"),
+	PINCTRL_PIN(W17, "W17"),
+	PINCTRL_PIN(V18, "V18"),
+	PINCTRL_PIN(W18, "W18"),
+	PINCTRL_PIN(Y17, "Y17"),
+	PINCTRL_PIN(AA18, "AA18"),
+	PINCTRL_PIN(AA13, "AA13"),
+	PINCTRL_PIN(Y18, "Y18"),
+	PINCTRL_PIN(AA12, "AA12"),
+	PINCTRL_PIN(W20, "W20"),
+	PINCTRL_PIN(V20, "V20"),
+	PINCTRL_PIN(Y11, "Y11"),
+	PINCTRL_PIN(V14, "V14"),
+	PINCTRL_PIN(V19, "V19"),
+	PINCTRL_PIN(W14, "W14"),
+	PINCTRL_PIN(Y20, "Y20"),
+	PINCTRL_PIN(AB19, "AB19"),
+	PINCTRL_PIN(U21, "U21"),
+	PINCTRL_PIN(T24, "T24"),
+	PINCTRL_PIN(V24, "V24"),
+	PINCTRL_PIN(V22, "V22"),
+	PINCTRL_PIN(T23, "T23"),
+	PINCTRL_PIN(AC25, "AC25"),
+	PINCTRL_PIN(AB25, "AB25"),
+	PINCTRL_PIN(AC24, "AC24"),
+	PINCTRL_PIN(SGMII0, "SGMII0"),
+	PINCTRL_PIN(PCIERC2_PERST, "PCIERC2_PERST"),
+	PINCTRL_PIN(PORTC_MODE, "PORTC_MODE"),
+	PINCTRL_PIN(PORTD_MODE, "PORTD_MODE"),
+};
+
+FUNCFG_DESCL(C16, PIN_CFG(ESPI1, SCU400, GENMASK(2, 0), 1),
+	     PIN_CFG(LPC1, SCU400, GENMASK(2, 0), 2),
+	     PIN_CFG(SD, SCU400, GENMASK(2, 0), 3),
+	     PIN_CFG(DI2C0, SCU400, GENMASK(2, 0), 4),
+	     PIN_CFG(VPI, SCU400, GENMASK(2, 0), 5));
+FUNCFG_DESCL(C14, PIN_CFG(ESPI1, SCU400, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(6, 4), (2 << 4)),
+	     PIN_CFG(SD, SCU400, GENMASK(6, 4), (3 << 4)),
+	     PIN_CFG(DI2C1, SCU400, GENMASK(6, 4), (4 << 4)),
+	     PIN_CFG(VPI, SCU400, GENMASK(6, 4), (5 << 4)));
+FUNCFG_DESCL(C11, PIN_CFG(ESPI1, SCU400, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(SD, SCU400, GENMASK(10, 8), (3 << 8)),
+	     PIN_CFG(DI2C3, SCU400, GENMASK(10, 8), (4 << 8)),
+	     PIN_CFG(VPI, SCU400, GENMASK(10, 8), (5 << 8)));
+FUNCFG_DESCL(D9, PIN_CFG(ESPI1, SCU400, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(SD, SCU400, GENMASK(14, 12), (3 << 12)),
+	     PIN_CFG(DI2C0, SCU400, GENMASK(14, 12), (4 << 12)),
+	     PIN_CFG(VPI, SCU400, GENMASK(14, 12), (5 << 12)));
+FUNCFG_DESCL(F14, PIN_CFG(ESPI1, SCU400, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(SD, SCU400, GENMASK(18, 16), (3 << 16)),
+	     PIN_CFG(DI2C1, SCU400, GENMASK(18, 16), (4 << 16)),
+	     PIN_CFG(VPI, SCU400, GENMASK(18, 16), (5 << 16)));
+FUNCFG_DESCL(D10, PIN_CFG(ESPI1, SCU400, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(22, 20), (2 << 20)),
+	     PIN_CFG(SD, SCU400, GENMASK(22, 20), (3 << 20)),
+	     PIN_CFG(DI2C2, SCU400, GENMASK(22, 20), (4 << 20)),
+	     PIN_CFG(VPI, SCU400, GENMASK(22, 20), (5 << 20)));
+FUNCFG_DESCL(C12, PIN_CFG(ESPI1, SCU400, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(26, 24), (2 << 24)),
+	     PIN_CFG(SD, SCU400, GENMASK(26, 24), (3 << 24)),
+	     PIN_CFG(DI2C2, SCU400, GENMASK(26, 24), (4 << 24)));
+FUNCFG_DESCL(C13, PIN_CFG(ESPI1, SCU400, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(LPC1, SCU400, GENMASK(30, 28), (2 << 28)),
+	     PIN_CFG(SD, SCU400, GENMASK(30, 28), (3 << 28)),
+	     PIN_CFG(DI2C3, SCU400, GENMASK(30, 28), (4 << 28)));
+FUNCFG_DESCL(AC26, PIN_CFG(TACH0, SCU404, GENMASK(2, 0), 1),
+	     PIN_CFG(THRU0, SCU404, GENMASK(2, 0), 2),
+	     PIN_CFG(VPI, SCU404, GENMASK(2, 0), 3));
+FUNCFG_DESCL(AA25, PIN_CFG(TACH1, SCU404, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(THRU0, SCU404, GENMASK(6, 4), (2 << 4)),
+	     PIN_CFG(VPI, SCU404, GENMASK(6, 4), (3 << 4)));
+FUNCFG_DESCL(AB23, PIN_CFG(TACH2, SCU404, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(THRU1, SCU404, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(VPI, SCU404, GENMASK(10, 8), (3 << 8)));
+FUNCFG_DESCL(U22, PIN_CFG(TACH3, SCU404, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(THRU1, SCU404, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(VPI, SCU404, GENMASK(14, 12), (3 << 12)));
+FUNCFG_DESCL(V21, PIN_CFG(TACH4, SCU404, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(VPI, SCU404, GENMASK(18, 16), (3 << 16)),
+	     PIN_CFG(NCTS5, SCU404, GENMASK(18, 16), (4 << 16)));
+FUNCFG_DESCL(N26, PIN_CFG(TACH5, SCU404, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(VPI, SCU404, GENMASK(22, 20), (3 << 20)),
+	     PIN_CFG(NDCD5, SCU404, GENMASK(22, 20), (4 << 20)));
+FUNCFG_DESCL(P25, PIN_CFG(TACH6, SCU404, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(VPI, SCU404, GENMASK(26, 24), (3 << 24)),
+	     PIN_CFG(NDSR5, SCU404, GENMASK(26, 24), (4 << 24)));
+FUNCFG_DESCL(N25, PIN_CFG(TACH7, SCU404, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(VPI, SCU404, GENMASK(30, 28), (3 << 28)),
+	     PIN_CFG(NRI5, SCU404, GENMASK(30, 28), (4 << 28)));
+FUNCFG_DESCL(V23, PIN_CFG(TACH8, SCU408, GENMASK(2, 0), 1),
+	     PIN_CFG(VPI, SCU408, GENMASK(2, 0), 3),
+	     PIN_CFG(NDTR5, SCU408, GENMASK(2, 0), 4));
+FUNCFG_DESCL(W22, PIN_CFG(TACH9, SCU408, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(VPI, SCU408, GENMASK(6, 4), (3 << 4)),
+	     PIN_CFG(NRTS5, SCU408, GENMASK(6, 4), (4 << 4)));
+FUNCFG_DESCL(AB26, PIN_CFG(TACH10, SCU408, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(SALT12, SCU408, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(VPI, SCU408, GENMASK(10, 8), (3 << 8)),
+	     PIN_CFG(NCTS6, SCU408, GENMASK(10, 8), (4 << 8)));
+FUNCFG_DESCL(AD26, PIN_CFG(TACH11, SCU408, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SALT13, SCU408, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(VPI, SCU408, GENMASK(14, 12), (3 << 12)),
+	     PIN_CFG(NDCD6, SCU408, GENMASK(14, 12), (4 << 12)));
+FUNCFG_DESCL(P26, PIN_CFG(TACH12, SCU408, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(SALT14, SCU408, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(VPI, SCU408, GENMASK(18, 16), (3 << 16)),
+	     PIN_CFG(NDSR6, SCU408, GENMASK(18, 16), (4 << 16)));
+FUNCFG_DESCL(AE26, PIN_CFG(TACH13, SCU408, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(SALT15, SCU408, GENMASK(22, 20), (2 << 20)),
+	     PIN_CFG(VPI, SCU408, GENMASK(22, 20), (3 << 20)),
+	     PIN_CFG(NRI6, SCU408, GENMASK(22, 20), (4 << 20)));
+FUNCFG_DESCL(AF26, PIN_CFG(TACH14, SCU408, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(LPC0, SCU408, GENMASK(26, 24), (2 << 24)),
+	     PIN_CFG(VPI, SCU408, GENMASK(26, 24), (3 << 24)),
+	     PIN_CFG(NDTR6, SCU408, GENMASK(26, 24), (4 << 24)));
+FUNCFG_DESCL(AF25, PIN_CFG(TACH15, SCU408, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(LPC0, SCU408, GENMASK(30, 28), (2 << 28)),
+	     PIN_CFG(VPI, SCU408, GENMASK(30, 28), (3 << 28)),
+	     PIN_CFG(NRTS6, SCU408, GENMASK(30, 28), (4 << 28)));
+FUNCFG_DESCL(AE25, PIN_CFG(PWM0, SCU40C, GENMASK(2, 0), 1),
+	     PIN_CFG(SIOPBON0, SCU40C, GENMASK(2, 0), 2),
+	     PIN_CFG(VPI, SCU40C, GENMASK(2, 0), 3),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(2, 0), 4));
+FUNCFG_DESCL(AD25, PIN_CFG(PWM1, SCU40C, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(SIOPBIN0, SCU40C, GENMASK(6, 4), (2 << 4)),
+	     PIN_CFG(VPI, SCU40C, GENMASK(6, 4), (3 << 4)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(6, 4), (4 << 4)));
+FUNCFG_DESCL(AF23, PIN_CFG(PWM2, SCU40C, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(SIOSCIN0, SCU40C, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(VPI, SCU40C, GENMASK(10, 8), (3 << 8)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(10, 8), (4 << 8)));
+FUNCFG_DESCL(AF20, PIN_CFG(PWM3, SCU40C, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SIOS3N0, SCU40C, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(VPI, SCU40C, GENMASK(14, 12), (3 << 12)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(14, 12), (4 << 12)));
+FUNCFG_DESCL(AF21, PIN_CFG(PWM4, SCU40C, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(SIOS5N0, SCU40C, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(VPI, SCU40C, GENMASK(18, 16), (3 << 16)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(18, 16), (4 << 16)));
+FUNCFG_DESCL(AE21, PIN_CFG(PWM5, SCU40C, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(SIOPWREQN0, SCU40C, GENMASK(22, 20), (2 << 20)),
+	     PIN_CFG(VPI, SCU40C, GENMASK(22, 20), (3 << 20)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(22, 20), (4 << 20)));
+FUNCFG_DESCL(AE23, PIN_CFG(PWM6, SCU40C, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(SIOONCTRLN0, SCU40C, GENMASK(26, 24), (2 << 24)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(26, 24), (4 << 24)));
+FUNCFG_DESCL(AD22, PIN_CFG(PWM7, SCU40C, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(SPIM0, SCU40C, GENMASK(30, 28), (4 << 28)));
+FUNCFG_DESCL(AF17, PIN_CFG(NCTS0, SCU410, GENMASK(2, 0), 1),
+	     PIN_CFG(SIOPBON1, SCU410, GENMASK(2, 0), 2));
+FUNCFG_DESCL(AA16, PIN_CFG(NDCD0, SCU410, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(SIOPBIN1, SCU410, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(Y16, PIN_CFG(NDSR0, SCU410, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(SIOSCIN1, SCU410, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(V17, PIN_CFG(NRI0, SCU410, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SIOS3N1, SCU410, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(J13, PIN_CFG(NDTR0, SCU410, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(SIOS5N1, SCU410, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(AB16, PIN_CFG(NRTS0, SCU410, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(SIOPWREQN1, SCU410, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(AC16, PIN_CFG(TXD0, SCU410, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(AF16, PIN_CFG(RXD0, SCU410, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(AA15, PIN_CFG(NCTS1, SCU414, GENMASK(2, 0), 1),
+	     PIN_CFG(SIOONCTRLN1, SCU414, GENMASK(2, 0), 2));
+FUNCFG_DESCL(AB15, PIN_CFG(NDCD1, SCU414, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(SIOPWRGD1, SCU414, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(AC15, PIN_CFG(NDSR1, SCU414, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(SALT2, SCU414, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(AD15, PIN_CFG(NRI1, SCU414, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SALT3, SCU414, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(Y15, PIN_CFG(NDTR1, SCU414, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(AA14, PIN_CFG(NRTS1, SCU414, GENMASK(22, 20), (1 << 20)));
+FUNCFG_DESCL(W16, PIN_CFG(TXD1, SCU414, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(V16, PIN_CFG(RXD1, SCU414, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(AB18, PIN_CFG(TXD2, SCU418, GENMASK(2, 0), 1));
+FUNCFG_DESCL(AC18, PIN_CFG(RXD2, SCU418, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(I2C12, SCU418, GENMASK(6, 4), (4 << 4)));
+FUNCFG_DESCL(K13, PIN_CFG(TXD3, SCU418, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(WDTRST0N, SCU418, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(PWM8, SCU418, GENMASK(10, 8), (3 << 8)),
+	     PIN_CFG(SPIM1, SCU418, GENMASK(10, 8), (5 << 8)));
+FUNCFG_DESCL(AA17, PIN_CFG(RXD3, SCU418, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(WDTRST1N, SCU418, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(PWM9, SCU418, GENMASK(14, 12), (3 << 12)),
+	     PIN_CFG(I2C12, SCU418, GENMASK(14, 12), (4 << 12)),
+	     PIN_CFG(SPIM1, SCU418, GENMASK(14, 12), (5 << 12)));
+FUNCFG_DESCL(AB17, PIN_CFG(TXD5, SCU418, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(WDTRST2N, SCU418, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(PWM10, SCU418, GENMASK(18, 16), (3 << 16)),
+	     PIN_CFG(I2C13, SCU418, GENMASK(18, 16), (4 << 16)),
+	     PIN_CFG(SPIM1, SCU418, GENMASK(18, 16), (5 << 16)));
+FUNCFG_DESCL(AD16, PIN_CFG(RXD5, SCU418, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(WDTRST3N, SCU418, GENMASK(22, 20), (2 << 20)),
+	     PIN_CFG(PWM11, SCU418, GENMASK(22, 20), (3 << 20)),
+	     PIN_CFG(I2C13, SCU418, GENMASK(22, 20), (4 << 20)),
+	     PIN_CFG(SPIM1, SCU418, GENMASK(22, 20), (5 << 20)));
+FUNCFG_DESCL(AC17, PIN_CFG(TXD6, SCU418, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(SALT0, SCU418, GENMASK(26, 24), (2 << 24)),
+	     PIN_CFG(PWM12, SCU418, GENMASK(26, 24), (3 << 24)),
+	     PIN_CFG(I2C14, SCU418, GENMASK(26, 24), (4 << 24)),
+	     PIN_CFG(SPIM1, SCU418, GENMASK(26, 24), (5 << 24)));
+FUNCFG_DESCL(AD17, PIN_CFG(RXD6, SCU418, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(SALT1, SCU418, GENMASK(30, 28), (2 << 28)),
+	     PIN_CFG(PWM13, SCU418, GENMASK(30, 28), (3 << 28)),
+	     PIN_CFG(I2C14, SCU418, GENMASK(30, 28), (4 << 28)),
+	     PIN_CFG(SPIM1, SCU418, GENMASK(30, 28), (5 << 28)));
+FUNCFG_DESCL(AE16, PIN_CFG(TXD7, SCU41C, GENMASK(2, 0), 1),
+	     PIN_CFG(I2C15, SCU41C, GENMASK(2, 0), 2),
+	     PIN_CFG(PWM14, SCU41C, GENMASK(2, 0), 3),
+	     PIN_CFG(LPC1, SCU41C, GENMASK(2, 0), 4),
+	     PIN_CFG(SPIM1, SCU41C, GENMASK(2, 0), 5));
+FUNCFG_DESCL(AE17, PIN_CFG(RXD7, SCU41C, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(I2C15, SCU41C, GENMASK(6, 4), (2 << 4)),
+	     PIN_CFG(PWM15, SCU41C, GENMASK(6, 4), (3 << 4)),
+	     PIN_CFG(LPC1, SCU41C, GENMASK(6, 4), (4 << 4)),
+	     PIN_CFG(SPIM1, SCU41C, GENMASK(6, 4), (5 << 4)));
+FUNCFG_DESCL(AB24, PIN_CFG(SGPM1, SCU41C, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(WDTRST7N, SCU41C, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(PESGWAKEN, SCU41C, GENMASK(10, 8), (3 << 8)),
+	     PIN_CFG(SMON1, SCU41C, GENMASK(10, 8), (5 << 8)));
+FUNCFG_DESCL(W26, PIN_CFG(SGPM1, SCU41C, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SMON1, SCU41C, GENMASK(14, 12), (5 << 12)));
+FUNCFG_DESCL(HOLE0);
+FUNCFG_DESCL(HOLE1);
+FUNCFG_DESCL(HOLE2);
+FUNCFG_DESCL(HOLE3);
+FUNCFG_DESCL(W25, PIN_CFG(HVI3C12, SCU420, GENMASK(2, 0), 1),
+	     PIN_CFG(DI2C12, SCU420, GENMASK(2, 0), 2));
+FUNCFG_DESCL(Y23, PIN_CFG(HVI3C12, SCU420, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(DI2C12, SCU420, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(Y24, PIN_CFG(HVI3C13, SCU420, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(DI2C13, SCU420, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(W21, PIN_CFG(HVI3C13, SCU420, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(DI2C13, SCU420, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(AA23, PIN_CFG(HVI3C14, SCU420, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(DI2C14, SCU420, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(AC22, PIN_CFG(HVI3C14, SCU420, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(DI2C14, SCU420, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(AB22, PIN_CFG(HVI3C15, SCU420, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(DI2C15, SCU420, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(Y21, PIN_CFG(HVI3C15, SCU420, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(DI2C15, SCU420, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(AE20, PIN_CFG(I3C4, SCU424, GENMASK(2, 0), 1));
+FUNCFG_DESCL(AF19, PIN_CFG(I3C4, SCU424, GENMASK(6, 4), (1 << 4)));
+FUNCFG_DESCL(Y22, PIN_CFG(I3C5, SCU424, GENMASK(10, 8), (1 << 8)));
+FUNCFG_DESCL(AA20, PIN_CFG(I3C5, SCU424, GENMASK(14, 12), (1 << 12)));
+FUNCFG_DESCL(AA22, PIN_CFG(I3C6, SCU424, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(AB20, PIN_CFG(I3C6, SCU424, GENMASK(22, 20), (1 << 20)));
+FUNCFG_DESCL(AF18, PIN_CFG(I3C7, SCU424, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(AE19, PIN_CFG(I3C7, SCU424, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(AD20, PIN_CFG(I3C8, SCU428, GENMASK(2, 0), 1),
+	     PIN_CFG(FSI0, SCU428, GENMASK(2, 0), 2));
+FUNCFG_DESCL(AC20, PIN_CFG(I3C8, SCU428, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(FSI0, SCU428, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(AA21, PIN_CFG(I3C9, SCU428, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(FSI1, SCU428, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(AB21, PIN_CFG(I3C9, SCU428, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(FSI1, SCU428, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(AC19, PIN_CFG(I3C10, SCU428, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(FSI2, SCU428, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(AE18, PIN_CFG(I3C10, SCU428, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(FSI2, SCU428, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(AD19, PIN_CFG(I3C11, SCU428, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(FSI3, SCU428, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(AD18, PIN_CFG(I3C11, SCU428, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(FSI3, SCU428, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(U25, PIN_CFG(HVI3C0, SCU42C, GENMASK(2, 0), 1),
+	     PIN_CFG(DI2C8, SCU42C, GENMASK(2, 0), 2));
+FUNCFG_DESCL(U26, PIN_CFG(HVI3C0, SCU42C, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(DI2C8, SCU42C, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(Y26, PIN_CFG(HVI3C1, SCU42C, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(DI2C9, SCU42C, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(AA24, PIN_CFG(HVI3C1, SCU42C, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(DI2C9, SCU42C, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(R25, PIN_CFG(HVI3C2, SCU42C, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(DI2C10, SCU42C, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(AA26, PIN_CFG(HVI3C2, SCU42C, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(DI2C10, SCU42C, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(R26, PIN_CFG(HVI3C3, SCU42C, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(DI2C11, SCU42C, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(Y25, PIN_CFG(HVI3C3, SCU42C, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(DI2C11, SCU42C, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(B16, PIN_CFG(ESPI0, SCU430, GENMASK(2, 0), 1),
+	     PIN_CFG(LPC0, SCU430, GENMASK(2, 0), 2));
+FUNCFG_DESCL(D14, PIN_CFG(ESPI0, SCU430, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(B15, PIN_CFG(ESPI0, SCU430, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(B14, PIN_CFG(ESPI0, SCU430, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(C17, PIN_CFG(ESPI0, SCU430, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(OSCCLK, SCU430, GENMASK(18, 16), (3 << 16)));
+FUNCFG_DESCL(B13, PIN_CFG(ESPI0, SCU430, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(E14, PIN_CFG(ESPI0, SCU430, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(C15, PIN_CFG(ESPI0, SCU430, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(LPC0, SCU430, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(D24, PIN_CFG(SPI0, SCU434, GENMASK(2, 0), 1));
+FUNCFG_DESCL(B23, PIN_CFG(SPI0, SCU434, GENMASK(6, 4), (1 << 4)));
+FUNCFG_DESCL(B22, PIN_CFG(SPI0, SCU434, GENMASK(10, 8), (1 << 8)));
+FUNCFG_DESCL(C23, PIN_CFG(QSPI0, SCU434, GENMASK(14, 12), (1 << 12)));
+FUNCFG_DESCL(B18, PIN_CFG(QSPI0, SCU434, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(B21, PIN_CFG(SPI0CS1, SCU434, GENMASK(22, 20), (1 << 20)));
+FUNCFG_DESCL(M15, PIN_CFG(SPI0ABR, SCU434, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(TXD8, SCU434, GENMASK(26, 24), (3 << 24)));
+FUNCFG_DESCL(B19, PIN_CFG(SPI0WPN, SCU434, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(RXD8, SCU434, GENMASK(30, 28), (3 << 28)));
+FUNCFG_DESCL(B26, PIN_CFG(SPI1, SCU438, GENMASK(2, 0), 1),
+	     PIN_CFG(TXD9, SCU438, GENMASK(2, 0), 3));
+FUNCFG_DESCL(A25, PIN_CFG(SPI1, SCU438, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(RXD9, SCU438, GENMASK(6, 4), (3 << 4)));
+FUNCFG_DESCL(A24, PIN_CFG(SPI1, SCU438, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(TXD10, SCU438, GENMASK(10, 8), (3 << 8)));
+FUNCFG_DESCL(B24, PIN_CFG(QSPI1, SCU438, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(RXD10, SCU438, GENMASK(14, 12), (3 << 12)));
+FUNCFG_DESCL(E26, PIN_CFG(QSPI1, SCU438, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(TXD11, SCU438, GENMASK(18, 16), (3 << 16)));
+FUNCFG_DESCL(A21, PIN_CFG(SPI1CS1, SCU438, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(RXD11, SCU438, GENMASK(22, 20), (3 << 20)));
+FUNCFG_DESCL(A19, PIN_CFG(SPI1ABR, SCU438, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(THRU2, SCU438, GENMASK(26, 24), (4 << 24)));
+FUNCFG_DESCL(A18, PIN_CFG(SPI1WPN, SCU438, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(THRU2, SCU438, GENMASK(30, 28), (4 << 28)));
+FUNCFG_DESCL(D26, PIN_CFG(SPI2, SCU43C, GENMASK(2, 0), 1));
+FUNCFG_DESCL(C26, PIN_CFG(SPI2, SCU43C, GENMASK(6, 4), (1 << 4)));
+FUNCFG_DESCL(A23, PIN_CFG(SPI2, SCU43C, GENMASK(10, 8), (1 << 8)));
+FUNCFG_DESCL(A22, PIN_CFG(SPI2, SCU43C, GENMASK(14, 12), (1 << 12)));
+FUNCFG_DESCL(B25, PIN_CFG(QSPI2, SCU43C, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(THRU3, SCU43C, GENMASK(18, 16), (4 << 16)));
+FUNCFG_DESCL(F26, PIN_CFG(QSPI2, SCU43C, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(THRU3, SCU43C, GENMASK(22, 20), (4 << 20)));
+FUNCFG_DESCL(A26, PIN_CFG(SPI2CS1, SCU43C, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(A14, PIN_CFG(FWSPIABR, SCU43C, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(E10, PIN_CFG(MDIO2, SCU440, GENMASK(2, 0), 1),
+	     PIN_CFG(PE2SGRSTN, SCU440, GENMASK(2, 0), 2));
+FUNCFG_DESCL(E13, PIN_CFG(MDIO2, SCU440, GENMASK(6, 4), (1 << 4)));
+FUNCFG_DESCL(D12, PIN_CFG(JTAGM1, SCU440, GENMASK(10, 8), (1 << 8)));
+FUNCFG_DESCL(F10, PIN_CFG(JTAGM1, SCU440, GENMASK(14, 12), (1 << 12)));
+FUNCFG_DESCL(E11, PIN_CFG(JTAGM1, SCU440, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(F11, PIN_CFG(JTAGM1, SCU440, GENMASK(22, 20), (1 << 20)));
+FUNCFG_DESCL(F13, PIN_CFG(JTAGM1, SCU440, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(N15, PIN_CFG(FWSPIWPEN, SCU440, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(C20, PIN_CFG(RGMII0, SCU444, GENMASK(2, 0), 1),
+	     PIN_CFG(RMII0, SCU444, GENMASK(2, 0), 2));
+FUNCFG_DESCL(C19, PIN_CFG(RGMII0, SCU444, GENMASK(6, 4), (1 << 4)));
+FUNCFG_DESCL(A8, PIN_CFG(RGMII0, SCU444, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(RMII0, SCU444, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(R14, PIN_CFG(RGMII0, SCU444, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(RMII0, SCU444, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(A7, PIN_CFG(RGMII0, SCU444, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(RMII0, SCU444, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(P14, PIN_CFG(RGMII0, SCU444, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(RMII0, SCU444, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(D20, PIN_CFG(RGMII0, SCU444, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(RMII0RCLKO, SCU444, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(A6, PIN_CFG(RGMII0, SCU444, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(RMII0, SCU444, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(B6, PIN_CFG(RGMII0, SCU448, GENMASK(2, 0), 1),
+	     PIN_CFG(RMII0, SCU448, GENMASK(2, 0), 2));
+FUNCFG_DESCL(N14, PIN_CFG(RGMII0, SCU448, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(RMII0, SCU448, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(B7, PIN_CFG(RGMII0, SCU448, GENMASK(10, 8), (1 << 8)));
+FUNCFG_DESCL(B8, PIN_CFG(RGMII0, SCU448, GENMASK(14, 12), (1 << 12)));
+FUNCFG_DESCL(B9, PIN_CFG(MDIO0, SCU448, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(M14, PIN_CFG(MDIO0, SCU448, GENMASK(22, 20), (1 << 20)));
+FUNCFG_DESCL(J11, PIN_CFG(VGA, SCU448, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(E7, PIN_CFG(VGA, SCU448, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(D19, PIN_CFG(RGMII1, SCU44C, GENMASK(2, 0), 1),
+	     PIN_CFG(RMII1, SCU44C, GENMASK(2, 0), 2),
+	     PIN_CFG(DSGPM1, SCU44C, GENMASK(2, 0), 4));
+FUNCFG_DESCL(B11, PIN_CFG(RGMII1, SCU44C, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(SGPS, SCU44C, GENMASK(6, 4), (5 << 4)));
+FUNCFG_DESCL(D15, PIN_CFG(RGMII1, SCU44C, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(RMII1, SCU44C, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(TXD3, SCU44C, GENMASK(10, 8), (4 << 8)));
+FUNCFG_DESCL(B12, PIN_CFG(RGMII1, SCU44C, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(RMII1, SCU44C, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(RXD3, SCU44C, GENMASK(14, 12), (4 << 12)));
+FUNCFG_DESCL(B10, PIN_CFG(RGMII1, SCU44C, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(RMII1, SCU44C, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(DSGPM1, SCU44C, GENMASK(18, 16), (4 << 16)));
+FUNCFG_DESCL(P13, PIN_CFG(RGMII1, SCU44C, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(RMII1, SCU44C, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(C18, PIN_CFG(RGMII1, SCU44C, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(RMII1RCLKO, SCU44C, GENMASK(26, 24), (2 << 24)),
+	     PIN_CFG(SGPS, SCU44C, GENMASK(26, 24), (5 << 24)));
+FUNCFG_DESCL(C6, PIN_CFG(RGMII1, SCU44C, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(RMII1, SCU44C, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(C7, PIN_CFG(RGMII1, SCU450, GENMASK(2, 0), 1),
+	     PIN_CFG(RMII1, SCU450, GENMASK(2, 0), 2),
+	     PIN_CFG(DSGPM1, SCU450, GENMASK(2, 0), 4));
+FUNCFG_DESCL(D7, PIN_CFG(RGMII1, SCU450, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(RMII1, SCU450, GENMASK(6, 4), (2 << 4)),
+	     PIN_CFG(DSGPM1, SCU450, GENMASK(6, 4), (4 << 4)));
+FUNCFG_DESCL(N13, PIN_CFG(RGMII1, SCU450, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(SGPS, SCU450, GENMASK(10, 8), (5 << 8)));
+FUNCFG_DESCL(C8, PIN_CFG(RGMII1, SCU450, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SGPS, SCU450, GENMASK(14, 12), (5 << 12)));
+FUNCFG_DESCL(C9, PIN_CFG(MDIO1, SCU450, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(C10, PIN_CFG(MDIO1, SCU450, GENMASK(22, 20), (1 << 20)));
+FUNCFG_DESCL(M16, PIN_CFG(FWQSPI, SCU450, GENMASK(26, 24), (1 << 24)));
+FUNCFG_DESCL(A15, PIN_CFG(FWQSPI, SCU450, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(G11, PIN_CFG(I2C0, SCU454, GENMASK(2, 0), 1),
+	     PIN_CFG(LTPI_I2C0, SCU454, GENMASK(2, 0), 2));
+FUNCFG_DESCL(H7, PIN_CFG(I2C0, SCU454, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(LTPI_I2C0, SCU454, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(H8, PIN_CFG(I2C1, SCU454, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(LTPI_I2C1, SCU454, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(H9, PIN_CFG(I2C1, SCU454, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(LTPI_I2C1, SCU454, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(H10, PIN_CFG(I2C2, SCU454, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(LTPI_I2C2, SCU454, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(H11, PIN_CFG(I2C2, SCU454, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(LTPI_I2C2, SCU454, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(J9, PIN_CFG(I2C3, SCU454, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(LTPI_I2C3, SCU454, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(J10, PIN_CFG(I2C3, SCU454, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(LTPI_I2C3, SCU454, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(E9, PIN_CFG(I2C4, SCU458, GENMASK(2, 0), 1),
+	     PIN_CFG(I2CF1, SCU458, GENMASK(2, 0), 5));
+FUNCFG_DESCL(F9, PIN_CFG(I2C4, SCU458, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(I2CF1, SCU458, GENMASK(6, 4), (5 << 4)));
+FUNCFG_DESCL(F8, PIN_CFG(I2C5, SCU458, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(I2CF1, SCU458, GENMASK(10, 8), (5 << 8)));
+FUNCFG_DESCL(M13, PIN_CFG(I2C5, SCU458, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(I2CF1, SCU458, GENMASK(14, 12), (5 << 12)));
+FUNCFG_DESCL(F7, PIN_CFG(I2C6, SCU458, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(I2CF2, SCU458, GENMASK(18, 16), (5 << 16)));
+FUNCFG_DESCL(D8, PIN_CFG(I2C6, SCU458, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(I2CF2, SCU458, GENMASK(22, 20), (5 << 20)));
+FUNCFG_DESCL(E8, PIN_CFG(I2C7, SCU458, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(I2CF2, SCU458, GENMASK(26, 24), (5 << 24)));
+FUNCFG_DESCL(L12, PIN_CFG(I2C7, SCU458, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(I2CF2, SCU458, GENMASK(30, 28), (5 << 28)));
+FUNCFG_DESCL(F12, PIN_CFG(I2C8, SCU45C, GENMASK(2, 0), 1),
+	     PIN_CFG(I2CF0, SCU45C, GENMASK(2, 0), 5));
+FUNCFG_DESCL(E12, PIN_CFG(I2C8, SCU45C, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(I2CF0, SCU45C, GENMASK(6, 4), (5 << 4)));
+FUNCFG_DESCL(J12, PIN_CFG(I2C9, SCU45C, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(I2CF0, SCU45C, GENMASK(10, 8), (5 << 8)));
+FUNCFG_DESCL(G7, PIN_CFG(I2C9, SCU45C, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(CANBUS, SCU45C, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(I2CF0, SCU45C, GENMASK(14, 12), (5 << 12)));
+FUNCFG_DESCL(G8, PIN_CFG(I2C10, SCU45C, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(CANBUS, SCU45C, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(G9, PIN_CFG(I2C10, SCU45C, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(CANBUS, SCU45C, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(G10, PIN_CFG(I2C11, SCU45C, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(USBUART, SCU45C, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(K12, PIN_CFG(I2C11, SCU45C, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(USBUART, SCU45C, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(W17, PIN_CFG(ADC0, SCU460, GENMASK(2, 0), 0),
+	     PIN_CFG(GPIY0, SCU460, GENMASK(2, 0), 1),
+	     PIN_CFG(SALT4, SCU460, GENMASK(2, 0), 2));
+FUNCFG_DESCL(V18, PIN_CFG(ADC1, SCU460, GENMASK(6, 4), 0),
+	     PIN_CFG(GPIY1, SCU460, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(SALT5, SCU460, GENMASK(6, 4), (2 << 4)));
+FUNCFG_DESCL(W18, PIN_CFG(ADC2, SCU460, GENMASK(10, 8), 0),
+	     PIN_CFG(GPIY2, SCU460, GENMASK(10, 8), (1 << 8)),
+	     PIN_CFG(SALT6, SCU460, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(Y17, PIN_CFG(ADC3, SCU460, GENMASK(14, 12), 0),
+	     PIN_CFG(GPIY3, SCU460, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SALT7, SCU460, GENMASK(14, 12), (2 << 12)));
+FUNCFG_DESCL(AA18, PIN_CFG(ADC4, SCU460, GENMASK(18, 16), 0),
+	     PIN_CFG(GPIY4, SCU460, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(SALT8, SCU460, GENMASK(18, 16), (2 << 16)));
+FUNCFG_DESCL(AA13, PIN_CFG(ADC5, SCU460, GENMASK(22, 20), 0),
+	     PIN_CFG(GPIY5, SCU460, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(SALT9, SCU460, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(Y18, PIN_CFG(ADC6, SCU460, GENMASK(26, 24), 0),
+	     PIN_CFG(GPIY6, SCU460, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(SALT10, SCU460, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(AA12, PIN_CFG(ADC7, SCU460, GENMASK(30, 28), 0),
+	     PIN_CFG(GPIY7, SCU460, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(SALT11, SCU460, GENMASK(30, 28), (2 << 28)));
+FUNCFG_DESCL(W20, PIN_CFG(ADC8, SCU464, GENMASK(2, 0), 0),
+	     PIN_CFG(GPIZ0, SCU464, GENMASK(2, 0), 1));
+FUNCFG_DESCL(V20, PIN_CFG(ADC9, SCU464, GENMASK(6, 4), 0),
+	     PIN_CFG(GPIZ1, SCU464, GENMASK(6, 4), (1 << 4)));
+FUNCFG_DESCL(Y11, PIN_CFG(ADC10, SCU464, GENMASK(10, 8), 0),
+	     PIN_CFG(GPIZ2, SCU464, GENMASK(10, 8), (1 << 8)));
+FUNCFG_DESCL(V14, PIN_CFG(ADC11, SCU464, GENMASK(14, 12), 0),
+	     PIN_CFG(GPIZ3, SCU464, GENMASK(14, 12), (1 << 12)));
+FUNCFG_DESCL(V19, PIN_CFG(ADC12, SCU464, GENMASK(18, 16), 0),
+	     PIN_CFG(GPIZ4, SCU464, GENMASK(18, 16), (1 << 16)));
+FUNCFG_DESCL(W14, PIN_CFG(ADC13, SCU464, GENMASK(22, 20), 0),
+	     PIN_CFG(GPIZ5, SCU464, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(AUXPWRGOOD0, SCU464, GENMASK(22, 20), (2 << 20)));
+FUNCFG_DESCL(Y20, PIN_CFG(ADC14, SCU464, GENMASK(26, 24), 0),
+	     PIN_CFG(GPIZ6, SCU464, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(AUXPWRGOOD1, SCU464, GENMASK(26, 24), (2 << 24)));
+FUNCFG_DESCL(AB19, PIN_CFG(ADC15, SCU464, GENMASK(30, 28), 0),
+	     PIN_CFG(GPIZ7, SCU464, GENMASK(30, 28), (1 << 28)));
+FUNCFG_DESCL(U21, PIN_CFG(SGPM0, SCU468, GENMASK(2, 0), 1),
+	     PIN_CFG(SMON0, SCU468, GENMASK(2, 0), 2),
+	     PIN_CFG(NCTS2, SCU468, GENMASK(2, 0), 3),
+	     PIN_CFG(MACLINK0, SCU468, GENMASK(2, 0), 4));
+FUNCFG_DESCL(T24, PIN_CFG(SGPM0, SCU468, GENMASK(6, 4), (1 << 4)),
+	     PIN_CFG(SMON0, SCU468, GENMASK(6, 4), (2 << 4)),
+	     PIN_CFG(NDCD2, SCU468, GENMASK(6, 4), (3 << 4)),
+	     PIN_CFG(MACLINK2, SCU468, GENMASK(6, 4), (4 << 4)));
+FUNCFG_DESCL(V24, PIN_CFG(SGPM0LD_R, SCU468, GENMASK(10, 8), (2 << 8)),
+	     PIN_CFG(HBLED, SCU468, GENMASK(10, 8), (2 << 8)));
+FUNCFG_DESCL(V22, PIN_CFG(SGPM0, SCU468, GENMASK(14, 12), (1 << 12)),
+	     PIN_CFG(SMON0, SCU468, GENMASK(14, 12), (2 << 12)),
+	     PIN_CFG(NDSR2, SCU468, GENMASK(14, 12), (3 << 12)));
+FUNCFG_DESCL(T23, PIN_CFG(SGPM0, SCU468, GENMASK(18, 16), (1 << 16)),
+	     PIN_CFG(SMON0, SCU468, GENMASK(18, 16), (2 << 16)),
+	     PIN_CFG(NRI2, SCU468, GENMASK(18, 16), (3 << 16)));
+FUNCFG_DESCL(AC25, PIN_CFG(SGPM1, SCU468, GENMASK(22, 20), (1 << 20)),
+	     PIN_CFG(WDTRST4N, SCU468, GENMASK(22, 20), (2 << 20)),
+	     PIN_CFG(NDTR2, SCU468, GENMASK(22, 20), (3 << 20)),
+	     PIN_CFG(SMON1, SCU468, GENMASK(22, 20), (4 << 20)));
+FUNCFG_DESCL(AB25, PIN_CFG(SGPM1, SCU468, GENMASK(26, 24), (1 << 24)),
+	     PIN_CFG(WDTRST5N, SCU468, GENMASK(26, 24), (2 << 24)),
+	     PIN_CFG(NRTS2, SCU468, GENMASK(26, 24), (3 << 24)),
+	     PIN_CFG(SMON1, SCU468, GENMASK(26, 24), (4 << 24)));
+FUNCFG_DESCL(AC24, PIN_CFG(SGPM1LD_R, SCU468, GENMASK(30, 28), (1 << 28)),
+	     PIN_CFG(WDTRST6N, SCU468, GENMASK(30, 28), (2 << 28)),
+	     PIN_CFG(MACLINK1, SCU468, GENMASK(30, 28), (3 << 28)));
+FUNCFG_DESCL(SGMII0, PIN_CFG(SGMII, SCU47C, BIT(0), 1 << 0));
+FUNCFG_DESCL(PCIERC2_PERST, PIN_CFG(PE2SGRSTN, SCU908, BIT(1), 1 << 1));
+FUNCFG_DESCL(PORTC_MODE, PIN_CFG(USB2CUD, SCU3B0, GENMASK(1, 0), 0),
+	     PIN_CFG(USB2CD, SCU3B0, GENMASK(1, 0), 1 << 0),
+	     PIN_CFG(USB2CH, SCU3B0, GENMASK(1, 0), 2 << 0),
+	     PIN_CFG(USB2CU, SCU3B0, GENMASK(1, 0), 3 << 0));
+FUNCFG_DESCL(PORTD_MODE, PIN_CFG(USB2DD, SCU3B0, GENMASK(3, 2), 1 << 2),
+	     PIN_CFG(USB2DH, SCU3B0, GENMASK(3, 2), 2 << 2));
+
+static const struct aspeed_g7_pincfg pin_cfg[] = {
+	PINCFG_PIN(C16),    PINCFG_PIN(C14),   PINCFG_PIN(C11),
+	PINCFG_PIN(D9),	    PINCFG_PIN(F14),   PINCFG_PIN(D10),
+	PINCFG_PIN(C12),    PINCFG_PIN(C13),   PINCFG_PIN(AC26),
+	PINCFG_PIN(AA25),   PINCFG_PIN(AB23),  PINCFG_PIN(U22),
+	PINCFG_PIN(V21),   PINCFG_PIN(N26),  PINCFG_PIN(P25),
+	PINCFG_PIN(N25),   PINCFG_PIN(V23),  PINCFG_PIN(W22),
+	PINCFG_PIN(AB26),    PINCFG_PIN(AD26),  PINCFG_PIN(P26),
+	PINCFG_PIN(AE26),   PINCFG_PIN(AF26),  PINCFG_PIN(AF25),
+	PINCFG_PIN(AE25),   PINCFG_PIN(AD25),   PINCFG_PIN(AF23),
+	PINCFG_PIN(AF20),   PINCFG_PIN(AF21),  PINCFG_PIN(AE21),
+	PINCFG_PIN(AE23),   PINCFG_PIN(AD22),  PINCFG_PIN(AF17),
+	PINCFG_PIN(AA16),   PINCFG_PIN(Y16),   PINCFG_PIN(V17),
+	PINCFG_PIN(J13),    PINCFG_PIN(AB16),  PINCFG_PIN(AC16),
+	PINCFG_PIN(AF16),   PINCFG_PIN(AA15),  PINCFG_PIN(AB15),
+	PINCFG_PIN(AC15),   PINCFG_PIN(AD15),  PINCFG_PIN(Y15),
+	PINCFG_PIN(AA14),   PINCFG_PIN(W16),   PINCFG_PIN(V16),
+	PINCFG_PIN(AB18),   PINCFG_PIN(AC18),  PINCFG_PIN(K13),
+	PINCFG_PIN(AA17),   PINCFG_PIN(AB17),  PINCFG_PIN(AD16),
+	PINCFG_PIN(AC17),   PINCFG_PIN(AD17),  PINCFG_PIN(AE16),
+	PINCFG_PIN(AE17),   PINCFG_PIN(AB24),   PINCFG_PIN(W26),
+	PINCFG_PIN(HOLE0),  PINCFG_PIN(HOLE1), PINCFG_PIN(HOLE2),
+	PINCFG_PIN(HOLE3),  PINCFG_PIN(W25),  PINCFG_PIN(Y23),
+	PINCFG_PIN(Y24),   PINCFG_PIN(W21),  PINCFG_PIN(AA23),
+	PINCFG_PIN(AC22),    PINCFG_PIN(AB22),  PINCFG_PIN(Y21),
+	PINCFG_PIN(AE20),   PINCFG_PIN(AF19),  PINCFG_PIN(Y22),
+	PINCFG_PIN(AA20),    PINCFG_PIN(AA22),  PINCFG_PIN(AB20),
+	PINCFG_PIN(AF18),   PINCFG_PIN(AE19),  PINCFG_PIN(AD20),
+	PINCFG_PIN(AC20),   PINCFG_PIN(AA21),   PINCFG_PIN(AB21),
+	PINCFG_PIN(AC19),    PINCFG_PIN(AE18),  PINCFG_PIN(AD19),
+	PINCFG_PIN(AD18),   PINCFG_PIN(U25),   PINCFG_PIN(U26),
+	PINCFG_PIN(Y26),    PINCFG_PIN(AA24),   PINCFG_PIN(R25),
+	PINCFG_PIN(AA26),   PINCFG_PIN(R26),   PINCFG_PIN(Y25),
+	PINCFG_PIN(B16),    PINCFG_PIN(D14),   PINCFG_PIN(B15),
+	PINCFG_PIN(B14),    PINCFG_PIN(C17),   PINCFG_PIN(B13),
+	PINCFG_PIN(E14),    PINCFG_PIN(C15),   PINCFG_PIN(D24),
+	PINCFG_PIN(B23),    PINCFG_PIN(B22),   PINCFG_PIN(C23),
+	PINCFG_PIN(B18),    PINCFG_PIN(B21),   PINCFG_PIN(M15),
+	PINCFG_PIN(B19),    PINCFG_PIN(B26),   PINCFG_PIN(A25),
+	PINCFG_PIN(A24),    PINCFG_PIN(B24),   PINCFG_PIN(E26),
+	PINCFG_PIN(A21),    PINCFG_PIN(A19),   PINCFG_PIN(A18),
+	PINCFG_PIN(D26),    PINCFG_PIN(C26),   PINCFG_PIN(A23),
+	PINCFG_PIN(A22),    PINCFG_PIN(B25),   PINCFG_PIN(F26),
+	PINCFG_PIN(A26),    PINCFG_PIN(A14),   PINCFG_PIN(E10),
+	PINCFG_PIN(E13),    PINCFG_PIN(D12),   PINCFG_PIN(F10),
+	PINCFG_PIN(E11),    PINCFG_PIN(F11),   PINCFG_PIN(F13),
+	PINCFG_PIN(N15),    PINCFG_PIN(C20),   PINCFG_PIN(C19),
+	PINCFG_PIN(A8),	    PINCFG_PIN(R14),   PINCFG_PIN(A7),
+	PINCFG_PIN(P14),    PINCFG_PIN(D20),   PINCFG_PIN(A6),
+	PINCFG_PIN(B6),	    PINCFG_PIN(N14),   PINCFG_PIN(B7),
+	PINCFG_PIN(B8),	    PINCFG_PIN(B9),    PINCFG_PIN(M14),
+	PINCFG_PIN(J11),    PINCFG_PIN(E7),    PINCFG_PIN(D19),
+	PINCFG_PIN(B11),    PINCFG_PIN(D15),   PINCFG_PIN(B12),
+	PINCFG_PIN(B10),    PINCFG_PIN(P13),   PINCFG_PIN(C18),
+	PINCFG_PIN(C6),	    PINCFG_PIN(C7),    PINCFG_PIN(D7),
+	PINCFG_PIN(N13),    PINCFG_PIN(C8),    PINCFG_PIN(C9),
+	PINCFG_PIN(C10),    PINCFG_PIN(M16),   PINCFG_PIN(A15),
+	PINCFG_PIN(G11),    PINCFG_PIN(H7),    PINCFG_PIN(H8),
+	PINCFG_PIN(H9),	    PINCFG_PIN(H10),   PINCFG_PIN(H11),
+	PINCFG_PIN(J9),	    PINCFG_PIN(J10),   PINCFG_PIN(E9),
+	PINCFG_PIN(F9),	    PINCFG_PIN(F8),    PINCFG_PIN(M13),
+	PINCFG_PIN(F7),	    PINCFG_PIN(D8),    PINCFG_PIN(E8),
+	PINCFG_PIN(L12),    PINCFG_PIN(F12),   PINCFG_PIN(E12),
+	PINCFG_PIN(J12),    PINCFG_PIN(G7),    PINCFG_PIN(G8),
+	PINCFG_PIN(G9),	    PINCFG_PIN(G10),   PINCFG_PIN(K12),
+	PINCFG_PIN(W17),    PINCFG_PIN(V18),   PINCFG_PIN(W18),
+	PINCFG_PIN(Y17),    PINCFG_PIN(AA18),  PINCFG_PIN(AA13),
+	PINCFG_PIN(Y18),    PINCFG_PIN(AA12),  PINCFG_PIN(W20),
+	PINCFG_PIN(V20),    PINCFG_PIN(Y11),   PINCFG_PIN(V14),
+	PINCFG_PIN(V19),    PINCFG_PIN(W14),   PINCFG_PIN(Y20),
+	PINCFG_PIN(AB19),   PINCFG_PIN(U21),   PINCFG_PIN(T24),
+	PINCFG_PIN(V24),    PINCFG_PIN(V22),   PINCFG_PIN(T23),
+	PINCFG_PIN(AC25),    PINCFG_PIN(AB25),   PINCFG_PIN(AC24),
+	PINCFG_PIN(SGMII0), PINCFG_PIN(PCIERC2_PERST),
+	PINCFG_PIN(PORTC_MODE), PINCFG_PIN(PORTD_MODE),
+};
+
+static int aspeed_g7_soc1_dt_node_to_map(struct pinctrl_dev *pctldev,
+					 struct device_node *np_config,
+					 struct pinctrl_map **map, u32 *num_maps)
+{
+	return pinconf_generic_dt_node_to_map(pctldev, np_config, map, num_maps,
+					      PIN_MAP_TYPE_INVALID);
+}
+
+static void aspeed_g7_soc1_dt_free_map(struct pinctrl_dev *pctldev,
+				       struct pinctrl_map *map, u32 num_maps)
+{
+	kfree(map);
+}
+
+static const struct pinctrl_ops aspeed_g7_soc1_pinctrl_ops = {
+	.get_groups_count = aspeed_pinctrl_get_groups_count,
+	.get_group_name = aspeed_pinctrl_get_group_name,
+	.get_group_pins = aspeed_pinctrl_get_group_pins,
+	.pin_dbg_show = aspeed_pinctrl_pin_dbg_show,
+	.dt_node_to_map = aspeed_g7_soc1_dt_node_to_map,
+	.dt_free_map = aspeed_g7_soc1_dt_free_map,
+};
+
+static const struct pinmux_ops aspeed_g7_soc1_pinmux_ops = {
+	.get_functions_count = aspeed_pinmux_get_fn_count,
+	.get_function_name = aspeed_pinmux_get_fn_name,
+	.get_function_groups = aspeed_pinmux_get_fn_groups,
+	.set_mux = aspeed_g7_pinmux_set_mux,
+	.gpio_request_enable = aspeed_g7_gpio_request_enable,
+	.strict = true,
+};
+
+static const struct pinconf_ops aspeed_g7_soc1_pinconf_ops = {
+	.is_generic = true,
+	.pin_config_get = aspeed_pin_config_get,
+	.pin_config_set = aspeed_pin_config_set,
+	.pin_config_group_get = aspeed_pin_config_group_get,
+	.pin_config_group_set = aspeed_pin_config_group_set,
+};
+
+/* pinctrl_desc */
+static struct pinctrl_desc aspeed_g7_soc1_pinctrl_desc = {
+	.name = "aspeed-g7-soc1-pinctrl",
+	.pins = aspeed_g7_soc1_pins,
+	.npins = ARRAY_SIZE(aspeed_g7_soc1_pins),
+	.pctlops = &aspeed_g7_soc1_pinctrl_ops,
+	.pmxops = &aspeed_g7_soc1_pinmux_ops,
+	.confops = &aspeed_g7_soc1_pinconf_ops,
+	.owner = THIS_MODULE,
+};
+
+static struct aspeed_pin_config aspeed_g7_configs[] = {
+	/* GPIOA */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C16, C16 }, SCU4C0, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C14, C14 }, SCU4C0, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C11, C11 }, SCU4C0, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D9, D9 }, SCU4C0, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F14, F14 }, SCU4C0, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D10, D10 }, SCU4C0, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C12, C12 }, SCU4C0, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C13, C13 }, SCU4C0, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { C16, C13 }, SCU4A0, BIT_MASK(4) },
+	/* GPIOI */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { W25, W25 }, SCU4C0, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { Y23, Y23 }, SCU4C0, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { Y24, Y24 }, SCU4C0, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { W21, W21 }, SCU4C0, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AA23, AA23 }, SCU4C0, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AC22, AC22 }, SCU4C0, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AB22, AB22 }, SCU4C0, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { Y21, Y21 }, SCU4C0, GENMASK(31, 30) },
+	{ PIN_CONFIG_POWER_SOURCE, { W25, Y21 }, SCU4A0, BIT_MASK(12) },
+	/* GPIOJ */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AE20, AE20 }, SCU4C4, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AF19, AF19 }, SCU4C4, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { Y22, Y22 }, SCU4C4, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AA20, AA20 }, SCU4C4, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AA22, AA22 }, SCU4C4, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AB20, AB20 }, SCU4C4, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AF18, AF18 }, SCU4C4, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AE19, AE19 }, SCU4C4, GENMASK(15, 14) },
+	/* GPIOK */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AD20, AD20 }, SCU4C4, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AC20, AC20 }, SCU4C4, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AA21, AA21 }, SCU4C4, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AB21, AB21 }, SCU4C4, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AC19, AC19 }, SCU4C4, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AE18, AE18 }, SCU4C4, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AD19, AD19 }, SCU4C4, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AD18, AD18 }, SCU4C4, GENMASK(31, 30) },
+	/* GPIOL */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { U25, U25 }, SCU4C8, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { U26, U26 }, SCU4C8, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { Y26, Y26 }, SCU4C8, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AA24, AA24 }, SCU4C8, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { R25, R25 }, SCU4C8, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { AA26, AA26 }, SCU4C8, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { R26, R26 }, SCU4C8, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { Y25, Y25 }, SCU4C8, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { U25, Y25 }, SCU4A0, BIT_MASK(15) },
+	/* GPIOM */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B16, B16 }, SCU4C8, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D14, D14 }, SCU4C8, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B15, B15 }, SCU4C8, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B14, B14 }, SCU4C8, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C17, C17 }, SCU4C8, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B13, B13 }, SCU4C8, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E14, E14 }, SCU4C8, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C15, C15 }, SCU4C8, GENMASK(31, 30) },
+	{ PIN_CONFIG_POWER_SOURCE, { B16, C15 }, SCU4A0, BIT_MASK(16) },
+	/* GPION */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D24, D24 }, SCU4CC, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B23, B23 }, SCU4CC, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B22, B22 }, SCU4CC, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C23, C23 }, SCU4CC, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B18, B18 }, SCU4CC, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B21, B21 }, SCU4CC, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { M15, M15 }, SCU4CC, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B19, B19 }, SCU4CC, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { D24, B19 }, SCU4A0, BIT_MASK(17) },
+	/* GPIOO */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B26, B26 }, SCU4CC, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A25, A25 }, SCU4CC, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A24, A24 }, SCU4CC, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B24, B24 }, SCU4CC, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E26, E26 }, SCU4CC, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A21, A21 }, SCU4CC, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A19, A19 }, SCU4CC, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A18, A18 }, SCU4CC, GENMASK(31, 30) },
+	{ PIN_CONFIG_POWER_SOURCE, { B26, A18 }, SCU4A0, BIT_MASK(18) },
+	/* GPIOP */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D26, D26 }, SCU4D0, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C26, C26 }, SCU4D0, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A23, A23 }, SCU4D0, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A22, A22 }, SCU4D0, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B25, B25 }, SCU4D0, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F26, F26 }, SCU4D0, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A26, A26 }, SCU4D0, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A14, A14 }, SCU4D0, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { D26, A14 }, SCU4A0, BIT_MASK(19) },
+	/* GPIOQ */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E10, E10 }, SCU4D0, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E13, E13 }, SCU4D0, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D12, D12 }, SCU4D0, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F10, F10 }, SCU4D0, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E11, E11 }, SCU4D0, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F11, F11 }, SCU4D0, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F13, F13 }, SCU4D0, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { N15, N15 }, SCU4D0, GENMASK(31, 30) },
+	/* GPIOR */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C20, C20 }, SCU4D4, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C19, C19 }, SCU4D4, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A8, A8 }, SCU4D4, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { R14, R14 }, SCU4D4, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A7, A7 }, SCU4D4, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { P14, P14 }, SCU4D4, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D20, D20 }, SCU4D4, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A6, A6 }, SCU4D4, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { C20, A6 }, SCU4A0, BIT_MASK(21) },
+	/* GPIOS */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B6, B6 }, SCU4D4, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { N14, N14 }, SCU4D4, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B7, B7 }, SCU4D4, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B8, B8 }, SCU4D4, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B9, B9 }, SCU4D4, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { M14, M14 }, SCU4D4, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { J11, J11 }, SCU4D4, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E7, E7 }, SCU4D4, GENMASK(31, 30) },
+	{ PIN_CONFIG_POWER_SOURCE, { B6, E7 }, SCU4A0, BIT_MASK(22) },
+	/* GPIOT */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D19, D19 }, SCU4D8, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B11, B11 }, SCU4D8, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D15, D15 }, SCU4D8, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B12, B12 }, SCU4D8, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { B10, B10 }, SCU4D8, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { P13, P13 }, SCU4D8, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C18, C18 }, SCU4D8, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C6, C6 }, SCU4D8, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { D19, C6 }, SCU4A0, BIT_MASK(23) },
+	/* GPIOU */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C7, C7 }, SCU4D8, GENMASK(17, 16) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D7, D7 }, SCU4D8, GENMASK(19, 18) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { N13, N13 }, SCU4D8, GENMASK(21, 20) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C8, C8 }, SCU4D8, GENMASK(23, 22) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C9, C9 }, SCU4D8, GENMASK(25, 24) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { C10, C10 }, SCU4D8, GENMASK(27, 26) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { M16, M16 }, SCU4D8, GENMASK(29, 28) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { A15, A15 }, SCU4D8, GENMASK(31, 30) },
+	{ PIN_CONFIG_POWER_SOURCE, { C7, A15 }, SCU4A0, BIT_MASK(24) },
+	/* GPIOW */
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E9, E9 }, SCU4DC, GENMASK(1, 0) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F9, F9 }, SCU4DC, GENMASK(3, 2) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F8, F8 }, SCU4DC, GENMASK(5, 4) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { M13, M13 }, SCU4DC, GENMASK(7, 6) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { F7, F7 }, SCU4DC, GENMASK(9, 8) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { D8, D8 }, SCU4DC, GENMASK(11, 10) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { E8, E8 }, SCU4DC, GENMASK(13, 12) },
+	{ PIN_CONFIG_DRIVE_STRENGTH, { L12, L12 }, SCU4DC, GENMASK(15, 14) },
+	{ PIN_CONFIG_POWER_SOURCE, { E9, L12 }, SCU4A0, BIT_MASK(26) },
+
+	ASPEED_PULL_DOWN_PINCONF(C16, SCU480, 0),
+	ASPEED_PULL_DOWN_PINCONF(C14, SCU480, 1),
+	ASPEED_PULL_DOWN_PINCONF(C11, SCU480, 2),
+	ASPEED_PULL_DOWN_PINCONF(D9, SCU480, 3),
+	ASPEED_PULL_DOWN_PINCONF(F14, SCU480, 4),
+	ASPEED_PULL_DOWN_PINCONF(D10, SCU480, 5),
+	ASPEED_PULL_DOWN_PINCONF(C12, SCU480, 6),
+	ASPEED_PULL_DOWN_PINCONF(C13, SCU480, 7),
+	ASPEED_PULL_DOWN_PINCONF(AC26, SCU480, 8),
+	ASPEED_PULL_DOWN_PINCONF(AA25, SCU480, 9),
+	ASPEED_PULL_DOWN_PINCONF(AB23, SCU480, 10),
+	ASPEED_PULL_DOWN_PINCONF(U22, SCU480, 11),
+	ASPEED_PULL_DOWN_PINCONF(V21, SCU480, 12),
+	ASPEED_PULL_DOWN_PINCONF(N26, SCU480, 13),
+	ASPEED_PULL_DOWN_PINCONF(P25, SCU480, 14),
+	ASPEED_PULL_DOWN_PINCONF(N25, SCU480, 15),
+	ASPEED_PULL_DOWN_PINCONF(V23, SCU480, 16),
+	ASPEED_PULL_DOWN_PINCONF(W22, SCU480, 17),
+	ASPEED_PULL_DOWN_PINCONF(AB26, SCU480, 18),
+	ASPEED_PULL_DOWN_PINCONF(AD26, SCU480, 19),
+	ASPEED_PULL_DOWN_PINCONF(P26, SCU480, 20),
+	ASPEED_PULL_DOWN_PINCONF(AE26, SCU480, 21),
+	ASPEED_PULL_DOWN_PINCONF(AF26, SCU480, 22),
+	ASPEED_PULL_DOWN_PINCONF(AF25, SCU480, 23),
+	ASPEED_PULL_DOWN_PINCONF(AE25, SCU480, 24),
+	ASPEED_PULL_DOWN_PINCONF(AD25, SCU480, 25),
+	ASPEED_PULL_DOWN_PINCONF(AF23, SCU480, 26),
+	ASPEED_PULL_DOWN_PINCONF(AF20, SCU480, 27),
+	ASPEED_PULL_DOWN_PINCONF(AF21, SCU480, 28),
+	ASPEED_PULL_DOWN_PINCONF(AE21, SCU480, 29),
+	ASPEED_PULL_DOWN_PINCONF(AE23, SCU480, 30),
+	ASPEED_PULL_DOWN_PINCONF(AD22, SCU480, 31),
+	ASPEED_PULL_DOWN_PINCONF(AF17, SCU484, 0),
+	ASPEED_PULL_DOWN_PINCONF(AA16, SCU484, 1),
+	ASPEED_PULL_DOWN_PINCONF(Y16, SCU484, 2),
+	ASPEED_PULL_DOWN_PINCONF(V17, SCU484, 3),
+	ASPEED_PULL_DOWN_PINCONF(J13, SCU484, 4),
+	ASPEED_PULL_DOWN_PINCONF(AB16, SCU484, 5),
+	ASPEED_PULL_DOWN_PINCONF(AC16, SCU484, 6),
+	ASPEED_PULL_DOWN_PINCONF(AF16, SCU484, 7),
+	ASPEED_PULL_DOWN_PINCONF(AA15, SCU484, 8),
+	ASPEED_PULL_DOWN_PINCONF(AB15, SCU484, 9),
+	ASPEED_PULL_DOWN_PINCONF(AC15, SCU484, 10),
+	ASPEED_PULL_DOWN_PINCONF(AD15, SCU484, 11),
+	ASPEED_PULL_DOWN_PINCONF(Y15, SCU484, 12),
+	ASPEED_PULL_DOWN_PINCONF(AA14, SCU484, 13),
+	ASPEED_PULL_DOWN_PINCONF(W16, SCU484, 14),
+	ASPEED_PULL_DOWN_PINCONF(V16, SCU484, 15),
+	ASPEED_PULL_DOWN_PINCONF(AB18, SCU484, 16),
+	ASPEED_PULL_DOWN_PINCONF(AC18, SCU484, 17),
+	ASPEED_PULL_DOWN_PINCONF(K13, SCU484, 18),
+	ASPEED_PULL_DOWN_PINCONF(AA17, SCU484, 19),
+	ASPEED_PULL_DOWN_PINCONF(AB17, SCU484, 20),
+	ASPEED_PULL_DOWN_PINCONF(AD16, SCU484, 21),
+	ASPEED_PULL_DOWN_PINCONF(AC17, SCU484, 22),
+	ASPEED_PULL_DOWN_PINCONF(AD17, SCU484, 23),
+	ASPEED_PULL_DOWN_PINCONF(AE16, SCU484, 24),
+	ASPEED_PULL_DOWN_PINCONF(AE17, SCU484, 25),
+	ASPEED_PULL_DOWN_PINCONF(AB24, SCU484, 26),
+	ASPEED_PULL_DOWN_PINCONF(W26, SCU484, 27),
+	ASPEED_PULL_DOWN_PINCONF(HOLE0, SCU484, 28),
+	ASPEED_PULL_DOWN_PINCONF(HOLE1, SCU484, 29),
+	ASPEED_PULL_DOWN_PINCONF(HOLE2, SCU484, 30),
+	ASPEED_PULL_DOWN_PINCONF(HOLE3, SCU484, 31),
+	ASPEED_PULL_DOWN_PINCONF(W25, SCU488, 0),
+	ASPEED_PULL_DOWN_PINCONF(Y23, SCU488, 1),
+	ASPEED_PULL_DOWN_PINCONF(Y24, SCU488, 2),
+	ASPEED_PULL_DOWN_PINCONF(W21, SCU488, 3),
+	ASPEED_PULL_DOWN_PINCONF(AA23, SCU488, 4),
+	ASPEED_PULL_DOWN_PINCONF(AC22, SCU488, 5),
+	ASPEED_PULL_DOWN_PINCONF(AB22, SCU488, 6),
+	ASPEED_PULL_DOWN_PINCONF(Y21, SCU488, 7),
+	ASPEED_PULL_DOWN_PINCONF(AE20, SCU488, 8),
+	ASPEED_PULL_DOWN_PINCONF(AF19, SCU488, 9),
+	ASPEED_PULL_DOWN_PINCONF(Y22, SCU488, 10),
+	ASPEED_PULL_DOWN_PINCONF(AA20, SCU488, 11),
+	ASPEED_PULL_DOWN_PINCONF(AA22, SCU488, 12),
+	ASPEED_PULL_DOWN_PINCONF(AB20, SCU488, 13),
+	ASPEED_PULL_DOWN_PINCONF(AF18, SCU488, 14),
+	ASPEED_PULL_DOWN_PINCONF(AE19, SCU488, 15),
+	ASPEED_PULL_DOWN_PINCONF(AD20, SCU488, 16),
+	ASPEED_PULL_DOWN_PINCONF(AC20, SCU488, 17),
+	ASPEED_PULL_DOWN_PINCONF(AA21, SCU488, 18),
+	ASPEED_PULL_DOWN_PINCONF(AB21, SCU488, 19),
+	ASPEED_PULL_DOWN_PINCONF(AC19, SCU488, 20),
+	ASPEED_PULL_DOWN_PINCONF(AE18, SCU488, 21),
+	ASPEED_PULL_DOWN_PINCONF(AD19, SCU488, 22),
+	ASPEED_PULL_DOWN_PINCONF(AD18, SCU488, 23),
+	ASPEED_PULL_DOWN_PINCONF(U25, SCU488, 24),
+	ASPEED_PULL_DOWN_PINCONF(U26, SCU488, 25),
+	ASPEED_PULL_DOWN_PINCONF(Y26, SCU488, 26),
+	ASPEED_PULL_DOWN_PINCONF(AA24, SCU488, 27),
+	ASPEED_PULL_DOWN_PINCONF(R25, SCU488, 28),
+	ASPEED_PULL_DOWN_PINCONF(AA26, SCU488, 29),
+	ASPEED_PULL_DOWN_PINCONF(R26, SCU488, 30),
+	ASPEED_PULL_DOWN_PINCONF(Y25, SCU488, 31),
+	ASPEED_PULL_DOWN_PINCONF(B16, SCU48C, 0),
+	ASPEED_PULL_DOWN_PINCONF(D14, SCU48C, 1),
+	ASPEED_PULL_DOWN_PINCONF(B15, SCU48C, 2),
+	ASPEED_PULL_DOWN_PINCONF(B14, SCU48C, 3),
+	ASPEED_PULL_DOWN_PINCONF(C17, SCU48C, 4),
+	ASPEED_PULL_DOWN_PINCONF(B13, SCU48C, 5),
+	ASPEED_PULL_DOWN_PINCONF(E14, SCU48C, 6),
+	ASPEED_PULL_DOWN_PINCONF(C15, SCU48C, 7),
+	ASPEED_PULL_DOWN_PINCONF(D24, SCU48C, 8),
+	ASPEED_PULL_DOWN_PINCONF(B23, SCU48C, 9),
+	ASPEED_PULL_DOWN_PINCONF(B22, SCU48C, 10),
+	ASPEED_PULL_DOWN_PINCONF(C23, SCU48C, 11),
+	ASPEED_PULL_DOWN_PINCONF(B18, SCU48C, 12),
+	ASPEED_PULL_DOWN_PINCONF(B21, SCU48C, 13),
+	ASPEED_PULL_DOWN_PINCONF(M15, SCU48C, 14),
+	ASPEED_PULL_DOWN_PINCONF(B19, SCU48C, 15),
+	ASPEED_PULL_DOWN_PINCONF(B26, SCU48C, 16),
+	ASPEED_PULL_DOWN_PINCONF(A25, SCU48C, 17),
+	ASPEED_PULL_DOWN_PINCONF(A24, SCU48C, 18),
+	ASPEED_PULL_DOWN_PINCONF(B24, SCU48C, 19),
+	ASPEED_PULL_DOWN_PINCONF(E26, SCU48C, 20),
+	ASPEED_PULL_DOWN_PINCONF(A21, SCU48C, 21),
+	ASPEED_PULL_DOWN_PINCONF(A19, SCU48C, 22),
+	ASPEED_PULL_DOWN_PINCONF(A18, SCU48C, 23),
+	ASPEED_PULL_DOWN_PINCONF(D26, SCU48C, 24),
+	ASPEED_PULL_DOWN_PINCONF(C26, SCU48C, 25),
+	ASPEED_PULL_DOWN_PINCONF(A23, SCU48C, 26),
+	ASPEED_PULL_DOWN_PINCONF(A22, SCU48C, 27),
+	ASPEED_PULL_DOWN_PINCONF(B25, SCU48C, 28),
+	ASPEED_PULL_DOWN_PINCONF(F26, SCU48C, 29),
+	ASPEED_PULL_DOWN_PINCONF(A26, SCU48C, 30),
+	ASPEED_PULL_DOWN_PINCONF(A14, SCU48C, 31),
+	ASPEED_PULL_DOWN_PINCONF(E10, SCU490, 0),
+	ASPEED_PULL_DOWN_PINCONF(E13, SCU490, 1),
+	ASPEED_PULL_DOWN_PINCONF(D12, SCU490, 2),
+	ASPEED_PULL_DOWN_PINCONF(F10, SCU490, 3),
+	ASPEED_PULL_DOWN_PINCONF(E11, SCU490, 4),
+	ASPEED_PULL_DOWN_PINCONF(F11, SCU490, 5),
+	ASPEED_PULL_DOWN_PINCONF(F13, SCU490, 6),
+	ASPEED_PULL_DOWN_PINCONF(N15, SCU490, 7),
+	ASPEED_PULL_DOWN_PINCONF(C20, SCU490, 8),
+	ASPEED_PULL_DOWN_PINCONF(C19, SCU490, 9),
+	ASPEED_PULL_DOWN_PINCONF(A8, SCU490, 10),
+	ASPEED_PULL_DOWN_PINCONF(R14, SCU490, 11),
+	ASPEED_PULL_DOWN_PINCONF(A7, SCU490, 12),
+	ASPEED_PULL_DOWN_PINCONF(P14, SCU490, 13),
+	ASPEED_PULL_DOWN_PINCONF(D20, SCU490, 14),
+	ASPEED_PULL_DOWN_PINCONF(A6, SCU490, 15),
+	ASPEED_PULL_DOWN_PINCONF(B6, SCU490, 16),
+	ASPEED_PULL_DOWN_PINCONF(N14, SCU490, 17),
+	ASPEED_PULL_DOWN_PINCONF(B7, SCU490, 18),
+	ASPEED_PULL_DOWN_PINCONF(B8, SCU490, 19),
+	ASPEED_PULL_DOWN_PINCONF(B9, SCU490, 20),
+	ASPEED_PULL_DOWN_PINCONF(M14, SCU490, 21),
+	ASPEED_PULL_DOWN_PINCONF(J11, SCU490, 22),
+	ASPEED_PULL_DOWN_PINCONF(E7, SCU490, 23),
+	ASPEED_PULL_DOWN_PINCONF(D19, SCU490, 24),
+	ASPEED_PULL_DOWN_PINCONF(B11, SCU490, 25),
+	ASPEED_PULL_DOWN_PINCONF(D15, SCU490, 26),
+	ASPEED_PULL_DOWN_PINCONF(B12, SCU490, 27),
+	ASPEED_PULL_DOWN_PINCONF(B10, SCU490, 28),
+	ASPEED_PULL_DOWN_PINCONF(P13, SCU490, 29),
+	ASPEED_PULL_DOWN_PINCONF(C18, SCU490, 30),
+	ASPEED_PULL_DOWN_PINCONF(C6, SCU490, 31),
+	ASPEED_PULL_DOWN_PINCONF(C7, SCU494, 0),
+	ASPEED_PULL_DOWN_PINCONF(D7, SCU494, 1),
+	ASPEED_PULL_DOWN_PINCONF(N13, SCU494, 2),
+	ASPEED_PULL_DOWN_PINCONF(C8, SCU494, 3),
+	ASPEED_PULL_DOWN_PINCONF(C9, SCU494, 4),
+	ASPEED_PULL_DOWN_PINCONF(C10, SCU494, 5),
+	ASPEED_PULL_DOWN_PINCONF(M16, SCU494, 6),
+	ASPEED_PULL_DOWN_PINCONF(A15, SCU494, 7),
+	ASPEED_PULL_DOWN_PINCONF(G11, SCU494, 8),
+	ASPEED_PULL_DOWN_PINCONF(H7, SCU494, 9),
+	ASPEED_PULL_DOWN_PINCONF(H8, SCU494, 10),
+	ASPEED_PULL_DOWN_PINCONF(H9, SCU494, 11),
+	ASPEED_PULL_DOWN_PINCONF(H10, SCU494, 12),
+	ASPEED_PULL_DOWN_PINCONF(H11, SCU494, 13),
+	ASPEED_PULL_DOWN_PINCONF(J9, SCU494, 14),
+	ASPEED_PULL_DOWN_PINCONF(J10, SCU494, 15),
+	ASPEED_PULL_DOWN_PINCONF(E9, SCU494, 16),
+	ASPEED_PULL_DOWN_PINCONF(F9, SCU494, 17),
+	ASPEED_PULL_DOWN_PINCONF(F8, SCU494, 18),
+	ASPEED_PULL_DOWN_PINCONF(M13, SCU494, 19),
+	ASPEED_PULL_DOWN_PINCONF(F7, SCU494, 20),
+	ASPEED_PULL_DOWN_PINCONF(D8, SCU494, 21),
+	ASPEED_PULL_DOWN_PINCONF(E8, SCU494, 22),
+	ASPEED_PULL_DOWN_PINCONF(L12, SCU494, 23),
+	ASPEED_PULL_DOWN_PINCONF(F12, SCU494, 24),
+	ASPEED_PULL_DOWN_PINCONF(E12, SCU494, 25),
+	ASPEED_PULL_DOWN_PINCONF(J12, SCU494, 26),
+	ASPEED_PULL_DOWN_PINCONF(G7, SCU494, 27),
+	ASPEED_PULL_DOWN_PINCONF(G8, SCU494, 28),
+	ASPEED_PULL_DOWN_PINCONF(G9, SCU494, 29),
+	ASPEED_PULL_DOWN_PINCONF(G10, SCU494, 30),
+	ASPEED_PULL_DOWN_PINCONF(K12, SCU494, 31),
+	ASPEED_PULL_DOWN_PINCONF(W17, SCU498, 0),
+	ASPEED_PULL_DOWN_PINCONF(V18, SCU498, 1),
+	ASPEED_PULL_DOWN_PINCONF(W18, SCU498, 2),
+	ASPEED_PULL_DOWN_PINCONF(Y17, SCU498, 3),
+	ASPEED_PULL_DOWN_PINCONF(AA18, SCU498, 4),
+	ASPEED_PULL_DOWN_PINCONF(AA13, SCU498, 5),
+	ASPEED_PULL_DOWN_PINCONF(Y18, SCU498, 6),
+	ASPEED_PULL_DOWN_PINCONF(AA12, SCU498, 7),
+	ASPEED_PULL_DOWN_PINCONF(W20, SCU498, 8),
+	ASPEED_PULL_DOWN_PINCONF(V20, SCU498, 9),
+	ASPEED_PULL_DOWN_PINCONF(Y11, SCU498, 10),
+	ASPEED_PULL_DOWN_PINCONF(V14, SCU498, 11),
+	ASPEED_PULL_DOWN_PINCONF(V19, SCU498, 12),
+	ASPEED_PULL_DOWN_PINCONF(W14, SCU498, 13),
+	ASPEED_PULL_DOWN_PINCONF(Y20, SCU498, 14),
+	ASPEED_PULL_DOWN_PINCONF(AB19, SCU498, 15),
+	ASPEED_PULL_DOWN_PINCONF(U21, SCU498, 16),
+	ASPEED_PULL_DOWN_PINCONF(T24, SCU498, 17),
+	ASPEED_PULL_DOWN_PINCONF(V24, SCU498, 18),
+	ASPEED_PULL_DOWN_PINCONF(V22, SCU498, 19),
+	ASPEED_PULL_DOWN_PINCONF(T23, SCU498, 20),
+	ASPEED_PULL_DOWN_PINCONF(AC25, SCU498, 21),
+	ASPEED_PULL_DOWN_PINCONF(AB25, SCU498, 22),
+	ASPEED_PULL_DOWN_PINCONF(AC24, SCU498, 23),
+};
+
+static const struct aspeed_pin_config_map aspeed_g7_pin_config_map[] = {
+	{ PIN_CONFIG_BIAS_PULL_DOWN,  0,   1, BIT_MASK(0)},
+	{ PIN_CONFIG_BIAS_PULL_DOWN, -1,   0, BIT_MASK(0)},
+	{ PIN_CONFIG_BIAS_PULL_UP,    0,   1, BIT_MASK(0)},
+	{ PIN_CONFIG_BIAS_PULL_UP,   -1,   0, BIT_MASK(0)},
+	{ PIN_CONFIG_BIAS_DISABLE,   -1,   1, BIT_MASK(0)},
+	{ PIN_CONFIG_DRIVE_STRENGTH,  0,   0, GENMASK(1, 0)},
+	{ PIN_CONFIG_DRIVE_STRENGTH,  1,   1, GENMASK(1, 0)},
+	{ PIN_CONFIG_DRIVE_STRENGTH,  2,   2, GENMASK(1, 0)},
+	{ PIN_CONFIG_DRIVE_STRENGTH,  3,   3, GENMASK(1, 0)},
+	{ PIN_CONFIG_POWER_SOURCE,   3300, 0, BIT_MASK(0)},
+	{ PIN_CONFIG_POWER_SOURCE,   1800, 1, BIT_MASK(0)},
+};
+
+static struct aspeed_pinctrl_data aspeed_g7_pinctrl_data = {
+	.pins = aspeed_g7_soc1_pins,
+	.npins = ARRAY_SIZE(aspeed_g7_soc1_pins),
+	.pinmux = {
+		.groups = aspeed_g7_soc1_pingroups,
+		.ngroups = ARRAY_SIZE(aspeed_g7_soc1_pingroups),
+		.functions = aspeed_g7_soc1_funcs,
+		.nfunctions = ARRAY_SIZE(aspeed_g7_soc1_funcs),
+		.configs_g7 = pin_cfg,
+		.nconfigs_g7 = ARRAY_SIZE(pin_cfg),
+	},
+	.configs = aspeed_g7_configs,
+	.nconfigs = ARRAY_SIZE(aspeed_g7_configs),
+	.confmaps = aspeed_g7_pin_config_map,
+	.nconfmaps = ARRAY_SIZE(aspeed_g7_pin_config_map),
+};
+
+static int aspeed_g7_soc1_pinctrl_probe(struct platform_device *pdev)
+{
+	return aspeed_pinctrl_probe(pdev, &aspeed_g7_soc1_pinctrl_desc,
+				    &aspeed_g7_pinctrl_data);
+}
+
+static const struct of_device_id aspeed_g7_soc1_pinctrl_match[] = {
+	{ .compatible = "aspeed,ast2700-soc1-pinctrl" },
+	{}
+};
+MODULE_DEVICE_TABLE(of, aspeed_g7_soc1_pinctrl_match);
+
+static struct platform_driver aspeed_g7_soc1_pinctrl_driver = {
+	.probe = aspeed_g7_soc1_pinctrl_probe,
+	.driver = {
+		.name = "aspeed-g7-soc1-pinctrl",
+		.of_match_table = aspeed_g7_soc1_pinctrl_match,
+		.suppress_bind_attrs = true,
+	},
+};
+
+static int __init aspeed_g7_soc1_pinctrl_register(void)
+{
+	return platform_driver_register(&aspeed_g7_soc1_pinctrl_driver);
+}
+arch_initcall(aspeed_g7_soc1_pinctrl_register);
diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed.c b/drivers/pinctrl/aspeed/pinctrl-aspeed.c
index 7e0ebf11af16..75ca0b3f21a1 100644
--- a/drivers/pinctrl/aspeed/pinctrl-aspeed.c
+++ b/drivers/pinctrl/aspeed/pinctrl-aspeed.c
@@ -285,6 +285,32 @@ int aspeed_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int function,
 	return 0;
 }
 
+int aspeed_g7_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int function,
+			     unsigned int group)
+{
+	int i, j;
+	int pin;
+	const struct aspeed_g7_funcfg *funcfg;
+	struct aspeed_pinctrl_data *pinctrl = pinctrl_dev_get_drvdata(pctldev);
+	const struct aspeed_pin_group *pingroup =
+		&pinctrl->pinmux.groups[group];
+	const struct aspeed_g7_pincfg *pin_cfg = pinctrl->pinmux.configs_g7;
+
+	for (i = 0; i < pingroup->npins; i++) {
+		pin = pingroup->pins[i];
+		funcfg = pin_cfg[pin].funcfg;
+
+		for (j = 0; j < pin_cfg[pin].nfuncfg; j++) {
+			if (strcmp(funcfg[j].name,  pingroup->name) == 0) {
+				regmap_update_bits(pinctrl->scu, funcfg[j].reg,
+						   funcfg[j].mask,
+						   funcfg[j].val);
+			}
+		}
+	}
+	return 0;
+}
+
 static bool aspeed_expr_is_gpio(const struct aspeed_sig_expr *expr)
 {
 	/*
@@ -440,6 +466,27 @@ int aspeed_gpio_request_enable(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
+int aspeed_g7_gpio_request_enable(struct pinctrl_dev *pctldev,
+				  struct pinctrl_gpio_range *range,
+				  unsigned int offset)
+{
+	int i;
+	struct aspeed_pinctrl_data *pinctrl = pinctrl_dev_get_drvdata(pctldev);
+	const struct aspeed_g7_pincfg *pin_cfg = pinctrl->pinmux.configs_g7;
+	const struct aspeed_g7_funcfg *funcfg = pin_cfg[offset].funcfg;
+
+	for (i = 0; i < pin_cfg[offset].nfuncfg; i++) {
+		if (!strncmp(funcfg[i].name, "GPI", 3)) {
+			regmap_update_bits(pinctrl->scu, funcfg[i].reg,
+					   funcfg[i].mask, funcfg[i].val);
+			break;
+		}
+		regmap_update_bits(pinctrl->scu, funcfg[i].reg, funcfg[i].mask,
+				   0);
+	}
+	return 0;
+}
+
 int aspeed_pinctrl_probe(struct platform_device *pdev,
 			 const struct pinctrl_desc *pdesc,
 			 struct aspeed_pinctrl_data *pdata)
diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed.h b/drivers/pinctrl/aspeed/pinctrl-aspeed.h
index 28f3bde25081..e3d9b857f1a6 100644
--- a/drivers/pinctrl/aspeed/pinctrl-aspeed.h
+++ b/drivers/pinctrl/aspeed/pinctrl-aspeed.h
@@ -70,15 +70,15 @@ struct aspeed_pinctrl_data {
 	struct regmap *scu;
 
 	const struct pinctrl_pin_desc *pins;
-	const unsigned int npins;
+	unsigned int npins;
 
 	const struct aspeed_pin_config *configs;
-	const unsigned int nconfigs;
+	unsigned int nconfigs;
 
 	struct aspeed_pinmux_data pinmux;
 
 	const struct aspeed_pin_config_map *confmaps;
-	const unsigned int nconfmaps;
+	unsigned int nconfmaps;
 };
 
 /* Aspeed pinctrl helpers */
@@ -98,9 +98,14 @@ int aspeed_pinmux_get_fn_groups(struct pinctrl_dev *pctldev,
 		unsigned int * const num_groups);
 int aspeed_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int function,
 		unsigned int group);
+int aspeed_g7_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int function,
+			     unsigned int group);
 int aspeed_gpio_request_enable(struct pinctrl_dev *pctldev,
 		struct pinctrl_gpio_range *range,
 		unsigned int offset);
+int aspeed_g7_gpio_request_enable(struct pinctrl_dev *pctldev,
+				  struct pinctrl_gpio_range *range,
+				  unsigned int offset);
 int aspeed_pinctrl_probe(struct platform_device *pdev,
 		const struct pinctrl_desc *pdesc,
 		struct aspeed_pinctrl_data *pdata);
diff --git a/drivers/pinctrl/aspeed/pinmux-aspeed.h b/drivers/pinctrl/aspeed/pinmux-aspeed.h
index aaa78a613196..35a23139874f 100644
--- a/drivers/pinctrl/aspeed/pinmux-aspeed.h
+++ b/drivers/pinctrl/aspeed/pinmux-aspeed.h
@@ -792,6 +792,33 @@ struct aspeed_pinmux_ops {
 		   const struct aspeed_sig_expr *expr, bool enabled);
 };
 
+struct aspeed_g7_funcfg {
+	char *name;
+	u32 reg;
+	u32 mask;
+	int val;
+};
+
+struct aspeed_g7_pincfg {
+	struct aspeed_g7_funcfg *funcfg;
+	unsigned int nfuncfg;
+};
+
+#define PIN_CFG(cfg_name, cfg_reg, cfg_mask, cfg_val)                \
+	{                                                            \
+		.name = #cfg_name, .reg = cfg_reg, .mask = cfg_mask, \
+		.val = cfg_val                                       \
+	}
+#define FUNCFG_SYM(pin) funcfg_ ## pin
+#define FUNCFG_PTR(pin) (&FUNCFG_SYM(pin))
+
+#define FUNCFG_DESCL(pin, ...) \
+	static const struct aspeed_g7_funcfg FUNCFG_SYM(pin)[] = { __VA_ARGS__ }
+
+#define PINCFG_PIN(pin)                                                 \
+	[pin] = { .funcfg = (struct aspeed_g7_funcfg *)FUNCFG_PTR(pin), \
+		  .nfuncfg = ARRAY_SIZE(FUNCFG_SYM(pin)) }
+
 struct aspeed_pinmux_data {
 	struct device *dev;
 	struct regmap *maps[ASPEED_NR_PINMUX_IPS];
@@ -799,10 +826,14 @@ struct aspeed_pinmux_data {
 	const struct aspeed_pinmux_ops *ops;
 
 	const struct aspeed_pin_group *groups;
-	const unsigned int ngroups;
+	unsigned int ngroups;
 
 	const struct aspeed_pin_function *functions;
-	const unsigned int nfunctions;
+	unsigned int nfunctions;
+
+	const struct aspeed_g7_pincfg *configs_g7;
+	unsigned int nconfigs_g7;
+
 };
 
 int aspeed_sig_desc_eval(const struct aspeed_sig_desc *desc, bool enabled,
-- 
2.25.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ