| /* |
| * Copyright (c) 2021-2023 IoT.bzh |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| * |
| */ |
| |
| #include <pinctrl_soc.h> |
| #include <zephyr/dt-bindings/pinctrl/renesas/pinctrl-r8a77951.h> |
| |
| const struct pfc_drive_reg pfc_drive_regs[] = { |
| /* DRVCTRL0 */ |
| { 0x0300, { |
| { PIN_QSPI0_SPCLK, 28, 2 }, /* QSPI0_SPCLK */ |
| { PIN_QSPI0_MOSI_IO0, 24, 2 }, /* QSPI0_MOSI_IO0 */ |
| { PIN_QSPI0_MISO_IO1, 20, 2 }, /* QSPI0_MISO_IO1 */ |
| { PIN_QSPI0_IO2, 16, 2 }, /* QSPI0_IO2 */ |
| { PIN_QSPI0_IO3, 12, 2 }, /* QSPI0_IO3 */ |
| { PIN_QSPI0_SSL, 8, 2 }, /* QSPI0_SSL */ |
| { PIN_QSPI1_SPCLK, 4, 2 }, /* QSPI1_SPCLK */ |
| { PIN_QSPI1_MOSI_IO0, 0, 2 }, /* QSPI1_MOSI_IO0 */ |
| } }, |
| /* DRVCTRL1 */ |
| { 0x0304, { |
| { PIN_QSPI1_MISO_IO1, 28, 2 }, /* QSPI1_MISO_IO1 */ |
| { PIN_QSPI1_IO2, 24, 2 }, /* QSPI1_IO2 */ |
| { PIN_QSPI1_IO3, 20, 2 }, /* QSPI1_IO3 */ |
| { PIN_QSPI1_SSL, 16, 2 }, /* QSPI1_SSL */ |
| { PIN_RPC_INT_N, 12, 2 }, /* RPC_INT# */ |
| { PIN_RPC_WP_N, 8, 2 }, /* RPC_WP# */ |
| { PIN_RPC_RESET_N, 4, 2 }, /* RPC_RESET# */ |
| { PIN_AVB_RX_CTL, 0, 3 }, /* AVB_RX_CTL */ |
| } }, |
| /* DRVCTRL2 */ |
| { 0x0308, { |
| { PIN_AVB_RXC, 28, 3 }, /* AVB_RXC */ |
| { PIN_AVB_RD0, 24, 3 }, /* AVB_RD0 */ |
| { PIN_AVB_RD1, 20, 3 }, /* AVB_RD1 */ |
| { PIN_AVB_RD2, 16, 3 }, /* AVB_RD2 */ |
| { PIN_AVB_RD3, 12, 3 }, /* AVB_RD3 */ |
| { PIN_AVB_TX_CTL, 8, 3 }, /* AVB_TX_CTL */ |
| { PIN_AVB_TXC, 4, 3 }, /* AVB_TXC */ |
| { PIN_AVB_TD0, 0, 3 }, /* AVB_TD0 */ |
| } }, |
| /* DRVCTRL3 */ |
| { 0x030c, { |
| { PIN_AVB_TD1, 28, 3 }, /* AVB_TD1 */ |
| { PIN_AVB_TD2, 24, 3 }, /* AVB_TD2 */ |
| { PIN_AVB_TD3, 20, 3 }, /* AVB_TD3 */ |
| { PIN_AVB_TXCREFCLK, 16, 3 }, /* AVB_TXCREFCLK */ |
| { PIN_AVB_MDIO, 12, 3 }, /* AVB_MDIO */ |
| { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ |
| { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ |
| { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ |
| } }, |
| /* DRVCTRL4 */ |
| { 0x0310, { |
| { RCAR_GP_PIN(2, 12), 28, 3 }, /* AVB_LINK */ |
| { RCAR_GP_PIN(2, 13), 24, 3 }, /* AVB_AVTP_MATCH */ |
| { RCAR_GP_PIN(2, 14), 20, 3 }, /* AVB_AVTP_CAPTURE */ |
| { RCAR_GP_PIN(2, 0), 16, 3 }, /* IRQ0 */ |
| { RCAR_GP_PIN(2, 1), 12, 3 }, /* IRQ1 */ |
| { RCAR_GP_PIN(2, 2), 8, 3 }, /* IRQ2 */ |
| { RCAR_GP_PIN(2, 3), 4, 3 }, /* IRQ3 */ |
| { RCAR_GP_PIN(2, 4), 0, 3 }, /* IRQ4 */ |
| } }, |
| /* DRVCTRL5 */ |
| { 0x0314, { |
| { RCAR_GP_PIN(2, 5), 28, 3 }, /* IRQ5 */ |
| { RCAR_GP_PIN(2, 6), 24, 3 }, /* PWM0 */ |
| { RCAR_GP_PIN(2, 7), 20, 3 }, /* PWM1 */ |
| { RCAR_GP_PIN(2, 8), 16, 3 }, /* PWM2 */ |
| { RCAR_GP_PIN(1, 0), 12, 3 }, /* A0 */ |
| { RCAR_GP_PIN(1, 1), 8, 3 }, /* A1 */ |
| { RCAR_GP_PIN(1, 2), 4, 3 }, /* A2 */ |
| { RCAR_GP_PIN(1, 3), 0, 3 }, /* A3 */ |
| } }, |
| /* DRVCTRL6 */ |
| { 0x0318, { |
| { RCAR_GP_PIN(1, 4), 28, 3 }, /* A4 */ |
| { RCAR_GP_PIN(1, 5), 24, 3 }, /* A5 */ |
| { RCAR_GP_PIN(1, 6), 20, 3 }, /* A6 */ |
| { RCAR_GP_PIN(1, 7), 16, 3 }, /* A7 */ |
| { RCAR_GP_PIN(1, 8), 12, 3 }, /* A8 */ |
| { RCAR_GP_PIN(1, 9), 8, 3 }, /* A9 */ |
| { RCAR_GP_PIN(1, 10), 4, 3 }, /* A10 */ |
| { RCAR_GP_PIN(1, 11), 0, 3 }, /* A11 */ |
| } }, |
| /* DRVCTRL7 */ |
| { 0x031c, { |
| { RCAR_GP_PIN(1, 12), 28, 3 }, /* A12 */ |
| { RCAR_GP_PIN(1, 13), 24, 3 }, /* A13 */ |
| { RCAR_GP_PIN(1, 14), 20, 3 }, /* A14 */ |
| { RCAR_GP_PIN(1, 15), 16, 3 }, /* A15 */ |
| { RCAR_GP_PIN(1, 16), 12, 3 }, /* A16 */ |
| { RCAR_GP_PIN(1, 17), 8, 3 }, /* A17 */ |
| { RCAR_GP_PIN(1, 18), 4, 3 }, /* A18 */ |
| { RCAR_GP_PIN(1, 19), 0, 3 }, /* A19 */ |
| } }, |
| /* DRVCTRL8 */ |
| { 0x0320, { |
| { RCAR_GP_PIN(1, 28), 28, 3 }, /* CLKOUT */ |
| { RCAR_GP_PIN(1, 20), 24, 3 }, /* CS0 */ |
| { RCAR_GP_PIN(1, 21), 20, 3 }, /* CS1_A26 */ |
| { RCAR_GP_PIN(1, 22), 16, 3 }, /* BS */ |
| { RCAR_GP_PIN(1, 23), 12, 3 }, /* RD */ |
| { RCAR_GP_PIN(1, 24), 8, 3 }, /* RD_WR */ |
| { RCAR_GP_PIN(1, 25), 4, 3 }, /* WE0 */ |
| { RCAR_GP_PIN(1, 26), 0, 3 }, /* WE1 */ |
| } }, |
| /* DRVCTRL9 */ |
| { 0x0324, { |
| { RCAR_GP_PIN(1, 27), 28, 3 }, /* EX_WAIT0 */ |
| { PIN_PRESETOUT_N, 24, 3 }, /* PRESETOUT# */ |
| { RCAR_GP_PIN(0, 0), 20, 3 }, /* D0 */ |
| { RCAR_GP_PIN(0, 1), 16, 3 }, /* D1 */ |
| { RCAR_GP_PIN(0, 2), 12, 3 }, /* D2 */ |
| { RCAR_GP_PIN(0, 3), 8, 3 }, /* D3 */ |
| { RCAR_GP_PIN(0, 4), 4, 3 }, /* D4 */ |
| { RCAR_GP_PIN(0, 5), 0, 3 }, /* D5 */ |
| } }, |
| /* DRVCTRL10 */ |
| { 0x0328, { |
| { RCAR_GP_PIN(0, 6), 28, 3 }, /* D6 */ |
| { RCAR_GP_PIN(0, 7), 24, 3 }, /* D7 */ |
| { RCAR_GP_PIN(0, 8), 20, 3 }, /* D8 */ |
| { RCAR_GP_PIN(0, 9), 16, 3 }, /* D9 */ |
| { RCAR_GP_PIN(0, 10), 12, 3 }, /* D10 */ |
| { RCAR_GP_PIN(0, 11), 8, 3 }, /* D11 */ |
| { RCAR_GP_PIN(0, 12), 4, 3 }, /* D12 */ |
| { RCAR_GP_PIN(0, 13), 0, 3 }, /* D13 */ |
| } }, |
| /* DRVCTRL11 */ |
| { 0x032c, { |
| { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ |
| { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ |
| { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ |
| { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ |
| { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ |
| { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ |
| { PIN_DU_DOTCLKIN0, 4, 2 }, /* DU_DOTCLKIN0 */ |
| { PIN_DU_DOTCLKIN1, 0, 2 }, /* DU_DOTCLKIN1 */ |
| } }, |
| /* DRVCTRL12 */ |
| { 0x0330, { |
| { PIN_DU_DOTCLKIN2, 28, 2 }, /* DU_DOTCLKIN2 */ |
| { PIN_DU_DOTCLKIN3, 24, 2 }, /* DU_DOTCLKIN3 */ |
| { PIN_FSCLKST_N, 20, 2 }, /* FSCLKST# */ |
| { PIN_TMS, 4, 2 }, /* TMS */ |
| } }, |
| /* DRVCTRL13 */ |
| { 0x0334, { |
| { PIN_TDO, 28, 2 }, /* TDO */ |
| { PIN_ASEBRK, 24, 2 }, /* ASEBRK */ |
| { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ |
| { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ |
| { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ |
| { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ |
| { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ |
| { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ |
| } }, |
| /* DRVCTRL14 */ |
| { 0x0338, { |
| { RCAR_GP_PIN(3, 6), 28, 3 }, /* SD1_CLK */ |
| { RCAR_GP_PIN(3, 7), 24, 3 }, /* SD1_CMD */ |
| { RCAR_GP_PIN(3, 8), 20, 3 }, /* SD1_DAT0 */ |
| { RCAR_GP_PIN(3, 9), 16, 3 }, /* SD1_DAT1 */ |
| { RCAR_GP_PIN(3, 10), 12, 3 }, /* SD1_DAT2 */ |
| { RCAR_GP_PIN(3, 11), 8, 3 }, /* SD1_DAT3 */ |
| { RCAR_GP_PIN(4, 0), 4, 3 }, /* SD2_CLK */ |
| { RCAR_GP_PIN(4, 1), 0, 3 }, /* SD2_CMD */ |
| } }, |
| /* DRVCTRL15 */ |
| { 0x033c, { |
| { RCAR_GP_PIN(4, 2), 28, 3 }, /* SD2_DAT0 */ |
| { RCAR_GP_PIN(4, 3), 24, 3 }, /* SD2_DAT1 */ |
| { RCAR_GP_PIN(4, 4), 20, 3 }, /* SD2_DAT2 */ |
| { RCAR_GP_PIN(4, 5), 16, 3 }, /* SD2_DAT3 */ |
| { RCAR_GP_PIN(4, 6), 12, 3 }, /* SD2_DS */ |
| { RCAR_GP_PIN(4, 7), 8, 3 }, /* SD3_CLK */ |
| { RCAR_GP_PIN(4, 8), 4, 3 }, /* SD3_CMD */ |
| { RCAR_GP_PIN(4, 9), 0, 3 }, /* SD3_DAT0 */ |
| } }, |
| /* DRVCTRL16 */ |
| { 0x0340, { |
| { RCAR_GP_PIN(4, 10), 28, 3 }, /* SD3_DAT1 */ |
| { RCAR_GP_PIN(4, 11), 24, 3 }, /* SD3_DAT2 */ |
| { RCAR_GP_PIN(4, 12), 20, 3 }, /* SD3_DAT3 */ |
| { RCAR_GP_PIN(4, 13), 16, 3 }, /* SD3_DAT4 */ |
| { RCAR_GP_PIN(4, 14), 12, 3 }, /* SD3_DAT5 */ |
| { RCAR_GP_PIN(4, 15), 8, 3 }, /* SD3_DAT6 */ |
| { RCAR_GP_PIN(4, 16), 4, 3 }, /* SD3_DAT7 */ |
| { RCAR_GP_PIN(4, 17), 0, 3 }, /* SD3_DS */ |
| } }, |
| /* DRVCTRL17 */ |
| { 0x0344, { |
| { RCAR_GP_PIN(3, 12), 28, 3 }, /* SD0_CD */ |
| { RCAR_GP_PIN(3, 13), 24, 3 }, /* SD0_WP */ |
| { RCAR_GP_PIN(3, 14), 20, 3 }, /* SD1_CD */ |
| { RCAR_GP_PIN(3, 15), 16, 3 }, /* SD1_WP */ |
| { RCAR_GP_PIN(5, 0), 12, 3 }, /* SCK0 */ |
| { RCAR_GP_PIN(5, 1), 8, 3 }, /* RX0 */ |
| { RCAR_GP_PIN(5, 2), 4, 3 }, /* TX0 */ |
| { RCAR_GP_PIN(5, 3), 0, 3 }, /* CTS0 */ |
| } }, |
| /* DRVCTRL18 */ |
| { 0x0348, { |
| { RCAR_GP_PIN(5, 4), 28, 3 }, /* RTS0 */ |
| { RCAR_GP_PIN(5, 5), 24, 3 }, /* RX1 */ |
| { RCAR_GP_PIN(5, 6), 20, 3 }, /* TX1 */ |
| { RCAR_GP_PIN(5, 7), 16, 3 }, /* CTS1 */ |
| { RCAR_GP_PIN(5, 8), 12, 3 }, /* RTS1 */ |
| { RCAR_GP_PIN(5, 9), 8, 3 }, /* SCK2 */ |
| { RCAR_GP_PIN(5, 10), 4, 3 }, /* TX2 */ |
| { RCAR_GP_PIN(5, 11), 0, 3 }, /* RX2 */ |
| } }, |
| /* DRVCTRL19 */ |
| { 0x034c, { |
| { RCAR_GP_PIN(5, 12), 28, 3 }, /* HSCK0 */ |
| { RCAR_GP_PIN(5, 13), 24, 3 }, /* HRX0 */ |
| { RCAR_GP_PIN(5, 14), 20, 3 }, /* HTX0 */ |
| { RCAR_GP_PIN(5, 15), 16, 3 }, /* HCTS0 */ |
| { RCAR_GP_PIN(5, 16), 12, 3 }, /* HRTS0 */ |
| { RCAR_GP_PIN(5, 17), 8, 3 }, /* MSIOF0_SCK */ |
| { RCAR_GP_PIN(5, 18), 4, 3 }, /* MSIOF0_SYNC */ |
| { RCAR_GP_PIN(5, 19), 0, 3 }, /* MSIOF0_SS1 */ |
| } }, |
| /* DRVCTRL20 */ |
| { 0x0350, { |
| { RCAR_GP_PIN(5, 20), 28, 3 }, /* MSIOF0_TXD */ |
| { RCAR_GP_PIN(5, 21), 24, 3 }, /* MSIOF0_SS2 */ |
| { RCAR_GP_PIN(5, 22), 20, 3 }, /* MSIOF0_RXD */ |
| { RCAR_GP_PIN(5, 23), 16, 3 }, /* MLB_CLK */ |
| { RCAR_GP_PIN(5, 24), 12, 3 }, /* MLB_SIG */ |
| { RCAR_GP_PIN(5, 25), 8, 3 }, /* MLB_DAT */ |
| { PIN_MLB_REF, 4, 3 }, /* MLB_REF */ |
| { RCAR_GP_PIN(6, 0), 0, 3 }, /* SSI_SCK01239 */ |
| } }, |
| /* DRVCTRL21 */ |
| { 0x0354, { |
| { RCAR_GP_PIN(6, 1), 28, 3 }, /* SSI_WS01239 */ |
| { RCAR_GP_PIN(6, 2), 24, 3 }, /* SSI_SDATA0 */ |
| { RCAR_GP_PIN(6, 3), 20, 3 }, /* SSI_SDATA1 */ |
| { RCAR_GP_PIN(6, 4), 16, 3 }, /* SSI_SDATA2 */ |
| { RCAR_GP_PIN(6, 5), 12, 3 }, /* SSI_SCK349 */ |
| { RCAR_GP_PIN(6, 6), 8, 3 }, /* SSI_WS349 */ |
| { RCAR_GP_PIN(6, 7), 4, 3 }, /* SSI_SDATA3 */ |
| { RCAR_GP_PIN(6, 8), 0, 3 }, /* SSI_SCK4 */ |
| } }, |
| /* DRVCTRL22 */ |
| { 0x0358, { |
| { RCAR_GP_PIN(6, 9), 28, 3 }, /* SSI_WS4 */ |
| { RCAR_GP_PIN(6, 10), 24, 3 }, /* SSI_SDATA4 */ |
| { RCAR_GP_PIN(6, 11), 20, 3 }, /* SSI_SCK5 */ |
| { RCAR_GP_PIN(6, 12), 16, 3 }, /* SSI_WS5 */ |
| { RCAR_GP_PIN(6, 13), 12, 3 }, /* SSI_SDATA5 */ |
| { RCAR_GP_PIN(6, 14), 8, 3 }, /* SSI_SCK6 */ |
| { RCAR_GP_PIN(6, 15), 4, 3 }, /* SSI_WS6 */ |
| { RCAR_GP_PIN(6, 16), 0, 3 }, /* SSI_SDATA6 */ |
| } }, |
| /* DRVCTRL23 */ |
| { 0x035c, { |
| { RCAR_GP_PIN(6, 17), 28, 3 }, /* SSI_SCK78 */ |
| { RCAR_GP_PIN(6, 18), 24, 3 }, /* SSI_WS78 */ |
| { RCAR_GP_PIN(6, 19), 20, 3 }, /* SSI_SDATA7 */ |
| { RCAR_GP_PIN(6, 20), 16, 3 }, /* SSI_SDATA8 */ |
| { RCAR_GP_PIN(6, 21), 12, 3 }, /* SSI_SDATA9 */ |
| { RCAR_GP_PIN(6, 22), 8, 3 }, /* AUDIO_CLKA */ |
| { RCAR_GP_PIN(6, 23), 4, 3 }, /* AUDIO_CLKB */ |
| { RCAR_GP_PIN(6, 24), 0, 3 }, /* USB0_PWEN */ |
| } }, |
| /* DRVCTRL24 */ |
| { 0x0360, { |
| { RCAR_GP_PIN(6, 25), 28, 3 }, /* USB0_OVC */ |
| { RCAR_GP_PIN(6, 26), 24, 3 }, /* USB1_PWEN */ |
| { RCAR_GP_PIN(6, 27), 20, 3 }, /* USB1_OVC */ |
| { RCAR_GP_PIN(6, 28), 16, 3 }, /* USB30_PWEN */ |
| { RCAR_GP_PIN(6, 29), 12, 3 }, /* USB30_OVC */ |
| { RCAR_GP_PIN(6, 30), 8, 3 }, /* GP6_30/USB2_CH3_PWEN */ |
| { RCAR_GP_PIN(6, 31), 4, 3 }, /* GP6_31/USB2_CH3_OVC */ |
| } }, |
| { }, |
| }; |
| |
| #define PFC_BIAS_REG(r1, r2) \ |
| .puen = r1, \ |
| .pud = r2, \ |
| .pins = |
| |
| const struct pfc_bias_reg pfc_bias_regs[] = { |
| { PFC_BIAS_REG(0x0400, 0x0440) { /* PUEN0, PUD0 */ |
| [0] = PIN_QSPI0_SPCLK, /* QSPI0_SPCLK */ |
| [1] = PIN_QSPI0_MOSI_IO0, /* QSPI0_MOSI_IO0 */ |
| [2] = PIN_QSPI0_MISO_IO1, /* QSPI0_MISO_IO1 */ |
| [3] = PIN_QSPI0_IO2, /* QSPI0_IO2 */ |
| [4] = PIN_QSPI0_IO3, /* QSPI0_IO3 */ |
| [5] = PIN_QSPI0_SSL, /* QSPI0_SSL */ |
| [6] = PIN_QSPI1_SPCLK, /* QSPI1_SPCLK */ |
| [7] = PIN_QSPI1_MOSI_IO0, /* QSPI1_MOSI_IO0 */ |
| [8] = PIN_QSPI1_MISO_IO1, /* QSPI1_MISO_IO1 */ |
| [9] = PIN_QSPI1_IO2, /* QSPI1_IO2 */ |
| [10] = PIN_QSPI1_IO3, /* QSPI1_IO3 */ |
| [11] = PIN_QSPI1_SSL, /* QSPI1_SSL */ |
| [12] = PIN_RPC_INT_N, /* RPC_INT# */ |
| [13] = PIN_RPC_WP_N, /* RPC_WP# */ |
| [14] = PIN_RPC_RESET_N, /* RPC_RESET# */ |
| [15] = PIN_AVB_RX_CTL, /* AVB_RX_CTL */ |
| [16] = PIN_AVB_RXC, /* AVB_RXC */ |
| [17] = PIN_AVB_RD0, /* AVB_RD0 */ |
| [18] = PIN_AVB_RD1, /* AVB_RD1 */ |
| [19] = PIN_AVB_RD2, /* AVB_RD2 */ |
| [20] = PIN_AVB_RD3, /* AVB_RD3 */ |
| [21] = PIN_AVB_TX_CTL, /* AVB_TX_CTL */ |
| [22] = PIN_AVB_TXC, /* AVB_TXC */ |
| [23] = PIN_AVB_TD0, /* AVB_TD0 */ |
| [24] = PIN_AVB_TD1, /* AVB_TD1 */ |
| [25] = PIN_AVB_TD2, /* AVB_TD2 */ |
| [26] = PIN_AVB_TD3, /* AVB_TD3 */ |
| [27] = PIN_AVB_TXCREFCLK, /* AVB_TXCREFCLK */ |
| [28] = PIN_AVB_MDIO, /* AVB_MDIO */ |
| [29] = RCAR_GP_PIN(2, 9), /* AVB_MDC */ |
| [30] = RCAR_GP_PIN(2, 10), /* AVB_MAGIC */ |
| [31] = RCAR_GP_PIN(2, 11), /* AVB_PHY_INT */ |
| } }, |
| { PFC_BIAS_REG(0x0404, 0x0444) { /* PUEN1, PUD1 */ |
| [0] = RCAR_GP_PIN(2, 12), /* AVB_LINK */ |
| [1] = RCAR_GP_PIN(2, 13), /* AVB_AVTP_MATCH_A */ |
| [2] = RCAR_GP_PIN(2, 14), /* AVB_AVTP_CAPTURE_A */ |
| [3] = RCAR_GP_PIN(2, 0), /* IRQ0 */ |
| [4] = RCAR_GP_PIN(2, 1), /* IRQ1 */ |
| [5] = RCAR_GP_PIN(2, 2), /* IRQ2 */ |
| [6] = RCAR_GP_PIN(2, 3), /* IRQ3 */ |
| [7] = RCAR_GP_PIN(2, 4), /* IRQ4 */ |
| [8] = RCAR_GP_PIN(2, 5), /* IRQ5 */ |
| [9] = RCAR_GP_PIN(2, 6), /* PWM0 */ |
| [10] = RCAR_GP_PIN(2, 7), /* PWM1_A */ |
| [11] = RCAR_GP_PIN(2, 8), /* PWM2_A */ |
| [12] = RCAR_GP_PIN(1, 0), /* A0 */ |
| [13] = RCAR_GP_PIN(1, 1), /* A1 */ |
| [14] = RCAR_GP_PIN(1, 2), /* A2 */ |
| [15] = RCAR_GP_PIN(1, 3), /* A3 */ |
| [16] = RCAR_GP_PIN(1, 4), /* A4 */ |
| [17] = RCAR_GP_PIN(1, 5), /* A5 */ |
| [18] = RCAR_GP_PIN(1, 6), /* A6 */ |
| [19] = RCAR_GP_PIN(1, 7), /* A7 */ |
| [20] = RCAR_GP_PIN(1, 8), /* A8 */ |
| [21] = RCAR_GP_PIN(1, 9), /* A9 */ |
| [22] = RCAR_GP_PIN(1, 10), /* A10 */ |
| [23] = RCAR_GP_PIN(1, 11), /* A11 */ |
| [24] = RCAR_GP_PIN(1, 12), /* A12 */ |
| [25] = RCAR_GP_PIN(1, 13), /* A13 */ |
| [26] = RCAR_GP_PIN(1, 14), /* A14 */ |
| [27] = RCAR_GP_PIN(1, 15), /* A15 */ |
| [28] = RCAR_GP_PIN(1, 16), /* A16 */ |
| [29] = RCAR_GP_PIN(1, 17), /* A17 */ |
| [30] = RCAR_GP_PIN(1, 18), /* A18 */ |
| [31] = RCAR_GP_PIN(1, 19), /* A19 */ |
| } }, |
| { PFC_BIAS_REG(0x0408, 0x0448) { /* PUEN2, PUD2 */ |
| [0] = RCAR_GP_PIN(1, 28), /* CLKOUT */ |
| [1] = RCAR_GP_PIN(1, 20), /* CS0_N */ |
| [2] = RCAR_GP_PIN(1, 21), /* CS1_N */ |
| [3] = RCAR_GP_PIN(1, 22), /* BS_N */ |
| [4] = RCAR_GP_PIN(1, 23), /* RD_N */ |
| [5] = RCAR_GP_PIN(1, 24), /* RD_WR_N */ |
| [6] = RCAR_GP_PIN(1, 25), /* WE0_N */ |
| [7] = RCAR_GP_PIN(1, 26), /* WE1_N */ |
| [8] = RCAR_GP_PIN(1, 27), /* EX_WAIT0_A */ |
| [9] = PIN_PRESETOUT_N, /* PRESETOUT# */ |
| [10] = RCAR_GP_PIN(0, 0), /* D0 */ |
| [11] = RCAR_GP_PIN(0, 1), /* D1 */ |
| [12] = RCAR_GP_PIN(0, 2), /* D2 */ |
| [13] = RCAR_GP_PIN(0, 3), /* D3 */ |
| [14] = RCAR_GP_PIN(0, 4), /* D4 */ |
| [15] = RCAR_GP_PIN(0, 5), /* D5 */ |
| [16] = RCAR_GP_PIN(0, 6), /* D6 */ |
| [17] = RCAR_GP_PIN(0, 7), /* D7 */ |
| [18] = RCAR_GP_PIN(0, 8), /* D8 */ |
| [19] = RCAR_GP_PIN(0, 9), /* D9 */ |
| [20] = RCAR_GP_PIN(0, 10), /* D10 */ |
| [21] = RCAR_GP_PIN(0, 11), /* D11 */ |
| [22] = RCAR_GP_PIN(0, 12), /* D12 */ |
| [23] = RCAR_GP_PIN(0, 13), /* D13 */ |
| [24] = RCAR_GP_PIN(0, 14), /* D14 */ |
| [25] = RCAR_GP_PIN(0, 15), /* D15 */ |
| [26] = RCAR_GP_PIN(7, 0), /* AVS1 */ |
| [27] = RCAR_GP_PIN(7, 1), /* AVS2 */ |
| [28] = RCAR_GP_PIN(7, 2), /* GP7_02 */ |
| [29] = RCAR_GP_PIN(7, 3), /* GP7_03 */ |
| [30] = PIN_DU_DOTCLKIN0, /* DU_DOTCLKIN0 */ |
| [31] = PIN_DU_DOTCLKIN1, /* DU_DOTCLKIN1 */ |
| } }, |
| { PFC_BIAS_REG(0x040c, 0x044c) { /* PUEN3, PUD3 */ |
| [0] = PIN_DU_DOTCLKIN2, /* DU_DOTCLKIN2 */ |
| [1] = PIN_DU_DOTCLKIN3, /* DU_DOTCLKIN3 */ |
| [2] = PIN_FSCLKST_N, /* FSCLKST# */ |
| [3] = PIN_EXTALR, /* EXTALR*/ |
| [4] = PIN_TRST_N, /* TRST# */ |
| [5] = PIN_TCK, /* TCK */ |
| [6] = PIN_TMS, /* TMS */ |
| [7] = PIN_TDI, /* TDI */ |
| [8] = PIN_NONE, |
| [9] = PIN_ASEBRK, /* ASEBRK */ |
| [10] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ |
| [11] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ |
| [12] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ |
| [13] = RCAR_GP_PIN(3, 3), /* SD0_DAT1 */ |
| [14] = RCAR_GP_PIN(3, 4), /* SD0_DAT2 */ |
| [15] = RCAR_GP_PIN(3, 5), /* SD0_DAT3 */ |
| [16] = RCAR_GP_PIN(3, 6), /* SD1_CLK */ |
| [17] = RCAR_GP_PIN(3, 7), /* SD1_CMD */ |
| [18] = RCAR_GP_PIN(3, 8), /* SD1_DAT0 */ |
| [19] = RCAR_GP_PIN(3, 9), /* SD1_DAT1 */ |
| [20] = RCAR_GP_PIN(3, 10), /* SD1_DAT2 */ |
| [21] = RCAR_GP_PIN(3, 11), /* SD1_DAT3 */ |
| [22] = RCAR_GP_PIN(4, 0), /* SD2_CLK */ |
| [23] = RCAR_GP_PIN(4, 1), /* SD2_CMD */ |
| [24] = RCAR_GP_PIN(4, 2), /* SD2_DAT0 */ |
| [25] = RCAR_GP_PIN(4, 3), /* SD2_DAT1 */ |
| [26] = RCAR_GP_PIN(4, 4), /* SD2_DAT2 */ |
| [27] = RCAR_GP_PIN(4, 5), /* SD2_DAT3 */ |
| [28] = RCAR_GP_PIN(4, 6), /* SD2_DS */ |
| [29] = RCAR_GP_PIN(4, 7), /* SD3_CLK */ |
| [30] = RCAR_GP_PIN(4, 8), /* SD3_CMD */ |
| [31] = RCAR_GP_PIN(4, 9), /* SD3_DAT0 */ |
| } }, |
| { PFC_BIAS_REG(0x0410, 0x0450) { /* PUEN4, PUD4 */ |
| [0] = RCAR_GP_PIN(4, 10), /* SD3_DAT1 */ |
| [1] = RCAR_GP_PIN(4, 11), /* SD3_DAT2 */ |
| [2] = RCAR_GP_PIN(4, 12), /* SD3_DAT3 */ |
| [3] = RCAR_GP_PIN(4, 13), /* SD3_DAT4 */ |
| [4] = RCAR_GP_PIN(4, 14), /* SD3_DAT5 */ |
| [5] = RCAR_GP_PIN(4, 15), /* SD3_DAT6 */ |
| [6] = RCAR_GP_PIN(4, 16), /* SD3_DAT7 */ |
| [7] = RCAR_GP_PIN(4, 17), /* SD3_DS */ |
| [8] = RCAR_GP_PIN(3, 12), /* SD0_CD */ |
| [9] = RCAR_GP_PIN(3, 13), /* SD0_WP */ |
| [10] = RCAR_GP_PIN(3, 14), /* SD1_CD */ |
| [11] = RCAR_GP_PIN(3, 15), /* SD1_WP */ |
| [12] = RCAR_GP_PIN(5, 0), /* SCK0 */ |
| [13] = RCAR_GP_PIN(5, 1), /* RX0 */ |
| [14] = RCAR_GP_PIN(5, 2), /* TX0 */ |
| [15] = RCAR_GP_PIN(5, 3), /* CTS0_N */ |
| [16] = RCAR_GP_PIN(5, 4), /* RTS0_N */ |
| [17] = RCAR_GP_PIN(5, 5), /* RX1_A */ |
| [18] = RCAR_GP_PIN(5, 6), /* TX1_A */ |
| [19] = RCAR_GP_PIN(5, 7), /* CTS1_N */ |
| [20] = RCAR_GP_PIN(5, 8), /* RTS1_N */ |
| [21] = RCAR_GP_PIN(5, 9), /* SCK2 */ |
| [22] = RCAR_GP_PIN(5, 10), /* TX2_A */ |
| [23] = RCAR_GP_PIN(5, 11), /* RX2_A */ |
| [24] = RCAR_GP_PIN(5, 12), /* HSCK0 */ |
| [25] = RCAR_GP_PIN(5, 13), /* HRX0 */ |
| [26] = RCAR_GP_PIN(5, 14), /* HTX0 */ |
| [27] = RCAR_GP_PIN(5, 15), /* HCTS0_N */ |
| [28] = RCAR_GP_PIN(5, 16), /* HRTS0_N */ |
| [29] = RCAR_GP_PIN(5, 17), /* MSIOF0_SCK */ |
| [30] = RCAR_GP_PIN(5, 18), /* MSIOF0_SYNC */ |
| [31] = RCAR_GP_PIN(5, 19), /* MSIOF0_SS1 */ |
| } }, |
| { PFC_BIAS_REG(0x0414, 0x0454) { /* PUEN5, PUD5 */ |
| [0] = RCAR_GP_PIN(5, 20), /* MSIOF0_TXD */ |
| [1] = RCAR_GP_PIN(5, 21), /* MSIOF0_SS2 */ |
| [2] = RCAR_GP_PIN(5, 22), /* MSIOF0_RXD */ |
| [3] = RCAR_GP_PIN(5, 23), /* MLB_CLK */ |
| [4] = RCAR_GP_PIN(5, 24), /* MLB_SIG */ |
| [5] = RCAR_GP_PIN(5, 25), /* MLB_DAT */ |
| [6] = PIN_MLB_REF, /* MLB_REF */ |
| [7] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */ |
| [8] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */ |
| [9] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */ |
| [10] = RCAR_GP_PIN(6, 3), /* SSI_SDATA1_A */ |
| [11] = RCAR_GP_PIN(6, 4), /* SSI_SDATA2_A */ |
| [12] = RCAR_GP_PIN(6, 5), /* SSI_SCK349 */ |
| [13] = RCAR_GP_PIN(6, 6), /* SSI_WS349 */ |
| [14] = RCAR_GP_PIN(6, 7), /* SSI_SDATA3 */ |
| [15] = RCAR_GP_PIN(6, 8), /* SSI_SCK4 */ |
| [16] = RCAR_GP_PIN(6, 9), /* SSI_WS4 */ |
| [17] = RCAR_GP_PIN(6, 10), /* SSI_SDATA4 */ |
| [18] = RCAR_GP_PIN(6, 11), /* SSI_SCK5 */ |
| [19] = RCAR_GP_PIN(6, 12), /* SSI_WS5 */ |
| [20] = RCAR_GP_PIN(6, 13), /* SSI_SDATA5 */ |
| [21] = RCAR_GP_PIN(6, 14), /* SSI_SCK6 */ |
| [22] = RCAR_GP_PIN(6, 15), /* SSI_WS6 */ |
| [23] = RCAR_GP_PIN(6, 16), /* SSI_SDATA6 */ |
| [24] = RCAR_GP_PIN(6, 17), /* SSI_SCK78 */ |
| [25] = RCAR_GP_PIN(6, 18), /* SSI_WS78 */ |
| [26] = RCAR_GP_PIN(6, 19), /* SSI_SDATA7 */ |
| [27] = RCAR_GP_PIN(6, 20), /* SSI_SDATA8 */ |
| [28] = RCAR_GP_PIN(6, 21), /* SSI_SDATA9_A */ |
| [29] = RCAR_GP_PIN(6, 22), /* AUDIO_CLKA_A */ |
| [30] = RCAR_GP_PIN(6, 23), /* AUDIO_CLKB_B */ |
| [31] = RCAR_GP_PIN(6, 24), /* USB0_PWEN */ |
| } }, |
| { PFC_BIAS_REG(0x0418, 0x0458) { /* PUEN6, PUD6 */ |
| [0] = RCAR_GP_PIN(6, 25), /* USB0_OVC */ |
| [1] = RCAR_GP_PIN(6, 26), /* USB1_PWEN */ |
| [2] = RCAR_GP_PIN(6, 27), /* USB1_OVC */ |
| [3] = RCAR_GP_PIN(6, 28), /* USB30_PWEN */ |
| [4] = RCAR_GP_PIN(6, 29), /* USB30_OVC */ |
| [5] = RCAR_GP_PIN(6, 30), /* USB2_CH3_PWEN */ |
| [6] = RCAR_GP_PIN(6, 31), /* USB2_CH3_OVC */ |
| [7] = PIN_NONE, |
| [8] = PIN_NONE, |
| [9] = PIN_NONE, |
| [10] = PIN_NONE, |
| [11] = PIN_NONE, |
| [12] = PIN_NONE, |
| [13] = PIN_NONE, |
| [14] = PIN_NONE, |
| [15] = PIN_NONE, |
| [16] = PIN_NONE, |
| [17] = PIN_NONE, |
| [18] = PIN_NONE, |
| [19] = PIN_NONE, |
| [20] = PIN_NONE, |
| [21] = PIN_NONE, |
| [22] = PIN_NONE, |
| [23] = PIN_NONE, |
| [24] = PIN_NONE, |
| [25] = PIN_NONE, |
| [26] = PIN_NONE, |
| [27] = PIN_NONE, |
| [28] = PIN_NONE, |
| [29] = PIN_NONE, |
| [30] = PIN_NONE, |
| [31] = PIN_NONE, |
| } }, |
| { /* sentinel */ }, |
| }; |
| |
| const struct pfc_bias_reg *pfc_rcar_get_bias_regs(void) |
| { |
| return pfc_bias_regs; |
| } |
| const struct pfc_drive_reg *pfc_rcar_get_drive_regs(void) |
| { |
| return pfc_drive_regs; |
| } |
| |
| int pfc_rcar_get_reg_index(uint8_t pin, uint8_t *reg_index) |
| { |
| /* There is only one register on Gen 3 */ |
| *reg_index = 0; |
| return 0; |
| } |