static int wlan_carddetect_en(int onoff) { pr_info("### %s %d\n", __func__, onoff); if(onoff) { s3c_gpio_cfgpin(EXYNOS5410_GPC1(0), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS5410_GPC1(1), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS5410_GPC1(2), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS5410_GPC1(3), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS5410_GPC1(4), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS5410_GPC1(5), S3C_GPIO_SFN(2)); s3c_gpio_cfgpin(EXYNOS5410_GPC1(6), S3C_GPIO_SFN(2)); } else { s3c_gpio_cfgpin(EXYNOS5410_GPC1(0), S3C_GPIO_OUTPUT); s3c_gpio_cfgpin(EXYNOS5410_GPC1(1), S3C_GPIO_INPUT); s3c_gpio_cfgpin(EXYNOS5410_GPC1(2), S3C_GPIO_INPUT); s3c_gpio_cfgpin(EXYNOS5410_GPC1(3), S3C_GPIO_INPUT); s3c_gpio_cfgpin(EXYNOS5410_GPC1(4), S3C_GPIO_INPUT); s3c_gpio_cfgpin(EXYNOS5410_GPC1(5), S3C_GPIO_INPUT); s3c_gpio_cfgpin(EXYNOS5410_GPC1(6), S3C_GPIO_INPUT); gpio_set_value(EXYNOS5410_GPC1(0), 0); } msleep(10); mmc_force_presence_change(&exynos5_device_dwmci1, onoff); msleep(400); return 0; }
static int brcm_wlan_set_carddetect(int onoff) { if (onoff) s3c_config_gpio_alive_table(ARRAY_SIZE(wlan_sdio_on_table), wlan_sdio_on_table); else s3c_config_gpio_alive_table(ARRAY_SIZE(wlan_sdio_off_table), wlan_sdio_off_table); udelay(200); mmc_force_presence_change(&s3c_device_hsmmc3); /* msleep(500); wait for carddetect */ return 0; }
static int brcm_wlan_set_carddetect(int onoff) { if (onoff) { s3c_config_gpio_alive_table( ARRAY_SIZE(wlan_sdio_on_table), wlan_sdio_on_table); } else { s3c_config_gpio_alive_table( ARRAY_SIZE(wlan_sdio_off_table), wlan_sdio_off_table); } #if 0 udelay(200); #else mdelay(10); #endif mmc_force_presence_change(&exynos5_device_dwmci1, onoff); msleep(500); /* wait for carddetect */ return 0; }