Ejemplo n.º 1
0
static unsigned int lcm_compare_id(void)
{
	unsigned int id = 0;
	unsigned char buffer[5];
	unsigned int array[16];
        //NOTE:should reset LCM firstly
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    MDELAY(25);
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    	MDELAY(50);

	array[0] = 0x00053700;// read id return 5 byte
	dsi_set_cmdq(array, 1, 1);

	array[0] = 0x04B02300;// unlock for reading ID
	dsi_set_cmdq(array, 1, 1);
	MDELAY(50);

	read_reg_v2(0xBF, buffer, 5);
	id = (buffer[2] << 8) | buffer[3]; //we only need ID
#if defined(BUILD_UBOOT)
	printf("%s, id1 = 0x%x\n", __func__, id);
#endif
    return (LCM_ID == id)?1:0;
}
Ejemplo n.º 2
0
static void lcm_suspend(void)
{
    //SET_RESET_PIN(0);  //CH7035B reset control

    //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00);    
    //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT);
    //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ZERO); // HDMI_POWER_EN

    //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00);    
    //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT);
    //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE
    //MDELAY(10);
    lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N      
    MDELAY(10);
    lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ZERO); // LCM_STBY     
    MDELAY(10);
    lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ZERO); // LCM_RST    
    MDELAY(10);
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN
    MDELAY(60); // avoid LCD resume transint
}
Ejemplo n.º 3
0
static void lcm_resume(void)
{
    //SET_RESET_PIN(1);  //CH7035B reset control

    //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00);    
    //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT);
    //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ONE); // HDMI_POWER_EN

    lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ONE); // LCM_STBY
    MDELAY(5);
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ONE); // LCM_RST
    MDELAY(5);
    lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N   
    MDELAY(120);
    //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00);    
    //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT);
    //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE
}
Ejemplo n.º 4
0
static void lcm_init(void)
{
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    MDELAY(25);
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    MDELAY(50);

    init_lcm_registers();
	MDELAY(500);
//	clear_panel();
}
Ejemplo n.º 5
0
static void lcm_init(void)
{
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    MDELAY(25);
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    MDELAY(50);

//    init_lcm_registers();
	 push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
	 MDELAY(100);
//	clear_panel();
}
Ejemplo n.º 6
0
static void lcm_gpio_set(int num, int enable)
{
#ifdef BUILD_LK
printf("\n\n\n===================== %s %d: num:%d => %d =======================\n\n\n", __func__, __LINE__, num, enable);
#endif
	lcm_util.set_gpio_mode(num, GPIO_MODE_00);
	lcm_util.set_gpio_dir(num, GPIO_DIR_OUT);

	if (enable)
		lcm_util.set_gpio_out(num, GPIO_OUT_ONE);
	else
		lcm_util.set_gpio_out(num, GPIO_OUT_ZERO);
}
Ejemplo n.º 7
0
static void lcm_resume(void)
{
    SET_RESET_PIN(1);
    
    lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE
    
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN

    MDELAY(120); // avoid LCD resume transint
}
Ejemplo n.º 8
0
static void lcm_suspend(void)
{
    SET_RESET_PIN(0);
    
    lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE
    
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN

    MDELAY(60); // avoid LCD resume transint
}
Ejemplo n.º 9
0
static void lcm_init(void)
{
    SET_RESET_PIN(0);
    MDELAY(10);
    SET_RESET_PIN(1);

    lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE
    
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN    
}
Ejemplo n.º 10
0
static void lcm_init(void)
{
#ifdef BUILD_LK
printf("shaokai:lcm_init");
#endif
    lcm_util.set_gpio_mode(GPIO_LCM_AVDD_EN_PIN, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO_LCM_AVDD_EN_PIN, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO_LCM_AVDD_EN_PIN, GPIO_OUT_ONE); // LCM_AVDD

    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N   
    MDELAY(120);
}
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);
    push_table(lcm_deep_sleep_mode_in_setting, sizeof(lcm_deep_sleep_mode_in_setting) / sizeof(struct LCM_setting_table), 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_ENN_PIN, GPIO_OUT_ZERO);
	mdelay(10);
	lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ZERO);
    LCD_DEBUG("kernel:boe_nt35521_lcm_suspend\n");
}
Ejemplo n.º 12
0
static void lcm_resume(void)
{
    lcm_util.set_gpio_mode(GPIO18, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO18, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO18, GPIO_OUT_ONE); // RST	
	MDELAY(30);
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN 
    MDELAY(30);	
    lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE
    MDELAY(60);
}
Ejemplo n.º 13
0
static void lcm_resume(void)
{
    lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_STBY
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCM_RST 
    //SET_RESET_PIN(1); // LCM_RST
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N   
    MDELAY(120); 
}
Ejemplo n.º 14
0
static void lcm_suspend(void)
{
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N      
    MDELAY(10);
    lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ZERO); // LCM_STBY     
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ZERO); // LCM_RST
    //SET_RESET_PIN(0); // LCM_RST 
    MDELAY(60); // avoid LCD resume transint
}
Ejemplo n.º 15
0
static void lcm_resume(void)
{
    lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_DISP
    MDELAY(50);
}
Ejemplo n.º 16
0
static void lcm_suspend(void)
{
    lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ZERO); // LCM_DISP
    MDELAY(50); 
}
static void lcm_suspend(void)
{
	unsigned int data_array[16];

	data_array[0]=0x00280500; 
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(10);

	data_array[0] = 0x00100500; 
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(120);//delay more for 3 frames time  17*3=54ms

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

	data_array[0] = 0x00000500;
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x00000500;
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0] = 0x01B12900;//Deep standby
	dsi_set_cmdq(data_array, 1, 1);

	lcm_util.set_gpio_mode(GPIO112, GPIO_MODE_00);
	lcm_util.set_gpio_dir(GPIO112, GPIO_DIR_OUT); 
	lcm_util.set_gpio_pull_enable(GPIO112, GPIO_PULL_DISABLE); 
	lcm_util.set_gpio_out(GPIO112 , 0);

	MDELAY(2);
	SET_GPIO_OUT(LCD_LDO_ENN_GPIO_PIN , 0);
	MDELAY(10);
	SET_GPIO_OUT(LCD_LDO_ENP_GPIO_PIN , 0);
}
static void lcm_suspend(void)
{
	unsigned int data_array[16];

	data_array[0]=0x00280500; // Display Off
	dsi_set_cmdq(data_array, 1, 1);
	
	data_array[0] = 0x00100500; // Sleep In
	dsi_set_cmdq(data_array, 1, 1);

	#if 1
	DSI_Enter_ULPM(1); /* Enter low power mode  */

	MDELAY(60);
	//SET_RESET_PIN(0);
	mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO);
	MDELAY(150);

	dct_pmic_VGP2_enable(0); /* [Ted 5-28] Disable VCI power to prevent lcd polarization */
	lcm_is_init = false;
	
	#else
	SET_RESET_PIN(1);	
	SET_RESET_PIN(0);
	MDELAY(1); // 1ms
	
	SET_RESET_PIN(1);
	MDELAY(120);     
	lcm_util.set_gpio_out(GPIO_LCD_ENN, GPIO_OUT_ZERO);
	lcm_util.set_gpio_out(GPIO_LCD_ENP, GPIO_OUT_ZERO); 
	#endif
}
static void lcm_init(void)
{
#if 0
    //cause reset pin bug, we change to uart pin
	lcm_util.set_gpio_mode(GPIO24,GPIO_MODE_00);
	lcm_util.set_gpio_dir(GPIO24,GPIO_DIR_OUT);
	lcm_util.set_gpio_out(GPIO24,1);
	MDELAY(50);  //recommand 10ms (+50ms)  300ms



    //cause reset pin bug, we change to uart pin
	lcm_util.set_gpio_mode(GPIO77,GPIO_MODE_00);
	lcm_util.set_gpio_dir(GPIO77,GPIO_DIR_OUT);
	lcm_util.set_gpio_out(GPIO77,1);
	MDELAY(10);
    lcm_util.set_gpio_out(GPIO77,0);
	MDELAY(30);  //recommand 10ms
	lcm_util.set_gpio_out(GPIO77,1);
	MDELAY(200);  //recommand 10ms (+50ms)  300ms
#else

	SET_RESET_PIN(1);
	MDELAY(5);
	SET_RESET_PIN(0);
	
	MDELAY(10);
	
	SET_RESET_PIN(1);
	MDELAY(50); 

    init_lcm_registers();
#endif

#if 0
	SET_RESET_PIN(1);
	SET_RESET_PIN(0);
	MDELAY(1);
	
	SET_RESET_PIN(1);
	MDELAY(20);      

	init_lcm_registers();
#endif

}
static void lcm_init_tm(void)
{
	//reset high to low to high
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
	msleep(20); 
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    msleep(20); 
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    msleep(120); 
    lcm_id_pin_handle();
	// when phone initial , config output high, enable backlight drv chip  
    push_table(lcm_initialization_setting_tm, sizeof(lcm_initialization_setting_tm) / sizeof(struct LCM_setting_table), 1);  

    lcm_util.set_gpio_out(GPIO_LCD_DRV_EN_PIN, GPIO_OUT_ONE);

    LCD_DEBUG("uboot:tm_nt35521_lcm_init\n");
}
static void lcm_init(void)
{
    lcm_util.set_gpio_mode(GPIO_DISP_LRSTB_PIN, GPIO_MODE_00);  //huawei use GPIO 49: LSA0 to be reset pin
    lcm_util.set_gpio_dir(GPIO_DISP_LRSTB_PIN, GPIO_DIR_OUT);
	/*Optimization LCD initialization time*/
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    mdelay(30);  //lcm power on , reset output high , delay 30ms ,then output low
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    msleep(30);
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    msleep(50);
	push_table(tianma_ips_init, sizeof(tianma_ips_init) / sizeof(struct LCM_setting_table), 1);
    #ifdef BUILD_LK
	printf("LCD otm9608a_tianma lcm_init\n");
    #else
	printk("LCD otm9608a_tianma lcm_init\n");
    #endif
}
Ejemplo n.º 22
0
static unsigned int lcm_compare_id(void)
{
	unsigned int id = 0;
	unsigned char buffer[5];
	unsigned int array[16];
        //NOTE:should reset LCM firstly
         MDELAY(5);
   lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    MDELAY(25);
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    	MDELAY(50);


/*	SET_RESET_PIN(1);
	MDELAY(25);
	SET_RESET_PIN(0);
	MDELAY(50);
	SET_RESET_PIN(1);
	MDELAY(150); */

	array[0] = 0x00053700;// read id return 5 byte
	dsi_set_cmdq(array, 1, 1);

	array[0] = 0x04B02300;// unlock for reading ID
	dsi_set_cmdq(array, 1, 1);
	MDELAY(50);

	read_reg_v2(0xBF, buffer, 5);
	id = (buffer[2] << 8) | buffer[3]; //we only need ID
#if defined(BUILD_UBOOT)
    printf("%s, r61408 buffer 2 = 0x%x\n", __func__, buffer[2]);
   printf("%s, r61408 buffer 3 = 0x%x\n", __func__, buffer[3]);
	printf("%s, id1 = 0x%x\n", __func__, id);
/*#else
   printk("%s, r61408 fdsfsdf= 0x%x\n", __func__, id);
   printk("%s, r61408 buffer 2 = 0x%x\n", __func__, buffer[2]);
   printk("%s, r61408 buffer 3 = 0x%x\n", __func__, buffer[3]);
  if( LCM_ID == id)
   	printk("Magnum r61408 compare id OK \n");
*/
#endif
    return (LCM_ID == id)?1:0;
}
static void lcm_init(void)
{
	lcm_util.set_gpio_mode(GPIO112, GPIO_MODE_00);
	lcm_util.set_gpio_dir(GPIO112, GPIO_DIR_OUT); 
	lcm_util.set_gpio_pull_enable(GPIO112, GPIO_PULL_DISABLE); 

	lcm_util.set_gpio_out(GPIO112 , 0);
	MDELAY(50);

	SET_GPIO_OUT(LCD_LDO_ENP_GPIO_PIN , 1);
	MDELAY(10);
	SET_GPIO_OUT(LCD_LDO_ENN_GPIO_PIN , 1);
	MDELAY(100);
    
	lcm_util.set_gpio_out(GPIO112 , 1);
	MDELAY(20);

	init_lcm_registers();
}
Ejemplo n.º 24
0
static void lcm_init(void)
{
#ifdef BUILD_UBOOT
    // do nothing in uboot
#else
    lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_STBY
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCM_RST 
    //SET_RESET_PIN(1); // LCM_RST
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N   
    MDELAY(120); 
#endif    
}
Ejemplo n.º 25
0
static void lcm_suspend(void)
{
    lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ZERO); // LCD_RST
    MDELAY(10);    
	//lcm_util.set_gpio_mode(GPIO96, GPIO_MODE_00);    
    //lcm_util.set_gpio_dir(GPIO96, GPIO_DIR_OUT);
    //lcm_util.set_gpio_out(GPIO96, GPIO_OUT_ZERO); // LCD_PWREN
    //MDELAY(10);
}
Ejemplo n.º 26
0
static void lcm_init(void)
{
	//lcm_util.set_gpio_mode(GPIO96, GPIO_MODE_00);    
    //lcm_util.set_gpio_dir(GPIO96, GPIO_DIR_OUT);
    //lcm_util.set_gpio_out(GPIO96, GPIO_OUT_ONE); // LCD_PWREN
    //MDELAY(10); 
    lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCD_RST
    MDELAY(10);
}
static void lcm_resume(void)
{
	#if 1
	if(!lcm_is_init)
		lcm_init();
	#else
	lcm_util.set_gpio_out(GPIO_LCD_ENN, GPIO_OUT_ONE);
	lcm_util.set_gpio_out(GPIO_LCD_ENP, GPIO_OUT_ONE);
	lcm_init();
	#endif
}
Ejemplo n.º 28
0
static void lcm_resume(void)
{
#if ( !defined(BUILD_LK)) && (!defined(BUILD_UBOOT))

	if (down_interruptible(&sem_lcm_resume)) {
        //printk("[fb driver] can't get semaphore:%d\n", __LINE__);
        return;
    }
#endif
    lcm_util.set_gpio_mode(GPIO_LCM_AVDD_EN_PIN, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO_LCM_AVDD_EN_PIN, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO_LCM_AVDD_EN_PIN, GPIO_OUT_ONE); // LCM_AVDD
    MDELAY(50);
    lcm_util.set_gpio_mode(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_MODE_00);    
    lcm_util.set_gpio_dir(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_DIR_OUT);
    lcm_util.set_gpio_out(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N   
    MDELAY(120);
#if ( !defined(BUILD_LK)) && (!defined(BUILD_UBOOT))
	up(&sem_lcm_resume);
#endif
}
static void lcm_resume_tm(void)
{

    //enable VSP & VSN
	lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ONE);
	mdelay(10);
	lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ONE);
    msleep(50); 

    //reset low to high
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    mdelay(5); 
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO);
    mdelay(5); 
    lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE);
    msleep(20); 

    push_table(lcm_initialization_setting_tm, sizeof(lcm_initialization_setting_tm) / sizeof(struct LCM_setting_table), 1);
    //Back to MP.P7 baseline , solve LCD display abnormal On the right
    //when sleep out, config output high ,enable backlight drv chip  
    lcm_util.set_gpio_out(GPIO_LCD_DRV_EN_PIN, GPIO_OUT_ONE);

    LCD_DEBUG("uboot:tm_nt35521_lcm_resume\n");

}
static unsigned int lcm_compare_id(void)
{

	int array[4];
	char buffer[5];
	char id_high=0;
	char id_low=0;
	int id=0;
   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);
	SET_RESET_PIN(1);
	SET_RESET_PIN(0);
	MDELAY(10);
	SET_RESET_PIN(1);
	MDELAY(200);


	array[0] = 0x00053700;
	dsi_set_cmdq(array, 1, 1);
	read_reg_v2(0xa1, buffer, 5);

	id_high = buffer[2];
	id_low = buffer[3];
	id = (id_high<<8) | id_low;
	
	#ifdef BUILD_LK
		printf("J5010 otm1283a uboot %s \n", __func__);
		printf("J5010 %s id = 0x%08x \n", __func__, id);
	#else
		printk("J5010 otm1283a kernel %s \n", __func__);
	printk("J5010 %s id = 0x%08x \n", __func__, id);
	#endif
  // 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(50);
	return (LCM_ID == id) ? 1:0;
 
	
}