Merge branch 'postmerge' into for-linus
[firefly-linux-kernel-4.4.55.git] / drivers / pinctrl / sh-pfc / pfc-sh7269.c
index b1b5d6d4ad76b29fc9836aa83cefc40b3e01f654..4c401a74acd50ecc9077b3221d1b3a537513849c 100644 (file)
@@ -781,7 +781,7 @@ enum {
        PINMUX_MARK_END,
 };
 
-static pinmux_enum_t pinmux_data[] = {
+static const pinmux_enum_t pinmux_data[] = {
 
        /* Port A */
        PINMUX_DATA(PA1_DATA, PA1_IN),
@@ -1452,7 +1452,7 @@ static pinmux_enum_t pinmux_data[] = {
        PINMUX_DATA(PWM1A_MARK, PJ0MD_100),
 };
 
-static struct pinmux_gpio pinmux_gpios[] = {
+static struct sh_pfc_pin pinmux_pins[] = {
        /* Port A */
        PINMUX_GPIO(GPIO_PA1, PA1_DATA),
        PINMUX_GPIO(GPIO_PA0, PA0_DATA),
@@ -1613,339 +1613,343 @@ static struct pinmux_gpio pinmux_gpios[] = {
        PINMUX_GPIO(GPIO_PJ2, PJ2_DATA),
        PINMUX_GPIO(GPIO_PJ1, PJ1_DATA),
        PINMUX_GPIO(GPIO_PJ0, PJ0_DATA),
+};
+
+#define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins)
 
+static const struct pinmux_func pinmux_func_gpios[] = {
        /* INTC */
-       PINMUX_GPIO(GPIO_FN_IRQ7_PG, IRQ7_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ6_PG, IRQ6_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ5_PG, IRQ5_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ4_PG, IRQ4_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ3_PG, IRQ3_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ2_PG, IRQ2_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ1_PG, IRQ1_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ0_PG, IRQ0_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ7_PF, IRQ7_PF_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ6_PF, IRQ6_PF_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ5_PF, IRQ5_PF_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ4_PF, IRQ4_PF_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ3_PJ, IRQ3_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ2_PJ, IRQ2_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ1_PJ, IRQ1_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ0_PJ, IRQ0_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ1_PC, IRQ1_PC_MARK),
-       PINMUX_GPIO(GPIO_FN_IRQ0_PC, IRQ0_PC_MARK),
-
-       PINMUX_GPIO(GPIO_FN_PINT7_PG, PINT7_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT6_PG, PINT6_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT5_PG, PINT5_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT4_PG, PINT4_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT3_PG, PINT3_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT2_PG, PINT2_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT1_PG, PINT1_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT0_PG, PINT0_PG_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT7_PH, PINT7_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT6_PH, PINT6_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT5_PH, PINT5_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT4_PH, PINT4_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT3_PH, PINT3_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT2_PH, PINT2_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT1_PH, PINT1_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT0_PH, PINT0_PH_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT7_PJ, PINT7_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT6_PJ, PINT6_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT5_PJ, PINT5_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT4_PJ, PINT4_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT3_PJ, PINT3_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT2_PJ, PINT2_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT1_PJ, PINT1_PJ_MARK),
-       PINMUX_GPIO(GPIO_FN_PINT0_PJ, PINT0_PJ_MARK),
+       GPIO_FN(IRQ7_PG),
+       GPIO_FN(IRQ6_PG),
+       GPIO_FN(IRQ5_PG),
+       GPIO_FN(IRQ4_PG),
+       GPIO_FN(IRQ3_PG),
+       GPIO_FN(IRQ2_PG),
+       GPIO_FN(IRQ1_PG),
+       GPIO_FN(IRQ0_PG),
+       GPIO_FN(IRQ7_PF),
+       GPIO_FN(IRQ6_PF),
+       GPIO_FN(IRQ5_PF),
+       GPIO_FN(IRQ4_PF),
+       GPIO_FN(IRQ3_PJ),
+       GPIO_FN(IRQ2_PJ),
+       GPIO_FN(IRQ1_PJ),
+       GPIO_FN(IRQ0_PJ),
+       GPIO_FN(IRQ1_PC),
+       GPIO_FN(IRQ0_PC),
+
+       GPIO_FN(PINT7_PG),
+       GPIO_FN(PINT6_PG),
+       GPIO_FN(PINT5_PG),
+       GPIO_FN(PINT4_PG),
+       GPIO_FN(PINT3_PG),
+       GPIO_FN(PINT2_PG),
+       GPIO_FN(PINT1_PG),
+       GPIO_FN(PINT0_PG),
+       GPIO_FN(PINT7_PH),
+       GPIO_FN(PINT6_PH),
+       GPIO_FN(PINT5_PH),
+       GPIO_FN(PINT4_PH),
+       GPIO_FN(PINT3_PH),
+       GPIO_FN(PINT2_PH),
+       GPIO_FN(PINT1_PH),
+       GPIO_FN(PINT0_PH),
+       GPIO_FN(PINT7_PJ),
+       GPIO_FN(PINT6_PJ),
+       GPIO_FN(PINT5_PJ),
+       GPIO_FN(PINT4_PJ),
+       GPIO_FN(PINT3_PJ),
+       GPIO_FN(PINT2_PJ),
+       GPIO_FN(PINT1_PJ),
+       GPIO_FN(PINT0_PJ),
 
        /* WDT */
-       PINMUX_GPIO(GPIO_FN_WDTOVF, WDTOVF_MARK),
+       GPIO_FN(WDTOVF),
 
        /* CAN */
-       PINMUX_GPIO(GPIO_FN_CTX1, CTX1_MARK),
-       PINMUX_GPIO(GPIO_FN_CRX1, CRX1_MARK),
-       PINMUX_GPIO(GPIO_FN_CTX0, CTX0_MARK),
-       PINMUX_GPIO(GPIO_FN_CRX0, CRX0_MARK),
-       PINMUX_GPIO(GPIO_FN_CRX0_CRX1, CRX0_CRX1_MARK),
-       PINMUX_GPIO(GPIO_FN_CRX0_CRX1_CRX2, CRX0_CRX1_CRX2_MARK),
+       GPIO_FN(CTX1),
+       GPIO_FN(CRX1),
+       GPIO_FN(CTX0),
+       GPIO_FN(CRX0),
+       GPIO_FN(CRX0_CRX1),
+       GPIO_FN(CRX0_CRX1_CRX2),
 
        /* DMAC */
-       PINMUX_GPIO(GPIO_FN_TEND0, TEND0_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_DACK1, DACK1_MARK),
-       PINMUX_GPIO(GPIO_FN_DREQ1, DREQ1_MARK),
+       GPIO_FN(TEND0),
+       GPIO_FN(DACK0),
+       GPIO_FN(DREQ0),
+       GPIO_FN(TEND1),
+       GPIO_FN(DACK1),
+       GPIO_FN(DREQ1),
 
        /* ADC */
-       PINMUX_GPIO(GPIO_FN_ADTRG, ADTRG_MARK),
+       GPIO_FN(ADTRG),
 
        /* BSCh */
-       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_A18, A18_MARK),
-       PINMUX_GPIO(GPIO_FN_A17, A17_MARK),
-       PINMUX_GPIO(GPIO_FN_A16, A16_MARK),
-       PINMUX_GPIO(GPIO_FN_A15, A15_MARK),
-       PINMUX_GPIO(GPIO_FN_A14, A14_MARK),
-       PINMUX_GPIO(GPIO_FN_A13, A13_MARK),
-       PINMUX_GPIO(GPIO_FN_A12, A12_MARK),
-       PINMUX_GPIO(GPIO_FN_A11, A11_MARK),
-       PINMUX_GPIO(GPIO_FN_A10, A10_MARK),
-       PINMUX_GPIO(GPIO_FN_A9, A9_MARK),
-       PINMUX_GPIO(GPIO_FN_A8, A8_MARK),
-       PINMUX_GPIO(GPIO_FN_A7, A7_MARK),
-       PINMUX_GPIO(GPIO_FN_A6, A6_MARK),
-       PINMUX_GPIO(GPIO_FN_A5, A5_MARK),
-       PINMUX_GPIO(GPIO_FN_A4, A4_MARK),
-       PINMUX_GPIO(GPIO_FN_A3, A3_MARK),
-       PINMUX_GPIO(GPIO_FN_A2, A2_MARK),
-       PINMUX_GPIO(GPIO_FN_A1, A1_MARK),
-       PINMUX_GPIO(GPIO_FN_A0, A0_MARK),
-
-       PINMUX_GPIO(GPIO_FN_D15, D15_MARK),
-       PINMUX_GPIO(GPIO_FN_D14, D14_MARK),
-       PINMUX_GPIO(GPIO_FN_D13, D13_MARK),
-       PINMUX_GPIO(GPIO_FN_D12, D12_MARK),
-       PINMUX_GPIO(GPIO_FN_D11, D11_MARK),
-       PINMUX_GPIO(GPIO_FN_D10, D10_MARK),
-       PINMUX_GPIO(GPIO_FN_D9, D9_MARK),
-       PINMUX_GPIO(GPIO_FN_D8, D8_MARK),
-       PINMUX_GPIO(GPIO_FN_D7, D7_MARK),
-       PINMUX_GPIO(GPIO_FN_D6, D6_MARK),
-       PINMUX_GPIO(GPIO_FN_D5, D5_MARK),
-       PINMUX_GPIO(GPIO_FN_D4, D4_MARK),
-       PINMUX_GPIO(GPIO_FN_D3, D3_MARK),
-       PINMUX_GPIO(GPIO_FN_D2, D2_MARK),
-       PINMUX_GPIO(GPIO_FN_D1, D1_MARK),
-       PINMUX_GPIO(GPIO_FN_D0, D0_MARK),
-
-       PINMUX_GPIO(GPIO_FN_BS, BS_MARK),
-       PINMUX_GPIO(GPIO_FN_CS4, CS4_MARK),
-       PINMUX_GPIO(GPIO_FN_CS3, CS3_MARK),
-       PINMUX_GPIO(GPIO_FN_CS2, CS2_MARK),
-       PINMUX_GPIO(GPIO_FN_CS1, CS1_MARK),
-       PINMUX_GPIO(GPIO_FN_CS0, CS0_MARK),
-       PINMUX_GPIO(GPIO_FN_CS5CE1A, CS5CE1A_MARK),
-       PINMUX_GPIO(GPIO_FN_CE2A, CE2A_MARK),
-       PINMUX_GPIO(GPIO_FN_CE2B, CE2B_MARK),
-       PINMUX_GPIO(GPIO_FN_RD, RD_MARK),
-       PINMUX_GPIO(GPIO_FN_RDWR, RDWR_MARK),
-       PINMUX_GPIO(GPIO_FN_WE3ICIOWRAHDQMUU, WE3ICIOWRAHDQMUU_MARK),
-       PINMUX_GPIO(GPIO_FN_WE2ICIORDDQMUL, WE2ICIORDDQMUL_MARK),
-       PINMUX_GPIO(GPIO_FN_WE1DQMUWE, WE1DQMUWE_MARK),
-       PINMUX_GPIO(GPIO_FN_WE0DQML, WE0DQML_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_WAIT, WAIT_MARK),
-       PINMUX_GPIO(GPIO_FN_BREQ, BREQ_MARK),
-       PINMUX_GPIO(GPIO_FN_BACK, BACK_MARK),
-       PINMUX_GPIO(GPIO_FN_IOIS16, IOIS16_MARK),
+       GPIO_FN(A25),
+       GPIO_FN(A24),
+       GPIO_FN(A23),
+       GPIO_FN(A22),
+       GPIO_FN(A21),
+       GPIO_FN(A20),
+       GPIO_FN(A19),
+       GPIO_FN(A18),
+       GPIO_FN(A17),
+       GPIO_FN(A16),
+       GPIO_FN(A15),
+       GPIO_FN(A14),
+       GPIO_FN(A13),
+       GPIO_FN(A12),
+       GPIO_FN(A11),
+       GPIO_FN(A10),
+       GPIO_FN(A9),
+       GPIO_FN(A8),
+       GPIO_FN(A7),
+       GPIO_FN(A6),
+       GPIO_FN(A5),
+       GPIO_FN(A4),
+       GPIO_FN(A3),
+       GPIO_FN(A2),
+       GPIO_FN(A1),
+       GPIO_FN(A0),
+
+       GPIO_FN(D15),
+       GPIO_FN(D14),
+       GPIO_FN(D13),
+       GPIO_FN(D12),
+       GPIO_FN(D11),
+       GPIO_FN(D10),
+       GPIO_FN(D9),
+       GPIO_FN(D8),
+       GPIO_FN(D7),
+       GPIO_FN(D6),
+       GPIO_FN(D5),
+       GPIO_FN(D4),
+       GPIO_FN(D3),
+       GPIO_FN(D2),
+       GPIO_FN(D1),
+       GPIO_FN(D0),
+
+       GPIO_FN(BS),
+       GPIO_FN(CS4),
+       GPIO_FN(CS3),
+       GPIO_FN(CS2),
+       GPIO_FN(CS1),
+       GPIO_FN(CS0),
+       GPIO_FN(CS5CE1A),
+       GPIO_FN(CE2A),
+       GPIO_FN(CE2B),
+       GPIO_FN(RD),
+       GPIO_FN(RDWR),
+       GPIO_FN(WE3ICIOWRAHDQMUU),
+       GPIO_FN(WE2ICIORDDQMUL),
+       GPIO_FN(WE1DQMUWE),
+       GPIO_FN(WE0DQML),
+       GPIO_FN(RAS),
+       GPIO_FN(CAS),
+       GPIO_FN(CKE),
+       GPIO_FN(WAIT),
+       GPIO_FN(BREQ),
+       GPIO_FN(BACK),
+       GPIO_FN(IOIS16),
 
        /* TMU */
-       PINMUX_GPIO(GPIO_FN_TIOC4D, TIOC4D_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC4C, TIOC4C_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC4B, TIOC4B_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC4A, TIOC4A_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC3D, TIOC3D_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC3C, TIOC3C_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC3B, TIOC3B_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC3A, TIOC3A_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC2B, TIOC2B_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC1B, TIOC1B_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC2A, TIOC2A_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC1A, TIOC1A_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC0D, TIOC0D_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC0C, TIOC0C_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC0B, TIOC0B_MARK),
-       PINMUX_GPIO(GPIO_FN_TIOC0A, TIOC0A_MARK),
-       PINMUX_GPIO(GPIO_FN_TCLKD, TCLKD_MARK),
-       PINMUX_GPIO(GPIO_FN_TCLKC, TCLKC_MARK),
-       PINMUX_GPIO(GPIO_FN_TCLKB, TCLKB_MARK),
-       PINMUX_GPIO(GPIO_FN_TCLKA, TCLKA_MARK),
+       GPIO_FN(TIOC4D),
+       GPIO_FN(TIOC4C),
+       GPIO_FN(TIOC4B),
+       GPIO_FN(TIOC4A),
+       GPIO_FN(TIOC3D),
+       GPIO_FN(TIOC3C),
+       GPIO_FN(TIOC3B),
+       GPIO_FN(TIOC3A),
+       GPIO_FN(TIOC2B),
+       GPIO_FN(TIOC1B),
+       GPIO_FN(TIOC2A),
+       GPIO_FN(TIOC1A),
+       GPIO_FN(TIOC0D),
+       GPIO_FN(TIOC0C),
+       GPIO_FN(TIOC0B),
+       GPIO_FN(TIOC0A),
+       GPIO_FN(TCLKD),
+       GPIO_FN(TCLKC),
+       GPIO_FN(TCLKB),
+       GPIO_FN(TCLKA),
 
        /* SCIF */
-       PINMUX_GPIO(GPIO_FN_SCK0, SCK0_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD0, TXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD0, RXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK1, SCK1_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD1, TXD1_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD1, RXD1_MARK),
-       PINMUX_GPIO(GPIO_FN_RTS1, RTS1_MARK),
-       PINMUX_GPIO(GPIO_FN_CTS1, CTS1_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK2, SCK2_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD2, TXD2_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD2, RXD2_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK3, SCK3_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD3, TXD3_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD3, RXD3_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK4, SCK4_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD4, TXD4_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD4, RXD4_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK5, SCK5_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD5, TXD5_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD5, RXD5_MARK),
-       PINMUX_GPIO(GPIO_FN_RTS5, RTS5_MARK),
-       PINMUX_GPIO(GPIO_FN_CTS5, CTS5_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK6, SCK6_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD6, TXD6_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD6, RXD6_MARK),
-       PINMUX_GPIO(GPIO_FN_SCK7, SCK7_MARK),
-       PINMUX_GPIO(GPIO_FN_TXD7, TXD7_MARK),
-       PINMUX_GPIO(GPIO_FN_RXD7, RXD7_MARK),
-       PINMUX_GPIO(GPIO_FN_RTS7, RTS7_MARK),
-       PINMUX_GPIO(GPIO_FN_CTS7, CTS7_MARK),
+       GPIO_FN(SCK0),
+       GPIO_FN(TXD0),
+       GPIO_FN(RXD0),
+       GPIO_FN(SCK1),
+       GPIO_FN(TXD1),
+       GPIO_FN(RXD1),
+       GPIO_FN(RTS1),
+       GPIO_FN(CTS1),
+       GPIO_FN(SCK2),
+       GPIO_FN(TXD2),
+       GPIO_FN(RXD2),
+       GPIO_FN(SCK3),
+       GPIO_FN(TXD3),
+       GPIO_FN(RXD3),
+       GPIO_FN(SCK4),
+       GPIO_FN(TXD4),
+       GPIO_FN(RXD4),
+       GPIO_FN(SCK5),
+       GPIO_FN(TXD5),
+       GPIO_FN(RXD5),
+       GPIO_FN(RTS5),
+       GPIO_FN(CTS5),
+       GPIO_FN(SCK6),
+       GPIO_FN(TXD6),
+       GPIO_FN(RXD6),
+       GPIO_FN(SCK7),
+       GPIO_FN(TXD7),
+       GPIO_FN(RXD7),
+       GPIO_FN(RTS7),
+       GPIO_FN(CTS7),
 
        /* RSPI */
-       PINMUX_GPIO(GPIO_FN_RSPCK0_PJ16, RSPCK0_PJ16_MARK),
-       PINMUX_GPIO(GPIO_FN_SSL00_PJ17, SSL00_PJ17_MARK),
-       PINMUX_GPIO(GPIO_FN_MOSI0_PJ18, MOSI0_PJ18_MARK),
-       PINMUX_GPIO(GPIO_FN_MISO0_PJ19, MISO0_PJ19_MARK),
-       PINMUX_GPIO(GPIO_FN_RSPCK0_PB17, RSPCK0_PB17_MARK),
-       PINMUX_GPIO(GPIO_FN_SSL00_PB18, SSL00_PB18_MARK),
-       PINMUX_GPIO(GPIO_FN_MOSI0_PB19, MOSI0_PB19_MARK),
-       PINMUX_GPIO(GPIO_FN_MISO0_PB20, MISO0_PB20_MARK),
-       PINMUX_GPIO(GPIO_FN_RSPCK1, RSPCK1_MARK),
-       PINMUX_GPIO(GPIO_FN_MOSI1, MOSI1_MARK),
-       PINMUX_GPIO(GPIO_FN_MISO1, MISO1_MARK),
-       PINMUX_GPIO(GPIO_FN_SSL10, SSL10_MARK),
+       GPIO_FN(RSPCK0_PJ16),
+       GPIO_FN(SSL00_PJ17),
+       GPIO_FN(MOSI0_PJ18),
+       GPIO_FN(MISO0_PJ19),
+       GPIO_FN(RSPCK0_PB17),
+       GPIO_FN(SSL00_PB18),
+       GPIO_FN(MOSI0_PB19),
+       GPIO_FN(MISO0_PB20),
+       GPIO_FN(RSPCK1),
+       GPIO_FN(MOSI1),
+       GPIO_FN(MISO1),
+       GPIO_FN(SSL10),
 
        /* IIC3 */
-       PINMUX_GPIO(GPIO_FN_SCL0, SCL0_MARK),
-       PINMUX_GPIO(GPIO_FN_SCL1, SCL1_MARK),
-       PINMUX_GPIO(GPIO_FN_SCL2, SCL2_MARK),
-       PINMUX_GPIO(GPIO_FN_SDA0, SDA0_MARK),
-       PINMUX_GPIO(GPIO_FN_SDA1, SDA1_MARK),
-       PINMUX_GPIO(GPIO_FN_SDA2, SDA2_MARK),
+       GPIO_FN(SCL0),
+       GPIO_FN(SCL1),
+       GPIO_FN(SCL2),
+       GPIO_FN(SDA0),
+       GPIO_FN(SDA1),
+       GPIO_FN(SDA2),
 
        /* SSI */
-       PINMUX_GPIO(GPIO_FN_SSISCK0, SSISCK0_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIWS0, SSIWS0_MARK),
-       PINMUX_GPIO(GPIO_FN_SSITXD0, SSITXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIRXD0, SSIRXD0_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIWS1, SSIWS1_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIWS2, SSIWS2_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIWS3, SSIWS3_MARK),
-       PINMUX_GPIO(GPIO_FN_SSISCK1, SSISCK1_MARK),
-       PINMUX_GPIO(GPIO_FN_SSISCK2, SSISCK2_MARK),
-       PINMUX_GPIO(GPIO_FN_SSISCK3, SSISCK3_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIDATA1, SSIDATA1_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIDATA2, SSIDATA2_MARK),
-       PINMUX_GPIO(GPIO_FN_SSIDATA3, SSIDATA3_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDIO_CLK, AUDIO_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_AUDIO_XOUT, AUDIO_XOUT_MARK),
+       GPIO_FN(SSISCK0),
+       GPIO_FN(SSIWS0),
+       GPIO_FN(SSITXD0),
+       GPIO_FN(SSIRXD0),
+       GPIO_FN(SSIWS1),
+       GPIO_FN(SSIWS2),
+       GPIO_FN(SSIWS3),
+       GPIO_FN(SSISCK1),
+       GPIO_FN(SSISCK2),
+       GPIO_FN(SSISCK3),
+       GPIO_FN(SSIDATA1),
+       GPIO_FN(SSIDATA2),
+       GPIO_FN(SSIDATA3),
+       GPIO_FN(AUDIO_CLK),
+       GPIO_FN(AUDIO_XOUT),
 
        /* SIOF */ /* NOTE Shares AUDIO_CLK with SSI */
-       PINMUX_GPIO(GPIO_FN_SIOFTXD, SIOFTXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOFRXD, SIOFRXD_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOFSYNC, SIOFSYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_SIOFSCK, SIOFSCK_MARK),
+       GPIO_FN(SIOFTXD),
+       GPIO_FN(SIOFRXD),
+       GPIO_FN(SIOFSYNC),
+       GPIO_FN(SIOFSCK),
 
        /* SPDIF */ /* NOTE Shares AUDIO_CLK with SSI */
-       PINMUX_GPIO(GPIO_FN_SPDIF_IN, SPDIF_IN_MARK),
-       PINMUX_GPIO(GPIO_FN_SPDIF_OUT, SPDIF_OUT_MARK),
+       GPIO_FN(SPDIF_IN),
+       GPIO_FN(SPDIF_OUT),
 
        /* NANDFMC */ /* NOTE Controller is not available in boot mode 0 */
-       PINMUX_GPIO(GPIO_FN_FCE, FCE_MARK),
-       PINMUX_GPIO(GPIO_FN_FRB, FRB_MARK),
+       GPIO_FN(FCE),
+       GPIO_FN(FRB),
 
        /* VDC3 */
-       PINMUX_GPIO(GPIO_FN_DV_CLK, DV_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_VSYNC, DV_VSYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_HSYNC, DV_HSYNC_MARK),
-
-       PINMUX_GPIO(GPIO_FN_DV_DATA23, DV_DATA23_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA22, DV_DATA22_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA21, DV_DATA21_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA20, DV_DATA20_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA19, DV_DATA19_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA18, DV_DATA18_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA17, DV_DATA17_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA16, DV_DATA16_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA15, DV_DATA15_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA14, DV_DATA14_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA13, DV_DATA13_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA12, DV_DATA12_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA11, DV_DATA11_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA10, DV_DATA10_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA9, DV_DATA9_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA8, DV_DATA8_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA7, DV_DATA7_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA6, DV_DATA6_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA5, DV_DATA5_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA4, DV_DATA4_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA3, DV_DATA3_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA2, DV_DATA2_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA1, DV_DATA1_MARK),
-       PINMUX_GPIO(GPIO_FN_DV_DATA0, DV_DATA0_MARK),
-
-       PINMUX_GPIO(GPIO_FN_LCD_CLK, LCD_CLK_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_EXTCLK, LCD_EXTCLK_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_VSYNC, LCD_VSYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_HSYNC, LCD_HSYNC_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DE, LCD_DE_MARK),
-
-       PINMUX_GPIO(GPIO_FN_LCD_DATA23_PG23, LCD_DATA23_PG23_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA22_PG22, LCD_DATA22_PG22_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA21_PG21, LCD_DATA21_PG21_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA20_PG20, LCD_DATA20_PG20_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA19_PG19, LCD_DATA19_PG19_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA18_PG18, LCD_DATA18_PG18_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA17_PG17, LCD_DATA17_PG17_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA16_PG16, LCD_DATA16_PG16_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA15_PG15, LCD_DATA15_PG15_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA14_PG14, LCD_DATA14_PG14_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA13_PG13, LCD_DATA13_PG13_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA12_PG12, LCD_DATA12_PG12_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA11_PG11, LCD_DATA11_PG11_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA10_PG10, LCD_DATA10_PG10_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA9_PG9, LCD_DATA9_PG9_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA8_PG8, LCD_DATA8_PG8_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA7_PG7, LCD_DATA7_PG7_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA6_PG6, LCD_DATA6_PG6_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA5_PG5, LCD_DATA5_PG5_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA4_PG4, LCD_DATA4_PG4_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA3_PG3, LCD_DATA3_PG3_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA2_PG2, LCD_DATA2_PG2_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA1_PG1, LCD_DATA1_PG1_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA0_PG0, LCD_DATA0_PG0_MARK),
-
-       PINMUX_GPIO(GPIO_FN_LCD_DATA23_PJ23, LCD_DATA23_PJ23_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA22_PJ22, LCD_DATA22_PJ22_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA21_PJ21, LCD_DATA21_PJ21_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA20_PJ20, LCD_DATA20_PJ20_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA19_PJ19, LCD_DATA19_PJ19_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA18_PJ18, LCD_DATA18_PJ18_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA17_PJ17, LCD_DATA17_PJ17_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA16_PJ16, LCD_DATA16_PJ16_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA15_PJ15, LCD_DATA15_PJ15_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA14_PJ14, LCD_DATA14_PJ14_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA13_PJ13, LCD_DATA13_PJ13_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA12_PJ12, LCD_DATA12_PJ12_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA11_PJ11, LCD_DATA11_PJ11_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA10_PJ10, LCD_DATA10_PJ10_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA9_PJ9, LCD_DATA9_PJ9_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA8_PJ8, LCD_DATA8_PJ8_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA7_PJ7, LCD_DATA7_PJ7_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA6_PJ6, LCD_DATA6_PJ6_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA5_PJ5, LCD_DATA5_PJ5_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA4_PJ4, LCD_DATA4_PJ4_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA3_PJ3, LCD_DATA3_PJ3_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA2_PJ2, LCD_DATA2_PJ2_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA1_PJ1, LCD_DATA1_PJ1_MARK),
-       PINMUX_GPIO(GPIO_FN_LCD_DATA0_PJ0, LCD_DATA0_PJ0_MARK),
-
-       PINMUX_GPIO(GPIO_FN_LCD_M_DISP, LCD_M_DISP_MARK),
+       GPIO_FN(DV_CLK),
+       GPIO_FN(DV_VSYNC),
+       GPIO_FN(DV_HSYNC),
+
+       GPIO_FN(DV_DATA23),
+       GPIO_FN(DV_DATA22),
+       GPIO_FN(DV_DATA21),
+       GPIO_FN(DV_DATA20),
+       GPIO_FN(DV_DATA19),
+       GPIO_FN(DV_DATA18),
+       GPIO_FN(DV_DATA17),
+       GPIO_FN(DV_DATA16),
+       GPIO_FN(DV_DATA15),
+       GPIO_FN(DV_DATA14),
+       GPIO_FN(DV_DATA13),
+       GPIO_FN(DV_DATA12),
+       GPIO_FN(DV_DATA11),
+       GPIO_FN(DV_DATA10),
+       GPIO_FN(DV_DATA9),
+       GPIO_FN(DV_DATA8),
+       GPIO_FN(DV_DATA7),
+       GPIO_FN(DV_DATA6),
+       GPIO_FN(DV_DATA5),
+       GPIO_FN(DV_DATA4),
+       GPIO_FN(DV_DATA3),
+       GPIO_FN(DV_DATA2),
+       GPIO_FN(DV_DATA1),
+       GPIO_FN(DV_DATA0),
+
+       GPIO_FN(LCD_CLK),
+       GPIO_FN(LCD_EXTCLK),
+       GPIO_FN(LCD_VSYNC),
+       GPIO_FN(LCD_HSYNC),
+       GPIO_FN(LCD_DE),
+
+       GPIO_FN(LCD_DATA23_PG23),
+       GPIO_FN(LCD_DATA22_PG22),
+       GPIO_FN(LCD_DATA21_PG21),
+       GPIO_FN(LCD_DATA20_PG20),
+       GPIO_FN(LCD_DATA19_PG19),
+       GPIO_FN(LCD_DATA18_PG18),
+       GPIO_FN(LCD_DATA17_PG17),
+       GPIO_FN(LCD_DATA16_PG16),
+       GPIO_FN(LCD_DATA15_PG15),
+       GPIO_FN(LCD_DATA14_PG14),
+       GPIO_FN(LCD_DATA13_PG13),
+       GPIO_FN(LCD_DATA12_PG12),
+       GPIO_FN(LCD_DATA11_PG11),
+       GPIO_FN(LCD_DATA10_PG10),
+       GPIO_FN(LCD_DATA9_PG9),
+       GPIO_FN(LCD_DATA8_PG8),
+       GPIO_FN(LCD_DATA7_PG7),
+       GPIO_FN(LCD_DATA6_PG6),
+       GPIO_FN(LCD_DATA5_PG5),
+       GPIO_FN(LCD_DATA4_PG4),
+       GPIO_FN(LCD_DATA3_PG3),
+       GPIO_FN(LCD_DATA2_PG2),
+       GPIO_FN(LCD_DATA1_PG1),
+       GPIO_FN(LCD_DATA0_PG0),
+
+       GPIO_FN(LCD_DATA23_PJ23),
+       GPIO_FN(LCD_DATA22_PJ22),
+       GPIO_FN(LCD_DATA21_PJ21),
+       GPIO_FN(LCD_DATA20_PJ20),
+       GPIO_FN(LCD_DATA19_PJ19),
+       GPIO_FN(LCD_DATA18_PJ18),
+       GPIO_FN(LCD_DATA17_PJ17),
+       GPIO_FN(LCD_DATA16_PJ16),
+       GPIO_FN(LCD_DATA15_PJ15),
+       GPIO_FN(LCD_DATA14_PJ14),
+       GPIO_FN(LCD_DATA13_PJ13),
+       GPIO_FN(LCD_DATA12_PJ12),
+       GPIO_FN(LCD_DATA11_PJ11),
+       GPIO_FN(LCD_DATA10_PJ10),
+       GPIO_FN(LCD_DATA9_PJ9),
+       GPIO_FN(LCD_DATA8_PJ8),
+       GPIO_FN(LCD_DATA7_PJ7),
+       GPIO_FN(LCD_DATA6_PJ6),
+       GPIO_FN(LCD_DATA5_PJ5),
+       GPIO_FN(LCD_DATA4_PJ4),
+       GPIO_FN(LCD_DATA3_PJ3),
+       GPIO_FN(LCD_DATA2_PJ2),
+       GPIO_FN(LCD_DATA1_PJ1),
+       GPIO_FN(LCD_DATA0_PJ0),
+
+       GPIO_FN(LCD_M_DISP),
 };
 
-static struct pinmux_cfg_reg pinmux_config_regs[] = {
+static const struct pinmux_cfg_reg pinmux_config_regs[] = {
        /* "name" addr register_size Field_Width */
 
        /* where Field_Width is 1 for single mode registers or 4 for upto 16
@@ -2734,7 +2738,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("PADR0", 0xfffe3816, 16) {
                0, 0, 0, 0, 0, 0, 0, PA1_DATA,
                0, 0, 0, 0, 0, 0, 0, PA0_DATA }
@@ -2813,19 +2817,17 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
        { }
 };
 
-struct sh_pfc_soc_info sh7269_pinmux_info = {
+const struct sh_pfc_soc_info sh7269_pinmux_info = {
        .name = "sh7269_pfc",
-       .reserved_id = PINMUX_RESERVED,
-       .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
        .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
        .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
-       .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
        .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
 
-       .first_gpio = GPIO_PA1,
-       .last_gpio = GPIO_FN_LCD_M_DISP,
+       .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,