sandbox: p2sb: Silence compiler warning
[oweals/u-boot.git] / drivers / pinctrl / renesas / pfc-r8a7796.c
index 24fbbf19aa967d81a04ca75253cacf31ee35f8c4..a92c8ad18c178105e8261ca7da2bfb9e2dc76f05 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * R8A7796 processor support - PFC hardware block.
  *
- * Copyright (C) 2016-2017 Renesas Electronics Corp.
+ * Copyright (C) 2016-2019 Renesas Electronics Corp.
  *
  * This file is based on the drivers/pinctrl/sh-pfc/pfc-r8a7795.c
  *
 
 /* GPSR7 */
 #define GPSR7_3                FM(GP7_03)
-#define GPSR7_2                FM(HDMI0_CEC)
+#define GPSR7_2                FM(GP7_02)
 #define GPSR7_1                FM(AVS2)
 #define GPSR7_0                FM(AVS1)
 
 #define IP16_23_20     FM(SSI_SDATA7)          FM(HCTS2_N_B)   FM(MSIOF1_RXD_C)        F_(0, 0)                        F_(0, 0)        FM(TS_SDEN1_A)  FM(STP_ISEN_1_A)        FM(RIF1_D0_A)   FM(RIF3_D0_A)           F_(0, 0)        FM(TCLK2_A)     F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP16_27_24     FM(SSI_SDATA8)          FM(HRTS2_N_B)   FM(MSIOF1_TXD_C)        F_(0, 0)                        F_(0, 0)        FM(TS_SPSYNC1_A)FM(STP_ISSYNC_1_A)      FM(RIF1_D1_A)   FM(RIF3_D1_A)           F_(0, 0)        F_(0, 0)        F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP16_31_28     FM(SSI_SDATA9_A)        FM(HSCK2_B)     FM(MSIOF1_SS1_C)        FM(HSCK1_A)                     FM(SSI_WS1_B)   FM(SCK1)        FM(STP_IVCXO27_1_A)     FM(SCK5_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)
-#define IP17_3_0       FM(AUDIO_CLKA_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)        FM(CC5_OSCOUT)  F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
+#define IP17_3_0       FM(AUDIO_CLKA_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) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP17_7_4       FM(AUDIO_CLKB_B)        FM(SCIF_CLK_A)  F_(0, 0)                F_(0, 0)                        F_(0, 0)        F_(0, 0)        FM(STP_IVCXO27_1_D)     FM(REMOCON_A)   F_(0, 0)                F_(0, 0)        FM(TCLK1_A)     F_(0, 0)        F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0)
 #define IP17_11_8      FM(USB0_PWEN)           F_(0, 0)        F_(0, 0)                FM(SIM0_RST_C)                  F_(0, 0)        FM(TS_SCK1_D)   FM(STP_ISCLK_1_D)       FM(BPFCLK_B)    FM(RIF3_CLK_B)          F_(0, 0)        F_(0, 0)        F_(0, 0)        F_(0, 0) FM(HSCK2_C) F_(0, 0) F_(0, 0)
 #define IP17_15_12     FM(USB0_OVC)            F_(0, 0)        F_(0, 0)                FM(SIM0_D_C)                    F_(0, 0)        FM(TS_SDAT1_D)  FM(STP_ISD_1_D)         F_(0, 0)        FM(RIF3_SYNC_B)         F_(0, 0)        F_(0, 0)        F_(0, 0)        F_(0, 0) FM(HRX2_C) F_(0, 0) F_(0, 0)
@@ -469,7 +469,7 @@ FM(IP16_31_28)      IP16_31_28      FM(IP17_31_28)  IP17_31_28
 #define MOD_SEL0_9_8           FM(SEL_DRIF1_0)         FM(SEL_DRIF1_1)         FM(SEL_DRIF1_2)         F_(0, 0)
 #define MOD_SEL0_7_6           FM(SEL_DRIF0_0)         FM(SEL_DRIF0_1)         FM(SEL_DRIF0_2)         F_(0, 0)
 #define MOD_SEL0_5             FM(SEL_CANFD0_0)        FM(SEL_CANFD0_1)
-#define MOD_SEL0_4_3           FM(SEL_ADG_A_0)         FM(SEL_ADG_A_1)         FM(SEL_ADG_A_2)         FM(SEL_ADG_A_3)
+#define MOD_SEL0_4_3           FM(SEL_ADGA_0)          FM(SEL_ADGA_1)          FM(SEL_ADGA_2)          FM(SEL_ADGA_3)
 
 /* MOD_SEL1 */                 /* 0 */                 /* 1 */                 /* 2 */                 /* 3 */                 /* 4 */                 /* 5 */                 /* 6 */                 /* 7 */
 #define MOD_SEL1_31_30         FM(SEL_TSIF1_0)         FM(SEL_TSIF1_1)         FM(SEL_TSIF1_2)         FM(SEL_TSIF1_3)
@@ -502,12 +502,12 @@ FM(IP16_31_28)    IP16_31_28      FM(IP17_31_28)  IP17_31_28
 #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_NDFC_0)          FM(SEL_NDFC_1)
+#define MOD_SEL2_22            FM(SEL_NDF_0)           FM(SEL_NDF_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)
-#define MOD_SEL2_18            FM(SEL_ADG_B_0)         FM(SEL_ADG_B_1)
-#define MOD_SEL2_17            FM(SEL_ADG_C_0)         FM(SEL_ADG_C_1)
+#define MOD_SEL2_18            FM(SEL_ADGB_0)          FM(SEL_ADGB_1)
+#define MOD_SEL2_17            FM(SEL_ADGC_0)          FM(SEL_ADGC_1)
 #define MOD_SEL2_0             FM(SEL_VIN4_0)          FM(SEL_VIN4_1)
 
 #define PINMUX_MOD_SELS        \
@@ -600,7 +600,7 @@ static const u16 pinmux_data[] = {
        PINMUX_SINGLE(AVS2),
        PINMUX_SINGLE(CLKOUT),
        PINMUX_SINGLE(GP7_03),
-       PINMUX_SINGLE(HDMI0_CEC),
+       PINMUX_SINGLE(GP7_02),
        PINMUX_SINGLE(MSIOF0_RXD),
        PINMUX_SINGLE(MSIOF0_SCK),
        PINMUX_SINGLE(MSIOF0_TXD),
@@ -1024,35 +1024,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_NDFC_1),
+       PINMUX_IPSR_MSEL(IP8_15_12,     NFCE_N_B,               SEL_NDF_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_NDFC_1),
+       PINMUX_IPSR_MSEL(IP8_19_16,     NFWP_N_B,               SEL_NDF_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_NDFC_1),
+       PINMUX_IPSR_MSEL(IP8_23_20,     NFDATA14_B,             SEL_NDF_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_NDFC_1),
+       PINMUX_IPSR_MSEL(IP8_27_24,     NFDATA15_B,             SEL_NDF_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_NDFC_1),
+       PINMUX_IPSR_MSEL(IP8_31_28,     NFRB_N_B,               SEL_NDF_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),
 
@@ -1118,28 +1118,28 @@ 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,     NFDATA14_A,             SEL_NDF_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,    NFDATA15_A,             SEL_NDF_0),
        PINMUX_IPSR_MSEL(IP11_15_12,    SDA2_B,                 SEL_I2C2_1),
 
        PINMUX_IPSR_MSEL(IP11_19_16,    SD1_CD,                 I2C_SEL_0_0),
-       PINMUX_IPSR_PHYS_MSEL(IP11_19_16, NFRB_N_A,             I2C_SEL_0_0,    SEL_NDFC_0),
+       PINMUX_IPSR_PHYS_MSEL(IP11_19_16, NFRB_N_A,             I2C_SEL_0_0,    SEL_NDF_0),
        PINMUX_IPSR_PHYS_MSEL(IP11_19_16, SIM0_CLK_B,           I2C_SEL_0_0,    SEL_SIMCARD_1),
        PINMUX_IPSR_PHYS(IP11_19_16,    SCL0,                   I2C_SEL_0_1),
 
        PINMUX_IPSR_MSEL(IP11_23_20,    SD1_WP,                 I2C_SEL_0_0),
-       PINMUX_IPSR_PHYS_MSEL(IP11_23_20, NFCE_N_A,             I2C_SEL_0_0,    SEL_NDFC_0),
+       PINMUX_IPSR_PHYS_MSEL(IP11_23_20, NFCE_N_A,             I2C_SEL_0_0,    SEL_NDF_0),
        PINMUX_IPSR_PHYS_MSEL(IP11_23_20, SIM0_D_B,             I2C_SEL_0_0,    SEL_SIMCARD_1),
        PINMUX_IPSR_PHYS(IP11_23_20,    SDA0,                   I2C_SEL_0_1),
 
        PINMUX_IPSR_GPSR(IP11_27_24,    SCK0),
        PINMUX_IPSR_MSEL(IP11_27_24,    HSCK1_B,                SEL_HSCIF1_1),
        PINMUX_IPSR_MSEL(IP11_27_24,    MSIOF1_SS2_B,           SEL_MSIOF1_1),
-       PINMUX_IPSR_MSEL(IP11_27_24,    AUDIO_CLKC_B,           SEL_ADG_C_1),
+       PINMUX_IPSR_MSEL(IP11_27_24,    AUDIO_CLKC_B,           SEL_ADGC_1),
        PINMUX_IPSR_MSEL(IP11_27_24,    SDA2_A,                 SEL_I2C2_0),
        PINMUX_IPSR_MSEL(IP11_27_24,    SIM0_RST_B,             SEL_SIMCARD_1),
        PINMUX_IPSR_MSEL(IP11_27_24,    STP_OPWM_0_C,           SEL_SSP1_0_2),
@@ -1172,7 +1172,7 @@ static const u16 pinmux_data[] = {
        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),
+       PINMUX_IPSR_MSEL(IP12_11_8,     AUDIO_CLKA_B,           SEL_ADGA_1),
        PINMUX_IPSR_MSEL(IP12_11_8,     SCL2_A,                 SEL_I2C2_0),
        PINMUX_IPSR_MSEL(IP12_11_8,     STP_IVCXO27_1_C,        SEL_SSP1_1_2),
        PINMUX_IPSR_MSEL(IP12_11_8,     RIF0_SYNC_B,            SEL_DRIF0_1),
@@ -1231,7 +1231,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,     AUDIO_CLKB_A,           SEL_ADGB_0),
        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),
@@ -1277,8 +1277,8 @@ 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_NDFC_0),
-       PINMUX_IPSR_MSEL(IP14_3_0,      AUDIO_CLKA_C,           SEL_ADG_A_2),
+       PINMUX_IPSR_MSEL(IP14_3_0,      NFWP_N_A,               SEL_NDF_0),
+       PINMUX_IPSR_MSEL(IP14_3_0,      AUDIO_CLKA_C,           SEL_ADGA_2),
        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),
@@ -1287,7 +1287,7 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_GPSR(IP14_7_4,      MSIOF0_SS2),
        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,      AUDIO_CLKC_A,           SEL_ADGC_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),
@@ -1415,10 +1415,9 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP16_31_28,    SCK5_A,                 SEL_SCIF5_0),
 
        /* IPSR17 */
-       PINMUX_IPSR_MSEL(IP17_3_0,      AUDIO_CLKA_A,           SEL_ADG_A_0),
-       PINMUX_IPSR_GPSR(IP17_3_0,      CC5_OSCOUT),
+       PINMUX_IPSR_MSEL(IP17_3_0,      AUDIO_CLKA_A,           SEL_ADGA_0),
 
-       PINMUX_IPSR_MSEL(IP17_7_4,      AUDIO_CLKB_B,           SEL_ADG_B_1),
+       PINMUX_IPSR_MSEL(IP17_7_4,      AUDIO_CLKB_B,           SEL_ADGB_1),
        PINMUX_IPSR_MSEL(IP17_7_4,      SCIF_CLK_A,             SEL_SCIF_0),
        PINMUX_IPSR_MSEL(IP17_7_4,      STP_IVCXO27_1_D,        SEL_SSP1_1_3),
        PINMUX_IPSR_MSEL(IP17_7_4,      REMOCON_A,              SEL_REMOCON_0),
@@ -1502,11 +1501,6 @@ static const u16 pinmux_data[] = {
        PINMUX_IPSR_MSEL(IP18_7_4,      FMIN_C,                 SEL_FM_2),
        PINMUX_IPSR_MSEL(IP18_7_4,      FMIN_D,                 SEL_FM_3),
 
-       /* I2C */
-       PINMUX_IPSR_NOGP(0,             I2C_SEL_0_1),
-       PINMUX_IPSR_NOGP(0,             I2C_SEL_3_1),
-       PINMUX_IPSR_NOGP(0,             I2C_SEL_5_1),
-
 /*
  * Static pins can not be muxed between different functions but
  * still need mark entries in the pinmux list. Add each static
@@ -2143,15 +2137,6 @@ 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 */
@@ -4127,8 +4112,8 @@ static const unsigned int vin5_clk_mux[] = {
 };
 
 static const struct {
-       struct sh_pfc_pin_group common[310];
-       struct sh_pfc_pin_group automotive[33];
+       struct sh_pfc_pin_group common[312];
+       struct sh_pfc_pin_group automotive[30];
 } pinmux_groups = {
        .common = {
                SH_PFC_PIN_GROUP(audio_clk_a_a),
@@ -4163,6 +4148,9 @@ static const struct {
                SH_PFC_PIN_GROUP(can0_data_b),
                SH_PFC_PIN_GROUP(can1_data),
                SH_PFC_PIN_GROUP(can_clk),
+               SH_PFC_PIN_GROUP(canfd0_data_a),
+               SH_PFC_PIN_GROUP(canfd0_data_b),
+               SH_PFC_PIN_GROUP(canfd1_data),
                SH_PFC_PIN_GROUP(du_rgb666),
                SH_PFC_PIN_GROUP(du_rgb888),
                SH_PFC_PIN_GROUP(du_clk_out_0),
@@ -4171,7 +4159,6 @@ static const struct {
                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),
@@ -4443,9 +4430,6 @@ static const struct {
                SH_PFC_PIN_GROUP(vin5_clk),
        },
        .automotive = {
-               SH_PFC_PIN_GROUP(canfd0_data_a),
-               SH_PFC_PIN_GROUP(canfd0_data_b),
-               SH_PFC_PIN_GROUP(canfd1_data),
                SH_PFC_PIN_GROUP(drif0_ctrl_a),
                SH_PFC_PIN_GROUP(drif0_data0_a),
                SH_PFC_PIN_GROUP(drif0_data1_a),
@@ -4588,10 +4572,6 @@ 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",
@@ -4985,8 +4965,8 @@ static const char * const vin5_groups[] = {
 };
 
 static const struct {
-       struct sh_pfc_function common[48];
-       struct sh_pfc_function automotive[6];
+       struct sh_pfc_function common[49];
+       struct sh_pfc_function automotive[4];
 } pinmux_functions = {
        .common = {
                SH_PFC_FUNCTION(audio_clk),
@@ -4994,8 +4974,9 @@ static const struct {
                SH_PFC_FUNCTION(can0),
                SH_PFC_FUNCTION(can1),
                SH_PFC_FUNCTION(can_clk),
+               SH_PFC_FUNCTION(canfd0),
+               SH_PFC_FUNCTION(canfd1),
                SH_PFC_FUNCTION(du),
-               SH_PFC_FUNCTION(hdmi0),
                SH_PFC_FUNCTION(hscif0),
                SH_PFC_FUNCTION(hscif1),
                SH_PFC_FUNCTION(hscif2),
@@ -5039,8 +5020,6 @@ static const struct {
                SH_PFC_FUNCTION(vin5),
        },
        .automotive = {
-               SH_PFC_FUNCTION(canfd0),
-               SH_PFC_FUNCTION(canfd1),
                SH_PFC_FUNCTION(drif0),
                SH_PFC_FUNCTION(drif1),
                SH_PFC_FUNCTION(drif2),
@@ -5051,7 +5030,7 @@ static const struct {
 static const struct pinmux_cfg_reg pinmux_config_regs[] = {
 #define F_(x, y)       FN_##y
 #define FM(x)          FN_##x
-       { PINMUX_CFG_REG("GPSR0", 0xe6060100, 32, 1) {
+       { PINMUX_CFG_REG("GPSR0", 0xe6060100, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5083,9 +5062,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_0_3_FN,      GPSR0_3,
                GP_0_2_FN,      GPSR0_2,
                GP_0_1_FN,      GPSR0_1,
-               GP_0_0_FN,      GPSR0_0, }
+               GP_0_0_FN,      GPSR0_0, ))
        },
-       { PINMUX_CFG_REG("GPSR1", 0xe6060104, 32, 1) {
+       { PINMUX_CFG_REG("GPSR1", 0xe6060104, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5117,9 +5096,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_1_3_FN,      GPSR1_3,
                GP_1_2_FN,      GPSR1_2,
                GP_1_1_FN,      GPSR1_1,
-               GP_1_0_FN,      GPSR1_0, }
+               GP_1_0_FN,      GPSR1_0, ))
        },
-       { PINMUX_CFG_REG("GPSR2", 0xe6060108, 32, 1) {
+       { PINMUX_CFG_REG("GPSR2", 0xe6060108, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5151,9 +5130,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_2_3_FN,      GPSR2_3,
                GP_2_2_FN,      GPSR2_2,
                GP_2_1_FN,      GPSR2_1,
-               GP_2_0_FN,      GPSR2_0, }
+               GP_2_0_FN,      GPSR2_0, ))
        },
-       { PINMUX_CFG_REG("GPSR3", 0xe606010c, 32, 1) {
+       { PINMUX_CFG_REG("GPSR3", 0xe606010c, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5185,9 +5164,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_3_3_FN,      GPSR3_3,
                GP_3_2_FN,      GPSR3_2,
                GP_3_1_FN,      GPSR3_1,
-               GP_3_0_FN,      GPSR3_0, }
+               GP_3_0_FN,      GPSR3_0, ))
        },
-       { PINMUX_CFG_REG("GPSR4", 0xe6060110, 32, 1) {
+       { PINMUX_CFG_REG("GPSR4", 0xe6060110, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5219,9 +5198,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_4_3_FN,      GPSR4_3,
                GP_4_2_FN,      GPSR4_2,
                GP_4_1_FN,      GPSR4_1,
-               GP_4_0_FN,      GPSR4_0, }
+               GP_4_0_FN,      GPSR4_0, ))
        },
-       { PINMUX_CFG_REG("GPSR5", 0xe6060114, 32, 1) {
+       { PINMUX_CFG_REG("GPSR5", 0xe6060114, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5253,9 +5232,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_5_3_FN,      GPSR5_3,
                GP_5_2_FN,      GPSR5_2,
                GP_5_1_FN,      GPSR5_1,
-               GP_5_0_FN,      GPSR5_0, }
+               GP_5_0_FN,      GPSR5_0, ))
        },
-       { PINMUX_CFG_REG("GPSR6", 0xe6060118, 32, 1) {
+       { PINMUX_CFG_REG("GPSR6", 0xe6060118, 32, 1, GROUP(
                GP_6_31_FN,     GPSR6_31,
                GP_6_30_FN,     GPSR6_30,
                GP_6_29_FN,     GPSR6_29,
@@ -5287,9 +5266,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_6_3_FN,      GPSR6_3,
                GP_6_2_FN,      GPSR6_2,
                GP_6_1_FN,      GPSR6_1,
-               GP_6_0_FN,      GPSR6_0, }
+               GP_6_0_FN,      GPSR6_0, ))
        },
-       { PINMUX_CFG_REG("GPSR7", 0xe606011c, 32, 1) {
+       { PINMUX_CFG_REG("GPSR7", 0xe606011c, 32, 1, GROUP(
                0, 0,
                0, 0,
                0, 0,
@@ -5321,14 +5300,14 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                GP_7_3_FN, GPSR7_3,
                GP_7_2_FN, GPSR7_2,
                GP_7_1_FN, GPSR7_1,
-               GP_7_0_FN, GPSR7_0, }
+               GP_7_0_FN, GPSR7_0, ))
        },
 #undef F_
 #undef FM
 
 #define F_(x, y)       x,
 #define FM(x)          FN_##x,
-       { PINMUX_CFG_REG("IPSR0", 0xe6060200, 32, 4) {
+       { PINMUX_CFG_REG("IPSR0", 0xe6060200, 32, 4, GROUP(
                IP0_31_28
                IP0_27_24
                IP0_23_20
@@ -5336,9 +5315,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP0_15_12
                IP0_11_8
                IP0_7_4
-               IP0_3_0 }
+               IP0_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR1", 0xe6060204, 32, 4) {
+       { PINMUX_CFG_REG("IPSR1", 0xe6060204, 32, 4, GROUP(
                IP1_31_28
                IP1_27_24
                IP1_23_20
@@ -5346,9 +5325,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP1_15_12
                IP1_11_8
                IP1_7_4
-               IP1_3_0 }
+               IP1_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR2", 0xe6060208, 32, 4) {
+       { PINMUX_CFG_REG("IPSR2", 0xe6060208, 32, 4, GROUP(
                IP2_31_28
                IP2_27_24
                IP2_23_20
@@ -5356,9 +5335,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP2_15_12
                IP2_11_8
                IP2_7_4
-               IP2_3_0 }
+               IP2_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR3", 0xe606020c, 32, 4) {
+       { PINMUX_CFG_REG("IPSR3", 0xe606020c, 32, 4, GROUP(
                IP3_31_28
                IP3_27_24
                IP3_23_20
@@ -5366,9 +5345,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP3_15_12
                IP3_11_8
                IP3_7_4
-               IP3_3_0 }
+               IP3_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR4", 0xe6060210, 32, 4) {
+       { PINMUX_CFG_REG("IPSR4", 0xe6060210, 32, 4, GROUP(
                IP4_31_28
                IP4_27_24
                IP4_23_20
@@ -5376,9 +5355,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP4_15_12
                IP4_11_8
                IP4_7_4
-               IP4_3_0 }
+               IP4_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR5", 0xe6060214, 32, 4) {
+       { PINMUX_CFG_REG("IPSR5", 0xe6060214, 32, 4, GROUP(
                IP5_31_28
                IP5_27_24
                IP5_23_20
@@ -5386,9 +5365,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP5_15_12
                IP5_11_8
                IP5_7_4
-               IP5_3_0 }
+               IP5_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR6", 0xe6060218, 32, 4) {
+       { PINMUX_CFG_REG("IPSR6", 0xe6060218, 32, 4, GROUP(
                IP6_31_28
                IP6_27_24
                IP6_23_20
@@ -5396,9 +5375,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP6_15_12
                IP6_11_8
                IP6_7_4
-               IP6_3_0 }
+               IP6_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR7", 0xe606021c, 32, 4) {
+       { PINMUX_CFG_REG("IPSR7", 0xe606021c, 32, 4, GROUP(
                IP7_31_28
                IP7_27_24
                IP7_23_20
@@ -5406,9 +5385,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                /* IP7_15_12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                IP7_11_8
                IP7_7_4
-               IP7_3_0 }
+               IP7_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR8", 0xe6060220, 32, 4) {
+       { PINMUX_CFG_REG("IPSR8", 0xe6060220, 32, 4, GROUP(
                IP8_31_28
                IP8_27_24
                IP8_23_20
@@ -5416,9 +5395,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP8_15_12
                IP8_11_8
                IP8_7_4
-               IP8_3_0 }
+               IP8_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR9", 0xe6060224, 32, 4) {
+       { PINMUX_CFG_REG("IPSR9", 0xe6060224, 32, 4, GROUP(
                IP9_31_28
                IP9_27_24
                IP9_23_20
@@ -5426,9 +5405,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP9_15_12
                IP9_11_8
                IP9_7_4
-               IP9_3_0 }
+               IP9_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR10", 0xe6060228, 32, 4) {
+       { PINMUX_CFG_REG("IPSR10", 0xe6060228, 32, 4, GROUP(
                IP10_31_28
                IP10_27_24
                IP10_23_20
@@ -5436,9 +5415,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP10_15_12
                IP10_11_8
                IP10_7_4
-               IP10_3_0 }
+               IP10_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR11", 0xe606022c, 32, 4) {
+       { PINMUX_CFG_REG("IPSR11", 0xe606022c, 32, 4, GROUP(
                IP11_31_28
                IP11_27_24
                IP11_23_20
@@ -5446,9 +5425,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP11_15_12
                IP11_11_8
                IP11_7_4
-               IP11_3_0 }
+               IP11_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR12", 0xe6060230, 32, 4) {
+       { PINMUX_CFG_REG("IPSR12", 0xe6060230, 32, 4, GROUP(
                IP12_31_28
                IP12_27_24
                IP12_23_20
@@ -5456,9 +5435,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP12_15_12
                IP12_11_8
                IP12_7_4
-               IP12_3_0 }
+               IP12_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR13", 0xe6060234, 32, 4) {
+       { PINMUX_CFG_REG("IPSR13", 0xe6060234, 32, 4, GROUP(
                IP13_31_28
                IP13_27_24
                IP13_23_20
@@ -5466,9 +5445,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP13_15_12
                IP13_11_8
                IP13_7_4
-               IP13_3_0 }
+               IP13_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR14", 0xe6060238, 32, 4) {
+       { PINMUX_CFG_REG("IPSR14", 0xe6060238, 32, 4, GROUP(
                IP14_31_28
                IP14_27_24
                IP14_23_20
@@ -5476,9 +5455,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP14_15_12
                IP14_11_8
                IP14_7_4
-               IP14_3_0 }
+               IP14_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR15", 0xe606023c, 32, 4) {
+       { PINMUX_CFG_REG("IPSR15", 0xe606023c, 32, 4, GROUP(
                IP15_31_28
                IP15_27_24
                IP15_23_20
@@ -5486,9 +5465,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP15_15_12
                IP15_11_8
                IP15_7_4
-               IP15_3_0 }
+               IP15_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR16", 0xe6060240, 32, 4) {
+       { PINMUX_CFG_REG("IPSR16", 0xe6060240, 32, 4, GROUP(
                IP16_31_28
                IP16_27_24
                IP16_23_20
@@ -5496,9 +5475,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP16_15_12
                IP16_11_8
                IP16_7_4
-               IP16_3_0 }
+               IP16_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR17", 0xe6060244, 32, 4) {
+       { PINMUX_CFG_REG("IPSR17", 0xe6060244, 32, 4, GROUP(
                IP17_31_28
                IP17_27_24
                IP17_23_20
@@ -5506,9 +5485,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                IP17_15_12
                IP17_11_8
                IP17_7_4
-               IP17_3_0 }
+               IP17_3_0 ))
        },
-       { PINMUX_CFG_REG("IPSR18", 0xe6060248, 32, 4) {
+       { PINMUX_CFG_REG("IPSR18", 0xe6060248, 32, 4, GROUP(
                /* IP18_31_28 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                /* IP18_27_24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                /* IP18_23_20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5516,7 +5495,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                /* IP18_15_12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                /* IP18_11_8  */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                IP18_7_4
-               IP18_3_0 }
+               IP18_3_0 ))
        },
 #undef F_
 #undef FM
@@ -5524,8 +5503,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
 #define F_(x, y)       x,
 #define FM(x)          FN_##x,
        { PINMUX_CFG_REG_VAR("MOD_SEL0", 0xe6060500, 32,
-                            3, 2, 3, 1, 1, 1, 1, 1, 2, 1,
-                            1, 2, 1, 1, 1, 2, 2, 1, 2, 3) {
+                            GROUP(3, 2, 3, 1, 1, 1, 1, 1, 2, 1, 1, 2,
+                                  1, 1, 1, 2, 2, 1, 2, 3),
+                            GROUP(
                MOD_SEL0_31_30_29
                MOD_SEL0_28_27
                MOD_SEL0_26_25_24
@@ -5546,11 +5526,12 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                MOD_SEL0_5
                MOD_SEL0_4_3
                /* RESERVED 2, 1, 0 */
-               0, 0, 0, 0, 0, 0, 0, 0 }
+               0, 0, 0, 0, 0, 0, 0, 0 ))
        },
        { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6060504, 32,
-                            2, 3, 1, 2, 3, 1, 1, 2, 1,
-                            2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1) {
+                            GROUP(2, 3, 1, 2, 3, 1, 1, 2, 1, 2, 1, 1,
+                                  1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1),
+                            GROUP(
                MOD_SEL1_31_30
                MOD_SEL1_29_28_27
                MOD_SEL1_26
@@ -5573,11 +5554,12 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                MOD_SEL1_3
                MOD_SEL1_2
                MOD_SEL1_1
-               MOD_SEL1_0 }
+               MOD_SEL1_0 ))
        },
        { PINMUX_CFG_REG_VAR("MOD_SEL2", 0xe6060508, 32,
-                            1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
-                            4, 4, 4, 3, 1) {
+                            GROUP(1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1,
+                                  1, 4, 4, 4, 3, 1),
+                            GROUP(
                MOD_SEL2_31
                MOD_SEL2_30
                MOD_SEL2_29
@@ -5603,7 +5585,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
                0, 0, 0, 0, 0, 0, 0, 0,
                /* RESERVED 3, 2, 1 */
                0, 0, 0, 0, 0, 0, 0, 0,
-               MOD_SEL2_0 }
+               MOD_SEL2_0 ))
        },
        { },
 };
@@ -5724,7 +5706,7 @@ static const struct pinmux_drive_reg pinmux_drive_regs[] = {
                { RCAR_GP_PIN(0, 15),   24, 3 },        /* D15 */
                { RCAR_GP_PIN(7,  0),   20, 3 },        /* AVS1 */
                { RCAR_GP_PIN(7,  1),   16, 3 },        /* AVS2 */
-               { RCAR_GP_PIN(7,  2),   12, 3 },        /* HDMI0_CEC */
+               { RCAR_GP_PIN(7,  2),   12, 3 },        /* GP7_02 */
                { RCAR_GP_PIN(7,  3),    8, 3 },        /* GP7_03 */
                { PIN_A_NUMBER('P', 7),  4, 2 },        /* DU_DOTCLKIN0 */
                { PIN_A_NUMBER('P', 8),  0, 2 },        /* DU_DOTCLKIN1 */
@@ -5858,10 +5840,12 @@ static const struct pinmux_drive_reg pinmux_drive_regs[] = {
 
 enum ioctrl_regs {
        POCCTRL,
+       TDSELCTRL,
 };
 
 static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = {
        [POCCTRL] = { 0xe6060380, },
+       [TDSELCTRL] = { 0xe60603c0, },
        { /* sentinel */ },
 };
 
@@ -5978,7 +5962,7 @@ static const struct pinmux_bias_reg pinmux_bias_regs[] = {
                [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 */
+               [28] = RCAR_GP_PIN(7,  2),      /* GP7_02 */
                [29] = RCAR_GP_PIN(7,  3),      /* GP7_03 */
                [30] = PIN_A_NUMBER('P', 7),    /* DU_DOTCLKIN0 */
                [31] = PIN_A_NUMBER('P', 8),    /* DU_DOTCLKIN1 */