Merge remote-tracking branch 'asoc/fix/wm0010' into asoc-linus
[firefly-linux-kernel-4.4.55.git] / drivers / pinctrl / sh-pfc / pfc-sh7720.c
index 10872ed688a6662a729760bb994377b6e3c936ea..52e9f6be665f11859d7dd114df6eedde32dec374 100644 (file)
@@ -262,7 +262,7 @@ enum {
        PINMUX_MARK_END,
 };
 
-static pinmux_enum_t pinmux_data[] = {
+static const pinmux_enum_t pinmux_data[] = {
        /* PTA GPIO */
        PINMUX_DATA(PTA7_DATA, PTA7_IN, PTA7_OUT, PTA7_IN_PU),
        PINMUX_DATA(PTA6_DATA, PTA6_IN, PTA6_OUT, PTA6_IN_PU),
@@ -606,7 +606,7 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(SIM_CLK_MARK, PSELD_1_0_10, PTV0_FN),
 };
 
-static struct pinmux_gpio pinmux_gpios[] = {
+static struct sh_pfc_pin pinmux_pins[] = {
        /* PTA */
        PINMUX_GPIO(GPIO_PTA7, PTA7_DATA),
        PINMUX_GPIO(GPIO_PTA6, PTA6_DATA),
@@ -759,202 +759,205 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PTV2, PTV2_DATA),
        PINMUX_GPIO(GPIO_PTV1, PTV1_DATA),
        PINMUX_GPIO(GPIO_PTV0, PTV0_DATA),
+};
+
+#define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins)
 
+static const struct pinmux_func pinmux_func_gpios[] = {
        /* BSC */
-       PINMUX_GPIO(GPIO_FN_D31, D31_MARK),
-       PINMUX_GPIO(GPIO_FN_D30, D30_MARK),
-       PINMUX_GPIO(GPIO_FN_D29, D29_MARK),
-       PINMUX_GPIO(GPIO_FN_D28, D28_MARK),
-       PINMUX_GPIO(GPIO_FN_D27, D27_MARK),
-       PINMUX_GPIO(GPIO_FN_D26, D26_MARK),
-       PINMUX_GPIO(GPIO_FN_D25, D25_MARK),
-       PINMUX_GPIO(GPIO_FN_D24, D24_MARK),
-       PINMUX_GPIO(GPIO_FN_D23, D23_MARK),
-       PINMUX_GPIO(GPIO_FN_D22, D22_MARK),
-       PINMUX_GPIO(GPIO_FN_D21, D21_MARK),
-       PINMUX_GPIO(GPIO_FN_D20, D20_MARK),
-       PINMUX_GPIO(GPIO_FN_D19, D19_MARK),
-       PINMUX_GPIO(GPIO_FN_D18, D18_MARK),
-       PINMUX_GPIO(GPIO_FN_D17, D17_MARK),
-       PINMUX_GPIO(GPIO_FN_D16, D16_MARK),
-       PINMUX_GPIO(GPIO_FN_IOIS16, IOIS16_MARK),
-       PINMUX_GPIO(GPIO_FN_RAS, RAS_MARK),
-       PINMUX_GPIO(GPIO_FN_CAS, CAS_MARK),
-       PINMUX_GPIO(GPIO_FN_CKE, CKE_MARK),
-       PINMUX_GPIO(GPIO_FN_CS5B_CE1A, CS5B_CE1A_MARK),
-       PINMUX_GPIO(GPIO_FN_CS6B_CE1B, CS6B_CE1B_MARK),
-       PINMUX_GPIO(GPIO_FN_A25, A25_MARK),
-       PINMUX_GPIO(GPIO_FN_A24, A24_MARK),
-       PINMUX_GPIO(GPIO_FN_A23, A23_MARK),
-       PINMUX_GPIO(GPIO_FN_A22, A22_MARK),
-       PINMUX_GPIO(GPIO_FN_A21, A21_MARK),
-       PINMUX_GPIO(GPIO_FN_A20, A20_MARK),
-       PINMUX_GPIO(GPIO_FN_A19, A19_MARK),
-       PINMUX_GPIO(GPIO_FN_A0, A0_MARK),
-       PINMUX_GPIO(GPIO_FN_REFOUT, REFOUT_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQOUT, IRQOUT_MARK),
+       GPIO_FN(D31),
+       GPIO_FN(D30),
+       GPIO_FN(D29),
+       GPIO_FN(D28),
+       GPIO_FN(D27),
+       GPIO_FN(D26),
+       GPIO_FN(D25),
+       GPIO_FN(D24),
+       GPIO_FN(D23),
+       GPIO_FN(D22),
+       GPIO_FN(D21),
+       GPIO_FN(D20),
+       GPIO_FN(D19),
+       GPIO_FN(D18),
+       GPIO_FN(D17),
+       GPIO_FN(D16),
+       GPIO_FN(IOIS16),
+       GPIO_FN(RAS),
+       GPIO_FN(CAS),
+       GPIO_FN(CKE),
+       GPIO_FN(CS5B_CE1A),
+       GPIO_FN(CS6B_CE1B),
+       GPIO_FN(A25),
+       GPIO_FN(A24),
+       GPIO_FN(A23),
+       GPIO_FN(A22),
+       GPIO_FN(A21),
+       GPIO_FN(A20),
+       GPIO_FN(A19),
+       GPIO_FN(A0),
+       GPIO_FN(REFOUT),
+       GPIO_FN(IRQOUT),
 
        /* LCDC */
-       PINMUX_GPIO(GPIO_FN_LCD_DATA15, LCD_DATA15_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA14, LCD_DATA14_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA13, LCD_DATA13_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA12, LCD_DATA12_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA11, LCD_DATA11_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA10, LCD_DATA10_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA9, LCD_DATA9_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA8, LCD_DATA8_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA7, LCD_DATA7_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA6, LCD_DATA6_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA5, LCD_DATA5_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA4, LCD_DATA4_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA3, LCD_DATA3_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA2, LCD_DATA2_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA1, LCD_DATA1_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA0, LCD_DATA0_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_M_DISP, LCD_M_DISP_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_CL1, LCD_CL1_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_CL2, LCD_CL2_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DON, LCD_DON_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_FLM, LCD_FLM_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_VEPWC, LCD_VEPWC_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_VCPWC, LCD_VCPWC_MARK),
+       GPIO_FN(LCD_DATA15),
+       GPIO_FN(LCD_DATA14),
+       GPIO_FN(LCD_DATA13),
+       GPIO_FN(LCD_DATA12),
+       GPIO_FN(LCD_DATA11),
+       GPIO_FN(LCD_DATA10),
+       GPIO_FN(LCD_DATA9),
+       GPIO_FN(LCD_DATA8),
+       GPIO_FN(LCD_DATA7),
+       GPIO_FN(LCD_DATA6),
+       GPIO_FN(LCD_DATA5),
+       GPIO_FN(LCD_DATA4),
+       GPIO_FN(LCD_DATA3),
+       GPIO_FN(LCD_DATA2),
+       GPIO_FN(LCD_DATA1),
+       GPIO_FN(LCD_DATA0),
+       GPIO_FN(LCD_M_DISP),
+       GPIO_FN(LCD_CL1),
+       GPIO_FN(LCD_CL2),
+       GPIO_FN(LCD_DON),
+       GPIO_FN(LCD_FLM),
+       GPIO_FN(LCD_VEPWC),
+       GPIO_FN(LCD_VCPWC),
 
        /* AFEIF */
-       PINMUX_GPIO(GPIO_FN_AFE_RXIN, AFE_RXIN_MARK),
-       PINMUX_GPIO(GPIO_FN_AFE_RDET, AFE_RDET_MARK),
-       PINMUX_GPIO(GPIO_FN_AFE_FS, AFE_FS_MARK),
-       PINMUX_GPIO(GPIO_FN_AFE_TXOUT, AFE_TXOUT_MARK),
-       PINMUX_GPIO(GPIO_FN_AFE_SCLK, AFE_SCLK_MARK),
-       PINMUX_GPIO(GPIO_FN_AFE_RLYCNT, AFE_RLYCNT_MARK),
-       PINMUX_GPIO(GPIO_FN_AFE_HC1, AFE_HC1_MARK),
+       GPIO_FN(AFE_RXIN),
+       GPIO_FN(AFE_RDET),
+       GPIO_FN(AFE_FS),
+       GPIO_FN(AFE_TXOUT),
+       GPIO_FN(AFE_SCLK),
+       GPIO_FN(AFE_RLYCNT),
+       GPIO_FN(AFE_HC1),
 
        /* IIC */
-       PINMUX_GPIO(GPIO_FN_IIC_SCL, IIC_SCL_MARK),
-       PINMUX_GPIO(GPIO_FN_IIC_SDA, IIC_SDA_MARK),
+       GPIO_FN(IIC_SCL),
+       GPIO_FN(IIC_SDA),
 
        /* DAC */
-       PINMUX_GPIO(GPIO_FN_DA1, DA1_MARK),
-       PINMUX_GPIO(GPIO_FN_DA0, DA0_MARK),
+       GPIO_FN(DA1),
+       GPIO_FN(DA0),
 
        /* ADC */
-       PINMUX_GPIO(GPIO_FN_AN3, AN3_MARK),
-       PINMUX_GPIO(GPIO_FN_AN2, AN2_MARK),
-       PINMUX_GPIO(GPIO_FN_AN1, AN1_MARK),
-       PINMUX_GPIO(GPIO_FN_AN0, AN0_MARK),
-       PINMUX_GPIO(GPIO_FN_ADTRG, ADTRG_MARK),
+       GPIO_FN(AN3),
+       GPIO_FN(AN2),
+       GPIO_FN(AN1),
+       GPIO_FN(AN0),
+       GPIO_FN(ADTRG),
 
        /* USB */
-       PINMUX_GPIO(GPIO_FN_USB1D_RCV, USB1D_RCV_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_TXSE0, USB1D_TXSE0_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_TXDPLS, USB1D_TXDPLS_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_DMNS, USB1D_DMNS_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_DPLS, USB1D_DPLS_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_SPEED, USB1D_SPEED_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_TXENL, USB1D_TXENL_MARK),
-
-       PINMUX_GPIO(GPIO_FN_USB2_PWR_EN, USB2_PWR_EN_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1_PWR_EN_USBF_UPLUP,
-                   USB1_PWR_EN_USBF_UPLUP_MARK),
-       PINMUX_GPIO(GPIO_FN_USB1D_SUSPEND, USB1D_SUSPEND_MARK),
+       GPIO_FN(USB1D_RCV),
+       GPIO_FN(USB1D_TXSE0),
+       GPIO_FN(USB1D_TXDPLS),
+       GPIO_FN(USB1D_DMNS),
+       GPIO_FN(USB1D_DPLS),
+       GPIO_FN(USB1D_SPEED),
+       GPIO_FN(USB1D_TXENL),
+
+       GPIO_FN(USB2_PWR_EN),
+       GPIO_FN(USB1_PWR_EN_USBF_UPLUP),
+       GPIO_FN(USB1D_SUSPEND),
 
        /* INTC */
-       PINMUX_GPIO(GPIO_FN_IRQ5, IRQ5_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ4, IRQ4_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ3_IRL3, IRQ3_IRL3_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ2_IRL2, IRQ2_IRL2_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ1_IRL1, IRQ1_IRL1_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ0_IRL0, IRQ0_IRL0_MARK),
+       GPIO_FN(IRQ5),
+       GPIO_FN(IRQ4),
+       GPIO_FN(IRQ3_IRL3),
+       GPIO_FN(IRQ2_IRL2),
+       GPIO_FN(IRQ1_IRL1),
+       GPIO_FN(IRQ0_IRL0),
 
        /* PCC */
-       PINMUX_GPIO(GPIO_FN_PCC_REG, PCC_REG_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_DRV, PCC_DRV_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_BVD2, PCC_BVD2_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_BVD1, PCC_BVD1_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_CD2, PCC_CD2_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_CD1, PCC_CD1_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_RESET, PCC_RESET_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_RDY, PCC_RDY_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_VS2, PCC_VS2_MARK),
-       PINMUX_GPIO(GPIO_FN_PCC_VS1, PCC_VS1_MARK),
+       GPIO_FN(PCC_REG),
+       GPIO_FN(PCC_DRV),
+       GPIO_FN(PCC_BVD2),
+       GPIO_FN(PCC_BVD1),
+       GPIO_FN(PCC_CD2),
+       GPIO_FN(PCC_CD1),
+       GPIO_FN(PCC_RESET),
+       GPIO_FN(PCC_RDY),
+       GPIO_FN(PCC_VS2),
+       GPIO_FN(PCC_VS1),
 
        /* HUDI */
-       PINMUX_GPIO(GPIO_FN_AUDATA3, AUDATA3_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDATA2, AUDATA2_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDATA1, AUDATA1_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDATA0, AUDATA0_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDCK, AUDCK_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDSYNC, AUDSYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_ASEBRKAK, ASEBRKAK_MARK),
-       PINMUX_GPIO(GPIO_FN_TRST, TRST_MARK),
-       PINMUX_GPIO(GPIO_FN_TMS, TMS_MARK),
-       PINMUX_GPIO(GPIO_FN_TDO, TDO_MARK),
-       PINMUX_GPIO(GPIO_FN_TDI, TDI_MARK),
-       PINMUX_GPIO(GPIO_FN_TCK, TCK_MARK),
+       GPIO_FN(AUDATA3),
+       GPIO_FN(AUDATA2),
+       GPIO_FN(AUDATA1),
+       GPIO_FN(AUDATA0),
+       GPIO_FN(AUDCK),
+       GPIO_FN(AUDSYNC),
+       GPIO_FN(ASEBRKAK),
+       GPIO_FN(TRST),
+       GPIO_FN(TMS),
+       GPIO_FN(TDO),
+       GPIO_FN(TDI),
+       GPIO_FN(TCK),
 
        /* DMAC */
-       PINMUX_GPIO(GPIO_FN_DACK1, DACK1_MARK),
-       PINMUX_GPIO(GPIO_FN_DREQ1, DREQ1_MARK),
-       PINMUX_GPIO(GPIO_FN_DACK0, DACK0_MARK),
-       PINMUX_GPIO(GPIO_FN_DREQ0, DREQ0_MARK),
-       PINMUX_GPIO(GPIO_FN_TEND1, TEND1_MARK),
-       PINMUX_GPIO(GPIO_FN_TEND0, TEND0_MARK),
+       GPIO_FN(DACK1),
+       GPIO_FN(DREQ1),
+       GPIO_FN(DACK0),
+       GPIO_FN(DREQ0),
+       GPIO_FN(TEND1),
+       GPIO_FN(TEND0),
 
        /* SIOF0 */
-       PINMUX_GPIO(GPIO_FN_SIOF0_SYNC, SIOF0_SYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF0_MCLK, SIOF0_MCLK_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF0_TXD, SIOF0_TXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF0_RXD, SIOF0_RXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF0_SCK, SIOF0_SCK_MARK),
+       GPIO_FN(SIOF0_SYNC),
+       GPIO_FN(SIOF0_MCLK),
+       GPIO_FN(SIOF0_TXD),
+       GPIO_FN(SIOF0_RXD),
+       GPIO_FN(SIOF0_SCK),
 
        /* SIOF1 */
-       PINMUX_GPIO(GPIO_FN_SIOF1_SYNC, SIOF1_SYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF1_MCLK, SIOF1_MCLK_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF1_TXD, SIOF1_TXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF1_RXD, SIOF1_RXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOF1_SCK, SIOF1_SCK_MARK),
+       GPIO_FN(SIOF1_SYNC),
+       GPIO_FN(SIOF1_MCLK),
+       GPIO_FN(SIOF1_TXD),
+       GPIO_FN(SIOF1_RXD),
+       GPIO_FN(SIOF1_SCK),
 
        /* SCIF0 */
-       PINMUX_GPIO(GPIO_FN_SCIF0_TXD, SCIF0_TXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF0_RXD, SCIF0_RXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF0_RTS, SCIF0_RTS_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF0_CTS, SCIF0_CTS_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF0_SCK, SCIF0_SCK_MARK),
+       GPIO_FN(SCIF0_TXD),
+       GPIO_FN(SCIF0_RXD),
+       GPIO_FN(SCIF0_RTS),
+       GPIO_FN(SCIF0_CTS),
+       GPIO_FN(SCIF0_SCK),
 
        /* SCIF1 */
-       PINMUX_GPIO(GPIO_FN_SCIF1_TXD, SCIF1_TXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF1_RXD, SCIF1_RXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF1_RTS, SCIF1_RTS_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF1_CTS, SCIF1_CTS_MARK),
-       PINMUX_GPIO(GPIO_FN_SCIF1_SCK, SCIF1_SCK_MARK),
+       GPIO_FN(SCIF1_TXD),
+       GPIO_FN(SCIF1_RXD),
+       GPIO_FN(SCIF1_RTS),
+       GPIO_FN(SCIF1_CTS),
+       GPIO_FN(SCIF1_SCK),
 
        /* TPU */
-       PINMUX_GPIO(GPIO_FN_TPU_TO1, TPU_TO1_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TO0, TPU_TO0_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TI3B, TPU_TI3B_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TI3A, TPU_TI3A_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TI2B, TPU_TI2B_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TI2A, TPU_TI2A_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TO3, TPU_TO3_MARK),
-       PINMUX_GPIO(GPIO_FN_TPU_TO2, TPU_TO2_MARK),
+       GPIO_FN(TPU_TO1),
+       GPIO_FN(TPU_TO0),
+       GPIO_FN(TPU_TI3B),
+       GPIO_FN(TPU_TI3A),
+       GPIO_FN(TPU_TI2B),
+       GPIO_FN(TPU_TI2A),
+       GPIO_FN(TPU_TO3),
+       GPIO_FN(TPU_TO2),
 
        /* SIM */
-       PINMUX_GPIO(GPIO_FN_SIM_D, SIM_D_MARK),
-       PINMUX_GPIO(GPIO_FN_SIM_CLK, SIM_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_SIM_RST, SIM_RST_MARK),
+       GPIO_FN(SIM_D),
+       GPIO_FN(SIM_CLK),
+       GPIO_FN(SIM_RST),
 
        /* MMC */
-       PINMUX_GPIO(GPIO_FN_MMC_DAT, MMC_DAT_MARK),
-       PINMUX_GPIO(GPIO_FN_MMC_CMD, MMC_CMD_MARK),
-       PINMUX_GPIO(GPIO_FN_MMC_CLK, MMC_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_MMC_VDDON, MMC_VDDON_MARK),
-       PINMUX_GPIO(GPIO_FN_MMC_ODMOD, MMC_ODMOD_MARK),
+       GPIO_FN(MMC_DAT),
+       GPIO_FN(MMC_CMD),
+       GPIO_FN(MMC_CLK),
+       GPIO_FN(MMC_VDDON),
+       GPIO_FN(MMC_ODMOD),
 
        /* SYSC */
-       PINMUX_GPIO(GPIO_FN_STATUS0, STATUS0_MARK),
-       PINMUX_GPIO(GPIO_FN_STATUS1, STATUS1_MARK),
+       GPIO_FN(STATUS0),
+       GPIO_FN(STATUS1),
 };
 
-static struct pinmux_cfg_reg pinmux_config_regs[] = {
+static const struct pinmux_cfg_reg pinmux_config_regs[] = {
        { PINMUX_CFG_REG("PACR", 0xa4050100, 16, 2) {
                PTA7_FN, PTA7_OUT, PTA7_IN_PU, PTA7_IN,
                PTA6_FN, PTA6_OUT, PTA6_IN_PU, PTA6_IN,
@@ -1138,7 +1141,7 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
        {}
 };
 
-static struct pinmux_data_reg pinmux_data_regs[] = {
+static const struct pinmux_data_reg pinmux_data_regs[] = {
        { PINMUX_DATA_REG("PADR", 0xa4050140, 8) {
                PTA7_DATA, PTA6_DATA, PTA5_DATA, PTA4_DATA,
                PTA3_DATA, PTA2_DATA, PTA1_DATA, PTA0_DATA }
@@ -1214,20 +1217,18 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
        { },
 };
 
-struct sh_pfc_soc_info sh7720_pinmux_info = {
+const struct sh_pfc_soc_info sh7720_pinmux_info = {
        .name = "sh7720_pfc",
-       .reserved_id = PINMUX_RESERVED,
-       .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
        .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
        .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
        .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
-       .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
        .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
 
-       .first_gpio = GPIO_PTA7,
-       .last_gpio = GPIO_FN_STATUS1,
+       .pins = pinmux_pins,
+       .nr_pins = ARRAY_SIZE(pinmux_pins),
+       .func_gpios = pinmux_func_gpios,
+       .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),
 
-       .gpios = pinmux_gpios,
        .cfg_regs = pinmux_config_regs,
        .data_regs = pinmux_data_regs,