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 init_lcm_registers(void)
{

#if 1
	//DSI_clk_HS_mode(DISP_MODULE_DSI0, NULL, 1);

	//push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
	//if ( lge_get_board_revno() > EVB_PCB_REVISION )
		//dsi_set_cmdq_V3(lcm_initialization_setting_rotation_V3, sizeof(lcm_initialization_setting_rotation_V3) / sizeof(LCM_setting_table_V3), 1);
	dsi_set_cmdq_V3(lcm_initialization_setting_V3, sizeof(lcm_initialization_setting_V3) / sizeof(LCM_setting_table_V3), 1);
	MDELAY(120);
	//dsi_set_cmdq_V3(lcm_initialization_setting_V3_Disp_On, sizeof(lcm_initialization_setting_V3_Disp_On) / sizeof(LCM_setting_table_V3), 1);
#else
	unsigned int data_array[32];
	dsi_set_cmdq_V3(lcm_initialization_setting_V3, sizeof(lcm_initialization_setting_V3) / sizeof(LCM_setting_table_V3), 1);
	data_array[0] = 0x00290500;	//Display On
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x00110500;	//Sleep Out
	dsi_set_cmdq(data_array, 1, 1);

	MDELAY(120);
#endif
	LCM_PRINT("[LCD] init_lcm_registers \n");
}
static void lcm_init(void)
{
		//SET_RESET_PIN(0);
		//MDELAY(20); 
		//SET_RESET_PIN(1);
		//MDELAY(20); 

		lcm_is_init = true;
		dct_pmic_VGP2_enable(1);
		MDELAY(5);
		mt_set_gpio_mode(GPIO112,GPIO_MODE_00);
		mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT);
		mt_set_gpio_out(GPIO112,GPIO_OUT_ONE);
		MDELAY(5); 
	    
		//SET_RESET_PIN(0);
		mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO);
		MDELAY(5);
		
		//SET_RESET_PIN(1);
		mt_set_gpio_out(GPIO112,GPIO_OUT_ONE);
		MDELAY(20); 
		
		dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1);

	#ifdef BUILD_LK
	  printf("[LK]---cmd---hx8394_hd720_dsi_vdo_truly----%s------\n",__func__);
    #else
	  printk("[KERNEL]---cmd---hx8394_hd720_dsi_vdo_truly----%s------\n",__func__);
    #endif	
}
void lcm_force_lut_update(void)
{
	dsi_set_cmdq_V3(lcm_lut_update_in_V3, sizeof(lcm_lut_update_in_V3) / sizeof(LCM_setting_table_V3), 1);
	MDELAY(120);

	LCM_PRINT("[LCD] lut update for upgrading Touch FW \n");
}
void init_lcm_registers_sleep_2nd(void)
{
	unsigned int data_array[1];
	//dsi_set_cmdq_V3(lcm_initialization_for_sleep_in_pre, sizeof(lcm_initialization_for_sleep_in_pre) / sizeof(LCM_setting_table_V3), 1);
	//MDELAY(150);
	dsi_set_cmdq_V3(lcm_initialization_for_sleep_in_post, sizeof(lcm_initialization_for_sleep_in_post) / sizeof(LCM_setting_table_V3), 1);

	LCM_PRINT("[LCD] init_lcm_registers_sleep 2nd \n");
}
static void lcm_suspend(void)
{
	unsigned int data_array[16];
	dsi_set_cmdq_V3(lcm_initialization_sleep_in_V3, sizeof(lcm_initialization_sleep_in_V3) / sizeof(LCM_setting_table_V3), 1);

	MDELAY(120);
	lcm_set_pwm_for_mix(0);
	MDELAY(16);

	DPI_DisableClk();
	DSI_Reset();
	DSI_clk_HS_mode(1);
	DSI_SetMode(0);
	/* MDELAY(1); */

    dsi_set_cmdq_V3(lcm_suspend_ULPS_for_data0_in_V3, sizeof(lcm_suspend_ULPS_for_data0_in_V3) / sizeof(LCM_setting_table_V3), 1);
	MDELAY(200);
	LCM_PRINT("[LCD] lcm_suspend\n");
}
static void lcm_init(void)
{
	SET_RESET_PIN(1);
	SET_RESET_PIN(0);
	MDELAY(10);
	SET_RESET_PIN(1);
	MDELAY(120);
	dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1);
    
}
static void lcm_suspend(void)
{	
	dsi_set_cmdq_V3(lcm_deep_sleep_mode_in_setting, sizeof(lcm_deep_sleep_mode_in_setting)/sizeof(lcm_deep_sleep_mode_in_setting[0]), 1);
	SET_RESET_PIN(1);	
	SET_RESET_PIN(0);
	MDELAY(20); // 1ms

	SET_RESET_PIN(1);
	MDELAY(120);
}
static void lcm_init(void)
{
	
	SET_RESET_PIN(1);
	SET_RESET_PIN(0);
	MDELAY(10);
	SET_RESET_PIN(1);
	MDELAY(120);
	dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1);

	//push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
}
static void lcm_suspend(void)
{
	//init_lcm_registers_sleep(); //Need to use this in LPWG 
	dsi_set_cmdq_V3(lcm_initialization_sleep_in_V3, sizeof(lcm_initialization_sleep_in_V3) / sizeof(LCM_setting_table_V3), 1);
	MDELAY(120);
#ifndef LGE_LPWG_SUPPORT
	SET_RESET_PIN(0);
	MDELAY(20);
	//dsv low
	ldo_p5m5_dsv_5v5_off();
	MDELAY(10);
	//VCI/IOVCC off
	ldo_1v8io_off();
	//ldo_ext_3v0_off();
#endif
	LCM_PRINT("[LCD] lcm_suspend \n");
}
static void lcm_init(void)
{

    SET_RESET_PIN(1);
    MDELAY(10);
    SET_RESET_PIN(0);
    MDELAY(10);//Must > 10ms
    SET_RESET_PIN(1);
    MDELAY(120);//Must > 120ms

    if (para_init_table != NULL)
    {
        push_table(para_init_table, para_init_size, 1);
    }
    else
    {
        dsi_set_cmdq_V3(lcm_initialization_setting,ARRAY_SIZE(lcm_initialization_setting),1);
    }
    //push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
}
static void lcm_init(void)
{
    int i, j;
    int size;

    SET_RESET_PIN(1);
    SET_RESET_PIN(0);
    MDELAY(10);
    SET_RESET_PIN(1);
    MDELAY(120);

    if (para_init_table != NULL)
    {
        push_table(para_init_table, para_init_size, 1);
    }
    else
    {
        dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1);
    }
}
Example #13
0
static void lcm_init(void)
{

		LCM_DBG();
		#ifdef BUILD_LK
		printf("%s, LK \n", __func__);
	#else
		printk("%s, kernel", __func__);
	#endif
		//lcm_compare_id();
		//SET_RESET_PIN(0);
		lcd_power_en(1);
		MDELAY(80);
		lcd_reset(1);
		MDELAY(5);
		lcd_reset(0);
		MDELAY(5); 
		lcd_reset(1);
		MDELAY(120); 
		dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1);		
}
static void lcm_init(void)
{
	 //enable VSP & VSN
    lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ONE);
    lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ONE);
    MDELAY(50);
	//reset high to low to high
    SET_RESET_PIN(1);
    MDELAY(20);
    SET_RESET_PIN(0);
    MDELAY(30);
    SET_RESET_PIN(1);
    MDELAY(30);

    //lcm_id_pin_handle();
 
	//lcm_register();
	dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1);

	//push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
}
static void lcm_suspend(void)
{	
    //Back to MP.P7 baseline , solve LCD display abnormal On the right
    // when phone sleep , config output low, disable backlight drv chip  
  //  lcm_util.set_gpio_out(GPIO_LCD_DRV_EN_PIN, GPIO_OUT_ZERO);  	

    dsi_set_cmdq_V3(lcm_deep_sleep_mode_in_setting, sizeof(lcm_deep_sleep_mode_in_setting) / sizeof(lcm_deep_sleep_mode_in_setting[0]), 1);
    //reset low
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    MDELAY(5);
    //disable VSP & VSN
	lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ZERO);
	lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ZERO);
    MDELAY(5);	
  /*#ifdef BUILD_LK
	;
	 #else
printk("sym lcm_suspend\n");
	 #endif
  lcm_compare_id();*/
  //  printk("kernel:boe_nt35521_lcm_suspend\n");
}
static void init_lcm_registers(void)
{
	dsi_set_cmdq_V3(lcm_initialization_setting_V3, sizeof(lcm_initialization_setting_V3) / sizeof(LCM_setting_table_V3), 1);

	LCM_PRINT("[LCD] init_lcm_registers\n");
}
static void init_lcm_registers(void)
{
	unsigned int data_array[32];

#if 1 
#if 1
	push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
#else

	data_array[0] = 0xff513900; //Write_Display_Brightness
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x2c533900; //Write_CTRL_Display
//	data_array[0] = 0x0c533900; //Write_CTRL_Display
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x40553900; //Write_CABC
//	data_array[0] = 0x00553900; //Write_CABC
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x04B02900; //Test command
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x84C12900;  //Test Command
	data_array[1] = 0x00000061;
	dsi_set_cmdq(data_array, 2, 1);
#if 0
	data_array[0] = 0x00C72900; //Gamma 1
	data_array[1] = 0x2C20160A;
	data_array[2] = 0x36524339;
	data_array[3] = 0x5A584B3E;
	data_array[4] = 0x0A00675F;
	data_array[5] = 0x392C2016;
	data_array[6] = 0x3E365243;
	data_array[7] = 0x5A584B3E;
	data_array[8] = 0x00000067;
	dsi_set_cmdq(data_array, 9, 1);

	data_array[0] = 0x00C82900; //Gamma 2
	data_array[1] = 0x00000000;
	data_array[2] = 0x000000FC;
	data_array[3] = 0x00FC0000;
	data_array[4] = 0x00000000;
	data_array[5] = 0x000000FC;
	dsi_set_cmdq(data_array, 6, 1);

	data_array[0] = 0x07B82900; 	//Backlight 1
	data_array[1] = 0x40001E90;
	data_array[2] = 0x00000032;
	dsi_set_cmdq(data_array, 3, 1);	

	data_array[0] = 0x07B92900; 	//Backlight 2
	data_array[1] = 0x2D203C8C;
	data_array[2] = 0x00000087;
	dsi_set_cmdq(data_array, 3, 1);	

	data_array[0] = 0x07BA2900; 	//Backlight 3
	data_array[1] = 0x3C103C82;
	data_array[2] = 0x000000B4;
	dsi_set_cmdq(data_array, 3, 1);	

	data_array[0] = 0x7DCE2900; 	//Backlight 4
	data_array[1] = 0x55494340;
	data_array[2] = 0x94827162;
	data_array[3] = 0xDBCBB9A8;
	data_array[4] = 0xFFFCF5E9;
	data_array[5] = 0x040402FF;
	data_array[6] = 0x0002FFFC;
	data_array[7] = 0x00010444;
	dsi_set_cmdq(data_array, 8, 1);	

	data_array[0] = 0x01BB2900; //SRE ctrl 1
	data_array[0] = 0x0000141E;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0] = 0x01BC2900; //SRE ctrl 2
	data_array[0] = 0x00003250;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0] = 0x00BD2900; //SRE ctrl 3
	data_array[0] = 0x0000A0B4;
	dsi_set_cmdq(data_array, 2, 1);

#endif
	data_array[0] = 0x01D62900; //test commad
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x00361500; //set address mode
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x00290500; //Display On
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x00110500; //Sleep Out
	dsi_set_cmdq(data_array, 1, 1);

#endif
#else
	dsi_set_cmdq_V3(lcm_initialization_setting_V3, sizeof(lcm_initialization_setting_V3) / sizeof(LCM_setting_table_V3), 1);

	data_array[0] = 0x00290500;	//Display On
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x00110500;	//Sleep Out
	dsi_set_cmdq(data_array, 1, 1);

	MDELAY(120);
#endif
	LCM_PRINT("[LCD] init_lcm_registers \n");
}
static void init_lcm_registers_sleep(void)
{
	dsi_set_cmdq_V3(lcm_initialization_for_sleep_in_pre, sizeof(lcm_initialization_for_sleep_in_pre) / sizeof(LCM_setting_table_V3), 1);
	MDELAY(60);
	LCM_PRINT("[LCD] init_lcm_registers_sleep \n");
}
static void init_lcm_registers(void)
{
	unsigned int data_array[32];

#if 0
#if 0
	push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);

	data_array[0] = 0x00110500; //Sleep Out
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(200);

	data_array[0] = 0x00290500; //Display On
	dsi_set_cmdq(data_array, 1, 1);
MDELAY(200);

#else
//	data_array[0] = 0x00010500; //sw_reset
//	dsi_set_cmdq(data_array, 1, 1);
//	MDELAY(200);
#if 0
	data_array[0] = 0x00062902; //vcom control
	data_array[1] = 0x00A50000;
	data_array[2] = 0x00000113;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0] = 0x00042902; //Flip
	data_array[1] = 0x02650001;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0] = 0x00062902; //gate bias trim
	data_array[1] = 0x001F0007;
	data_array[2] = 0x000001A6;
	dsi_set_cmdq(data_array, 3, 1);
#endif
#if 0 //test1
	data_array[0] = 0x00042902; //vcom control
	data_array[1] = 0x011300A5;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0] = 0x00042902; //Flip
	data_array[1] = 0x02650001;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0] = 0x00042902; //gate bias trim
	data_array[1] = 0x016A071F;
	dsi_set_cmdq(data_array, 3, 1);
#endif
#if 0
	data_array[0] = 0x00062902; //vcom control
	data_array[1] = 0x000000A5;
	data_array[2] = 0x00000113;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0] = 0x00042902; //Flip
	data_array[1] = 0x02650001;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0] = 0x00062902; //gate bias trim
	data_array[1] = 0x0007001F;
	data_array[2] = 0x000001A6;
	dsi_set_cmdq(data_array, 3, 1);
#endif
//	data_array[0] = 0x01000500; //reset
//	dsi_set_cmdq(data_array, 1, 1);
//	MDELAY(120);

	data_array[0] = 0x00110500; //Sleep Out
	dsi_set_cmdq(data_array, 1, 1);
	//MDELAY(100);
	data_array[0] = 0x00062902; //vcom control
	data_array[1] = 0x000000A5;
	data_array[2] = 0x00000113;	
	dsi_set_cmdq(data_array, 3, 1);
	
	data_array[0] = 0x00042902; //Flip
	data_array[1] = 0x02650002;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0] = 0x00062902; //gate bias trim
	data_array[1] = 0x0007001F;
	data_array[2] = 0x000001A6;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0] = 0x00290500; //Display On
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(100);
#endif
#else
	dsi_set_cmdq_V3(lcm_initialization_setting_V3, sizeof(lcm_initialization_setting_V3) / sizeof(LCM_setting_table_V3), 1);

#if 0
	data_array[0] = 0x00110500; //Sleep Out
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(200);

	data_array[0] = 0x00290500; //Display On
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(200);
#endif
#endif
	LCM_PRINT("[LCD] init_lcm_registers \n");
}