Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'renesas-pinctrl-for-v5.14-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: renesas: Updates for v5.14 (take two)

- Add bias support for the R-Car H2, V2H, E2, V3M, and V3H, and
RZ/G1C, RZ/G1H, and RZ/G1E SoCs.

+1844 -80
+306 -40
drivers/pinctrl/renesas/pfc-r8a77470.c
··· 11 11 #include "sh_pfc.h" 12 12 13 13 #define CPU_ALL_GP(fn, sfx) \ 14 - PORT_GP_4(0, fn, sfx), \ 15 - PORT_GP_1(0, 4, fn, sfx), \ 16 - PORT_GP_CFG_1(0, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 17 - PORT_GP_CFG_1(0, 6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 18 - PORT_GP_CFG_1(0, 7, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 19 - PORT_GP_CFG_1(0, 8, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 20 - PORT_GP_CFG_1(0, 9, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 21 - PORT_GP_CFG_1(0, 10, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 22 - PORT_GP_1(0, 11, fn, sfx), \ 23 - PORT_GP_1(0, 12, fn, sfx), \ 24 - PORT_GP_CFG_1(0, 13, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_CFG_1(0, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 26 - PORT_GP_CFG_1(0, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 27 - PORT_GP_CFG_1(0, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 28 - PORT_GP_CFG_1(0, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 29 - PORT_GP_CFG_1(0, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 30 - PORT_GP_CFG_1(0, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 31 - PORT_GP_CFG_1(0, 20, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 32 - PORT_GP_CFG_1(0, 21, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 33 - PORT_GP_CFG_1(0, 22, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 34 - PORT_GP_23(1, fn, sfx), \ 35 - PORT_GP_32(2, fn, sfx), \ 36 - PORT_GP_17(3, fn, sfx), \ 37 - PORT_GP_1(3, 27, fn, sfx), \ 38 - PORT_GP_1(3, 28, fn, sfx), \ 39 - PORT_GP_1(3, 29, fn, sfx), \ 40 - PORT_GP_14(4, fn, sfx), \ 41 - PORT_GP_CFG_1(4, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 42 - PORT_GP_CFG_1(4, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 43 - PORT_GP_CFG_1(4, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 44 - PORT_GP_CFG_1(4, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 45 - PORT_GP_CFG_1(4, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 46 - PORT_GP_CFG_1(4, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 47 - PORT_GP_1(4, 20, fn, sfx), \ 48 - PORT_GP_1(4, 21, fn, sfx), \ 49 - PORT_GP_1(4, 22, fn, sfx), \ 50 - PORT_GP_1(4, 23, fn, sfx), \ 51 - PORT_GP_1(4, 24, fn, sfx), \ 52 - PORT_GP_1(4, 25, fn, sfx), \ 53 - PORT_GP_32(5, fn, sfx) 14 + PORT_GP_CFG_4(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 15 + PORT_GP_CFG_1(0, 4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 16 + PORT_GP_CFG_1(0, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 17 + PORT_GP_CFG_1(0, 6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 18 + PORT_GP_CFG_1(0, 7, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 19 + PORT_GP_CFG_1(0, 8, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 20 + PORT_GP_CFG_1(0, 9, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 21 + PORT_GP_CFG_1(0, 10, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 22 + PORT_GP_CFG_1(0, 11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 23 + PORT_GP_CFG_1(0, 12, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 24 + PORT_GP_CFG_1(0, 13, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 25 + PORT_GP_CFG_1(0, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 26 + PORT_GP_CFG_1(0, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 27 + PORT_GP_CFG_1(0, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 28 + PORT_GP_CFG_1(0, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 29 + PORT_GP_CFG_1(0, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 30 + PORT_GP_CFG_1(0, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 31 + PORT_GP_CFG_1(0, 20, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 32 + PORT_GP_CFG_1(0, 21, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 33 + PORT_GP_CFG_1(0, 22, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 34 + PORT_GP_CFG_23(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 37 + PORT_GP_CFG_1(3, 27, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 38 + PORT_GP_CFG_1(3, 28, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 39 + PORT_GP_CFG_1(3, 29, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 40 + PORT_GP_CFG_14(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 41 + PORT_GP_CFG_1(4, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 42 + PORT_GP_CFG_1(4, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 43 + PORT_GP_CFG_1(4, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 44 + PORT_GP_CFG_1(4, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 45 + PORT_GP_CFG_1(4, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 46 + PORT_GP_CFG_1(4, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 47 + PORT_GP_CFG_1(4, 20, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 48 + PORT_GP_CFG_1(4, 21, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 49 + PORT_GP_CFG_1(4, 22, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 50 + PORT_GP_CFG_1(4, 23, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 51 + PORT_GP_CFG_1(4, 24, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 52 + PORT_GP_CFG_1(4, 25, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 53 + PORT_GP_CFG_32(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 54 + 55 + #define CPU_ALL_NOGP(fn) \ 56 + PIN_NOGP_CFG(ASEBRK_N_ACK, "ASEBRK#/ACK", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 57 + PIN_NOGP_CFG(NMI, "NMI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 58 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP), \ 59 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 60 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 61 + PIN_NOGP_CFG(TDO, "TDO", fn, SH_PFC_PIN_CFG_PULL_UP), \ 62 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 63 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 54 64 55 65 enum { 56 66 PINMUX_RESERVED = 0, ··· 1131 1121 PINMUX_IPSR_GPSR(IP17_27_24, VI0_VSYNC_N), 1132 1122 }; 1133 1123 1124 + /* 1125 + * Pins not associated with a GPIO port. 1126 + */ 1127 + enum { 1128 + GP_ASSIGN_LAST(), 1129 + NOGP_ALL(), 1130 + }; 1131 + 1134 1132 static const struct sh_pfc_pin pinmux_pins[] = { 1135 1133 PINMUX_GPIO_GP_ALL(), 1134 + PINMUX_NOGP_ALL(), 1136 1135 }; 1137 1136 1138 1137 /* - AVB -------------------------------------------------------------------- */ ··· 3439 3420 return bit; 3440 3421 } 3441 3422 3423 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 3424 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 3425 + /* PUPR0 pull-up pins */ 3426 + [ 0] = RCAR_GP_PIN(1, 0), /* D0 */ 3427 + [ 1] = RCAR_GP_PIN(0, 22), /* MMC0_D7 */ 3428 + [ 2] = RCAR_GP_PIN(0, 21), /* MMC0_D6 */ 3429 + [ 3] = RCAR_GP_PIN(0, 20), /* MMC0_D5 */ 3430 + [ 4] = RCAR_GP_PIN(0, 19), /* MMC0_D4 */ 3431 + [ 5] = RCAR_GP_PIN(0, 18), /* MMC0_D3 */ 3432 + [ 6] = RCAR_GP_PIN(0, 17), /* MMC0_D2 */ 3433 + [ 7] = RCAR_GP_PIN(0, 16), /* MMC0_D1 */ 3434 + [ 8] = RCAR_GP_PIN(0, 15), /* MMC0_D0 */ 3435 + [ 9] = RCAR_GP_PIN(0, 14), /* MMC0_CMD */ 3436 + [10] = RCAR_GP_PIN(0, 13), /* MMC0_CLK */ 3437 + [11] = RCAR_GP_PIN(0, 12), /* SD0_WP */ 3438 + [12] = RCAR_GP_PIN(0, 11), /* SD0_CD */ 3439 + [13] = RCAR_GP_PIN(0, 10), /* SD0_DAT3 */ 3440 + [14] = RCAR_GP_PIN(0, 9), /* SD0_DAT2 */ 3441 + [15] = RCAR_GP_PIN(0, 8), /* SD0_DAT1 */ 3442 + [16] = RCAR_GP_PIN(0, 7), /* SD0_DAT0 */ 3443 + [17] = RCAR_GP_PIN(0, 6), /* SD0_CMD */ 3444 + [18] = RCAR_GP_PIN(0, 5), /* SD0_CLK */ 3445 + [19] = RCAR_GP_PIN(0, 4), /* CLKOUT */ 3446 + [20] = PIN_NMI, /* NMI */ 3447 + [21] = RCAR_GP_PIN(0, 3), /* USB1_OVC */ 3448 + [22] = RCAR_GP_PIN(0, 2), /* USB1_PWEN */ 3449 + [23] = RCAR_GP_PIN(0, 1), /* USB0_OVC */ 3450 + [24] = RCAR_GP_PIN(0, 0), /* USB0_PWEN */ 3451 + [25] = SH_PFC_PIN_NONE, 3452 + [26] = PIN_TDO, /* TDO */ 3453 + [27] = PIN_TDI, /* TDI */ 3454 + [28] = PIN_TMS, /* TMS */ 3455 + [29] = PIN_TCK, /* TCK */ 3456 + [30] = PIN_TRST_N, /* TRST# */ 3457 + [31] = PIN_PRESETOUT_N, /* PRESETOUT# */ 3458 + } }, 3459 + { PINMUX_BIAS_REG("N/A", 0, "PUPR0", 0xe6060100) { 3460 + /* PUPR0 pull-down pins */ 3461 + [ 0] = SH_PFC_PIN_NONE, 3462 + [ 1] = SH_PFC_PIN_NONE, 3463 + [ 2] = SH_PFC_PIN_NONE, 3464 + [ 3] = SH_PFC_PIN_NONE, 3465 + [ 4] = SH_PFC_PIN_NONE, 3466 + [ 5] = SH_PFC_PIN_NONE, 3467 + [ 6] = SH_PFC_PIN_NONE, 3468 + [ 7] = SH_PFC_PIN_NONE, 3469 + [ 8] = SH_PFC_PIN_NONE, 3470 + [ 9] = SH_PFC_PIN_NONE, 3471 + [10] = SH_PFC_PIN_NONE, 3472 + [11] = SH_PFC_PIN_NONE, 3473 + [12] = SH_PFC_PIN_NONE, 3474 + [13] = SH_PFC_PIN_NONE, 3475 + [14] = SH_PFC_PIN_NONE, 3476 + [15] = SH_PFC_PIN_NONE, 3477 + [16] = SH_PFC_PIN_NONE, 3478 + [17] = SH_PFC_PIN_NONE, 3479 + [18] = SH_PFC_PIN_NONE, 3480 + [19] = SH_PFC_PIN_NONE, 3481 + [20] = SH_PFC_PIN_NONE, 3482 + [21] = SH_PFC_PIN_NONE, 3483 + [22] = SH_PFC_PIN_NONE, 3484 + [23] = SH_PFC_PIN_NONE, 3485 + [24] = SH_PFC_PIN_NONE, 3486 + [25] = PIN_ASEBRK_N_ACK, /* ASEBRK#/ACK */ 3487 + [26] = SH_PFC_PIN_NONE, 3488 + [27] = SH_PFC_PIN_NONE, 3489 + [28] = SH_PFC_PIN_NONE, 3490 + [29] = SH_PFC_PIN_NONE, 3491 + [30] = SH_PFC_PIN_NONE, 3492 + [31] = SH_PFC_PIN_NONE, 3493 + } }, 3494 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 3495 + [ 0] = RCAR_GP_PIN(2, 9), /* DU0_DG1 */ 3496 + [ 1] = RCAR_GP_PIN(2, 8), /* DU0_DG0 */ 3497 + [ 2] = RCAR_GP_PIN(2, 7), /* DU0_DR7 */ 3498 + [ 3] = RCAR_GP_PIN(2, 6), /* DU0_DR6 */ 3499 + [ 4] = RCAR_GP_PIN(2, 5), /* DU0_DR5 */ 3500 + [ 5] = RCAR_GP_PIN(2, 4), /* DU0_DR4 */ 3501 + [ 6] = RCAR_GP_PIN(2, 3), /* DU0_DR3 */ 3502 + [ 7] = RCAR_GP_PIN(2, 2), /* DU0_DR2 */ 3503 + [ 8] = RCAR_GP_PIN(2, 1), /* DU0_DR1 */ 3504 + [ 9] = RCAR_GP_PIN(2, 0), /* DU0_DR0 */ 3505 + [10] = RCAR_GP_PIN(1, 22), /* EX_WAIT0 */ 3506 + [11] = RCAR_GP_PIN(1, 21), /* QSPI0_SSL */ 3507 + [12] = RCAR_GP_PIN(1, 20), /* QSPI0_IO3 */ 3508 + [13] = RCAR_GP_PIN(1, 19), /* QSPI0_IO2 */ 3509 + [14] = RCAR_GP_PIN(1, 18), /* QSPI0_MISO/QSPI0_IO1 */ 3510 + [15] = RCAR_GP_PIN(1, 17), /* QSPI0_MOSI/QSPI0_IO0 */ 3511 + [16] = RCAR_GP_PIN(1, 16), /* QSPI0_SPCLK */ 3512 + [17] = RCAR_GP_PIN(1, 15), /* D15 */ 3513 + [18] = RCAR_GP_PIN(1, 14), /* D14 */ 3514 + [19] = RCAR_GP_PIN(1, 13), /* D13 */ 3515 + [20] = RCAR_GP_PIN(1, 12), /* D12 */ 3516 + [21] = RCAR_GP_PIN(1, 11), /* D11 */ 3517 + [22] = RCAR_GP_PIN(1, 10), /* D10 */ 3518 + [23] = RCAR_GP_PIN(1, 9), /* D9 */ 3519 + [24] = RCAR_GP_PIN(1, 8), /* D8 */ 3520 + [25] = RCAR_GP_PIN(1, 7), /* D7 */ 3521 + [26] = RCAR_GP_PIN(1, 6), /* D6 */ 3522 + [27] = RCAR_GP_PIN(1, 5), /* D5 */ 3523 + [28] = RCAR_GP_PIN(1, 4), /* D4 */ 3524 + [29] = RCAR_GP_PIN(1, 3), /* D3 */ 3525 + [30] = RCAR_GP_PIN(1, 2), /* D2 */ 3526 + [31] = RCAR_GP_PIN(1, 1), /* D1 */ 3527 + } }, 3528 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 3529 + [ 0] = RCAR_GP_PIN(3, 9), /* VI1_CLKENB */ 3530 + [ 1] = RCAR_GP_PIN(3, 8), /* VI1_DATA7 */ 3531 + [ 2] = RCAR_GP_PIN(3, 7), /* VI1_DATA6 */ 3532 + [ 3] = RCAR_GP_PIN(3, 6), /* VI1_DATA5 */ 3533 + [ 4] = RCAR_GP_PIN(3, 5), /* VI1_DATA4 */ 3534 + [ 5] = RCAR_GP_PIN(3, 4), /* VI1_DATA3 */ 3535 + [ 6] = RCAR_GP_PIN(3, 3), /* VI1_DATA2 */ 3536 + [ 7] = RCAR_GP_PIN(3, 2), /* VI1_DATA1 */ 3537 + [ 8] = RCAR_GP_PIN(3, 1), /* VI1_DATA0 */ 3538 + [ 9] = RCAR_GP_PIN(3, 0), /* VI1_CLK */ 3539 + [10] = RCAR_GP_PIN(2, 31), /* DU0_CDE */ 3540 + [11] = RCAR_GP_PIN(2, 30), /* DU0_DISP */ 3541 + [12] = RCAR_GP_PIN(2, 29), /* DU0_EXODDF/DU0_ODDF_DISP_CDE */ 3542 + [13] = RCAR_GP_PIN(2, 28), /* DU0_EXVSYNC/DU0_VSYNC */ 3543 + [14] = RCAR_GP_PIN(2, 27), /* DU0_EXHSYNC/DU0_HSYNC */ 3544 + [15] = RCAR_GP_PIN(2, 26), /* DU0_DOTCLKOUT1 */ 3545 + [16] = RCAR_GP_PIN(2, 25), /* DU0_DOTCLKOUT0 */ 3546 + [17] = RCAR_GP_PIN(2, 24), /* DU0_DOTCLKIN */ 3547 + [18] = RCAR_GP_PIN(2, 23), /* DU0_DB7 */ 3548 + [19] = RCAR_GP_PIN(2, 22), /* DU0_DB6 */ 3549 + [20] = RCAR_GP_PIN(2, 21), /* DU0_DB5 */ 3550 + [21] = RCAR_GP_PIN(2, 20), /* DU0_DB4 */ 3551 + [22] = RCAR_GP_PIN(2, 19), /* DU0_DB3 */ 3552 + [23] = RCAR_GP_PIN(2, 18), /* DU0_DB2 */ 3553 + [24] = RCAR_GP_PIN(2, 17), /* DU0_DB1 */ 3554 + [25] = RCAR_GP_PIN(2, 16), /* DU0_DB0 */ 3555 + [26] = RCAR_GP_PIN(2, 15), /* DU0_DG7 */ 3556 + [27] = RCAR_GP_PIN(2, 14), /* DU0_DG6 */ 3557 + [28] = RCAR_GP_PIN(2, 13), /* DU0_DG5 */ 3558 + [29] = RCAR_GP_PIN(2, 12), /* DU0_DG4 */ 3559 + [30] = RCAR_GP_PIN(2, 11), /* DU0_DG3 */ 3560 + [31] = RCAR_GP_PIN(2, 10), /* DU0_DG2 */ 3561 + } }, 3562 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 3563 + [ 0] = RCAR_GP_PIN(4, 21), /* SD2_WP */ 3564 + [ 1] = RCAR_GP_PIN(4, 20), /* SD2_CD */ 3565 + [ 2] = RCAR_GP_PIN(4, 19), /* SD2_DAT3 */ 3566 + [ 3] = RCAR_GP_PIN(4, 18), /* SD2_DAT2 */ 3567 + [ 4] = RCAR_GP_PIN(4, 17), /* SD2_DAT1 */ 3568 + [ 5] = RCAR_GP_PIN(4, 16), /* SD2_DAT0 */ 3569 + [ 6] = RCAR_GP_PIN(4, 15), /* SD2_CMD */ 3570 + [ 7] = RCAR_GP_PIN(4, 14), /* SD2_CLK */ 3571 + [ 8] = RCAR_GP_PIN(4, 13), /* HRTS1#_A */ 3572 + [ 9] = RCAR_GP_PIN(4, 12), /* HCTS1#_A */ 3573 + [10] = RCAR_GP_PIN(4, 11), /* HTX1_A */ 3574 + [11] = RCAR_GP_PIN(4, 10), /* HRX1_A */ 3575 + [12] = RCAR_GP_PIN(4, 9), /* MSIOF0_SS2_A */ 3576 + [13] = RCAR_GP_PIN(4, 8), /* MSIOF0_SS1_A */ 3577 + [14] = RCAR_GP_PIN(4, 7), /* MSIOF0_SYNC_A */ 3578 + [15] = RCAR_GP_PIN(4, 6), /* MSIOF0_SCK_A */ 3579 + [16] = RCAR_GP_PIN(4, 5), /* MSIOF0_TXD_A */ 3580 + [17] = RCAR_GP_PIN(4, 4), /* MSIOF0_RXD_A */ 3581 + [18] = RCAR_GP_PIN(4, 3), /* SDA1_A */ 3582 + [19] = RCAR_GP_PIN(4, 2), /* SCL1_A */ 3583 + [20] = RCAR_GP_PIN(4, 1), /* SDA0_A */ 3584 + [21] = RCAR_GP_PIN(4, 0), /* SCL0_A */ 3585 + [22] = RCAR_GP_PIN(3, 29), /* AVB_TXD5 */ 3586 + [23] = RCAR_GP_PIN(3, 28), /* AVB_TXD4 */ 3587 + [24] = RCAR_GP_PIN(3, 27), /* AVB_TXD3 */ 3588 + [25] = RCAR_GP_PIN(3, 16), /* VI1_DATA11 */ 3589 + [26] = RCAR_GP_PIN(3, 15), /* VI1_DATA10 */ 3590 + [27] = RCAR_GP_PIN(3, 14), /* VI1_DATA9 */ 3591 + [28] = RCAR_GP_PIN(3, 13), /* VI1_DATA8 */ 3592 + [29] = RCAR_GP_PIN(3, 12), /* VI1_VSYNC# */ 3593 + [30] = RCAR_GP_PIN(3, 11), /* VI1_HSYNC# */ 3594 + [31] = RCAR_GP_PIN(3, 10), /* VI1_FIELD */ 3595 + } }, 3596 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 3597 + [ 0] = RCAR_GP_PIN(5, 27), /* SSI_SDATA9_A */ 3598 + [ 1] = RCAR_GP_PIN(5, 26), /* SSI_WS9_A */ 3599 + [ 2] = RCAR_GP_PIN(5, 25), /* SSI_SCK9_A */ 3600 + [ 3] = RCAR_GP_PIN(5, 24), /* SSI_SDATA2_A */ 3601 + [ 4] = RCAR_GP_PIN(5, 23), /* SSI_WS2_A */ 3602 + [ 5] = RCAR_GP_PIN(5, 22), /* SSI_SCK2_A */ 3603 + [ 6] = RCAR_GP_PIN(5, 21), /* SSI_SDATA1_A */ 3604 + [ 7] = RCAR_GP_PIN(5, 20), /* SSI_WS1_A */ 3605 + [ 8] = RCAR_GP_PIN(5, 19), /* SSI_SDATA8_A */ 3606 + [ 9] = RCAR_GP_PIN(5, 18), /* SSI_SCK1_A */ 3607 + [10] = RCAR_GP_PIN(5, 17), /* SSI_SDATA4_A */ 3608 + [11] = RCAR_GP_PIN(5, 16), /* SSI_WS4_A */ 3609 + [12] = RCAR_GP_PIN(5, 15), /* SSI_SCK4_A */ 3610 + [13] = RCAR_GP_PIN(5, 14), /* SSI_SDATA3 */ 3611 + [14] = RCAR_GP_PIN(5, 13), /* SSI_WS34 */ 3612 + [15] = RCAR_GP_PIN(5, 12), /* SSI_SCK34 */ 3613 + [16] = RCAR_GP_PIN(5, 11), /* SSI_SDATA0_A */ 3614 + [17] = RCAR_GP_PIN(5, 10), /* SSI_WS0129_A */ 3615 + [18] = RCAR_GP_PIN(5, 9), /* SSI_SCK0129_A */ 3616 + [19] = RCAR_GP_PIN(5, 8), /* SSI_SDATA7_A */ 3617 + [20] = RCAR_GP_PIN(5, 7), /* SSI_WS78_A */ 3618 + [21] = RCAR_GP_PIN(5, 6), /* SSI_SCK78_A */ 3619 + [22] = RCAR_GP_PIN(5, 5), /* SSI_SDATA6_A */ 3620 + [23] = RCAR_GP_PIN(5, 4), /* SSI_WS6_A */ 3621 + [24] = RCAR_GP_PIN(5, 3), /* SSI_SCK6_A */ 3622 + [25] = RCAR_GP_PIN(5, 2), /* SSI_SDATA5_A */ 3623 + [26] = RCAR_GP_PIN(5, 1), /* SSI_WS5_A */ 3624 + [27] = RCAR_GP_PIN(5, 0), /* SSI_SCK5_A */ 3625 + [28] = RCAR_GP_PIN(4, 25), /* SDA2_A */ 3626 + [29] = RCAR_GP_PIN(4, 24), /* SCL2_A */ 3627 + [30] = RCAR_GP_PIN(4, 23), /* TX3_A */ 3628 + [31] = RCAR_GP_PIN(4, 22), /* RX3_A */ 3629 + } }, 3630 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 3631 + [ 0] = SH_PFC_PIN_NONE, 3632 + [ 1] = SH_PFC_PIN_NONE, 3633 + [ 2] = SH_PFC_PIN_NONE, 3634 + [ 3] = SH_PFC_PIN_NONE, 3635 + [ 4] = SH_PFC_PIN_NONE, 3636 + [ 5] = SH_PFC_PIN_NONE, 3637 + [ 6] = SH_PFC_PIN_NONE, 3638 + [ 7] = SH_PFC_PIN_NONE, 3639 + [ 8] = SH_PFC_PIN_NONE, 3640 + [ 9] = SH_PFC_PIN_NONE, 3641 + [10] = SH_PFC_PIN_NONE, 3642 + [11] = SH_PFC_PIN_NONE, 3643 + [12] = SH_PFC_PIN_NONE, 3644 + [13] = SH_PFC_PIN_NONE, 3645 + [14] = SH_PFC_PIN_NONE, 3646 + [15] = SH_PFC_PIN_NONE, 3647 + [16] = SH_PFC_PIN_NONE, 3648 + [17] = SH_PFC_PIN_NONE, 3649 + [18] = SH_PFC_PIN_NONE, 3650 + [19] = SH_PFC_PIN_NONE, 3651 + [20] = SH_PFC_PIN_NONE, 3652 + [21] = SH_PFC_PIN_NONE, 3653 + [22] = SH_PFC_PIN_NONE, 3654 + [23] = SH_PFC_PIN_NONE, 3655 + [24] = SH_PFC_PIN_NONE, 3656 + [25] = SH_PFC_PIN_NONE, 3657 + [26] = SH_PFC_PIN_NONE, 3658 + [27] = SH_PFC_PIN_NONE, 3659 + [28] = RCAR_GP_PIN(5, 31), /* AUDIO_CLKOUT_A */ 3660 + [29] = RCAR_GP_PIN(5, 30), /* AUDIO_CLKC_A */ 3661 + [30] = RCAR_GP_PIN(5, 29), /* AUDIO_CLKB_A */ 3662 + [31] = RCAR_GP_PIN(5, 28), /* AUDIO_CLKA_A */ 3663 + } }, 3664 + { /* sentinel */ } 3665 + }; 3666 + 3442 3667 static const struct sh_pfc_soc_operations r8a77470_pinmux_ops = { 3443 3668 .pin_to_pocctrl = r8a77470_pin_to_pocctrl, 3669 + .get_bias = rcar_pinmux_get_bias, 3670 + .set_bias = rcar_pinmux_set_bias, 3444 3671 }; 3445 3672 3446 3673 #ifdef CONFIG_PINCTRL_PFC_R8A77470 ··· 3705 3440 .nr_functions = ARRAY_SIZE(pinmux_functions), 3706 3441 3707 3442 .cfg_regs = pinmux_config_regs, 3443 + .bias_regs = pinmux_bias_regs, 3708 3444 3709 3445 .pinmux_data = pinmux_data, 3710 3446 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+294 -7
drivers/pinctrl/renesas/pfc-r8a7790.c
··· 21 21 * which case they support both 3.3V and 1.8V signalling. 22 22 */ 23 23 #define CPU_ALL_GP(fn, sfx) \ 24 - PORT_GP_32(0, fn, sfx), \ 25 - PORT_GP_30(1, fn, sfx), \ 26 - PORT_GP_30(2, fn, sfx), \ 27 - PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 28 - PORT_GP_32(4, fn, sfx), \ 29 - PORT_GP_32(5, fn, sfx) 24 + PORT_GP_CFG_32(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 25 + PORT_GP_CFG_30(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 26 + PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 27 + PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 28 + PORT_GP_CFG_32(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 29 + PORT_GP_CFG_32(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 30 30 31 31 #define CPU_ALL_NOGP(fn) \ 32 + PIN_NOGP_CFG(ASEBRK_N_ACK, "ASEBRK#/ACK", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 32 33 PIN_NOGP(IIC0_SDA, "AF15", fn), \ 33 34 PIN_NOGP(IIC0_SCL, "AG15", fn), \ 34 35 PIN_NOGP(IIC3_SDA, "AH15", fn), \ 35 - PIN_NOGP(IIC3_SCL, "AJ15", fn) 36 + PIN_NOGP(IIC3_SCL, "AJ15", fn), \ 37 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 38 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 39 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 40 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 36 41 37 42 enum { 38 43 PINMUX_RESERVED = 0, ··· 5997 5992 return 31 - (pin & 0x1f); 5998 5993 } 5999 5994 5995 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5996 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 5997 + [ 0] = RCAR_GP_PIN(0, 16), /* A0 */ 5998 + [ 1] = RCAR_GP_PIN(0, 17), /* A1 */ 5999 + [ 2] = RCAR_GP_PIN(0, 18), /* A2 */ 6000 + [ 3] = RCAR_GP_PIN(0, 19), /* A3 */ 6001 + [ 4] = RCAR_GP_PIN(0, 20), /* A4 */ 6002 + [ 5] = RCAR_GP_PIN(0, 21), /* A5 */ 6003 + [ 6] = RCAR_GP_PIN(0, 22), /* A6 */ 6004 + [ 7] = RCAR_GP_PIN(0, 23), /* A7 */ 6005 + [ 8] = RCAR_GP_PIN(0, 24), /* A8 */ 6006 + [ 9] = RCAR_GP_PIN(0, 25), /* A9 */ 6007 + [10] = RCAR_GP_PIN(0, 26), /* A10 */ 6008 + [11] = RCAR_GP_PIN(0, 27), /* A11 */ 6009 + [12] = RCAR_GP_PIN(0, 28), /* A12 */ 6010 + [13] = RCAR_GP_PIN(0, 29), /* A13 */ 6011 + [14] = RCAR_GP_PIN(0, 30), /* A14 */ 6012 + [15] = RCAR_GP_PIN(0, 31), /* A15 */ 6013 + [16] = RCAR_GP_PIN(1, 0), /* A16 */ 6014 + [17] = RCAR_GP_PIN(1, 1), /* A17 */ 6015 + [18] = RCAR_GP_PIN(1, 2), /* A18 */ 6016 + [19] = RCAR_GP_PIN(1, 3), /* A19 */ 6017 + [20] = RCAR_GP_PIN(1, 4), /* A20 */ 6018 + [21] = RCAR_GP_PIN(1, 5), /* A21 */ 6019 + [22] = RCAR_GP_PIN(1, 6), /* A22 */ 6020 + [23] = RCAR_GP_PIN(1, 7), /* A23 */ 6021 + [24] = RCAR_GP_PIN(1, 8), /* A24 */ 6022 + [25] = RCAR_GP_PIN(1, 9), /* A25 */ 6023 + [26] = RCAR_GP_PIN(1, 12), /* EX_CS0# */ 6024 + [27] = RCAR_GP_PIN(1, 13), /* EX_CS1# */ 6025 + [28] = RCAR_GP_PIN(1, 14), /* EX_CS2# */ 6026 + [29] = RCAR_GP_PIN(1, 15), /* EX_CS3# */ 6027 + [30] = RCAR_GP_PIN(1, 16), /* EX_CS4# */ 6028 + [31] = RCAR_GP_PIN(1, 17), /* EX_CS5# */ 6029 + } }, 6030 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 6031 + /* PUPR1 pull-up pins */ 6032 + [ 0] = RCAR_GP_PIN(1, 18), /* BS# */ 6033 + [ 1] = RCAR_GP_PIN(1, 19), /* RD# */ 6034 + [ 2] = RCAR_GP_PIN(1, 20), /* RD/WR# */ 6035 + [ 3] = RCAR_GP_PIN(1, 21), /* WE0# */ 6036 + [ 4] = RCAR_GP_PIN(1, 22), /* WE1# */ 6037 + [ 5] = RCAR_GP_PIN(1, 23), /* EX_WAIT0 */ 6038 + [ 6] = RCAR_GP_PIN(5, 24), /* AVS1 */ 6039 + [ 7] = RCAR_GP_PIN(5, 25), /* AVS2 */ 6040 + [ 8] = RCAR_GP_PIN(1, 10), /* CS0# */ 6041 + [ 9] = RCAR_GP_PIN(1, 11), /* CS1#/A26 */ 6042 + [10] = PIN_TRST_N, /* TRST# */ 6043 + [11] = PIN_TCK, /* TCK */ 6044 + [12] = PIN_TMS, /* TMS */ 6045 + [13] = PIN_TDI, /* TDI */ 6046 + [14] = SH_PFC_PIN_NONE, 6047 + [15] = SH_PFC_PIN_NONE, 6048 + [16] = RCAR_GP_PIN(0, 0), /* D0 */ 6049 + [17] = RCAR_GP_PIN(0, 1), /* D1 */ 6050 + [18] = RCAR_GP_PIN(0, 2), /* D2 */ 6051 + [19] = RCAR_GP_PIN(0, 3), /* D3 */ 6052 + [20] = RCAR_GP_PIN(0, 4), /* D4 */ 6053 + [21] = RCAR_GP_PIN(0, 5), /* D5 */ 6054 + [22] = RCAR_GP_PIN(0, 6), /* D6 */ 6055 + [23] = RCAR_GP_PIN(0, 7), /* D7 */ 6056 + [24] = RCAR_GP_PIN(0, 8), /* D8 */ 6057 + [25] = RCAR_GP_PIN(0, 9), /* D9 */ 6058 + [26] = RCAR_GP_PIN(0, 10), /* D10 */ 6059 + [27] = RCAR_GP_PIN(0, 11), /* D11 */ 6060 + [28] = RCAR_GP_PIN(0, 12), /* D12 */ 6061 + [29] = RCAR_GP_PIN(0, 13), /* D13 */ 6062 + [30] = RCAR_GP_PIN(0, 14), /* D14 */ 6063 + [31] = RCAR_GP_PIN(0, 15), /* D15 */ 6064 + } }, 6065 + { PINMUX_BIAS_REG("N/A", 0, "PUPR1", 0xe6060104) { 6066 + /* PUPR1 pull-down pins */ 6067 + [ 0] = SH_PFC_PIN_NONE, 6068 + [ 1] = SH_PFC_PIN_NONE, 6069 + [ 2] = SH_PFC_PIN_NONE, 6070 + [ 3] = SH_PFC_PIN_NONE, 6071 + [ 4] = SH_PFC_PIN_NONE, 6072 + [ 5] = SH_PFC_PIN_NONE, 6073 + [ 6] = SH_PFC_PIN_NONE, 6074 + [ 7] = SH_PFC_PIN_NONE, 6075 + [ 8] = SH_PFC_PIN_NONE, 6076 + [ 9] = SH_PFC_PIN_NONE, 6077 + [10] = SH_PFC_PIN_NONE, 6078 + [11] = SH_PFC_PIN_NONE, 6079 + [12] = SH_PFC_PIN_NONE, 6080 + [13] = SH_PFC_PIN_NONE, 6081 + [14] = SH_PFC_PIN_NONE, 6082 + [15] = PIN_ASEBRK_N_ACK, /* ASEBRK#/ACK */ 6083 + [16] = SH_PFC_PIN_NONE, 6084 + [17] = SH_PFC_PIN_NONE, 6085 + [18] = SH_PFC_PIN_NONE, 6086 + [19] = SH_PFC_PIN_NONE, 6087 + [20] = SH_PFC_PIN_NONE, 6088 + [21] = SH_PFC_PIN_NONE, 6089 + [22] = SH_PFC_PIN_NONE, 6090 + [23] = SH_PFC_PIN_NONE, 6091 + [24] = SH_PFC_PIN_NONE, 6092 + [25] = SH_PFC_PIN_NONE, 6093 + [26] = SH_PFC_PIN_NONE, 6094 + [27] = SH_PFC_PIN_NONE, 6095 + [28] = SH_PFC_PIN_NONE, 6096 + [29] = SH_PFC_PIN_NONE, 6097 + [30] = SH_PFC_PIN_NONE, 6098 + [31] = SH_PFC_PIN_NONE, 6099 + } }, 6100 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 6101 + [ 0] = RCAR_GP_PIN(5, 28), /* DU_DOTCLKIN2 */ 6102 + [ 1] = SH_PFC_PIN_NONE, 6103 + [ 2] = SH_PFC_PIN_NONE, 6104 + [ 3] = SH_PFC_PIN_NONE, 6105 + [ 4] = SH_PFC_PIN_NONE, 6106 + [ 5] = RCAR_GP_PIN(2, 0), /* VI0_CLK */ 6107 + [ 6] = RCAR_GP_PIN(2, 1), /* VI0_DATA0_VI0_B0 */ 6108 + [ 7] = RCAR_GP_PIN(2, 2), /* VI0_DATA1_VI0_B1 */ 6109 + [ 8] = RCAR_GP_PIN(2, 3), /* VI0_DATA2_VI0_B2 */ 6110 + [ 9] = RCAR_GP_PIN(2, 4), /* VI0_DATA3_VI0_B3 */ 6111 + [10] = RCAR_GP_PIN(2, 5), /* VI0_DATA4_VI0_B4 */ 6112 + [11] = RCAR_GP_PIN(2, 6), /* VI0_DATA5_VI0_B5 */ 6113 + [12] = RCAR_GP_PIN(2, 7), /* VI0_DATA6_VI0_B6 */ 6114 + [13] = RCAR_GP_PIN(2, 8), /* VI0_DATA7_VI0_B7 */ 6115 + [14] = RCAR_GP_PIN(2, 9), /* VI1_CLK */ 6116 + [15] = RCAR_GP_PIN(2, 10), /* VI1_DATA0_VI1_B0 */ 6117 + [16] = RCAR_GP_PIN(2, 11), /* VI1_DATA1_VI1_B1 */ 6118 + [17] = RCAR_GP_PIN(2, 12), /* VI1_DATA2_VI1_B2 */ 6119 + [18] = RCAR_GP_PIN(2, 13), /* VI1_DATA3_VI1_B3 */ 6120 + [19] = RCAR_GP_PIN(2, 14), /* VI1_DATA4_VI1_B4 */ 6121 + [20] = RCAR_GP_PIN(2, 15), /* VI1_DATA5_VI1_B5 */ 6122 + [21] = RCAR_GP_PIN(2, 16), /* VI1_DATA6_VI1_B6 */ 6123 + [22] = RCAR_GP_PIN(2, 17), /* VI1_DATA7_VI1_B7 */ 6124 + [23] = RCAR_GP_PIN(5, 27), /* DU_DOTCLKIN1 */ 6125 + [24] = SH_PFC_PIN_NONE, 6126 + [25] = SH_PFC_PIN_NONE, 6127 + [26] = SH_PFC_PIN_NONE, 6128 + [27] = RCAR_GP_PIN(4, 0), /* MLB_CLK */ 6129 + [28] = RCAR_GP_PIN(4, 1), /* MLB_SIG */ 6130 + [29] = RCAR_GP_PIN(4, 2), /* MLB_DAT */ 6131 + [30] = SH_PFC_PIN_NONE, 6132 + [31] = RCAR_GP_PIN(5, 26), /* DU_DOTCLKIN0 */ 6133 + } }, 6134 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 6135 + [ 0] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 6136 + [ 1] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 6137 + [ 2] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ 6138 + [ 3] = RCAR_GP_PIN(3, 3), /* SD0_DAT1 */ 6139 + [ 4] = RCAR_GP_PIN(3, 4), /* SD0_DAT2 */ 6140 + [ 5] = RCAR_GP_PIN(3, 5), /* SD0_DAT3 */ 6141 + [ 6] = RCAR_GP_PIN(3, 6), /* SD0_CD */ 6142 + [ 7] = RCAR_GP_PIN(3, 7), /* SD0_WP */ 6143 + [ 8] = RCAR_GP_PIN(3, 8), /* SD1_CLK */ 6144 + [ 9] = RCAR_GP_PIN(3, 9), /* SD1_CMD */ 6145 + [10] = RCAR_GP_PIN(3, 10), /* SD1_DAT0 */ 6146 + [11] = RCAR_GP_PIN(3, 11), /* SD1_DAT1 */ 6147 + [12] = RCAR_GP_PIN(3, 12), /* SD1_DAT2 */ 6148 + [13] = RCAR_GP_PIN(3, 13), /* SD1_DAT3 */ 6149 + [14] = RCAR_GP_PIN(3, 14), /* SD1_CD */ 6150 + [15] = RCAR_GP_PIN(3, 15), /* SD1_WP */ 6151 + [16] = RCAR_GP_PIN(3, 16), /* SD2_CLK */ 6152 + [17] = RCAR_GP_PIN(3, 17), /* SD2_CMD */ 6153 + [18] = RCAR_GP_PIN(3, 18), /* SD2_DAT0 */ 6154 + [19] = RCAR_GP_PIN(3, 19), /* SD2_DAT1 */ 6155 + [20] = RCAR_GP_PIN(3, 20), /* SD2_DAT2 */ 6156 + [21] = RCAR_GP_PIN(3, 21), /* SD2_DAT3 */ 6157 + [22] = RCAR_GP_PIN(3, 22), /* SD2_CD */ 6158 + [23] = RCAR_GP_PIN(3, 23), /* SD2_WP */ 6159 + [24] = RCAR_GP_PIN(3, 24), /* SD3_CLK */ 6160 + [25] = RCAR_GP_PIN(3, 25), /* SD3_CMD */ 6161 + [26] = RCAR_GP_PIN(3, 26), /* SD3_DAT0 */ 6162 + [27] = RCAR_GP_PIN(3, 27), /* SD3_DAT1 */ 6163 + [28] = RCAR_GP_PIN(3, 28), /* SD3_DAT2 */ 6164 + [29] = RCAR_GP_PIN(3, 29), /* SD3_DAT3 */ 6165 + [30] = RCAR_GP_PIN(3, 30), /* SD3_CD */ 6166 + [31] = RCAR_GP_PIN(3, 31), /* SD3_WP */ 6167 + } }, 6168 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 6169 + [ 0] = RCAR_GP_PIN(4, 3), /* SSI_SCK0129 */ 6170 + [ 1] = RCAR_GP_PIN(4, 4), /* SSI_WS0129 */ 6171 + [ 2] = RCAR_GP_PIN(4, 5), /* SSI_SDATA0 */ 6172 + [ 3] = RCAR_GP_PIN(4, 6), /* SSI_SDATA1 */ 6173 + [ 4] = RCAR_GP_PIN(4, 7), /* SSI_SDATA2 */ 6174 + [ 5] = RCAR_GP_PIN(4, 8), /* SSI_SCK34 */ 6175 + [ 6] = RCAR_GP_PIN(4, 9), /* SSI_WS34 */ 6176 + [ 7] = RCAR_GP_PIN(4, 10), /* SSI_SDATA3 */ 6177 + [ 8] = RCAR_GP_PIN(4, 11), /* SSI_SCK4 */ 6178 + [ 9] = RCAR_GP_PIN(4, 12), /* SSI_WS4 */ 6179 + [10] = RCAR_GP_PIN(4, 13), /* SSI_SDATA4 */ 6180 + [11] = RCAR_GP_PIN(4, 14), /* SSI_SCK5 */ 6181 + [12] = RCAR_GP_PIN(4, 15), /* SSI_WS5 */ 6182 + [13] = RCAR_GP_PIN(4, 16), /* SSI_SDATA5 */ 6183 + [14] = RCAR_GP_PIN(4, 17), /* SSI_SCK6 */ 6184 + [15] = RCAR_GP_PIN(4, 18), /* SSI_WS6 */ 6185 + [16] = RCAR_GP_PIN(4, 19), /* SSI_SDATA6 */ 6186 + [17] = RCAR_GP_PIN(4, 20), /* SSI_SCK78 */ 6187 + [18] = RCAR_GP_PIN(4, 21), /* SSI_WS78 */ 6188 + [19] = RCAR_GP_PIN(4, 22), /* SSI_SDATA7 */ 6189 + [20] = RCAR_GP_PIN(4, 23), /* SSI_SDATA8 */ 6190 + [21] = RCAR_GP_PIN(4, 24), /* SSI_SDATA9 */ 6191 + [22] = RCAR_GP_PIN(4, 25), /* AUDIO_CLKA */ 6192 + [23] = RCAR_GP_PIN(4, 26), /* AUDIO_CLKB */ 6193 + [24] = RCAR_GP_PIN(1, 24), /* DREQ0 */ 6194 + [25] = RCAR_GP_PIN(1, 25), /* DACK0 */ 6195 + [26] = RCAR_GP_PIN(1, 26), /* DREQ1 */ 6196 + [27] = RCAR_GP_PIN(1, 27), /* DACK1 */ 6197 + [28] = RCAR_GP_PIN(1, 28), /* DREQ2 */ 6198 + [29] = RCAR_GP_PIN(1, 29), /* DACK2 */ 6199 + [30] = RCAR_GP_PIN(2, 18), /* ETH_CRS_DV */ 6200 + [31] = RCAR_GP_PIN(2, 19), /* ETH_RX_ER */ 6201 + } }, 6202 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 6203 + [ 0] = RCAR_GP_PIN(4, 27), /* SCIFA0_SCK */ 6204 + [ 1] = RCAR_GP_PIN(4, 28), /* SCIFA0_RXD */ 6205 + [ 2] = RCAR_GP_PIN(4, 29), /* SCIFA0_TXD */ 6206 + [ 3] = RCAR_GP_PIN(4, 30), /* SCIFA0_CTS# */ 6207 + [ 4] = RCAR_GP_PIN(4, 31), /* SCIFA0_RTS# */ 6208 + [ 5] = RCAR_GP_PIN(5, 0), /* SCIFA1_RXD */ 6209 + [ 6] = RCAR_GP_PIN(5, 1), /* SCIFA1_TXD */ 6210 + [ 7] = RCAR_GP_PIN(5, 2), /* SCIFA1_CTS# */ 6211 + [ 8] = RCAR_GP_PIN(5, 3), /* SCIFA1_RTS# */ 6212 + [ 9] = RCAR_GP_PIN(5, 4), /* SCIFA2_SCK */ 6213 + [10] = RCAR_GP_PIN(5, 5), /* SCIFA2_RXD */ 6214 + [11] = RCAR_GP_PIN(5, 6), /* SCIFA2_TXD */ 6215 + [12] = RCAR_GP_PIN(5, 7), /* HSCK0 */ 6216 + [13] = RCAR_GP_PIN(5, 8), /* HRX0 */ 6217 + [14] = RCAR_GP_PIN(5, 9), /* HTX0 */ 6218 + [15] = RCAR_GP_PIN(5, 10), /* HCTS0# */ 6219 + [16] = RCAR_GP_PIN(5, 11), /* HRTS0# */ 6220 + [17] = RCAR_GP_PIN(5, 12), /* MSIOF0_SCK */ 6221 + [18] = RCAR_GP_PIN(5, 13), /* MSIOF0_SYNC */ 6222 + [19] = RCAR_GP_PIN(5, 14), /* MSIOF0_SS1 */ 6223 + [20] = RCAR_GP_PIN(5, 15), /* MSIOF0_TXD */ 6224 + [21] = RCAR_GP_PIN(5, 16), /* MSIOF0_SS2 */ 6225 + [22] = RCAR_GP_PIN(5, 17), /* MSIOF0_RXD */ 6226 + [23] = RCAR_GP_PIN(5, 18), /* USB0_PWEN */ 6227 + [24] = RCAR_GP_PIN(5, 19), /* USB0_OVC_VBUS */ 6228 + [25] = RCAR_GP_PIN(5, 20), /* USB1_PWEN */ 6229 + [26] = RCAR_GP_PIN(5, 21), /* USB1_OVC */ 6230 + [27] = RCAR_GP_PIN(5, 22), /* USB2_PWEN */ 6231 + [28] = RCAR_GP_PIN(5, 23), /* USB2_OVC */ 6232 + [29] = RCAR_GP_PIN(2, 20), /* ETH_RXD0 */ 6233 + [30] = RCAR_GP_PIN(2, 21), /* ETH_RXD1 */ 6234 + [31] = RCAR_GP_PIN(2, 22), /* ETH_LINK */ 6235 + } }, 6236 + { PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) { 6237 + [ 0] = RCAR_GP_PIN(2, 23), /* ETH_REF_CLK */ 6238 + [ 1] = RCAR_GP_PIN(2, 24), /* ETH_MDIO */ 6239 + [ 2] = RCAR_GP_PIN(2, 25), /* ETH_TXD1 */ 6240 + [ 3] = RCAR_GP_PIN(2, 26), /* ETH_TX_EN */ 6241 + [ 4] = RCAR_GP_PIN(2, 27), /* ETH_MAGIC */ 6242 + [ 5] = RCAR_GP_PIN(2, 28), /* ETH_TXD0 */ 6243 + [ 6] = RCAR_GP_PIN(2, 29), /* ETH_MDC */ 6244 + [ 7] = RCAR_GP_PIN(5, 29), /* PWM0 */ 6245 + [ 8] = RCAR_GP_PIN(5, 30), /* PWM1 */ 6246 + [ 9] = RCAR_GP_PIN(5, 31), /* PWM2 */ 6247 + [10] = SH_PFC_PIN_NONE, 6248 + [11] = SH_PFC_PIN_NONE, 6249 + [12] = SH_PFC_PIN_NONE, 6250 + [13] = SH_PFC_PIN_NONE, 6251 + [14] = SH_PFC_PIN_NONE, 6252 + [15] = SH_PFC_PIN_NONE, 6253 + [16] = SH_PFC_PIN_NONE, 6254 + [17] = SH_PFC_PIN_NONE, 6255 + [18] = SH_PFC_PIN_NONE, 6256 + [19] = SH_PFC_PIN_NONE, 6257 + [20] = SH_PFC_PIN_NONE, 6258 + [21] = SH_PFC_PIN_NONE, 6259 + [22] = SH_PFC_PIN_NONE, 6260 + [23] = SH_PFC_PIN_NONE, 6261 + [24] = SH_PFC_PIN_NONE, 6262 + [25] = SH_PFC_PIN_NONE, 6263 + [26] = SH_PFC_PIN_NONE, 6264 + [27] = SH_PFC_PIN_NONE, 6265 + [28] = SH_PFC_PIN_NONE, 6266 + [29] = SH_PFC_PIN_NONE, 6267 + [30] = SH_PFC_PIN_NONE, 6268 + [31] = SH_PFC_PIN_NONE, 6269 + } }, 6270 + { /* sentinel */ } 6271 + }; 6272 + 6000 6273 static const struct soc_device_attribute r8a7790_tdsel[] = { 6001 6274 { .soc_id = "r8a7790", .revision = "ES1.0" }, 6002 6275 { /* sentinel */ } ··· 6292 6009 static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = { 6293 6010 .init = r8a7790_pinmux_soc_init, 6294 6011 .pin_to_pocctrl = r8a7790_pin_to_pocctrl, 6012 + .get_bias = rcar_pinmux_get_bias, 6013 + .set_bias = rcar_pinmux_set_bias, 6295 6014 }; 6296 6015 6297 6016 #ifdef CONFIG_PINCTRL_PFC_R8A7742 ··· 6312 6027 .nr_functions = ARRAY_SIZE(pinmux_functions.common), 6313 6028 6314 6029 .cfg_regs = pinmux_config_regs, 6030 + .bias_regs = pinmux_bias_regs, 6315 6031 6316 6032 .pinmux_data = pinmux_data, 6317 6033 .pinmux_data_size = ARRAY_SIZE(pinmux_data), ··· 6337 6051 ARRAY_SIZE(pinmux_functions.automotive), 6338 6052 6339 6053 .cfg_regs = pinmux_config_regs, 6054 + .bias_regs = pinmux_bias_regs, 6340 6055 6341 6056 .pinmux_data = pinmux_data, 6342 6057 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+521 -12
drivers/pinctrl/renesas/pfc-r8a7792.c
··· 11 11 #include "sh_pfc.h" 12 12 13 13 #define CPU_ALL_GP(fn, sfx) \ 14 - PORT_GP_29(0, fn, sfx), \ 15 - PORT_GP_23(1, fn, sfx), \ 16 - PORT_GP_32(2, fn, sfx), \ 17 - PORT_GP_28(3, fn, sfx), \ 18 - PORT_GP_17(4, fn, sfx), \ 19 - PORT_GP_17(5, fn, sfx), \ 20 - PORT_GP_17(6, fn, sfx), \ 21 - PORT_GP_17(7, fn, sfx), \ 22 - PORT_GP_17(8, fn, sfx), \ 23 - PORT_GP_17(9, fn, sfx), \ 24 - PORT_GP_32(10, fn, sfx), \ 25 - PORT_GP_30(11, fn, sfx) 14 + PORT_GP_CFG_29(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 15 + PORT_GP_CFG_23(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 16 + PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 17 + PORT_GP_CFG_28(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 18 + PORT_GP_CFG_17(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 19 + PORT_GP_CFG_17(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 20 + PORT_GP_CFG_17(6, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 21 + PORT_GP_CFG_17(7, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 22 + PORT_GP_CFG_17(8, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 23 + PORT_GP_CFG_17(9, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 24 + PORT_GP_CFG_32(10, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 25 + PORT_GP_CFG_30(11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 26 + 27 + #define CPU_ALL_NOGP(fn) \ 28 + PIN_NOGP_CFG(DU0_DOTCLKIN, "DU0_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP), \ 29 + PIN_NOGP_CFG(DU0_DOTCLKOUT, "DU0_DOTCLKOUT", fn, SH_PFC_PIN_CFG_PULL_UP), \ 30 + PIN_NOGP_CFG(DU1_DOTCLKIN, "DU1_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP), \ 31 + PIN_NOGP_CFG(DU1_DOTCLKOUT, "DU1_DOTCLKOUT", fn, SH_PFC_PIN_CFG_PULL_UP), \ 32 + PIN_NOGP_CFG(EDBGREQ, "EDBGREQ", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 33 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 34 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 26 37 27 38 enum { 28 39 PINMUX_RESERVED = 0, ··· 734 723 PINMUX_IPSR_GPSR(IP7_20, AUDIO_CLKB), 735 724 }; 736 725 726 + /* 727 + * Pins not associated with a GPIO port. 728 + */ 729 + enum { 730 + GP_ASSIGN_LAST(), 731 + NOGP_ALL(), 732 + }; 733 + 737 734 static const struct sh_pfc_pin pinmux_pins[] = { 738 735 PINMUX_GPIO_GP_ALL(), 736 + PINMUX_NOGP_ALL(), 739 737 }; 740 738 741 739 /* - AVB -------------------------------------------------------------------- */ ··· 2799 2779 { }, 2800 2780 }; 2801 2781 2782 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2783 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 2784 + [ 0] = RCAR_GP_PIN(0, 0), /* DU0_DR0_DATA0 */ 2785 + [ 1] = RCAR_GP_PIN(0, 1), /* DU0_DR1_DATA1 */ 2786 + [ 2] = RCAR_GP_PIN(0, 2), /* DU0_DR2_Y4_DATA2 */ 2787 + [ 3] = RCAR_GP_PIN(0, 3), /* DU0_DR3_Y5_DATA3 */ 2788 + [ 4] = RCAR_GP_PIN(0, 4), /* DU0_DR4_Y6_DATA4 */ 2789 + [ 5] = RCAR_GP_PIN(0, 5), /* DU0_DR5_Y7_DATA5 */ 2790 + [ 6] = RCAR_GP_PIN(0, 6), /* DU0_DR6_Y8_DATA6 */ 2791 + [ 7] = RCAR_GP_PIN(0, 7), /* DU0_DR7_Y9_DATA7 */ 2792 + [ 8] = RCAR_GP_PIN(0, 8), /* DU0_DG0_DATA8 */ 2793 + [ 9] = RCAR_GP_PIN(0, 9), /* DU0_DG1_DATA9 */ 2794 + [10] = RCAR_GP_PIN(0, 10), /* DU0_DG2_C6_DATA10 */ 2795 + [11] = RCAR_GP_PIN(0, 11), /* DU0_DG3_C7_DATA11 */ 2796 + [12] = RCAR_GP_PIN(0, 12), /* DU0_DG4_Y0_DATA12 */ 2797 + [13] = RCAR_GP_PIN(0, 13), /* DU0_DG5_Y1_DATA13 */ 2798 + [14] = RCAR_GP_PIN(0, 14), /* DU0_DG6_Y2_DATA14 */ 2799 + [15] = RCAR_GP_PIN(0, 15), /* DU0_DG7_Y3_DATA15 */ 2800 + [16] = RCAR_GP_PIN(0, 16), /* DU0_DB0 */ 2801 + [17] = RCAR_GP_PIN(0, 17), /* DU0_DB1 */ 2802 + [18] = RCAR_GP_PIN(0, 18), /* DU0_DB2_C0 */ 2803 + [19] = RCAR_GP_PIN(0, 19), /* DU0_DB3_C1 */ 2804 + [20] = RCAR_GP_PIN(0, 20), /* DU0_DB4_C2 */ 2805 + [21] = RCAR_GP_PIN(0, 21), /* DU0_DB5_C3 */ 2806 + [22] = RCAR_GP_PIN(0, 22), /* DU0_DB6_C4 */ 2807 + [23] = RCAR_GP_PIN(0, 23), /* DU0_DB7_C5 */ 2808 + [24] = RCAR_GP_PIN(0, 24), /* DU0_EXHSYNC/DU0_HSYNC */ 2809 + [25] = RCAR_GP_PIN(0, 25), /* DU0_EXVSYNC/DU0_VSYNC */ 2810 + [26] = RCAR_GP_PIN(0, 26), /* DU0_EXODDF/DU0_ODDF_DISP_CDE */ 2811 + [27] = RCAR_GP_PIN(0, 27), /* DU0_DISP */ 2812 + [28] = RCAR_GP_PIN(0, 28), /* DU0_CDE */ 2813 + [29] = SH_PFC_PIN_NONE, 2814 + [30] = SH_PFC_PIN_NONE, 2815 + [31] = SH_PFC_PIN_NONE, 2816 + } }, 2817 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 2818 + [ 0] = RCAR_GP_PIN(1, 0), /* DU1_DR2_Y4_DATA0 */ 2819 + [ 1] = RCAR_GP_PIN(1, 1), /* DU1_DR3_Y5_DATA1 */ 2820 + [ 2] = RCAR_GP_PIN(1, 2), /* DU1_DR4_Y6_DATA2 */ 2821 + [ 3] = RCAR_GP_PIN(1, 3), /* DU1_DR5_Y7_DATA3 */ 2822 + [ 4] = RCAR_GP_PIN(1, 4), /* DU1_DR6_DATA4 */ 2823 + [ 5] = RCAR_GP_PIN(1, 5), /* DU1_DR7_DATA5 */ 2824 + [ 6] = RCAR_GP_PIN(1, 6), /* DU1_DG2_C6_DATA6 */ 2825 + [ 7] = RCAR_GP_PIN(1, 7), /* DU1_DG3_C7_DATA7 */ 2826 + [ 8] = RCAR_GP_PIN(1, 8), /* DU1_DG4_Y0_DATA8 */ 2827 + [ 9] = RCAR_GP_PIN(1, 9), /* DU1_DG5_Y1_DATA9 */ 2828 + [10] = RCAR_GP_PIN(1, 10), /* DU1_DG6_Y2_DATA10 */ 2829 + [11] = RCAR_GP_PIN(1, 11), /* DU1_DG7_Y3_DATA11 */ 2830 + [12] = RCAR_GP_PIN(1, 12), /* DU1_DB2_C0_DATA12 */ 2831 + [13] = RCAR_GP_PIN(1, 13), /* DU1_DB3_C1_DATA13 */ 2832 + [14] = RCAR_GP_PIN(1, 14), /* DU1_DB4_C2_DATA14 */ 2833 + [15] = RCAR_GP_PIN(1, 15), /* DU1_DB5_C3_DATA15 */ 2834 + [16] = RCAR_GP_PIN(1, 16), /* DU1_DB6_C4 */ 2835 + [17] = RCAR_GP_PIN(1, 17), /* DU1_DB7_C5 */ 2836 + [18] = RCAR_GP_PIN(1, 18), /* DU1_EXHSYNC/DU1_HSYNC */ 2837 + [19] = RCAR_GP_PIN(1, 19), /* DU1_EXVSYNC/DU1_VSYNC */ 2838 + [20] = RCAR_GP_PIN(1, 20), /* DU1_EXODDF/DU1_ODDF_DISP_CDE */ 2839 + [21] = RCAR_GP_PIN(1, 21), /* DU1_DISP */ 2840 + [22] = RCAR_GP_PIN(1, 22), /* DU1_CDE */ 2841 + [23] = SH_PFC_PIN_NONE, 2842 + [24] = SH_PFC_PIN_NONE, 2843 + [25] = SH_PFC_PIN_NONE, 2844 + [26] = SH_PFC_PIN_NONE, 2845 + [27] = SH_PFC_PIN_NONE, 2846 + [28] = SH_PFC_PIN_NONE, 2847 + [29] = SH_PFC_PIN_NONE, 2848 + [30] = SH_PFC_PIN_NONE, 2849 + [31] = SH_PFC_PIN_NONE, 2850 + } }, 2851 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 2852 + [ 0] = RCAR_GP_PIN(2, 0), /* D0 */ 2853 + [ 1] = RCAR_GP_PIN(2, 1), /* D1 */ 2854 + [ 2] = RCAR_GP_PIN(2, 2), /* D2 */ 2855 + [ 3] = RCAR_GP_PIN(2, 3), /* D3 */ 2856 + [ 4] = RCAR_GP_PIN(2, 4), /* D4 */ 2857 + [ 5] = RCAR_GP_PIN(2, 5), /* D5 */ 2858 + [ 6] = RCAR_GP_PIN(2, 6), /* D6 */ 2859 + [ 7] = RCAR_GP_PIN(2, 7), /* D7 */ 2860 + [ 8] = RCAR_GP_PIN(2, 8), /* D8 */ 2861 + [ 9] = RCAR_GP_PIN(2, 9), /* D9 */ 2862 + [10] = RCAR_GP_PIN(2, 10), /* D10 */ 2863 + [11] = RCAR_GP_PIN(2, 11), /* D11 */ 2864 + [12] = RCAR_GP_PIN(2, 12), /* D12 */ 2865 + [13] = RCAR_GP_PIN(2, 13), /* D13 */ 2866 + [14] = RCAR_GP_PIN(2, 14), /* D14 */ 2867 + [15] = RCAR_GP_PIN(2, 15), /* D15 */ 2868 + [16] = RCAR_GP_PIN(2, 16), /* A0 */ 2869 + [17] = RCAR_GP_PIN(2, 17), /* A1 */ 2870 + [18] = RCAR_GP_PIN(2, 18), /* A2 */ 2871 + [19] = RCAR_GP_PIN(2, 19), /* A3 */ 2872 + [20] = RCAR_GP_PIN(2, 20), /* A4 */ 2873 + [21] = RCAR_GP_PIN(2, 21), /* A5 */ 2874 + [22] = RCAR_GP_PIN(2, 22), /* A6 */ 2875 + [23] = RCAR_GP_PIN(2, 23), /* A7 */ 2876 + [24] = RCAR_GP_PIN(2, 24), /* A8 */ 2877 + [25] = RCAR_GP_PIN(2, 25), /* A9 */ 2878 + [26] = RCAR_GP_PIN(2, 26), /* A10 */ 2879 + [27] = RCAR_GP_PIN(2, 27), /* A11 */ 2880 + [28] = RCAR_GP_PIN(2, 28), /* A12 */ 2881 + [29] = RCAR_GP_PIN(2, 29), /* A13 */ 2882 + [30] = RCAR_GP_PIN(2, 30), /* A14 */ 2883 + [31] = RCAR_GP_PIN(2, 31), /* A15 */ 2884 + } }, 2885 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 2886 + [ 0] = RCAR_GP_PIN(3, 0), /* A16 */ 2887 + [ 1] = RCAR_GP_PIN(3, 1), /* A17 */ 2888 + [ 2] = RCAR_GP_PIN(3, 2), /* A18 */ 2889 + [ 3] = RCAR_GP_PIN(3, 3), /* A19 */ 2890 + [ 4] = RCAR_GP_PIN(3, 4), /* A20 */ 2891 + [ 5] = RCAR_GP_PIN(3, 5), /* A21 */ 2892 + [ 6] = RCAR_GP_PIN(3, 6), /* CS1#/A26 */ 2893 + [ 7] = RCAR_GP_PIN(3, 7), /* EX_CS0# */ 2894 + [ 8] = RCAR_GP_PIN(3, 8), /* EX_CS1# */ 2895 + [ 9] = RCAR_GP_PIN(3, 9), /* EX_CS2# */ 2896 + [10] = RCAR_GP_PIN(3, 10), /* EX_CS3# */ 2897 + [11] = RCAR_GP_PIN(3, 11), /* EX_CS4# */ 2898 + [12] = RCAR_GP_PIN(3, 12), /* EX_CS5# */ 2899 + [13] = RCAR_GP_PIN(3, 13), /* BS# */ 2900 + [14] = RCAR_GP_PIN(3, 14), /* RD# */ 2901 + [15] = RCAR_GP_PIN(3, 15), /* RD/WR# */ 2902 + [16] = RCAR_GP_PIN(3, 16), /* WE0# */ 2903 + [17] = RCAR_GP_PIN(3, 17), /* WE1# */ 2904 + [18] = RCAR_GP_PIN(3, 18), /* EX_WAIT0 */ 2905 + [19] = RCAR_GP_PIN(3, 19), /* IRQ0 */ 2906 + [20] = RCAR_GP_PIN(3, 20), /* IRQ1 */ 2907 + [21] = RCAR_GP_PIN(3, 21), /* IRQ2 */ 2908 + [22] = RCAR_GP_PIN(3, 22), /* IRQ3 */ 2909 + [23] = RCAR_GP_PIN(3, 23), /* A22 */ 2910 + [24] = RCAR_GP_PIN(3, 24), /* A23 */ 2911 + [25] = RCAR_GP_PIN(3, 25), /* A24 */ 2912 + [26] = RCAR_GP_PIN(3, 26), /* A25 */ 2913 + [27] = RCAR_GP_PIN(3, 27), /* CS0# */ 2914 + [28] = SH_PFC_PIN_NONE, 2915 + [29] = SH_PFC_PIN_NONE, 2916 + [30] = SH_PFC_PIN_NONE, 2917 + [31] = SH_PFC_PIN_NONE, 2918 + } }, 2919 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 2920 + [ 0] = RCAR_GP_PIN(4, 0), /* VI0_CLK */ 2921 + [ 1] = RCAR_GP_PIN(4, 1), /* VI0_CLKENB */ 2922 + [ 2] = RCAR_GP_PIN(4, 2), /* VI0_HSYNC# */ 2923 + [ 3] = RCAR_GP_PIN(4, 3), /* VI0_VSYNC# */ 2924 + [ 4] = RCAR_GP_PIN(4, 4), /* VI0_D0_B0_C0 */ 2925 + [ 5] = RCAR_GP_PIN(4, 5), /* VI0_D1_B1_C1 */ 2926 + [ 6] = RCAR_GP_PIN(4, 6), /* VI0_D2_B2_C2 */ 2927 + [ 7] = RCAR_GP_PIN(4, 7), /* VI0_D3_B3_C3 */ 2928 + [ 8] = RCAR_GP_PIN(4, 8), /* VI0_D4_B4_C4 */ 2929 + [ 9] = RCAR_GP_PIN(4, 9), /* VI0_D5_B5_C5 */ 2930 + [10] = RCAR_GP_PIN(4, 10), /* VI0_D6_B6_C6 */ 2931 + [11] = RCAR_GP_PIN(4, 11), /* VI0_D7_B7_C7 */ 2932 + [12] = RCAR_GP_PIN(4, 12), /* VI0_D8_G0_Y0 */ 2933 + [13] = RCAR_GP_PIN(4, 13), /* VI0_D9_G1_Y1 */ 2934 + [14] = RCAR_GP_PIN(4, 14), /* VI0_D10_G2_Y2 */ 2935 + [15] = RCAR_GP_PIN(4, 15), /* VI0_D11_G3_Y3 */ 2936 + [16] = RCAR_GP_PIN(4, 16), /* VI0_FIELD */ 2937 + [17] = SH_PFC_PIN_NONE, 2938 + [18] = SH_PFC_PIN_NONE, 2939 + [19] = SH_PFC_PIN_NONE, 2940 + [20] = SH_PFC_PIN_NONE, 2941 + [21] = SH_PFC_PIN_NONE, 2942 + [22] = SH_PFC_PIN_NONE, 2943 + [23] = SH_PFC_PIN_NONE, 2944 + [24] = SH_PFC_PIN_NONE, 2945 + [25] = SH_PFC_PIN_NONE, 2946 + [26] = SH_PFC_PIN_NONE, 2947 + [27] = SH_PFC_PIN_NONE, 2948 + [28] = SH_PFC_PIN_NONE, 2949 + [29] = SH_PFC_PIN_NONE, 2950 + [30] = SH_PFC_PIN_NONE, 2951 + [31] = SH_PFC_PIN_NONE, 2952 + } }, 2953 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 2954 + [ 0] = RCAR_GP_PIN(5, 0), /* VI1_CLK */ 2955 + [ 1] = RCAR_GP_PIN(5, 1), /* VI1_CLKENB */ 2956 + [ 2] = RCAR_GP_PIN(5, 2), /* VI1_HSYNC# */ 2957 + [ 3] = RCAR_GP_PIN(5, 3), /* VI1_VSYNC# */ 2958 + [ 4] = RCAR_GP_PIN(5, 4), /* VI1_D0_B0_C0 */ 2959 + [ 5] = RCAR_GP_PIN(5, 5), /* VI1_D1_B1_C1 */ 2960 + [ 6] = RCAR_GP_PIN(5, 6), /* VI1_D2_B2_C2 */ 2961 + [ 7] = RCAR_GP_PIN(5, 7), /* VI1_D3_B3_C3 */ 2962 + [ 8] = RCAR_GP_PIN(5, 8), /* VI1_D4_B4_C4 */ 2963 + [ 9] = RCAR_GP_PIN(5, 9), /* VI1_D5_B5_C5 */ 2964 + [10] = RCAR_GP_PIN(5, 10), /* VI1_D6_B6_C6 */ 2965 + [11] = RCAR_GP_PIN(5, 11), /* VI1_D7_B7_C7 */ 2966 + [12] = RCAR_GP_PIN(5, 12), /* VI1_D8_G0_Y0 */ 2967 + [13] = RCAR_GP_PIN(5, 13), /* VI1_D9_G1_Y1 */ 2968 + [14] = RCAR_GP_PIN(5, 14), /* VI1_D10_G2_Y2 */ 2969 + [15] = RCAR_GP_PIN(5, 15), /* VI1_D11_G3_Y3 */ 2970 + [16] = RCAR_GP_PIN(5, 16), /* VI1_FIELD */ 2971 + [17] = SH_PFC_PIN_NONE, 2972 + [18] = SH_PFC_PIN_NONE, 2973 + [19] = SH_PFC_PIN_NONE, 2974 + [20] = SH_PFC_PIN_NONE, 2975 + [21] = SH_PFC_PIN_NONE, 2976 + [22] = SH_PFC_PIN_NONE, 2977 + [23] = SH_PFC_PIN_NONE, 2978 + [24] = SH_PFC_PIN_NONE, 2979 + [25] = SH_PFC_PIN_NONE, 2980 + [26] = SH_PFC_PIN_NONE, 2981 + [27] = SH_PFC_PIN_NONE, 2982 + [28] = SH_PFC_PIN_NONE, 2983 + [29] = SH_PFC_PIN_NONE, 2984 + [30] = SH_PFC_PIN_NONE, 2985 + [31] = SH_PFC_PIN_NONE, 2986 + } }, 2987 + { PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) { 2988 + [ 0] = RCAR_GP_PIN(6, 0), /* VI2_CLK */ 2989 + [ 1] = RCAR_GP_PIN(6, 1), /* VI2_CLKENB */ 2990 + [ 2] = RCAR_GP_PIN(6, 2), /* VI2_HSYNC# */ 2991 + [ 3] = RCAR_GP_PIN(6, 3), /* VI2_VSYNC# */ 2992 + [ 4] = RCAR_GP_PIN(6, 4), /* VI2_D0_C0 */ 2993 + [ 5] = RCAR_GP_PIN(6, 5), /* VI2_D1_C1 */ 2994 + [ 6] = RCAR_GP_PIN(6, 6), /* VI2_D2_C2 */ 2995 + [ 7] = RCAR_GP_PIN(6, 7), /* VI2_D3_C3 */ 2996 + [ 8] = RCAR_GP_PIN(6, 8), /* VI2_D4_C4 */ 2997 + [ 9] = RCAR_GP_PIN(6, 9), /* VI2_D5_C5 */ 2998 + [10] = RCAR_GP_PIN(6, 10), /* VI2_D6_C6 */ 2999 + [11] = RCAR_GP_PIN(6, 11), /* VI2_D7_C7 */ 3000 + [12] = RCAR_GP_PIN(6, 12), /* VI2_D8_Y0 */ 3001 + [13] = RCAR_GP_PIN(6, 13), /* VI2_D9_Y1 */ 3002 + [14] = RCAR_GP_PIN(6, 14), /* VI2_D10_Y2 */ 3003 + [15] = RCAR_GP_PIN(6, 15), /* VI2_D11_Y3 */ 3004 + [16] = RCAR_GP_PIN(6, 16), /* VI2_FIELD */ 3005 + [17] = SH_PFC_PIN_NONE, 3006 + [18] = SH_PFC_PIN_NONE, 3007 + [19] = SH_PFC_PIN_NONE, 3008 + [20] = SH_PFC_PIN_NONE, 3009 + [21] = SH_PFC_PIN_NONE, 3010 + [22] = SH_PFC_PIN_NONE, 3011 + [23] = SH_PFC_PIN_NONE, 3012 + [24] = SH_PFC_PIN_NONE, 3013 + [25] = SH_PFC_PIN_NONE, 3014 + [26] = SH_PFC_PIN_NONE, 3015 + [27] = SH_PFC_PIN_NONE, 3016 + [28] = SH_PFC_PIN_NONE, 3017 + [29] = SH_PFC_PIN_NONE, 3018 + [30] = SH_PFC_PIN_NONE, 3019 + [31] = SH_PFC_PIN_NONE, 3020 + } }, 3021 + { PINMUX_BIAS_REG("PUPR7", 0xe606011c, "N/A", 0) { 3022 + [ 0] = RCAR_GP_PIN(7, 0), /* VI3_CLK */ 3023 + [ 1] = RCAR_GP_PIN(7, 1), /* VI3_CLKENB */ 3024 + [ 2] = RCAR_GP_PIN(7, 2), /* VI3_HSYNC# */ 3025 + [ 3] = RCAR_GP_PIN(7, 3), /* VI3_VSYNC# */ 3026 + [ 4] = RCAR_GP_PIN(7, 4), /* VI3_D0_C0 */ 3027 + [ 5] = RCAR_GP_PIN(7, 5), /* VI3_D1_C1 */ 3028 + [ 6] = RCAR_GP_PIN(7, 6), /* VI3_D2_C2 */ 3029 + [ 7] = RCAR_GP_PIN(7, 7), /* VI3_D3_C3 */ 3030 + [ 8] = RCAR_GP_PIN(7, 8), /* VI3_D4_C4 */ 3031 + [ 9] = RCAR_GP_PIN(7, 9), /* VI3_D5_C5 */ 3032 + [10] = RCAR_GP_PIN(7, 10), /* VI3_D6_C6 */ 3033 + [11] = RCAR_GP_PIN(7, 11), /* VI3_D7_C7 */ 3034 + [12] = RCAR_GP_PIN(7, 12), /* VI3_D8_Y0 */ 3035 + [13] = RCAR_GP_PIN(7, 13), /* VI3_D9_Y1 */ 3036 + [14] = RCAR_GP_PIN(7, 14), /* VI3_D10_Y2 */ 3037 + [15] = RCAR_GP_PIN(7, 15), /* VI3_D11_Y3 */ 3038 + [16] = RCAR_GP_PIN(7, 16), /* VI3_FIELD */ 3039 + [17] = SH_PFC_PIN_NONE, 3040 + [18] = SH_PFC_PIN_NONE, 3041 + [19] = SH_PFC_PIN_NONE, 3042 + [20] = SH_PFC_PIN_NONE, 3043 + [21] = SH_PFC_PIN_NONE, 3044 + [22] = SH_PFC_PIN_NONE, 3045 + [23] = SH_PFC_PIN_NONE, 3046 + [24] = SH_PFC_PIN_NONE, 3047 + [25] = SH_PFC_PIN_NONE, 3048 + [26] = SH_PFC_PIN_NONE, 3049 + [27] = SH_PFC_PIN_NONE, 3050 + [28] = SH_PFC_PIN_NONE, 3051 + [29] = SH_PFC_PIN_NONE, 3052 + [30] = SH_PFC_PIN_NONE, 3053 + [31] = SH_PFC_PIN_NONE, 3054 + } }, 3055 + { PINMUX_BIAS_REG("PUPR8", 0xe6060120, "N/A", 0) { 3056 + [ 0] = RCAR_GP_PIN(8, 0), /* VI4_CLK */ 3057 + [ 1] = RCAR_GP_PIN(8, 1), /* VI4_CLKENB */ 3058 + [ 2] = RCAR_GP_PIN(8, 2), /* VI4_HSYNC# */ 3059 + [ 3] = RCAR_GP_PIN(8, 3), /* VI4_VSYNC# */ 3060 + [ 4] = RCAR_GP_PIN(8, 4), /* VI4_D0_C0 */ 3061 + [ 5] = RCAR_GP_PIN(8, 5), /* VI4_D1_C1 */ 3062 + [ 6] = RCAR_GP_PIN(8, 6), /* VI4_D2_C2 */ 3063 + [ 7] = RCAR_GP_PIN(8, 7), /* VI4_D3_C3 */ 3064 + [ 8] = RCAR_GP_PIN(8, 8), /* VI4_D4_C4 */ 3065 + [ 9] = RCAR_GP_PIN(8, 9), /* VI4_D5_C5 */ 3066 + [10] = RCAR_GP_PIN(8, 10), /* VI4_D6_C6 */ 3067 + [11] = RCAR_GP_PIN(8, 11), /* VI4_D7_C7 */ 3068 + [12] = RCAR_GP_PIN(8, 12), /* VI4_D8_Y0 */ 3069 + [13] = RCAR_GP_PIN(8, 13), /* VI4_D9_Y1 */ 3070 + [14] = RCAR_GP_PIN(8, 14), /* VI4_D10_Y2 */ 3071 + [15] = RCAR_GP_PIN(8, 15), /* VI4_D11_Y3 */ 3072 + [16] = RCAR_GP_PIN(8, 16), /* VI4_FIELD */ 3073 + [17] = SH_PFC_PIN_NONE, 3074 + [18] = SH_PFC_PIN_NONE, 3075 + [19] = SH_PFC_PIN_NONE, 3076 + [20] = SH_PFC_PIN_NONE, 3077 + [21] = SH_PFC_PIN_NONE, 3078 + [22] = SH_PFC_PIN_NONE, 3079 + [23] = SH_PFC_PIN_NONE, 3080 + [24] = SH_PFC_PIN_NONE, 3081 + [25] = SH_PFC_PIN_NONE, 3082 + [26] = SH_PFC_PIN_NONE, 3083 + [27] = SH_PFC_PIN_NONE, 3084 + [28] = SH_PFC_PIN_NONE, 3085 + [29] = SH_PFC_PIN_NONE, 3086 + [30] = SH_PFC_PIN_NONE, 3087 + [31] = SH_PFC_PIN_NONE, 3088 + } }, 3089 + { PINMUX_BIAS_REG("PUPR9", 0xe6060124, "N/A", 0) { 3090 + [ 0] = RCAR_GP_PIN(9, 0), /* VI5_CLK */ 3091 + [ 1] = RCAR_GP_PIN(9, 1), /* VI5_CLKENB */ 3092 + [ 2] = RCAR_GP_PIN(9, 2), /* VI5_HSYNC# */ 3093 + [ 3] = RCAR_GP_PIN(9, 3), /* VI5_VSYNC# */ 3094 + [ 4] = RCAR_GP_PIN(9, 4), /* VI5_D0_C0 */ 3095 + [ 5] = RCAR_GP_PIN(9, 5), /* VI5_D1_C1 */ 3096 + [ 6] = RCAR_GP_PIN(9, 6), /* VI5_D2_C2 */ 3097 + [ 7] = RCAR_GP_PIN(9, 7), /* VI5_D3_C3 */ 3098 + [ 8] = RCAR_GP_PIN(9, 8), /* VI5_D4_C4 */ 3099 + [ 9] = RCAR_GP_PIN(9, 9), /* VI5_D5_C5 */ 3100 + [10] = RCAR_GP_PIN(9, 10), /* VI5_D6_C6 */ 3101 + [11] = RCAR_GP_PIN(9, 11), /* VI5_D7_C7 */ 3102 + [12] = RCAR_GP_PIN(9, 12), /* VI5_D8_Y0 */ 3103 + [13] = RCAR_GP_PIN(9, 13), /* VI5_D9_Y1 */ 3104 + [14] = RCAR_GP_PIN(9, 14), /* VI5_D10_Y2 */ 3105 + [15] = RCAR_GP_PIN(9, 15), /* VI5_D11_Y3 */ 3106 + [16] = RCAR_GP_PIN(9, 16), /* VI5_FIELD */ 3107 + [17] = SH_PFC_PIN_NONE, 3108 + [18] = SH_PFC_PIN_NONE, 3109 + [19] = SH_PFC_PIN_NONE, 3110 + [20] = SH_PFC_PIN_NONE, 3111 + [21] = SH_PFC_PIN_NONE, 3112 + [22] = SH_PFC_PIN_NONE, 3113 + [23] = SH_PFC_PIN_NONE, 3114 + [24] = SH_PFC_PIN_NONE, 3115 + [25] = SH_PFC_PIN_NONE, 3116 + [26] = SH_PFC_PIN_NONE, 3117 + [27] = SH_PFC_PIN_NONE, 3118 + [28] = SH_PFC_PIN_NONE, 3119 + [29] = SH_PFC_PIN_NONE, 3120 + [30] = SH_PFC_PIN_NONE, 3121 + [31] = SH_PFC_PIN_NONE, 3122 + } }, 3123 + { PINMUX_BIAS_REG("PUPR10", 0xe6060128, "N/A", 0) { 3124 + [ 0] = RCAR_GP_PIN(10, 0), /* HSCK0 */ 3125 + [ 1] = RCAR_GP_PIN(10, 1), /* HCTS0# */ 3126 + [ 2] = RCAR_GP_PIN(10, 2), /* HRTS0# */ 3127 + [ 3] = RCAR_GP_PIN(10, 3), /* HTX0 */ 3128 + [ 4] = RCAR_GP_PIN(10, 4), /* HRX0 */ 3129 + [ 5] = RCAR_GP_PIN(10, 5), /* HSCK1 */ 3130 + [ 6] = RCAR_GP_PIN(10, 6), /* HRTS1# */ 3131 + [ 7] = RCAR_GP_PIN(10, 7), /* HCTS1# */ 3132 + [ 8] = RCAR_GP_PIN(10, 8), /* HTX1 */ 3133 + [ 9] = RCAR_GP_PIN(10, 9), /* HRX1 */ 3134 + [10] = RCAR_GP_PIN(10, 10), /* SCK0 */ 3135 + [11] = RCAR_GP_PIN(10, 11), /* CTS0# */ 3136 + [12] = RCAR_GP_PIN(10, 12), /* RTS0# */ 3137 + [13] = RCAR_GP_PIN(10, 13), /* TX0 */ 3138 + [14] = RCAR_GP_PIN(10, 14), /* RX0 */ 3139 + [15] = RCAR_GP_PIN(10, 15), /* SCK1 */ 3140 + [16] = RCAR_GP_PIN(10, 16), /* CTS1# */ 3141 + [17] = RCAR_GP_PIN(10, 17), /* RTS1# */ 3142 + [18] = RCAR_GP_PIN(10, 18), /* TX1 */ 3143 + [19] = RCAR_GP_PIN(10, 19), /* RX1 */ 3144 + [20] = RCAR_GP_PIN(10, 20), /* SCK2 */ 3145 + [21] = RCAR_GP_PIN(10, 21), /* TX2 */ 3146 + [22] = RCAR_GP_PIN(10, 22), /* RX2 */ 3147 + [23] = RCAR_GP_PIN(10, 23), /* SCK3 */ 3148 + [24] = RCAR_GP_PIN(10, 24), /* TX3 */ 3149 + [25] = RCAR_GP_PIN(10, 25), /* RX3 */ 3150 + [26] = RCAR_GP_PIN(10, 26), /* SCIF_CLK */ 3151 + [27] = RCAR_GP_PIN(10, 27), /* CAN0_TX */ 3152 + [28] = RCAR_GP_PIN(10, 28), /* CAN0_RX */ 3153 + [29] = RCAR_GP_PIN(10, 29), /* CAN_CLK */ 3154 + [30] = RCAR_GP_PIN(10, 30), /* CAN1_TX */ 3155 + [31] = RCAR_GP_PIN(10, 31), /* CAN1_RX */ 3156 + } }, 3157 + { PINMUX_BIAS_REG("PUPR11", 0xe606012c, "N/A", 0) { 3158 + [ 0] = RCAR_GP_PIN(11, 0), /* PWM0 */ 3159 + [ 1] = RCAR_GP_PIN(11, 1), /* PWM1 */ 3160 + [ 2] = RCAR_GP_PIN(11, 2), /* PWM2 */ 3161 + [ 3] = RCAR_GP_PIN(11, 3), /* PWM3 */ 3162 + [ 4] = RCAR_GP_PIN(11, 4), /* PWM4 */ 3163 + [ 5] = RCAR_GP_PIN(11, 5), /* SD0_CLK */ 3164 + [ 6] = RCAR_GP_PIN(11, 6), /* SD0_CMD */ 3165 + [ 7] = RCAR_GP_PIN(11, 7), /* SD0_DAT0 */ 3166 + [ 8] = RCAR_GP_PIN(11, 8), /* SD0_DAT1 */ 3167 + [ 9] = RCAR_GP_PIN(11, 9), /* SD0_DAT2 */ 3168 + [10] = RCAR_GP_PIN(11, 10), /* SD0_DAT3 */ 3169 + [11] = RCAR_GP_PIN(11, 11), /* SD0_CD */ 3170 + [12] = RCAR_GP_PIN(11, 12), /* SD0_WP */ 3171 + [13] = RCAR_GP_PIN(11, 13), /* SSI_SCK3 */ 3172 + [14] = RCAR_GP_PIN(11, 14), /* SSI_WS3 */ 3173 + [15] = RCAR_GP_PIN(11, 15), /* SSI_SDATA3 */ 3174 + [16] = RCAR_GP_PIN(11, 16), /* SSI_SCK4 */ 3175 + [17] = RCAR_GP_PIN(11, 17), /* SSI_WS4 */ 3176 + [18] = RCAR_GP_PIN(11, 18), /* SSI_SDATA4 */ 3177 + [19] = RCAR_GP_PIN(11, 19), /* AUDIO_CLKOUT */ 3178 + [20] = RCAR_GP_PIN(11, 20), /* AUDIO_CLKA */ 3179 + [21] = RCAR_GP_PIN(11, 21), /* AUDIO_CLKB */ 3180 + [22] = RCAR_GP_PIN(11, 22), /* ADICLK */ 3181 + [23] = RCAR_GP_PIN(11, 23), /* ADICS_SAMP */ 3182 + [24] = RCAR_GP_PIN(11, 24), /* ADIDATA */ 3183 + [25] = RCAR_GP_PIN(11, 25), /* ADICHS0 */ 3184 + [26] = RCAR_GP_PIN(11, 26), /* ADICHS1 */ 3185 + [27] = RCAR_GP_PIN(11, 27), /* ADICHS2 */ 3186 + [28] = RCAR_GP_PIN(11, 28), /* AVS1 */ 3187 + [29] = RCAR_GP_PIN(11, 29), /* AVS2 */ 3188 + [30] = SH_PFC_PIN_NONE, 3189 + [31] = SH_PFC_PIN_NONE, 3190 + } }, 3191 + { PINMUX_BIAS_REG("PUPR12", 0xe6060130, "N/A", 0) { 3192 + /* PUPR12 pull-up pins */ 3193 + [ 0] = PIN_DU0_DOTCLKIN, /* DU0_DOTCLKIN */ 3194 + [ 1] = PIN_DU0_DOTCLKOUT, /* DU0_DOTCLKOUT */ 3195 + [ 2] = PIN_DU1_DOTCLKIN, /* DU1_DOTCLKIN */ 3196 + [ 3] = PIN_DU1_DOTCLKOUT, /* DU1_DOTCLKOUT */ 3197 + [ 4] = PIN_TRST_N, /* TRST# */ 3198 + [ 5] = PIN_TCK, /* TCK */ 3199 + [ 6] = PIN_TMS, /* TMS */ 3200 + [ 7] = PIN_TDI, /* TDI */ 3201 + [ 8] = SH_PFC_PIN_NONE, 3202 + [ 9] = SH_PFC_PIN_NONE, 3203 + [10] = SH_PFC_PIN_NONE, 3204 + [11] = SH_PFC_PIN_NONE, 3205 + [12] = SH_PFC_PIN_NONE, 3206 + [13] = SH_PFC_PIN_NONE, 3207 + [14] = SH_PFC_PIN_NONE, 3208 + [15] = SH_PFC_PIN_NONE, 3209 + [16] = SH_PFC_PIN_NONE, 3210 + [17] = SH_PFC_PIN_NONE, 3211 + [18] = SH_PFC_PIN_NONE, 3212 + [19] = SH_PFC_PIN_NONE, 3213 + [20] = SH_PFC_PIN_NONE, 3214 + [21] = SH_PFC_PIN_NONE, 3215 + [22] = SH_PFC_PIN_NONE, 3216 + [23] = SH_PFC_PIN_NONE, 3217 + [24] = SH_PFC_PIN_NONE, 3218 + [25] = SH_PFC_PIN_NONE, 3219 + [26] = SH_PFC_PIN_NONE, 3220 + [27] = SH_PFC_PIN_NONE, 3221 + [28] = SH_PFC_PIN_NONE, 3222 + [29] = SH_PFC_PIN_NONE, 3223 + [30] = SH_PFC_PIN_NONE, 3224 + [31] = SH_PFC_PIN_NONE, 3225 + } }, 3226 + { PINMUX_BIAS_REG("N/A", 0, "PUPR12", 0xe6060130) { 3227 + /* PUPR12 pull-down pins */ 3228 + [ 0] = SH_PFC_PIN_NONE, 3229 + [ 1] = SH_PFC_PIN_NONE, 3230 + [ 2] = SH_PFC_PIN_NONE, 3231 + [ 3] = SH_PFC_PIN_NONE, 3232 + [ 4] = SH_PFC_PIN_NONE, 3233 + [ 5] = SH_PFC_PIN_NONE, 3234 + [ 6] = SH_PFC_PIN_NONE, 3235 + [ 7] = SH_PFC_PIN_NONE, 3236 + [ 8] = PIN_EDBGREQ, /* EDBGREQ */ 3237 + [ 9] = SH_PFC_PIN_NONE, 3238 + [10] = SH_PFC_PIN_NONE, 3239 + [11] = SH_PFC_PIN_NONE, 3240 + [12] = SH_PFC_PIN_NONE, 3241 + [13] = SH_PFC_PIN_NONE, 3242 + [14] = SH_PFC_PIN_NONE, 3243 + [15] = SH_PFC_PIN_NONE, 3244 + [16] = SH_PFC_PIN_NONE, 3245 + [17] = SH_PFC_PIN_NONE, 3246 + [18] = SH_PFC_PIN_NONE, 3247 + [19] = SH_PFC_PIN_NONE, 3248 + [20] = SH_PFC_PIN_NONE, 3249 + [21] = SH_PFC_PIN_NONE, 3250 + [22] = SH_PFC_PIN_NONE, 3251 + [23] = SH_PFC_PIN_NONE, 3252 + [24] = SH_PFC_PIN_NONE, 3253 + [25] = SH_PFC_PIN_NONE, 3254 + [26] = SH_PFC_PIN_NONE, 3255 + [27] = SH_PFC_PIN_NONE, 3256 + [28] = SH_PFC_PIN_NONE, 3257 + [29] = SH_PFC_PIN_NONE, 3258 + [30] = SH_PFC_PIN_NONE, 3259 + [31] = SH_PFC_PIN_NONE, 3260 + } }, 3261 + { /* sentinel */ } 3262 + }; 3263 + 3264 + static const struct sh_pfc_soc_operations r8a7792_pinmux_ops = { 3265 + .get_bias = rcar_pinmux_get_bias, 3266 + .set_bias = rcar_pinmux_set_bias, 3267 + }; 3268 + 2802 3269 const struct sh_pfc_soc_info r8a7792_pinmux_info = { 2803 3270 .name = "r8a77920_pfc", 3271 + .ops = &r8a7792_pinmux_ops, 2804 3272 .unlock_reg = 0xe6060000, /* PMMR */ 2805 3273 2806 3274 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 3301 2793 .nr_functions = ARRAY_SIZE(pinmux_functions), 3302 2794 3303 2795 .cfg_regs = pinmux_config_regs, 2796 + .bias_regs = pinmux_bias_regs, 3304 2797 3305 2798 .pinmux_data = pinmux_data, 3306 2799 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+351 -9
drivers/pinctrl/renesas/pfc-r8a7794.c
··· 15 15 #include "sh_pfc.h" 16 16 17 17 #define CPU_ALL_GP(fn, sfx) \ 18 - PORT_GP_32(0, fn, sfx), \ 19 - PORT_GP_26(1, fn, sfx), \ 20 - PORT_GP_32(2, fn, sfx), \ 21 - PORT_GP_32(3, fn, sfx), \ 22 - PORT_GP_32(4, fn, sfx), \ 23 - PORT_GP_28(5, fn, sfx), \ 24 - PORT_GP_CFG_24(6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_1(6, 24, fn, sfx), \ 26 - PORT_GP_1(6, 25, fn, sfx) 18 + PORT_GP_CFG_32(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 19 + PORT_GP_CFG_26(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 20 + PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 21 + PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 22 + PORT_GP_CFG_32(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 23 + PORT_GP_CFG_7(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 24 + PORT_GP_1(5, 7, fn, sfx), \ 25 + PORT_GP_1(5, 8, fn, sfx), \ 26 + PORT_GP_1(5, 9, fn, sfx), \ 27 + PORT_GP_CFG_1(5, 10, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 28 + PORT_GP_CFG_1(5, 11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 29 + PORT_GP_CFG_1(5, 12, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 30 + PORT_GP_CFG_1(5, 13, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 31 + PORT_GP_CFG_1(5, 14, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 32 + PORT_GP_CFG_1(5, 15, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 33 + PORT_GP_CFG_1(5, 16, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 34 + PORT_GP_CFG_1(5, 17, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PORT_GP_CFG_1(5, 18, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PORT_GP_CFG_1(5, 19, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 37 + PORT_GP_CFG_1(5, 20, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 38 + PORT_GP_CFG_1(5, 21, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 39 + PORT_GP_CFG_1(5, 22, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 40 + PORT_GP_CFG_1(5, 23, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 41 + PORT_GP_1(5, 24, fn, sfx), \ 42 + PORT_GP_1(5, 25, fn, sfx), \ 43 + PORT_GP_1(5, 26, fn, sfx), \ 44 + PORT_GP_1(5, 27, fn, sfx), \ 45 + PORT_GP_CFG_1(6, 0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 46 + PORT_GP_CFG_1(6, 1, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 47 + PORT_GP_CFG_1(6, 2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 48 + PORT_GP_CFG_1(6, 3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 49 + PORT_GP_CFG_1(6, 4, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 50 + PORT_GP_CFG_1(6, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 51 + PORT_GP_CFG_1(6, 6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 52 + PORT_GP_CFG_1(6, 7, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 53 + PORT_GP_CFG_1(6, 8, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 54 + PORT_GP_CFG_1(6, 9, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 55 + PORT_GP_CFG_1(6, 10, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 56 + PORT_GP_CFG_1(6, 11, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 57 + PORT_GP_CFG_1(6, 12, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 58 + PORT_GP_CFG_1(6, 13, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 59 + PORT_GP_CFG_1(6, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 60 + PORT_GP_CFG_1(6, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 61 + PORT_GP_CFG_1(6, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 62 + PORT_GP_CFG_1(6, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 63 + PORT_GP_CFG_1(6, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 64 + PORT_GP_CFG_1(6, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 65 + PORT_GP_CFG_1(6, 20, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 66 + PORT_GP_CFG_1(6, 21, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 67 + PORT_GP_CFG_1(6, 22, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 68 + PORT_GP_CFG_1(6, 23, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 69 + PORT_GP_CFG_1(6, 24, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 70 + PORT_GP_CFG_1(6, 25, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 71 + 72 + #define CPU_ALL_NOGP(fn) \ 73 + PIN_NOGP_CFG(ASEBRK_N_ACK, "ASEBRK#/ACK", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 74 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 75 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 76 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 77 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 27 78 28 79 enum { 29 80 PINMUX_RESERVED = 0, ··· 1487 1436 PINMUX_IPSR_MSEL(IP13_26_24, FMIN_E, SEL_DARC_4), 1488 1437 }; 1489 1438 1439 + /* 1440 + * Pins not associated with a GPIO port. 1441 + */ 1442 + enum { 1443 + GP_ASSIGN_LAST(), 1444 + NOGP_ALL(), 1445 + }; 1446 + 1490 1447 static const struct sh_pfc_pin pinmux_pins[] = { 1491 1448 PINMUX_GPIO_GP_ALL(), 1449 + PINMUX_NOGP_ALL(), 1492 1450 }; 1493 1451 1494 1452 /* - Audio Clock ------------------------------------------------------------ */ ··· 5640 5580 return -EINVAL; 5641 5581 } 5642 5582 5583 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5584 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 5585 + [ 0] = RCAR_GP_PIN(0, 0), /* D0 */ 5586 + [ 1] = RCAR_GP_PIN(0, 1), /* D1 */ 5587 + [ 2] = RCAR_GP_PIN(0, 2), /* D2 */ 5588 + [ 3] = RCAR_GP_PIN(0, 3), /* D3 */ 5589 + [ 4] = RCAR_GP_PIN(0, 4), /* D4 */ 5590 + [ 5] = RCAR_GP_PIN(0, 5), /* D5 */ 5591 + [ 6] = RCAR_GP_PIN(0, 6), /* D6 */ 5592 + [ 7] = RCAR_GP_PIN(0, 7), /* D7 */ 5593 + [ 8] = RCAR_GP_PIN(0, 8), /* D8 */ 5594 + [ 9] = RCAR_GP_PIN(0, 9), /* D9 */ 5595 + [10] = RCAR_GP_PIN(0, 10), /* D10 */ 5596 + [11] = RCAR_GP_PIN(0, 11), /* D11 */ 5597 + [12] = RCAR_GP_PIN(0, 12), /* D12 */ 5598 + [13] = RCAR_GP_PIN(0, 13), /* D13 */ 5599 + [14] = RCAR_GP_PIN(0, 14), /* D14 */ 5600 + [15] = RCAR_GP_PIN(0, 15), /* D15 */ 5601 + [16] = RCAR_GP_PIN(0, 16), /* A0 */ 5602 + [17] = RCAR_GP_PIN(0, 17), /* A1 */ 5603 + [18] = RCAR_GP_PIN(0, 18), /* A2 */ 5604 + [19] = RCAR_GP_PIN(0, 19), /* A3 */ 5605 + [20] = RCAR_GP_PIN(0, 20), /* A4 */ 5606 + [21] = RCAR_GP_PIN(0, 21), /* A5 */ 5607 + [22] = RCAR_GP_PIN(0, 22), /* A6 */ 5608 + [23] = RCAR_GP_PIN(0, 23), /* A7 */ 5609 + [24] = RCAR_GP_PIN(0, 24), /* A8 */ 5610 + [25] = RCAR_GP_PIN(0, 25), /* A9 */ 5611 + [26] = RCAR_GP_PIN(0, 26), /* A10 */ 5612 + [27] = RCAR_GP_PIN(0, 27), /* A11 */ 5613 + [28] = RCAR_GP_PIN(0, 28), /* A12 */ 5614 + [29] = RCAR_GP_PIN(0, 29), /* A13 */ 5615 + [30] = RCAR_GP_PIN(0, 30), /* A14 */ 5616 + [31] = RCAR_GP_PIN(0, 31), /* A15 */ 5617 + } }, 5618 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 5619 + /* PUPR1 pull-up pins */ 5620 + [ 0] = RCAR_GP_PIN(1, 0), /* A16 */ 5621 + [ 1] = RCAR_GP_PIN(1, 1), /* A17 */ 5622 + [ 2] = RCAR_GP_PIN(1, 2), /* A18 */ 5623 + [ 3] = RCAR_GP_PIN(1, 3), /* A19 */ 5624 + [ 4] = RCAR_GP_PIN(1, 4), /* A20 */ 5625 + [ 5] = RCAR_GP_PIN(1, 5), /* A21 */ 5626 + [ 6] = RCAR_GP_PIN(1, 6), /* A22 */ 5627 + [ 7] = RCAR_GP_PIN(1, 7), /* A23 */ 5628 + [ 8] = RCAR_GP_PIN(1, 8), /* A24 */ 5629 + [ 9] = RCAR_GP_PIN(1, 9), /* A25 */ 5630 + [10] = RCAR_GP_PIN(1, 10), /* CS0# */ 5631 + [11] = RCAR_GP_PIN(1, 12), /* EX_CS0# */ 5632 + [12] = RCAR_GP_PIN(1, 14), /* EX_CS2# */ 5633 + [13] = RCAR_GP_PIN(1, 16), /* EX_CS4# */ 5634 + [14] = RCAR_GP_PIN(1, 18), /* BS# */ 5635 + [15] = RCAR_GP_PIN(1, 19), /* RD# */ 5636 + [16] = RCAR_GP_PIN(1, 20), /* RD/WR# */ 5637 + [17] = RCAR_GP_PIN(1, 21), /* WE0# */ 5638 + [18] = RCAR_GP_PIN(1, 22), /* WE1# */ 5639 + [19] = RCAR_GP_PIN(1, 23), /* EX_WAIT0 */ 5640 + [20] = RCAR_GP_PIN(1, 24), /* DREQ0# */ 5641 + [21] = RCAR_GP_PIN(1, 25), /* DACK0 */ 5642 + [22] = PIN_TRST_N, /* TRST# */ 5643 + [23] = PIN_TCK, /* TCK */ 5644 + [24] = PIN_TMS, /* TMS */ 5645 + [25] = PIN_TDI, /* TDI */ 5646 + [26] = RCAR_GP_PIN(1, 11), /* CS1#/A26 */ 5647 + [27] = RCAR_GP_PIN(1, 13), /* EX_CS1# */ 5648 + [28] = RCAR_GP_PIN(1, 15), /* EX_CS3# */ 5649 + [29] = RCAR_GP_PIN(1, 17), /* EX_CS5# */ 5650 + [30] = SH_PFC_PIN_NONE, 5651 + [31] = SH_PFC_PIN_NONE, 5652 + } }, 5653 + { PINMUX_BIAS_REG("N/A", 0, "PUPR1", 0xe6060104) { 5654 + /* PUPR1 pull-down pins */ 5655 + [ 0] = SH_PFC_PIN_NONE, 5656 + [ 1] = SH_PFC_PIN_NONE, 5657 + [ 2] = SH_PFC_PIN_NONE, 5658 + [ 3] = SH_PFC_PIN_NONE, 5659 + [ 4] = SH_PFC_PIN_NONE, 5660 + [ 5] = SH_PFC_PIN_NONE, 5661 + [ 6] = SH_PFC_PIN_NONE, 5662 + [ 7] = SH_PFC_PIN_NONE, 5663 + [ 8] = SH_PFC_PIN_NONE, 5664 + [ 9] = SH_PFC_PIN_NONE, 5665 + [10] = SH_PFC_PIN_NONE, 5666 + [11] = SH_PFC_PIN_NONE, 5667 + [12] = SH_PFC_PIN_NONE, 5668 + [13] = SH_PFC_PIN_NONE, 5669 + [14] = SH_PFC_PIN_NONE, 5670 + [15] = SH_PFC_PIN_NONE, 5671 + [16] = SH_PFC_PIN_NONE, 5672 + [17] = SH_PFC_PIN_NONE, 5673 + [18] = SH_PFC_PIN_NONE, 5674 + [19] = SH_PFC_PIN_NONE, 5675 + [20] = SH_PFC_PIN_NONE, 5676 + [21] = SH_PFC_PIN_NONE, 5677 + [22] = SH_PFC_PIN_NONE, 5678 + [23] = SH_PFC_PIN_NONE, 5679 + [24] = SH_PFC_PIN_NONE, 5680 + [25] = SH_PFC_PIN_NONE, 5681 + [26] = SH_PFC_PIN_NONE, 5682 + [27] = SH_PFC_PIN_NONE, 5683 + [28] = SH_PFC_PIN_NONE, 5684 + [29] = SH_PFC_PIN_NONE, 5685 + [30] = PIN_ASEBRK_N_ACK, /* ASEBRK#/ACK */ 5686 + [31] = SH_PFC_PIN_NONE, 5687 + } }, 5688 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 5689 + [ 0] = RCAR_GP_PIN(2, 0), /* DU0_DR0 */ 5690 + [ 1] = RCAR_GP_PIN(2, 1), /* DU0_DR1 */ 5691 + [ 2] = RCAR_GP_PIN(2, 2), /* DU0_DR2 */ 5692 + [ 3] = RCAR_GP_PIN(2, 3), /* DU0_DR3 */ 5693 + [ 4] = RCAR_GP_PIN(2, 4), /* DU0_DR4 */ 5694 + [ 5] = RCAR_GP_PIN(2, 5), /* DU0_DR5 */ 5695 + [ 6] = RCAR_GP_PIN(2, 6), /* DU0_DR6 */ 5696 + [ 7] = RCAR_GP_PIN(2, 7), /* DU0_DR7 */ 5697 + [ 8] = RCAR_GP_PIN(2, 8), /* DU0_DG0 */ 5698 + [ 9] = RCAR_GP_PIN(2, 9), /* DU0_DG1 */ 5699 + [10] = RCAR_GP_PIN(2, 10), /* DU0_DG2 */ 5700 + [11] = RCAR_GP_PIN(2, 11), /* DU0_DG3 */ 5701 + [12] = RCAR_GP_PIN(2, 12), /* DU0_DG4 */ 5702 + [13] = RCAR_GP_PIN(2, 13), /* DU0_DG5 */ 5703 + [14] = RCAR_GP_PIN(2, 14), /* DU0_DG6 */ 5704 + [15] = RCAR_GP_PIN(2, 15), /* DU0_DG7 */ 5705 + [16] = RCAR_GP_PIN(2, 16), /* DU0_DB0 */ 5706 + [17] = RCAR_GP_PIN(2, 17), /* DU0_DB1 */ 5707 + [18] = RCAR_GP_PIN(2, 18), /* DU0_DB2 */ 5708 + [19] = RCAR_GP_PIN(2, 19), /* DU0_DB3 */ 5709 + [20] = RCAR_GP_PIN(2, 20), /* DU0_DB4 */ 5710 + [21] = RCAR_GP_PIN(2, 21), /* DU0_DB5 */ 5711 + [22] = RCAR_GP_PIN(2, 22), /* DU0_DB6 */ 5712 + [23] = RCAR_GP_PIN(2, 23), /* DU0_DB7 */ 5713 + [24] = RCAR_GP_PIN(2, 24), /* DU0_DOTCLKIN */ 5714 + [25] = RCAR_GP_PIN(2, 25), /* DU0_DOTCLKOUT0 */ 5715 + [26] = RCAR_GP_PIN(2, 26), /* DU0_DOTCLKOUT1 */ 5716 + [27] = RCAR_GP_PIN(2, 27), /* DU0_EXHSYNC/DU0_HSYNC */ 5717 + [28] = RCAR_GP_PIN(2, 28), /* DU0_EXVSYNC/DU0_VSYNC */ 5718 + [29] = RCAR_GP_PIN(2, 29), /* DU0_EXODDF/DU0_ODDF_DISP_CDE */ 5719 + [30] = RCAR_GP_PIN(2, 30), /* DU0_DISP */ 5720 + [31] = RCAR_GP_PIN(2, 31), /* DU0_CDE */ 5721 + } }, 5722 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 5723 + [ 0] = RCAR_GP_PIN(3, 2), /* VI0_DATA1_VI0_B1 */ 5724 + [ 1] = RCAR_GP_PIN(3, 3), /* VI0_DATA2_VI0_B2 */ 5725 + [ 2] = RCAR_GP_PIN(3, 4), /* VI0_DATA3_VI0_B3 */ 5726 + [ 3] = RCAR_GP_PIN(3, 5), /* VI0_DATA4_VI0_B4 */ 5727 + [ 4] = RCAR_GP_PIN(3, 6), /* VI0_DATA5_VI0_B5 */ 5728 + [ 5] = RCAR_GP_PIN(3, 7), /* VI0_DATA6_VI0_B6 */ 5729 + [ 6] = RCAR_GP_PIN(3, 8), /* VI0_DATA7_VI0_B7 */ 5730 + [ 7] = RCAR_GP_PIN(3, 9), /* VI0_CLKENB */ 5731 + [ 8] = RCAR_GP_PIN(3, 10), /* VI0_FIELD */ 5732 + [ 9] = RCAR_GP_PIN(3, 11), /* VI0_HSYNC# */ 5733 + [10] = RCAR_GP_PIN(3, 12), /* VI0_VSYNC# */ 5734 + [11] = RCAR_GP_PIN(3, 13), /* ETH_MDIO */ 5735 + [12] = RCAR_GP_PIN(3, 14), /* ETH_CRS_DV */ 5736 + [13] = RCAR_GP_PIN(3, 15), /* ETH_RX_ER */ 5737 + [14] = RCAR_GP_PIN(3, 16), /* ETH_RXD0 */ 5738 + [15] = RCAR_GP_PIN(3, 17), /* ETH_RXD1 */ 5739 + [16] = RCAR_GP_PIN(3, 18), /* ETH_LINK */ 5740 + [17] = RCAR_GP_PIN(3, 19), /* ETH_REF_CLK */ 5741 + [18] = RCAR_GP_PIN(3, 20), /* ETH_TXD1 */ 5742 + [19] = RCAR_GP_PIN(3, 21), /* ETH_TX_EN */ 5743 + [20] = RCAR_GP_PIN(3, 22), /* ETH_MAGIC */ 5744 + [21] = RCAR_GP_PIN(3, 23), /* ETH_TXD0 */ 5745 + [22] = RCAR_GP_PIN(3, 24), /* ETH_MDC */ 5746 + [23] = RCAR_GP_PIN(3, 25), /* HSCIF0_HRX */ 5747 + [24] = RCAR_GP_PIN(3, 26), /* HSCIF0_HTX */ 5748 + [25] = RCAR_GP_PIN(3, 27), /* HSCIF0_HCTS# */ 5749 + [26] = RCAR_GP_PIN(3, 28), /* HSCIF0_HRTS# */ 5750 + [27] = RCAR_GP_PIN(3, 29), /* HSCIF0_HSCK */ 5751 + [28] = RCAR_GP_PIN(3, 30), /* I2C0_SCL */ 5752 + [29] = RCAR_GP_PIN(3, 31), /* I2C0_SDA */ 5753 + [30] = RCAR_GP_PIN(4, 0), /* I2C1_SCL */ 5754 + [31] = RCAR_GP_PIN(4, 1), /* I2C1_SDA */ 5755 + } }, 5756 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 5757 + [ 0] = RCAR_GP_PIN(4, 2), /* MSIOF0_RXD */ 5758 + [ 1] = RCAR_GP_PIN(4, 3), /* MSIOF0_TXD */ 5759 + [ 2] = RCAR_GP_PIN(4, 4), /* MSIOF0_SCK */ 5760 + [ 3] = RCAR_GP_PIN(4, 5), /* MSIOF0_SYNC */ 5761 + [ 4] = RCAR_GP_PIN(4, 6), /* MSIOF0_SS1 */ 5762 + [ 5] = RCAR_GP_PIN(4, 7), /* MSIOF0_SS2 */ 5763 + [ 6] = RCAR_GP_PIN(4, 8), /* HSCIF1_HRX */ 5764 + [ 7] = RCAR_GP_PIN(4, 9), /* HSCIF1_HTX */ 5765 + [ 8] = RCAR_GP_PIN(4, 10), /* HSCIF1_HSCK */ 5766 + [ 9] = RCAR_GP_PIN(4, 11), /* HSCIF1_HCTS# */ 5767 + [10] = RCAR_GP_PIN(4, 12), /* HSCIF1_HRTS# */ 5768 + [11] = RCAR_GP_PIN(4, 13), /* SCIF1_SCK */ 5769 + [12] = RCAR_GP_PIN(4, 14), /* SCIF1_RXD */ 5770 + [13] = RCAR_GP_PIN(4, 15), /* SCIF1_TXD */ 5771 + [14] = RCAR_GP_PIN(4, 16), /* SCIF2_RXD */ 5772 + [15] = RCAR_GP_PIN(4, 17), /* SCIF2_TXD */ 5773 + [16] = RCAR_GP_PIN(4, 18), /* SCIF2_SCK */ 5774 + [17] = RCAR_GP_PIN(4, 19), /* SCIF3_SCK */ 5775 + [18] = RCAR_GP_PIN(4, 20), /* SCIF3_RXD */ 5776 + [19] = RCAR_GP_PIN(4, 21), /* SCIF3_TXD */ 5777 + [20] = RCAR_GP_PIN(4, 22), /* I2C2_SCL */ 5778 + [21] = RCAR_GP_PIN(4, 23), /* I2C2_SDA */ 5779 + [22] = RCAR_GP_PIN(4, 24), /* SSI_SCK5 */ 5780 + [23] = RCAR_GP_PIN(4, 25), /* SSI_WS5 */ 5781 + [24] = RCAR_GP_PIN(4, 26), /* SSI_SDATA5 */ 5782 + [25] = RCAR_GP_PIN(4, 27), /* SSI_SCK6 */ 5783 + [26] = RCAR_GP_PIN(4, 28), /* SSI_WS6 */ 5784 + [27] = RCAR_GP_PIN(4, 29), /* SSI_SDATA6 */ 5785 + [28] = RCAR_GP_PIN(4, 30), /* SSI_SCK78 */ 5786 + [29] = RCAR_GP_PIN(4, 31), /* SSI_WS78 */ 5787 + [30] = RCAR_GP_PIN(5, 0), /* SSI_SDATA7 */ 5788 + [31] = RCAR_GP_PIN(5, 1), /* SSI_SCK0129 */ 5789 + } }, 5790 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 5791 + [ 0] = RCAR_GP_PIN(5, 2), /* SSI_WS0129 */ 5792 + [ 1] = RCAR_GP_PIN(5, 3), /* SSI_SDATA0 */ 5793 + [ 2] = RCAR_GP_PIN(5, 4), /* SSI_SCK34 */ 5794 + [ 3] = RCAR_GP_PIN(5, 5), /* SSI_WS34 */ 5795 + [ 4] = RCAR_GP_PIN(5, 6), /* SSI_SDATA3 */ 5796 + [ 5] = SH_PFC_PIN_NONE, 5797 + [ 6] = SH_PFC_PIN_NONE, 5798 + [ 7] = SH_PFC_PIN_NONE, 5799 + [ 8] = RCAR_GP_PIN(5, 10), /* SSI_SDATA8 */ 5800 + [ 9] = RCAR_GP_PIN(5, 11), /* SSI_SCK1 */ 5801 + [10] = RCAR_GP_PIN(5, 12), /* SSI_WS1 */ 5802 + [11] = RCAR_GP_PIN(5, 13), /* SSI_SDATA1 */ 5803 + [12] = RCAR_GP_PIN(5, 14), /* SSI_SCK2 */ 5804 + [13] = RCAR_GP_PIN(5, 15), /* SSI_WS2 */ 5805 + [14] = RCAR_GP_PIN(5, 16), /* SSI_SDATA2 */ 5806 + [15] = RCAR_GP_PIN(5, 17), /* SSI_SCK9 */ 5807 + [16] = RCAR_GP_PIN(5, 18), /* SSI_WS9 */ 5808 + [17] = RCAR_GP_PIN(5, 19), /* SSI_SDATA9 */ 5809 + [18] = RCAR_GP_PIN(5, 20), /* AUDIO_CLKA */ 5810 + [19] = RCAR_GP_PIN(5, 21), /* AUDIO_CLKB */ 5811 + [20] = RCAR_GP_PIN(5, 22), /* AUDIO_CLKC */ 5812 + [21] = RCAR_GP_PIN(5, 23), /* AUDIO_CLKOUT */ 5813 + [22] = RCAR_GP_PIN(3, 0), /* VI0_CLK */ 5814 + [23] = RCAR_GP_PIN(3, 1), /* VI0_DATA0_VI0_B0 */ 5815 + [24] = SH_PFC_PIN_NONE, 5816 + [25] = SH_PFC_PIN_NONE, 5817 + [26] = SH_PFC_PIN_NONE, 5818 + [27] = SH_PFC_PIN_NONE, 5819 + [28] = SH_PFC_PIN_NONE, 5820 + [29] = SH_PFC_PIN_NONE, 5821 + [30] = SH_PFC_PIN_NONE, 5822 + [31] = SH_PFC_PIN_NONE, 5823 + } }, 5824 + { PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) { 5825 + [ 0] = RCAR_GP_PIN(6, 1), /* SD0_CMD */ 5826 + [ 1] = RCAR_GP_PIN(6, 2), /* SD0_DATA0 */ 5827 + [ 2] = RCAR_GP_PIN(6, 3), /* SD0_DATA1 */ 5828 + [ 3] = RCAR_GP_PIN(6, 4), /* SD0_DATA2 */ 5829 + [ 4] = RCAR_GP_PIN(6, 5), /* SD0_DATA3 */ 5830 + [ 5] = RCAR_GP_PIN(6, 6), /* SD0_CD */ 5831 + [ 6] = RCAR_GP_PIN(6, 7), /* SD0_WP */ 5832 + [ 7] = RCAR_GP_PIN(6, 9), /* SD1_CMD */ 5833 + [ 8] = RCAR_GP_PIN(6, 10), /* SD1_DATA0 */ 5834 + [ 9] = RCAR_GP_PIN(6, 11), /* SD1_DATA1 */ 5835 + [10] = RCAR_GP_PIN(6, 12), /* SD1_DATA2 */ 5836 + [11] = RCAR_GP_PIN(6, 13), /* SD1_DATA3 */ 5837 + [12] = RCAR_GP_PIN(6, 14), /* SD1_CD */ 5838 + [13] = RCAR_GP_PIN(6, 15), /* SD1_WP */ 5839 + [14] = SH_PFC_PIN_NONE, 5840 + [15] = RCAR_GP_PIN(6, 17), /* MMC_CMD */ 5841 + [16] = RCAR_GP_PIN(6, 18), /* MMC_D0 */ 5842 + [17] = RCAR_GP_PIN(6, 19), /* MMC_D1 */ 5843 + [18] = RCAR_GP_PIN(6, 20), /* MMC_D2 */ 5844 + [19] = RCAR_GP_PIN(6, 21), /* MMC_D3 */ 5845 + [20] = RCAR_GP_PIN(6, 22), /* MMC_D4 */ 5846 + [21] = RCAR_GP_PIN(6, 23), /* MMC_D5 */ 5847 + [22] = RCAR_GP_PIN(6, 24), /* MMC_D6 */ 5848 + [23] = RCAR_GP_PIN(6, 25), /* MMC_D7 */ 5849 + [24] = SH_PFC_PIN_NONE, 5850 + [25] = SH_PFC_PIN_NONE, 5851 + [26] = SH_PFC_PIN_NONE, 5852 + [27] = SH_PFC_PIN_NONE, 5853 + [28] = SH_PFC_PIN_NONE, 5854 + [29] = SH_PFC_PIN_NONE, 5855 + [30] = SH_PFC_PIN_NONE, 5856 + [31] = SH_PFC_PIN_NONE, 5857 + } }, 5858 + { /* sentinel */ } 5859 + }; 5860 + 5643 5861 static const struct soc_device_attribute r8a7794_tdsel[] = { 5644 5862 { .soc_id = "r8a7794", .revision = "ES1.0" }, 5645 5863 { /* sentinel */ } ··· 5935 5597 static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = { 5936 5598 .init = r8a7794_pinmux_soc_init, 5937 5599 .pin_to_pocctrl = r8a7794_pin_to_pocctrl, 5600 + .get_bias = rcar_pinmux_get_bias, 5601 + .set_bias = rcar_pinmux_set_bias, 5938 5602 }; 5939 5603 5940 5604 #ifdef CONFIG_PINCTRL_PFC_R8A7745 ··· 5955 5615 .nr_functions = ARRAY_SIZE(pinmux_functions), 5956 5616 5957 5617 .cfg_regs = pinmux_config_regs, 5618 + .bias_regs = pinmux_bias_regs, 5958 5619 5959 5620 .pinmux_data = pinmux_data, 5960 5621 .pinmux_data_size = ARRAY_SIZE(pinmux_data), ··· 5978 5637 .nr_functions = ARRAY_SIZE(pinmux_functions), 5979 5638 5980 5639 .cfg_regs = pinmux_config_regs, 5640 + .bias_regs = pinmux_bias_regs, 5981 5641 5982 5642 .pinmux_data = pinmux_data, 5983 5643 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+169 -6
drivers/pinctrl/renesas/pfc-r8a77970.c
··· 19 19 #include "sh_pfc.h" 20 20 21 21 #define CPU_ALL_GP(fn, sfx) \ 22 - PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 23 - PORT_GP_28(1, fn, sfx), \ 24 - PORT_GP_CFG_17(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 26 - PORT_GP_6(4, fn, sfx), \ 27 - PORT_GP_15(5, fn, sfx) 22 + PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 23 + PORT_GP_CFG_28(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 24 + PORT_GP_CFG_17(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 25 + PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 26 + PORT_GP_CFG_6(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 27 + PORT_GP_CFG_15(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN) 28 + 29 + #define CPU_ALL_NOGP(fn) \ 30 + PIN_NOGP_CFG(DU_DOTCLKIN, "DU_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 31 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 32 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 33 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 34 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 37 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 38 + 28 39 /* 29 40 * F_() : just information 30 41 * FM() : macro for FN_xxx / xxx_MARK ··· 729 718 PINMUX_IPSR_GPSR(IP8_27_24, DIGRF_CLKEN_OUT), 730 719 }; 731 720 721 + /* 722 + * Pins not associated with a GPIO port. 723 + */ 724 + enum { 725 + GP_ASSIGN_LAST(), 726 + NOGP_ALL(), 727 + }; 728 + 732 729 static const struct sh_pfc_pin pinmux_pins[] = { 733 730 PINMUX_GPIO_GP_ALL(), 731 + PINMUX_NOGP_ALL(), 734 732 }; 735 733 736 734 /* - AVB0 ------------------------------------------------------------------- */ ··· 2516 2496 return -EINVAL; 2517 2497 } 2518 2498 2499 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2500 + { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 2501 + [ 0] = RCAR_GP_PIN(0, 0), /* DU_DR2 */ 2502 + [ 1] = RCAR_GP_PIN(0, 1), /* DU_DR3 */ 2503 + [ 2] = RCAR_GP_PIN(0, 2), /* DU_DR4 */ 2504 + [ 3] = RCAR_GP_PIN(0, 3), /* DU_DR5 */ 2505 + [ 4] = RCAR_GP_PIN(0, 4), /* DU_DR6 */ 2506 + [ 5] = RCAR_GP_PIN(0, 5), /* DU_DR7 */ 2507 + [ 6] = RCAR_GP_PIN(0, 6), /* DU_DG2 */ 2508 + [ 7] = RCAR_GP_PIN(0, 7), /* DU_DG3 */ 2509 + [ 8] = RCAR_GP_PIN(0, 8), /* DU_DG4 */ 2510 + [ 9] = RCAR_GP_PIN(0, 9), /* DU_DG5 */ 2511 + [10] = RCAR_GP_PIN(0, 10), /* DU_DG6 */ 2512 + [11] = RCAR_GP_PIN(0, 11), /* DU_DG7 */ 2513 + [12] = RCAR_GP_PIN(0, 12), /* DU_DB2 */ 2514 + [13] = RCAR_GP_PIN(0, 13), /* DU_DB3 */ 2515 + [14] = RCAR_GP_PIN(0, 14), /* DU_DB4 */ 2516 + [15] = RCAR_GP_PIN(0, 15), /* DU_DB5 */ 2517 + [16] = RCAR_GP_PIN(0, 16), /* DU_DB6 */ 2518 + [17] = RCAR_GP_PIN(0, 17), /* DU_DB7 */ 2519 + [18] = RCAR_GP_PIN(0, 18), /* DU_DOTCLKOUT */ 2520 + [19] = RCAR_GP_PIN(0, 19), /* DU_EXHSYNC/DU_HSYNC */ 2521 + [20] = RCAR_GP_PIN(0, 20), /* DU_EXVSYNC/DU_VSYNC */ 2522 + [21] = RCAR_GP_PIN(0, 21), /* DU_EXODDF/DU_ODDF/DISP/CDE */ 2523 + [22] = PIN_DU_DOTCLKIN, /* DU_DOTCLKIN */ 2524 + [23] = PIN_PRESETOUT_N, /* PRESETOUT# */ 2525 + [24] = PIN_EXTALR, /* EXTALR */ 2526 + [25] = PIN_FSCLKST_N, /* FSCLKST# */ 2527 + [26] = RCAR_GP_PIN(1, 0), /* IRQ0 */ 2528 + [27] = PIN_TRST_N, /* TRST# */ 2529 + [28] = PIN_TCK, /* TCK */ 2530 + [29] = PIN_TMS, /* TMS */ 2531 + [30] = PIN_TDI, /* TDI */ 2532 + [31] = RCAR_GP_PIN(2, 0), /* VI0_CLK */ 2533 + } }, 2534 + { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) { 2535 + [ 0] = RCAR_GP_PIN(2, 1), /* VI0_CLKENB */ 2536 + [ 1] = RCAR_GP_PIN(2, 2), /* VI0_HSYNC# */ 2537 + [ 2] = RCAR_GP_PIN(2, 3), /* VI0_VSYNC# */ 2538 + [ 3] = RCAR_GP_PIN(2, 4), /* VI0_DATA0 */ 2539 + [ 4] = RCAR_GP_PIN(2, 5), /* VI0_DATA1 */ 2540 + [ 5] = RCAR_GP_PIN(2, 6), /* VI0_DATA2 */ 2541 + [ 6] = RCAR_GP_PIN(2, 7), /* VI0_DATA3 */ 2542 + [ 7] = RCAR_GP_PIN(2, 8), /* VI0_DATA4 */ 2543 + [ 8] = RCAR_GP_PIN(2, 9), /* VI0_DATA5 */ 2544 + [ 9] = RCAR_GP_PIN(2, 10), /* VI0_DATA6 */ 2545 + [10] = RCAR_GP_PIN(2, 11), /* VI0_DATA7 */ 2546 + [11] = RCAR_GP_PIN(2, 12), /* VI0_DATA8 */ 2547 + [12] = RCAR_GP_PIN(2, 13), /* VI0_DATA9 */ 2548 + [13] = RCAR_GP_PIN(2, 14), /* VI0_DATA10 */ 2549 + [14] = RCAR_GP_PIN(2, 15), /* VI0_DATA11 */ 2550 + [15] = RCAR_GP_PIN(2, 16), /* VI0_FIELD */ 2551 + [16] = RCAR_GP_PIN(3, 0), /* VI1_CLK */ 2552 + [17] = RCAR_GP_PIN(3, 1), /* VI1_CLKENB */ 2553 + [18] = RCAR_GP_PIN(3, 2), /* VI1_HSYNC# */ 2554 + [19] = RCAR_GP_PIN(3, 3), /* VI1_VSYNC# */ 2555 + [20] = RCAR_GP_PIN(3, 4), /* VI1_DATA0 */ 2556 + [21] = RCAR_GP_PIN(3, 5), /* VI1_DATA1 */ 2557 + [22] = RCAR_GP_PIN(3, 6), /* VI1_DATA2 */ 2558 + [23] = RCAR_GP_PIN(3, 7), /* VI1_DATA3 */ 2559 + [24] = RCAR_GP_PIN(3, 8), /* VI1_DATA4 */ 2560 + [25] = RCAR_GP_PIN(3, 9), /* VI1_DATA5 */ 2561 + [26] = RCAR_GP_PIN(3, 10), /* VI1_DATA6 */ 2562 + [27] = RCAR_GP_PIN(3, 11), /* VI1_DATA7 */ 2563 + [28] = RCAR_GP_PIN(3, 12), /* VI1_DATA8 */ 2564 + [29] = RCAR_GP_PIN(3, 13), /* VI1_DATA9 */ 2565 + [30] = RCAR_GP_PIN(3, 14), /* VI1_DATA10 */ 2566 + [31] = RCAR_GP_PIN(3, 15), /* VI1_DATA11 */ 2567 + } }, 2568 + { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 2569 + [ 0] = RCAR_GP_PIN(3, 16), /* VI1_FIELD */ 2570 + [ 1] = RCAR_GP_PIN(4, 0), /* SCL0 */ 2571 + [ 2] = RCAR_GP_PIN(4, 1), /* SDA0 */ 2572 + [ 3] = RCAR_GP_PIN(4, 2), /* SCL1 */ 2573 + [ 4] = RCAR_GP_PIN(4, 3), /* SDA1 */ 2574 + [ 5] = RCAR_GP_PIN(4, 4), /* SCL2 */ 2575 + [ 6] = RCAR_GP_PIN(4, 5), /* SDA2 */ 2576 + [ 7] = RCAR_GP_PIN(1, 1), /* AVB0_RX_CTL */ 2577 + [ 8] = RCAR_GP_PIN(1, 2), /* AVB0_RXC */ 2578 + [ 9] = RCAR_GP_PIN(1, 3), /* AVB0_RD0 */ 2579 + [10] = RCAR_GP_PIN(1, 4), /* AVB0_RD1 */ 2580 + [11] = RCAR_GP_PIN(1, 5), /* AVB0_RD2 */ 2581 + [12] = RCAR_GP_PIN(1, 6), /* AVB0_RD3 */ 2582 + [13] = RCAR_GP_PIN(1, 7), /* AVB0_TX_CTL */ 2583 + [14] = RCAR_GP_PIN(1, 8), /* AVB0_TXC */ 2584 + [15] = RCAR_GP_PIN(1, 9), /* AVB0_TD0 */ 2585 + [16] = RCAR_GP_PIN(1, 10), /* AVB0_TD1 */ 2586 + [17] = RCAR_GP_PIN(1, 11), /* AVB0_TD2 */ 2587 + [18] = RCAR_GP_PIN(1, 12), /* AVB0_TD3 */ 2588 + [19] = RCAR_GP_PIN(1, 13), /* AVB0_TXCREFCLK */ 2589 + [20] = RCAR_GP_PIN(1, 14), /* AVB0_MDIO */ 2590 + [21] = RCAR_GP_PIN(1, 15), /* AVB0_MDC */ 2591 + [22] = RCAR_GP_PIN(1, 16), /* AVB0_MAGIC */ 2592 + [23] = RCAR_GP_PIN(1, 17), /* AVB0_PHY_INT */ 2593 + [24] = RCAR_GP_PIN(1, 18), /* AVB0_LINK */ 2594 + [25] = RCAR_GP_PIN(1, 19), /* AVB0_AVTP_MATCH */ 2595 + [26] = RCAR_GP_PIN(1, 20), /* AVB0_AVTP_CAPTURE */ 2596 + [27] = RCAR_GP_PIN(1, 21), /* CANFD0_TX_A */ 2597 + [28] = RCAR_GP_PIN(1, 22), /* CANFD0_RX_A */ 2598 + [29] = RCAR_GP_PIN(1, 23), /* CANFD1_TX */ 2599 + [30] = RCAR_GP_PIN(1, 24), /* CANFD1_RX */ 2600 + [31] = RCAR_GP_PIN(1, 25), /* CANFD_CLK */ 2601 + } }, 2602 + { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 2603 + [ 0] = RCAR_GP_PIN(5, 0), /* QSPI0_SPCLK */ 2604 + [ 1] = RCAR_GP_PIN(5, 1), /* QSPI0_MOSI_IO0 */ 2605 + [ 2] = RCAR_GP_PIN(5, 2), /* QSPI0_MISO_IO1 */ 2606 + [ 3] = RCAR_GP_PIN(5, 3), /* QSPI0_IO2 */ 2607 + [ 4] = RCAR_GP_PIN(5, 4), /* QSPI0_IO3 */ 2608 + [ 5] = RCAR_GP_PIN(5, 5), /* QSPI0_SSL */ 2609 + [ 6] = RCAR_GP_PIN(5, 6), /* QSPI1_SPCLK */ 2610 + [ 7] = RCAR_GP_PIN(5, 7), /* QSPI1_MOSI_IO0 */ 2611 + [ 8] = RCAR_GP_PIN(5, 8), /* QSPI1_MISO_IO1 */ 2612 + [ 9] = RCAR_GP_PIN(5, 9), /* QSPI1_IO2 */ 2613 + [10] = RCAR_GP_PIN(5, 10), /* QSPI1_IO3 */ 2614 + [11] = RCAR_GP_PIN(5, 11), /* QSPI1_SSL */ 2615 + [12] = RCAR_GP_PIN(5, 12), /* RPC_RESET# */ 2616 + [13] = RCAR_GP_PIN(5, 13), /* RPC_WP# */ 2617 + [14] = RCAR_GP_PIN(5, 14), /* RPC_INT# */ 2618 + [15] = RCAR_GP_PIN(1, 26), /* DIGRF_CLKIN */ 2619 + [16] = RCAR_GP_PIN(1, 27), /* DIGRF_CLKOUT */ 2620 + [17] = SH_PFC_PIN_NONE, 2621 + [18] = SH_PFC_PIN_NONE, 2622 + [19] = SH_PFC_PIN_NONE, 2623 + [20] = SH_PFC_PIN_NONE, 2624 + [21] = SH_PFC_PIN_NONE, 2625 + [22] = SH_PFC_PIN_NONE, 2626 + [23] = SH_PFC_PIN_NONE, 2627 + [24] = SH_PFC_PIN_NONE, 2628 + [25] = SH_PFC_PIN_NONE, 2629 + [26] = SH_PFC_PIN_NONE, 2630 + [27] = SH_PFC_PIN_NONE, 2631 + [28] = SH_PFC_PIN_NONE, 2632 + [29] = SH_PFC_PIN_NONE, 2633 + [30] = SH_PFC_PIN_NONE, 2634 + [31] = SH_PFC_PIN_NONE, 2635 + } }, 2636 + { /* sentinel */ } 2637 + }; 2638 + 2519 2639 static const struct sh_pfc_soc_operations pinmux_ops = { 2520 2640 .pin_to_pocctrl = r8a77970_pin_to_pocctrl, 2641 + .get_bias = rcar_pinmux_get_bias, 2642 + .set_bias = rcar_pinmux_set_bias, 2521 2643 }; 2522 2644 2523 2645 const struct sh_pfc_soc_info r8a77970_pinmux_info = { ··· 2677 2515 .nr_functions = ARRAY_SIZE(pinmux_functions), 2678 2516 2679 2517 .cfg_regs = pinmux_config_regs, 2518 + .bias_regs = pinmux_bias_regs, 2680 2519 .ioctrl_regs = pinmux_ioctrl_regs, 2681 2520 2682 2521 .pinmux_data = pinmux_data,
+203 -6
drivers/pinctrl/renesas/pfc-r8a77980.c
··· 19 19 #include "sh_pfc.h" 20 20 21 21 #define CPU_ALL_GP(fn, sfx) \ 22 - PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 23 - PORT_GP_28(1, fn, sfx), \ 24 - PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 26 - PORT_GP_25(4, fn, sfx), \ 27 - PORT_GP_15(5, fn, sfx) 22 + PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 23 + PORT_GP_CFG_28(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 24 + PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 25 + PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 26 + PORT_GP_CFG_25(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 27 + PORT_GP_CFG_15(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN) 28 + 29 + #define CPU_ALL_NOGP(fn) \ 30 + PIN_NOGP_CFG(DCUTCK_LPDCLK, "DCUTCK_LPDCLK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 31 + PIN_NOGP_CFG(DCUTDI_LPDI, "DCUTDI_LPDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 32 + PIN_NOGP_CFG(DCUTMS, "DCUTMS", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 33 + PIN_NOGP_CFG(DCUTRST_N, "DCUTRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 34 + PIN_NOGP_CFG(DU_DOTCLKIN, "DU_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 35 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 36 + PIN_NOGP_CFG(FSCLKST, "FSCLKST", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 37 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 38 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 28 39 29 40 /* 30 41 * F_() : just information ··· 841 830 PINMUX_IPSR_GPSR(IP10_19_16, FSO_TOE_N), 842 831 }; 843 832 833 + /* 834 + * Pins not associated with a GPIO port. 835 + */ 836 + enum { 837 + GP_ASSIGN_LAST(), 838 + NOGP_ALL(), 839 + }; 840 + 844 841 static const struct sh_pfc_pin pinmux_pins[] = { 845 842 PINMUX_GPIO_GP_ALL(), 843 + PINMUX_NOGP_ALL(), 846 844 }; 847 845 848 846 /* - AVB -------------------------------------------------------------------- */ ··· 2965 2945 return -EINVAL; 2966 2946 } 2967 2947 2948 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2949 + { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 2950 + [ 0] = RCAR_GP_PIN(0, 0), /* DU_DR2 */ 2951 + [ 1] = RCAR_GP_PIN(0, 1), /* DU_DR3 */ 2952 + [ 2] = RCAR_GP_PIN(0, 2), /* DU_DR4 */ 2953 + [ 3] = RCAR_GP_PIN(0, 3), /* DU_DR5 */ 2954 + [ 4] = RCAR_GP_PIN(0, 4), /* DU_DR6 */ 2955 + [ 5] = RCAR_GP_PIN(0, 5), /* DU_DR7 */ 2956 + [ 6] = RCAR_GP_PIN(0, 6), /* DU_DG2 */ 2957 + [ 7] = RCAR_GP_PIN(0, 7), /* DU_DG3 */ 2958 + [ 8] = RCAR_GP_PIN(0, 8), /* DU_DG4 */ 2959 + [ 9] = RCAR_GP_PIN(0, 9), /* DU_DG5 */ 2960 + [10] = RCAR_GP_PIN(0, 10), /* DU_DG6 */ 2961 + [11] = RCAR_GP_PIN(0, 11), /* DU_DG7 */ 2962 + [12] = RCAR_GP_PIN(0, 12), /* DU_DB2 */ 2963 + [13] = RCAR_GP_PIN(0, 13), /* DU_DB3 */ 2964 + [14] = RCAR_GP_PIN(0, 14), /* DU_DB4 */ 2965 + [15] = RCAR_GP_PIN(0, 15), /* DU_DB5 */ 2966 + [16] = RCAR_GP_PIN(0, 16), /* DU_DB6 */ 2967 + [17] = RCAR_GP_PIN(0, 17), /* DU_DB7 */ 2968 + [18] = RCAR_GP_PIN(0, 18), /* DU_DOTCLKOUT */ 2969 + [19] = RCAR_GP_PIN(0, 19), /* DU_EXHSYNC/DU_HSYNC */ 2970 + [20] = RCAR_GP_PIN(0, 20), /* DU_EXVSYNC/DU_VSYNC */ 2971 + [21] = RCAR_GP_PIN(0, 21), /* DU_EXODDF/DU_ODDF/DISP/CDE */ 2972 + [22] = SH_PFC_PIN_NONE, 2973 + [23] = SH_PFC_PIN_NONE, 2974 + [24] = PIN_DU_DOTCLKIN, /* DU_DOTCLKIN */ 2975 + [25] = SH_PFC_PIN_NONE, 2976 + [26] = PIN_PRESETOUT_N, /* PRESETOUT# */ 2977 + [27] = SH_PFC_PIN_NONE, 2978 + [28] = SH_PFC_PIN_NONE, 2979 + [29] = SH_PFC_PIN_NONE, 2980 + [30] = PIN_EXTALR, /* EXTALR */ 2981 + [31] = PIN_FSCLKST_N, /* FSCLKST# */ 2982 + } }, 2983 + { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) { 2984 + [ 0] = PIN_FSCLKST, /* FSCLKST */ 2985 + [ 1] = SH_PFC_PIN_NONE, 2986 + [ 2] = RCAR_GP_PIN(1, 0), /* IRQ0 */ 2987 + [ 3] = PIN_DCUTRST_N, /* DCUTRST# */ 2988 + [ 4] = PIN_DCUTCK_LPDCLK, /* DCUTCK_LPDCLK */ 2989 + [ 5] = PIN_DCUTMS, /* DCUTMS */ 2990 + [ 6] = PIN_DCUTDI_LPDI, /* DCUTDI_LPDI */ 2991 + [ 7] = SH_PFC_PIN_NONE, 2992 + [ 8] = RCAR_GP_PIN(2, 0), /* VI0_CLK */ 2993 + [ 9] = RCAR_GP_PIN(2, 1), /* VI0_CLKENB */ 2994 + [10] = RCAR_GP_PIN(2, 2), /* VI0_HSYNC# */ 2995 + [11] = RCAR_GP_PIN(2, 3), /* VI0_VSYNC# */ 2996 + [12] = RCAR_GP_PIN(2, 4), /* VI0_DATA0 */ 2997 + [13] = RCAR_GP_PIN(2, 5), /* VI0_DATA1 */ 2998 + [14] = RCAR_GP_PIN(2, 6), /* VI0_DATA2 */ 2999 + [15] = RCAR_GP_PIN(2, 7), /* VI0_DATA3 */ 3000 + [16] = RCAR_GP_PIN(2, 8), /* VI0_DATA4 */ 3001 + [17] = RCAR_GP_PIN(2, 9), /* VI0_DATA5 */ 3002 + [18] = RCAR_GP_PIN(2, 10), /* VI0_DATA6 */ 3003 + [19] = RCAR_GP_PIN(2, 11), /* VI0_DATA7 */ 3004 + [20] = RCAR_GP_PIN(2, 12), /* VI0_DATA8 */ 3005 + [21] = RCAR_GP_PIN(2, 13), /* VI0_DATA9 */ 3006 + [22] = RCAR_GP_PIN(2, 14), /* VI0_DATA10 */ 3007 + [23] = RCAR_GP_PIN(2, 15), /* VI0_DATA11 */ 3008 + [24] = RCAR_GP_PIN(2, 16), /* VI0_FIELD */ 3009 + [25] = RCAR_GP_PIN(3, 0), /* VI1_CLK */ 3010 + [26] = RCAR_GP_PIN(3, 1), /* VI1_CLKENB */ 3011 + [27] = RCAR_GP_PIN(3, 2), /* VI1_HSYNC# */ 3012 + [28] = RCAR_GP_PIN(3, 3), /* VI1_VSYNC# */ 3013 + [29] = RCAR_GP_PIN(3, 4), /* VI1_DATA0 */ 3014 + [30] = RCAR_GP_PIN(3, 5), /* VI1_DATA1 */ 3015 + [31] = RCAR_GP_PIN(3, 6), /* VI1_DATA2 */ 3016 + } }, 3017 + { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 3018 + [ 0] = RCAR_GP_PIN(3, 7), /* VI1_DATA3 */ 3019 + [ 1] = RCAR_GP_PIN(3, 8), /* VI1_DATA4 */ 3020 + [ 2] = RCAR_GP_PIN(3, 9), /* VI1_DATA5 */ 3021 + [ 3] = RCAR_GP_PIN(3, 10), /* VI1_DATA6 */ 3022 + [ 4] = RCAR_GP_PIN(3, 11), /* VI1_DATA7 */ 3023 + [ 5] = RCAR_GP_PIN(3, 12), /* VI1_DATA8 */ 3024 + [ 6] = RCAR_GP_PIN(3, 13), /* VI1_DATA9 */ 3025 + [ 7] = RCAR_GP_PIN(3, 14), /* VI1_DATA10 */ 3026 + [ 8] = RCAR_GP_PIN(3, 15), /* VI1_DATA11 */ 3027 + [ 9] = RCAR_GP_PIN(3, 16), /* VI1_FIELD */ 3028 + [10] = RCAR_GP_PIN(4, 0), /* SCL0 */ 3029 + [11] = RCAR_GP_PIN(4, 1), /* SDA0 */ 3030 + [12] = RCAR_GP_PIN(4, 2), /* SCL1 */ 3031 + [13] = RCAR_GP_PIN(4, 3), /* SDA1 */ 3032 + [14] = RCAR_GP_PIN(4, 4), /* SCL2 */ 3033 + [15] = RCAR_GP_PIN(4, 5), /* SDA2 */ 3034 + [16] = RCAR_GP_PIN(1, 1), /* AVB_RX_CTL */ 3035 + [17] = RCAR_GP_PIN(1, 2), /* AVB_RXC */ 3036 + [18] = RCAR_GP_PIN(1, 3), /* AVB_RD0 */ 3037 + [19] = RCAR_GP_PIN(1, 4), /* AVB_RD1 */ 3038 + [20] = RCAR_GP_PIN(1, 5), /* AVB_RD2 */ 3039 + [21] = RCAR_GP_PIN(1, 6), /* AVB_RD3 */ 3040 + [22] = RCAR_GP_PIN(1, 7), /* AVB_TX_CTL */ 3041 + [23] = RCAR_GP_PIN(1, 8), /* AVB_TXC */ 3042 + [24] = RCAR_GP_PIN(1, 9), /* AVB_TD0 */ 3043 + [25] = RCAR_GP_PIN(1, 10), /* AVB_TD1 */ 3044 + [26] = RCAR_GP_PIN(1, 11), /* AVB_TD2 */ 3045 + [27] = RCAR_GP_PIN(1, 12), /* AVB_TD3 */ 3046 + [28] = RCAR_GP_PIN(1, 13), /* AVB_TXCREFCLK */ 3047 + [29] = RCAR_GP_PIN(1, 14), /* AVB_MDIO */ 3048 + [30] = RCAR_GP_PIN(1, 15), /* AVB_MDC */ 3049 + [31] = RCAR_GP_PIN(1, 16), /* AVB_MAGIC */ 3050 + } }, 3051 + { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 3052 + [ 0] = RCAR_GP_PIN(1, 17), /* AVB_PHY_INT */ 3053 + [ 1] = RCAR_GP_PIN(1, 18), /* AVB_LINK */ 3054 + [ 2] = RCAR_GP_PIN(1, 19), /* AVB_AVTP_MATCH */ 3055 + [ 3] = RCAR_GP_PIN(1, 20), /* AVTP_CAPTURE */ 3056 + [ 4] = RCAR_GP_PIN(4, 6), /* GETHER_RX_CTL */ 3057 + [ 5] = RCAR_GP_PIN(4, 7), /* GETHER_RXC */ 3058 + [ 6] = RCAR_GP_PIN(4, 8), /* GETHER_RD0 */ 3059 + [ 7] = RCAR_GP_PIN(4, 9), /* GETHER_RD1 */ 3060 + [ 8] = RCAR_GP_PIN(4, 10), /* GETHER_RD2 */ 3061 + [ 9] = RCAR_GP_PIN(4, 11), /* GETHER_RD3 */ 3062 + [10] = RCAR_GP_PIN(4, 12), /* GETHER_TX_CTL */ 3063 + [11] = RCAR_GP_PIN(4, 13), /* GETHER_TXC */ 3064 + [12] = RCAR_GP_PIN(4, 14), /* GETHER_TD0 */ 3065 + [13] = RCAR_GP_PIN(4, 15), /* GETHER_TD1 */ 3066 + [14] = RCAR_GP_PIN(4, 16), /* GETHER_TD2 */ 3067 + [15] = RCAR_GP_PIN(4, 17), /* GETHER_TD3 */ 3068 + [16] = RCAR_GP_PIN(4, 18), /* GETHER_TXCREFCLK */ 3069 + [17] = RCAR_GP_PIN(4, 19), /* GETHER_TXCREFCLK_MEGA */ 3070 + [18] = RCAR_GP_PIN(4, 20), /* GETHER_MDIO_A */ 3071 + [19] = RCAR_GP_PIN(4, 21), /* GETHER_MDC_A */ 3072 + [20] = RCAR_GP_PIN(4, 22), /* GETHER_MAGIC */ 3073 + [21] = RCAR_GP_PIN(4, 23), /* GETHER_PHY_INT_A */ 3074 + [22] = RCAR_GP_PIN(4, 24), /* GETHER_LINK_A */ 3075 + [23] = RCAR_GP_PIN(1, 21), /* CANFD0_TX_A */ 3076 + [24] = RCAR_GP_PIN(1, 22), /* CANFD0_RX_A */ 3077 + [25] = RCAR_GP_PIN(1, 23), /* CANFD1_TX */ 3078 + [26] = RCAR_GP_PIN(1, 24), /* CANFD1_RX */ 3079 + [27] = RCAR_GP_PIN(1, 25), /* CAN_CLK_A */ 3080 + [28] = RCAR_GP_PIN(5, 0), /* QSPI0_SPCLK */ 3081 + [29] = RCAR_GP_PIN(5, 1), /* QSPI0_MOSI_IO0 */ 3082 + [30] = RCAR_GP_PIN(5, 2), /* QSPI0_MISO_IO1 */ 3083 + [31] = RCAR_GP_PIN(5, 3), /* QSPI0_IO2 */ 3084 + } }, 3085 + { PINMUX_BIAS_REG("PUEN4", 0xe6060410, "PUD4", 0xe6060450) { 3086 + [ 0] = RCAR_GP_PIN(5, 4), /* QSPI0_IO3 */ 3087 + [ 1] = RCAR_GP_PIN(5, 5), /* QSPI0_SSL */ 3088 + [ 2] = RCAR_GP_PIN(5, 6), /* QSPI1_SPCLK */ 3089 + [ 3] = RCAR_GP_PIN(5, 7), /* QSPI1_MOSI_IO0 */ 3090 + [ 4] = RCAR_GP_PIN(5, 8), /* QSPI1_MISO_IO1 */ 3091 + [ 5] = RCAR_GP_PIN(5, 9), /* QSPI1_IO2 */ 3092 + [ 6] = RCAR_GP_PIN(5, 10), /* QSPI1_IO3 */ 3093 + [ 7] = RCAR_GP_PIN(5, 11), /* QSPI1_SSL */ 3094 + [ 8] = RCAR_GP_PIN(5, 12), /* RPC_RESET# */ 3095 + [ 9] = RCAR_GP_PIN(5, 13), /* RPC_WP# */ 3096 + [10] = RCAR_GP_PIN(5, 14), /* RPC_INT# */ 3097 + [11] = RCAR_GP_PIN(1, 26), /* DIGRF_CLKIN */ 3098 + [12] = RCAR_GP_PIN(1, 27), /* DIGRF_CLKOUT */ 3099 + [13] = RCAR_GP_PIN(2, 17), /* IRQ4 */ 3100 + [14] = RCAR_GP_PIN(2, 18), /* IRQ5 */ 3101 + [15] = RCAR_GP_PIN(2, 25), /* SCL3 */ 3102 + [16] = RCAR_GP_PIN(2, 26), /* SDA3 */ 3103 + [17] = RCAR_GP_PIN(2, 19), /* MSIOF0_RXD */ 3104 + [18] = RCAR_GP_PIN(2, 20), /* MSIOF0_TXD */ 3105 + [19] = RCAR_GP_PIN(2, 21), /* MSIOF0_SCK */ 3106 + [20] = RCAR_GP_PIN(2, 22), /* MSIOF0_SYNC */ 3107 + [21] = RCAR_GP_PIN(2, 23), /* MSIOF0_SS1 */ 3108 + [22] = RCAR_GP_PIN(2, 24), /* MSIOF0_SS2 */ 3109 + [23] = RCAR_GP_PIN(2, 27), /* FSO_CFE_0# */ 3110 + [24] = RCAR_GP_PIN(2, 28), /* FSO_CFE_1# */ 3111 + [25] = RCAR_GP_PIN(2, 29), /* FSO_TOE# */ 3112 + [26] = SH_PFC_PIN_NONE, 3113 + [27] = SH_PFC_PIN_NONE, 3114 + [28] = SH_PFC_PIN_NONE, 3115 + [29] = SH_PFC_PIN_NONE, 3116 + [30] = SH_PFC_PIN_NONE, 3117 + [31] = SH_PFC_PIN_NONE, 3118 + } }, 3119 + { /* sentinel */ } 3120 + }; 3121 + 2968 3122 static const struct sh_pfc_soc_operations pinmux_ops = { 2969 3123 .pin_to_pocctrl = r8a77980_pin_to_pocctrl, 3124 + .get_bias = rcar_pinmux_get_bias, 3125 + .set_bias = rcar_pinmux_set_bias, 2970 3126 }; 2971 3127 2972 3128 const struct sh_pfc_soc_info r8a77980_pinmux_info = { ··· 3160 2964 .nr_functions = ARRAY_SIZE(pinmux_functions), 3161 2965 3162 2966 .cfg_regs = pinmux_config_regs, 2967 + .bias_regs = pinmux_bias_regs, 3163 2968 .ioctrl_regs = pinmux_ioctrl_regs, 3164 2969 3165 2970 .pinmux_data = pinmux_data,