mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
video: lcdc: rk3228: add vop tvout support
Change-Id: Ibfa16c73735132e0a50f7b52efb75681e61d9b20 Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
This commit is contained in:
@@ -1418,21 +1418,40 @@ static int vop_load_screen(struct rk_lcdc_driver *dev_drv, bool initscreen)
|
||||
break;
|
||||
}
|
||||
|
||||
vop_msk_reg(vop_dev, DSP_CTRL1, val);
|
||||
switch (screen->type) {
|
||||
case SCREEN_TVOUT:
|
||||
val = V_SW_UV_OFFSET_EN(1) | V_SW_IMD_TVE_DCLK_EN(1) |
|
||||
V_SW_IMD_TVE_DCLK_EN(1) |
|
||||
V_SW_IMD_TVE_DCLK_POL(1) |
|
||||
V_SW_GENLOCK(1) | V_SW_DAC_SEL(1);
|
||||
if (screen->mode.xres == 720 &&
|
||||
screen->mode.yres == 576)
|
||||
val |= V_SW_TVE_MODE(1);
|
||||
else
|
||||
val |= V_SW_TVE_MODE(0);
|
||||
vop_msk_reg(vop_dev, SYS_CTRL, val);
|
||||
break;
|
||||
case SCREEN_HDMI:
|
||||
val = V_HDMI_OUT_EN(1) | V_SW_UV_OFFSET_EN(0);
|
||||
vop_msk_reg(vop_dev, SYS_CTRL, val);
|
||||
break;
|
||||
default:
|
||||
dev_err(vop_dev->dev, "un supported interface!\n");
|
||||
break;
|
||||
}
|
||||
val = V_HDMI_HSYNC_POL(screen->pin_hsync) |
|
||||
V_HDMI_VSYNC_POL(screen->pin_vsync) |
|
||||
V_HDMI_DEN_POL(screen->pin_den) |
|
||||
V_HDMI_DCLK_POL(screen->pin_dclk);
|
||||
/*hsync vsync den dclk polo,dither */
|
||||
vop_msk_reg(vop_dev, DSP_CTRL1, val);
|
||||
|
||||
if (screen->color_mode == COLOR_RGB)
|
||||
dev_drv->overlay_mode = VOP_RGB_DOMAIN;
|
||||
else
|
||||
dev_drv->overlay_mode = VOP_YUV_DOMAIN;
|
||||
val = V_HDMI_OUT_EN(1);
|
||||
vop_msk_reg(vop_dev, SYS_CTRL, val);
|
||||
val = V_HDMI_HSYNC_POL(screen->pin_hsync) |
|
||||
V_HDMI_VSYNC_POL(screen->pin_vsync) |
|
||||
V_HDMI_DEN_POL(screen->pin_den) |
|
||||
V_HDMI_DCLK_POL(screen->pin_dclk);
|
||||
|
||||
/*hsync vsync den dclk polo,dither */
|
||||
vop_msk_reg(vop_dev, DSP_CTRL1, val);
|
||||
#ifndef CONFIG_RK_FPGA
|
||||
/*
|
||||
* Todo:
|
||||
|
||||
Reference in New Issue
Block a user