/* Intialize gpio set in midas board */ void midas_config_gpio_table(void) { u32 i, gpio; printk(KERN_DEBUG "%s\n", __func__); for (i = 0; i < ARRAY_SIZE(gt3_init_gpios); i++) { gpio = gt3_init_gpios[i].num; if (gpio <= EXYNOS4212_GPV4(1)) { s3c_gpio_cfgpin(gpio, gt3_init_gpios[i].cfg); s3c_gpio_setpull(gpio, gt3_init_gpios[i].pud); if (gt3_init_gpios[i].val != S3C_GPIO_SETPIN_NONE) gpio_set_value(gpio, gt3_init_gpios[i].val); s5p_gpio_set_drvstr(gpio, gt3_init_gpios[i].drv); } } #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \ defined(CONFIG_TARGET_TAB3_LTE8) if (system_rev > 1) { s3c_gpio_cfgpin(EXYNOS4_GPX3(0), S3C_GPIO_INPUT); s3c_gpio_setpull(EXYNOS4_GPX3(0), S3C_GPIO_PULL_DOWN); } #endif #if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \ defined(CONFIG_TARGET_TAB3_LTE8) if (system_rev > 5) { s3c_gpio_cfgpin(EXYNOS4_GPX1(4), S3C_GPIO_INPUT); s3c_gpio_setpull(EXYNOS4_GPX1(4), S3C_GPIO_PULL_DOWN); } #endif }
/* Intialize gpio set in midas board */ void midas_config_gpio_table(void) { u32 i, gpio; printk(KERN_DEBUG "%s\n", __func__); for (i = 0; i < ARRAY_SIZE(m0_init_gpios); i++) { gpio = m0_init_gpios[i].num; if (gpio <= EXYNOS4212_GPV4(1)) { s3c_gpio_cfgpin(gpio, m0_init_gpios[i].cfg); s3c_gpio_setpull(gpio, m0_init_gpios[i].pud); if (m0_init_gpios[i].val != S3C_GPIO_SETPIN_NONE) gpio_set_value(gpio, m0_init_gpios[i].val); s5p_gpio_set_drvstr(gpio, m0_init_gpios[i].drv); } } }
{EXYNOS4212_GPV2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV2(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV3(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV4(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4212_GPV4(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, }; /* grande_sleep_gpio_table */ static void config_sleep_gpio_table(int array_size, unsigned int (*gpio_table)[3]) { u32 i, gpio; for (i = 0; i < array_size; i++) { gpio = gpio_table[i][0]; s3c_gpio_slp_cfgpin(gpio, gpio_table[i][1]); s3c_gpio_slp_setpull_updown(gpio, gpio_table[i][2]); } }
}, }, { .base = (S5P_VA_GPIO4 + 0x80), .eint_offset = 0x0C, .group = 31, .chip = { .base = EXYNOS4212_GPV3(0), .ngpio = EXYNOS4212_GPIO_V3_NR, .label = "GPV3", }, }, { .base = (S5P_VA_GPIO4 + 0xC0), .eint_offset = 0x10, .group = 32, .chip = { .base = EXYNOS4212_GPV4(0), .ngpio = EXYNOS4212_GPIO_V4_NR, .label = "GPV4", }, }, }; /* EXYNOS4 machine dependent GPIO help function */ int s3c_gpio_slp_cfgpin(unsigned int pin, unsigned int config) { struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); void __iomem *reg; unsigned long flags; int offset; u32 con; int shift;
{EXYNOS4212_GPV2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV2(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #endif {EXYNOS4212_GPV3(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV3(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #ifdef CONFIG_EXYNOS_C2C {EXYNOS4212_GPV4(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* C2C_WKREQIN */ {EXYNOS4212_GPV4(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* C2C_WKREQOUT */ #else {EXYNOS4212_GPV4(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4212_GPV4(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #endif #ifdef CONFIG_EXYNOS_C2C {EXYNOS4_GPX1(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* AP2CP_WAKEUP */ {EXYNOS4_GPX1(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* AP2CP_STATUS */ {EXYNOS4_GPX1(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* CP2AP_WAKEUP */ {EXYNOS4_GPX1(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* CP2AP_STATUS */ #endif {EXYNOS4_GPX1(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* QT_GPIO_RST */ {EXYNOS4_GPX3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* TP_INDICATOR */