1772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#ifndef _UAPI_MSM_HDMI_MODES_H__
2772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define _UAPI_MSM_HDMI_MODES_H__
3772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#include <linux/types.h>
4464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#include <linux/errno.h>
5464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
6464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define MSM_HDMI_RGB_888_24BPP_FORMAT       BIT(0)
7464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define MSM_HDMI_YUV_420_12BPP_FORMAT       BIT(1)
8772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
9772b7facf972926b14fe303d0348c200cb20a313Prashant Malanienum aspect_ratio {
10772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	HDMI_RES_AR_INVALID,
11772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	HDMI_RES_AR_4_3,
12772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	HDMI_RES_AR_5_4,
13772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	HDMI_RES_AR_16_9,
14772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	HDMI_RES_AR_16_10,
15464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_RES_AR_64_27,
16464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_RES_AR_256_135,
17772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	HDMI_RES_AR_MAX,
18772b7facf972926b14fe303d0348c200cb20a313Prashant Malani};
19772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
20464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherryenum msm_hdmi_s3d_mode {
21464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_S3D_NONE,
22464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_S3D_SIDE_BY_SIDE,
23464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_S3D_TOP_AND_BOTTOM,
24464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_S3D_FRAME_PACKING,
25464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	HDMI_S3D_MAX,
26464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry};
27464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
28772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct msm_hdmi_mode_timing_info {
29772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	video_format;
30772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	active_h;
31772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	front_porch_h;
32772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	pulse_width_h;
33772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	back_porch_h;
34772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	active_low_h;
35772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	active_v;
36772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	front_porch_v;
37772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	pulse_width_v;
38772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	back_porch_v;
39772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	active_low_v;
40772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	/* Must divide by 1000 to get the actual frequency in MHZ */
41772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	pixel_freq;
42772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	/* Must divide by 1000 to get the actual frequency in HZ */
43772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	refresh_rate;
44772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	interlaced;
45772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	uint32_t	supported;
46772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	enum aspect_ratio ar;
47464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	/* Flags indicating support for specific pixel formats */
48464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	uint32_t        pixel_formats;
49772b7facf972926b14fe303d0348c200cb20a313Prashant Malani};
50772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
51464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define MSM_HDMI_INIT_RES_PAGE          1
52464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
53772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_CEA		(1 << 0)
54772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_XTND		(1 << 1)
55772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_DVI		(1 << 2)
56772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_ALL		(MSM_HDMI_MODES_CEA |\
57772b7facf972926b14fe303d0348c200cb20a313Prashant Malani					 MSM_HDMI_MODES_XTND |\
58772b7facf972926b14fe303d0348c200cb20a313Prashant Malani					 MSM_HDMI_MODES_DVI)
59772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
60772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* all video formats defined by CEA 861D */
61772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_UNKNOWN		0
62772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_640x480p60_4_3	1
63772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p60_4_3	2
64772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p60_16_9	3
65772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p60_16_9	4
66772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080i60_16_9	5
67772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480i60_4_3	6
68772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i60_4_3	HDMI_VFRMT_720x480i60_4_3
69772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480i60_16_9	7
70772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i60_16_9	HDMI_VFRMT_720x480i60_16_9
71772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x240p60_4_3	8
72772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x240p60_4_3	HDMI_VFRMT_720x240p60_4_3
73772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x240p60_16_9	9
74772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x240p60_16_9	HDMI_VFRMT_720x240p60_16_9
75772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x480i60_4_3	10
76772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x480i60_16_9	11
77772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x240p60_4_3	12
78772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x240p60_16_9	13
79772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480p60_4_3	14
80772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480p60_16_9	15
81772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p60_16_9	16
82772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p50_4_3	17
83772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p50_16_9	18
84772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p50_16_9	19
85772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080i50_16_9	20
86772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576i50_4_3	21
87772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i50_4_3	HDMI_VFRMT_720x576i50_4_3
88772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576i50_16_9	22
89772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i50_16_9	HDMI_VFRMT_720x576i50_16_9
90772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x288p50_4_3	23
91772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x288p50_4_3	HDMI_VFRMT_720x288p50_4_3
92772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x288p50_16_9	24
93772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x288p50_16_9	HDMI_VFRMT_720x288p50_16_9
94772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x576i50_4_3	25
95772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x576i50_16_9	26
96772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x288p50_4_3	27
97772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x288p50_16_9	28
98772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576p50_4_3	29
99772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576p50_16_9	30
100772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p50_16_9	31
101772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p24_16_9	32
102772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p25_16_9	33
103772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p30_16_9	34
104772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x480p60_4_3	35
105772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x480p60_16_9	36
106772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x576p50_4_3	37
107772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2880x576p50_16_9	38
108772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1250i50_16_9	39
109772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080i100_16_9	40
110772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p100_16_9	41
111772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p100_4_3	42
112772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p100_16_9	43
113772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576i100_4_3	44
114772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i100_4_3	HDMI_VFRMT_720x576i100_4_3
115772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576i100_16_9	45
116772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i100_16_9	HDMI_VFRMT_720x576i100_16_9
117772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080i120_16_9	46
118772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p120_16_9	47
119772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p120_4_3	48
120772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p120_16_9	49
121772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480i120_4_3	50
122772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i120_4_3	HDMI_VFRMT_720x480i120_4_3
123772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480i120_16_9	51
124772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i120_16_9	HDMI_VFRMT_720x480i120_16_9
125772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p200_4_3	52
126772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p200_16_9	53
127772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576i200_4_3	54
128772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i200_4_3	HDMI_VFRMT_720x576i200_4_3
129772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576i200_16_9	55
130772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i200_16_9	HDMI_VFRMT_720x576i200_16_9
131772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p240_4_3	56
132772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p240_16_9	57
133772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480i240_4_3	58
134772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i240_4_3	HDMI_VFRMT_720x480i240_4_3
135772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480i240_16_9	59
136772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i240_16_9	HDMI_VFRMT_720x480i240_16_9
137772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p24_16_9	60
138772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p25_16_9	61
139772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p30_16_9	62
140772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p120_16_9	63
141772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p100_16_9	64
142464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p24_64_27    65
143464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p25_64_27    66
144464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p30_64_27    67
145464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p50_64_27    68
146464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p60_64_27    69
147464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p100_64_27   70
148464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1280x720p120_64_27   71
149464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p24_64_27   72
150464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p25_64_27   73
151464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p30_64_27   74
152464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p50_64_27   75
153464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p60_64_27   76
154464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p100_64_27  77
155464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1920x1080p120_64_27  78
156464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p24_64_27    79
157464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p25_64_27    80
158464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p30_64_27    81
159464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p50_64_27    82
160464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p60_64_27    83
161464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p100_64_27   84
162464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_1680x720p120_64_27   85
163464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p24_64_27   86
164464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p25_64_27   87
165464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p30_64_27   88
166464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p50_64_27   89
167464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p60_64_27   90
168464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p100_64_27  91
169464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_2560x1080p120_64_27  92
170464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p24_16_9    93
171464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p25_16_9    94
172464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p30_16_9    95
173464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p50_16_9    96
174464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p60_16_9    97
175464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p24_256_135 98
176464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p25_256_135 99
177464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p30_256_135 100
178464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p50_256_135 101
179464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p60_256_135 102
180464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p24_64_27   103
181464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p25_64_27   104
182464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p30_64_27   105
183464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p50_64_27   106
184464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p60_64_27   107
185464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
186464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry/* Video Identification Codes from 107-127 are reserved for the future */
187772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_END			127
188772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
189772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EVFRMT_OFF(x)			(HDMI_VFRMT_END + x)
190772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
191772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* extended video formats */
192464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_3840x2160p30_16_9	EVFRMT_OFF(1)
193464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_3840x2160p25_16_9	EVFRMT_OFF(2)
194464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_3840x2160p24_16_9	EVFRMT_OFF(3)
195464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_4096x2160p24_16_9	EVFRMT_OFF(4)
196464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_END			HDMI_EVFRMT_4096x2160p24_16_9
197772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
198772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define WQXGA_OFF(x)			(HDMI_EVFRMT_END + x)
199772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
200772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* WQXGA */
201772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2560x1600p60_16_9	WQXGA_OFF(1)
202772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_WQXGAFRMT_END		HDMI_VFRMT_2560x1600p60_16_9
203772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
204772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define WXGA_OFF(x)			(HDMI_WQXGAFRMT_END + x)
205772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
206772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* WXGA */
207772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x800p60_16_10	WXGA_OFF(1)
208772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1366x768p60_16_10	WXGA_OFF(2)
209772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_WXGAFRMT_END		HDMI_VFRMT_1366x768p60_16_10
210772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
211772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define ETI_OFF(x)			(HDMI_WXGAFRMT_END + x)
212772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
213772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* ESTABLISHED TIMINGS I */
214772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_800x600p60_4_3	ETI_OFF(1)
215772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define ETI_VFRMT_END			HDMI_VFRMT_800x600p60_4_3
216772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
217772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define ETII_OFF(x)			(ETI_VFRMT_END + x)
218772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
219772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* ESTABLISHED TIMINGS II */
220772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1024x768p60_4_3	ETII_OFF(1)
221772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x1024p60_5_4	ETII_OFF(2)
222772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define ETII_VFRMT_END			HDMI_VFRMT_1280x1024p60_5_4
223772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
224772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define ETIII_OFF(x)			(ETII_VFRMT_END + x)
225772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
226772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* ESTABLISHED TIMINGS III */
227772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_848x480p60_16_9	ETIII_OFF(1)
228772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x960p60_4_3	ETIII_OFF(2)
229772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1360x768p60_16_9	ETIII_OFF(3)
230772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x900p60_16_10	ETIII_OFF(4)
231772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1400x1050p60_4_3	ETIII_OFF(5)
232772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1680x1050p60_16_10	ETIII_OFF(6)
233772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1600x1200p60_4_3	ETIII_OFF(7)
234772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1200p60_16_10	ETIII_OFF(8)
235772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define ETIII_VFRMT_END			HDMI_VFRMT_1920x1200p60_16_10
236772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
237464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define RESERVE_OFF(x)			(ETIII_VFRMT_END + x)
238464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
239464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE1		RESERVE_OFF(1)
240464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE2		RESERVE_OFF(2)
241464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE3		RESERVE_OFF(3)
242464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE4		RESERVE_OFF(4)
243464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE5		RESERVE_OFF(5)
244464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE6		RESERVE_OFF(6)
245464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE7		RESERVE_OFF(7)
246464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_RESERVE8		RESERVE_OFF(8)
247464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define RESERVE_VFRMT_END		HDMI_VFRMT_RESERVE8
248464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
249464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_MAX			(RESERVE_VFRMT_END + 1)
250772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
251772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* Timing information for supported modes */
252772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VFRMT_NOT_SUPPORTED(VFRMT) \
253772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{VFRMT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false,		\
254772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		HDMI_RES_AR_INVALID}
255772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
256772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_640x480p60_4_3_TIMING				\
257772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_640x480p60_4_3, 640, 16, 96, 48, true,		\
258464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 480, 10, 2, 33, true, 25200, 60000, false, true, HDMI_RES_AR_4_3, 0}
259772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p60_4_3_TIMING				\
260772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_720x480p60_4_3, 720, 16, 62, 60, true,		\
261464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 480, 9, 6, 30, true, 27027, 60000, false, true, HDMI_RES_AR_4_3, 0}
262772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x480p60_16_9_TIMING				\
263772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_720x480p60_16_9, 720, 16, 62, 60, true,		\
264464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 480, 9, 6, 30, true, 27027, 60000, false, true, HDMI_RES_AR_16_9, 0}
265772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p60_16_9_TIMING				\
266772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1280x720p60_16_9, 1280, 110, 40, 220, false,	\
267464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 720, 5, 5, 20, false, 74250, 60000, false, true, HDMI_RES_AR_16_9, 0}
268772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080i60_16_9_TIMING				\
269772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1080i60_16_9, 1920, 88, 44, 148, false,	\
270464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 540, 2, 5, 5, false, 74250, 60000, false, true, HDMI_RES_AR_16_9, 0}
271772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i60_4_3_TIMING				\
272772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1440x480i60_4_3, 1440, 38, 124, 114, true,		\
273464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 240, 4, 3, 15, true, 27000, 60000, true, true, HDMI_RES_AR_4_3, 0}
274772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x480i60_16_9_TIMING				\
275772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1440x480i60_16_9, 1440, 38, 124, 114, true,		\
276464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 240, 4, 3, 15, true, 27000, 60000, true, true, HDMI_RES_AR_16_9, 0}
277772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p60_16_9_TIMING				\
278772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1080p60_16_9, 1920, 88, 44, 148, false,	\
279464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1080, 4, 5, 36, false, 148500, 60000, false, true, HDMI_RES_AR_16_9, 0}
280772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p50_4_3_TIMING				\
281772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_720x576p50_4_3, 720, 12, 64, 68, true,		\
282464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 576,  5, 5, 39, true, 27000, 50000, false, true, HDMI_RES_AR_4_3, 0}
283772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_720x576p50_16_9_TIMING				\
284772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_720x576p50_16_9, 720, 12, 64, 68, true,		\
285464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 576,  5, 5, 39, true, 27000, 50000, false, true, HDMI_RES_AR_16_9, 0}
286772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x720p50_16_9_TIMING				\
287772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1280x720p50_16_9, 1280, 440, 40, 220, false,	\
288464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 720,  5, 5, 20, false, 74250, 50000, false, true, HDMI_RES_AR_16_9, 0}
289772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i50_4_3_TIMING				\
290772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1440x576i50_4_3, 1440, 24, 126, 138, true,		\
291464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 288,  2, 3, 19, true, 27000, 50000, true, true, HDMI_RES_AR_4_3, 0}
292772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x576i50_16_9_TIMING				\
293772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1440x576i50_16_9, 1440, 24, 126, 138, true,		\
294464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 288,  2, 3, 19, true, 27000, 50000, true, true, HDMI_RES_AR_16_9, 0}
295772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p50_16_9_TIMING				\
296772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1080p50_16_9, 1920, 528, 44, 148, false,	\
297464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1080, 4, 5, 36, false, 148500, 50000, false, true, HDMI_RES_AR_16_9, 0}
298772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p24_16_9_TIMING				\
299772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1080p24_16_9, 1920, 638, 44, 148, false,	\
300464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1080, 4, 5, 36, false, 74250, 24000, false, true, HDMI_RES_AR_16_9, 0}
301772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p25_16_9_TIMING				\
302772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1080p25_16_9, 1920, 528, 44, 148, false,	\
303464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1080, 4, 5, 36, false, 74250, 25000, false, true, HDMI_RES_AR_16_9, 0}
304772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1080p30_16_9_TIMING				\
305772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1080p30_16_9, 1920, 88, 44, 148, false,	\
306464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1080, 4, 5, 36, false, 74250, 30000, false, true, HDMI_RES_AR_16_9, 0}
307772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1024x768p60_4_3_TIMING                               \
308772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1024x768p60_4_3, 1024, 24, 136, 160, false,         \
309464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	768, 2, 6, 29, false, 65000, 60000, false, true, HDMI_RES_AR_4_3, 0}
310772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x1024p60_5_4_TIMING				\
311772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1280x1024p60_5_4, 1280, 48, 112, 248, false,	\
312464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	1024, 1, 3, 38, false, 108000, 60000, false, true, HDMI_RES_AR_5_4, 0}
313772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_2560x1600p60_16_9_TIMING				\
314772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_2560x1600p60_16_9, 2560, 48, 32, 80, false,		\
315464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1600, 3, 6, 37, false, 268500, 60000, false, true, HDMI_RES_AR_16_9, 0}
316464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_3840x2160p30_16_9_TIMING				\
317464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_EVFRMT_3840x2160p30_16_9, 3840, 176, 88, 296, false,	\
318464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 30000, false, true, \
319464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
320464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_3840x2160p25_16_9_TIMING				\
321464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_EVFRMT_3840x2160p25_16_9, 3840, 1056, 88, 296, false,	\
322464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 25000, false, true, \
323464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
324464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_3840x2160p24_16_9_TIMING				\
325464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_EVFRMT_3840x2160p24_16_9, 3840, 1276, 88, 296, false,	\
326464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 24000, false, true, \
327464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
328464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_EVFRMT_4096x2160p24_16_9_TIMING				\
329464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_EVFRMT_4096x2160p24_16_9, 4096, 1020, 88, 296, false,	\
330464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 24000, false, true, \
331464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
332772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
333772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_800x600p60_4_3_TIMING				\
334772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_800x600p60_4_3, 800, 40, 128, 88, false,	\
335464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 600, 1, 4, 23, false, 40000, 60000, false, true, HDMI_RES_AR_4_3, 0}
336772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_848x480p60_16_9_TIMING				\
337772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_848x480p60_16_9, 848, 16, 112, 112, false,	\
338464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 480, 6, 8, 23, false, 33750, 60000, false, true, HDMI_RES_AR_16_9, 0}
339772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x960p60_4_3_TIMING\
340772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1280x960p60_4_3, 1280, 96, 112, 312, false,	\
341464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 960, 1, 3, 36, false, 108000, 60000, false, true, HDMI_RES_AR_4_3, 0}
342772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1360x768p60_16_9_TIMING\
343772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1360x768p60_16_9, 1360, 64, 112, 256, false,	\
344464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 768, 3, 6, 18, false, 85500, 60000, false, true, HDMI_RES_AR_16_9, 0}
345772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1440x900p60_16_10_TIMING\
346772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1440x900p60_16_10, 1440, 48, 32, 80, false,	\
347464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 900, 3, 6, 17, true, 88750, 60000, false, true, HDMI_RES_AR_16_10, 0}
348772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1400x1050p60_4_3_TIMING\
349772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1400x1050p60_4_3, 1400, 48, 32, 80, false,	\
350464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1050, 3, 4, 23, true, 101000, 60000, false, true, HDMI_RES_AR_4_3, 0}
351772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1680x1050p60_16_10_TIMING\
352772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1680x1050p60_16_10, 1680, 48, 32, 80, false,	\
353464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1050, 3, 6, 21, true, 119000, 60000, false, true, HDMI_RES_AR_16_10, 0}
354772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1600x1200p60_4_3_TIMING\
355772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1600x1200p60_4_3, 1600, 64, 192, 304, false,	\
356464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1200, 1, 3, 46, false, 162000, 60000, false, true, HDMI_RES_AR_4_3, 0}
357772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1920x1200p60_16_10_TIMING\
358772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1920x1200p60_16_10, 1920, 48, 32, 80, false,\
359464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 1200, 3, 6, 26, true, 154000, 60000, false, true, HDMI_RES_AR_16_10, 0}
360772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1366x768p60_16_10_TIMING\
361772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1366x768p60_16_10, 1366, 70, 143, 213, false,\
362464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 768, 3, 3, 24, false, 85500, 60000, false, true, HDMI_RES_AR_16_10, 0}
363772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define HDMI_VFRMT_1280x800p60_16_10_TIMING\
364772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	{HDMI_VFRMT_1280x800p60_16_10, 1280, 72, 128, 200, true,\
365464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 800, 3, 6, 22, false, 83500, 60000, false, true, HDMI_RES_AR_16_10, 0}
366464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p24_16_9_TIMING                             \
367464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p24_16_9, 3840, 1276, 88, 296, false,      \
368464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 24000, false, true, \
369464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
370464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p25_16_9_TIMING                             \
371464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p25_16_9, 3840, 1056, 88, 296, false,      \
372464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 25000, false, true, \
373464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
374464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p30_16_9_TIMING                             \
375464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p30_16_9, 3840, 176, 88, 296, false,       \
376464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 30000, false, true, \
377464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
378464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p50_16_9_TIMING                             \
379464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p50_16_9, 3840, 1056, 88, 296, false,      \
380464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 594000, 50000, false, true, \
381464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
382464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p60_16_9_TIMING                             \
383464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p60_16_9, 3840, 176, 88, 296, false,       \
384464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 594000, 60000, false, true, \
385464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_16_9, 0}
386464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
387464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p24_256_135_TIMING                          \
388464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_4096x2160p24_256_135, 4096, 1020, 88, 296, false,   \
389464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 24000, false, true, \
390464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_256_135, 0}
391464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p25_256_135_TIMING                          \
392464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_4096x2160p25_256_135, 4096, 968, 88, 128, false,    \
393464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 25000, false, true, \
394464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_256_135, 0}
395464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p30_256_135_TIMING                          \
396464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_4096x2160p30_256_135, 4096, 88, 88, 128, false,     \
397464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 30000, false, true, \
398464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_256_135, 0}
399464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p50_256_135_TIMING                          \
400464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_4096x2160p50_256_135, 4096, 968, 88, 128, false,    \
401464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 594000, 50000, false, true, \
402464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_256_135, 0}
403464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_4096x2160p60_256_135_TIMING                          \
404464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_4096x2160p60_256_135, 4096, 88, 88, 128, false,     \
405464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 594000, 60000, false, true, \
406464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_256_135, 0}
407464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
408464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p24_64_27_TIMING                             \
409464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p24_64_27, 3840, 1276, 88, 296, false,      \
410464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 24000, false, true, \
411464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_64_27, 0}
412464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p25_64_27_TIMING                             \
413464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p25_64_27, 3840, 1056, 88, 296, false,      \
414464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 25000, false, true, \
415464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_64_27, 0}
416464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p30_64_27_TIMING                             \
417464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p30_64_27, 3840, 176, 88, 296, false,       \
418464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 297000, 30000, false, true, \
419464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_64_27, 0}
420464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p50_64_27_TIMING                             \
421464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p50_64_27, 3840, 1056, 88, 296, false,      \
422464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 594000, 50000, false, true, \
423464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_64_27, 0}
424464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define HDMI_VFRMT_3840x2160p60_64_27_TIMING                             \
425464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	{HDMI_VFRMT_3840x2160p60_64_27, 3840, 176, 88, 296, false,       \
426464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	 2160, 8, 10, 72, false, 594000, 60000, false, true, \
427464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		HDMI_RES_AR_64_27, 0}
428772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
429772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_SET_TIMING(LUT, MODE) do {		\
430772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	struct msm_hdmi_mode_timing_info mode = MODE##_TIMING;	\
431772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	LUT[MODE] = mode;\
432772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	} while (0)
433772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
434772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_INIT_TIMINGS(__lut)	\
435772b7facf972926b14fe303d0348c200cb20a313Prashant Malanido {	\
436772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	unsigned int i;	\
437772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	for (i = 0; i < HDMI_VFRMT_MAX; i++) {	\
438772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		struct msm_hdmi_mode_timing_info mode =	\
439772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			VFRMT_NOT_SUPPORTED(i);	\
440772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		(__lut)[i] = mode;	\
441772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	}	\
442772b7facf972926b14fe303d0348c200cb20a313Prashant Malani} while (0)
443772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
444772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MSM_HDMI_MODES_SET_SUPP_TIMINGS(__lut, __type)	\
445772b7facf972926b14fe303d0348c200cb20a313Prashant Malanido {	\
446772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	if (__type & MSM_HDMI_MODES_CEA) {	\
447772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
448772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_640x480p60_4_3);	\
449772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
450772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_720x480p60_4_3);	\
451772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
452772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_720x480p60_16_9);	\
453772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
454772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1280x720p60_16_9);	\
455772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
456772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1080i60_16_9);	\
457772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
458772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1440x480i60_4_3);	\
459772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
460772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1440x480i60_16_9);	\
461772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
462772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1080p60_16_9);	\
463772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
464772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_720x576p50_4_3);	\
465772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
466772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_720x576p50_16_9);	\
467772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
468772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1280x720p50_16_9);	\
469772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
470772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1440x576i50_4_3);	\
471772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
472772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1440x576i50_16_9);	\
473772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
474772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1080p50_16_9);	\
475772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
476772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1080p24_16_9);	\
477772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
478772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1080p25_16_9);	\
479772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
480772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1080p30_16_9);	\
481464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
482464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p24_16_9);  \
483464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
484464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p25_16_9);  \
485464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
486464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p30_16_9);  \
487464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
488464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p50_16_9);  \
489464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
490464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p60_16_9);  \
491464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
492464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_4096x2160p24_256_135);\
493464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
494464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_4096x2160p25_256_135);\
495464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
496464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_4096x2160p30_256_135);\
497464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
498464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_4096x2160p50_256_135);\
499464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
500464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_4096x2160p60_256_135);\
501464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
502464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p24_64_27); \
503464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
504464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p25_64_27); \
505464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
506464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p30_64_27); \
507464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
508464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p50_64_27); \
509464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry		MSM_HDMI_MODES_SET_TIMING(__lut,	\
510464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_VFRMT_3840x2160p60_64_27); \
511772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	}	\
512772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	if (__type & MSM_HDMI_MODES_XTND) {	\
513772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
514464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_EVFRMT_3840x2160p30_16_9);	\
515772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
516464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_EVFRMT_3840x2160p25_16_9);	\
517772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
518464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_EVFRMT_3840x2160p24_16_9);	\
519772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
520464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry			HDMI_EVFRMT_4096x2160p24_16_9);	\
521772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	}	\
522772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	if (__type & MSM_HDMI_MODES_DVI) {	\
523772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
524772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1024x768p60_4_3);	\
525772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
526772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1280x1024p60_5_4);	\
527772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
528772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_2560x1600p60_16_9);	\
529772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
530772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_800x600p60_4_3);	\
531772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
532772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_848x480p60_16_9);	\
533772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
534772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1280x960p60_4_3);	\
535772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
536772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1360x768p60_16_9);	\
537772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
538772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1440x900p60_16_10);	\
539772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
540772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1400x1050p60_4_3);	\
541772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
542772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1680x1050p60_16_10);	\
543772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
544772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1600x1200p60_4_3);	\
545772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
546772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1920x1200p60_16_10);	\
547772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
548772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1366x768p60_16_10);	\
549772b7facf972926b14fe303d0348c200cb20a313Prashant Malani		MSM_HDMI_MODES_SET_TIMING(__lut,	\
550772b7facf972926b14fe303d0348c200cb20a313Prashant Malani			HDMI_VFRMT_1280x800p60_16_10);	\
551772b7facf972926b14fe303d0348c200cb20a313Prashant Malani	}	\
552772b7facf972926b14fe303d0348c200cb20a313Prashant Malani} while (0)
553772b7facf972926b14fe303d0348c200cb20a313Prashant Malani
554464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define MSM_HDMI_MODES_GET_DETAILS(mode, MODE) do {		\
555464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	struct msm_hdmi_mode_timing_info info = MODE##_TIMING;	\
556464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	*mode = info;						\
557464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry	} while (0)
558464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry
559772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#endif /* _UAPI_MSM_HDMI_MODES_H__ */
560