static void lcm_suspend(void)
{
	unsigned int data_array[16];
//<2013/06/03-25639-stevenchen, [Pelican][drv] Add second source TCL LCM.
	static GetLcmId=0;
	
	if(GetLcmId == 0)
	{
		lcm_id = mt_get_gpio_in(GPIO_LCM_ID_PIN);
		GetLcmId=1;
	}
//>2013/06/03-25639-stevenchen

//<2013/03/21-23086-stevenchen, Lower the standby current of LCD.
	//data_array[0]=0x00280500; // Display Off
	//dsi_set_cmdq(&data_array, 1, 1);
	//MDELAY(10);
//>2013/03/21-23086-stevenchen	

	data_array[0] = 0x00100500; // Sleep In
	dsi_set_cmdq(&data_array, 1, 1);
	MDELAY(120);

}
static unsigned int lcm_compare_id(void)
{
    unsigned char buffer[5] = {0};
    unsigned int data_array[16];

    dct_pmic_VGP2_enable(1);
    MDELAY(5);

    //SET_RESET_PIN(1);
    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(5);

    data_array[0] = 0x00053700;// read id return 1 byte
    dsi_set_cmdq(&data_array, 1, 1);
    read_reg_v2(0xBF, buffer, 5);
#ifdef BUILD_LK
	printf("r63315 compare_id buf[0]=0x%x,buf[1]=0x%x,buf[2]=0x%x,buf[3]=0x%x,buf[4]=0x%x\n",buffer[0],buffer[1],buffer[2],buffer[3],buffer[4]);
#else
	printk("r63315 compare_id buf[0]=0x%x,buf[1]=0x%x,buf[2]=0x%x,buf[3]=0x%x,buf[4]=0x%x\n",buffer[0],buffer[1],buffer[2],buffer[3],buffer[4]);
#endif	

    if ( (0x33 == buffer[2]) && (0x15 == buffer[3]) )
	{
	    return 1;
	}

	return 0;
}
static unsigned int lcm_esd_check(void) //хрень, которая отсутствует в половине драйверов...
{
#ifndef BUILD_LK
//#if 1
	char  buffer[3];
	int   array[4];

	array[0] = 0x00013700;
	dsi_set_cmdq(array, 1, 1);

	read_reg_v2(0x0a, buffer, 1);
	printk("jacob test lcm_esd_check buffer[0]=0x%x\n",buffer[0]);
	if(buffer[0]==0x9c)
	{
		return FALSE;
	}
	else
	{	
		return TRUE;
	}
#else
	return FALSE;
#endif
}
static void init_lcm_registers(void)
{
		unsigned int data_array[16];
		//unsigned char buffer[8];

#if 0//ndef BUILD_LK
		data_array[0] = 0x00013700;// read id return two byte,version and id
		dsi_set_cmdq(data_array, 1, 1);
#endif

TC358768_DCS_write_1A_1P(0xFF,0x04);     
TC358768_DCS_write_1A_1P(0xFB,0x01); 
TC358768_DCS_write_1A_1P(0X08	,0x0C);
TC358768_DCS_write_1A_1P(0xFF, 0x00);
TC358768_DCS_write_1A_1P(0X35	,0x01);
TC358768_DCS_write_1A_1P(0X51	,0xff);
TC358768_DCS_write_1A_1P(0X53	,0x2c);
TC358768_DCS_write_1A_1P(0x55,0x01);
TC358768_DCS_write_1A_1P(0xD3,0x06);
TC358768_DCS_write_1A_1P(0xD4,0x06);
TC358768_DCS_write_1A_0P(0x29);
MDELAY(100);
TC358768_DCS_write_1A_0P(0x11);
MDELAY(100);
		
#if 0//ndef BUILD_LK
		read_reg_v2(0xDA, &buffer[0], 1);
		read_reg_v2(0xDB, &buffer[1], 1);
		read_reg_v2(0xDC, &buffer[2], 1);

		read_reg_v2(0xF4, &buffer[3], 1);

		printk("%s, ID = (0x%02x, 0x%02x, 0x%02x, 0x%02x)\n", __func__, buffer[0], buffer[1], buffer[2], buffer[3]);	
#endif

}
示例#5
0
static void lcm_update(unsigned int x, unsigned int y,
                       unsigned int width, unsigned int height)
{
	unsigned int x0 = x;
	unsigned int y0 = y;
	unsigned int x1 = x0 + width - 1;
	unsigned int y1 = y0 + height - 1;

	unsigned char x0_MSB = ((x0>>8)&0xFF);
	unsigned char x0_LSB = (x0&0xFF);
	unsigned char x1_MSB = ((x1>>8)&0xFF);
	unsigned char x1_LSB = (x1&0xFF);
	unsigned char y0_MSB = ((y0>>8)&0xFF);
	unsigned char y0_LSB = (y0&0xFF);
	unsigned char y1_MSB = ((y1>>8)&0xFF);
	unsigned char y1_LSB = (y1&0xFF);

	unsigned int data_array[16];
	
#ifdef BUILD_UBOOT
		printf("zhibin uboot %s\n", __func__);
#else
		printk("zhibin kernel %s\n", __func__);	
#endif

	data_array[0]= 0x00053902;
	data_array[1]= (x1_MSB<<24)|(x0_LSB<<16)|(x0_MSB<<8)|0x2a;
	data_array[2]= (x1_LSB);
	data_array[3]= 0x00053902;
	data_array[4]= (y1_MSB<<24)|(y0_LSB<<16)|(y0_MSB<<8)|0x2b;
	data_array[5]= (y1_LSB);
	data_array[6]= 0x002c3909;

	dsi_set_cmdq(&data_array, 7, 0);

}
// zhoulidong add for eds(start)
static unsigned int lcm_esd_check(void)
{
	#ifdef BUILD_LK
		//printf("lcm_esd_check()\n");
	#else
		//printk("lcm_esd_check()\n");
	#endif 
 #ifndef BUILD_LK
	char  buffer[3];
	int   array[4];

	array[0] = 0x00013700;
	dsi_set_cmdq(array, 1, 1);

	read_reg_v2(0x0a, buffer, 1);
	if(buffer[0]==0x9c)
	{
		//#ifdef BUILD_LK
		//printf("%s %d\n FALSE", __func__, __LINE__);
		//#else
		//printk("%s %d\n FALSE", __func__, __LINE__);
		//#endif
		return FALSE;
	}
	else
	{	
		//#ifdef BUILD_LK
		//printf("%s %d\n FALSE", __func__, __LINE__);
		//#else
		//printk("%s %d\n FALSE", __func__, __LINE__);
		//#endif		 
		return TRUE;
	}
 #endif

}
示例#7
0
static unsigned int lcm_esd_check(void)
{
#ifndef BUILD_LK
//#if 1
	char  buffer[3];
	int   array[4];

	array[0] = 0x00013700;
	dsi_set_cmdq(array, 1, 1);

	read_reg_v2(0x0a, buffer, 1);
	//printk("leanda@@@ test lcm_esd_check buffer[0]=0x%x\n",buffer[0]);
	if(buffer[0]==0x9c)
	{
		return FALSE;
	}
	else
	{	
		return TRUE;
	}
#else
	return FALSE;
#endif
}
void fbconfig_apply_new_lcm_setting(void)
{
	CONFIG_RECORD *tmp = backup_head;
	DISP_DRV_WRAN("sxk=>fbconfig_apply_new_lcm_setting:START\n");
	while (tmp != NULL) {
		switch (tmp->type) {
		case RECORD_CMD:
			dsi_set_cmdq(tmp->ins_array, tmp->ins_num, 1);
			break;
		case RECORD_MS:
			FBCONFIG_MDELAY(tmp->ins_array[0]);
			/* msleep(tmp->ins_array[0]); */
			break;
		case RECORD_PIN_SET:
			SET_RESET_PIN(tmp->ins_array[0]);
			break;
		default:
			DISP_DRV_WRAN("sxk=>No such Type!!!!!\n");
		}
		tmp = tmp->next;
	}
	DISP_DRV_WRAN("sxk=>fbconfig_apply_new_lcm_setting:END\n");
	return;
}
static unsigned int lcm_compare_id(void)
{
		int   array[4];
		char  buffer[5];
		unsigned int id=0;

#if defined(BUILD_LK)
	 upmu_set_rg_vgp2_vosel(5);
	 upmu_set_rg_vgp2_en(1);

	 upmu_set_rg_vgp3_vosel(3);
	 upmu_set_rg_vgp3_en(1);	
#else
	 hwPowerOn(MT6323_POWER_LDO_VGP2, VOL_2800, "Lance_LCM");
	 hwPowerOn(MT6323_POWER_LDO_VGP3, VOL_1800, "Lance_LCM");
#endif

	SET_RESET_PIN(1);
	MDELAY(5);
	SET_RESET_PIN(0);
	MDELAY(30);
	SET_RESET_PIN(1);
	MDELAY(120);
		
	array[0] = 0x00083700;// read id return two byte,version and id
	dsi_set_cmdq(array, 1, 1);

	read_reg_v2(0xA1,buffer,4);
	id=(buffer[2]<<8)+buffer[3];
#ifdef BUILD_LK
	printf("mycat lcd id: 0x%08x\n", id);
#else
	printk("mycat lcd id: 0x%08x\n", id);
#endif        
	 return ((LCM_ID == id) && (get_lcd_id() == 0))?1:0;
}
static void lcm_register()
{
	unsigned int data_array[35];
	data_array[0] = 0x00043902;
	data_array[1] = 0x9483ffb9;
	dsi_set_cmdq(data_array, 2, 1);
	data_array[0] = 0x00113902;
	data_array[1] = 0x008213ba;
	data_array[2] = 0x1000c516;
	data_array[3] = 0x03240fff;
	data_array[4] = 0x20252421;
	data_array[5] = 0x00000008;
	dsi_set_cmdq(data_array, 6, 1);
	data_array[0] = 0x00113902;
	data_array[1] = 0x040001b1;
	data_array[2] = 0x1111018a;
	data_array[3] = 0x3f3f372f;
	data_array[4] = 0xe6011247;
	data_array[5] = 0x000000e2;
	dsi_set_cmdq(data_array, 6, 1);
	data_array[0] = 0x00073902;
	data_array[1] = 0x08c800b2;
	data_array[2] = 0x00220004;
	dsi_set_cmdq(data_array, 3, 1);
	data_array[0] = 0x00173902;
	data_array[1] = 0x320680b4;
	data_array[2] = 0x15320310;
	data_array[3] = 0x08103208;
	data_array[4] = 0x05430433;
	data_array[5] = 0x06430437;
	data_array[6] = 0x00066161;
	dsi_set_cmdq(data_array, 7, 1);
	data_array[0] = 0x00053902;
	data_array[1] = 0x100006bf;
	data_array[2] = 0x00000004;
	dsi_set_cmdq(data_array, 3, 1);
	data_array[0] = 0x00033902;
	data_array[1] = 0x00170cc0;
	dsi_set_cmdq(data_array, 2, 1);
	data_array[0] = 0x00023902;
	data_array[1] = 0x000000b6;
	dsi_set_cmdq(data_array, 2, 1);
	data_array[0] = 0x00213902;
	data_array[1] = 0x000000d5;
	data_array[2] = 0x01000a00;
	data_array[3] = 0x0000cc00;
	data_array[4] = 0x88888800;
	data_array[5] = 0x88888888;
	data_array[6] = 0x01888888;
	data_array[7] = 0x01234567;
	data_array[8] = 0x88888823;
	data_array[9] = 0x00000088;
	dsi_set_cmdq(data_array, 10, 1);
	data_array[0] = 0x00023902;
	data_array[1] = 0x000009cc;
	dsi_set_cmdq(data_array, 2, 1);
	data_array[0] = 0x00053902;
	data_array[1] = 0x001000c7;
	data_array[2] = 0x00000010;
	dsi_set_cmdq(data_array, 3, 1);
	data_array[0] = 0x002b3902;
	data_array[1] = 0x060400e0;
	data_array[2] = 0x173f332b;
	data_array[3] = 0x0d0e0a34;
	data_array[4] = 0x13111311;
	data_array[5] = 0x04001710;
	data_array[6] = 0x3f332b06;
	data_array[7] = 0x0e0a3417;
	data_array[8] = 0x1113110d;
	data_array[9] = 0x0b171013;
	data_array[10] = 0x0b110717;
	data_array[11] = 0x00110717;
	dsi_set_cmdq(data_array, 12, 1);
	data_array[0] = 0x00023902;
	data_array[1] = 0x000032d4;
	dsi_set_cmdq(data_array, 2, 1);
	data_array[0] = 0x00110500;
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(250);
	data_array[0] = 0x00290500;
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(50);
}
//<2012/10/11-14948-stevenchen, [Hawk40] Modify the infrastructure of LCM auto detection.
static unsigned int lcm_compare_id(void)
{
#ifdef LCM_DETECT_BY_PIN
	#if defined( BUILD_UBOOT ) || defined(BUILD_LK)
       //<2012/10/26-15740-stevenchen, [Hawk40] Init GPIO before reading LCM ID pin.
  		SET_GPIO_MODE( GPIO_LCM_ID_PIN, GPIO_LCM_ID_PIN_M_GPIO );
  		SET_GPIO_DIR_IN( GPIO_LCM_ID_PIN );
	//>2012/10/26-15740-stevenchen
		printf("[uboot/lk][Steven] LCM auto detect by ID pin \n");
		printf("[uboot/lk][Steven] ID pin = %d \n", mt_get_gpio_in(GPIO_LCM_ID_PIN));
	#endif
	//<2012/10/17-15296-stevenchen, [Hawk40] Modify HIGH/LOW definitions of LCM.
	/* Tianma LCM ID pin = LOW */
	return (mt_get_gpio_in(GPIO_LCM_ID_PIN)) ? 0 : 1;
	//>2012/10/17-15296-stevenchen
#else
	unsigned int id1 = 0, id2 = 0;
	unsigned char buffer[2];

	unsigned int data_array[16];
	
	//<2012/10/17-15290-stevenchen, [HAWK40] Fix reading LCM id is unstable.
	#if defined( BUILD_UBOOT ) || defined(BUILD_LK)
	DSI_clk_HS_mode(1);
	MDELAY(10);
	DSI_clk_HS_mode(0);
	#endif
	//>2012/10/17-15290-stevenchen

	SET_RESET_PIN(1);  //NOTE:should reset LCM firstly
	MDELAY(10);
	SET_RESET_PIN(0);
	MDELAY(10);
	SET_RESET_PIN(1);
	MDELAY(10);	

/*	
	data_array[0] = 0x00110500;		// Sleep Out
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(120);
*/
		
//*************Enable CMD2 Page1  *******************//
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);
	MDELAY(10); 

	data_array[0] = 0x00023700;// read id return two byte,version and id
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(10); 
	
	read_reg_v2(0xC5, buffer, 2);
	id1 = buffer[0]; //we only need ID
	id2 = buffer[1]; //we test buffer 1

//<2012/09/21-14199-stevenchen, [Hawk4.0] Add Novatek NT35510 LCM driver.
	#if defined( BUILD_UBOOT ) || defined(BUILD_LK)
		printf("[uboot/lk][Steven] %s, id1 = 0x%08X, id2 = 0x%08X\n", __func__, id1, id2 );
    	#else
		printk("[kernel][Steven] %s, id1 = 0x%08X, id2 = 0x%08X\n", __func__, id1, id2 );
	#endif
//>2012/09/21-14199-stevenchen

	#ifdef LCM_DETECT_BY_BOTH
		#if defined( BUILD_UBOOT ) || defined(BUILD_LK)
		//<2012/10/26-15740-stevenchen, [Hawk40] Init GPIO before reading LCM ID pin.
  			SET_GPIO_MODE( GPIO_LCM_ID_PIN, GPIO_LCM_ID_PIN_M_GPIO );
	  		SET_GPIO_DIR_IN( GPIO_LCM_ID_PIN );
		//>2012/10/26-15740-stevenchen
			printf( "[uboot/lk][Steven] LCM auto detect by ID & ID pin \n");
		#endif
	    	if(LCM_ID == id)
		{
			return 1;
		}
		else
		{
			/* Tianma LCM ID pin = HIGH */
			return (mt_get_gpio_in(GPIO_LCM_ID_PIN)) ? 1 : 0;
		}
	#else
		#if defined( BUILD_UBOOT ) || defined(BUILD_LK)
			printf( "[uboot/lk][Steven] LCM auto detect by ID \n");
		#endif
        	return (LCM_ID == id1)?1:0;
	#endif /* LCM_DETECT_BY_BOTH */
#endif /* LCM_DETECT_BY_PIN */ 
}
static void init_lcm_registers(void)
{
	unsigned int data_array[16];
//<2012/10/12-15021-stevenchen, [Hawk40] Update Tianma LCM initial code.
#if 1 //Tianma released
//*************Enable CMD2 Page1  *******************//
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);


//AVDD: 6.0V
    data_array[0]=0x00043902;
	data_array[1]=0x0A0A0AB0;
	dsi_set_cmdq(data_array, 2, 1);
    data_array[0]=0x00043902;
	data_array[1]=0x444444B6;
    dsi_set_cmdq(data_array, 2, 1);

//AVEE: -6.0V 
    data_array[0]=0x00043902;
	data_array[1]=0x0A0A0AB1;
    dsi_set_cmdq(data_array, 2, 1);	
    data_array[0]=0x00043902;
	data_array[1]=0x343434B7;
    dsi_set_cmdq(data_array, 2, 1);	

//#VGH:12V 
    data_array[0]=0x00043902;
	data_array[1]=0x070707B3; 	//0x050505B3
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00043902;
	data_array[1]=0x343434B9;	//0x242424B9
    dsi_set_cmdq(data_array, 2, 1);

//#VGLX:-10V 
    data_array[0]=0x00043902;
	data_array[1]=0x080808B5;
    dsi_set_cmdq(data_array, 2, 1);    
	data_array[0]=0x00043902;
	data_array[1]=0x141414BA;
    dsi_set_cmdq(data_array, 2, 1);

//#VGMP:4.7V  /VGSP:0V 
    data_array[0]=0x00043902;
	data_array[1]=0x00A800BC;	//0x008800BC
    dsi_set_cmdq(data_array, 2, 1);  

//#VGMN:-4.7V /VGSN:0V
	data_array[0]=0x00043902;
	data_array[1]=0x00A800BD;	//0x008800BD
    dsi_set_cmdq(data_array, 2, 1);

//##VCOM  Setting 
    data_array[0]=0x00033902;
	data_array[1]=0x008B00BE;	//0x002D00BE
    dsi_set_cmdq(data_array, 2, 1);  

//VCL
	data_array[0]=0x00043902;
	data_array[1]=0x020202B2;
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00043902;
	data_array[1]=0x242424B8;
    dsi_set_cmdq(data_array, 2, 1);

//	data_array[0]=0x00063902;
//	data_array[1]=0x52AA55F0;
//	data_array[2]=0x00000108;
//	dsi_set_cmdq(data_array, 3, 1);

//# R+ 
	data_array[0]=0x00353902;
	data_array[1]=0x002000D1;	//0x002900D1
	data_array[2]=0x00C00099;	//0x00330030
	data_array[3]=0x010101E4;	//0x0068004A
	data_array[4]=0x0152012F;	//0x01C9009F
	data_array[5]=0x01AA0184;	//0x01310105
	data_array[6]=0x021702E9;	//0x019A0170
	data_array[7]=0x029C0260;	//0x021402E0
	data_array[8]=0x03D3029E;	//0x02410215
	data_array[9]=0x0330030D;	//0x0286026E
	data_array[10]=0x0373035A;	//0x02AF02A0
	data_array[11]=0x03AA0395;	//0x02CE02C1
	data_array[12]=0x03E203D0;	//0x02E302DC
	data_array[13]=0x03FE03F3;	//0x03FA02EF
	data_array[14]=0x000000FF;	//0x00000060
	dsi_set_cmdq(data_array, 15, 1);

//#G +  
	data_array[0]=0x00353902;
	data_array[1]=0x003000D2;	//0x002900D2
	data_array[2]=0x00C30090;	//0x00330030
	data_array[3]=0x010301E7;	//0x0068004A
	data_array[4]=0x01540130;	//0x01C9009F
	data_array[5]=0x01AA0184;	//0x01310105
	data_array[6]=0x021602E7;	//0x019A0170
	data_array[7]=0x029B0260;	//0x021402E0
	data_array[8]=0x03D3029D;	//0x02410215
	data_array[9]=0x032F030D;	//0x0286026E
	data_array[10]=0x0374035A;	//0x02AF02A0
	data_array[11]=0x03AA0395;	//0x02CE02C1
	data_array[12]=0x03DB03C5;	//0x02E302DC
	data_array[13]=0x03FA03EE;	//0x03FD02EF
	data_array[14]=0x000000FF;	//0x00000000
	dsi_set_cmdq(data_array, 15, 1);

//#B + 
	data_array[0]=0x00353902;
	data_array[1]=0x002000D3;	//0x002900D3
	data_array[2]=0x00A30066;	//0x00330030
	data_array[3]=0x01ED00D0;	//0x0068004A
	data_array[4]=0x013F011A;	//0x01C9009F
	data_array[5]=0x019E0175;	//0x01310105
	data_array[6]=0x021102DE;	//0x019A0170
	data_array[7]=0x029B025D;	//0x021402E0
	data_array[8]=0x03D0029C;	//0x02410215
	data_array[9]=0x032E030B;	//0x0286026E
	data_array[10]=0x0373035A;	//0x02AF02A0
	data_array[11]=0x03AC0395;	//0x02CE02C1
	data_array[12]=0x03E203D0;	//0x02E302DC
	data_array[13]=0x03FE03F3;	//0x02F502EF
	data_array[14]=0x000000FF;	//0x000000D0
	dsi_set_cmdq(data_array, 15, 1);

//#R - 
	data_array[0]=0x00353902;
	data_array[1]=0x002000D4;	//0x002900D4
	data_array[2]=0x00C00099;	//0x00330030
	data_array[3]=0x010101E4;	//0x0068004A
	data_array[4]=0x0152012F;	//0x01C9009F
	data_array[5]=0x01AA0184;	//0x01310105
	data_array[6]=0x021702E9;	//0x019A0170
	data_array[7]=0x029C0260;	//0x021402E0
	data_array[8]=0x03D3029E;	//0x02410215
	data_array[9]=0x0330030D;	//0x0286026E
	data_array[10]=0x0373035A;	//0x02AF02A0
	data_array[11]=0x03AA0395;	//0x02CE02C1
	data_array[12]=0x03E203D0;	//0x02E302DC
	data_array[13]=0x03FE03F3;	//0x03FA02EF
	data_array[14]=0x000000FF;	//0x00000060
	dsi_set_cmdq(data_array, 15, 1);

//#G -
	data_array[0]=0x00353902;
	data_array[1]=0x003000D5;	//0x002900D5
	data_array[2]=0x00C30090;	//0x00330030
	data_array[3]=0x010301E7;	//0x0068004A
	data_array[4]=0x01540130;	//0x01C9009F
	data_array[5]=0x01AA0184;	//0x01310105
	data_array[6]=0x021602E7;	//0x019A0170
	data_array[7]=0x029B0260;	//0x021402E0
	data_array[8]=0x03D3029D;	//0x02410215
	data_array[9]=0x032F030D;	//0x0286026E
	data_array[10]=0x0374035A;	//0x02AF02A0
	data_array[11]=0x03AA0395;	//0x02CE02C1
	data_array[12]=0x03DB03C5;	//0x02E302DC
	data_array[13]=0x03FA03EE;	//0x03FD02EF
	data_array[14]=0x000000FF;	//0x00000000
	dsi_set_cmdq(data_array, 15, 1);

//#B - 
	data_array[0]=0x00353902;
	data_array[1]=0x002000D6;	//0x002900D6
	data_array[2]=0x00A30066;	//0x00330030
	data_array[3]=0x01ED00D0;	//0x0068004A
	data_array[4]=0x013F011A;	//0x01C9009F
	data_array[5]=0x019E0175;	//0x01310105
	data_array[6]=0x021102DE;	//0x019A0170
	data_array[7]=0x029B025D;	//0x021402E0
	data_array[8]=0x03D0029C;	//0x02410215
	data_array[9]=0x032E030B;	//0x0286026E
	data_array[10]=0x0373035A;	//0x02AF02A0
	data_array[11]=0x03AC0395;	//0x02CE02C1
	data_array[12]=0x03E203D0;	//0x02E302DC
	data_array[13]=0x03FE03F3;	//0x02F502EF
	data_array[14]=0x000000FF;	//0x000000D0
	dsi_set_cmdq(data_array, 15, 1);
//#######  ENABLE PAGE 0  ############              
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
    data_array[2]=0x00000008;
    dsi_set_cmdq(data_array, 3, 1);
//###################################     

//#Display option control-> video mode 
	data_array[0]=0x00033902;
	data_array[1]=0x0000CCB1; 
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00063902;
	data_array[1]=0x500240C9;
	data_array[2]=0x00005050;
    dsi_set_cmdq(data_array, 3, 1);

//#480*862 
	data_array[0]=0x6FB51500;
    dsi_set_cmdq(data_array, 1, 1);

//#SDT
	data_array[0]=0x05B61500;
    dsi_set_cmdq(data_array, 1, 1);

//#Gate EQ for rising edge  
	data_array[0]=0x00033902;
	data_array[1]=0x008080B7;
    dsi_set_cmdq(data_array, 2, 1);

//#Source EQ
	data_array[0]=0x00053902;
	data_array[1]=0x070701B8;
	data_array[2]=0x00000007;
    dsi_set_cmdq(data_array, 3, 1);

//#2dot-Inversion  
	data_array[0]=0x00043902;
	data_array[1]=0x050505BC;
    dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00053902;
	data_array[1]=0x0100002A;
	data_array[2]=0x000000DF;
    dsi_set_cmdq(data_array, 3, 1);
	data_array[0]=0x00053902;
	data_array[1]=0x0300002B;
	data_array[2]=0x00000055;
    dsi_set_cmdq(data_array, 3, 1);	

//Tearing ON
        data_array[0]=0x00351500;
    dsi_set_cmdq(data_array, 1, 1); 
#else //MTK original

//*************Enable CMD2 Page1  *******************//
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);


//AVDD: 6.0V
    data_array[0]=0x00043902;
	data_array[1]=0x0A0A0AB0;
	dsi_set_cmdq(data_array, 2, 1);
    data_array[0]=0x00043902;
	data_array[1]=0x444444B6;
    dsi_set_cmdq(data_array, 2, 1);

//AVEE: -6.0V 
    data_array[0]=0x00043902;
	data_array[1]=0x0A0A0AB1;
    dsi_set_cmdq(data_array, 2, 1);	
    data_array[0]=0x00043902;
	data_array[1]=0x343434B7;
    dsi_set_cmdq(data_array, 2, 1);	

//#VGH:12V 
    data_array[0]=0x00043902;
	data_array[1]=0x050505B3;
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00043902;
	data_array[1]=0x242424B9;
    dsi_set_cmdq(data_array, 2, 1);

//#VGLX:-10V 
    data_array[0]=0x00043902;
	data_array[1]=0x080808B5;
    dsi_set_cmdq(data_array, 2, 1);    
	data_array[0]=0x00043902;
	data_array[1]=0x141414BA;
    dsi_set_cmdq(data_array, 2, 1);

//#VGMP:4.7V  /VGSP:0V 
    data_array[0]=0x00043902;
	data_array[1]=0x008800BC;
    dsi_set_cmdq(data_array, 2, 1);  

//#VGMN:-4.7V /VGSN:0V
	data_array[0]=0x00043902;
	data_array[1]=0x008800BD;
    dsi_set_cmdq(data_array, 2, 1);

//##VCOM  Setting 
    data_array[0]=0x00033902;
	data_array[1]=0x002D00BE;
    dsi_set_cmdq(data_array, 2, 1);  

//VCL
	data_array[0]=0x00043902;
	data_array[1]=0x020202B2;
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00043902;
	data_array[1]=0x242424B8;
    dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);
//# R+ 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D1;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FA02EF;
	data_array[14]=0x00000060;
	dsi_set_cmdq(data_array, 15, 1);

//#G +  
	data_array[0]=0x00353902;
	data_array[1]=0x002900D2;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FD02EF;
	data_array[14]=0x00000000;
	dsi_set_cmdq(data_array, 15, 1);

//#B + 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D3;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x02F502EF;
	data_array[14]=0x000000D0;
	dsi_set_cmdq(data_array, 15, 1);

//#R - 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D4;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FA02EF;
	data_array[14]=0x00000060;
	dsi_set_cmdq(data_array, 15, 1);

//#G -
	data_array[0]=0x00353902;
	data_array[1]=0x002900D5;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FD02EF;
	data_array[14]=0x00000000;
	dsi_set_cmdq(data_array, 15, 1);

//#B - 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D6;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x02F502EF;
	data_array[14]=0x000000D0;
	dsi_set_cmdq(data_array, 15, 1);
//#######  ENABLE PAGE 0  ############              
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
    data_array[2]=0x00000008;
    dsi_set_cmdq(data_array, 3, 1);
//###################################     
//#Vivid Color
	data_array[0]=0x10B41500;
    dsi_set_cmdq(data_array, 1, 1);

//#480*854 
	data_array[0]=0x6CB51500;
    dsi_set_cmdq(data_array, 1, 1);

//#SDT
	data_array[0]=0x05B61500;
    dsi_set_cmdq(data_array, 1, 1);

//#2dot-Inversion  
	data_array[0]=0x00043902;
	data_array[1]=0x020202BC;
    dsi_set_cmdq(data_array, 2, 1);

//#Display option control-> video mode 
	data_array[0]=0x00033902;
	data_array[1]=0x0000D4B1; 
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00063902;
	data_array[1]=0x500200C9;
	data_array[2]=0x00005050;
    dsi_set_cmdq(data_array, 3, 1);

//#Gate EQ for rising edge  
	data_array[0]=0x00033902;
	data_array[1]=0x008080B7;
    dsi_set_cmdq(data_array, 2, 1);

//#Source EQ
	data_array[0]=0x00053902;
	data_array[1]=0x070701B8;
	data_array[2]=0x00000007;
    dsi_set_cmdq(data_array, 3, 1);
	data_array[0]=0x00053902;
	data_array[1]=0x0100002A;
	data_array[2]=0x000000DF;
    dsi_set_cmdq(data_array, 3, 1);
	data_array[0]=0x00053902;
	data_array[1]=0x0300002B;
	data_array[2]=0x00000055;
    dsi_set_cmdq(data_array, 3, 1);	

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

	data_array[0]= 0x00023902;
	data_array[1]= 0x0051;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x2453;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x0055;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x705e;
	dsi_set_cmdq(data_array, 2, 1);
#endif
//>2012/10/12-15021-stevenchen
}
示例#13
0
static void init_lcm_registers(void)
{
	unsigned int data_array[16];

	data_array[0]=0x00053902;
	data_array[1]=0x2555AAFF;
	data_array[2]=0x00000001;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0]=0x00123902;
	data_array[1]=0x000201F8;
	data_array[2]=0x00133320;
	data_array[3]=0x23000040;
	data_array[4]=0x00C89902;
	data_array[5]=0x00001100;
	dsi_set_cmdq(data_array, 6, 1);


//*************Enable CMD2 Page1  *******************//
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);

//************* AVDD: manual  *******************//
	data_array[0]=0x00043902;
	data_array[1]=0x343434B6;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00043902;
	data_array[1]=0x090909B0;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00043902;//AVEE: manual, -6V 
	data_array[1]=0x242424B7;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00043902;//AVEE voltage, Set AVEE -6V
	data_array[1]=0x090909B1;
	dsi_set_cmdq(data_array, 2, 1);

	//Power Control for VCL
	data_array[0]=0x34B81500;
	dsi_set_cmdq(data_array, 1, 1);

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

	data_array[0]=0x00043902;//VGH: Clamp Enable
	data_array[1]=0x242424B9;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00043902;
	data_array[1]=0x050505B3;
	dsi_set_cmdq(data_array, 2, 1);

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

	data_array[0]=0x00043902;//VGL(LVGL)
	data_array[1]=0x242424BA;
	dsi_set_cmdq(data_array, 2, 1);

	//VGL_REG(VGLO)
	data_array[0]=0x00043902;
	data_array[1]=0x0B0B0BB5;
	dsi_set_cmdq(data_array, 2, 1);

	//VGMP/VGSP
	data_array[0]=0x00043902;
	data_array[1]=0x00A300BC;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00043902;//VGMN/VGSN  
	data_array[1]=0x00A300BD;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00033902;//VCOM=-0.1
	data_array[1]=0x005000BE;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00353902;
	data_array[1]=0x003700D1;
	data_array[2]=0x007B0052;
	data_array[3]=0x00B10099;
	data_array[4]=0x01F600D2;
	data_array[5]=0x014E0127;
	data_array[6]=0x02BE018C;
	data_array[7]=0x0248020B;
	data_array[8]=0x027E024A;
	data_array[9]=0x03E102BC;
	data_array[10]=0x03310310;
	data_array[11]=0x0373035A;
	data_array[12]=0x039F0394;
	data_array[13]=0x03B903B3;
	data_array[14]=0x000000C1;
	dsi_set_cmdq(data_array, 15, 1);

	data_array[0]=0x00353902;
	data_array[1]=0x003700D2;
	data_array[2]=0x007B0052;
	data_array[3]=0x00B10099;
	data_array[4]=0x01F600D2;
	data_array[5]=0x014E0127;
	data_array[6]=0x02BE018C;
	data_array[7]=0x0248020B;
	data_array[8]=0x027E024A;
	data_array[9]=0x03E102BC;
	data_array[10]=0x03310310;
	data_array[11]=0x0373035A;
	data_array[12]=0x039F0394;
	data_array[13]=0x03B903B3;
	data_array[14]=0x000000C1;
	dsi_set_cmdq(data_array, 15, 1);
	
	data_array[0]=0x00353902;
	data_array[1]=0x003700D3;
	data_array[2]=0x007B0052;
	data_array[3]=0x00B10099;
	data_array[4]=0x01F600D2;
	data_array[5]=0x014E0127;
	data_array[6]=0x02BE018C;
	data_array[7]=0x0248020B;
	data_array[8]=0x027E024A;
	data_array[9]=0x03E102BC;
	data_array[10]=0x03310310;
	data_array[11]=0x0373035A;
	data_array[12]=0x039F0394;
	data_array[13]=0x03B903B3;
	data_array[14]=0x000000C1;
	dsi_set_cmdq(data_array, 15, 1);

	data_array[0]=0x00353902;
	data_array[1]=0x003700D4;
	data_array[2]=0x007B0052;
	data_array[3]=0x00B10099;
	data_array[4]=0x01F600D2;
	data_array[5]=0x014E0127;
	data_array[6]=0x02BE018C;
	data_array[7]=0x0248020B;
	data_array[8]=0x027E024A;
	data_array[9]=0x03E102BC;
	data_array[10]=0x03310310;
	data_array[11]=0x0373035A;
	data_array[12]=0x039F0394;
	data_array[13]=0x03B903B3;
	data_array[14]=0x000000C1;
	dsi_set_cmdq(data_array, 15, 1);

	data_array[0]=0x00353902;
	data_array[1]=0x003700D5;
	data_array[2]=0x007B0052;
	data_array[3]=0x00B10099;
	data_array[4]=0x01F600D2;
	data_array[5]=0x014E0127;
	data_array[6]=0x02BE018C;
	data_array[7]=0x0248020B;
	data_array[8]=0x027E024A;
	data_array[9]=0x03E102BC;
	data_array[10]=0x03310310;
	data_array[11]=0x0373035A;
	data_array[12]=0x039F0394;
	data_array[13]=0x03B903B3;
	data_array[14]=0x000000C1;
	dsi_set_cmdq(data_array, 15, 1);

	data_array[0]=0x00353902;
	data_array[1]=0x003700D6;
	data_array[2]=0x007B0052;
	data_array[3]=0x00B10099;
	data_array[4]=0x01F600D2;
	data_array[5]=0x014E0127;
	data_array[6]=0x02BE018C;
	data_array[7]=0x0248020B;
	data_array[8]=0x027E024A;
	data_array[9]=0x03E102BC;
	data_array[10]=0x03310310;
	data_array[11]=0x0373035A;
	data_array[12]=0x039F0394;
	data_array[13]=0x03B903B3;
	data_array[14]=0x000000C1;
	dsi_set_cmdq(data_array, 15, 1);
	
// ********************  EABLE CMD2 PAGE 0 **************//

	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000008;
	dsi_set_cmdq(data_array, 3, 1);
	
	data_array[0]=0x00063902;//I/F Setting
	data_array[1]=0x020500B0;
	data_array[2]=0x00000205;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0]=0x0AB61500;//SDT
	dsi_set_cmdq(data_array, 1, 1);

	data_array[0]=0x00033902;//Set Gate EQ 
	data_array[1]=0x000000B7;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00053902;//Set Source EQ
	data_array[1]=0x050501B8;
	data_array[2]=0x00000005;
	dsi_set_cmdq(data_array, 3, 1);

	data_array[0]=0x00043902;//Inversion: Column inversion (NVT)
	data_array[1]=0x020202BC;//0x000000BC
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00043902;//BOE's Setting (default)
	data_array[1]=0x000003CC;
	dsi_set_cmdq(data_array, 2, 1);
	
	data_array[0]=0x00063902;//Display Timing
	data_array[1]=0x078401BD;
	data_array[2]=0x00000031;
	dsi_set_cmdq(data_array, 3, 1);

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

	data_array[0]=0x00053902;
	data_array[1]=0x2555AAF0;
	data_array[2]=0x00000001;
	dsi_set_cmdq(data_array, 3, 1);

/*
	data_array[0]=0x00053902;//Enable Test mode
	data_array[1]=0x2555AAFF;
	data_array[2]=0x00000001;
	dsi_set_cmdq(data_array, 3, 1);
	MDELAY(10);	
*/

	data_array[0]=0x773A1500;//TE ON 
	dsi_set_cmdq(data_array, 1, 1);

//	data_array[0] = 0x00351500;// TE ON
//	dsi_set_cmdq(data_array, 1, 1);
//	MDELAY(10);
/*
	data_array[0] = 0x00110500;		// Sleep Out
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(120);
	
	data_array[0] = 0x00290500;		// Display On
	dsi_set_cmdq(data_array, 1, 1);
*/	
//******************* ENABLE PAGE0 **************//
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000008;
	dsi_set_cmdq(data_array, 3, 1);
	
/*	data_array[0]=0x02C71500;
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(10);	
	
	data_array[0]=0x00053902;
	data_array[1]=0x000011C9;
	data_array[2]=0x00000000;
	dsi_set_cmdq(data_array, 3, 1);
	MDELAY(10);
	
	data_array[0]=0x00211500;
	dsi_set_cmdq(data_array, 1, 1);
	MDELAY(120);	
*/
	data_array[0] = 0x00351500;// TE ON
	dsi_set_cmdq(data_array, 1, 1);
	
	data_array[0]= 0x00033902;
	data_array[1]= 0x0000E8B1;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x0051;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x2453;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x0155;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x705e;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00033902;
	data_array[1]= 0x000301E0;
	dsi_set_cmdq(data_array, 2, 1);
}
static void init_lcm_registers(void)
{
	unsigned int data_array[16];

//*************Enable CMD2 Page1  *******************//
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);


//AVDD: 6.0V
    data_array[0]=0x00043902;
	data_array[1]=0x0A0A0AB0;
	dsi_set_cmdq(data_array, 2, 1);
    data_array[0]=0x00043902;
	data_array[1]=0x444444B6;
    dsi_set_cmdq(data_array, 2, 1);

//AVEE: -6.0V 
    data_array[0]=0x00043902;
	data_array[1]=0x0A0A0AB1;
    dsi_set_cmdq(data_array, 2, 1);	
    data_array[0]=0x00043902;
	data_array[1]=0x343434B7;
    dsi_set_cmdq(data_array, 2, 1);	

//#VGH:12V 
    data_array[0]=0x00043902;
	data_array[1]=0x050505B3;
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00043902;
	data_array[1]=0x242424B9;
    dsi_set_cmdq(data_array, 2, 1);

//#VGLX:-10V 
    data_array[0]=0x00043902;
	data_array[1]=0x080808B5;
    dsi_set_cmdq(data_array, 2, 1);    
	data_array[0]=0x00043902;
	data_array[1]=0x141414BA;
    dsi_set_cmdq(data_array, 2, 1);

//#VGMP:4.7V  /VGSP:0V 
    data_array[0]=0x00043902;
	data_array[1]=0x008800BC;
    dsi_set_cmdq(data_array, 2, 1);  

//#VGMN:-4.7V /VGSN:0V
	data_array[0]=0x00043902;
	data_array[1]=0x008800BD;
    dsi_set_cmdq(data_array, 2, 1);

//##VCOM  Setting 
    data_array[0]=0x00033902;
	data_array[1]=0x002D00BE;
    dsi_set_cmdq(data_array, 2, 1);  

//VCL
	data_array[0]=0x00043902;
	data_array[1]=0x020202B2;
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00043902;
	data_array[1]=0x242424B8;
    dsi_set_cmdq(data_array, 2, 1);

	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
	data_array[2]=0x00000108;
	dsi_set_cmdq(data_array, 3, 1);
//# R+ 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D1;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FA02EF;
	data_array[14]=0x00000060;
	dsi_set_cmdq(data_array, 15, 1);

//#G +  
	data_array[0]=0x00353902;
	data_array[1]=0x002900D2;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FD02EF;
	data_array[14]=0x00000000;
	dsi_set_cmdq(data_array, 15, 1);

//#B + 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D3;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x02F502EF;
	data_array[14]=0x000000D0;
	dsi_set_cmdq(data_array, 15, 1);

//#R - 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D4;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FA02EF;
	data_array[14]=0x00000060;
	dsi_set_cmdq(data_array, 15, 1);

//#G -
	data_array[0]=0x00353902;
	data_array[1]=0x002900D5;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x03FD02EF;
	data_array[14]=0x00000000;
	dsi_set_cmdq(data_array, 15, 1);

//#B - 
	data_array[0]=0x00353902;
	data_array[1]=0x002900D6;
	data_array[2]=0x00330030;
	data_array[3]=0x0068004A;
	data_array[4]=0x01C9009F;
	data_array[5]=0x01310105;
	data_array[6]=0x019A0170;
	data_array[7]=0x021402E0;
	data_array[8]=0x02410215;
	data_array[9]=0x0286026E;
	data_array[10]=0x02AF02A0;
	data_array[11]=0x02CE02C1;
	data_array[12]=0x02E302DC;
	data_array[13]=0x02F502EF;
	data_array[14]=0x000000D0;
	dsi_set_cmdq(data_array, 15, 1);
//#######  ENABLE PAGE 0  ############              
	data_array[0]=0x00063902;
	data_array[1]=0x52AA55F0;
    data_array[2]=0x00000008;
    dsi_set_cmdq(data_array, 3, 1);
//###################################     
//#Vivid Color
	data_array[0]=0x10B41500;
    dsi_set_cmdq(data_array, 1, 1);

//#480*854 
	data_array[0]=0x6CB51500;
    dsi_set_cmdq(data_array, 1, 1);

//#SDT
	data_array[0]=0x05B61500;
    dsi_set_cmdq(data_array, 1, 1);

//#2dot-Inversion  
	data_array[0]=0x00043902;
	data_array[1]=0x020202BC;
    dsi_set_cmdq(data_array, 2, 1);

//#Display option control-> video mode 
	data_array[0]=0x00033902;
	data_array[1]=0x0000D4B1; 
    dsi_set_cmdq(data_array, 2, 1);
	data_array[0]=0x00063902;
	data_array[1]=0x500200C9;
	data_array[2]=0x00005050;
    dsi_set_cmdq(data_array, 3, 1);

//#Gate EQ for rising edge  
	data_array[0]=0x00033902;
	data_array[1]=0x008080B7;
    dsi_set_cmdq(data_array, 2, 1);

//#Source EQ
	data_array[0]=0x00053902;
	data_array[1]=0x070701B8;
	data_array[2]=0x00000007;
    dsi_set_cmdq(data_array, 3, 1);
	data_array[0]=0x00053902;
	data_array[1]=0x0100002A;
	data_array[2]=0x000000DF;
    dsi_set_cmdq(data_array, 3, 1);
	data_array[0]=0x00053902;
	data_array[1]=0x0300002B;
	data_array[2]=0x00000055;
    dsi_set_cmdq(data_array, 3, 1);	

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

	data_array[0]= 0x00023902;
	data_array[1]= 0x0051;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x2453;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x0055;
	dsi_set_cmdq(data_array, 2, 1);

	data_array[0]= 0x00023902;
	data_array[1]= 0x705e;
	dsi_set_cmdq(data_array, 2, 1);

}
static void init_lcm_registers(void)
{

    unsigned int data_array[16];
#if 0
//HX8379A_BOE3.97IPS_131108
    data_array[0]=0x00043902;//Enable external Command
    data_array[1]=0x7983FFB9;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);//3000

    data_array[0]=0x00023902;
    data_array[1]=0x000051BA;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);//3000

    data_array[0]=0x00143902;
    data_array[1]=0x445000B1;
    data_array[2]=0x110894DE;
    data_array[3]=0x2f2f1111;
    data_array[4]=0x08421d9d;
    data_array[5]=0xE600F16E;
    dsi_set_cmdq(&data_array, 6, 1);


    data_array[0]=0x000E3902;
    data_array[1]=0x3C0000b2; //
    data_array[2]=0x22190505;
    data_array[3]=0x0409FF00;
    data_array[4]=0x00002019;
    dsi_set_cmdq(&data_array, 5, 1);
    MDELAY(1);


    data_array[0]=0x00203902;
    data_array[1]=0x000A80b4;
    data_array[2]=0x32041032;
    data_array[3]=0x10327013;
    data_array[4]=0x40001708;
    data_array[5]=0x18082304;
    data_array[6]=0x04303008;
    data_array[7]=0x28084000;
    data_array[8]=0x04303008;
    dsi_set_cmdq(&data_array, 9, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x000002CC;
    dsi_set_cmdq(&data_array, 2, 1);

    data_array[0]=0x00303902;//Enable external Command//3
    data_array[1]=0x0A0000d5;
    data_array[2]=0x00000100;
    data_array[3]=0x99011100;
    data_array[4]=0x88103210;
    data_array[5]=0x88886745;
    data_array[6]=0x88888888;
    data_array[7]=0x54768888;
    data_array[8]=0x10325476;
    data_array[9]=0x88881032;
    data_array[10]=0x88888888;
    data_array[11]=0x00008888;
    data_array[12]=0x00000000;
    dsi_set_cmdq(&data_array, 13, 1);

    data_array[0]=0x00253902;
    data_array[1]=0x080079E0;
    data_array[2]=0x3F3F3F0F;
    data_array[3]=0x0C065327;
    data_array[4]=0x1415130F;
    data_array[5]=0x001F1514;
    data_array[6]=0x3F3F0F08;
    data_array[7]=0x0653273F;
    data_array[8]=0x15130F0C;
    data_array[9]=0x1F151414;
    data_array[10]=0x0000001F;
    dsi_set_cmdq(&data_array, 11, 1);
    MDELAY(5);

    data_array[0]=0x00053902;
    data_array[1]=0x008C00B6;
    data_array[2]=0x0000008C;
    dsi_set_cmdq(&data_array, 3, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x0000773A;
    dsi_set_cmdq(&data_array, 2, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x00000036;
    dsi_set_cmdq(&data_array, 2, 1);

    data_array[0] = 0x00110500;
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(150);

    data_array[0] = 0x00290500;
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(30);


#else
   //HX8379A_BOE3.97IPS
    data_array[0]=0x00043902;//Enable external Command
    data_array[1]=0x7983FFB9;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);//3000

    data_array[0]=0x00033902;
    data_array[1]=0x009351BA;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);//3000

    data_array[0]=0x00143902;
    data_array[1]=0x445000B1;
    data_array[2]=0x11086FE3;
    data_array[3]=0x38361111;
    data_array[4]=0x0B4229A9;
    data_array[5]=0xE600F16a;
    dsi_set_cmdq(&data_array, 6, 1);


    data_array[0]=0x000E3902;
    data_array[1]=0x3C0000b2; //
    data_array[2]=0x2218040C;
    data_array[3]=0x040CFF00;
    data_array[4]=0x00002018;
    dsi_set_cmdq(&data_array, 5, 1);
    MDELAY(1);


    data_array[0]=0x00203902;
    data_array[1]=0x000C80b4;
    data_array[2]=0x00061030;
    data_array[3]=0x00000000;
    data_array[4]=0x48001100;
    data_array[5]=0x403C2307;
    data_array[6]=0x04303008;
    data_array[7]=0x28084000;
    data_array[8]=0x04303008;
    dsi_set_cmdq(&data_array, 9, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x000002CC;
    dsi_set_cmdq(&data_array, 2, 1);

    data_array[0]=0x00053902;
    data_array[1]=0x008200B6;
    data_array[2]=0x00000082;
    dsi_set_cmdq(&data_array, 3, 1);

    data_array[0]=0x00243902;
    data_array[1]=0x1F0079E0;
    data_array[2]=0x3F3A3323;
    data_array[3]=0x0D07432C;
    data_array[4]=0x14151410;
    data_array[5]=0x00181014;
    data_array[6]=0x3A33231F;
    data_array[7]=0x07432C3F;
    data_array[8]=0x1514100D;
    data_array[9]=0x18101414;
    dsi_set_cmdq(&data_array, 10, 1);
    MDELAY(5);

    data_array[0]=0x00303902;//Enable external Command//3
    data_array[1]=0x0A0000d5;
    data_array[2]=0x00000100;
    data_array[3]=0x99881000;
    data_array[4]=0x88103210;
    data_array[5]=0x88888888;
    data_array[6]=0x88888888;
    data_array[7]=0x88888888;
    data_array[8]=0x99010123;
    data_array[9]=0x88888888;
    data_array[10]=0x88888888;
    data_array[11]=0x00048888;
    data_array[12]=0x00000000;
    dsi_set_cmdq(&data_array, 13, 1);

    //delete by yangjuwei
    //data_array[0]=0x00033902;
    //data_array[1]=0x00010CE4;
    //dsi_set_cmdq(&data_array, 2, 1);
    //delete by yangjuwei

    data_array[0]=0x00023902;
    data_array[1]=0x0000773A;
    dsi_set_cmdq(&data_array, 2, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x00000036;
    dsi_set_cmdq(&data_array, 2, 1);

    data_array[0] = 0x00110500;
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(150);

    data_array[0] = 0x00290500;
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(30);
    #endif

}
static unsigned int lcm_compare_id(void)
{

#if 1
	int array[4];
	char buffer[5];
	char id_high=0;
	char id_low=0;
	int id=0;

	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;

	#if defined(BUILD_LK)
		printf("OTM8018B CS uboot %s \n", __func__);
		printf("%s id = 0x%08x \n", __func__, id);
	#else
		printk("OTM8018B CS kernel %s \n", __func__);
		printk("%s id = 0x%08x \n", __func__, id);
	#endif

	return (LCM_ID_OTM8019A_CS == id)?1:0;
#else
	int adcdata[4];
	int result = 0;
	int lcmid;
		
	IMM_GetOneChannelValue(1,adcdata,&lcmid);
       #if defined(BUILD_LK)
	printf("Otm8018b channelValue=%d\n",lcmid);
	#else 
        printk("Otm8018b channelValue=%d\n",lcmid);
        #endif

	lcmid = lcmid * 1500/4096; //LiuHuojun 20130503 1500?<C1><D9>??
	#if defined(BUILD_LK)
			printf("Otm8018b uboot %s \n", __func__);
			printf("%s lcmid = %d \n", __func__, lcmid);
	#else
			printk("Otm8018b kernel %s \n", __func__);
			printk("%s lcmid = %d \n", __func__, lcmid);
	#endif
	if(lcmid >800 && lcmid<=1200) //add by liutao for lingda:0V tianma:0.7V
	{
			return 1;
	}
	else
	{
			return 0;
	}
#endif
}
static void init_lcm_registers(void)
{
    unsigned int data_array[16];

    //*************Enable TE  *******************//
    data_array[0]= 0x00053902;
    data_array[1]= 0x2555aaff;
    data_array[2]= 0x00000001;
    dsi_set_cmdq(data_array, 3, 1);

    data_array[0]= 0x00093902;
    data_array[1]= 0x000201f8;
    data_array[2]= 0x00133320;
    data_array[3]= 0x00000048;
    dsi_set_cmdq(data_array, 4, 1);

    //*************Enable CMD2 Page1  *******************//
    data_array[0]=0x00063902;
    data_array[1]=0x52aa55f0;
    data_array[2]=0x00000108;
    dsi_set_cmdq(data_array, 3, 1);

    //************* AVDD: manual  *******************//
    data_array[0]=0x00043902;
    data_array[1]=0x0d0d0db0;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x343434b6;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x0d0d0db1;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x343434b7;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x000000b2;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x242424b8;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x000001bf;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x0f0f0fb3;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x343434b9;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x080808b5;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x000003c2;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x242424ba;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x007800bc;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x007800bd;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00033902;
    data_array[1]=0x006400be;
    dsi_set_cmdq(data_array, 2, 1);

    //*************Gamma Table  *******************//
    data_array[0]=0x00353902;
    data_array[1]=0x003300D1;
    data_array[2]=0x003A0034;
    data_array[3]=0x005C004A;
    data_array[4]=0x00A60081;
    data_array[5]=0x011301E5;
    data_array[6]=0x01820154;
    data_array[7]=0x020002CA;
    data_array[8]=0x02340201;
    data_array[9]=0x02840267;
    data_array[10]=0x02B702A4;
    data_array[11]=0x02DE02CF;
    data_array[12]=0x03FE02F2;
    data_array[13]=0x03330310;
    data_array[14]=0x0000006D;
    dsi_set_cmdq(data_array, 15, 1);

    data_array[0]=0x00353902;
    data_array[1]=0x003300D2;
    data_array[2]=0x003A0034;
    data_array[3]=0x005C004A;
    data_array[4]=0x00A60081;
    data_array[5]=0x011301E5;
    data_array[6]=0x01820154;
    data_array[7]=0x020002CA;
    data_array[8]=0x02340201;
    data_array[9]=0x02840267;
    data_array[10]=0x02B702A4;
    data_array[11]=0x02DE02CF;
    data_array[12]=0x03FE02F2;
    data_array[13]=0x03330310;
    data_array[14]=0x0000006D;
    dsi_set_cmdq(data_array, 15, 1);

    data_array[0]=0x00353902;
    data_array[1]=0x003300D3;
    data_array[2]=0x003A0034;
    data_array[3]=0x005C004A;
    data_array[4]=0x00A60081;
    data_array[5]=0x011301E5;
    data_array[6]=0x01820154;
    data_array[7]=0x020002CA;
    data_array[8]=0x02340201;
    data_array[9]=0x02840267;
    data_array[10]=0x02B702A4;
    data_array[11]=0x02DE02CF;
    data_array[12]=0x03FE02F2;
    data_array[13]=0x03330310;
    data_array[14]=0x0000006D;
    dsi_set_cmdq(data_array, 15, 1);

    data_array[0]=0x00353902;
    data_array[1]=0x003300D4;
    data_array[2]=0x003A0034;
    data_array[3]=0x005C004A;
    data_array[4]=0x00A60081;
    data_array[5]=0x011301E5;
    data_array[6]=0x01820154;
    data_array[7]=0x020002CA;
    data_array[8]=0x02340201;
    data_array[9]=0x02840267;
    data_array[10]=0x02B702A4;
    data_array[11]=0x02DE02CF;
    data_array[12]=0x03FE02F2;
    data_array[13]=0x03330310;
    data_array[14]=0x0000006D;
    dsi_set_cmdq(data_array, 15, 1);

    data_array[0]=0x00353902;
    data_array[1]=0x003300D5;
    data_array[2]=0x003A0034;
    data_array[3]=0x005C004A;
    data_array[4]=0x00A60081;
    data_array[5]=0x011301E5;
    data_array[6]=0x01820154;
    data_array[7]=0x020002CA;
    data_array[8]=0x02340201;
    data_array[9]=0x02840267;
    data_array[10]=0x02B702A4;
    data_array[11]=0x02DE02CF;
    data_array[12]=0x03FE02F2;
    data_array[13]=0x03330310;
    data_array[14]=0x0000006D;
    dsi_set_cmdq(data_array, 15, 1);

    data_array[0]=0x00353902;
    data_array[1]=0x003300D6;
    data_array[2]=0x003A0034;
    data_array[3]=0x005C004A;
    data_array[4]=0x00A60081;
    data_array[5]=0x011301E5;
    data_array[6]=0x01820154;
    data_array[7]=0x020002CA;
    data_array[8]=0x02340201;
    data_array[9]=0x02840267;
    data_array[10]=0x02B702A4;
    data_array[11]=0x02DE02CF;
    data_array[12]=0x03FE02F2;
    data_array[13]=0x03330310;
    data_array[14]=0x0000006D;
    dsi_set_cmdq(data_array, 15, 1);
    MDELAY(10);

    // ********************  EABLE CMD2 PAGE 0 **************//
    data_array[0]=0x00063902;
    data_array[1]=0x52aa55f0;
    data_array[2]=0x00000008;
    dsi_set_cmdq(data_array, 3, 1);

    // ********************  EABLE DSI TE **************//
    data_array[0]=0x00033902;
    data_array[1]=0x0000fcb1;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00023902;
    data_array[1]=0x000005b6;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00033902;
    data_array[1]=0x007070b7;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00053902;
    data_array[1]=0x030301b8;
    data_array[2]=0x00000003;
    dsi_set_cmdq(data_array, 3, 1);

    data_array[0]=0x00043902;
    data_array[1]=0x000002bc;
    dsi_set_cmdq(data_array, 2, 1);

    data_array[0]=0x00063902;
    data_array[1]=0x5002d0c9;
    data_array[2]=0x00005050;
    dsi_set_cmdq(data_array, 3, 1);

    // ********************  EABLE DSI TE packet **************//
    data_array[0]=0x00351500;
    dsi_set_cmdq(data_array, 1, 1);

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

    data_array[0]= 0x00053902;
    data_array[1]= 0x0100002a;
    data_array[2]= 0x000000df;
    dsi_set_cmdq(data_array, 3, 1);

    data_array[0]= 0x00053902;
    data_array[1]= 0x0300002b;
    data_array[2]= 0x0000001f;
    dsi_set_cmdq(data_array, 3, 1);

    data_array[0] = 0x00110500;
    dsi_set_cmdq(data_array, 1, 1);
    MDELAY(120);

    data_array[0]= 0x00290500;
    dsi_set_cmdq(data_array, 1, 1);
}
static void lcm_init_register(void)
{
unsigned int data_array[16];
#if   1   //(NT35590) /*nt35590 + 4.7 inch*/
    	data_array[0] = 0x00023902;//CMD1                           
    	data_array[1] = 0x000000FF;                 
    	dsi_set_cmdq(data_array, 2, 1);     
    	
    	data_array[0] = 0x00023902;//MIPI 2 Lane                  
    	data_array[1] = 0x000003BA;                 
    	dsi_set_cmdq(data_array, 2, 1);    
    	
      data_array[0] = 0x00023902;//MIPI command mode  
      data_array[1] = 0x000008C2;                 
    	dsi_set_cmdq(data_array, 2, 1);   
    	
      data_array[0] = 0x00023902;//CMD2,Page0  
      data_array[1] = 0x000001FF;                 
    	dsi_set_cmdq(data_array, 2, 1);   
    	
      data_array[0] = 0x00023902; 
      data_array[1] = 0x00003A00;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x00003301;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x00005302;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//VGL=-6V 
      data_array[1] = 0x00008509;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//VGH=+8.6V 
      data_array[1] = 0x0000250E;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//turn off VGLO regulator   
      data_array[1] = 0x00000A0F;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//GVDDP=4V     
      data_array[1] = 0x0000970B;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//
      data_array[1] = 0x0000970C;                 
    	dsi_set_cmdq(data_array, 2, 1);  

    	data_array[0] = 0x00023902;//   
      data_array[1] = 0x00008C11;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//   
      data_array[1] = 0x00007B36;                 
    	dsi_set_cmdq(data_array, 2, 1);  
    	
    	data_array[0] = 0x00023902;//GVDDP=4V     
      data_array[1] = 0x00002C71;                 
    	dsi_set_cmdq(data_array, 2, 1);  

    	data_array[0] = 0x00023902;
      data_array[1] = 0x000005FF;         
    	dsi_set_cmdq(data_array, 2, 1);    
    	
    	data_array[0] = 0x00023902; /////////////LTPS 
      data_array[1] = 0x00000001;                   
    	dsi_set_cmdq(data_array, 2, 1);              
    	data_array[0] = 0x00023902;                   
      data_array[1] = 0x00008D02;                   
    	dsi_set_cmdq(data_array, 2, 1);              
    	data_array[0] = 0x00023902;                   
      data_array[1] = 0x00008D03;                   
    	dsi_set_cmdq(data_array, 2, 1);              
    	data_array[0] = 0x00023902;                   
      data_array[1] = 0x00008D04;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00003005;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;//06         
      data_array[1] = 0x00003306;             
    	dsi_set_cmdq(data_array, 2, 1);        
      data_array[0] = 0x00023902;             
      data_array[1] = 0x00007707;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x00000008;        
    	dsi_set_cmdq(data_array, 2, 1);   
    	data_array[0] = 0x00023902;        
      data_array[1] = 0x00000009;        
    	dsi_set_cmdq(data_array, 2, 1);   
    	data_array[0] = 0x00023902;        
      data_array[1] = 0x0000000a;        
    	dsi_set_cmdq(data_array, 2, 1);   
    	data_array[0] = 0x00023902;        
      data_array[1] = 0x0000800b;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;//0C 
      data_array[1] = 0x0000C80c;     
      dsi_set_cmdq(data_array, 2, 1);
      data_array[0] = 0x00023902; //0D
      data_array[1] = 0x0000000D;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00001b0E;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000070F;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00005710;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00000011;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;//12 
      data_array[1] = 0x00000012;     
    	dsi_set_cmdq(data_array, 2, 1);
      data_array[0] = 0x00023902;            
      data_array[1] = 0x00001e13;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x00000014;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x00001A15;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x00000516;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x00000017;             
    	dsi_set_cmdq(data_array, 2, 1);     
    	
    	data_array[0] = 0x00023902;//12 
      data_array[1] = 0x00001E18;     
    	dsi_set_cmdq(data_array, 2, 1);
      data_array[0] = 0x00023902;            
      data_array[1] = 0x0000FF19;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x0000001A;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x0000FC1B;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x0000801C;            
    	dsi_set_cmdq(data_array, 2, 1);       
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x0000001D;             
    	dsi_set_cmdq(data_array, 2, 1);  
    	   
    	data_array[0] = 0x00023902;//18         
      data_array[1] = 0x0000101E;             
			dsi_set_cmdq(data_array, 2, 1);     
			                                     
			data_array[0] = 0x00023902;          
      data_array[1] = 0x0000771F;          
    	dsi_set_cmdq(data_array, 2, 1);     
    	data_array[0] = 0x00023902;                                   
      data_array[1] = 0x00000020;          
    	dsi_set_cmdq(data_array, 2, 1);     
    	data_array[0] = 0x00023902;          
      data_array[1] = 0x00000021;         
    	dsi_set_cmdq(data_array, 2, 1);     
    	data_array[0] = 0x00023902;          
      data_array[1] = 0x00005522;           
    	dsi_set_cmdq(data_array, 2, 1);      
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x00000D23;            
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;//06 
      data_array[1] = 0x0000A031;     
    	dsi_set_cmdq(data_array, 2, 1);
      data_array[0] = 0x00023902;     
      data_array[1] = 0x00000032;     
    	dsi_set_cmdq(&data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000B833;         
    	dsi_set_cmdq(data_array, 2, 1);    
    	data_array[0] = 0x00023902;            
      data_array[1] = 0x0000BB34;            
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x00001135;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x00000136;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;//0C         
      data_array[1] = 0x00000B37;             
      dsi_set_cmdq(data_array, 2, 1);        
      data_array[0] = 0x00023902; //0D        
      data_array[1] = 0x00000138;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x00000B39;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x00000844;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x00008045;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;                
      data_array[1] = 0x0000CC46;                
    	dsi_set_cmdq(data_array, 2, 1);           
    	data_array[0] = 0x00023902;//12            
      data_array[1] = 0x00000447;                
    	dsi_set_cmdq(data_array, 2, 1);           
      data_array[0] = 0x00023902;                          
      data_array[1] = 0x00000048;                          
    	dsi_set_cmdq(data_array, 2, 1);                     
    	data_array[0] = 0x00023902;                          
      data_array[1] = 0x00000049;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x0000014a;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x0000036c;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x0000036D;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;//18                             
      data_array[1] = 0x00002F6E;                                 
			dsi_set_cmdq(data_array, 2, 1); 		
			
    	data_array[0] = 0x00023902; ////
      data_array[1] = 0x00000043;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000234b;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000014c;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;      
      data_array[1] = 0x00002350;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;      
      data_array[1] = 0x00000151;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;//06  
      data_array[1] = 0x00002358;      
    	dsi_set_cmdq(data_array, 2, 1); 
      data_array[0] = 0x00023902;      
      data_array[1] = 0x00000159;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000235D;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000015E;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00002362;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00000163;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;//0C 
      data_array[1] = 0x00002367;       
      dsi_set_cmdq(data_array, 2, 1); 
      data_array[0] = 0x00023902; //0D
      data_array[1] = 0x00000168;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00000089;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000018D;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x0000648E;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;                       
      data_array[1] = 0x0000208F;                       
    	dsi_set_cmdq(data_array, 2, 1);                  
    	data_array[0] = 0x00023902;//12                   
      data_array[1] = 0x00008E97;                       
    	dsi_set_cmdq(data_array, 2, 1);                  
      data_array[0] = 0x00023902;                                 
      data_array[1] = 0x00008C82;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x00000283;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x00000ABB;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x00000ABc;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;                                 
      data_array[1] = 0x00002524;                                 
    	dsi_set_cmdq(data_array, 2, 1);                            
    	data_array[0] = 0x00023902;//18                             
      data_array[1] = 0x00005525;                                 
			dsi_set_cmdq(data_array, 2, 1); 	
			
			data_array[0] = 0x00023902;      
      data_array[1] = 0x00000526;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;      
      data_array[1] = 0x00002327;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;      
      data_array[1] = 0x00000128;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;      
      data_array[1] = 0x00003129;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;      
      data_array[1] = 0x00005D2A;      
    	dsi_set_cmdq(data_array, 2, 1); 
    	data_array[0] = 0x00023902;//06 
      data_array[1] = 0x0000012B;     
    	dsi_set_cmdq(data_array, 2, 1);
      data_array[0] = 0x00023902;     
      data_array[1] = 0x0000002F;     
    	dsi_set_cmdq(data_array, 2, 1);
    	data_array[0] = 0x00023902;     
      data_array[1] = 0x00001030;          
    	dsi_set_cmdq(data_array, 2, 1);     
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x000012A7;             
    	dsi_set_cmdq(data_array, 2, 1);        
    	data_array[0] = 0x00023902;             
      data_array[1] = 0x0000032D;             
    	dsi_set_cmdq(data_array, 2, 1);

    	data_array[0] = 0x00023902;////CMD1 
      data_array[1] = 0x000000FF;                 
    	dsi_set_cmdq(data_array, 2, 1);    
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x000001FB;                 
    	dsi_set_cmdq(data_array, 2, 1);    
    	
    	data_array[0] = 0x00023902;//CMD2,Page0 
      data_array[1] = 0x000001FF;                 
    	dsi_set_cmdq(data_array, 2, 1);       
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x000001FB;                 
    	dsi_set_cmdq(data_array, 2, 1);   
    	
    	data_array[0] = 0x00023902;//CMD2,Page1 
      data_array[1] = 0x000002FF;                 
    	dsi_set_cmdq(data_array, 2, 1);       
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x000001FB;                 
    	dsi_set_cmdq(data_array, 2, 1);       
    	
    	data_array[0] = 0x00023902;//CMD2,Page2 
      data_array[1] = 0x000003FF;                 
    	dsi_set_cmdq(data_array, 2, 1);       
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x000001FB;                 
    	dsi_set_cmdq(data_array, 2, 1);     

    	data_array[0] = 0x00023902;//CMD2,Page3
      data_array[1] = 0x000004FF;         
    	dsi_set_cmdq(data_array, 2, 1);    
    	                                    
    	data_array[0] = 0x00023902;         
      data_array[1] = 0x000001FB;         
    	dsi_set_cmdq(data_array, 2, 1);    
    	
    	data_array[0] = 0x00023902;//CMD2,Page4
      data_array[1] = 0x000005FF;         
    	dsi_set_cmdq(data_array, 2, 1);    
    	                                    
    	data_array[0] = 0x00023902;         
      data_array[1] = 0x000001FB;         
    	dsi_set_cmdq(data_array, 2, 1); 
    	
    	data_array[0] = 0x00023902;     ////CMD1     
      data_array[1] = 0x000000FF;         
    	dsi_set_cmdq(data_array, 2, 1);  

    	data_array[0] = 0x00023902;  
      data_array[1] = 0x0000773A;         
    	dsi_set_cmdq(data_array, 2, 1);  

	   #if 0
    	data_array[0] = 0x00023902;  
        data_array[1] = 0x0000D436;         
    	dsi_set_cmdq(&data_array, 2, 1); 
		#endif
    	
     	data_array[0] = 0x00110500;                
    	dsi_set_cmdq(data_array, 1, 1); 
    	MDELAY(120); 
    	
    	data_array[0] = 0x00290500;                
    	dsi_set_cmdq(data_array, 1, 1);    

		data_array[0] = 0x00023902;////CMD1 
      data_array[1] = 0x000000FF;                 
    	dsi_set_cmdq(data_array, 2, 1);    
    	
    	data_array[0] = 0x00023902;
      data_array[1] = 0x00000035;                 
    	dsi_set_cmdq(data_array, 2, 1); 
     												                            
#endif 

} 
static unsigned int lcm_compare_id(void)
{
#if 0
  	unsigned int ret = 0;

	ret = mt_get_gpio_in(GPIO92);
#if defined(BUILD_LK)
	printf("%s, [jx]hx8394a GPIO92 = %d \n", __func__, ret);
#endif	

	return (ret == 0)?1:0; 
#else
	unsigned int id=0;
	unsigned char buffer[2] = {0,0};
	unsigned int array[16];  

	dct_pmic_VGP2_enable(1);

	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(50);
			
	//SET_RESET_PIN(1);
	mt_set_gpio_out(GPIO112,GPIO_OUT_ONE);
	MDELAY(105); 

	array[0] = 0x00043902;
	array[1] = 0x9483FFB9;// page enable
	dsi_set_cmdq(&array, 2, 1);
	MDELAY(10);

	array[0] = 0x00023902;
	array[1] = 0x000013BA;       	  
	dsi_set_cmdq(array, 2, 1);
	MDELAY(10);

	array[0] = 0x00013700;// return byte number
	dsi_set_cmdq(&array, 1, 1);
	MDELAY(10);

	read_reg_v2(0xF4, buffer, 1);
	id = buffer[0]; 

	#ifdef BUILD_LK
	printf("[LK]---cmd---hx8394_hd720_dsi_vdo_truly----%s------[0x%x]\n",__func__,buffer[0]);
    #else
	printk("[KERNEL]---cmd---hx8394_hd720_dsi_vdo_truly----%s------[0x%x]\n",__func__,buffer[0]);
    #endif	
	if(id==HX8394_LCM_ID)
	{
		int adcdata[4];
		int lcmadc=0;
		IMM_GetOneChannelValue(0,adcdata,&lcmadc);
		lcmadc = lcmadc * 1500/4096; 
		#ifdef BUILD_LK
		printf("[LK]---cmd---hx8394_hd720_dsi_vdo_truly----%s------adc[%d]\n",__func__,lcmadc);
		#else
		printk("[KERNEL]---cmd---hx8394_hd720_dsi_vdo_truly----%s------adc[%d]\n",__func__,lcmadc);
		#endif	
		if(lcmadc < 200)
			return 1;
	}
	return 0;//(id == HX8394_LCM_ID)?1:0;
#endif
}
static void init_lcm_registers(void)
{
    unsigned int data_array[20];
    
    data_array[0] = 0x00110500; //0x29,Display On,1byte
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(150);		
    
		data_array[0]=0x00043902;
    data_array[1]=0x5783FFB9; //Power_Setting (D0h),4bytes
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);
    
    data_array[0]=0x00073902;
    data_array[1]=0x1E1100B1;
    data_array[2]=0x0077C31E;
    dsi_set_cmdq(&data_array, 3, 1);
    MDELAY(1);
    
    data_array[0]=0x00053902;
    data_array[1]=0x004011B4;
    data_array[2]=0x78202A2A;
    dsi_set_cmdq(&data_array, 3, 1);
    MDELAY(1);

    data_array[0]=0x47B61500;//35 2C 42
    dsi_set_cmdq(&data_array,1,1);
    MDELAY(1);

      data_array[0]=0x00033902;
    data_array[1]=0x000F0FE3;
    dsi_set_cmdq(&data_array,2,1);
    MDELAY(1);

    data_array[0]=0x00073902;
    data_array[1]=0x007070C0; //Panel Driving Setting (C0h),6bytes
    data_array[2]=0x0008C43C;
    dsi_set_cmdq(&data_array, 3, 1);
    MDELAY(1);

    data_array[0]=0x00043902;
    data_array[1]=0x040800C2;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);
    
    data_array[0]=0x01CC1500;//0x01CC1500
    dsi_set_cmdq(&data_array,1,1);
    MDELAY(1);

  	data_array[0]=0x00233902;
    data_array[1]=0x120500E0;
    data_array[2]=0x4B402C21;
    data_array[3]=0x3A414752;
    data_array[4]=0x24292E31;
    data_array[5]=0x12050000;
    data_array[6]=0x4B402C21;
    data_array[7]=0x3A414752;
    data_array[8]=0x24292E31;
    data_array[9]=0x00010000;
    dsi_set_cmdq(&data_array, 10, 1);
    MDELAY(1);
    
    data_array[0]=0x00033902;
    data_array[1]=0x000166b0;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);
 
    data_array[0] = 0x40361500; //0x36,set address mode,2bytes
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(10);
       
    data_array[0]=0x00023902;
    data_array[1]=0x00000035;
    dsi_set_cmdq(&data_array, 2, 1);
    MDELAY(1);

    data_array[0] = 0x663A1500; //0x3A,set pixel format,2bytes
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(120);


    data_array[0] = 0x00290500; //0x29,Display On,1byte
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(10);
    
    data_array[0] = 0x002C0500;
    dsi_set_cmdq(&data_array, 1, 1);
    MDELAY(10);
}
static void init_lcm_registers(void)
{
    unsigned int data_array[16];
    //unsigned char buffer[8];

#if 0//ndef BUILD_LK
    data_array[0] = 0x00013700;// read id return two byte,version and id
    dsi_set_cmdq(data_array, 1, 1);
#endif

#if 1
    TC358768_DCS_write_1A_1P(0xFF,0xEE);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0x1F,0x45);
    TC358768_DCS_write_1A_1P(0x24,0x4F);
    TC358768_DCS_write_1A_1P(0x38,0xC8);
    TC358768_DCS_write_1A_1P(0x39,0x2C);
    TC358768_DCS_write_1A_1P(0x1E,0xBB);
    TC358768_DCS_write_1A_1P(0x1D,0x0F);
    TC358768_DCS_write_1A_1P(0x7E,0xB1);
    //
    TC358768_DCS_write_1A_1P(0xFF,0x00);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0x35,0x01);
    //
    TC358768_DCS_write_1A_1P(0xFF,0x01);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0x00,0x01);
    TC358768_DCS_write_1A_1P(0x01,0x55);
    TC358768_DCS_write_1A_1P(0x02,0x40);
    TC358768_DCS_write_1A_1P(0x05,0x00);
    TC358768_DCS_write_1A_1P(0x06,0x1B);
    TC358768_DCS_write_1A_1P(0x07,0x24);
    TC358768_DCS_write_1A_1P(0x08,0x0C);
    TC358768_DCS_write_1A_1P(0x0B,0x87);
    TC358768_DCS_write_1A_1P(0x0C,0x87);
    TC358768_DCS_write_1A_1P(0x0E,0xB0);
    TC358768_DCS_write_1A_1P(0x0F,0xB3);
    TC358768_DCS_write_1A_1P(0x11,0x10);
    TC358768_DCS_write_1A_1P(0x12,0x10);
    TC358768_DCS_write_1A_1P(0x13,0x05);
    TC358768_DCS_write_1A_1P(0x14,0x4A);
    TC358768_DCS_write_1A_1P(0x15,0x18);
    TC358768_DCS_write_1A_1P(0x16,0x18);
    TC358768_DCS_write_1A_1P(0x18,0x00);
    TC358768_DCS_write_1A_1P(0x19,0x77);
    TC358768_DCS_write_1A_1P(0x1A,0x55);
    TC358768_DCS_write_1A_1P(0x1B,0x13);
    TC358768_DCS_write_1A_1P(0x1C,0x00);
    TC358768_DCS_write_1A_1P(0x1D,0x00);
    TC358768_DCS_write_1A_1P(0x1E,0x13);
    TC358768_DCS_write_1A_1P(0x1F,0x00);
    TC358768_DCS_write_1A_1P(0x23,0x00);
    TC358768_DCS_write_1A_1P(0x24,0x00);
    TC358768_DCS_write_1A_1P(0x25,0x00);
    TC358768_DCS_write_1A_1P(0x26,0x00);
    TC358768_DCS_write_1A_1P(0x27,0x00);
    TC358768_DCS_write_1A_1P(0x28,0x00);
    TC358768_DCS_write_1A_1P(0x35,0x00);
    TC358768_DCS_write_1A_1P(0x66,0x00);
    TC358768_DCS_write_1A_1P(0x58,0x82);
    TC358768_DCS_write_1A_1P(0x59,0x02);
    TC358768_DCS_write_1A_1P(0x5A,0x02);
    TC358768_DCS_write_1A_1P(0x5B,0x02);
    TC358768_DCS_write_1A_1P(0x5C,0x82);
    TC358768_DCS_write_1A_1P(0x5D,0x82);
    TC358768_DCS_write_1A_1P(0x5E,0x02);
    TC358768_DCS_write_1A_1P(0x5F,0x02);
    TC358768_DCS_write_1A_1P(0x72,0x31);
    //
    TC358768_DCS_write_1A_1P(0xFF,0x05);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0x00,0x01);
    TC358768_DCS_write_1A_1P(0x01,0x0B);
    TC358768_DCS_write_1A_1P(0x02,0x0C);
    TC358768_DCS_write_1A_1P(0x03,0x09);
    TC358768_DCS_write_1A_1P(0x04,0x0A);
    TC358768_DCS_write_1A_1P(0x05,0x00);
    TC358768_DCS_write_1A_1P(0x06,0x0F);
    TC358768_DCS_write_1A_1P(0x07,0x10);
    TC358768_DCS_write_1A_1P(0x08,0x00);
    TC358768_DCS_write_1A_1P(0x09,0x00);
    TC358768_DCS_write_1A_1P(0x0A,0x00);
    TC358768_DCS_write_1A_1P(0x0B,0x00);
    TC358768_DCS_write_1A_1P(0x0C,0x00);
    TC358768_DCS_write_1A_1P(0x0D,0x13);
    TC358768_DCS_write_1A_1P(0x0E,0x15);
    TC358768_DCS_write_1A_1P(0x0F,0x17);
    TC358768_DCS_write_1A_1P(0x10,0x01);
    TC358768_DCS_write_1A_1P(0x11,0x0B);
    TC358768_DCS_write_1A_1P(0x12,0x0C);
    TC358768_DCS_write_1A_1P(0x13,0x09);
    TC358768_DCS_write_1A_1P(0x14,0x0A);
    TC358768_DCS_write_1A_1P(0x15,0x00);
    TC358768_DCS_write_1A_1P(0x16,0x0F);
    TC358768_DCS_write_1A_1P(0x17,0x10);
    TC358768_DCS_write_1A_1P(0x18,0x00);
    TC358768_DCS_write_1A_1P(0x19,0x00);
    TC358768_DCS_write_1A_1P(0x1A,0x00);
    TC358768_DCS_write_1A_1P(0x1B,0x00);
    TC358768_DCS_write_1A_1P(0x1C,0x00);
    TC358768_DCS_write_1A_1P(0x1D,0x13);
    TC358768_DCS_write_1A_1P(0x1E,0x15);
    TC358768_DCS_write_1A_1P(0x1F,0x17);
    TC358768_DCS_write_1A_1P(0x20,0x00);
    TC358768_DCS_write_1A_1P(0x21,0x03);
    TC358768_DCS_write_1A_1P(0x22,0x01);
    TC358768_DCS_write_1A_1P(0x23,0x40);
    TC358768_DCS_write_1A_1P(0x24,0x40);
    TC358768_DCS_write_1A_1P(0x25,0xED);
    TC358768_DCS_write_1A_1P(0x29,0x58);
    TC358768_DCS_write_1A_1P(0x2A,0x12);
    TC358768_DCS_write_1A_1P(0x2B,0x01);
    TC358768_DCS_write_1A_1P(0x4B,0x06);
    TC358768_DCS_write_1A_1P(0x4C,0x11);
    TC358768_DCS_write_1A_1P(0x4D,0x20);
    TC358768_DCS_write_1A_1P(0x4E,0x02);
    TC358768_DCS_write_1A_1P(0x4F,0x02);
    TC358768_DCS_write_1A_1P(0x50,0x20);
    TC358768_DCS_write_1A_1P(0x51,0x61);
    TC358768_DCS_write_1A_1P(0x52,0x01);
    TC358768_DCS_write_1A_1P(0x53,0x63);
    TC358768_DCS_write_1A_1P(0x54,0x77);
    TC358768_DCS_write_1A_1P(0x55,0xED);
    TC358768_DCS_write_1A_1P(0x5B,0x00);
    TC358768_DCS_write_1A_1P(0x5C,0x00);
    TC358768_DCS_write_1A_1P(0x5D,0x00);
    TC358768_DCS_write_1A_1P(0x5E,0x00);
    TC358768_DCS_write_1A_1P(0x5F,0x15);
    TC358768_DCS_write_1A_1P(0x60,0x75);
    TC358768_DCS_write_1A_1P(0x61,0x00);
    TC358768_DCS_write_1A_1P(0x62,0x00);
    TC358768_DCS_write_1A_1P(0x63,0x00);
    TC358768_DCS_write_1A_1P(0x64,0x00);
    TC358768_DCS_write_1A_1P(0x65,0x00);
    TC358768_DCS_write_1A_1P(0x66,0x00);
    TC358768_DCS_write_1A_1P(0x67,0x00);
    TC358768_DCS_write_1A_1P(0x68,0x04);
    TC358768_DCS_write_1A_1P(0x69,0x00);
    TC358768_DCS_write_1A_1P(0x6A,0x00);
    TC358768_DCS_write_1A_1P(0x6C,0x40);
    TC358768_DCS_write_1A_1P(0x75,0x01);
    TC358768_DCS_write_1A_1P(0x76,0x01);
    TC358768_DCS_write_1A_1P(0x7A,0x80);
    TC358768_DCS_write_1A_1P(0x7B,0xC5);
    TC358768_DCS_write_1A_1P(0x7C,0xD8);
    TC358768_DCS_write_1A_1P(0x7D,0x60);
    TC358768_DCS_write_1A_1P(0x7F,0x10);
    TC358768_DCS_write_1A_1P(0x80,0x81);
    TC358768_DCS_write_1A_1P(0x83,0x05);
    TC358768_DCS_write_1A_1P(0x93,0x08);
    TC358768_DCS_write_1A_1P(0x94,0x10);
    TC358768_DCS_write_1A_1P(0x8A,0x00);
    TC358768_DCS_write_1A_1P(0x9B,0x0F);
    TC358768_DCS_write_1A_1P(0xEA,0xFF);
    TC358768_DCS_write_1A_1P(0xEC,0x00);
    //
    //

    //page selection cmd start
    TC358768_DCS_write_1A_1P(0xFF,0x01);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    //page selection cmd end
    //R(+) MCR cmd
    TC358768_DCS_write_1A_1P(0x75,0x00);
    TC358768_DCS_write_1A_1P(0x76,0x8E);
    TC358768_DCS_write_1A_1P(0x77,0x00);
    TC358768_DCS_write_1A_1P(0x78,0x90);
    TC358768_DCS_write_1A_1P(0x79,0x00);
    TC358768_DCS_write_1A_1P(0x7A,0xB2);
    TC358768_DCS_write_1A_1P(0x7B,0x00);
    TC358768_DCS_write_1A_1P(0x7C,0xC7);
    TC358768_DCS_write_1A_1P(0x7D,0x00);
    TC358768_DCS_write_1A_1P(0x7E,0xD7);
    TC358768_DCS_write_1A_1P(0x7F,0x00);
    TC358768_DCS_write_1A_1P(0x80,0xE9);
    TC358768_DCS_write_1A_1P(0x81,0x00);
    TC358768_DCS_write_1A_1P(0x82,0xF9);
    TC358768_DCS_write_1A_1P(0x83,0x01);
    TC358768_DCS_write_1A_1P(0x84,0x01);
    TC358768_DCS_write_1A_1P(0x85,0x01);
    TC358768_DCS_write_1A_1P(0x86,0x0B);
    TC358768_DCS_write_1A_1P(0x87,0x01);
    TC358768_DCS_write_1A_1P(0x88,0x3A);
    TC358768_DCS_write_1A_1P(0x89,0x01);
    TC358768_DCS_write_1A_1P(0x8A,0x5D);
    TC358768_DCS_write_1A_1P(0x8B,0x01);
    TC358768_DCS_write_1A_1P(0x8C,0x94);
    TC358768_DCS_write_1A_1P(0x8D,0x01);
    TC358768_DCS_write_1A_1P(0x8E,0xBC);
    TC358768_DCS_write_1A_1P(0x8F,0x02);
    TC358768_DCS_write_1A_1P(0x90,0x00);
    TC358768_DCS_write_1A_1P(0x91,0x02);
    TC358768_DCS_write_1A_1P(0x92,0x39);
    TC358768_DCS_write_1A_1P(0x93,0x02);
    TC358768_DCS_write_1A_1P(0x94,0x3A);
    TC358768_DCS_write_1A_1P(0x95,0x02);
    TC358768_DCS_write_1A_1P(0x96,0x6B);
    TC358768_DCS_write_1A_1P(0x97,0x02);
    TC358768_DCS_write_1A_1P(0x98,0xA2);
    TC358768_DCS_write_1A_1P(0x99,0x02);
    TC358768_DCS_write_1A_1P(0x9A,0xC7);
    TC358768_DCS_write_1A_1P(0x9B,0x02);
    TC358768_DCS_write_1A_1P(0x9C,0xFB);
    TC358768_DCS_write_1A_1P(0x9D,0x03);
    TC358768_DCS_write_1A_1P(0x9E,0x20);
    TC358768_DCS_write_1A_1P(0x9F,0x03);
    TC358768_DCS_write_1A_1P(0xA0,0x54);
    TC358768_DCS_write_1A_1P(0xA2,0x03);
    TC358768_DCS_write_1A_1P(0xA3,0x6D);
    TC358768_DCS_write_1A_1P(0xA4,0x03);
    TC358768_DCS_write_1A_1P(0xA5,0x80);
    TC358768_DCS_write_1A_1P(0xA6,0x03);
    TC358768_DCS_write_1A_1P(0xA7,0x81);
    TC358768_DCS_write_1A_1P(0xA9,0x03);
    TC358768_DCS_write_1A_1P(0xAA,0xC7);
    TC358768_DCS_write_1A_1P(0xAB,0x03);
    TC358768_DCS_write_1A_1P(0xAC,0xF0);
    TC358768_DCS_write_1A_1P(0xAD,0x03);
    TC358768_DCS_write_1A_1P(0xAE,0xF8);
    TC358768_DCS_write_1A_1P(0xAF,0x03);
    TC358768_DCS_write_1A_1P(0xB0,0xFD);
    TC358768_DCS_write_1A_1P(0xB1,0x03);
    TC358768_DCS_write_1A_1P(0xB2,0xFE);
    //R(-) MCR cmd
    TC358768_DCS_write_1A_1P(0xB3,0x00);
    TC358768_DCS_write_1A_1P(0xB4,0x8E);
    TC358768_DCS_write_1A_1P(0xB5,0x00);
    TC358768_DCS_write_1A_1P(0xB6,0x90);
    TC358768_DCS_write_1A_1P(0xB7,0x00);
    TC358768_DCS_write_1A_1P(0xB8,0xB2);
    TC358768_DCS_write_1A_1P(0xB9,0x00);
    TC358768_DCS_write_1A_1P(0xBA,0xC7);
    TC358768_DCS_write_1A_1P(0xBB,0x00);
    TC358768_DCS_write_1A_1P(0xBC,0xD7);
    TC358768_DCS_write_1A_1P(0xBD,0x00);
    TC358768_DCS_write_1A_1P(0xBE,0xE9);
    TC358768_DCS_write_1A_1P(0xBF,0x00);
    TC358768_DCS_write_1A_1P(0xC0,0xF9);
    TC358768_DCS_write_1A_1P(0xC1,0x01);
    TC358768_DCS_write_1A_1P(0xC2,0x01);
    TC358768_DCS_write_1A_1P(0xC3,0x01);
    TC358768_DCS_write_1A_1P(0xC4,0x0B);
    TC358768_DCS_write_1A_1P(0xC5,0x01);
    TC358768_DCS_write_1A_1P(0xC6,0x3A);
    TC358768_DCS_write_1A_1P(0xC7,0x01);
    TC358768_DCS_write_1A_1P(0xC8,0x5D);
    TC358768_DCS_write_1A_1P(0xC9,0x01);
    TC358768_DCS_write_1A_1P(0xCA,0x94);
    TC358768_DCS_write_1A_1P(0xCB,0x01);
    TC358768_DCS_write_1A_1P(0xCC,0xBC);
    TC358768_DCS_write_1A_1P(0xCD,0x02);
    TC358768_DCS_write_1A_1P(0xCE,0x00);
    TC358768_DCS_write_1A_1P(0xCF,0x02);
    TC358768_DCS_write_1A_1P(0xD0,0x39);
    TC358768_DCS_write_1A_1P(0xD1,0x02);
    TC358768_DCS_write_1A_1P(0xD2,0x3A);
    TC358768_DCS_write_1A_1P(0xD3,0x02);
    TC358768_DCS_write_1A_1P(0xD4,0x6B);
    TC358768_DCS_write_1A_1P(0xD5,0x02);
    TC358768_DCS_write_1A_1P(0xD6,0xA2);
    TC358768_DCS_write_1A_1P(0xD7,0x02);
    TC358768_DCS_write_1A_1P(0xD8,0xC7);
    TC358768_DCS_write_1A_1P(0xD9,0x02);
    TC358768_DCS_write_1A_1P(0xDA,0xFB);
    TC358768_DCS_write_1A_1P(0xDB,0x03);
    TC358768_DCS_write_1A_1P(0xDC,0x20);
    TC358768_DCS_write_1A_1P(0xDD,0x03);
    TC358768_DCS_write_1A_1P(0xDE,0x54);
    TC358768_DCS_write_1A_1P(0xDF,0x03);
    TC358768_DCS_write_1A_1P(0xE0,0x6D);
    TC358768_DCS_write_1A_1P(0xE1,0x03);
    TC358768_DCS_write_1A_1P(0xE2,0x80);
    TC358768_DCS_write_1A_1P(0xE3,0x03);
    TC358768_DCS_write_1A_1P(0xE4,0x81);
    TC358768_DCS_write_1A_1P(0xE5,0x03);
    TC358768_DCS_write_1A_1P(0xE6,0xC7);
    TC358768_DCS_write_1A_1P(0xE7,0x03);
    TC358768_DCS_write_1A_1P(0xE8,0xF0);
    TC358768_DCS_write_1A_1P(0xE9,0x03);
    TC358768_DCS_write_1A_1P(0xEA,0xF8);
    TC358768_DCS_write_1A_1P(0xEB,0x03);
    TC358768_DCS_write_1A_1P(0xEC,0xFD);
    TC358768_DCS_write_1A_1P(0xED,0x03);
    TC358768_DCS_write_1A_1P(0xEE,0xFE);
    //G(+) MCR cmd
    TC358768_DCS_write_1A_1P(0xEF,0x00);
    TC358768_DCS_write_1A_1P(0xF0,0x03);
    TC358768_DCS_write_1A_1P(0xF1,0x00);
    TC358768_DCS_write_1A_1P(0xF2,0x0B);
    TC358768_DCS_write_1A_1P(0xF3,0x00);
    TC358768_DCS_write_1A_1P(0xF4,0x0D);
    TC358768_DCS_write_1A_1P(0xF5,0x00);
    TC358768_DCS_write_1A_1P(0xF6,0x4A);
    TC358768_DCS_write_1A_1P(0xF7,0x00);
    TC358768_DCS_write_1A_1P(0xF8,0x71);
    TC358768_DCS_write_1A_1P(0xF9,0x00);
    TC358768_DCS_write_1A_1P(0xFA,0x8C);
    //page selection cmd start
    TC358768_DCS_write_1A_1P(0xFF,0x02);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    //page selection cmd end
    TC358768_DCS_write_1A_1P(0x00,0x00);
    TC358768_DCS_write_1A_1P(0x01,0xA1);
    TC358768_DCS_write_1A_1P(0x02,0x00);
    TC358768_DCS_write_1A_1P(0x03,0xB6);
    TC358768_DCS_write_1A_1P(0x04,0x00);
    TC358768_DCS_write_1A_1P(0x05,0xC9);
    TC358768_DCS_write_1A_1P(0x06,0x00);
    TC358768_DCS_write_1A_1P(0x07,0xFD);
    TC358768_DCS_write_1A_1P(0x08,0x01);
    TC358768_DCS_write_1A_1P(0x09,0x29);
    TC358768_DCS_write_1A_1P(0x0A,0x01);
    TC358768_DCS_write_1A_1P(0x0B,0x6B);
    TC358768_DCS_write_1A_1P(0x0C,0x01);
    TC358768_DCS_write_1A_1P(0x0D,0x9E);
    TC358768_DCS_write_1A_1P(0x0E,0x01);
    TC358768_DCS_write_1A_1P(0x0F,0xEB);
    TC358768_DCS_write_1A_1P(0x10,0x02);
    TC358768_DCS_write_1A_1P(0x11,0x25);
    TC358768_DCS_write_1A_1P(0x12,0x02);
    TC358768_DCS_write_1A_1P(0x13,0x27);
    TC358768_DCS_write_1A_1P(0x14,0x02);
    TC358768_DCS_write_1A_1P(0x15,0x5C);
    TC358768_DCS_write_1A_1P(0x16,0x02);
    TC358768_DCS_write_1A_1P(0x17,0x95);
    TC358768_DCS_write_1A_1P(0x18,0x02);
    TC358768_DCS_write_1A_1P(0x19,0xBA);
    TC358768_DCS_write_1A_1P(0x1A,0x02);
    TC358768_DCS_write_1A_1P(0x1B,0xEC);
    TC358768_DCS_write_1A_1P(0x1C,0x03);
    TC358768_DCS_write_1A_1P(0x1D,0x0C);
    TC358768_DCS_write_1A_1P(0x1E,0x03);
    TC358768_DCS_write_1A_1P(0x1F,0x34);
    TC358768_DCS_write_1A_1P(0x20,0x03);
    TC358768_DCS_write_1A_1P(0x21,0x3F);
    TC358768_DCS_write_1A_1P(0x22,0x03);
    TC358768_DCS_write_1A_1P(0x23,0x48);
    TC358768_DCS_write_1A_1P(0x24,0x03);
    TC358768_DCS_write_1A_1P(0x25,0x49);
    TC358768_DCS_write_1A_1P(0x26,0x03);
    TC358768_DCS_write_1A_1P(0x27,0x6B);
    TC358768_DCS_write_1A_1P(0x28,0x03);
    TC358768_DCS_write_1A_1P(0x29,0x7E);
    TC358768_DCS_write_1A_1P(0x2A,0x03);
    TC358768_DCS_write_1A_1P(0x2B,0x8F);
    TC358768_DCS_write_1A_1P(0x2D,0x03);
    TC358768_DCS_write_1A_1P(0x2F,0x9E);
    TC358768_DCS_write_1A_1P(0x30,0x03);
    TC358768_DCS_write_1A_1P(0x31,0xA0);
    //G(-) MCR cmd
    TC358768_DCS_write_1A_1P(0x32,0x00);
    TC358768_DCS_write_1A_1P(0x33,0x03);
    TC358768_DCS_write_1A_1P(0x34,0x00);
    TC358768_DCS_write_1A_1P(0x35,0x0B);
    TC358768_DCS_write_1A_1P(0x36,0x00);
    TC358768_DCS_write_1A_1P(0x37,0x0D);
    TC358768_DCS_write_1A_1P(0x38,0x00);
    TC358768_DCS_write_1A_1P(0x39,0x4A);
    TC358768_DCS_write_1A_1P(0x3A,0x00);
    TC358768_DCS_write_1A_1P(0x3B,0x71);
    TC358768_DCS_write_1A_1P(0x3D,0x00);
    TC358768_DCS_write_1A_1P(0x3F,0x8C);
    TC358768_DCS_write_1A_1P(0x40,0x00);
    TC358768_DCS_write_1A_1P(0x41,0xA1);
    TC358768_DCS_write_1A_1P(0x42,0x00);
    TC358768_DCS_write_1A_1P(0x43,0xB6);
    TC358768_DCS_write_1A_1P(0x44,0x00);
    TC358768_DCS_write_1A_1P(0x45,0xC9);
    TC358768_DCS_write_1A_1P(0x46,0x00);
    TC358768_DCS_write_1A_1P(0x47,0xFD);
    TC358768_DCS_write_1A_1P(0x48,0x01);
    TC358768_DCS_write_1A_1P(0x49,0x29);
    TC358768_DCS_write_1A_1P(0x4A,0x01);
    TC358768_DCS_write_1A_1P(0x4B,0x6B);
    TC358768_DCS_write_1A_1P(0x4C,0x01);
    TC358768_DCS_write_1A_1P(0x4D,0x9E);
    TC358768_DCS_write_1A_1P(0x4E,0x01);
    TC358768_DCS_write_1A_1P(0x4F,0xEB);
    TC358768_DCS_write_1A_1P(0x50,0x02);
    TC358768_DCS_write_1A_1P(0x51,0x25);
    TC358768_DCS_write_1A_1P(0x52,0x02);
    TC358768_DCS_write_1A_1P(0x53,0x27);
    TC358768_DCS_write_1A_1P(0x54,0x02);
    TC358768_DCS_write_1A_1P(0x55,0x5C);
    TC358768_DCS_write_1A_1P(0x56,0x02);
    TC358768_DCS_write_1A_1P(0x58,0x95);
    TC358768_DCS_write_1A_1P(0x59,0x02);
    TC358768_DCS_write_1A_1P(0x5A,0xBA);
    TC358768_DCS_write_1A_1P(0x5B,0x02);
    TC358768_DCS_write_1A_1P(0x5C,0xEC);
    TC358768_DCS_write_1A_1P(0x5D,0x03);
    TC358768_DCS_write_1A_1P(0x5E,0x0C);
    TC358768_DCS_write_1A_1P(0x5F,0x03);
    TC358768_DCS_write_1A_1P(0x60,0x34);
    TC358768_DCS_write_1A_1P(0x61,0x03);
    TC358768_DCS_write_1A_1P(0x62,0x3F);
    TC358768_DCS_write_1A_1P(0x63,0x03);
    TC358768_DCS_write_1A_1P(0x64,0x48);
    TC358768_DCS_write_1A_1P(0x65,0x03);
    TC358768_DCS_write_1A_1P(0x66,0x49);
    TC358768_DCS_write_1A_1P(0x67,0x03);
    TC358768_DCS_write_1A_1P(0x68,0x6B);
    TC358768_DCS_write_1A_1P(0x69,0x03);
    TC358768_DCS_write_1A_1P(0x6A,0x7E);
    TC358768_DCS_write_1A_1P(0x6B,0x03);
    TC358768_DCS_write_1A_1P(0x6C,0x8F);
    TC358768_DCS_write_1A_1P(0x6D,0x03);
    TC358768_DCS_write_1A_1P(0x6E,0x9E);
    TC358768_DCS_write_1A_1P(0x6F,0x03);
    TC358768_DCS_write_1A_1P(0x70,0xA0);
    //B(+) MCR cmd
    TC358768_DCS_write_1A_1P(0x71,0x00);
    TC358768_DCS_write_1A_1P(0x72,0xFB);
    TC358768_DCS_write_1A_1P(0x73,0x00);
    TC358768_DCS_write_1A_1P(0x74,0xFD);
    TC358768_DCS_write_1A_1P(0x75,0x01);
    TC358768_DCS_write_1A_1P(0x76,0x05);
    TC358768_DCS_write_1A_1P(0x77,0x01);
    TC358768_DCS_write_1A_1P(0x78,0x0D);
    TC358768_DCS_write_1A_1P(0x79,0x01);
    TC358768_DCS_write_1A_1P(0x7A,0x17);
    TC358768_DCS_write_1A_1P(0x7B,0x01);
    TC358768_DCS_write_1A_1P(0x7C,0x1F);
    TC358768_DCS_write_1A_1P(0x7D,0x01);
    TC358768_DCS_write_1A_1P(0x7E,0x28);
    TC358768_DCS_write_1A_1P(0x7F,0x01);
    TC358768_DCS_write_1A_1P(0x80,0x32);
    TC358768_DCS_write_1A_1P(0x81,0x01);
    TC358768_DCS_write_1A_1P(0x82,0x38);
    TC358768_DCS_write_1A_1P(0x83,0x01);
    TC358768_DCS_write_1A_1P(0x84,0x53);
    TC358768_DCS_write_1A_1P(0x85,0x01);
    TC358768_DCS_write_1A_1P(0x86,0x72);
    TC358768_DCS_write_1A_1P(0x87,0x01);
    TC358768_DCS_write_1A_1P(0x88,0x9B);
    TC358768_DCS_write_1A_1P(0x89,0x01);
    TC358768_DCS_write_1A_1P(0x8A,0xC3);
    TC358768_DCS_write_1A_1P(0x8B,0x02);
    TC358768_DCS_write_1A_1P(0x8C,0x01);
    TC358768_DCS_write_1A_1P(0x8D,0x02);
    TC358768_DCS_write_1A_1P(0x8E,0x36);
    TC358768_DCS_write_1A_1P(0x8F,0x02);
    TC358768_DCS_write_1A_1P(0x90,0x37);
    TC358768_DCS_write_1A_1P(0x91,0x02);
    TC358768_DCS_write_1A_1P(0x92,0x69);
    TC358768_DCS_write_1A_1P(0x93,0x02);
    TC358768_DCS_write_1A_1P(0x94,0xA1);
    TC358768_DCS_write_1A_1P(0x95,0x02);
    TC358768_DCS_write_1A_1P(0x96,0xC8);
    TC358768_DCS_write_1A_1P(0x97,0x02);
    TC358768_DCS_write_1A_1P(0x98,0xFF);
    TC358768_DCS_write_1A_1P(0x99,0x03);
    TC358768_DCS_write_1A_1P(0x9A,0x26);
    TC358768_DCS_write_1A_1P(0x9B,0x03);
    TC358768_DCS_write_1A_1P(0x9C,0x69);
    TC358768_DCS_write_1A_1P(0x9D,0x03);
    TC358768_DCS_write_1A_1P(0x9E,0x88);
    TC358768_DCS_write_1A_1P(0x9F,0x03);
    TC358768_DCS_write_1A_1P(0xA0,0xF8);
    TC358768_DCS_write_1A_1P(0xA2,0x03);
    TC358768_DCS_write_1A_1P(0xA3,0xF9);
    TC358768_DCS_write_1A_1P(0xA4,0x03);
    TC358768_DCS_write_1A_1P(0xA5,0xFE);
    TC358768_DCS_write_1A_1P(0xA6,0x03);
    TC358768_DCS_write_1A_1P(0xA7,0xFE);
    TC358768_DCS_write_1A_1P(0xA9,0x03);
    TC358768_DCS_write_1A_1P(0xAA,0xFE);
    TC358768_DCS_write_1A_1P(0xAB,0x03);
    TC358768_DCS_write_1A_1P(0xAC,0xFE);
    TC358768_DCS_write_1A_1P(0xAD,0x03);
    TC358768_DCS_write_1A_1P(0xAE,0xFE);
    //B(-) MCR cmd
    TC358768_DCS_write_1A_1P(0xAF,0x00);
    TC358768_DCS_write_1A_1P(0xB0,0xFB);
    TC358768_DCS_write_1A_1P(0xB1,0x00);
    TC358768_DCS_write_1A_1P(0xB2,0xFD);
    TC358768_DCS_write_1A_1P(0xB3,0x01);
    TC358768_DCS_write_1A_1P(0xB4,0x05);
    TC358768_DCS_write_1A_1P(0xB5,0x01);
    TC358768_DCS_write_1A_1P(0xB6,0x0D);
    TC358768_DCS_write_1A_1P(0xB7,0x01);
    TC358768_DCS_write_1A_1P(0xB8,0x17);
    TC358768_DCS_write_1A_1P(0xB9,0x01);
    TC358768_DCS_write_1A_1P(0xBA,0x1F);
    TC358768_DCS_write_1A_1P(0xBB,0x01);
    TC358768_DCS_write_1A_1P(0xBC,0x28);
    TC358768_DCS_write_1A_1P(0xBD,0x01);
    TC358768_DCS_write_1A_1P(0xBE,0x32);
    TC358768_DCS_write_1A_1P(0xBF,0x01);
    TC358768_DCS_write_1A_1P(0xC0,0x38);
    TC358768_DCS_write_1A_1P(0xC1,0x01);
    TC358768_DCS_write_1A_1P(0xC2,0x53);
    TC358768_DCS_write_1A_1P(0xC3,0x01);
    TC358768_DCS_write_1A_1P(0xC4,0x72);
    TC358768_DCS_write_1A_1P(0xC5,0x01);
    TC358768_DCS_write_1A_1P(0xC6,0x9B);
    TC358768_DCS_write_1A_1P(0xC7,0x01);
    TC358768_DCS_write_1A_1P(0xC8,0xC3);
    TC358768_DCS_write_1A_1P(0xC9,0x02);
    TC358768_DCS_write_1A_1P(0xCA,0x01);
    TC358768_DCS_write_1A_1P(0xCB,0x02);
    TC358768_DCS_write_1A_1P(0xCC,0x36);
    TC358768_DCS_write_1A_1P(0xCD,0x02);
    TC358768_DCS_write_1A_1P(0xCE,0x37);
    TC358768_DCS_write_1A_1P(0xCF,0x02);
    TC358768_DCS_write_1A_1P(0xD0,0x69);
    TC358768_DCS_write_1A_1P(0xD1,0x02);
    TC358768_DCS_write_1A_1P(0xD2,0xA1);
    TC358768_DCS_write_1A_1P(0xD3,0x02);
    TC358768_DCS_write_1A_1P(0xD4,0xC8);
    TC358768_DCS_write_1A_1P(0xD5,0x02);
    TC358768_DCS_write_1A_1P(0xD6,0xFF);
    TC358768_DCS_write_1A_1P(0xD7,0x03);
    TC358768_DCS_write_1A_1P(0xD8,0x26);
    TC358768_DCS_write_1A_1P(0xD9,0x03);
    TC358768_DCS_write_1A_1P(0xDA,0x69);
    TC358768_DCS_write_1A_1P(0xDB,0x03);
    TC358768_DCS_write_1A_1P(0xDC,0x88);
    TC358768_DCS_write_1A_1P(0xDD,0x03);
    TC358768_DCS_write_1A_1P(0xDE,0xF8);
    TC358768_DCS_write_1A_1P(0xDF,0x03);
    TC358768_DCS_write_1A_1P(0xE0,0xF9);
    TC358768_DCS_write_1A_1P(0xE1,0x03);
    TC358768_DCS_write_1A_1P(0xE2,0xFE);
    TC358768_DCS_write_1A_1P(0xE3,0x03);
    TC358768_DCS_write_1A_1P(0xE4,0xFE);
    TC358768_DCS_write_1A_1P(0xE5,0x03);
    TC358768_DCS_write_1A_1P(0xE6,0xFE);
    TC358768_DCS_write_1A_1P(0xE7,0x03);
    TC358768_DCS_write_1A_1P(0xE8,0xFE);
    TC358768_DCS_write_1A_1P(0xE9,0x03);
    TC358768_DCS_write_1A_1P(0xEA,0xFE);

    //
    //
    TC358768_DCS_write_1A_1P(0xFF,0x01);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0xFF,0x02);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0xFF,0x04);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0xFF,0x00);

    TC358768_DCS_write_1A_1P(0xD3,0x14);
    TC358768_DCS_write_1A_1P(0xD4,0x14);

    TC358768_DCS_write_1A_0P(0x11);
    //Delayus(150000);
    MDELAY(150);
    //
    TC358768_DCS_write_1A_1P(0xFF,0x00);
    //TC358768_DCS_write_1A_1P(0x34,0x00);
    TC358768_DCS_write_1A_1P(0x35,0x00);
    TC358768_DCS_write_1A_0P(0x29);
#else

    TC358768_DCS_write_1A_1P(0xFF,0x01);

    TC358768_DCS_write_1A_1P(0x00,0x01);
    TC358768_DCS_write_1A_1P(0x01,0x55);
    TC358768_DCS_write_1A_1P(0x02,0x40);
    TC358768_DCS_write_1A_1P(0x05,0x40);
    TC358768_DCS_write_1A_1P(0x06,0x19);
    TC358768_DCS_write_1A_1P(0x07,0x1E);
    TC358768_DCS_write_1A_1P(0x08,0x0C);
    TC358768_DCS_write_1A_1P(0x0B,0x87);
    TC358768_DCS_write_1A_1P(0x0C,0x87);
    TC358768_DCS_write_1A_1P(0x0E,0xAE);
    TC358768_DCS_write_1A_1P(0x0F,0xAC);
    TC358768_DCS_write_1A_1P(0x10,0x32);
    TC358768_DCS_write_1A_1P(0x11,0xEA);
    TC358768_DCS_write_1A_1P(0x12,0xEA);
    TC358768_DCS_write_1A_1P(0x13,0x00);
    TC358768_DCS_write_1A_1P(0x14,0x4A);
    TC358768_DCS_write_1A_1P(0x15,0x18);
    TC358768_DCS_write_1A_1P(0x16,0x18);
    TC358768_DCS_write_1A_1P(0x18,0x00);
    TC358768_DCS_write_1A_1P(0x19,0x77);
    TC358768_DCS_write_1A_1P(0x1A,0x55);
    TC358768_DCS_write_1A_1P(0x1B,0x13);
    TC358768_DCS_write_1A_1P(0x1D,0x00);
    TC358768_DCS_write_1A_1P(0x1E,0x13);
    TC358768_DCS_write_1A_1P(0x1F,0x00);
    TC358768_DCS_write_1A_1P(0x23,0x00);
    TC358768_DCS_write_1A_1P(0x24,0x00);
    TC358768_DCS_write_1A_1P(0x25,0x00);
    TC358768_DCS_write_1A_1P(0x26,0x00);
    TC358768_DCS_write_1A_1P(0x27,0x00);
    TC358768_DCS_write_1A_1P(0x28,0x00);
    TC358768_DCS_write_1A_1P(0x35,0x00);
    TC358768_DCS_write_1A_1P(0x66,0x00);
    TC358768_DCS_write_1A_1P(0x58,0x82);
    TC358768_DCS_write_1A_1P(0x59,0x02);
    TC358768_DCS_write_1A_1P(0x5A,0x02);
    TC358768_DCS_write_1A_1P(0x5B,0x02);
    TC358768_DCS_write_1A_1P(0x5C,0x82);
    TC358768_DCS_write_1A_1P(0x5D,0x82);
    TC358768_DCS_write_1A_1P(0x5E,0x02);
    TC358768_DCS_write_1A_1P(0x5F,0x02);
    TC358768_DCS_write_1A_1P(0x72,0x31);
    TC358768_DCS_write_1A_1P(0xFB,0x01);

    TC358768_DCS_write_1A_1P(0xFF,0x05);
    TC358768_DCS_write_1A_1P(0x00,0x01);
    TC358768_DCS_write_1A_1P(0x01,0x0B);
    TC358768_DCS_write_1A_1P(0x02,0x0C);
    TC358768_DCS_write_1A_1P(0x03,0x09);
    TC358768_DCS_write_1A_1P(0x04,0x0A);
    TC358768_DCS_write_1A_1P(0x05,0x00);
    TC358768_DCS_write_1A_1P(0x06,0x0F);
    TC358768_DCS_write_1A_1P(0x07,0x10);
    TC358768_DCS_write_1A_1P(0x08,0x00);
    TC358768_DCS_write_1A_1P(0x09,0x00);
    TC358768_DCS_write_1A_1P(0x0A,0x00);
    TC358768_DCS_write_1A_1P(0x0B,0x00);
    TC358768_DCS_write_1A_1P(0x0C,0x00);
    TC358768_DCS_write_1A_1P(0x0D,0x13);
    TC358768_DCS_write_1A_1P(0x0E,0x15);
    TC358768_DCS_write_1A_1P(0x0F,0x17);
    TC358768_DCS_write_1A_1P(0x10,0x01);
    TC358768_DCS_write_1A_1P(0x11,0x0B);
    TC358768_DCS_write_1A_1P(0x12,0x0C);
    TC358768_DCS_write_1A_1P(0x13,0x09);
    TC358768_DCS_write_1A_1P(0x14,0x0A);
    TC358768_DCS_write_1A_1P(0x15,0x00);
    TC358768_DCS_write_1A_1P(0x16,0x0F);
    TC358768_DCS_write_1A_1P(0x17,0x10);
    TC358768_DCS_write_1A_1P(0x18,0x00);
    TC358768_DCS_write_1A_1P(0x19,0x00);
    TC358768_DCS_write_1A_1P(0x1A,0x00);
    TC358768_DCS_write_1A_1P(0x1B,0x00);
    TC358768_DCS_write_1A_1P(0x1C,0x00);
    TC358768_DCS_write_1A_1P(0x1D,0x13);
    TC358768_DCS_write_1A_1P(0x1E,0x15);
    TC358768_DCS_write_1A_1P(0x1F,0x17);
    TC358768_DCS_write_1A_1P(0x20,0x00);
    TC358768_DCS_write_1A_1P(0x21,0x03);
    TC358768_DCS_write_1A_1P(0x22,0x01);
    TC358768_DCS_write_1A_1P(0x23,0x40);
    TC358768_DCS_write_1A_1P(0x24,0x40);
    TC358768_DCS_write_1A_1P(0x25,0xED);
    TC358768_DCS_write_1A_1P(0x29,0x58);
    TC358768_DCS_write_1A_1P(0x2A,0x12);
    TC358768_DCS_write_1A_1P(0x2B,0x01);
    TC358768_DCS_write_1A_1P(0x4B,0x06);
    TC358768_DCS_write_1A_1P(0x4C,0x11);
    TC358768_DCS_write_1A_1P(0x4D,0x20);
    TC358768_DCS_write_1A_1P(0x4E,0x02);
    TC358768_DCS_write_1A_1P(0x4F,0x02);
    TC358768_DCS_write_1A_1P(0x50,0x20);
    TC358768_DCS_write_1A_1P(0x51,0x61);
    TC358768_DCS_write_1A_1P(0x52,0x01);
    TC358768_DCS_write_1A_1P(0x53,0x63);
    TC358768_DCS_write_1A_1P(0x54,0x77);
    TC358768_DCS_write_1A_1P(0x55,0xED);
    TC358768_DCS_write_1A_1P(0x5B,0x00);
    TC358768_DCS_write_1A_1P(0x5C,0x00);
    TC358768_DCS_write_1A_1P(0x5D,0x00);
    TC358768_DCS_write_1A_1P(0x5E,0x00);
    TC358768_DCS_write_1A_1P(0x5F,0x15);
    TC358768_DCS_write_1A_1P(0x60,0x75);
    TC358768_DCS_write_1A_1P(0x61,0x00);
    TC358768_DCS_write_1A_1P(0x62,0x00);
    TC358768_DCS_write_1A_1P(0x63,0x00);
    TC358768_DCS_write_1A_1P(0x64,0x00);
    TC358768_DCS_write_1A_1P(0x65,0x00);
    TC358768_DCS_write_1A_1P(0x66,0x00);
    TC358768_DCS_write_1A_1P(0x67,0x00);
    TC358768_DCS_write_1A_1P(0x68,0x04);
    TC358768_DCS_write_1A_1P(0x69,0x00);
    TC358768_DCS_write_1A_1P(0x6A,0x00);
    TC358768_DCS_write_1A_1P(0x6C,0x40);
    TC358768_DCS_write_1A_1P(0x75,0x01);
    TC358768_DCS_write_1A_1P(0x76,0x01);
    TC358768_DCS_write_1A_1P(0x7A,0x80);
    TC358768_DCS_write_1A_1P(0x7B,0xC5);
    TC358768_DCS_write_1A_1P(0x7C,0xD8);
    TC358768_DCS_write_1A_1P(0x7D,0x60);
    TC358768_DCS_write_1A_1P(0x7F,0x10);
    TC358768_DCS_write_1A_1P(0x80,0x81);
    TC358768_DCS_write_1A_1P(0x83,0x05);
    TC358768_DCS_write_1A_1P(0x8A,0x00);
    TC358768_DCS_write_1A_1P(0x9B,0x0F);
    TC358768_DCS_write_1A_1P(0xFB,0x01);
    TC358768_DCS_write_1A_1P(0xEA,0xFF);
    TC358768_DCS_write_1A_1P(0xEC,0x00);

    TC358768_DCS_write_1A_1P(0xFF,0xEE);
    TC358768_DCS_write_1A_1P(0x46,0x63);
    TC358768_DCS_write_1A_1P(0xFB,0x01);

    TC358768_DCS_write_1A_1P(0xFF,0x00);
    TC358768_DCS_write_1A_1P(0x35,0x00);
    TC358768_DCS_write_1A_1P(0xD3,0x14);
    TC358768_DCS_write_1A_1P(0xD4,0x14);

    TC358768_DCS_write_1A_0P(0x11);
    MDELAY(150);
    TC358768_DCS_write_1A_0P(0x29);

#endif

#if 0//ndef BUILD_LK
    read_reg_v2(0xDA, &buffer[0], 1);
    read_reg_v2(0xDB, &buffer[1], 1);
    read_reg_v2(0xDC, &buffer[2], 1);

    read_reg_v2(0xF4, &buffer[3], 1);

    printk("%s, ID = (0x%02x, 0x%02x, 0x%02x, 0x%02x)\n", __func__, buffer[0], buffer[1], buffer[2], buffer[3]);
#endif

}
static unsigned int lcm_compare_id(void)
{
	unsigned int id=0;
	unsigned char buffer[5];
	unsigned int array[16];  
	int i;
    #ifdef BUILD_LK
		printf("%s\n", __func__);
    #else
		printk("%s\n", __func__);
    #endif
    
	lcm_util.set_gpio_mode(LCD_LDO_ENP_GPIO_PIN, GPIO_MODE_00);
	lcm_util.set_gpio_dir(LCD_LDO_ENP_GPIO_PIN, GPIO_DIR_OUT); 
	lcm_util.set_gpio_pull_enable(LCD_LDO_ENP_GPIO_PIN, GPIO_PULL_DISABLE); 

	lcm_util.set_gpio_mode(LCD_LDO_ENN_GPIO_PIN, GPIO_MODE_00);
	lcm_util.set_gpio_dir(LCD_LDO_ENN_GPIO_PIN, GPIO_DIR_OUT); 
	lcm_util.set_gpio_pull_enable(LCD_LDO_ENN_GPIO_PIN, GPIO_PULL_DISABLE); 

	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);//power on +5
	MDELAY(10);
	SET_GPIO_OUT(LCD_LDO_ENN_GPIO_PIN , 1);//power on -5
	MDELAY(100);

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


    for(i=0;i<10;i++)
    {
	    array[0] = 0x00053700;// read id return two byte,version and id
    	dsi_set_cmdq(array, 1, 1);
	
	    read_reg_v2(0xBF, buffer, 5);
	    MDELAY(20);
	    lcd_id = (buffer[2] << 8 )| buffer[3];
	    if (lcd_id == 0x3111)
	        break;
	}
	
    #ifdef BUILD_LK
		printf("%s, LK r63311_jdi_diabloX debug: r63311_jdi_diabloX id = 0x%08x\n", __func__, id);
    #else
		printk("%s, kernel r63311_jdi_diabloX horse debug: r63311_jdi_diabloX id = 0x%08x\n", __func__, id);
    #endif

    if(lcd_id == 0x3311)
    	return 1;
    else
        return 0;


}
示例#23
0
static void init_lcm_registers(void)
{
	unsigned int data_array[16];
	
		data_array[0]=0x00023902;
		data_array[1]=0x00000035;//open TE,only v output
		dsi_set_cmdq(&data_array, 2, 1);
		MDELAY(10);
	
		data_array[0]=0x00063902;
		data_array[1]=0x52aa55f0;//enable manufacture command ,select page 1
		data_array[2]=0x00000108;
		dsi_set_cmdq(&data_array, 3, 1);
		MDELAY(10);

		data_array[0]=0x00353902;
		data_array[1]=0x000000d1;
		data_array[2]=0x00420016;
		data_array[3]=0x00740061;
		data_array[4]=0x00ad0097;
		data_array[5]=0x010001de;
		data_array[6]=0x01500126;
		data_array[7]=0x01b30187;
		data_array[8]=0x02d901b9;
		data_array[9]=0x02210205;
		data_array[10]=0x02640246;
		data_array[11]=0x03c20296;		
		data_array[12]=0x032e0304;
		data_array[13]=0x03eb0374;
		data_array[14]=0x000000ff;
		dsi_set_cmdq(&data_array,15, 1);
		MDELAY(20);
		
		data_array[0]=0x00353902;
		data_array[1]=0x000000d2;
		data_array[2]=0x00420016;
		data_array[3]=0x00740061;
		data_array[4]=0x00ad0097;
		data_array[5]=0x010001de;
		data_array[6]=0x01500126;
		data_array[7]=0x01b30187;
		data_array[8]=0x02d901b6;
		data_array[9]=0x02210205;
		data_array[10]=0x02640246;
		data_array[11]=0x03c20296;		
		data_array[12]=0x032e0304;
		data_array[13]=0x03eb0374;
		data_array[14]=0x000000ff;
		dsi_set_cmdq(&data_array,15, 1);
		MDELAY(20);

		data_array[0]=0x00353902;
		data_array[1]=0x000000d3;
		data_array[2]=0x00420016;
		data_array[3]=0x00740061;
		data_array[4]=0x00ad0097;
		data_array[5]=0x010001de;
		data_array[6]=0x01500126;
		data_array[7]=0x01b30187;
		data_array[8]=0x02d901b6;
		data_array[9]=0x02210205;
		data_array[10]=0x02640246;
		data_array[11]=0x03c20296;		
		data_array[12]=0x032e0304;
		data_array[13]=0x03eb0374;
		data_array[14]=0x000000ff;
		dsi_set_cmdq(&data_array,15, 1);
		MDELAY(20);

		data_array[0]=0x00353902;
		data_array[1]=0x000000d4;
		data_array[2]=0x00420016;
		data_array[3]=0x00740061;
		data_array[4]=0x00ad0097;
		data_array[5]=0x010001de;
		data_array[6]=0x01500126;
		data_array[7]=0x01b30187;
		data_array[8]=0x02d901b6;
		data_array[9]=0x02210205;
		data_array[10]=0x02640246;
		data_array[11]=0x03c20296;		
		data_array[12]=0x032e0304;
		data_array[13]=0x03eb0374;
		data_array[14]=0x000000ff;
		dsi_set_cmdq(&data_array,15, 1);
		MDELAY(20);

		data_array[0]=0x00353902;
		data_array[1]=0x000000d5;
		data_array[2]=0x00420016;
		data_array[3]=0x00740061;
		data_array[4]=0x00ad0097;
		data_array[5]=0x010001de;
		data_array[6]=0x01500126;
		data_array[7]=0x01b30187;
		data_array[8]=0x02d901b6;
		data_array[9]=0x02210205;
		data_array[10]=0x02640246;
		data_array[11]=0x03c20296;		
		data_array[12]=0x032e0304;
		data_array[13]=0x03eb0374;
		data_array[14]=0x000000ff;
		dsi_set_cmdq(&data_array,15, 1);
		MDELAY(20);


		data_array[0]=0x00353902;
		data_array[1]=0x000000d6;
		data_array[2]=0x00420016;
		data_array[3]=0x00740061;
		data_array[4]=0x00ad0097;
		data_array[5]=0x010001de;
		data_array[6]=0x01500126;
		data_array[7]=0x01b30187;
		data_array[8]=0x02d901b6;
		data_array[9]=0x02210205;
		data_array[10]=0x02640246;
		data_array[11]=0x03c20296;		
		data_array[12]=0x032e0304;
		data_array[13]=0x03eb0374;
		data_array[14]=0x000000ff;
		dsi_set_cmdq(&data_array,15, 1);
		MDELAY(20);
	
		data_array[0]=0x00043902;
		data_array[1]=0x242424b9;//timing for circuit 4
		dsi_set_cmdq(&data_array, 2, 1);
		MDELAY(10);
	
		data_array[0]=0x00043902;
		data_array[1]=0x242424ba;//timing for circuit 5
		dsi_set_cmdq(&data_array, 2, 1);
		MDELAY(10);
	
		data_array[0]=0x00043902;
		data_array[1]=0x018800bc;//set output voltage of gamma divider P
		dsi_set_cmdq(&data_array, 2, 1);
		MDELAY(10);
	
		data_array[0]=0x00043902;
		data_array[1]=0x018800bd;//set output voltage of gamma divider N
		dsi_set_cmdq(&data_array, 2, 1);
		MDELAY(10);
	
		data_array[0]=0x00033902;
		data_array[1]=0x007800be;//adjust the DC VCOM offset voltage
		dsi_set_cmdq(&data_array, 2, 1);
		MDELAY(10);
	
		data_array[0]=0x00063902;
		data_array[1]=0x52aa55f0;//enable manufacture command ,select page 0
		data_array[2]=0x00000008;
		dsi_set_cmdq(&data_array, 3, 1);
		MDELAY(10);
	
		data_array[0]=0x00033902;
		data_array[1]=0x0000efb1;//VIDEO MODE off ; TE on; RGB order,content keep in sleep in
		dsi_set_cmdq(&data_array,2, 1);
		MDELAY(10);
		
		data_array[0]=0x00043902;
		data_array[1]=0x050505bc;//setting of inversion mode
		dsi_set_cmdq(&data_array,2, 1);
		MDELAY(10);
	
		//data_array[0]=0x00110500;
		//dsi_set_cmdq(&data_array,1, 1);
		//MDELAY(200);
	
		data_array[0]=0x00053902;
		data_array[1]=0x0100002a;
		data_array[2]=0x000000df;//column range set
		dsi_set_cmdq(&data_array,3, 1);
		MDELAY(200);
	
		data_array[0]=0x00053902;
		data_array[1]=0x0300002B;
		data_array[2]=0x00000055;//ROW range set
		dsi_set_cmdq(&data_array,3, 1);
		MDELAY(200);

	    //cabc begin
		data_array[0]=0x00023902;
		data_array[1]=0x0000ff51;
		dsi_set_cmdq(&data_array,2, 1);
		MDELAY(10);

		data_array[0]=0x00023902;
		data_array[1]=0x00002c53;
		dsi_set_cmdq(&data_array,2, 1);
		MDELAY(10);
		
		data_array[0]=0x00023902;
		data_array[1]=0x00000255;
		dsi_set_cmdq(&data_array,2, 1);
		MDELAY(10);
        //cabc end

}
示例#24
0
static void init_lcm_registers(void)
{
	unsigned int data_array[5];

	nt35590_DCS_write_1A_1P(0xFF, 0x00);
	nt35590_DCS_write_1A_1P(0xBA, 0x03);	// 02 for 3 lane; 01 for 2 lane
#if (LCM_DSI_CMD_MODE)
	nt35590_DCS_write_1A_1P(0xC2, 0x08);	//03 vido
#else
	nt35590_DCS_write_1A_1P(0xC2, 0x03);	//03 vido
#endif
	nt35590_DCS_write_1A_1P(0xFF, 0x01);
	nt35590_DCS_write_1A_1P(0x00, 0x3A);
	nt35590_DCS_write_1A_1P(0x01, 0x33);
	nt35590_DCS_write_1A_1P(0x02, 0x53);
	nt35590_DCS_write_1A_1P(0x09, 0x85);
	nt35590_DCS_write_1A_1P(0x0E, 0x25);
	nt35590_DCS_write_1A_1P(0x0F, 0x0A);
	nt35590_DCS_write_1A_1P(0x0B, 0x97);
	nt35590_DCS_write_1A_1P(0x0C, 0x97);
	nt35590_DCS_write_1A_1P(0x11, 0x8C);
	nt35590_DCS_write_1A_1P(0x36, 0x7B);
	nt35590_DCS_write_1A_1P(0x71, 0x2C);
	nt35590_DCS_write_1A_1P(0xFF, 0x05);
	nt35590_DCS_write_1A_1P(0x01, 0x00);
	nt35590_DCS_write_1A_1P(0x02, 0x8D);
	nt35590_DCS_write_1A_1P(0x03, 0x8D);
	nt35590_DCS_write_1A_1P(0x04, 0x8D);
	nt35590_DCS_write_1A_1P(0x05, 0x30);
	nt35590_DCS_write_1A_1P(0x06, 0x33);
	nt35590_DCS_write_1A_1P(0x07, 0x77);
	nt35590_DCS_write_1A_1P(0x08, 0x00);
	nt35590_DCS_write_1A_1P(0x09, 0x00);
	nt35590_DCS_write_1A_1P(0x0A, 0x00);
	nt35590_DCS_write_1A_1P(0x0B, 0x80);
	nt35590_DCS_write_1A_1P(0x0C, 0xC8);
	nt35590_DCS_write_1A_1P(0x0D, 0x00);
	nt35590_DCS_write_1A_1P(0x0E, 0x1B);
	nt35590_DCS_write_1A_1P(0x0F, 0x07);
	nt35590_DCS_write_1A_1P(0x10, 0x57);
	nt35590_DCS_write_1A_1P(0x11, 0x00);
	nt35590_DCS_write_1A_1P(0x12, 0x00);
	nt35590_DCS_write_1A_1P(0x13, 0x1E);
	nt35590_DCS_write_1A_1P(0x14, 0x00);
	nt35590_DCS_write_1A_1P(0x15, 0x1A);
	nt35590_DCS_write_1A_1P(0x16, 0x05);
	nt35590_DCS_write_1A_1P(0x17, 0x00);
	nt35590_DCS_write_1A_1P(0x18, 0x1E);
	nt35590_DCS_write_1A_1P(0x19, 0xFF);
	nt35590_DCS_write_1A_1P(0x1A, 0x00);
	nt35590_DCS_write_1A_1P(0x1B, 0xFC);
	nt35590_DCS_write_1A_1P(0x1C, 0x80);
	nt35590_DCS_write_1A_1P(0x1D, 0x00);
	nt35590_DCS_write_1A_1P(0x1E, 0x10);
	nt35590_DCS_write_1A_1P(0x1F, 0x77);
	nt35590_DCS_write_1A_1P(0x20, 0x00);
	nt35590_DCS_write_1A_1P(0x21, 0x02);
	nt35590_DCS_write_1A_1P(0x22, 0x55);
	nt35590_DCS_write_1A_1P(0x23, 0x0D);
	nt35590_DCS_write_1A_1P(0x31, 0xA0);
	nt35590_DCS_write_1A_1P(0x32, 0x00);
	nt35590_DCS_write_1A_1P(0x33, 0xB8);
	nt35590_DCS_write_1A_1P(0x34, 0xBB);
	nt35590_DCS_write_1A_1P(0x35, 0x11);
	nt35590_DCS_write_1A_1P(0x36, 0x01);
	nt35590_DCS_write_1A_1P(0x37, 0x0B);
	nt35590_DCS_write_1A_1P(0x38, 0x01);
	nt35590_DCS_write_1A_1P(0x39, 0x0B);
	nt35590_DCS_write_1A_1P(0x44, 0x08);
	nt35590_DCS_write_1A_1P(0x45, 0x80);
	nt35590_DCS_write_1A_1P(0x46, 0xCC);
	nt35590_DCS_write_1A_1P(0x47, 0x04);
	nt35590_DCS_write_1A_1P(0x48, 0x00);
	nt35590_DCS_write_1A_1P(0x49, 0x00);
	nt35590_DCS_write_1A_1P(0x4A, 0x01);
	nt35590_DCS_write_1A_1P(0x6C, 0x03);
	nt35590_DCS_write_1A_1P(0x6D, 0x03);
	nt35590_DCS_write_1A_1P(0x6E, 0x2F);
	nt35590_DCS_write_1A_1P(0x43, 0x00);
	nt35590_DCS_write_1A_1P(0x4B, 0x23);
	nt35590_DCS_write_1A_1P(0x4C, 0x01);
	nt35590_DCS_write_1A_1P(0x50, 0x23);
	nt35590_DCS_write_1A_1P(0x51, 0x01);
	nt35590_DCS_write_1A_1P(0x58, 0x23);
	nt35590_DCS_write_1A_1P(0x59, 0x01);
	nt35590_DCS_write_1A_1P(0x5D, 0x23);
	nt35590_DCS_write_1A_1P(0x5E, 0x01);
	nt35590_DCS_write_1A_1P(0x62, 0x23);
	nt35590_DCS_write_1A_1P(0x63, 0x01);
	nt35590_DCS_write_1A_1P(0x67, 0x23);
	nt35590_DCS_write_1A_1P(0x68, 0x01);
	nt35590_DCS_write_1A_1P(0x89, 0x00);
	nt35590_DCS_write_1A_1P(0x8D, 0x01);
	nt35590_DCS_write_1A_1P(0x8E, 0x64);
	nt35590_DCS_write_1A_1P(0x8F, 0x20);
	nt35590_DCS_write_1A_1P(0x97, 0x8E);
	nt35590_DCS_write_1A_1P(0x82, 0x8C);
	nt35590_DCS_write_1A_1P(0x83, 0x02);
	nt35590_DCS_write_1A_1P(0xBB, 0x0A);
	nt35590_DCS_write_1A_1P(0xBC, 0x0A);
	nt35590_DCS_write_1A_1P(0x24, 0x25);
	nt35590_DCS_write_1A_1P(0x25, 0x55);
	nt35590_DCS_write_1A_1P(0x26, 0x05);
	nt35590_DCS_write_1A_1P(0x27, 0x23);
	nt35590_DCS_write_1A_1P(0x28, 0x01);
	nt35590_DCS_write_1A_1P(0x29, 0x31);
	nt35590_DCS_write_1A_1P(0x2A, 0x5D);
	nt35590_DCS_write_1A_1P(0x2B, 0x01);
	nt35590_DCS_write_1A_1P(0x2F, 0x00);
	nt35590_DCS_write_1A_1P(0x30, 0x10);
	nt35590_DCS_write_1A_1P(0xA7, 0x12);
	nt35590_DCS_write_1A_1P(0x2D, 0x03);
	nt35590_DCS_write_1A_1P(0xFF, 0x01);
	nt35590_DCS_write_1A_1P(0x75, 0x0);
	nt35590_DCS_write_1A_1P(0x76, 0x42);
	nt35590_DCS_write_1A_1P(0x77, 0x0);
	nt35590_DCS_write_1A_1P(0x78, 0x56);
	nt35590_DCS_write_1A_1P(0x79, 0x0);
	nt35590_DCS_write_1A_1P(0x7A, 0x79);
	nt35590_DCS_write_1A_1P(0x7B, 0x0);
	nt35590_DCS_write_1A_1P(0x7C, 0x97);
	nt35590_DCS_write_1A_1P(0x7D, 0x0);
	nt35590_DCS_write_1A_1P(0x7E, 0xB1);
	nt35590_DCS_write_1A_1P(0x7F, 0x0);
	nt35590_DCS_write_1A_1P(0x80, 0xC8);
	nt35590_DCS_write_1A_1P(0x81, 0x0);
	nt35590_DCS_write_1A_1P(0x82, 0xDB);
	nt35590_DCS_write_1A_1P(0x83, 0x0);
	nt35590_DCS_write_1A_1P(0x84, 0xEC);
	nt35590_DCS_write_1A_1P(0x85, 0x0);
	nt35590_DCS_write_1A_1P(0x86, 0xFB);
	nt35590_DCS_write_1A_1P(0x87, 0x1);
	nt35590_DCS_write_1A_1P(0x88, 0x26);
	nt35590_DCS_write_1A_1P(0x89, 0x1);
	nt35590_DCS_write_1A_1P(0x8A, 0x49);
	nt35590_DCS_write_1A_1P(0x8B, 0x1);
	nt35590_DCS_write_1A_1P(0x8C, 0x86);
	nt35590_DCS_write_1A_1P(0x8D, 0x1);
	nt35590_DCS_write_1A_1P(0x8E, 0xB3);
	nt35590_DCS_write_1A_1P(0x8F, 0x1);
	nt35590_DCS_write_1A_1P(0x90, 0xFC);
	nt35590_DCS_write_1A_1P(0x91, 0x2);
	nt35590_DCS_write_1A_1P(0x92, 0x37);
	nt35590_DCS_write_1A_1P(0x93, 0x2);
	nt35590_DCS_write_1A_1P(0x94, 0x39);
	nt35590_DCS_write_1A_1P(0x95, 0x2);
	nt35590_DCS_write_1A_1P(0x96, 0x6F);
	nt35590_DCS_write_1A_1P(0x97, 0x2);
	nt35590_DCS_write_1A_1P(0x98, 0xAA);
	nt35590_DCS_write_1A_1P(0x99, 0x2);
	nt35590_DCS_write_1A_1P(0x9A, 0xC9);
	nt35590_DCS_write_1A_1P(0x9B, 0x2);
	nt35590_DCS_write_1A_1P(0x9C, 0xFC);
	nt35590_DCS_write_1A_1P(0x9D, 0x3);
	nt35590_DCS_write_1A_1P(0x9E, 0x20);
	nt35590_DCS_write_1A_1P(0x9F, 0x3);
	nt35590_DCS_write_1A_1P(0xA0, 0x52);
	nt35590_DCS_write_1A_1P(0xA2, 0x3);
	nt35590_DCS_write_1A_1P(0xA3, 0x62);
	nt35590_DCS_write_1A_1P(0xA4, 0x3);
	nt35590_DCS_write_1A_1P(0xA5, 0x75);
	nt35590_DCS_write_1A_1P(0xA6, 0x3);
	nt35590_DCS_write_1A_1P(0xA7, 0x8A);
	nt35590_DCS_write_1A_1P(0xA9, 0x3);
	nt35590_DCS_write_1A_1P(0xAA, 0xA1);
	nt35590_DCS_write_1A_1P(0xAB, 0x3);
	nt35590_DCS_write_1A_1P(0xAC, 0xB5);
	nt35590_DCS_write_1A_1P(0xAD, 0x3);
	nt35590_DCS_write_1A_1P(0xAE, 0xC6);
	nt35590_DCS_write_1A_1P(0xAF, 0x3);
	nt35590_DCS_write_1A_1P(0xB0, 0xCF);
	nt35590_DCS_write_1A_1P(0xB1, 0x3);
	nt35590_DCS_write_1A_1P(0xB2, 0xD1);
	nt35590_DCS_write_1A_1P(0xB3, 0x0);
	nt35590_DCS_write_1A_1P(0xB4, 0x42);
	nt35590_DCS_write_1A_1P(0xB5, 0x0);
	nt35590_DCS_write_1A_1P(0xB6, 0x56);
	nt35590_DCS_write_1A_1P(0xB7, 0x0);
	nt35590_DCS_write_1A_1P(0xB8, 0x79);
	nt35590_DCS_write_1A_1P(0xB9, 0x0);
	nt35590_DCS_write_1A_1P(0xBA, 0x97);
	nt35590_DCS_write_1A_1P(0xBB, 0x0);
	nt35590_DCS_write_1A_1P(0xBC, 0xB1);
	nt35590_DCS_write_1A_1P(0xBD, 0x0);
	nt35590_DCS_write_1A_1P(0xBE, 0xC8);
	nt35590_DCS_write_1A_1P(0xBF, 0x0);
	nt35590_DCS_write_1A_1P(0xC0, 0xDB);
	nt35590_DCS_write_1A_1P(0xC1, 0x0);
	nt35590_DCS_write_1A_1P(0xC2, 0xEC);
	nt35590_DCS_write_1A_1P(0xC3, 0x0);
	nt35590_DCS_write_1A_1P(0xC4, 0xFB);
	nt35590_DCS_write_1A_1P(0xC5, 0x1);
	nt35590_DCS_write_1A_1P(0xC6, 0x26);
	nt35590_DCS_write_1A_1P(0xC7, 0x1);
	nt35590_DCS_write_1A_1P(0xC8, 0x49);
	nt35590_DCS_write_1A_1P(0xC9, 0x1);
	nt35590_DCS_write_1A_1P(0xCA, 0x86);
	nt35590_DCS_write_1A_1P(0xCB, 0x1);
	nt35590_DCS_write_1A_1P(0xCC, 0xB3);
	nt35590_DCS_write_1A_1P(0xCD, 0x1);
	nt35590_DCS_write_1A_1P(0xCE, 0xFC);
	nt35590_DCS_write_1A_1P(0xCF, 0x2);
	nt35590_DCS_write_1A_1P(0xD0, 0x37);
	nt35590_DCS_write_1A_1P(0xD1, 0x2);
	nt35590_DCS_write_1A_1P(0xD2, 0x39);
	nt35590_DCS_write_1A_1P(0xD3, 0x2);
	nt35590_DCS_write_1A_1P(0xD4, 0x6F);
	nt35590_DCS_write_1A_1P(0xD5, 0x2);
	nt35590_DCS_write_1A_1P(0xD6, 0xAA);
	nt35590_DCS_write_1A_1P(0xD7, 0x2);
	nt35590_DCS_write_1A_1P(0xD8, 0xC9);
	nt35590_DCS_write_1A_1P(0xD9, 0x2);
	nt35590_DCS_write_1A_1P(0xDA, 0xFC);
	nt35590_DCS_write_1A_1P(0xDB, 0x3);
	nt35590_DCS_write_1A_1P(0xDC, 0x20);
	nt35590_DCS_write_1A_1P(0xDD, 0x3);
	nt35590_DCS_write_1A_1P(0xDE, 0x52);
	nt35590_DCS_write_1A_1P(0xDF, 0x3);
	nt35590_DCS_write_1A_1P(0xE0, 0x62);
	nt35590_DCS_write_1A_1P(0xE1, 0x3);
	nt35590_DCS_write_1A_1P(0xE2, 0x75);
	nt35590_DCS_write_1A_1P(0xE3, 0x3);
	nt35590_DCS_write_1A_1P(0xE4, 0x8A);
	nt35590_DCS_write_1A_1P(0xE5, 0x3);
	nt35590_DCS_write_1A_1P(0xE6, 0xA1);
	nt35590_DCS_write_1A_1P(0xE7, 0x3);
	nt35590_DCS_write_1A_1P(0xE8, 0xB5);
	nt35590_DCS_write_1A_1P(0xE9, 0x3);
	nt35590_DCS_write_1A_1P(0xEA, 0xC6);
	nt35590_DCS_write_1A_1P(0xEB, 0x3);
	nt35590_DCS_write_1A_1P(0xEC, 0xCF);
	nt35590_DCS_write_1A_1P(0xED, 0x3);
	nt35590_DCS_write_1A_1P(0xEE, 0xD1);
	nt35590_DCS_write_1A_1P(0xEF, 0x0);
	nt35590_DCS_write_1A_1P(0xF0, 0x42);
	nt35590_DCS_write_1A_1P(0xF1, 0x0);
	nt35590_DCS_write_1A_1P(0xF2, 0x56);
	nt35590_DCS_write_1A_1P(0xF3, 0x0);
	nt35590_DCS_write_1A_1P(0xF4, 0x79);
	nt35590_DCS_write_1A_1P(0xF5, 0x0);
	nt35590_DCS_write_1A_1P(0xF6, 0x97);
	nt35590_DCS_write_1A_1P(0xF7, 0x0);
	nt35590_DCS_write_1A_1P(0xF8, 0xB1);
	nt35590_DCS_write_1A_1P(0xF9, 0x0);
	nt35590_DCS_write_1A_1P(0xFA, 0xC8);
	nt35590_DCS_write_1A_1P(0xFF, 0x02);
	nt35590_DCS_write_1A_1P(0x00, 0x0);
	nt35590_DCS_write_1A_1P(0x01, 0xDB);
	nt35590_DCS_write_1A_1P(0x02, 0x0);
	nt35590_DCS_write_1A_1P(0x03, 0xEC);
	nt35590_DCS_write_1A_1P(0x04, 0x0);
	nt35590_DCS_write_1A_1P(0x05, 0xFB);
	nt35590_DCS_write_1A_1P(0x06, 0x1);
	nt35590_DCS_write_1A_1P(0x07, 0x26);
	nt35590_DCS_write_1A_1P(0x08, 0x1);
	nt35590_DCS_write_1A_1P(0x09, 0x49);
	nt35590_DCS_write_1A_1P(0x0A, 0x1);
	nt35590_DCS_write_1A_1P(0x0B, 0x86);
	nt35590_DCS_write_1A_1P(0x0C, 0x1);
	nt35590_DCS_write_1A_1P(0x0D, 0xB3);
	nt35590_DCS_write_1A_1P(0x0E, 0x1);
	nt35590_DCS_write_1A_1P(0x0F, 0xFC);
	nt35590_DCS_write_1A_1P(0x10, 0x2);
	nt35590_DCS_write_1A_1P(0x11, 0x37);
	nt35590_DCS_write_1A_1P(0x12, 0x2);
	nt35590_DCS_write_1A_1P(0x13, 0x39);
	nt35590_DCS_write_1A_1P(0x14, 0x2);
	nt35590_DCS_write_1A_1P(0x15, 0x6F);
	nt35590_DCS_write_1A_1P(0x16, 0x2);
	nt35590_DCS_write_1A_1P(0x17, 0xAA);
	nt35590_DCS_write_1A_1P(0x18, 0x2);
	nt35590_DCS_write_1A_1P(0x19, 0xC9);
	nt35590_DCS_write_1A_1P(0x1A, 0x2);
	nt35590_DCS_write_1A_1P(0x1B, 0xFC);
	nt35590_DCS_write_1A_1P(0x1C, 0x3);
	nt35590_DCS_write_1A_1P(0x1D, 0x20);
	nt35590_DCS_write_1A_1P(0x1E, 0x3);
	nt35590_DCS_write_1A_1P(0x1F, 0x52);
	nt35590_DCS_write_1A_1P(0x20, 0x3);
	nt35590_DCS_write_1A_1P(0x21, 0x62);
	nt35590_DCS_write_1A_1P(0x22, 0x3);
	nt35590_DCS_write_1A_1P(0x23, 0x75);
	nt35590_DCS_write_1A_1P(0x24, 0x3);
	nt35590_DCS_write_1A_1P(0x25, 0x8A);
	nt35590_DCS_write_1A_1P(0x26, 0x3);
	nt35590_DCS_write_1A_1P(0x27, 0xA1);
	nt35590_DCS_write_1A_1P(0x28, 0x3);
	nt35590_DCS_write_1A_1P(0x29, 0xB5);
	nt35590_DCS_write_1A_1P(0x2A, 0x3);
	nt35590_DCS_write_1A_1P(0x2B, 0xC6);
	nt35590_DCS_write_1A_1P(0x2D, 0x3);
	nt35590_DCS_write_1A_1P(0x2F, 0xCF);
	nt35590_DCS_write_1A_1P(0x30, 0x3);
	nt35590_DCS_write_1A_1P(0x31, 0xD1);
	nt35590_DCS_write_1A_1P(0x32, 0x0);
	nt35590_DCS_write_1A_1P(0x33, 0x42);
	nt35590_DCS_write_1A_1P(0x34, 0x0);
	nt35590_DCS_write_1A_1P(0x35, 0x56);
	nt35590_DCS_write_1A_1P(0x36, 0x0);
	nt35590_DCS_write_1A_1P(0x37, 0x79);
	nt35590_DCS_write_1A_1P(0x38, 0x0);
	nt35590_DCS_write_1A_1P(0x39, 0x97);
	nt35590_DCS_write_1A_1P(0x3A, 0x0);
	nt35590_DCS_write_1A_1P(0x3B, 0xB1);
	nt35590_DCS_write_1A_1P(0x3D, 0x0);
	nt35590_DCS_write_1A_1P(0x3F, 0xC8);
	nt35590_DCS_write_1A_1P(0x40, 0x0);
	nt35590_DCS_write_1A_1P(0x41, 0xDB);
	nt35590_DCS_write_1A_1P(0x42, 0x0);
	nt35590_DCS_write_1A_1P(0x43, 0xEC);
	nt35590_DCS_write_1A_1P(0x44, 0x0);
	nt35590_DCS_write_1A_1P(0x45, 0xFB);
	nt35590_DCS_write_1A_1P(0x46, 0x1);
	nt35590_DCS_write_1A_1P(0x47, 0x26);
	nt35590_DCS_write_1A_1P(0x48, 0x1);
	nt35590_DCS_write_1A_1P(0x49, 0x49);
	nt35590_DCS_write_1A_1P(0x4A, 0x1);
	nt35590_DCS_write_1A_1P(0x4B, 0x86);
	nt35590_DCS_write_1A_1P(0x4C, 0x1);
	nt35590_DCS_write_1A_1P(0x4D, 0xB3);
	nt35590_DCS_write_1A_1P(0x4E, 0x1);
	nt35590_DCS_write_1A_1P(0x4F, 0xFC);
	nt35590_DCS_write_1A_1P(0x50, 0x2);
	nt35590_DCS_write_1A_1P(0x51, 0x37);
	nt35590_DCS_write_1A_1P(0x52, 0x2);
	nt35590_DCS_write_1A_1P(0x53, 0x39);
	nt35590_DCS_write_1A_1P(0x54, 0x2);
	nt35590_DCS_write_1A_1P(0x55, 0x6F);
	nt35590_DCS_write_1A_1P(0x56, 0x2);
	nt35590_DCS_write_1A_1P(0x58, 0xAA);
	nt35590_DCS_write_1A_1P(0x59, 0x2);
	nt35590_DCS_write_1A_1P(0x5A, 0xC9);
	nt35590_DCS_write_1A_1P(0x5B, 0x2);
	nt35590_DCS_write_1A_1P(0x5C, 0xFC);
	nt35590_DCS_write_1A_1P(0x5D, 0x3);
	nt35590_DCS_write_1A_1P(0x5E, 0x20);
	nt35590_DCS_write_1A_1P(0x5F, 0x3);
	nt35590_DCS_write_1A_1P(0x60, 0x52);
	nt35590_DCS_write_1A_1P(0x61, 0x3);
	nt35590_DCS_write_1A_1P(0x62, 0x62);
	nt35590_DCS_write_1A_1P(0x63, 0x3);
	nt35590_DCS_write_1A_1P(0x64, 0x75);
	nt35590_DCS_write_1A_1P(0x65, 0x3);
	nt35590_DCS_write_1A_1P(0x66, 0x8A);
	nt35590_DCS_write_1A_1P(0x67, 0x3);
	nt35590_DCS_write_1A_1P(0x68, 0xA1);
	nt35590_DCS_write_1A_1P(0x69, 0x3);
	nt35590_DCS_write_1A_1P(0x6A, 0xB5);
	nt35590_DCS_write_1A_1P(0x6B, 0x3);
	nt35590_DCS_write_1A_1P(0x6C, 0xC6);
	nt35590_DCS_write_1A_1P(0x6D, 0x3);
	nt35590_DCS_write_1A_1P(0x6E, 0xCF);
	nt35590_DCS_write_1A_1P(0x6F, 0x3);
	nt35590_DCS_write_1A_1P(0x70, 0xD1);
	nt35590_DCS_write_1A_1P(0x71, 0x0);
	nt35590_DCS_write_1A_1P(0x72, 0x42);
	nt35590_DCS_write_1A_1P(0x73, 0x0);
	nt35590_DCS_write_1A_1P(0x74, 0x56);
	nt35590_DCS_write_1A_1P(0x75, 0x0);
	nt35590_DCS_write_1A_1P(0x76, 0x79);
	nt35590_DCS_write_1A_1P(0x77, 0x0);
	nt35590_DCS_write_1A_1P(0x78, 0x97);
	nt35590_DCS_write_1A_1P(0x79, 0x0);
	nt35590_DCS_write_1A_1P(0x7A, 0xB1);
	nt35590_DCS_write_1A_1P(0x7B, 0x0);
	nt35590_DCS_write_1A_1P(0x7C, 0xC8);
	nt35590_DCS_write_1A_1P(0x7D, 0x0);
	nt35590_DCS_write_1A_1P(0x7E, 0xDB);
	nt35590_DCS_write_1A_1P(0x7F, 0x0);
	nt35590_DCS_write_1A_1P(0x80, 0xEC);
	nt35590_DCS_write_1A_1P(0x81, 0x0);
	nt35590_DCS_write_1A_1P(0x82, 0xFB);
	nt35590_DCS_write_1A_1P(0x83, 0x1);
	nt35590_DCS_write_1A_1P(0x84, 0x26);
	nt35590_DCS_write_1A_1P(0x85, 0x1);
	nt35590_DCS_write_1A_1P(0x86, 0x49);
	nt35590_DCS_write_1A_1P(0x87, 0x1);
	nt35590_DCS_write_1A_1P(0x88, 0x86);
	nt35590_DCS_write_1A_1P(0x89, 0x1);
	nt35590_DCS_write_1A_1P(0x8A, 0xB3);
	nt35590_DCS_write_1A_1P(0x8B, 0x1);
	nt35590_DCS_write_1A_1P(0x8C, 0xFC);
	nt35590_DCS_write_1A_1P(0x8D, 0x2);
	nt35590_DCS_write_1A_1P(0x8E, 0x37);
	nt35590_DCS_write_1A_1P(0x8F, 0x2);
	nt35590_DCS_write_1A_1P(0x90, 0x39);
	nt35590_DCS_write_1A_1P(0x91, 0x2);
	nt35590_DCS_write_1A_1P(0x92, 0x6F);
	nt35590_DCS_write_1A_1P(0x93, 0x2);
	nt35590_DCS_write_1A_1P(0x94, 0xAA);
	nt35590_DCS_write_1A_1P(0x95, 0x2);
	nt35590_DCS_write_1A_1P(0x96, 0xC9);
	nt35590_DCS_write_1A_1P(0x97, 0x2);
	nt35590_DCS_write_1A_1P(0x98, 0xFC);
	nt35590_DCS_write_1A_1P(0x99, 0x3);
	nt35590_DCS_write_1A_1P(0x9A, 0x20);
	nt35590_DCS_write_1A_1P(0x9B, 0x3);
	nt35590_DCS_write_1A_1P(0x9C, 0x52);
	nt35590_DCS_write_1A_1P(0x9D, 0x3);
	nt35590_DCS_write_1A_1P(0x9E, 0x62);
	nt35590_DCS_write_1A_1P(0x9F, 0x3);
	nt35590_DCS_write_1A_1P(0xA0, 0x75);
	nt35590_DCS_write_1A_1P(0xA2, 0x3);
	nt35590_DCS_write_1A_1P(0xA3, 0x8A);
	nt35590_DCS_write_1A_1P(0xA4, 0x3);
	nt35590_DCS_write_1A_1P(0xA5, 0xA1);
	nt35590_DCS_write_1A_1P(0xA6, 0x3);
	nt35590_DCS_write_1A_1P(0xA7, 0xB5);
	nt35590_DCS_write_1A_1P(0xA9, 0x3);
	nt35590_DCS_write_1A_1P(0xAA, 0xC6);
	nt35590_DCS_write_1A_1P(0xAB, 0x3);
	nt35590_DCS_write_1A_1P(0xAC, 0xCF);
	nt35590_DCS_write_1A_1P(0xAD, 0x3);
	nt35590_DCS_write_1A_1P(0xAE, 0xD1);
	nt35590_DCS_write_1A_1P(0xAF, 0x0);
	nt35590_DCS_write_1A_1P(0xB0, 0x42);
	nt35590_DCS_write_1A_1P(0xB1, 0x0);
	nt35590_DCS_write_1A_1P(0xB2, 0x56);
	nt35590_DCS_write_1A_1P(0xB3, 0x0);
	nt35590_DCS_write_1A_1P(0xB4, 0x79);
	nt35590_DCS_write_1A_1P(0xB5, 0x0);
	nt35590_DCS_write_1A_1P(0xB6, 0x97);
	nt35590_DCS_write_1A_1P(0xB7, 0x0);
	nt35590_DCS_write_1A_1P(0xB8, 0xB1);
	nt35590_DCS_write_1A_1P(0xB9, 0x0);
	nt35590_DCS_write_1A_1P(0xBA, 0xC8);
	nt35590_DCS_write_1A_1P(0xBB, 0x0);
	nt35590_DCS_write_1A_1P(0xBC, 0xDB);
	nt35590_DCS_write_1A_1P(0xBD, 0x0);
	nt35590_DCS_write_1A_1P(0xBE, 0xEC);
	nt35590_DCS_write_1A_1P(0xBF, 0x0);
	nt35590_DCS_write_1A_1P(0xC0, 0xFB);
	nt35590_DCS_write_1A_1P(0xC1, 0x1);
	nt35590_DCS_write_1A_1P(0xC2, 0x26);
	nt35590_DCS_write_1A_1P(0xC3, 0x1);
	nt35590_DCS_write_1A_1P(0xC4, 0x49);
	nt35590_DCS_write_1A_1P(0xC5, 0x1);
	nt35590_DCS_write_1A_1P(0xC6, 0x86);
	nt35590_DCS_write_1A_1P(0xC7, 0x1);
	nt35590_DCS_write_1A_1P(0xC8, 0xB3);
	nt35590_DCS_write_1A_1P(0xC9, 0x1);
	nt35590_DCS_write_1A_1P(0xCA, 0xFC);
	nt35590_DCS_write_1A_1P(0xCB, 0x2);
	nt35590_DCS_write_1A_1P(0xCC, 0x37);
	nt35590_DCS_write_1A_1P(0xCD, 0x2);
	nt35590_DCS_write_1A_1P(0xCE, 0x39);
	nt35590_DCS_write_1A_1P(0xCF, 0x2);
	nt35590_DCS_write_1A_1P(0xD0, 0x6F);
	nt35590_DCS_write_1A_1P(0xD1, 0x2);
	nt35590_DCS_write_1A_1P(0xD2, 0xAA);
	nt35590_DCS_write_1A_1P(0xD3, 0x2);
	nt35590_DCS_write_1A_1P(0xD4, 0xC9);
	nt35590_DCS_write_1A_1P(0xD5, 0x2);
	nt35590_DCS_write_1A_1P(0xD6, 0xFC);
	nt35590_DCS_write_1A_1P(0xD7, 0x3);
	nt35590_DCS_write_1A_1P(0xD8, 0x20);
	nt35590_DCS_write_1A_1P(0xD9, 0x3);
	nt35590_DCS_write_1A_1P(0xDA, 0x52);
	nt35590_DCS_write_1A_1P(0xDB, 0x3);
	nt35590_DCS_write_1A_1P(0xDC, 0x62);
	nt35590_DCS_write_1A_1P(0xDD, 0x3);
	nt35590_DCS_write_1A_1P(0xDE, 0x75);
	nt35590_DCS_write_1A_1P(0xDF, 0x3);
	nt35590_DCS_write_1A_1P(0xE0, 0x8A);
	nt35590_DCS_write_1A_1P(0xE1, 0x3);
	nt35590_DCS_write_1A_1P(0xE2, 0xA1);
	nt35590_DCS_write_1A_1P(0xE3, 0x3);
	nt35590_DCS_write_1A_1P(0xE4, 0xB5);
	nt35590_DCS_write_1A_1P(0xE5, 0x3);
	nt35590_DCS_write_1A_1P(0xE6, 0xC6);
	nt35590_DCS_write_1A_1P(0xE7, 0x3);
	nt35590_DCS_write_1A_1P(0xE8, 0xCF);
	nt35590_DCS_write_1A_1P(0xE9, 0x3);
	nt35590_DCS_write_1A_1P(0xEA, 0xD1);
	nt35590_DCS_write_1A_1P(0xFF, 0x00);
	nt35590_DCS_write_1A_1P(0xFB, 0x01);
	nt35590_DCS_write_1A_1P(0xFF, 0x01);
	nt35590_DCS_write_1A_1P(0xFB, 0x01);
	nt35590_DCS_write_1A_1P(0xFF, 0x02);
	nt35590_DCS_write_1A_1P(0xFB, 0x01);
	nt35590_DCS_write_1A_1P(0xFF, 0x03);
	nt35590_DCS_write_1A_1P(0xFB, 0x01);
	nt35590_DCS_write_1A_1P(0xFF, 0x04);
	nt35590_DCS_write_1A_1P(0xFB, 0x01);
	nt35590_DCS_write_1A_1P(0xFF, 0x05);
	nt35590_DCS_write_1A_1P(0xFB, 0x01);
	nt35590_DCS_write_1A_1P(0xFF, 0x00);
	nt35590_DCS_write_1A_0P(0x11);

	nt35590_DCS_write_1A_1P(0x51, 0xFF);
	nt35590_DCS_write_1A_1P(0x53, 0x2C);
	nt35590_DCS_write_1A_1P(0x55, 0x00);
	nt35590_DCS_write_1A_0P(0x29);
	nt35590_DCS_write_1A_1P(0xFF, 0x00);
	nt35590_DCS_write_1A_1P(0x35, 0x00);

	data_array[0] = 0x00053902;
	data_array[1] = 0x0200002A;
	data_array[2] = 0x020000CF;
	dsi_set_cmdq(data_array, 3, 1);
	data_array[0] = 0x00053902;
	data_array[1] = 0x0400002B;
	data_array[2] = 0x020000FF;
	dsi_set_cmdq(data_array, 3, 1);

	nt35590_DCS_write_1A_1P(0x3A, 0X77);	///77
	nt35590_DCS_write_1A_0P(0x2c);
	nt35590_DCS_write_1A_0P(0x3c);
}
示例#25
0
static void init_lcm_registers(void)
{
	unsigned int data_array[16];
#if defined(LCM_DSI_CMD_MODE)
	data_array[0] = 0x04B02300;//B0
        dsi_set_cmdq(&data_array, 1, 1);
    	MDELAY(50);
    	data_array[0] = 0x00032902;//MIPI DSI Control
    	data_array[1] = 0x008352B6; //B6
    	dsi_set_cmdq(&data_array, 2, 1);
  
     	data_array[0] = 0x00152902;//BLC
     	data_array[1] = 0x090900B8; //B8
     	data_array[2] = 0xe6e6ffff;
     	data_array[3] = 0x10101802;
     	data_array[4] = 0xbe875a37;
     	data_array[5] = 0x000000ff;
     	data_array[6] = 0x00000000;
     	dsi_set_cmdq(&data_array, 7, 1);
     	MDELAY(50);
  
     	data_array[0] = 0x00052902;
     	data_array[1] = 0x02ff00B9; //B9
     	data_array[2] = 0x00000008; 
     	dsi_set_cmdq(&data_array, 3, 1);
  
    	data_array[0] = 0x00102902; // panel driving setting 2
    	data_array[1] = 0x043142C1; //C1
    	data_array[2] = 0x12322626;
    	data_array[3] = 0xA50a4a28; 
    	data_array[4] = 0x0121580F; 
    	dsi_set_cmdq(&data_array, 5, 1);
  
     	data_array[0] = 0x28d62300;//D6
     	dsi_set_cmdq(&data_array, 1, 1);
     	MDELAY(100);
  
     	data_array[0] = 0x00053902;
     	data_array[1] = 0x0100002A;//2A
     	data_array[2] = 0x000000DF;
     	dsi_set_cmdq(&data_array, 3, 1);
     	MDELAY(50);
  
     	data_array[0] = 0x00053902;
     	data_array[1] = 0x0300002B;//2B
     	data_array[2] = 0x0000001f;
     	dsi_set_cmdq(&data_array, 3, 1);
     	MDELAY(50);
  
     	data_array[0] = 0x00361500;//36
     	dsi_set_cmdq(&data_array, 1, 1);
     	MDELAY(50);

     	data_array[0] = 0x00351500;//36
     	dsi_set_cmdq(&data_array, 1, 1);
     	MDELAY(50);

     	data_array[0] = 0x773A1500;//3A
     	dsi_set_cmdq(&data_array, 1, 1);
     	MDELAY(50);
  
     	data_array[0] = 0x00110500;//11
     	dsi_set_cmdq(&data_array, 1, 1);
     
     	MDELAY(125);
     
     	data_array[0] = 0x00290500;//29
  	dsi_set_cmdq(&data_array, 1, 1);
 	MDELAY(125);
#endif
}
static void lcm_initialization_setting(void)
{
  unsigned int data_array[16];
 // static unsigned char temp_data = 0x84;
  data_array[0] = 0x00043902;                          
  data_array[1] = 0x7983FFb9;
  dsi_set_cmdq(&data_array, 2, 1);
  //MDELAY(1);
  data_array[0] = 0x00033902;                          
  data_array[1] = 0x009351BA;
  dsi_set_cmdq(&data_array, 2, 1);
  //MDELAY(1);
  data_array[0] = 0x00303902;                          
  data_array[1] = 0x0A0000D5;
  data_array[2] = 0x00000100;
  data_array[3] = 0x99881000;
  data_array[4] = 0x88103210;
  data_array[5] = 0x88888888;
  data_array[6] = 0x88888888;
  data_array[7] = 0x88888888;
  data_array[8] = 0x99010123;
  data_array[9] = 0x88888888;
  data_array[10] = 0x88888888;
  data_array[11] = 0x00048888;
  data_array[12] = 0x00000000;
  dsi_set_cmdq(&data_array, 13, 1);
  //MDELAY(1);
  data_array[0] = 0x00143902;                          
  data_array[1] = 0x445000B1;
  data_array[2] = 0x11086fE3;
  data_array[3] = 0x38361111;//vrhp,vrhn 0x3028  0x2c247412
  //data_array[3] = 0x372F7818;
  data_array[4] = 0x0B4229A9;
  data_array[5] = 0xE600F166;
  dsi_set_cmdq(&data_array, 6, 1);
//MDELAY(1);
  data_array[0] = 0x000E3902;                          
  data_array[1] = 0x3C0000B2;
  data_array[2] = 0x2218040c;
  data_array[3] = 0x040cFF00;
  data_array[4] = 0x00002018;
  dsi_set_cmdq(&data_array, 5, 1); 
  
  data_array[0] = 0x00203902;                          
 // data_array[1] = 0x000880B4;//column inversion
  data_array[1] = 0x000c80B4;//2 dot inversion
  data_array[2] = 0x00061030;
  data_array[3] = 0x00000000;
  data_array[4] = 0x48001100;
  
  //data_array[5] = 0x3c0c1702;
  //data_array[6] = 0x073c3e0a; 
  data_array[5] = 0x403c2307;
  data_array[6] = 0x04303008;
  data_array[7] = 0x28084000;
  data_array[8] = 0x04303008;
  dsi_set_cmdq(&data_array, 9, 1);
  
  data_array[0] = 0x00023902;                          
  data_array[1] = 0x000002CC; 
  dsi_set_cmdq(&data_array, 2, 1); 

  data_array[0] = 0x00053902;                          
  data_array[1] = 0x007b00B6; ///////////aa a3
  data_array[2] = 0x0000007b;
  dsi_set_cmdq(&data_array, 3, 1);
	
 // data_array[0] = 0x00053902;
 // data_array[1] = 0x000000B6|((temp_data&0xFF)<<16);//8a
 // data_array[2] = 0x00000000|(temp_data&0xFF);
 // #ifndef BUILD_LK
 // printk("hx8379a init debug %x ,%x\n",data_array[1],data_array[2]);
 // #endif
 // dsi_set_cmdq(&data_array, 3, 1);
 // temp_data-=1;
//MDELAY(1);
  data_array[0] = 0x00243902;                          
  data_array[1] = 0x080079E0;
  data_array[2] = 0x3f3a330e;
  data_array[3] = 0x07014b1e;
  data_array[4] = 0x1817150e;
  data_array[5] = 0x001a1f17;
  data_array[6] = 0x3a330e08;
  data_array[7] = 0x014b1e3f;
  data_array[8] = 0x17150e07;
  data_array[9] = 0x1a1f1718;
  dsi_set_cmdq(&data_array, 10, 1);
  MDELAY(5);
  
  data_array[0] = 0x00023902;  
  data_array[1] = 0x0000773A; // RGB 18bits D[17:0]
  dsi_set_cmdq(&data_array, 2, 1);
  
  data_array[0] = 0x00023902;  
  data_array[1] = 0x00000036; // RGB 18bits D[17:0]
  dsi_set_cmdq(&data_array, 2, 1);
  
  data_array[0] = 0x00110500; // Sleep Out
  dsi_set_cmdq(&data_array, 1, 1);
  MDELAY(120);
  data_array[0] = 0x00290500;  
  dsi_set_cmdq(&data_array, 1, 1);
  MDELAY(10);
  
};
static unsigned int lcm_esd_check(void)
{
    static int err_count = 0;
    unsigned char buffer_1[12];
    unsigned int array[16];
    int i;
    unsigned char fResult;
    //printk("lcm_esd_check<<<\n");
    for(i = 0; i < 12; i++)
      buffer_1[i] = 0x00;

    //---------------------------------
    // Set Maximum Return Size
    //---------------------------------
    array[0] = 0x00013700;
    dsi_set_cmdq(array, 1, 1);

    //---------------------------------
    // Read [9Ch, 00h, ECC] + Error Report(4 Bytes)
    //---------------------------------
    read_reg_v2(0x0A, buffer_1, 7);

#if 0
    printk(KERN_EMERG "lcm_esd_check: read(0x0A)\n");
    for(i = 0; i < 7; i++)
      printk(KERN_EMERG "buffer_1[%d]:0x%x \n",i,buffer_1[i]);
#endif

    // printk(KERN_EMERG "jjyang lcm_esd_check read(0x0A)=%x\n",read_reg(0x0A));
    // printk("jjyang lcm_esd_check ID read(0x04)=%x,%x,%x\n",read_reg(0x04),read_reg(0x04),read_reg(0x04));
    // printk("jjyang lcm_esd_check ID read(0xDB)=%x\n",read_reg(0xDB));

    //---------------------------------
    // Judge Readout & Error Report
    //---------------------------------
    if(buffer_1[3] == 0x02) // Check data identifier of error report
    {
      if(buffer_1[4] & 0x02) // Check SOT sync error
        err_count++;
      else
        err_count = 0;
    }
    else
    {
      err_count = 0;
    }

    //printk(KERN_EMERG "jjyang lcm_esd_check err_count=%d\n",err_count);
    if((buffer_1[0] != 0x9C) || (err_count >= 2))
    {
      err_count = 0;
      uncount++;

      //printk(KERN_EMERG "jjyang lcm_esd_check unnormal uncount=%d\n",uncount);
      //printk("lcm_esd_check>>>\n");

      fResult = 1;
      //return TRUE;
    }
    else
    {
      count++;
      //printk(KERN_EMERG "jjyang lcm_esd_check normal count=%d\n",count);
      //printk("lcm_esd_check>>>\n");

      fResult = 0;
      //return FALSE;
    }

    //---------------------------------
    // Shut-Down Peripherial
    //---------------------------------
    array[0] = 0x00002200;
    dsi_set_cmdq(array, 1, 1);

    //---------------------------------
    // Set Maximum Return Size
    //---------------------------------
    array[0] = 0x00033700;
    dsi_set_cmdq(array, 1, 1);

    //---------------------------------
    // Clear D-PHY Buffer
    // Read [WC, WC, ECC, P1, P2, P3, CRC0, CRC1]+ Error Report(4 Bytes)
    //---------------------------------
    read_reg_v2(0xBC, buffer_1, 12);
#if 0
    printk(KERN_EMERG "lcm_esd_check: read(0xBC)\n");
    for(i = 0; i < 12; i++)
      printk(KERN_EMERG "buffer_1[%d]:0x%x \n",i,buffer_1[i]);
#endif

    if(fResult) return TRUE;
    else return FALSE;
}
示例#28
0
static unsigned int lcm_esd_check()
{
#ifndef BUILD_LK

    unsigned char buffer[1];
   	unsigned int array[16];

#if defined(LCM_DEBUG)
#if defined(BUILD_LK)
	printf("[cabc] otm8009a: lcm_esd_check enter\n");
#else
	printk("[cabc] otm8009a: lcm_esd_check enter\n");
#endif
#endif

   array[0] = 0x00013700;// read id return two byte,version and id
   dsi_set_cmdq(array, 1, 1);
//	id = read_reg(0xF4);
   read_reg_v2(0x0A, buffer, 1);

#if defined(LCM_DEBUG)
#if defined(BUILD_LK)
    printf("lcm_esd_check  0x0A = %x\n",buffer[0]);
#else
    printk("lcm_esd_check  0x0A = %x\n",buffer[0]);
#endif
#endif

   if(buffer[0] != 0x9C)
   {
      return 1;
   }
   array[0] = 0x00013700;// read id return two byte,version and id
   dsi_set_cmdq(array, 1, 1);
//	id = read_reg(0xF4);
   read_reg_v2(0x0B, buffer, 1);

#if defined(LCM_DEBUG)
#if defined(BUILD_LK)
    printf("lcm_esd_check  0x0B = %x\n",buffer[0]);
#else
    printk("lcm_esd_check  0x0B = %x\n",buffer[0]);
#endif
#endif

   if(buffer[0] != 0x00)
   {
      return 1;
   }
   array[0] = 0x00013700;// read id return two byte,version and id
   dsi_set_cmdq(array, 1, 1);
//	id = read_reg(0xF4);
   read_reg_v2(0x0C, buffer, 1);

#if defined(LCM_DEBUG)
#if defined(BUILD_LK)
    printf("lcm_esd_check  0x0C =%x\n",buffer[0]);
#else
    printk("lcm_esd_check  0x0C =%x\n",buffer[0]);
#endif
#endif

   if(buffer[0] != 0x07)
   {
      return 1;
   }

   array[0] = 0x00013700;// read id return two byte,version and id
   dsi_set_cmdq(array, 1, 1);
//	id = read_reg(0xF4);
   read_reg_v2(0x0D, buffer, 1);

#if defined(LCM_DEBUG)
#if defined(BUILD_LK)
    printf("lcm_esd_check 0x0D =%x\n",buffer[0]);
#else
    printk("lcm_esd_check 0x0D =%x\n",buffer[0]);
#endif
#endif

   if(buffer[0] != 0x00)
   {
      return 1;
   }

#if defined(LCM_DEBUG)
#if defined(BUILD_LK)
	printf("[cabc] otm8009a: lcm_esd_check exit\n");
#else
	printk("[cabc] otm8009a: lcm_esd_check exit\n");
#endif
#endif

   return 0;

#endif
}
static void lcm_init(void)
{
	unsigned int data_array[64];

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

#if 1
	// 1
	data_array[0] = 0x00053902;
	data_array[1] = 0xA555AAFF;
	data_array[2] = 0x00000080;
	dsi_set_cmdq(&data_array, 3, 1);

	data_array[0] = 0x00103902;
	data_array[1] = 0x004063F7;
	data_array[2] = 0xC4010000;
	data_array[3] = 0x640200A2;
	data_array[4] = 0xD0004854;//0x54,0x48,0x00,0xD0
	dsi_set_cmdq(&data_array, 5, 1);

	data_array[0] = 0x00053902;
	data_array[1] = 0xA555AAFF;//0xFF,0xAA, 0x55, 0xA5
	data_array[2] = 0x00000000;
	dsi_set_cmdq(&data_array, 3, 1);

	// 2
	data_array[0] = 0x00063902;
	data_array[1] = 0x52AA55F0;//0Xf0 0x55, 0xAA, 0x52
	data_array[2] = 0x00000108;//0x08, 0x01
	dsi_set_cmdq(&data_array, 3, 1);

	data_array[0] = 0x12B01500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x12B11500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x00B21500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x07B31500;dsi_set_cmdq(&data_array, 1, 1);
	
	data_array[0] = 0x14B61500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x14B71500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x24B81500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x34B91500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x14BA1500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x01BF1500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x04C31500;dsi_set_cmdq(&data_array, 1, 1);
	data_array[0] = 0x00C21500;dsi_set_cmdq(&data_array, 1, 1);
	
	data_array[0] = 0x00033902;
	data_array[1] = 0x000804C0;
	dsi_set_cmdq(&data_array, 2, 1);

	data_array[0] = 0x00043902;
	data_array[1] = 0x007000BC;
	dsi_set_cmdq(&data_array, 2, 1);

	data_array[0] = 0x00043902;
	data_array[1] = 0x007000BD;
	dsi_set_cmdq(&data_array, 2, 1);

	data_array[0] = 0x00033902;
	data_array[1] = 0x004B00BE;
	dsi_set_cmdq(&data_array, 2, 1);

	//Gamma
	data_array[0] = 0x00353902;
	data_array[1] = 0x000000D1;//D1,0x00,0x00,0x00,
	data_array[2] = 0x0022000C;//0x0C,0x00,0x22,0x00
	data_array[3] = 0x00470036;//0x36,0x00,0x47,0x00,
	data_array[4] = 0x00820066;//0x66,0x00,0x82,0x00
	data_array[5] = 0x01DA00B2;//0xB2,0x00,0xDA,0x01
	data_array[6] = 0x0151011B;//0x1B,0x01,0x51,0x01
	data_array[7] = 0x01ED01A5;//0xA5,0x01,0xED,0x01
	data_array[8] = 0x023002EE;//0xEE,0x02,0x30,0x02
	data_array[9] = 0x029E0275;//0x75,0x02,0x9E,0x02
	data_array[10] = 0x03F902D7;//,0xD7,0x02,0xF9,0x03
	data_array[11] = 0x03470328;//0x28,0x03,0x47,0x03
	data_array[12] = 0x0381036C;//0x6C,0x03,0x81,0x03
	data_array[13] = 0x03C00390;//0x90,0x03,0xC0,0x03,
	data_array[14] = 0x000000F8;//0xF8
	dsi_set_cmdq(&data_array, 15, 1);

	data_array[0] = 0x00353902;
	data_array[1] = 0x004800D2;//D2,0x00,0x48,0x00,
	data_array[2] = 0x005F0050;//0x50,0x00,0x5F,0x00
	data_array[3] = 0x007A006D;//0x6D,0x00,0x7A,0x00
	data_array[4] = 0x00AB0094;//0x94,0x00,0xAB,0x00
	data_array[5] = 0x01F700D4;//0xD4,0x00,0xF7,0x01
	data_array[6] = 0x01610131;//0x31,0x01,0x61,0x01
	data_array[7] = 0x01F701B2;//0xB2,0x01,0xF7,0x01
	data_array[8] = 0x023802F9;//0xF9,0x02,0x38,0x02
	data_array[9] = 0x02A4027C;//0x7C,0x02,0xA4,0x02
	data_array[10] = 0x03FF02DE;//,0xDE,0x02,0xFF,0x03
	data_array[11] = 0x034D0330;//0x30,0x03,0x4D,0x03
	data_array[12] = 0x038A0372;//0x72,0x03,0x8A,0x03
	data_array[13] = 0x03C003A6;//0xA6,0x03,0xC0,0x03
	data_array[14] = 0x000000F8;//0xF8
	dsi_set_cmdq(&data_array, 15, 1);

	data_array[0] = 0x00353902;
	data_array[1] = 0x000000D3;//D3,0x00,0x00,0x00,
	data_array[2] = 0x0023000C;//0x0C,0x00,0x23,0x00
	data_array[3] = 0x004A0037;//0x37,0x00,0x4A,0x00,
	data_array[4] = 0x00850069;//0x69,0x00,0x85,0x00
	data_array[5] = 0x01E000B7;//0xB7,0x00,0xE0,0x01
	data_array[6] = 0x015710121;//0x21,0x01,0x57,0x01
	data_array[7] = 0x01F301AC;//0xAC,0x01,0xF3,0x01
	data_array[8] = 0x023102F5;//0xF5,0x02,0x31,0x02
	data_array[9] = 0x02A10278;//0x78,0x02,0xA1,0x02
	data_array[10] = 0x03F802D7;//,0xD7,0x02,0xF8,0x03
	data_array[11] = 0x03480326;//0x26,0x03,0x48,0x03
	data_array[12] = 0x0371036A;//0x6A,0x03,0x71,0x03
	data_array[13] = 0x0F700376;//0x76,0x03,0xF7,0x03,
	data_array[14] = 0x000000F8;//0xF8
	dsi_set_cmdq(&data_array, 15, 1);


	data_array[0] = 0x00353902;
	data_array[1] = 0x000000D4;//D1,0x00,0x00,0x00,
	data_array[2] = 0x0022000C;//0x0C,0x00,0x22,0x00
	data_array[3] = 0x00470036;//0x36,0x00,0x47,0x00,
	data_array[4] = 0x00820066;//0x66,0x00,0x82,0x00
	data_array[5] = 0x01DA00B2;//0xB2,0x00,0xDA,0x01
	data_array[6] = 0x0151011B;//0x1B,0x01,0x51,0x01
	data_array[7] = 0x01ED01A5;//0xA5,0x01,0xED,0x01
	data_array[8] = 0x023002EE;//0xEE,0x02,0x30,0x02
	data_array[9] = 0x029E0275;//0x75,0x02,0x9E,0x02
	data_array[10] = 0x03F902D7;//,0xD7,0x02,0xF9,0x03
	data_array[11] = 0x03470328;//0x28,0x03,0x47,0x03
	data_array[12] = 0x0381036C;//0x6C,0x03,0x81,0x03
	data_array[13] = 0x03C00390;//0x90,0x03,0xC0,0x03,
	data_array[14] = 0x000000F8;//0xF8
	dsi_set_cmdq(&data_array, 15, 1);

	data_array[0] = 0x00353902;
	data_array[1] = 0x004800D5;//D2,0x00,0x48,0x00,
	data_array[2] = 0x005F0050;//0x50,0x00,0x5F,0x00
	data_array[3] = 0x007A006D;//0x6D,0x00,0x7A,0x00
	data_array[4] = 0x00AB0094;//0x94,0x00,0xAB,0x00
	data_array[5] = 0x01F700D4;//0xD4,0x00,0xF7,0x01
	data_array[6] = 0x01610131;//0x31,0x01,0x61,0x01
	data_array[7] = 0x01F701B2;//0xB2,0x01,0xF7,0x01
	data_array[8] = 0x023802F9;//0xF9,0x02,0x38,0x02
	data_array[9] = 0x02A4027C;//0x7C,0x02,0xA4,0x02
	data_array[10] = 0x03FF02DE;//,0xDE,0x02,0xFF,0x03
	data_array[11] = 0x034D0330;//0x30,0x03,0x4D,0x03
	data_array[12] = 0x038A0372;//0x72,0x03,0x8A,0x03
	data_array[13] = 0x03C003A6;//0xA6,0x03,0xC0,0x03
	data_array[14] = 0x000000F8;//0xF8
	dsi_set_cmdq(&data_array, 15, 1);

	data_array[0] = 0x00353902;
	data_array[1] = 0x000000D6;//D3,0x00,0x00,0x00,
	data_array[2] = 0x0023000C;//0x0C,0x00,0x23,0x00
	data_array[3] = 0x004A0037;//0x37,0x00,0x4A,0x00,
	data_array[4] = 0x00850069;//0x69,0x00,0x85,0x00
	data_array[5] = 0x01E000B7;//0xB7,0x00,0xE0,0x01
	data_array[6] = 0x015710121;//0x21,0x01,0x57,0x01
	data_array[7] = 0x01F301AC;//0xAC,0x01,0xF3,0x01
	data_array[8] = 0x023102F5;//0xF5,0x02,0x31,0x02
	data_array[9] = 0x02A10278;//0x78,0x02,0xA1,0x02
	data_array[10] = 0x03F802D7;//,0xD7,0x02,0xF8,0x03
	data_array[11] = 0x03480326;//0x26,0x03,0x48,0x03
	data_array[12] = 0x0371036A;//0x6A,0x03,0x71,0x03
	data_array[13] = 0x0F700376;//0x76,0x03,0xF7,0x03,
	data_array[14] = 0x000000F8;//0xF8
	dsi_set_cmdq(&data_array, 15, 1);
	//Gamma

	data_array[0] = 0x00063902;
	data_array[1] = 0x52AA55F0;
	data_array[2] = 0x00000008;
	dsi_set_cmdq(&data_array, 3, 1);
	
	data_array[0] = 0x03B61500;
	dsi_set_cmdq(&data_array, 1, 1);

	data_array[0] = 0x00033902;
	data_array[1] = 0x007373B7;
	dsi_set_cmdq(&data_array, 2, 1);

	data_array[0] = 0x00053902;
	data_array[1] = 0x060601B8;
	data_array[2] = 0x00000006;
	dsi_set_cmdq(&data_array, 3, 1);

	data_array[0] = 0x00BC1500;
	dsi_set_cmdq(&data_array, 1, 1);

	data_array[0] = 0x00043902;
	data_array[1] = 0x010063B1;
	dsi_set_cmdq(&data_array, 2, 1);

	data_array[0] = 0x10B41500;
	dsi_set_cmdq(&data_array, 1, 1);

#else
	push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
#endif
}
示例#30
0
static unsigned int lcm_compare_id(void)
{
    unsigned int id=0,id2=0;
    unsigned char buffer[5],buffer2[2];
    unsigned int array[16];  

    SET_RESET_PIN(1);
    SET_RESET_PIN(0);
    MDELAY(25);
    SET_RESET_PIN(1);
    MDELAY(50);

    array[0]=0x00043902;
    array[1]=0x010980ff;
    dsi_set_cmdq(array, 2, 1); //{0xff, 3 ,{0x80,0x09,0x01}}, // Command2 Enable
   
    array[0]=0x80001500;
    dsi_set_cmdq(array, 1, 1); //{0x00, 1 ,{0x80}},
   
    array[0]=0x00033902;
    array[1]=0x000980ff;
    dsi_set_cmdq(array, 2, 1); //{0xff, 2 ,{0x80,0x09}}, // Orise Mode Enable
   
    array[0]=0xC6001500;
    dsi_set_cmdq(array, 1, 1); //{0x00, 1 ,{0xC6}},
   
    array[0]=0x03B01500;
    dsi_set_cmdq(array, 1, 1); //{0xB0, 1 ,{0x03}}, // Read Contention Error
    MDELAY(10);

    array[0] = 0x00043700;// set return byte number
    dsi_set_cmdq(array, 1, 1);

    read_reg_v2(0xA1, &buffer, 4); // Read Register 0xA1 : 0x80,0x09/0x01,0x8B (OTM8009A/OTM8018B);

    id = buffer[2]<<8 |buffer[3];

#if defined(BUILD_LK)
	printf("lk,otm8009a,id 0x%x , 0x%x , 0x%x \n",buffer[2],buffer[3],id);
#else
	printk("kernel,otm8009a,id 0x%x , 0x%x , 0x%x \n",buffer[2],buffer[3],id);
#endif

    array[0] = 0x50001500;
    dsi_set_cmdq(array, 1, 1);

    read_reg_v2(0xF8, &buffer2, 2); // Read Register 0xF850 : 0x02,0x35 (OTM8018B);
   
    id2 = buffer2[0]<<8 |buffer2[1];

#if defined(BUILD_LK)
	printf("lk,otm8009a,id2 0x%x , 0x%x , 0x%x \n",buffer2[0],buffer2[1],id2);
//#else if defined (BUILD_KERNEL)
#else
	printk("kernel,otm8009a,id2 0x%x , 0x%x , 0x%x \n",buffer2[0],buffer2[1],id2);
#endif

	if((id==LCM_ID_OTM8009A) && (id2==0))
		return 1;
	else
		return 0;
 		       
	//return (id==LCM_ID_OTM8009A)?1:0;
}