void s3c_setup_keypad_cfg_gpio(void) { unsigned int gpio; unsigned int end; /* gpio setting for KP_COL0 */ s3c_gpio_cfgpin(S5PV210_GPJ1(5), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(5), S3C_GPIO_PULL_NONE); /* gpio setting for KP_COL1 ~ KP_COL7 and KP_ROW0 */ end = S5PV210_GPJ2(8); for (gpio = S5PV210_GPJ2(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } /* gpio setting for KP_ROW1 ~ KP_ROW8 */ end = S5PV210_GPJ3(8); for (gpio = S5PV210_GPJ3(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } /* gpio setting for KP_ROW9 ~ KP_ROW13 */ end = S5PV210_GPJ4(5); for (gpio = S5PV210_GPJ4(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } }
void s3c_fimc0_cfg_gpio(struct platform_device *pdev) { int i = 0; /* CAM A port(b0010) : PCLK, VSYNC, HREF, DATA[0-4] */ for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPE0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE0(i), S3C_GPIO_PULL_NONE); } /* CAM A port(b0010) : DATA[5-7], CLKOUT(MIPI CAM also), FIELD */ // for (i=0; i < 5; i++) {///////////////////////////////////////////////////// for (i=0; i < 4; i++) {//////////////////////////////////////////////////////disable FIELD s3c_gpio_cfgpin(S5PV210_GPE1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE1(i), S3C_GPIO_PULL_NONE); } #if defined(CONFIG_MACH_SMDKC110) || defined(CONFIG_MACH_SMDKV210) s3c_gpio_cfgpin(S5PV210_GPE1(4), S5PV210_GPE1_4_CAM_A_FIELD); s3c_gpio_setpull(S5PV210_GPE1(4), S3C_GPIO_PULL_NONE); /* CAM B port(b0011) : DATA[0-7] */ for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPJ0(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ0(i), S3C_GPIO_PULL_NONE); } /* CAM B port(b0011) : PCLK, VSYNC, HREF, FIELD, CLCKOUT */ for (i = 0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPJ1(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(i), S3C_GPIO_PULL_NONE); } #endif /* note : driver strength to max is unnecessary */ }
void s3c_fimc0_cfg_gpio(struct platform_device *pdev) { int i = 0; /* CAM A port(b0010) : PCLK, VSYNC, HREF, DATA[0-4] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPE0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE0(i), S3C_GPIO_PULL_NONE); } /* CAM A port(b0010) : DATA[5-7], CLKOUT(MIPI CAM also), FIELD */ for (i=0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPE1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE1(i), S3C_GPIO_PULL_NONE); } /* CAM B port(b0011) : DATA[0-7] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPJ0(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ0(i), S3C_GPIO_PULL_NONE); } /* CAM B port(b0011) : PCLK, VSYNC, HREF, FIELD, CLCKOUT */ for (i=0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPJ1(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(i), S3C_GPIO_PULL_NONE); } /* note : driver strength to max is unnecessary */ }
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) { #if 0 /* Set all the necessary GPH3 pins to special-function 3: KP_ROW[x] */ s3c_gpio_cfgrange_nopull(S5PV210_GPH3(0), rows, S3C_GPIO_SFN(3)); /* Set all the necessary GPH2 pins to special-function 3: KP_COL[x] */ s3c_gpio_cfgrange_nopull(S5PV210_GPH2(0), cols, S3C_GPIO_SFN(3)); #else unsigned int gpio; unsigned int end; s3c_gpio_cfgpin(S5PV210_GPJ2(7), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ2(7), S3C_GPIO_PULL_UP); end = S5PV210_GPJ3(rows -1); for (gpio = S5PV210_GPJ3(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); } s3c_gpio_cfgpin(S5PV210_GPJ1(5), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(5), S3C_GPIO_PULL_NONE); end = S5PV210_GPJ2(cols -1); for (gpio = S5PV210_GPJ2(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } #endif }
void s3c_fimc0_cfg_gpio(struct platform_device *pdev) { int i = 0; /* CAM A port(b0010) : PCLK, VSYNC, HREF, DATA[0-4] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPE0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE0(i), S3C_GPIO_PULL_NONE); } /* CAM A port(b0010) : DATA[5-7], CLKOUT(MIPI CAM also), FIELD */ for (i=0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPE1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE1(i), S3C_GPIO_PULL_NONE); } #if !defined(CONFIG_MX100) /*Shanghai ewada*/ /* CAM B port(b0011) : DATA[0-7] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPJ0(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ0(i), S3C_GPIO_PULL_NONE); } /* CAM B port(b0011) : PCLK, VSYNC, HREF, FIELD, CLCKOUT */ for (i=0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPJ1(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(i), S3C_GPIO_PULL_NONE); } #endif }
void s3c_fimc0_cfg_gpio_suspend(struct platform_device *pdev) { int i = 0; for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPE0(i), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPE0(i), S3C_GPIO_PULL_UP); } /* CAM A port(b0010) : DATA[5-7], CLKOUT(MIPI CAM also), FIELD */ for (i=0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPE1(i), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPE1(i), S3C_GPIO_PULL_UP); } /* CAM B port(b0011) : DATA[0-7] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPJ0(i), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPJ0(i), S3C_GPIO_PULL_UP); } /* CAM B port(b0011) : PCLK, VSYNC, HREF, FIELD, CLCKOUT */ for (i=0; i < 5; i++) { s3c_gpio_cfgpin(S5PV210_GPJ1(i), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPJ1(i), S3C_GPIO_PULL_UP); } }
static int keypad_scan(void) { u32 col,rval,gpio; for (gpio = S5PV210_GPJ1(5); gpio <= S5PV210_GPJ2(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_DOWN); } udelay(10); for (col=0,gpio = S5PV210_GPJ1(5); col < KEYPAD_COLUMNS; col++,gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_OUTPUT); if(s3c_gpio_setpin(gpio, 0) < 0) // Should skip J1(6) .. GPJ1(5)+1 is not GPJ2(0)... { // printk("setpin error[%d] \n ",col); s3c_gpio_cfgpin(++gpio, S3C_GPIO_OUTPUT); s3c_gpio_setpin(gpio, 0); } udelay(KEYPAD_DELAY); //rval = ~(readl(key_base+S3C_KEYIFROW)) & ((1<<KEYPAD_ROWS)-1) ; rval = ~(readl(S5PV210_GPH3DAT)) & ((1<<KEYPAD_ROWS)-1) ; //printk("reg[%d]= %x , ",col, readl(S5PV210_GPH3DAT)); keymask[col] = rval; s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT); // s3c_gpio_setpin(gpio,1); } //printk("\n"); for (gpio = S5PV210_GPJ1(5); gpio <= S5PV210_GPJ2(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_OUTPUT); s3c_gpio_setpin(gpio, 0); } return 0; }
void s3c_fimc0_cfg_gpio(struct platform_device *pdev) { int i = 0; /* CAM A port(b0010) 0.3Mps : PCLK, VSYNC, HREF, DATA[0-4] */ for (i = 0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPE0(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE0(i), S3C_GPIO_PULL_NONE); } /* CAM A port(b0010) : DATA[5-7], CLKOUT(MIPI CAM also), FIELD */ for (i = 0; i < 4; i++) { s3c_gpio_cfgpin(S5PV210_GPE1(i), S3C_GPIO_SFN(2)); s3c_gpio_setpull(S5PV210_GPE1(i), S3C_GPIO_PULL_NONE); } //set CAM 3M data and clock pin as input. //Modify by endy,2011.12.7 #ifdef CONFIG_PRODUCT_USING_V7E_COST_DOWN /* CAM B port(b0011) 5Mps : DATA[0-7] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPJ0(i), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPJ0(i), S3C_GPIO_PULL_NONE); } /* CAM B port(b0011) : PCLK, VSYNC, HREF, FIELD, CLCKOUT */ for (i=0; i < 3; i++) { s3c_gpio_cfgpin(S5PV210_GPJ1(i), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPJ1(i), S3C_GPIO_PULL_NONE); } /* CAM MCLK */ s3c_gpio_cfgpin(S5PV210_GPJ1(4), S3C_GPIO_INPUT); s3c_gpio_setpull(S5PV210_GPJ1(4), S3C_GPIO_PULL_NONE); #else #if 1 /* CAM B port(b0011) 5Mps : DATA[0-7] */ for (i=0; i < 8; i++) { s3c_gpio_cfgpin(S5PV210_GPJ0(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ0(i), S3C_GPIO_PULL_NONE); } /* CAM B port(b0011) : PCLK, VSYNC, HREF, FIELD, CLCKOUT */ for (i=0; i < 3; i++) { s3c_gpio_cfgpin(S5PV210_GPJ1(i), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(i), S3C_GPIO_PULL_NONE); } /* CAM MCLK */ s3c_gpio_cfgpin(S5PV210_GPJ1(4), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S5PV210_GPJ1(4), S3C_GPIO_PULL_NONE); #endif #endif /* note : driver strength to max is unnecessary */ }
static int smdkv210_cam1_power(int onoff) { int err; /* S/W workaround for the SMDK_CAM4_type board * When SMDK_CAM4 type module is initialized at power reset, * it needs the cam_mclk. * * Now cam_mclk is set as below, need only set the gpio mux. * CAM_SRC1 = 0x0006000, CLK_DIV1 = 0x00070400. * cam_mclk source is SCLKMPLL, and divider value is 8. */ /* gpio mux select the cam_mclk */ err = gpio_request(S5PV210_GPJ1(4), "GPJ1"); if (err) printk(KERN_ERR "#### failed to request GPJ1 for CAM_2V8\n"); s3c_gpio_setpull(S5PV210_GPJ1(4), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S5PV210_GPJ1(4), (0x3<<16)); /* Camera B */ err = gpio_request(S5PV210_GPH0(3), "GPH0"); if (err) printk(KERN_ERR "#### failed to request GPH0 for CAM_2V8\n"); s3c_gpio_setpull(S5PV210_GPH0(3), S3C_GPIO_PULL_NONE); gpio_direction_output(S5PV210_GPH0(3), 0); gpio_direction_output(S5PV210_GPH0(3), 1); udelay(1000); gpio_free(S5PV210_GPJ1(4)); gpio_free(S5PV210_GPH0(3)); return 0; }
static void __init goni_tsp_init(void) { int gpio; gpio = S5PV210_GPJ1(3); /* XMSMADDR_11 */ gpio_request_one(gpio, GPIOF_OUT_INIT_HIGH, "TSP_LDO_ON"); gpio_export(gpio, 0); gpio = S5PV210_GPJ0(5); /* XMSMADDR_5 */ gpio_request(gpio, "TSP_INT"); s5p_register_gpio_interrupt(gpio); s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); i2c2_devs[0].irq = gpio_to_irq(gpio); }
void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width) { unsigned int gpio; #if defined(CONFIG_MACH_P1_CDMA) unsigned int memory_enable; memory_enable = S5PV210_GPJ1(1); #endif switch (width) { /* Channel 2 supports 4 and 8-bit bus width */ case 8: /* Set all the necessary GPIO function and pull up/down */ for (gpio = S5PV210_GPG3(3); gpio <= S5PV210_GPG3(6); gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s3c_gpio_set_drvstrength(gpio, S3C_GPIO_DRVSTR_2X); } case 0: case 1: case 4: /* Set all the necessary GPIO function and pull up/down */ for (gpio = S5PV210_GPG2(0); gpio <= S5PV210_GPG2(6); gpio++) { if (gpio != S5PV210_GPG2(2)) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); } s3c_gpio_set_drvstrength(gpio, S3C_GPIO_DRVSTR_2X); } break; default: printk(KERN_ERR "Wrong SD/MMC bus width : %d\n", width); } #if defined(CONFIG_MACH_P1_CDMA) s3c_gpio_cfgpin(memory_enable, S3C_GPIO_OUTPUT); s3c_gpio_setpull(memory_enable, S3C_GPIO_PULL_NONE); gpio_set_value(memory_enable, 1); #endif }
.ngpio = S5PV210_GPIO_I_NR, .label = "GPI", }, }, { .base = S5PV210_GPJ0_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPJ0(0), .ngpio = S5PV210_GPIO_J0_NR, .label = "GPJ0", }, }, { .base = S5PV210_GPJ1_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPJ1(0), .ngpio = S5PV210_GPIO_J1_NR, .label = "GPJ1", }, }, { .base = S5PV210_GPJ2_BASE, .config = &gpio_cfg, .chip = { .base = S5PV210_GPJ2(0), .ngpio = S5PV210_GPIO_J2_NR, .label = "GPJ2", }, }, { .base = S5PV210_GPJ3_BASE, .config = &gpio_cfg, .chip = {