static void lcm_resume(void)
{
	unsigned int data_array[1];

	MDELAY(5);
if(wakeup_by_swipe == false){
	//reset_lcd_module(0);
	//MDELAY(10); //seosc
	ldo_p5m5_dsv_5v5_on();
	MDELAY(5);
	reset_lcd_module(0);
	MDELAY(1);
	reset_lcd_module(1);
	MDELAY(1);
	reset_lcd_module(0);
	MDELAY(50);
}else{
	LCM_PRINT("[LCD] lcm_resume wakeup_by_swipe\n");
}
	DSI_clk_HS_mode(1);
	MDELAY(120);

	dsi_set_cmdq_V3(lcm_initialization_pre_sleep_out_V3, sizeof(lcm_initialization_pre_sleep_out_V3) / sizeof(LCM_setting_table_V3), 1);
	MDELAY(120);
	dsi_set_cmdq_V3(lcm_initialization_post_sleep_out_V3, sizeof(lcm_initialization_post_sleep_out_V3) / sizeof(LCM_setting_table_V3), 1);


	need_set_lcm_addr = 1;
	LCM_PRINT("[LCD] lcm_resume\n");
}
static void lcm_resume_power(void)
{
	if(wakeup_by_swipe == false){
		//if(!is_update)mutex_lock(pMutexTouch);
		ldo_p5m5_dsv_5v5_off();
		ldo_1v8io_off();
		ldo_3v0_off();
		reset_lcd_module(1); //removed reset delay 50ms

		//chargepump_dsv_reset();//no need it for ESD

		MDELAY(10); //0318 100ms -> 10ms
		ldo_3v0_on();
		ldo_1v8io_on();
		//MDELAY(10);
		//ldo_p5m5_dsv_5v5_on(); // 0318 move to LP11
		MDELAY(50);
		//SET_RESET_PIN(1);
		//reset_lcd_module(0); //0318 move to LP11
		//MDELAY(150);
		LCM_PRINT("[LCD] lcm_resume_power \n");
	}else{
		LCM_PRINT("[LCD] lcm_resume_power wakeup_by_swipe\n");
	}
}
static void lcm_resume(void)
{
#if defined(CONFIG_TOUCHSCREEN_MTK_S3320)
    printk(KERN_INFO"[Touch] lcm notify_call_chain_resume \n");
    touch_notifier_call_chain(LCD_EVENT_TOUCH_LPWG_OFF, NULL);
#endif
#if defined(CONFIG_SENSOR_TOUCH_KEY_ATMF04)
	printk(KERN_INFO"[Touch] lcm notify_call_chain_resume for ATMF04\n");
	touch_key_notifier_call_chain(ATMF04_LCD_EVENT_ON, NULL);
#endif
#if 1

#if 0
	touch_reset_pin(0);
	MDELAY(10);
	reset_lcd_module(0);
	MDELAY(10);
	ldo_p5m5_dsv_5v5_off();
	MDELAY(10);
	ldo_1v8io_off();
	MDELAY(1);
	ldo_3v0_off();
	MDELAY(20);
	lcm_init();
#endif
	reset_lcd_module(0);
	MDELAY(20);

	reset_lcd_module(1);
	MDELAY(15);

	reset_lcd_module(0);
	MDELAY(5);

	reset_lcd_module(1);
	MDELAY(15);

	init_lcm_registers();

	MDELAY(120);
#else
	init_lcm_registers_sleep_out();
#endif
	need_set_lcm_addr = 1;
	LCM_PRINT("[LCD] lcm_resume JDI\n");
}
void lcm_shutdown_power(void)
{
	ldo_p5m5_dsv_5v5_off();
	MDELAY(5);
	ldo_1v8io_off();
	ldo_3v0_off();
	MDELAY(5);
	reset_lcd_module(1); //removed reset delay 50m

	LCM_PRINT("[LCD] lcm_shutdown_power \n");
}
static void lcm_init(void)
{
#if defined(BUILD_LK)
//	ldo_p5m5_dsv_5v5_off();
	//SET_RESET_PIN(0);
	reset_lcd_module(1);
	//MDELAY(5);
#else
#endif
	//TP_VCI 3.0v on
	ldo_3v0_on();
	MDELAY(1);

	ldo_1v8io_on();

	MDELAY(10);

	ldo_p5m5_dsv_5v5_on();

	MDELAY(5);

//	SET_RESET_PIN(1);
//	MDELAY(20);
//	SET_RESET_PIN(0);
//	MDELAY(2);
//	SET_RESET_PIN(1);
	reset_lcd_module(0);
	MDELAY(150);

	init_lcm_registers();	//SET EXTC ~ sleep out register

	MDELAY(20);

//	init_lcm_registers_added();	//Display On
	need_set_lcm_addr = 1;
	LCM_PRINT("[SEOSCTEST] lcm_init \n");
	LCM_PRINT("[LCD] lcm_init \n");
}
void lcm_init_power(void)
{
	MDELAY(50);
//	ldo_3v0_on();
//	ldo_1v8io_on();
//	MDELAY(10);
	ldo_p5m5_dsv_5v5_on();
	MDELAY(50);

	reset_lcd_module(0);
	MDELAY(20);

	LCM_PRINT("[LCD] lcm_init_Power \n");
}
static void lcm_init(void)
{
	ldo_3v0_on();
	MDELAY(10);

	ldo_1v8io_on();
	MDELAY(10);

	touch_reset_pin(1);
	MDELAY(10);

	ldo_p5m5_dsv_5v5_on();
	MDELAY(10);

	reset_lcd_module(1);
	MDELAY(10);
	
	init_lcm_registers();

	MDELAY(120);

	need_set_lcm_addr = 1;
	LCM_PRINT("[LCD] lcm_init \n");
}