int s3c64xx_spi2_cfg_gpio(struct platform_device *dev) { int gpio; if (soc_is_exynos5410()) { s3c_gpio_cfgpin(EXYNOS5410_GPB1(1), S3C_GPIO_SFN(5)); s3c_gpio_setpull(EXYNOS5410_GPB1(1), S3C_GPIO_PULL_UP); s3c_gpio_cfgall_range(EXYNOS5410_GPB1(3), 2, S3C_GPIO_SFN(5), S3C_GPIO_PULL_UP); for (gpio = EXYNOS5410_GPB1(1); gpio < EXYNOS5410_GPB1(5); gpio++) s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } else if (soc_is_exynos5250()) { s3c_gpio_cfgpin(EXYNOS5_GPB1(1), S3C_GPIO_SFN(5)); s3c_gpio_setpull(EXYNOS5_GPB1(1), S3C_GPIO_PULL_UP); s3c_gpio_cfgall_range(EXYNOS5_GPB1(3), 2, S3C_GPIO_SFN(5), S3C_GPIO_PULL_UP); for (gpio = EXYNOS5_GPB1(1); gpio < EXYNOS5_GPB1(5); gpio++) s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } else { s3c_gpio_cfgpin(EXYNOS4_GPC1(1), S3C_GPIO_SFN(5)); s3c_gpio_setpull(EXYNOS4_GPC1(1), S3C_GPIO_PULL_UP); s3c_gpio_cfgall_range(EXYNOS4_GPC1(3), 2, S3C_GPIO_SFN(5), S3C_GPIO_PULL_UP); for (gpio = EXYNOS4_GPC1(1); gpio < EXYNOS4_GPC1(5); gpio++) s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3); } return 0; }
static int exynos_cfg_i2s_gpio(struct platform_device *pdev) { /* configure GPIO for i2s port */ struct exynos_gpio_cfg exynos4_cfg[3] = { { EXYNOS4_GPZ(0), 7, S3C_GPIO_SFN(2) }, { EXYNOS4_GPC0(0), 5, S3C_GPIO_SFN(2) }, { EXYNOS4_GPC1(0), 5, S3C_GPIO_SFN(2) } }; struct exynos_gpio_cfg exynos5_cfg[3] = { { EXYNOS5_GPZ(0), 7, S3C_GPIO_SFN(2) }, { EXYNOS5_GPB0(0), 5, S3C_GPIO_SFN(2) }, { EXYNOS5_GPB1(0), 5, S3C_GPIO_SFN(2) } }; if (pdev->id < 0 || pdev->id > 2) { printk(KERN_ERR "Invalid Device %d\n", pdev->id); return -EINVAL; } if (soc_is_exynos4210() || soc_is_exynos4212() || soc_is_exynos4412()) s3c_gpio_cfgpin_range(exynos4_cfg[pdev->id].addr, exynos4_cfg[pdev->id].num, exynos4_cfg[pdev->id].bit); else if (soc_is_exynos5250()) s3c_gpio_cfgpin_range(exynos5_cfg[pdev->id].addr, exynos5_cfg[pdev->id].num, exynos5_cfg[pdev->id].bit); return 0; }
void s3c_i2c6_cfg_gpio(struct platform_device *dev) { if (soc_is_exynos5210() || soc_is_exynos5250()) s3c_gpio_cfgall_range(EXYNOS5_GPB1(3), 2, S3C_GPIO_SFN(4), S3C_GPIO_PULL_UP); else s3c_gpio_cfgall_range(EXYNOS4_GPC1(3), 2, S3C_GPIO_SFN(4), S3C_GPIO_PULL_UP); }
static int exynos_spdif_cfg_gpio(struct platform_device *pdev) { /* configure GPIO for SPDIF port */ if (soc_is_exynos4210() || soc_is_exynos4212() || soc_is_exynos4412()) s3c_gpio_cfgpin_range(EXYNOS4_GPC1(0), 2, S3C_GPIO_SFN(4)); else if (soc_is_exynos5250()) s3c_gpio_cfgpin_range(EXYNOS5_GPB1(0), 2, S3C_GPIO_SFN(4)); return 0; }
static int exynos_pcm_cfg_gpio(struct platform_device *pdev) { /* configure GPIO for pcm port */ struct exynos_gpio_cfg exynos4_cfg[3] = { { EXYNOS4_GPZ(0), 5, S3C_GPIO_SFN(3) }, { EXYNOS4_GPC0(0), 5, S3C_GPIO_SFN(3) }, { EXYNOS4_GPC1(0), 5, S3C_GPIO_SFN(3) } }; struct exynos_gpio_cfg exynos5_cfg[3] = { { EXYNOS5_GPZ(0), 5, S3C_GPIO_SFN(3) }, { EXYNOS5_GPB0(0), 5, S3C_GPIO_SFN(3) }, { EXYNOS5_GPB1(0), 5, S3C_GPIO_SFN(3) } }; if (pdev->id < 0 || pdev->id > 2) { printk(KERN_ERR "Invalid Device %d\n", pdev->id); return -EINVAL; } if (soc_is_exynos4210() || soc_is_exynos4212() || soc_is_exynos4412()) s3c_gpio_cfgpin_range(exynos4_cfg[pdev->id].addr, exynos4_cfg[pdev->id].num, exynos4_cfg[pdev->id].bit); else if (soc_is_exynos5250()) s3c_gpio_cfgpin_range(exynos5_cfg[pdev->id].addr, exynos5_cfg[pdev->id].num, exynos5_cfg[pdev->id].bit); #ifdef CONFIG_SND_SOC_BCM4334 /* these are temporary settings, electrical characterics of pcm port should be checked. */ if (soc_is_exynos4412() && pdev->id == 1) { s3c_gpio_setpull(EXYNOS4_GPC0(0), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(EXYNOS4_GPC0(0), S5P_GPIO_DRVSTR_LV1); s3c_gpio_cfgpin(EXYNOS4_GPC0(1), 0); s3c_gpio_setpull(EXYNOS4_GPC0(2), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(EXYNOS4_GPC0(2), S5P_GPIO_DRVSTR_LV4); s3c_gpio_setpull(EXYNOS4_GPC0(3), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(EXYNOS4_GPC0(3), S5P_GPIO_DRVSTR_LV1); s3c_gpio_setpull(EXYNOS4_GPC0(4), S3C_GPIO_PULL_NONE); s5p_gpio_set_drvstr(EXYNOS4_GPC0(4), S5P_GPIO_DRVSTR_LV1); } #endif return 0; }
S3C_GPIO_PULL_DOWN}, /* 5M_SPI_DI */ {EXYNOS5_GPA2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* 5M_SPI_DO */ {EXYNOS5_GPB0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* AP_CP_INT */ {EXYNOS5_GPB0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* CMC221_CPU_RST */ {EXYNOS5_GPB0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* CMC_SPI_CLK_REQ */ {EXYNOS5_GPB0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS5_GPB0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS5_GPB1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* BARO_INT */ {EXYNOS5_GPB1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS5_GPB1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS5_GPB1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS5_GPB1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS5_GPB2(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* LCD_PWM_IN_1.8V */ {EXYNOS5_GPB2(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* MOTOR_PWM */ {EXYNOS5_GPB2(2), S3C_GPIO_SLP_INPUT,