const DISP_IF_DRIVER* disphal_get_if_driver(void) { switch(lcm_params->type) { case LCM_TYPE_DBI : return DISP_GetDriverDBI(); break; case LCM_TYPE_DPI : return DISP_GetDriverDPI(); break; case LCM_TYPE_DSI : return DISP_GetDriverDSI(); break; default : ASSERT(0); } return NULL; }
static BOOL disp_drv_init_context(void) { if (disp_drv != NULL && lcm_drv != NULL){ return TRUE; } disp_drv_init_ctrl_if(); switch(lcm_params->type) { case LCM_TYPE_DBI : disp_drv = DISP_GetDriverDBI(); break; case LCM_TYPE_DPI : disp_drv = DISP_GetDriverDPI(); break; case LCM_TYPE_DSI : disp_drv = DISP_GetDriverDSI(); break; default : ASSERT(0); } if (!disp_drv) return FALSE; return TRUE; }
static BOOL disp_drv_init_context(void) { LCD_STATUS ret; if (disp_drv != NULL && lcm_drv != NULL){ return TRUE; } DISP_DetectDevice(); disp_drv_init_ctrl_if(); disp_drv_set_driving_current(NULL); switch(lcm_params->type) { case LCM_TYPE_DBI : disp_drv = DISP_GetDriverDBI(); break; case LCM_TYPE_DPI : disp_drv = DISP_GetDriverDPI(); break; case LCM_TYPE_DSI : disp_drv = DISP_GetDriverDSI(); break; default : ASSERT(0); } if (!disp_drv) return FALSE; return TRUE; }
BOOL DISP_SelectDeviceBoot(const char* lcm_name) { LCM_DRIVER *lcm = NULL; int i; printk("%s\n", __func__); if(lcm_name == NULL) { // we can't do anything in boot stage if lcm_name is NULL return false; } for(i = 0;i < lcm_count;i++) { lcm_params = &s_lcm_params; lcm = lcm_driver_list[i]; printk("[LCM Auto Detect] [%d] - [%s]\t", i, (lcm->name==NULL)?"unknown":lcm->name); lcm->set_util_funcs(&lcm_utils); memset((void*)lcm_params, 0, sizeof(LCM_PARAMS)); lcm->get_params(lcm_params); // if lcm type is speficied, we don't need to compare the lcm name // in case the uboot is old version, which don't have lcm name in command line if(lcm_count == 1) { lcm_drv = lcm; isLCMFound = TRUE; break; } if(!strcmp(lcm_name,lcm->name)) { printk("\t\t[success]\n"); lcm_drv = lcm; isLCMFound = TRUE; break; } else { printk("\t\t[fail]\n"); } } if (NULL == lcm_drv) { printk("%s, disp_drv_get_lcm_driver() returns NULL\n", __func__); return FALSE; } switch(lcm_params->type) { case LCM_TYPE_DBI : disp_drv = DISP_GetDriverDBI(); break; case LCM_TYPE_DPI : disp_drv = DISP_GetDriverDPI(); break; case LCM_TYPE_DSI : disp_drv = DISP_GetDriverDSI(); break; default : ASSERT(0); } disp_dump_lcm_parameters(lcm_params); return TRUE; }