malloc_simple: Add support for switching to DRAM heap
[platform/kernel/u-boot.git] / include / displayport.h
1 /*
2  * Copyright 2014 Google Inc.
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #ifndef _DISPLAYPORT_H
8 #define _DISPLAYPORT_H
9
10 struct udevice;
11 struct display_timing;
12
13 /**
14  * display_port_read_edid() - Read information from EDID
15  *
16  * @dev:        Device to read from
17  * @buf:        Buffer to read into (should be EDID_SIZE bytes)
18  * @buf_size:   Buffer size (should be EDID_SIZE)
19  * @return number of bytes read, <=0 for error
20  */
21 int display_port_read_edid(struct udevice *dev, u8 *buf, int buf_size);
22
23 /**
24  * display_port_enable() - Enable a display port device
25  *
26  * @dev:        Device to enable
27  * @panel_bpp:  Number of bits per pixel for panel
28  * @timing:     Display timings
29  * @return 0 if OK, -ve on error
30  */
31 int display_port_enable(struct udevice *dev, int panel_bpp,
32                         const struct display_timing *timing);
33
34 struct dm_display_port_ops {
35         /**
36          * read_edid() - Read information from EDID
37          *
38          * @dev:        Device to read from
39          * @buf:        Buffer to read into (should be EDID_SIZE bytes)
40          * @buf_size:   Buffer size (should be EDID_SIZE)
41          * @return number of bytes read, <=0 for error
42          */
43         int (*read_edid)(struct udevice *dev, u8 *buf, int buf_size);
44
45         /**
46          * enable() - Enable the display port device
47          *
48          * @dev:        Device to enable
49          * @panel_bpp:  Number of bits per pixel for panel
50          * @timing:     Display timings
51          * @return 0 if OK, -ve on error
52          */
53         int (*enable)(struct udevice *dev, int panel_bpp,
54                       const struct display_timing *timing);
55 };
56
57 #define display_port_get_ops(dev)       \
58         ((struct dm_display_port_ops *)(dev)->driver->ops)
59
60 #endif