Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | /** |
2 | * Copyright (C) 2006 NXP N.V., All Rights Reserved. | |
3 | * This source code and any compilation or derivative thereof is the proprietary | |
4 | * information of NXP N.V. and is confidential in nature. Under no circumstances | |
5 | * is this software to be exposed to or placed under an Open Source License of | |
6 | * any type without the expressed written permission of NXP N.V. | |
7 | * | |
8 | * Version Revision: 1.0 | |
9 | * | |
10 | * Date Date: 27/10/09 | |
11 | * | |
12 | * Brief API for the TDA1998x HDMI Transmitters | |
13 | * | |
14 | **/ | |
15 | ||
16 | #include <linux/types.h> | |
17 | ||
18 | #ifndef __tx_ioctl__ | |
19 | #define __tx_ioctl__ | |
20 | ||
21 | #ifdef __tx_h__ | |
22 | ||
23 | #define TRANS_TYPE 1 | |
24 | ||
25 | #if TRANS_TYPE | |
26 | ||
27 | #define EXAMPLE_MAX_SVD 30 | |
28 | ||
29 | /* | |
30 | trans-type | |
31 | */ | |
32 | typedef tmSWVersion_t tda_version; | |
33 | typedef tmPowerState_t tda_power; | |
34 | typedef tmdlHdmiTxInstanceSetupInfo_t tda_setup; | |
35 | typedef tmdlHdmiTxCapabilities_t tda_capabilities; | |
36 | typedef tmdlHdmiTxVideoOutConfig_t tda_video_out; | |
37 | typedef tmdlHdmiTxVideoInConfig_t tda_video_in; | |
38 | typedef tmdlHdmiTxSinkType_t tda_sink; | |
39 | typedef tmdlHdmiTxAudioInConfig_t tda_audio_in; | |
40 | typedef tmdlHdmiTxEdidAudioDesc_t tda_edid_audio_desc; | |
41 | typedef tmdlHdmiTxShortVidDesc_t tda_edid_video_desc; | |
42 | typedef tmdlHdmiTxEvent_t tda_event; | |
43 | typedef tmdlHdmiTxInstanceSetupInfo_t tda_setup_info; | |
44 | typedef tmdlHdmiTxEdidVideoTimings_t tda_edid_video_timings; | |
45 | typedef tmdlHdmiTxPictAspectRatio_t tda_edid_tv_aspect_ratio; | |
46 | typedef tmdlHdmiTxHdcpCheck_t tda_hdcp_status; | |
47 | #if defined(TMFL_TDA19989) || defined(TMFL_TDA9984) | |
48 | typedef tmdlHdmiTxHdcpStatus_t tda_hdcp_fail; | |
49 | #endif | |
50 | #ifdef TMFL_TDA19989 | |
51 | typedef tmdlHdmiTxEdidLatency_t tda_edid_latency; | |
52 | #endif | |
53 | ||
54 | typedef struct { | |
55 | Bool enable; | |
56 | tmdlHdmiTxGamutData_t data; | |
57 | } tda_gammut; | |
58 | ||
59 | typedef struct { | |
60 | Bool enable; | |
61 | tmdlHdmiTxVsPktData_t data; | |
62 | } tda_vs_infoframe; | |
63 | ||
64 | typedef struct { | |
65 | Bool enable; | |
66 | tmdlHdmiTxSpdIfData_t data; | |
67 | } tda_spd_infoframe; | |
68 | ||
69 | typedef struct { | |
70 | Bool enable; | |
71 | tmdlHdmiTxMpsIfData_t data; | |
72 | } tda_mps_infoframe; | |
73 | ||
74 | typedef struct { | |
75 | Bool enable; | |
76 | tmdlHdmiTxIsrc1PktData_t data; | |
77 | } tda_isrc1; | |
78 | ||
79 | typedef struct { | |
80 | Bool enable; | |
81 | tmdlHdmiTxIsrc2PktData_t data; | |
82 | } tda_isrc2; | |
83 | ||
84 | typedef struct { | |
85 | Bool enable; | |
86 | tmdlHdmiTxAcpPktData_t data; | |
87 | } tda_acp; | |
88 | ||
89 | typedef struct { | |
90 | Bool enable; | |
91 | tmdlHdmiTxGcpPktData_t data; | |
92 | } tda_gcp; | |
93 | ||
94 | typedef struct { | |
95 | Bool enable; | |
96 | tmdlHdmiTxAviIfData_t data; | |
97 | } tda_video_infoframe; | |
98 | ||
99 | typedef struct { | |
100 | Bool enable; | |
101 | tmdlHdmiTxAudIfData_t data; | |
102 | } tda_audio_infoframe; | |
103 | ||
104 | typedef struct { | |
105 | tmdlHdmiTxVidFmt_t id; | |
106 | tmdlHdmiTxVidFmtSpecs_t spec; | |
107 | } tda_video_format; | |
108 | ||
109 | typedef struct { | |
110 | tda_video_in video_in; | |
111 | tda_video_out video_out; | |
112 | tda_audio_in audio_in; /* Mind tda_set_audio_in if you change this */ | |
113 | tda_sink sink; /* Mind tda_set_audio_in if you change this */ | |
114 | } tda_set_in_out; | |
115 | ||
116 | typedef struct { | |
117 | tda_audio_in audio_in; | |
118 | tda_sink sink; | |
119 | } tda_set_audio_in; | |
120 | ||
121 | typedef struct { | |
122 | tda_edid_audio_desc desc[EXAMPLE_MAX_SVD]; | |
123 | unsigned int max; | |
124 | unsigned int written; | |
125 | unsigned char flags; | |
126 | } tda_edid_audio_caps; | |
127 | ||
128 | typedef struct { | |
129 | tda_edid_video_desc desc[EXAMPLE_MAX_SVD]; | |
130 | unsigned int max; | |
131 | unsigned int written; | |
132 | unsigned char flags; | |
133 | } tda_edid_video_caps; | |
134 | ||
135 | typedef struct { | |
136 | tmdlHdmiTxEdidStatus_t status; | |
137 | unsigned char block_count; | |
138 | } tda_edid; | |
139 | ||
140 | typedef struct { | |
141 | tmdlHdmiTxEdidVideoTimings_t desc[EXAMPLE_MAX_SVD]; | |
142 | unsigned char max; | |
143 | unsigned char written; | |
144 | } tda_edid_dtd; | |
145 | ||
146 | typedef struct { | |
147 | tmdlHdmiTxEdidFirstMD_t desc1[EXAMPLE_MAX_SVD]; | |
148 | tmdlHdmiTxEdidSecondMD_t desc2[EXAMPLE_MAX_SVD]; | |
149 | tmdlHdmiTxEdidOtherMD_t other[EXAMPLE_MAX_SVD]; | |
150 | unsigned char max; | |
151 | unsigned char written; | |
152 | } tda_edid_md; | |
153 | ||
154 | #else | |
155 | ||
156 | #error do not compiled this ! | |
157 | ||
158 | typedef enum { | |
159 | TDA_HDCP_ACTIVE = 0, /**< HDCP encryption status switched to active */ | |
160 | TDA_HDCP_INACTIVE = 1, /**< HDCP encryption status switched to inactive */ | |
161 | TDA_HPD_ACTIVE = 2, /**< Hotplug status switched to active */ | |
162 | TDA_HPD_INACTIVE = 3, /**< Hotplug status switched to inactive */ | |
163 | TDA_RX_KEYS_RECEIVED = 4, /**< Receiver(s) key(s) received */ | |
164 | TDA_RX_DEVICE_ACTIVE = 5, /**< Rx device is connected and active */ | |
165 | TDA_RX_DEVICE_INACTIVE = 6, /**< Rx device is connected but inactive (standby) */ | |
166 | TDA_EDID_RECEIVED = 7, /**< EDID has been received */ | |
167 | TDA_VS_RPT_RECEIVED = 8, /**< VS interrupt has been received */ | |
168 | #ifdef HDMI_TX_REPEATER_ISR_MODE | |
169 | TDA_B_STATUS = 9, /**< TX received BStatus */ | |
170 | #endif /* HDMI_TX_REPEATER_ISR_MODE */ | |
171 | TDA_DEBUG_EVENT_1 = 10 /**< This is a debug event */ | |
172 | } tda_event; | |
173 | ||
174 | typedef struct { | |
175 | unsigned char format; /* EIA/CEA861 mode */ | |
176 | unsigned char channels; /* number of channels */ | |
177 | unsigned char supportedFreqs; /* bitmask of supported frequencies */ | |
178 | unsigned char supportedRes; /* bitmask of supported resolutions (LPCM only) */ | |
179 | unsigned char maxBitrate; /* Maximum bitrate divided by 8KHz (compressed formats only) */ | |
180 | } tda_edid_audio_desc; | |
181 | ||
182 | typedef enum { | |
183 | TDA_EDID_READ = 0, /**< All blocks read OK */ | |
184 | TDA_EDID_READ_INCOMPLETE = 1, /**< All blocks read OK but buffer too small to return all of them */ | |
185 | TDA_EDID_ERROR_CHK_BLOCK_0 = 2, /**< Block 0 checksum error */ | |
186 | TDA_EDID_ERROR_CHK = 3, /**< Block 0 OK, checksum error in one or more other blocks */ | |
187 | TDA_EDID_NOT_READ = 4, /**< EDID not read */ | |
188 | TDA_EDID_STATUS_INVALID = 5 /**< Invalid */ | |
189 | } tda_edid_status; | |
190 | ||
191 | typedef struct { | |
192 | int HBR; /**< High Bitrate Audio packet */ | |
193 | int DST; /**< Direct Stream Transport audio packet */ | |
194 | int oneBitAudio; /**< One Bit Audio sample packet */ | |
195 | } tda_audio_packet; | |
196 | ||
197 | typedef enum { | |
198 | TDA_AFMT_SPDIF = 0, /**< SPDIF */ | |
199 | TDA_AFMT_I2S = 1, /**< I2S */ | |
200 | TDA_AFMT_OBA = 2, /**< One bit audio / DSD */ | |
201 | TDA_AFMT_DST = 3, /**< DST */ | |
202 | TDA_AFMT_HBR = 4 /**< HBR */ | |
203 | } tda_audio_format; | |
204 | ||
205 | typedef enum { | |
206 | TDA_AFS_32K = 0, /**< 32kHz */ | |
207 | TDA_AFS_44K = 1, /**< 44.1kHz */ | |
208 | TDA_AFS_48K = 2, /**< 48kHz */ | |
209 | TDA_AFS_88K = 3, /**< 88.2kHz */ | |
210 | TDA_AFS_96K = 4, /**< 96kHz */ | |
211 | TDA_AFS_176K = 5, /**< 176.4kHz */ | |
212 | TDA_AFS_192K = 6 /**< 192kHz */ | |
213 | } tda_audio_rate; | |
214 | ||
215 | typedef enum { | |
216 | TDA_I2SQ_16BITS = 16, /**< 16 bits */ | |
217 | TDA_I2SQ_32BITS = 32, /**< 32 bits */ | |
218 | TDA_I2SQ_OTHERS = 0 /**< for SPDIF and DSD */ | |
219 | } tda_audio_I2S_qualifier; | |
220 | ||
221 | typedef enum { | |
222 | TDA_I2SFOR_PHILIPS_L = 0, | |
223 | /**< Philips like format */ | |
224 | TDA_I2SFOR_OTH_L = 2, /**< Other non Philips left justified */ | |
225 | TDA_I2SFOR_OTH_R = 3, /**< Other non Philips right justified */ | |
226 | TDA_I2SFOR_INVALID = 4 /**< Invalid format */ | |
227 | } tda_audio_I2S_format; | |
228 | ||
229 | typedef enum { | |
230 | TDA_DSTRATE_SINGLE = 0, /**< Single transfer rate */ | |
231 | TDA_DSTRATE_DOUBLE = 1 /**< Double data rate */ | |
232 | } tda_dst_rate; | |
233 | ||
234 | typedef struct { | |
235 | int simplayHd; /**< Enable simplayHD support */ | |
236 | int repeaterEnable; /**< Enable repeater mode */ | |
237 | unsigned char *pEdidBuffer; /**< Pointer to raw EDID data */ | |
238 | unsigned long edidBufferSize; /**< Size of buffer for raw EDID data */ | |
239 | } tda_instance_setup_info; | |
240 | ||
241 | typedef enum { | |
242 | TDA_VFMT_NULL = 0, /**< Not a valid format... */ | |
243 | TDA_VFMT_NO_CHANGE = 0, /**< ...or no change required */ | |
244 | TDA_VFMT_MIN = 1, /**< Lowest valid format */ | |
245 | TDA_VFMT_TV_MIN = 1, /**< Lowest valid TV format */ | |
246 | TDA_VFMT_01_640x480p_60Hz = 1, /**< Format 01 640 x 480p 60Hz */ | |
247 | TDA_VFMT_02_720x480p_60Hz = 2, /**< Format 02 720 x 480p 60Hz */ | |
248 | TDA_VFMT_03_720x480p_60Hz = 3, /**< Format 03 720 x 480p 60Hz */ | |
249 | TDA_VFMT_04_1280x720p_60Hz = 4, /**< Format 04 1280 x 720p 60Hz */ | |
250 | TDA_VFMT_05_1920x1080i_60Hz = 5,/**< Format 05 1920 x 1080i 60Hz */ | |
251 | TDA_VFMT_06_720x480i_60Hz = 6, /**< Format 06 720 x 480i 60Hz */ | |
252 | TDA_VFMT_07_720x480i_60Hz = 7, /**< Format 07 720 x 480i 60Hz */ | |
253 | TDA_VFMT_08_720x240p_60Hz = 8, /**< Format 08 720 x 240p 60Hz */ | |
254 | TDA_VFMT_09_720x240p_60Hz = 9, /**< Format 09 720 x 240p 60Hz */ | |
255 | TDA_VFMT_10_720x480i_60Hz = 10, /**< Format 10 720 x 480i 60Hz */ | |
256 | TDA_VFMT_11_720x480i_60Hz = 11, /**< Format 11 720 x 480i 60Hz */ | |
257 | TDA_VFMT_12_720x240p_60Hz = 12, /**< Format 12 720 x 240p 60Hz */ | |
258 | TDA_VFMT_13_720x240p_60Hz = 13, /**< Format 13 720 x 240p 60Hz */ | |
259 | TDA_VFMT_14_1440x480p_60Hz = 14,/**< Format 14 1440 x 480p 60Hz */ | |
260 | TDA_VFMT_15_1440x480p_60Hz = 15,/**< Format 15 1440 x 480p 60Hz */ | |
261 | TDA_VFMT_16_1920x1080p_60Hz = 16, | |
262 | /**< Format 16 1920 x 1080p 60Hz */ | |
263 | TDA_VFMT_17_720x576p_50Hz = 17, /**< Format 17 720 x 576p 50Hz */ | |
264 | TDA_VFMT_18_720x576p_50Hz = 18, /**< Format 18 720 x 576p 50Hz */ | |
265 | TDA_VFMT_19_1280x720p_50Hz = 19,/**< Format 19 1280 x 720p 50Hz */ | |
266 | TDA_VFMT_20_1920x1080i_50Hz = 20, | |
267 | /**< Format 20 1920 x 1080i 50Hz */ | |
268 | TDA_VFMT_21_720x576i_50Hz = 21, /**< Format 21 720 x 576i 50Hz */ | |
269 | TDA_VFMT_22_720x576i_50Hz = 22, /**< Format 22 720 x 576i 50Hz */ | |
270 | TDA_VFMT_23_720x288p_50Hz = 23, /**< Format 23 720 x 288p 50Hz */ | |
271 | TDA_VFMT_24_720x288p_50Hz = 24, /**< Format 24 720 x 288p 50Hz */ | |
272 | TDA_VFMT_25_720x576i_50Hz = 25, /**< Format 25 720 x 576i 50Hz */ | |
273 | TDA_VFMT_26_720x576i_50Hz = 26, /**< Format 26 720 x 576i 50Hz */ | |
274 | TDA_VFMT_27_720x288p_50Hz = 27, /**< Format 27 720 x 288p 50Hz */ | |
275 | TDA_VFMT_28_720x288p_50Hz = 28, /**< Format 28 720 x 288p 50Hz */ | |
276 | TDA_VFMT_29_1440x576p_50Hz = 29,/**< Format 29 1440 x 576p 50Hz */ | |
277 | TDA_VFMT_30_1440x576p_50Hz = 30,/**< Format 30 1440 x 576p 50Hz */ | |
278 | TDA_VFMT_31_1920x1080p_50Hz = 31, | |
279 | /**< Format 31 1920 x 1080p 50Hz */ | |
280 | TDA_VFMT_32_1920x1080p_24Hz = 32, | |
281 | /**< Format 32 1920 x 1080p 24Hz */ | |
282 | TDA_VFMT_33_1920x1080p_25Hz = 33, | |
283 | /**< Format 33 1920 x 1080p 25Hz */ | |
284 | TDA_VFMT_34_1920x1080p_30Hz = 34, | |
285 | /**< Format 34 1920 x 1080p 30Hz */ | |
286 | TDA_VFMT_TV_MAX = 34, /**< Highest valid TV format */ | |
287 | TDA_VFMT_TV_NO_REG_MIN = 32, /**< Lowest TV format without prefetched table */ | |
288 | TDA_VFMT_TV_NUM = 35, /**< Number of TV formats & null */ | |
289 | TDA_VFMT_PC_MIN = 128, /**< Lowest valid PC format */ | |
290 | TDA_VFMT_PC_640x480p_60Hz = 128,/**< PC format 128 */ | |
291 | TDA_VFMT_PC_800x600p_60Hz = 129,/**< PC format 129 */ | |
292 | TDA_VFMT_PC_1152x960p_60Hz = 130, | |
293 | /**< PC format 130 */ | |
294 | TDA_VFMT_PC_1024x768p_60Hz = 131, | |
295 | /**< PC format 131 */ | |
296 | TDA_VFMT_PC_1280x768p_60Hz = 132, | |
297 | /**< PC format 132 */ | |
298 | TDA_VFMT_PC_1280x1024p_60Hz = 133, | |
299 | /**< PC format 133 */ | |
300 | TDA_VFMT_PC_1360x768p_60Hz = 134, | |
301 | /**< PC format 134 */ | |
302 | TDA_VFMT_PC_1400x1050p_60Hz = 135, | |
303 | /**< PC format 135 */ | |
304 | TDA_VFMT_PC_1600x1200p_60Hz = 136, | |
305 | /**< PC format 136 */ | |
306 | TDA_VFMT_PC_1024x768p_70Hz = 137, | |
307 | /**< PC format 137 */ | |
308 | TDA_VFMT_PC_640x480p_72Hz = 138,/**< PC format 138 */ | |
309 | TDA_VFMT_PC_800x600p_72Hz = 139,/**< PC format 139 */ | |
310 | TDA_VFMT_PC_640x480p_75Hz = 140,/**< PC format 140 */ | |
311 | TDA_VFMT_PC_1024x768p_75Hz = 141, | |
312 | /**< PC format 141 */ | |
313 | TDA_VFMT_PC_800x600p_75Hz = 142,/**< PC format 142 */ | |
314 | TDA_VFMT_PC_1024x864p_75Hz = 143, | |
315 | /**< PC format 143 */ | |
316 | TDA_VFMT_PC_1280x1024p_75Hz = 144, | |
317 | /**< PC format 144 */ | |
318 | TDA_VFMT_PC_640x350p_85Hz = 145,/**< PC format 145 */ | |
319 | TDA_VFMT_PC_640x400p_85Hz = 146,/**< PC format 146 */ | |
320 | TDA_VFMT_PC_720x400p_85Hz = 147,/**< PC format 147 */ | |
321 | TDA_VFMT_PC_640x480p_85Hz = 148,/**< PC format 148 */ | |
322 | TDA_VFMT_PC_800x600p_85Hz = 149,/**< PC format 149 */ | |
323 | TDA_VFMT_PC_1024x768p_85Hz = 150, | |
324 | /**< PC format 150 */ | |
325 | TDA_VFMT_PC_1152x864p_85Hz = 151, | |
326 | /**< PC format 151 */ | |
327 | TDA_VFMT_PC_1280x960p_85Hz = 152, | |
328 | /**< PC format 152 */ | |
329 | TDA_VFMT_PC_1280x1024p_85Hz = 153, | |
330 | /**< PC format 153 */ | |
331 | TDA_VFMT_PC_1024x768i_87Hz = 154, | |
332 | /**< PC format 154 */ | |
333 | TDA_VFMT_PC_MAX = 154, /**< Highest valid PC format */ | |
334 | TDA_VFMT_PC_NUM = (1 + 154 - 128) /**< Number of PC formats */ | |
335 | } tda_video_fmt_id; | |
336 | ||
337 | typedef struct { | |
338 | tda_video_fmt_id videoFormat; /**< Video format as defined by EIA/CEA 861-D */ | |
339 | int nativeVideoFormat; /**< True if format is the preferred video format */ | |
340 | } tda_edid_video_desc; | |
341 | ||
342 | typedef struct { | |
343 | tda_video_fmt_id videoFormat; /**< Video format as defined by EIA/CEA 861-D */ | |
344 | int nativeVideoFormat; /**< True if format is the preferred video format */ | |
345 | } tda_short_video_desc; | |
346 | ||
347 | typedef enum { | |
348 | TDA_P_ASPECT_RATIO_UNDEFINED = 0, /**< Undefined picture aspect ratio */ | |
349 | TDA_P_ASPECT_RATIO_6_5 = 1, /**< 6:5 picture aspect ratio (PAR) */ | |
350 | TDA_P_ASPECT_RATIO_5_4 = 2, /**< 5:4 PAR */ | |
351 | TDA_P_ASPECT_RATIO_4_3 = 3, /**< 4:3 PAR */ | |
352 | TDA_P_ASPECT_RATIO_16_10 = 4, /**< 16:10 PAR */ | |
353 | TDA_P_ASPECT_RATIO_5_3 = 5, /**< 5:3 PAR */ | |
354 | TDA_P_ASPECT_RATIO_16_9 = 6, /**< 16:9 PAR */ | |
355 | TDA_P_ASPECT_RATIO_9_5 = 7 /**< 9:5 PAR */ | |
356 | } tda_pict_aspect_ratio; | |
357 | ||
358 | typedef enum { | |
359 | TDA_VFREQ_24Hz = 0, /**< 24Hz */ | |
360 | TDA_VFREQ_25Hz = 1, /**< 25Hz */ | |
361 | TDA_VFREQ_30Hz = 2, /**< 30Hz */ | |
362 | TDA_VFREQ_50Hz = 3, /**< 50Hz */ | |
363 | TDA_VFREQ_59Hz = 4, /**< 59.94Hz */ | |
364 | TDA_VFREQ_60Hz = 5, /**< 60Hz */ | |
365 | TDA_VFREQ_70Hz = 6, /**< 70Hz */ | |
366 | TDA_VFREQ_72Hz = 7, /**< 72Hz */ | |
367 | TDA_VFREQ_75Hz = 8, /**< 75Hz */ | |
368 | TDA_VFREQ_85Hz = 9, /**< 85Hz */ | |
369 | TDA_VFREQ_87Hz = 10, /**< 87Hz */ | |
370 | TDA_VFREQ_INVALID = 11, /**< Invalid */ | |
371 | TDA_VFREQ_NUM = 11 /**< No. of values */ | |
372 | } tda_vfreq; | |
373 | ||
374 | typedef struct { | |
375 | unsigned short width; /**< Width of the frame in pixels */ | |
376 | unsigned short height; /**< Height of the frame in pixels */ | |
377 | int interlaced; /**< Interlaced mode (True/False) */ | |
378 | tda_vfreq vfrequency; /**< Vertical frequency in Hz */ | |
379 | tda_pict_aspect_ratio aspectRatio; | |
380 | /**< Picture aspect ratio (H:V) */ | |
381 | } tda_video_fmt_specs; | |
382 | ||
383 | typedef enum { | |
384 | TDA_VINMODE_CCIR656 = 0, /**< CCIR656 */ | |
385 | TDA_VINMODE_RGB444 = 1, /**< RGB444 */ | |
386 | TDA_VINMODE_YUV444 = 2, /**< YUV444 */ | |
387 | TDA_VINMODE_YUV422 = 3, /**< YUV422 */ | |
388 | TDA_VINMODE_NO_CHANGE = 4, /**< No change */ | |
389 | TDA_VINMODE_INVALID = 5 /**< Invalid */ | |
390 | } tda_vinmode; | |
391 | ||
392 | typedef enum { | |
393 | TDA_SYNCSRC_EMBEDDED = 0, | |
394 | /**< Embedded sync */ | |
395 | TDA_SYNCSRC_EXT_VREF = 1, | |
396 | /**< External sync Vref, Href, Fref */ | |
397 | TDA_SYNCSRC_EXT_VS = 2/**< External sync Vs, Hs */ | |
398 | } tda_sync_source; | |
399 | ||
400 | typedef enum { | |
401 | TDA_PIXRATE_DOUBLE = 0, /**< Double pixel rate */ | |
402 | TDA_PIXRATE_SINGLE = 1, /**< Single pixel rate */ | |
403 | TDA_PIXRATE_SINGLE_REPEATED = 2 /**< Single pixel repeated */ | |
404 | } tda_pix_rate; | |
405 | ||
406 | typedef struct { | |
407 | tda_video_fmt_id format; /**< Video format as defined by EIA/CEA 861-D */ | |
408 | tda_vinmode mode; /**< Video mode (CCIR, RGB, YUV, etc.) */ | |
409 | tda_sync_source syncSource; | |
410 | /**< Sync source type */ | |
411 | tda_pix_rate pixelRate; /**< Pixel rate */ | |
412 | } tda_video_in; | |
413 | ||
414 | typedef enum { | |
415 | TDA_VOUTMODE_RGB444 = 0, /**< RGB444 */ | |
416 | TDA_VOUTMODE_YUV422 = 1, /**< YUV422 */ | |
417 | TDA_VOUTMODE_YUV444 = 2 /**< YUV444 */ | |
418 | } tda_vout_mode; | |
419 | ||
420 | typedef enum { | |
421 | TDA_VQR_DEFAULT = 0, /* Follow HDMI spec. */ | |
422 | TDA_RGB_FULL = 1, /* Force RGB FULL , DVI only */ | |
423 | TDA_RGB_LIMITED = 2 /* Force RGB LIMITED , DVI only */ | |
424 | } tda_vqr; | |
425 | ||
426 | typedef enum { | |
427 | TDA_COLORDEPTH_24 = 0, /**< 8 bits per color */ | |
428 | TDA_COLORDEPTH_30 = 1, /**< 10 bits per color */ | |
429 | TDA_COLORDEPTH_36 = 2, /**< 12 bits per color */ | |
430 | TDA_COLORDEPTH_48 = 3 /**< 16 bits per color */ | |
431 | } tda_color_depth; | |
432 | ||
433 | typedef struct { | |
434 | tda_video_fmt_id format; /**< Video format as defined by EIA/CEA 861-D */ | |
435 | tda_vout_mode mode; /**< Video mode (CCIR, RGB, YUV, etc.) */ | |
436 | tda_color_depth colorDepth; | |
437 | /**< Color depth */ | |
438 | tda_vqr dviVqr; /**< VQR applied in DVI mode */ | |
439 | } tda_video_out; | |
440 | ||
441 | typedef struct { | |
442 | tda_audio_format format; /**< Audio format (I2S, SPDIF, etc.) */ | |
443 | tda_audio_rate rate; /**< Audio sampling rate */ | |
444 | tda_audio_I2S_format i2sFormat; /**< I2S format of the audio input */ | |
445 | tda_audio_I2S_qualifier i2sQualifier; /**< I2S qualifier of the audio input (8,16,32 bits) */ | |
446 | tda_dst_rate dstRate; /**< DST data transfer rate */ | |
447 | unsigned char channelAllocation; /**< Ref to CEA-861D p85 */ | |
448 | } tda_audio_in; | |
449 | ||
450 | typedef enum { | |
451 | TDA_SINK_DVI = 0, | |
452 | /**< DVI */ | |
453 | TDA_SINK_HDMI = 1, | |
454 | /**< HDMI */ | |
455 | TDA_SINK_EDID = 2 | |
456 | /**< As currently defined in EDID */ | |
457 | } tda_sink; | |
458 | ||
459 | typedef enum { | |
460 | TDA_DEVICE_UNKNOWN,/**< HW device is unknown */ | |
461 | TDA_DEVICE_TDA9984,/**< HW device is IC TDA9984 */ | |
462 | TDA_DEVICE_TDA9989,/**< HW device is IC TDA9989 */ | |
463 | TDA_DEVICE_TDA9981,/**< HW device is IC TDA9981 */ | |
464 | TDA_DEVICE_TDA9983,/**< HW device is IC TDA9983 */ | |
465 | TDA_DEVICE_TDA19989/**< HW device is IC TDA19989 */ | |
466 | } tda_device_version; | |
467 | ||
468 | typedef enum { | |
469 | TDA_HDMI_VERSION_UNKNOWN, | |
470 | /**< Unknown */ | |
471 | TDA_HDMI_VERSION_1_1,/**< HDMI 1.1 */ | |
472 | TDA_HDMI_VERSION_1_2a, | |
473 | /**< HDMI 1.2a */ | |
474 | TDA_HDMI_VERSION_1_3a/**< HDMI 1.3 */ | |
475 | } tda_hdmi_version; | |
476 | ||
477 | typedef struct { | |
478 | int HBR; /**< High Bitrate Audio packet */ | |
479 | int DST; /**< Direct Stream Transport audio packet */ | |
480 | int oneBitAudio; /**< One Bit Audio sample packet */ | |
481 | } tda_audio_packet; | |
482 | ||
483 | typedef enum { | |
484 | TDA_COLORDEPTH_24 = 0, /**< 8 bits per color */ | |
485 | TDA_COLORDEPTH_30 = 1, /**< 10 bits per color */ | |
486 | TDA_COLORDEPTH_36 = 2, /**< 12 bits per color */ | |
487 | TDA_COLORDEPTH_48 = 3 /**< 16 bits per color */ | |
488 | } tda_color_depth; | |
489 | ||
490 | typedef struct { | |
491 | tda_device_version deviceVersion; | |
492 | /**< HW device version */ | |
493 | tda_hdmi_version hdmiVersion;/**< Supported HDMI standard version */ | |
494 | tda_audio_packet audioPacket;/**< Supported audio packets */ | |
495 | tda_color_depth colorDepth; /**< Supported color depth */ | |
496 | int hdcp; /**< Supported Hdcp encryption (True/False) */ | |
497 | int scaler; /**< Supported scaler (True/False) */ | |
498 | } tda_capabilities; | |
499 | ||
500 | typedef struct { | |
501 | unsigned long compatibilityNr; /* Interface compatibility number */ | |
502 | unsigned long majorVersionNr; /* Interface major version number */ | |
503 | unsigned long minorVersionNr; /* Interface minor version number */ | |
504 | } tda_version; | |
505 | ||
506 | typedef enum { | |
507 | PowerOn, /* Device powered on (D0 state) */ | |
508 | PowerStandby, /* Device power standby (D1 state) */ | |
509 | PowerSuspend, /* Device power suspended (D2 state) */ | |
510 | PowerOff /* Device powered off (D3 state) */ | |
511 | } tda_powerXXX; | |
512 | ||
513 | typedef struct { | |
514 | unsigned int simplayHd; /**< Enable simplayHD support */ | |
515 | unsigned int repeaterEnable; /**< Enable repeater mode */ | |
516 | unsigned char *pEdidBuffer; /**< Pointer to raw EDID data */ | |
517 | unsigned long edidBufferSize; /**< Size of buffer for raw EDID data */ | |
518 | } tda_setup; | |
519 | ||
520 | typedef struct { | |
521 | tda_video_fmt_id id; | |
522 | tda_video_fmt_specs spec; | |
523 | } tda_video_format; | |
524 | ||
525 | typedef struct { | |
526 | tda_video_in video_in; | |
527 | tda_video_out video_out; | |
528 | tda_audio_in audio_in; | |
529 | } tda_set_in_out; | |
530 | ||
531 | typedef struct { | |
532 | tda_edid_audio_desc desc; | |
533 | unsigned int max; | |
534 | unsigned int written; | |
535 | unsigned char flags; | |
536 | } tda_edid_audio_caps; | |
537 | ||
538 | typedef struct { | |
539 | tda_edid_video_desc desc; | |
540 | unsigned int max; | |
541 | unsigned int written; | |
542 | unsigned char flags; | |
543 | } tda_edid_video_caps; | |
544 | ||
545 | typedef struct { | |
546 | tda_edid_status status; | |
547 | unsigned char block_count; | |
548 | } tda_edid; | |
549 | ||
550 | #endif | |
551 | ||
552 | #define TDA_IOCTL_BASE 0x40 | |
553 | #define RELEASE 0xFF | |
554 | ||
555 | enum { | |
556 | /* driver specific */ | |
557 | TDA_VERBOSE_ON_CMD = 0, | |
558 | TDA_VERBOSE_OFF_CMD, | |
559 | TDA_BYEBYE_CMD, | |
560 | /* HDMI Tx */ | |
561 | TDA_GET_SW_VERSION_CMD, | |
562 | TDA_SET_POWER_CMD, | |
563 | TDA_GET_POWER_CMD, | |
564 | TDA_SETUP_CMD, | |
565 | TDA_GET_SETUP_CMD, | |
566 | TDA_WAIT_EVENT_CMD, | |
567 | TDA_ENABLE_EVENT_CMD, | |
568 | TDA_DISABLE_EVENT_CMD, | |
569 | TDA_GET_VIDEO_SPEC_CMD, | |
570 | TDA_SET_INPUT_OUTPUT_CMD, | |
571 | TDA_SET_AUDIO_INPUT_CMD, | |
572 | TDA_SET_VIDEO_INFOFRAME_CMD, | |
573 | TDA_SET_AUDIO_INFOFRAME_CMD, | |
574 | TDA_SET_ACP_CMD, | |
575 | TDA_SET_GCP_CMD, | |
576 | TDA_SET_ISRC1_CMD, | |
577 | TDA_SET_ISRC2_CMD, | |
578 | TDA_SET_MPS_INFOFRAME_CMD, | |
579 | TDA_SET_SPD_INFOFRAME_CMD, | |
580 | TDA_SET_VS_INFOFRAME_CMD, | |
581 | TDA_SET_AUDIO_MUTE_CMD, | |
582 | TDA_RESET_AUDIO_CTS_CMD, | |
583 | TDA_GET_EDID_STATUS_CMD, | |
584 | TDA_GET_EDID_AUDIO_CAPS_CMD, | |
585 | TDA_GET_EDID_VIDEO_CAPS_CMD, | |
586 | TDA_GET_EDID_VIDEO_PREF_CMD, | |
587 | TDA_GET_EDID_SINK_TYPE_CMD, | |
588 | TDA_GET_EDID_SOURCE_ADDRESS_CMD, | |
589 | TDA_SET_GAMMUT_CMD, | |
590 | TDA_GET_EDID_DTD_CMD, | |
591 | TDA_GET_EDID_MD_CMD, | |
592 | TDA_GET_EDID_TV_ASPECT_RATIO_CMD, | |
593 | TDA_GET_EDID_LATENCY_CMD, | |
594 | TDA_SET_HDCP_CMD, | |
595 | TDA_GET_HDCP_STATUS_CMD, | |
596 | TDA_GET_HPD_STATUS_CMD, | |
597 | }; | |
598 | ||
599 | ||
600 | /* driver specific */ | |
601 | #define TDA_IOCTL_VERBOSE_ON _IO(TDA_IOCTL_BASE, TDA_VERBOSE_ON_CMD) | |
602 | #define TDA_IOCTL_VERBOSE_OFF _IO(TDA_IOCTL_BASE, TDA_VERBOSE_OFF_CMD) | |
603 | #define TDA_IOCTL_BYEBYE _IO(TDA_IOCTL_BASE, TDA_BYEBYE_CMD) | |
604 | /* HDMI Tx */ | |
605 | #define TDA_IOCTL_GET_SW_VERSION _IOWR(TDA_IOCTL_BASE, TDA_GET_SW_VERSION_CMD, tda_version) | |
606 | #define TDA_IOCTL_SET_POWER _IOWR(TDA_IOCTL_BASE, TDA_SET_POWER_CMD, tda_power) | |
607 | #define TDA_IOCTL_GET_POWER _IOWR(TDA_IOCTL_BASE, TDA_GET_POWER_CMD, tda_power) | |
608 | #define TDA_IOCTL_SETUP _IOWR(TDA_IOCTL_BASE, TDA_SETUP_CMD, tda_setup_info) | |
609 | #define TDA_IOCTL_GET_SETUP _IOWR(TDA_IOCTL_BASE, TDA_GET_SETUP_CMD, tda_setup_info) | |
610 | #define TDA_IOCTL_WAIT_EVENT _IOWR(TDA_IOCTL_BASE, TDA_WAIT_EVENT_CMD, tda_event) | |
611 | #define TDA_IOCTL_ENABLE_EVENT _IOWR(TDA_IOCTL_BASE, TDA_ENABLE_EVENT_CMD, tda_event) | |
612 | #define TDA_IOCTL_DISABLE_EVENT _IOWR(TDA_IOCTL_BASE, TDA_DISABLE_EVENT_CMD, tda_event) | |
613 | #define TDA_IOCTL_GET_VIDEO_SPEC _IOWR(TDA_IOCTL_BASE, TDA_GET_VIDEO_SPEC_CMD, tda_video_format) | |
614 | #define TDA_IOCTL_SET_INPUT_OUTPUT _IOWR(TDA_IOCTL_BASE, TDA_SET_INPUT_OUTPUT_CMD, tda_set_in_out) | |
615 | #define TDA_IOCTL_SET_AUDIO_INPUT _IOWR(TDA_IOCTL_BASE, TDA_SET_AUDIO_INPUT_CMD, tda_audio_in) | |
616 | #define TDA_IOCTL_SET_VIDEO_INFOFRAME _IOWR(TDA_IOCTL_BASE, TDA_SET_VIDEO_INFOFRAME_CMD, tda_video_infoframe) | |
617 | #define TDA_IOCTL_SET_AUDIO_INFOFRAME _IOWR(TDA_IOCTL_BASE, TDA_SET_AUDIO_INFOFRAME_CMD, tda_audio_infoframe) | |
618 | #define TDA_IOCTL_SET_ACP _IOWR(TDA_IOCTL_BASE, TDA_SET_ACP_CMD, tda_acp) | |
619 | #define TDA_IOCTL_SET_GCP _IOWR(TDA_IOCTL_BASE, TDA_SET_GCP_CMD, tda_gcp) | |
620 | #define TDA_IOCTL_SET_ISRC1 _IOWR(TDA_IOCTL_BASE, TDA_SET_ISRC1_CMD, tda_isrc1) | |
621 | #define TDA_IOCTL_SET_ISRC2 _IOWR(TDA_IOCTL_BASE, TDA_SET_ISRC2_CMD, tda_isrc2) | |
622 | #define TDA_IOCTL_SET_MPS_INFOFRAME _IOWR(TDA_IOCTL_BASE, TDA_SET_MPS_INFOFRAME_CMD, tda_mps_infoframe) | |
623 | #define TDA_IOCTL_SET_SPD_INFOFRAME _IOWR(TDA_IOCTL_BASE, TDA_SET_SPD_INFOFRAME_CMD, tda_spd_infoframe) | |
624 | #define TDA_IOCTL_SET_VS_INFOFRAME _IOWR(TDA_IOCTL_BASE, TDA_SET_VS_INFOFRAME_CMD, tda_vs_infoframe) | |
625 | #define TDA_IOCTL_SET_AUDIO_MUTE _IOWR(TDA_IOCTL_BASE, TDA_SET_AUDIO_MUTE_CMD, bool) | |
626 | #define TDA_IOCTL_RESET_AUDIO_CTS _IO(TDA_IOCTL_BASE, TDA_RESET_AUDIO_CTS_CMD) | |
627 | #define TDA_IOCTL_GET_EDID_STATUS _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_STATUS_CMD, tda_edid) | |
628 | #define TDA_IOCTL_GET_EDID_AUDIO_CAPS _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_AUDIO_CAPS_CMD, tda_edid_audio_caps) | |
629 | #define TDA_IOCTL_GET_EDID_VIDEO_CAPS _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_VIDEO_CAPS_CMD, tda_edid_video_caps) | |
630 | #define TDA_IOCTL_GET_EDID_VIDEO_PREF _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_VIDEO_PREF_CMD, tda_edid_video_timings) | |
631 | #define TDA_IOCTL_GET_EDID_SINK_TYPE _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_SINK_TYPE_CMD, tda_sink) | |
632 | #define TDA_IOCTL_GET_EDID_SOURCE_ADDRESS _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_SOURCE_ADDRESS_CMD, unsigned short) | |
633 | #define TDA_IOCTL_SET_GAMMUT _IOWR(TDA_IOCTL_BASE, TDA_SET_GAMMUT_CMD, tda_gammut) | |
634 | #define TDA_IOCTL_GET_EDID_DTD _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_DTD_CMD, tda_edid_dtd) | |
635 | #define TDA_IOCTL_GET_EDID_MD _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_MD_CMD, tda_edid_md) | |
636 | #define TDA_IOCTL_GET_EDID_TV_ASPECT_RATIO _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_TV_ASPECT_RATIO_CMD, tda_edid_tv_aspect_ratio) | |
637 | #define TDA_IOCTL_GET_HPD_STATUS _IOWR(TDA_IOCTL_BASE, TDA_GET_HPD_STATUS_CMD, tmdlHdmiTxHotPlug_t) | |
638 | #ifdef TMFL_TDA19989 | |
639 | #define TDA_IOCTL_GET_EDID_LATENCY _IOWR(TDA_IOCTL_BASE, TDA_GET_EDID_LATENCY_CMD, tda_edid_latency) | |
640 | #define TDA_IOCTL_SET_HDCP _IOWR(TDA_IOCTL_BASE, TDA_SET_HDCP_CMD, bool) | |
641 | #define TDA_IOCTL_GET_HDCP_STATUS _IOWR(TDA_IOCTL_BASE, TDA_GET_HDCP_STATUS_CMD, tda_hdcp_status) | |
642 | #endif | |
643 | ||
644 | ||
645 | /* --- Full list --- */ | |
646 | ||
647 | /* legend: */ | |
648 | /* ------- */ | |
649 | /* [ ] : not supported */ | |
650 | /* [x] : IOCTL */ | |
651 | /* [i] : open, init... */ | |
652 | ||
653 | /* [x] tmdlHdmiTxGetSWVersion */ | |
654 | /* [ ] tmdlHdmiTxGetNumberOfUnits */ | |
655 | /* [i] tmdlHdmiTxGetCapabilities */ | |
656 | /* [ ] tmdlHdmiTxGetCapabilitiesM */ | |
657 | /* [i] tmdlHdmiTxOpen */ | |
658 | /* [ ] tmdlHdmiTxOpenM */ | |
659 | /* [i] tmdlHdmiTxClose */ | |
660 | /* [x] tmdlHdmiTxSetPowerState */ | |
661 | /* [x] tmdlHdmiTxGetPowerState */ | |
662 | /* [ ] tmdlHdmiTxInstanceConfig */ | |
663 | /* [xi] tmdlHdmiTxInstanceSetup */ | |
664 | /* [x] tmdlHdmiTxGetInstanceSetup */ | |
665 | /* [x] tmdlHdmiTxHandleInterrupt see IOCTL_WAIT_EVENT */ | |
666 | /* [i] tmdlHdmiTxRegisterCallbacks */ | |
667 | /* [x] tmdlHdmiTxEnableEvent */ | |
668 | /* [x] tmdlHdmiTxDisableEvent */ | |
669 | /* [x] tmdlHdmiTxGetVideoFormatSpecs */ | |
670 | /* [x] tmdlHdmiTxSetInputOutput */ | |
671 | /* [x] tmdlHdmiTxSetAudioInput */ | |
672 | /* [x] tmdlHdmiTxSetVideoInfoframe */ | |
673 | /* [x] tmdlHdmiTxSetAudioInfoframe */ | |
674 | /* [x] tmdlHdmiTxSetACPPacket */ | |
675 | /* [x] tmdlHdmiTxSetGeneralControlPacket */ | |
676 | /* [x] tmdlHdmiTxSetISRC1Packet */ | |
677 | /* [x] tmdlHdmiTxSetISRC2Packet */ | |
678 | /* [x] tmdlHdmiTxSetMPSInfoframe */ | |
679 | /* [x] tmdlHdmiTxSetSpdInfoframe */ | |
680 | /* [x] tmdlHdmiTxSetVsInfoframe */ | |
681 | /* [ ] tmdlHdmiTxDebugSetNullPacket */ | |
682 | /* [ ] tmdlHdmiTxDebugSetSingleNullPacket */ | |
683 | /* [x] tmdlHdmiTxSetAudioMute */ | |
684 | /* [x] tmdlHdmiTxResetAudioCts */ | |
685 | /* [x] tmdlHdmiTxGetEdidStatus */ | |
686 | /* [x] tmdlHdmiTxGetEdidAudioCaps */ | |
687 | /* [x] tmdlHdmiTxGetEdidVideoCaps */ | |
688 | /* [x] tmdlHdmiTxGetEdidVideoPreferred */ | |
689 | /* [x] tmdlHdmiTxGetEdidSinkType */ | |
690 | /* [x] tmdlHdmiTxGetEdidSourceAddress */ | |
691 | /* [ ] tmdlHdmiTxGetKsvList */ | |
692 | /* [ ] tmdlHdmiTxGetDepth */ | |
693 | /* [ ] tmdlHdmiTxGeneSHA_1_IT */ | |
694 | /* [ ] tmdlHdmiTxSetHdcp */ | |
695 | /* [ ] tmdlHdmiTxGetHdcpState */ | |
696 | /* [ ] tmdlHdmiTxHdcpCheck */ | |
697 | /* [x] tmdlHdmiTxSetGamutPacket */ | |
698 | /* [x] tmdlHdmiTxGetEdidDetailledTimingDescriptors */ | |
699 | /* [x] tmdlHdmiTxGetEdidMonitorDescriptors */ | |
700 | /* [x] tmdlHdmiTxGetEdidTVPictureRatio */ | |
701 | /* [ ] tmdlHdmiTxSetHDCPRevocationList */ | |
702 | /* [ ] tmdlHdmiTxGetHdcpFailStatus */ | |
703 | /* [x] tmdlHdmiTxGetEdidLatencyInfo */ | |
704 | /* [ ] tmdlHdmiTxSetBScreen */ | |
705 | /* [ ] tmdlHdmiTxRemoveBScreen */ | |
706 | ||
707 | ||
708 | #endif /* __tx_h__ */ | |
709 | #endif /* __tx_ioctl__ */ | |
710 | ||
711 | #ifndef __cec_ioctl__ | |
712 | #define __cec_ioctl__ | |
713 | ||
714 | #ifdef __cec_h__ | |
715 | ||
716 | typedef struct { | |
717 | UInt8 DayOfMonth; | |
718 | UInt8 MonthOfYear; | |
719 | UInt16 StartTime; | |
720 | tmdlHdmiCECDuration_t Duration; | |
721 | UInt8 RecordingSequence; | |
722 | tmdlHdmiCECAnalogueBroadcastType_t AnalogueBroadcastType; | |
723 | UInt16 AnalogueFrequency; | |
724 | tmdlHdmiCECBroadcastSystem_t BroadcastSystem; | |
725 | } cec_analogue_timer; | |
726 | ||
727 | typedef struct { | |
728 | UInt8 DayOfMonth; | |
729 | UInt8 MonthOfYear; | |
730 | UInt16 StartTime; | |
731 | tmdlHdmiCECDuration_t Duration; | |
732 | UInt8 RecordingSequence; | |
733 | tmdlHdmiCECDigitalServiceIdentification_t ServiceIdentification; | |
734 | } cec_digital_timer; | |
735 | ||
736 | typedef struct { | |
737 | UInt8 DayOfMonth; | |
738 | UInt8 MonthOfYear; | |
739 | UInt16 StartTime; | |
740 | tmdlHdmiCECDuration_t Duration; | |
741 | UInt8 RecordingSequence; | |
742 | tmdlHdmiCECExternalPlug_t ExternalPlug; | |
743 | } cec_ext_timer_with_ext_plug; | |
744 | ||
745 | typedef struct { | |
746 | UInt8 DayOfMonth; | |
747 | UInt8 MonthOfYear; | |
748 | UInt16 StartTime; | |
749 | tmdlHdmiCECDuration_t Duration; | |
750 | UInt8 RecordingSequence; | |
751 | tmdlHdmiCECExternalPhysicalAddress_t ExternalPhysicalAddress; | |
752 | } cec_ext_timer_with_phy_addr; | |
753 | ||
754 | typedef struct { | |
755 | tmdlHdmiCECFeatureOpcode_t FeatureOpcode; | |
756 | tmdlHdmiCECAbortReason_t AbortReason; | |
757 | } cec_feature_abort; | |
758 | ||
759 | typedef struct { | |
760 | tmdlHdmiCECAnalogueBroadcastType_t AnalogueBroadcastType; | |
761 | UInt16 AnalogueFrequency; | |
762 | tmdlHdmiCECBroadcastSystem_t BroadcastSystem; | |
763 | } cec_analogue_service; | |
764 | ||
765 | typedef struct { | |
766 | UInt16 OriginalAddress; | |
767 | UInt16 NewAddress; | |
768 | } cec_routing_change; | |
769 | ||
770 | typedef struct { | |
771 | char data[15]; | |
772 | unsigned char length; | |
773 | } cec_string; | |
774 | ||
775 | typedef struct { | |
776 | tmdlHdmiCECDisplayControl_t DisplayControl; | |
777 | char data[15]; | |
778 | unsigned char length; | |
779 | } cec_osd_string; | |
780 | ||
781 | typedef struct { | |
782 | tmdlHdmiCECRecordingFlag_t RecordingFlag; | |
783 | tmdlHdmiCECTunerDisplayInfo_t TunerDisplayInfo; | |
784 | tmdlHdmiCECAnalogueBroadcastType_t AnalogueBroadcastType; | |
785 | UInt16 AnalogueFrequency; | |
786 | tmdlHdmiCECBroadcastSystem_t BroadcastSystem; | |
787 | } cec_tuner_device_status_analogue; | |
788 | ||
789 | typedef struct { | |
790 | tmdlHdmiCECRecordingFlag_t RecordingFlag; | |
791 | tmdlHdmiCECTunerDisplayInfo_t TunerDisplayInfo; | |
792 | tmdlHdmiCECDigitalServiceIdentification_t ServiceIdentification; | |
793 | } cec_tuner_device_status_digital; | |
794 | ||
795 | typedef struct { | |
796 | unsigned long VendorID; | |
797 | cec_string cmd; | |
798 | } cec_vendor_command_with_id; | |
799 | ||
800 | /* | |
801 | typedef struct { | |
802 | UInt8 *pData; | |
803 | UInt16 lenData; | |
804 | } cec_send_msg; | |
805 | */ | |
806 | ||
807 | typedef struct { | |
808 | unsigned char count; | |
809 | unsigned char service; | |
810 | unsigned char addr; | |
811 | unsigned char data[15]; | |
812 | } cec_frame; | |
813 | /* typedef tmdlHdmiCecFrameFormat_t cec_frame; */ | |
814 | ||
815 | typedef tmSWVersion_t cec_sw_version; | |
816 | typedef tmPowerState_t cec_power; | |
817 | typedef tmdlHdmiCecInstanceSetup_t cec_setup; | |
818 | typedef tmdlHdmiCecEvent_t cec_event; | |
819 | typedef tmdlHdmiCecClockSource_t cec_clock; | |
820 | typedef tmdlHdmiCECSystemAudioStatus_t cec_sys_audio_status; | |
821 | typedef tmdlHdmiCECAudioRate_t cec_audio_rate; | |
822 | typedef tmdlHdmiCECDigitalServiceIdentification_t cec_digital_service; | |
823 | typedef tmdlHdmiCECVersion_t cec_version; | |
824 | typedef tmdlHdmiCECDecControlMode_t cec_deck_ctrl; | |
825 | typedef tmdlHdmiCECDecInfo_t cec_deck_status; | |
826 | typedef tmdlHdmiCECStatusRequest_t cec_status_request; | |
827 | typedef tmdlHdmiCECMenuRequestType_t cec_menu_request; | |
828 | typedef tmdlHdmiCECMenuState_t cec_menu_status; | |
829 | typedef tmdlHdmiCECPlayMode_t cec_play; | |
830 | typedef tmdlHdmiCECExternalPlug_t cec_ext_plug; | |
831 | typedef tmdlHdmiCECRecordStatusInfo_t cec_rec_status; | |
832 | typedef tmdlHdmiCECAudioStatus_t cec_audio_status; | |
833 | typedef tmdlHdmiCECPowerStatus_t cec_power_status; | |
834 | typedef tmdlHdmiCECTimerClearedStatusData_t cec_timer_cleared_status; | |
835 | typedef tmdlHdmiCECTimerStatusData_t cec_timer_status; | |
836 | typedef tmdlHdmiCECUserRemoteControlCommand_t cec_user_ctrl; | |
837 | typedef tmdlHdmiCECChannelIdentifier_t cec_user_ctrl_tune; | |
838 | typedef tmdlHdmiCECDeviceType_t cec_device_type; | |
839 | ||
840 | #define CEC_IOCTL_BASE 0x40 | |
841 | ||
842 | /* service */ | |
843 | enum { | |
844 | CEC_WAITING = 0x80, | |
845 | CEC_RELEASE, | |
846 | CEC_RX_DONE, | |
847 | CEC_TX_DONE | |
848 | }; | |
849 | ||
850 | enum { | |
851 | /* driver specific */ | |
852 | CEC_VERBOSE_ON_CMD = 0, | |
853 | CEC_VERBOSE_OFF_CMD, | |
854 | CEC_BYEBYE_CMD, | |
855 | ||
856 | /* CEC */ | |
857 | CEC_IOCTL_RX_ADDR_CMD, /* receiver logical address selector */ | |
858 | CEC_IOCTL_PHY_ADDR_CMD, /* physical address selector */ | |
859 | CEC_IOCTL_WAIT_FRAME_CMD, | |
860 | CEC_IOCTL_ABORT_MSG_CMD, | |
861 | CEC_IOCTL_ACTIVE_SRC_CMD, | |
862 | CEC_IOCTL_VERSION_CMD, | |
863 | CEC_IOCTL_CLEAR_ANALOGUE_TIMER_CMD, | |
864 | CEC_IOCTL_CLEAR_DIGITAL_TIMER_CMD, | |
865 | CEC_IOCTL_CLEAR_EXT_TIMER_WITH_EXT_PLUG_CMD, | |
866 | CEC_IOCTL_CLEAR_EXT_TIMER_WITH_PHY_ADDR_CMD, | |
867 | CEC_IOCTL_DECK_CTRL_CMD, | |
868 | CEC_IOCTL_DECK_STATUS_CMD, | |
869 | CEC_IOCTL_DEVICE_VENDOR_ID_CMD, | |
870 | CEC_IOCTL_FEATURE_ABORT_CMD, | |
871 | CEC_IOCTL_GET_CEC_VERSION_CMD, | |
872 | CEC_IOCTL_GET_MENU_LANGUAGE_CMD, | |
873 | CEC_IOCTL_GIVE_AUDIO_STATUS_CMD, | |
874 | CEC_IOCTL_GIVE_DECK_STATUS_CMD, | |
875 | CEC_IOCTL_GIVE_DEVICE_POWER_STATUS_CMD, | |
876 | CEC_IOCTL_GIVE_DEVICE_VENDOR_ID_CMD, | |
877 | CEC_IOCTL_GIVE_OSD_NAME_CMD, | |
878 | CEC_IOCTL_GIVE_PHY_ADDR_CMD, | |
879 | CEC_IOCTL_GIVE_SYS_AUDIO_MODE_STATUS_CMD, | |
880 | CEC_IOCTL_GIVE_TUNER_DEVICE_STATUS_CMD, | |
881 | CEC_IOCTL_IMAGE_VIEW_ON_CMD, | |
882 | CEC_IOCTL_INACTIVE_SRC_CMD, | |
883 | CEC_IOCTL_MENU_REQUEST_CMD, | |
884 | CEC_IOCTL_MENU_STATUS_CMD, | |
885 | CEC_IOCTL_PLAY_CMD, | |
886 | CEC_IOCTL_POLLING_MSG_CMD, | |
887 | CEC_IOCTL_REC_OFF_CMD, | |
888 | CEC_IOCTL_REC_ON_ANALOGUE_SERVICE_CMD, | |
889 | CEC_IOCTL_REC_ON_DIGITAL_SERVICE_CMD, | |
890 | CEC_IOCTL_REC_ON_EXT_PHY_ADDR_CMD, | |
891 | CEC_IOCTL_REC_ON_EXT_PLUG_CMD, | |
892 | CEC_IOCTL_REC_ON_OWN_SRC_CMD, | |
893 | CEC_IOCTL_REC_STATUS_CMD, | |
894 | CEC_IOCTL_REC_TV_SCREEN_CMD, | |
895 | CEC_IOCTL_REPORT_AUDIO_STATUS_CMD, | |
896 | CEC_IOCTL_REPORT_PHY_ADDR_CMD, | |
897 | CEC_IOCTL_REPORT_POWER_STATUS_CMD, | |
898 | CEC_IOCTL_REQUEST_ACTIVE_SRC_CMD, | |
899 | CEC_IOCTL_ROUTING_CHANGE_CMD, | |
900 | CEC_IOCTL_ROUTING_INFORMATION_CMD, | |
901 | CEC_IOCTL_SELECT_ANALOGUE_SERVICE_CMD, | |
902 | CEC_IOCTL_SELECT_DIGITAL_SERVICE_CMD, | |
903 | CEC_IOCTL_SET_ANALOGUE_TIMER_CMD, | |
904 | CEC_IOCTL_SET_AUDIO_RATE_CMD, | |
905 | CEC_IOCTL_SET_DIGITAL_TIMER_CMD, | |
906 | CEC_IOCTL_SET_EXT_TIMER_WITH_EXT_PLUG_CMD, | |
907 | CEC_IOCTL_SET_EXT_TIMER_WITH_PHY_ADDR_CMD, | |
908 | CEC_IOCTL_SET_MENU_LANGUAGE_CMD, | |
909 | CEC_IOCTL_SET_OSD_NAME_CMD, | |
910 | CEC_IOCTL_SET_OSD_STRING_CMD, | |
911 | CEC_IOCTL_SET_STREAM_PATH_CMD, | |
912 | CEC_IOCTL_SET_SYS_AUDIO_MODE_CMD, | |
913 | CEC_IOCTL_SET_TIMER_PROGRAM_TITLE_CMD, | |
914 | CEC_IOCTL_STANDBY_CMD, | |
915 | CEC_IOCTL_SYS_AUDIO_MODE_REQUEST_CMD, | |
916 | CEC_IOCTL_SYS_AUDIO_MODE_STATUS_CMD, | |
917 | CEC_IOCTL_TEXT_VIEW_ON_CMD, | |
918 | CEC_IOCTL_TIMER_CLEARED_STATUS_CMD, | |
919 | CEC_IOCTL_TIMER_STATUS_CMD, | |
920 | CEC_IOCTL_TUNER_DEVICE_STATUS_ANALOGUE_CMD, | |
921 | CEC_IOCTL_TUNER_DEVICE_STATUS_DIGITAL_CMD, | |
922 | CEC_IOCTL_TUNER_STEP_DECREMENT_CMD, | |
923 | CEC_IOCTL_TUNER_STEP_INCREMENT_CMD, | |
924 | CEC_IOCTL_USER_CTRL_CMD, | |
925 | CEC_IOCTL_USER_CTRL_PLAY_CMD, | |
926 | CEC_IOCTL_USER_CTRL_SELECT_AUDIOINPUT_CMD, | |
927 | CEC_IOCTL_USER_CTRL_SELECT_AVINPUT_CMD, | |
928 | CEC_IOCTL_USER_CTRL_SELECT_MEDIA_CMD, | |
929 | CEC_IOCTL_USER_CTRL_TUNE_CMD, | |
930 | CEC_IOCTL_USER_CTRL_RELEASED_CMD, | |
931 | CEC_IOCTL_VENDOR_COMMAND_CMD, | |
932 | CEC_IOCTL_VENDOR_COMMAND_WITH_ID_CMD, | |
933 | CEC_IOCTL_VENDOR_REMOTE_BUTTON_DOWN_CMD, | |
934 | CEC_IOCTL_VENDOR_REMOTE_BUTTON_UP_CMD, | |
935 | CEC_IOCTL_GET_SW_VERSION_CMD, | |
936 | CEC_IOCTL_SET_POWER_STATE_CMD, | |
937 | CEC_IOCTL_GET_POWER_STATE_CMD, | |
938 | CEC_IOCTL_INSTANCE_CONFIG_CMD, | |
939 | CEC_IOCTL_INSTANCE_SETUP_CMD, | |
940 | CEC_IOCTL_GET_INSTANCE_SETUP_CMD, | |
941 | CEC_IOCTL_ENABLE_EVENT_CMD, | |
942 | CEC_IOCTL_DISABLE_EVENT_CMD, | |
943 | CEC_IOCTL_ENABLE_CALIBRATION_CMD, | |
944 | CEC_IOCTL_DISABLE_CALIBRATION_CMD, | |
945 | CEC_IOCTL_SEND_MSG_CMD, | |
946 | CEC_IOCTL_SET_REGISTER_CMD | |
947 | }; | |
948 | ||
949 | ||
950 | /* driver specific */ | |
951 | #define CEC_IOCTL_VERBOSE_ON _IO(CEC_IOCTL_BASE, CEC_VERBOSE_ON_CMD) | |
952 | #define CEC_IOCTL_VERBOSE_OFF _IO(CEC_IOCTL_BASE, CEC_VERBOSE_OFF_CMD) | |
953 | #define CEC_IOCTL_BYEBYE _IO(CEC_IOCTL_BASE, CEC_BYEBYE_CMD) | |
954 | ||
955 | /* CEC */ | |
956 | #define CEC_IOCTL_RX_ADDR _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_RX_ADDR_CMD, unsigned char) | |
957 | #define CEC_IOCTL_PHY_ADDR _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_PHY_ADDR_CMD, unsigned short) | |
958 | #define CEC_IOCTL_WAIT_FRAME _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_WAIT_FRAME_CMD, cec_frame) | |
959 | #define CEC_IOCTL_ABORT_MSG _IO(CEC_IOCTL_BASE, CEC_IOCTL_ABORT_MSG_CMD) | |
960 | #define CEC_IOCTL_ACTIVE_SRC _IO(CEC_IOCTL_BASE, CEC_IOCTL_ACTIVE_SRC_CMD) | |
961 | #define CEC_IOCTL_VERSION _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_VERSION_CMD, cec_version) | |
962 | #define CEC_IOCTL_CLEAR_ANALOGUE_TIMER _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_CLEAR_ANALOGUE_TIMER_CMD, cec_analogue_timer) | |
963 | #define CEC_IOCTL_CLEAR_DIGITAL_TIMER _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_CLEAR_DIGITAL_TIMER_CMD, cec_digital_timer) | |
964 | #define CEC_IOCTL_CLEAR_EXT_TIMER_WITH_EXT_PLUG _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_CLEAR_EXT_TIMER_WITH_EXT_PLUG_CMD, cec_ext_timer_with_ext_plug) | |
965 | #define CEC_IOCTL_CLEAR_EXT_TIMER_WITH_PHY_ADDR _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_CLEAR_EXT_TIMER_WITH_PHY_ADDR_CMD, cec_ext_timer_with_phy_addr) | |
966 | #define CEC_IOCTL_DECK_CTRL _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_DECK_CTRL_CMD, cec_deck_ctrl) | |
967 | #define CEC_IOCTL_DECK_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_DECK_STATUS_CMD, cec_deck_status) | |
968 | #define CEC_IOCTL_DEVICE_VENDOR_ID _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_DEVICE_VENDOR_ID_CMD, unsigned long) | |
969 | #define CEC_IOCTL_FEATURE_ABORT _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_FEATURE_ABORT_CMD, cec_feature_abort) | |
970 | #define CEC_IOCTL_GET_CEC_VERSION _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_GET_CEC_VERSION_CMD, unsigned char) | |
971 | #define CEC_IOCTL_GET_MENU_LANGUAGE _IO(CEC_IOCTL_BASE, CEC_IOCTL_GET_MENU_LANGUAGE_CMD) | |
972 | #define CEC_IOCTL_GIVE_AUDIO_STATUS _IO(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_AUDIO_STATUS_CMD) | |
973 | #define CEC_IOCTL_GIVE_DECK_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_DECK_STATUS_CMD, cec_status_request) | |
974 | #define CEC_IOCTL_GIVE_DEVICE_POWER_STATUS _IO(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_DEVICE_POWER_STATUS_CMD) | |
975 | #define CEC_IOCTL_GIVE_DEVICE_VENDOR_ID _IO(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_DEVICE_VENDOR_ID_CMD) | |
976 | #define CEC_IOCTL_GIVE_OSD_NAME _IO(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_OSD_NAME_CMD) | |
977 | #define CEC_IOCTL_GIVE_PHY_ADDR _IO(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_PHY_ADDR_CMD) | |
978 | #define CEC_IOCTL_GIVE_SYS_AUDIO_MODE_STATUS _IO(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_SYS_AUDIO_MODE_STATUS_CMD) | |
979 | #define CEC_IOCTL_GIVE_TUNER_DEVICE_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_GIVE_TUNER_DEVICE_STATUS_CMD, cec_status_request) | |
980 | #define CEC_IOCTL_IMAGE_VIEW_ON _IO(CEC_IOCTL_BASE, CEC_IOCTL_IMAGE_VIEW_ON_CMD) | |
981 | #define CEC_IOCTL_INACTIVE_SRC _IO(CEC_IOCTL_BASE, CEC_IOCTL_INACTIVE_SRC_CMD) | |
982 | #define CEC_IOCTL_MENU_REQUEST _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_MENU_REQUEST_CMD, cec_menu_request) | |
983 | #define CEC_IOCTL_MENU_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_MENU_STATUS_CMD, cec_menu_status) | |
984 | #define CEC_IOCTL_PLAY _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_PLAY_CMD, cec_play) | |
985 | #define CEC_IOCTL_POLLING_MSG _IO(CEC_IOCTL_BASE, CEC_IOCTL_POLLING_MSG_CMD) | |
986 | #define CEC_IOCTL_REC_OFF _IO(CEC_IOCTL_BASE, CEC_IOCTL_REC_OFF_CMD) | |
987 | #define CEC_IOCTL_REC_ON_ANALOGUE_SERVICE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REC_ON_ANALOGUE_SERVICE_CMD, cec_analogue_service) | |
988 | #define CEC_IOCTL_REC_ON_DIGITAL_SERVICE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REC_ON_DIGITAL_SERVICE_CMD, cec_digital_service) | |
989 | #define CEC_IOCTL_REC_ON_EXT_PHY_ADDR _IO(CEC_IOCTL_BASE, CEC_IOCTL_REC_ON_EXT_PHY_ADDR_CMD) | |
990 | #define CEC_IOCTL_REC_ON_EXT_PLUG _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REC_ON_EXT_PLUG_CMD, cec_ext_plug) | |
991 | #define CEC_IOCTL_REC_ON_OWN_SRC _IO(CEC_IOCTL_BASE, CEC_IOCTL_REC_ON_OWN_SRC_CMD) | |
992 | #define CEC_IOCTL_REC_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REC_STATUS_CMD, cec_rec_status) | |
993 | #define CEC_IOCTL_REC_TV_SCREEN _IO(CEC_IOCTL_BASE, CEC_IOCTL_REC_TV_SCREEN_CMD) | |
994 | #define CEC_IOCTL_REPORT_AUDIO_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REPORT_AUDIO_STATUS_CMD, cec_audio_status) | |
995 | #define CEC_IOCTL_REPORT_PHY_ADDR _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REPORT_PHY_ADDR_CMD, cec_device_type) | |
996 | #define CEC_IOCTL_REPORT_POWER_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_REPORT_POWER_STATUS_CMD, cec_power_status) | |
997 | #define CEC_IOCTL_REQUEST_ACTIVE_SRC _IO(CEC_IOCTL_BASE, CEC_IOCTL_REQUEST_ACTIVE_SRC_CMD) | |
998 | #define CEC_IOCTL_ROUTING_CHANGE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_ROUTING_CHANGE_CMD, cec_routing_change) | |
999 | #define CEC_IOCTL_ROUTING_INFORMATION _IO(CEC_IOCTL_BASE, CEC_IOCTL_ROUTING_INFORMATION_CMD) | |
1000 | #define CEC_IOCTL_SELECT_ANALOGUE_SERVICE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SELECT_ANALOGUE_SERVICE_CMD, cec_analogue_service) | |
1001 | #define CEC_IOCTL_SELECT_DIGITAL_SERVICE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SELECT_DIGITAL_SERVICE_CMD, cec_digital_service) | |
1002 | #define CEC_IOCTL_SET_ANALOGUE_TIMER _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_ANALOGUE_TIMER_CMD, cec_analogue_timer) | |
1003 | #define CEC_IOCTL_SET_AUDIO_RATE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_AUDIO_RATE_CMD, cec_audio_rate) | |
1004 | #define CEC_IOCTL_SET_DIGITAL_TIMER _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_DIGITAL_TIMER_CMD, cec_digital_timer) | |
1005 | #define CEC_IOCTL_SET_EXT_TIMER_WITH_EXT_PLUG _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_EXT_TIMER_WITH_EXT_PLUG_CMD, cec_ext_timer_with_ext_plug) | |
1006 | #define CEC_IOCTL_SET_EXT_TIMER_WITH_PHY_ADDR _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_EXT_TIMER_WITH_PHY_ADDR_CMD, cec_ext_timer_with_phy_addr) | |
1007 | #define CEC_IOCTL_SET_MENU_LANGUAGE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_MENU_LANGUAGE_CMD, cec_string) | |
1008 | #define CEC_IOCTL_SET_OSD_NAME _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_OSD_NAME_CMD, cec_string) | |
1009 | #define CEC_IOCTL_SET_OSD_STRING _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_OSD_STRING_CMD, cec_osd_string) | |
1010 | #define CEC_IOCTL_SET_STREAM_PATH _IO(CEC_IOCTL_BASE, CEC_IOCTL_SET_STREAM_PATH_CMD) | |
1011 | #define CEC_IOCTL_SET_SYS_AUDIO_MODE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_SYS_AUDIO_MODE_CMD, cec_sys_audio_status) | |
1012 | #define CEC_IOCTL_SET_TIMER_PROGRAM_TITLE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_TIMER_PROGRAM_TITLE_CMD, cec_string) | |
1013 | #define CEC_IOCTL_STANDBY _IO(CEC_IOCTL_BASE, CEC_IOCTL_STANDBY_CMD) | |
1014 | #define CEC_IOCTL_SYS_AUDIO_MODE_REQUEST _IO(CEC_IOCTL_BASE, CEC_IOCTL_SYS_AUDIO_MODE_REQUEST_CMD) | |
1015 | #define CEC_IOCTL_SYS_AUDIO_MODE_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SYS_AUDIO_MODE_STATUS_CMD, cec_sys_audio_status) | |
1016 | #define CEC_IOCTL_TEXT_VIEW_ON _IO(CEC_IOCTL_BASE, CEC_IOCTL_TEXT_VIEW_ON_CMD) | |
1017 | #define CEC_IOCTL_TIMER_CLEARED_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_TIMER_CLEARED_STATUS_CMD, cec_timer_cleared_status) | |
1018 | #define CEC_IOCTL_TIMER_STATUS _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_TIMER_STATUS_CMD, cec_timer_status) | |
1019 | #define CEC_IOCTL_TUNER_DEVICE_STATUS_ANALOGUE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_TUNER_DEVICE_STATUS_ANALOGUE_CMD, cec_tuner_device_status_analogue) | |
1020 | #define CEC_IOCTL_TUNER_DEVICE_STATUS_DIGITAL _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_TUNER_DEVICE_STATUS_DIGITAL_CMD, cec_tuner_device_status_digital) | |
1021 | #define CEC_IOCTL_TUNER_STEP_DECREMENT _IO(CEC_IOCTL_BASE, CEC_IOCTL_TUNER_STEP_DECREMENT_CMD) | |
1022 | #define CEC_IOCTL_TUNER_STEP_INCREMENT _IO(CEC_IOCTL_BASE, CEC_IOCTL_TUNER_STEP_INCREMENT_CMD) | |
1023 | #define CEC_IOCTL_USER_CTRL_PRESSED _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_CMD, cec_user_ctrl) | |
1024 | #define CEC_IOCTL_USER_CTRL_PLAY _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_PLAY_CMD, cec_play) | |
1025 | #define CEC_IOCTL_USER_CTRL_SELECT_AUDIOINPUT _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_SELECT_AUDIOINPUT_CMD, unsigned char) | |
1026 | #define CEC_IOCTL_USER_CTRL_SELECT_AVINPUT _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_SELECT_AVINPUT_CMD, unsigned char) | |
1027 | #define CEC_IOCTL_USER_CTRL_SELECT_MEDIA _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_SELECT_MEDIA_CMD, unsigned char) | |
1028 | #define CEC_IOCTL_USER_CTRL_TUNE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_TUNE_CMD, cec_user_ctrl_tune) | |
1029 | #define CEC_IOCTL_USER_CTRL_RELEASED _IO(CEC_IOCTL_BASE, CEC_IOCTL_USER_CTRL_RELEASED_CMD) | |
1030 | #define CEC_IOCTL_VENDOR_COMMAND _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_VENDOR_COMMAND_CMD, cec_string) | |
1031 | #define CEC_IOCTL_VENDOR_COMMAND_WITH_ID _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_VENDOR_COMMAND_WITH_ID_CMD, cec_vendor_command_with_id) | |
1032 | #define CEC_IOCTL_VENDOR_REMOTE_BUTTON_DOWN _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_VENDOR_REMOTE_BUTTON_DOWN_CMD, cec_string) | |
1033 | #define CEC_IOCTL_VENDOR_REMOTE_BUTTON_UP _IO(CEC_IOCTL_BASE, CEC_IOCTL_VENDOR_REMOTE_BUTTON_UP_CMD) | |
1034 | #define CEC_IOCTL_GET_SW_VERSION _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_GET_SW_VERSION_CMD, cec_sw_version) | |
1035 | #define CEC_IOCTL_SET_POWER_STATE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_SET_POWER_STATE_CMD, cec_power) | |
1036 | #define CEC_IOCTL_GET_POWER_STATE _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_GET_POWER_STATE_CMD, cec_power) | |
1037 | #define CEC_IOCTL_INSTANCE_CONFIG _IO(CEC_IOCTL_BASE, CEC_IOCTL_INSTANCE_CONFIG_CMD) | |
1038 | #define CEC_IOCTL_INSTANCE_SETUP _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_INSTANCE_SETUP_CMD, cec_setup) | |
1039 | #define CEC_IOCTL_GET_INSTANCE_SETUP _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_GET_INSTANCE_SETUP_CMD, cec_setup) | |
1040 | #define CEC_IOCTL_ENABLE_EVENT _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_ENABLE_EVENT_CMD, cec_event) | |
1041 | #define CEC_IOCTL_DISABLE_EVENT _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_DISABLE_EVENT_CMD, cec_event) | |
1042 | #define CEC_IOCTL_ENABLE_CALIBRATION _IOWR(CEC_IOCTL_BASE, CEC_IOCTL_ENABLE_CALIBRATION_CMD, cec_clock) | |
1043 | #define CEC_IOCTL_DISABLE_CALIBRATION _IO(CEC_IOCTL_BASE, CEC_IOCTL_DISABLE_CALIBRATION_CMD) | |
1044 | /* #define CEC_IOCTL_SEND_MSG _IOWR(CEC_IOCTL_BASE,CEC_IOCTL_SEND_MSG_CMD,cec_send_msg) */ | |
1045 | ||
1046 | /* --- Full list --- */ | |
1047 | ||
1048 | /* legend: */ | |
1049 | /* ------- */ | |
1050 | /* [ ] : not supported */ | |
1051 | /* [x] : IOCTL */ | |
1052 | /* [i] : open, init... */ | |
1053 | ||
1054 | /* [ ] tmdlHdmiCecAbortMessage */ | |
1055 | /* [ ] tmdlHdmiCecActiveSource */ | |
1056 | /* [ ] tmdlHdmiCecVersion */ | |
1057 | /* [ ] tmdlHdmiCecClearAnalogueTimer */ | |
1058 | /* [ ] tmdlHdmiCecClearDigitalTimer */ | |
1059 | /* [ ] tmdlHdmiCecClearExternalTimerWithExternalPlug */ | |
1060 | /* [ ] tmdlHdmiCecClearExternalTimerWithPhysicalAddress */ | |
1061 | /* [ ] tmdlHdmiCecDeckControl */ | |
1062 | /* [ ] tmdlHdmiCecDeckStatus */ | |
1063 | /* [ ] tmdlHdmiCecDeviceVendorID */ | |
1064 | /* [ ] tmdlHdmiCecFeatureAbort */ | |
1065 | /* [ ] tmdlHdmiCecGetCecVersion */ | |
1066 | /* [ ] tmdlHdmiCecGetMenuLanguage */ | |
1067 | /* [ ] tmdlHdmiCecGiveAudioStatus */ | |
1068 | /* [ ] tmdlHdmiCecGiveDeckStatus */ | |
1069 | /* [ ] tmdlHdmiCecGiveDevicePowerStatus */ | |
1070 | /* [ ] tmdlHdmiCecGiveDeviceVendorID */ | |
1071 | /* [ ] tmdlHdmiCecGiveOsdName */ | |
1072 | /* [ ] tmdlHdmiCecGivePhysicalAddress */ | |
1073 | /* [ ] tmdlHdmiCecGiveSystemAudioModeStatus */ | |
1074 | /* [ ] tmdlHdmiCecGiveTunerDeviceStatus */ | |
1075 | /* [ ] tmdlHdmiCecImageViewOn */ | |
1076 | /* [ ] tmdlHdmiCecInactiveSource */ | |
1077 | /* [ ] tmdlHdmiCecMenuRequest */ | |
1078 | /* [ ] tmdlHdmiCecMenuStatus */ | |
1079 | /* [ ] tmdlHdmiCecPlay */ | |
1080 | /* [ ] tmdlHdmiCecPollingMessage */ | |
1081 | /* [ ] tmdlHdmiCecRecordOff */ | |
1082 | /* [ ] tmdlHdmiCecRecordOnAnalogueService */ | |
1083 | /* [ ] tmdlHdmiCecRecordOnDigitalService */ | |
1084 | /* [ ] tmdlHdmiCecRecordOnExternalPhysicalAddress */ | |
1085 | /* [ ] tmdlHdmiCecRecordOnExternalPlug */ | |
1086 | /* [ ] tmdlHdmiCecRecordOnOwnSource */ | |
1087 | /* [ ] tmdlHdmiCecRecordStatus */ | |
1088 | /* [ ] tmdlHdmiCecRecordTvScreen */ | |
1089 | /* [ ] tmdlHdmiCecReportAudioStatus */ | |
1090 | /* [ ] tmdlHdmiCecReportPhysicalAddress */ | |
1091 | /* [ ] tmdlHdmiCecReportPowerStatus */ | |
1092 | /* [ ] tmdlHdmiCecRequestActiveSource */ | |
1093 | /* [ ] tmdlHdmiCecRoutingChange */ | |
1094 | /* [ ] tmdlHdmiCecRoutingInformation */ | |
1095 | /* [ ] tmdlHdmiCecSelectAnalogueService */ | |
1096 | /* [ ] tmdlHdmiCecSelectDigitalService */ | |
1097 | /* [ ] tmdlHdmiCecSetAnalogueTimer */ | |
1098 | /* [ ] tmdlHdmiCecSetAudioRate */ | |
1099 | /* [ ] tmdlHdmiCecSetDigitalTimer */ | |
1100 | /* [ ] tmdlHdmiCecSetExternalTimerWithExternalPlug */ | |
1101 | /* [ ] tmdlHdmiCecSetExternalTimerWithPhysicalAddress */ | |
1102 | /* [ ] tmdlHdmiCecSetMenuLanguage */ | |
1103 | /* [ ] tmdlHdmiCecSetOsdName */ | |
1104 | /* [ ] tmdlHdmiCecSetOsdString */ | |
1105 | /* [ ] tmdlHdmiCecSetStreamPath */ | |
1106 | /* [ ] tmdlHdmiCecSetSystemAudioMode */ | |
1107 | /* [ ] tmdlHdmiCecSetTimerProgramTitle */ | |
1108 | /* [ ] tmdlHdmiCecStandby */ | |
1109 | /* [ ] tmdlHdmiCecSystemAudioModeRequest */ | |
1110 | /* [ ] tmdlHdmiCecSystemAudioModeStatus */ | |
1111 | /* [ ] tmdlHdmiCecTextViewOn */ | |
1112 | /* [ ] tmdlHdmiCecTimerClearedStatus */ | |
1113 | /* [ ] tmdlHdmiCecTimerStatus */ | |
1114 | /* [ ] tmdlHdmiCecTunerDeviceStatusAnalogue */ | |
1115 | /* [ ] tmdlHdmiCecTunerDeviceStatusDigital */ | |
1116 | /* [ ] tmdlHdmiCecTunerStepDecrement */ | |
1117 | /* [ ] tmdlHdmiCecTunerStepIncrement */ | |
1118 | /* [ ] tmdlHdmiCecUserControlPressed */ | |
1119 | /* [ ] tmdlHdmiCecUserControlPressedPlay */ | |
1120 | /* [ ] tmdlHdmiCecUserControlPressedSelectAudioInput */ | |
1121 | /* [ ] tmdlHdmiCecUserControlPressedSelectAVInput */ | |
1122 | /* [ ] tmdlHdmiCecUserControlPressedSelectMedia */ | |
1123 | /* [ ] tmdlHdmiCecUserControlPressedTune */ | |
1124 | /* [ ] tmdlHdmiCecUserControlReleased */ | |
1125 | /* [ ] tmdlHdmiCecVendorCommand */ | |
1126 | /* [ ] tmdlHdmiCecVendorCommandWithID */ | |
1127 | /* [ ] tmdlHdmiCecVendorRemoteButtonDown */ | |
1128 | /* [ ] tmdlHdmiCecVendorRemoteButtonUp */ | |
1129 | /* [ ] tmdlHdmiCecGetSWVersion */ | |
1130 | /* [ ] tmdlHdmiCecGetNumberOfUnits */ | |
1131 | /* [ ] tmdlHdmiCecGetCapabilities */ | |
1132 | /* [ ] tmdlHdmiCecGetCapabilitiesM */ | |
1133 | /* [ ] tmdlHdmiCecOpen */ | |
1134 | /* [ ] tmdlHdmiCecOpenM */ | |
1135 | /* [ ] tmdlHdmiCecClose */ | |
1136 | /* [ ] tmdlHdmiCecSetPowerState */ | |
1137 | /* [ ] tmdlHdmiCecGetPowerState */ | |
1138 | /* [ ] tmdlHdmiCecInstanceConfig */ | |
1139 | /* [ ] tmdlHdmiCecInstanceSetup */ | |
1140 | /* [ ] tmdlHdmiCecGetInstanceSetup */ | |
1141 | /* [ ] tmdlHdmiCecHandleInterrupt */ | |
1142 | /* [ ] tmdlHdmiCecRegisterCallbacks */ | |
1143 | /* [ ] tmdlHdmiCecSetAutoAnswer */ | |
1144 | /* [ ] tmdlHdmiCecSetLogicalAddress */ | |
1145 | /* [ ] tmdlHdmiCecEnableEvent */ | |
1146 | /* [ ] tmdlHdmiCecDisableEvent */ | |
1147 | /* [ ] tmdlHdmiCecEnableCalibration */ | |
1148 | /* [ ] tmdlHdmiCecDisableCalibration */ | |
1149 | /* [ ] tmdlHdmiCecSendMessage */ | |
1150 | /* [ ] tmdlHdmiCecSetRegister */ | |
1151 | ||
1152 | ||
1153 | #endif /* __cec_h__ */ | |
1154 | #endif /* __cec_ioctl__ */ |