drm/rockchip: vop: add dual-channel dsi support

Change-Id: Ibddc064c6c588d0733a238b08b7ba4c5bd4518a2
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
WeiYong Bi
2017-06-24 10:33:47 +08:00
committed by Huang, Tao
parent 488f7b9a6a
commit b1ae872815
4 changed files with 9 additions and 0 deletions

View File

@@ -94,6 +94,7 @@ struct rockchip_crtc_state {
int dsp_layer_sel;
int output_type;
int output_mode;
int output_flags;
int bus_format;
};

View File

@@ -1733,6 +1733,10 @@ static void vop_crtc_enable(struct drm_crtc *crtc)
VOP_CTRL_SET(vop, mipi_en, 1);
VOP_CTRL_SET(vop, mipi_pin_pol, val);
VOP_CTRL_SET(vop, mipi_dclk_pol, 1);
if (s->output_flags & ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL)
VOP_CTRL_SET(vop, mipi_dual_channel_en, 1);
else
VOP_CTRL_SET(vop, mipi_dual_channel_en, 0);
break;
case DRM_MODE_CONNECTOR_DisplayPort:
VOP_CTRL_SET(vop, dp_dclk_pol, 0);

View File

@@ -23,6 +23,8 @@
#define VOP_MAJOR(version) ((version) >> 8)
#define VOP_MINOR(version) ((version) & 0xff)
#define ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL BIT(0)
#define AFBDC_FMT_RGB565 0x0
#define AFBDC_FMT_U8U8U8U8 0x5
#define AFBDC_FMT_U8U8U8 0x4
@@ -110,6 +112,7 @@ struct vop_ctrl {
struct vop_reg edp_en;
struct vop_reg hdmi_en;
struct vop_reg mipi_en;
struct vop_reg mipi_dual_channel_en;
struct vop_reg dp_en;
struct vop_reg dclk_pol;
struct vop_reg pin_pol;

View File

@@ -196,6 +196,7 @@ static const struct vop_ctrl rk3288_ctrl_data = {
.hdmi_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 13),
.edp_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 14),
.mipi_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 15),
.mipi_dual_channel_en = VOP_REG(RK3288_SYS_CTRL, 0x1, 3),
.dclk_pol = VOP_REG_VER(RK3288_DSP_CTRL0, 0x1, 7, 3, 0, 1),
.pin_pol = VOP_REG_VER(RK3288_DSP_CTRL0, 0x7, 4, 3, 0, 1),
.dp_dclk_pol = VOP_REG_VER(RK3368_DSP_CTRL0, 0x1, 19, 3, 0, 1),