drm/rockchip: Add support for vop2

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I52af209b3a9b85692d0589e1653160d284f4ba9c
This commit is contained in:
Andy Yan 2020-11-07 21:49:18 +08:00 committed by Sandy Huang
parent cdb300bd81
commit d040854345
5 changed files with 1234 additions and 1 deletions

View File

@ -5,7 +5,7 @@
#
obj-y += rockchip_display.o rockchip_crtc.o rockchip_phy.o rockchip_bridge.o \
rockchip_vop.o rockchip_vop_reg.o bmp_helper.o
rockchip_vop.o rockchip_vop_reg.o rockchip_vop2.o bmp_helper.o
obj-$(CONFIG_DRM_MIPI_DSI) += drm_mipi_dsi.o
obj-$(CONFIG_DRM_ROCKCHIP_DW_MIPI_DSI) += dw_mipi_dsi.o

View File

@ -92,6 +92,11 @@ static const struct rockchip_crtc rk3328_vop_data = {
.data = &rk3328_vop,
};
static const struct rockchip_crtc rk3568_vop_data = {
.funcs = &rockchip_vop2_funcs,
.data = &rk3568_vop,
};
static const struct udevice_id rockchip_vop_ids[] = {
{
.compatible = "rockchip,rk3036-vop",
@ -141,6 +146,9 @@ static const struct udevice_id rockchip_vop_ids[] = {
}, {
.compatible = "rockchip,rk3328-vop",
.data = (ulong)&rk3328_vop_data,
}, {
.compatible = "rockchip,rk3568-vop",
.data = (ulong)&rk3568_vop_data,
}, { }
};

View File

@ -29,7 +29,9 @@ struct rockchip_crtc_funcs {
};
struct vop_data;
struct vop2_data;
extern const struct rockchip_crtc_funcs rockchip_vop_funcs;
extern const struct rockchip_crtc_funcs rockchip_vop2_funcs;
extern const struct vop_data rk3036_vop;
extern const struct vop_data px30_vop_lit;
extern const struct vop_data px30_vop_big;
@ -45,4 +47,5 @@ extern const struct vop_data rk322x_vop;
extern const struct vop_data rk3328_vop;
extern const struct vop_data rv1108_vop;
extern const struct vop_data rv1126_vop;
extern const struct vop2_data rk3568_vop;
#endif

View File

@ -15,6 +15,10 @@
#define ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL BIT(0)
#define ROCKCHIP_OUTPUT_DSI_DUAL_LINK BIT(1)
#define ROCKCHIP_OUTPUT_DUAL_CHANNEL_LEFT_RIGHT_MODE BIT(0)
#define ROCKCHIP_OUTPUT_DUAL_CHANNEL_ODD_EVEN_MODE BIT(1)
#define ROCKCHIP_OUTPUT_DATA_SWAP BIT(2)
enum data_format {
ROCKCHIP_FMT_ARGB8888 = 0,
ROCKCHIP_FMT_RGB888,
@ -53,6 +57,20 @@ enum rockchip_mcu_cmd {
/* for use special outface */
#define ROCKCHIP_OUT_MODE_AAAA 15
#define VOP_OUTPUT_IF_RGB BIT(0)
#define VOP_OUTPUT_IF_BT1120 BIT(1)
#define VOP_OUTPUT_IF_BT656 BIT(2)
#define VOP_OUTPUT_IF_LVDS0 BIT(3)
#define VOP_OUTPUT_IF_LVDS1 BIT(4)
#define VOP_OUTPUT_IF_MIPI0 BIT(5)
#define VOP_OUTPUT_IF_MIPI1 BIT(6)
#define VOP_OUTPUT_IF_eDP0 BIT(7)
#define VOP_OUTPUT_IF_eDP1 BIT(8)
#define VOP_OUTPUT_IF_DP0 BIT(9)
#define VOP_OUTPUT_IF_DP1 BIT(10)
#define VOP_OUTPUT_IF_HDMI0 BIT(11)
#define VOP_OUTPUT_IF_HDMI1 BIT(12)
struct rockchip_mcu_timing {
int mcu_pix_total;
int mcu_cs_pst;
@ -122,6 +140,8 @@ struct connector_state {
int output_mode;
int type;
int output_type;
int output_if;
int output_flags;
int color_space;
unsigned int bpc;

File diff suppressed because it is too large Load Diff