コード例 #1
0
static int __init mipi_video_lgit_wvga_pt_init(void)
{
	int ret;

#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_video_lgit_wvga"))
		return 0;
#endif

	pinfo.xres = 720;
	pinfo.yres = 1280;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_back_porch = 88;
	pinfo.lcdc.h_front_porch = 99;//12;
	pinfo.lcdc.h_pulse_width = 4;
	pinfo.lcdc.v_back_porch = 32;
	pinfo.lcdc.v_front_porch = 8;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;	/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 0x7F;
	pinfo.bl_min = 0;
	pinfo.fb_num = 2;

	pinfo.mipi.mode = DSI_VIDEO_MODE;
	pinfo.mipi.pulse_mode_hsa_he = TRUE;
/* Modify code to apply IEF function */
#if defined(LGIT_IEF)
	pinfo.mipi.hfp_power_stop = FALSE;
	pinfo.mipi.hbp_power_stop = FALSE;
	pinfo.mipi.hsa_power_stop = FALSE;
#else
	pinfo.mipi.hfp_power_stop = TRUE;
	pinfo.mipi.hbp_power_stop = TRUE;
	pinfo.mipi.hsa_power_stop = TRUE;
#endif
	pinfo.mipi.eof_bllp_power_stop = TRUE;
	pinfo.mipi.bllp_power_stop = TRUE;
	pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_PULSE;
 	pinfo.mipi.dst_format = DSI_VIDEO_DST_FORMAT_RGB888;
	pinfo.mipi.vc = 0;
	pinfo.mipi.rgb_swap = DSI_RGB_SWAP_BGR;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.data_lane2 = TRUE;
	pinfo.mipi.data_lane3 = TRUE;
#if defined(DSI_BIT_CLK_425MHZ)
	pinfo.mipi.t_clk_post = 0x22;
	pinfo.mipi.t_clk_pre = 0x35;
	pinfo.clk_rate = 425000000;//433560000;
	pinfo.mipi.frame_rate = 60;
#endif /*DSI_BIT_CLK_425MHZ*/

#if defined(DSI_BIT_CLK_450MHZ)
	pinfo.mipi.t_clk_post = 0x22;
	pinfo.mipi.t_clk_pre = 0x36;
	pinfo.clk_rate = 450000000;
	pinfo.mipi.frame_rate = 70;
#endif /*DSI_BIT_CLK_450MHZ*/

#if defined(DSI_BIT_CLK_392MHZ)
	pinfo.mipi.t_clk_post = 0x22;
	pinfo.mipi.t_clk_pre = 0x35;
	pinfo.clk_rate = 400000000;
	pinfo.mipi.frame_rate = 60;
#endif	/*DSI_BIT_CLK_392MHZ*/
	pinfo.mipi.stream = 0; /* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	
	/*to maintain MIPI clock in HS mode always */
	pinfo.mipi.force_clk_lane_hs = 1;

	ret = mipi_lgit_device_register(&pinfo, MIPI_DSI_PRIM,
						MIPI_DSI_PANEL_WVGA_PT);
	if (ret)
		printk(KERN_ERR "%s: failed to register device!\n", __func__);

	return ret;
}
コード例 #2
0
static int __init mipi_video_lgit_wxga_pt_init(void)
{
	int ret;

#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_video_lgit_wxga"))
		return 0;
#endif

	pinfo.xres = 768;
	pinfo.yres = 1280;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_back_porch = 180;
	pinfo.lcdc.h_front_porch = 8;
	pinfo.lcdc.h_pulse_width = 4;
	pinfo.lcdc.v_back_porch = 22;
	pinfo.lcdc.v_front_porch = 8;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.border_clr = 0;			/* blk */
	pinfo.lcdc.underflow_clr = 0;       /* black */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 0x71;
	pinfo.bl_min = 0;
	pinfo.fb_num = 2;

	pinfo.mipi.mode = DSI_VIDEO_MODE;
	pinfo.mipi.pulse_mode_hsa_he = FALSE;

/* jinho.jang 2011.03.22,  Modify code to apply IEF function */

	pinfo.mipi.hfp_power_stop = FALSE;//TRUE;
	pinfo.mipi.hbp_power_stop =  FALSE;//TRUE;
	pinfo.mipi.hsa_power_stop =  FALSE;//TRUE;

	pinfo.mipi.eof_bllp_power_stop = FALSE;
	pinfo.mipi.bllp_power_stop = TRUE;
	pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_EVENT;
 	pinfo.mipi.dst_format = DSI_VIDEO_DST_FORMAT_RGB888;
	pinfo.mipi.vc = 0;
	pinfo.mipi.rgb_swap = DSI_RGB_SWAP_RGB;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.data_lane2 = TRUE;
	pinfo.mipi.data_lane3 = TRUE;
#if	defined(DSI_BIT_CLK_458MHZ)	

	pinfo.mipi.t_clk_post = 0x22;
	pinfo.mipi.t_clk_pre = 0x36;
	pinfo.clk_rate = 453770000;
	pinfo.mipi.frame_rate = 60;
#endif
    pinfo.mipi.esc_byte_ratio = 6; /* if bllp_power_stop is true, esc_clk enabling is needed. */
	pinfo.mipi.stream = 0;		/* dma_p */
	pinfo.mipi.mdp_trigger = 0;//DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	ret = mipi_lgit_device_register(&pinfo, MIPI_DSI_PRIM,
						MIPI_DSI_PANEL_WXGA);
	if (ret)
		printk(KERN_ERR "%s: failed to register device!\n", __func__);

	return ret;
}
コード例 #3
0
static int __init mipi_video_lgit_fhd_pt_init(void)
{
	int ret;

#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_video_lgit_fhd"))
		return 0;
#endif
	pinfo.xres = 1080;
	pinfo.yres = 1920;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
#if defined(CONFIG_MACH_APQ8064_GVDCM) || defined(CONFIG_MACH_APQ8064_GVKT)
	pinfo.lcdc.h_back_porch = 105;
	pinfo.lcdc.h_front_porch = 120;
#elif defined(CONFIG_MACH_APQ8064_GKATT) || defined(CONFIG_MACH_APQ8064_GKOPENHK)
	pinfo.lcdc.h_back_porch = 144;		/* 106 */
	pinfo.lcdc.h_front_porch = 152;		/* 95 */

#elif defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) 
       if (lge_get_board_revno() == HW_REV_C) {
              pinfo.lcdc.h_back_porch = 85;		/* 106 */
              pinfo.lcdc.h_front_porch = 100;		/* 95 */
	} else {
              pinfo.lcdc.h_back_porch = 150;
              pinfo.lcdc.h_front_porch = 179;
	}

#endif
	pinfo.lcdc.h_pulse_width = 4;
	pinfo.lcdc.v_back_porch = 9;
	pinfo.lcdc.v_front_porch = 3;
	pinfo.lcdc.v_pulse_width = 1;
	pinfo.lcdc.border_clr = 0;         /* blk */
	pinfo.lcdc.underflow_clr = 0xff;   /* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 0xFF;
	pinfo.bl_min = 0;
	pinfo.fb_num = 2;

	pinfo.mipi.mode = DSI_VIDEO_MODE;
	pinfo.mipi.pulse_mode_hsa_he = FALSE;

/* jinho.jang 2011.03.22,  Modify code to apply IEF function */

	pinfo.mipi.hfp_power_stop = FALSE;//TRUE; // FALSE; //TRUE;
	pinfo.mipi.hbp_power_stop = FALSE;//TRUE; // FALSE; //TRUE;
	pinfo.mipi.hsa_power_stop = FALSE;//FALSE; //TRUE;

	pinfo.mipi.esc_byte_ratio = 6;
	pinfo.mipi.eof_bllp_power_stop = TRUE; //FALSE; //TRUE;
	pinfo.mipi.bllp_power_stop = TRUE;
	pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_EVENT;
 	pinfo.mipi.dst_format = DSI_VIDEO_DST_FORMAT_RGB888;
	pinfo.mipi.vc = 0;
	pinfo.mipi.rgb_swap = DSI_RGB_SWAP_RGB;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.data_lane2 = TRUE;
	pinfo.mipi.data_lane3 = TRUE;
#if defined(DSI_BIT_CLK_900MHZ)
	pinfo.mipi.t_clk_post = 0x21;
	pinfo.mipi.t_clk_pre = 0x3C;
#if defined(CONFIG_MACH_APQ8064_GVDCM) || defined(CONFIG_MACH_APQ8064_GVKT)
	pinfo.clk_rate = 910000000;
#elif defined(CONFIG_MACH_APQ8064_GKATT) || defined(CONFIG_MACH_APQ8064_GKOPENHK)
	pinfo.clk_rate = 960000000;
#elif defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) 
       if (lge_get_board_revno() == HW_REV_C)
              pinfo.clk_rate = 884000000;
       else
              pinfo.clk_rate = 983000000;
#endif
	pinfo.mipi.frame_rate = 60;	
#endif
	pinfo.mipi.stream = 0;		/* dma_p */
	pinfo.mipi.mdp_trigger = 0;        /* DSI_CMD_TRIGGER_SW */
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;


#if defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) 
       if (lge_get_board_revno() == HW_REV_C)
              pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db_domestic_rev_c;
       else
              pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
#else
       pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
#endif

	ret = mipi_lgit_device_register(&pinfo, MIPI_DSI_PRIM, MIPI_DSI_PANEL_FHD);
	if (ret)
		printk(KERN_ERR "%s: failed to register device!\n", __func__);

	return ret;
}
コード例 #4
0
static int __init mipi_video_lgit_wxga_pt_init(void)
{
	int ret;
	struct platform_disp_info info = {
		.id = DISPLAY_PRIMARY,
		.dest = DISPLAY_1
	};

#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_video_lgit_wxga", &info))
		return 0;
#endif

	pinfo.xres = 768;
	pinfo.yres = 1280;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = info.dest;
	pinfo.disp_id = info.id;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_back_porch = 180;
	pinfo.lcdc.h_front_porch = 8;
	pinfo.lcdc.h_pulse_width = 4;
	pinfo.lcdc.v_back_porch = 22;
	pinfo.lcdc.v_front_porch = 8;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.border_clr = 0;        /* blk */
	pinfo.lcdc.underflow_clr = 0x0;  /* black */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 0x72;
	pinfo.bl_min = 0x02;
	pinfo.fb_num = 2;

	pinfo.mipi.mode = DSI_VIDEO_MODE;
	pinfo.mipi.pulse_mode_hsa_he = FALSE;

	pinfo.mipi.hfp_power_stop = FALSE;
	pinfo.mipi.hbp_power_stop = FALSE;
	pinfo.mipi.hsa_power_stop = FALSE;

	pinfo.mipi.eof_bllp_power_stop = FALSE;
	pinfo.mipi.bllp_power_stop = TRUE;
	pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_EVENT;
	pinfo.mipi.dst_format = DSI_VIDEO_DST_FORMAT_RGB888;
	pinfo.mipi.vc = 0;
	pinfo.mipi.rgb_swap = DSI_RGB_SWAP_RGB;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.data_lane2 = TRUE;
	pinfo.mipi.data_lane3 = TRUE;
	pinfo.mipi.t_clk_post = 0x22;
	pinfo.mipi.t_clk_pre = 0x36;
	pinfo.clk_rate = 453770000;
	pinfo.mipi.esc_byte_ratio = 6;
	pinfo.mipi.frame_rate = 60;
	pinfo.mipi.stream = 0;
	pinfo.mipi.mdp_trigger = 0;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	ret = mipi_lgit_device_register(&pinfo, MIPI_DSI_PRIM,
			MIPI_DSI_PANEL_WXGA);
	if (ret)
		pr_err("%s: failed to register device!\n", __func__);

	return ret;
}