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);
	}
}
Ejemplo n.º 2
0
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 */
}
Ejemplo n.º 3
0
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 */
}
Ejemplo n.º 4
0
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

}
Ejemplo n.º 6
0
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);
	}

}
Ejemplo n.º 7
0
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;
}
Ejemplo n.º 8
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 */
}
Ejemplo n.º 9
0
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;
}
Ejemplo n.º 10
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
}
Ejemplo n.º 12
0
			.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	= {