xref: /rk3399_rockchip-uboot/drivers/video/drm/rockchip_crtc.h (revision b5f6b28fa3454b1189d8fefe01a26dd09f2e3f1e)
1 /*
2  * (C) Copyright 2008-2017 Fuzhou Rockchip Electronics Co., Ltd
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #ifndef _ROCKCHIP_CRTC_H_
8 #define _ROCKCHIP_CRTC_H_
9 
10 struct rockchip_crtc {
11 	const struct rockchip_crtc_funcs *funcs;
12 	const void *data;
13 	struct drm_display_mode active_mode;
14 	bool hdmi_hpd : 1;
15 	bool active : 1;
16 };
17 
18 struct rockchip_crtc_funcs {
19 	int (*init)(struct display_state *state);
20 	void (*deinit)(struct display_state *state);
21 	int (*set_plane)(struct display_state *state);
22 	int (*prepare)(struct display_state *state);
23 	int (*enable)(struct display_state *state);
24 	int (*disable)(struct display_state *state);
25 	void (*unprepare)(struct display_state *state);
26 	int (*fixup_dts)(struct display_state *state, void *blob);
27 	int (*send_mcu_cmd)(struct display_state *state, u32 type, u32 value);
28 };
29 
30 struct vop_data;
31 extern const struct rockchip_crtc_funcs rockchip_vop_funcs;
32 extern const struct vop_data rk3036_vop;
33 extern const struct vop_data px30_vop_lit;
34 extern const struct vop_data px30_vop_big;
35 extern const struct vop_data rk3308_vop;
36 extern const struct vop_data rk1808_vop;
37 extern const struct vop_data rk3288_vop_big;
38 extern const struct vop_data rk3288_vop_lit;
39 extern const struct vop_data rk3368_vop;
40 extern const struct vop_data rk3366_vop;
41 extern const struct vop_data rk3399_vop_big;
42 extern const struct vop_data rk3399_vop_lit;
43 extern const struct vop_data rk322x_vop;
44 extern const struct vop_data rk3328_vop;
45 extern const struct vop_data rv1108_vop;
46 #endif
47