static void lcm_resume(void) { LCM_DEBUG("lcm_resume begin----------------\n"); SET_GPIO_OUT(LCD_LDO2V8_GPIO_PIN , 1); MDELAY(80); lcm_init(); LCM_DEBUG("lcm_resume end------------------\n"); }
static unsigned int lcm_esd_recover(void) { LCM_DEBUG("start :%s\n",__func__); lcm_init(); LCM_DEBUG("esd recover ends\n"); return 1; }
static unsigned int lcm_compare_id(void) { unsigned int xx_temp = 0; LCM_DEBUG("[LCM_truly_r61408: lcm_compare_id. \n"); xx_temp= IMM_GetOneChannelValue(COMPARE_ADC_CHANNEL,500); LCM_DEBUG("xx_temp=%d \n",xx_temp); #ifndef GN_MTK_BSP_LCD_ID_CHECK if(xx_temp >= COMPARE_ID_V_LEVEL_1) return 0; xx_temp = compare_ic_id(); return xx_temp; #else return (xx_temp < COMPARE_ID_V_LEVEL_1)?1:0; #endif }
static int compare_ic_id(void) { char ret,id; config_gpio_for_read(); #ifdef BUILD_UBOOT SET_RESET_PIN(1); MDELAY(10); SET_RESET_PIN(0); MDELAY(10); SET_RESET_PIN(1); MDELAY(100); #endif LCDSPI_GPIO_CMD(0xB0); LCDSPI_GPIO_DAT(0x04); LCDSPI_GPIO_CMD(0xF5); id = LCDSPI_Read(0XBF); LCM_DEBUG("LCD id is %d !!!!!!!!!!!!!!!!!!!!!!!!\n",id); ret = 0; if( lcm_id == id ) ret = 1; config_gpio(); return ret; }
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])); }
static void config_gpio(void) { LCM_DEBUG("[LCM_gionee: config_gpio. \n"); const unsigned int USED_GPIOS[] = { LSDI_GPIO_PIN, LSCE_GPIO_PIN, LSCK_GPIO_PIN, LSDA_GPIO_PIN, }; unsigned int i; for (i = 0; i < ARY_SIZE(USED_GPIOS); ++i) { #ifdef GN_MTK_BSP_LCD_SW_SPI lcm_util.set_gpio_mode(USED_GPIOS[i],GPIO_MODE_00); #else lcm_util.set_gpio_mode(USED_GPIOS[i],GPIO_MODE_01); #endif lcm_util.set_gpio_dir(USED_GPIOS[i], 1); lcm_util.set_gpio_pull_enable(USED_GPIOS[i], 0); } #ifdef GN_MTK_BSP_LCD_SW_SPI lcm_util.set_gpio_dir(LSDI_GPIO_PIN, 0); #endif }
static unsigned int lcm_compare_id(void) { unsigned int id_vol3 = 0xffffffff; dct_pmic_VGP2_enable(1); MDELAY(10); //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); id_vol3 = GN_IMM_GetOneChannelValue(0, 20); LCM_DEBUG("trust_nt35596 lcm_compare_id(id_vol)= %d. \n", id_vol3); if((id_vol3>700) && (id_vol3<900)) //Trust id pin voltage is about 0.8v { return 1; } else { return 0; } }
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 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 void lcm_suspend(void) { LCM_DEBUG("nt35516_2nd lcm_suspend begin-------\n"); unsigned int data_array[16]; data_array[0]=0x00280500; dsi_set_cmdq(&data_array,1,1); MDELAY(20); data_array[0]=0x00100500; dsi_set_cmdq(&data_array,1,1); MDELAY(120); SET_RESET_PIN(0); MDELAY(100); SET_GPIO_OUT(LCD_LDO2V8_GPIO_PIN , 0); LCM_DEBUG("nt35516_2nd lcm_suspend end----------\n"); }
static void lcm_resume(void) { LCM_DEBUG("[LCM************]: lcm_resume. \n"); //#ifndef MTK_CTA_SUPPORT //gionee chenqiang add for #if 0 LCDSPI_InitCMD(0x11); MDELAY(20); LCDSPI_InitCMD(0x29);//Sleep in MDELAY(120); #else init_lcm_registers(); #endif }
static void lcm_init(void) { LCM_DEBUG("[LCM************]: lcm_init. \n"); SET_RESET_PIN(1); MDELAY(10); SET_RESET_PIN(0); MDELAY(10); SET_RESET_PIN(1); MDELAY(100); config_gpio(); init_lcm_registers(); }
static unsigned int lcm_esd_check(void) { unsigned int ret[3]={0}; unsigned char buffer[3]; unsigned int data_array[16]; data_array[0] = 0x00013700;// read id return 1 byte dsi_set_cmdq(&data_array, 1, 1); read_reg_v2(0x05, buffer, 1); ret[0]= buffer[0]; data_array[0] = 0x00013700;// read id return 1 byte dsi_set_cmdq(&data_array, 1, 1); read_reg_v2(0x0A, buffer, 1); ret[1]= buffer[0]; data_array[0] = 0x00013700;// read id return 1 byte dsi_set_cmdq(&data_array, 1, 1); read_reg_v2(0x0E, buffer, 1); ret[2]= buffer[0]; LCM_DEBUG("LCM REG 0x05,0x0A,0x0E is 0x%x,0x%x,0x%x\n",ret[0],ret[1],ret[2]); if(ret[0]!=0||ret[1]!=0x1c) { LCM_DEBUG("lCM esd\n"); return 1; } else 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 lcm_suspend(void) { LCM_DEBUG("[LCM************]: lcm_suspend. \n"); //#ifndef MTK_CTA_SUPPORT //gionee chenqiang add for #if 0 LCDSPI_InitCMD(0x28); MDELAY(20); LCDSPI_InitCMD(0x10);//Sleep in MDELAY(120); #else SET_RESET_PIN(1); MDELAY(10); SET_RESET_PIN(0); MDELAY(10); SET_RESET_PIN(1); MDELAY(120); #endif }
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 void lcm_setbacklight(unsigned int level) { unsigned int default_level = 52; unsigned int mapped_level = 0; if(level > 255) mapped_level = 255; else if(level >= 5) mapped_level= level; else mapped_level = 0; LCDSPI_InitCMD(0xB9); //B9h LCDSPI_InitDAT(0x01); LCDSPI_InitDAT(mapped_level); LCDSPI_InitDAT(0x00); //gionee yanggy 2012-05-21 modify //0x03=>0x00 LCDSPI_InitDAT(0x08); LCM_DEBUG("[LCM_set_back_light]: =%d. \n",mapped_level); }
static void config_gpio_for_read(void) { LCM_DEBUG("[LCM_gionee: config_gpio_for read. \n"); const unsigned int USED_GPIOS[] = { LSDI_GPIO_PIN, LSCE_GPIO_PIN, LSCK_GPIO_PIN, LSDA_GPIO_PIN, }; unsigned int i; for (i = 0; i < ARY_SIZE(USED_GPIOS); ++i) { lcm_util.set_gpio_mode(USED_GPIOS[i],GPIO_MODE_00); lcm_util.set_gpio_dir(USED_GPIOS[i], 1); } lcm_util.set_gpio_dir(LSDI_GPIO_PIN, 0); lcm_util.set_gpio_pull_enable(USED_GPIOS[i], 0); }
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); }
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; }
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 lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) { memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); LCM_DEBUG("[LCM************]: lcm_set_util_funcs. \n"); }
static void lcm_get_params(LCM_PARAMS *params) { LCM_DEBUG("[LCM************]: lcm_get_params. \n"); memset(params, 0, sizeof(LCM_PARAMS)); params->type = LCM_TYPE_DPI; #ifdef GN_MTK_BSP_LCD_SW_SPI params->ctrl = LCM_CTRL_GPIO; #else params->ctrl = LCM_CTRL_SERIAL_DBI; #endif params->width = FRAME_WIDTH; params->height = FRAME_HEIGHT; params->io_select_mode = 0; params->dbi.port = 0; params->dbi.data_width = LCM_DBI_DATA_WIDTH_8BITS; params->dbi.cpu_write_bits = LCM_DBI_CPU_WRITE_8_BITS; params->dbi.io_driving_current = LCM_DRIVING_CURRENT_2MA; params->dbi.serial.css = 15; params->dbi.serial.csh = 15; params->dbi.serial.rd_1st = 2; params->dbi.serial.rd_2nd = 2; params->dbi.serial.wr_1st = 15; params->dbi.serial.wr_2nd = 15; params->dbi.serial.sif_3wire = 1; params->dbi.serial.sif_sdi = 1; //0 params->dbi.serial.sif_sck_def = 1; params->dbi.serial.sif_1st_pol = 0; params->dbi.serial.sif_div2 = 1;//0; #ifdef GN_MTK_BSP_LCD_SW_SPI params->dbi.serial.sif_hw_cs = 0; #else params->dbi.serial.sif_hw_cs = 1; #endif /* RGB interface configurations */ params->dpi.mipi_pll_clk_ref = 0; params->dpi.mipi_pll_clk_div1 = 48; //42; add by chenqiang for CR00614711 params->dpi.mipi_pll_clk_div2 = 10; params->dpi.dpi_clk_div = 2; params->dpi.dpi_clk_duty = 1; params->dpi.clk_pol = LCM_POLARITY_RISING; params->dpi.de_pol = LCM_POLARITY_FALLING; params->dpi.vsync_pol = LCM_POLARITY_FALLING; params->dpi.hsync_pol = LCM_POLARITY_FALLING; params->dpi.hsync_pulse_width = 10; params->dpi.hsync_back_porch = 10; params->dpi.hsync_front_porch = 120; params->dpi.vsync_pulse_width = 2; params->dpi.vsync_back_porch = 14; params->dpi.vsync_front_porch = 12; params->dpi.format = LCM_DPI_FORMAT_RGB888; params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; params->dpi.is_serial_output = 0; params->dpi.intermediat_buffer_num = 2; params->dpi.io_driving_current = LCM_DRIVING_CURRENT_4MA; }
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 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); }