xref: /rk3399_rockchip-uboot/include/drm_modes.h (revision 79feefb1157f4035aaedc183e6039cb3401c756e)
1b9e63a96SMark Yao /*
2b9e63a96SMark Yao  * (C) Copyright 2008-2016 Fuzhou Rockchip Electronics Co., Ltd
3b9e63a96SMark Yao  *
4b9e63a96SMark Yao  * SPDX-License-Identifier:	GPL-2.0+
5b9e63a96SMark Yao  */
6b9e63a96SMark Yao 
7b9e63a96SMark Yao #ifndef _DRM_MODES_H
8b9e63a96SMark Yao #define _DRM_MODES_H
9b9e63a96SMark Yao 
1021016d27SAlgea Cao #define DRM_MODE_TYPE_BUILTIN	BIT(0)
1121016d27SAlgea Cao #define DRM_MODE_TYPE_CLOCK_C	(BIT(1) | DRM_MODE_TYPE_BUILTIN)
1221016d27SAlgea Cao #define DRM_MODE_TYPE_CRTC_C	(BIT(2) | DRM_MODE_TYPE_BUILTIN)
1321016d27SAlgea Cao #define DRM_MODE_TYPE_PREFERRED	BIT(3)
1421016d27SAlgea Cao #define DRM_MODE_TYPE_DEFAULT	BIT(4)
1521016d27SAlgea Cao #define DRM_MODE_TYPE_USERDEF	BIT(5)
1621016d27SAlgea Cao #define DRM_MODE_TYPE_DRIVER	BIT(6)
1721016d27SAlgea Cao 
18b9e63a96SMark Yao /* Video mode flags */
19b9e63a96SMark Yao /* bit compatible with the xorg definitions. */
20b9e63a96SMark Yao #define DRM_MODE_FLAG_PHSYNC			(1 << 0)
21b9e63a96SMark Yao #define DRM_MODE_FLAG_NHSYNC			(1 << 1)
22b9e63a96SMark Yao #define DRM_MODE_FLAG_PVSYNC			(1 << 2)
23b9e63a96SMark Yao #define DRM_MODE_FLAG_NVSYNC			(1 << 3)
24b9e63a96SMark Yao #define DRM_MODE_FLAG_INTERLACE			(1 << 4)
25b9e63a96SMark Yao #define DRM_MODE_FLAG_DBLSCAN			(1 << 5)
26b9e63a96SMark Yao #define DRM_MODE_FLAG_CSYNC			(1 << 6)
27b9e63a96SMark Yao #define DRM_MODE_FLAG_PCSYNC			(1 << 7)
28b9e63a96SMark Yao #define DRM_MODE_FLAG_NCSYNC			(1 << 8)
29b9e63a96SMark Yao #define DRM_MODE_FLAG_HSKEW			(1 << 9) /* hskew provided */
30b9e63a96SMark Yao #define DRM_MODE_FLAG_BCAST			(1 << 10)
31b9e63a96SMark Yao #define DRM_MODE_FLAG_PIXMUX			(1 << 11)
32b9e63a96SMark Yao #define DRM_MODE_FLAG_DBLCLK			(1 << 12)
33b9e63a96SMark Yao #define DRM_MODE_FLAG_CLKDIV2			(1 << 13)
34b9e63a96SMark Yao 
35b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_Unknown	0
36b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_VGA		1
37b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_DVII		2
38b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_DVID		3
39b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_DVIA		4
40b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_Composite	5
41b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_SVIDEO	6
42b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_LVDS		7
43b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_Component	8
44b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_9PinDIN	9
45b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_DisplayPort	10
46b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_HDMIA	11
47b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_HDMIB	12
48b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_TV		13
49b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_eDP		14
50b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_VIRTUAL      15
51b9e63a96SMark Yao #define DRM_MODE_CONNECTOR_DSI		16
52b9e63a96SMark Yao 
53b9e63a96SMark Yao #define DRM_EDID_PT_HSYNC_POSITIVE (1 << 1)
54b9e63a96SMark Yao #define DRM_EDID_PT_VSYNC_POSITIVE (1 << 2)
55b9e63a96SMark Yao #define DRM_EDID_PT_SEPARATE_SYNC  (3 << 3)
56b9e63a96SMark Yao #define DRM_EDID_PT_STEREO         (1 << 5)
57b9e63a96SMark Yao #define DRM_EDID_PT_INTERLACED     (1 << 7)
58b9e63a96SMark Yao 
59*79feefb1SSandy Huang /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
60*79feefb1SSandy Huang enum v4l2_colorspace {
61*79feefb1SSandy Huang 	/*
62*79feefb1SSandy Huang 	 * Default colorspace, i.e. let the driver figure it out.
63*79feefb1SSandy Huang 	 * Can only be used with video capture.
64*79feefb1SSandy Huang 	 */
65*79feefb1SSandy Huang 	V4L2_COLORSPACE_DEFAULT       = 0,
66*79feefb1SSandy Huang 
67*79feefb1SSandy Huang 	/* SMPTE 170M: used for broadcast NTSC/PAL SDTV */
68*79feefb1SSandy Huang 	V4L2_COLORSPACE_SMPTE170M     = 1,
69*79feefb1SSandy Huang 
70*79feefb1SSandy Huang 	/* Obsolete pre-1998 SMPTE 240M HDTV standard, superseded by Rec 709 */
71*79feefb1SSandy Huang 	V4L2_COLORSPACE_SMPTE240M     = 2,
72*79feefb1SSandy Huang 
73*79feefb1SSandy Huang 	/* Rec.709: used for HDTV */
74*79feefb1SSandy Huang 	V4L2_COLORSPACE_REC709        = 3,
75*79feefb1SSandy Huang 
76*79feefb1SSandy Huang 	/*
77*79feefb1SSandy Huang 	 * Deprecated, do not use. No driver will ever return this. This was
78*79feefb1SSandy Huang 	 * based on a misunderstanding of the bt878 datasheet.
79*79feefb1SSandy Huang 	 */
80*79feefb1SSandy Huang 	V4L2_COLORSPACE_BT878         = 4,
81*79feefb1SSandy Huang 
82*79feefb1SSandy Huang 	/*
83*79feefb1SSandy Huang 	 * NTSC 1953 colorspace. This only makes sense when dealing with
84*79feefb1SSandy Huang 	 * really, really old NTSC recordings. Superseded by SMPTE 170M.
85*79feefb1SSandy Huang 	 */
86*79feefb1SSandy Huang 	V4L2_COLORSPACE_470_SYSTEM_M  = 5,
87*79feefb1SSandy Huang 
88*79feefb1SSandy Huang 	/*
89*79feefb1SSandy Huang 	 * EBU Tech 3213 PAL/SECAM colorspace. This only makes sense when
90*79feefb1SSandy Huang 	 * dealing with really old PAL/SECAM recordings. Superseded by
91*79feefb1SSandy Huang 	 * SMPTE 170M.
92*79feefb1SSandy Huang 	 */
93*79feefb1SSandy Huang 	V4L2_COLORSPACE_470_SYSTEM_BG = 6,
94*79feefb1SSandy Huang 
95*79feefb1SSandy Huang 	/*
96*79feefb1SSandy Huang 	 * Effectively shorthand for V4L2_COLORSPACE_SRGB, V4L2_YCBCR_ENC_601
97*79feefb1SSandy Huang 	 * and V4L2_QUANTIZATION_FULL_RANGE. To be used for (Motion-)JPEG.
98*79feefb1SSandy Huang 	 */
99*79feefb1SSandy Huang 	V4L2_COLORSPACE_JPEG          = 7,
100*79feefb1SSandy Huang 
101*79feefb1SSandy Huang 	/* For RGB colorspaces such as produces by most webcams. */
102*79feefb1SSandy Huang 	V4L2_COLORSPACE_SRGB          = 8,
103*79feefb1SSandy Huang 
104*79feefb1SSandy Huang 	/* AdobeRGB colorspace */
105*79feefb1SSandy Huang 	V4L2_COLORSPACE_ADOBERGB      = 9,
106*79feefb1SSandy Huang 
107*79feefb1SSandy Huang 	/* BT.2020 colorspace, used for UHDTV. */
108*79feefb1SSandy Huang 	V4L2_COLORSPACE_BT2020        = 10,
109*79feefb1SSandy Huang 
110*79feefb1SSandy Huang 	/* Raw colorspace: for RAW unprocessed images */
111*79feefb1SSandy Huang 	V4L2_COLORSPACE_RAW           = 11,
112*79feefb1SSandy Huang 
113*79feefb1SSandy Huang 	/* DCI-P3 colorspace, used by cinema projectors */
114*79feefb1SSandy Huang 	V4L2_COLORSPACE_DCI_P3        = 12,
115*79feefb1SSandy Huang };
116*79feefb1SSandy Huang 
117b9e63a96SMark Yao struct drm_display_mode {
118b9e63a96SMark Yao 	/* Proposed mode values */
119b9e63a96SMark Yao 	int clock;		/* in kHz */
120b9e63a96SMark Yao 	int hdisplay;
121b9e63a96SMark Yao 	int hsync_start;
122b9e63a96SMark Yao 	int hsync_end;
123b9e63a96SMark Yao 	int htotal;
124b9e63a96SMark Yao 	int vdisplay;
125b9e63a96SMark Yao 	int vsync_start;
126b9e63a96SMark Yao 	int vsync_end;
127b9e63a96SMark Yao 	int vtotal;
128b9e63a96SMark Yao 	int vrefresh;
129b9e63a96SMark Yao 	int vscan;
130b9e63a96SMark Yao 	unsigned int flags;
13121016d27SAlgea Cao 	int picture_aspect_ratio;
132b9e63a96SMark Yao };
133b9e63a96SMark Yao 
134b9e63a96SMark Yao #endif
135