arm: tegra: tegratab: add FFD pinmux
Simon Je [Tue, 14 May 2013 23:16:26 +0000 (16:16 -0700)]
To manage pinmux separately between ERS adn FFD,
add FFD pinmux and they are distinguished by board id.

Change-Id: Ia2f9ac859397b842c831a6b392848a434af1d1cb
Signed-off-by: Simon Je <sje@nvidia.com>
Reviewed-on: http://git-master/r/228633
Reviewed-by: Riham Haidar <rhaidar@nvidia.com>
Tested-by: Riham Haidar <rhaidar@nvidia.com>

arch/arm/mach-tegra/board-tegratab-pinmux-t11x.h
arch/arm/mach-tegra/board-tegratab-pinmux.c

index 19680fe..07ee509 100644 (file)
@@ -346,3 +346,299 @@ static struct gpio_init_pin_info init_gpio_mode_tegratab_common[] = {
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PN7, true, 0),
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK6, false, 0),
 };
+
+/*
+ * This pinmux for FFD of tegratab which is auto generated
+ * from T114_CUSTOMER_PINMUX.XLSM
+ */
+static __initdata struct tegra_pingroup_config tegratab_ffd_pinmux_common[] = {
+
+       /* EXTPERIPH1 pinmux */
+       DEFAULT_PINMUX(CLK1_OUT,      EXTPERIPH1,  NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2S1 pinmux */
+       DEFAULT_PINMUX(DAP2_DIN,      I2S1,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP2_DOUT,     I2S1,        NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(DAP2_FS,       I2S1,        NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(DAP2_SCLK,     I2S1,        NORMAL,    NORMAL,   OUTPUT),
+
+       /* CLDVFS pinmux */
+       DEFAULT_PINMUX(DVFS_PWM,      CLDVFS,      NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(DVFS_CLK,      CLDVFS,      NORMAL,    NORMAL,   OUTPUT),
+
+       /* SPI1 pinmux */
+       DEFAULT_PINMUX(ULPI_CLK,      SPI1,        NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(ULPI_DIR,      SPI1,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_NXT,      SPI1,        NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(ULPI_STP,      SPI1,        NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2C3 pinmux */
+       I2C_PINMUX(CAM_I2C_SCL, I2C3, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+       I2C_PINMUX(CAM_I2C_SDA, I2C3, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+
+       /* VI_ALT3 pinmux */
+       VI_PINMUX(CAM_MCLK, VI_ALT3, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
+       VI_PINMUX(GPIO_PBB0, VI_ALT3, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
+
+       /* I2C2 pinmux */
+       I2C_PINMUX(GEN2_I2C_SCL, I2C2, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+       I2C_PINMUX(GEN2_I2C_SDA, I2C2, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+
+       /* UARTD pinmux */
+       DEFAULT_PINMUX(GMI_A16,       UARTD,       NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(GMI_A17,       UARTD,       NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_A18,       UARTD,       NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_A19,       UARTD,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* PWM1 pinmux */
+       DEFAULT_PINMUX(GMI_AD9,       PWM1,        NORMAL,    NORMAL,   OUTPUT),
+
+       /* SOC pinmux */
+       DEFAULT_PINMUX(GMI_CS1_N,     SOC,         PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_OE_N,      SOC,         PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(CLK_32K_OUT,   SOC,         PULL_UP,   NORMAL,   INPUT),
+
+       /* EXTPERIPH2 pinmux */
+       DEFAULT_PINMUX(CLK2_OUT,      EXTPERIPH2,  NORMAL,    NORMAL,   OUTPUT),
+
+       /* SDMMC1 pinmux */
+       DEFAULT_PINMUX(SDMMC1_CLK,    SDMMC1,      NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_CMD,    SDMMC1,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT0,   SDMMC1,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT1,   SDMMC1,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT2,   SDMMC1,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT3,   SDMMC1,      PULL_UP,   NORMAL,   INPUT),
+
+       /* SDMMC3 pinmux */
+       DEFAULT_PINMUX(SDMMC3_CLK,    SDMMC3,      NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(SDMMC3_CMD,    SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT0,   SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT1,   SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT2,   SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT3,   SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_CLK_LB_OUT, SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_CLK_LB_IN, SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_CD_N,   SDMMC3,      PULL_UP,   NORMAL,   INPUT),
+
+       /* SDMMC4 pinmux */
+       DEFAULT_PINMUX(SDMMC4_CLK,    SDMMC4,      NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_CMD,    SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT0,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT1,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT2,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT3,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT4,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT5,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT6,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT7,   SDMMC4,      PULL_UP,   NORMAL,   INPUT),
+
+       /* UARTA pinmux */
+       DEFAULT_PINMUX(KB_ROW10,      UARTA,       NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(KB_ROW9,       UARTA,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* KBC pinmux */
+       DEFAULT_PINMUX(KB_ROW2,       KBC,         PULL_UP,   NORMAL,   INPUT),
+
+       /* I2CPWR pinmux */
+       I2C_PINMUX(PWR_I2C_SCL, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+       I2C_PINMUX(PWR_I2C_SDA, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+
+       /* RTCK pinmux */
+       DEFAULT_PINMUX(JTAG_RTCK,     RTCK,        NORMAL,    NORMAL,   INPUT),
+
+       /* CLK pinmux */
+       DEFAULT_PINMUX(CLK_32K_IN,    CLK,         NORMAL,    NORMAL,   INPUT),
+
+       /* PWRON pinmux */
+       DEFAULT_PINMUX(CORE_PWR_REQ,  PWRON,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* CPU pinmux */
+       DEFAULT_PINMUX(CPU_PWR_REQ,   CPU,         NORMAL,    NORMAL,   OUTPUT),
+
+       /* PMI pinmux */
+       DEFAULT_PINMUX(PWR_INT_N,     PMI,         PULL_UP,   NORMAL,   INPUT),
+
+       /* RESET_OUT_N pinmux */
+       DEFAULT_PINMUX(RESET_OUT_N,   RESET_OUT_N, NORMAL,    NORMAL,   OUTPUT),
+
+       /* EXTPERIPH3 pinmux */
+       DEFAULT_PINMUX(CLK3_OUT,      EXTPERIPH3,  NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2S3 pinmux */
+       DEFAULT_PINMUX(DAP4_DIN,      I2S3,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP4_DOUT,     I2S3,        NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(DAP4_FS,       I2S3,        NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(DAP4_SCLK,     I2S3,        NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2C1 pinmux */
+       I2C_PINMUX(GEN1_I2C_SCL, I2C1, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+       I2C_PINMUX(GEN1_I2C_SDA, I2C1, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+
+       /* UARTC pinmux */
+       DEFAULT_PINMUX(UART3_CTS_N,   UARTC,       PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(UART3_RTS_N,   UARTC,       NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(UART3_RXD,     UARTC,       PULL_UP,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(UART3_TXD,     UARTC,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* CEC pinmux */
+       CEC_PINMUX(HDMI_CEC, CEC, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+
+       /* I2C4 pinmux */
+       DDC_PINMUX(DDC_SCL, I2C4, NORMAL, NORMAL, INPUT, DISABLE, HIGH),
+       DDC_PINMUX(DDC_SDA, I2C4, NORMAL, NORMAL, INPUT, DISABLE, HIGH),
+
+       /* GPIO pinmux */
+       GPIO_PINMUX(GPIO_W3_AUD, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GPIO_X1_AUD, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(ULPI_DATA0, NORMAL, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(ULPI_DATA1, NORMAL, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(ULPI_DATA2, NORMAL, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(ULPI_DATA3, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(ULPI_DATA4, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PBB3, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PBB4, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PBB5, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PBB6, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PBB7, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PCC1, PULL_DOWN, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PCC2, PULL_DOWN, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD0, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD10, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD11, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD12, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD13, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD14, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD2, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_AD3, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_ADV_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_CLK, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_CS0_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_CS2_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_CS3_N, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_CS4_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_CS7_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_DQS_P, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_RST_N, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_WAIT, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GMI_WP_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GMI_WR_N, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(CLK2_REQ, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(SDMMC1_WP_N, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(KB_COL0, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(KB_COL2, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(KB_COL5, PULL_DOWN, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(KB_ROW1, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(KB_ROW3, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(KB_ROW7, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(CLK3_REQ, NORMAL, NORMAL, OUTPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PU5, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(GPIO_PU6, PULL_UP, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(HDMI_INT, PULL_DOWN, NORMAL, INPUT, DISABLE),
+       GPIO_PINMUX(SPDIF_IN, NORMAL, NORMAL, OUTPUT, DISABLE),
+};
+
+static __initdata struct tegra_pingroup_config ffd_unused_pins_lowpower[] = {
+       UNUSED_PINMUX(CLK1_REQ),
+       UNUSED_PINMUX(DAP1_DIN),
+       UNUSED_PINMUX(DAP1_DOUT),
+       UNUSED_PINMUX(DAP1_FS),
+       UNUSED_PINMUX(DAP1_SCLK),
+       UNUSED_PINMUX(GPIO_X4_AUD),
+       UNUSED_PINMUX(GPIO_X5_AUD),
+       UNUSED_PINMUX(GPIO_X6_AUD),
+       UNUSED_PINMUX(GPIO_X7_AUD),
+       UNUSED_PINMUX(GPIO_W2_AUD),
+       UNUSED_PINMUX(GPIO_X3_AUD),
+       UNUSED_PINMUX(DAP3_DIN),
+       UNUSED_PINMUX(DAP3_DOUT),
+       UNUSED_PINMUX(DAP3_FS),
+       UNUSED_PINMUX(DAP3_SCLK),
+       UNUSED_PINMUX(GPIO_PV0),
+       UNUSED_PINMUX(GPIO_PV1),
+       UNUSED_PINMUX(ULPI_DATA5),
+       UNUSED_PINMUX(ULPI_DATA6),
+       UNUSED_PINMUX(ULPI_DATA7),
+       UNUSED_PINMUX(GMI_AD1),
+       UNUSED_PINMUX(GMI_AD15),
+       UNUSED_PINMUX(GMI_AD4),
+       UNUSED_PINMUX(GMI_AD5),
+       UNUSED_PINMUX(GMI_AD6),
+       UNUSED_PINMUX(GMI_AD7),
+       UNUSED_PINMUX(GMI_AD8),
+       UNUSED_PINMUX(GMI_CS6_N),
+       UNUSED_PINMUX(GMI_IORDY),
+       UNUSED_PINMUX(KB_COL1),
+       UNUSED_PINMUX(KB_COL3),
+       UNUSED_PINMUX(KB_COL4),
+       UNUSED_PINMUX(KB_COL6),
+       UNUSED_PINMUX(KB_COL7),
+       UNUSED_PINMUX(KB_ROW0),
+       UNUSED_PINMUX(KB_ROW4),
+       UNUSED_PINMUX(KB_ROW5),
+       UNUSED_PINMUX(KB_ROW6),
+       UNUSED_PINMUX(KB_ROW8),
+       UNUSED_PINMUX(SYS_CLK_REQ),
+       UNUSED_PINMUX(GPIO_PU0),
+       UNUSED_PINMUX(GPIO_PU1),
+       UNUSED_PINMUX(GPIO_PU2),
+       UNUSED_PINMUX(GPIO_PU3),
+       UNUSED_PINMUX(GPIO_PU4),
+       UNUSED_PINMUX(UART2_CTS_N),
+       UNUSED_PINMUX(UART2_RTS_N),
+       UNUSED_PINMUX(UART2_RXD),
+       UNUSED_PINMUX(UART2_TXD),
+       UNUSED_PINMUX(OWR),
+       UNUSED_PINMUX(SPDIF_OUT),
+       UNUSED_PINMUX(USB_VBUS_EN0),
+       UNUSED_PINMUX(USB_VBUS_EN1),
+};
+
+static struct gpio_init_pin_info init_gpio_mode_tegratab_ffd_common[] = {
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PW3, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PX1, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PO1, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PO2, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PO3, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PO4, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PO5, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PBB3, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PBB4, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PBB5, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PBB6, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PBB7, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PCC1, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PCC2, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PG0, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PH2, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PH3, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PH4, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PH5, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PH6, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PG2, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PG3, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK0, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK1, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PJ0, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK3, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK4, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK2, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PI6, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PJ3, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PI4, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PI7, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PC7, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PI0, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PCC5, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PV3, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PQ0, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PQ2, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PQ5, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR1, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR3, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR7, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PEE1, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PU5, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PU6, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PN7, true, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PK6, false, 0),
+};
index da2b8c6..5f918da 100644 (file)
@@ -23,6 +23,7 @@
 #include "board-tegratab.h"
 #include "devices.h"
 #include "gpio-names.h"
+#include "tegra-board-id.h"
 
 #include <mach/pinmux-t11.h>
 
@@ -227,9 +228,17 @@ static void __init tegratab_gpio_init_configure(void)
        int len;
        int i;
        struct gpio_init_pin_info *pins_info;
+       struct board_info board_info;
 
-       len = ARRAY_SIZE(init_gpio_mode_tegratab_common);
-       pins_info = init_gpio_mode_tegratab_common;
+       tegra_get_board_info(&board_info);
+
+       if (board_info.board_id == BOARD_P1640) {
+               len = ARRAY_SIZE(init_gpio_mode_tegratab_ffd_common);
+               pins_info = init_gpio_mode_tegratab_ffd_common;
+       } else { /* ERS */
+               len = ARRAY_SIZE(init_gpio_mode_tegratab_common);
+               pins_info = init_gpio_mode_tegratab_common;
+       }
 
        for (i = 0; i < len; ++i) {
                tegra_gpio_init_configure(pins_info->gpio_nr,
@@ -240,14 +249,26 @@ static void __init tegratab_gpio_init_configure(void)
 
 int __init tegratab_pinmux_init(void)
 {
+       struct board_info board_info;
+
+       tegra_get_board_info(&board_info);
        tegratab_gpio_init_configure();
 
-       tegra_pinmux_config_table(tegratab_pinmux_common,
-                                       ARRAY_SIZE(tegratab_pinmux_common));
        tegra_drive_pinmux_config_table(tegratab_drive_pinmux,
                                        ARRAY_SIZE(tegratab_drive_pinmux));
-       tegra_pinmux_config_table(unused_pins_lowpower,
-               ARRAY_SIZE(unused_pins_lowpower));
+
+       if (board_info.board_id == BOARD_P1640) {
+               tegra_pinmux_config_table(tegratab_ffd_pinmux_common,
+                                       ARRAY_SIZE(tegratab_ffd_pinmux_common));
+               tegra_pinmux_config_table(ffd_unused_pins_lowpower,
+                                       ARRAY_SIZE(ffd_unused_pins_lowpower));
+       } else { /* ERS */
+               tegra_pinmux_config_table(tegratab_pinmux_common,
+                                       ARRAY_SIZE(tegratab_pinmux_common));
+               tegra_pinmux_config_table(unused_pins_lowpower,
+                                       ARRAY_SIZE(unused_pins_lowpower));
+       }
+
        tegra_pinmux_config_table(manual_config_pinmux,
                ARRAY_SIZE(manual_config_pinmux));