Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/pinctrl/renesas/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 143 kB image not shown  

Quelle  pfc-r8a779a0.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * R8A779A0 processor support - PFC hardware block.
 *
 * Copyright (C) 2020 Renesas Electronics Corp.
 *
 * This file is based on the drivers/pinctrl/renesas/pfc-r8a7795.c
 */


#include <linux/errno.h>
#include <linux/io.h>
#include <linux/kernel.h>

#include "sh_pfc.h"

#define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN)

#define CPU_ALL_GP(fn, sfx) \
 PORT_GP_CFG_15(0, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(0, 15, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 16, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 17, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 18, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 19, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 20, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 21, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 22, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 23, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 24, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 25, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 26, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(0, 27, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_31(1, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_2(2, fn, sfx, CFG_FLAGS),     \
 PORT_GP_CFG_1(2, 2, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 3, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 5, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 6, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 7, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 8, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 9, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 10, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 11, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 12, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 13, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 14, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 15, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \
 PORT_GP_CFG_1(2, 16, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 17, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 20, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 21, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 22, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 23, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(2, 24, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_17(3, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_18(4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
 PORT_GP_CFG_1(4, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 20, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 21, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 22, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 23, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 24, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 25, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(4, 26, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_18(5, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
 PORT_GP_CFG_1(5, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(5, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(5, 20, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_18(6, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
 PORT_GP_CFG_1(6, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(6, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(6, 20, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_18(7, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
 PORT_GP_CFG_1(7, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(7, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(7, 20, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_18(8, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
 PORT_GP_CFG_1(8, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(8, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(8, 20, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_18(9, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_25_33),\
 PORT_GP_CFG_1(9, 18, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(9, 19, fn, sfx, CFG_FLAGS), \
 PORT_GP_CFG_1(9, 20, fn, sfx, CFG_FLAGS)

#define CPU_ALL_NOGP(fn)         \
 PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),  \
 PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),   \
 PIN_NOGP_CFG(DCUTRST_N_LPDRST_N, "DCUTRST#_LPDRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \
 PIN_NOGP_CFG(DCUTCK_LPDCLK, "DCUTCK_LPDCLK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),  \
 PIN_NOGP_CFG(DCUTMS, "DCUTMS", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),   \
 PIN_NOGP_CFG(DCUTDI_LPDI, "DCUTDI_LPDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN)

/*
 * F_() : just information
 * FM() : macro for FN_xxx / xxx_MARK
 */


/* GPSR0 */
#define GPSR0_27 FM(MMC_D7)
#define GPSR0_26 FM(MMC_D6)
#define GPSR0_25 FM(MMC_D5)
#define GPSR0_24 FM(MMC_D4)
#define GPSR0_23 FM(MMC_SD_CLK)
#define GPSR0_22 FM(MMC_SD_D3)
#define GPSR0_21 FM(MMC_SD_D2)
#define GPSR0_20 FM(MMC_SD_D1)
#define GPSR0_19 FM(MMC_SD_D0)
#define GPSR0_18 FM(MMC_SD_CMD)
#define GPSR0_17 FM(MMC_DS)
#define GPSR0_16 FM(SD_CD)
#define GPSR0_15 FM(SD_WP)
#define GPSR0_14 FM(RPC_INT_N)
#define GPSR0_13 FM(RPC_WP_N)
#define GPSR0_12 FM(RPC_RESET_N)
#define GPSR0_11 FM(QSPI1_SSL)
#define GPSR0_10 FM(QSPI1_IO3)
#define GPSR0_9  FM(QSPI1_IO2)
#define GPSR0_8  FM(QSPI1_MISO_IO1)
#define GPSR0_7  FM(QSPI1_MOSI_IO0)
#define GPSR0_6  FM(QSPI1_SPCLK)
#define GPSR0_5  FM(QSPI0_SSL)
#define GPSR0_4  FM(QSPI0_IO3)
#define GPSR0_3  FM(QSPI0_IO2)
#define GPSR0_2  FM(QSPI0_MISO_IO1)
#define GPSR0_1  FM(QSPI0_MOSI_IO0)
#define GPSR0_0  FM(QSPI0_SPCLK)

/* GPSR1 */
#define GPSR1_30 F_(GP1_30, IP3SR1_27_24)
#define GPSR1_29 F_(GP1_29, IP3SR1_23_20)
#define GPSR1_28 F_(GP1_28, IP3SR1_19_16)
#define GPSR1_27 F_(IRQ3, IP3SR1_15_12)
#define GPSR1_26 F_(IRQ2, IP3SR1_11_8)
#define GPSR1_25 F_(IRQ1, IP3SR1_7_4)
#define GPSR1_24 F_(IRQ0, IP3SR1_3_0)
#define GPSR1_23 F_(MSIOF2_SS2, IP2SR1_31_28)
#define GPSR1_22 F_(MSIOF2_SS1, IP2SR1_27_24)
#define GPSR1_21 F_(MSIOF2_SYNC, IP2SR1_23_20)
#define GPSR1_20 F_(MSIOF2_SCK, IP2SR1_19_16)
#define GPSR1_19 F_(MSIOF2_TXD, IP2SR1_15_12)
#define GPSR1_18 F_(MSIOF2_RXD, IP2SR1_11_8)
#define GPSR1_17 F_(MSIOF1_SS2, IP2SR1_7_4)
#define GPSR1_16 F_(MSIOF1_SS1, IP2SR1_3_0)
#define GPSR1_15 F_(MSIOF1_SYNC, IP1SR1_31_28)
#define GPSR1_14 F_(MSIOF1_SCK, IP1SR1_27_24)
#define GPSR1_13 F_(MSIOF1_TXD, IP1SR1_23_20)
#define GPSR1_12 F_(MSIOF1_RXD, IP1SR1_19_16)
#define GPSR1_11 F_(MSIOF0_SS2, IP1SR1_15_12)
#define GPSR1_10 F_(MSIOF0_SS1, IP1SR1_11_8)
#define GPSR1_9  F_(MSIOF0_SYNC, IP1SR1_7_4)
#define GPSR1_8  F_(MSIOF0_SCK, IP1SR1_3_0)
#define GPSR1_7  F_(MSIOF0_TXD, IP0SR1_31_28)
#define GPSR1_6  F_(MSIOF0_RXD, IP0SR1_27_24)
#define GPSR1_5  F_(HTX0, IP0SR1_23_20)
#define GPSR1_4  F_(HCTS0_N, IP0SR1_19_16)
#define GPSR1_3  F_(HRTS0_N, IP0SR1_15_12)
#define GPSR1_2  F_(HSCK0, IP0SR1_11_8)
#define GPSR1_1  F_(HRX0, IP0SR1_7_4)
#define GPSR1_0  F_(SCIF_CLK, IP0SR1_3_0)

/* GPSR2 */
#define GPSR2_24 FM(TCLK2_A)
#define GPSR2_23 F_(TCLK1_A,  IP2SR2_31_28)
#define GPSR2_22 F_(TPU0TO1,  IP2SR2_27_24)
#define GPSR2_21 F_(TPU0TO0,  IP2SR2_23_20)
#define GPSR2_20 F_(CLK_EXTFXR,  IP2SR2_19_16)
#define GPSR2_19 F_(RXDB_EXTFXR,  IP2SR2_15_12)
#define GPSR2_18 F_(FXR_TXDB,  IP2SR2_11_8)
#define GPSR2_17 F_(RXDA_EXTFXR_A, IP2SR2_7_4)
#define GPSR2_16 F_(FXR_TXDA_A,  IP2SR2_3_0)
#define GPSR2_15 F_(GP2_15,  IP1SR2_31_28)
#define GPSR2_14 F_(GP2_14,  IP1SR2_27_24)
#define GPSR2_13 F_(GP2_13,  IP1SR2_23_20)
#define GPSR2_12 F_(GP2_12,  IP1SR2_19_16)
#define GPSR2_11 F_(GP2_11,  IP1SR2_15_12)
#define GPSR2_10 F_(GP2_10,  IP1SR2_11_8)
#define GPSR2_9  F_(GP2_09,  IP1SR2_7_4)
#define GPSR2_8  F_(GP2_08,  IP1SR2_3_0)
#define GPSR2_7  F_(GP2_07,  IP0SR2_31_28)
#define GPSR2_6  F_(GP2_06,  IP0SR2_27_24)
#define GPSR2_5  F_(GP2_05,  IP0SR2_23_20)
#define GPSR2_4  F_(GP2_04,  IP0SR2_19_16)
#define GPSR2_3  F_(GP2_03,  IP0SR2_15_12)
#define GPSR2_2  F_(GP2_02,  IP0SR2_11_8)
#define GPSR2_1  F_(IPC_CLKOUT,  IP0SR2_7_4)
#define GPSR2_0  F_(IPC_CLKIN,  IP0SR2_3_0)

/* GPSR3 */
#define GPSR3_16 FM(CANFD7_RX)
#define GPSR3_15 FM(CANFD7_TX)
#define GPSR3_14 FM(CANFD6_RX)
#define GPSR3_13 F_(CANFD6_TX, IP1SR3_23_20)
#define GPSR3_12 F_(CANFD5_RX, IP1SR3_19_16)
#define GPSR3_11 F_(CANFD5_TX, IP1SR3_15_12)
#define GPSR3_10 F_(CANFD4_RX, IP1SR3_11_8)
#define GPSR3_9  F_(CANFD4_TX, IP1SR3_7_4)
#define GPSR3_8  F_(CANFD3_RX, IP1SR3_3_0)
#define GPSR3_7  F_(CANFD3_TX, IP0SR3_31_28)
#define GPSR3_6  F_(CANFD2_RX, IP0SR3_27_24)
#define GPSR3_5  F_(CANFD2_TX, IP0SR3_23_20)
#define GPSR3_4  FM(CANFD1_RX)
#define GPSR3_3  FM(CANFD1_TX)
#define GPSR3_2  F_(CANFD0_RX, IP0SR3_11_8)
#define GPSR3_1  F_(CANFD0_TX, IP0SR3_7_4)
#define GPSR3_0  FM(CAN_CLK)

/* GPSR4 */
#define GPSR4_26 FM(AVS1)
#define GPSR4_25 FM(AVS0)
#define GPSR4_24 FM(PCIE3_CLKREQ_N)
#define GPSR4_23 FM(PCIE2_CLKREQ_N)
#define GPSR4_22 FM(PCIE1_CLKREQ_N)
#define GPSR4_21 FM(PCIE0_CLKREQ_N)
#define GPSR4_20 F_(AVB0_AVTP_PPS, IP2SR4_19_16)
#define GPSR4_19 F_(AVB0_AVTP_CAPTURE, IP2SR4_15_12)
#define GPSR4_18 F_(AVB0_AVTP_MATCH, IP2SR4_11_8)
#define GPSR4_17 F_(AVB0_LINK,  IP2SR4_7_4)
#define GPSR4_16 FM(AVB0_PHY_INT)
#define GPSR4_15 F_(AVB0_MAGIC,  IP1SR4_31_28)
#define GPSR4_14 F_(AVB0_MDC,  IP1SR4_27_24)
#define GPSR4_13 F_(AVB0_MDIO,  IP1SR4_23_20)
#define GPSR4_12 F_(AVB0_TXCREFCLK, IP1SR4_19_16)
#define GPSR4_11 F_(AVB0_TD3,  IP1SR4_15_12)
#define GPSR4_10 F_(AVB0_TD2,  IP1SR4_11_8)
#define GPSR4_9  F_(AVB0_TD1,  IP1SR4_7_4)
#define GPSR4_8  F_(AVB0_TD0,  IP1SR4_3_0)
#define GPSR4_7  F_(AVB0_TXC,  IP0SR4_31_28)
#define GPSR4_6  F_(AVB0_TX_CTL,  IP0SR4_27_24)
#define GPSR4_5  F_(AVB0_RD3,  IP0SR4_23_20)
#define GPSR4_4  F_(AVB0_RD2,  IP0SR4_19_16)
#define GPSR4_3  F_(AVB0_RD1,  IP0SR4_15_12)
#define GPSR4_2  F_(AVB0_RD0,  IP0SR4_11_8)
#define GPSR4_1  F_(AVB0_RXC,  IP0SR4_7_4)
#define GPSR4_0  F_(AVB0_RX_CTL,  IP0SR4_3_0)

/* GPSR5 */
#define GPSR5_20 F_(AVB1_AVTP_PPS, IP2SR5_19_16)
#define GPSR5_19 F_(AVB1_AVTP_CAPTURE, IP2SR5_15_12)
#define GPSR5_18 F_(AVB1_AVTP_MATCH, IP2SR5_11_8)
#define GPSR5_17 F_(AVB1_LINK,  IP2SR5_7_4)
#define GPSR5_16 FM(AVB1_PHY_INT)
#define GPSR5_15 F_(AVB1_MAGIC,  IP1SR5_31_28)
#define GPSR5_14 F_(AVB1_MDC,  IP1SR5_27_24)
#define GPSR5_13 F_(AVB1_MDIO,  IP1SR5_23_20)
#define GPSR5_12 F_(AVB1_TXCREFCLK, IP1SR5_19_16)
#define GPSR5_11 F_(AVB1_TD3,  IP1SR5_15_12)
#define GPSR5_10 F_(AVB1_TD2,  IP1SR5_11_8)
#define GPSR5_9  F_(AVB1_TD1,  IP1SR5_7_4)
#define GPSR5_8  F_(AVB1_TD0,  IP1SR5_3_0)
#define GPSR5_7  F_(AVB1_TXC,  IP0SR5_31_28)
#define GPSR5_6  F_(AVB1_TX_CTL,  IP0SR5_27_24)
#define GPSR5_5  F_(AVB1_RD3,  IP0SR5_23_20)
#define GPSR5_4  F_(AVB1_RD2,  IP0SR5_19_16)
#define GPSR5_3  F_(AVB1_RD1,  IP0SR5_15_12)
#define GPSR5_2  F_(AVB1_RD0,  IP0SR5_11_8)
#define GPSR5_1  F_(AVB1_RXC,  IP0SR5_7_4)
#define GPSR5_0  F_(AVB1_RX_CTL,  IP0SR5_3_0)

/* GPSR6 */
#define GPSR6_20 FM(AVB2_AVTP_PPS)
#define GPSR6_19 FM(AVB2_AVTP_CAPTURE)
#define GPSR6_18 FM(AVB2_AVTP_MATCH)
#define GPSR6_17 FM(AVB2_LINK)
#define GPSR6_16 FM(AVB2_PHY_INT)
#define GPSR6_15 FM(AVB2_MAGIC)
#define GPSR6_14 FM(AVB2_MDC)
#define GPSR6_13 FM(AVB2_MDIO)
#define GPSR6_12 FM(AVB2_TXCREFCLK)
#define GPSR6_11 FM(AVB2_TD3)
#define GPSR6_10 FM(AVB2_TD2)
#define GPSR6_9  FM(AVB2_TD1)
#define GPSR6_8  FM(AVB2_TD0)
#define GPSR6_7  FM(AVB2_TXC)
#define GPSR6_6  FM(AVB2_TX_CTL)
#define GPSR6_5  FM(AVB2_RD3)
#define GPSR6_4  FM(AVB2_RD2)
#define GPSR6_3  FM(AVB2_RD1)
#define GPSR6_2  FM(AVB2_RD0)
#define GPSR6_1  FM(AVB2_RXC)
#define GPSR6_0  FM(AVB2_RX_CTL)

/* GPSR7 */
#define GPSR7_20 FM(AVB3_AVTP_PPS)
#define GPSR7_19 FM(AVB3_AVTP_CAPTURE)
#define GPSR7_18 FM(AVB3_AVTP_MATCH)
#define GPSR7_17 FM(AVB3_LINK)
#define GPSR7_16 FM(AVB3_PHY_INT)
#define GPSR7_15 FM(AVB3_MAGIC)
#define GPSR7_14 FM(AVB3_MDC)
#define GPSR7_13 FM(AVB3_MDIO)
#define GPSR7_12 FM(AVB3_TXCREFCLK)
#define GPSR7_11 FM(AVB3_TD3)
#define GPSR7_10 FM(AVB3_TD2)
#define GPSR7_9  FM(AVB3_TD1)
#define GPSR7_8  FM(AVB3_TD0)
#define GPSR7_7  FM(AVB3_TXC)
#define GPSR7_6  FM(AVB3_TX_CTL)
#define GPSR7_5  FM(AVB3_RD3)
#define GPSR7_4  FM(AVB3_RD2)
#define GPSR7_3  FM(AVB3_RD1)
#define GPSR7_2  FM(AVB3_RD0)
#define GPSR7_1  FM(AVB3_RXC)
#define GPSR7_0  FM(AVB3_RX_CTL)

/* GPSR8 */
#define GPSR8_20 FM(AVB4_AVTP_PPS)
#define GPSR8_19 FM(AVB4_AVTP_CAPTURE)
#define GPSR8_18 FM(AVB4_AVTP_MATCH)
#define GPSR8_17 FM(AVB4_LINK)
#define GPSR8_16 FM(AVB4_PHY_INT)
#define GPSR8_15 FM(AVB4_MAGIC)
#define GPSR8_14 FM(AVB4_MDC)
#define GPSR8_13 FM(AVB4_MDIO)
#define GPSR8_12 FM(AVB4_TXCREFCLK)
#define GPSR8_11 FM(AVB4_TD3)
#define GPSR8_10 FM(AVB4_TD2)
#define GPSR8_9  FM(AVB4_TD1)
#define GPSR8_8  FM(AVB4_TD0)
#define GPSR8_7  FM(AVB4_TXC)
#define GPSR8_6  FM(AVB4_TX_CTL)
#define GPSR8_5  FM(AVB4_RD3)
#define GPSR8_4  FM(AVB4_RD2)
#define GPSR8_3  FM(AVB4_RD1)
#define GPSR8_2  FM(AVB4_RD0)
#define GPSR8_1  FM(AVB4_RXC)
#define GPSR8_0  FM(AVB4_RX_CTL)

/* GPSR9 */
#define GPSR9_20 FM(AVB5_AVTP_PPS)
#define GPSR9_19 FM(AVB5_AVTP_CAPTURE)
#define GPSR9_18 FM(AVB5_AVTP_MATCH)
#define GPSR9_17 FM(AVB5_LINK)
#define GPSR9_16 FM(AVB5_PHY_INT)
#define GPSR9_15 FM(AVB5_MAGIC)
#define GPSR9_14 FM(AVB5_MDC)
#define GPSR9_13 FM(AVB5_MDIO)
#define GPSR9_12 FM(AVB5_TXCREFCLK)
#define GPSR9_11 FM(AVB5_TD3)
#define GPSR9_10 FM(AVB5_TD2)
#define GPSR9_9  FM(AVB5_TD1)
#define GPSR9_8  FM(AVB5_TD0)
#define GPSR9_7  FM(AVB5_TXC)
#define GPSR9_6  FM(AVB5_TX_CTL)
#define GPSR9_5  FM(AVB5_RD3)
#define GPSR9_4  FM(AVB5_RD2)
#define GPSR9_3  FM(AVB5_RD1)
#define GPSR9_2  FM(AVB5_RD0)
#define GPSR9_1  FM(AVB5_RXC)
#define GPSR9_0  FM(AVB5_RX_CTL)

/* IP0SR1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP0SR1_3_0 FM(SCIF_CLK) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(A0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_7_4 FM(HRX0) FM(RX0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(A1)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_11_8 FM(HSCK0) FM(SCK0) F_(0, 0) F_(0, 0) F_(0, 0) FM(A2)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_15_12 FM(HRTS0_N) FM(RTS0_N) F_(0, 0) F_(0, 0) F_(0, 0) FM(A3)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_19_16 FM(HCTS0_N) FM(CTS0_N) F_(0, 0) F_(0, 0) F_(0, 0) FM(A4)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_23_20 FM(HTX0) FM(TX0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(A5)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_27_24 FM(MSIOF0_RXD) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR2) FM(A6)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR1_31_28 FM(MSIOF0_TXD) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR3) FM(A7)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP1SR1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP1SR1_3_0 FM(MSIOF0_SCK) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR4) FM(A8)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_7_4 FM(MSIOF0_SYNC) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR5) FM(A9)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_11_8 FM(MSIOF0_SS1) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR6) FM(A10)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_15_12 FM(MSIOF0_SS2) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DR7) FM(A11)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_19_16 FM(MSIOF1_RXD) F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DG2) FM(A12)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_23_20 FM(MSIOF1_TXD) FM(HRX3) FM(SCK3) F_(0, 0) FM(DU_DG3) FM(A13)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_27_24 FM(MSIOF1_SCK) FM(HSCK3) FM(CTS3_N) F_(0, 0) FM(DU_DG4) FM(A14)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR1_31_28 FM(MSIOF1_SYNC) FM(HRTS3_N) FM(RTS3_N) F_(0, 0) FM(DU_DG5) FM(A15)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP2SR1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP2SR1_3_0 FM(MSIOF1_SS1) FM(HCTS3_N) FM(RX3)  F_(0, 0) FM(DU_DG6) FM(A16)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_7_4 FM(MSIOF1_SS2) FM(HTX3) FM(TX3)  F_(0, 0) FM(DU_DG7) FM(A17)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_11_8 FM(MSIOF2_RXD) FM(HSCK1) FM(SCK1) F_(0, 0) FM(DU_DB2) FM(A18)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_15_12 FM(MSIOF2_TXD) FM(HCTS1_N) FM(CTS1_N) F_(0, 0) FM(DU_DB3) FM(A19)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_19_16 FM(MSIOF2_SCK) FM(HRTS1_N) FM(RTS1_N) F_(0, 0) FM(DU_DB4) FM(A20)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_23_20 FM(MSIOF2_SYNC) FM(HRX1) FM(RX1_A) F_(0, 0) FM(DU_DB5) FM(A21)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_27_24 FM(MSIOF2_SS1) FM(HTX1) FM(TX1_A) F_(0, 0) FM(DU_DB6) FM(A22)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR1_31_28 FM(MSIOF2_SS2) FM(TCLK1_B) F_(0, 0) F_(0, 0) FM(DU_DB7) FM(A23)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)

/* IP3SR1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP3SR1_3_0 FM(IRQ0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_DOTCLKOUT) FM(A24)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP3SR1_7_4 FM(IRQ1)  F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_HSYNC)  FM(A25)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP3SR1_11_8 FM(IRQ2)  F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_VSYNC)  FM(CS1_N_A26) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP3SR1_15_12 FM(IRQ3)  F_(0, 0) F_(0, 0) F_(0, 0) FM(DU_ODDF_DISP_CDE) FM(CS0_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP3SR1_19_16 FM(GP1_28)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)  FM(D0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP3SR1_23_20 FM(GP1_29)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)  FM(D1)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP3SR1_27_24 FM(GP1_30)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)  FM(D2)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)

/* IP0SR2 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP0SR2_3_0 FM(IPC_CLKIN)  FM(IPC_CLKEN_IN) F_(0, 0) F_(0, 0) FM(DU_DOTCLKIN) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_7_4 FM(IPC_CLKOUT)  FM(IPC_CLKEN_OUT) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_11_8 FM(GP2_02)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(D3)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_15_12 FM(GP2_03)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(D4)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_19_16 FM(GP2_04)  F_(0, 0)  FM(MSIOF4_RXD) F_(0, 0) F_(0, 0) FM(D5)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_23_20 FM(GP2_05)  FM(HSCK2)  FM(MSIOF4_TXD) FM(SCK4) F_(0, 0) FM(D6)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_27_24 FM(GP2_06)  FM(HCTS2_N)  FM(MSIOF4_SCK) FM(CTS4_N) F_(0, 0) FM(D7)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR2_31_28 FM(GP2_07)  FM(HRTS2_N)  FM(MSIOF4_SYNC) FM(RTS4_N) F_(0, 0) FM(D8)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP1SR2 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP1SR2_3_0 FM(GP2_08)  FM(HRX2)  FM(MSIOF4_SS1) FM(RX4)  F_(0, 0) FM(D9)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_7_4 FM(GP2_09)  FM(HTX2)  FM(MSIOF4_SS2) FM(TX4)  F_(0, 0) FM(D10)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_11_8 FM(GP2_10)  FM(TCLK2_B)  FM(MSIOF5_RXD) F_(0, 0) F_(0, 0) FM(D11)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_15_12 FM(GP2_11)  FM(TCLK3)  FM(MSIOF5_TXD) F_(0, 0) F_(0, 0) FM(D12)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_19_16 FM(GP2_12)  FM(TCLK4)  FM(MSIOF5_SCK) F_(0, 0) F_(0, 0) FM(D13)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_23_20 FM(GP2_13)  F_(0, 0)  FM(MSIOF5_SYNC) F_(0, 0) F_(0, 0) FM(D14)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_27_24 FM(GP2_14)  FM(IRQ4)  FM(MSIOF5_SS1) F_(0, 0) F_(0, 0) FM(D15)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR2_31_28 FM(GP2_15)  FM(IRQ5)  FM(MSIOF5_SS2) FM(CPG_CPCKOUT) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP2SR2 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP2SR2_3_0 FM(FXR_TXDA_A)  FM(MSIOF3_SS1)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_7_4 FM(RXDA_EXTFXR_A) FM(MSIOF3_SS2)  F_(0, 0) F_(0, 0) F_(0, 0) FM(BS_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_11_8 FM(FXR_TXDB)  FM(MSIOF3_RXD)  F_(0, 0) F_(0, 0) F_(0, 0) FM(RD_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_15_12 FM(RXDB_EXTFXR)  FM(MSIOF3_TXD)  F_(0, 0) F_(0, 0) F_(0, 0) FM(WE0_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_19_16 FM(CLK_EXTFXR)  FM(MSIOF3_SCK)  F_(0, 0) F_(0, 0) F_(0, 0) FM(WE1_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_23_20 FM(TPU0TO0)  FM(MSIOF3_SYNC)  F_(0, 0) F_(0, 0) F_(0, 0) FM(RD_WR_N) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_27_24 FM(TPU0TO1)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(CLKOUT) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR2_31_28 FM(TCLK1_A)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) FM(EX_WAIT0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)

/* IP0SR3 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP0SR3_7_4 FM(CANFD0_TX) FM(FXR_TXDA_B)  FM(TX1_B) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR3_11_8 FM(CANFD0_RX) FM(RXDA_EXTFXR_B) FM(RX1_B) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR3_23_20 FM(CANFD2_TX) FM(TPU0TO2)  FM(PWM0) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR3_27_24 FM(CANFD2_RX) FM(TPU0TO3)  FM(PWM1) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR3_31_28 FM(CANFD3_TX) F_(0, 0)  FM(PWM2) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP1SR3 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP1SR3_3_0 FM(CANFD3_RX) F_(0, 0)  FM(PWM3) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR3_7_4 FM(CANFD4_TX) F_(0, 0)  FM(PWM4) FM(FXR_CLKOUT1)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR3_11_8 FM(CANFD4_RX) F_(0, 0)  F_(0, 0) FM(FXR_CLKOUT2)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR3_15_12 FM(CANFD5_TX) F_(0, 0)  F_(0, 0) FM(FXR_TXENA_N)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR3_19_16 FM(CANFD5_RX) F_(0, 0)  F_(0, 0) FM(FXR_TXENB_N)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR3_23_20 FM(CANFD6_TX) F_(0, 0)  F_(0, 0) FM(STPWT_EXTFXR) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)

/* IP0SR4 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP0SR4_3_0 FM(AVB0_RX_CTL) FM(AVB0_MII_RX_DV) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_7_4 FM(AVB0_RXC) FM(AVB0_MII_RXC) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_11_8 FM(AVB0_RD0) FM(AVB0_MII_RD0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_15_12 FM(AVB0_RD1) FM(AVB0_MII_RD1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_19_16 FM(AVB0_RD2) FM(AVB0_MII_RD2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_23_20 FM(AVB0_RD3) FM(AVB0_MII_RD3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_27_24 FM(AVB0_TX_CTL) FM(AVB0_MII_TX_EN) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR4_31_28 FM(AVB0_TXC) FM(AVB0_MII_TXC) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP1SR4 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP1SR4_3_0 FM(AVB0_TD0)  FM(AVB0_MII_TD0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_7_4 FM(AVB0_TD1)  FM(AVB0_MII_TD1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_11_8 FM(AVB0_TD2)  FM(AVB0_MII_TD2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_15_12 FM(AVB0_TD3)  FM(AVB0_MII_TD3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_19_16 FM(AVB0_TXCREFCLK) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_23_20 FM(AVB0_MDIO)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_27_24 FM(AVB0_MDC)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR4_31_28 FM(AVB0_MAGIC)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP2SR4 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP2SR4_7_4 FM(AVB0_LINK)  FM(AVB0_MII_TX_ER) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR4_11_8 FM(AVB0_AVTP_MATCH) FM(AVB0_MII_RX_ER) FM(CC5_OSCOUT) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR4_15_12 FM(AVB0_AVTP_CAPTURE) FM(AVB0_MII_CRS) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR4_19_16 FM(AVB0_AVTP_PPS) FM(AVB0_MII_COL) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)

/* IP0SR5 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP0SR5_3_0 FM(AVB1_RX_CTL)  FM(AVB1_MII_RX_DV) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_7_4 FM(AVB1_RXC)  FM(AVB1_MII_RXC) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_11_8 FM(AVB1_RD0)  FM(AVB1_MII_RD0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_15_12 FM(AVB1_RD1)  FM(AVB1_MII_RD1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_19_16 FM(AVB1_RD2)  FM(AVB1_MII_RD2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_23_20 FM(AVB1_RD3)  FM(AVB1_MII_RD3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_27_24 FM(AVB1_TX_CTL)  FM(AVB1_MII_TX_EN) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP0SR5_31_28 FM(AVB1_TXC)  FM(AVB1_MII_TXC) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP1SR5 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP1SR5_3_0 FM(AVB1_TD0)  FM(AVB1_MII_TD0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_7_4 FM(AVB1_TD1)  FM(AVB1_MII_TD1) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_11_8 FM(AVB1_TD2)  FM(AVB1_MII_TD2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_15_12 FM(AVB1_TD3)  FM(AVB1_MII_TD3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_19_16 FM(AVB1_TXCREFCLK) F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_23_20 FM(AVB1_MDIO)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_27_24 FM(AVB1_MDC)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP1SR5_31_28 FM(AVB1_MAGIC)  F_(0, 0)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
/* IP2SR5 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 - F */
#define IP2SR5_7_4 FM(AVB1_LINK)  FM(AVB1_MII_TX_ER) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR5_11_8 FM(AVB1_AVTP_MATCH) FM(AVB1_MII_RX_ER) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR5_15_12 FM(AVB1_AVTP_CAPTURE) FM(AVB1_MII_CRS) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
#define IP2SR5_19_16 FM(AVB1_AVTP_PPS) FM(AVB1_MII_COL) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)

#define PINMUX_GPSR  \
    \
  GPSR1_30 \
  GPSR1_29 \
  GPSR1_28 \
GPSR0_27 GPSR1_27 \
GPSR0_26 GPSR1_26     GPSR4_26 \
GPSR0_25 GPSR1_25     GPSR4_25 \
GPSR0_24 GPSR1_24 GPSR2_24   GPSR4_24 \
GPSR0_23 GPSR1_23 GPSR2_23   GPSR4_23 \
GPSR0_22 GPSR1_22 GPSR2_22   GPSR4_22 \
GPSR0_21 GPSR1_21 GPSR2_21   GPSR4_21 \
GPSR0_20 GPSR1_20 GPSR2_20   GPSR4_20 GPSR5_20 GPSR6_20 GPSR7_20 GPSR8_20 GPSR9_20 \
GPSR0_19 GPSR1_19 GPSR2_19   GPSR4_19 GPSR5_19 GPSR6_19 GPSR7_19 GPSR8_19 GPSR9_19 \
GPSR0_18 GPSR1_18 GPSR2_18   GPSR4_18 GPSR5_18 GPSR6_18 GPSR7_18 GPSR8_18 GPSR9_18 \
GPSR0_17 GPSR1_17 GPSR2_17   GPSR4_17 GPSR5_17 GPSR6_17 GPSR7_17 GPSR8_17 GPSR9_17 \
GPSR0_16 GPSR1_16 GPSR2_16 GPSR3_16 GPSR4_16 GPSR5_16 GPSR6_16 GPSR7_16 GPSR8_16 GPSR9_16 \
GPSR0_15 GPSR1_15 GPSR2_15 GPSR3_15 GPSR4_15 GPSR5_15 GPSR6_15 GPSR7_15 GPSR8_15 GPSR9_15 \
GPSR0_14 GPSR1_14 GPSR2_14 GPSR3_14 GPSR4_14 GPSR5_14 GPSR6_14 GPSR7_14 GPSR8_14 GPSR9_14 \
GPSR0_13 GPSR1_13 GPSR2_13 GPSR3_13 GPSR4_13 GPSR5_13 GPSR6_13 GPSR7_13 GPSR8_13 GPSR9_13 \
GPSR0_12 GPSR1_12 GPSR2_12 GPSR3_12 GPSR4_12 GPSR5_12 GPSR6_12 GPSR7_12 GPSR8_12 GPSR9_12 \
GPSR0_11 GPSR1_11 GPSR2_11 GPSR3_11 GPSR4_11 GPSR5_11 GPSR6_11 GPSR7_11 GPSR8_11 GPSR9_11 \
GPSR0_10 GPSR1_10 GPSR2_10 GPSR3_10 GPSR4_10 GPSR5_10 GPSR6_10 GPSR7_10 GPSR8_10 GPSR9_10 \
GPSR0_9  GPSR1_9  GPSR2_9  GPSR3_9  GPSR4_9  GPSR5_9  GPSR6_9  GPSR7_9  GPSR8_9  GPSR9_9 \
GPSR0_8  GPSR1_8  GPSR2_8  GPSR3_8  GPSR4_8  GPSR5_8  GPSR6_8  GPSR7_8  GPSR8_8  GPSR9_8 \
GPSR0_7  GPSR1_7  GPSR2_7  GPSR3_7  GPSR4_7  GPSR5_7  GPSR6_7  GPSR7_7  GPSR8_7  GPSR9_7 \
GPSR0_6  GPSR1_6  GPSR2_6  GPSR3_6  GPSR4_6  GPSR5_6  GPSR6_6  GPSR7_6  GPSR8_6  GPSR9_6 \
GPSR0_5  GPSR1_5  GPSR2_5  GPSR3_5  GPSR4_5  GPSR5_5  GPSR6_5  GPSR7_5  GPSR8_5  GPSR9_5 \
GPSR0_4  GPSR1_4  GPSR2_4  GPSR3_4  GPSR4_4  GPSR5_4  GPSR6_4  GPSR7_4  GPSR8_4  GPSR9_4 \
GPSR0_3  GPSR1_3  GPSR2_3  GPSR3_3  GPSR4_3  GPSR5_3  GPSR6_3  GPSR7_3  GPSR8_3  GPSR9_3 \
GPSR0_2  GPSR1_2  GPSR2_2  GPSR3_2  GPSR4_2  GPSR5_2  GPSR6_2  GPSR7_2  GPSR8_2  GPSR9_2 \
GPSR0_1  GPSR1_1  GPSR2_1  GPSR3_1  GPSR4_1  GPSR5_1  GPSR6_1  GPSR7_1  GPSR8_1  GPSR9_1 \
GPSR0_0  GPSR1_0  GPSR2_0  GPSR3_0  GPSR4_0  GPSR5_0  GPSR6_0  GPSR7_0  GPSR8_0  GPSR9_0

#define PINMUX_IPSR \
\
FM(IP0SR1_3_0)  IP0SR1_3_0 FM(IP1SR1_3_0)  IP1SR1_3_0 FM(IP2SR1_3_0)  IP2SR1_3_0 FM(IP3SR1_3_0)  IP3SR1_3_0 \
FM(IP0SR1_7_4)  IP0SR1_7_4 FM(IP1SR1_7_4)  IP1SR1_7_4 FM(IP2SR1_7_4)  IP2SR1_7_4 FM(IP3SR1_7_4)  IP3SR1_7_4 \
FM(IP0SR1_11_8)  IP0SR1_11_8 FM(IP1SR1_11_8)  IP1SR1_11_8 FM(IP2SR1_11_8)  IP2SR1_11_8 FM(IP3SR1_11_8)  IP3SR1_11_8 \
FM(IP0SR1_15_12) IP0SR1_15_12 FM(IP1SR1_15_12) IP1SR1_15_12 FM(IP2SR1_15_12) IP2SR1_15_12 FM(IP3SR1_15_12) IP3SR1_15_12 \
FM(IP0SR1_19_16) IP0SR1_19_16 FM(IP1SR1_19_16) IP1SR1_19_16 FM(IP2SR1_19_16) IP2SR1_19_16 FM(IP3SR1_19_16) IP3SR1_19_16 \
FM(IP0SR1_23_20) IP0SR1_23_20 FM(IP1SR1_23_20) IP1SR1_23_20 FM(IP2SR1_23_20) IP2SR1_23_20 FM(IP3SR1_23_20) IP3SR1_23_20 \
FM(IP0SR1_27_24) IP0SR1_27_24 FM(IP1SR1_27_24) IP1SR1_27_24 FM(IP2SR1_27_24) IP2SR1_27_24 FM(IP3SR1_27_24) IP3SR1_27_24 \
FM(IP0SR1_31_28) IP0SR1_31_28 FM(IP1SR1_31_28) IP1SR1_31_28 FM(IP2SR1_31_28) IP2SR1_31_28 \
\
FM(IP0SR2_3_0)  IP0SR2_3_0 FM(IP1SR2_3_0)  IP1SR2_3_0 FM(IP2SR2_3_0)  IP2SR2_3_0 \
FM(IP0SR2_7_4)  IP0SR2_7_4 FM(IP1SR2_7_4)  IP1SR2_7_4 FM(IP2SR2_7_4)  IP2SR2_7_4 \
FM(IP0SR2_11_8)  IP0SR2_11_8 FM(IP1SR2_11_8)  IP1SR2_11_8 FM(IP2SR2_11_8)  IP2SR2_11_8 \
FM(IP0SR2_15_12) IP0SR2_15_12 FM(IP1SR2_15_12) IP1SR2_15_12 FM(IP2SR2_15_12) IP2SR2_15_12 \
FM(IP0SR2_19_16) IP0SR2_19_16 FM(IP1SR2_19_16) IP1SR2_19_16 FM(IP2SR2_19_16) IP2SR2_19_16 \
FM(IP0SR2_23_20) IP0SR2_23_20 FM(IP1SR2_23_20) IP1SR2_23_20 FM(IP2SR2_23_20) IP2SR2_23_20 \
FM(IP0SR2_27_24) IP0SR2_27_24 FM(IP1SR2_27_24) IP1SR2_27_24 FM(IP2SR2_27_24) IP2SR2_27_24 \
FM(IP0SR2_31_28) IP0SR2_31_28 FM(IP1SR2_31_28) IP1SR2_31_28 FM(IP2SR2_31_28) IP2SR2_31_28 \
\
     FM(IP1SR3_3_0)  IP1SR3_3_0 \
FM(IP0SR3_7_4)  IP0SR3_7_4 FM(IP1SR3_7_4)  IP1SR3_7_4 \
FM(IP0SR3_11_8)  IP0SR3_11_8 FM(IP1SR3_11_8)  IP1SR3_11_8 \
     FM(IP1SR3_15_12) IP1SR3_15_12 \
     FM(IP1SR3_19_16) IP1SR3_19_16 \
FM(IP0SR3_23_20) IP0SR3_23_20 FM(IP1SR3_23_20) IP1SR3_23_20 \
FM(IP0SR3_27_24) IP0SR3_27_24 \
FM(IP0SR3_31_28) IP0SR3_31_28 \
\
FM(IP0SR4_3_0)  IP0SR4_3_0 FM(IP1SR4_3_0)  IP1SR4_3_0 \
FM(IP0SR4_7_4)  IP0SR4_7_4 FM(IP1SR4_7_4)  IP1SR4_7_4 FM(IP2SR4_7_4)  IP2SR4_7_4 \
FM(IP0SR4_11_8)  IP0SR4_11_8 FM(IP1SR4_11_8)  IP1SR4_11_8 FM(IP2SR4_11_8)  IP2SR4_11_8 \
FM(IP0SR4_15_12) IP0SR4_15_12 FM(IP1SR4_15_12) IP1SR4_15_12 FM(IP2SR4_15_12) IP2SR4_15_12 \
FM(IP0SR4_19_16) IP0SR4_19_16 FM(IP1SR4_19_16) IP1SR4_19_16 FM(IP2SR4_19_16) IP2SR4_19_16 \
FM(IP0SR4_23_20) IP0SR4_23_20 FM(IP1SR4_23_20) IP1SR4_23_20 \
FM(IP0SR4_27_24) IP0SR4_27_24 FM(IP1SR4_27_24) IP1SR4_27_24 \
FM(IP0SR4_31_28) IP0SR4_31_28 FM(IP1SR4_31_28) IP1SR4_31_28 \
\
FM(IP0SR5_3_0)  IP0SR5_3_0 FM(IP1SR5_3_0)  IP1SR5_3_0 \
FM(IP0SR5_7_4)  IP0SR5_7_4 FM(IP1SR5_7_4)  IP1SR5_7_4 FM(IP2SR5_7_4)  IP2SR5_7_4 \
FM(IP0SR5_11_8)  IP0SR5_11_8 FM(IP1SR5_11_8)  IP1SR5_11_8 FM(IP2SR5_11_8)  IP2SR5_11_8 \
FM(IP0SR5_15_12) IP0SR5_15_12 FM(IP1SR5_15_12) IP1SR5_15_12 FM(IP2SR5_15_12) IP2SR5_15_12 \
FM(IP0SR5_19_16) IP0SR5_19_16 FM(IP1SR5_19_16) IP1SR5_19_16 FM(IP2SR5_19_16) IP2SR5_19_16 \
FM(IP0SR5_23_20) IP0SR5_23_20 FM(IP1SR5_23_20) IP1SR5_23_20 \
FM(IP0SR5_27_24) IP0SR5_27_24 FM(IP1SR5_27_24) IP1SR5_27_24 \
FM(IP0SR5_31_28) IP0SR5_31_28 FM(IP1SR5_31_28) IP1SR5_31_28

/* MOD_SEL2 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */
#define MOD_SEL2_15_14  FM(SEL_I2C6_0) F_(0, 0) F_(0, 0) FM(SEL_I2C6_3)
#define MOD_SEL2_13_12  FM(SEL_I2C5_0) F_(0, 0) F_(0, 0) FM(SEL_I2C5_3)
#define MOD_SEL2_11_10  FM(SEL_I2C4_0) F_(0, 0) F_(0, 0) FM(SEL_I2C4_3)
#define MOD_SEL2_9_8  FM(SEL_I2C3_0) F_(0, 0) F_(0, 0) FM(SEL_I2C3_3)
#define MOD_SEL2_7_6  FM(SEL_I2C2_0) F_(0, 0) F_(0, 0) FM(SEL_I2C2_3)
#define MOD_SEL2_5_4  FM(SEL_I2C1_0) F_(0, 0) F_(0, 0) FM(SEL_I2C1_3)
#define MOD_SEL2_3_2  FM(SEL_I2C0_0) F_(0, 0) F_(0, 0) FM(SEL_I2C0_3)

#define PINMUX_MOD_SELS \
\
MOD_SEL2_15_14 \
MOD_SEL2_13_12 \
MOD_SEL2_11_10 \
MOD_SEL2_9_8 \
MOD_SEL2_7_6 \
MOD_SEL2_5_4 \
MOD_SEL2_3_2

#define PINMUX_PHYS \
 FM(SCL0) FM(SDA0) FM(SCL1) FM(SDA1) FM(SCL2) FM(SDA2) FM(SCL3) FM(SDA3) \
 FM(SCL4) FM(SDA4) FM(SCL5) FM(SDA5) FM(SCL6) FM(SDA6)

enum {
 PINMUX_RESERVED = 0,

 PINMUX_DATA_BEGIN,
 GP_ALL(DATA),
 PINMUX_DATA_END,

#define F_(x, y)
#define FM(x)   FN_##x,
 PINMUX_FUNCTION_BEGIN,
 GP_ALL(FN),
 PINMUX_GPSR
 PINMUX_IPSR
 PINMUX_MOD_SELS
 PINMUX_FUNCTION_END,
#undef F_
#undef FM

#define F_(x, y)
#define FM(x) x##_MARK,
 PINMUX_MARK_BEGIN,
 PINMUX_GPSR
 PINMUX_IPSR
 PINMUX_MOD_SELS
 PINMUX_PHYS
 PINMUX_MARK_END,
#undef F_
#undef FM
};

static const u16 pinmux_data[] = {
/* Using GP_2_[2-15] requires disabling I2C in MOD_SEL2 */
#define GP_2_2_FN GP_2_2_FN, FN_SEL_I2C0_0
#define GP_2_3_FN GP_2_3_FN, FN_SEL_I2C0_0
#define GP_2_4_FN GP_2_4_FN, FN_SEL_I2C1_0
#define GP_2_5_FN GP_2_5_FN, FN_SEL_I2C1_0
#define GP_2_6_FN GP_2_6_FN, FN_SEL_I2C2_0
#define GP_2_7_FN GP_2_7_FN, FN_SEL_I2C2_0
#define GP_2_8_FN GP_2_8_FN, FN_SEL_I2C3_0
#define GP_2_9_FN GP_2_9_FN, FN_SEL_I2C3_0
#define GP_2_10_FN GP_2_10_FN, FN_SEL_I2C4_0
#define GP_2_11_FN GP_2_11_FN, FN_SEL_I2C4_0
#define GP_2_12_FN GP_2_12_FN, FN_SEL_I2C5_0
#define GP_2_13_FN GP_2_13_FN, FN_SEL_I2C5_0
#define GP_2_14_FN GP_2_14_FN, FN_SEL_I2C6_0
#define GP_2_15_FN GP_2_15_FN, FN_SEL_I2C6_0
 PINMUX_DATA_GP_ALL(),
#undef GP_2_2_FN
#undef GP_2_3_FN
#undef GP_2_4_FN
#undef GP_2_5_FN
#undef GP_2_6_FN
#undef GP_2_7_FN
#undef GP_2_8_FN
#undef GP_2_9_FN
#undef GP_2_10_FN
#undef GP_2_11_FN
#undef GP_2_12_FN
#undef GP_2_13_FN
#undef GP_2_14_FN
#undef GP_2_15_FN

 PINMUX_SINGLE(MMC_D7),
 PINMUX_SINGLE(MMC_D6),
 PINMUX_SINGLE(MMC_D5),
 PINMUX_SINGLE(MMC_D4),
 PINMUX_SINGLE(MMC_SD_CLK),
 PINMUX_SINGLE(MMC_SD_D3),
 PINMUX_SINGLE(MMC_SD_D2),
 PINMUX_SINGLE(MMC_SD_D1),
 PINMUX_SINGLE(MMC_SD_D0),
 PINMUX_SINGLE(MMC_SD_CMD),
 PINMUX_SINGLE(MMC_DS),

 PINMUX_SINGLE(SD_CD),
 PINMUX_SINGLE(SD_WP),

 PINMUX_SINGLE(RPC_INT_N),
 PINMUX_SINGLE(RPC_WP_N),
 PINMUX_SINGLE(RPC_RESET_N),

 PINMUX_SINGLE(QSPI1_SSL),
 PINMUX_SINGLE(QSPI1_IO3),
 PINMUX_SINGLE(QSPI1_IO2),
 PINMUX_SINGLE(QSPI1_MISO_IO1),
 PINMUX_SINGLE(QSPI1_MOSI_IO0),
 PINMUX_SINGLE(QSPI1_SPCLK),
 PINMUX_SINGLE(QSPI0_SSL),
 PINMUX_SINGLE(QSPI0_IO3),
 PINMUX_SINGLE(QSPI0_IO2),
 PINMUX_SINGLE(QSPI0_MISO_IO1),
 PINMUX_SINGLE(QSPI0_MOSI_IO0),
 PINMUX_SINGLE(QSPI0_SPCLK),

 PINMUX_SINGLE(TCLK2_A),

 PINMUX_SINGLE(CANFD7_RX),
 PINMUX_SINGLE(CANFD7_TX),
 PINMUX_SINGLE(CANFD6_RX),
 PINMUX_SINGLE(CANFD1_RX),
 PINMUX_SINGLE(CANFD1_TX),
 PINMUX_SINGLE(CAN_CLK),

 PINMUX_SINGLE(AVS1),
 PINMUX_SINGLE(AVS0),

 PINMUX_SINGLE(PCIE3_CLKREQ_N),
 PINMUX_SINGLE(PCIE2_CLKREQ_N),
 PINMUX_SINGLE(PCIE1_CLKREQ_N),
 PINMUX_SINGLE(PCIE0_CLKREQ_N),

 PINMUX_SINGLE(AVB0_PHY_INT),

 PINMUX_SINGLE(AVB1_PHY_INT),

 PINMUX_SINGLE(AVB2_AVTP_PPS),
 PINMUX_SINGLE(AVB2_AVTP_CAPTURE),
 PINMUX_SINGLE(AVB2_AVTP_MATCH),
 PINMUX_SINGLE(AVB2_LINK),
 PINMUX_SINGLE(AVB2_PHY_INT),
 PINMUX_SINGLE(AVB2_MAGIC),
 PINMUX_SINGLE(AVB2_MDC),
 PINMUX_SINGLE(AVB2_MDIO),
 PINMUX_SINGLE(AVB2_TXCREFCLK),
 PINMUX_SINGLE(AVB2_TD3),
 PINMUX_SINGLE(AVB2_TD2),
 PINMUX_SINGLE(AVB2_TD1),
 PINMUX_SINGLE(AVB2_TD0),
 PINMUX_SINGLE(AVB2_TXC),
 PINMUX_SINGLE(AVB2_TX_CTL),
 PINMUX_SINGLE(AVB2_RD3),
 PINMUX_SINGLE(AVB2_RD2),
 PINMUX_SINGLE(AVB2_RD1),
 PINMUX_SINGLE(AVB2_RD0),
 PINMUX_SINGLE(AVB2_RXC),
 PINMUX_SINGLE(AVB2_RX_CTL),

 PINMUX_SINGLE(AVB3_AVTP_PPS),
 PINMUX_SINGLE(AVB3_AVTP_CAPTURE),
 PINMUX_SINGLE(AVB3_AVTP_MATCH),
 PINMUX_SINGLE(AVB3_LINK),
 PINMUX_SINGLE(AVB3_PHY_INT),
 PINMUX_SINGLE(AVB3_MAGIC),
 PINMUX_SINGLE(AVB3_MDC),
 PINMUX_SINGLE(AVB3_MDIO),
 PINMUX_SINGLE(AVB3_TXCREFCLK),
 PINMUX_SINGLE(AVB3_TD3),
 PINMUX_SINGLE(AVB3_TD2),
 PINMUX_SINGLE(AVB3_TD1),
 PINMUX_SINGLE(AVB3_TD0),
 PINMUX_SINGLE(AVB3_TXC),
 PINMUX_SINGLE(AVB3_TX_CTL),
 PINMUX_SINGLE(AVB3_RD3),
 PINMUX_SINGLE(AVB3_RD2),
 PINMUX_SINGLE(AVB3_RD1),
 PINMUX_SINGLE(AVB3_RD0),
 PINMUX_SINGLE(AVB3_RXC),
 PINMUX_SINGLE(AVB3_RX_CTL),

 PINMUX_SINGLE(AVB4_AVTP_PPS),
 PINMUX_SINGLE(AVB4_AVTP_CAPTURE),
 PINMUX_SINGLE(AVB4_AVTP_MATCH),
 PINMUX_SINGLE(AVB4_LINK),
 PINMUX_SINGLE(AVB4_PHY_INT),
 PINMUX_SINGLE(AVB4_MAGIC),
 PINMUX_SINGLE(AVB4_MDC),
 PINMUX_SINGLE(AVB4_MDIO),
 PINMUX_SINGLE(AVB4_TXCREFCLK),
 PINMUX_SINGLE(AVB4_TD3),
 PINMUX_SINGLE(AVB4_TD2),
 PINMUX_SINGLE(AVB4_TD1),
 PINMUX_SINGLE(AVB4_TD0),
 PINMUX_SINGLE(AVB4_TXC),
 PINMUX_SINGLE(AVB4_TX_CTL),
 PINMUX_SINGLE(AVB4_RD3),
 PINMUX_SINGLE(AVB4_RD2),
 PINMUX_SINGLE(AVB4_RD1),
 PINMUX_SINGLE(AVB4_RD0),
 PINMUX_SINGLE(AVB4_RXC),
 PINMUX_SINGLE(AVB4_RX_CTL),

 PINMUX_SINGLE(AVB5_AVTP_PPS),
 PINMUX_SINGLE(AVB5_AVTP_CAPTURE),
 PINMUX_SINGLE(AVB5_AVTP_MATCH),
 PINMUX_SINGLE(AVB5_LINK),
 PINMUX_SINGLE(AVB5_PHY_INT),
 PINMUX_SINGLE(AVB5_MAGIC),
 PINMUX_SINGLE(AVB5_MDC),
 PINMUX_SINGLE(AVB5_MDIO),
 PINMUX_SINGLE(AVB5_TXCREFCLK),
 PINMUX_SINGLE(AVB5_TD3),
 PINMUX_SINGLE(AVB5_TD2),
 PINMUX_SINGLE(AVB5_TD1),
 PINMUX_SINGLE(AVB5_TD0),
 PINMUX_SINGLE(AVB5_TXC),
 PINMUX_SINGLE(AVB5_TX_CTL),
 PINMUX_SINGLE(AVB5_RD3),
 PINMUX_SINGLE(AVB5_RD2),
 PINMUX_SINGLE(AVB5_RD1),
 PINMUX_SINGLE(AVB5_RD0),
 PINMUX_SINGLE(AVB5_RXC),
 PINMUX_SINGLE(AVB5_RX_CTL),

 /* IP0SR1 */
 PINMUX_IPSR_GPSR(IP0SR1_3_0, SCIF_CLK),
 PINMUX_IPSR_GPSR(IP0SR1_3_0, A0),

 PINMUX_IPSR_GPSR(IP0SR1_7_4, HRX0),
 PINMUX_IPSR_GPSR(IP0SR1_7_4, RX0),
 PINMUX_IPSR_GPSR(IP0SR1_7_4, A1),

 PINMUX_IPSR_GPSR(IP0SR1_11_8, HSCK0),
 PINMUX_IPSR_GPSR(IP0SR1_11_8, SCK0),
 PINMUX_IPSR_GPSR(IP0SR1_11_8, A2),

 PINMUX_IPSR_GPSR(IP0SR1_15_12, HRTS0_N),
 PINMUX_IPSR_GPSR(IP0SR1_15_12, RTS0_N),
 PINMUX_IPSR_GPSR(IP0SR1_15_12, A3),

 PINMUX_IPSR_GPSR(IP0SR1_19_16, HCTS0_N),
 PINMUX_IPSR_GPSR(IP0SR1_19_16, CTS0_N),
 PINMUX_IPSR_GPSR(IP0SR1_19_16, A4),

 PINMUX_IPSR_GPSR(IP0SR1_23_20, HTX0),
 PINMUX_IPSR_GPSR(IP0SR1_23_20, TX0),
 PINMUX_IPSR_GPSR(IP0SR1_23_20, A5),

 PINMUX_IPSR_GPSR(IP0SR1_27_24, MSIOF0_RXD),
 PINMUX_IPSR_GPSR(IP0SR1_27_24, DU_DR2),
 PINMUX_IPSR_GPSR(IP0SR1_27_24, A6),

 PINMUX_IPSR_GPSR(IP0SR1_31_28, MSIOF0_TXD),
 PINMUX_IPSR_GPSR(IP0SR1_31_28, DU_DR3),
 PINMUX_IPSR_GPSR(IP0SR1_31_28, A7),

 /* IP1SR1 */
 PINMUX_IPSR_GPSR(IP1SR1_3_0, MSIOF0_SCK),
 PINMUX_IPSR_GPSR(IP1SR1_3_0, DU_DR4),
 PINMUX_IPSR_GPSR(IP1SR1_3_0, A8),

 PINMUX_IPSR_GPSR(IP1SR1_7_4, MSIOF0_SYNC),
 PINMUX_IPSR_GPSR(IP1SR1_7_4, DU_DR5),
 PINMUX_IPSR_GPSR(IP1SR1_7_4, A9),

 PINMUX_IPSR_GPSR(IP1SR1_11_8, MSIOF0_SS1),
 PINMUX_IPSR_GPSR(IP1SR1_11_8, DU_DR6),
 PINMUX_IPSR_GPSR(IP1SR1_11_8, A10),

 PINMUX_IPSR_GPSR(IP1SR1_15_12, MSIOF0_SS2),
 PINMUX_IPSR_GPSR(IP1SR1_15_12, DU_DR7),
 PINMUX_IPSR_GPSR(IP1SR1_15_12, A11),

 PINMUX_IPSR_GPSR(IP1SR1_19_16, MSIOF1_RXD),
 PINMUX_IPSR_GPSR(IP1SR1_19_16, DU_DG2),
 PINMUX_IPSR_GPSR(IP1SR1_19_16, A12),

 PINMUX_IPSR_GPSR(IP1SR1_23_20, MSIOF1_TXD),
 PINMUX_IPSR_GPSR(IP1SR1_23_20, HRX3),
 PINMUX_IPSR_GPSR(IP1SR1_23_20, SCK3),
 PINMUX_IPSR_GPSR(IP1SR1_23_20, DU_DG3),
 PINMUX_IPSR_GPSR(IP1SR1_23_20, A13),

 PINMUX_IPSR_GPSR(IP1SR1_27_24, MSIOF1_SCK),
 PINMUX_IPSR_GPSR(IP1SR1_27_24, HSCK3),
 PINMUX_IPSR_GPSR(IP1SR1_27_24, CTS3_N),
 PINMUX_IPSR_GPSR(IP1SR1_27_24, DU_DG4),
 PINMUX_IPSR_GPSR(IP1SR1_27_24, A14),

 PINMUX_IPSR_GPSR(IP1SR1_31_28, MSIOF1_SYNC),
 PINMUX_IPSR_GPSR(IP1SR1_31_28, HRTS3_N),
 PINMUX_IPSR_GPSR(IP1SR1_31_28, RTS3_N),
 PINMUX_IPSR_GPSR(IP1SR1_31_28, DU_DG5),
 PINMUX_IPSR_GPSR(IP1SR1_31_28, A15),

 /* IP2SR1 */
 PINMUX_IPSR_GPSR(IP2SR1_3_0, MSIOF1_SS1),
 PINMUX_IPSR_GPSR(IP2SR1_3_0, HCTS3_N),
 PINMUX_IPSR_GPSR(IP2SR1_3_0, RX3),
 PINMUX_IPSR_GPSR(IP2SR1_3_0, DU_DG6),
 PINMUX_IPSR_GPSR(IP2SR1_3_0, A16),

 PINMUX_IPSR_GPSR(IP2SR1_7_4, MSIOF1_SS2),
 PINMUX_IPSR_GPSR(IP2SR1_7_4, HTX3),
 PINMUX_IPSR_GPSR(IP2SR1_7_4, TX3),
 PINMUX_IPSR_GPSR(IP2SR1_7_4, DU_DG7),
 PINMUX_IPSR_GPSR(IP2SR1_7_4, A17),

 PINMUX_IPSR_GPSR(IP2SR1_11_8, MSIOF2_RXD),
 PINMUX_IPSR_GPSR(IP2SR1_11_8, HSCK1),
 PINMUX_IPSR_GPSR(IP2SR1_11_8, SCK1),
 PINMUX_IPSR_GPSR(IP2SR1_11_8, DU_DB2),
 PINMUX_IPSR_GPSR(IP2SR1_11_8, A18),

 PINMUX_IPSR_GPSR(IP2SR1_15_12, MSIOF2_TXD),
 PINMUX_IPSR_GPSR(IP2SR1_15_12, HCTS1_N),
 PINMUX_IPSR_GPSR(IP2SR1_15_12, CTS1_N),
 PINMUX_IPSR_GPSR(IP2SR1_15_12, DU_DB3),
 PINMUX_IPSR_GPSR(IP2SR1_15_12, A19),

 PINMUX_IPSR_GPSR(IP2SR1_19_16, MSIOF2_SCK),
 PINMUX_IPSR_GPSR(IP2SR1_19_16, HRTS1_N),
 PINMUX_IPSR_GPSR(IP2SR1_19_16, RTS1_N),
 PINMUX_IPSR_GPSR(IP2SR1_19_16, DU_DB4),
 PINMUX_IPSR_GPSR(IP2SR1_19_16, A20),

 PINMUX_IPSR_GPSR(IP2SR1_23_20, MSIOF2_SYNC),
 PINMUX_IPSR_GPSR(IP2SR1_23_20, HRX1),
 PINMUX_IPSR_GPSR(IP2SR1_23_20, RX1_A),
 PINMUX_IPSR_GPSR(IP2SR1_23_20, DU_DB5),
 PINMUX_IPSR_GPSR(IP2SR1_23_20, A21),

 PINMUX_IPSR_GPSR(IP2SR1_27_24, MSIOF2_SS1),
 PINMUX_IPSR_GPSR(IP2SR1_27_24, HTX1),
 PINMUX_IPSR_GPSR(IP2SR1_27_24, TX1_A),
 PINMUX_IPSR_GPSR(IP2SR1_27_24, DU_DB6),
 PINMUX_IPSR_GPSR(IP2SR1_27_24, A22),

 PINMUX_IPSR_GPSR(IP2SR1_31_28, MSIOF2_SS2),
 PINMUX_IPSR_GPSR(IP2SR1_31_28, TCLK1_B),
 PINMUX_IPSR_GPSR(IP2SR1_31_28, DU_DB7),
 PINMUX_IPSR_GPSR(IP2SR1_31_28, A23),

 /* IP3SR1 */
 PINMUX_IPSR_GPSR(IP3SR1_3_0, IRQ0),
 PINMUX_IPSR_GPSR(IP3SR1_3_0, DU_DOTCLKOUT),
 PINMUX_IPSR_GPSR(IP3SR1_3_0, A24),

 PINMUX_IPSR_GPSR(IP3SR1_7_4, IRQ1),
 PINMUX_IPSR_GPSR(IP3SR1_7_4, DU_HSYNC),
 PINMUX_IPSR_GPSR(IP3SR1_7_4, A25),

 PINMUX_IPSR_GPSR(IP3SR1_11_8, IRQ2),
 PINMUX_IPSR_GPSR(IP3SR1_11_8, DU_VSYNC),
 PINMUX_IPSR_GPSR(IP3SR1_11_8, CS1_N_A26),

 PINMUX_IPSR_GPSR(IP3SR1_15_12, IRQ3),
 PINMUX_IPSR_GPSR(IP3SR1_15_12, DU_ODDF_DISP_CDE),
 PINMUX_IPSR_GPSR(IP3SR1_15_12, CS0_N),

 PINMUX_IPSR_GPSR(IP3SR1_19_16, GP1_28),
 PINMUX_IPSR_GPSR(IP3SR1_19_16, D0),

 PINMUX_IPSR_GPSR(IP3SR1_23_20, GP1_29),
 PINMUX_IPSR_GPSR(IP3SR1_23_20, D1),

 PINMUX_IPSR_GPSR(IP3SR1_27_24, GP1_30),
 PINMUX_IPSR_GPSR(IP3SR1_27_24, D2),

 /* IP0SR2 */
 PINMUX_IPSR_GPSR(IP0SR2_3_0, IPC_CLKIN),
 PINMUX_IPSR_GPSR(IP0SR2_3_0, IPC_CLKEN_IN),
 PINMUX_IPSR_GPSR(IP0SR2_3_0, DU_DOTCLKIN),

 PINMUX_IPSR_GPSR(IP0SR2_7_4, IPC_CLKOUT),
 PINMUX_IPSR_GPSR(IP0SR2_7_4, IPC_CLKEN_OUT),

 /* GP2_02 = SCL0 */
 PINMUX_IPSR_MSEL(IP0SR2_11_8, GP2_02, SEL_I2C0_0),
 PINMUX_IPSR_MSEL(IP0SR2_11_8, D3, SEL_I2C0_0),
 PINMUX_IPSR_PHYS(IP0SR2_11_8, SCL0, SEL_I2C0_3),

 /* GP2_03 = SDA0 */
 PINMUX_IPSR_MSEL(IP0SR2_15_12, GP2_03, SEL_I2C0_0),
 PINMUX_IPSR_MSEL(IP0SR2_15_12, D4, SEL_I2C0_0),
 PINMUX_IPSR_PHYS(IP0SR2_15_12, SDA0, SEL_I2C0_3),

 /* GP2_04 = SCL1 */
 PINMUX_IPSR_MSEL(IP0SR2_19_16, GP2_04,  SEL_I2C1_0),
 PINMUX_IPSR_MSEL(IP0SR2_19_16, MSIOF4_RXD, SEL_I2C1_0),
 PINMUX_IPSR_MSEL(IP0SR2_19_16, D5,  SEL_I2C1_0),
 PINMUX_IPSR_PHYS(IP0SR2_19_16, SCL1,  SEL_I2C1_3),

 /* GP2_05 = SDA1 */
 PINMUX_IPSR_MSEL(IP0SR2_23_20, GP2_05,  SEL_I2C1_0),
 PINMUX_IPSR_MSEL(IP0SR2_23_20, HSCK2,  SEL_I2C1_0),
 PINMUX_IPSR_MSEL(IP0SR2_23_20, MSIOF4_TXD, SEL_I2C1_0),
 PINMUX_IPSR_MSEL(IP0SR2_23_20, SCK4,  SEL_I2C1_0),
 PINMUX_IPSR_MSEL(IP0SR2_23_20, D6,  SEL_I2C1_0),
 PINMUX_IPSR_PHYS(IP0SR2_23_20, SDA1,  SEL_I2C1_3),

 /* GP2_06 = SCL2 */
 PINMUX_IPSR_MSEL(IP0SR2_27_24, GP2_06,  SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_27_24, HCTS2_N, SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_27_24, MSIOF4_SCK, SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_27_24, CTS4_N,  SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_27_24, D7,  SEL_I2C2_0),
 PINMUX_IPSR_PHYS(IP0SR2_27_24, SCL2,  SEL_I2C2_3),

 /* GP2_07 = SDA2 */
 PINMUX_IPSR_MSEL(IP0SR2_31_28, GP2_07,  SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_31_28, HRTS2_N, SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_31_28, MSIOF4_SYNC, SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_31_28, RTS4_N,  SEL_I2C2_0),
 PINMUX_IPSR_MSEL(IP0SR2_31_28, D8,  SEL_I2C2_0),
 PINMUX_IPSR_PHYS(IP0SR2_31_28, SDA2,  SEL_I2C2_3),

 /* GP2_08 = SCL3 */
 PINMUX_IPSR_MSEL(IP1SR2_3_0, GP2_08,  SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_3_0, HRX2,  SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_3_0, MSIOF4_SS1, SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_3_0, RX4,  SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_3_0, D9,  SEL_I2C3_0),
 PINMUX_IPSR_PHYS(IP1SR2_3_0, SCL3,  SEL_I2C3_3),

 /* GP2_09 = SDA3 */
 PINMUX_IPSR_MSEL(IP1SR2_7_4, GP2_09,  SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_7_4, HTX2,  SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_7_4, MSIOF4_SS2, SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_7_4, TX4,  SEL_I2C3_0),
 PINMUX_IPSR_MSEL(IP1SR2_7_4, D10,  SEL_I2C3_0),
 PINMUX_IPSR_PHYS(IP1SR2_7_4, SDA3,  SEL_I2C3_3),

 /* GP2_10 = SCL4 */
 PINMUX_IPSR_MSEL(IP1SR2_11_8, GP2_10,  SEL_I2C4_0),
 PINMUX_IPSR_MSEL(IP1SR2_11_8, TCLK2_B, SEL_I2C4_0),
 PINMUX_IPSR_MSEL(IP1SR2_11_8, MSIOF5_RXD, SEL_I2C4_0),
 PINMUX_IPSR_MSEL(IP1SR2_11_8, D11,  SEL_I2C4_0),
 PINMUX_IPSR_PHYS(IP1SR2_11_8, SCL4,  SEL_I2C4_3),

 /* GP2_11 = SDA4 */
 PINMUX_IPSR_MSEL(IP1SR2_15_12, GP2_11,  SEL_I2C4_0),
 PINMUX_IPSR_MSEL(IP1SR2_15_12, TCLK3,  SEL_I2C4_0),
 PINMUX_IPSR_MSEL(IP1SR2_15_12, MSIOF5_TXD, SEL_I2C4_0),
 PINMUX_IPSR_MSEL(IP1SR2_15_12, D12,  SEL_I2C4_0),
 PINMUX_IPSR_PHYS(IP1SR2_15_12, SDA4,  SEL_I2C4_3),

 /* GP2_12 = SCL5 */
 PINMUX_IPSR_MSEL(IP1SR2_19_16, GP2_12,  SEL_I2C5_0),
 PINMUX_IPSR_MSEL(IP1SR2_19_16, TCLK4,  SEL_I2C5_0),
 PINMUX_IPSR_MSEL(IP1SR2_19_16, MSIOF5_SCK, SEL_I2C5_0),
 PINMUX_IPSR_MSEL(IP1SR2_19_16, D13,  SEL_I2C5_0),
 PINMUX_IPSR_PHYS(IP1SR2_19_16, SCL5,  SEL_I2C5_3),

 /* GP2_13 = SDA5 */
 PINMUX_IPSR_MSEL(IP1SR2_23_20, GP2_13,  SEL_I2C5_0),
 PINMUX_IPSR_MSEL(IP1SR2_23_20, MSIOF5_SYNC, SEL_I2C5_0),
 PINMUX_IPSR_MSEL(IP1SR2_23_20, D14,  SEL_I2C5_0),
 PINMUX_IPSR_PHYS(IP1SR2_23_20, SDA5,  SEL_I2C5_3),

 /* GP2_14 = SCL6 */
 PINMUX_IPSR_MSEL(IP1SR2_27_24, GP2_14,  SEL_I2C6_0),
 PINMUX_IPSR_MSEL(IP1SR2_27_24, IRQ4,  SEL_I2C6_0),
 PINMUX_IPSR_MSEL(IP1SR2_27_24, MSIOF5_SS1, SEL_I2C6_0),
 PINMUX_IPSR_MSEL(IP1SR2_27_24, D15,  SEL_I2C6_0),
 PINMUX_IPSR_PHYS(IP1SR2_27_24, SCL6,  SEL_I2C6_3),

 /* GP2_15 = SDA6 */
 PINMUX_IPSR_MSEL(IP1SR2_31_28, GP2_15,  SEL_I2C6_0),
 PINMUX_IPSR_MSEL(IP1SR2_31_28, IRQ5,  SEL_I2C6_0),
 PINMUX_IPSR_MSEL(IP1SR2_31_28, MSIOF5_SS2, SEL_I2C6_0),
 PINMUX_IPSR_MSEL(IP1SR2_31_28, CPG_CPCKOUT, SEL_I2C6_0),
 PINMUX_IPSR_PHYS(IP1SR2_31_28, SDA6,  SEL_I2C6_3),

 /* IP2SR2 */
 PINMUX_IPSR_GPSR(IP2SR2_3_0, FXR_TXDA_A),
 PINMUX_IPSR_GPSR(IP2SR2_3_0, MSIOF3_SS1),

 PINMUX_IPSR_GPSR(IP2SR2_7_4, RXDA_EXTFXR_A),
 PINMUX_IPSR_GPSR(IP2SR2_7_4, MSIOF3_SS2),
 PINMUX_IPSR_GPSR(IP2SR2_7_4, BS_N),

 PINMUX_IPSR_GPSR(IP2SR2_11_8, FXR_TXDB),
 PINMUX_IPSR_GPSR(IP2SR2_11_8, MSIOF3_RXD),
 PINMUX_IPSR_GPSR(IP2SR2_11_8, RD_N),

 PINMUX_IPSR_GPSR(IP2SR2_15_12, RXDB_EXTFXR),
 PINMUX_IPSR_GPSR(IP2SR2_15_12, MSIOF3_TXD),
 PINMUX_IPSR_GPSR(IP2SR2_15_12, WE0_N),

 PINMUX_IPSR_GPSR(IP2SR2_19_16, CLK_EXTFXR),
 PINMUX_IPSR_GPSR(IP2SR2_19_16, MSIOF3_SCK),
 PINMUX_IPSR_GPSR(IP2SR2_19_16, WE1_N),

 PINMUX_IPSR_GPSR(IP2SR2_23_20, TPU0TO0),
 PINMUX_IPSR_GPSR(IP2SR2_23_20, MSIOF3_SYNC),
 PINMUX_IPSR_GPSR(IP2SR2_23_20, RD_WR_N),

 PINMUX_IPSR_GPSR(IP2SR2_27_24, TPU0TO1),
 PINMUX_IPSR_GPSR(IP2SR2_27_24, CLKOUT),

 PINMUX_IPSR_GPSR(IP2SR2_31_28, TCLK1_A),
 PINMUX_IPSR_GPSR(IP2SR2_31_28, EX_WAIT0),

 /* IP0SR3 */
 PINMUX_IPSR_GPSR(IP0SR3_7_4, CANFD0_TX),
 PINMUX_IPSR_GPSR(IP0SR3_7_4, FXR_TXDA_B),
 PINMUX_IPSR_GPSR(IP0SR3_7_4, TX1_B),

 PINMUX_IPSR_GPSR(IP0SR3_11_8, CANFD0_RX),
 PINMUX_IPSR_GPSR(IP0SR3_11_8, RXDA_EXTFXR_B),
 PINMUX_IPSR_GPSR(IP0SR3_11_8, RX1_B),

 PINMUX_IPSR_GPSR(IP0SR3_23_20, CANFD2_TX),
 PINMUX_IPSR_GPSR(IP0SR3_23_20, TPU0TO2),
 PINMUX_IPSR_GPSR(IP0SR3_23_20, PWM0),

 PINMUX_IPSR_GPSR(IP0SR3_27_24, CANFD2_RX),
 PINMUX_IPSR_GPSR(IP0SR3_27_24, TPU0TO3),
 PINMUX_IPSR_GPSR(IP0SR3_27_24, PWM1),

 PINMUX_IPSR_GPSR(IP0SR3_31_28, CANFD3_TX),
 PINMUX_IPSR_GPSR(IP0SR3_31_28, PWM2),

 /* IP1SR3 */
 PINMUX_IPSR_GPSR(IP1SR3_3_0, CANFD3_RX),
 PINMUX_IPSR_GPSR(IP1SR3_3_0, PWM3),

 PINMUX_IPSR_GPSR(IP1SR3_7_4, CANFD4_TX),
 PINMUX_IPSR_GPSR(IP1SR3_7_4, PWM4),
 PINMUX_IPSR_GPSR(IP1SR3_7_4, FXR_CLKOUT1),

 PINMUX_IPSR_GPSR(IP1SR3_11_8, CANFD4_RX),
 PINMUX_IPSR_GPSR(IP1SR3_11_8, FXR_CLKOUT2),

 PINMUX_IPSR_GPSR(IP1SR3_15_12, CANFD5_TX),
 PINMUX_IPSR_GPSR(IP1SR3_15_12, FXR_TXENA_N),

 PINMUX_IPSR_GPSR(IP1SR3_19_16, CANFD5_RX),
 PINMUX_IPSR_GPSR(IP1SR3_19_16, FXR_TXENB_N),

 PINMUX_IPSR_GPSR(IP1SR3_23_20, CANFD6_TX),
 PINMUX_IPSR_GPSR(IP1SR3_23_20, STPWT_EXTFXR),

 /* IP0SR4 */
 PINMUX_IPSR_GPSR(IP0SR4_3_0, AVB0_RX_CTL),
 PINMUX_IPSR_GPSR(IP0SR4_3_0, AVB0_MII_RX_DV),

 PINMUX_IPSR_GPSR(IP0SR4_7_4, AVB0_RXC),
 PINMUX_IPSR_GPSR(IP0SR4_7_4, AVB0_MII_RXC),

 PINMUX_IPSR_GPSR(IP0SR4_11_8, AVB0_RD0),
 PINMUX_IPSR_GPSR(IP0SR4_11_8, AVB0_MII_RD0),

 PINMUX_IPSR_GPSR(IP0SR4_15_12, AVB0_RD1),
 PINMUX_IPSR_GPSR(IP0SR4_15_12, AVB0_MII_RD1),

 PINMUX_IPSR_GPSR(IP0SR4_19_16, AVB0_RD2),
 PINMUX_IPSR_GPSR(IP0SR4_19_16, AVB0_MII_RD2),

 PINMUX_IPSR_GPSR(IP0SR4_23_20, AVB0_RD3),
 PINMUX_IPSR_GPSR(IP0SR4_23_20, AVB0_MII_RD3),

 PINMUX_IPSR_GPSR(IP0SR4_27_24, AVB0_TX_CTL),
 PINMUX_IPSR_GPSR(IP0SR4_27_24, AVB0_MII_TX_EN),

 PINMUX_IPSR_GPSR(IP0SR4_31_28, AVB0_TXC),
 PINMUX_IPSR_GPSR(IP0SR4_31_28, AVB0_MII_TXC),

 /* IP1SR4 */
 PINMUX_IPSR_GPSR(IP1SR4_3_0, AVB0_TD0),
 PINMUX_IPSR_GPSR(IP1SR4_3_0, AVB0_MII_TD0),

 PINMUX_IPSR_GPSR(IP1SR4_7_4, AVB0_TD1),
 PINMUX_IPSR_GPSR(IP1SR4_7_4, AVB0_MII_TD1),

 PINMUX_IPSR_GPSR(IP1SR4_11_8, AVB0_TD2),
 PINMUX_IPSR_GPSR(IP1SR4_11_8, AVB0_MII_TD2),

 PINMUX_IPSR_GPSR(IP1SR4_15_12, AVB0_TD3),
 PINMUX_IPSR_GPSR(IP1SR4_15_12, AVB0_MII_TD3),

 PINMUX_IPSR_GPSR(IP1SR4_19_16, AVB0_TXCREFCLK),

 PINMUX_IPSR_GPSR(IP1SR4_23_20, AVB0_MDIO),

 PINMUX_IPSR_GPSR(IP1SR4_27_24, AVB0_MDC),

 PINMUX_IPSR_GPSR(IP1SR4_31_28, AVB0_MAGIC),

 /* IP2SR4 */
 PINMUX_IPSR_GPSR(IP2SR4_7_4, AVB0_LINK),
 PINMUX_IPSR_GPSR(IP2SR4_7_4, AVB0_MII_TX_ER),

 PINMUX_IPSR_GPSR(IP2SR4_11_8, AVB0_AVTP_MATCH),
 PINMUX_IPSR_GPSR(IP2SR4_11_8, AVB0_MII_RX_ER),
 PINMUX_IPSR_GPSR(IP2SR4_11_8, CC5_OSCOUT),

 PINMUX_IPSR_GPSR(IP2SR4_15_12, AVB0_AVTP_CAPTURE),
 PINMUX_IPSR_GPSR(IP2SR4_15_12, AVB0_MII_CRS),

 PINMUX_IPSR_GPSR(IP2SR4_19_16, AVB0_AVTP_PPS),
 PINMUX_IPSR_GPSR(IP2SR4_19_16, AVB0_MII_COL),

 /* IP0SR5 */
 PINMUX_IPSR_GPSR(IP0SR5_3_0, AVB1_RX_CTL),
 PINMUX_IPSR_GPSR(IP0SR5_3_0, AVB1_MII_RX_DV),

 PINMUX_IPSR_GPSR(IP0SR5_7_4, AVB1_RXC),
 PINMUX_IPSR_GPSR(IP0SR5_7_4, AVB1_MII_RXC),

 PINMUX_IPSR_GPSR(IP0SR5_11_8, AVB1_RD0),
 PINMUX_IPSR_GPSR(IP0SR5_11_8, AVB1_MII_RD0),

 PINMUX_IPSR_GPSR(IP0SR5_15_12, AVB1_RD1),
 PINMUX_IPSR_GPSR(IP0SR5_15_12, AVB1_MII_RD1),

 PINMUX_IPSR_GPSR(IP0SR5_19_16, AVB1_RD2),
 PINMUX_IPSR_GPSR(IP0SR5_19_16, AVB1_MII_RD2),

 PINMUX_IPSR_GPSR(IP0SR5_23_20, AVB1_RD3),
 PINMUX_IPSR_GPSR(IP0SR5_23_20, AVB1_MII_RD3),

 PINMUX_IPSR_GPSR(IP0SR5_27_24, AVB1_TX_CTL),
 PINMUX_IPSR_GPSR(IP0SR5_27_24, AVB1_MII_TX_EN),

 PINMUX_IPSR_GPSR(IP0SR5_31_28, AVB1_TXC),
 PINMUX_IPSR_GPSR(IP0SR5_31_28, AVB1_MII_TXC),

 /* IP1SR5 */
 PINMUX_IPSR_GPSR(IP1SR5_3_0, AVB1_TD0),
 PINMUX_IPSR_GPSR(IP1SR5_3_0, AVB1_MII_TD0),

 PINMUX_IPSR_GPSR(IP1SR5_7_4, AVB1_TD1),
 PINMUX_IPSR_GPSR(IP1SR5_7_4, AVB1_MII_TD1),

 PINMUX_IPSR_GPSR(IP1SR5_11_8, AVB1_TD2),
 PINMUX_IPSR_GPSR(IP1SR5_11_8, AVB1_MII_TD2),

 PINMUX_IPSR_GPSR(IP1SR5_15_12, AVB1_TD3),
 PINMUX_IPSR_GPSR(IP1SR5_15_12, AVB1_MII_TD3),

 PINMUX_IPSR_GPSR(IP1SR5_19_16, AVB1_TXCREFCLK),

 PINMUX_IPSR_GPSR(IP1SR5_23_20, AVB1_MDIO),

 PINMUX_IPSR_GPSR(IP1SR5_27_24, AVB1_MDC),

 PINMUX_IPSR_GPSR(IP1SR5_31_28, AVB1_MAGIC),

 /* IP2SR5 */
 PINMUX_IPSR_GPSR(IP2SR5_7_4, AVB1_LINK),
 PINMUX_IPSR_GPSR(IP2SR5_7_4, AVB1_MII_TX_ER),

 PINMUX_IPSR_GPSR(IP2SR5_11_8, AVB1_AVTP_MATCH),
 PINMUX_IPSR_GPSR(IP2SR5_11_8, AVB1_MII_RX_ER),

 PINMUX_IPSR_GPSR(IP2SR5_15_12, AVB1_AVTP_CAPTURE),
 PINMUX_IPSR_GPSR(IP2SR5_15_12, AVB1_MII_CRS),

 PINMUX_IPSR_GPSR(IP2SR5_19_16, AVB1_AVTP_PPS),
 PINMUX_IPSR_GPSR(IP2SR5_19_16, AVB1_MII_COL),
};

/*
 * Pins not associated with a GPIO port.
 */

enum {
 GP_ASSIGN_LAST(),
 NOGP_ALL(),
};

static const struct sh_pfc_pin pinmux_pins[] = {
 PINMUX_GPIO_GP_ALL(),
};

/* - AVB0 ------------------------------------------------ */
static const unsigned int avb0_link_pins[] = {
 /* AVB0_LINK */
 RCAR_GP_PIN(4, 17),
};
static const unsigned int avb0_link_mux[] = {
 AVB0_LINK_MARK,
};
static const unsigned int avb0_magic_pins[] = {
 /* AVB0_MAGIC */
 RCAR_GP_PIN(4, 15),
};
static const unsigned int avb0_magic_mux[] = {
 AVB0_MAGIC_MARK,
};
static const unsigned int avb0_phy_int_pins[] = {
 /* AVB0_PHY_INT */
 RCAR_GP_PIN(4, 16),
};
static const unsigned int avb0_phy_int_mux[] = {
 AVB0_PHY_INT_MARK,
};
static const unsigned int avb0_mdio_pins[] = {
 /* AVB0_MDC, AVB0_MDIO */
 RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 13),
};
static const unsigned int avb0_mdio_mux[] = {
 AVB0_MDC_MARK, AVB0_MDIO_MARK,
};
static const unsigned int avb0_rgmii_pins[] = {
 /*
 * AVB0_TX_CTL, AVB0_TXC, AVB0_TD0, AVB0_TD1, AVB0_TD2, AVB0_TD3,
 * AVB0_RX_CTL, AVB0_RXC, AVB0_RD0, AVB0_RD1, AVB0_RD2, AVB0_RD3,
 */

 RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7),
 RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
 RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11),
 RCAR_GP_PIN(4, 0), RCAR_GP_PIN(4, 1),
 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3),
 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5),
};
static const unsigned int avb0_rgmii_mux[] = {
 AVB0_TX_CTL_MARK, AVB0_TXC_MARK,
 AVB0_TD0_MARK, AVB0_TD1_MARK, AVB0_TD2_MARK, AVB0_TD3_MARK,
 AVB0_RX_CTL_MARK, AVB0_RXC_MARK,
 AVB0_RD0_MARK, AVB0_RD1_MARK, AVB0_RD2_MARK, AVB0_RD3_MARK,
};
static const unsigned int avb0_txcrefclk_pins[] = {
 /* AVB0_TXCREFCLK */
 RCAR_GP_PIN(4, 12),
};
static const unsigned int avb0_txcrefclk_mux[] = {
 AVB0_TXCREFCLK_MARK,
};
static const unsigned int avb0_avtp_pps_pins[] = {
 /* AVB0_AVTP_PPS */
 RCAR_GP_PIN(4, 20),
};
static const unsigned int avb0_avtp_pps_mux[] = {
 AVB0_AVTP_PPS_MARK,
};
static const unsigned int avb0_avtp_capture_pins[] = {
 /* AVB0_AVTP_CAPTURE */
 RCAR_GP_PIN(4, 19),
};
static const unsigned int avb0_avtp_capture_mux[] = {
 AVB0_AVTP_CAPTURE_MARK,
};
static const unsigned int avb0_avtp_match_pins[] = {
 /* AVB0_AVTP_MATCH */
 RCAR_GP_PIN(4, 18),
};
static const unsigned int avb0_avtp_match_mux[] = {
 AVB0_AVTP_MATCH_MARK,
};

/* - AVB1 ------------------------------------------------ */
static const unsigned int avb1_link_pins[] = {
 /* AVB1_LINK */
 RCAR_GP_PIN(5, 17),
};
static const unsigned int avb1_link_mux[] = {
 AVB1_LINK_MARK,
};
static const unsigned int avb1_magic_pins[] = {
 /* AVB1_MAGIC */
 RCAR_GP_PIN(5, 15),
};
static const unsigned int avb1_magic_mux[] = {
 AVB1_MAGIC_MARK,
};
static const unsigned int avb1_phy_int_pins[] = {
 /* AVB1_PHY_INT */
 RCAR_GP_PIN(5, 16),
};
static const unsigned int avb1_phy_int_mux[] = {
 AVB1_PHY_INT_MARK,
};
static const unsigned int avb1_mdio_pins[] = {
 /* AVB1_MDC, AVB1_MDIO */
 RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 13),
};
static const unsigned int avb1_mdio_mux[] = {
 AVB1_MDC_MARK, AVB1_MDIO_MARK,
};
static const unsigned int avb1_rgmii_pins[] = {
 /*
 * AVB1_TX_CTL, AVB1_TXC, AVB1_TD0, AVB1_TD1, AVB1_TD2, AVB1_TD3,
 * AVB1_RX_CTL, AVB1_RXC, AVB1_RD0, AVB1_RD1, AVB1_RD2, AVB1_RD3,
 */

 RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7),
 RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9),
 RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
 RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 1),
 RCAR_GP_PIN(5, 2), RCAR_GP_PIN(5, 3),
 RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5),
};
static const unsigned int avb1_rgmii_mux[] = {
 AVB1_TX_CTL_MARK, AVB1_TXC_MARK,
 AVB1_TD0_MARK, AVB1_TD1_MARK, AVB1_TD2_MARK, AVB1_TD3_MARK,
 AVB1_RX_CTL_MARK, AVB1_RXC_MARK,
 AVB1_RD0_MARK, AVB1_RD1_MARK, AVB1_RD2_MARK, AVB1_RD3_MARK,
};
static const unsigned int avb1_txcrefclk_pins[] = {
 /* AVB1_TXCREFCLK */
 RCAR_GP_PIN(5, 12),
};
static const unsigned int avb1_txcrefclk_mux[] = {
 AVB1_TXCREFCLK_MARK,
};
static const unsigned int avb1_avtp_pps_pins[] = {
 /* AVB1_AVTP_PPS */
 RCAR_GP_PIN(5, 20),
};
static const unsigned int avb1_avtp_pps_mux[] = {
 AVB1_AVTP_PPS_MARK,
};
static const unsigned int avb1_avtp_capture_pins[] = {
 /* AVB1_AVTP_CAPTURE */
 RCAR_GP_PIN(5, 19),
};
static const unsigned int avb1_avtp_capture_mux[] = {
 AVB1_AVTP_CAPTURE_MARK,
};
static const unsigned int avb1_avtp_match_pins[] = {
 /* AVB1_AVTP_MATCH */
 RCAR_GP_PIN(5, 18),
};
static const unsigned int avb1_avtp_match_mux[] = {
 AVB1_AVTP_MATCH_MARK,
};

/* - AVB2 ------------------------------------------------ */
static const unsigned int avb2_link_pins[] = {
 /* AVB2_LINK */
 RCAR_GP_PIN(6, 17),
};
static const unsigned int avb2_link_mux[] = {
 AVB2_LINK_MARK,
};
static const unsigned int avb2_magic_pins[] = {
 /* AVB2_MAGIC */
 RCAR_GP_PIN(6, 15),
};
static const unsigned int avb2_magic_mux[] = {
 AVB2_MAGIC_MARK,
};
static const unsigned int avb2_phy_int_pins[] = {
 /* AVB2_PHY_INT */
 RCAR_GP_PIN(6, 16),
};
static const unsigned int avb2_phy_int_mux[] = {
 AVB2_PHY_INT_MARK,
};
static const unsigned int avb2_mdio_pins[] = {
 /* AVB2_MDC, AVB2_MDIO */
 RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 13),
};
static const unsigned int avb2_mdio_mux[] = {
 AVB2_MDC_MARK, AVB2_MDIO_MARK,
};
static const unsigned int avb2_rgmii_pins[] = {
 /*
 * AVB2_TX_CTL, AVB2_TXC, AVB2_TD0, AVB2_TD1, AVB2_TD2, AVB2_TD3,
 * AVB2_RX_CTL, AVB2_RXC, AVB2_RD0, AVB2_RD1, AVB2_RD2, AVB2_RD3,
 */

 RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7),
 RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9),
 RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11),
 RCAR_GP_PIN(6, 0), RCAR_GP_PIN(6, 1),
 RCAR_GP_PIN(6, 2), RCAR_GP_PIN(6, 3),
 RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5),
};
static const unsigned int avb2_rgmii_mux[] = {
 AVB2_TX_CTL_MARK, AVB2_TXC_MARK,
 AVB2_TD0_MARK, AVB2_TD1_MARK, AVB2_TD2_MARK, AVB2_TD3_MARK,
 AVB2_RX_CTL_MARK, AVB2_RXC_MARK,
 AVB2_RD0_MARK, AVB2_RD1_MARK, AVB2_RD2_MARK, AVB2_RD3_MARK,
};
static const unsigned int avb2_txcrefclk_pins[] = {
 /* AVB2_TXCREFCLK */
 RCAR_GP_PIN(6, 12),
};
static const unsigned int avb2_txcrefclk_mux[] = {
 AVB2_TXCREFCLK_MARK,
};
static const unsigned int avb2_avtp_pps_pins[] = {
 /* AVB2_AVTP_PPS */
 RCAR_GP_PIN(6, 20),
};
static const unsigned int avb2_avtp_pps_mux[] = {
 AVB2_AVTP_PPS_MARK,
};
static const unsigned int avb2_avtp_capture_pins[] = {
 /* AVB2_AVTP_CAPTURE */
 RCAR_GP_PIN(6, 19),
};
static const unsigned int avb2_avtp_capture_mux[] = {
 AVB2_AVTP_CAPTURE_MARK,
};
static const unsigned int avb2_avtp_match_pins[] = {
 /* AVB2_AVTP_MATCH */
 RCAR_GP_PIN(6, 18),
};
static const unsigned int avb2_avtp_match_mux[] = {
 AVB2_AVTP_MATCH_MARK,
};

/* - AVB3 ------------------------------------------------ */
static const unsigned int avb3_link_pins[] = {
 /* AVB3_LINK */
 RCAR_GP_PIN(7, 17),
};
static const unsigned int avb3_link_mux[] = {
 AVB3_LINK_MARK,
};
static const unsigned int avb3_magic_pins[] = {
 /* AVB3_MAGIC */
 RCAR_GP_PIN(7, 15),
};
static const unsigned int avb3_magic_mux[] = {
 AVB3_MAGIC_MARK,
};
static const unsigned int avb3_phy_int_pins[] = {
 /* AVB3_PHY_INT */
 RCAR_GP_PIN(7, 16),
};
static const unsigned int avb3_phy_int_mux[] = {
 AVB3_PHY_INT_MARK,
};
static const unsigned int avb3_mdio_pins[] = {
 /* AVB3_MDC, AVB3_MDIO */
 RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 13),
};
static const unsigned int avb3_mdio_mux[] = {
 AVB3_MDC_MARK, AVB3_MDIO_MARK,
};
static const unsigned int avb3_rgmii_pins[] = {
 /*
 * AVB3_TX_CTL, AVB3_TXC, AVB3_TD0, AVB3_TD1, AVB3_TD2, AVB3_TD3,
 * AVB3_RX_CTL, AVB3_RXC, AVB3_RD0, AVB3_RD1, AVB3_RD2, AVB3_RD3,
 */

 RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 7),
 RCAR_GP_PIN(7, 8), RCAR_GP_PIN(7, 9),
 RCAR_GP_PIN(7, 10), RCAR_GP_PIN(7, 11),
 RCAR_GP_PIN(7, 0), RCAR_GP_PIN(7, 1),
 RCAR_GP_PIN(7, 2), RCAR_GP_PIN(7, 3),
 RCAR_GP_PIN(7, 4), RCAR_GP_PIN(7, 5),
};
static const unsigned int avb3_rgmii_mux[] = {
 AVB3_TX_CTL_MARK, AVB3_TXC_MARK,
 AVB3_TD0_MARK, AVB3_TD1_MARK, AVB3_TD2_MARK, AVB3_TD3_MARK,
 AVB3_RX_CTL_MARK, AVB3_RXC_MARK,
 AVB3_RD0_MARK, AVB3_RD1_MARK, AVB3_RD2_MARK, AVB3_RD3_MARK,
};
static const unsigned int avb3_txcrefclk_pins[] = {
 /* AVB3_TXCREFCLK */
 RCAR_GP_PIN(7, 12),
};
static const unsigned int avb3_txcrefclk_mux[] = {
 AVB3_TXCREFCLK_MARK,
};
static const unsigned int avb3_avtp_pps_pins[] = {
 /* AVB3_AVTP_PPS */
 RCAR_GP_PIN(7, 20),
};
static const unsigned int avb3_avtp_pps_mux[] = {
 AVB3_AVTP_PPS_MARK,
};
static const unsigned int avb3_avtp_capture_pins[] = {
 /* AVB3_AVTP_CAPTURE */
 RCAR_GP_PIN(7, 19),
};
static const unsigned int avb3_avtp_capture_mux[] = {
 AVB3_AVTP_CAPTURE_MARK,
};
static const unsigned int avb3_avtp_match_pins[] = {
 /* AVB3_AVTP_MATCH */
 RCAR_GP_PIN(7, 18),
};
static const unsigned int avb3_avtp_match_mux[] = {
 AVB3_AVTP_MATCH_MARK,
};

/* - AVB4 ------------------------------------------------ */
static const unsigned int avb4_link_pins[] = {
 /* AVB4_LINK */
 RCAR_GP_PIN(8, 17),
};
static const unsigned int avb4_link_mux[] = {
 AVB4_LINK_MARK,
};
static const unsigned int avb4_magic_pins[] = {
 /* AVB4_MAGIC */
 RCAR_GP_PIN(8, 15),
};
static const unsigned int avb4_magic_mux[] = {
 AVB4_MAGIC_MARK,
};
static const unsigned int avb4_phy_int_pins[] = {
 /* AVB4_PHY_INT */
 RCAR_GP_PIN(8, 16),
};
static const unsigned int avb4_phy_int_mux[] = {
 AVB4_PHY_INT_MARK,
};
static const unsigned int avb4_mdio_pins[] = {
 /* AVB4_MDC, AVB4_MDIO */
 RCAR_GP_PIN(8, 14), RCAR_GP_PIN(8, 13),
};
static const unsigned int avb4_mdio_mux[] = {
 AVB4_MDC_MARK, AVB4_MDIO_MARK,
};
static const unsigned int avb4_rgmii_pins[] = {
 /*
 * AVB4_TX_CTL, AVB4_TXC, AVB4_TD0, AVB4_TD1, AVB4_TD2, AVB4_TD3,
 * AVB4_RX_CTL, AVB4_RXC, AVB4_RD0, AVB4_RD1, AVB4_RD2, AVB4_RD3,
 */

 RCAR_GP_PIN(8, 6), RCAR_GP_PIN(8, 7),
 RCAR_GP_PIN(8, 8), RCAR_GP_PIN(8, 9),
 RCAR_GP_PIN(8, 10), RCAR_GP_PIN(8, 11),
 RCAR_GP_PIN(8, 0), RCAR_GP_PIN(8, 1),
 RCAR_GP_PIN(8, 2), RCAR_GP_PIN(8, 3),
 RCAR_GP_PIN(8, 4), RCAR_GP_PIN(8, 5),
};
static const unsigned int avb4_rgmii_mux[] = {
 AVB4_TX_CTL_MARK, AVB4_TXC_MARK,
 AVB4_TD0_MARK, AVB4_TD1_MARK, AVB4_TD2_MARK, AVB4_TD3_MARK,
 AVB4_RX_CTL_MARK, AVB4_RXC_MARK,
 AVB4_RD0_MARK, AVB4_RD1_MARK, AVB4_RD2_MARK, AVB4_RD3_MARK,
};
static const unsigned int avb4_txcrefclk_pins[] = {
 /* AVB4_TXCREFCLK */
 RCAR_GP_PIN(8, 12),
};
static const unsigned int avb4_txcrefclk_mux[] = {
 AVB4_TXCREFCLK_MARK,
};
static const unsigned int avb4_avtp_pps_pins[] = {
 /* AVB4_AVTP_PPS */
 RCAR_GP_PIN(8, 20),
};
static const unsigned int avb4_avtp_pps_mux[] = {
 AVB4_AVTP_PPS_MARK,
};
static const unsigned int avb4_avtp_capture_pins[] = {
 /* AVB4_AVTP_CAPTURE */
 RCAR_GP_PIN(8, 19),
};
static const unsigned int avb4_avtp_capture_mux[] = {
 AVB4_AVTP_CAPTURE_MARK,
};
static const unsigned int avb4_avtp_match_pins[] = {
 /* AVB4_AVTP_MATCH */
 RCAR_GP_PIN(8, 18),
};
static const unsigned int avb4_avtp_match_mux[] = {
 AVB4_AVTP_MATCH_MARK,
};

/* - AVB5 ------------------------------------------------ */
static const unsigned int avb5_link_pins[] = {
 /* AVB5_LINK */
 RCAR_GP_PIN(9, 17),
};
static const unsigned int avb5_link_mux[] = {
 AVB5_LINK_MARK,
};
static const unsigned int avb5_magic_pins[] = {
 /* AVB5_MAGIC */
 RCAR_GP_PIN(9, 15),
};
static const unsigned int avb5_magic_mux[] = {
 AVB5_MAGIC_MARK,
};
static const unsigned int avb5_phy_int_pins[] = {
 /* AVB5_PHY_INT */
 RCAR_GP_PIN(9, 16),
};
static const unsigned int avb5_phy_int_mux[] = {
 AVB5_PHY_INT_MARK,
};
static const unsigned int avb5_mdio_pins[] = {
 /* AVB5_MDC, AVB5_MDIO */
 RCAR_GP_PIN(9, 14), RCAR_GP_PIN(9, 13),
};
static const unsigned int avb5_mdio_mux[] = {
 AVB5_MDC_MARK, AVB5_MDIO_MARK,
};
static const unsigned int avb5_rgmii_pins[] = {
 /*
 * AVB5_TX_CTL, AVB5_TXC, AVB5_TD0, AVB5_TD1, AVB5_TD2, AVB5_TD3,
 * AVB5_RX_CTL, AVB5_RXC, AVB5_RD0, AVB5_RD1, AVB5_RD2, AVB5_RD3,
 */

 RCAR_GP_PIN(9, 6), RCAR_GP_PIN(9, 7),
 RCAR_GP_PIN(9, 8), RCAR_GP_PIN(9, 9),
 RCAR_GP_PIN(9, 10), RCAR_GP_PIN(9, 11),
 RCAR_GP_PIN(9, 0), RCAR_GP_PIN(9, 1),
 RCAR_GP_PIN(9, 2), RCAR_GP_PIN(9, 3),
 RCAR_GP_PIN(9, 4), RCAR_GP_PIN(9, 5),
};
static const unsigned int avb5_rgmii_mux[] = {
 AVB5_TX_CTL_MARK, AVB5_TXC_MARK,
 AVB5_TD0_MARK, AVB5_TD1_MARK, AVB5_TD2_MARK, AVB5_TD3_MARK,
 AVB5_RX_CTL_MARK, AVB5_RXC_MARK,
 AVB5_RD0_MARK, AVB5_RD1_MARK, AVB5_RD2_MARK, AVB5_RD3_MARK,
};
static const unsigned int avb5_txcrefclk_pins[] = {
 /* AVB5_TXCREFCLK */
 RCAR_GP_PIN(9, 12),
};
static const unsigned int avb5_txcrefclk_mux[] = {
 AVB5_TXCREFCLK_MARK,
};
static const unsigned int avb5_avtp_pps_pins[] = {
 /* AVB5_AVTP_PPS */
 RCAR_GP_PIN(9, 20),
};
static const unsigned int avb5_avtp_pps_mux[] = {
 AVB5_AVTP_PPS_MARK,
};
static const unsigned int avb5_avtp_capture_pins[] = {
 /* AVB5_AVTP_CAPTURE */
 RCAR_GP_PIN(9, 19),
};
static const unsigned int avb5_avtp_capture_mux[] = {
 AVB5_AVTP_CAPTURE_MARK,
};
static const unsigned int avb5_avtp_match_pins[] = {
 /* AVB5_AVTP_MATCH */
 RCAR_GP_PIN(9, 18),
};
static const unsigned int avb5_avtp_match_mux[] = {
 AVB5_AVTP_MATCH_MARK,
};

/* - CANFD0 ----------------------------------------------------------------- */
static const unsigned int canfd0_data_pins[] = {
 /* CANFD0_TX, CANFD0_RX */
 RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2),
};
static const unsigned int canfd0_data_mux[] = {
 CANFD0_TX_MARK, CANFD0_RX_MARK,
};

/* - CANFD1 ----------------------------------------------------------------- */
static const unsigned int canfd1_data_pins[] = {
 /* CANFD1_TX, CANFD1_RX */
 RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4),
};
static const unsigned int canfd1_data_mux[] = {
 CANFD1_TX_MARK, CANFD1_RX_MARK,
};

/* - CANFD2 ----------------------------------------------------------------- */
static const unsigned int canfd2_data_pins[] = {
 /* CANFD2_TX, CANFD2_RX */
 RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6),
};
static const unsigned int canfd2_data_mux[] = {
 CANFD2_TX_MARK, CANFD2_RX_MARK,
};

/* - CANFD3 ----------------------------------------------------------------- */
static const unsigned int canfd3_data_pins[] = {
 /* CANFD3_TX, CANFD3_RX */
 RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8),
};
static const unsigned int canfd3_data_mux[] = {
 CANFD3_TX_MARK, CANFD3_RX_MARK,
};

/* - CANFD4 ----------------------------------------------------------------- */
static const unsigned int canfd4_data_pins[] = {
 /* CANFD4_TX, CANFD4_RX */
 RCAR_GP_PIN(3, 9), RCAR_GP_PIN(3, 10),
};
static const unsigned int canfd4_data_mux[] = {
 CANFD4_TX_MARK, CANFD4_RX_MARK,
};

/* - CANFD5 ----------------------------------------------------------------- */
static const unsigned int canfd5_data_pins[] = {
 /* CANFD5_TX, CANFD5_RX */
 RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12),
};
static const unsigned int canfd5_data_mux[] = {
 CANFD5_TX_MARK, CANFD5_RX_MARK,
};

/* - CANFD6 ----------------------------------------------------------------- */
static const unsigned int canfd6_data_pins[] = {
 /* CANFD6_TX, CANFD6_RX */
 RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14),
};
static const unsigned int canfd6_data_mux[] = {
 CANFD6_TX_MARK, CANFD6_RX_MARK,
};

/* - CANFD7 ----------------------------------------------------------------- */
static const unsigned int canfd7_data_pins[] = {
 /* CANFD7_TX, CANFD7_RX */
 RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16),
};
static const unsigned int canfd7_data_mux[] = {
 CANFD7_TX_MARK, CANFD7_RX_MARK,
};

/* - CANFD Clock ------------------------------------------------------------ */
static const unsigned int can_clk_pins[] = {
 /* CAN_CLK */
 RCAR_GP_PIN(3, 0),
};
static const unsigned int can_clk_mux[] = {
 CAN_CLK_MARK,
};

/* - DU --------------------------------------------------------------------- */
static const unsigned int du_rgb888_pins[] = {
 /* DU_DR[7:2], DU_DG[7:2], DU_DB[7:2] */
 RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 9),
 RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 6),
 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 15),
 RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 12),
 RCAR_GP_PIN(1, 23), RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 21),
 RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 18),
};
static const unsigned int du_rgb888_mux[] = {
 DU_DR7_MARK, DU_DR6_MARK, DU_DR5_MARK,
 DU_DR4_MARK, DU_DR3_MARK, DU_DR2_MARK,
 DU_DG7_MARK, DU_DG6_MARK, DU_DG5_MARK,
 DU_DG4_MARK, DU_DG3_MARK, DU_DG2_MARK,
 DU_DB7_MARK, DU_DB6_MARK, DU_DB5_MARK,
 DU_DB4_MARK, DU_DB3_MARK, DU_DB2_MARK,
};
static const unsigned int du_clk_out_pins[] = {
 /* DU_DOTCLKOUT */
 RCAR_GP_PIN(1, 24),
};
static const unsigned int du_clk_out_mux[] = {
 DU_DOTCLKOUT_MARK,
};
static const unsigned int du_sync_pins[] = {
 /* DU_HSYNC, DU_VSYNC */
 RCAR_GP_PIN(1, 25), RCAR_GP_PIN(1, 26),
};
static const unsigned int du_sync_mux[] = {
 DU_HSYNC_MARK, DU_VSYNC_MARK,
};
static const unsigned int du_oddf_pins[] = {
 /* DU_EXODDF/DU_ODDF/DISP/CDE */
 RCAR_GP_PIN(1, 27),
};
static const unsigned int du_oddf_mux[] = {
 DU_ODDF_DISP_CDE_MARK,
};

/* - HSCIF0 ----------------------------------------------------------------- */
static const unsigned int hscif0_data_pins[] = {
 /* HRX0, HTX0 */
 RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 5),
};
static const unsigned int hscif0_data_mux[] = {
 HRX0_MARK, HTX0_MARK,
};
static const unsigned int hscif0_clk_pins[] = {
 /* HSCK0 */
 RCAR_GP_PIN(1, 2),
};
static const unsigned int hscif0_clk_mux[] = {
 HSCK0_MARK,
};
static const unsigned int hscif0_ctrl_pins[] = {
 /* HRTS0#, HCTS0# */
 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 4),
};
static const unsigned int hscif0_ctrl_mux[] = {
 HRTS0_N_MARK, HCTS0_N_MARK,
};

/* - HSCIF1 ----------------------------------------------------------------- */
static const unsigned int hscif1_data_pins[] = {
 /* HRX1, HTX1 */
 RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
};
static const unsigned int hscif1_data_mux[] = {
 HRX1_MARK, HTX1_MARK,
};
static const unsigned int hscif1_clk_pins[] = {
 /* HSCK1 */
 RCAR_GP_PIN(1, 18),
};
static const unsigned int hscif1_clk_mux[] = {
 HSCK1_MARK,
};
static const unsigned int hscif1_ctrl_pins[] = {
 /* HRTS1#, HCTS1# */
 RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19),
};
static const unsigned int hscif1_ctrl_mux[] = {
 HRTS1_N_MARK, HCTS1_N_MARK,
};

/* - HSCIF2 ----------------------------------------------------------------- */
static const unsigned int hscif2_data_pins[] = {
 /* HRX2, HTX2 */
 RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9),
};
static const unsigned int hscif2_data_mux[] = {
 HRX2_MARK, HTX2_MARK,
};
static const unsigned int hscif2_clk_pins[] = {
 /* HSCK2 */
 RCAR_GP_PIN(2, 5),
};
static const unsigned int hscif2_clk_mux[] = {
 HSCK2_MARK,
};
static const unsigned int hscif2_ctrl_pins[] = {
 /* HRTS2#, HCTS2# */
 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6),
};
static const unsigned int hscif2_ctrl_mux[] = {
 HRTS2_N_MARK, HCTS2_N_MARK,
};

/* - HSCIF3 ----------------------------------------------------------------- */
static const unsigned int hscif3_data_pins[] = {
 /* HRX3, HTX3 */
 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 17),
};
static const unsigned int hscif3_data_mux[] = {
 HRX3_MARK, HTX3_MARK,
};
static const unsigned int hscif3_clk_pins[] = {
 /* HSCK3 */
 RCAR_GP_PIN(1, 14),
};
static const unsigned int hscif3_clk_mux[] = {
 HSCK3_MARK,
};
static const unsigned int hscif3_ctrl_pins[] = {
 /* HRTS3#, HCTS3# */
 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16),
};
static const unsigned int hscif3_ctrl_mux[] = {
 HRTS3_N_MARK, HCTS3_N_MARK,
};

/* - I2C0 ------------------------------------------------------------------- */
static const unsigned int i2c0_pins[] = {
 /* SDA0, SCL0 */
 RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 2),
};
static const unsigned int i2c0_mux[] = {
 SDA0_MARK, SCL0_MARK,
};

/* - I2C1 ------------------------------------------------------------------- */
static const unsigned int i2c1_pins[] = {
 /* SDA1, SCL1 */
 RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 4),
};
static const unsigned int i2c1_mux[] = {
 SDA1_MARK, SCL1_MARK,
};

/* - I2C2 ------------------------------------------------------------------- */
static const unsigned int i2c2_pins[] = {
 /* SDA2, SCL2 */
 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6),
};
static const unsigned int i2c2_mux[] = {
 SDA2_MARK, SCL2_MARK,
};

/* - I2C3 ------------------------------------------------------------------- */
static const unsigned int i2c3_pins[] = {
 /* SDA3, SCL3 */
 RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 8),
};
static const unsigned int i2c3_mux[] = {
 SDA3_MARK, SCL3_MARK,
};

/* - I2C4 ------------------------------------------------------------------- */
static const unsigned int i2c4_pins[] = {
 /* SDA4, SCL4 */
 RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 10),
};
static const unsigned int i2c4_mux[] = {
 SDA4_MARK, SCL4_MARK,
};

/* - I2C5 ------------------------------------------------------------------- */
static const unsigned int i2c5_pins[] = {
 /* SDA5, SCL5 */
 RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 12),
};
static const unsigned int i2c5_mux[] = {
 SDA5_MARK, SCL5_MARK,
};

/* - I2C6 ------------------------------------------------------------------- */
static const unsigned int i2c6_pins[] = {
 /* SDA6, SCL6 */
 RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 14),
};
static const unsigned int i2c6_mux[] = {
 SDA6_MARK, SCL6_MARK,
};

/* - INTC-EX ---------------------------------------------------------------- */
static const unsigned int intc_ex_irq0_pins[] = {
 /* IRQ0 */
 RCAR_GP_PIN(1, 24),
};
static const unsigned int intc_ex_irq0_mux[] = {
 IRQ0_MARK,
};
static const unsigned int intc_ex_irq1_pins[] = {
 /* IRQ1 */
 RCAR_GP_PIN(1, 25),
};
static const unsigned int intc_ex_irq1_mux[] = {
 IRQ1_MARK,
};
static const unsigned int intc_ex_irq2_pins[] = {
 /* IRQ2 */
 RCAR_GP_PIN(1, 26),
};
static const unsigned int intc_ex_irq2_mux[] = {
 IRQ2_MARK,
};
static const unsigned int intc_ex_irq3_pins[] = {
 /* IRQ3 */
 RCAR_GP_PIN(1, 27),
};
static const unsigned int intc_ex_irq3_mux[] = {
 IRQ3_MARK,
};
static const unsigned int intc_ex_irq4_pins[] = {
 /* IRQ4 */
 RCAR_GP_PIN(2, 14),
};
static const unsigned int intc_ex_irq4_mux[] = {
 IRQ4_MARK,
};
static const unsigned int intc_ex_irq5_pins[] = {
 /* IRQ5 */
 RCAR_GP_PIN(2, 15),
};
static const unsigned int intc_ex_irq5_mux[] = {
 IRQ5_MARK,
};

/* - MMC -------------------------------------------------------------------- */
static const unsigned int mmc_data_pins[] = {
 /* MMC_SD_D[0:3], MMC_D[4:7] */
 RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20),
 RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22),
 RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25),
 RCAR_GP_PIN(0, 26), RCAR_GP_PIN(0, 27),
};
static const unsigned int mmc_data_mux[] = {
 MMC_SD_D0_MARK, MMC_SD_D1_MARK,
 MMC_SD_D2_MARK, MMC_SD_D3_MARK,
 MMC_D4_MARK, MMC_D5_MARK,
 MMC_D6_MARK, MMC_D7_MARK,
};
static const unsigned int mmc_ctrl_pins[] = {
 /* MMC_SD_CLK, MMC_SD_CMD */
 RCAR_GP_PIN(0, 23), RCAR_GP_PIN(0, 18),
};
static const unsigned int mmc_ctrl_mux[] = {
 MMC_SD_CLK_MARK, MMC_SD_CMD_MARK,
};
static const unsigned int mmc_cd_pins[] = {
 /* SD_CD */
 RCAR_GP_PIN(0, 16),
};
static const unsigned int mmc_cd_mux[] = {
 SD_CD_MARK,
};
static const unsigned int mmc_wp_pins[] = {
 /* SD_WP */
 RCAR_GP_PIN(0, 15),
};
static const unsigned int mmc_wp_mux[] = {
 SD_WP_MARK,
};
static const unsigned int mmc_ds_pins[] = {
 /* MMC_DS */
 RCAR_GP_PIN(0, 17),
};
static const unsigned int mmc_ds_mux[] = {
 MMC_DS_MARK,
};

/* - MSIOF0 ----------------------------------------------------------------- */
static const unsigned int msiof0_clk_pins[] = {
 /* MSIOF0_SCK */
 RCAR_GP_PIN(1, 8),
};
static const unsigned int msiof0_clk_mux[] = {
 MSIOF0_SCK_MARK,
};
static const unsigned int msiof0_sync_pins[] = {
 /* MSIOF0_SYNC */
 RCAR_GP_PIN(1, 9),
};
static const unsigned int msiof0_sync_mux[] = {
 MSIOF0_SYNC_MARK,
};
static const unsigned int msiof0_ss1_pins[] = {
 /* MSIOF0_SS1 */
 RCAR_GP_PIN(1, 10),
};
static const unsigned int msiof0_ss1_mux[] = {
 MSIOF0_SS1_MARK,
};
static const unsigned int msiof0_ss2_pins[] = {
 /* MSIOF0_SS2 */
 RCAR_GP_PIN(1, 11),
};
static const unsigned int msiof0_ss2_mux[] = {
 MSIOF0_SS2_MARK,
};
static const unsigned int msiof0_txd_pins[] = {
 /* MSIOF0_TXD */
 RCAR_GP_PIN(1, 7),
};
static const unsigned int msiof0_txd_mux[] = {
 MSIOF0_TXD_MARK,
};
static const unsigned int msiof0_rxd_pins[] = {
 /* MSIOF0_RXD */
 RCAR_GP_PIN(1, 6),
};
static const unsigned int msiof0_rxd_mux[] = {
 MSIOF0_RXD_MARK,
};

/* - MSIOF1 ----------------------------------------------------------------- */
static const unsigned int msiof1_clk_pins[] = {
 /* MSIOF1_SCK */
 RCAR_GP_PIN(1, 14),
};
static const unsigned int msiof1_clk_mux[] = {
 MSIOF1_SCK_MARK,
};
static const unsigned int msiof1_sync_pins[] = {
 /* MSIOF1_SYNC */
 RCAR_GP_PIN(1, 15),
};
static const unsigned int msiof1_sync_mux[] = {
 MSIOF1_SYNC_MARK,
};
static const unsigned int msiof1_ss1_pins[] = {
 /* MSIOF1_SS1 */
 RCAR_GP_PIN(1, 16),
};
static const unsigned int msiof1_ss1_mux[] = {
 MSIOF1_SS1_MARK,
};
static const unsigned int msiof1_ss2_pins[] = {
 /* MSIOF1_SS2 */
 RCAR_GP_PIN(1, 17),
};
static const unsigned int msiof1_ss2_mux[] = {
 MSIOF1_SS2_MARK,
};
static const unsigned int msiof1_txd_pins[] = {
 /* MSIOF1_TXD */
 RCAR_GP_PIN(1, 13),
};
static const unsigned int msiof1_txd_mux[] = {
 MSIOF1_TXD_MARK,
};
static const unsigned int msiof1_rxd_pins[] = {
 /* MSIOF1_RXD */
 RCAR_GP_PIN(1, 12),
};
static const unsigned int msiof1_rxd_mux[] = {
 MSIOF1_RXD_MARK,
};

/* - MSIOF2 ----------------------------------------------------------------- */
static const unsigned int msiof2_clk_pins[] = {
 /* MSIOF2_SCK */
 RCAR_GP_PIN(1, 20),
};
static const unsigned int msiof2_clk_mux[] = {
 MSIOF2_SCK_MARK,
};
static const unsigned int msiof2_sync_pins[] = {
 /* MSIOF2_SYNC */
 RCAR_GP_PIN(1, 21),
};
static const unsigned int msiof2_sync_mux[] = {
 MSIOF2_SYNC_MARK,
};
static const unsigned int msiof2_ss1_pins[] = {
 /* MSIOF2_SS1 */
 RCAR_GP_PIN(1, 22),
};
static const unsigned int msiof2_ss1_mux[] = {
 MSIOF2_SS1_MARK,
};
static const unsigned int msiof2_ss2_pins[] = {
 /* MSIOF2_SS2 */
 RCAR_GP_PIN(1, 23),
};
static const unsigned int msiof2_ss2_mux[] = {
 MSIOF2_SS2_MARK,
};
static const unsigned int msiof2_txd_pins[] = {
 /* MSIOF2_TXD */
 RCAR_GP_PIN(1, 19),
};
static const unsigned int msiof2_txd_mux[] = {
 MSIOF2_TXD_MARK,
};
static const unsigned int msiof2_rxd_pins[] = {
 /* MSIOF2_RXD */
 RCAR_GP_PIN(1, 18),
};
static const unsigned int msiof2_rxd_mux[] = {
 MSIOF2_RXD_MARK,
};

/* - MSIOF3 ----------------------------------------------------------------- */
static const unsigned int msiof3_clk_pins[] = {
 /* MSIOF3_SCK */
 RCAR_GP_PIN(2, 20),
};
static const unsigned int msiof3_clk_mux[] = {
 MSIOF3_SCK_MARK,
};
static const unsigned int msiof3_sync_pins[] = {
 /* MSIOF3_SYNC */
 RCAR_GP_PIN(2, 21),
};
static const unsigned int msiof3_sync_mux[] = {
 MSIOF3_SYNC_MARK,
};
static const unsigned int msiof3_ss1_pins[] = {
 /* MSIOF3_SS1 */
 RCAR_GP_PIN(2, 16),
};
static const unsigned int msiof3_ss1_mux[] = {
 MSIOF3_SS1_MARK,
};
static const unsigned int msiof3_ss2_pins[] = {
 /* MSIOF3_SS2 */
 RCAR_GP_PIN(2, 17),
};
static const unsigned int msiof3_ss2_mux[] = {
 MSIOF3_SS2_MARK,
};
static const unsigned int msiof3_txd_pins[] = {
 /* MSIOF3_TXD */
 RCAR_GP_PIN(2, 19),
};
static const unsigned int msiof3_txd_mux[] = {
 MSIOF3_TXD_MARK,
};
static const unsigned int msiof3_rxd_pins[] = {
 /* MSIOF3_RXD */
 RCAR_GP_PIN(2, 18),
};
static const unsigned int msiof3_rxd_mux[] = {
 MSIOF3_RXD_MARK,
};

/* - MSIOF4 ----------------------------------------------------------------- */
static const unsigned int msiof4_clk_pins[] = {
 /* MSIOF4_SCK */
 RCAR_GP_PIN(2, 6),
};
static const unsigned int msiof4_clk_mux[] = {
 MSIOF4_SCK_MARK,
};
static const unsigned int msiof4_sync_pins[] = {
 /* MSIOF4_SYNC */
 RCAR_GP_PIN(2, 7),
};
static const unsigned int msiof4_sync_mux[] = {
 MSIOF4_SYNC_MARK,
};
static const unsigned int msiof4_ss1_pins[] = {
 /* MSIOF4_SS1 */
 RCAR_GP_PIN(2, 8),
};
static const unsigned int msiof4_ss1_mux[] = {
 MSIOF4_SS1_MARK,
};
static const unsigned int msiof4_ss2_pins[] = {
 /* MSIOF4_SS2 */
 RCAR_GP_PIN(2, 9),
};
static const unsigned int msiof4_ss2_mux[] = {
 MSIOF4_SS2_MARK,
};
static const unsigned int msiof4_txd_pins[] = {
 /* MSIOF4_TXD */
 RCAR_GP_PIN(2, 5),
};
static const unsigned int msiof4_txd_mux[] = {
 MSIOF4_TXD_MARK,
};
static const unsigned int msiof4_rxd_pins[] = {
 /* MSIOF4_RXD */
 RCAR_GP_PIN(2, 4),
};
static const unsigned int msiof4_rxd_mux[] = {
 MSIOF4_RXD_MARK,
};

/* - MSIOF5 ----------------------------------------------------------------- */
static const unsigned int msiof5_clk_pins[] = {
 /* MSIOF5_SCK */
 RCAR_GP_PIN(2, 12),
};
static const unsigned int msiof5_clk_mux[] = {
 MSIOF5_SCK_MARK,
};
static const unsigned int msiof5_sync_pins[] = {
 /* MSIOF5_SYNC */
 RCAR_GP_PIN(2, 13),
};
static const unsigned int msiof5_sync_mux[] = {
 MSIOF5_SYNC_MARK,
};
static const unsigned int msiof5_ss1_pins[] = {
 /* MSIOF5_SS1 */
 RCAR_GP_PIN(2, 14),
};
static const unsigned int msiof5_ss1_mux[] = {
 MSIOF5_SS1_MARK,
};
static const unsigned int msiof5_ss2_pins[] = {
 /* MSIOF5_SS2 */
 RCAR_GP_PIN(2, 15),
};
static const unsigned int msiof5_ss2_mux[] = {
 MSIOF5_SS2_MARK,
};
static const unsigned int msiof5_txd_pins[] = {
 /* MSIOF5_TXD */
 RCAR_GP_PIN(2, 11),
};
static const unsigned int msiof5_txd_mux[] = {
 MSIOF5_TXD_MARK,
};
static const unsigned int msiof5_rxd_pins[] = {
 /* MSIOF5_RXD */
 RCAR_GP_PIN(2, 10),
};
static const unsigned int msiof5_rxd_mux[] = {
 MSIOF5_RXD_MARK,
};

/* - PWM0 ------------------------------------------------------------------- */
static const unsigned int pwm0_pins[] = {
 /* PWM0 */
 RCAR_GP_PIN(3, 5),
};
static const unsigned int pwm0_mux[] = {
 PWM0_MARK,
};

/* - PWM1 ------------------------------------------------------------------- */
static const unsigned int pwm1_pins[] = {
 /* PWM1 */
 RCAR_GP_PIN(3, 6),
};
static const unsigned int pwm1_mux[] = {
 PWM1_MARK,
};

/* - PWM2 ------------------------------------------------------------------- */
static const unsigned int pwm2_pins[] = {
 /* PWM2 */
 RCAR_GP_PIN(3, 7),
};
static const unsigned int pwm2_mux[] = {
 PWM2_MARK,
};

/* - PWM3 ------------------------------------------------------------------- */
static const unsigned int pwm3_pins[] = {
 /* PWM3 */
 RCAR_GP_PIN(3, 8),
};
static const unsigned int pwm3_mux[] = {
 PWM3_MARK,
};

/* - PWM4 ------------------------------------------------------------------- */
static const unsigned int pwm4_pins[] = {
 /* PWM4 */
 RCAR_GP_PIN(3, 9),
};
static const unsigned int pwm4_mux[] = {
 PWM4_MARK,
};

/* - QSPI0 ------------------------------------------------------------------ */
static const unsigned int qspi0_ctrl_pins[] = {
 /* SPCLK, SSL */
 RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 5),
};
static const unsigned int qspi0_ctrl_mux[] = {
 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK,
};
static const unsigned int qspi0_data_pins[] = {
 /* MOSI_IO0, MISO_IO1, IO2, IO3 */
 RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 2),
 RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 4),
};
static const unsigned int qspi0_data_mux[] = {
 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK,
 QSPI0_IO2_MARK, QSPI0_IO3_MARK
};

/* - QSPI1 ------------------------------------------------------------------ */
static const unsigned int qspi1_ctrl_pins[] = {
 /* SPCLK, SSL */
 RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 11),
};
static const unsigned int qspi1_ctrl_mux[] = {
 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK,
};
static const unsigned int qspi1_data_pins[] = {
 /* MOSI_IO0, MISO_IO1, IO2, IO3 */
 RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8),
 RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10),
};
static const unsigned int qspi1_data_mux[] = {
 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK,
 QSPI1_IO2_MARK, QSPI1_IO3_MARK
};

/* - SCIF0 ------------------------------------------------------------------ */
static const unsigned int scif0_data_pins[] = {
 /* RX0, TX0 */
 RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 5),
};
static const unsigned int scif0_data_mux[] = {
 RX0_MARK, TX0_MARK,
};
static const unsigned int scif0_clk_pins[] = {
 /* SCK0 */
 RCAR_GP_PIN(1, 2),
};
static const unsigned int scif0_clk_mux[] = {
 SCK0_MARK,
};
static const unsigned int scif0_ctrl_pins[] = {
 /* RTS0#, CTS0# */
 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 4),
};
static const unsigned int scif0_ctrl_mux[] = {
 RTS0_N_MARK, CTS0_N_MARK,
};

/* - SCIF1 ------------------------------------------------------------------ */
static const unsigned int scif1_data_a_pins[] = {
 /* RX, TX */
 RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22),
};
static const unsigned int scif1_data_a_mux[] = {
 RX1_A_MARK, TX1_A_MARK,
};
static const unsigned int scif1_data_b_pins[] = {
 /* RX, TX */
 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 1),
};
static const unsigned int scif1_data_b_mux[] = {
 RX1_B_MARK, TX1_B_MARK,
};
static const unsigned int scif1_clk_pins[] = {
 /* SCK1 */
 RCAR_GP_PIN(1, 18),
};
static const unsigned int scif1_clk_mux[] = {
 SCK1_MARK,
};
static const unsigned int scif1_ctrl_pins[] = {
 /* RTS1#, CTS1# */
 RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 19),
};
static const unsigned int scif1_ctrl_mux[] = {
 RTS1_N_MARK, CTS1_N_MARK,
};

/* - SCIF3 ------------------------------------------------------------------ */
static const unsigned int scif3_data_pins[] = {
 /* RX3, TX3 */
 RCAR_GP_PIN(1, 16), RCAR_GP_PIN(1, 17),
};
static const unsigned int scif3_data_mux[] = {
 RX3_MARK, TX3_MARK,
};
static const unsigned int scif3_clk_pins[] = {
 /* SCK3 */
 RCAR_GP_PIN(1, 13),
};
static const unsigned int scif3_clk_mux[] = {
 SCK3_MARK,
};
static const unsigned int scif3_ctrl_pins[] = {
 /* RTS3#, CTS3# */
 RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 14),
};
static const unsigned int scif3_ctrl_mux[] = {
 RTS3_N_MARK, CTS3_N_MARK,
};

/* - SCIF4 ------------------------------------------------------------------ */
static const unsigned int scif4_data_pins[] = {
 /* RX4, TX4 */
 RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9),
};
static const unsigned int scif4_data_mux[] = {
 RX4_MARK, TX4_MARK,
};
static const unsigned int scif4_clk_pins[] = {
 /* SCK4 */
 RCAR_GP_PIN(2, 5),
};
static const unsigned int scif4_clk_mux[] = {
 SCK4_MARK,
};
static const unsigned int scif4_ctrl_pins[] = {
 /* RTS4#, CTS4# */
 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 6),
};
static const unsigned int scif4_ctrl_mux[] = {
 RTS4_N_MARK, CTS4_N_MARK,
};

/* - SCIF Clock ------------------------------------------------------------- */
static const unsigned int scif_clk_pins[] = {
 /* SCIF_CLK */
 RCAR_GP_PIN(1, 0),
};
static const unsigned int scif_clk_mux[] = {
 SCIF_CLK_MARK,
};

/* - TMU -------------------------------------------------------------------- */
static const unsigned int tmu_tclk1_a_pins[] = {
 /* TCLK1 */
 RCAR_GP_PIN(2, 23),
};
static const unsigned int tmu_tclk1_a_mux[] = {
 TCLK1_A_MARK,
};
static const unsigned int tmu_tclk1_b_pins[] = {
 /* TCLK1 */
 RCAR_GP_PIN(1, 23),
};
static const unsigned int tmu_tclk1_b_mux[] = {
 TCLK1_B_MARK,
};

static const unsigned int tmu_tclk2_a_pins[] = {
 /* TCLK2 */
 RCAR_GP_PIN(2, 24),
};
static const unsigned int tmu_tclk2_a_mux[] = {
 TCLK2_A_MARK,
};
static const unsigned int tmu_tclk2_b_pins[] = {
 /* TCLK2 */
 RCAR_GP_PIN(2, 10),
};
static const unsigned int tmu_tclk2_b_mux[] = {
 TCLK2_B_MARK,
};

static const unsigned int tmu_tclk3_pins[] = {
 /* TCLK3 */
 RCAR_GP_PIN(2, 11),
};
static const unsigned int tmu_tclk3_mux[] = {
 TCLK3_MARK,
};

static const unsigned int tmu_tclk4_pins[] = {
 /* TCLK4 */
 RCAR_GP_PIN(2, 12),
};
static const unsigned int tmu_tclk4_mux[] = {
 TCLK4_MARK,
};

/* - TPU ------------------------------------------------------------------- */
static const unsigned int tpu_to0_pins[] = {
 /* TPU0TO0 */
 RCAR_GP_PIN(2, 21),
};
static const unsigned int tpu_to0_mux[] = {
 TPU0TO0_MARK,
};
static const unsigned int tpu_to1_pins[] = {
 /* TPU0TO1 */
 RCAR_GP_PIN(2, 22),
};
static const unsigned int tpu_to1_mux[] = {
 TPU0TO1_MARK,
};
static const unsigned int tpu_to2_pins[] = {
 /* TPU0TO2 */
 RCAR_GP_PIN(3, 5),
};
static const unsigned int tpu_to2_mux[] = {
 TPU0TO2_MARK,
};
static const unsigned int tpu_to3_pins[] = {
 /* TPU0TO3 */
 RCAR_GP_PIN(3, 6),
};
static const unsigned int tpu_to3_mux[] = {
 TPU0TO3_MARK,
};

static const struct sh_pfc_pin_group pinmux_groups[] = {
 SH_PFC_PIN_GROUP(avb0_link),
 SH_PFC_PIN_GROUP(avb0_magic),
 SH_PFC_PIN_GROUP(avb0_phy_int),
 SH_PFC_PIN_GROUP(avb0_mdio),
 SH_PFC_PIN_GROUP(avb0_rgmii),
 SH_PFC_PIN_GROUP(avb0_txcrefclk),
 SH_PFC_PIN_GROUP(avb0_avtp_pps),
 SH_PFC_PIN_GROUP(avb0_avtp_capture),
 SH_PFC_PIN_GROUP(avb0_avtp_match),

 SH_PFC_PIN_GROUP(avb1_link),
 SH_PFC_PIN_GROUP(avb1_magic),
 SH_PFC_PIN_GROUP(avb1_phy_int),
 SH_PFC_PIN_GROUP(avb1_mdio),
 SH_PFC_PIN_GROUP(avb1_rgmii),
 SH_PFC_PIN_GROUP(avb1_txcrefclk),
 SH_PFC_PIN_GROUP(avb1_avtp_pps),
 SH_PFC_PIN_GROUP(avb1_avtp_capture),
 SH_PFC_PIN_GROUP(avb1_avtp_match),

 SH_PFC_PIN_GROUP(avb2_link),
 SH_PFC_PIN_GROUP(avb2_magic),
 SH_PFC_PIN_GROUP(avb2_phy_int),
 SH_PFC_PIN_GROUP(avb2_mdio),
 SH_PFC_PIN_GROUP(avb2_rgmii),
 SH_PFC_PIN_GROUP(avb2_txcrefclk),
 SH_PFC_PIN_GROUP(avb2_avtp_pps),
 SH_PFC_PIN_GROUP(avb2_avtp_capture),
 SH_PFC_PIN_GROUP(avb2_avtp_match),

 SH_PFC_PIN_GROUP(avb3_link),
 SH_PFC_PIN_GROUP(avb3_magic),
 SH_PFC_PIN_GROUP(avb3_phy_int),
 SH_PFC_PIN_GROUP(avb3_mdio),
 SH_PFC_PIN_GROUP(avb3_rgmii),
 SH_PFC_PIN_GROUP(avb3_txcrefclk),
 SH_PFC_PIN_GROUP(avb3_avtp_pps),
 SH_PFC_PIN_GROUP(avb3_avtp_capture),
 SH_PFC_PIN_GROUP(avb3_avtp_match),

 SH_PFC_PIN_GROUP(avb4_link),
 SH_PFC_PIN_GROUP(avb4_magic),
 SH_PFC_PIN_GROUP(avb4_phy_int),
 SH_PFC_PIN_GROUP(avb4_mdio),
 SH_PFC_PIN_GROUP(avb4_rgmii),
 SH_PFC_PIN_GROUP(avb4_txcrefclk),
 SH_PFC_PIN_GROUP(avb4_avtp_pps),
 SH_PFC_PIN_GROUP(avb4_avtp_capture),
 SH_PFC_PIN_GROUP(avb4_avtp_match),

 SH_PFC_PIN_GROUP(avb5_link),
 SH_PFC_PIN_GROUP(avb5_magic),
 SH_PFC_PIN_GROUP(avb5_phy_int),
 SH_PFC_PIN_GROUP(avb5_mdio),
 SH_PFC_PIN_GROUP(avb5_rgmii),
 SH_PFC_PIN_GROUP(avb5_txcrefclk),
 SH_PFC_PIN_GROUP(avb5_avtp_pps),
 SH_PFC_PIN_GROUP(avb5_avtp_capture),
 SH_PFC_PIN_GROUP(avb5_avtp_match),

 SH_PFC_PIN_GROUP(canfd0_data),
 SH_PFC_PIN_GROUP(canfd1_data),
 SH_PFC_PIN_GROUP(canfd2_data),
 SH_PFC_PIN_GROUP(canfd3_data),
 SH_PFC_PIN_GROUP(canfd4_data),
 SH_PFC_PIN_GROUP(canfd5_data),
 SH_PFC_PIN_GROUP(canfd6_data),
 SH_PFC_PIN_GROUP(canfd7_data),
 SH_PFC_PIN_GROUP(can_clk),

 SH_PFC_PIN_GROUP(du_rgb888),
 SH_PFC_PIN_GROUP(du_clk_out),
 SH_PFC_PIN_GROUP(du_sync),
 SH_PFC_PIN_GROUP(du_oddf),

 SH_PFC_PIN_GROUP(hscif0_data),
 SH_PFC_PIN_GROUP(hscif0_clk),
 SH_PFC_PIN_GROUP(hscif0_ctrl),
 SH_PFC_PIN_GROUP(hscif1_data),
 SH_PFC_PIN_GROUP(hscif1_clk),
 SH_PFC_PIN_GROUP(hscif1_ctrl),
 SH_PFC_PIN_GROUP(hscif2_data),
 SH_PFC_PIN_GROUP(hscif2_clk),
 SH_PFC_PIN_GROUP(hscif2_ctrl),
 SH_PFC_PIN_GROUP(hscif3_data),
 SH_PFC_PIN_GROUP(hscif3_clk),
 SH_PFC_PIN_GROUP(hscif3_ctrl),

 SH_PFC_PIN_GROUP(i2c0),
 SH_PFC_PIN_GROUP(i2c1),
 SH_PFC_PIN_GROUP(i2c2),
 SH_PFC_PIN_GROUP(i2c3),
 SH_PFC_PIN_GROUP(i2c4),
 SH_PFC_PIN_GROUP(i2c5),
 SH_PFC_PIN_GROUP(i2c6),

 SH_PFC_PIN_GROUP(intc_ex_irq0),
 SH_PFC_PIN_GROUP(intc_ex_irq1),
 SH_PFC_PIN_GROUP(intc_ex_irq2),
 SH_PFC_PIN_GROUP(intc_ex_irq3),
 SH_PFC_PIN_GROUP(intc_ex_irq4),
 SH_PFC_PIN_GROUP(intc_ex_irq5),

 BUS_DATA_PIN_GROUP(mmc_data, 1),
 BUS_DATA_PIN_GROUP(mmc_data, 4),
 BUS_DATA_PIN_GROUP(mmc_data, 8),
 SH_PFC_PIN_GROUP(mmc_ctrl),
 SH_PFC_PIN_GROUP(mmc_cd),
 SH_PFC_PIN_GROUP(mmc_wp),
 SH_PFC_PIN_GROUP(mmc_ds),

 SH_PFC_PIN_GROUP(msiof0_clk),
 SH_PFC_PIN_GROUP(msiof0_sync),
 SH_PFC_PIN_GROUP(msiof0_ss1),
 SH_PFC_PIN_GROUP(msiof0_ss2),
 SH_PFC_PIN_GROUP(msiof0_txd),
 SH_PFC_PIN_GROUP(msiof0_rxd),
 SH_PFC_PIN_GROUP(msiof1_clk),
 SH_PFC_PIN_GROUP(msiof1_sync),
 SH_PFC_PIN_GROUP(msiof1_ss1),
 SH_PFC_PIN_GROUP(msiof1_ss2),
 SH_PFC_PIN_GROUP(msiof1_txd),
 SH_PFC_PIN_GROUP(msiof1_rxd),
 SH_PFC_PIN_GROUP(msiof2_clk),
 SH_PFC_PIN_GROUP(msiof2_sync),
 SH_PFC_PIN_GROUP(msiof2_ss1),
 SH_PFC_PIN_GROUP(msiof2_ss2),
 SH_PFC_PIN_GROUP(msiof2_txd),
 SH_PFC_PIN_GROUP(msiof2_rxd),
 SH_PFC_PIN_GROUP(msiof3_clk),
 SH_PFC_PIN_GROUP(msiof3_sync),
 SH_PFC_PIN_GROUP(msiof3_ss1),
 SH_PFC_PIN_GROUP(msiof3_ss2),
 SH_PFC_PIN_GROUP(msiof3_txd),
 SH_PFC_PIN_GROUP(msiof3_rxd),
 SH_PFC_PIN_GROUP(msiof4_clk),
 SH_PFC_PIN_GROUP(msiof4_sync),
 SH_PFC_PIN_GROUP(msiof4_ss1),
 SH_PFC_PIN_GROUP(msiof4_ss2),
 SH_PFC_PIN_GROUP(msiof4_txd),
 SH_PFC_PIN_GROUP(msiof4_rxd),
 SH_PFC_PIN_GROUP(msiof5_clk),
 SH_PFC_PIN_GROUP(msiof5_sync),
 SH_PFC_PIN_GROUP(msiof5_ss1),
 SH_PFC_PIN_GROUP(msiof5_ss2),
 SH_PFC_PIN_GROUP(msiof5_txd),
 SH_PFC_PIN_GROUP(msiof5_rxd),

 SH_PFC_PIN_GROUP(pwm0),
 SH_PFC_PIN_GROUP(pwm1),
 SH_PFC_PIN_GROUP(pwm2),
 SH_PFC_PIN_GROUP(pwm3),
 SH_PFC_PIN_GROUP(pwm4),

 SH_PFC_PIN_GROUP(qspi0_ctrl),
 BUS_DATA_PIN_GROUP(qspi0_data, 2),
 BUS_DATA_PIN_GROUP(qspi0_data, 4),
 SH_PFC_PIN_GROUP(qspi1_ctrl),
 BUS_DATA_PIN_GROUP(qspi1_data, 2),
 BUS_DATA_PIN_GROUP(qspi1_data, 4),

 SH_PFC_PIN_GROUP(scif0_data),
 SH_PFC_PIN_GROUP(scif0_clk),
 SH_PFC_PIN_GROUP(scif0_ctrl),
 SH_PFC_PIN_GROUP(scif1_data_a),
 SH_PFC_PIN_GROUP(scif1_data_b),
 SH_PFC_PIN_GROUP(scif1_clk),
 SH_PFC_PIN_GROUP(scif1_ctrl),
 SH_PFC_PIN_GROUP(scif3_data),
 SH_PFC_PIN_GROUP(scif3_clk),
 SH_PFC_PIN_GROUP(scif3_ctrl),
 SH_PFC_PIN_GROUP(scif4_data),
 SH_PFC_PIN_GROUP(scif4_clk),
 SH_PFC_PIN_GROUP(scif4_ctrl),
 SH_PFC_PIN_GROUP(scif_clk),

 SH_PFC_PIN_GROUP(tmu_tclk1_a),
 SH_PFC_PIN_GROUP(tmu_tclk1_b),
 SH_PFC_PIN_GROUP(tmu_tclk2_a),
 SH_PFC_PIN_GROUP(tmu_tclk2_b),
 SH_PFC_PIN_GROUP(tmu_tclk3),
 SH_PFC_PIN_GROUP(tmu_tclk4),

 SH_PFC_PIN_GROUP(tpu_to0),
 SH_PFC_PIN_GROUP(tpu_to1),
 SH_PFC_PIN_GROUP(tpu_to2),
 SH_PFC_PIN_GROUP(tpu_to3),
};

static const char * const avb0_groups[] = {
 "avb0_link",
 "avb0_magic",
 "avb0_phy_int",
 "avb0_mdio",
 "avb0_rgmii",
 "avb0_txcrefclk",
 "avb0_avtp_pps",
 "avb0_avtp_capture",
 "avb0_avtp_match",
};

static const char * const avb1_groups[] = {
 "avb1_link",
 "avb1_magic",
 "avb1_phy_int",
 "avb1_mdio",
 "avb1_rgmii",
 "avb1_txcrefclk",
 "avb1_avtp_pps",
 "avb1_avtp_capture",
 "avb1_avtp_match",
};

static const char * const avb2_groups[] = {
 "avb2_link",
 "avb2_magic",
 "avb2_phy_int",
 "avb2_mdio",
 "avb2_rgmii",
 "avb2_txcrefclk",
 "avb2_avtp_pps",
 "avb2_avtp_capture",
 "avb2_avtp_match",
};

static const char * const avb3_groups[] = {
 "avb3_link",
 "avb3_magic",
 "avb3_phy_int",
 "avb3_mdio",
 "avb3_rgmii",
 "avb3_txcrefclk",
 "avb3_avtp_pps",
 "avb3_avtp_capture",
 "avb3_avtp_match",
};

static const char * const avb4_groups[] = {
 "avb4_link",
 "avb4_magic",
 "avb4_phy_int",
 "avb4_mdio",
 "avb4_rgmii",
 "avb4_txcrefclk",
 "avb4_avtp_pps",
 "avb4_avtp_capture",
 "avb4_avtp_match",
};

static const char * const avb5_groups[] = {
 "avb5_link",
 "avb5_magic",
 "avb5_phy_int",
 "avb5_mdio",
 "avb5_rgmii",
 "avb5_txcrefclk",
 "avb5_avtp_pps",
 "avb5_avtp_capture",
 "avb5_avtp_match",
};

static const char * const canfd0_groups[] = {
 "canfd0_data",
};

static const char * const canfd1_groups[] = {
 "canfd1_data",
};

static const char * const canfd2_groups[] = {
 "canfd2_data",
};

static const char * const canfd3_groups[] = {
 "canfd3_data",
};

static const char * const canfd4_groups[] = {
 "canfd4_data",
};

static const char * const canfd5_groups[] = {
 "canfd5_data",
};

static const char * const canfd6_groups[] = {
 "canfd6_data",
};

static const char * const canfd7_groups[] = {
 "canfd7_data",
};

static const char * const can_clk_groups[] = {
 "can_clk",
};

static const char * const du_groups[] = {
 "du_rgb888",
 "du_clk_out",
 "du_sync",
 "du_oddf",
};

static const char * const hscif0_groups[] = {
 "hscif0_data",
 "hscif0_clk",
 "hscif0_ctrl",
};

static const char * const hscif1_groups[] = {
 "hscif1_data",
 "hscif1_clk",
 "hscif1_ctrl",
};

static const char * const hscif2_groups[] = {
 "hscif2_data",
 "hscif2_clk",
 "hscif2_ctrl",
};

static const char * const hscif3_groups[] = {
 "hscif3_data",
 "hscif3_clk",
 "hscif3_ctrl",
};

static const char * const i2c0_groups[] = {
 "i2c0",
};

static const char * const i2c1_groups[] = {
 "i2c1",
};

static const char * const i2c2_groups[] = {
 "i2c2",
};

static const char * const i2c3_groups[] = {
 "i2c3",
};

static const char * const i2c4_groups[] = {
 "i2c4",
};

static const char * const i2c5_groups[] = {
 "i2c5",
};

static const char * const i2c6_groups[] = {
 "i2c6",
};

static const char * const intc_ex_groups[] = {
 "intc_ex_irq0",
 "intc_ex_irq1",
 "intc_ex_irq2",
 "intc_ex_irq3",
 "intc_ex_irq4",
 "intc_ex_irq5",
};

static const char * const mmc_groups[] = {
 "mmc_data1",
 "mmc_data4",
 "mmc_data8",
 "mmc_ctrl",
 "mmc_cd",
 "mmc_wp",
 "mmc_ds",
};

static const char * const msiof0_groups[] = {
 "msiof0_clk",
 "msiof0_sync",
 "msiof0_ss1",
 "msiof0_ss2",
 "msiof0_txd",
 "msiof0_rxd",
};

static const char * const msiof1_groups[] = {
 "msiof1_clk",
 "msiof1_sync",
 "msiof1_ss1",
 "msiof1_ss2",
 "msiof1_txd",
 "msiof1_rxd",
};

static const char * const msiof2_groups[] = {
 "msiof2_clk",
 "msiof2_sync",
 "msiof2_ss1",
 "msiof2_ss2",
 "msiof2_txd",
 "msiof2_rxd",
};

static const char * const msiof3_groups[] = {
 "msiof3_clk",
 "msiof3_sync",
 "msiof3_ss1",
 "msiof3_ss2",
 "msiof3_txd",
 "msiof3_rxd",
};

static const char * const msiof4_groups[] = {
 "msiof4_clk",
 "msiof4_sync",
 "msiof4_ss1",
 "msiof4_ss2",
 "msiof4_txd",
 "msiof4_rxd",
};

static const char * const msiof5_groups[] = {
 "msiof5_clk",
 "msiof5_sync",
 "msiof5_ss1",
 "msiof5_ss2",
 "msiof5_txd",
 "msiof5_rxd",
};

static const char * const pwm0_groups[] = {
 "pwm0",
};

static const char * const pwm1_groups[] = {
 "pwm1",
};

static const char * const pwm2_groups[] = {
 "pwm2",
};

static const char * const pwm3_groups[] = {
 "pwm3",
};

static const char * const pwm4_groups[] = {
 "pwm4",
};

static const char * const qspi0_groups[] = {
 "qspi0_ctrl",
 "qspi0_data2",
 "qspi0_data4",
};

static const char * const qspi1_groups[] = {
 "qspi1_ctrl",
 "qspi1_data2",
 "qspi1_data4",
};

static const char * const scif0_groups[] = {
 "scif0_data",
 "scif0_clk",
 "scif0_ctrl",
};

static const char * const scif1_groups[] = {
 "scif1_data_a",
 "scif1_data_b",
 "scif1_clk",
 "scif1_ctrl",
};

static const char * const scif3_groups[] = {
 "scif3_data",
 "scif3_clk",
 "scif3_ctrl",
};

static const char * const scif4_groups[] = {
 "scif4_data",
 "scif4_clk",
 "scif4_ctrl",
};

static const char * const scif_clk_groups[] = {
 "scif_clk",
};

static const char * const tmu_groups[] = {
 "tmu_tclk1_a",
 "tmu_tclk1_b",
 "tmu_tclk2_a",
 "tmu_tclk2_b",
 "tmu_tclk3",
 "tmu_tclk4",
};

static const char * const tpu_groups[] = {
 "tpu_to0",
 "tpu_to1",
 "tpu_to2",
 "tpu_to3",
};

static const struct sh_pfc_function pinmux_functions[] = {
 SH_PFC_FUNCTION(avb0),
 SH_PFC_FUNCTION(avb1),
 SH_PFC_FUNCTION(avb2),
 SH_PFC_FUNCTION(avb3),
 SH_PFC_FUNCTION(avb4),
 SH_PFC_FUNCTION(avb5),

 SH_PFC_FUNCTION(canfd0),
 SH_PFC_FUNCTION(canfd1),
 SH_PFC_FUNCTION(canfd2),
 SH_PFC_FUNCTION(canfd3),
 SH_PFC_FUNCTION(canfd4),
 SH_PFC_FUNCTION(canfd5),
 SH_PFC_FUNCTION(canfd6),
 SH_PFC_FUNCTION(canfd7),
 SH_PFC_FUNCTION(can_clk),

 SH_PFC_FUNCTION(du),

 SH_PFC_FUNCTION(hscif0),
 SH_PFC_FUNCTION(hscif1),
 SH_PFC_FUNCTION(hscif2),
 SH_PFC_FUNCTION(hscif3),

 SH_PFC_FUNCTION(i2c0),
 SH_PFC_FUNCTION(i2c1),
 SH_PFC_FUNCTION(i2c2),
 SH_PFC_FUNCTION(i2c3),
 SH_PFC_FUNCTION(i2c4),
 SH_PFC_FUNCTION(i2c5),
 SH_PFC_FUNCTION(i2c6),

 SH_PFC_FUNCTION(intc_ex),

 SH_PFC_FUNCTION(mmc),

 SH_PFC_FUNCTION(msiof0),
 SH_PFC_FUNCTION(msiof1),
 SH_PFC_FUNCTION(msiof2),
 SH_PFC_FUNCTION(msiof3),
 SH_PFC_FUNCTION(msiof4),
 SH_PFC_FUNCTION(msiof5),

 SH_PFC_FUNCTION(pwm0),
 SH_PFC_FUNCTION(pwm1),
 SH_PFC_FUNCTION(pwm2),
 SH_PFC_FUNCTION(pwm3),
 SH_PFC_FUNCTION(pwm4),

 SH_PFC_FUNCTION(qspi0),
 SH_PFC_FUNCTION(qspi1),

 SH_PFC_FUNCTION(scif0),
 SH_PFC_FUNCTION(scif1),
 SH_PFC_FUNCTION(scif3),
 SH_PFC_FUNCTION(scif4),
 SH_PFC_FUNCTION(scif_clk),

 SH_PFC_FUNCTION(tmu),

 SH_PFC_FUNCTION(tpu),
};

static const struct pinmux_cfg_reg pinmux_config_regs[] = {
#define F_(x, y) FN_##y
#define FM(x)  FN_##x
 { PINMUX_CFG_REG("GPSR0", 0xe6058040, 32, 1, GROUP(
  0, 0,
  0, 0,
  0, 0,
  0, 0,
  GP_0_27_FN, GPSR0_27,
  GP_0_26_FN, GPSR0_26,
  GP_0_25_FN, GPSR0_25,
  GP_0_24_FN, GPSR0_24,
  GP_0_23_FN, GPSR0_23,
  GP_0_22_FN, GPSR0_22,
  GP_0_21_FN, GPSR0_21,
  GP_0_20_FN, GPSR0_20,
  GP_0_19_FN, GPSR0_19,
  GP_0_18_FN, GPSR0_18,
  GP_0_17_FN, GPSR0_17,
  GP_0_16_FN, GPSR0_16,
  GP_0_15_FN, GPSR0_15,
  GP_0_14_FN, GPSR0_14,
  GP_0_13_FN, GPSR0_13,
  GP_0_12_FN, GPSR0_12,
  GP_0_11_FN, GPSR0_11,
  GP_0_10_FN, GPSR0_10,
  GP_0_9_FN, GPSR0_9,
  GP_0_8_FN, GPSR0_8,
  GP_0_7_FN, GPSR0_7,
  GP_0_6_FN, GPSR0_6,
  GP_0_5_FN, GPSR0_5,
  GP_0_4_FN, GPSR0_4,
  GP_0_3_FN, GPSR0_3,
  GP_0_2_FN, GPSR0_2,
  GP_0_1_FN, GPSR0_1,
  GP_0_0_FN, GPSR0_0, ))
 },
 { PINMUX_CFG_REG("GPSR1", 0xe6050040, 32, 1, GROUP(
  0, 0,
  GP_1_30_FN, GPSR1_30,
  GP_1_29_FN, GPSR1_29,
  GP_1_28_FN, GPSR1_28,
  GP_1_27_FN, GPSR1_27,
  GP_1_26_FN, GPSR1_26,
  GP_1_25_FN, GPSR1_25,
  GP_1_24_FN, GPSR1_24,
  GP_1_23_FN, GPSR1_23,
  GP_1_22_FN, GPSR1_22,
  GP_1_21_FN, GPSR1_21,
  GP_1_20_FN, GPSR1_20,
  GP_1_19_FN, GPSR1_19,
  GP_1_18_FN, GPSR1_18,
  GP_1_17_FN, GPSR1_17,
  GP_1_16_FN, GPSR1_16,
  GP_1_15_FN, GPSR1_15,
  GP_1_14_FN, GPSR1_14,
  GP_1_13_FN, GPSR1_13,
  GP_1_12_FN, GPSR1_12,
  GP_1_11_FN, GPSR1_11,
  GP_1_10_FN, GPSR1_10,
  GP_1_9_FN, GPSR1_9,
  GP_1_8_FN, GPSR1_8,
  GP_1_7_FN, GPSR1_7,
  GP_1_6_FN, GPSR1_6,
  GP_1_5_FN, GPSR1_5,
  GP_1_4_FN, GPSR1_4,
  GP_1_3_FN, GPSR1_3,
  GP_1_2_FN, GPSR1_2,
  GP_1_1_FN, GPSR1_1,
  GP_1_0_FN, GPSR1_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR2", 0xe6050840, 32,
        GROUP(-7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP2_31_25 RESERVED */
  GP_2_24_FN, GPSR2_24,
  GP_2_23_FN, GPSR2_23,
  GP_2_22_FN, GPSR2_22,
  GP_2_21_FN, GPSR2_21,
  GP_2_20_FN, GPSR2_20,
  GP_2_19_FN, GPSR2_19,
  GP_2_18_FN, GPSR2_18,
  GP_2_17_FN, GPSR2_17,
  GP_2_16_FN, GPSR2_16,
  GP_2_15_FN, GPSR2_15,
  GP_2_14_FN, GPSR2_14,
  GP_2_13_FN, GPSR2_13,
  GP_2_12_FN, GPSR2_12,
  GP_2_11_FN, GPSR2_11,
  GP_2_10_FN, GPSR2_10,
  GP_2_9_FN, GPSR2_9,
  GP_2_8_FN, GPSR2_8,
  GP_2_7_FN, GPSR2_7,
  GP_2_6_FN, GPSR2_6,
  GP_2_5_FN, GPSR2_5,
  GP_2_4_FN, GPSR2_4,
  GP_2_3_FN, GPSR2_3,
  GP_2_2_FN, GPSR2_2,
  GP_2_1_FN, GPSR2_1,
  GP_2_0_FN, GPSR2_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR3", 0xe6058840, 32,
        GROUP(-15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP3_31_17 RESERVED */
  GP_3_16_FN, GPSR3_16,
  GP_3_15_FN, GPSR3_15,
  GP_3_14_FN, GPSR3_14,
  GP_3_13_FN, GPSR3_13,
  GP_3_12_FN, GPSR3_12,
  GP_3_11_FN, GPSR3_11,
  GP_3_10_FN, GPSR3_10,
  GP_3_9_FN, GPSR3_9,
  GP_3_8_FN, GPSR3_8,
  GP_3_7_FN, GPSR3_7,
  GP_3_6_FN, GPSR3_6,
  GP_3_5_FN, GPSR3_5,
  GP_3_4_FN, GPSR3_4,
  GP_3_3_FN, GPSR3_3,
  GP_3_2_FN, GPSR3_2,
  GP_3_1_FN, GPSR3_1,
  GP_3_0_FN, GPSR3_0, ))
 },
 { PINMUX_CFG_REG("GPSR4", 0xe6060040, 32, 1, GROUP(
  0, 0,
  0, 0,
  0, 0,
  0, 0,
  0, 0,
  GP_4_26_FN, GPSR4_26,
  GP_4_25_FN, GPSR4_25,
  GP_4_24_FN, GPSR4_24,
  GP_4_23_FN, GPSR4_23,
  GP_4_22_FN, GPSR4_22,
  GP_4_21_FN, GPSR4_21,
  GP_4_20_FN, GPSR4_20,
  GP_4_19_FN, GPSR4_19,
  GP_4_18_FN, GPSR4_18,
  GP_4_17_FN, GPSR4_17,
  GP_4_16_FN, GPSR4_16,
  GP_4_15_FN, GPSR4_15,
  GP_4_14_FN, GPSR4_14,
  GP_4_13_FN, GPSR4_13,
  GP_4_12_FN, GPSR4_12,
  GP_4_11_FN, GPSR4_11,
  GP_4_10_FN, GPSR4_10,
  GP_4_9_FN, GPSR4_9,
  GP_4_8_FN, GPSR4_8,
  GP_4_7_FN, GPSR4_7,
  GP_4_6_FN, GPSR4_6,
  GP_4_5_FN, GPSR4_5,
  GP_4_4_FN, GPSR4_4,
  GP_4_3_FN, GPSR4_3,
  GP_4_2_FN, GPSR4_2,
  GP_4_1_FN, GPSR4_1,
  GP_4_0_FN, GPSR4_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR5", 0xe6060840, 32,
        GROUP(-11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP5_31_21 RESERVED */
  GP_5_20_FN, GPSR5_20,
  GP_5_19_FN, GPSR5_19,
  GP_5_18_FN, GPSR5_18,
  GP_5_17_FN, GPSR5_17,
  GP_5_16_FN, GPSR5_16,
  GP_5_15_FN, GPSR5_15,
  GP_5_14_FN, GPSR5_14,
  GP_5_13_FN, GPSR5_13,
  GP_5_12_FN, GPSR5_12,
  GP_5_11_FN, GPSR5_11,
  GP_5_10_FN, GPSR5_10,
  GP_5_9_FN, GPSR5_9,
  GP_5_8_FN, GPSR5_8,
  GP_5_7_FN, GPSR5_7,
  GP_5_6_FN, GPSR5_6,
  GP_5_5_FN, GPSR5_5,
  GP_5_4_FN, GPSR5_4,
  GP_5_3_FN, GPSR5_3,
  GP_5_2_FN, GPSR5_2,
  GP_5_1_FN, GPSR5_1,
  GP_5_0_FN, GPSR5_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR6", 0xe6068040, 32,
        GROUP(-11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP6_31_21 RESERVED */
  GP_6_20_FN, GPSR6_20,
  GP_6_19_FN, GPSR6_19,
  GP_6_18_FN, GPSR6_18,
  GP_6_17_FN, GPSR6_17,
  GP_6_16_FN, GPSR6_16,
  GP_6_15_FN, GPSR6_15,
  GP_6_14_FN, GPSR6_14,
  GP_6_13_FN, GPSR6_13,
  GP_6_12_FN, GPSR6_12,
  GP_6_11_FN, GPSR6_11,
  GP_6_10_FN, GPSR6_10,
  GP_6_9_FN, GPSR6_9,
  GP_6_8_FN, GPSR6_8,
  GP_6_7_FN, GPSR6_7,
  GP_6_6_FN, GPSR6_6,
  GP_6_5_FN, GPSR6_5,
  GP_6_4_FN, GPSR6_4,
  GP_6_3_FN, GPSR6_3,
  GP_6_2_FN, GPSR6_2,
  GP_6_1_FN, GPSR6_1,
  GP_6_0_FN, GPSR6_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR7", 0xe6068840, 32,
        GROUP(-11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP7_31_21 RESERVED */
  GP_7_20_FN, GPSR7_20,
  GP_7_19_FN, GPSR7_19,
  GP_7_18_FN, GPSR7_18,
  GP_7_17_FN, GPSR7_17,
  GP_7_16_FN, GPSR7_16,
  GP_7_15_FN, GPSR7_15,
  GP_7_14_FN, GPSR7_14,
  GP_7_13_FN, GPSR7_13,
  GP_7_12_FN, GPSR7_12,
  GP_7_11_FN, GPSR7_11,
  GP_7_10_FN, GPSR7_10,
  GP_7_9_FN, GPSR7_9,
  GP_7_8_FN, GPSR7_8,
  GP_7_7_FN, GPSR7_7,
  GP_7_6_FN, GPSR7_6,
  GP_7_5_FN, GPSR7_5,
  GP_7_4_FN, GPSR7_4,
  GP_7_3_FN, GPSR7_3,
  GP_7_2_FN, GPSR7_2,
  GP_7_1_FN, GPSR7_1,
  GP_7_0_FN, GPSR7_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR8", 0xe6069040, 32,
        GROUP(-11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP8_31_21 RESERVED */
  GP_8_20_FN, GPSR8_20,
  GP_8_19_FN, GPSR8_19,
  GP_8_18_FN, GPSR8_18,
  GP_8_17_FN, GPSR8_17,
  GP_8_16_FN, GPSR8_16,
  GP_8_15_FN, GPSR8_15,
  GP_8_14_FN, GPSR8_14,
  GP_8_13_FN, GPSR8_13,
  GP_8_12_FN, GPSR8_12,
  GP_8_11_FN, GPSR8_11,
  GP_8_10_FN, GPSR8_10,
  GP_8_9_FN, GPSR8_9,
  GP_8_8_FN, GPSR8_8,
  GP_8_7_FN, GPSR8_7,
  GP_8_6_FN, GPSR8_6,
  GP_8_5_FN, GPSR8_5,
  GP_8_4_FN, GPSR8_4,
  GP_8_3_FN, GPSR8_3,
  GP_8_2_FN, GPSR8_2,
  GP_8_1_FN, GPSR8_1,
  GP_8_0_FN, GPSR8_0, ))
 },
 { PINMUX_CFG_REG_VAR("GPSR9", 0xe6069840, 32,
        GROUP(-11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
        GROUP(
  /* GP9_31_21 RESERVED */
  GP_9_20_FN, GPSR9_20,
  GP_9_19_FN, GPSR9_19,
  GP_9_18_FN, GPSR9_18,
  GP_9_17_FN, GPSR9_17,
  GP_9_16_FN, GPSR9_16,
  GP_9_15_FN, GPSR9_15,
  GP_9_14_FN, GPSR9_14,
  GP_9_13_FN, GPSR9_13,
  GP_9_12_FN, GPSR9_12,
  GP_9_11_FN, GPSR9_11,
  GP_9_10_FN, GPSR9_10,
  GP_9_9_FN, GPSR9_9,
  GP_9_8_FN, GPSR9_8,
  GP_9_7_FN, GPSR9_7,
  GP_9_6_FN, GPSR9_6,
  GP_9_5_FN, GPSR9_5,
  GP_9_4_FN, GPSR9_4,
  GP_9_3_FN, GPSR9_3,
  GP_9_2_FN, GPSR9_2,
  GP_9_1_FN, GPSR9_1,
  GP_9_0_FN, GPSR9_0, ))
 },
#undef F_
#undef FM

#define F_(x, y) x,
#define FM(x)  FN_##x,
 { PINMUX_CFG_REG("IP0SR1", 0xe6050060, 32, 4, GROUP(
  IP0SR1_31_28
  IP0SR1_27_24
  IP0SR1_23_20
  IP0SR1_19_16
  IP0SR1_15_12
  IP0SR1_11_8
  IP0SR1_7_4
  IP0SR1_3_0))
 },
 { PINMUX_CFG_REG("IP1SR1", 0xe6050064, 32, 4, GROUP(
  IP1SR1_31_28
  IP1SR1_27_24
  IP1SR1_23_20
  IP1SR1_19_16
  IP1SR1_15_12
  IP1SR1_11_8
  IP1SR1_7_4
  IP1SR1_3_0))
 },
 { PINMUX_CFG_REG("IP2SR1", 0xe6050068, 32, 4, GROUP(
  IP2SR1_31_28
  IP2SR1_27_24
  IP2SR1_23_20
  IP2SR1_19_16
  IP2SR1_15_12
  IP2SR1_11_8
  IP2SR1_7_4
  IP2SR1_3_0))
 },
 { PINMUX_CFG_REG_VAR("IP3SR1", 0xe605006c, 32,
         GROUP(-4, 4, 4, 4, 4, 4, 4, 4),
         GROUP(
  /* IP3SR1_31_28 RESERVED */
  IP3SR1_27_24
  IP3SR1_23_20
  IP3SR1_19_16
  IP3SR1_15_12
  IP3SR1_11_8
  IP3SR1_7_4
  IP3SR1_3_0))
 },
 { PINMUX_CFG_REG("IP0SR2", 0xe6050860, 32, 4, GROUP(
  IP0SR2_31_28
  IP0SR2_27_24
  IP0SR2_23_20
  IP0SR2_19_16
  IP0SR2_15_12
  IP0SR2_11_8
  IP0SR2_7_4
  IP0SR2_3_0))
 },
 { PINMUX_CFG_REG("IP1SR2", 0xe6050864, 32, 4, GROUP(
  IP1SR2_31_28
  IP1SR2_27_24
  IP1SR2_23_20
  IP1SR2_19_16
  IP1SR2_15_12
  IP1SR2_11_8
  IP1SR2_7_4
  IP1SR2_3_0))
 },
 { PINMUX_CFG_REG("IP2SR2", 0xe6050868, 32, 4, GROUP(
  IP2SR2_31_28
  IP2SR2_27_24
  IP2SR2_23_20
  IP2SR2_19_16
  IP2SR2_15_12
  IP2SR2_11_8
  IP2SR2_7_4
  IP2SR2_3_0))
 },
 { PINMUX_CFG_REG_VAR("IP0SR3", 0xe6058860, 32,
        GROUP(4, 4, 4, -8, 4, 4, -4),
        GROUP(
  IP0SR3_31_28
  IP0SR3_27_24
  IP0SR3_23_20
  /* IP0SR3_19_12 RESERVED */
  IP0SR3_11_8
  IP0SR3_7_4
  /* IP0SR3_3_0 RESERVED */ ))
 },
 { PINMUX_CFG_REG_VAR("IP1SR3", 0xe6058864, 32,
        GROUP(-8, 4, 4, 4, 4, 4, 4),
        GROUP(
  /* IP1SR3_31_24 RESERVED */
  IP1SR3_23_20
  IP1SR3_19_16
  IP1SR3_15_12
  IP1SR3_11_8
  IP1SR3_7_4
  IP1SR3_3_0))
 },
 { PINMUX_CFG_REG("IP0SR4", 0xe6060060, 32, 4, GROUP(
  IP0SR4_31_28
  IP0SR4_27_24
  IP0SR4_23_20
  IP0SR4_19_16
  IP0SR4_15_12
  IP0SR4_11_8
  IP0SR4_7_4
  IP0SR4_3_0))
 },
 { PINMUX_CFG_REG("IP1SR4", 0xe6060064, 32, 4, GROUP(
  IP1SR4_31_28
  IP1SR4_27_24
  IP1SR4_23_20
  IP1SR4_19_16
  IP1SR4_15_12
  IP1SR4_11_8
  IP1SR4_7_4
  IP1SR4_3_0))
 },
 { PINMUX_CFG_REG_VAR("IP2SR4", 0xe6060068, 32,
        GROUP(-12, 4, 4, 4, 4, -4),
        GROUP(
  /* IP2SR4_31_20 RESERVED */
  IP2SR4_19_16
  IP2SR4_15_12
  IP2SR4_11_8
  IP2SR4_7_4
  /* IP2SR4_3_0 RESERVED */ ))
 },
 { PINMUX_CFG_REG("IP0SR5", 0xe6060860, 32, 4, GROUP(
  IP0SR5_31_28
  IP0SR5_27_24
  IP0SR5_23_20
  IP0SR5_19_16
  IP0SR5_15_12
  IP0SR5_11_8
  IP0SR5_7_4
  IP0SR5_3_0))
 },
 { PINMUX_CFG_REG("IP1SR5", 0xe6060864, 32, 4, GROUP(
  IP1SR5_31_28
  IP1SR5_27_24
  IP1SR5_23_20
  IP1SR5_19_16
  IP1SR5_15_12
  IP1SR5_11_8
  IP1SR5_7_4
  IP1SR5_3_0))
 },
 { PINMUX_CFG_REG_VAR("IP2SR5", 0xe6060868, 32,
        GROUP(-12, 4, 4, 4, 4, -4),
        GROUP(
  /* IP2SR5_31_20 RESERVED */
  IP2SR5_19_16
  IP2SR5_15_12
  IP2SR5_11_8
  IP2SR5_7_4
  /* IP2SR5_3_0 RESERVED */ ))
 },
#undef F_
#undef FM

#define F_(x, y) x,
#define FM(x)  FN_##x,
 { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xe6050900, 32,
        GROUP(-16, 2, 2, 2, 2, 2, 2, 2, -2),
        GROUP(
  /* RESERVED 31-16 */
  MOD_SEL2_15_14
  MOD_SEL2_13_12
  MOD_SEL2_11_10
  MOD_SEL2_9_8
  MOD_SEL2_7_6
  MOD_SEL2_5_4
  MOD_SEL2_3_2
  /* RESERVED 1-0 */ ))
 },
 { /* sentinel */ }
};

static const struct pinmux_drive_reg pinmux_drive_regs[] = {
 { PINMUX_DRIVE_REG("DRV0CTRL0", 0xe6058080) {
  { RCAR_GP_PIN(0,  7), 28, 2 }, /* QSPI1_MOSI_IO0 */
  { RCAR_GP_PIN(0,  6), 24, 2 }, /* QSPI1_SPCLK */
  { RCAR_GP_PIN(0,  5), 20, 2 }, /* QSPI0_SSL */
  { RCAR_GP_PIN(0,  4), 16, 2 }, /* QSPI0_IO3 */
  { RCAR_GP_PIN(0,  3), 12, 2 }, /* QSPI0_IO2 */
  { RCAR_GP_PIN(0,  2),  8, 2 }, /* QSPI0_MISO_IO1 */
  { RCAR_GP_PIN(0,  1),  4, 2 }, /* QSPI0_MOSI_IO0 */
  { RCAR_GP_PIN(0,  0),  0, 2 }, /* QSPI0_SPCLK */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL0", 0xe6058084) {
  { RCAR_GP_PIN(0, 15), 28, 3 }, /* SD_WP */
  { RCAR_GP_PIN(0, 14), 24, 2 }, /* RPC_INT_N */
  { RCAR_GP_PIN(0, 13), 20, 2 }, /* RPC_WP_N */
  { RCAR_GP_PIN(0, 12), 16, 2 }, /* RPC_RESET_N */
  { RCAR_GP_PIN(0, 11), 12, 2 }, /* QSPI1_SSL */
  { RCAR_GP_PIN(0, 10),  8, 2 }, /* QSPI1_IO3 */
  { RCAR_GP_PIN(0,  9),  4, 2 }, /* QSPI1_IO2 */
  { RCAR_GP_PIN(0,  8),  0, 2 }, /* QSPI1_MISO_IO1 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL0", 0xe6058088) {
  { RCAR_GP_PIN(0, 23), 28, 3 }, /* MMC_SD_CLK */
  { RCAR_GP_PIN(0, 22), 24, 3 }, /* MMC_SD_D3 */
  { RCAR_GP_PIN(0, 21), 20, 3 }, /* MMC_SD_D2 */
  { RCAR_GP_PIN(0, 20), 16, 3 }, /* MMC_SD_D1 */
  { RCAR_GP_PIN(0, 19), 12, 3 }, /* MMC_SD_D0 */
  { RCAR_GP_PIN(0, 18),  8, 3 }, /* MMC_SD_CMD */
  { RCAR_GP_PIN(0, 17),  4, 3 }, /* MMC_DS */
  { RCAR_GP_PIN(0, 16),  0, 3 }, /* SD_CD */
 } },
 { PINMUX_DRIVE_REG("DRV3CTRL0", 0xe605808c) {
  { RCAR_GP_PIN(0, 27), 12, 3 }, /* MMC_D7 */
  { RCAR_GP_PIN(0, 26),  8, 3 }, /* MMC_D6 */
  { RCAR_GP_PIN(0, 25),  4, 3 }, /* MMC_D5 */
  { RCAR_GP_PIN(0, 24),  0, 3 }, /* MMC_D4 */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL1", 0xe6050080) {
  { RCAR_GP_PIN(1,  7), 28, 3 }, /* MSIOF0_TXD */
  { RCAR_GP_PIN(1,  6), 24, 3 }, /* MSIOF0_RXD */
  { RCAR_GP_PIN(1,  5), 20, 3 }, /* HTX0 */
  { RCAR_GP_PIN(1,  4), 16, 3 }, /* HCTS0_N */
  { RCAR_GP_PIN(1,  3), 12, 3 }, /* HRTS0_N */
  { RCAR_GP_PIN(1,  2),  8, 3 }, /* HSCK0 */
  { RCAR_GP_PIN(1,  1),  4, 3 }, /* HRX0 */
  { RCAR_GP_PIN(1,  0),  0, 3 }, /* SCIF_CLK */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL1", 0xe6050084) {
  { RCAR_GP_PIN(1, 15), 28, 3 }, /* MSIOF1_SYNC */
  { RCAR_GP_PIN(1, 14), 24, 3 }, /* MSIOF1_SCK */
  { RCAR_GP_PIN(1, 13), 20, 3 }, /* MSIOF1_TXD */
  { RCAR_GP_PIN(1, 12), 16, 3 }, /* MSIOF1_RXD */
  { RCAR_GP_PIN(1, 11), 12, 3 }, /* MSIOF0_SS2 */
  { RCAR_GP_PIN(1, 10),  8, 3 }, /* MSIOF0_SS1 */
  { RCAR_GP_PIN(1,  9),  4, 3 }, /* MSIOF0_SYNC */
  { RCAR_GP_PIN(1,  8),  0, 3 }, /* MSIOF0_SCK */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL1", 0xe6050088) {
  { RCAR_GP_PIN(1, 23), 28, 3 }, /* MSIOF2_SS2 */
  { RCAR_GP_PIN(1, 22), 24, 3 }, /* MSIOF2_SS1 */
  { RCAR_GP_PIN(1, 21), 20, 3 }, /* MSIOF2_SYNC */
  { RCAR_GP_PIN(1, 20), 16, 3 }, /* MSIOF2_SCK */
  { RCAR_GP_PIN(1, 19), 12, 3 }, /* MSIOF2_TXD */
  { RCAR_GP_PIN(1, 18),  8, 3 }, /* MSIOF2_RXD */
  { RCAR_GP_PIN(1, 17),  4, 3 }, /* MSIOF1_SS2 */
  { RCAR_GP_PIN(1, 16),  0, 3 }, /* MSIOF1_SS1 */
 } },
 { PINMUX_DRIVE_REG("DRV3CTRL1", 0xe605008c) {
  { RCAR_GP_PIN(1, 30), 24, 3 }, /* GP1_30 */
  { RCAR_GP_PIN(1, 29), 20, 3 }, /* GP1_29 */
  { RCAR_GP_PIN(1, 28), 16, 3 }, /* GP1_28 */
  { RCAR_GP_PIN(1, 27), 12, 3 }, /* IRQ3 */
  { RCAR_GP_PIN(1, 26),  8, 3 }, /* IRQ2 */
  { RCAR_GP_PIN(1, 25),  4, 3 }, /* IRQ1 */
  { RCAR_GP_PIN(1, 24),  0, 3 }, /* IRQ0 */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL2", 0xe6050880) {
  { RCAR_GP_PIN(2,  7), 28, 3 }, /* GP2_07 */
  { RCAR_GP_PIN(2,  6), 24, 3 }, /* GP2_06 */
  { RCAR_GP_PIN(2,  5), 20, 3 }, /* GP2_05 */
  { RCAR_GP_PIN(2,  4), 16, 3 }, /* GP2_04 */
  { RCAR_GP_PIN(2,  3), 12, 3 }, /* GP2_03 */
  { RCAR_GP_PIN(2,  2),  8, 3 }, /* GP2_02 */
  { RCAR_GP_PIN(2,  1),  4, 2 }, /* IPC_CLKOUT */
  { RCAR_GP_PIN(2,  0),  0, 2 }, /* IPC_CLKIN */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL2", 0xe6050884) {
  { RCAR_GP_PIN(2, 15), 28, 3 }, /* GP2_15 */
  { RCAR_GP_PIN(2, 14), 24, 3 }, /* GP2_14 */
  { RCAR_GP_PIN(2, 13), 20, 3 }, /* GP2_13 */
  { RCAR_GP_PIN(2, 12), 16, 3 }, /* GP2_12 */
  { RCAR_GP_PIN(2, 11), 12, 3 }, /* GP2_11 */
  { RCAR_GP_PIN(2, 10),  8, 3 }, /* GP2_10 */
  { RCAR_GP_PIN(2,  9),  4, 3 }, /* GP2_9 */
  { RCAR_GP_PIN(2,  8),  0, 3 }, /* GP2_8 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL2", 0xe6050888) {
  { RCAR_GP_PIN(2, 23), 28, 3 }, /* TCLK1_A */
  { RCAR_GP_PIN(2, 22), 24, 3 }, /* TPU0TO1 */
  { RCAR_GP_PIN(2, 21), 20, 3 }, /* TPU0TO0 */
  { RCAR_GP_PIN(2, 20), 16, 3 }, /* CLK_EXTFXR */
  { RCAR_GP_PIN(2, 19), 12, 3 }, /* RXDB_EXTFXR */
  { RCAR_GP_PIN(2, 18),  8, 3 }, /* FXR_TXDB */
  { RCAR_GP_PIN(2, 17),  4, 3 }, /* RXDA_EXTFXR_A */
  { RCAR_GP_PIN(2, 16),  0, 3 }, /* FXR_TXDA_A */
 } },
 { PINMUX_DRIVE_REG("DRV3CTRL2", 0xe605088c) {
  { RCAR_GP_PIN(2, 24), 0, 3 }, /* TCLK2_A */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL3", 0xe6058880) {
  { RCAR_GP_PIN(3,  7), 28, 3 }, /* CANFD3_TX */
  { RCAR_GP_PIN(3,  6), 24, 3 }, /* CANFD2_RX */
  { RCAR_GP_PIN(3,  5), 20, 3 }, /* CANFD2_TX */
  { RCAR_GP_PIN(3,  4), 16, 3 }, /* CANFD1_RX */
  { RCAR_GP_PIN(3,  3), 12, 3 }, /* CANFD1_TX */
  { RCAR_GP_PIN(3,  2),  8, 3 }, /* CANFD0_RX */
  { RCAR_GP_PIN(3,  1),  4, 2 }, /* CANFD0_TX */
  { RCAR_GP_PIN(3,  0),  0, 2 }, /* CAN_CLK */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL3", 0xe6058884) {
  { RCAR_GP_PIN(3, 15), 28, 3 }, /* CANFD7_TX */
  { RCAR_GP_PIN(3, 14), 24, 3 }, /* CANFD6_RX */
  { RCAR_GP_PIN(3, 13), 20, 3 }, /* CANFD6_TX */
  { RCAR_GP_PIN(3, 12), 16, 3 }, /* CANFD5_RX */
  { RCAR_GP_PIN(3, 11), 12, 3 }, /* CANFD5_TX */
  { RCAR_GP_PIN(3, 10),  8, 3 }, /* CANFD4_RX */
  { RCAR_GP_PIN(3,  9),  4, 3 }, /* CANFD4_TX */
  { RCAR_GP_PIN(3,  8),  0, 3 }, /* CANFD3_RX */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL3", 0xe6058888) {
  { RCAR_GP_PIN(3,  16),  0, 3 }, /* CANFD7_RX */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL4", 0xe6060080) {
  { RCAR_GP_PIN(4,  7), 28, 3 }, /* AVB0_TXC */
  { RCAR_GP_PIN(4,  6), 24, 3 }, /* AVB0_TX_CTL */
  { RCAR_GP_PIN(4,  5), 20, 3 }, /* AVB0_RD3 */
  { RCAR_GP_PIN(4,  4), 16, 3 }, /* AVB0_RD2 */
  { RCAR_GP_PIN(4,  3), 12, 3 }, /* AVB0_RD1 */
  { RCAR_GP_PIN(4,  2),  8, 3 }, /* AVB0_RD0 */
  { RCAR_GP_PIN(4,  1),  4, 3 }, /* AVB0_RXC */
  { RCAR_GP_PIN(4,  0),  0, 3 }, /* AVB0_RX_CTL */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL4", 0xe6060084) {
  { RCAR_GP_PIN(4, 15), 28, 3 }, /* AVB0_MAGIC */
  { RCAR_GP_PIN(4, 14), 24, 3 }, /* AVB0_MDC */
  { RCAR_GP_PIN(4, 13), 20, 3 }, /* AVB0_MDIO */
  { RCAR_GP_PIN(4, 12), 16, 3 }, /* AVB0_TXCREFCLK */
  { RCAR_GP_PIN(4, 11), 12, 3 }, /* AVB0_TD3 */
  { RCAR_GP_PIN(4, 10),  8, 3 }, /* AVB0_TD2 */
  { RCAR_GP_PIN(4,  9),  4, 3 }, /* AVB0_TD1*/
  { RCAR_GP_PIN(4,  8),  0, 3 }, /* AVB0_TD0 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL4", 0xe6060088) {
  { RCAR_GP_PIN(4, 23), 28, 3 }, /* PCIE2_CLKREQ_N */
  { RCAR_GP_PIN(4, 22), 24, 3 }, /* PCIE1_CLKREQ_N */
  { RCAR_GP_PIN(4, 21), 20, 3 }, /* PCIE0_CLKREQ_N */
  { RCAR_GP_PIN(4, 20), 16, 3 }, /* AVB0_AVTP_PPS */
  { RCAR_GP_PIN(4, 19), 12, 3 }, /* AVB0_AVTP_CAPTURE */
  { RCAR_GP_PIN(4, 18),  8, 3 }, /* AVB0_AVTP_MATCH */
  { RCAR_GP_PIN(4, 17),  4, 3 }, /* AVB0_LINK */
  { RCAR_GP_PIN(4, 16),  0, 3 }, /* AVB0_PHY_INT */
 } },
 { PINMUX_DRIVE_REG("DRV3CTRL4", 0xe606008c) {
  { RCAR_GP_PIN(4, 26),  8, 3 }, /* AVS1 */
  { RCAR_GP_PIN(4, 25),  4, 3 }, /* AVS0 */
  { RCAR_GP_PIN(4, 24),  0, 3 }, /* PCIE3_CLKREQ_N */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL5", 0xe6060880) {
  { RCAR_GP_PIN(5,  7), 28, 3 }, /* AVB1_TXC */
  { RCAR_GP_PIN(5,  6), 24, 3 }, /* AVB1_TX_CTL */
  { RCAR_GP_PIN(5,  5), 20, 3 }, /* AVB1_RD3 */
  { RCAR_GP_PIN(5,  4), 16, 3 }, /* AVB1_RD2 */
  { RCAR_GP_PIN(5,  3), 12, 3 }, /* AVB1_RD1 */
  { RCAR_GP_PIN(5,  2),  8, 3 }, /* AVB1_RD0 */
  { RCAR_GP_PIN(5,  1),  4, 3 }, /* AVB1_RXC */
  { RCAR_GP_PIN(5,  0),  0, 3 }, /* AVB1_RX_CTL */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL5", 0xe6060884) {
  { RCAR_GP_PIN(5, 15), 28, 3 }, /* AVB1_MAGIC */
  { RCAR_GP_PIN(5, 14), 24, 3 }, /* AVB1_MDC */
  { RCAR_GP_PIN(5, 13), 20, 3 }, /* AVB1_MDIO */
  { RCAR_GP_PIN(5, 12), 16, 3 }, /* AVB1_TXCREFCLK */
  { RCAR_GP_PIN(5, 11), 12, 3 }, /* AVB1_TD3 */
  { RCAR_GP_PIN(5, 10),  8, 3 }, /* AVB1_TD2 */
  { RCAR_GP_PIN(5,  9),  4, 3 }, /* AVB1_TD1*/
  { RCAR_GP_PIN(5,  8),  0, 3 }, /* AVB1_TD0 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL5", 0xe6060888) {
  { RCAR_GP_PIN(5, 20), 16, 3 }, /* AVB1_AVTP_PPS */
  { RCAR_GP_PIN(5, 19), 12, 3 }, /* AVB1_AVTP_CAPTURE */
  { RCAR_GP_PIN(5, 18),  8, 3 }, /* AVB1_AVTP_MATCH */
  { RCAR_GP_PIN(5, 17),  4, 3 }, /* AVB1_LINK */
  { RCAR_GP_PIN(5, 16),  0, 3 }, /* AVB1_PHY_INT */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL6", 0xe6068080) {
  { RCAR_GP_PIN(6,  7), 28, 3 }, /* AVB2_TXC */
  { RCAR_GP_PIN(6,  6), 24, 3 }, /* AVB2_TX_CTL */
  { RCAR_GP_PIN(6,  5), 20, 3 }, /* AVB2_RD3 */
  { RCAR_GP_PIN(6,  4), 16, 3 }, /* AVB2_RD2 */
  { RCAR_GP_PIN(6,  3), 12, 3 }, /* AVB2_RD1 */
  { RCAR_GP_PIN(6,  2),  8, 3 }, /* AVB2_RD0 */
  { RCAR_GP_PIN(6,  1),  4, 3 }, /* AVB2_RXC */
  { RCAR_GP_PIN(6,  0),  0, 3 }, /* AVB2_RX_CTL */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL6", 0xe6068084) {
  { RCAR_GP_PIN(6, 15), 28, 3 }, /* AVB2_MAGIC */
  { RCAR_GP_PIN(6, 14), 24, 3 }, /* AVB2_MDC */
  { RCAR_GP_PIN(6, 13), 20, 3 }, /* AVB2_MDIO */
  { RCAR_GP_PIN(6, 12), 16, 3 }, /* AVB2_TXCREFCLK */
  { RCAR_GP_PIN(6, 11), 12, 3 }, /* AVB2_TD3 */
  { RCAR_GP_PIN(6, 10),  8, 3 }, /* AVB2_TD2 */
  { RCAR_GP_PIN(6,  9),  4, 3 }, /* AVB2_TD1*/
  { RCAR_GP_PIN(6,  8),  0, 3 }, /* AVB2_TD0 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL6", 0xe6068088) {
  { RCAR_GP_PIN(6, 20), 16, 3 }, /* AVB2_AVTP_PPS */
  { RCAR_GP_PIN(6, 19), 12, 3 }, /* AVB2_AVTP_CAPTURE */
  { RCAR_GP_PIN(6, 18),  8, 3 }, /* AVB2_AVTP_MATCH */
  { RCAR_GP_PIN(6, 17),  4, 3 }, /* AVB2_LINK */
  { RCAR_GP_PIN(6, 16),  0, 3 }, /* AVB2_PHY_INT */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL7", 0xe6068880) {
  { RCAR_GP_PIN(7,  7), 28, 3 }, /* AVB3_TXC */
  { RCAR_GP_PIN(7,  6), 24, 3 }, /* AVB3_TX_CTL */
  { RCAR_GP_PIN(7,  5), 20, 3 }, /* AVB3_RD3 */
  { RCAR_GP_PIN(7,  4), 16, 3 }, /* AVB3_RD2 */
  { RCAR_GP_PIN(7,  3), 12, 3 }, /* AVB3_RD1 */
  { RCAR_GP_PIN(7,  2),  8, 3 }, /* AVB3_RD0 */
  { RCAR_GP_PIN(7,  1),  4, 3 }, /* AVB3_RXC */
  { RCAR_GP_PIN(7,  0),  0, 3 }, /* AVB3_RX_CTL */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL7", 0xe6068884) {
  { RCAR_GP_PIN(7, 15), 28, 3 }, /* AVB3_MAGIC */
  { RCAR_GP_PIN(7, 14), 24, 3 }, /* AVB3_MDC */
  { RCAR_GP_PIN(7, 13), 20, 3 }, /* AVB3_MDIO */
  { RCAR_GP_PIN(7, 12), 16, 3 }, /* AVB3_TXCREFCLK */
  { RCAR_GP_PIN(7, 11), 12, 3 }, /* AVB3_TD3 */
  { RCAR_GP_PIN(7, 10),  8, 3 }, /* AVB3_TD2 */
  { RCAR_GP_PIN(7,  9),  4, 3 }, /* AVB3_TD1*/
  { RCAR_GP_PIN(7,  8),  0, 3 }, /* AVB3_TD0 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL7", 0xe6068888) {
  { RCAR_GP_PIN(7, 20), 16, 3 }, /* AVB3_AVTP_PPS */
  { RCAR_GP_PIN(7, 19), 12, 3 }, /* AVB3_AVTP_CAPTURE */
  { RCAR_GP_PIN(7, 18),  8, 3 }, /* AVB3_AVTP_MATCH */
  { RCAR_GP_PIN(7, 17),  4, 3 }, /* AVB3_LINK */
  { RCAR_GP_PIN(7, 16),  0, 3 }, /* AVB3_PHY_INT */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL8", 0xe6069080) {
  { RCAR_GP_PIN(8,  7), 28, 3 }, /* AVB4_TXC */
  { RCAR_GP_PIN(8,  6), 24, 3 }, /* AVB4_TX_CTL */
  { RCAR_GP_PIN(8,  5), 20, 3 }, /* AVB4_RD3 */
  { RCAR_GP_PIN(8,  4), 16, 3 }, /* AVB4_RD2 */
  { RCAR_GP_PIN(8,  3), 12, 3 }, /* AVB4_RD1 */
  { RCAR_GP_PIN(8,  2),  8, 3 }, /* AVB4_RD0 */
  { RCAR_GP_PIN(8,  1),  4, 3 }, /* AVB4_RXC */
  { RCAR_GP_PIN(8,  0),  0, 3 }, /* AVB4_RX_CTL */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL8", 0xe6069084) {
  { RCAR_GP_PIN(8, 15), 28, 3 }, /* AVB4_MAGIC */
  { RCAR_GP_PIN(8, 14), 24, 3 }, /* AVB4_MDC */
  { RCAR_GP_PIN(8, 13), 20, 3 }, /* AVB4_MDIO */
  { RCAR_GP_PIN(8, 12), 16, 3 }, /* AVB4_TXCREFCLK */
  { RCAR_GP_PIN(8, 11), 12, 3 }, /* AVB4_TD3 */
  { RCAR_GP_PIN(8, 10),  8, 3 }, /* AVB4_TD2 */
  { RCAR_GP_PIN(8,  9),  4, 3 }, /* AVB4_TD1*/
  { RCAR_GP_PIN(8,  8),  0, 3 }, /* AVB4_TD0 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL8", 0xe6069088) {
  { RCAR_GP_PIN(8, 20), 16, 3 }, /* AVB4_AVTP_PPS */
  { RCAR_GP_PIN(8, 19), 12, 3 }, /* AVB4_AVTP_CAPTURE */
  { RCAR_GP_PIN(8, 18),  8, 3 }, /* AVB4_AVTP_MATCH */
  { RCAR_GP_PIN(8, 17),  4, 3 }, /* AVB4_LINK */
  { RCAR_GP_PIN(8, 16),  0, 3 }, /* AVB4_PHY_INT */
 } },
 { PINMUX_DRIVE_REG("DRV0CTRL9", 0xe6069880) {
  { RCAR_GP_PIN(9,  7), 28, 3 }, /* AVB5_TXC */
  { RCAR_GP_PIN(9,  6), 24, 3 }, /* AVB5_TX_CTL */
  { RCAR_GP_PIN(9,  5), 20, 3 }, /* AVB5_RD3 */
  { RCAR_GP_PIN(9,  4), 16, 3 }, /* AVB5_RD2 */
  { RCAR_GP_PIN(9,  3), 12, 3 }, /* AVB5_RD1 */
  { RCAR_GP_PIN(9,  2),  8, 3 }, /* AVB5_RD0 */
  { RCAR_GP_PIN(9,  1),  4, 3 }, /* AVB5_RXC */
  { RCAR_GP_PIN(9,  0),  0, 3 }, /* AVB5_RX_CTL */
 } },
 { PINMUX_DRIVE_REG("DRV1CTRL9", 0xe6069884) {
  { RCAR_GP_PIN(9, 15), 28, 3 }, /* AVB5_MAGIC */
  { RCAR_GP_PIN(9, 14), 24, 3 }, /* AVB5_MDC */
  { RCAR_GP_PIN(9, 13), 20, 3 }, /* AVB5_MDIO */
  { RCAR_GP_PIN(9, 12), 16, 3 }, /* AVB5_TXCREFCLK */
  { RCAR_GP_PIN(9, 11), 12, 3 }, /* AVB5_TD3 */
  { RCAR_GP_PIN(9, 10),  8, 3 }, /* AVB5_TD2 */
  { RCAR_GP_PIN(9,  9),  4, 3 }, /* AVB5_TD1*/
  { RCAR_GP_PIN(9,  8),  0, 3 }, /* AVB5_TD0 */
 } },
 { PINMUX_DRIVE_REG("DRV2CTRL9", 0xe6069888) {
  { RCAR_GP_PIN(9, 20), 16, 3 }, /* AVB5_AVTP_PPS */
  { RCAR_GP_PIN(9, 19), 12, 3 }, /* AVB5_AVTP_CAPTURE */
  { RCAR_GP_PIN(9, 18),  8, 3 }, /* AVB5_AVTP_MATCH */
  { RCAR_GP_PIN(9, 17),  4, 3 }, /* AVB5_LINK */
  { RCAR_GP_PIN(9, 16),  0, 3 }, /* AVB5_PHY_INT */
 } },
 { /* sentinel */ }
};

enum ioctrl_regs {
 POC0,
 POC1,
 POC2,
 POC4,
 POC5,
 POC6,
 POC7,
 POC8,
 POC9,
 TD1SEL0,
};

static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = {
 [POC0] = { 0xe60580a0, },
 [POC1] = { 0xe60500a0, },
 [POC2] = { 0xe60508a0, },
 [POC4] = { 0xe60600a0, },
 [POC5] = { 0xe60608a0, },
 [POC6] = { 0xe60680a0, },
 [POC7] = { 0xe60688a0, },
 [POC8] = { 0xe60690a0, },
 [POC9] = { 0xe60698a0, },
 [TD1SEL0] = { 0xe6058124, },
 { /* sentinel */ }
};

static int r8a779a0_pin_to_pocctrl(unsigned int pin, u32 *pocctrl)
{
 int bit = pin & 0x1f;

 *pocctrl = pinmux_ioctrl_regs[POC0].reg;
 if (pin >= RCAR_GP_PIN(0, 15) && pin <= RCAR_GP_PIN(0, 27))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC1].reg;
 if (pin >= RCAR_GP_PIN(1, 0) && pin <= RCAR_GP_PIN(1, 30))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC2].reg;
 if (pin >= RCAR_GP_PIN(2, 2) && pin <= RCAR_GP_PIN(2, 15))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC4].reg;
 if (pin >= RCAR_GP_PIN(4, 0) && pin <= RCAR_GP_PIN(4, 17))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC5].reg;
 if (pin >= RCAR_GP_PIN(5, 0) && pin <= RCAR_GP_PIN(5, 17))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC6].reg;
 if (pin >= RCAR_GP_PIN(6, 0) && pin <= RCAR_GP_PIN(6, 17))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC7].reg;
 if (pin >= RCAR_GP_PIN(7, 0) && pin <= RCAR_GP_PIN(7, 17))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC8].reg;
 if (pin >= RCAR_GP_PIN(8, 0) && pin <= RCAR_GP_PIN(8, 17))
  return bit;

 *pocctrl = pinmux_ioctrl_regs[POC9].reg;
 if (pin >= RCAR_GP_PIN(9, 0) && pin <= RCAR_GP_PIN(9, 17))
  return bit;

 return -EINVAL;
}

static const struct pinmux_bias_reg pinmux_bias_regs[] = {
 { PINMUX_BIAS_REG("PUEN0", 0xe60580c0, "PUD0", 0xe60580e0) {
  [ 0] = RCAR_GP_PIN(0,  0), /* QSPI0_SPCLK */
  [ 1] = RCAR_GP_PIN(0,  1), /* QSPI0_MOSI_IO0 */
  [ 2] = RCAR_GP_PIN(0,  2), /* QSPI0_MISO_IO1 */
  [ 3] = RCAR_GP_PIN(0,  3), /* QSPI0_IO2 */
  [ 4] = RCAR_GP_PIN(0,  4), /* QSPI0_IO3 */
  [ 5] = RCAR_GP_PIN(0,  5), /* QSPI0_SSL */
  [ 6] = RCAR_GP_PIN(0,  6), /* QSPI1_SPCLK */
  [ 7] = RCAR_GP_PIN(0,  7), /* QSPI1_MOSI_IO0 */
  [ 8] = RCAR_GP_PIN(0,  8), /* QSPI1_MISO_IO1 */
  [ 9] = RCAR_GP_PIN(0,  9), /* QSPI1_IO2 */
  [10] = RCAR_GP_PIN(0, 10), /* QSPI1_IO3 */
  [11] = RCAR_GP_PIN(0, 11), /* QSPI1_SSL */
  [12] = RCAR_GP_PIN(0, 12), /* RPC_RESET_N */
  [13] = RCAR_GP_PIN(0, 13), /* RPC_WP_N */
  [14] = RCAR_GP_PIN(0, 14), /* RPC_INT_N */
  [15] = RCAR_GP_PIN(0, 15), /* SD_WP */
  [16] = RCAR_GP_PIN(0, 16), /* SD_CD */
  [17] = RCAR_GP_PIN(0, 17), /* MMC_DS */
  [18] = RCAR_GP_PIN(0, 18), /* MMC_SD_CMD */
  [19] = RCAR_GP_PIN(0, 19), /* MMC_SD_D0 */
  [20] = RCAR_GP_PIN(0, 20), /* MMC_SD_D1 */
  [21] = RCAR_GP_PIN(0, 21), /* MMC_SD_D2 */
  [22] = RCAR_GP_PIN(0, 22), /* MMC_SD_D3 */
  [23] = RCAR_GP_PIN(0, 23), /* MMC_SD_CLK */
  [24] = RCAR_GP_PIN(0, 24), /* MMC_D4 */
  [25] = RCAR_GP_PIN(0, 25), /* MMC_D5 */
  [26] = RCAR_GP_PIN(0, 26), /* MMC_D6 */
  [27] = RCAR_GP_PIN(0, 27), /* MMC_D7 */
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN1", 0xe60500c0, "PUD1", 0xe60500e0) {
  [ 0] = RCAR_GP_PIN(1,  0), /* SCIF_CLK */
  [ 1] = RCAR_GP_PIN(1,  1), /* HRX0 */
  [ 2] = RCAR_GP_PIN(1,  2), /* HSCK0 */
  [ 3] = RCAR_GP_PIN(1,  3), /* HRTS0_N */
  [ 4] = RCAR_GP_PIN(1,  4), /* HCTS0_N */
  [ 5] = RCAR_GP_PIN(1,  5), /* HTX0 */
  [ 6] = RCAR_GP_PIN(1,  6), /* MSIOF0_RXD */
  [ 7] = RCAR_GP_PIN(1,  7), /* MSIOF0_TXD */
  [ 8] = RCAR_GP_PIN(1,  8), /* MSIOF0_SCK */
  [ 9] = RCAR_GP_PIN(1,  9), /* MSIOF0_SYNC */
  [10] = RCAR_GP_PIN(1, 10), /* MSIOF0_SS1 */
  [11] = RCAR_GP_PIN(1, 11), /* MSIOF0_SS2 */
  [12] = RCAR_GP_PIN(1, 12), /* MSIOF1_RXD */
  [13] = RCAR_GP_PIN(1, 13), /* MSIOF1_TXD */
  [14] = RCAR_GP_PIN(1, 14), /* MSIOF1_SCK */
  [15] = RCAR_GP_PIN(1, 15), /* MSIOF1_SYNC */
  [16] = RCAR_GP_PIN(1, 16), /* MSIOF1_SS1 */
  [17] = RCAR_GP_PIN(1, 17), /* MSIOF1_SS2 */
  [18] = RCAR_GP_PIN(1, 18), /* MSIOF2_RXD */
  [19] = RCAR_GP_PIN(1, 19), /* MSIOF2_TXD */
  [20] = RCAR_GP_PIN(1, 20), /* MSIOF2_SCK */
  [21] = RCAR_GP_PIN(1, 21), /* MSIOF2_SYNC */
  [22] = RCAR_GP_PIN(1, 22), /* MSIOF2_SS1 */
  [23] = RCAR_GP_PIN(1, 23), /* MSIOF2_SS2 */
  [24] = RCAR_GP_PIN(1, 24), /* IRQ0 */
  [25] = RCAR_GP_PIN(1, 25), /* IRQ1 */
  [26] = RCAR_GP_PIN(1, 26), /* IRQ2 */
  [27] = RCAR_GP_PIN(1, 27), /* IRQ3 */
  [28] = RCAR_GP_PIN(1, 28), /* GP1_28 */
  [29] = RCAR_GP_PIN(1, 29), /* GP1_29 */
  [30] = RCAR_GP_PIN(1, 30), /* GP1_30 */
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN2", 0xe60508c0, "PUD2", 0xe60508e0) {
  [ 0] = RCAR_GP_PIN(2,  0), /* IPC_CLKIN */
  [ 1] = RCAR_GP_PIN(2,  1), /* IPC_CLKOUT */
  [ 2] = RCAR_GP_PIN(2,  2), /* GP2_02 */
  [ 3] = RCAR_GP_PIN(2,  3), /* GP2_03 */
  [ 4] = RCAR_GP_PIN(2,  4), /* GP2_04 */
  [ 5] = RCAR_GP_PIN(2,  5), /* GP2_05 */
  [ 6] = RCAR_GP_PIN(2,  6), /* GP2_06 */
  [ 7] = RCAR_GP_PIN(2,  7), /* GP2_07 */
  [ 8] = RCAR_GP_PIN(2,  8), /* GP2_08 */
  [ 9] = RCAR_GP_PIN(2,  9), /* GP2_09 */
  [10] = RCAR_GP_PIN(2, 10), /* GP2_10 */
  [11] = RCAR_GP_PIN(2, 11), /* GP2_11 */
  [12] = RCAR_GP_PIN(2, 12), /* GP2_12 */
  [13] = RCAR_GP_PIN(2, 13), /* GP2_13 */
  [14] = RCAR_GP_PIN(2, 14), /* GP2_14 */
  [15] = RCAR_GP_PIN(2, 15), /* GP2_15 */
  [16] = RCAR_GP_PIN(2, 16), /* FXR_TXDA_A */
  [17] = RCAR_GP_PIN(2, 17), /* RXDA_EXTFXR_A */
  [18] = RCAR_GP_PIN(2, 18), /* FXR_TXDB */
  [19] = RCAR_GP_PIN(2, 19), /* RXDB_EXTFXR */
  [20] = RCAR_GP_PIN(2, 20), /* CLK_EXTFXR */
  [21] = RCAR_GP_PIN(2, 21), /* TPU0TO0 */
  [22] = RCAR_GP_PIN(2, 22), /* TPU0TO1 */
  [23] = RCAR_GP_PIN(2, 23), /* TCLK1_A */
  [24] = RCAR_GP_PIN(2, 24), /* TCLK2_A */
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN3", 0xe60588c0, "PUD3", 0xe60588e0) {
  [ 0] = RCAR_GP_PIN(3,  0), /* CAN_CLK */
  [ 1] = RCAR_GP_PIN(3,  1), /* CANFD0_TX */
  [ 2] = RCAR_GP_PIN(3,  2), /* CANFD0_RX */
  [ 3] = RCAR_GP_PIN(3,  3), /* CANFD1_TX */
  [ 4] = RCAR_GP_PIN(3,  4), /* CANFD1_RX */
  [ 5] = RCAR_GP_PIN(3,  5), /* CANFD2_TX */
  [ 6] = RCAR_GP_PIN(3,  6), /* CANFD2_RX */
  [ 7] = RCAR_GP_PIN(3,  7), /* CANFD3_TX */
  [ 8] = RCAR_GP_PIN(3,  8), /* CANFD3_RX */
  [ 9] = RCAR_GP_PIN(3,  9), /* CANFD4_TX */
  [10] = RCAR_GP_PIN(3, 10), /* CANFD4_RX */
  [11] = RCAR_GP_PIN(3, 11), /* CANFD5_TX */
  [12] = RCAR_GP_PIN(3, 12), /* CANFD5_RX */
  [13] = RCAR_GP_PIN(3, 13), /* CANFD6_TX */
  [14] = RCAR_GP_PIN(3, 14), /* CANFD6_RX */
  [15] = RCAR_GP_PIN(3, 15), /* CANFD7_TX */
  [16] = RCAR_GP_PIN(3, 16), /* CANFD7_RX */
  [17] = SH_PFC_PIN_NONE,
  [18] = SH_PFC_PIN_NONE,
  [19] = SH_PFC_PIN_NONE,
  [20] = SH_PFC_PIN_NONE,
  [21] = SH_PFC_PIN_NONE,
  [22] = SH_PFC_PIN_NONE,
  [23] = SH_PFC_PIN_NONE,
  [24] = SH_PFC_PIN_NONE,
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN4", 0xe60600c0, "PUD4", 0xe60600e0) {
  [ 0] = RCAR_GP_PIN(4,  0), /* AVB0_RX_CTL */
  [ 1] = RCAR_GP_PIN(4,  1), /* AVB0_RXC */
  [ 2] = RCAR_GP_PIN(4,  2), /* AVB0_RD0 */
  [ 3] = RCAR_GP_PIN(4,  3), /* AVB0_RD1 */
  [ 4] = RCAR_GP_PIN(4,  4), /* AVB0_RD2 */
  [ 5] = RCAR_GP_PIN(4,  5), /* AVB0_RD3 */
  [ 6] = RCAR_GP_PIN(4,  6), /* AVB0_TX_CTL */
  [ 7] = RCAR_GP_PIN(4,  7), /* AVB0_TXC */
  [ 8] = RCAR_GP_PIN(4,  8), /* AVB0_TD0 */
  [ 9] = RCAR_GP_PIN(4,  9), /* AVB0_TD1 */
  [10] = RCAR_GP_PIN(4, 10), /* AVB0_TD2 */
  [11] = RCAR_GP_PIN(4, 11), /* AVB0_TD3 */
  [12] = RCAR_GP_PIN(4, 12), /* AVB0_TXREFCLK */
  [13] = RCAR_GP_PIN(4, 13), /* AVB0_MDIO */
  [14] = RCAR_GP_PIN(4, 14), /* AVB0_MDC */
  [15] = RCAR_GP_PIN(4, 15), /* AVB0_MAGIC */
  [16] = RCAR_GP_PIN(4, 16), /* AVB0_PHY_INT */
  [17] = RCAR_GP_PIN(4, 17), /* AVB0_LINK */
  [18] = RCAR_GP_PIN(4, 18), /* AVB0_AVTP_MATCH */
  [19] = RCAR_GP_PIN(4, 19), /* AVB0_AVTP_CAPTURE */
  [20] = RCAR_GP_PIN(4, 20), /* AVB0_AVTP_PPS */
  [21] = RCAR_GP_PIN(4, 21), /* PCIE0_CLKREQ_N */
  [22] = RCAR_GP_PIN(4, 22), /* PCIE1_CLKREQ_N */
  [23] = RCAR_GP_PIN(4, 23), /* PCIE2_CLKREQ_N */
  [24] = RCAR_GP_PIN(4, 24), /* PCIE3_CLKREQ_N */
  [25] = RCAR_GP_PIN(4, 25), /* AVS0 */
  [26] = RCAR_GP_PIN(4, 26), /* AVS1 */
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN5", 0xe60608c0, "PUD5", 0xe60608e0) {
  [ 0] = RCAR_GP_PIN(5,  0), /* AVB1_RX_CTL */
  [ 1] = RCAR_GP_PIN(5,  1), /* AVB1_RXC */
  [ 2] = RCAR_GP_PIN(5,  2), /* AVB1_RD0 */
  [ 3] = RCAR_GP_PIN(5,  3), /* AVB1_RD1 */
  [ 4] = RCAR_GP_PIN(5,  4), /* AVB1_RD2 */
  [ 5] = RCAR_GP_PIN(5,  5), /* AVB1_RD3 */
  [ 6] = RCAR_GP_PIN(5,  6), /* AVB1_TX_CTL */
  [ 7] = RCAR_GP_PIN(5,  7), /* AVB1_TXC */
  [ 8] = RCAR_GP_PIN(5,  8), /* AVB1_TD0 */
  [ 9] = RCAR_GP_PIN(5,  9), /* AVB1_TD1 */
  [10] = RCAR_GP_PIN(5, 10), /* AVB1_TD2 */
  [11] = RCAR_GP_PIN(5, 11), /* AVB1_TD3 */
  [12] = RCAR_GP_PIN(5, 12), /* AVB1_TXCREFCLK */
  [13] = RCAR_GP_PIN(5, 13), /* AVB1_MDIO */
  [14] = RCAR_GP_PIN(5, 14), /* AVB1_MDC */
  [15] = RCAR_GP_PIN(5, 15), /* AVB1_MAGIC */
  [16] = RCAR_GP_PIN(5, 16), /* AVB1_PHY_INT */
  [17] = RCAR_GP_PIN(5, 17), /* AVB1_LINK */
  [18] = RCAR_GP_PIN(5, 18), /* AVB1_AVTP_MATCH */
  [19] = RCAR_GP_PIN(5, 19), /* AVB1_AVTP_CAPTURE */
  [20] = RCAR_GP_PIN(5, 20), /* AVB1_AVTP_PPS */
  [21] = SH_PFC_PIN_NONE,
  [22] = SH_PFC_PIN_NONE,
  [23] = SH_PFC_PIN_NONE,
  [24] = SH_PFC_PIN_NONE,
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN6", 0xe60680c0, "PUD6", 0xe60680e0) {
  [ 0] = RCAR_GP_PIN(6,  0), /* AVB2_RX_CTL */
  [ 1] = RCAR_GP_PIN(6,  1), /* AVB2_RXC */
  [ 2] = RCAR_GP_PIN(6,  2), /* AVB2_RD0 */
  [ 3] = RCAR_GP_PIN(6,  3), /* AVB2_RD1 */
  [ 4] = RCAR_GP_PIN(6,  4), /* AVB2_RD2 */
  [ 5] = RCAR_GP_PIN(6,  5), /* AVB2_RD3 */
  [ 6] = RCAR_GP_PIN(6,  6), /* AVB2_TX_CTL */
  [ 7] = RCAR_GP_PIN(6,  7), /* AVB2_TXC */
  [ 8] = RCAR_GP_PIN(6,  8), /* AVB2_TD0 */
  [ 9] = RCAR_GP_PIN(6,  9), /* AVB2_TD1 */
  [10] = RCAR_GP_PIN(6, 10), /* AVB2_TD2 */
  [11] = RCAR_GP_PIN(6, 11), /* AVB2_TD3 */
  [12] = RCAR_GP_PIN(6, 12), /* AVB2_TXCREFCLK */
  [13] = RCAR_GP_PIN(6, 13), /* AVB2_MDIO */
  [14] = RCAR_GP_PIN(6, 14), /* AVB2_MDC */
  [15] = RCAR_GP_PIN(6, 15), /* AVB2_MAGIC */
  [16] = RCAR_GP_PIN(6, 16), /* AVB2_PHY_INT */
  [17] = RCAR_GP_PIN(6, 17), /* AVB2_LINK */
  [18] = RCAR_GP_PIN(6, 18), /* AVB2_AVTP_MATCH */
  [19] = RCAR_GP_PIN(6, 19), /* AVB2_AVTP_CAPTURE */
  [20] = RCAR_GP_PIN(6, 20), /* AVB2_AVTP_PPS */
  [21] = SH_PFC_PIN_NONE,
  [22] = SH_PFC_PIN_NONE,
  [23] = SH_PFC_PIN_NONE,
  [24] = SH_PFC_PIN_NONE,
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN7", 0xe60688c0, "PUD7", 0xe60688e0) {
  [ 0] = RCAR_GP_PIN(7,  0), /* AVB3_RX_CTL */
  [ 1] = RCAR_GP_PIN(7,  1), /* AVB3_RXC */
  [ 2] = RCAR_GP_PIN(7,  2), /* AVB3_RD0 */
  [ 3] = RCAR_GP_PIN(7,  3), /* AVB3_RD1 */
  [ 4] = RCAR_GP_PIN(7,  4), /* AVB3_RD2 */
  [ 5] = RCAR_GP_PIN(7,  5), /* AVB3_RD3 */
  [ 6] = RCAR_GP_PIN(7,  6), /* AVB3_TX_CTL */
  [ 7] = RCAR_GP_PIN(7,  7), /* AVB3_TXC */
  [ 8] = RCAR_GP_PIN(7,  8), /* AVB3_TD0 */
  [ 9] = RCAR_GP_PIN(7,  9), /* AVB3_TD1 */
  [10] = RCAR_GP_PIN(7, 10), /* AVB3_TD2 */
  [11] = RCAR_GP_PIN(7, 11), /* AVB3_TD3 */
  [12] = RCAR_GP_PIN(7, 12), /* AVB3_TXCREFCLK */
  [13] = RCAR_GP_PIN(7, 13), /* AVB3_MDIO */
  [14] = RCAR_GP_PIN(7, 14), /* AVB3_MDC */
  [15] = RCAR_GP_PIN(7, 15), /* AVB3_MAGIC */
  [16] = RCAR_GP_PIN(7, 16), /* AVB3_PHY_INT */
  [17] = RCAR_GP_PIN(7, 17), /* AVB3_LINK */
  [18] = RCAR_GP_PIN(7, 18), /* AVB3_AVTP_MATCH */
  [19] = RCAR_GP_PIN(7, 19), /* AVB3_AVTP_CAPTURE */
  [20] = RCAR_GP_PIN(7, 20), /* AVB3_AVTP_PPS */
  [21] = SH_PFC_PIN_NONE,
  [22] = SH_PFC_PIN_NONE,
  [23] = SH_PFC_PIN_NONE,
  [24] = SH_PFC_PIN_NONE,
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN8", 0xe60690c0, "PUD8", 0xe60690e0) {
  [ 0] = RCAR_GP_PIN(8,  0), /* AVB4_RX_CTL */
  [ 1] = RCAR_GP_PIN(8,  1), /* AVB4_RXC */
  [ 2] = RCAR_GP_PIN(8,  2), /* AVB4_RD0 */
  [ 3] = RCAR_GP_PIN(8,  3), /* AVB4_RD1 */
  [ 4] = RCAR_GP_PIN(8,  4), /* AVB4_RD2 */
  [ 5] = RCAR_GP_PIN(8,  5), /* AVB4_RD3 */
  [ 6] = RCAR_GP_PIN(8,  6), /* AVB4_TX_CTL */
  [ 7] = RCAR_GP_PIN(8,  7), /* AVB4_TXC */
  [ 8] = RCAR_GP_PIN(8,  8), /* AVB4_TD0 */
  [ 9] = RCAR_GP_PIN(8,  9), /* AVB4_TD1 */
  [10] = RCAR_GP_PIN(8, 10), /* AVB4_TD2 */
  [11] = RCAR_GP_PIN(8, 11), /* AVB4_TD3 */
  [12] = RCAR_GP_PIN(8, 12), /* AVB4_TXCREFCLK */
  [13] = RCAR_GP_PIN(8, 13), /* AVB4_MDIO */
  [14] = RCAR_GP_PIN(8, 14), /* AVB4_MDC */
  [15] = RCAR_GP_PIN(8, 15), /* AVB4_MAGIC */
  [16] = RCAR_GP_PIN(8, 16), /* AVB4_PHY_INT */
  [17] = RCAR_GP_PIN(8, 17), /* AVB4_LINK */
  [18] = RCAR_GP_PIN(8, 18), /* AVB4_AVTP_MATCH */
  [19] = RCAR_GP_PIN(8, 19), /* AVB4_AVTP_CAPTURE */
  [20] = RCAR_GP_PIN(8, 20), /* AVB4_AVTP_PPS */
  [21] = SH_PFC_PIN_NONE,
  [22] = SH_PFC_PIN_NONE,
  [23] = SH_PFC_PIN_NONE,
  [24] = SH_PFC_PIN_NONE,
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { PINMUX_BIAS_REG("PUEN9", 0xe60698c0, "PUD9", 0xe60698e0) {
  [ 0] = RCAR_GP_PIN(9,  0), /* AVB5_RX_CTL */
  [ 1] = RCAR_GP_PIN(9,  1), /* AVB5_RXC */
  [ 2] = RCAR_GP_PIN(9,  2), /* AVB5_RD0 */
  [ 3] = RCAR_GP_PIN(9,  3), /* AVB5_RD1 */
  [ 4] = RCAR_GP_PIN(9,  4), /* AVB5_RD2 */
  [ 5] = RCAR_GP_PIN(9,  5), /* AVB5_RD3 */
  [ 6] = RCAR_GP_PIN(9,  6), /* AVB5_TX_CTL */
  [ 7] = RCAR_GP_PIN(9,  7), /* AVB5_TXC */
  [ 8] = RCAR_GP_PIN(9,  8), /* AVB5_TD0 */
  [ 9] = RCAR_GP_PIN(9,  9), /* AVB5_TD1 */
  [10] = RCAR_GP_PIN(9, 10), /* AVB5_TD2 */
  [11] = RCAR_GP_PIN(9, 11), /* AVB5_TD3 */
  [12] = RCAR_GP_PIN(9, 12), /* AVB5_TXCREFCLK */
  [13] = RCAR_GP_PIN(9, 13), /* AVB5_MDIO */
  [14] = RCAR_GP_PIN(9, 14), /* AVB5_MDC */
  [15] = RCAR_GP_PIN(9, 15), /* AVB5_MAGIC */
  [16] = RCAR_GP_PIN(9, 16), /* AVB5_PHY_INT */
  [17] = RCAR_GP_PIN(9, 17), /* AVB5_LINK */
  [18] = RCAR_GP_PIN(9, 18), /* AVB5_AVTP_MATCH */
  [19] = RCAR_GP_PIN(9, 19), /* AVB5_AVTP_CAPTURE */
  [20] = RCAR_GP_PIN(9, 20), /* AVB5_AVTP_PPS */
  [21] = SH_PFC_PIN_NONE,
  [22] = SH_PFC_PIN_NONE,
  [23] = SH_PFC_PIN_NONE,
  [24] = SH_PFC_PIN_NONE,
  [25] = SH_PFC_PIN_NONE,
  [26] = SH_PFC_PIN_NONE,
  [27] = SH_PFC_PIN_NONE,
  [28] = SH_PFC_PIN_NONE,
  [29] = SH_PFC_PIN_NONE,
  [30] = SH_PFC_PIN_NONE,
  [31] = SH_PFC_PIN_NONE,
 } },
 { /* sentinel */ }
};

static const struct sh_pfc_soc_operations r8a779a0_pfc_ops = {
 .pin_to_pocctrl = r8a779a0_pin_to_pocctrl,
 .get_bias = rcar_pinmux_get_bias,
 .set_bias = rcar_pinmux_set_bias,
};

const struct sh_pfc_soc_info r8a779a0_pinmux_info = {
 .name = "r8a779a0_pfc",
 .ops = &r8a779a0_pfc_ops,
 .unlock_reg = 0x1ff, /* PMMRn mask */

 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },

 .pins = pinmux_pins,
 .nr_pins = ARRAY_SIZE(pinmux_pins),
 .groups = pinmux_groups,
 .nr_groups = ARRAY_SIZE(pinmux_groups),
 .functions = pinmux_functions,
 .nr_functions = ARRAY_SIZE(pinmux_functions),

 .cfg_regs = pinmux_config_regs,
 .drive_regs = pinmux_drive_regs,
 .bias_regs = pinmux_bias_regs,
 .ioctrl_regs = pinmux_ioctrl_regs,

 .pinmux_data = pinmux_data,
 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
};

Messung V0.5 in Prozent
C=87 H=99 G=93

¤ Dauer der Verarbeitung: 0.66 Sekunden  (vorverarbeitet am  2026-04-29) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.