int s3c64xx_spi0_cfg_gpio(struct platform_device *dev)
{
	int gpio;

	if (soc_is_exynos5410()) {
		s3c_gpio_cfgpin(EXYNOS5410_GPA2(0), S3C_GPIO_SFN(2));
		s3c_gpio_setpull(EXYNOS5410_GPA2(0), S3C_GPIO_PULL_UP);
		s3c_gpio_cfgall_range(EXYNOS5410_GPA2(2), 2,
				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);

		for (gpio = EXYNOS5410_GPA2(0);
				gpio < EXYNOS5410_GPA2(4); gpio++)
			s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3);
	} else if (soc_is_exynos5250()) {
		s3c_gpio_cfgpin(EXYNOS5_GPA2(0), S3C_GPIO_SFN(2));
		s3c_gpio_setpull(EXYNOS5_GPA2(0), S3C_GPIO_PULL_UP);
		s3c_gpio_cfgall_range(EXYNOS5_GPA2(2), 2,
				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);

		for (gpio = EXYNOS5_GPA2(0); gpio < EXYNOS5_GPA2(4); gpio++)
			s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3);
	} else {
		s3c_gpio_cfgpin(EXYNOS4_GPB(0), S3C_GPIO_SFN(2));
		s3c_gpio_setpull(EXYNOS4_GPB(0), S3C_GPIO_PULL_UP);
		s3c_gpio_cfgall_range(EXYNOS4_GPB(2), 2,
				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);

		for (gpio = EXYNOS4_GPB(0); gpio < EXYNOS4_GPB(4); gpio++)
			s5p_gpio_set_drvstr(gpio, S5P_GPIO_DRVSTR_LV3);
	}

	return 0;
}
void s3c_i2c4_cfg_gpio(struct platform_device *dev)
{
	if (soc_is_exynos4210())
		s3c_gpio_cfgall_range(EXYNOS4_GPB(2), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos4212() || soc_is_exynos4412() || soc_is_exynos4415())
		s3c_gpio_cfgall_range(EXYNOS4_GPB(0), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos5250())
		s3c_gpio_cfgall_range(EXYNOS5_GPA2(0), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos5260())
		s3c_gpio_cfgall_range(EXYNOS5260_GPB5(0), 2,
				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos3250())
		s3c_gpio_cfgall_range(EXYNOS3_GPB(0), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else
		pr_err("failed to configure gpio for i2c4\n");
}
static void manta_gpio_pull_up(bool pull_up)
{
	if (pull_up) {
		s3c_gpio_cfgpin(EXYNOS5_GPA2(4), S3C_GPIO_SFN(2));
		s3c_gpio_cfgpin(EXYNOS5_GPA2(6), S3C_GPIO_SFN(2));
		s3c_gpio_cfgpin(EXYNOS5_GPA2(7), S3C_GPIO_SFN(2));
		pr_debug("GPIO : spi function\n");
	} else {
		s3c_gpio_setpull(EXYNOS5_GPA2(4), S3C_GPIO_PULL_DOWN);
		s3c_gpio_setpull(EXYNOS5_GPA2(6), S3C_GPIO_PULL_DOWN);
		s3c_gpio_setpull(EXYNOS5_GPA2(7), S3C_GPIO_PULL_DOWN);
		s3c_gpio_cfgpin(EXYNOS5_GPA2(4), S3C_GPIO_SFN(0));
		s3c_gpio_cfgpin(EXYNOS5_GPA2(6), S3C_GPIO_SFN(0));
		s3c_gpio_cfgpin(EXYNOS5_GPA2(7), S3C_GPIO_SFN(0));
		pr_debug("GPIO : input\n");
	}
}
void s3c_i2c5_cfg_gpio(struct platform_device *dev)
{
	if (soc_is_exynos4210())
		s3c_gpio_cfgall_range(EXYNOS4_GPB(6), 2,
			S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
	else if (soc_is_exynos4212())
		s3c_gpio_cfgall_range(EXYNOS4_GPB(2), 2,
			S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
	else
		s3c_gpio_cfgall_range(EXYNOS5_GPA2(2), 2,
			S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
}
Exemple #5
0
		S3C_GPIO_PULL_DOWN},	/* GPS_UART_RTS */

	{EXYNOS4_GPA1(0),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* AP_RXD */
	{EXYNOS4_GPA1(1),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* AP_TXD */
	{EXYNOS4_GPA1(2),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* TSP_SDA_1.8V */
	{EXYNOS4_GPA1(3),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* TSP_SCL_1.8V */
	{EXYNOS4_GPA1(4),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* AP_FLM_RXD */
	{EXYNOS4_GPA1(5),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* AP_FLM_TXD */

	{EXYNOS5_GPA2(0),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* CHG_SDA_1.8V */
	{EXYNOS5_GPA2(1),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* CHG_SCL_1.8V */
	{EXYNOS5_GPA2(2),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* AP_PMIC_SDA */
	{EXYNOS5_GPA2(3),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_NONE},	/* AP_PMIC_SCL */
	{EXYNOS5_GPA2(4),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* 5M_SPI_CLK */
	{EXYNOS5_GPA2(5),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* 5M_SPI_CS */
	{EXYNOS5_GPA2(6),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* 5M_SPI_DI */
	{EXYNOS5_GPA2(7),  S3C_GPIO_SLP_INPUT,
		S3C_GPIO_PULL_DOWN},	/* 5M_SPI_DO */
			.value = 0,
			.act = GPIO_RESET,
		},
		.reset_peer = { /* 5M_CAM_RESET */
			.pin = EXYNOS5_GPE0(0),
			.name = "GPE0",
			.value = 0,
			.act = GPIO_RESET,
		},
	},
};
#endif

static struct s3c64xx_spi_csinfo spi1_csi[] = {
	[0] = {
		.line           = EXYNOS5_GPA2(5),
		.set_level      = gpio_set_value,
		.fb_delay       = 0x2,
	},
};

static struct spi_board_info spi1_board_info[] __initdata = {
	{
		.modalias               = "fimc_is_spi",
		.platform_data          = NULL,
		.max_speed_hz           = 10 * 1000 * 1000,
		.bus_num                = 1,
		.chip_select            = 0,
		.mode                   = SPI_MODE_0,
		.controller_data        = &spi1_csi[0],
	}