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 }
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 }
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 }
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; }
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 }
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); }
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; }
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 }
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; }