xref: /linux/include/uapi/linux/v4l2-dv-timings.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1*e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2607ca46eSDavid Howells /*
3607ca46eSDavid Howells  * V4L2 DV timings header.
4607ca46eSDavid Howells  *
5cf038120SHans Verkuil  * Copyright (C) 2012-2016  Hans Verkuil <hans.verkuil@cisco.com>
6607ca46eSDavid Howells  */
7607ca46eSDavid Howells 
8607ca46eSDavid Howells #ifndef _V4L2_DV_TIMINGS_H
9607ca46eSDavid Howells #define _V4L2_DV_TIMINGS_H
10607ca46eSDavid Howells 
11607ec6a5SMauro Carvalho Chehab #if __GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 6))
12607ec6a5SMauro Carvalho Chehab /* Sadly gcc versions older than 4.6 have a bug in how they initialize
13607ec6a5SMauro Carvalho Chehab    anonymous unions where they require additional curly brackets.
14607ec6a5SMauro Carvalho Chehab    This violates the C1x standard. This workaround adds the curly brackets
15607ec6a5SMauro Carvalho Chehab    if needed. */
16607ca46eSDavid Howells #define V4L2_INIT_BT_TIMINGS(_width, args...) \
17607ca46eSDavid Howells 	{ .bt = { _width , ## args } }
18607ec6a5SMauro Carvalho Chehab #else
19607ec6a5SMauro Carvalho Chehab #define V4L2_INIT_BT_TIMINGS(_width, args...) \
20607ec6a5SMauro Carvalho Chehab 	.bt = { _width , ## args }
21607ec6a5SMauro Carvalho Chehab #endif
22607ca46eSDavid Howells 
23cf038120SHans Verkuil /* CEA-861-F timings (i.e. standard HDTV timings) */
24607ca46eSDavid Howells 
25607ca46eSDavid Howells #define V4L2_DV_BT_CEA_640X480P59_94 { \
26607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
27607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \
28607ca46eSDavid Howells 		25175000, 16, 96, 48, 10, 2, 33, 0, 0, 0, \
29cf038120SHans Verkuil 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \
30cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 1) \
31607ca46eSDavid Howells }
32607ca46eSDavid Howells 
33a7b74bd8SHans Verkuil /* Note: these are the nominal timings, for HDMI links this format is typically
34a7b74bd8SHans Verkuil  * double-clocked to meet the minimum pixelclock requirements.  */
35a7b74bd8SHans Verkuil #define V4L2_DV_BT_CEA_720X480I59_94 { \
36a7b74bd8SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
37a7b74bd8SHans Verkuil 	V4L2_INIT_BT_TIMINGS(720, 480, 1, 0, \
38a7b74bd8SHans Verkuil 		13500000, 19, 62, 57, 4, 3, 15, 4, 3, 16, \
395ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
40cf038120SHans Verkuil 		V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
41cf038120SHans Verkuil 		V4L2_DV_FL_HAS_PICTURE_ASPECT | V4L2_DV_FL_HAS_CEA861_VIC, \
42cf038120SHans Verkuil 		{ 4, 3 }, 6) \
43a7b74bd8SHans Verkuil }
44a7b74bd8SHans Verkuil 
45607ca46eSDavid Howells #define V4L2_DV_BT_CEA_720X480P59_94 { \
46607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
47607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(720, 480, 0, 0, \
48607ca46eSDavid Howells 		27000000, 16, 62, 60, 9, 6, 30, 0, 0, 0, \
49cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
50cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_PICTURE_ASPECT | \
51cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 4, 3 }, 2) \
52607ca46eSDavid Howells }
53607ca46eSDavid Howells 
54a7b74bd8SHans Verkuil /* Note: these are the nominal timings, for HDMI links this format is typically
55a7b74bd8SHans Verkuil  * double-clocked to meet the minimum pixelclock requirements.  */
56a7b74bd8SHans Verkuil #define V4L2_DV_BT_CEA_720X576I50 { \
57a7b74bd8SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
58a7b74bd8SHans Verkuil 	V4L2_INIT_BT_TIMINGS(720, 576, 1, 0, \
59a7b74bd8SHans Verkuil 		13500000, 12, 63, 69, 2, 3, 19, 2, 3, 20, \
605ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
61cf038120SHans Verkuil 		V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
62cf038120SHans Verkuil 		V4L2_DV_FL_HAS_PICTURE_ASPECT | V4L2_DV_FL_HAS_CEA861_VIC, \
63cf038120SHans Verkuil 		{ 4, 3 }, 21) \
64a7b74bd8SHans Verkuil }
65a7b74bd8SHans Verkuil 
66607ca46eSDavid Howells #define V4L2_DV_BT_CEA_720X576P50 { \
67607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
68607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(720, 576, 0, 0, \
69607ca46eSDavid Howells 		27000000, 12, 64, 68, 5, 5, 39, 0, 0, 0, \
70cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
71cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_PICTURE_ASPECT | \
72cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 4, 3 }, 17) \
73607ca46eSDavid Howells }
74607ca46eSDavid Howells 
75607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1280X720P24 { \
76607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
77607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
78607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
79607ca46eSDavid Howells 		59400000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \
80607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \
81cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 60) \
82607ca46eSDavid Howells }
83607ca46eSDavid Howells 
84607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1280X720P25 { \
85607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
86607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
87607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
88607ca46eSDavid Howells 		74250000, 2420, 40, 220, 5, 5, 20, 0, 0, 0, \
89cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
90cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 61) \
91607ca46eSDavid Howells }
92607ca46eSDavid Howells 
93607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1280X720P30 { \
94607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
95607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
96607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
97607ca46eSDavid Howells 		74250000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \
985ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
99cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
100cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 62) \
101607ca46eSDavid Howells }
102607ca46eSDavid Howells 
103607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1280X720P50 { \
104607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
105607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
106607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
107607ca46eSDavid Howells 		74250000, 440, 40, 220, 5, 5, 20, 0, 0, 0, \
108cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
109cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 19) \
110607ca46eSDavid Howells }
111607ca46eSDavid Howells 
112607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1280X720P60 { \
113607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
114607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
115607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
116607ca46eSDavid Howells 		74250000, 110, 40, 220, 5, 5, 20, 0, 0, 0, \
1175ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
118cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
119cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 4) \
120607ca46eSDavid Howells }
121607ca46eSDavid Howells 
122607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080P24 { \
123607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
124607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
125607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
126607ca46eSDavid Howells 		74250000, 638, 44, 148, 4, 5, 36, 0, 0, 0, \
1275ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
128cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
129cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 32) \
130607ca46eSDavid Howells }
131607ca46eSDavid Howells 
132607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080P25 { \
133607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
134607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
135607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
136607ca46eSDavid Howells 		74250000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \
137cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
138cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 33) \
139607ca46eSDavid Howells }
140607ca46eSDavid Howells 
141607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080P30 { \
142607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
143607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
144607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
145607ca46eSDavid Howells 		74250000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \
1465ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
147cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
148cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 34) \
149607ca46eSDavid Howells }
150607ca46eSDavid Howells 
151607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080I50 { \
152607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
153607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \
154607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
155607ca46eSDavid Howells 		74250000, 528, 44, 148, 2, 5, 15, 2, 5, 16, \
1565ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
157cf038120SHans Verkuil 		V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
158cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 20) \
159607ca46eSDavid Howells }
160607ca46eSDavid Howells 
161607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080P50 { \
162607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
163607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
164607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
165607ca46eSDavid Howells 		148500000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \
166cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
167cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 31) \
168607ca46eSDavid Howells }
169607ca46eSDavid Howells 
170607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080I60 { \
171607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
172607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \
173607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
174607ca46eSDavid Howells 		74250000, 88, 44, 148, 2, 5, 15, 2, 5, 16, \
175607ca46eSDavid Howells 		V4L2_DV_BT_STD_CEA861, \
1765ce65d1fSHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | \
177cf038120SHans Verkuil 		V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
178cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 5) \
179607ca46eSDavid Howells }
180607ca46eSDavid Howells 
181607ca46eSDavid Howells #define V4L2_DV_BT_CEA_1920X1080P60 { \
182607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
183607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
184607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
185607ca46eSDavid Howells 		148500000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \
186607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \
187cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
188cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 16) \
189607ca46eSDavid Howells }
190607ca46eSDavid Howells 
191ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_3840X2160P24 { \
192ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
1933020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
1943020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
195ebf9edd3SHans Verkuil 		297000000, 1276, 88, 296, 8, 10, 72, 0, 0, 0, \
1965ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
197cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
198cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \
199cf038120SHans Verkuil 		{ 0, 0 }, 93, 3) \
200ebf9edd3SHans Verkuil }
201ebf9edd3SHans Verkuil 
202ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_3840X2160P25 { \
203ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2043020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
2053020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
206ebf9edd3SHans Verkuil 		297000000, 1056, 88, 296, 8, 10, 72, 0, 0, 0, \
207cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
208cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC | \
209cf038120SHans Verkuil 		V4L2_DV_FL_HAS_HDMI_VIC, { 0, 0 }, 94, 2) \
210ebf9edd3SHans Verkuil }
211ebf9edd3SHans Verkuil 
212ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_3840X2160P30 { \
213ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2143020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
2153020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
216ebf9edd3SHans Verkuil 		297000000, 176, 88, 296, 8, 10, 72, 0, 0, 0, \
2175ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
218cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
219cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \
220cf038120SHans Verkuil 		{ 0, 0 }, 95, 1) \
221ebf9edd3SHans Verkuil }
222ebf9edd3SHans Verkuil 
223ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_3840X2160P50 { \
224ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2253020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
2263020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
227ebf9edd3SHans Verkuil 		594000000, 1056, 88, 296, 8, 10, 72, 0, 0, 0, \
228cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
229cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 96) \
230ebf9edd3SHans Verkuil }
231ebf9edd3SHans Verkuil 
232ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_3840X2160P60 { \
233ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2343020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
2353020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
236ebf9edd3SHans Verkuil 		594000000, 176, 88, 296, 8, 10, 72, 0, 0, 0, \
2375ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
238cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
239cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 97) \
240ebf9edd3SHans Verkuil }
241ebf9edd3SHans Verkuil 
242ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_4096X2160P24 { \
243ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2443020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
2453020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
246ebf9edd3SHans Verkuil 		297000000, 1020, 88, 296, 8, 10, 72, 0, 0, 0, \
2475ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
248cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
249cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \
250cf038120SHans Verkuil 		{ 0, 0 }, 98, 4) \
251ebf9edd3SHans Verkuil }
252ebf9edd3SHans Verkuil 
253ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_4096X2160P25 { \
254ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2553020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
2563020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
257ebf9edd3SHans Verkuil 		297000000, 968, 88, 128, 8, 10, 72, 0, 0, 0, \
258cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
259cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 99) \
260ebf9edd3SHans Verkuil }
261ebf9edd3SHans Verkuil 
262ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_4096X2160P30 { \
263ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2643020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
2653020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
266ebf9edd3SHans Verkuil 		297000000, 88, 88, 128, 8, 10, 72, 0, 0, 0, \
2675ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
268cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
269cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 100) \
270ebf9edd3SHans Verkuil }
271ebf9edd3SHans Verkuil 
272ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_4096X2160P50 { \
273ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2743020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
2753020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
276ebf9edd3SHans Verkuil 		594000000, 968, 88, 128, 8, 10, 72, 0, 0, 0, \
277cf038120SHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
278cf038120SHans Verkuil 		V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 101) \
279ebf9edd3SHans Verkuil }
280ebf9edd3SHans Verkuil 
281ebf9edd3SHans Verkuil #define V4L2_DV_BT_CEA_4096X2160P60 { \
282ebf9edd3SHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
2833020ca71SHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
2843020ca71SHans Verkuil 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
285ebf9edd3SHans Verkuil 		594000000, 88, 88, 128, 8, 10, 72, 0, 0, 0, \
2865ce65d1fSHans Verkuil 		V4L2_DV_BT_STD_CEA861, \
287cf038120SHans Verkuil 		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
288cf038120SHans Verkuil 		V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 102) \
289ebf9edd3SHans Verkuil }
290ebf9edd3SHans Verkuil 
291607ca46eSDavid Howells 
292607ca46eSDavid Howells /* VESA Discrete Monitor Timings as per version 1.0, revision 12 */
293607ca46eSDavid Howells 
294607ca46eSDavid Howells #define V4L2_DV_BT_DMT_640X350P85 { \
295607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
296607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(640, 350, 0, V4L2_DV_HSYNC_POS_POL, \
297607ca46eSDavid Howells 		31500000, 32, 64, 96, 32, 3, 60, 0, 0, 0, \
298607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
299607ca46eSDavid Howells }
300607ca46eSDavid Howells 
301607ca46eSDavid Howells #define V4L2_DV_BT_DMT_640X400P85 { \
302607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
303607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(640, 400, 0, V4L2_DV_VSYNC_POS_POL, \
304607ca46eSDavid Howells 		31500000, 32, 64, 96, 1, 3, 41, 0, 0, 0, \
305607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
306607ca46eSDavid Howells }
307607ca46eSDavid Howells 
308607ca46eSDavid Howells #define V4L2_DV_BT_DMT_720X400P85 { \
309607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
310607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(720, 400, 0, V4L2_DV_VSYNC_POS_POL, \
311607ca46eSDavid Howells 		35500000, 36, 72, 108, 1, 3, 42, 0, 0, 0, \
312607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
313607ca46eSDavid Howells }
314607ca46eSDavid Howells 
315607ca46eSDavid Howells /* VGA resolutions */
316607ca46eSDavid Howells #define V4L2_DV_BT_DMT_640X480P60 V4L2_DV_BT_CEA_640X480P59_94
317607ca46eSDavid Howells 
318607ca46eSDavid Howells #define V4L2_DV_BT_DMT_640X480P72 { \
319607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
320607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \
321607ca46eSDavid Howells 		31500000, 24, 40, 128, 9, 3, 28, 0, 0, 0, \
322607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
323607ca46eSDavid Howells }
324607ca46eSDavid Howells 
325607ca46eSDavid Howells #define V4L2_DV_BT_DMT_640X480P75 { \
326607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
327607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \
328607ca46eSDavid Howells 		31500000, 16, 64, 120, 1, 3, 16, 0, 0, 0, \
329607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
330607ca46eSDavid Howells }
331607ca46eSDavid Howells 
332607ca46eSDavid Howells #define V4L2_DV_BT_DMT_640X480P85 { \
333607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
334607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \
335607ca46eSDavid Howells 		36000000, 56, 56, 80, 1, 3, 25, 0, 0, 0, \
336607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
337607ca46eSDavid Howells }
338607ca46eSDavid Howells 
339607ca46eSDavid Howells /* SVGA resolutions */
340607ca46eSDavid Howells #define V4L2_DV_BT_DMT_800X600P56 { \
341607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
342607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(800, 600, 0, \
343607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
344607ca46eSDavid Howells 		36000000, 24, 72, 128, 1, 2, 22, 0, 0, 0, \
345607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
346607ca46eSDavid Howells }
347607ca46eSDavid Howells 
348607ca46eSDavid Howells #define V4L2_DV_BT_DMT_800X600P60 { \
349607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
350607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(800, 600, 0, \
351607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
352607ca46eSDavid Howells 		40000000, 40, 128, 88, 1, 4, 23, 0, 0, 0, \
353607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
354607ca46eSDavid Howells }
355607ca46eSDavid Howells 
356607ca46eSDavid Howells #define V4L2_DV_BT_DMT_800X600P72 { \
357607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
358607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(800, 600, 0, \
359607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
360607ca46eSDavid Howells 		50000000, 56, 120, 64, 37, 6, 23, 0, 0, 0, \
361607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
362607ca46eSDavid Howells }
363607ca46eSDavid Howells 
364607ca46eSDavid Howells #define V4L2_DV_BT_DMT_800X600P75 { \
365607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
366607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(800, 600, 0, \
367607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
368607ca46eSDavid Howells 		49500000, 16, 80, 160, 1, 3, 21, 0, 0, 0, \
369607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
370607ca46eSDavid Howells }
371607ca46eSDavid Howells 
372607ca46eSDavid Howells #define V4L2_DV_BT_DMT_800X600P85 { \
373607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
374607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(800, 600, 0, \
375607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
376607ca46eSDavid Howells 		56250000, 32, 64, 152, 1, 3, 27, 0, 0, 0, \
377607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
378607ca46eSDavid Howells }
379607ca46eSDavid Howells 
380607ca46eSDavid Howells #define V4L2_DV_BT_DMT_800X600P120_RB { \
381607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
382607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(800, 600, 0, V4L2_DV_HSYNC_POS_POL, \
383607ca46eSDavid Howells 		73250000, 48, 32, 80, 3, 4, 29, 0, 0, 0, \
384607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
385607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
386607ca46eSDavid Howells }
387607ca46eSDavid Howells 
388607ca46eSDavid Howells #define V4L2_DV_BT_DMT_848X480P60 { \
389607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
390607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(848, 480, 0, \
391607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
392607ca46eSDavid Howells 		33750000, 16, 112, 112, 6, 8, 23, 0, 0, 0, \
393607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
394607ca46eSDavid Howells }
395607ca46eSDavid Howells 
396607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1024X768I43 { \
397607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
398607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1024, 768, 1, \
399607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
400607ca46eSDavid Howells 		44900000, 8, 176, 56, 0, 4, 20, 0, 4, 21, \
401607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
402607ca46eSDavid Howells }
403607ca46eSDavid Howells 
404607ca46eSDavid Howells /* XGA resolutions */
405607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1024X768P60 { \
406607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
407607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \
408607ca46eSDavid Howells 		65000000, 24, 136, 160, 3, 6, 29, 0, 0, 0, \
409607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
410607ca46eSDavid Howells }
411607ca46eSDavid Howells 
412607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1024X768P70 { \
413607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
414607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \
415607ca46eSDavid Howells 		75000000, 24, 136, 144, 3, 6, 29, 0, 0, 0, \
416607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
417607ca46eSDavid Howells }
418607ca46eSDavid Howells 
419607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1024X768P75 { \
420607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
421607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1024, 768, 0, \
422607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
423607ca46eSDavid Howells 		78750000, 16, 96, 176, 1, 3, 28, 0, 0, 0, \
424607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
425607ca46eSDavid Howells }
426607ca46eSDavid Howells 
427607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1024X768P85 { \
428607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
429607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1024, 768, 0, \
430607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
431607ca46eSDavid Howells 		94500000, 48, 96, 208, 1, 3, 36, 0, 0, 0, \
432607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
433607ca46eSDavid Howells }
434607ca46eSDavid Howells 
435607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1024X768P120_RB { \
436607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
437607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1024, 768, 0, V4L2_DV_HSYNC_POS_POL, \
438607ca46eSDavid Howells 		115500000, 48, 32, 80, 3, 4, 38, 0, 0, 0, \
439607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
440607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
441607ca46eSDavid Howells }
442607ca46eSDavid Howells 
443607ca46eSDavid Howells /* XGA+ resolution */
444607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1152X864P75 { \
445607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
446607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1152, 864, 0, \
447607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
448607ca46eSDavid Howells 		108000000, 64, 128, 256, 1, 3, 32, 0, 0, 0, \
449607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
450607ca46eSDavid Howells }
451607ca46eSDavid Howells 
452607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X720P60 V4L2_DV_BT_CEA_1280X720P60
453607ca46eSDavid Howells 
454607ca46eSDavid Howells /* WXGA resolutions */
455607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X768P60_RB { \
456607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
457607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \
458607ca46eSDavid Howells 		68250000, 48, 32, 80, 3, 7, 12, 0, 0, 0, \
459607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
460607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
461607ca46eSDavid Howells }
462607ca46eSDavid Howells 
463607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X768P60 { \
464607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
465607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \
466607ca46eSDavid Howells 		79500000, 64, 128, 192, 3, 7, 20, 0, 0, 0, \
467607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
468607ca46eSDavid Howells }
469607ca46eSDavid Howells 
470607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X768P75 { \
471607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
472607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \
473607ca46eSDavid Howells 		102250000, 80, 128, 208, 3, 7, 27, 0, 0, 0, \
474607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
475607ca46eSDavid Howells }
476607ca46eSDavid Howells 
477607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X768P85 { \
478607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
479607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \
480607ca46eSDavid Howells 		117500000, 80, 136, 216, 3, 7, 31, 0, 0, 0, \
481607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
482607ca46eSDavid Howells }
483607ca46eSDavid Howells 
484607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X768P120_RB { \
485607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
486607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \
487607ca46eSDavid Howells 		140250000, 48, 32, 80, 3, 7, 35, 0, 0, 0, \
488607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
489607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
490607ca46eSDavid Howells }
491607ca46eSDavid Howells 
492607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X800P60_RB { \
493607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
494607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \
495607ca46eSDavid Howells 		71000000, 48, 32, 80, 3, 6, 14, 0, 0, 0, \
496607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
497607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
498607ca46eSDavid Howells }
499607ca46eSDavid Howells 
500607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X800P60 { \
501607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
502607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \
503607ca46eSDavid Howells 		83500000, 72, 128, 200, 3, 6, 22, 0, 0, 0, \
504607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
505607ca46eSDavid Howells }
506607ca46eSDavid Howells 
507607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X800P75 { \
508607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
509607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \
510607ca46eSDavid Howells 		106500000, 80, 128, 208, 3, 6, 29, 0, 0, 0, \
511607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
512607ca46eSDavid Howells }
513607ca46eSDavid Howells 
514607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X800P85 { \
515607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
516607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \
517607ca46eSDavid Howells 		122500000, 80, 136, 216, 3, 6, 34, 0, 0, 0, \
518607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
519607ca46eSDavid Howells }
520607ca46eSDavid Howells 
521607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X800P120_RB { \
522607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
523607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \
524607ca46eSDavid Howells 		146250000, 48, 32, 80, 3, 6, 38, 0, 0, 0, \
525607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
526607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
527607ca46eSDavid Howells }
528607ca46eSDavid Howells 
529607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X960P60 { \
530607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
531607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 960, 0, \
532607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
533607ca46eSDavid Howells 		108000000, 96, 112, 312, 1, 3, 36, 0, 0, 0, \
534607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
535607ca46eSDavid Howells }
536607ca46eSDavid Howells 
537607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X960P85 { \
538607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
539607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 960, 0, \
540607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
541607ca46eSDavid Howells 		148500000, 64, 160, 224, 1, 3, 47, 0, 0, 0, \
542607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
543607ca46eSDavid Howells }
544607ca46eSDavid Howells 
545607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X960P120_RB { \
546607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
547607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 960, 0, V4L2_DV_HSYNC_POS_POL, \
548607ca46eSDavid Howells 		175500000, 48, 32, 80, 3, 4, 50, 0, 0, 0, \
549607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
550607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
551607ca46eSDavid Howells }
552607ca46eSDavid Howells 
553607ca46eSDavid Howells /* SXGA resolutions */
554607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X1024P60 { \
555607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
556607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \
557607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
558607ca46eSDavid Howells 		108000000, 48, 112, 248, 1, 3, 38, 0, 0, 0, \
559607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
560607ca46eSDavid Howells }
561607ca46eSDavid Howells 
562607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X1024P75 { \
563607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
564607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \
565607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
566607ca46eSDavid Howells 		135000000, 16, 144, 248, 1, 3, 38, 0, 0, 0, \
567607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
568607ca46eSDavid Howells }
569607ca46eSDavid Howells 
570607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X1024P85 { \
571607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
572607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \
573607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
574607ca46eSDavid Howells 		157500000, 64, 160, 224, 1, 3, 44, 0, 0, 0, \
575607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
576607ca46eSDavid Howells }
577607ca46eSDavid Howells 
578607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1280X1024P120_RB { \
579607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
580607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, V4L2_DV_HSYNC_POS_POL, \
581607ca46eSDavid Howells 		187250000, 48, 32, 80, 3, 7, 50, 0, 0, 0, \
582607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
583607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
584607ca46eSDavid Howells }
585607ca46eSDavid Howells 
586607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1360X768P60 { \
587607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
588607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1360, 768, 0, \
589607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
590607ca46eSDavid Howells 		85500000, 64, 112, 256, 3, 6, 18, 0, 0, 0, \
591607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
592607ca46eSDavid Howells }
593607ca46eSDavid Howells 
594607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1360X768P120_RB { \
595607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
596607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1360, 768, 0, V4L2_DV_HSYNC_POS_POL, \
597607ca46eSDavid Howells 		148250000, 48, 32, 80, 3, 5, 37, 0, 0, 0, \
598607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
599607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
600607ca46eSDavid Howells }
601607ca46eSDavid Howells 
602607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1366X768P60 { \
603607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
604607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1366, 768, 0, \
605607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
606607ca46eSDavid Howells 		85500000, 70, 143, 213, 3, 3, 24, 0, 0, 0, \
607607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
608607ca46eSDavid Howells }
609607ca46eSDavid Howells 
610607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1366X768P60_RB { \
611607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
612607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1366, 768, 0, \
613607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
614607ca46eSDavid Howells 		72000000, 14, 56, 64, 1, 3, 28, 0, 0, 0, \
615607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \
616607ca46eSDavid Howells }
617607ca46eSDavid Howells 
618607ca46eSDavid Howells /* SXGA+ resolutions */
619607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1400X1050P60_RB { \
620607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
621607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \
622607ca46eSDavid Howells 		101000000, 48, 32, 80, 3, 4, 23, 0, 0, 0, \
623607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
624607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
625607ca46eSDavid Howells }
626607ca46eSDavid Howells 
627607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1400X1050P60 { \
628607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
629607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \
630607ca46eSDavid Howells 		121750000, 88, 144, 232, 3, 4, 32, 0, 0, 0, \
631607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
632607ca46eSDavid Howells }
633607ca46eSDavid Howells 
634607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1400X1050P75 { \
635607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
636607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \
637607ca46eSDavid Howells 		156000000, 104, 144, 248, 3, 4, 42, 0, 0, 0, \
638607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
639607ca46eSDavid Howells }
640607ca46eSDavid Howells 
641607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1400X1050P85 { \
642607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
643607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \
644607ca46eSDavid Howells 		179500000, 104, 152, 256, 3, 4, 48, 0, 0, 0, \
645607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
646607ca46eSDavid Howells }
647607ca46eSDavid Howells 
648607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1400X1050P120_RB { \
649607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
650607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \
651607ca46eSDavid Howells 		208000000, 48, 32, 80, 3, 4, 55, 0, 0, 0, \
652607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
653607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
654607ca46eSDavid Howells }
655607ca46eSDavid Howells 
656607ca46eSDavid Howells /* WXGA+ resolutions */
657607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1440X900P60_RB { \
658607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
659607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \
660607ca46eSDavid Howells 		88750000, 48, 32, 80, 3, 6, 17, 0, 0, 0, \
661607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
662607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
663607ca46eSDavid Howells }
664607ca46eSDavid Howells 
665607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1440X900P60 { \
666607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
667607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \
668607ca46eSDavid Howells 		106500000, 80, 152, 232, 3, 6, 25, 0, 0, 0, \
669607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
670607ca46eSDavid Howells }
671607ca46eSDavid Howells 
672607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1440X900P75 { \
673607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
674607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \
675607ca46eSDavid Howells 		136750000, 96, 152, 248, 3, 6, 33, 0, 0, 0, \
676607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
677607ca46eSDavid Howells }
678607ca46eSDavid Howells 
679607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1440X900P85 { \
680607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
681607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \
682607ca46eSDavid Howells 		157000000, 104, 152, 256, 3, 6, 39, 0, 0, 0, \
683607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
684607ca46eSDavid Howells }
685607ca46eSDavid Howells 
686607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1440X900P120_RB { \
687607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
688607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \
689607ca46eSDavid Howells 		182750000, 48, 32, 80, 3, 6, 44, 0, 0, 0, \
690607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
691607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
692607ca46eSDavid Howells }
693607ca46eSDavid Howells 
694607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X900P60_RB { \
695607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
696607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 900, 0, \
697607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
698607ca46eSDavid Howells 		108000000, 24, 80, 96, 1, 3, 96, 0, 0, 0, \
699607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \
700607ca46eSDavid Howells }
701607ca46eSDavid Howells 
702607ca46eSDavid Howells /* UXGA resolutions */
703607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X1200P60 { \
704607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
705607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \
706607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
707607ca46eSDavid Howells 		162000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \
708607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
709607ca46eSDavid Howells }
710607ca46eSDavid Howells 
711607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X1200P65 { \
712607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
713607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \
714607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
715607ca46eSDavid Howells 		175500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \
716607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
717607ca46eSDavid Howells }
718607ca46eSDavid Howells 
719607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X1200P70 { \
720607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
721607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \
722607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
723607ca46eSDavid Howells 		189000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \
724607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
725607ca46eSDavid Howells }
726607ca46eSDavid Howells 
727607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X1200P75 { \
728607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
729607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \
730607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
731607ca46eSDavid Howells 		202500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \
732607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
733607ca46eSDavid Howells }
734607ca46eSDavid Howells 
735607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X1200P85 { \
736607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
737607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \
738607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
739607ca46eSDavid Howells 		229500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \
740607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
741607ca46eSDavid Howells }
742607ca46eSDavid Howells 
743607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1600X1200P120_RB { \
744607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
745607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, V4L2_DV_HSYNC_POS_POL, \
746607ca46eSDavid Howells 		268250000, 48, 32, 80, 3, 4, 64, 0, 0, 0, \
747607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
748607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
749607ca46eSDavid Howells }
750607ca46eSDavid Howells 
751607ca46eSDavid Howells /* WSXGA+ resolutions */
752607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1680X1050P60_RB { \
753607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
754607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \
755607ca46eSDavid Howells 		119000000, 48, 32, 80, 3, 6, 21, 0, 0, 0, \
756607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
757607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
758607ca46eSDavid Howells }
759607ca46eSDavid Howells 
760607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1680X1050P60 { \
761607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
762607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \
763607ca46eSDavid Howells 		146250000, 104, 176, 280, 3, 6, 30, 0, 0, 0, \
764607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
765607ca46eSDavid Howells }
766607ca46eSDavid Howells 
767607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1680X1050P75 { \
768607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
769607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \
770607ca46eSDavid Howells 		187000000, 120, 176, 296, 3, 6, 40, 0, 0, 0, \
771607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
772607ca46eSDavid Howells }
773607ca46eSDavid Howells 
774607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1680X1050P85 { \
775607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
776607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \
777607ca46eSDavid Howells 		214750000, 128, 176, 304, 3, 6, 46, 0, 0, 0, \
778607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
779607ca46eSDavid Howells }
780607ca46eSDavid Howells 
781607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1680X1050P120_RB { \
782607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
783607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \
784607ca46eSDavid Howells 		245500000, 48, 32, 80, 3, 6, 53, 0, 0, 0, \
785607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
786607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
787607ca46eSDavid Howells }
788607ca46eSDavid Howells 
789607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1792X1344P60 { \
790607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
791607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \
792607ca46eSDavid Howells 		204750000, 128, 200, 328, 1, 3, 46, 0, 0, 0, \
793607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
794607ca46eSDavid Howells }
795607ca46eSDavid Howells 
796607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1792X1344P75 { \
797607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
798607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \
799607ca46eSDavid Howells 		261000000, 96, 216, 352, 1, 3, 69, 0, 0, 0, \
800607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
801607ca46eSDavid Howells }
802607ca46eSDavid Howells 
803607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1792X1344P120_RB { \
804607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
805607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_HSYNC_POS_POL, \
806607ca46eSDavid Howells 		333250000, 48, 32, 80, 3, 4, 72, 0, 0, 0, \
807607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
808607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
809607ca46eSDavid Howells }
810607ca46eSDavid Howells 
811607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1856X1392P60 { \
812607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
813607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \
814607ca46eSDavid Howells 		218250000, 96, 224, 352, 1, 3, 43, 0, 0, 0, \
815607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
816607ca46eSDavid Howells }
817607ca46eSDavid Howells 
818607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1856X1392P75 { \
819607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
820607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \
821607ca46eSDavid Howells 		288000000, 128, 224, 352, 1, 3, 104, 0, 0, 0, \
822607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
823607ca46eSDavid Howells }
824607ca46eSDavid Howells 
825607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1856X1392P120_RB { \
826607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
827607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_HSYNC_POS_POL, \
828607ca46eSDavid Howells 		356500000, 48, 32, 80, 3, 4, 75, 0, 0, 0, \
829607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
830607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
831607ca46eSDavid Howells }
832607ca46eSDavid Howells 
833607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1080P60 V4L2_DV_BT_CEA_1920X1080P60
834607ca46eSDavid Howells 
835607ca46eSDavid Howells /* WUXGA resolutions */
836607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1200P60_RB { \
837607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
838607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \
839607ca46eSDavid Howells 		154000000, 48, 32, 80, 3, 6, 26, 0, 0, 0, \
840607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
841607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
842607ca46eSDavid Howells }
843607ca46eSDavid Howells 
844607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1200P60 { \
845607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
846607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \
847607ca46eSDavid Howells 		193250000, 136, 200, 336, 3, 6, 36, 0, 0, 0, \
848607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
849607ca46eSDavid Howells }
850607ca46eSDavid Howells 
851607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1200P75 { \
852607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
853607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \
854607ca46eSDavid Howells 		245250000, 136, 208, 344, 3, 6, 46, 0, 0, 0, \
855607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
856607ca46eSDavid Howells }
857607ca46eSDavid Howells 
858607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1200P85 { \
859607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
860607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \
861607ca46eSDavid Howells 		281250000, 144, 208, 352, 3, 6, 53, 0, 0, 0, \
862607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
863607ca46eSDavid Howells }
864607ca46eSDavid Howells 
865607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1200P120_RB { \
866607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
867607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \
868607ca46eSDavid Howells 		317000000, 48, 32, 80, 3, 6, 62, 0, 0, 0, \
869607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
870607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
871607ca46eSDavid Howells }
872607ca46eSDavid Howells 
873607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1440P60 { \
874607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
875607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \
876607ca46eSDavid Howells 		234000000, 128, 208, 344, 1, 3, 56, 0, 0, 0, \
877607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
878607ca46eSDavid Howells }
879607ca46eSDavid Howells 
880607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1440P75 { \
881607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
882607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \
883607ca46eSDavid Howells 		297000000, 144, 224, 352, 1, 3, 56, 0, 0, 0, \
884607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, 0) \
885607ca46eSDavid Howells }
886607ca46eSDavid Howells 
887607ca46eSDavid Howells #define V4L2_DV_BT_DMT_1920X1440P120_RB { \
888607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
889607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_HSYNC_POS_POL, \
890607ca46eSDavid Howells 		380500000, 48, 32, 80, 3, 4, 78, 0, 0, 0, \
891607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
892607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
893607ca46eSDavid Howells }
894607ca46eSDavid Howells 
895607ca46eSDavid Howells #define V4L2_DV_BT_DMT_2048X1152P60_RB { \
896607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
897607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(2048, 1152, 0, \
898607ca46eSDavid Howells 		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
899607ca46eSDavid Howells 		162000000, 26, 80, 96, 1, 3, 44, 0, 0, 0, \
900607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \
901607ca46eSDavid Howells }
902607ca46eSDavid Howells 
903607ca46eSDavid Howells /* WQXGA resolutions */
904607ca46eSDavid Howells #define V4L2_DV_BT_DMT_2560X1600P60_RB { \
905607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
906607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \
907607ca46eSDavid Howells 		268500000, 48, 32, 80, 3, 6, 37, 0, 0, 0, \
908607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
909607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
910607ca46eSDavid Howells }
911607ca46eSDavid Howells 
912607ca46eSDavid Howells #define V4L2_DV_BT_DMT_2560X1600P60 { \
913607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
914607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \
915607ca46eSDavid Howells 		348500000, 192, 280, 472, 3, 6, 49, 0, 0, 0, \
916607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
917607ca46eSDavid Howells }
918607ca46eSDavid Howells 
919607ca46eSDavid Howells #define V4L2_DV_BT_DMT_2560X1600P75 { \
920607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
921607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \
922607ca46eSDavid Howells 		443250000, 208, 280, 488, 3, 6, 63, 0, 0, 0, \
923607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
924607ca46eSDavid Howells }
925607ca46eSDavid Howells 
926607ca46eSDavid Howells #define V4L2_DV_BT_DMT_2560X1600P85 { \
927607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
928607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \
929607ca46eSDavid Howells 		505250000, 208, 280, 488, 3, 6, 73, 0, 0, 0, \
930607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \
931607ca46eSDavid Howells }
932607ca46eSDavid Howells 
933607ca46eSDavid Howells #define V4L2_DV_BT_DMT_2560X1600P120_RB { \
934607ca46eSDavid Howells 	.type = V4L2_DV_BT_656_1120, \
935607ca46eSDavid Howells 	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \
936607ca46eSDavid Howells 		552750000, 48, 32, 80, 3, 6, 85, 0, 0, 0, \
937607ca46eSDavid Howells 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
938607ca46eSDavid Howells 		V4L2_DV_FL_REDUCED_BLANKING) \
939607ca46eSDavid Howells }
940607ca46eSDavid Howells 
941a1d16e0fSHans Verkuil /* 4K resolutions */
942a1d16e0fSHans Verkuil #define V4L2_DV_BT_DMT_4096X2160P60_RB { \
943a1d16e0fSHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
944a1d16e0fSHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \
945a1d16e0fSHans Verkuil 		556744000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \
946a1d16e0fSHans Verkuil 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
947a1d16e0fSHans Verkuil 		V4L2_DV_FL_REDUCED_BLANKING) \
948a1d16e0fSHans Verkuil }
949a1d16e0fSHans Verkuil 
950a1d16e0fSHans Verkuil #define V4L2_DV_BT_DMT_4096X2160P59_94_RB { \
951a1d16e0fSHans Verkuil 	.type = V4L2_DV_BT_656_1120, \
952a1d16e0fSHans Verkuil 	V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \
953a1d16e0fSHans Verkuil 		556188000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \
954a1d16e0fSHans Verkuil 		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \
955a1d16e0fSHans Verkuil 		V4L2_DV_FL_REDUCED_BLANKING) \
956a1d16e0fSHans Verkuil }
957a1d16e0fSHans Verkuil 
9587389e6efSCharles-Antoine Couret /* SDI timings definitions */
9597389e6efSCharles-Antoine Couret 
9607389e6efSCharles-Antoine Couret /* SMPTE-125M */
9617389e6efSCharles-Antoine Couret #define V4L2_DV_BT_SDI_720X487I60 { \
9627389e6efSCharles-Antoine Couret 	.type = V4L2_DV_BT_656_1120, \
9637389e6efSCharles-Antoine Couret 	V4L2_INIT_BT_TIMINGS(720, 487, 1, \
9647389e6efSCharles-Antoine Couret 		V4L2_DV_HSYNC_POS_POL, \
9657389e6efSCharles-Antoine Couret 		13500000, 16, 121, 0, 0, 19, 0, 0, 19, 0, \
9667389e6efSCharles-Antoine Couret 		V4L2_DV_BT_STD_SDI, \
9677389e6efSCharles-Antoine Couret 		V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE) \
9687389e6efSCharles-Antoine Couret }
9697389e6efSCharles-Antoine Couret 
970607ca46eSDavid Howells #endif
971