Пример #1
0
int s3c_ielcd_init_global(struct s3cfb_global *ctrl)
{
    unsigned int cfg;

    *ielcd_fbdev = *ctrl;
    ielcd_fbdev->regs = s3c_ielcd_base;

#ifdef CONFIG_FB_S3C_MIPI_LCD
    s3cfb_set_polarity_only(ielcd_fbdev);
#else
    s3cfb_set_polarity(ielcd_fbdev);
#endif
    s3cfb_set_timing(ielcd_fbdev);
    s3cfb_set_lcd_size(ielcd_fbdev);

    /* dithmode */

    s3c_ielcd_writel(0x0, S3C_IELCD_DITHMODE);

    /* clk mode and mode
     * read from lcd vid con
     */
    cfg = readl(ctrl->regs + S3C_VIDCON0);
    cfg &= ~((7 << 26) | (1 << 5) | (1 << 0));
#ifdef CONFIG_FB_S3C_MIPI_LCD
    cfg |= (0 << 26 | 0 << 5);
#else
    cfg |= (0 << 26 | 1 << 5);
#endif

    s3c_ielcd_writel(cfg, S3C_IELCD_VIDCON0);

    s3c_ielcd_writel(1<<5, S3C_IELCD_VIDINTCON0);

    s3cfb_set_vsync_interrupt(ielcd_fbdev, 0);
    s3cfb_set_global_interrupt(ielcd_fbdev, 0);

    /*s3cfb_display_on(ielcd_fbdev);*/

    s3c_ielcd_writel(0, S3C_IELCD_VIDOSD0A);
    s3c_ielcd_writel((ctrl->lcd->width - 1) << 11 | (ctrl->lcd->height - 1), S3C_IELCD_VIDOSD0B);
    s3c_ielcd_writel((ctrl->lcd->width * ctrl->lcd->height), S3C_IELCD_VIDOSD0C);

    cfg = S3C_WINCON_DATAPATH_LOCAL | S3C_WINCON_BPPMODE_32BPP;
    cfg |= S3C_WINCON_INRGB_RGB;

    s3c_ielcd_writel(cfg, S3C_IELCD_WINCON0);

    s3cfb_window_on(ielcd_fbdev, 0);

    return 0;
}
Пример #2
0
static int s3cfb_init_global(struct s3cfb_global *ctrl)
{
	ctrl->output = OUTPUT_RGB;
	ctrl->rgb_mode = MODE_RGB_P;

	init_waitqueue_head(&ctrl->vsync_wait);
	mutex_init(&ctrl->lock);

	s3cfb_set_output(ctrl);
	s3cfb_set_display_mode(ctrl);
	s3cfb_set_polarity(ctrl);
	s3cfb_set_timing(ctrl);
	s3cfb_set_lcd_size(ctrl);

	return 0;
}
Пример #3
0
static int s3cfb_init_global(struct s3cfb_global *ctrl)
{
	ctrl->output = OUTPUT_RGB;
	ctrl->rgb_mode = MODE_RGB_P;

	init_completion(&ctrl->fb_complete);
	mutex_init(&ctrl->lock);

	s3cfb_set_output(ctrl);
	s3cfb_set_display_mode(ctrl);
	s3cfb_set_polarity(ctrl);
	s3cfb_set_timing(ctrl);
	s3cfb_set_lcd_size(ctrl);

	return 0;
}
Пример #4
0
int s3cfb_init_global(struct s3cfb_global *fbdev)
{
	fbdev->output = OUTPUT_RGB;
	fbdev->rgb_mode = MODE_RGB_P;

	fbdev->wq_count = 0;
	init_waitqueue_head(&fbdev->wq);
	mutex_init(&fbdev->lock);

	s3cfb_set_output(fbdev);
	s3cfb_set_display_mode(fbdev);
	s3cfb_set_polarity(fbdev);
	s3cfb_set_timing(fbdev);
	s3cfb_set_lcd_size(fbdev);

	return 0;
}
Пример #5
0
static int s3cfb_init_global(void)
{
	ctrl->output = OUTPUT_RGB;
	ctrl->rgb_mode = MODE_RGB_P;

	ctrl->wq_count = 0;
	init_waitqueue_head(&ctrl->wq);
	mutex_init(&ctrl->lock);

	s3cfb_set_output(ctrl);
	s3cfb_set_display_mode(ctrl);
	s3cfb_set_polarity(ctrl);
	s3cfb_set_timing(ctrl);
	s3cfb_set_lcd_size(ctrl);

	return 0;
}