]> git.sur5r.net Git - u-boot/blobdiff - drivers/pinctrl/renesas/pfc-r8a7796.c
pinctrl: renesas: Sync Gen3 PFC tables with Linux v4.17
[u-boot] / drivers / pinctrl / renesas / pfc-r8a7796.c
index fa8150be0e88907602f6314362601a38b2e263e1..f73f67dad6877a53b554cb0139bba8cf10110c12 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * R8A7796 processor support - PFC hardware block.
  *
@@ -8,8 +9,6 @@
  * R-Car Gen3 processor support - PFC hardware block.
  *
  * Copyright (C) 2015  Renesas Electronics Corporation
- *
- * SPDX-License-Identifier:    GPL-2.0
  */
 
 #include <common.h>
 #define GPSR5_11       F_(RX2_A,               IP13_7_4)
 #define GPSR5_10       F_(TX2_A,               IP13_3_0)
 #define GPSR5_9                F_(SCK2,                IP12_31_28)
-#define GPSR5_8                F_(RTS1_N_TANS,         IP12_27_24)
+#define GPSR5_8                F_(RTS1_N,              IP12_27_24)
 #define GPSR5_7                F_(CTS1_N,              IP12_23_20)
 #define GPSR5_6                F_(TX1_A,               IP12_19_16)
 #define GPSR5_5                F_(RX1_A,               IP12_15_12)
-#define GPSR5_4                F_(RTS0_N_TANS,         IP12_11_8)
+#define GPSR5_4                F_(RTS0_N,              IP12_11_8)
 #define GPSR5_3                F_(CTS0_N,              IP12_7_4)
 #define GPSR5_2                F_(TX0,                 IP12_3_0)
 #define GPSR5_1                F_(RX0,                 IP11_31_28)
 #define IP0_11_8       FM(AVB_PHY_INT)         F_(0, 0)        FM(MSIOF2_SYNC_C)       FM(RX4_A)                       F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        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 IP0_15_12      FM(AVB_LINK)            F_(0, 0)        FM(MSIOF2_SCK_C)        FM(TX4_A)                       F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        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 IP0_19_16      FM(AVB_AVTP_MATCH_A)    F_(0, 0)        FM(MSIOF2_RXD_C)        FM(CTS4_N_A)                    F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        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 IP0_23_20      FM(AVB_AVTP_CAPTURE_A)  F_(0, 0)        FM(MSIOF2_TXD_C)        FM(RTS4_N_TANS_A)               F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        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 IP0_23_20      FM(AVB_AVTP_CAPTURE_A)  F_(0, 0)        FM(MSIOF2_TXD_C)        FM(RTS4_N_A)                    F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        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 IP0_27_24      FM(IRQ0)                FM(QPOLB)       F_(0, 0)                FM(DU_CDE)                      FM(VI4_DATA0_B) FM(CAN0_TX_B)   FM(CANFD0_TX_B)         FM(MSIOF3_SS2_E) 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 IP0_31_28      FM(IRQ1)                FM(QPOLA)       F_(0, 0)                FM(DU_DISP)                     FM(VI4_DATA1_B) FM(CAN0_RX_B)   FM(CANFD0_RX_B)         FM(MSIOF3_SS1_E) 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 IP1_3_0                FM(IRQ2)                FM(QCPV_QDE)    F_(0, 0)                FM(DU_EXODDF_DU_ODDF_DISP_CDE)  FM(VI4_DATA2_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_SYNC_E) F_(0, 0)              FM(PWM3_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP1_7_4                FM(IRQ3)                FM(QSTVB_QVE)   FM(A25)                 FM(DU_DOTCLKOUT1)               FM(VI4_DATA3_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_SCK_E) F_(0, 0)               FM(PWM4_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP1_11_8       FM(IRQ4)                FM(QSTH_QHS)    FM(A24)                 FM(DU_EXHSYNC_DU_HSYNC)         FM(VI4_DATA4_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_RXD_E) F_(0, 0)               FM(PWM5_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP1_15_12      FM(IRQ5)                FM(QSTB_QHE)    FM(A23)                 FM(DU_EXVSYNC_DU_VSYNC)         FM(VI4_DATA5_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_TXD_E) F_(0, 0)               FM(PWM6_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP1_19_16      FM(PWM0)                FM(AVB_AVTP_PPS)FM(A22)                 F_(0, 0)                        FM(VI4_DATA6_B) F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(IECLK_B)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP1_23_20      FM(PWM1_A)              F_(0, 0)        FM(A21)                 FM(HRX3_D)                      FM(VI4_DATA7_B) F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(IERX_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP1_27_24      FM(PWM2_A)              F_(0, 0)        FM(A20)                 FM(HTX3_D)                      F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(IETX_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP1_7_4                FM(IRQ3)                FM(QSTVB_QVE)   F_(0, 0)                FM(DU_DOTCLKOUT1)               FM(VI4_DATA3_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_SCK_E) F_(0, 0)               FM(PWM4_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP1_11_8       FM(IRQ4)                FM(QSTH_QHS)    F_(0, 0)                FM(DU_EXHSYNC_DU_HSYNC)         FM(VI4_DATA4_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_RXD_E) F_(0, 0)               FM(PWM5_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP1_15_12      FM(IRQ5)                FM(QSTB_QHE)    F_(0, 0)                FM(DU_EXVSYNC_DU_VSYNC)         FM(VI4_DATA5_B) F_(0, 0)        F_(0, 0)                FM(MSIOF3_TXD_E) F_(0, 0)               FM(PWM6_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP1_19_16      FM(PWM0)                FM(AVB_AVTP_PPS)F_(0, 0)                F_(0, 0)                        FM(VI4_DATA6_B) F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(IECLK_B)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP1_23_20      FM(PWM1_A)              F_(0, 0)        F_(0, 0)                FM(HRX3_D)                      FM(VI4_DATA7_B) F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(IERX_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP1_27_24      FM(PWM2_A)              F_(0, 0)        F_(0, 0)                FM(HTX3_D)                      F_(0, 0)        F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)                FM(IETX_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP1_31_28      FM(A0)                  FM(LCDOUT16)    FM(MSIOF3_SYNC_B)       F_(0, 0)                        FM(VI4_DATA8)   F_(0, 0)        FM(DU_DB0)              F_(0, 0)        F_(0, 0)                FM(PWM3_A)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP2_3_0                FM(A1)                  FM(LCDOUT17)    FM(MSIOF3_TXD_B)        F_(0, 0)                        FM(VI4_DATA9)   F_(0, 0)        FM(DU_DB1)              F_(0, 0)        F_(0, 0)                FM(PWM4_A)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP2_7_4                FM(A2)                  FM(LCDOUT18)    FM(MSIOF3_SCK_B)        F_(0, 0)                        FM(VI4_DATA10)  F_(0, 0)        FM(DU_DB2)              F_(0, 0)        F_(0, 0)                FM(PWM5_A)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP2_27_24      FM(A7)                  FM(LCDOUT23)    FM(MSIOF2_SS2_A)        FM(TX4_B)                       FM(VI4_DATA15)  FM(VI5_DATA15)  FM(DU_DB7)              F_(0, 0)        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 IP2_31_28      FM(A8)                  FM(RX3_B)       FM(MSIOF2_SYNC_A)       FM(HRX4_B)                      F_(0, 0)        F_(0, 0)        F_(0, 0)                FM(SDA6_A)      FM(AVB_AVTP_MATCH_B)    FM(PWM1_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP3_3_0                FM(A9)                  F_(0, 0)        FM(MSIOF2_SCK_A)        FM(CTS4_N_B)                    F_(0, 0)        FM(VI5_VSYNC_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 IP3_7_4                FM(A10)                 F_(0, 0)        FM(MSIOF2_RXD_A)        FM(RTS4_N_TANS_B)               F_(0, 0)        FM(VI5_HSYNC_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 IP3_7_4                FM(A10)                 F_(0, 0)        FM(MSIOF2_RXD_A)        FM(RTS4_N_B)                    F_(0, 0)        FM(VI5_HSYNC_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 IP3_11_8       FM(A11)                 FM(TX3_B)       FM(MSIOF2_TXD_A)        FM(HTX4_B)                      FM(HSCK4)       FM(VI5_FIELD)   F_(0, 0)                FM(SCL6_A)      FM(AVB_AVTP_CAPTURE_B)  FM(PWM2_B)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 
 /* IPSRx */            /* 0 */                 /* 1 */         /* 2 */                 /* 3 */                         /* 4 */         /* 5 */         /* 6 */                 /* 7 */         /* 8 */                 /* 9 */         /* A */         /* B */         /* C - F */
 #define IP4_27_24      FM(RD_N)                F_(0, 0)        FM(MSIOF3_SYNC_D)       FM(RX3_A)                       FM(HRX3_A)      F_(0, 0)        F_(0, 0)                F_(0, 0)        FM(CAN0_TX_A)           FM(CANFD0_TX_A) F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP4_31_28      FM(RD_WR_N)             F_(0, 0)        FM(MSIOF3_RXD_D)        FM(TX3_A)                       FM(HTX3_A)      F_(0, 0)        F_(0, 0)                F_(0, 0)        FM(CAN0_RX_A)           FM(CANFD0_RX_A) F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP5_3_0                FM(WE0_N)               F_(0, 0)        FM(MSIOF3_TXD_D)        FM(CTS3_N)                      FM(HCTS3_N)     F_(0, 0)        F_(0, 0)                FM(SCL6_B)      FM(CAN_CLK)             F_(0, 0)        FM(IECLK_A)     F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP5_7_4                FM(WE1_N)               F_(0, 0)        FM(MSIOF3_SS1_D)        FM(RTS3_N_TANS)                 FM(HRTS3_N)     F_(0, 0)        F_(0, 0)                FM(SDA6_B)      FM(CAN1_RX)             FM(CANFD1_RX)   FM(IERX_A)      F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP5_7_4                FM(WE1_N)               F_(0, 0)        FM(MSIOF3_SS1_D)        FM(RTS3_N)                      FM(HRTS3_N)     F_(0, 0)        F_(0, 0)                FM(SDA6_B)      FM(CAN1_RX)             FM(CANFD1_RX)   FM(IERX_A)      F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP5_11_8       FM(EX_WAIT0_A)          FM(QCLK)        F_(0, 0)                F_(0, 0)                        FM(VI4_CLK)     F_(0, 0)        FM(DU_DOTCLKOUT0)       F_(0, 0)        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 IP5_15_12      FM(D0)                  FM(MSIOF2_SS1_B)FM(MSIOF3_SCK_A)        F_(0, 0)                        FM(VI4_DATA16)  FM(VI5_DATA0)   F_(0, 0)                F_(0, 0)        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 IP5_19_16      FM(D1)                  FM(MSIOF2_SS2_B)FM(MSIOF3_SYNC_A)       F_(0, 0)                        FM(VI4_DATA17)  FM(VI5_DATA1)   F_(0, 0)                F_(0, 0)        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 IP6_15_12      FM(D8)                  FM(LCDOUT0)     FM(MSIOF2_SCK_D)        FM(SCK4_C)                      FM(VI4_DATA0_A) F_(0, 0)        FM(DU_DR0)              F_(0, 0)        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 IP6_19_16      FM(D9)                  FM(LCDOUT1)     FM(MSIOF2_SYNC_D)       F_(0, 0)                        FM(VI4_DATA1_A) F_(0, 0)        FM(DU_DR1)              F_(0, 0)        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 IP6_23_20      FM(D10)                 FM(LCDOUT2)     FM(MSIOF2_RXD_D)        FM(HRX3_B)                      FM(VI4_DATA2_A) FM(CTS4_N_C)    FM(DU_DR2)              F_(0, 0)        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 IP6_27_24      FM(D11)                 FM(LCDOUT3)     FM(MSIOF2_TXD_D)        FM(HTX3_B)                      FM(VI4_DATA3_A) FM(RTS4_N_TANS_C)FM(DU_DR3)             F_(0, 0)        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 IP6_27_24      FM(D11)                 FM(LCDOUT3)     FM(MSIOF2_TXD_D)        FM(HTX3_B)                      FM(VI4_DATA3_A) FM(RTS4_N_C)    FM(DU_DR3)              F_(0, 0)        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 IP6_31_28      FM(D12)                 FM(LCDOUT4)     FM(MSIOF2_SS1_D)        FM(RX4_C)                       FM(VI4_DATA4_A) F_(0, 0)        FM(DU_DR4)              F_(0, 0)        F_(0, 0)                F_(0, 0)        F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 
 /* IPSRx */            /* 0 */                 /* 1 */         /* 2 */                 /* 3 */                         /* 4 */         /* 5 */         /* 6 */                 /* 7 */         /* 8 */                 /* 9 */         /* A */         /* B */         /* C - F */
 #define IP11_31_28     FM(RX0)                 FM(HRX1_B)      F_(0, 0)                F_(0, 0)                        F_(0, 0)        FM(TS_SCK0_C)   FM(STP_ISCLK_0_C)       FM(RIF0_D0_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)
 #define IP12_3_0       FM(TX0)                 FM(HTX1_B)      F_(0, 0)                F_(0, 0)                        F_(0, 0)        FM(TS_SPSYNC0_C)FM(STP_ISSYNC_0_C)      FM(RIF0_D1_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)
 #define IP12_7_4       FM(CTS0_N)              FM(HCTS1_N_B)   FM(MSIOF1_SYNC_B)       F_(0, 0)                        F_(0, 0)        FM(TS_SPSYNC1_C)FM(STP_ISSYNC_1_C)      FM(RIF1_SYNC_B) FM(AUDIO_CLKOUT_C)      FM(ADICS_SAMP)  F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP12_11_8      FM(RTS0_N_TANS)         FM(HRTS1_N_B)   FM(MSIOF1_SS1_B)        FM(AUDIO_CLKA_B)                FM(SCL2_A)      F_(0, 0)        FM(STP_IVCXO27_1_C)     FM(RIF0_SYNC_B) F_(0, 0)                FM(ADICHS1)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP12_11_8      FM(RTS0_N)              FM(HRTS1_N_B)   FM(MSIOF1_SS1_B)        FM(AUDIO_CLKA_B)                FM(SCL2_A)      F_(0, 0)        FM(STP_IVCXO27_1_C)     FM(RIF0_SYNC_B) F_(0, 0)                FM(ADICHS1)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP12_15_12     FM(RX1_A)               FM(HRX1_A)      F_(0, 0)                F_(0, 0)                        F_(0, 0)        FM(TS_SDAT0_C)  FM(STP_ISD_0_C)         FM(RIF1_CLK_C)  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 IP12_19_16     FM(TX1_A)               FM(HTX1_A)      F_(0, 0)                F_(0, 0)                        F_(0, 0)        FM(TS_SDEN0_C)  FM(STP_ISEN_0_C)        FM(RIF1_D0_C)   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 IP12_23_20     FM(CTS1_N)              FM(HCTS1_N_A)   FM(MSIOF1_RXD_B)        F_(0, 0)                        F_(0, 0)        FM(TS_SDEN1_C)  FM(STP_ISEN_1_C)        FM(RIF1_D0_B)   F_(0, 0)                FM(ADIDATA)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
-#define IP12_27_24     FM(RTS1_N_TANS)         FM(HRTS1_N_A)   FM(MSIOF1_TXD_B)        F_(0, 0)                        F_(0, 0)        FM(TS_SDAT1_C)  FM(STP_ISD_1_C)         FM(RIF1_D1_B)   F_(0, 0)                FM(ADICHS0)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP12_27_24     FM(RTS1_N)              FM(HRTS1_N_A)   FM(MSIOF1_TXD_B)        F_(0, 0)                        F_(0, 0)        FM(TS_SDAT1_C)  FM(STP_ISD_1_C)         FM(RIF1_D1_B)   F_(0, 0)                FM(ADICHS0)     F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP12_31_28     FM(SCK2)                FM(SCIF_CLK_B)  FM(MSIOF1_SCK_B)        F_(0, 0)                        F_(0, 0)        FM(TS_SCK1_C)   FM(STP_ISCLK_1_C)       FM(RIF1_CLK_B)  F_(0, 0)                FM(ADICLK)      F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP13_3_0       FM(TX2_A)               F_(0, 0)        F_(0, 0)                FM(SD2_CD_B)                    FM(SCL1_A)      F_(0, 0)        FM(FMCLK_A)             FM(RIF1_D1_C)   F_(0, 0)                FM(FSO_CFE_0_N) F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP13_7_4       FM(RX2_A)               F_(0, 0)        F_(0, 0)                FM(SD2_WP_B)                    FM(SDA1_A)      F_(0, 0)        FM(FMIN_A)              FM(RIF1_SYNC_C) F_(0, 0)                FM(FSO_CFE_1_N) F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
@@ -478,7 +477,7 @@ FM(IP16_31_28)      IP16_31_28      FM(IP17_31_28)  IP17_31_28
 #define MOD_SEL1_26            FM(SEL_TIMER_TMU_0)     FM(SEL_TIMER_TMU_1)
 #define MOD_SEL1_25_24         FM(SEL_SSP1_1_0)        FM(SEL_SSP1_1_1)        FM(SEL_SSP1_1_2)        FM(SEL_SSP1_1_3)
 #define MOD_SEL1_23_22_21      FM(SEL_SSP1_0_0)        FM(SEL_SSP1_0_1)        FM(SEL_SSP1_0_2)        FM(SEL_SSP1_0_3)        FM(SEL_SSP1_0_4)        F_(0, 0)                F_(0, 0)                F_(0, 0)
-#define MOD_SEL1_20            FM(SEL_SSI_0)           FM(SEL_SSI_1)
+#define MOD_SEL1_20            FM(SEL_SSI1_0)          FM(SEL_SSI1_1)
 #define MOD_SEL1_19            FM(SEL_SPEED_PULSE_0)   FM(SEL_SPEED_PULSE_1)
 #define MOD_SEL1_18_17         FM(SEL_SIMCARD_0)       FM(SEL_SIMCARD_1)       FM(SEL_SIMCARD_2)       FM(SEL_SIMCARD_3)
 #define MOD_SEL1_16            FM(SEL_SDHI2_0)         FM(SEL_SDHI2_1)
@@ -496,14 +495,14 @@ FM(IP16_31_28)    IP16_31_28      FM(IP17_31_28)  IP17_31_28
 #define MOD_SEL1_1             FM(SEL_PWM2_0)          FM(SEL_PWM2_1)
 #define MOD_SEL1_0             FM(SEL_PWM1_0)          FM(SEL_PWM1_1)
 
-/* MOD_SEL1 */                 /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */                 /* 4 */                 /* 5 */                 /* 6 */                 /* 7 */
+/* MOD_SEL2 */                 /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */                 /* 4 */                 /* 5 */                 /* 6 */                 /* 7 */
 #define MOD_SEL2_31            FM(I2C_SEL_5_0)         FM(I2C_SEL_5_1)
 #define MOD_SEL2_30            FM(I2C_SEL_3_0)         FM(I2C_SEL_3_1)
 #define MOD_SEL2_29            FM(I2C_SEL_0_0)         FM(I2C_SEL_0_1)
 #define MOD_SEL2_28_27         FM(SEL_FM_0)            FM(SEL_FM_1)            FM(SEL_FM_2)            FM(SEL_FM_3)
 #define MOD_SEL2_26            FM(SEL_SCIF5_0)         FM(SEL_SCIF5_1)
 #define MOD_SEL2_25_24_23      FM(SEL_I2C6_0)          FM(SEL_I2C6_1)          FM(SEL_I2C6_2)          F_(0, 0)                F_(0, 0)                F_(0, 0)                F_(0, 0)                F_(0, 0)
-#define MOD_SEL2_22            FM(SEL_NDF_0)           FM(SEL_NDF_1)
+#define MOD_SEL2_22            FM(SEL_NDFC_0)          FM(SEL_NDFC_1)
 #define MOD_SEL2_21            FM(SEL_SSI2_0)          FM(SEL_SSI2_1)
 #define MOD_SEL2_20            FM(SEL_SSI9_0)          FM(SEL_SSI9_1)
 #define MOD_SEL2_19            FM(SEL_TIMER_TMU2_0)    FM(SEL_TIMER_TMU2_1)
@@ -627,7 +626,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_MSEL(IP0_23_20,     AVB_AVTP_CAPTURE_A,     SEL_ETHERAVB_0),
        PINMUX_IPSR_MSEL(IP0_23_20,     MSIOF2_TXD_C,           SEL_MSIOF2_2),
-       PINMUX_IPSR_MSEL(IP0_23_20,     RTS4_N_TANS_A,          SEL_SCIF4_0),
+       PINMUX_IPSR_MSEL(IP0_23_20,     RTS4_N_A,               SEL_SCIF4_0),
 
        PINMUX_IPSR_GPSR(IP0_27_24,     IRQ0),
        PINMUX_IPSR_GPSR(IP0_27_24,     QPOLB),
@@ -655,7 +654,6 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP1_7_4,       IRQ3),
        PINMUX_IPSR_GPSR(IP1_7_4,       QSTVB_QVE),
-       PINMUX_IPSR_GPSR(IP1_7_4,       A25),
        PINMUX_IPSR_GPSR(IP1_7_4,       DU_DOTCLKOUT1),
        PINMUX_IPSR_MSEL(IP1_7_4,       VI4_DATA3_B,            SEL_VIN4_1),
        PINMUX_IPSR_MSEL(IP1_7_4,       PWM4_B,                 SEL_PWM4_1),
@@ -663,7 +661,6 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP1_11_8,      IRQ4),
        PINMUX_IPSR_GPSR(IP1_11_8,      QSTH_QHS),
-       PINMUX_IPSR_GPSR(IP1_11_8,      A24),
        PINMUX_IPSR_GPSR(IP1_11_8,      DU_EXHSYNC_DU_HSYNC),
        PINMUX_IPSR_MSEL(IP1_11_8,      VI4_DATA4_B,            SEL_VIN4_1),
        PINMUX_IPSR_MSEL(IP1_11_8,      PWM5_B,                 SEL_PWM5_1),
@@ -671,7 +668,6 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP1_15_12,     IRQ5),
        PINMUX_IPSR_GPSR(IP1_15_12,     QSTB_QHE),
-       PINMUX_IPSR_GPSR(IP1_15_12,     A23),
        PINMUX_IPSR_GPSR(IP1_15_12,     DU_EXVSYNC_DU_VSYNC),
        PINMUX_IPSR_MSEL(IP1_15_12,     VI4_DATA5_B,            SEL_VIN4_1),
        PINMUX_IPSR_MSEL(IP1_15_12,     PWM6_B,                 SEL_PWM6_1),
@@ -679,18 +675,15 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP1_19_16,     PWM0),
        PINMUX_IPSR_GPSR(IP1_19_16,     AVB_AVTP_PPS),
-       PINMUX_IPSR_GPSR(IP1_19_16,     A22),
        PINMUX_IPSR_MSEL(IP1_19_16,     VI4_DATA6_B,            SEL_VIN4_1),
        PINMUX_IPSR_MSEL(IP1_19_16,     IECLK_B,                SEL_IEBUS_1),
 
        PINMUX_IPSR_MSEL(IP1_23_20,     PWM1_A,                 SEL_PWM1_0),
-       PINMUX_IPSR_GPSR(IP1_23_20,     A21),
        PINMUX_IPSR_MSEL(IP1_23_20,     HRX3_D,                 SEL_HSCIF3_3),
        PINMUX_IPSR_MSEL(IP1_23_20,     VI4_DATA7_B,            SEL_VIN4_1),
        PINMUX_IPSR_MSEL(IP1_23_20,     IERX_B,                 SEL_IEBUS_1),
 
        PINMUX_IPSR_MSEL(IP1_27_24,     PWM2_A,                 SEL_PWM2_0),
-       PINMUX_IPSR_GPSR(IP1_27_24,     A20),
        PINMUX_IPSR_MSEL(IP1_27_24,     HTX3_D,                 SEL_HSCIF3_3),
        PINMUX_IPSR_MSEL(IP1_27_24,     IETX_B,                 SEL_IEBUS_1),
 
@@ -770,7 +763,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP3_7_4,       A10),
        PINMUX_IPSR_MSEL(IP3_7_4,       MSIOF2_RXD_A,           SEL_MSIOF2_0),
-       PINMUX_IPSR_MSEL(IP3_7_4,       RTS4_N_TANS_B,          SEL_SCIF4_1),
+       PINMUX_IPSR_MSEL(IP3_7_4,       RTS4_N_B,               SEL_SCIF4_1),
        PINMUX_IPSR_GPSR(IP3_7_4,       VI5_HSYNC_N),
 
        PINMUX_IPSR_GPSR(IP3_11_8,      A11),
@@ -873,7 +866,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP5_7_4,       WE1_N),
        PINMUX_IPSR_MSEL(IP5_7_4,       MSIOF3_SS1_D,           SEL_MSIOF3_3),
-       PINMUX_IPSR_GPSR(IP5_7_4,       RTS3_N_TANS),
+       PINMUX_IPSR_GPSR(IP5_7_4,       RTS3_N),
        PINMUX_IPSR_GPSR(IP5_7_4,       HRTS3_N),
        PINMUX_IPSR_MSEL(IP5_7_4,       SDA6_B,                 SEL_I2C6_1),
        PINMUX_IPSR_GPSR(IP5_7_4,       CAN1_RX),
@@ -954,7 +947,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP6_27_24,     MSIOF2_TXD_D,           SEL_MSIOF2_3),
        PINMUX_IPSR_MSEL(IP6_27_24,     HTX3_B,                 SEL_HSCIF3_1),
        PINMUX_IPSR_MSEL(IP6_27_24,     VI4_DATA3_A,            SEL_VIN4_0),
-       PINMUX_IPSR_MSEL(IP6_27_24,     RTS4_N_TANS_C,          SEL_SCIF4_2),
+       PINMUX_IPSR_MSEL(IP6_27_24,     RTS4_N_C,               SEL_SCIF4_2),
        PINMUX_IPSR_GPSR(IP6_27_24,     DU_DR3),
 
        PINMUX_IPSR_GPSR(IP6_31_28,     D12),
@@ -1023,35 +1016,35 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP8_15_12,     SD1_CMD),
        PINMUX_IPSR_MSEL(IP8_15_12,     MSIOF1_SYNC_G,          SEL_MSIOF1_6),
-       PINMUX_IPSR_MSEL(IP8_15_12,     NFCE_N_B,               SEL_NDF_1),
+       PINMUX_IPSR_MSEL(IP8_15_12,     NFCE_N_B,               SEL_NDFC_1),
        PINMUX_IPSR_MSEL(IP8_15_12,     SIM0_D_A,               SEL_SIMCARD_0),
        PINMUX_IPSR_MSEL(IP8_15_12,     STP_IVCXO27_1_B,        SEL_SSP1_1_1),
 
        PINMUX_IPSR_GPSR(IP8_19_16,     SD1_DAT0),
        PINMUX_IPSR_GPSR(IP8_19_16,     SD2_DAT4),
        PINMUX_IPSR_MSEL(IP8_19_16,     MSIOF1_RXD_G,           SEL_MSIOF1_6),
-       PINMUX_IPSR_MSEL(IP8_19_16,     NFWP_N_B,               SEL_NDF_1),
+       PINMUX_IPSR_MSEL(IP8_19_16,     NFWP_N_B,               SEL_NDFC_1),
        PINMUX_IPSR_MSEL(IP8_19_16,     TS_SCK1_B,              SEL_TSIF1_1),
        PINMUX_IPSR_MSEL(IP8_19_16,     STP_ISCLK_1_B,          SEL_SSP1_1_1),
 
        PINMUX_IPSR_GPSR(IP8_23_20,     SD1_DAT1),
        PINMUX_IPSR_GPSR(IP8_23_20,     SD2_DAT5),
        PINMUX_IPSR_MSEL(IP8_23_20,     MSIOF1_TXD_G,           SEL_MSIOF1_6),
-       PINMUX_IPSR_MSEL(IP8_23_20,     NFDATA14_B,             SEL_NDF_1),
+       PINMUX_IPSR_MSEL(IP8_23_20,     NFDATA14_B,             SEL_NDFC_1),
        PINMUX_IPSR_MSEL(IP8_23_20,     TS_SPSYNC1_B,           SEL_TSIF1_1),
        PINMUX_IPSR_MSEL(IP8_23_20,     STP_ISSYNC_1_B,         SEL_SSP1_1_1),
 
        PINMUX_IPSR_GPSR(IP8_27_24,     SD1_DAT2),
        PINMUX_IPSR_GPSR(IP8_27_24,     SD2_DAT6),
        PINMUX_IPSR_MSEL(IP8_27_24,     MSIOF1_SS1_G,           SEL_MSIOF1_6),
-       PINMUX_IPSR_MSEL(IP8_27_24,     NFDATA15_B,             SEL_NDF_1),
+       PINMUX_IPSR_MSEL(IP8_27_24,     NFDATA15_B,             SEL_NDFC_1),
        PINMUX_IPSR_MSEL(IP8_27_24,     TS_SDAT1_B,             SEL_TSIF1_1),
        PINMUX_IPSR_MSEL(IP8_27_24,     STP_ISD_1_B,            SEL_SSP1_1_1),
 
        PINMUX_IPSR_GPSR(IP8_31_28,     SD1_DAT3),
        PINMUX_IPSR_GPSR(IP8_31_28,     SD2_DAT7),
        PINMUX_IPSR_MSEL(IP8_31_28,     MSIOF1_SS2_G,           SEL_MSIOF1_6),
-       PINMUX_IPSR_MSEL(IP8_31_28,     NFRB_N_B,               SEL_NDF_1),
+       PINMUX_IPSR_MSEL(IP8_31_28,     NFRB_N_B,               SEL_NDFC_1),
        PINMUX_IPSR_MSEL(IP8_31_28,     TS_SDEN1_B,             SEL_TSIF1_1),
        PINMUX_IPSR_MSEL(IP8_31_28,     STP_ISEN_1_B,           SEL_SSP1_1_1),
 
@@ -1117,16 +1110,20 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_GPSR(IP11_7_4,      NFCLE),
 
        PINMUX_IPSR_GPSR(IP11_11_8,     SD0_CD),
+       PINMUX_IPSR_MSEL(IP11_11_8,     NFDATA14_A,             SEL_NDFC_0),
        PINMUX_IPSR_MSEL(IP11_11_8,     SCL2_B,                 SEL_I2C2_1),
        PINMUX_IPSR_MSEL(IP11_11_8,     SIM0_RST_A,             SEL_SIMCARD_0),
 
        PINMUX_IPSR_GPSR(IP11_15_12,    SD0_WP),
+       PINMUX_IPSR_MSEL(IP11_15_12,    NFDATA15_A,             SEL_NDFC_0),
        PINMUX_IPSR_MSEL(IP11_15_12,    SDA2_B,                 SEL_I2C2_1),
 
        PINMUX_IPSR_GPSR(IP11_19_16,    SD1_CD),
+       PINMUX_IPSR_MSEL(IP11_19_16,    NFRB_N_A,               SEL_NDFC_0),
        PINMUX_IPSR_MSEL(IP11_19_16,    SIM0_CLK_B,             SEL_SIMCARD_1),
 
        PINMUX_IPSR_GPSR(IP11_23_20,    SD1_WP),
+       PINMUX_IPSR_MSEL(IP11_23_20,    NFCE_N_A,               SEL_NDFC_0),
        PINMUX_IPSR_MSEL(IP11_23_20,    SIM0_D_B,               SEL_SIMCARD_1),
 
        PINMUX_IPSR_GPSR(IP11_27_24,    SCK0),
@@ -1162,7 +1159,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_GPSR(IP12_7_4,      AUDIO_CLKOUT_C),
        PINMUX_IPSR_GPSR(IP12_7_4,      ADICS_SAMP),
 
-       PINMUX_IPSR_GPSR(IP12_11_8,     RTS0_N_TANS),
+       PINMUX_IPSR_GPSR(IP12_11_8,     RTS0_N),
        PINMUX_IPSR_MSEL(IP12_11_8,     HRTS1_N_B,              SEL_HSCIF1_1),
        PINMUX_IPSR_MSEL(IP12_11_8,     MSIOF1_SS1_B,           SEL_MSIOF1_1),
        PINMUX_IPSR_MSEL(IP12_11_8,     AUDIO_CLKA_B,           SEL_ADG_A_1),
@@ -1191,7 +1188,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP12_23_20,    RIF1_D0_B,              SEL_DRIF1_1),
        PINMUX_IPSR_GPSR(IP12_23_20,    ADIDATA),
 
-       PINMUX_IPSR_GPSR(IP12_27_24,    RTS1_N_TANS),
+       PINMUX_IPSR_GPSR(IP12_27_24,    RTS1_N),
        PINMUX_IPSR_MSEL(IP12_27_24,    HRTS1_N_A,              SEL_HSCIF1_0),
        PINMUX_IPSR_MSEL(IP12_27_24,    MSIOF1_TXD_B,           SEL_MSIOF1_1),
        PINMUX_IPSR_MSEL(IP12_27_24,    TS_SDAT1_C,             SEL_TSIF1_2),
@@ -1225,7 +1222,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_GPSR(IP13_11_8,     HSCK0),
        PINMUX_IPSR_MSEL(IP13_11_8,     MSIOF1_SCK_D,           SEL_MSIOF1_3),
        PINMUX_IPSR_MSEL(IP13_11_8,     AUDIO_CLKB_A,           SEL_ADG_B_0),
-       PINMUX_IPSR_MSEL(IP13_11_8,     SSI_SDATA1_B,           SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP13_11_8,     SSI_SDATA1_B,           SEL_SSI1_1),
        PINMUX_IPSR_MSEL(IP13_11_8,     TS_SCK0_D,              SEL_TSIF0_3),
        PINMUX_IPSR_MSEL(IP13_11_8,     STP_ISCLK_0_D,          SEL_SSP1_0_3),
        PINMUX_IPSR_MSEL(IP13_11_8,     RIF0_CLK_C,             SEL_DRIF0_2),
@@ -1233,14 +1230,14 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP13_15_12,    HRX0),
        PINMUX_IPSR_MSEL(IP13_15_12,    MSIOF1_RXD_D,           SEL_MSIOF1_3),
-       PINMUX_IPSR_MSEL(IP13_15_12,    SSI_SDATA2_B,           SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP13_15_12,    SSI_SDATA2_B,           SEL_SSI2_1),
        PINMUX_IPSR_MSEL(IP13_15_12,    TS_SDEN0_D,             SEL_TSIF0_3),
        PINMUX_IPSR_MSEL(IP13_15_12,    STP_ISEN_0_D,           SEL_SSP1_0_3),
        PINMUX_IPSR_MSEL(IP13_15_12,    RIF0_D0_C,              SEL_DRIF0_2),
 
        PINMUX_IPSR_GPSR(IP13_19_16,    HTX0),
        PINMUX_IPSR_MSEL(IP13_19_16,    MSIOF1_TXD_D,           SEL_MSIOF1_3),
-       PINMUX_IPSR_MSEL(IP13_19_16,    SSI_SDATA9_B,           SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP13_19_16,    SSI_SDATA9_B,           SEL_SSI9_1),
        PINMUX_IPSR_MSEL(IP13_19_16,    TS_SDAT0_D,             SEL_TSIF0_3),
        PINMUX_IPSR_MSEL(IP13_19_16,    STP_ISD_0_D,            SEL_SSP1_0_3),
        PINMUX_IPSR_MSEL(IP13_19_16,    RIF0_D1_C,              SEL_DRIF0_2),
@@ -1248,7 +1245,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_GPSR(IP13_23_20,    HCTS0_N),
        PINMUX_IPSR_MSEL(IP13_23_20,    RX2_B,                  SEL_SCIF2_1),
        PINMUX_IPSR_MSEL(IP13_23_20,    MSIOF1_SYNC_D,          SEL_MSIOF1_3),
-       PINMUX_IPSR_MSEL(IP13_23_20,    SSI_SCK9_A,             SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP13_23_20,    SSI_SCK9_A,             SEL_SSI9_0),
        PINMUX_IPSR_MSEL(IP13_23_20,    TS_SPSYNC0_D,           SEL_TSIF0_3),
        PINMUX_IPSR_MSEL(IP13_23_20,    STP_ISSYNC_0_D,         SEL_SSP1_0_3),
        PINMUX_IPSR_MSEL(IP13_23_20,    RIF0_SYNC_C,            SEL_DRIF0_2),
@@ -1257,7 +1254,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_GPSR(IP13_27_24,    HRTS0_N),
        PINMUX_IPSR_MSEL(IP13_27_24,    TX2_B,                  SEL_SCIF2_1),
        PINMUX_IPSR_MSEL(IP13_27_24,    MSIOF1_SS1_D,           SEL_MSIOF1_3),
-       PINMUX_IPSR_MSEL(IP13_27_24,    SSI_WS9_A,              SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP13_27_24,    SSI_WS9_A,              SEL_SSI9_0),
        PINMUX_IPSR_MSEL(IP13_27_24,    STP_IVCXO27_0_D,        SEL_SSP1_0_3),
        PINMUX_IPSR_MSEL(IP13_27_24,    BPFCLK_A,               SEL_FM_0),
        PINMUX_IPSR_GPSR(IP13_27_24,    AUDIO_CLKOUT2_A),
@@ -1270,9 +1267,9 @@ static const u16 pinmux_data[] = {
        /* IPSR14 */
        PINMUX_IPSR_GPSR(IP14_3_0,      MSIOF0_SS1),
        PINMUX_IPSR_MSEL(IP14_3_0,      RX5_A,                  SEL_SCIF5_0),
-       PINMUX_IPSR_MSEL(IP14_3_0,      NFWP_N_A,               SEL_NDF_0),
+       PINMUX_IPSR_MSEL(IP14_3_0,      NFWP_N_A,               SEL_NDFC_0),
        PINMUX_IPSR_MSEL(IP14_3_0,      AUDIO_CLKA_C,           SEL_ADG_A_2),
-       PINMUX_IPSR_MSEL(IP14_3_0,      SSI_SCK2_A,             SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP14_3_0,      SSI_SCK2_A,             SEL_SSI2_0),
        PINMUX_IPSR_MSEL(IP14_3_0,      STP_IVCXO27_0_C,        SEL_SSP1_0_2),
        PINMUX_IPSR_GPSR(IP14_3_0,      AUDIO_CLKOUT3_A),
        PINMUX_IPSR_MSEL(IP14_3_0,      TCLK1_B,                SEL_TIMER_TMU_1),
@@ -1281,7 +1278,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP14_7_4,      TX5_A,                  SEL_SCIF5_0),
        PINMUX_IPSR_MSEL(IP14_7_4,      MSIOF1_SS2_D,           SEL_MSIOF1_3),
        PINMUX_IPSR_MSEL(IP14_7_4,      AUDIO_CLKC_A,           SEL_ADG_C_0),
-       PINMUX_IPSR_MSEL(IP14_7_4,      SSI_WS2_A,              SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP14_7_4,      SSI_WS2_A,              SEL_SSI2_0),
        PINMUX_IPSR_MSEL(IP14_7_4,      STP_OPWM_0_D,           SEL_SSP1_0_3),
        PINMUX_IPSR_GPSR(IP14_7_4,      AUDIO_CLKOUT_D),
        PINMUX_IPSR_MSEL(IP14_7_4,      SPEEDIN_B,              SEL_SPEED_PULSE_1),
@@ -1309,10 +1306,10 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP14_31_28,    MSIOF1_SS2_F,           SEL_MSIOF1_5),
 
        /* IPSR15 */
-       PINMUX_IPSR_MSEL(IP15_3_0,      SSI_SDATA1_A,           SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP15_3_0,      SSI_SDATA1_A,           SEL_SSI1_0),
 
-       PINMUX_IPSR_MSEL(IP15_7_4,      SSI_SDATA2_A,           SEL_SSI_0),
-       PINMUX_IPSR_MSEL(IP15_7_4,      SSI_SCK1_B,             SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP15_7_4,      SSI_SDATA2_A,           SEL_SSI2_0),
+       PINMUX_IPSR_MSEL(IP15_7_4,      SSI_SCK1_B,             SEL_SSI1_1),
 
        PINMUX_IPSR_GPSR(IP15_11_8,     SSI_SCK349),
        PINMUX_IPSR_MSEL(IP15_11_8,     MSIOF1_SS1_A,           SEL_MSIOF1_0),
@@ -1398,11 +1395,11 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP16_27_24,    RIF1_D1_A,              SEL_DRIF1_0),
        PINMUX_IPSR_MSEL(IP16_27_24,    RIF3_D1_A,              SEL_DRIF3_0),
 
-       PINMUX_IPSR_MSEL(IP16_31_28,    SSI_SDATA9_A,           SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP16_31_28,    SSI_SDATA9_A,           SEL_SSI9_0),
        PINMUX_IPSR_MSEL(IP16_31_28,    HSCK2_B,                SEL_HSCIF2_1),
        PINMUX_IPSR_MSEL(IP16_31_28,    MSIOF1_SS1_C,           SEL_MSIOF1_2),
        PINMUX_IPSR_MSEL(IP16_31_28,    HSCK1_A,                SEL_HSCIF1_0),
-       PINMUX_IPSR_MSEL(IP16_31_28,    SSI_WS1_B,              SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP16_31_28,    SSI_WS1_B,              SEL_SSI1_1),
        PINMUX_IPSR_GPSR(IP16_31_28,    SCK1),
        PINMUX_IPSR_MSEL(IP16_31_28,    STP_IVCXO27_1_A,        SEL_SSP1_1_0),
        PINMUX_IPSR_MSEL(IP16_31_28,    SCK5_A,                 SEL_SCIF5_0),
@@ -1434,7 +1431,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP17_19_16,    USB1_PWEN),
        PINMUX_IPSR_MSEL(IP17_19_16,    SIM0_CLK_C,             SEL_SIMCARD_2),
-       PINMUX_IPSR_MSEL(IP17_19_16,    SSI_SCK1_A,             SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP17_19_16,    SSI_SCK1_A,             SEL_SSI1_0),
        PINMUX_IPSR_MSEL(IP17_19_16,    TS_SCK0_E,              SEL_TSIF0_4),
        PINMUX_IPSR_MSEL(IP17_19_16,    STP_ISCLK_0_E,          SEL_SSP1_0_4),
        PINMUX_IPSR_MSEL(IP17_19_16,    FMCLK_B,                SEL_FM_1),
@@ -1444,7 +1441,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP17_23_20,    USB1_OVC),
        PINMUX_IPSR_MSEL(IP17_23_20,    MSIOF1_SS2_C,           SEL_MSIOF1_2),
-       PINMUX_IPSR_MSEL(IP17_23_20,    SSI_WS1_A,              SEL_SSI_0),
+       PINMUX_IPSR_MSEL(IP17_23_20,    SSI_WS1_A,              SEL_SSI1_0),
        PINMUX_IPSR_MSEL(IP17_23_20,    TS_SDAT0_E,             SEL_TSIF0_4),
        PINMUX_IPSR_MSEL(IP17_23_20,    STP_ISD_0_E,            SEL_SSP1_0_4),
        PINMUX_IPSR_MSEL(IP17_23_20,    FMIN_B,                 SEL_FM_1),
@@ -1454,7 +1451,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP17_27_24,    USB30_PWEN),
        PINMUX_IPSR_GPSR(IP17_27_24,    AUDIO_CLKOUT_B),
-       PINMUX_IPSR_MSEL(IP17_27_24,    SSI_SCK2_B,             SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP17_27_24,    SSI_SCK2_B,             SEL_SSI2_1),
        PINMUX_IPSR_MSEL(IP17_27_24,    TS_SDEN1_D,             SEL_TSIF1_3),
        PINMUX_IPSR_MSEL(IP17_27_24,    STP_ISEN_1_D,           SEL_SSP1_1_3),
        PINMUX_IPSR_MSEL(IP17_27_24,    STP_OPWM_0_E,           SEL_SSP1_0_4),
@@ -1466,7 +1463,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP17_31_28,    USB30_OVC),
        PINMUX_IPSR_GPSR(IP17_31_28,    AUDIO_CLKOUT1_B),
-       PINMUX_IPSR_MSEL(IP17_31_28,    SSI_WS2_B,              SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP17_31_28,    SSI_WS2_B,              SEL_SSI2_1),
        PINMUX_IPSR_MSEL(IP17_31_28,    TS_SPSYNC1_D,           SEL_TSIF1_3),
        PINMUX_IPSR_MSEL(IP17_31_28,    STP_ISSYNC_1_D,         SEL_SSP1_1_3),
        PINMUX_IPSR_MSEL(IP17_31_28,    STP_IVCXO27_0_E,        SEL_SSP1_0_4),
@@ -1477,7 +1474,7 @@ static const u16 pinmux_data[] = {
        /* IPSR18 */
        PINMUX_IPSR_GPSR(IP18_3_0,      GP6_30),
        PINMUX_IPSR_GPSR(IP18_3_0,      AUDIO_CLKOUT2_B),
-       PINMUX_IPSR_MSEL(IP18_3_0,      SSI_SCK9_B,             SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP18_3_0,      SSI_SCK9_B,             SEL_SSI9_1),
        PINMUX_IPSR_MSEL(IP18_3_0,      TS_SDEN0_E,             SEL_TSIF0_4),
        PINMUX_IPSR_MSEL(IP18_3_0,      STP_ISEN_0_E,           SEL_SSP1_0_4),
        PINMUX_IPSR_MSEL(IP18_3_0,      RIF2_D0_B,              SEL_DRIF2_1),
@@ -1487,7 +1484,7 @@ static const u16 pinmux_data[] = {
 
        PINMUX_IPSR_GPSR(IP18_7_4,      GP6_31),
        PINMUX_IPSR_GPSR(IP18_7_4,      AUDIO_CLKOUT3_B),
-       PINMUX_IPSR_MSEL(IP18_7_4,      SSI_WS9_B,              SEL_SSI_1),
+       PINMUX_IPSR_MSEL(IP18_7_4,      SSI_WS9_B,              SEL_SSI9_1),
        PINMUX_IPSR_MSEL(IP18_7_4,      TS_SPSYNC0_E,           SEL_TSIF0_4),
        PINMUX_IPSR_MSEL(IP18_7_4,      STP_ISSYNC_0_E,         SEL_SSP1_0_4),
        PINMUX_IPSR_MSEL(IP18_7_4,      RIF2_D1_B,              SEL_DRIF2_1),
@@ -1519,6 +1516,7 @@ static const u16 pinmux_data[] = {
 #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r))
 #define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300)
 #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c)
+#define PIN_NONE U16_MAX
 
 static const struct sh_pfc_pin pinmux_pins[] = {
        PINMUX_GPIO_GP_ALL(),
@@ -1719,11 +1717,11 @@ static const unsigned int avb_phy_int_pins[] = {
 static const unsigned int avb_phy_int_mux[] = {
        AVB_PHY_INT_MARK,
 };
-static const unsigned int avb_mdc_pins[] = {
+static const unsigned int avb_mdio_pins[] = {
        /* AVB_MDC, AVB_MDIO */
        RCAR_GP_PIN(2, 9), PIN_NUMBER('A', 9),
 };
-static const unsigned int avb_mdc_mux[] = {
+static const unsigned int avb_mdio_mux[] = {
        AVB_MDC_MARK, AVB_MDIO_MARK,
 };
 static const unsigned int avb_mii_pins[] = {
@@ -2135,6 +2133,15 @@ static const unsigned int du_disp_mux[] = {
        DU_DISP_MARK,
 };
 
+/* - HDMI ------------------------------------------------------------------- */
+static const unsigned int hdmi0_cec_pins[] = {
+       /* HDMI0_CEC */
+       RCAR_GP_PIN(7, 2),
+};
+static const unsigned int hdmi0_cec_mux[] = {
+       HDMI0_CEC_MARK,
+};
+
 /* - HSCIF0 ----------------------------------------------------------------- */
 static const unsigned int hscif0_data_pins[] = {
        /* RX, TX */
@@ -2393,6 +2400,50 @@ static const unsigned int i2c6_c_mux[] = {
        SDA6_C_MARK, SCL6_C_MARK,
 };
 
+/* - INTC-EX ---------------------------------------------------------------- */
+static const unsigned int intc_ex_irq0_pins[] = {
+       /* IRQ0 */
+       RCAR_GP_PIN(2, 0),
+};
+static const unsigned int intc_ex_irq0_mux[] = {
+       IRQ0_MARK,
+};
+static const unsigned int intc_ex_irq1_pins[] = {
+       /* IRQ1 */
+       RCAR_GP_PIN(2, 1),
+};
+static const unsigned int intc_ex_irq1_mux[] = {
+       IRQ1_MARK,
+};
+static const unsigned int intc_ex_irq2_pins[] = {
+       /* IRQ2 */
+       RCAR_GP_PIN(2, 2),
+};
+static const unsigned int intc_ex_irq2_mux[] = {
+       IRQ2_MARK,
+};
+static const unsigned int intc_ex_irq3_pins[] = {
+       /* IRQ3 */
+       RCAR_GP_PIN(2, 3),
+};
+static const unsigned int intc_ex_irq3_mux[] = {
+       IRQ3_MARK,
+};
+static const unsigned int intc_ex_irq4_pins[] = {
+       /* IRQ4 */
+       RCAR_GP_PIN(2, 4),
+};
+static const unsigned int intc_ex_irq4_mux[] = {
+       IRQ4_MARK,
+};
+static const unsigned int intc_ex_irq5_pins[] = {
+       /* IRQ5 */
+       RCAR_GP_PIN(2, 5),
+};
+static const unsigned int intc_ex_irq5_mux[] = {
+       IRQ5_MARK,
+};
+
 /* - MSIOF0 ----------------------------------------------------------------- */
 static const unsigned int msiof0_clk_pins[] = {
        /* SCK */
@@ -3211,7 +3262,7 @@ static const unsigned int scif0_ctrl_pins[] = {
        RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 3),
 };
 static const unsigned int scif0_ctrl_mux[] = {
-       RTS0_N_TANS_MARK, CTS0_N_MARK,
+       RTS0_N_MARK, CTS0_N_MARK,
 };
 /* - SCIF1 ------------------------------------------------------------------ */
 static const unsigned int scif1_data_a_pins[] = {
@@ -3233,7 +3284,7 @@ static const unsigned int scif1_ctrl_pins[] = {
        RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 7),
 };
 static const unsigned int scif1_ctrl_mux[] = {
-       RTS1_N_TANS_MARK, CTS1_N_MARK,
+       RTS1_N_MARK, CTS1_N_MARK,
 };
 
 static const unsigned int scif1_data_b_pins[] = {
@@ -3285,7 +3336,7 @@ static const unsigned int scif3_ctrl_pins[] = {
        RCAR_GP_PIN(1, 26), RCAR_GP_PIN(1, 25),
 };
 static const unsigned int scif3_ctrl_mux[] = {
-       RTS3_N_TANS_MARK, CTS3_N_MARK,
+       RTS3_N_MARK, CTS3_N_MARK,
 };
 static const unsigned int scif3_data_b_pins[] = {
        /* RX, TX */
@@ -3314,7 +3365,7 @@ static const unsigned int scif4_ctrl_a_pins[] = {
        RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 13),
 };
 static const unsigned int scif4_ctrl_a_mux[] = {
-       RTS4_N_TANS_A_MARK, CTS4_N_A_MARK,
+       RTS4_N_A_MARK, CTS4_N_A_MARK,
 };
 static const unsigned int scif4_data_b_pins[] = {
        /* RX, TX */
@@ -3335,7 +3386,7 @@ static const unsigned int scif4_ctrl_b_pins[] = {
        RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 9),
 };
 static const unsigned int scif4_ctrl_b_mux[] = {
-       RTS4_N_TANS_B_MARK, CTS4_N_B_MARK,
+       RTS4_N_B_MARK, CTS4_N_B_MARK,
 };
 static const unsigned int scif4_data_c_pins[] = {
        /* RX, TX */
@@ -3356,7 +3407,7 @@ static const unsigned int scif4_ctrl_c_pins[] = {
        RCAR_GP_PIN(0, 11), RCAR_GP_PIN(0, 10),
 };
 static const unsigned int scif4_ctrl_c_mux[] = {
-       RTS4_N_TANS_C_MARK, CTS4_N_C_MARK,
+       RTS4_N_C_MARK, CTS4_N_C_MARK,
 };
 /* - SCIF5 ------------------------------------------------------------------ */
 static const unsigned int scif5_data_a_pins[] = {
@@ -3789,6 +3840,36 @@ static const unsigned int ssi9_ctrl_b_mux[] = {
        SSI_SCK9_B_MARK, SSI_WS9_B_MARK,
 };
 
+/* - TMU -------------------------------------------------------------------- */
+static const unsigned int tmu_tclk1_a_pins[] = {
+       /* TCLK */
+       RCAR_GP_PIN(6, 23),
+};
+static const unsigned int tmu_tclk1_a_mux[] = {
+       TCLK1_A_MARK,
+};
+static const unsigned int tmu_tclk1_b_pins[] = {
+       /* TCLK */
+       RCAR_GP_PIN(5, 19),
+};
+static const unsigned int tmu_tclk1_b_mux[] = {
+       TCLK1_B_MARK,
+};
+static const unsigned int tmu_tclk2_a_pins[] = {
+       /* TCLK */
+       RCAR_GP_PIN(6, 19),
+};
+static const unsigned int tmu_tclk2_a_mux[] = {
+       TCLK2_A_MARK,
+};
+static const unsigned int tmu_tclk2_b_pins[] = {
+       /* TCLK */
+       RCAR_GP_PIN(6, 28),
+};
+static const unsigned int tmu_tclk2_b_mux[] = {
+       TCLK2_B_MARK,
+};
+
 /* - USB0 ------------------------------------------------------------------- */
 static const unsigned int usb0_pins[] = {
        /* PWEN, OVC */
@@ -3815,6 +3896,236 @@ static const unsigned int usb30_mux[] = {
        USB30_PWEN_MARK, USB30_OVC_MARK,
 };
 
+/* - VIN4 ------------------------------------------------------------------- */
+static const unsigned int vin4_data18_a_pins[] = {
+       RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11),
+       RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13),
+       RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15),
+       RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3),
+       RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
+       RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
+       RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+       RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+};
+static const unsigned int vin4_data18_a_mux[] = {
+       VI4_DATA2_A_MARK, VI4_DATA3_A_MARK,
+       VI4_DATA4_A_MARK, VI4_DATA5_A_MARK,
+       VI4_DATA6_A_MARK, VI4_DATA7_A_MARK,
+       VI4_DATA10_MARK, VI4_DATA11_MARK,
+       VI4_DATA12_MARK, VI4_DATA13_MARK,
+       VI4_DATA14_MARK, VI4_DATA15_MARK,
+       VI4_DATA18_MARK, VI4_DATA19_MARK,
+       VI4_DATA20_MARK, VI4_DATA21_MARK,
+       VI4_DATA22_MARK, VI4_DATA23_MARK,
+};
+static const unsigned int vin4_data18_b_pins[] = {
+       RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3),
+       RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5),
+       RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7),
+       RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3),
+       RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
+       RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
+       RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+       RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+};
+static const unsigned int vin4_data18_b_mux[] = {
+       VI4_DATA2_B_MARK, VI4_DATA3_B_MARK,
+       VI4_DATA4_B_MARK, VI4_DATA5_B_MARK,
+       VI4_DATA6_B_MARK, VI4_DATA7_B_MARK,
+       VI4_DATA10_MARK, VI4_DATA11_MARK,
+       VI4_DATA12_MARK, VI4_DATA13_MARK,
+       VI4_DATA14_MARK, VI4_DATA15_MARK,
+       VI4_DATA18_MARK, VI4_DATA19_MARK,
+       VI4_DATA20_MARK, VI4_DATA21_MARK,
+       VI4_DATA22_MARK, VI4_DATA23_MARK,
+};
+static const union vin_data vin4_data_a_pins = {
+       .data24 = {
+               RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9),
+               RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11),
+               RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13),
+               RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15),
+               RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1),
+               RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3),
+               RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
+               RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
+               RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
+               RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+               RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+               RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+       },
+};
+static const union vin_data vin4_data_a_mux = {
+       .data24 = {
+               VI4_DATA0_A_MARK, VI4_DATA1_A_MARK,
+               VI4_DATA2_A_MARK, VI4_DATA3_A_MARK,
+               VI4_DATA4_A_MARK, VI4_DATA5_A_MARK,
+               VI4_DATA6_A_MARK, VI4_DATA7_A_MARK,
+               VI4_DATA8_MARK,  VI4_DATA9_MARK,
+               VI4_DATA10_MARK, VI4_DATA11_MARK,
+               VI4_DATA12_MARK, VI4_DATA13_MARK,
+               VI4_DATA14_MARK, VI4_DATA15_MARK,
+               VI4_DATA16_MARK, VI4_DATA17_MARK,
+               VI4_DATA18_MARK, VI4_DATA19_MARK,
+               VI4_DATA20_MARK, VI4_DATA21_MARK,
+               VI4_DATA22_MARK, VI4_DATA23_MARK,
+       },
+};
+static const union vin_data vin4_data_b_pins = {
+       .data24 = {
+               RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1),
+               RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3),
+               RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5),
+               RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7),
+               RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1),
+               RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3),
+               RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
+               RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
+               RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
+               RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+               RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+               RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+       },
+};
+static const union vin_data vin4_data_b_mux = {
+       .data24 = {
+               VI4_DATA0_B_MARK, VI4_DATA1_B_MARK,
+               VI4_DATA2_B_MARK, VI4_DATA3_B_MARK,
+               VI4_DATA4_B_MARK, VI4_DATA5_B_MARK,
+               VI4_DATA6_B_MARK, VI4_DATA7_B_MARK,
+               VI4_DATA8_MARK,  VI4_DATA9_MARK,
+               VI4_DATA10_MARK, VI4_DATA11_MARK,
+               VI4_DATA12_MARK, VI4_DATA13_MARK,
+               VI4_DATA14_MARK, VI4_DATA15_MARK,
+               VI4_DATA16_MARK, VI4_DATA17_MARK,
+               VI4_DATA18_MARK, VI4_DATA19_MARK,
+               VI4_DATA20_MARK, VI4_DATA21_MARK,
+               VI4_DATA22_MARK, VI4_DATA23_MARK,
+       },
+};
+static const unsigned int vin4_sync_pins[] = {
+       /* HSYNC#, VSYNC# */
+       RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 17),
+};
+static const unsigned int vin4_sync_mux[] = {
+       VI4_HSYNC_N_MARK, VI4_VSYNC_N_MARK,
+};
+static const unsigned int vin4_field_pins[] = {
+       /* FIELD */
+       RCAR_GP_PIN(1, 16),
+};
+static const unsigned int vin4_field_mux[] = {
+       VI4_FIELD_MARK,
+};
+static const unsigned int vin4_clkenb_pins[] = {
+       /* CLKENB */
+       RCAR_GP_PIN(1, 19),
+};
+static const unsigned int vin4_clkenb_mux[] = {
+       VI4_CLKENB_MARK,
+};
+static const unsigned int vin4_clk_pins[] = {
+       /* CLK */
+       RCAR_GP_PIN(1, 27),
+};
+static const unsigned int vin4_clk_mux[] = {
+       VI4_CLK_MARK,
+};
+
+/* - VIN5 ------------------------------------------------------------------- */
+static const unsigned int vin5_data8_pins[] = {
+       RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
+       RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+       RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+};
+static const unsigned int vin5_data8_mux[] = {
+       VI5_DATA0_MARK, VI5_DATA1_MARK,
+       VI5_DATA2_MARK, VI5_DATA3_MARK,
+       VI5_DATA4_MARK, VI5_DATA5_MARK,
+       VI5_DATA6_MARK, VI5_DATA7_MARK,
+};
+static const unsigned int vin5_data10_pins[] = {
+       RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
+       RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+       RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+       RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13),
+};
+static const unsigned int vin5_data10_mux[] = {
+       VI5_DATA0_MARK, VI5_DATA1_MARK,
+       VI5_DATA2_MARK, VI5_DATA3_MARK,
+       VI5_DATA4_MARK, VI5_DATA5_MARK,
+       VI5_DATA6_MARK, VI5_DATA7_MARK,
+       VI5_DATA8_MARK,  VI5_DATA9_MARK,
+};
+static const unsigned int vin5_data12_pins[] = {
+       RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
+       RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+       RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+       RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13),
+       RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15),
+};
+static const unsigned int vin5_data12_mux[] = {
+       VI5_DATA0_MARK, VI5_DATA1_MARK,
+       VI5_DATA2_MARK, VI5_DATA3_MARK,
+       VI5_DATA4_MARK, VI5_DATA5_MARK,
+       VI5_DATA6_MARK, VI5_DATA7_MARK,
+       VI5_DATA8_MARK,  VI5_DATA9_MARK,
+       VI5_DATA10_MARK, VI5_DATA11_MARK,
+};
+static const unsigned int vin5_data16_pins[] = {
+       RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1),
+       RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3),
+       RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5),
+       RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7),
+       RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13),
+       RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15),
+       RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5),
+       RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7),
+};
+static const unsigned int vin5_data16_mux[] = {
+       VI5_DATA0_MARK, VI5_DATA1_MARK,
+       VI5_DATA2_MARK, VI5_DATA3_MARK,
+       VI5_DATA4_MARK, VI5_DATA5_MARK,
+       VI5_DATA6_MARK, VI5_DATA7_MARK,
+       VI5_DATA8_MARK,  VI5_DATA9_MARK,
+       VI5_DATA10_MARK, VI5_DATA11_MARK,
+       VI5_DATA12_MARK, VI5_DATA13_MARK,
+       VI5_DATA14_MARK, VI5_DATA15_MARK,
+};
+static const unsigned int vin5_sync_pins[] = {
+       /* HSYNC#, VSYNC# */
+       RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 9),
+};
+static const unsigned int vin5_sync_mux[] = {
+       VI5_HSYNC_N_MARK, VI5_VSYNC_N_MARK,
+};
+static const unsigned int vin5_field_pins[] = {
+       RCAR_GP_PIN(1, 11),
+};
+static const unsigned int vin5_field_mux[] = {
+       /* FIELD */
+       VI5_FIELD_MARK,
+};
+static const unsigned int vin5_clkenb_pins[] = {
+       RCAR_GP_PIN(1, 20),
+};
+static const unsigned int vin5_clkenb_mux[] = {
+       /* CLKENB */
+       VI5_CLKENB_MARK,
+};
+static const unsigned int vin5_clk_pins[] = {
+       RCAR_GP_PIN(1, 21),
+};
+static const unsigned int vin5_clk_mux[] = {
+       /* CLK */
+       VI5_CLK_MARK,
+};
+
 static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(audio_clk_a_a),
        SH_PFC_PIN_GROUP(audio_clk_a_b),
@@ -3836,7 +4147,8 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(avb_link),
        SH_PFC_PIN_GROUP(avb_magic),
        SH_PFC_PIN_GROUP(avb_phy_int),
-       SH_PFC_PIN_GROUP(avb_mdc),
+       SH_PFC_PIN_GROUP_ALIAS(avb_mdc, avb_mdio),      /* Deprecated */
+       SH_PFC_PIN_GROUP(avb_mdio),
        SH_PFC_PIN_GROUP(avb_mii),
        SH_PFC_PIN_GROUP(avb_avtp_pps),
        SH_PFC_PIN_GROUP(avb_avtp_match_a),
@@ -3888,6 +4200,7 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(du_oddf),
        SH_PFC_PIN_GROUP(du_cde),
        SH_PFC_PIN_GROUP(du_disp),
+       SH_PFC_PIN_GROUP(hdmi0_cec),
        SH_PFC_PIN_GROUP(hscif0_data),
        SH_PFC_PIN_GROUP(hscif0_clk),
        SH_PFC_PIN_GROUP(hscif0_ctrl),
@@ -3923,6 +4236,12 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(i2c6_a),
        SH_PFC_PIN_GROUP(i2c6_b),
        SH_PFC_PIN_GROUP(i2c6_c),
+       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),
        SH_PFC_PIN_GROUP(msiof0_clk),
        SH_PFC_PIN_GROUP(msiof0_sync),
        SH_PFC_PIN_GROUP(msiof0_ss1),
@@ -4115,9 +4434,39 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(ssi9_data_b),
        SH_PFC_PIN_GROUP(ssi9_ctrl_a),
        SH_PFC_PIN_GROUP(ssi9_ctrl_b),
+       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(usb0),
        SH_PFC_PIN_GROUP(usb1),
        SH_PFC_PIN_GROUP(usb30),
+       VIN_DATA_PIN_GROUP(vin4_data_a, 8),
+       VIN_DATA_PIN_GROUP(vin4_data_a, 10),
+       VIN_DATA_PIN_GROUP(vin4_data_a, 12),
+       VIN_DATA_PIN_GROUP(vin4_data_a, 16),
+       SH_PFC_PIN_GROUP(vin4_data18_a),
+       VIN_DATA_PIN_GROUP(vin4_data_a, 20),
+       VIN_DATA_PIN_GROUP(vin4_data_a, 24),
+       VIN_DATA_PIN_GROUP(vin4_data_b, 8),
+       VIN_DATA_PIN_GROUP(vin4_data_b, 10),
+       VIN_DATA_PIN_GROUP(vin4_data_b, 12),
+       VIN_DATA_PIN_GROUP(vin4_data_b, 16),
+       SH_PFC_PIN_GROUP(vin4_data18_b),
+       VIN_DATA_PIN_GROUP(vin4_data_b, 20),
+       VIN_DATA_PIN_GROUP(vin4_data_b, 24),
+       SH_PFC_PIN_GROUP(vin4_sync),
+       SH_PFC_PIN_GROUP(vin4_field),
+       SH_PFC_PIN_GROUP(vin4_clkenb),
+       SH_PFC_PIN_GROUP(vin4_clk),
+       SH_PFC_PIN_GROUP(vin5_data8),
+       SH_PFC_PIN_GROUP(vin5_data10),
+       SH_PFC_PIN_GROUP(vin5_data12),
+       SH_PFC_PIN_GROUP(vin5_data16),
+       SH_PFC_PIN_GROUP(vin5_sync),
+       SH_PFC_PIN_GROUP(vin5_field),
+       SH_PFC_PIN_GROUP(vin5_clkenb),
+       SH_PFC_PIN_GROUP(vin5_clk),
 };
 
 static const char * const audio_clk_groups[] = {
@@ -4144,7 +4493,8 @@ static const char * const avb_groups[] = {
        "avb_link",
        "avb_magic",
        "avb_phy_int",
-       "avb_mdc",
+       "avb_mdc",      /* Deprecated, please use "avb_mdio" instead */
+       "avb_mdio",
        "avb_mii",
        "avb_avtp_pps",
        "avb_avtp_match_a",
@@ -4228,6 +4578,10 @@ static const char * const du_groups[] = {
        "du_disp",
 };
 
+static const char * const hdmi0_groups[] = {
+       "hdmi0_cec",
+};
+
 static const char * const hscif0_groups[] = {
        "hscif0_data",
        "hscif0_clk",
@@ -4287,6 +4641,15 @@ static const char * const i2c6_groups[] = {
        "i2c6_c",
 };
 
+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 msiof0_groups[] = {
        "msiof0_clk",
        "msiof0_sync",
@@ -4548,6 +4911,13 @@ static const char * const ssi_groups[] = {
        "ssi9_ctrl_b",
 };
 
+static const char * const tmu_groups[] = {
+       "tmu_tclk1_a",
+       "tmu_tclk1_b",
+       "tmu_tclk2_a",
+       "tmu_tclk2_b",
+};
+
 static const char * const usb0_groups[] = {
        "usb0",
 };
@@ -4560,6 +4930,38 @@ static const char * const usb30_groups[] = {
        "usb30",
 };
 
+static const char * const vin4_groups[] = {
+       "vin4_data8_a",
+       "vin4_data10_a",
+       "vin4_data12_a",
+       "vin4_data16_a",
+       "vin4_data18_a",
+       "vin4_data20_a",
+       "vin4_data24_a",
+       "vin4_data8_b",
+       "vin4_data10_b",
+       "vin4_data12_b",
+       "vin4_data16_b",
+       "vin4_data18_b",
+       "vin4_data20_b",
+       "vin4_data24_b",
+       "vin4_sync",
+       "vin4_field",
+       "vin4_clkenb",
+       "vin4_clk",
+};
+
+static const char * const vin5_groups[] = {
+       "vin5_data8",
+       "vin5_data10",
+       "vin5_data12",
+       "vin5_data16",
+       "vin5_sync",
+       "vin5_field",
+       "vin5_clkenb",
+       "vin5_clk",
+};
+
 static const struct sh_pfc_function pinmux_functions[] = {
        SH_PFC_FUNCTION(audio_clk),
        SH_PFC_FUNCTION(avb),
@@ -4573,6 +4975,7 @@ static const struct sh_pfc_function pinmux_functions[] = {
        SH_PFC_FUNCTION(drif2),
        SH_PFC_FUNCTION(drif3),
        SH_PFC_FUNCTION(du),
+       SH_PFC_FUNCTION(hdmi0),
        SH_PFC_FUNCTION(hscif0),
        SH_PFC_FUNCTION(hscif1),
        SH_PFC_FUNCTION(hscif2),
@@ -4581,6 +4984,7 @@ static const struct sh_pfc_function pinmux_functions[] = {
        SH_PFC_FUNCTION(i2c1),
        SH_PFC_FUNCTION(i2c2),
        SH_PFC_FUNCTION(i2c6),
+       SH_PFC_FUNCTION(intc_ex),
        SH_PFC_FUNCTION(msiof0),
        SH_PFC_FUNCTION(msiof1),
        SH_PFC_FUNCTION(msiof2),
@@ -4604,9 +5008,12 @@ static const struct sh_pfc_function pinmux_functions[] = {
        SH_PFC_FUNCTION(sdhi2),
        SH_PFC_FUNCTION(sdhi3),
        SH_PFC_FUNCTION(ssi),
+       SH_PFC_FUNCTION(tmu),
        SH_PFC_FUNCTION(usb0),
        SH_PFC_FUNCTION(usb1),
        SH_PFC_FUNCTION(usb30),
+       SH_PFC_FUNCTION(vin4),
+       SH_PFC_FUNCTION(vin5),
 };
 
 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
@@ -5346,11 +5753,11 @@ static const struct pinmux_drive_reg pinmux_drive_regs[] = {
                { RCAR_GP_PIN(5,  3),  0, 3 },  /* CTS0 */
        } },
        { PINMUX_DRIVE_REG("DRVCTRL18", 0xe6060348) {
-               { RCAR_GP_PIN(5,  4), 28, 3 },  /* RTS0_TANS */
+               { RCAR_GP_PIN(5,  4), 28, 3 },  /* RTS0 */
                { RCAR_GP_PIN(5,  5), 24, 3 },  /* RX1 */
                { RCAR_GP_PIN(5,  6), 20, 3 },  /* TX1 */
                { RCAR_GP_PIN(5,  7), 16, 3 },  /* CTS1 */
-               { RCAR_GP_PIN(5,  8), 12, 3 },  /* RTS1_TANS */
+               { RCAR_GP_PIN(5,  8), 12, 3 },  /* RTS1 */
                { RCAR_GP_PIN(5,  9),  8, 3 },  /* SCK2 */
                { RCAR_GP_PIN(5, 10),  4, 3 },  /* TX2 */
                { RCAR_GP_PIN(5, 11),  0, 3 },  /* RX2 */
@@ -5417,11 +5824,20 @@ static const struct pinmux_drive_reg pinmux_drive_regs[] = {
        { },
 };
 
+enum ioctrl_regs {
+       POCCTRL,
+};
+
+static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = {
+       [POCCTRL] = { 0xe6060380, },
+       { /* sentinel */ },
+};
+
 static int r8a7796_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl)
 {
        int bit = -EINVAL;
 
-       *pocctrl = 0xe6060380;
+       *pocctrl = pinmux_ioctrl_regs[POCCTRL].reg;
 
        if (pin >= RCAR_GP_PIN(3, 0) && pin <= RCAR_GP_PIN(3, 11))
                bit = pin & 0x1f;
@@ -5432,242 +5848,261 @@ static int r8a7796_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *poc
        return bit;
 }
 
-#define PUEN   0xe6060400
-#define PUD    0xe6060440
-
-#define PU0    0x00
-#define PU1    0x04
-#define PU2    0x08
-#define PU3    0x0c
-#define PU4    0x10
-#define PU5    0x14
-#define PU6    0x18
-
-static const struct sh_pfc_bias_info bias_info[] = {
-       { RCAR_GP_PIN(2, 11),    PU0, 31 },     /* AVB_PHY_INT */
-       { RCAR_GP_PIN(2, 10),    PU0, 30 },     /* AVB_MAGIC */
-       { RCAR_GP_PIN(2,  9),    PU0, 29 },     /* AVB_MDC */
-       { PIN_NUMBER('A', 9),    PU0, 28 },     /* AVB_MDIO */
-       { PIN_NUMBER('A', 12),   PU0, 27 },     /* AVB_TXCREFCLK */
-       { PIN_NUMBER('B', 17),   PU0, 26 },     /* AVB_TD3 */
-       { PIN_NUMBER('A', 17),   PU0, 25 },     /* AVB_TD2 */
-       { PIN_NUMBER('B', 18),   PU0, 24 },     /* AVB_TD1 */
-       { PIN_NUMBER('A', 18),   PU0, 23 },     /* AVB_TD0 */
-       { PIN_NUMBER('A', 19),   PU0, 22 },     /* AVB_TXC */
-       { PIN_NUMBER('A', 8),    PU0, 21 },     /* AVB_TX_CTL */
-       { PIN_NUMBER('B', 14),   PU0, 20 },     /* AVB_RD3 */
-       { PIN_NUMBER('A', 14),   PU0, 19 },     /* AVB_RD2 */
-       { PIN_NUMBER('B', 13),   PU0, 18 },     /* AVB_RD1 */
-       { PIN_NUMBER('A', 13),   PU0, 17 },     /* AVB_RD0 */
-       { PIN_NUMBER('B', 19),   PU0, 16 },     /* AVB_RXC */
-       { PIN_NUMBER('A', 16),   PU0, 15 },     /* AVB_RX_CTL */
-       { PIN_NUMBER('V', 7),    PU0, 14 },     /* RPC_RESET# */
-       { PIN_NUMBER('V', 6),    PU0, 13 },     /* RPC_WP# */
-       { PIN_NUMBER('Y', 7),    PU0, 12 },     /* RPC_INT# */
-       { PIN_NUMBER('V', 5),    PU0, 11 },     /* QSPI1_SSL */
-       { PIN_A_NUMBER('C', 3),  PU0, 10 },     /* QSPI1_IO3 */
-       { PIN_A_NUMBER('E', 4),  PU0,  9 },     /* QSPI1_IO2 */
-       { PIN_A_NUMBER('E', 5),  PU0,  8 },     /* QSPI1_MISO_IO1 */
-       { PIN_A_NUMBER('C', 7),  PU0,  7 },     /* QSPI1_MOSI_IO0 */
-       { PIN_NUMBER('V', 3),    PU0,  6 },     /* QSPI1_SPCLK */
-       { PIN_NUMBER('Y', 3),    PU0,  5 },     /* QSPI0_SSL */
-       { PIN_A_NUMBER('B', 6),  PU0,  4 },     /* QSPI0_IO3 */
-       { PIN_NUMBER('Y', 6),    PU0,  3 },     /* QSPI0_IO2 */
-       { PIN_A_NUMBER('B', 4),  PU0,  2 },     /* QSPI0_MISO_IO1 */
-       { PIN_A_NUMBER('C', 5),  PU0,  1 },     /* QSPI0_MOSI_IO0 */
-       { PIN_NUMBER('W', 3),    PU0,  0 },     /* QSPI0_SPCLK */
-
-       { RCAR_GP_PIN(1, 19),    PU1, 31 },     /* A19 */
-       { RCAR_GP_PIN(1, 18),    PU1, 30 },     /* A18 */
-       { RCAR_GP_PIN(1, 17),    PU1, 29 },     /* A17 */
-       { RCAR_GP_PIN(1, 16),    PU1, 28 },     /* A16 */
-       { RCAR_GP_PIN(1, 15),    PU1, 27 },     /* A15 */
-       { RCAR_GP_PIN(1, 14),    PU1, 26 },     /* A14 */
-       { RCAR_GP_PIN(1, 13),    PU1, 25 },     /* A13 */
-       { RCAR_GP_PIN(1, 12),    PU1, 24 },     /* A12 */
-       { RCAR_GP_PIN(1, 11),    PU1, 23 },     /* A11 */
-       { RCAR_GP_PIN(1, 10),    PU1, 22 },     /* A10 */
-       { RCAR_GP_PIN(1,  9),    PU1, 21 },     /* A9 */
-       { RCAR_GP_PIN(1,  8),    PU1, 20 },     /* A8 */
-       { RCAR_GP_PIN(1,  7),    PU1, 19 },     /* A7 */
-       { RCAR_GP_PIN(1,  6),    PU1, 18 },     /* A6 */
-       { RCAR_GP_PIN(1,  5),    PU1, 17 },     /* A5 */
-       { RCAR_GP_PIN(1,  4),    PU1, 16 },     /* A4 */
-       { RCAR_GP_PIN(1,  3),    PU1, 15 },     /* A3 */
-       { RCAR_GP_PIN(1,  2),    PU1, 14 },     /* A2 */
-       { RCAR_GP_PIN(1,  1),    PU1, 13 },     /* A1 */
-       { RCAR_GP_PIN(1,  0),    PU1, 12 },     /* A0 */
-       { RCAR_GP_PIN(2,  8),    PU1, 11 },     /* PWM2_A */
-       { RCAR_GP_PIN(2,  7),    PU1, 10 },     /* PWM1_A */
-       { RCAR_GP_PIN(2,  6),    PU1,  9 },     /* PWM0 */
-       { RCAR_GP_PIN(2,  5),    PU1,  8 },     /* IRQ5 */
-       { RCAR_GP_PIN(2,  4),    PU1,  7 },     /* IRQ4 */
-       { RCAR_GP_PIN(2,  3),    PU1,  6 },     /* IRQ3 */
-       { RCAR_GP_PIN(2,  2),    PU1,  5 },     /* IRQ2 */
-       { RCAR_GP_PIN(2,  1),    PU1,  4 },     /* IRQ1 */
-       { RCAR_GP_PIN(2,  0),    PU1,  3 },     /* IRQ0 */
-       { RCAR_GP_PIN(2, 14),    PU1,  2 },     /* AVB_AVTP_CAPTURE_A */
-       { RCAR_GP_PIN(2, 13),    PU1,  1 },     /* AVB_AVTP_MATCH_A */
-       { RCAR_GP_PIN(2, 12),    PU1,  0 },     /* AVB_LINK */
-
-       { PIN_A_NUMBER('P', 8),  PU2, 31 },     /* DU_DOTCLKIN1 */
-       { PIN_A_NUMBER('P', 7),  PU2, 30 },     /* DU_DOTCLKIN0 */
-       { RCAR_GP_PIN(7,  3),    PU2, 29 },     /* GP7_03 */
-       { RCAR_GP_PIN(7,  2),    PU2, 28 },     /* HDMI0_CEC */
-       { RCAR_GP_PIN(7,  1),    PU2, 27 },     /* AVS2 */
-       { RCAR_GP_PIN(7,  0),    PU2, 26 },     /* AVS1 */
-       { RCAR_GP_PIN(0, 15),    PU2, 25 },     /* D15 */
-       { RCAR_GP_PIN(0, 14),    PU2, 24 },     /* D14 */
-       { RCAR_GP_PIN(0, 13),    PU2, 23 },     /* D13 */
-       { RCAR_GP_PIN(0, 12),    PU2, 22 },     /* D12 */
-       { RCAR_GP_PIN(0, 11),    PU2, 21 },     /* D11 */
-       { RCAR_GP_PIN(0, 10),    PU2, 20 },     /* D10 */
-       { RCAR_GP_PIN(0,  9),    PU2, 19 },     /* D9 */
-       { RCAR_GP_PIN(0,  8),    PU2, 18 },     /* D8 */
-       { RCAR_GP_PIN(0,  7),    PU2, 17 },     /* D7 */
-       { RCAR_GP_PIN(0,  6),    PU2, 16 },     /* D6 */
-       { RCAR_GP_PIN(0,  5),    PU2, 15 },     /* D5 */
-       { RCAR_GP_PIN(0,  4),    PU2, 14 },     /* D4 */
-       { RCAR_GP_PIN(0,  3),    PU2, 13 },     /* D3 */
-       { RCAR_GP_PIN(0,  2),    PU2, 12 },     /* D2 */
-       { RCAR_GP_PIN(0,  1),    PU2, 11 },     /* D1 */
-       { RCAR_GP_PIN(0,  0),    PU2, 10 },     /* D0 */
-       { PIN_NUMBER('C', 1),    PU2,  9 },     /* PRESETOUT# */
-       { RCAR_GP_PIN(1, 27),    PU2,  8 },     /* EX_WAIT0_A */
-       { RCAR_GP_PIN(1, 26),    PU2,  7 },     /* WE1_N */
-       { RCAR_GP_PIN(1, 25),    PU2,  6 },     /* WE0_N */
-       { RCAR_GP_PIN(1, 24),    PU2,  5 },     /* RD_WR_N */
-       { RCAR_GP_PIN(1, 23),    PU2,  4 },     /* RD_N */
-       { RCAR_GP_PIN(1, 22),    PU2,  3 },     /* BS_N */
-       { RCAR_GP_PIN(1, 21),    PU2,  2 },     /* CS1_N */
-       { RCAR_GP_PIN(1, 20),    PU2,  1 },     /* CS0_N */
-       { RCAR_GP_PIN(1, 28),    PU2,  0 },     /* CLKOUT */
-
-       { RCAR_GP_PIN(4,  9),    PU3, 31 },     /* SD3_DAT0 */
-       { RCAR_GP_PIN(4,  8),    PU3, 30 },     /* SD3_CMD */
-       { RCAR_GP_PIN(4,  7),    PU3, 29 },     /* SD3_CLK */
-       { RCAR_GP_PIN(4,  6),    PU3, 28 },     /* SD2_DS */
-       { RCAR_GP_PIN(4,  5),    PU3, 27 },     /* SD2_DAT3 */
-       { RCAR_GP_PIN(4,  4),    PU3, 26 },     /* SD2_DAT2 */
-       { RCAR_GP_PIN(4,  3),    PU3, 25 },     /* SD2_DAT1 */
-       { RCAR_GP_PIN(4,  2),    PU3, 24 },     /* SD2_DAT0 */
-       { RCAR_GP_PIN(4,  1),    PU3, 23 },     /* SD2_CMD */
-       { RCAR_GP_PIN(4,  0),    PU3, 22 },     /* SD2_CLK */
-       { RCAR_GP_PIN(3, 11),    PU3, 21 },     /* SD1_DAT3 */
-       { RCAR_GP_PIN(3, 10),    PU3, 20 },     /* SD1_DAT2 */
-       { RCAR_GP_PIN(3,  9),    PU3, 19 },     /* SD1_DAT1 */
-       { RCAR_GP_PIN(3,  8),    PU3, 18 },     /* SD1_DAT0 */
-       { RCAR_GP_PIN(3,  7),    PU3, 17 },     /* SD1_CMD */
-       { RCAR_GP_PIN(3,  6),    PU3, 16 },     /* SD1_CLK */
-       { RCAR_GP_PIN(3,  5),    PU3, 15 },     /* SD0_DAT3 */
-       { RCAR_GP_PIN(3,  4),    PU3, 14 },     /* SD0_DAT2 */
-       { RCAR_GP_PIN(3,  3),    PU3, 13 },     /* SD0_DAT1 */
-       { RCAR_GP_PIN(3,  2),    PU3, 12 },     /* SD0_DAT0 */
-       { RCAR_GP_PIN(3,  1),    PU3, 11 },     /* SD0_CMD */
-       { RCAR_GP_PIN(3,  0),    PU3, 10 },     /* SD0_CLK */
-       { PIN_A_NUMBER('T', 30), PU3,  9 },     /* ASEBRK */
-       /* bit 8 n/a */
-       { PIN_A_NUMBER('R', 29), PU3,  7 },     /* TDI */
-       { PIN_A_NUMBER('R', 30), PU3,  6 },     /* TMS */
-       { PIN_A_NUMBER('T', 27), PU3,  5 },     /* TCK */
-       { PIN_A_NUMBER('R', 26), PU3,  4 },     /* TRST# */
-       { PIN_A_NUMBER('D', 39), PU3,  3 },     /* EXTALR*/
-       { PIN_A_NUMBER('D', 38), PU3,  2 },     /* FSCLKST */
-       /* bit 1 n/a on M3*/
-       { PIN_A_NUMBER('R', 8),  PU3,  0 },     /* DU_DOTCLKIN2 */
-
-       { RCAR_GP_PIN(5, 19),    PU4, 31 },     /* MSIOF0_SS1 */
-       { RCAR_GP_PIN(5, 18),    PU4, 30 },     /* MSIOF0_SYNC */
-       { RCAR_GP_PIN(5, 17),    PU4, 29 },     /* MSIOF0_SCK */
-       { RCAR_GP_PIN(5, 16),    PU4, 28 },     /* HRTS0_N */
-       { RCAR_GP_PIN(5, 15),    PU4, 27 },     /* HCTS0_N */
-       { RCAR_GP_PIN(5, 14),    PU4, 26 },     /* HTX0 */
-       { RCAR_GP_PIN(5, 13),    PU4, 25 },     /* HRX0 */
-       { RCAR_GP_PIN(5, 12),    PU4, 24 },     /* HSCK0 */
-       { RCAR_GP_PIN(5, 11),    PU4, 23 },     /* RX2_A */
-       { RCAR_GP_PIN(5, 10),    PU4, 22 },     /* TX2_A */
-       { RCAR_GP_PIN(5,  9),    PU4, 21 },     /* SCK2 */
-       { RCAR_GP_PIN(5,  8),    PU4, 20 },     /* RTS1_N_TANS */
-       { RCAR_GP_PIN(5,  7),    PU4, 19 },     /* CTS1_N */
-       { RCAR_GP_PIN(5,  6),    PU4, 18 },     /* TX1_A */
-       { RCAR_GP_PIN(5,  5),    PU4, 17 },     /* RX1_A */
-       { RCAR_GP_PIN(5,  4),    PU4, 16 },     /* RTS0_N_TANS */
-       { RCAR_GP_PIN(5,  3),    PU4, 15 },     /* CTS0_N */
-       { RCAR_GP_PIN(5,  2),    PU4, 14 },     /* TX0 */
-       { RCAR_GP_PIN(5,  1),    PU4, 13 },     /* RX0 */
-       { RCAR_GP_PIN(5,  0),    PU4, 12 },     /* SCK0 */
-       { RCAR_GP_PIN(3, 15),    PU4, 11 },     /* SD1_WP */
-       { RCAR_GP_PIN(3, 14),    PU4, 10 },     /* SD1_CD */
-       { RCAR_GP_PIN(3, 13),    PU4,  9 },     /* SD0_WP */
-       { RCAR_GP_PIN(3, 12),    PU4,  8 },     /* SD0_CD */
-       { RCAR_GP_PIN(4, 17),    PU4,  7 },     /* SD3_DS */
-       { RCAR_GP_PIN(4, 16),    PU4,  6 },     /* SD3_DAT7 */
-       { RCAR_GP_PIN(4, 15),    PU4,  5 },     /* SD3_DAT6 */
-       { RCAR_GP_PIN(4, 14),    PU4,  4 },     /* SD3_DAT5 */
-       { RCAR_GP_PIN(4, 13),    PU4,  3 },     /* SD3_DAT4 */
-       { RCAR_GP_PIN(4, 12),    PU4,  2 },     /* SD3_DAT3 */
-       { RCAR_GP_PIN(4, 11),    PU4,  1 },     /* SD3_DAT2 */
-       { RCAR_GP_PIN(4, 10),    PU4,  0 },     /* SD3_DAT1 */
-
-       { RCAR_GP_PIN(6, 24),    PU5, 31 },     /* USB0_PWEN */
-       { RCAR_GP_PIN(6, 23),    PU5, 30 },     /* AUDIO_CLKB_B */
-       { RCAR_GP_PIN(6, 22),    PU5, 29 },     /* AUDIO_CLKA_A */
-       { RCAR_GP_PIN(6, 21),    PU5, 28 },     /* SSI_SDATA9_A */
-       { RCAR_GP_PIN(6, 20),    PU5, 27 },     /* SSI_SDATA8 */
-       { RCAR_GP_PIN(6, 19),    PU5, 26 },     /* SSI_SDATA7 */
-       { RCAR_GP_PIN(6, 18),    PU5, 25 },     /* SSI_WS78 */
-       { RCAR_GP_PIN(6, 17),    PU5, 24 },     /* SSI_SCK78 */
-       { RCAR_GP_PIN(6, 16),    PU5, 23 },     /* SSI_SDATA6 */
-       { RCAR_GP_PIN(6, 15),    PU5, 22 },     /* SSI_WS6 */
-       { RCAR_GP_PIN(6, 14),    PU5, 21 },     /* SSI_SCK6 */
-       { RCAR_GP_PIN(6, 13),    PU5, 20 },     /* SSI_SDATA5 */
-       { RCAR_GP_PIN(6, 12),    PU5, 19 },     /* SSI_WS5 */
-       { RCAR_GP_PIN(6, 11),    PU5, 18 },     /* SSI_SCK5 */
-       { RCAR_GP_PIN(6, 10),    PU5, 17 },     /* SSI_SDATA4 */
-       { RCAR_GP_PIN(6,  9),    PU5, 16 },     /* SSI_WS4 */
-       { RCAR_GP_PIN(6,  8),    PU5, 15 },     /* SSI_SCK4 */
-       { RCAR_GP_PIN(6,  7),    PU5, 14 },     /* SSI_SDATA3 */
-       { RCAR_GP_PIN(6,  6),    PU5, 13 },     /* SSI_WS349 */
-       { RCAR_GP_PIN(6,  5),    PU5, 12 },     /* SSI_SCK349 */
-       { RCAR_GP_PIN(6,  4),    PU5, 11 },     /* SSI_SDATA2_A */
-       { RCAR_GP_PIN(6,  3),    PU5, 10 },     /* SSI_SDATA1_A */
-       { RCAR_GP_PIN(6,  2),    PU5,  9 },     /* SSI_SDATA0 */
-       { RCAR_GP_PIN(6,  1),    PU5,  8 },     /* SSI_WS01239 */
-       { RCAR_GP_PIN(6,  0),    PU5,  7 },     /* SSI_SCK01239 */
-       { PIN_NUMBER('H', 37),   PU5,  6 },     /* MLB_REF */
-       { RCAR_GP_PIN(5, 25),    PU5,  5 },     /* MLB_DAT */
-       { RCAR_GP_PIN(5, 24),    PU5,  4 },     /* MLB_SIG */
-       { RCAR_GP_PIN(5, 23),    PU5,  3 },     /* MLB_CLK */
-       { RCAR_GP_PIN(5, 22),    PU5,  2 },     /* MSIOF0_RXD */
-       { RCAR_GP_PIN(5, 21),    PU5,  1 },     /* MSIOF0_SS2 */
-       { RCAR_GP_PIN(5, 20),    PU5,  0 },     /* MSIOF0_TXD */
-
-       { RCAR_GP_PIN(6, 31),    PU6,  6 },     /* GP6_31 */
-       { RCAR_GP_PIN(6, 30),    PU6,  5 },     /* GP6_30 */
-       { RCAR_GP_PIN(6, 29),    PU6,  4 },     /* USB30_OVC */
-       { RCAR_GP_PIN(6, 28),    PU6,  3 },     /* USB30_PWEN */
-       { RCAR_GP_PIN(6, 27),    PU6,  2 },     /* USB1_OVC */
-       { RCAR_GP_PIN(6, 26),    PU6,  1 },     /* USB1_PWEN */
-       { RCAR_GP_PIN(6, 25),    PU6,  0 },     /* USB0_OVC */
+static const struct pinmux_bias_reg pinmux_bias_regs[] = {
+       { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) {
+               [ 0] = PIN_NUMBER('W', 3),      /* QSPI0_SPCLK */
+               [ 1] = PIN_A_NUMBER('C', 5),    /* QSPI0_MOSI_IO0 */
+               [ 2] = PIN_A_NUMBER('B', 4),    /* QSPI0_MISO_IO1 */
+               [ 3] = PIN_NUMBER('Y', 6),      /* QSPI0_IO2 */
+               [ 4] = PIN_A_NUMBER('B', 6),    /* QSPI0_IO3 */
+               [ 5] = PIN_NUMBER('Y', 3),      /* QSPI0_SSL */
+               [ 6] = PIN_NUMBER('V', 3),      /* QSPI1_SPCLK */
+               [ 7] = PIN_A_NUMBER('C', 7),    /* QSPI1_MOSI_IO0 */
+               [ 8] = PIN_A_NUMBER('E', 5),    /* QSPI1_MISO_IO1 */
+               [ 9] = PIN_A_NUMBER('E', 4),    /* QSPI1_IO2 */
+               [10] = PIN_A_NUMBER('C', 3),    /* QSPI1_IO3 */
+               [11] = PIN_NUMBER('V', 5),      /* QSPI1_SSL */
+               [12] = PIN_NUMBER('Y', 7),      /* RPC_INT# */
+               [13] = PIN_NUMBER('V', 6),      /* RPC_WP# */
+               [14] = PIN_NUMBER('V', 7),      /* RPC_RESET# */
+               [15] = PIN_NUMBER('A', 16),     /* AVB_RX_CTL */
+               [16] = PIN_NUMBER('B', 19),     /* AVB_RXC */
+               [17] = PIN_NUMBER('A', 13),     /* AVB_RD0 */
+               [18] = PIN_NUMBER('B', 13),     /* AVB_RD1 */
+               [19] = PIN_NUMBER('A', 14),     /* AVB_RD2 */
+               [20] = PIN_NUMBER('B', 14),     /* AVB_RD3 */
+               [21] = PIN_NUMBER('A', 8),      /* AVB_TX_CTL */
+               [22] = PIN_NUMBER('A', 19),     /* AVB_TXC */
+               [23] = PIN_NUMBER('A', 18),     /* AVB_TD0 */
+               [24] = PIN_NUMBER('B', 18),     /* AVB_TD1 */
+               [25] = PIN_NUMBER('A', 17),     /* AVB_TD2 */
+               [26] = PIN_NUMBER('B', 17),     /* AVB_TD3 */
+               [27] = PIN_NUMBER('A', 12),     /* AVB_TXCREFCLK */
+               [28] = PIN_NUMBER('A', 9),      /* AVB_MDIO */
+               [29] = RCAR_GP_PIN(2,  9),      /* AVB_MDC */
+               [30] = RCAR_GP_PIN(2, 10),      /* AVB_MAGIC */
+               [31] = RCAR_GP_PIN(2, 11),      /* AVB_PHY_INT */
+       } },
+       { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) {
+               [ 0] = RCAR_GP_PIN(2, 12),      /* AVB_LINK */
+               [ 1] = RCAR_GP_PIN(2, 13),      /* AVB_AVTP_MATCH_A */
+               [ 2] = RCAR_GP_PIN(2, 14),      /* AVB_AVTP_CAPTURE_A */
+               [ 3] = RCAR_GP_PIN(2,  0),      /* IRQ0 */
+               [ 4] = RCAR_GP_PIN(2,  1),      /* IRQ1 */
+               [ 5] = RCAR_GP_PIN(2,  2),      /* IRQ2 */
+               [ 6] = RCAR_GP_PIN(2,  3),      /* IRQ3 */
+               [ 7] = RCAR_GP_PIN(2,  4),      /* IRQ4 */
+               [ 8] = RCAR_GP_PIN(2,  5),      /* IRQ5 */
+               [ 9] = RCAR_GP_PIN(2,  6),      /* PWM0 */
+               [10] = RCAR_GP_PIN(2,  7),      /* PWM1_A */
+               [11] = RCAR_GP_PIN(2,  8),      /* PWM2_A */
+               [12] = RCAR_GP_PIN(1,  0),      /* A0 */
+               [13] = RCAR_GP_PIN(1,  1),      /* A1 */
+               [14] = RCAR_GP_PIN(1,  2),      /* A2 */
+               [15] = RCAR_GP_PIN(1,  3),      /* A3 */
+               [16] = RCAR_GP_PIN(1,  4),      /* A4 */
+               [17] = RCAR_GP_PIN(1,  5),      /* A5 */
+               [18] = RCAR_GP_PIN(1,  6),      /* A6 */
+               [19] = RCAR_GP_PIN(1,  7),      /* A7 */
+               [20] = RCAR_GP_PIN(1,  8),      /* A8 */
+               [21] = RCAR_GP_PIN(1,  9),      /* A9 */
+               [22] = RCAR_GP_PIN(1, 10),      /* A10 */
+               [23] = RCAR_GP_PIN(1, 11),      /* A11 */
+               [24] = RCAR_GP_PIN(1, 12),      /* A12 */
+               [25] = RCAR_GP_PIN(1, 13),      /* A13 */
+               [26] = RCAR_GP_PIN(1, 14),      /* A14 */
+               [27] = RCAR_GP_PIN(1, 15),      /* A15 */
+               [28] = RCAR_GP_PIN(1, 16),      /* A16 */
+               [29] = RCAR_GP_PIN(1, 17),      /* A17 */
+               [30] = RCAR_GP_PIN(1, 18),      /* A18 */
+               [31] = RCAR_GP_PIN(1, 19),      /* A19 */
+       } },
+       { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) {
+               [ 0] = RCAR_GP_PIN(1, 28),      /* CLKOUT */
+               [ 1] = RCAR_GP_PIN(1, 20),      /* CS0_N */
+               [ 2] = RCAR_GP_PIN(1, 21),      /* CS1_N */
+               [ 3] = RCAR_GP_PIN(1, 22),      /* BS_N */
+               [ 4] = RCAR_GP_PIN(1, 23),      /* RD_N */
+               [ 5] = RCAR_GP_PIN(1, 24),      /* RD_WR_N */
+               [ 6] = RCAR_GP_PIN(1, 25),      /* WE0_N */
+               [ 7] = RCAR_GP_PIN(1, 26),      /* WE1_N */
+               [ 8] = RCAR_GP_PIN(1, 27),      /* EX_WAIT0_A */
+               [ 9] = PIN_NUMBER('C', 1),      /* PRESETOUT# */
+               [10] = RCAR_GP_PIN(0,  0),      /* D0 */
+               [11] = RCAR_GP_PIN(0,  1),      /* D1 */
+               [12] = RCAR_GP_PIN(0,  2),      /* D2 */
+               [13] = RCAR_GP_PIN(0,  3),      /* D3 */
+               [14] = RCAR_GP_PIN(0,  4),      /* D4 */
+               [15] = RCAR_GP_PIN(0,  5),      /* D5 */
+               [16] = RCAR_GP_PIN(0,  6),      /* D6 */
+               [17] = RCAR_GP_PIN(0,  7),      /* D7 */
+               [18] = RCAR_GP_PIN(0,  8),      /* D8 */
+               [19] = RCAR_GP_PIN(0,  9),      /* D9 */
+               [20] = RCAR_GP_PIN(0, 10),      /* D10 */
+               [21] = RCAR_GP_PIN(0, 11),      /* D11 */
+               [22] = RCAR_GP_PIN(0, 12),      /* D12 */
+               [23] = RCAR_GP_PIN(0, 13),      /* D13 */
+               [24] = RCAR_GP_PIN(0, 14),      /* D14 */
+               [25] = RCAR_GP_PIN(0, 15),      /* D15 */
+               [26] = RCAR_GP_PIN(7,  0),      /* AVS1 */
+               [27] = RCAR_GP_PIN(7,  1),      /* AVS2 */
+               [28] = RCAR_GP_PIN(7,  2),      /* HDMI0_CEC */
+               [29] = RCAR_GP_PIN(7,  3),      /* GP7_03 */
+               [30] = PIN_A_NUMBER('P', 7),    /* DU_DOTCLKIN0 */
+               [31] = PIN_A_NUMBER('P', 8),    /* DU_DOTCLKIN1 */
+       } },
+       { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) {
+               [ 0] = PIN_A_NUMBER('R', 8),    /* DU_DOTCLKIN2 */
+               [ 1] = PIN_NONE,
+               [ 2] = PIN_A_NUMBER('D', 38),   /* FSCLKST */
+               [ 3] = PIN_A_NUMBER('D', 39),   /* EXTALR*/
+               [ 4] = PIN_A_NUMBER('R', 26),   /* TRST# */
+               [ 5] = PIN_A_NUMBER('T', 27),   /* TCK */
+               [ 6] = PIN_A_NUMBER('R', 30),   /* TMS */
+               [ 7] = PIN_A_NUMBER('R', 29),   /* TDI */
+               [ 8] = PIN_NONE,
+               [ 9] = PIN_A_NUMBER('T', 30),   /* ASEBRK */
+               [10] = RCAR_GP_PIN(3,  0),      /* SD0_CLK */
+               [11] = RCAR_GP_PIN(3,  1),      /* SD0_CMD */
+               [12] = RCAR_GP_PIN(3,  2),      /* SD0_DAT0 */
+               [13] = RCAR_GP_PIN(3,  3),      /* SD0_DAT1 */
+               [14] = RCAR_GP_PIN(3,  4),      /* SD0_DAT2 */
+               [15] = RCAR_GP_PIN(3,  5),      /* SD0_DAT3 */
+               [16] = RCAR_GP_PIN(3,  6),      /* SD1_CLK */
+               [17] = RCAR_GP_PIN(3,  7),      /* SD1_CMD */
+               [18] = RCAR_GP_PIN(3,  8),      /* SD1_DAT0 */
+               [19] = RCAR_GP_PIN(3,  9),      /* SD1_DAT1 */
+               [20] = RCAR_GP_PIN(3, 10),      /* SD1_DAT2 */
+               [21] = RCAR_GP_PIN(3, 11),      /* SD1_DAT3 */
+               [22] = RCAR_GP_PIN(4,  0),      /* SD2_CLK */
+               [23] = RCAR_GP_PIN(4,  1),      /* SD2_CMD */
+               [24] = RCAR_GP_PIN(4,  2),      /* SD2_DAT0 */
+               [25] = RCAR_GP_PIN(4,  3),      /* SD2_DAT1 */
+               [26] = RCAR_GP_PIN(4,  4),      /* SD2_DAT2 */
+               [27] = RCAR_GP_PIN(4,  5),      /* SD2_DAT3 */
+               [28] = RCAR_GP_PIN(4,  6),      /* SD2_DS */
+               [29] = RCAR_GP_PIN(4,  7),      /* SD3_CLK */
+               [30] = RCAR_GP_PIN(4,  8),      /* SD3_CMD */
+               [31] = RCAR_GP_PIN(4,  9),      /* SD3_DAT0 */
+       } },
+       { PINMUX_BIAS_REG("PUEN4", 0xe6060410, "PUD4", 0xe6060450) {
+               [ 0] = RCAR_GP_PIN(4, 10),      /* SD3_DAT1 */
+               [ 1] = RCAR_GP_PIN(4, 11),      /* SD3_DAT2 */
+               [ 2] = RCAR_GP_PIN(4, 12),      /* SD3_DAT3 */
+               [ 3] = RCAR_GP_PIN(4, 13),      /* SD3_DAT4 */
+               [ 4] = RCAR_GP_PIN(4, 14),      /* SD3_DAT5 */
+               [ 5] = RCAR_GP_PIN(4, 15),      /* SD3_DAT6 */
+               [ 6] = RCAR_GP_PIN(4, 16),      /* SD3_DAT7 */
+               [ 7] = RCAR_GP_PIN(4, 17),      /* SD3_DS */
+               [ 8] = RCAR_GP_PIN(3, 12),      /* SD0_CD */
+               [ 9] = RCAR_GP_PIN(3, 13),      /* SD0_WP */
+               [10] = RCAR_GP_PIN(3, 14),      /* SD1_CD */
+               [11] = RCAR_GP_PIN(3, 15),      /* SD1_WP */
+               [12] = RCAR_GP_PIN(5,  0),      /* SCK0 */
+               [13] = RCAR_GP_PIN(5,  1),      /* RX0 */
+               [14] = RCAR_GP_PIN(5,  2),      /* TX0 */
+               [15] = RCAR_GP_PIN(5,  3),      /* CTS0_N */
+               [16] = RCAR_GP_PIN(5,  4),      /* RTS0_N */
+               [17] = RCAR_GP_PIN(5,  5),      /* RX1_A */
+               [18] = RCAR_GP_PIN(5,  6),      /* TX1_A */
+               [19] = RCAR_GP_PIN(5,  7),      /* CTS1_N */
+               [20] = RCAR_GP_PIN(5,  8),      /* RTS1_N */
+               [21] = RCAR_GP_PIN(5,  9),      /* SCK2 */
+               [22] = RCAR_GP_PIN(5, 10),      /* TX2_A */
+               [23] = RCAR_GP_PIN(5, 11),      /* RX2_A */
+               [24] = RCAR_GP_PIN(5, 12),      /* HSCK0 */
+               [25] = RCAR_GP_PIN(5, 13),      /* HRX0 */
+               [26] = RCAR_GP_PIN(5, 14),      /* HTX0 */
+               [27] = RCAR_GP_PIN(5, 15),      /* HCTS0_N */
+               [28] = RCAR_GP_PIN(5, 16),      /* HRTS0_N */
+               [29] = RCAR_GP_PIN(5, 17),      /* MSIOF0_SCK */
+               [30] = RCAR_GP_PIN(5, 18),      /* MSIOF0_SYNC */
+               [31] = RCAR_GP_PIN(5, 19),      /* MSIOF0_SS1 */
+       } },
+       { PINMUX_BIAS_REG("PUEN5", 0xe6060414, "PUD5", 0xe6060454) {
+               [ 0] = RCAR_GP_PIN(5, 20),      /* MSIOF0_TXD */
+               [ 1] = RCAR_GP_PIN(5, 21),      /* MSIOF0_SS2 */
+               [ 2] = RCAR_GP_PIN(5, 22),      /* MSIOF0_RXD */
+               [ 3] = RCAR_GP_PIN(5, 23),      /* MLB_CLK */
+               [ 4] = RCAR_GP_PIN(5, 24),      /* MLB_SIG */
+               [ 5] = RCAR_GP_PIN(5, 25),      /* MLB_DAT */
+               [ 6] = PIN_NUMBER('H', 37),     /* MLB_REF */
+               [ 7] = RCAR_GP_PIN(6,  0),      /* SSI_SCK01239 */
+               [ 8] = RCAR_GP_PIN(6,  1),      /* SSI_WS01239 */
+               [ 9] = RCAR_GP_PIN(6,  2),      /* SSI_SDATA0 */
+               [10] = RCAR_GP_PIN(6,  3),      /* SSI_SDATA1_A */
+               [11] = RCAR_GP_PIN(6,  4),      /* SSI_SDATA2_A */
+               [12] = RCAR_GP_PIN(6,  5),      /* SSI_SCK349 */
+               [13] = RCAR_GP_PIN(6,  6),      /* SSI_WS349 */
+               [14] = RCAR_GP_PIN(6,  7),      /* SSI_SDATA3 */
+               [15] = RCAR_GP_PIN(6,  8),      /* SSI_SCK4 */
+               [16] = RCAR_GP_PIN(6,  9),      /* SSI_WS4 */
+               [17] = RCAR_GP_PIN(6, 10),      /* SSI_SDATA4 */
+               [18] = RCAR_GP_PIN(6, 11),      /* SSI_SCK5 */
+               [19] = RCAR_GP_PIN(6, 12),      /* SSI_WS5 */
+               [20] = RCAR_GP_PIN(6, 13),      /* SSI_SDATA5 */
+               [21] = RCAR_GP_PIN(6, 14),      /* SSI_SCK6 */
+               [22] = RCAR_GP_PIN(6, 15),      /* SSI_WS6 */
+               [23] = RCAR_GP_PIN(6, 16),      /* SSI_SDATA6 */
+               [24] = RCAR_GP_PIN(6, 17),      /* SSI_SCK78 */
+               [25] = RCAR_GP_PIN(6, 18),      /* SSI_WS78 */
+               [26] = RCAR_GP_PIN(6, 19),      /* SSI_SDATA7 */
+               [27] = RCAR_GP_PIN(6, 20),      /* SSI_SDATA8 */
+               [28] = RCAR_GP_PIN(6, 21),      /* SSI_SDATA9_A */
+               [29] = RCAR_GP_PIN(6, 22),      /* AUDIO_CLKA_A */
+               [30] = RCAR_GP_PIN(6, 23),      /* AUDIO_CLKB_B */
+               [31] = RCAR_GP_PIN(6, 24),      /* USB0_PWEN */
+       } },
+       { PINMUX_BIAS_REG("PUEN6", 0xe6060418, "PUD6", 0xe6060458) {
+               [ 0] = RCAR_GP_PIN(6, 25),      /* USB0_OVC */
+               [ 1] = RCAR_GP_PIN(6, 26),      /* USB1_PWEN */
+               [ 2] = RCAR_GP_PIN(6, 27),      /* USB1_OVC */
+               [ 3] = RCAR_GP_PIN(6, 28),      /* USB30_PWEN */
+               [ 4] = RCAR_GP_PIN(6, 29),      /* USB30_OVC */
+               [ 5] = RCAR_GP_PIN(6, 30),      /* GP6_30 */
+               [ 6] = RCAR_GP_PIN(6, 31),      /* GP6_31 */
+               [ 7] = PIN_NONE,
+               [ 8] = PIN_NONE,
+               [ 9] = PIN_NONE,
+               [10] = PIN_NONE,
+               [11] = PIN_NONE,
+               [12] = PIN_NONE,
+               [13] = PIN_NONE,
+               [14] = PIN_NONE,
+               [15] = PIN_NONE,
+               [16] = PIN_NONE,
+               [17] = PIN_NONE,
+               [18] = PIN_NONE,
+               [19] = PIN_NONE,
+               [20] = PIN_NONE,
+               [21] = PIN_NONE,
+               [22] = PIN_NONE,
+               [23] = PIN_NONE,
+               [24] = PIN_NONE,
+               [25] = PIN_NONE,
+               [26] = PIN_NONE,
+               [27] = PIN_NONE,
+               [28] = PIN_NONE,
+               [29] = PIN_NONE,
+               [30] = PIN_NONE,
+               [31] = PIN_NONE,
+       } },
+       { /* sentinel */ },
 };
 
 static unsigned int r8a7796_pinmux_get_bias(struct sh_pfc *pfc,
                                            unsigned int pin)
 {
-       const struct sh_pfc_bias_info *info;
-       u32 reg;
-       u32 bit;
+       const struct pinmux_bias_reg *reg;
+       unsigned int bit;
 
-       info = sh_pfc_pin_to_bias_info(bias_info, ARRAY_SIZE(bias_info), pin);
-       if (!info)
+       reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit);
+       if (!reg)
                return PIN_CONFIG_BIAS_DISABLE;
 
-       reg = info->reg;
-       bit = BIT(info->bit);
-
-       if (!(sh_pfc_read_reg(pfc, PUEN + reg, 32) & bit))
+       if (!(sh_pfc_read(pfc, reg->puen) & BIT(bit)))
                return PIN_CONFIG_BIAS_DISABLE;
-       else if (sh_pfc_read_reg(pfc, PUD + reg, 32) & bit)
+       else if (sh_pfc_read(pfc, reg->pud) & BIT(bit))
                return PIN_CONFIG_BIAS_PULL_UP;
        else
                return PIN_CONFIG_BIAS_PULL_DOWN;
@@ -5676,28 +6111,24 @@ static unsigned int r8a7796_pinmux_get_bias(struct sh_pfc *pfc,
 static void r8a7796_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,
                                   unsigned int bias)
 {
-       const struct sh_pfc_bias_info *info;
+       const struct pinmux_bias_reg *reg;
        u32 enable, updown;
-       u32 reg;
-       u32 bit;
+       unsigned int bit;
 
-       info = sh_pfc_pin_to_bias_info(bias_info, ARRAY_SIZE(bias_info), pin);
-       if (!info)
+       reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit);
+       if (!reg)
                return;
 
-       reg = info->reg;
-       bit = BIT(info->bit);
-
-       enable = sh_pfc_read_reg(pfc, PUEN + reg, 32) & ~bit;
+       enable = sh_pfc_read(pfc, reg->puen) & ~BIT(bit);
        if (bias != PIN_CONFIG_BIAS_DISABLE)
-               enable |= bit;
+               enable |= BIT(bit);
 
-       updown = sh_pfc_read_reg(pfc, PUD + reg, 32) & ~bit;
+       updown = sh_pfc_read(pfc, reg->pud) & ~BIT(bit);
        if (bias == PIN_CONFIG_BIAS_PULL_UP)
-               updown |= bit;
+               updown |= BIT(bit);
 
-       sh_pfc_write_reg(pfc, PUD + reg, 32, updown);
-       sh_pfc_write_reg(pfc, PUEN + reg, 32, enable);
+       sh_pfc_write(pfc, reg->pud, updown);
+       sh_pfc_write(pfc, reg->puen, enable);
 }
 
 static const struct sh_pfc_soc_operations r8a7796_pinmux_ops = {
@@ -5722,6 +6153,8 @@ const struct sh_pfc_soc_info r8a7796_pinmux_info = {
 
        .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),