//******************************************************************* void SSD2825_Gen_write_1A_1P(unsigned short x1, unsigned short x2) { Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register((x2<<8)|x1); }
static void setGammaBacklight(unsigned int index) { //int i; if(index >=ARRAY_OF(gamma_table)) { index = ARRAY_OF(gamma_table) -1; } LCM_DEBUG("setGammaBacklight index=%d ARRAY_OF(gamma_table)=%d\n", index,ARRAY_OF(gamma_table)); //FA Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x001A); Write_com(0x00BF); Write_register((gamma_table[index].gammaValue[0]<<8)|0xFA); Write_register((gamma_table[index].gammaValue[2]<<8)|(gamma_table[index].gammaValue[1])); Write_register((gamma_table[index].gammaValue[4]<<8)|(gamma_table[index].gammaValue[3])); Write_register((gamma_table[index].gammaValue[6]<<8)|(gamma_table[index].gammaValue[5])); Write_register((gamma_table[index].gammaValue[8]<<8)|(gamma_table[index].gammaValue[7])); Write_register((gamma_table[index].gammaValue[10]<<8)|(gamma_table[index].gammaValue[9])); Write_register((gamma_table[index].gammaValue[12]<<8)|(gamma_table[index].gammaValue[11])); Write_register((gamma_table[index].gammaValue[14]<<8)|(gamma_table[index].gammaValue[13])); Write_register((gamma_table[index].gammaValue[16]<<8)|(gamma_table[index].gammaValue[15])); Write_register((gamma_table[index].gammaValue[18]<<8)|(gamma_table[index].gammaValue[17])); Write_register((gamma_table[index].gammaValue[20]<<8)|(gamma_table[index].gammaValue[19])); Write_register((gamma_table[index].gammaValue[22]<<8)|(gamma_table[index].gammaValue[21])); Write_register((gamma_table[index].gammaValue[24]<<8)|(gamma_table[index].gammaValue[23])); }
void SSD2825_Gen_write_1A_3P(unsigned short x1, unsigned short x2, unsigned short x3, unsigned short x4) { Write_com(0x00BC); Write_register(0x0004); Write_com(0x00BF); Write_register((x2<<8)|x1); Write_register((x4<<8)|x3); }
static void lcm_suspend(void) { Write_com(0x28); Write_com(0x10); MDELAY(120); return; }
void LCD_init() { LCD_rs=0; LCD_rw=0; LCD_e=0; Write_com(0x38); Write_com(0x0e); Write_com(0x06); Write_com(0x01); }
/*jrd add for LCD ACL function,PR350502*/ int set_acl_function(unsigned int enable) { if(enable == 1) { acl_enable = 1; Write_com(0xc0); Write_register(0x01); } else { acl_enable= 0; Write_com(0xc0); Write_register(0x00); } }
void SSD2825_Gen_write_1A_6P(unsigned short x1, unsigned short x2, unsigned short x3, unsigned short x4, unsigned short x5, unsigned short x6, unsigned short x7) { Write_com(0x00BC); Write_register(0x0007); Write_com(0x00BF); Write_register((x2<<8)|x1); Write_register((x4<<8)|x3); Write_register((x6<<8)|x5); Write_register(x7); }
void SSD2825_Gen_write_1A_9P(unsigned short x1, unsigned short x2, unsigned short x3, unsigned short x4, unsigned short x5, unsigned short x6, unsigned short x7, unsigned short x8, unsigned short x9, unsigned short x10) { Write_com(0x00BC); Write_register(0x000A); Write_com(0x00BF); Write_register((x2<<8)|x1); Write_register((x4<<8)|x3); Write_register((x6<<8)|x5); Write_register((x8<<8)|x7); Write_register((x10<<8)|x9); }
static void lcm_suspend(void) { Write_com(0x00b7); Write_register(0x0309); Write_com(0x00b8); Write_register(0x0000); Write_com(0x00bc); Write_register(0x0001); Write_com(0x00bf); Write_register(0x0028); MDELAY(10);//MDELAY(20); Write_com(0x00bf); Write_register(0x0010); MDELAY(200);//MDELAY(200); Write_com(0x00b7); Write_register(0x0300); Write_com(0x00b7); Write_register(0x0304); Write_com(0x00b9); Write_register(0x0000); return; }
static void setDynamicElvss(unsigned int index) { if(index >= ARRAY_OF(gamma_table)) { index = ARRAY_OF(gamma_table) -1; } if(gamma_table[index].backlight_level>200) { Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x04B1); Write_register(0x008B); } else { Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x04B1); Write_register(0x0095); } }
void SSD2825_Gen_write_1A_16P(unsigned short x1, unsigned short x2, unsigned short x3, unsigned short x4, unsigned short x5, unsigned short x6, unsigned short x7, unsigned short x8, unsigned short x9, unsigned short x10, unsigned short x11, unsigned short x12, unsigned short x13, unsigned short x14, unsigned short x15, unsigned short x16, unsigned short x17) { Write_com(0x00BC); Write_register(0x0011); Write_com(0x00BF); Write_register((x2<<8)|x1); Write_register((x4<<8)|x3); Write_register((x6<<8)|x5); Write_register((x8<<8)|x7); Write_register((x10<<8)|x9); Write_register((x12<<8)|x11); Write_register((x14<<8)|x13); Write_register((x16<<8)|x15); Write_register(x17); }
static void lcm_setbacklight (unsigned int level) { int i; static int old_level = -1; LCM_DEBUG("%s backlight level: %d\n", __func__, level); // leibo if(level < 0 || level > 255) return -1; level = level / 12; /* 0 <= level <= 20*/ if(level > (ARRAY_OF(gamma_backlight)-1 )) level = ARRAY_OF(gamma_backlight) -1; if (old_level == level) { /* no need update */ return; } if (level == 0) { Write_com(0x28); } else { /* disable gamma update. */ Write_com(0xfa); Write_register(0x02); /* write gamma data setting. */ for (i = 0 ; i < GAMMA_DATA_COUNT; i++) { Write_register(gamma_backlight[level][i]); } /* update gamma table. */ Write_com(0xfa); Write_register(0x03); if(!old_level) { /*when send 0x11 since now,process scheduling speed time is 250ms,so it's not nedd MDELAY anymore*/ //MDELAY(120); Write_com(0x29); } } old_level = level; }
static unsigned int lcm_compare_id(void) { unsigned short id; Write_com(0x00b0); id=Read_register(); LCM_DEBUG("lcm_compare_id id is: %x\n",id); return (SSD2825_ID == id)?1:0; }
static unsigned int lcm_compare_id(void) { unsigned short id; #ifdef BUILD_LK unsigned int lcm_idpin_value = 0; lcm_idpin_value = lcm_check_idpin_adc(ADC_CHECK_COUNT); if(lcm_idpin_value < 90)// < 0.9V return 1; else return 0; #endif #if 0 Write_com(0x00b0); id=Read_register(); return (0x2825 == id)?1:0; #endif }
static void lcm_resume(void) { #if 0 Write_com(0x00b9); Write_register(0x0001); Write_com(0x00b7); Write_register(0x030b); Write_com(0x00b8); Write_register(0x0000); Write_com(0x00bc); Write_register(0x0001); Write_com(0x00bf); Write_register(0x0011); MDELAY(200); Write_com(0x00bf); Write_register(0x0029); Write_com(0x00b7); Write_register(0x0309); return; #else config_gpio(); SET_RESET_PIN(1); MDELAY(10); SET_GPIO_OUT(LSSHUT_GPIO_PIN, 0); MDELAY(200);//100 SET_RESET_PIN(0); MDELAY(100);//30 SET_RESET_PIN(1); MDELAY(300);//120 init_lcm_registers(); return; #endif }
static void lcm_suspend(void) { #ifdef BUILD_UBOOT g_resume_flag=1; #endif Write_com(0x00b7); Write_register(0x034B); Write_com(0x00b8); Write_register(0x0000); Write_com(0x00bc); Write_register(0x0000); Write_com(0x0028); MDELAY(10); Write_com(0x0010); MDELAY(150); Write_com(0x00b7); Write_register(0x0344); Write_com(0x00b9); Write_register(0x0000); LCM_DEBUG("lcm_suspend\n"); MDELAY(120); }
void GP_COMMAD_PA(unsigned short num) { SPI_2825_WrReg(0xbc, num); Write_com(0x00bf); Set_2805_CS(1); }
static void lcm_setbacklight(unsigned int level) //back_light setting { int index; index = level*(ARRAY_OF(gamma_table)-1)/255; if(g_last_Backlight_level == index) { return; } if(level == 0) { //display off Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0028); } else { setGammaBacklight(index); setDynamicElvss(index); Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x03F7); if(!g_last_Backlight_level) { MDELAY(120); //for lcm flash //0x29 display on Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0029); } } g_last_Backlight_level=index; LCM_DEBUG("lcd-backlight level=%d, index=%d\n", level,index); }
static void init_lcm_registers(void) { LCM_DEBUG("[LCM************]: init_lcm_registers. \n"); Write_com(0x00B1); Write_register(0x0102); Write_com(0x00B2); Write_register(0x040E); //VBP from 3 to 4 for solomon Write_com(0x00B3); Write_register(0x0D40); Write_com(0x00B4); Write_register(0x02D0); Write_com(0x00B5); Write_register(0x0500); Write_com(0x00B6); Write_register(0x000B); //from Non-burst(0x0007) to burst mode(0x000B) MDELAY(2); Write_com(0x00DE); Write_register(0x0003); Write_com(0x00D6); Write_register(0x0004); Write_com(0x00B9); Write_register(0x0000); Write_com(0x00BA); Write_register(0x801F); Write_com(0x00BB); Write_register(0x0009); Write_com(0x00B9); Write_register(0x0001); Write_com(0x00B8); Write_register(0x0000); //F0 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x5AF0); Write_register(0x005A); //F1 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x5AF1); Write_register(0x005A); //0x11 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0011); MDELAY(100); //F8 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0027); Write_com(0x00BF); Write_register(0x2DF8); Write_register(0x0035); Write_register(0x0000); Write_register(0x0093); Write_register(0x7D3C); Write_register(0x2708); Write_register(0x3f7d); Write_register(0x0000); Write_register(0x2000); Write_register(0x0804); Write_register(0x006E); Write_register(0x0000); Write_register(0x0802); Write_register(0x2308); Write_register(0xC023); Write_register(0x08C8); Write_register(0xC148); Write_register(0xC100); Write_register(0xFFFF); Write_register(0x00C8); //F2 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0004); Write_com(0x00BF); Write_register(0x80F2); Write_register(0x0D04); //0x0D03 HD720 VBP //F6 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x00F6); Write_register(0x0002); //B6 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x000A); Write_com(0x00BF); Write_register(0x0CB6); Write_register(0x0302); Write_register(0xFF32); Write_register(0x4444); Write_register(0x00C0); //D9 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x000F); Write_com(0x00BF); Write_register(0x14D9); Write_register(0x0C40); Write_register(0xCECB); Write_register(0xC46E); Write_register(0x4007); Write_register(0xCB41); Write_register(0x6000); Write_register(0x0019); //E1 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0006); Write_com(0x00BF); Write_register(0x10E1); Write_register(0x171C); Write_register(0x1D08); //E2 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0007); Write_com(0x00BF); Write_register(0xEDE2); Write_register(0xC307); Write_register(0x0D13); Write_register(0x0003); //E3 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x40E3); //E4 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0008); Write_com(0x00BF); Write_register(0x00E4); Write_register(0x1400); Write_register(0x0080); Write_register(0x0000); //F4 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0008); Write_com(0x00BF); Write_register(0xCFF4); Write_register(0x120A); Write_register(0x1E10); Write_register(0x0233); //0xF7 /*Write_com(0x00B7); Write_register(0x034B); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x00F7);*/ setGammaBacklight(GAMMA_TABLE_MAX_INDEX); setDynamicElvss(GAMMA_TABLE_MAX_INDEX); //0xF7 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x03F7); }
static void lcm_setbacklight(unsigned int level) //back_light setting { int index,div; div = 245*10/(ARRAY_OF(gamma_table)+1); index = level*10/div-2; if(index>=ARRAY_OF(gamma_table)) { index = ARRAY_OF(gamma_table) -1; } else if(index<0) { index = 0; } if(g_last_Backlight_level == index) { return; } g_last_Backlight_level = index; if(level == 0) { Write_com(0x00B7); Write_register(0x034b); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0028);//display off } else { //0xF7 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x00F7); setGammaBacklight(index); setDynamicElvss(index); //0xF7 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x03F7); MDELAY(120); //0x29 display on Write_com(0x00B7); Write_register(0x034b); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0029); } LCM_DEBUG("lcd-backlight level=%d, index=%d\n", level,index); }
static void init_lcm_registers(void) { Write_com(0xf0); Write_register(0x5a); Write_register(0x5a); Write_com(0xf8); Write_register(0x01); Write_register(0x27); Write_register(0x27); Write_register(0x07); Write_register(0x07); Write_register(0x54); Write_register(0x9f); Write_register(0x63); Write_register(0x86); Write_register(0x1a); Write_register(0x33); Write_register(0x0d); Write_register(0x00); Write_register(0x00); Write_com(0xf2); Write_register(0x02); Write_register(0x03); Write_register(0x1c); Write_register(0x10); Write_register(0x10); Write_com(0xf7); Write_register(0x00); Write_register(0x00); Write_register(0x00); Write_com(0xfa); Write_register(0x02); Write_register(0x18); Write_register(0x08); Write_register(0x24); Write_register(0x70); Write_register(0x6e); Write_register(0x4e); Write_register(0xbc); Write_register(0xc0); Write_register(0xaf); Write_register(0xb3); Write_register(0xb8); Write_register(0xa5); Write_register(0xc5); Write_register(0xc7); Write_register(0xbb); Write_register(0x00); Write_register(0xb9); Write_register(0x00); Write_register(0xb8); Write_register(0x00); Write_register(0xfc); Write_com(0xfa); Write_register(0x03); Write_com(0xf6); Write_register(0x00); Write_register(0x8e); Write_register(0x07); Write_com(0xb3); Write_register(0x6c); Write_com(0xb5); Write_register(0x2c); Write_register(0x12); Write_register(0x0c); Write_register(0x0a); Write_register(0x10); Write_register(0x0e); Write_register(0x17); Write_register(0x13); Write_register(0x1f); Write_register(0x1a); Write_register(0x2a); Write_register(0x24); Write_register(0x1f); Write_register(0x1b); Write_register(0x1a); Write_register(0x17); Write_register(0x2b); Write_register(0x26); Write_register(0x22); Write_register(0x20); Write_register(0x3a); Write_register(0x34); Write_register(0x30); Write_register(0x2c); Write_register(0x29); Write_register(0x26); Write_register(0x25); Write_register(0x23); Write_register(0x21); Write_register(0x20); Write_register(0x1e); Write_register(0x1e); Write_com(0xb6); Write_register(0x00); Write_register(0x00); Write_register(0x11); Write_register(0x22); Write_register(0x33); Write_register(0x44); Write_register(0x44); Write_register(0x44); Write_register(0x55); Write_register(0x55); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_com(0xb7); Write_register(0x2c); Write_register(0x12); Write_register(0x0c); Write_register(0x0a); Write_register(0x10); Write_register(0x0e); Write_register(0x17); Write_register(0x13); Write_register(0x1f); Write_register(0x1a); Write_register(0x2a); Write_register(0x24); Write_register(0x1f); Write_register(0x1b); Write_register(0x1a); Write_register(0x17); Write_register(0x2b); Write_register(0x26); Write_register(0x22); Write_register(0x20); Write_register(0x3a); Write_register(0x34); Write_register(0x30); Write_register(0x2c); Write_register(0x29); Write_register(0x26); Write_register(0x25); Write_register(0x23); Write_register(0x21); Write_register(0x20); Write_register(0x1e); Write_register(0x1e); Write_com(0xb8); Write_register(0x00); Write_register(0x00); Write_register(0x11); Write_register(0x22); Write_register(0x33); Write_register(0x44); Write_register(0x44); Write_register(0x44); Write_register(0x55); Write_register(0x55); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_com(0xb9); Write_register(0x2c); Write_register(0x12); Write_register(0x0c); Write_register(0x0a); Write_register(0x10); Write_register(0x0e); Write_register(0x17); Write_register(0x13); Write_register(0x1f); Write_register(0x1a); Write_register(0x2a); Write_register(0x24); Write_register(0x1f); Write_register(0x1b); Write_register(0x1a); Write_register(0x17); Write_register(0x2b); Write_register(0x26); Write_register(0x22); Write_register(0x20); Write_register(0x3a); Write_register(0x34); Write_register(0x30); Write_register(0x2c); Write_register(0x29); Write_register(0x26); Write_register(0x25); Write_register(0x23); Write_register(0x21); Write_register(0x20); Write_register(0x1e); Write_register(0x1e); Write_com(0xba); Write_register(0x00); Write_register(0x00); Write_register(0x11); Write_register(0x22); Write_register(0x33); Write_register(0x44); Write_register(0x44); Write_register(0x44); Write_register(0x55); Write_register(0x55); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_register(0x66); Write_com(0xc1); Write_register(0x4d); Write_register(0x96); Write_register(0x1d); Write_register(0x00); Write_register(0x00); Write_register(0x01); Write_register(0xdf); Write_register(0x00); Write_register(0x00); Write_register(0x03); Write_register(0x1f); Write_register(0x00); Write_register(0x00); Write_register(0x00); Write_register(0x00); Write_register(0x00); Write_register(0x01); Write_register(0x08); Write_register(0x0f); Write_register(0x16); Write_register(0x1d); Write_register(0x24); Write_register(0x2a); Write_register(0x31); Write_register(0x38); Write_register(0x3f); Write_register(0x46); if(acl_enable == 1) { Write_com(0xc0); Write_register(0x01); } else { Write_com(0xc0); Write_register(0x00); } Write_com(0xb2); Write_register(0x10); Write_register(0x10); Write_register(0x0b); Write_register(0x05); Write_com(0xb1); Write_register(0x0b); Write_com(0x11); }
int lcd_f9_register_write(const char * buf) { int n_idx; int max_nu=0; int max_np=0; int max_no=0; int num_n=0; int num_q=0; const char *p = buf ; char qq[2]; char num[25]; while( (*p++ != '{' )&&( max_nu++ <= 200)); { if(max_nu>200) return -1; } for(num_n=0;num_n<=24;num_n++) { for(num_q=0;num_q<=1;num_q++) { max_np=0; while( (*(p) == 32)&&(max_np++ <= 20) ) { p++; if(max_np>20) return -1; } if( (*p>='0') && (*p <='9')) qq[num_q]=(*p++ -'0'); else if( (*p>='A') && (*p <='F')) qq[num_q]=(*p++ -'A' + 10); else if( (*p>='a') && (*p <='f')) qq[num_q]=(*p++ -'a' + 10); else return -1; } num[num_n]=qq[0]*16 + qq[1]; } while( (*p++!= '}' )&&( max_no++ <= 20)); { if(max_no>20) return -1; } for(num_n =0;num_n<=24;num_n++) { LCM_DEBUG("register lcd_f9_register_write num[%d]=%d\n", num_n,num[num_n]); } //0xF7 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x00F7); //FA Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x001A); Write_com(0x00BF); Write_register((num[0]<<8)|0xFA); Write_register((num[2]<<8)|(num[1])); Write_register((num[4]<<8)|(num[3])); Write_register((num[6]<<8)|(num[5])); Write_register((num[8]<<8)|(num[7])); Write_register((num[10]<<8)|(num[9])); Write_register((num[12]<<8)|(num[11])); Write_register((num[14]<<8)|(num[13])); Write_register((num[16]<<8)|(num[15])); Write_register((num[18]<<8)|(num[17])); Write_register((num[20]<<8)|(num[19])); Write_register((num[22]<<8)|(num[21])); Write_register((num[24]<<8)|(num[23])); //0xF7 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x03F7); //0x29 display on Write_com(0x00B7); Write_register(0x034b); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0029); return 0; }
//this function only for test for the function have bug,do not call this void ssd2825_read_s6e8aa_reg(void) { int id=0,i; int temp=0; //F0 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x00B0); Write_com(0x00B7); Write_register(0x0782); Write_com(0x00C4); Write_register(0x0001); Write_com(0x00C1); Write_register(0x0004); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x00FA); Write_com(0x00C6); temp=Read_register(); while(!(temp&0x1)) { Write_com(0x00C6); temp=Read_register(); } Write_com(0x00FF); for(i=0;i<2;i++) { id=Read_register(); LCM_DEBUG("Read_register--data%d id is: %x\n",i,id); } }
static void init_lcm_registers(void) { //SSD2825 initial part //Pulse width Write_com(0x00B1); Write_register(0x0505); //Back Porch Write_com(0x00B2); Write_register(0x1327); //0x0414 //Front Porch Write_com(0x00B3); Write_register(0x1018); //H size = 720 Write_com(0x00B4); Write_register(0x02d0); //V Sixe =1280 Write_com(0x00B5); Write_register(0x0500); //MIPI 24bit Burst Mode Write_com(0x00B6); Write_register(0x0007);//0X002B //4-lane Write_com(0x00DE); Write_register(0x0003); //RGB Write_com(0x00D6); Write_register(0x0004); //MIPI Lane Configuration Write_com(0x00B9); Write_register(0x0000); Write_com(0x00BA); Write_register(LCD_DSI_CLCK); Write_com(0x00BB); Write_register(0x0002); Write_com(0x00B9); Write_register(0x0001); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00B7); Write_register(0x034b); //0x0302 //Write_com(0x00B9); //Write_register(0x0001); MDELAY(100); //OTM1283 initial part otm1283a_auo572_ce_init(); }
//******************************************************************* static void otm1283a_auo572_ce_init(void) { //SSD2825_Gen_write_1A_3P(0xFF,0x12,0x83,0x01); Write_com(0x00B7); Write_register(0x0302); Write_com(0x00BD); Write_register(0x0000); SSD2825_Gen_write_1A_1P(0x00,0x00); SSD2825_Gen_write_1A_3P(0xff,0x12,0x83,0x01); //EXTC=1 SSD2825_Gen_write_1A_1P(0x00,0x80); //Orise mode enable SSD2825_Gen_write_1A_2P(0xff,0x12,0x83); //-------------------- panel setting --------------------// SSD2825_Gen_write_1A_1P(0x00,0x80); //TCON Setting SSD2825_Gen_write_1A_9P(0xc0,0x00,0x64,0x00,0x10,0x10,0x00,0x64,0x10,0x10); SSD2825_Gen_write_1A_1P(0x00,0x90); //Panel Timing Setting SSD2825_Gen_write_1A_6P(0xc0,0x00,0x5c,0x00,0x01,0x00,0x04); SSD2825_Gen_write_1A_1P(0x00,0xa4); //source pre. SSD2825_Gen_write_1A_1P(0xc0,0x22); SSD2825_Gen_write_1A_1P(0x00,0xb3); //Interval Scan Frame: 0 frame, column inversion SSD2825_Gen_write_1A_2P(0xc0,0x00,0x50); SSD2825_Gen_write_1A_1P(0x00,0x81); //frame rate:60Hz SSD2825_Gen_write_1A_1P(0xc1,0x55); SSD2825_Gen_write_1A_1P(0x00,0x90); //clock delay for data latch SSD2825_Gen_write_1A_1P(0xc4,0x49); //-------------------- power setting --------------------// SSD2825_Gen_write_1A_1P(0x00,0xa0); //dcdc setting SSD2825_Gen_write_1A_14P(0xc4,0x05,0x10,0x06,0x02,0x05,0x15,0x10,0x05,0x10,0x07,0x02,0x05,0x15,0x10); SSD2825_Gen_write_1A_1P(0x00,0xb0); //clamp voltage setting SSD2825_Gen_write_1A_2P(0xc4,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0x91); //VGH=15V, VGL=-10V, pump ratio:VGH=6x, VGL=-5x SSD2825_Gen_write_1A_2P(0xc5,0x46,0x40); SSD2825_Gen_write_1A_1P(0x00,0x00); //GVDD=4.87V, NGVDD=-4.87V SSD2825_Gen_write_1A_2P(0xd8,0xbc,0xbc); SSD2825_Gen_write_1A_1P(0x00,0x00); //VCOMDC=-0.9 SSD2825_Gen_write_1A_1P(0xd9,0x44); SSD2825_Gen_write_1A_1P(0x00,0x81); //source bias 0.75uA SSD2825_Gen_write_1A_1P(0xc4,0x82); SSD2825_Gen_write_1A_1P(0x00,0xb0); //VDD_18V=1.6V, LVDSVDD=1.55V SSD2825_Gen_write_1A_2P(0xc5,0x04,0xb8); SSD2825_Gen_write_1A_1P(0x00,0xbb); //LVD voltage level setting SSD2825_Gen_write_1A_1P(0xc5,0x80); //-------------------- control setting --------------------// SSD2825_Gen_write_1A_1P(0x00,0x00); //ID1 SSD2825_Gen_write_1A_1P(0xd0,0x40); SSD2825_Gen_write_1A_1P(0x00,0x00); //ID2, ID3 SSD2825_Gen_write_1A_2P(0xd1,0x00,0x00); //-------------------- panel timing state control --------------------// SSD2825_Gen_write_1A_1P(0x00,0x80); //panel timing state control SSD2825_Gen_write_1A_11P(0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0x90); //panel timing state control SSD2825_Gen_write_1A_15P(0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xa0); //panel timing state control SSD2825_Gen_write_1A_15P(0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb0); //panel timing state control SSD2825_Gen_write_1A_15P(0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xc0); //panel timing state control SSD2825_Gen_write_1A_15P(0xcb,0x05,0x00,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xd0); //panel timing state control SSD2825_Gen_write_1A_15P(0xcb,0x00,0x00,0x00,0x05,0x00,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x05,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xe0); //panel timing state control SSD2825_Gen_write_1A_14P(0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x05,0x05); SSD2825_Gen_write_1A_1P(0x00,0xf0); //panel timing state control SSD2825_Gen_write_1A_11P(0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff); //-------------------- panel pad mapping control --------------------// SSD2825_Gen_write_1A_1P(0x00,0x80); //panel pad mapping control SSD2825_Gen_write_1A_15P(0xcc,0x02,0x00,0x0a,0x0e,0x0c,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0x90); //panel pad mapping control SSD2825_Gen_write_1A_15P(0xcc,0x00,0x00,0x00,0x06,0x00,0x2e,0x2d,0x01,0x00,0x09,0x0d,0x0b,0x0f,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xa0); //panel pad mapping control SSD2825_Gen_write_1A_14P(0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x2e,0x2d); SSD2825_Gen_write_1A_1P(0x00,0xb0); //panel pad mapping control SSD2825_Gen_write_1A_15P(0xcc,0x05,0x00,0x0f,0x0b,0x0d,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xc0); //panel pad mapping control SSD2825_Gen_write_1A_15P(0xcc,0x00,0x00,0x00,0x01,0x00,0x2d,0x2e,0x06,0x00,0x10,0x0c,0x0e,0x0a,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xd0); //panel pad mapping control SSD2825_Gen_write_1A_14P(0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x2e); //-------------------- panel timing setting --------------------// SSD2825_Gen_write_1A_1P(0x00,0x80); //panel VST setting SSD2825_Gen_write_1A_12P(0xce,0x87,0x03,0x18,0x86,0x03,0x18,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0x90); //panel VEND setting SSD2825_Gen_write_1A_14P(0xce,0x34,0xfe,0x18,0x34,0xff,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xa0); //panel CLKA1/2 setting SSD2825_Gen_write_1A_14P(0xce,0x38,0x03,0x05,0x00,0x00,0x18,0x00,0x38,0x02,0x05,0x01,0x00,0x18,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb0); //panel CLKA3/4 setting SSD2825_Gen_write_1A_14P(0xce,0x38,0x01,0x05,0x02,0x00,0x18,0x00,0x38,0x00,0x05,0x03,0x00,0x18,0x00); SSD2825_Gen_write_1A_1P(0x00,0xc0); //panel CLKb1/2 setting SSD2825_Gen_write_1A_14P(0xce,0x30,0x00,0x05,0x04,0x00,0x18,0x00,0x30,0x01,0x05,0x05,0x00,0x18,0x00); SSD2825_Gen_write_1A_1P(0x00,0xd0); //panel CLKb3/4 setting SSD2825_Gen_write_1A_14P(0xce,0x30,0x02,0x05,0x06,0x00,0x18,0x00,0x30,0x03,0x05,0x07,0x00,0x18,0x00); SSD2825_Gen_write_1A_1P(0x00,0x80); //panel CLKc1/2 setting SSD2825_Gen_write_1A_14P(0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0x90); //panel CLKc3/4 setting SSD2825_Gen_write_1A_14P(0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xa0); //panel CLKd1/2 setting SSD2825_Gen_write_1A_14P(0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb0); //panel CLKd3/4 setting SSD2825_Gen_write_1A_14P(0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xc0); //panel ECLK setting SSD2825_Gen_write_1A_11P(0xcf,0x01,0x01,0x20,0x20,0x00,0x00,0x01,0x81,0x00,0x03,0x08); //gate pre. ena. SSD2825_Gen_write_1A_1P(0x00,0xb5); //TCON_GOA_OUT Setting SSD2825_Gen_write_1A_6P(0xc5,0x37,0xf1,0xfd,0x37,0xf1,0xfd); //-------------------- for Power IC --------------------// SSD2825_Gen_write_1A_1P(0x00,0x90); //Mode-3 SSD2825_Gen_write_1A_4P(0xf5,0x02,0x11,0x02,0x11); SSD2825_Gen_write_1A_1P(0x00,0x90); //3xVPNL SSD2825_Gen_write_1A_1P(0xc5,0x50); SSD2825_Gen_write_1A_1P(0x00,0x94); //2xVPNL SSD2825_Gen_write_1A_1P(0xc5,0x66); SSD2825_Gen_write_1A_1P(0x00,0xb2); //VGLO1 SSD2825_Gen_write_1A_2P(0xf5,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb4); //VGLO1_S SSD2825_Gen_write_1A_2P(0xf5,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb6); //VGLO2 SSD2825_Gen_write_1A_2P(0xf5,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb8); //VGLO2_S SSD2825_Gen_write_1A_2P(0xf5,0x00,0x00); SSD2825_Gen_write_1A_1P(0x00,0xb4); //VGLO1/2 Pull low setting SSD2825_Gen_write_1A_1P(0xc5,0xc0); //d[7] vglo1 d[6] vglo2 => 0: pull vss, 1: pull vgl SSD2825_Gen_write_1A_1P(0x00,0xb2); //C31 cap. not remove SSD2825_Gen_write_1A_1P(0xc5,0x40); SSD2825_Gen_write_1A_1P(0x00,0x00); //Orise mode disable SSD2825_Gen_write_1A_3P(0xff,0xff,0xff,0xff); SSD2825_Gen_write_1A_1P(0x11,0x00); MDELAY(200); SSD2825_Gen_write_1A_1P(0x36,0x00); SSD2825_Gen_write_1A_1P(0x3A,0x77); SSD2825_Gen_write_1A_1P(0x29,0x00); MDELAY(20); SSD2825_Gen_write_1A_1P(0x2C,0x00); Write_com(0x00B7);///////display on Write_register(0x034b); Write_com(0x00B8);//////sleep out Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0011); MDELAY(200); Write_com(0x00B7);///////display on Write_register(0x034b); MDELAY(100); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0029); MDELAY(50); Write_com(0x00B7);///////display on Write_register(0x030b); //printf(" huxh_ssd2825_video mode\n"); }
static void init_lcm_registers(void) { LCM_DEBUG("[LCM************]: init_lcm_registers. \n"); Write_com(0x00B1); Write_register(0x0102); Write_com(0x00B2); Write_register(0x040E); //0x030E , a white line displays on the top of the screen Write_com(0x00B3); Write_register(0x0D40); //0x2940 Write_com(0x00B4); Write_register(0x02D0); Write_com(0x00B5); Write_register(0x0500); Write_com(0x00B6); Write_register(0x008B); //0x0007---0x008B ,CABC out of control //MDELAY(2); Write_com(0x00DE); Write_register(0x0003); Write_com(0x00D6); Write_register(0x0004); Write_com(0x00B9); Write_register(0x0000); Write_com(0x00BA); Write_register(0x801F); Write_com(0x00BB); Write_register(0x0009); Write_com(0x00B9); Write_register(0x0001); Write_com(0x00B8); Write_register(0x0000); //F0 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x5AF0); Write_register(0x005A); //F1 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x5AF1); Write_register(0x005A); //0x11 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0001); Write_com(0x00BF); Write_register(0x0011); MDELAY(5); //100 //F8 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0027); Write_com(0x00BF); Write_register(0x2DF8); Write_register(0x0035); Write_register(0x0000); Write_register(0x0093); Write_register(0x7D3C); Write_register(0x2708); Write_register(0x3f7d); Write_register(0x0000); Write_register(0x2000); Write_register(0x0804); Write_register(0x006E); Write_register(0x0000); Write_register(0x0802); Write_register(0x2308); Write_register(0xC023); Write_register(0x08C8); Write_register(0xC148); Write_register(0xC100); Write_register(0xFFFF); Write_register(0x00C8); //F2 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0004); Write_com(0x00BF); Write_register(0x80F2); Write_register(0x0D04); //0x0D03, a white line displays on the top of the screen //F6 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0003); Write_com(0x00BF); Write_register(0x00F6); Write_register(0x0002); //B6 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x000A); Write_com(0x00BF); Write_register(0x0CB6); Write_register(0x0302); Write_register(0xFF32); Write_register(0x4444); Write_register(0x00C0); //D9 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x000F); Write_com(0x00BF); Write_register(0x14D9); Write_register(0x0C40); Write_register(0xCECB); Write_register(0xC46E); Write_register(0x4007); Write_register(0xCB41); Write_register(0x6000); Write_register(0x0019); //E1 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0006); Write_com(0x00BF); Write_register(0x10E1); Write_register(0x171C); Write_register(0x1D08); //E2 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0007); Write_com(0x00BF); Write_register(0xEDE2); Write_register(0xC307); Write_register(0x0D13); Write_register(0x0003); //E3 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0002); Write_com(0x00BF); Write_register(0x40E3); //E4 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0008); Write_com(0x00BF); Write_register(0x00E4); Write_register(0x1400); Write_register(0x0080); Write_register(0x0000); //F4 Write_com(0x00B7); Write_register(0x034B); Write_com(0x00B8); Write_register(0x0000); Write_com(0x00BC); Write_register(0x0008); Write_com(0x00BF); Write_register(0xCFF4); Write_register(0x120A); Write_register(0x1E10); Write_register(0x0233); }