1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
2 | /* |
3 | * V4L2 DV timings header. |
4 | * |
5 | * Copyright (C) 2012-2016 Hans Verkuil <hans.verkuil@cisco.com> |
6 | */ |
7 | |
8 | #ifndef _V4L2_DV_TIMINGS_H |
9 | #define _V4L2_DV_TIMINGS_H |
10 | |
11 | #if __GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 6)) |
12 | /* Sadly gcc versions older than 4.6 have a bug in how they initialize |
13 | anonymous unions where they require additional curly brackets. |
14 | This violates the C1x standard. This workaround adds the curly brackets |
15 | if needed. */ |
16 | #define V4L2_INIT_BT_TIMINGS(_width, args...) \ |
17 | { .bt = { _width , ## args } } |
18 | #else |
19 | #define V4L2_INIT_BT_TIMINGS(_width, args...) \ |
20 | .bt = { _width , ## args } |
21 | #endif |
22 | |
23 | /* CEA-861-F timings (i.e. standard HDTV timings) */ |
24 | |
25 | #define V4L2_DV_BT_CEA_640X480P59_94 { \ |
26 | .type = V4L2_DV_BT_656_1120, \ |
27 | V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ |
28 | 25175000, 16, 96, 48, 10, 2, 33, 0, 0, 0, \ |
29 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ |
30 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 1) \ |
31 | } |
32 | |
33 | /* Note: these are the nominal timings, for HDMI links this format is typically |
34 | * double-clocked to meet the minimum pixelclock requirements. */ |
35 | #define V4L2_DV_BT_CEA_720X480I59_94 { \ |
36 | .type = V4L2_DV_BT_656_1120, \ |
37 | V4L2_INIT_BT_TIMINGS(720, 480, 1, 0, \ |
38 | 13500000, 19, 62, 57, 4, 3, 15, 4, 3, 16, \ |
39 | V4L2_DV_BT_STD_CEA861, \ |
40 | V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \ |
41 | V4L2_DV_FL_HAS_PICTURE_ASPECT | V4L2_DV_FL_HAS_CEA861_VIC, \ |
42 | { 4, 3 }, 6) \ |
43 | } |
44 | |
45 | #define V4L2_DV_BT_CEA_720X480P59_94 { \ |
46 | .type = V4L2_DV_BT_656_1120, \ |
47 | V4L2_INIT_BT_TIMINGS(720, 480, 0, 0, \ |
48 | 27000000, 16, 62, 60, 9, 6, 30, 0, 0, 0, \ |
49 | V4L2_DV_BT_STD_CEA861, \ |
50 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_PICTURE_ASPECT | \ |
51 | V4L2_DV_FL_HAS_CEA861_VIC, { 4, 3 }, 2) \ |
52 | } |
53 | |
54 | /* Note: these are the nominal timings, for HDMI links this format is typically |
55 | * double-clocked to meet the minimum pixelclock requirements. */ |
56 | #define V4L2_DV_BT_CEA_720X576I50 { \ |
57 | .type = V4L2_DV_BT_656_1120, \ |
58 | V4L2_INIT_BT_TIMINGS(720, 576, 1, 0, \ |
59 | 13500000, 12, 63, 69, 2, 3, 19, 2, 3, 20, \ |
60 | V4L2_DV_BT_STD_CEA861, \ |
61 | V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \ |
62 | V4L2_DV_FL_HAS_PICTURE_ASPECT | V4L2_DV_FL_HAS_CEA861_VIC, \ |
63 | { 4, 3 }, 21) \ |
64 | } |
65 | |
66 | #define V4L2_DV_BT_CEA_720X576P50 { \ |
67 | .type = V4L2_DV_BT_656_1120, \ |
68 | V4L2_INIT_BT_TIMINGS(720, 576, 0, 0, \ |
69 | 27000000, 12, 64, 68, 5, 5, 39, 0, 0, 0, \ |
70 | V4L2_DV_BT_STD_CEA861, \ |
71 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_PICTURE_ASPECT | \ |
72 | V4L2_DV_FL_HAS_CEA861_VIC, { 4, 3 }, 17) \ |
73 | } |
74 | |
75 | #define V4L2_DV_BT_CEA_1280X720P24 { \ |
76 | .type = V4L2_DV_BT_656_1120, \ |
77 | V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ |
78 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
79 | 59400000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \ |
80 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ |
81 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 60) \ |
82 | } |
83 | |
84 | #define V4L2_DV_BT_CEA_1280X720P25 { \ |
85 | .type = V4L2_DV_BT_656_1120, \ |
86 | V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ |
87 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
88 | 74250000, 2420, 40, 220, 5, 5, 20, 0, 0, 0, \ |
89 | V4L2_DV_BT_STD_CEA861, \ |
90 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 61) \ |
91 | } |
92 | |
93 | #define V4L2_DV_BT_CEA_1280X720P30 { \ |
94 | .type = V4L2_DV_BT_656_1120, \ |
95 | V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ |
96 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
97 | 74250000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \ |
98 | V4L2_DV_BT_STD_CEA861, \ |
99 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
100 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 62) \ |
101 | } |
102 | |
103 | #define V4L2_DV_BT_CEA_1280X720P50 { \ |
104 | .type = V4L2_DV_BT_656_1120, \ |
105 | V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ |
106 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
107 | 74250000, 440, 40, 220, 5, 5, 20, 0, 0, 0, \ |
108 | V4L2_DV_BT_STD_CEA861, \ |
109 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 19) \ |
110 | } |
111 | |
112 | #define V4L2_DV_BT_CEA_1280X720P60 { \ |
113 | .type = V4L2_DV_BT_656_1120, \ |
114 | V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ |
115 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
116 | 74250000, 110, 40, 220, 5, 5, 20, 0, 0, 0, \ |
117 | V4L2_DV_BT_STD_CEA861, \ |
118 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
119 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 4) \ |
120 | } |
121 | |
122 | #define V4L2_DV_BT_CEA_1920X1080P24 { \ |
123 | .type = V4L2_DV_BT_656_1120, \ |
124 | V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ |
125 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
126 | 74250000, 638, 44, 148, 4, 5, 36, 0, 0, 0, \ |
127 | V4L2_DV_BT_STD_CEA861, \ |
128 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
129 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 32) \ |
130 | } |
131 | |
132 | #define V4L2_DV_BT_CEA_1920X1080P25 { \ |
133 | .type = V4L2_DV_BT_656_1120, \ |
134 | V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ |
135 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
136 | 74250000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \ |
137 | V4L2_DV_BT_STD_CEA861, \ |
138 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 33) \ |
139 | } |
140 | |
141 | #define V4L2_DV_BT_CEA_1920X1080P30 { \ |
142 | .type = V4L2_DV_BT_656_1120, \ |
143 | V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ |
144 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
145 | 74250000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \ |
146 | V4L2_DV_BT_STD_CEA861, \ |
147 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
148 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 34) \ |
149 | } |
150 | |
151 | #define V4L2_DV_BT_CEA_1920X1080I50 { \ |
152 | .type = V4L2_DV_BT_656_1120, \ |
153 | V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \ |
154 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
155 | 74250000, 528, 44, 148, 2, 5, 15, 2, 5, 16, \ |
156 | V4L2_DV_BT_STD_CEA861, \ |
157 | V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \ |
158 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 20) \ |
159 | } |
160 | |
161 | #define V4L2_DV_BT_CEA_1920X1080P50 { \ |
162 | .type = V4L2_DV_BT_656_1120, \ |
163 | V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ |
164 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
165 | 148500000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \ |
166 | V4L2_DV_BT_STD_CEA861, \ |
167 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 31) \ |
168 | } |
169 | |
170 | #define V4L2_DV_BT_CEA_1920X1080I60 { \ |
171 | .type = V4L2_DV_BT_656_1120, \ |
172 | V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \ |
173 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
174 | 74250000, 88, 44, 148, 2, 5, 15, 2, 5, 16, \ |
175 | V4L2_DV_BT_STD_CEA861, \ |
176 | V4L2_DV_FL_CAN_REDUCE_FPS | \ |
177 | V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \ |
178 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 5) \ |
179 | } |
180 | |
181 | #define V4L2_DV_BT_CEA_1920X1080P60 { \ |
182 | .type = V4L2_DV_BT_656_1120, \ |
183 | V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ |
184 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
185 | 148500000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \ |
186 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ |
187 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
188 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 16) \ |
189 | } |
190 | |
191 | #define V4L2_DV_BT_CEA_3840X2160P24 { \ |
192 | .type = V4L2_DV_BT_656_1120, \ |
193 | V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \ |
194 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
195 | 297000000, 1276, 88, 296, 8, 10, 72, 0, 0, 0, \ |
196 | V4L2_DV_BT_STD_CEA861, \ |
197 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
198 | V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \ |
199 | { 0, 0 }, 93, 3) \ |
200 | } |
201 | |
202 | #define V4L2_DV_BT_CEA_3840X2160P25 { \ |
203 | .type = V4L2_DV_BT_656_1120, \ |
204 | V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \ |
205 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
206 | 297000000, 1056, 88, 296, 8, 10, 72, 0, 0, 0, \ |
207 | V4L2_DV_BT_STD_CEA861, \ |
208 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC | \ |
209 | V4L2_DV_FL_HAS_HDMI_VIC, { 0, 0 }, 94, 2) \ |
210 | } |
211 | |
212 | #define V4L2_DV_BT_CEA_3840X2160P30 { \ |
213 | .type = V4L2_DV_BT_656_1120, \ |
214 | V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \ |
215 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
216 | 297000000, 176, 88, 296, 8, 10, 72, 0, 0, 0, \ |
217 | V4L2_DV_BT_STD_CEA861, \ |
218 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
219 | V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \ |
220 | { 0, 0 }, 95, 1) \ |
221 | } |
222 | |
223 | #define V4L2_DV_BT_CEA_3840X2160P50 { \ |
224 | .type = V4L2_DV_BT_656_1120, \ |
225 | V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \ |
226 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
227 | 594000000, 1056, 88, 296, 8, 10, 72, 0, 0, 0, \ |
228 | V4L2_DV_BT_STD_CEA861, \ |
229 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 96) \ |
230 | } |
231 | |
232 | #define V4L2_DV_BT_CEA_3840X2160P60 { \ |
233 | .type = V4L2_DV_BT_656_1120, \ |
234 | V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \ |
235 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
236 | 594000000, 176, 88, 296, 8, 10, 72, 0, 0, 0, \ |
237 | V4L2_DV_BT_STD_CEA861, \ |
238 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
239 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 97) \ |
240 | } |
241 | |
242 | #define V4L2_DV_BT_CEA_4096X2160P24 { \ |
243 | .type = V4L2_DV_BT_656_1120, \ |
244 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \ |
245 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
246 | 297000000, 1020, 88, 296, 8, 10, 72, 0, 0, 0, \ |
247 | V4L2_DV_BT_STD_CEA861, \ |
248 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
249 | V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \ |
250 | { 0, 0 }, 98, 4) \ |
251 | } |
252 | |
253 | #define V4L2_DV_BT_CEA_4096X2160P25 { \ |
254 | .type = V4L2_DV_BT_656_1120, \ |
255 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \ |
256 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
257 | 297000000, 968, 88, 128, 8, 10, 72, 0, 0, 0, \ |
258 | V4L2_DV_BT_STD_CEA861, \ |
259 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 99) \ |
260 | } |
261 | |
262 | #define V4L2_DV_BT_CEA_4096X2160P30 { \ |
263 | .type = V4L2_DV_BT_656_1120, \ |
264 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \ |
265 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
266 | 297000000, 88, 88, 128, 8, 10, 72, 0, 0, 0, \ |
267 | V4L2_DV_BT_STD_CEA861, \ |
268 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
269 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 100) \ |
270 | } |
271 | |
272 | #define V4L2_DV_BT_CEA_4096X2160P50 { \ |
273 | .type = V4L2_DV_BT_656_1120, \ |
274 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \ |
275 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
276 | 594000000, 968, 88, 128, 8, 10, 72, 0, 0, 0, \ |
277 | V4L2_DV_BT_STD_CEA861, \ |
278 | V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 101) \ |
279 | } |
280 | |
281 | #define V4L2_DV_BT_CEA_4096X2160P60 { \ |
282 | .type = V4L2_DV_BT_656_1120, \ |
283 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \ |
284 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
285 | 594000000, 88, 88, 128, 8, 10, 72, 0, 0, 0, \ |
286 | V4L2_DV_BT_STD_CEA861, \ |
287 | V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \ |
288 | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 102) \ |
289 | } |
290 | |
291 | |
292 | /* VESA Discrete Monitor Timings as per version 1.0, revision 12 */ |
293 | |
294 | #define V4L2_DV_BT_DMT_640X350P85 { \ |
295 | .type = V4L2_DV_BT_656_1120, \ |
296 | V4L2_INIT_BT_TIMINGS(640, 350, 0, V4L2_DV_HSYNC_POS_POL, \ |
297 | 31500000, 32, 64, 96, 32, 3, 60, 0, 0, 0, \ |
298 | V4L2_DV_BT_STD_DMT, 0) \ |
299 | } |
300 | |
301 | #define V4L2_DV_BT_DMT_640X400P85 { \ |
302 | .type = V4L2_DV_BT_656_1120, \ |
303 | V4L2_INIT_BT_TIMINGS(640, 400, 0, V4L2_DV_VSYNC_POS_POL, \ |
304 | 31500000, 32, 64, 96, 1, 3, 41, 0, 0, 0, \ |
305 | V4L2_DV_BT_STD_DMT, 0) \ |
306 | } |
307 | |
308 | #define V4L2_DV_BT_DMT_720X400P85 { \ |
309 | .type = V4L2_DV_BT_656_1120, \ |
310 | V4L2_INIT_BT_TIMINGS(720, 400, 0, V4L2_DV_VSYNC_POS_POL, \ |
311 | 35500000, 36, 72, 108, 1, 3, 42, 0, 0, 0, \ |
312 | V4L2_DV_BT_STD_DMT, 0) \ |
313 | } |
314 | |
315 | /* VGA resolutions */ |
316 | #define V4L2_DV_BT_DMT_640X480P60 V4L2_DV_BT_CEA_640X480P59_94 |
317 | |
318 | #define V4L2_DV_BT_DMT_640X480P72 { \ |
319 | .type = V4L2_DV_BT_656_1120, \ |
320 | V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ |
321 | 31500000, 24, 40, 128, 9, 3, 28, 0, 0, 0, \ |
322 | V4L2_DV_BT_STD_DMT, 0) \ |
323 | } |
324 | |
325 | #define V4L2_DV_BT_DMT_640X480P75 { \ |
326 | .type = V4L2_DV_BT_656_1120, \ |
327 | V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ |
328 | 31500000, 16, 64, 120, 1, 3, 16, 0, 0, 0, \ |
329 | V4L2_DV_BT_STD_DMT, 0) \ |
330 | } |
331 | |
332 | #define V4L2_DV_BT_DMT_640X480P85 { \ |
333 | .type = V4L2_DV_BT_656_1120, \ |
334 | V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ |
335 | 36000000, 56, 56, 80, 1, 3, 25, 0, 0, 0, \ |
336 | V4L2_DV_BT_STD_DMT, 0) \ |
337 | } |
338 | |
339 | /* SVGA resolutions */ |
340 | #define V4L2_DV_BT_DMT_800X600P56 { \ |
341 | .type = V4L2_DV_BT_656_1120, \ |
342 | V4L2_INIT_BT_TIMINGS(800, 600, 0, \ |
343 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
344 | 36000000, 24, 72, 128, 1, 2, 22, 0, 0, 0, \ |
345 | V4L2_DV_BT_STD_DMT, 0) \ |
346 | } |
347 | |
348 | #define V4L2_DV_BT_DMT_800X600P60 { \ |
349 | .type = V4L2_DV_BT_656_1120, \ |
350 | V4L2_INIT_BT_TIMINGS(800, 600, 0, \ |
351 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
352 | 40000000, 40, 128, 88, 1, 4, 23, 0, 0, 0, \ |
353 | V4L2_DV_BT_STD_DMT, 0) \ |
354 | } |
355 | |
356 | #define V4L2_DV_BT_DMT_800X600P72 { \ |
357 | .type = V4L2_DV_BT_656_1120, \ |
358 | V4L2_INIT_BT_TIMINGS(800, 600, 0, \ |
359 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
360 | 50000000, 56, 120, 64, 37, 6, 23, 0, 0, 0, \ |
361 | V4L2_DV_BT_STD_DMT, 0) \ |
362 | } |
363 | |
364 | #define V4L2_DV_BT_DMT_800X600P75 { \ |
365 | .type = V4L2_DV_BT_656_1120, \ |
366 | V4L2_INIT_BT_TIMINGS(800, 600, 0, \ |
367 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
368 | 49500000, 16, 80, 160, 1, 3, 21, 0, 0, 0, \ |
369 | V4L2_DV_BT_STD_DMT, 0) \ |
370 | } |
371 | |
372 | #define V4L2_DV_BT_DMT_800X600P85 { \ |
373 | .type = V4L2_DV_BT_656_1120, \ |
374 | V4L2_INIT_BT_TIMINGS(800, 600, 0, \ |
375 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
376 | 56250000, 32, 64, 152, 1, 3, 27, 0, 0, 0, \ |
377 | V4L2_DV_BT_STD_DMT, 0) \ |
378 | } |
379 | |
380 | #define V4L2_DV_BT_DMT_800X600P120_RB { \ |
381 | .type = V4L2_DV_BT_656_1120, \ |
382 | V4L2_INIT_BT_TIMINGS(800, 600, 0, V4L2_DV_HSYNC_POS_POL, \ |
383 | 73250000, 48, 32, 80, 3, 4, 29, 0, 0, 0, \ |
384 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
385 | V4L2_DV_FL_REDUCED_BLANKING) \ |
386 | } |
387 | |
388 | #define V4L2_DV_BT_DMT_848X480P60 { \ |
389 | .type = V4L2_DV_BT_656_1120, \ |
390 | V4L2_INIT_BT_TIMINGS(848, 480, 0, \ |
391 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
392 | 33750000, 16, 112, 112, 6, 8, 23, 0, 0, 0, \ |
393 | V4L2_DV_BT_STD_DMT, 0) \ |
394 | } |
395 | |
396 | #define V4L2_DV_BT_DMT_1024X768I43 { \ |
397 | .type = V4L2_DV_BT_656_1120, \ |
398 | V4L2_INIT_BT_TIMINGS(1024, 768, 1, \ |
399 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
400 | 44900000, 8, 176, 56, 0, 4, 20, 0, 4, 21, \ |
401 | V4L2_DV_BT_STD_DMT, 0) \ |
402 | } |
403 | |
404 | /* XGA resolutions */ |
405 | #define V4L2_DV_BT_DMT_1024X768P60 { \ |
406 | .type = V4L2_DV_BT_656_1120, \ |
407 | V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \ |
408 | 65000000, 24, 136, 160, 3, 6, 29, 0, 0, 0, \ |
409 | V4L2_DV_BT_STD_DMT, 0) \ |
410 | } |
411 | |
412 | #define V4L2_DV_BT_DMT_1024X768P70 { \ |
413 | .type = V4L2_DV_BT_656_1120, \ |
414 | V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \ |
415 | 75000000, 24, 136, 144, 3, 6, 29, 0, 0, 0, \ |
416 | V4L2_DV_BT_STD_DMT, 0) \ |
417 | } |
418 | |
419 | #define V4L2_DV_BT_DMT_1024X768P75 { \ |
420 | .type = V4L2_DV_BT_656_1120, \ |
421 | V4L2_INIT_BT_TIMINGS(1024, 768, 0, \ |
422 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
423 | 78750000, 16, 96, 176, 1, 3, 28, 0, 0, 0, \ |
424 | V4L2_DV_BT_STD_DMT, 0) \ |
425 | } |
426 | |
427 | #define V4L2_DV_BT_DMT_1024X768P85 { \ |
428 | .type = V4L2_DV_BT_656_1120, \ |
429 | V4L2_INIT_BT_TIMINGS(1024, 768, 0, \ |
430 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
431 | 94500000, 48, 96, 208, 1, 3, 36, 0, 0, 0, \ |
432 | V4L2_DV_BT_STD_DMT, 0) \ |
433 | } |
434 | |
435 | #define V4L2_DV_BT_DMT_1024X768P120_RB { \ |
436 | .type = V4L2_DV_BT_656_1120, \ |
437 | V4L2_INIT_BT_TIMINGS(1024, 768, 0, V4L2_DV_HSYNC_POS_POL, \ |
438 | 115500000, 48, 32, 80, 3, 4, 38, 0, 0, 0, \ |
439 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
440 | V4L2_DV_FL_REDUCED_BLANKING) \ |
441 | } |
442 | |
443 | /* XGA+ resolution */ |
444 | #define V4L2_DV_BT_DMT_1152X864P75 { \ |
445 | .type = V4L2_DV_BT_656_1120, \ |
446 | V4L2_INIT_BT_TIMINGS(1152, 864, 0, \ |
447 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
448 | 108000000, 64, 128, 256, 1, 3, 32, 0, 0, 0, \ |
449 | V4L2_DV_BT_STD_DMT, 0) \ |
450 | } |
451 | |
452 | #define V4L2_DV_BT_DMT_1280X720P60 V4L2_DV_BT_CEA_1280X720P60 |
453 | |
454 | /* WXGA resolutions */ |
455 | #define V4L2_DV_BT_DMT_1280X768P60_RB { \ |
456 | .type = V4L2_DV_BT_656_1120, \ |
457 | V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \ |
458 | 68250000, 48, 32, 80, 3, 7, 12, 0, 0, 0, \ |
459 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
460 | V4L2_DV_FL_REDUCED_BLANKING) \ |
461 | } |
462 | |
463 | #define V4L2_DV_BT_DMT_1280X768P60 { \ |
464 | .type = V4L2_DV_BT_656_1120, \ |
465 | V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ |
466 | 79500000, 64, 128, 192, 3, 7, 20, 0, 0, 0, \ |
467 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
468 | } |
469 | |
470 | #define V4L2_DV_BT_DMT_1280X768P75 { \ |
471 | .type = V4L2_DV_BT_656_1120, \ |
472 | V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ |
473 | 102250000, 80, 128, 208, 3, 7, 27, 0, 0, 0, \ |
474 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
475 | } |
476 | |
477 | #define V4L2_DV_BT_DMT_1280X768P85 { \ |
478 | .type = V4L2_DV_BT_656_1120, \ |
479 | V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ |
480 | 117500000, 80, 136, 216, 3, 7, 31, 0, 0, 0, \ |
481 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
482 | } |
483 | |
484 | #define V4L2_DV_BT_DMT_1280X768P120_RB { \ |
485 | .type = V4L2_DV_BT_656_1120, \ |
486 | V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \ |
487 | 140250000, 48, 32, 80, 3, 7, 35, 0, 0, 0, \ |
488 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
489 | V4L2_DV_FL_REDUCED_BLANKING) \ |
490 | } |
491 | |
492 | #define V4L2_DV_BT_DMT_1280X800P60_RB { \ |
493 | .type = V4L2_DV_BT_656_1120, \ |
494 | V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \ |
495 | 71000000, 48, 32, 80, 3, 6, 14, 0, 0, 0, \ |
496 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
497 | V4L2_DV_FL_REDUCED_BLANKING) \ |
498 | } |
499 | |
500 | #define V4L2_DV_BT_DMT_1280X800P60 { \ |
501 | .type = V4L2_DV_BT_656_1120, \ |
502 | V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ |
503 | 83500000, 72, 128, 200, 3, 6, 22, 0, 0, 0, \ |
504 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
505 | } |
506 | |
507 | #define V4L2_DV_BT_DMT_1280X800P75 { \ |
508 | .type = V4L2_DV_BT_656_1120, \ |
509 | V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ |
510 | 106500000, 80, 128, 208, 3, 6, 29, 0, 0, 0, \ |
511 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
512 | } |
513 | |
514 | #define V4L2_DV_BT_DMT_1280X800P85 { \ |
515 | .type = V4L2_DV_BT_656_1120, \ |
516 | V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ |
517 | 122500000, 80, 136, 216, 3, 6, 34, 0, 0, 0, \ |
518 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
519 | } |
520 | |
521 | #define V4L2_DV_BT_DMT_1280X800P120_RB { \ |
522 | .type = V4L2_DV_BT_656_1120, \ |
523 | V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \ |
524 | 146250000, 48, 32, 80, 3, 6, 38, 0, 0, 0, \ |
525 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
526 | V4L2_DV_FL_REDUCED_BLANKING) \ |
527 | } |
528 | |
529 | #define V4L2_DV_BT_DMT_1280X960P60 { \ |
530 | .type = V4L2_DV_BT_656_1120, \ |
531 | V4L2_INIT_BT_TIMINGS(1280, 960, 0, \ |
532 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
533 | 108000000, 96, 112, 312, 1, 3, 36, 0, 0, 0, \ |
534 | V4L2_DV_BT_STD_DMT, 0) \ |
535 | } |
536 | |
537 | #define V4L2_DV_BT_DMT_1280X960P85 { \ |
538 | .type = V4L2_DV_BT_656_1120, \ |
539 | V4L2_INIT_BT_TIMINGS(1280, 960, 0, \ |
540 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
541 | 148500000, 64, 160, 224, 1, 3, 47, 0, 0, 0, \ |
542 | V4L2_DV_BT_STD_DMT, 0) \ |
543 | } |
544 | |
545 | #define V4L2_DV_BT_DMT_1280X960P120_RB { \ |
546 | .type = V4L2_DV_BT_656_1120, \ |
547 | V4L2_INIT_BT_TIMINGS(1280, 960, 0, V4L2_DV_HSYNC_POS_POL, \ |
548 | 175500000, 48, 32, 80, 3, 4, 50, 0, 0, 0, \ |
549 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
550 | V4L2_DV_FL_REDUCED_BLANKING) \ |
551 | } |
552 | |
553 | /* SXGA resolutions */ |
554 | #define V4L2_DV_BT_DMT_1280X1024P60 { \ |
555 | .type = V4L2_DV_BT_656_1120, \ |
556 | V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ |
557 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
558 | 108000000, 48, 112, 248, 1, 3, 38, 0, 0, 0, \ |
559 | V4L2_DV_BT_STD_DMT, 0) \ |
560 | } |
561 | |
562 | #define V4L2_DV_BT_DMT_1280X1024P75 { \ |
563 | .type = V4L2_DV_BT_656_1120, \ |
564 | V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ |
565 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
566 | 135000000, 16, 144, 248, 1, 3, 38, 0, 0, 0, \ |
567 | V4L2_DV_BT_STD_DMT, 0) \ |
568 | } |
569 | |
570 | #define V4L2_DV_BT_DMT_1280X1024P85 { \ |
571 | .type = V4L2_DV_BT_656_1120, \ |
572 | V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ |
573 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
574 | 157500000, 64, 160, 224, 1, 3, 44, 0, 0, 0, \ |
575 | V4L2_DV_BT_STD_DMT, 0) \ |
576 | } |
577 | |
578 | #define V4L2_DV_BT_DMT_1280X1024P120_RB { \ |
579 | .type = V4L2_DV_BT_656_1120, \ |
580 | V4L2_INIT_BT_TIMINGS(1280, 1024, 0, V4L2_DV_HSYNC_POS_POL, \ |
581 | 187250000, 48, 32, 80, 3, 7, 50, 0, 0, 0, \ |
582 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
583 | V4L2_DV_FL_REDUCED_BLANKING) \ |
584 | } |
585 | |
586 | #define V4L2_DV_BT_DMT_1360X768P60 { \ |
587 | .type = V4L2_DV_BT_656_1120, \ |
588 | V4L2_INIT_BT_TIMINGS(1360, 768, 0, \ |
589 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
590 | 85500000, 64, 112, 256, 3, 6, 18, 0, 0, 0, \ |
591 | V4L2_DV_BT_STD_DMT, 0) \ |
592 | } |
593 | |
594 | #define V4L2_DV_BT_DMT_1360X768P120_RB { \ |
595 | .type = V4L2_DV_BT_656_1120, \ |
596 | V4L2_INIT_BT_TIMINGS(1360, 768, 0, V4L2_DV_HSYNC_POS_POL, \ |
597 | 148250000, 48, 32, 80, 3, 5, 37, 0, 0, 0, \ |
598 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
599 | V4L2_DV_FL_REDUCED_BLANKING) \ |
600 | } |
601 | |
602 | #define V4L2_DV_BT_DMT_1366X768P60 { \ |
603 | .type = V4L2_DV_BT_656_1120, \ |
604 | V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ |
605 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
606 | 85500000, 70, 143, 213, 3, 3, 24, 0, 0, 0, \ |
607 | V4L2_DV_BT_STD_DMT, 0) \ |
608 | } |
609 | |
610 | #define V4L2_DV_BT_DMT_1366X768P60_RB { \ |
611 | .type = V4L2_DV_BT_656_1120, \ |
612 | V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ |
613 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
614 | 72000000, 14, 56, 64, 1, 3, 28, 0, 0, 0, \ |
615 | V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ |
616 | } |
617 | |
618 | /* SXGA+ resolutions */ |
619 | #define V4L2_DV_BT_DMT_1400X1050P60_RB { \ |
620 | .type = V4L2_DV_BT_656_1120, \ |
621 | V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ |
622 | 101000000, 48, 32, 80, 3, 4, 23, 0, 0, 0, \ |
623 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
624 | V4L2_DV_FL_REDUCED_BLANKING) \ |
625 | } |
626 | |
627 | #define V4L2_DV_BT_DMT_1400X1050P60 { \ |
628 | .type = V4L2_DV_BT_656_1120, \ |
629 | V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ |
630 | 121750000, 88, 144, 232, 3, 4, 32, 0, 0, 0, \ |
631 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
632 | } |
633 | |
634 | #define V4L2_DV_BT_DMT_1400X1050P75 { \ |
635 | .type = V4L2_DV_BT_656_1120, \ |
636 | V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ |
637 | 156000000, 104, 144, 248, 3, 4, 42, 0, 0, 0, \ |
638 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
639 | } |
640 | |
641 | #define V4L2_DV_BT_DMT_1400X1050P85 { \ |
642 | .type = V4L2_DV_BT_656_1120, \ |
643 | V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ |
644 | 179500000, 104, 152, 256, 3, 4, 48, 0, 0, 0, \ |
645 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
646 | } |
647 | |
648 | #define V4L2_DV_BT_DMT_1400X1050P120_RB { \ |
649 | .type = V4L2_DV_BT_656_1120, \ |
650 | V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ |
651 | 208000000, 48, 32, 80, 3, 4, 55, 0, 0, 0, \ |
652 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
653 | V4L2_DV_FL_REDUCED_BLANKING) \ |
654 | } |
655 | |
656 | /* WXGA+ resolutions */ |
657 | #define V4L2_DV_BT_DMT_1440X900P60_RB { \ |
658 | .type = V4L2_DV_BT_656_1120, \ |
659 | V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \ |
660 | 88750000, 48, 32, 80, 3, 6, 17, 0, 0, 0, \ |
661 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
662 | V4L2_DV_FL_REDUCED_BLANKING) \ |
663 | } |
664 | |
665 | #define V4L2_DV_BT_DMT_1440X900P60 { \ |
666 | .type = V4L2_DV_BT_656_1120, \ |
667 | V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ |
668 | 106500000, 80, 152, 232, 3, 6, 25, 0, 0, 0, \ |
669 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
670 | } |
671 | |
672 | #define V4L2_DV_BT_DMT_1440X900P75 { \ |
673 | .type = V4L2_DV_BT_656_1120, \ |
674 | V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ |
675 | 136750000, 96, 152, 248, 3, 6, 33, 0, 0, 0, \ |
676 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
677 | } |
678 | |
679 | #define V4L2_DV_BT_DMT_1440X900P85 { \ |
680 | .type = V4L2_DV_BT_656_1120, \ |
681 | V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ |
682 | 157000000, 104, 152, 256, 3, 6, 39, 0, 0, 0, \ |
683 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
684 | } |
685 | |
686 | #define V4L2_DV_BT_DMT_1440X900P120_RB { \ |
687 | .type = V4L2_DV_BT_656_1120, \ |
688 | V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \ |
689 | 182750000, 48, 32, 80, 3, 6, 44, 0, 0, 0, \ |
690 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
691 | V4L2_DV_FL_REDUCED_BLANKING) \ |
692 | } |
693 | |
694 | #define V4L2_DV_BT_DMT_1600X900P60_RB { \ |
695 | .type = V4L2_DV_BT_656_1120, \ |
696 | V4L2_INIT_BT_TIMINGS(1600, 900, 0, \ |
697 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
698 | 108000000, 24, 80, 96, 1, 3, 96, 0, 0, 0, \ |
699 | V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ |
700 | } |
701 | |
702 | /* UXGA resolutions */ |
703 | #define V4L2_DV_BT_DMT_1600X1200P60 { \ |
704 | .type = V4L2_DV_BT_656_1120, \ |
705 | V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ |
706 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
707 | 162000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ |
708 | V4L2_DV_BT_STD_DMT, 0) \ |
709 | } |
710 | |
711 | #define V4L2_DV_BT_DMT_1600X1200P65 { \ |
712 | .type = V4L2_DV_BT_656_1120, \ |
713 | V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ |
714 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
715 | 175500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ |
716 | V4L2_DV_BT_STD_DMT, 0) \ |
717 | } |
718 | |
719 | #define V4L2_DV_BT_DMT_1600X1200P70 { \ |
720 | .type = V4L2_DV_BT_656_1120, \ |
721 | V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ |
722 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
723 | 189000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ |
724 | V4L2_DV_BT_STD_DMT, 0) \ |
725 | } |
726 | |
727 | #define V4L2_DV_BT_DMT_1600X1200P75 { \ |
728 | .type = V4L2_DV_BT_656_1120, \ |
729 | V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ |
730 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
731 | 202500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ |
732 | V4L2_DV_BT_STD_DMT, 0) \ |
733 | } |
734 | |
735 | #define V4L2_DV_BT_DMT_1600X1200P85 { \ |
736 | .type = V4L2_DV_BT_656_1120, \ |
737 | V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ |
738 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
739 | 229500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ |
740 | V4L2_DV_BT_STD_DMT, 0) \ |
741 | } |
742 | |
743 | #define V4L2_DV_BT_DMT_1600X1200P120_RB { \ |
744 | .type = V4L2_DV_BT_656_1120, \ |
745 | V4L2_INIT_BT_TIMINGS(1600, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ |
746 | 268250000, 48, 32, 80, 3, 4, 64, 0, 0, 0, \ |
747 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
748 | V4L2_DV_FL_REDUCED_BLANKING) \ |
749 | } |
750 | |
751 | /* WSXGA+ resolutions */ |
752 | #define V4L2_DV_BT_DMT_1680X1050P60_RB { \ |
753 | .type = V4L2_DV_BT_656_1120, \ |
754 | V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ |
755 | 119000000, 48, 32, 80, 3, 6, 21, 0, 0, 0, \ |
756 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
757 | V4L2_DV_FL_REDUCED_BLANKING) \ |
758 | } |
759 | |
760 | #define V4L2_DV_BT_DMT_1680X1050P60 { \ |
761 | .type = V4L2_DV_BT_656_1120, \ |
762 | V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ |
763 | 146250000, 104, 176, 280, 3, 6, 30, 0, 0, 0, \ |
764 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
765 | } |
766 | |
767 | #define V4L2_DV_BT_DMT_1680X1050P75 { \ |
768 | .type = V4L2_DV_BT_656_1120, \ |
769 | V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ |
770 | 187000000, 120, 176, 296, 3, 6, 40, 0, 0, 0, \ |
771 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
772 | } |
773 | |
774 | #define V4L2_DV_BT_DMT_1680X1050P85 { \ |
775 | .type = V4L2_DV_BT_656_1120, \ |
776 | V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ |
777 | 214750000, 128, 176, 304, 3, 6, 46, 0, 0, 0, \ |
778 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
779 | } |
780 | |
781 | #define V4L2_DV_BT_DMT_1680X1050P120_RB { \ |
782 | .type = V4L2_DV_BT_656_1120, \ |
783 | V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ |
784 | 245500000, 48, 32, 80, 3, 6, 53, 0, 0, 0, \ |
785 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
786 | V4L2_DV_FL_REDUCED_BLANKING) \ |
787 | } |
788 | |
789 | #define V4L2_DV_BT_DMT_1792X1344P60 { \ |
790 | .type = V4L2_DV_BT_656_1120, \ |
791 | V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \ |
792 | 204750000, 128, 200, 328, 1, 3, 46, 0, 0, 0, \ |
793 | V4L2_DV_BT_STD_DMT, 0) \ |
794 | } |
795 | |
796 | #define V4L2_DV_BT_DMT_1792X1344P75 { \ |
797 | .type = V4L2_DV_BT_656_1120, \ |
798 | V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \ |
799 | 261000000, 96, 216, 352, 1, 3, 69, 0, 0, 0, \ |
800 | V4L2_DV_BT_STD_DMT, 0) \ |
801 | } |
802 | |
803 | #define V4L2_DV_BT_DMT_1792X1344P120_RB { \ |
804 | .type = V4L2_DV_BT_656_1120, \ |
805 | V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_HSYNC_POS_POL, \ |
806 | 333250000, 48, 32, 80, 3, 4, 72, 0, 0, 0, \ |
807 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
808 | V4L2_DV_FL_REDUCED_BLANKING) \ |
809 | } |
810 | |
811 | #define V4L2_DV_BT_DMT_1856X1392P60 { \ |
812 | .type = V4L2_DV_BT_656_1120, \ |
813 | V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \ |
814 | 218250000, 96, 224, 352, 1, 3, 43, 0, 0, 0, \ |
815 | V4L2_DV_BT_STD_DMT, 0) \ |
816 | } |
817 | |
818 | #define V4L2_DV_BT_DMT_1856X1392P75 { \ |
819 | .type = V4L2_DV_BT_656_1120, \ |
820 | V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \ |
821 | 288000000, 128, 224, 352, 1, 3, 104, 0, 0, 0, \ |
822 | V4L2_DV_BT_STD_DMT, 0) \ |
823 | } |
824 | |
825 | #define V4L2_DV_BT_DMT_1856X1392P120_RB { \ |
826 | .type = V4L2_DV_BT_656_1120, \ |
827 | V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_HSYNC_POS_POL, \ |
828 | 356500000, 48, 32, 80, 3, 4, 75, 0, 0, 0, \ |
829 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
830 | V4L2_DV_FL_REDUCED_BLANKING) \ |
831 | } |
832 | |
833 | #define V4L2_DV_BT_DMT_1920X1080P60 V4L2_DV_BT_CEA_1920X1080P60 |
834 | |
835 | /* WUXGA resolutions */ |
836 | #define V4L2_DV_BT_DMT_1920X1200P60_RB { \ |
837 | .type = V4L2_DV_BT_656_1120, \ |
838 | V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ |
839 | 154000000, 48, 32, 80, 3, 6, 26, 0, 0, 0, \ |
840 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
841 | V4L2_DV_FL_REDUCED_BLANKING) \ |
842 | } |
843 | |
844 | #define V4L2_DV_BT_DMT_1920X1200P60 { \ |
845 | .type = V4L2_DV_BT_656_1120, \ |
846 | V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ |
847 | 193250000, 136, 200, 336, 3, 6, 36, 0, 0, 0, \ |
848 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
849 | } |
850 | |
851 | #define V4L2_DV_BT_DMT_1920X1200P75 { \ |
852 | .type = V4L2_DV_BT_656_1120, \ |
853 | V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ |
854 | 245250000, 136, 208, 344, 3, 6, 46, 0, 0, 0, \ |
855 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
856 | } |
857 | |
858 | #define V4L2_DV_BT_DMT_1920X1200P85 { \ |
859 | .type = V4L2_DV_BT_656_1120, \ |
860 | V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ |
861 | 281250000, 144, 208, 352, 3, 6, 53, 0, 0, 0, \ |
862 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
863 | } |
864 | |
865 | #define V4L2_DV_BT_DMT_1920X1200P120_RB { \ |
866 | .type = V4L2_DV_BT_656_1120, \ |
867 | V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ |
868 | 317000000, 48, 32, 80, 3, 6, 62, 0, 0, 0, \ |
869 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
870 | V4L2_DV_FL_REDUCED_BLANKING) \ |
871 | } |
872 | |
873 | #define V4L2_DV_BT_DMT_1920X1440P60 { \ |
874 | .type = V4L2_DV_BT_656_1120, \ |
875 | V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \ |
876 | 234000000, 128, 208, 344, 1, 3, 56, 0, 0, 0, \ |
877 | V4L2_DV_BT_STD_DMT, 0) \ |
878 | } |
879 | |
880 | #define V4L2_DV_BT_DMT_1920X1440P75 { \ |
881 | .type = V4L2_DV_BT_656_1120, \ |
882 | V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \ |
883 | 297000000, 144, 224, 352, 1, 3, 56, 0, 0, 0, \ |
884 | V4L2_DV_BT_STD_DMT, 0) \ |
885 | } |
886 | |
887 | #define V4L2_DV_BT_DMT_1920X1440P120_RB { \ |
888 | .type = V4L2_DV_BT_656_1120, \ |
889 | V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_HSYNC_POS_POL, \ |
890 | 380500000, 48, 32, 80, 3, 4, 78, 0, 0, 0, \ |
891 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
892 | V4L2_DV_FL_REDUCED_BLANKING) \ |
893 | } |
894 | |
895 | #define V4L2_DV_BT_DMT_2048X1152P60_RB { \ |
896 | .type = V4L2_DV_BT_656_1120, \ |
897 | V4L2_INIT_BT_TIMINGS(2048, 1152, 0, \ |
898 | V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ |
899 | 162000000, 26, 80, 96, 1, 3, 44, 0, 0, 0, \ |
900 | V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ |
901 | } |
902 | |
903 | /* WQXGA resolutions */ |
904 | #define V4L2_DV_BT_DMT_2560X1600P60_RB { \ |
905 | .type = V4L2_DV_BT_656_1120, \ |
906 | V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \ |
907 | 268500000, 48, 32, 80, 3, 6, 37, 0, 0, 0, \ |
908 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
909 | V4L2_DV_FL_REDUCED_BLANKING) \ |
910 | } |
911 | |
912 | #define V4L2_DV_BT_DMT_2560X1600P60 { \ |
913 | .type = V4L2_DV_BT_656_1120, \ |
914 | V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ |
915 | 348500000, 192, 280, 472, 3, 6, 49, 0, 0, 0, \ |
916 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
917 | } |
918 | |
919 | #define V4L2_DV_BT_DMT_2560X1600P75 { \ |
920 | .type = V4L2_DV_BT_656_1120, \ |
921 | V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ |
922 | 443250000, 208, 280, 488, 3, 6, 63, 0, 0, 0, \ |
923 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
924 | } |
925 | |
926 | #define V4L2_DV_BT_DMT_2560X1600P85 { \ |
927 | .type = V4L2_DV_BT_656_1120, \ |
928 | V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ |
929 | 505250000, 208, 280, 488, 3, 6, 73, 0, 0, 0, \ |
930 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ |
931 | } |
932 | |
933 | #define V4L2_DV_BT_DMT_2560X1600P120_RB { \ |
934 | .type = V4L2_DV_BT_656_1120, \ |
935 | V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \ |
936 | 552750000, 48, 32, 80, 3, 6, 85, 0, 0, 0, \ |
937 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
938 | V4L2_DV_FL_REDUCED_BLANKING) \ |
939 | } |
940 | |
941 | /* 4K resolutions */ |
942 | #define V4L2_DV_BT_DMT_4096X2160P60_RB { \ |
943 | .type = V4L2_DV_BT_656_1120, \ |
944 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \ |
945 | 556744000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \ |
946 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
947 | V4L2_DV_FL_REDUCED_BLANKING) \ |
948 | } |
949 | |
950 | #define V4L2_DV_BT_DMT_4096X2160P59_94_RB { \ |
951 | .type = V4L2_DV_BT_656_1120, \ |
952 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \ |
953 | 556188000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \ |
954 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ |
955 | V4L2_DV_FL_REDUCED_BLANKING) \ |
956 | } |
957 | |
958 | /* SDI timings definitions */ |
959 | |
960 | /* SMPTE-125M */ |
961 | #define V4L2_DV_BT_SDI_720X487I60 { \ |
962 | .type = V4L2_DV_BT_656_1120, \ |
963 | V4L2_INIT_BT_TIMINGS(720, 487, 1, \ |
964 | V4L2_DV_HSYNC_POS_POL, \ |
965 | 13500000, 16, 121, 0, 0, 19, 0, 0, 19, 0, \ |
966 | V4L2_DV_BT_STD_SDI, \ |
967 | V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE) \ |
968 | } |
969 | |
970 | #endif |
971 | |