static void __init smdk5410_usbswitch_init(void) { struct s5p_usbswitch_platdata *pdata = &smdk5410_usbswitch_pdata; int err; #if defined(CONFIG_USB_EHCI_S5P) || defined(CONFIG_USB_OHCI_EXYNOS) pdata->gpio_host_detect = EXYNOS5410_GPX1(6); err = gpio_request_one(pdata->gpio_host_detect, GPIOF_IN, "HOST_DETECT"); if (err) { pr_err("failed to request host gpio\n"); return; } s3c_gpio_cfgpin(pdata->gpio_host_detect, S3C_GPIO_SFN(0xF)); s3c_gpio_setpull(pdata->gpio_host_detect, S3C_GPIO_PULL_NONE); gpio_free(pdata->gpio_host_detect); pdata->gpio_host_vbus = EXYNOS5410_GPX2(6); err = gpio_request_one(pdata->gpio_host_vbus, GPIOF_OUT_INIT_LOW, "HOST_VBUS_CONTROL"); if (err) { pr_err("failed to request host_vbus gpio\n"); return; } s3c_gpio_setpull(pdata->gpio_host_vbus, S3C_GPIO_PULL_NONE); gpio_free(pdata->gpio_host_vbus); #endif s5p_usbswitch_set_platdata(pdata); }
static void smdk5410_gpio_keys_config_setup(void) { gpio_request_one(EXYNOS5410_GPX2(0), GPIOF_OUT_INIT_LOW, "GPX2"); s3c_gpio_setpull(EXYNOS5410_GPX1(3), S3C_GPIO_PULL_UP); s3c_gpio_setpull(EXYNOS5410_GPX1(4), S3C_GPIO_PULL_UP); }
bool output; // 1 = Output, 0 = Input int value; // Default Value(only for output) int pud; // Pull up/down register setting : S3C_GPIO_PULL_DOWN, UP, NONE } sControlGpios[] = { #if defined(CONFIG_OF) { IOBOARD_SW1, 0xFFFF, "sw1", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_SW2, 0xFFFF, "sw2", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_SW3, 0xFFFF, "sw3", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_SW4, 0xFFFF, "sw4", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED1, 0xFFFF, "led1", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED2, 0xFFFF, "led2", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED3, 0xFFFF, "led3", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED4, 0xFFFF, "led4", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED5, 0xFFFF, "led5", 1, 1, S3C_GPIO_PULL_NONE }, #else { IOBOARD_SW1, EXYNOS5410_GPX2(5), "sw1", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_SW2, EXYNOS5410_GPX2(6), "sw2", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_SW3, EXYNOS5410_GPX1(6), "sw3", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_SW4, EXYNOS5410_GPX1(2), "sw4", 0, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED1, EXYNOS5410_GPX2(7), "led1", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED2, EXYNOS5410_GPX2(4), "led2", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED3, EXYNOS5410_GPX1(3), "led3", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED4, EXYNOS5410_GPX1(0), "led4", 1, 0, S3C_GPIO_PULL_NONE }, { IOBOARD_LED5, EXYNOS5410_GPX2(0), "led5", 1, 1, S3C_GPIO_PULL_NONE }, #endif }; //[*]--------------------------------------------------------------------------------------------------[*] //[*]--------------------------------------------------------------------------------------------------[*] static ssize_t show_gpio (struct device *dev, struct device_attribute *attr, char *buf) {
printk(KERN_ERR "%s touch : %d\n", __func__, synaptics_i2c_devs0[0].irq); } #endif static void universal5410_gpio_keys_config_setup(void) { s3c_gpio_setpull(EXYNOS5410_GPX0(2), S3C_GPIO_PULL_UP); s3c_gpio_setpull(EXYNOS5410_GPX0(3), S3C_GPIO_PULL_UP); } static struct gpio_keys_button universal5410_button[] = { { .code = KEY_POWER, .gpio = EXYNOS5410_GPX2(2), .active_low = 1, .wakeup = 1, }, { .code = KEY_VOLUMEUP, .gpio = EXYNOS5410_GPX0(2), .active_low = 1, }, { .code = KEY_VOLUMEDOWN, .gpio = EXYNOS5410_GPX0(3), .active_low = 1, }, }; static struct gpio_keys_platform_data universal5410_gpiokeys_platform_data = { universal5410_button,
static void vienna_audio_gpio_init(void) { int err; if (system_rev < 0x2) { /* codec spi_mode */ err = gpio_request(EXYNOS5410_GPB2(1), "CODEC_SPIMODE"); if (err) { pr_err(KERN_ERR "GPIO_CODEC_SPI_MODE GPIO set error!\n"); return; } gpio_direction_output(EXYNOS5410_GPB2(1), 1); gpio_set_value(EXYNOS5410_GPB2(1), 0); /* codec spi_mode 0, 3 */ gpio_free(EXYNOS5410_GPB2(1)); } /* Interrupt from codec jack detection */ err = gpio_request(EXYNOS5410_GPX2(5), "EAR_SEND_END"); if (err) { pr_err(KERN_ERR "EAR_SEND_END GPIO set error!\n"); return; } s3c_gpio_setpull(EXYNOS5410_GPX2(5), S3C_GPIO_PULL_NONE); s5p_register_gpio_interrupt(EXYNOS5410_GPX2(5)); gpio_direction_input(EXYNOS5410_GPX2(5)); s3c_gpio_cfgpin(EXYNOS5410_GPX2(5), S3C_GPIO_SFN(0xf)); #ifdef CONFIG_SND_USE_YMU831_LDODE_GPIO err = gpio_request(GPIO_YMU_LDO_EN, "YMU_LDO_EN"); if (err) { pr_err(KERN_ERR "YMU_LDO_EN GPIO set error!\n"); return; } gpio_direction_output(GPIO_YMU_LDO_EN, 1); gpio_set_value(GPIO_YMU_LDO_EN, 0); gpio_free(GPIO_YMU_LDO_EN); #endif /* Main Microphone BIAS */ err = gpio_request(EXYNOS5410_GPJ1(2), "MICBIAS"); if (err) { pr_err(KERN_ERR "MICBIAS_EN GPIO set error!\n"); return; } gpio_direction_output(EXYNOS5410_GPJ1(2), 1); gpio_set_value(EXYNOS5410_GPJ1(2), 0); gpio_free(EXYNOS5410_GPJ1(2)); err = gpio_request(EXYNOS5410_GPJ0(1), "SPK_EN"); if (err) { pr_err(KERN_ERR "SPK_EN GPIO set error!\n"); return; } gpio_direction_output(EXYNOS5410_GPJ0(1), 1); gpio_set_value(EXYNOS5410_GPJ0(1), 1); gpio_free(EXYNOS5410_GPJ0(1)); err = gpio_request(EXYNOS5410_GPK0(7), "LINEOUT_ON"); if (err) { pr_err(KERN_ERR "LINEOUT_ON GPIO set error!\n"); return; } gpio_direction_output(EXYNOS5410_GPK0(7), 1); gpio_set_value(EXYNOS5410_GPK0(7), 1); gpio_free(EXYNOS5410_GPK0(7)); }