Example #1
0
void s3c_i2c2_cfg_gpio(struct platform_device *dev)
{
	if (soc_is_exynos5250())
		s3c_gpio_cfgall_range(EXYNOS5_GPA0(6), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos5260())
		s3c_gpio_cfgall_range(EXYNOS5260_GPB4(4), 2,
				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos5410())
		s3c_gpio_cfgall_range(EXYNOS5410_GPA0(6), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos5420())
		s3c_gpio_cfgall_range(EXYNOS5420_GPA0(6), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	else if (soc_is_exynos3250())
		s3c_gpio_cfgall_range(EXYNOS3_GPA0(6), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_NONE);

	else	/* EXYNOS4210, EXYNOS4212, and EXYNOS4412 */
		s3c_gpio_cfgall_range(EXYNOS4_GPA0(6), 2,
				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
}
	u32 pud;
};

struct sleep_gpio_tables {
	struct gpio_sleep_data *table;
	u32 arr_size;
};

#define MAX_BOARD_REV	0xf
static struct sleep_gpio_tables v1_sleep_gpio_tables[MAX_BOARD_REV];
static int nr_v1_sleep_gpio_table;

/* init gpio table for V1 project */
static struct gpio_init_data __initdata init_gpio_table[] = {
    /* GPA 0 */
	{ EXYNOS5420_GPA0(0), S3C_GPIO_SFN(2), GPIO_LV_N, S3C_GPIO_PULL_NONE },	/* BT_UART_RXD */
	{ EXYNOS5420_GPA0(2), S3C_GPIO_SFN(2), GPIO_LV_N, S3C_GPIO_PULL_NONE },	/* BT_UART_CTS */
    /* GPA 1 */
	{ EXYNOS5420_GPA1(4), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE },	/* VT_CAM_SDA_1.8V */
	{ EXYNOS5420_GPA1(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE },	/* VT_CAM_SCL_1.8V */
    /* GPA 2 */
#if defined(CONFIG_V1A_3G) || defined(CONFIG_V2A_3G)
	{ EXYNOS5420_GPA2(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* GRIP_SDA */
	{ EXYNOS5420_GPA2(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* GRIP_SCL */
#endif
    /* GPB 0 */
    /* GPB 1 */
    /* GPB 2 */
    /* GPB 3 */
	{ EXYNOS5420_GPB3(2), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */
	{ EXYNOS5420_GPB3(3), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */