xref: /rk3399_rockchip-uboot/drivers/video/drm/rockchip_panel.h (revision 9ac6f4797ca1f9a9c5c1f4bdb8414fefa85f8bd3)
1 /*
2  * (C) Copyright 2008-2017 Fuzhou Rockchip Electronics Co., Ltd
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #ifndef _ROCKCHIP_PANEL_H_
8 #define _ROCKCHIP_PANEL_H_
9 
10 struct rockchip_panel_funcs {
11 	int (*init)(struct display_state *state);
12 	void (*deinit)(struct display_state *state);
13 	int (*prepare)(struct display_state *state);
14 	int (*unprepare)(struct display_state *state);
15 	int (*enable)(struct display_state *state);
16 	int (*disable)(struct display_state *state);
17 };
18 
19 struct rockchip_panel {
20 	const struct rockchip_panel_funcs *funcs;
21 	const void *data;
22 };
23 
24 
25 #ifdef CONFIG_DRM_ROCKCHIP_PANEL
26 const struct rockchip_panel *rockchip_get_panel(const void *blob, int node);
27 const struct drm_display_mode *
28 rockchip_get_display_mode_from_panel(struct display_state *state);
29 int rockchip_panel_init(struct display_state *state);
30 void rockchip_panel_deinit(struct display_state *state);
31 int rockchip_panel_enable(struct display_state *state);
32 int rockchip_panel_disable(struct display_state *state);
33 int rockchip_panel_prepare(struct display_state *state);
34 int rockchip_panel_unprepare(struct display_state *state);
35 #else
36 static inline struct rockchip_panel *rockchip_get_panel(const void *blob, int node)
37 {
38 	return NULL;
39 }
40 
41 static inline const struct drm_display_mode *
42 rockchip_get_display_mode_from_panel(struct display_state *state)
43 {
44 	return NULL;
45 }
46 
47 static inline int rockchip_panel_init(struct display_state *state)
48 {
49 	return -ENODEV;
50 }
51 
52 static inline void rockchip_panel_deinit(struct display_state *state)
53 {
54 	return;
55 }
56 
57 static inline int rockchip_panel_enable(struct display_state *state)
58 {
59 	return -ENODEV;
60 }
61 
62 static inline int rockchip_panel_disable(struct display_state *state)
63 {
64 	return -ENODEV;
65 }
66 
67 static inline int rockchip_panel_prepare(struct display_state *state)
68 {
69 	return -ENODEV;
70 }
71 
72 static inline int rockchip_panel_unprepare(struct display_state *state)
73 {
74 	return -ENODEV;
75 }
76 #endif
77 
78 extern const struct rockchip_panel_funcs panel_simple_funcs;
79 extern const struct rockchip_panel_funcs rockchip_dsi_panel_funcs;
80 #endif	/* _ROCKCHIP_PANEL_H_ */
81