static void exynos_dwmci2_cfg_gpio(int width) { unsigned int gpio; /* set to pull up pin for write protection */ gpio = EXYNOS5420_GPC4(0); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); for (gpio = EXYNOS5420_GPC2(0); gpio < EXYNOS5420_GPC2(2); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } switch (width) { case 4: for (gpio = EXYNOS5420_GPC2(3); gpio <= EXYNOS5420_GPC2(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } break; case 1: gpio = EXYNOS5420_GPC2(3); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); default: break; } gpio = EXYNOS5420_GPC2(2); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); }
static void exynos_dwmci2_cfg_gpio(int width) { unsigned int gpio; s3c_gpio_setpull(GPIO_T_FLASH_DETECT, S3C_GPIO_PULL_NONE); /* set to pull up pin for write protection */ gpio = EXYNOS5420_GPC4(0); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); for (gpio = EXYNOS5420_GPC2(0); gpio < EXYNOS5420_GPC2(2); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } switch (width) { case 4: for (gpio = EXYNOS5420_GPC2(3); gpio <= EXYNOS5420_GPC2(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } break; case 1: gpio = EXYNOS5420_GPC2(3); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); break; case 0: for (gpio = EXYNOS5410_GPC2(0); gpio < EXYNOS5410_GPC2(2); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } for (gpio = EXYNOS5410_GPC2(3); gpio <= EXYNOS5410_GPC2(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } gpio = GPIO_TF_EN; if (gpio_get_value(gpio)) { gpio_set_value(gpio, 0); pr_info("external MMC(SD) card %s.\n", gpio_get_value(gpio) ? "On" : "Off"); } return; default: break; } gpio = GPIO_TF_EN; if (gpio_get_value(GPIO_T_FLASH_DETECT)) gpio_set_value(gpio, 0); else gpio_set_value(gpio, 1); pr_info("external MMC(SD) card %s.\n", gpio_get_value(gpio) ? "on" : "off"); gpio = EXYNOS5420_GPC2(2); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); }
{ EXYNOS5420_GPB3(4), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* PEN_SDA_1.8V */ { EXYNOS5420_GPB3(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* PEN_SCL_1.8V */ #endif /* GPC 1 */ { EXYNOS5420_GPC1(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* WLAN_SDIO_CLK */ { EXYNOS5420_GPC1(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* WLAN_SDIO_CMD */ { EXYNOS5420_GPC1(3), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* WLAN_SDIO_D(0) */ { EXYNOS5420_GPC1(4), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* WLAN_SDIO_D(1) */ { EXYNOS5420_GPC1(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* WLAN_SDIO_D(2) */ { EXYNOS5420_GPC1(6), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* WLAN_SDIO_D(3) */ { EXYNOS5420_GPC1(7), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ /* GPC 2 */ { EXYNOS5420_GPC2(2), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ /* GPC 3 */ /* GPC 4 */ { EXYNOS5420_GPC4(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ { EXYNOS5420_GPC4(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ /* GPD 1 */ { EXYNOS5420_GPD1(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ #if defined(CONFIG_V1A) { EXYNOS5420_GPD1(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* MOTOR_I2C_SDA */ { EXYNOS5420_GPD1(6), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* MOTOR_I2C_SCL */ #endif #if defined(CONFIG_V1A_WIFI) || defined(CONFIG_V2A_WIFI) { EXYNOS5420_GPD1(7), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(PDA_ACTIVE) */ #endif /* GPE 0 */ /* GPE 1 */ { EXYNOS5420_GPE1(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ { EXYNOS5420_GPE1(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */ /* GPF 0 */