static int mipi_lcd_power_control(struct mipi_dsim_device *dsim,
			unsigned int power)
{
	if (power) {
		/* Reset */
		gpio_request_one(EXYNOS5420_GPJ4(3),
				GPIOF_OUT_INIT_HIGH, "GPJ4");
		usleep_range(5000, 6000);
		gpio_set_value(EXYNOS5420_GPJ4(3), 0);
		usleep_range(5000, 6000);
		gpio_set_value(EXYNOS5420_GPJ4(3), 1);
		usleep_range(5000, 6000);
		gpio_free(EXYNOS5420_GPJ4(3));
		/* Power */
		gpio_request_one(EXYNOS5420_GPH0(0),
				GPIOF_OUT_INIT_HIGH, "GPH0");
		usleep_range(5000, 6000);
		gpio_free(EXYNOS5420_GPH0(0));
	} else {
		/* Reset */
		gpio_request_one(EXYNOS5420_GPJ4(3),
				GPIOF_OUT_INIT_LOW, "GPJ4");
		usleep_range(5000, 6000);
		gpio_free(EXYNOS5420_GPJ4(3));
		/* Power */
		gpio_request_one(EXYNOS5420_GPH0(0),
				GPIOF_OUT_INIT_LOW, "GPH0");
		usleep_range(5000, 6000);
		gpio_free(EXYNOS5420_GPH0(0));
	}
	return 1;
}
#if defined(CONFIG_V1A_WIFI) || defined(CONFIG_V2A_WIFI)
	{ EXYNOS5420_GPG1(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(IPC_SLAVE_WAKEUP) */
	{ EXYNOS5420_GPG1(3), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(SUSPEND_REQUEST_HSIC) */
	{ EXYNOS5420_GPG1(4), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(CP_ON) */
#endif
	{ EXYNOS5420_GPG1(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */
#if defined(CONFIG_V1A_WIFI)
	{ EXYNOS5420_GPG1(6), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(AP_DUMP_INT) */
	{ EXYNOS5420_GPG1(7), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(ACTIVE_STATE_HSIC) */
#endif
    /* GPG 2 */
	{ EXYNOS5420_GPG2(0), S3C_GPIO_OUTPUT, GPIO_LV_H, S3C_GPIO_PULL_NONE }, /* GPIO_M_RST_N */
    /* GPH 0 */
    /* GPJ 4 */
#if defined(CONFIG_V1A_WIFI) || defined(CONFIG_V2A_WIFI)
	{ EXYNOS5420_GPJ4(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC(RESET_REQ_N) */
#endif
    /* GPX 0 */
#if defined(CONFIG_V2A)
	{ EXYNOS5420_GPX0(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* NC */
#else
	{ EXYNOS5420_GPX0(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* WACOM_SENSE */
#endif
	{ EXYNOS5420_GPX0(1), S3C_GPIO_SFN(0xF), GPIO_LV_N, S3C_GPIO_PULL_UP }, /* HALL INT */
	{ EXYNOS5420_GPX0(5), S3C_GPIO_INPUT, GPIO_LV_H, S3C_GPIO_PULL_DOWN }, /* KBC3_HOME_BTN_N */
	{ EXYNOS5420_GPX1(3), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* GPIO_ACC_INT1 */
	{ EXYNOS5420_GPX1(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* FUEL_ALERT */
	{ EXYNOS5420_GPX1(7), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* GPIO_ACC_INT2 */
	{ EXYNOS5420_GPX2(0), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_DOWN }, /* WLAN_WAKE_WAKE */
	{ EXYNOS5420_GPX2(1), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* BT_HOST_WAKE */
	{ EXYNOS5420_GPX2(5), S3C_GPIO_INPUT, GPIO_LV_N, S3C_GPIO_PULL_NONE }, /* GPIO_CODEC_IRQ_N */
static void exynos_fimd_gpio_setup_24bpp(void)
{
	unsigned int reg = 0;

#if defined(CONFIG_S5P_DP)
	/* Set Hotplug detect for DP */
	gpio_request(EXYNOS5420_GPX0(7), "GPX0");
	s3c_gpio_cfgpin(EXYNOS5420_GPX0(7), S3C_GPIO_SFN(3));
#endif
#ifdef CONFIG_FB_I80IF
	gpio_request(EXYNOS5420_GPJ4(0), "GPJ4");
	s3c_gpio_cfgpin(EXYNOS5420_GPJ4(0), S3C_GPIO_SFN(2));
#endif
	/*
	 * Set DISP1BLK_CFG register for Display path selection
	 *
	 * FIMD of DISP1_BLK Bypass selection : DISP1BLK_CFG[15]
	 * ---------------------
	 *  0 | MIE/MDNIE
	 *  1 | FIMD : selected
	 */

#ifdef CONFIG_FB_S5P_MDNIE
	/* SYSREG SETTING */
	reg = 0;
	reg = __raw_readl(S3C_VA_SYS + 0x0214);
	reg &= ~(1>>23); /*FIFO software Reset*/
	__raw_writel(reg, S3C_VA_SYS + 0x0214);

	reg &= ~(7 << 29);	/*sync*/
	reg &= ~(1 << 27);	/*DISP0_SRC not userd*/
	reg &= ~(3 << 24);	/*VT_DIP1 - RGB*/
	reg |= (1 << 23);	/*FIFORST_DISP -1*/
	reg &= ~(1 << 15);	/*FIMDBYPASS_DISP1 -0*/
	reg |= (1 << 14);	/*MIE_DISP1 - MDNIE -1 */
	reg |= (1 << 0);	/*MIE_LBLK1 - MDNIE -1*/
	__raw_writel(reg, S3C_VA_SYS + 0x0214);
#else
	reg = __raw_readl(S3C_VA_SYS + 0x0214);
	reg &= ~(1 << 15);	/* To save other reset values */
	reg |= (1 << 15);
	__raw_writel(reg, S3C_VA_SYS + 0x0214);
#endif

#if defined(CONFIG_S5P_DP)
	/* Reference clcok selection for DPTX_PHY: PAD_OSC_IN */
	reg = __raw_readl(S3C_VA_SYS + 0x04d4);
	reg &= ~(1 << 0);
	__raw_writel(reg, S3C_VA_SYS + 0x04d4);

	/* DPTX_PHY: XXTI */
	reg = __raw_readl(S3C_VA_SYS + 0x04d8);
	reg &= ~(1 << 3);
	__raw_writel(reg, S3C_VA_SYS + 0x04d8);
#endif
	/*
	 * Set DISP1BLK_CFG register for Display path selection
	 *
	 * MIC of DISP1_BLK Bypass selection: DISP1BLK_CFG[11]
	 * --------------------
	 *  0 | MIC
	 *  1 | Bypass : selected
	 */
	reg = __raw_readl(S3C_VA_SYS + 0x0214);
	reg |= (1 << 11);
	__raw_writel(reg, S3C_VA_SYS + 0x0214);
}