static void sprdfb_mcu_panel_mount(struct sprdfb_device *dev) { struct timing_mcu* timing = NULL; if((NULL == dev) || (NULL == dev->panel)){ printk(KERN_ERR "sprdfb: [%s]: Invalid Param\n", __FUNCTION__); return; } pr_debug(KERN_INFO "sprdfb: [%s], dev_id = %d\n",__FUNCTION__, dev->dev_id); dev->panel_if_type = SPRDFB_PANEL_IF_DBI; if(SPRDFB_MAINLCD_ID == dev->dev_id){ dev->panel->info.mcu->ops = &dispc_mcu_ops; } if(NULL == dev->panel->ops->panel_readid){ dev->panel->ops->panel_readid = mcu_readid; } timing = dev->panel->info.mcu->timing; #ifdef CONFIG_OF dev->panel_timing.mcu_timing[MCU_LCD_REGISTER_TIMING] = mcu_calc_timing(timing, dev); #else dev->panel_timing.mcu_timing[MCU_LCD_REGISTER_TIMING] = mcu_calc_timing(timing, dev->dev_id); #endif timing++; #ifdef CONFIG_OF dev->panel_timing.mcu_timing[MCU_LCD_GRAM_TIMING] = mcu_calc_timing(timing, dev); #else dev->panel_timing.mcu_timing[MCU_LCD_GRAM_TIMING] = mcu_calc_timing(timing, dev->dev_id); #endif }
static void mcu_dispc_set_timing(struct panel_spec *panel) { uint32_t timing = 0; pr_debug("autotst_dispc: [%s] for cs0\n", __FUNCTION__); timing = mcu_calc_timing(panel->info.mcu->timing); dispc_write(timing,DISPC_DBI_TIMING0); }
static void sprdfb_mcu_panel_mount(struct sprdfb_device *dev) { struct timing_mcu* timing = NULL; if((NULL == dev) || (NULL == dev->panel)){ printf("sprdfb: [%s]: Invalid Param\n", __FUNCTION__); return; } FB_PRINT("sprdfb: [%s]\n",__FUNCTION__); dev->panel_if_type = SPRDFB_PANEL_IF_DBI; dev->panel->info.mcu->ops = &dispc_mcu_ops; if(NULL == dev->panel->ops->panel_readid){ dev->panel->ops->panel_readid = mcu_readid; } timing = dev->panel->info.mcu->timing; dev->panel_timing.mcu_timing[MCU_LCD_REGISTER_TIMING] = mcu_calc_timing(timing); timing++; dev->panel_timing.mcu_timing[MCU_LCD_GRAM_TIMING] = mcu_calc_timing(timing); }