xref: /rk3399_rockchip-uboot/drivers/video/drm/rockchip_bridge.h (revision 13ceb2afdcb6f5114908e39f0d2453728eb24e0f)
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2008-2018 Fuzhou Rockchip Electronics Co., Ltd
4  */
5 
6 #ifndef _ROCKCHIP_BRIDGE_H_
7 #define _ROCKCHIP_BRIDGE_H_
8 
9 #include <config.h>
10 #include <common.h>
11 #include <dm/device.h>
12 #include <errno.h>
13 
14 struct display_state;
15 struct rockchip_bridge;
16 struct drm_display_mode;
17 struct rockchip_connector;
18 
19 struct rockchip_bridge_funcs {
20 	void (*enable)(struct rockchip_bridge *bridge);
21 	void (*disable)(struct rockchip_bridge *bridge);
22 	void (*pre_enable)(struct rockchip_bridge *bridge);
23 	void (*post_disable)(struct rockchip_bridge *bridge);
24 	void (*mode_set)(struct rockchip_bridge *bridge,
25 			 const struct drm_display_mode *mode);
26 	bool (*detect)(struct rockchip_bridge *bridge);
27 };
28 
29 struct rockchip_bridge {
30 	struct udevice *dev;
31 	const struct rockchip_bridge_funcs *funcs;
32 	struct rockchip_bridge *next_bridge;
33 	struct rockchip_connector *conn;
34 	struct display_state *state;
35 	u32 bus_format;
36 };
37 
38 void rockchip_bridge_init(struct rockchip_bridge *bridge,
39 			  struct rockchip_connector *conn,
40 			  struct display_state *state);
41 void rockchip_bridge_enable(struct rockchip_bridge *bridge);
42 void rockchip_bridge_disable(struct rockchip_bridge *bridge);
43 void rockchip_bridge_pre_enable(struct rockchip_bridge *bridge);
44 void rockchip_bridge_post_disable(struct rockchip_bridge *bridge);
45 void rockchip_bridge_mode_set(struct rockchip_bridge *bridge,
46 			      const struct drm_display_mode *mode);
47 bool rockchip_bridge_detect(struct rockchip_bridge *bridge);
48 
49 #endif
50