static int __devinit lcdc_panel_probe(struct platform_device *pdev) { struct msm_panel_info *pinfo; int ret; if(pdev->id == 0) { lcdc_tft_pdata = pdev->dev.platform_data; lcdc_tft_pdata->panel_config_gpio(1); g_lcd_panel_type = lcd_panel_detect(); //temporary if(g_lcd_panel_type==LCD_PANEL_LEAD_WVGA) { pinfo = &lcdc_tft_panel_data.panel_info; pinfo->lcdc.h_back_porch = 10; pinfo->lcdc.h_front_porch = 8; pinfo->lcdc.h_pulse_width = 10; pinfo->lcdc.v_back_porch = 2; pinfo->lcdc.v_front_porch = 2; pinfo->lcdc.v_pulse_width = 2; pinfo->lcdc.border_clr = 0; /* blk */ pinfo->lcdc.underflow_clr = 0xff; /* blue */ pinfo->lcdc.hsync_skew = 0; LcdPanleID= 72; } else { pinfo = &lcdc_tft_panel_data.panel_info; pinfo->lcdc.h_back_porch = 8; pinfo->lcdc.h_front_porch = 8; pinfo->lcdc.h_pulse_width = 2; pinfo->lcdc.v_back_porch = 8; pinfo->lcdc.v_front_porch = 8; pinfo->lcdc.v_pulse_width = 2; pinfo->lcdc.border_clr = 0; /* blk */ pinfo->lcdc.underflow_clr = 0xffff; /* blue */ pinfo->lcdc.hsync_skew = 0; LcdPanleID=70; } pinfo->xres = 480; pinfo->yres = 800; pinfo->type = LCDC_PANEL; pinfo->pdest = DISPLAY_1; pinfo->wait_cycle = 0; pinfo->bpp = 18; pinfo->fb_num = 2; pinfo->clk_rate = 24576000; ret = platform_device_register(&this_device); return 0; } msm_fb_add_device(pdev); return 0; }
static int __init lcdc_panel_probe(struct platform_device *pdev) { struct msm_panel_info *pinfo; int ret; if(pdev->id == 0) { printk("use lead 320x480 panel driver!\n"); lcd_panel_pdata = pdev->dev.platform_data; lcd_panel_pdata->panel_config_gpio(1); spi_init(); g_lcd_panel_type = lcd_panel_detect(); if(g_lcd_panel_type == LCD_PANEL_TRULY_HVGA ) { R61581B_WriteReg(0x2C); } switch(g_lcd_panel_type) { case LCD_PANEL_TRULY_HVGA: LcdPanleID=(u32)LCD_PANEL_R750_ILI9481_3; //ZTE_LCD_LHT_20100611_001 break; case LCD_PANEL_LEAD_HVGA: LcdPanleID=(u32)LCD_PANEL_R750_ILI9481_1; //ZTE_LCD_LHT_20100611_001 break; default: break; } pinfo = &lcd_lcdcpanel_panel_data.panel_info; pinfo->xres = 320; pinfo->yres = 480; pinfo->type = LCDC_PANEL; pinfo->pdest = DISPLAY_1; pinfo->wait_cycle = 0; pinfo->bpp = 18; pinfo->fb_num = 2; pinfo->clk_rate = 8192000; switch(g_lcd_panel_type) { case LCD_PANEL_TRULY_HVGA: pinfo->lcdc.h_back_porch = 3; pinfo->lcdc.h_front_porch = 3; pinfo->lcdc.h_pulse_width = 3; pinfo->lcdc.v_back_porch = 2; pinfo->lcdc.v_front_porch = 10; pinfo->lcdc.v_pulse_width = 2; break; case LCD_PANEL_LEAD_HVGA: pinfo->lcdc.h_back_porch = 3; pinfo->lcdc.h_front_porch = 3; pinfo->lcdc.h_pulse_width = 3; pinfo->lcdc.v_back_porch = 2; pinfo->lcdc.v_front_porch = 4; pinfo->lcdc.v_pulse_width = 2; break; default: break; } pinfo->lcdc.border_clr = 0; /* blk */ pinfo->lcdc.underflow_clr = 0xff; /* blue */ pinfo->lcdc.hsync_skew = 3; ret = platform_device_register(&this_device); return 0; } msm_fb_add_device(pdev); return 0; }