void s3cfb_cfg_gpio(struct platform_device *pdev) { int err; /* add by cym 20150120 */ #if 1 err = gpio_request(EXYNOS4_GPC0(2), "VGA_EN"); if (err) { printk(KERN_ERR "failed to request VGA_EN\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(2), 0); s3c_gpio_cfgpin(EXYNOS4_GPC0(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(2)); msleep(250); err = gpio_request(EXYNOS4_GPL0(4), "BK_VDD_EN"); if (err) { printk(KERN_ERR "failed to request BK_VDD_EN\n"); //return err; } gpio_direction_output(EXYNOS4_GPL0(4), 1); s3c_gpio_cfgpin(EXYNOS4_GPL0(4), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPL0(4)); printk("(%s, %d): BK_VDD_ON\n", __FUNCTION__, __LINE__); msleep(100); #endif s3cfb_gpio_setup_24bpp(EXYNOS4_GPF0(0), 8, S3C_GPIO_SFN(2), S5P_GPIO_DRVSTR_LV4); s3cfb_gpio_setup_24bpp(EXYNOS4_GPF1(0), 8, S3C_GPIO_SFN(2), S5P_GPIO_DRVSTR_LV4); s3cfb_gpio_setup_24bpp(EXYNOS4_GPF2(0), 8, S3C_GPIO_SFN(2), S5P_GPIO_DRVSTR_LV4); s3cfb_gpio_setup_24bpp(EXYNOS4_GPF3(0), 4, S3C_GPIO_SFN(2), S5P_GPIO_DRVSTR_LV4); #if 1 // TC4 //LVDS_PWDN err = gpio_request(EXYNOS4_GPL1(0), "GPL1_0"); if (err) { printk(KERN_ERR "failed to request GPL1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPL1(0), 1); s3c_gpio_cfgpin(EXYNOS4_GPL1(0), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPL1(0)); printk("(%s, %d): LCD_PWDN ON\n", __FUNCTION__, __LINE__); #endif }
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; }
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; }
static int exynos_ac97_cfg_gpio(struct platform_device *pdev) { /* configure GPIO for ac97 port */ if (soc_is_exynos4210() || soc_is_exynos4212() || soc_is_exynos4412()) s3c_gpio_cfgpin_range(EXYNOS4_GPC0(0), 5, S3C_GPIO_SFN(4)); else if (soc_is_exynos5250()) s3c_gpio_cfgpin_range(EXYNOS5_GPB0(0), 5, S3C_GPIO_SFN(4)); return 0; }
int s3cfb_lcd_off(struct platform_device *pdev) { gpio_set_value(EXYNOS4212_GPM0(1), GPIO_LEVEL_LOW); mdelay(200); /* LVDS_N_SHDN to low */ gpio_set_value(EXYNOS4212_GPM0(5), GPIO_LEVEL_LOW); msleep(40); gpio_set_value(EXYNOS4_GPC0(1), GPIO_LEVEL_LOW); msleep(400); return 0; }
int s3cfb_lcd_on(struct platform_device *pdev) { int err; err = gpio_request_one(EXYNOS4_GPC0(1), GPIOF_OUT_INIT_LOW, "GPC0"); if (err) { printk(KERN_ERR "failed to request GPC0 for " "lcd backlight control\n"); return err; } gpio_set_value(EXYNOS4_GPC0(1), GPIO_LEVEL_HIGH); msleep(40); /* LVDS_N_SHDN to low */ err = gpio_request_one(EXYNOS4212_GPM0(5), GPIOF_OUT_INIT_LOW, "GPM0"); if (err) { printk(KERN_ERR "failed to request GPM0 for " "lcd backlight control\n"); return err; } gpio_set_value(EXYNOS4212_GPM0(5), GPIO_LEVEL_HIGH); msleep(300); err = gpio_request_one(EXYNOS4212_GPM0(1), GPIOF_OUT_INIT_LOW, "GPM0"); if (err) { printk(KERN_ERR "failed to request GPM0 for " "lcd backlight control\n"); return err; } gpio_set_value(EXYNOS4212_GPM0(1), GPIO_LEVEL_HIGH); mdelay(2); return 0; }
static int exynos4_pcm_cfg_gpio(struct platform_device *pdev) { switch (pdev->id) { case 0: s3c_gpio_cfgpin_range(EXYNOS4_GPZ(0), 5, S3C_GPIO_SFN(3)); break; case 1: s3c_gpio_cfgpin_range(EXYNOS4_GPC0(0), 5, S3C_GPIO_SFN(3)); break; case 2: s3c_gpio_cfgpin_range(EXYNOS4_GPC1(0), 5, S3C_GPIO_SFN(3)); break; default: printk(KERN_DEBUG "Invalid PCM Controller number!"); return -EINVAL; } return 0; }
static int exynos4_cfg_i2s(struct platform_device *pdev) { switch (pdev->id) { case 0: s3c_gpio_cfgpin_range(EXYNOS4_GPZ(0), 7, S3C_GPIO_SFN(2)); break; case 1: s3c_gpio_cfgpin_range(EXYNOS4_GPC0(0), 5, S3C_GPIO_SFN(2)); break; case 2: s3c_gpio_cfgpin_range(EXYNOS4_GPC1(0), 5, S3C_GPIO_SFN(4)); break; default: printk(KERN_ERR "Invalid Device %d\n", pdev->id); return -EINVAL; } return 0; }
static int exynos4_ac97_cfg_gpio(struct platform_device *pdev) { return s3c_gpio_cfgpin_range(EXYNOS4_GPC0(0), 5, S3C_GPIO_SFN(4)); }
{EXYNOS4_GPA1(5), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* AP_VIA_RXD_1.8V */ #else {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #endif {EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* CODEC_SDA_1.8V */ {EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* CODEC_SCL_1.8V */ {EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* MHL_DSCL_1.8V,NFC_SCL_1.8V */ {EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* MHL_DSDA_1.8V,NFC_SDA_1.8V */ {EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* CAM_SPI_SCLK */ {EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* CAM_SPI_SSN */ {EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* CAM_SPI_MISO */ {EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* CAM_SPI_MOSI */ {EXYNOS4_GPC0(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* TDMB_PWR_EN */ {EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* LCD_2.2V_EN */ #if defined(CONFIG_MACH_BAFFIN_KOR_SKT) || defined(CONFIG_MACH_BAFFIN_KOR_KT) \ || defined(CONFIG_MACH_SUPERIOR_KOR_SKT) {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #else {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* AP_CP_WAKEUP_1.8V */ #endif {EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* TDMB_INT */ #if defined(CONFIG_MACH_BAFFIN_KOR_LGT) {EXYNOS4_GPC1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* CP_RST_INDICATE_1.8V */ #else {EXYNOS4_GPC1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #endif
struct gpio_init_data { uint num; uint cfg; uint val; uint pud; uint drv; }; static struct gpio_init_data u1_init_gpios[] = { #if defined(CONFIG_MACH_U1_KOR_LGT) {EXYNOS4_GPA0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPA0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ {EXYNOS4_GPC0(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE, S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */ #endif #if defined(CONFIG_TDMB) || defined(CONFIG_TDMB_MODULE) {EXYNOS4_GPB(4), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* TDMB_INT */ {EXYNOS4_GPB(5), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* TDMB_RST_N */ {EXYNOS4_GPC0(1), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* TDMB_EN */ #endif #if defined(CONFIG_LEDS_GPIO) {EXYNOS4_GPB(1), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO, S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4}, #endif #if defined(CONFIG_ISDBT_FC8100)
#define DRIVER_NAME "leds" #if defined(CONFIG_CPU_TYPE_SCP_ELITE) || defined(CONFIG_CPU_TYPE_POP_ELITE) || defined(CONFIG_CPU_TYPE_POP2G_ELITE) static int led_gpios[] = { EXYNOS4_GPL2(0), EXYNOS4_GPK1(1), }; #elif defined(CONFIG_CPU_TYPE_SCP_SUPPER) || defined(CONFIG_CPU_TYPE_POP_SUPPER) || defined(CONFIG_CPU_TYPE_POP2G_SUPPER) static int led_gpios[] = { #if defined(CONFIG_MTK_COMBO_COMM) || defined(CONFIG_MTK_COMBO_COMM_MODULE) EXYNOS4_GPC0(2), #else EXYNOS4_GPX2(5), #endif EXYNOS4_GPX0(1), }; #endif #define LED_NUM ARRAY_SIZE(led_gpios) int leds_open(struct inode *inode,struct file *filp) { DPRINTK("Device Opened Success!\n"); return nonseekable_open(inode,filp); }
int s3cfb_backlight_off(struct platform_device *pdev) { int err; //err = gpio_request(EXYNOS4_GPD0(1), "GPD0"); //if (err) { // printk(KERN_ERR "failed to request GPD0 for " // "lcd backlight control\n"); // return err; //} /* modify by cym 20121017 */ #if 0 gpio_direction_output(EXYNOS4_GPD0(1), 0); //gpio_free(EXYNOS4_GPD0(1)); //LED_EN18 err = gpio_request(EXYNOS4_GPC1(1), "GPC1_1"); if (err) { printk(KERN_ERR "failed to request GPC1_1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC1(1), 0); s3c_gpio_cfgpin(EXYNOS4_GPC1(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC1(1)); //VLED_EN err = gpio_request(EXYNOS4_GPC1(2), "GPC1_2"); if (err) { printk(KERN_ERR "failed to request GPC1_2 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC1(2), 0); s3c_gpio_cfgpin(EXYNOS4_GPC1(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC1(2)); //VLED_ON err = gpio_request(EXYNOS4_GPC0(1), "GPC0_1"); if (err) { printk(KERN_ERR "failed to request GPC0_1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(1), 0); s3c_gpio_cfgpin(EXYNOS4_GPC0(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(1)); #else //gpio_direction_output(EXYNOS4_GPD0(1), 0); //gpio_free(EXYNOS4_GPD0(1)); //printk("(%s, %d): LCD_PWM_OFF\n", __FUNCTION__, __LINE__); #if 0 //TP1_EN err = gpio_request(EXYNOS4_GPL0(2), "TP1_EN"); if (err) { printk(KERN_ERR "failed to request TP1_EN for " "I2C control\n"); return err; } gpio_direction_output(EXYNOS4_GPL0(2), 0); s3c_gpio_cfgpin(EXYNOS4_GPL0(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPL0(2)); mdelay(5); printk("(%s, %d): TP1_EN_OFF\n", __FUNCTION__, __LINE__); #endif //VLED_ON #if 0 err = gpio_request(EXYNOS4_GPC0(1), "GPC0_1"); if (err) { printk(KERN_ERR "failed to request GPC0_1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(1), 0); s3c_gpio_cfgpin(EXYNOS4_GPC0(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(1)); printk("(%s, %d): VLED_OFF\n", __FUNCTION__, __LINE__); #endif #endif /* end modify */ /* add by cym 20150120 */ #if 1 err = gpio_request(EXYNOS4_GPD0(1), "GPD0_1"); if (err) { printk(KERN_ERR "failed to request GPD0 for " "lcd backlight control\n"); //return err; } gpio_direction_output(EXYNOS4_GPD0(1), 0); s3c_gpio_cfgpin(EXYNOS4_GPD0(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPD0(1)); printk("(%s, %d): LCD_PWM_OFF\n", __FUNCTION__, __LINE__); #endif //LVDS_PWDN err = gpio_request(EXYNOS4_GPL1(0), "GPL1_0"); if (err) { printk(KERN_ERR "failed to request GPL1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPL1(0), 0); s3c_gpio_cfgpin(EXYNOS4_GPL1(0), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPL1(0)); #if 0 err = gpio_request_one(EXYNOS4_GPL1(1), 0, "GPL1_1"); if (err) { printk(KERN_ERR "failed to request GPL1_1 for " "4.3 LCD control\n"); return err; } s3c_gpio_setpull(EXYNOS4_GPL1(1), S3C_GPIO_PULL_UP); gpio_set_value(EXYNOS4_GPL1(1), 1); gpio_free(EXYNOS4_GPL1(1)); #endif /* add by cym 20141125 */ err = gpio_request(EXYNOS4_GPC0(2), "VGA_EN"); if (err) { printk(KERN_ERR "failed to request VGA_EN\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(2), 0); s3c_gpio_cfgpin(EXYNOS4_GPC0(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(2)); printk("(%s, %d): VGA_EN_OFF\n", __FUNCTION__, __LINE__); /* end add */ /* add by cym 20150120 */ err = gpio_request(EXYNOS4_GPL0(4), "BK_VDD_EN"); if (err) { printk(KERN_ERR "failed to request BK_VDD_EN for\n"); return err; } gpio_direction_output(EXYNOS4_GPL0(4), 0); s3c_gpio_cfgpin(EXYNOS4_GPL0(4), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPL0(4)); printk("(%s, %d): BK_VDD_OFF\n", __FUNCTION__, __LINE__); /* end add */ return 0; }
int s3cfb_backlight_on(struct platform_device *pdev) { int err; #if 0 //VLED_EN err = gpio_request(EXYNOS4_GPC1(2), "GPC1_2"); if (err) { printk(KERN_ERR "failed to request GPC1_2 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC1(2), 1); s3c_gpio_cfgpin(EXYNOS4_GPC1(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC1(2)); mdelay(5); printk("(%s, %d): BK_LCD_EN\n", __FUNCTION__, __LINE__); #endif /*modify by cym 20121017 */ #if 0 //VLED_ON err = gpio_request(EXYNOS4_GPC0(1), "GPC0_1"); if (err) { printk(KERN_ERR "failed to request GPC0_1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(1), 1); s3c_gpio_cfgpin(EXYNOS4_GPC0(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(1)); mdelay(5); //err = gpio_request(EXYNOS4_GPD0(1), "GPD0_1"); if (err) { printk(KERN_ERR "failed to request GPD0 for " "lcd backlight control\n"); //return err; } #if !defined(CONFIG_BACKLIGHT_PWM) gpio_direction_output(EXYNOS4_GPD0(1), 1); gpio_free(EXYNOS4_GPD0(1)); #else gpio_direction_output(EXYNOS4_GPD0(1), 0); s3c_gpio_cfgpin(EXYNOS4_GPD0(1), EXYNOS4_GPD_0_1_TOUT_1); //gpio_free(EXYNOS4_GPD0(1)); #endif mdelay(5); //LED_EN18 err = gpio_request(EXYNOS4_GPC1(1), "GPC1_1"); if (err) { printk(KERN_ERR "failed to request GPC1_1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC1(1), 1); s3c_gpio_cfgpin(EXYNOS4_GPC1(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC1(1)); mdelay(5); #else //VLED_ON #if 0 err = gpio_request(EXYNOS4_GPC0(1), "GPC0_1"); if (err) { printk(KERN_ERR "failed to request GPC0_1 for " "lcd power control\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(1), 1); s3c_gpio_cfgpin(EXYNOS4_GPC0(1), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(1)); printk("(%s, %d): VLED_ON\n", __FUNCTION__, __LINE__); #endif //mdelay(5); mdelay(250); //PWM err = gpio_request(EXYNOS4_GPD0(1), "GPD0_1"); if (err) { printk(KERN_ERR "failed to request GPD0 for " "lcd backlight control\n"); //return err; } #if !defined(CONFIG_BACKLIGHT_PWM) gpio_direction_output(EXYNOS4_GPD0(1), 1); gpio_free(EXYNOS4_GPD0(1)); #else /* modify by cym 20130417 for TSC2007 TouchScreen */ //#ifdef CONFIG_TOUCHSCREEN_TSC2007 // gpio_direction_output(EXYNOS4_GPD0(1), 0); //#else gpio_direction_output(EXYNOS4_GPD0(1), 0); s3c_gpio_cfgpin(EXYNOS4_GPD0(1), EXYNOS4_GPD_0_1_TOUT_1); gpio_free(EXYNOS4_GPD0(1)); printk("(%s, %d): LCD_PWM_ON\n", __FUNCTION__, __LINE__); //#endif /* end modify */ #endif mdelay(5); #if 0 //TP1_EN err = gpio_request(EXYNOS4_GPL0(2), "TP1_EN"); if (err) { printk(KERN_ERR "failed to request TP1_EN for " "I2C control\n"); return err; } //because in uboot we enable,we want to enable it again we must disable it 20121109 //gpio_direction_output(EXYNOS4_GPL0(2), 0); 20130508 //mdelay(100); gpio_direction_output(EXYNOS4_GPL0(2), 1); s3c_gpio_cfgpin(EXYNOS4_GPL0(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPL0(2)); printk("(%s, %d): TP1_EN_ON\n", __FUNCTION__, __LINE__); mdelay(5); #endif #endif #if 1 err = gpio_request_one(EXYNOS4_GPC0(2), 0, "GPC0_2"); if (err) { printk(KERN_ERR "failed to request GPC0_2 for " "4.3 LCD control\n"); return err; } s3c_gpio_setpull(EXYNOS4_GPC0(2), S3C_GPIO_PULL_UP); //gpio_set_value(EXYNOS4_GPC0(2), 0); //mdelay(10); gpio_set_value(EXYNOS4_GPC0(2), 1); gpio_free(EXYNOS4_GPC0(2)); #endif #if 0 err = gpio_request_one(EXYNOS4_GPL1(1), 0, "GPL1_1"); if (err) { printk(KERN_ERR "failed to request GPL1_1 for " "4.3 LCD control\n"); return err; } s3c_gpio_setpull(EXYNOS4_GPL1(1), S3C_GPIO_PULL_UP); gpio_set_value(EXYNOS4_GPL1(1), 0); gpio_free(EXYNOS4_GPL1(1)); #endif /*end modify */ /* add by cym 20141125 */ err = gpio_request(EXYNOS4_GPC0(2), "VGA_EN"); if (err) { printk(KERN_ERR "failed to request VGA_EN\n"); return err; } gpio_direction_output(EXYNOS4_GPC0(2), 1); s3c_gpio_cfgpin(EXYNOS4_GPC0(2), S3C_GPIO_OUTPUT); gpio_free(EXYNOS4_GPC0(2)); printk("(%s, %d): VGA_EN_ON\n", __FUNCTION__, __LINE__); /* end add */ return 0; }
* In addition, LPA mode is also applied to this comment, because * LPA mode invokes this GPIO sleep configuration. */ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* IPC_TXD */ #endif {EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPC0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_CLK(NC) */ {EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_SYNC(NC) */ {EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_IN(NC) */ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_OUT(NC) */ #if defined(CONFIG_SEC_MODEM_M0_TD) {EXYNOS4_GPC1(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, #else {EXYNOS4_GPC1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* PEN_PDCT */ #endif {EXYNOS4_GPC1(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, /* PEN_LDO_EN */ {EXYNOS4_GPC1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* PEN_IRQ_1.8V */ {EXYNOS4_GPC1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* PEN_SDA_1.8V */ {EXYNOS4_GPC1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* PEN_SCL_1.8V */
*/ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, /* IPC_TXD */ #endif #endif {EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* GPIO_TSP_VENDOR2 */ {EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, /* GPIO_TSP_VENDOR3 */ #if !defined(CONFIG_QC_MODEM) {EXYNOS4_GPC0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_CLK(NC) */ {EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* LCD_EN */ {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_SYNC(NC) */ {EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_IN(NC) */ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_OUT(NC) */ #else {EXYNOS4_GPC0(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* WCN_PRIORITY */ {EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* LCD_EN */ #if defined(CONFIG_TARGET_TAB3_LTE8) {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #else {EXYNOS4_GPC0(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* AP2MDM_HOST_READY */ {EXYNOS4_GPC0(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /*AP2MDM_ERR_FATAL*/ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* MDM_LTE_FRAME_SYNC */
static void motor_en(bool enable) { gpio_direction_output(EXYNOS4_GPC0(3), enable); printk(KERN_DEBUG "[VIB] motor_enabled GPIO GPC0(3) : %d\n", gpio_get_value(EXYNOS4_GPC0(3))); }
}, }, { .base = (S5P_VA_GPIO1 + 0x40), .eint_offset = 0x8, .group = 2, .chip = { .base = EXYNOS4_GPB(0), .ngpio = EXYNOS4_GPIO_B_NR, .label = "GPB", }, }, { .base = (S5P_VA_GPIO1 + 0x60), .eint_offset = 0xC, .group = 3, .chip = { .base = EXYNOS4_GPC0(0), .ngpio = EXYNOS4_GPIO_C0_NR, .label = "GPC0", }, }, { .base = (S5P_VA_GPIO1 + 0x80), .eint_offset = 0x10, .group = 4, .chip = { .base = EXYNOS4_GPC1(0), .ngpio = EXYNOS4_GPIO_C1_NR, .label = "GPC1", }, }, { .base = (S5P_VA_GPIO1 + 0xA0), .eint_offset = 0x14,
{EXYNOS4_GPA1(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA1(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA1(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPC0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPC1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPD0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPD0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPD0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPD0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE},
{EXYNOS4_GPA1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_UP}, {EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPC0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* LCD_2.2V_EN */ {EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC(AP_CP_WAKEUP_1.8V) */ {EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_IN(NC) */ {EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* REC_PCM_OUT(NC) */ {EXYNOS4_GPC1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPC1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPD0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ {EXYNOS4_GPD0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, {EXYNOS4_GPD0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, {EXYNOS4_GPD0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE},