Exemplo n.º 1
0
static int __init lcdc_wxga_init(void)
{
	int ret;
	struct msm_panel_info pinfo;

#ifdef CONFIG_FB_MSM_MDDI_AUTO_DETECT
	if (msm_fb_detect_client("lcdc_wxga"))
		return 0;
#endif

	pinfo.xres = 1280;
	pinfo.yres = 720;
	pinfo.type = LCDC_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 74250000;

	pinfo.lcdc.h_back_porch = 124;
	pinfo.lcdc.h_front_porch = 110;
	pinfo.lcdc.h_pulse_width = 136;
	pinfo.lcdc.v_back_porch = 19;
	pinfo.lcdc.v_front_porch = 5;
	pinfo.lcdc.v_pulse_width = 6;
	pinfo.lcdc.border_clr = 0;	
	pinfo.lcdc.underflow_clr = 0xff;	
	pinfo.lcdc.hsync_skew = 0;

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

	return ret;
}
Exemplo n.º 2
0
static int __init lcdc_qrdc_init(void)
{
	int ret;
	struct msm_panel_info pinfo;

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

	pinfo.xres = 1366;
	pinfo.yres = 768;
	pinfo.type = LCDC_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 43192000;

	pinfo.lcdc.h_back_porch = 120;
	pinfo.lcdc.h_front_porch = 20;
	pinfo.lcdc.h_pulse_width = 40;
	pinfo.lcdc.v_back_porch = 25;
	pinfo.lcdc.v_front_porch = 1;
	pinfo.lcdc.v_pulse_width = 7;
	pinfo.lcdc.border_clr = 0;      /* blk */
	pinfo.lcdc.underflow_clr = 0xff;        /* blue */
	pinfo.lcdc.hsync_skew = 0;

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

	return ret;
}
Exemplo n.º 3
0
static int __init lcdc_auo_init(void)
{
	int ret;

#ifdef CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM
	ret = msm_fb_detect_client("lcdc_auo_wvga");
	if (ret == -ENODEV)
		return 0;

	if (ret && (mddi_get_client_id() != 0))
		return 0;
#endif
	pinfo.xres = 480;
	pinfo.yres = 800;
	pinfo.type = LCDC_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 16;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 24576000; /* 24.576MHz to match the SPEC. from AMSS */
	pinfo.width = 46; /* physical width in mm */
	pinfo.height = 77; /* physical height in mm */

	pinfo.lcdc.h_back_porch = 12;
	pinfo.lcdc.h_front_porch = 16;
	pinfo.lcdc.h_pulse_width = 4;
	pinfo.lcdc.v_back_porch = 3;
	pinfo.lcdc.v_front_porch = 3;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.border_clr = 0;		/* blk */
	pinfo.lcdc.underflow_clr = 0xff;	/* blue */
	pinfo.lcdc.hsync_skew = 0;

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

	auo_gpio_init();

	return ret;
}
Exemplo n.º 4
0
static int __init lcdc_samsung_init(void)
{

	int ret;

#ifdef CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM
	ret = msm_fb_detect_client("lcdc_samsung_wvga");
	if (ret == -ENODEV)
		return 0;

	if (ret && (mddi_get_client_id() != 0))
		return 0;
#endif
	pinfo.xres = FB_XRES;
	pinfo.yres = FB_YRES;
	pinfo.type = LCDC_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = VINFO_BPP;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 24576000; /* 33.3MHz is limited from SUMSUNG datasheet */
	pinfo.width = 48;          /* physical width 48.24 mm */
	pinfo.height = 81;         /* physical height 80.4 mm */

	pinfo.lcdc.h_back_porch =  8;
	pinfo.lcdc.h_front_porch = 8;
	pinfo.lcdc.h_pulse_width = 1;
	pinfo.lcdc.v_back_porch =  4;
	pinfo.lcdc.v_front_porch = 4;
	pinfo.lcdc.v_pulse_width = 4;
	pinfo.lcdc.border_clr = 0;        /* blk */
	pinfo.lcdc.underflow_clr = 0xff;  /* blue */
	pinfo.lcdc.hsync_skew = 0;

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

	return ret;

}
Exemplo n.º 5
0
static int __init lcdc_prism_init(void)
{
	int ret;
	struct msm_panel_info pinfo;

#ifdef CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM
	ret = msm_fb_detect_client("lcdc_prism_wvga");
	if (ret == -ENODEV)
		return 0;

	if (ret && (mddi_get_client_id() != 0))
		return 0;
#endif

	pinfo.xres = 800;
	pinfo.yres = 480;
	MSM_FB_SINGLE_MODE_PANEL(&pinfo);
	pinfo.type = LCDC_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 38400000;

	pinfo.lcdc.h_back_porch = 21;
	pinfo.lcdc.h_front_porch = 81;
	pinfo.lcdc.h_pulse_width = 60;
	pinfo.lcdc.v_back_porch = 18;
	pinfo.lcdc.v_front_porch = 27;
	pinfo.lcdc.v_pulse_width = 2;
	pinfo.lcdc.border_clr = 0;	/* blk */
	pinfo.lcdc.underflow_clr = 0xff;	/* blue */
	pinfo.lcdc.hsync_skew = 0;

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

	return ret;
}
Exemplo n.º 6
0
static int __init hdmi_sii_init(void)
{
	int ret;
	struct msm_panel_info pinfo;

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

	pinfo.xres = 1280;
	pinfo.yres = 720;
	pinfo.type = HDMI_PANEL;
	pinfo.pdest = DISPLAY_1;
	pinfo.wait_cycle = 0;
	pinfo.bpp = 24;
	pinfo.fb_num = 2;
	pinfo.clk_rate = 74250000;

	pinfo.lcdc.h_back_porch = 124;
	pinfo.lcdc.h_front_porch = 110;
	pinfo.lcdc.h_pulse_width = 136;
	pinfo.lcdc.v_back_porch = 19;
	pinfo.lcdc.v_front_porch = 5;
	pinfo.lcdc.v_pulse_width = 6;
	pinfo.lcdc.border_clr = 0;
	pinfo.lcdc.underflow_clr = 0xff;
	pinfo.lcdc.hsync_skew = 0;

	ret = lcdc_device_register(&pinfo);
	if (ret) {
;
		goto init_exit;
	}

	ret = i2c_add_driver(&hdmi_sii_i2c_driver);
	if (ret)
;

init_exit:
	return ret;
}