Ejemplo n.º 1
0
static int mipi_cmd_samsung_blue_qhd_pt_init(void)
{
	int ret;
#if defined (CONFIG_FB_MSM_MDP_ABL)
	pinfo.panel_char = smd_gamma_tbl;
#endif

	pinfo.xres = 540;
	pinfo.yres = 960;
	pinfo.type = MIPI_CMD_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;

	pinfo.lcdc.h_back_porch = 64;
	pinfo.lcdc.h_front_porch = 96;
	pinfo.lcdc.h_pulse_width = 32;
	pinfo.lcdc.v_back_porch = 16;
	pinfo.lcdc.v_front_porch = 16;
	pinfo.lcdc.v_pulse_width = 4;
	pinfo.lcd.v_back_porch = 16;
	pinfo.lcd.v_front_porch = 16;
	pinfo.lcd.v_pulse_width = 4;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;	/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 482000000;
	pinfo.lcd.vsync_enable = TRUE;
	pinfo.lcd.hw_vsync_mode = TRUE;
	pinfo.lcd.refx100 = 6096; /* adjust refx100 to prevent tearing */

	pinfo.mipi.mode = DSI_CMD_MODE;
	pinfo.mipi.dst_format = DSI_CMD_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.t_clk_post = 0x0a;
	pinfo.mipi.t_clk_pre = 0x20;
	pinfo.mipi.stream = 0;	/* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_NONE;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.te_sel = 1; /* TE from vsycn gpio */
	pinfo.mipi.interleave_max = 1;
	pinfo.mipi.insert_dcs_cmd = TRUE;
	pinfo.mipi.wr_mem_continue = 0x3c;
	pinfo.mipi.wr_mem_start = 0x2c;
	pinfo.mipi.dsi_phy_db = &dsi_cmd_mode_phy_db;
	pinfo.mipi.esc_byte_ratio = 4;

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

	return ret;
}
static int __init mipi_cmd_samsung_oled_qhd_pt_init(void)
{
	int ret;
#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_cmd_samsung_oled_qhd"))
		return 0;
#endif
	pinfo.xres = 540;
	pinfo.yres = 960;
	pinfo.mode2_xres = 0;
	pinfo.mode2_yres = 0;
	pinfo.mode2_bpp = 0;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_pulse_width = 12;
	pinfo.lcdc.h_back_porch = 38;
	pinfo.lcdc.h_front_porch = 38;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.v_back_porch = 2;
	pinfo.lcdc.v_front_porch = 13;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 450000000;
	pinfo.mipi.mode = DSI_VIDEO_MODE;
	pinfo.mipi.pulse_mode_hsa_he = TRUE;
	pinfo.mipi.hfp_power_stop = FALSE;
	pinfo.mipi.hbp_power_stop = FALSE;
	pinfo.mipi.hsa_power_stop = FALSE;
	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_RGB;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.tx_eot_append = FALSE;
	pinfo.mipi.t_clk_post = 0x19;
	pinfo.mipi.t_clk_pre = 0x2D;
	pinfo.mipi.stream = 0; /* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.frame_rate = 60;
	pinfo.mipi.force_clk_lane_hs = 1;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
				MIPI_DSI_PANEL_WVGA_PT,
				&mipi_pd);
	if (ret)
		pr_err("%s: failed to register device!\n", __func__);

	return ret;
}
Ejemplo n.º 3
0
static int __init mipi_video_himax_tft_hd_pt_init(void)
{
	int ret;
#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_video_himax_tft_hd"))
		return 0;
#endif

	pinfo.xres = 480;
	pinfo.yres = 800;
//	pinfo.height = 101;
//	pinfo.width = 57;
	pinfo.mode2_xres = 0;
	pinfo.mode2_yres = 0;
	pinfo.mode2_bpp = 0;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_pulse_width = 32;
	pinfo.lcdc.h_back_porch = 135;
	pinfo.lcdc.h_front_porch = 150;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.v_back_porch = 22;
	pinfo.lcdc.v_front_porch = 20;
	
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 492000000;

/*
	mipi clk =[(480+h_back_porch+h_front_porch+h_pulse_width)*(800+v_front_porch+v_back_porch+v_pulse_width)*24*60]/4(lanes)
	mipi clk =[(480+135+150+32)*(800+20+22+2)*24*60]/4(lanes)

		=797*844*24*60/2 =484

	pixel clk=(mipi clk *4)/24
		=484*4/24= 80 
*/
	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 = TRUE;
	pinfo.mipi.bllp_power_stop = TRUE;
	pinfo.mipi.traffic_mode = DSI_BURST_MODE;
	pinfo.mipi.dst_format = DSI_VIDEO_DST_FORMAT_RGB888;
	pinfo.mipi.vc = 0;

	pinfo.mipi.rgb_swap = DSI_RGB_SWAP_RGB;

	/* BOARD_JASPER2_VZW/BOARD_HIGGS_SPR */
	if (system_rev == 0)
		pinfo.mipi.dlane_swap = 0x00;
	else
		pinfo.mipi.dlane_swap = 0x01;
	
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;

//	pinfo.mipi.no_max_pkt_size = 0;

	pinfo.mipi.tx_eot_append = 0x01;
	pinfo.mipi.t_clk_post = 0x19;
	pinfo.mipi.t_clk_pre = 0x2D;
	pinfo.mipi.stream = 0; /* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_NONE;//DSI_CMD_TRIGGER_NONE;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.frame_rate = 60;
	pinfo.mipi.force_clk_lane_hs = 1;
	pinfo.mipi.esc_byte_ratio = 2;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
				MIPI_DSI_PANEL_WVGA_PT,
				&mipi_pd);
	if (ret)
		pr_info("%s: failed to register device!\n", __func__);

		pr_info("%s:\n", __func__);
	return ret;
}
Ejemplo n.º 4
0
static int __init mipi_video_himax_tft_hd_pt_init(void)
{
	int ret;
#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
	if (msm_fb_detect_client("mipi_video_himax_tft_hd"))
		return 0;
#endif

	pinfo.xres = 720;
	pinfo.yres = 1280;
	pinfo.mode2_xres = 0;
	pinfo.mode2_yres = 0;
	pinfo.mode2_bpp = 0;
	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_pulse_width = 36;
	pinfo.lcdc.h_back_porch = 108;
	pinfo.lcdc.h_front_porch = 108;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.v_back_porch = 4;
	pinfo.lcdc.v_front_porch = 11;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 450000000;

/*
	mipi clk =[(720+108+108+36)*(1280+11+4+2)*24*60]/4(lanes)
		=453846240Hz

	pixel clk=(mipi clk *4)/24
		=75641040Hz
*/
	pinfo.mipi.mode = DSI_VIDEO_MODE;
	pinfo.mipi.pulse_mode_hsa_he = TRUE;
	pinfo.mipi.hfp_power_stop = TRUE;
	pinfo.mipi.hbp_power_stop = TRUE;
	pinfo.mipi.hsa_power_stop = TRUE;
	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_RGB;
	pinfo.mipi.dlane_swap = 0x00;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.data_lane2 = TRUE;
	pinfo.mipi.data_lane3 = TRUE;

	pinfo.mipi.force_clk_lane_hs = 1;
	pinfo.mipi.no_max_pkt_size = 1;

	pinfo.mipi.tx_eot_append = FALSE;
	pinfo.mipi.t_clk_post = 0x20;
	pinfo.mipi.t_clk_pre = 0x2D;
	pinfo.mipi.stream = 0; /* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.frame_rate = 60;

	pinfo.mipi.esc_byte_ratio = 4;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
				MIPI_DSI_PANEL_720P_PT,
				&mipi_pd);
	if (ret)
		pr_info("%s: failed to register device!\n", __func__);

		pr_info("%s:\n", __func__);
	return ret;
}
Ejemplo n.º 5
0
static int __init mipi_video_samsung_wxga_init(void)
{
    int ret;

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

    /* Try-case
    ref-2. 20110420, kkcho
    3030->3035 qualcomm-patch이후,
    mipi_dsi.c의 mipi_dsi_phy_pll_config(panel_info->clk_rate);  코드를 막아야 함.
    그렇지 않으면.. clk value변경으로 화면 안나옴.
    */
    pinfo.xres = 800;
    pinfo.yres = 1280;

#ifdef MIPI_CLOCK_500MBPS
    /*
     * Panel's Horizontal input timing requirement is to
     * include dummy(pad) data of 200 clk in addition to
     * width and porch/sync width values
     */
    pinfo.lcdc.xres_pad = 290;
    pinfo.lcdc.yres_pad = 0;
#endif

    pinfo.type = MIPI_VIDEO_PANEL;
    pinfo.pdest = DISPLAY_1;
    pinfo.wait_cycle = 0;
    pinfo.bpp = 24;
#if defined (MIPI_CLOCK_500MBPS)
    pinfo.clk_rate = 500000000;
#elif defined (MIPI_CLOCK_450MBPS)
    pinfo.clk_rate = 450000000;
#elif defined (MIPI_CLOCK_370MBPS)
    pinfo.clk_rate = 370000000;
#else
    pinfo.clk_rate = 500000000;
#endif

#if defined (MIPI_CLOCK_500MBPS)
    pinfo.lcdc.h_back_porch = 10;
    pinfo.lcdc.h_front_porch = 16;
    pinfo.lcdc.h_pulse_width = 2;
    pinfo.lcdc.v_back_porch = 2;
    pinfo.lcdc.v_front_porch = 2;
    pinfo.lcdc.v_pulse_width = 2;
#elif defined (MIPI_CLOCK_450MBPS)
    pinfo.lcdc.h_back_porch = 12;
    pinfo.lcdc.h_front_porch = 18;
    pinfo.lcdc.h_pulse_width = 4;
    pinfo.lcdc.v_back_porch = 4;
    pinfo.lcdc.v_front_porch = 3;
    pinfo.lcdc.v_pulse_width = 3;
#elif defined (MIPI_CLOCK_370MBPS)
    pinfo.lcdc.h_back_porch = 10;
    pinfo.lcdc.h_front_porch = 16;
    pinfo.lcdc.h_pulse_width = 2;
    pinfo.lcdc.v_back_porch = 2;
    pinfo.lcdc.v_front_porch = 2;
    pinfo.lcdc.v_pulse_width = 2;
#else
    pinfo.lcdc.h_back_porch = 80;//96;//48;//10;
    pinfo.lcdc.h_front_porch = 16;
    pinfo.lcdc.h_pulse_width = 2;
    pinfo.lcdc.v_back_porch = 4;
    pinfo.lcdc.v_front_porch = 2;
    pinfo.lcdc.v_pulse_width = 2;
#endif
    pinfo.lcdc.border_clr = 0;	/* blk */
    pinfo.lcdc.underflow_clr = 0xff;	/* blue */
    pinfo.lcdc.hsync_skew = 0;
    //pinfo.bl_max = 125;
    //pinfo.bl_max = 106;
    pinfo.bl_max = 83;
    pinfo.bl_min = 1;
    pinfo.fb_num = 2;

    pinfo.lcd.vsync_enable = FALSE;
    pinfo.lcd.hw_vsync_mode = FALSE;

    pinfo.mipi.mode = DSI_VIDEO_MODE;
#if defined (MIPI_CLOCK_450MBPS) || defined (MIPI_CLOCK_500MBPS)
    pinfo.mipi.pulse_mode_hsa_he = TRUE;
    pinfo.mipi.hfp_power_stop = FALSE;
    pinfo.mipi.hbp_power_stop = FALSE;
    pinfo.mipi.hsa_power_stop = TRUE;
    pinfo.mipi.eof_bllp_power_stop = TRUE;
    pinfo.mipi.bllp_power_stop = FALSE;
    //pinfo.mipi.traffic_mode = DSI_BURST_MODE;
    pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_EVENT;
#elif defined (MIPI_CLOCK_370MBPS)
    pinfo.mipi.pulse_mode_hsa_he = TRUE;
    pinfo.mipi.hfp_power_stop = FALSE;
    pinfo.mipi.hbp_power_stop = FALSE;
    pinfo.mipi.hsa_power_stop = TRUE;
    pinfo.mipi.eof_bllp_power_stop = TRUE;
    pinfo.mipi.bllp_power_stop = FALSE;
    pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_EVENT;
#else
    pinfo.mipi.pulse_mode_hsa_he = TRUE;
    pinfo.mipi.hfp_power_stop = TRUE;
    pinfo.mipi.hbp_power_stop = TRUE;
    pinfo.mipi.hsa_power_stop = TRUE;
    pinfo.mipi.eof_bllp_power_stop = TRUE;
    pinfo.mipi.bllp_power_stop = TRUE;
    pinfo.mipi.traffic_mode = DSI_NON_BURST_SYNCH_PULSE;
#endif
    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 (MIPI_CLOCK_500MBPS)
    //500Mbps
    pinfo.mipi.t_clk_post = 0x21;
    pinfo.mipi.t_clk_pre = 0x30;
#elif defined (MIPI_CLOCK_450MBPS)
    //450Mbps
    pinfo.mipi.t_clk_post = 0x22;
    pinfo.mipi.t_clk_pre = 0x3F;
#elif defined (MIPI_CLOCK_370MBPS)
    //370Mbps
    pinfo.mipi.t_clk_post = 0x22;
    pinfo.mipi.t_clk_pre = 0x3d;
#else
    //250Mbps
    pinfo.mipi.t_clk_post = 0x04;//10;
    pinfo.mipi.t_clk_pre = 0x1C;//30;
#endif
    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;

    pinfo.mipi.frame_rate = 58;
    pinfo.lcd.refx100 = 5800;

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

    return ret;
}
Ejemplo n.º 6
0
static int __init mipi_video_samsung_oled_wvga_pt_init(void)
{
	int ret;

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

	pinfo.xres = 480;
	pinfo.yres = 800;
	/*
	 *
	 * Panel's Horizontal input timing requirement is to
	 * include dummy(pad) data of 200 clk in addition to
	 * width and porch/sync width values
	 */
	pinfo.lcdc.xres_pad = 0;
	pinfo.lcdc.yres_pad = 2;

	pinfo.type = MIPI_VIDEO_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
#if defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT_PANEL)
	pinfo.bpp = 24;
#else
	pinfo.bpp = 32;
#endif
	pinfo.lcdc.h_back_porch  = 16;	/* 64 */
	pinfo.lcdc.h_front_porch = 16;	/* 64 */
	pinfo.lcdc.h_pulse_width =  4;
	pinfo.lcdc.v_back_porch  = 7;	/* 4 */
	pinfo.lcdc.v_front_porch =  105;
	pinfo.lcdc.v_pulse_width = 2;	/* 2 */
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;

	pinfo.clk_rate = 343500000;
	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 = 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.tx_eot_append = TRUE;*/

	pinfo.mipi.t_clk_post = 0x19;
	pinfo.mipi.t_clk_pre = 0x2D;
	pinfo.mipi.stream = 0; /* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.frame_rate = 60;
	pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
	pinfo.mipi.esc_byte_ratio = 1;


	ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
						MIPI_DSI_PANEL_WVGA_PT,
						&mipi_pd);
	if (ret)
		pr_err("%s: failed to register device!\n", __func__);

	return ret;
}
Ejemplo n.º 7
0
static int __init mipi_cmd_samsung_oled_qhd_pt_init(void)
{
	int ret;


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

	pinfo.xres = 540;
	pinfo.yres = 960;
	pinfo.mode2_xres = 0;
	pinfo.mode2_yres = 0;
	pinfo.mode2_bpp = 0;

	pinfo.type = MIPI_CMD_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 32;
	pinfo.lcdc.h_back_porch = 0;
	pinfo.lcdc.h_front_porch = 0;
	pinfo.lcdc.h_pulse_width = 0;
	pinfo.lcdc.v_back_porch = 0x2;
	pinfo.lcdc.v_front_porch = 0x4D;
	pinfo.lcdc.v_pulse_width = 0x1;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;	/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 410000000;
	pinfo.lcd.v_back_porch = pinfo.lcdc.v_back_porch;
	pinfo.lcd.v_front_porch = pinfo.lcdc.v_front_porch;
	pinfo.lcd.v_pulse_width = pinfo.lcdc.v_pulse_width;
	pinfo.lcd.vsync_enable = TRUE;
	pinfo.lcd.hw_vsync_mode = TRUE;
	pinfo.lcd.refx100 = 4024; /* adjust refx100 to prevent tearing */
	pinfo.mipi.mode = DSI_CMD_MODE;
	pinfo.mipi.dst_format = DSI_CMD_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.t_clk_post = 0x19;
	pinfo.mipi.t_clk_pre = 0x2E;
	pinfo.mipi.stream = 0; /* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_NONE;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.te_sel = 1; /* TE from vsycn gpio */
	pinfo.mipi.interleave_max = 1;
	pinfo.mipi.insert_dcs_cmd = TRUE;
	pinfo.mipi.wr_mem_continue = 0x3c;
	pinfo.mipi.wr_mem_start = 0x2c;
	pinfo.mipi.dsi_phy_db = &dsi_command_mode_phy_db;
	pinfo.mipi.esc_byte_ratio = 4;	

	ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
						MIPI_DSI_PANEL_WVGA_PT,
						&mipi_pd);
	if (ret)
		pr_err("%s: failed to register device!\n", __func__);

	return ret;
}
Ejemplo n.º 8
0
static int __init mipi_cmd_samsung_fwvga_pt_init(void)
{
	int ret;

	if (msm_fb_detect_client("mipi_cmd_samsung_fwvga"))
		return 0;

	pinfo.xres = 480;
	pinfo.yres = 854;
	pinfo.type = MIPI_CMD_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.lcdc.h_back_porch = 50;
	pinfo.lcdc.h_front_porch = 50;
	pinfo.lcdc.h_pulse_width = 20;
	pinfo.lcdc.v_back_porch = 9;
	pinfo.lcdc.v_front_porch = 9;
	pinfo.lcdc.v_pulse_width = 4;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;	/* blue */
	pinfo.lcdc.hsync_skew = 0;
	pinfo.bl_max = 255;
	pinfo.bl_min = 1;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 400000000;
	//pinfo.is_3d_panel = FB_TYPE_3D_PANEL;
	pinfo.lcd.vsync_enable = TRUE;
	pinfo.lcd.hw_vsync_mode = TRUE;
	pinfo.lcd.refx100 = 6300; /* adjust refx100 to prevent tearing */
	pinfo.lcd.v_back_porch = 9;
	pinfo.lcd.v_front_porch = 9;
	pinfo.lcd.v_pulse_width = 4;

	pinfo.mipi.mode = DSI_CMD_MODE;
	pinfo.mipi.dst_format = DSI_CMD_DST_FORMAT_RGB888;
	pinfo.mipi.vc = 0;
	pinfo.mipi.data_lane0 = TRUE;
	pinfo.mipi.data_lane1 = TRUE;
	pinfo.mipi.esc_byte_ratio = 4;
	pinfo.mipi.t_clk_post = 0x4;
	pinfo.mipi.t_clk_pre = 0x1a;
	pinfo.mipi.stream = 0;	/* dma_p */
	pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_NONE;
	pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
	pinfo.mipi.te_sel = 1; /* TE from vsycn gpio */
	pinfo.mipi.interleave_max = 1;
	pinfo.mipi.insert_dcs_cmd = TRUE;
	pinfo.mipi.wr_mem_continue = 0x3c;
	pinfo.mipi.wr_mem_start = 0x2c;
	pinfo.mipi.dlane_swap = 0x1;
	pinfo.mipi.frame_rate = 59;
	pinfo.mipi.dsi_phy_db = &dsi_cmd_mode_phy_db;

	ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
						MIPI_DSI_PANEL_QHD_PT);
	if (ret)
		pr_err("%s: failed to register device!\n", __func__);

	return ret;
}
static int __init mipi_cmd_samsung_oled_qhd_pt_init(void)
{
    int ret;

    printk(KERN_DEBUG "[lcd] mipi_cmd_samsung_oled_qhd_pt_init start\n");

#ifdef CONFIG_FB_MSM_MIPI_PANEL_DETECT
    if (msm_fb_detect_client("mipi_cmd_samsung_oled_qhd"))
        return 0;
#endif
    pinfo.xres = 720;
    pinfo.yres = 1280;
    pinfo.mode2_xres = 0;
    pinfo.mode2_yres = 0;
    pinfo.mode2_bpp = 0;
    /*
     *
     * Panel's Horizontal input timing requirement is to
     * include dummy(pad) data of 200 clk in addition to
     * width and porch/sync width values
     */

    pinfo.type = MIPI_VIDEO_PANEL;
    pinfo.pdest = DISPLAY_1;
    pinfo.wait_cycle = 0;
    pinfo.bpp = 24;

    pinfo.lcdc.h_back_porch = 175;
    pinfo.lcdc.h_front_porch = 173;

    pinfo.lcdc.h_pulse_width = 2;
    pinfo.lcdc.v_back_porch = 2;
    pinfo.lcdc.v_front_porch = 13;
    pinfo.lcdc.v_pulse_width = 1;
    pinfo.lcdc.border_clr = 0;	/* blk */
    pinfo.lcdc.underflow_clr = 0xff;	/* blue */
    pinfo.lcdc.hsync_skew = 0;

    pinfo.lcdc.xres_pad = 0;
    pinfo.lcdc.yres_pad = 0;

    pinfo.bl_max = 255;
    pinfo.bl_min = 1;
    pinfo.fb_num = 2;

    pinfo.clk_rate = 499000000;

    pinfo.lcd.v_back_porch = pinfo.lcdc.v_back_porch;
    pinfo.lcd.v_front_porch = pinfo.lcdc.v_front_porch;
    pinfo.lcd.v_pulse_width = pinfo.lcdc.v_pulse_width;

    pinfo.mipi.mode = DSI_VIDEO_MODE;
    pinfo.mipi.pulse_mode_hsa_he = TRUE;
    pinfo.mipi.hfp_power_stop = TRUE;
    pinfo.mipi.hbp_power_stop = TRUE;
    pinfo.mipi.hsa_power_stop = TRUE;
    pinfo.mipi.eof_bllp_power_stop = TRUE;
    pinfo.mipi.bllp_power_stop = TRUE;
    pinfo.mipi.traffic_mode = DSI_BURST_MODE;
    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 = 0x19;
    pinfo.mipi.t_clk_pre = 0x30;
    pinfo.mipi.stream = 0; /* dma_p */
    pinfo.mipi.mdp_trigger = DSI_CMD_TRIGGER_SW;
    pinfo.mipi.dma_trigger = DSI_CMD_TRIGGER_SW;
    pinfo.mipi.frame_rate = 60;
    pinfo.mipi.dsi_phy_db = &dsi_video_mode_phy_db;
    pinfo.mipi.force_clk_lane_hs = 1;

    /*
    *	To support NONE CMC & HAS CMC
    *	some kind of parameter changing
    */
    panel_cond_set_4_8[28] = 0x37;
    panel_cond_aid_ref[28] = 0x37;

    ret = mipi_samsung_device_register(&pinfo, MIPI_DSI_PRIM,
                                       MIPI_DSI_PANEL_WVGA_PT,
                                       &mipi_pd);
    if (ret)
        pr_err("%s: failed to register device!\n", __func__);

    printk(KERN_DEBUG "[lcd] mipi_cmd_samsung_oled_qhd_pt_init end\n");

    return ret;
}