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