static unsigned int lcm_compare_id(void) { unsigned int id = 0; unsigned char buffer[5]; unsigned int array[16]; //NOTE:should reset LCM firstly lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); MDELAY(25); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); MDELAY(50); array[0] = 0x00053700;// read id return 5 byte dsi_set_cmdq(array, 1, 1); array[0] = 0x04B02300;// unlock for reading ID dsi_set_cmdq(array, 1, 1); MDELAY(50); read_reg_v2(0xBF, buffer, 5); id = (buffer[2] << 8) | buffer[3]; //we only need ID #if defined(BUILD_UBOOT) printf("%s, id1 = 0x%x\n", __func__, id); #endif return (LCM_ID == id)?1:0; }
static void lcm_suspend(void) { //SET_RESET_PIN(0); //CH7035B reset control //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ZERO); // HDMI_POWER_EN //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE //MDELAY(10); lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N MDELAY(10); lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ZERO); // LCM_STBY MDELAY(10); lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ZERO); // LCM_RST MDELAY(10); lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN MDELAY(60); // avoid LCD resume transint }
static void lcm_resume(void) { //SET_RESET_PIN(1); //CH7035B reset control //lcm_util.set_gpio_mode(GPIO60, GPIO_MODE_00); //lcm_util.set_gpio_dir(GPIO60, GPIO_DIR_OUT); //lcm_util.set_gpio_out(GPIO60, GPIO_OUT_ONE); // HDMI_POWER_EN lcm_util.set_gpio_mode(GPIO48, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO48, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO48, GPIO_OUT_ONE); // LCM_STBY MDELAY(5); lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN MDELAY(50); lcm_util.set_gpio_mode(GPIO49, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO49, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO49, GPIO_OUT_ONE); // LCM_RST MDELAY(5); lcm_util.set_gpio_mode(GPIO51, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO51, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO51, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N MDELAY(120); //lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); //lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); //lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE }
static void lcm_init(void) { lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); MDELAY(25); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); MDELAY(50); init_lcm_registers(); MDELAY(500); // clear_panel(); }
static void lcm_init(void) { lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); MDELAY(25); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); MDELAY(50); // init_lcm_registers(); push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1); MDELAY(100); // clear_panel(); }
static void lcm_gpio_set(int num, int enable) { #ifdef BUILD_LK printf("\n\n\n===================== %s %d: num:%d => %d =======================\n\n\n", __func__, __LINE__, num, enable); #endif lcm_util.set_gpio_mode(num, GPIO_MODE_00); lcm_util.set_gpio_dir(num, GPIO_DIR_OUT); if (enable) lcm_util.set_gpio_out(num, GPIO_OUT_ONE); else lcm_util.set_gpio_out(num, GPIO_OUT_ZERO); }
static void lcm_resume(void) { SET_RESET_PIN(1); lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN MDELAY(120); // avoid LCD resume transint }
static void lcm_suspend(void) { SET_RESET_PIN(0); lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ZERO); // LCM_BL_ENABLE lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LCM_VLED_EN MDELAY(60); // avoid LCD resume transint }
static void lcm_init(void) { SET_RESET_PIN(0); MDELAY(10); SET_RESET_PIN(1); lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN }
static void lcm_init(void) { #ifdef BUILD_LK printf("shaokai:lcm_init"); #endif lcm_util.set_gpio_mode(GPIO_LCM_AVDD_EN_PIN, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO_LCM_AVDD_EN_PIN, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO_LCM_AVDD_EN_PIN, GPIO_OUT_ONE); // LCM_AVDD MDELAY(50); lcm_util.set_gpio_mode(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N MDELAY(120); }
static void lcm_suspend(void) { //Back to MP.P7 baseline , solve LCD display abnormal On the right // when phone sleep , config output low, disable backlight drv chip lcm_util.set_gpio_out(GPIO_LCD_DRV_EN_PIN, GPIO_OUT_ZERO); push_table(lcm_deep_sleep_mode_in_setting, sizeof(lcm_deep_sleep_mode_in_setting) / sizeof(struct LCM_setting_table), 1); //reset low lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); mdelay(5); //disable VSP & VSN lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ZERO); mdelay(10); lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ZERO); LCD_DEBUG("kernel:boe_nt35521_lcm_suspend\n"); }
static void lcm_resume(void) { lcm_util.set_gpio_mode(GPIO18, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO18, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO18, GPIO_OUT_ONE); // RST MDELAY(30); lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LCM_VLED_EN MDELAY(30); lcm_util.set_gpio_mode(GPIO47, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO47, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO47, GPIO_OUT_ONE); // LCM_BL_ENABLE MDELAY(60); }
static void lcm_resume(void) { lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_STBY MDELAY(50); lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCM_RST //SET_RESET_PIN(1); // LCM_RST MDELAY(50); lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N MDELAY(120); }
static void lcm_suspend(void) { lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ZERO); // LVDS_SHUTDOWN_N MDELAY(10); lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ZERO); // LCM_STBY MDELAY(50); lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ZERO); // LCM_RST //SET_RESET_PIN(0); // LCM_RST MDELAY(60); // avoid LCD resume transint }
static void lcm_resume(void) { lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_DISP MDELAY(50); }
static void lcm_suspend(void) { lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ZERO); // LCM_DISP MDELAY(50); }
static void lcm_suspend(void) { unsigned int data_array[16]; data_array[0]=0x00280500; dsi_set_cmdq(data_array, 1, 1); MDELAY(10); data_array[0] = 0x00100500; dsi_set_cmdq(data_array, 1, 1); MDELAY(120);//delay more for 3 frames time 17*3=54ms data_array[0] = 0x04B02900; dsi_set_cmdq(data_array, 1, 1); data_array[0] = 0x00000500; dsi_set_cmdq(data_array, 1, 1); data_array[0] = 0x00000500; dsi_set_cmdq(data_array, 1, 1); data_array[0] = 0x01B12900;//Deep standby dsi_set_cmdq(data_array, 1, 1); lcm_util.set_gpio_mode(GPIO112, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO112, GPIO_DIR_OUT); lcm_util.set_gpio_pull_enable(GPIO112, GPIO_PULL_DISABLE); lcm_util.set_gpio_out(GPIO112 , 0); MDELAY(2); SET_GPIO_OUT(LCD_LDO_ENN_GPIO_PIN , 0); MDELAY(10); SET_GPIO_OUT(LCD_LDO_ENP_GPIO_PIN , 0); }
static void lcm_suspend(void) { unsigned int data_array[16]; data_array[0]=0x00280500; // Display Off dsi_set_cmdq(data_array, 1, 1); data_array[0] = 0x00100500; // Sleep In dsi_set_cmdq(data_array, 1, 1); #if 1 DSI_Enter_ULPM(1); /* Enter low power mode */ MDELAY(60); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(150); dct_pmic_VGP2_enable(0); /* [Ted 5-28] Disable VCI power to prevent lcd polarization */ lcm_is_init = false; #else SET_RESET_PIN(1); SET_RESET_PIN(0); MDELAY(1); // 1ms SET_RESET_PIN(1); MDELAY(120); lcm_util.set_gpio_out(GPIO_LCD_ENN, GPIO_OUT_ZERO); lcm_util.set_gpio_out(GPIO_LCD_ENP, GPIO_OUT_ZERO); #endif }
static void lcm_init(void) { #if 0 //cause reset pin bug, we change to uart pin lcm_util.set_gpio_mode(GPIO24,GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO24,GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO24,1); MDELAY(50); //recommand 10ms (+50ms) 300ms //cause reset pin bug, we change to uart pin lcm_util.set_gpio_mode(GPIO77,GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO77,GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO77,1); MDELAY(10); lcm_util.set_gpio_out(GPIO77,0); MDELAY(30); //recommand 10ms lcm_util.set_gpio_out(GPIO77,1); MDELAY(200); //recommand 10ms (+50ms) 300ms #else SET_RESET_PIN(1); MDELAY(5); SET_RESET_PIN(0); MDELAY(10); SET_RESET_PIN(1); MDELAY(50); init_lcm_registers(); #endif #if 0 SET_RESET_PIN(1); SET_RESET_PIN(0); MDELAY(1); SET_RESET_PIN(1); MDELAY(20); init_lcm_registers(); #endif }
static void lcm_init_tm(void) { //reset high to low to high lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); msleep(20); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); msleep(20); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); msleep(120); lcm_id_pin_handle(); // when phone initial , config output high, enable backlight drv chip push_table(lcm_initialization_setting_tm, sizeof(lcm_initialization_setting_tm) / sizeof(struct LCM_setting_table), 1); lcm_util.set_gpio_out(GPIO_LCD_DRV_EN_PIN, GPIO_OUT_ONE); LCD_DEBUG("uboot:tm_nt35521_lcm_init\n"); }
static void lcm_init(void) { lcm_util.set_gpio_mode(GPIO_DISP_LRSTB_PIN, GPIO_MODE_00); //huawei use GPIO 49: LSA0 to be reset pin lcm_util.set_gpio_dir(GPIO_DISP_LRSTB_PIN, GPIO_DIR_OUT); /*Optimization LCD initialization time*/ lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); mdelay(30); //lcm power on , reset output high , delay 30ms ,then output low lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); msleep(30); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); msleep(50); push_table(tianma_ips_init, sizeof(tianma_ips_init) / sizeof(struct LCM_setting_table), 1); #ifdef BUILD_LK printf("LCD otm9608a_tianma lcm_init\n"); #else printk("LCD otm9608a_tianma lcm_init\n"); #endif }
static unsigned int lcm_compare_id(void) { unsigned int id = 0; unsigned char buffer[5]; unsigned int array[16]; //NOTE:should reset LCM firstly MDELAY(5); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); MDELAY(25); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); MDELAY(50); /* SET_RESET_PIN(1); MDELAY(25); SET_RESET_PIN(0); MDELAY(50); SET_RESET_PIN(1); MDELAY(150); */ array[0] = 0x00053700;// read id return 5 byte dsi_set_cmdq(array, 1, 1); array[0] = 0x04B02300;// unlock for reading ID dsi_set_cmdq(array, 1, 1); MDELAY(50); read_reg_v2(0xBF, buffer, 5); id = (buffer[2] << 8) | buffer[3]; //we only need ID #if defined(BUILD_UBOOT) printf("%s, r61408 buffer 2 = 0x%x\n", __func__, buffer[2]); printf("%s, r61408 buffer 3 = 0x%x\n", __func__, buffer[3]); printf("%s, id1 = 0x%x\n", __func__, id); /*#else printk("%s, r61408 fdsfsdf= 0x%x\n", __func__, id); printk("%s, r61408 buffer 2 = 0x%x\n", __func__, buffer[2]); printk("%s, r61408 buffer 3 = 0x%x\n", __func__, buffer[3]); if( LCM_ID == id) printk("Magnum r61408 compare id OK \n"); */ #endif return (LCM_ID == id)?1:0; }
static void lcm_init(void) { lcm_util.set_gpio_mode(GPIO112, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO112, GPIO_DIR_OUT); lcm_util.set_gpio_pull_enable(GPIO112, GPIO_PULL_DISABLE); lcm_util.set_gpio_out(GPIO112 , 0); MDELAY(50); SET_GPIO_OUT(LCD_LDO_ENP_GPIO_PIN , 1); MDELAY(10); SET_GPIO_OUT(LCD_LDO_ENN_GPIO_PIN , 1); MDELAY(100); lcm_util.set_gpio_out(GPIO112 , 1); MDELAY(20); init_lcm_registers(); }
static void lcm_init(void) { #ifdef BUILD_UBOOT // do nothing in uboot #else lcm_util.set_gpio_mode(GPIO12, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO12, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO12, GPIO_OUT_ONE); // LCM_STBY MDELAY(50); lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCM_RST //SET_RESET_PIN(1); // LCM_RST MDELAY(50); lcm_util.set_gpio_mode(GPIO52, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO52, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO52, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N MDELAY(120); #endif }
static void lcm_suspend(void) { lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ZERO); // LCD_RST MDELAY(10); //lcm_util.set_gpio_mode(GPIO96, GPIO_MODE_00); //lcm_util.set_gpio_dir(GPIO96, GPIO_DIR_OUT); //lcm_util.set_gpio_out(GPIO96, GPIO_OUT_ZERO); // LCD_PWREN //MDELAY(10); }
static void lcm_init(void) { //lcm_util.set_gpio_mode(GPIO96, GPIO_MODE_00); //lcm_util.set_gpio_dir(GPIO96, GPIO_DIR_OUT); //lcm_util.set_gpio_out(GPIO96, GPIO_OUT_ONE); // LCD_PWREN //MDELAY(10); lcm_util.set_gpio_mode(GPIO14, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO14, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO14, GPIO_OUT_ONE); // LCD_RST MDELAY(10); }
static void lcm_resume(void) { #if 1 if(!lcm_is_init) lcm_init(); #else lcm_util.set_gpio_out(GPIO_LCD_ENN, GPIO_OUT_ONE); lcm_util.set_gpio_out(GPIO_LCD_ENP, GPIO_OUT_ONE); lcm_init(); #endif }
static void lcm_resume(void) { #if ( !defined(BUILD_LK)) && (!defined(BUILD_UBOOT)) if (down_interruptible(&sem_lcm_resume)) { //printk("[fb driver] can't get semaphore:%d\n", __LINE__); return; } #endif lcm_util.set_gpio_mode(GPIO_LCM_AVDD_EN_PIN, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO_LCM_AVDD_EN_PIN, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO_LCM_AVDD_EN_PIN, GPIO_OUT_ONE); // LCM_AVDD MDELAY(50); lcm_util.set_gpio_mode(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_MODE_00); lcm_util.set_gpio_dir(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_DIR_OUT); lcm_util.set_gpio_out(GPIO_LVDS_LCD_SHUTDOWN_EN, GPIO_OUT_ONE); // LVDS_SHUTDOWN_N MDELAY(120); #if ( !defined(BUILD_LK)) && (!defined(BUILD_UBOOT)) up(&sem_lcm_resume); #endif }
static void lcm_resume_tm(void) { //enable VSP & VSN lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ONE); mdelay(10); lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ONE); msleep(50); //reset low to high lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); mdelay(5); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ZERO); mdelay(5); lcm_util.set_gpio_out(GPIO_DISP_LRSTB_PIN, GPIO_OUT_ONE); msleep(20); push_table(lcm_initialization_setting_tm, sizeof(lcm_initialization_setting_tm) / sizeof(struct LCM_setting_table), 1); //Back to MP.P7 baseline , solve LCD display abnormal On the right //when sleep out, config output high ,enable backlight drv chip lcm_util.set_gpio_out(GPIO_LCD_DRV_EN_PIN, GPIO_OUT_ONE); LCD_DEBUG("uboot:tm_nt35521_lcm_resume\n"); }
static unsigned int lcm_compare_id(void) { int array[4]; char buffer[5]; char id_high=0; char id_low=0; int id=0; lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ONE); lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ONE); MDELAY(50); SET_RESET_PIN(1); SET_RESET_PIN(0); MDELAY(10); SET_RESET_PIN(1); MDELAY(200); array[0] = 0x00053700; dsi_set_cmdq(array, 1, 1); read_reg_v2(0xa1, buffer, 5); id_high = buffer[2]; id_low = buffer[3]; id = (id_high<<8) | id_low; #ifdef BUILD_LK printf("J5010 otm1283a uboot %s \n", __func__); printf("J5010 %s id = 0x%08x \n", __func__, id); #else printk("J5010 otm1283a kernel %s \n", __func__); printk("J5010 %s id = 0x%08x \n", __func__, id); #endif // lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENP_PIN, GPIO_OUT_ZERO); // lcm_util.set_gpio_out(GPIO_LCD_BIAS_ENN_PIN, GPIO_OUT_ZERO); MDELAY(50); return (LCM_ID == id) ? 1:0; }