void s5pv310_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) { unsigned int gpio; /* Set all the necessary GPK0/GPK1 pins to special-function 2 */ for (gpio = S5PV310_GPK0(0); gpio < S5PV310_GPK0(2); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } switch (width) { case 8: /* GPK1[3:6] special-funtion 3 */ for (gpio = S5PV310_GPK1(3); gpio <= S5PV310_GPK1(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } __raw_writel(0x3FC0, GPK1DRV); case 4: /* GPK0[3:6] special-funtion 2 */ for (gpio = S5PV310_GPK0(3); gpio <= S5PV310_GPK0(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } __raw_writel(0x3FFF, GPK0DRV); break; case 1: /* Data pin GPK2[3] to special-function 2 */ for (gpio = S5PV310_GPK0(3); gpio < S5PV310_GPK0(4); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } __raw_writel(0xFF, GPK0DRV); default: break; } }
.ucon = SMDKV310_UCON_DEFAULT, .ulcon = SMDKV310_ULCON_DEFAULT, .ufcon = SMDKV310_UFCON_DEFAULT, }, [3] = { .hwport = 3, .flags = 0, .ucon = SMDKV310_UCON_DEFAULT, .ulcon = SMDKV310_ULCON_DEFAULT, .ufcon = SMDKV310_UFCON_DEFAULT, }, }; static struct s3c_sdhci_platdata smdkv310_hsmmc0_pdata __initdata = { .cd_type = S3C_SDHCI_CD_GPIO, .ext_cd_gpio = S5PV310_GPK0(2), .ext_cd_gpio_invert = 1, .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, #ifdef CONFIG_S5PV310_SDHCI_CH0_8BIT .max_width = 8, .host_caps = MMC_CAP_8_BIT_DATA, #endif }; static struct s3c_sdhci_platdata smdkv310_hsmmc1_pdata __initdata = { .cd_type = S3C_SDHCI_CD_GPIO, .ext_cd_gpio = S5PV310_GPK0(2), .ext_cd_gpio_invert = 1, .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, };
static struct s3c_gpio_chip s5pv310_gpio_part2_4bit[] = { { .chip = { .base = S5PV310_GPJ0(0), .ngpio = S5PV310_GPIO_J0_NR, .label = "GPJ0", }, }, { .chip = { .base = S5PV310_GPJ1(0), .ngpio = S5PV310_GPIO_J1_NR, .label = "GPJ1", }, }, { .chip = { .base = S5PV310_GPK0(0), .ngpio = S5PV310_GPIO_K0_NR, .label = "GPK0", }, }, { .chip = { .base = S5PV310_GPK1(0), .ngpio = S5PV310_GPIO_K1_NR, .label = "GPK1", }, }, { .chip = { .base = S5PV310_GPK2(0), .ngpio = S5PV310_GPIO_K2_NR, .label = "GPK2", },