static int gpio_configure(void) { int ret; printk("%s()\n", __func__); ret = gpio_request(S5PC1XX_GPH1(1), "GPH1"); if (ret) { printk("%s: gpio(GPH1(2) request error: %d\n", __func__, ret); } else { s3c_gpio_cfgpin(S5PC1XX_GPH1(1), S5PC1XX_GPH1_2_WAKEUP_INT_10); s3c_gpio_setpull(S5PC1XX_GPH1(1), S3C_GPIO_PULL_NONE); } ret = gpio_request(S5PC1XX_GPH3(7), "GPH3"); if (ret) { printk("%s: gpio(GPH3(7) request error: %d\n", __func__, ret); } else { s3c_gpio_cfgpin(S5PC1XX_GPH3(7), S5PC1XX_GPH3_7_WAKEUP_INT_31); s3c_gpio_setpull(S5PC1XX_GPH3(7), S3C_GPIO_PULL_NONE); } ret = gpio_request(S5PC1XX_GPG1(0), "GPG1"); if (ret) { printk("%s: gpio(GPG1(0) request error: %d\n", __func__, ret); } else { s3c_gpio_cfgpin(S5PC1XX_GPG1(0), S5PC1XX_GPG1_0_GPIO_INT12_0); s3c_gpio_setpull(S5PC1XX_GPG1(0), S3C_GPIO_PULL_NONE); } ret = gpio_request(S5PC1XX_GPA1(1), "GPA1"); if (ret) { printk("%s: gpio(GPA1(1) request error: %d\n", __func__, ret); } else { s3c_gpio_cfgpin(S5PC1XX_GPA1(1), S5PC1XX_GPA1_1_GPIO_INT1_1); s3c_gpio_setpull(S5PC1XX_GPA1(1), S3C_GPIO_PULL_NONE); } ret = gpio_request(S5PC1XX_GPA1(0), "GPA1"); if (ret) { printk("%s: gpio(GPA1(0) request error: %d\n", __func__, ret); } else { s3c_gpio_cfgpin(S5PC1XX_GPA1(0), S5PC1XX_GPA1_0_GPIO_INT1_0); s3c_gpio_setpull(S5PC1XX_GPA1(0), S3C_GPIO_PULL_NONE); } ret = gpio_request(S5PC1XX_GPB(0), "GPB0"); if (ret) { printk("%s: gpio(GPB0(0) request error: %d\n", __func__, ret); } else { s3c_gpio_cfgpin(S5PC1XX_GPB(0), S5PC1XX_GPB0_GPIO_INT2_0); s3c_gpio_setpull(S5PC1XX_GPB(0), S3C_GPIO_PULL_NONE); } return 0; }
void s3c6410_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) { unsigned int gpio; unsigned int end; /* Channel 0 supports 1,4 and 8-bit bus width */ end = S5PC1XX_GPG0(2 + width); /* Set all the necessary GPG0 ins to special-function 2 */ for (gpio = S5PC1XX_GPG0(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } /* GPG1 chip Detect */ s3c_gpio_setpull(S5PC1XX_GPG1(2), S3C_GPIO_PULL_UP); s3c_gpio_cfgpin(S5PC1XX_GPG1(2), S3C_GPIO_SFN(2)); writel(0xf, S5PC1XX_GPG0DRV); }