2 /*
3 Copyright (c) 2017, Texas Instruments Incorporated - http://www.ti.com/
4 All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
36 #ifndef HSDIOALPHACMDS_H
37 #define HSDIOALPHACMDS_H
38 /*****************************************************************************
39 Filename:
40 vprocCmds_a.h
42 Project:
43 VPROC
45 //
47 Note:
48 HSDIO = High Speed Digital Input Output
49 ******************************************************************************/
52 // ****************************************************************************
53 // ***** I2C Addresses
54 // ****************************************************************************
55 #define HSDIO_I2C_ADDRESS_1 0xB8
56 #define HSDIO_I2C_ADDRESS_2 0xBA
57 #define HSDIO_I2C_ADDRESS_3 0xBC
58 #define HSDIO_I2C_ADDRESS_4 0xBE
61 // ****************************************************************************
62 // ***** Software Version & Release Status (1 byte)
63 // ****************************************************************************
64 // was SOFTWARE_RELEASE
65 #define HSDIO_SOFTWARE_VERSION_STS 0xC201,0x0900
66 #define HSDIO_SOFTWARE_RELEASE_STS 0xC201,0x0000
68 // ****************************************************************************
69 // ***** Input Select (1 byte)
70 // ****************************************************************************
71 #define HSDIO_INPUT_SELECT(nn) 0xCA00,0x0100+(nn&0xff)
72 #define HSDIO_GET_INPUT_SELECT 0xC200,0x0100
73 #define HSDIO_INPUT_SELECT_STS 0xC201,0x0100
75 #define HSDIO_Input_LOW_POWER 0
76 #define HSDIO_Input_COMPONENT 1
77 #define HSDIO_Input_VGA 2
78 #define HSDIO_Input_COMPOSITE_1 3
79 #define HSDIO_Input_COMPOSITE_2 4
80 #define HSDIO_Input_COMPOSITE_3 5
81 #define HSDIO_Input_COMPOSITE_4 6
82 #define HSDIO_Input_SVID_1 7
83 #define HSDIO_Input_EXTERNAL 8
84 #define HSDIO_Input_HDMI_1 9
85 #define HSDIO_Input_HDMI_2 10
86 #define HSDIO_Input_HDMI_3 11
87 #define HSDIO_Input_HDMI_4 12
88 #define HSDIO_Input_HDMI_5 13
89 #define HSDIO_Input_HDMI_6 14
90 #define HSDIO_Input_HDMI_7 15
91 #define HSDIO_Input_HDMI_8 16
92 #define HSDIO_Input_HDMI_9 17
93 #define HSDIO_Input_HDMI_10 18
94 #define HSDIO_Input_HDMI_11 19
95 #define HSDIO_Input_HDMI_12 20
96 #define HSDIO_Input_HDMI_13 21
97 #define HSDIO_Input_HDMI_14 22
98 #define HSDIO_Input_HDMI_15 23
99 #define HSDIO_Input_HDMI_16 24
100 #define HSDIO_Input_UNKNOWN 0xff
102 // or use direct input commands...
103 #define HSDIO_INPUT_SELECT_LOW_POWER 0xCA00,0x0100
104 #define HSDIO_INPUT_SELECT_COMPONENT 0xCA00,0x0101
105 #define HSDIO_INPUT_SELECT_VGA 0xCA00,0x0102
106 #define HSDIO_INPUT_SELECT_COMPOSITE_1 0xCA00,0x0103
107 #define HSDIO_INPUT_SELECT_COMPOSITE_2 0xCA00,0x0104
108 #define HSDIO_INPUT_SELECT_COMPOSITE_3 0xCA00,0x0105
109 #define HSDIO_INPUT_SELECT_COMPOSITE_4 0xCA00,0x0106
110 #define HSDIO_INPUT_SELECT_SVID_1 0xCA00,0x0107
111 #define HSDIO_INPUT_SELECT_EXTERNAL 0xCA00,0x0108
112 #define HSDIO_INPUT_SELECT_HDMI_1 0xCA00,0x0109
113 #define HSDIO_INPUT_SELECT_HDMI_2 0xCA00,0x010A
114 #define HSDIO_INPUT_SELECT_HDMI_3 0xCA00,0x010B
115 #define HSDIO_INPUT_SELECT_HDMI_4 0xCA00,0x010C
116 #define HSDIO_INPUT_SELECT_HDMI_5 0xCA00,0x010D
117 #define HSDIO_INPUT_SELECT_HDMI_6 0xCA00,0x010E
118 #define HSDIO_INPUT_SELECT_HDMI_7 0xCA00,0x010F
119 #define HSDIO_INPUT_SELECT_HDMI_8 0xCA00,0x0110
120 #define HSDIO_INPUT_SELECT_HDMI_9 0xCA00,0x0111
121 #define HSDIO_INPUT_SELECT_HDMI_10 0xCA00,0x0112
122 #define HSDIO_INPUT_SELECT_HDMI_11 0xCA00,0x0113
123 #define HSDIO_INPUT_SELECT_HDMI_12 0xCA00,0x0114
124 #define HSDIO_INPUT_SELECT_HDMI_13 0xCA00,0x0115
125 #define HSDIO_INPUT_SELECT_HDMI_14 0xCA00,0x0116
126 #define HSDIO_INPUT_SELECT_HDMI_15 0xCA00,0x0117
127 #define HSDIO_INPUT_SELECT_HDMI_16 0xCA00,0x0118
130 // ****************************************************************************
131 // ***** Input Detect Status (2 bytes)
132 // ****************************************************************************
133 #define HSDIO_INPUT_DETECT_STS 0xC301,0x0002
135 #define HSDIO_STS_INPUT_ACTIVE 1
136 #define HSDIO_STS_INPUT_INACTIVE 0
139 #define HSDIO_HDMI_INPUT_DETECT_1_msk 0x0001
140 #define HSDIO_HDMI_INPUT_DETECT_2_msk 0x0002
141 #define HSDIO_HDMI_INPUT_DETECT_3_msk 0x0004
142 #define HSDIO_HDMI_INPUT_DETECT_4_msk 0x0008
143 #define HSDIO_HDMI_INPUT_DETECT_5_msk 0x0010
144 #define HSDIO_HDMI_INPUT_DETECT_6_msk 0x0020
145 #define HSDIO_HDMI_INPUT_DETECT_7_msk 0x0040
146 #define HSDIO_HDMI_INPUT_DETECT_8_msk 0x0080
147 #define HSDIO_HDMI_INPUT_DETECT_9_msk 0x0100
148 #define HSDIO_HDMI_INPUT_DETECT_10_msk 0x0200
149 #define HSDIO_HDMI_INPUT_DETECT_11_msk 0x0400
150 #define HSDIO_HDMI_INPUT_DETECT_12_msk 0x0800
151 #define HSDIO_HDMI_INPUT_DETECT_13_msk 0x1000
152 #define HSDIO_HDMI_INPUT_DETECT_14_msk 0x2000
153 #define HSDIO_HDMI_INPUT_DETECT_15_msk 0x4000
154 #define HSDIO_HDMI_INPUT_DETECT_16_msk 0x8000
157 // ****************************************************************************
158 // ***** Alert Configuration (4 bytes)
159 // ****************************************************************************
160 #define HSDIO_ALERT(nn) 0xCC00,0x0004,(nn&0xffff),(nn>>16)
161 #define HSDIO_GET_ALERT 0xC400,0x0004
162 #define HSDIO_ALERT_STS 0xC401,0x0004
165 #define HSDIO_ALERT_INPUT_AUDIO_MUTE_msk 0x00000001
166 #define HSDIO_ALERT_INPUT_AUDIO_CHANGE_msk 0x00000002
167 #define HSDIO_ALERT_INPUT_VIDEO_CHANGE_msk 0x00000004
168 #define HSDIO_ALERT_INPUT_AVMUTE_CHANGE_msk 0x00000008
169 #define HSDIO_ALERT_INPUT_SELECT_CHANGE_msk 0x00000010
170 #define HSDIO_ALERT_INPUT_DETECT_CHANGE_msk 0x00000020
171 #define HSDIO_ALERT_CEC_CMD_msk 0x00000040
172 #define HSDIO_ALERT_INPUT_PKT_CHANGE_msk 0x00000080
173 #define HSDIO_ALERT_VIDEO_PROC_CTRL_REQ_msk 0x00000100
174 #define HSDIO_ALERT_OUTPUT_PORT_1_CHANGE_msk 0x01000000
175 #define HSDIO_ALERT_OUTPUT_PORT_2_CHANGE_msk 0x02000000
176 #define HSDIO_ALERT_OUTPUT_PORT_3_CHANGE_msk 0x04000000
181 // for backward compatibility with some older applications...
182 #define HSDIO_ALERT1(nn) 0xCA00,0x0400+(nn&0xff)
183 #define HSDIO_GET_ALERT1 0xC200,0x0400
184 #define HSDIO_ALERT1_STS 0xC201,0x0400
185 #define HSDIO_STS_ALERT1_AUDIO_MUTE_msk 0x01
186 #define HSDIO_STS_ALERT1_AUDIO_CHANGE_msk 0x02
187 #define HSDIO_STS_ALERT1_VIDEO_CHANGE_msk 0x04
188 #define HSDIO_STS_ALERT1_AVMUTE_CHANGE_msk 0x08
191 // ****************************************************************************
192 // ***** Video Processor Control Selection (1 byte)
193 // ****************************************************************************
194 #define HSDIO_VIDEO_PROC_CONTROL(nn) 0xCA00,0x0800+(nn&0xff)
195 #define HSDIO_GET_VIDEO_PROC_CONTROL 0xC200,0x0800
196 #define HSDIO_VIDEO_PROC_CONTROL_STS 0xC201,0x0800
198 #define HSDIO_VideoProcControl_VPROC 0
199 #define HSDIO_VideoProcControl_HOST 1
200 #define HSDIO_VideoProcControl_UNKNOWN 0xff
203 // ****************************************************************************
204 // ***** Number of HDMI Input Ports Status (1 bytes)
205 // ****************************************************************************
206 #define HSDIO_NUM_INPUT_HDMI_PORTS_STS 0xC201,0x0A00
208 // ****************************************************************************
209 // ***** Repeater Function of HRPTR Status
210 // ****************************************************************************
211 #define HSDIO_REPEATER_FUNC_STS 0xC201,0x0B00
213 #define HSDIO_RepeaterFunc_SINK 0
214 #define HSDIO_RepeaterFunc_REPEATER 1
215 #define HSDIO_RepeaterFunc_SOURCE 2
216 #define HSDIO_RepeaterFunc_UNKNOWN 0xff
219 // ****************************************************************************
220 // ***** Preferred Vertical Timing (1 byte)
221 // ****************************************************************************
222 #define HSDIO_PREFERRED_VERTICAL_TMG(nn) 0xCA00,0x0C00+(nn&0xff)
223 #define HSDIO_GET_PREFERRED_VERTICAL_TMG 0xC200,0x0C00
225 #define HSDIO_PrefVerticalTmg_60 0
226 #define HSDIO_PrefVerticalTmg_50 1
227 #define HSDIO_PrefVerticalTmg_UNKNOWN 0xff
230 // ****************************************************************************
231 // ***** Suspend Command Processing Until Input Change (1 byte)
232 // ****************************************************************************
233 #define HSDIO_SUSPEND_CMDS_UNTIL_INPUT_CHANGE 0xCA00,0x0F00
237 // ****************************************************************************
238 // ***** Audio Routing to Host (1 byte)
239 // ****************************************************************************
240 #define HSDIO_AUDIO_ROUTING(nn) 0xCA00,0x1000+(nn&0xff)
241 #define HSDIO_GET_AUDIO_ROUTING 0xC200,0x1000
242 #define HSDIO_AUDIO_ROUTING_STS 0xC201,0x1000
244 // external input goes to host, external input goes to HSDIO Tx, Host provides HSDIO Tx audio settings
245 #define HSDIO_AudioRouting_EXTIN_EXTOUT 0
247 // external input goes to host, host provides audio to HSDIO Tx, Host provides HSDIO Tx audio settings
248 #define HSDIO_AudioRouting_EXTIN_HOSTOUT 1
250 // external input goes to host, HSDIO Tx is muted (or disabled)
251 #define HSDIO_AudioRouting_EXTIN_NOOUT 2
253 // HSDIO Rx input goes to host, HSDIO Rx audio goes to HSDIO Tx, HSDIO Rx provides HSDIO Tx audio settings
254 // NOTE: Host cannot control format of audio output to Host from HSDIO Rx
255 // NOTE: This configuration is known as "Audio Passthru"
256 #define HSDIO_AudioRouting_HSDIOIN_HSDIOOUT 3
258 // HSDIO Rx input goes to host, host provides audio to HSDIO Tx, Host provides HSDIO Tx audio settings
259 #define HSDIO_AudioRouting_HSDIOIN_HOSTOUT 4
261 // HSDIO Rx input goes to host, HSDIO Tx is muted (or disabled)
262 #define HSDIO_AudioRouting_HSDIOIN_NOOUT 5
265 // ****************************************************************************
266 // ***** Audio Routing to External Output (1 byte)
267 // ****************************************************************************
268 #define HSDIO_AUDIO_ROUTING_TO_EXTOUT(nn) 0xCA00,0x1200+(nn&0xff)
269 #define HSDIO_GET_AUDIO_ROUTING_TO_EXTOUT 0xC200,0x1200
270 #define HSDIO_AUDIO_ROUTING_TO_EXTOUT_STS 0xC201,0x1200
272 #define HSDIO_AudioRoutingToExtOut_DISABLED 0 // audio output disabled
273 #define HSDIO_AudioRoutingToExtOut_ENABLED 1 // audio output enabled
276 // ****************************************************************************
277 // ***** Repeater Configuration (1 byte)
278 // ****************************************************************************
279 #define HSDIO_REPEATER_CONFIG(nn) 0xCA00,0x1300+(nn&0xff)
280 #define HSDIO_GET_REPEATER_CONFIG 0xC200,0x1300
281 #define HSDIO_REPEATER_CONFIG_STS 0xC201,0x1300
283 // Primary output and Secondary output audio enabled
284 // Audio portion of upstream EDID made from combining audio EDID
285 // information from both downstream devices when
286 // Audio Routing is HSDIOIN_HSDIOOUT (passthru)
287 #define HSDIO_RepeaterConfig_PRIM_AUDIO_SEC_AUDIO 0
289 // Primary output audio enabled, Secondary output audio muted
290 // Audio portion of upstream EDID made from Primary downstream EDID when
291 // Audio Routing is HSDIOIN_HSDIOOUT (passthru)
292 #define HSDIO_RepeaterConfig_PRIM_AUDIO_SEC_MUTE 1
294 // Primary output audio muted, Secondary output audio enabled
295 // Audio portion of upstream EDID made from Secondary downstream EDID when
296 // Audio Routing is HSDIOIN_HSDIOOUT (passthru)
297 #define HSDIO_RepeaterConfig_PRIM_MUTE_SEC_AUDIO 2
299 // Primary output audio enabled, Secondary output audio enabled
300 // Audio portion of upstream EDID made from Primary downstream EDID when
301 // Audio Routing is HSDIOIN_HSDIOOUT (passthru)
302 #define HSDIO_RepeaterConfig_PRIM_AUDIO_SEC_FOLLOW 3
304 // Primary output audio enabled, Secondary output audio enabled
305 // Audio portion of upstream EDID made from Secondary downstream EDID when
306 // Audio Routing is HSDIOIN_HSDIOOUT (passthru)
307 #define HSDIO_RepeaterConfig_PRIM_FOLLOW_SEC_AUDIO 4
309 #define HSDIO_RepeaterConfig_UNKNOWN 0xff
313 // Note: this also determines how EDID data is presented to upstream devices
316 // ****************************************************************************
317 // ***** System Configuration Change GO (implement) (1 byte)
318 // ****************************************************************************
319 #define HSDIO_SYS_CFG_GO 0xCA00,0x1700
322 // ****************************************************************************
323 // ***** Output Timing Selection (1 byte)
324 // ****************************************************************************
325 #define HSDIO_OUTPUT_TIMING(nn) 0xCA00,0x2000+(nn&0xff)
326 #define HSDIO_GET_OUTPUT_TIMING 0xC200,0x2000
327 #define HSDIO_OUTPUT_TIMING_STS 0xC201,0x2000
329 /* Note that not all of these video timing formats are supported by HSDIO */
330 /* For a list of supported video formats, see the software documentation */
331 #define HSDIO_VideoTmg_NULL 0 /**< Not a valid format... */
332 #define HSDIO_VideoTmg_NO_CHANGE 0 /**< ...or no change required */
333 #define HSDIO_VideoTmg_MIN 1 /**< Lowest valid format */
334 #define HSDIO_VideoTmg_TV_MIN 1 /**< Lowest valid TV format */
335 #define HSDIO_VideoTmg_01_640x480p_60Hz 1
336 #define HSDIO_VideoTmg_02_720x480p_60Hz 2
337 #define HSDIO_VideoTmg_03_720x480p_60Hz 3
338 #define HSDIO_VideoTmg_04_1280x720p_60Hz 4
339 #define HSDIO_VideoTmg_05_1920x1080i_60Hz 5
340 #define HSDIO_VideoTmg_06_720x480i_60Hz 6
341 #define HSDIO_VideoTmg_07_720x480i_60Hz 7
342 #define HSDIO_VideoTmg_08_720x240p_60Hz 8
343 #define HSDIO_VideoTmg_09_720x240p_60Hz 9
344 #define HSDIO_VideoTmg_10_2880x480i_60Hz 10
345 #define HSDIO_VideoTmg_11_2880x480i_60Hz 11
346 #define HSDIO_VideoTmg_12_2880x240p_60Hz 12
347 #define HSDIO_VideoTmg_13_2880x240p_60Hz 13
348 #define HSDIO_VideoTmg_14_1440x480p_60Hz 14
349 #define HSDIO_VideoTmg_15_1440x480p_60Hz 15
350 #define HSDIO_VideoTmg_16_1920x1080p_60Hz 16
351 #define HSDIO_VideoTmg_17_720x576p_50Hz 17
352 #define HSDIO_VideoTmg_18_720x576p_50Hz 18
353 #define HSDIO_VideoTmg_19_1280x720p_50Hz 19
354 #define HSDIO_VideoTmg_20_1920x1080i_50Hz 20
355 #define HSDIO_VideoTmg_21_720x576i_50Hz 21
356 #define HSDIO_VideoTmg_22_720x576i_50Hz 22
357 #define HSDIO_VideoTmg_23_720x288p_50Hz 23
358 #define HSDIO_VideoTmg_24_720x288p_50Hz 24
359 #define HSDIO_VideoTmg_25_2880x576i_50Hz 25
360 #define HSDIO_VideoTmg_26_2880x576i_50Hz 26
361 #define HSDIO_VideoTmg_27_2880x288p_50Hz 27
362 #define HSDIO_VideoTmg_28_2880x288p_50Hz 28
363 #define HSDIO_VideoTmg_29_1440x576p_50Hz 29
364 #define HSDIO_VideoTmg_30_1440x576p_50Hz 30
365 #define HSDIO_VideoTmg_31_1920x1080p_50Hz 31
366 #define HSDIO_VideoTmg_32_1920x1080p_24Hz 32
367 #define HSDIO_VideoTmg_33_1920x1080p_25Hz 33
368 #define HSDIO_VideoTmg_34_1920x1080p_30Hz 34
369 #define HSDIO_VideoTmg_35_2880x480p_60Hz 35
370 #define HSDIO_VideoTmg_36_2880x480p_60Hz 36
371 #define HSDIO_VideoTmg_37_2880x576p_50Hz 37
372 #define HSDIO_VideoTmg_38_2880x576p_50Hz 38
373 #define HSDIO_VideoTmg_39_1920x1080i_50Hz 39 /* 1250 total */
374 #define HSDIO_VideoTmg_40_1920x1080i_100Hz 40
375 #define HSDIO_VideoTmg_41_1280x720p_100Hz 41
376 #define HSDIO_VideoTmg_42_720x576p_100Hz 42
377 #define HSDIO_VideoTmg_43_720x576p_100Hz 43
378 #define HSDIO_VideoTmg_44_720x576i_100Hz 44
379 #define HSDIO_VideoTmg_45_720x576i_100Hz 45
380 #define HSDIO_VideoTmg_46_1920x1080i_120Hz 46
381 #define HSDIO_VideoTmg_47_1280x720p_120Hz 47
382 #define HSDIO_VideoTmg_48_720x480p_120Hz 48
383 #define HSDIO_VideoTmg_49_720x480p_120Hz 49
384 #define HSDIO_VideoTmg_50_720x480i_120Hz 50
385 #define HSDIO_VideoTmg_51_720x480i_120Hz 51
386 #define HSDIO_VideoTmg_52_720x576p_200Hz 52
387 #define HSDIO_VideoTmg_53_720x576p_200Hz 53
388 #define HSDIO_VideoTmg_54_720x576i_200Hz 54
389 #define HSDIO_VideoTmg_55_720x576i_200Hz 55
390 #define HSDIO_VideoTmg_56_720x480p_240Hz 56
391 #define HSDIO_VideoTmg_57_720x480p_240Hz 57
392 #define HSDIO_VideoTmg_58_720x480i_240Hz 58
393 #define HSDIO_VideoTmg_59_720x480i_240Hz 59
394 #define HSDIO_VideoTmg_60_1280x720p_24Hz 60
395 #define HSDIO_VideoTmg_61_1280x720p_25Hz 61
396 #define HSDIO_VideoTmg_62_1280x720p_30Hz 62
397 #define HSDIO_VideoTmg_63_1920x1080p_120Hz 63
398 #define HSDIO_VideoTmg_64_1920x1080p_100Hz 64
399 #define HSDIO_VideoTmg_TV_MAX 64 /**< Highest valid TV format */
400 #define HSDIO_VideoTmg_TV_NUM 65 /**< Number of TV formats & null */
401 #define HSDIO_VideoTmg_PC_MIN 128 /**< Lowest valid PC format */
402 #define HSDIO_VideoTmg_PC_640x480p_60Hz 128
403 #define HSDIO_VideoTmg_PC_800x600p_60Hz 129
404 #define HSDIO_VideoTmg_PC_1152x960p_60Hz 130
405 #define HSDIO_VideoTmg_PC_1024x768p_60Hz 131
406 #define HSDIO_VideoTmg_PC_1280x768p_60Hz 132
407 #define HSDIO_VideoTmg_PC_1280x1024p_60Hz 133
408 #define HSDIO_VideoTmg_PC_1360x768p_60Hz 134
409 #define HSDIO_VideoTmg_PC_1400x1050p_60Hz 135
410 #define HSDIO_VideoTmg_PC_1600x1200p_60Hz 136
411 #define HSDIO_VideoTmg_PC_1024x768p_70Hz 137
412 #define HSDIO_VideoTmg_PC_640x480p_72Hz 138
413 #define HSDIO_VideoTmg_PC_800x600p_72Hz 139
414 #define HSDIO_VideoTmg_PC_640x480p_75Hz 140
415 #define HSDIO_VideoTmg_PC_1024x768p_75Hz 141
416 #define HSDIO_VideoTmg_PC_800x600p_75Hz 142
417 #define HSDIO_VideoTmg_PC_1024x864p_75Hz 143
418 #define HSDIO_VideoTmg_PC_1280x1024p_75Hz 144
419 #define HSDIO_VideoTmg_PC_640x350p_85Hz 145
420 #define HSDIO_VideoTmg_PC_640x400p_85Hz 146
421 #define HSDIO_VideoTmg_PC_720x400p_85Hz 147
422 #define HSDIO_VideoTmg_PC_640x480p_85Hz 148
423 #define HSDIO_VideoTmg_PC_800x600p_85Hz 149
424 #define HSDIO_VideoTmg_PC_1024x768p_85Hz 150
425 #define HSDIO_VideoTmg_PC_1152x864p_85Hz 151
426 #define HSDIO_VideoTmg_PC_1280x960p_85Hz 152
427 #define HSDIO_VideoTmg_PC_1280x1024p_85Hz 153
428 #define HSDIO_VideoTmg_PC_1024x768i_87Hz 154
429 #define HSDIO_VideoTmg_PC_800x600p_56Hz 155
430 #define HSDIO_VideoTmg_PC_1152x864p_70Hz 156
431 #define HSDIO_VideoTmg_PC_1152x864p_75Hz 157
432 #define HSDIO_VideoTmg_PC_1280x960p_60Hz 158
433 #define HSDIO_VideoTmg_PC_1280x960p_75Hz 159
434 #define HSDIO_VideoTmg_PC_MAX 159 /**< Highest valid PC format */
435 #define HSDIO_VideoTmg_PC_NUM (1+(159-128)) /**< Number of PC formats */
436 #define HSDIO_VideoTmg_FORCE_PASS_THROUGH 0xFC /**< Pass Through the input timing to output */
437 #define HSDIO_VideoTmg_PASS_THROUGH 0xFD /**< Pass Through the input timing to output if supported by output */
438 #define HSDIO_VideoTmg_AUTO 0xFE /**< Automatic selection */
439 #define HSDIO_VideoTmg_UNSUPPORTED 0xFF
442 // ****************************************************************************
443 // ***** Output Resolution Status (2 bytes)
444 // ****************************************************************************
445 // horizontal resolution (size)
446 #define HSDIO_OUTPUT_H_RES_STS 0xC301,0x0022
447 // vertical resolution (size)
448 #define HSDIO_OUTPUT_V_RES_STS 0xC301,0x0024
451 // ****************************************************************************
452 // ***** Audio Master Clock (1 byte)
453 // ****************************************************************************
454 #define HSDIO_AUDIO_MCLK_TO_HOST(nn) 0xCA00,0x3000+(nn&0xff)
455 #define HSDIO_GET_AUDIO_MCLK_TO_HOST 0xC200,0x3000
456 #define HSDIO_AUDIO_MCLK_TO_HOST_STS 0xC201,0x3000
458 #define HSDIO_AudioMClk_AUTO 0
459 #define HSDIO_AudioMClk_64X 2
460 #define HSDIO_AudioMClk_128X 1
461 #define HSDIO_AudioMClk_256X 3
462 #define HSDIO_AudioMClk_384X 4
463 #define HSDIO_AudioMClk_512X 5
464 #define HSDIO_AudioMClk_UNKNOWN 0xff
467 // ****************************************************************************
468 // ***** Audio Format Output to Host Cmd/Sts (1 byte)
469 // ****************************************************************************
470 #define HSDIO_AUDIO_FORMAT_TO_HOST(nn) 0xCA00,0x3100+(nn&0xff)
471 #define HSDIO_GET_AUDIO_FORMAT_TO_HOST 0xC200,0x3100
472 #define HSDIO_AUDIO_FORMAT_TO_HOST_STS 0xC201,0x3100
474 #define HSDIO_AudioFmt_SPDIF 0
475 #define HSDIO_AudioFmt_I2S 1
476 #define HSDIO_AudioFmt_DSD 2 // also known as one bit audio
477 #define HSDIO_AudioFmt_DST 3
478 #define HSDIO_AudioFmt_HBR 4
479 #define HSDIO_AudioFmt_UNKNOWN 0xff
482 // ****************************************************************************
483 // ***** Audio Sample Size to Host Cmd/Sts (1 byte)
484 // ****************************************************************************
485 //#define HSDIO_AUDIO_SAMPLE_SIZE_TO_HOST(nn) 0xCA00,0x3200+(nn&0xff)
486 //#define HSDIO_GET_AUDIO_SAMPLE_SIZE_TO_HOST 0xC200,0x3200
487 #define HSDIO_AUDIO_SAMPLE_SIZE_TO_HOST_STS 0xC201,0x3200
489 #define HSDIO_AudioSampleSize_RESERVED 0
490 #define HSDIO_AudioSampleSize_16 1
491 #define HSDIO_AudioSampleSize_20 2
492 #define HSDIO_AudioSampleSize_24 3
493 #define HSDIO_AudioSampleSize_32 4
494 #define HSDIO_AudioSampleSize_UNKNOWN 0xff
497 // ****************************************************************************
498 // ***** Audio UnMute Delay Cmd/Sts (1 byte)
499 // ****************************************************************************
500 #define HSDIO_AUDIO_UNMUTE_DELAY_TO_HOST(nn) 0xCA00,0x3300+(nn&0xff)
501 #define HSDIO_GET_AUDIO_UNMUTE_DELAY_TO_HOST 0xC200,0x3300
502 #define HSDIO_AUDIO_UNMUTE_DELAY_TO_HOST_STS 0xC201,0x3300
504 #define HSDIO_AudioUnMuteDelay_NO_DELAY 0
505 #define HSDIO_AudioUnMuteDelay_SHORT_DELAY 1
506 #define HSDIO_AudioUnMuteDelay_MEDIUM_DELAY 2
507 #define HSDIO_AudioUnMuteDelay_LONG_DELAY 3
508 #define HSDIO_AudioUnMuteDelay_UNKNOWN 0xff
511 // ****************************************************************************
512 // ***** Implement audio commands (causes audio format, sample size, unmute delay, and force 128x MClk to be implemented)
513 // ****************************************************************************
514 #define HSDIO_IMPLEMENT_AUDIO_TO_HOST_CMDS 0xCA00,0x3700
517 // ****************************************************************************
518 // ***** Audio Present in Stream Status (1 byte)
519 // ****************************************************************************
520 #define HSDIO_AUDIO_INPUT_PRESENT_STS 0xC201,0x3800
522 #define HSDIO_AudioPresent_HAS_NO_AUDIO 0
523 #define HSDIO_AudioPresent_HAS_AUDIO 1
524 #define HSDIO_AudioPresent_UNKNOWN 0xff
527 // ****************************************************************************
528 // ***** Audio Error Status (1 byte)
529 // ****************************************************************************
530 #define HSDIO_AUDIO_INPUT_ERROR_STS 0xC201,0x3900
532 #define HSDIO_AudioErr_NO_ERROR 0
533 #define HSDIO_AudioErr_AUDIO_FIFO_FAILURE 1
534 #define HSDIO_AudioErr_AUDIO_NO_VIDEO_SYNC 2
535 #define HSDIO_AudioErr_AUDIO_AVMUTED 3
536 #define HSDIO_AudioErr_AUDIO_NO_PLL_LOCK 4
537 #define HSDIO_AudioErr_AUDIO_NO_AUDIO 5
538 #define HSDIO_AudioErr_UNKNOWN 0xff
541 // ****************************************************************************
542 // ***** Sample Frequency Status (1 byte)
543 // ****************************************************************************
544 #define HSDIO_AUDIO_INPUT_FREQ_STS 0xC201,0x3A00
546 #define HSDIO_AudioFreq_RESERVED 0
547 #define HSDIO_AudioFreq_32K 1
548 #define HSDIO_AudioFreq_44_1K 2
549 #define HSDIO_AudioFreq_48K 3
550 #define HSDIO_AudioFreq_88_2K 4
551 #define HSDIO_AudioFreq_96K 5
552 #define HSDIO_AudioFreq_176_4K 6
553 #define HSDIO_AudioFreq_192K 7
554 #define HSDIO_AudioFreq_UNKNOWN 0xff
557 // ****************************************************************************
558 // ***** Layout Status (1 byte)
559 // ****************************************************************************
560 #define HSDIO_AUDIO_INPUT_LAYOUT_STS 0xC201,0x3B00
562 #define HSDIO_AudioLayout_2 0 /* 2 channels */
563 #define HSDIO_AudioLayout_MULTIPLE 1 /* up to 8 channels */
564 #define HSDIO_AudioLayout_UNKNOWN 0xff
567 // ****************************************************************************
568 // ***** Master Clock Frequency Status (1 byte)
569 // ****************************************************************************
570 //#define HSDIO_AUDIO_INPUT_MASTER_CLK_STS 0xC201,0x3C00
572 //#define HSDIO_AudioMstrClk_AUTO 0
573 //#define HSDIO_AudioMstrClk_64X 1
574 //#define HSDIO_AudioMstrClk_128X 2
575 //#define HSDIO_AudioMstrClk_256X 3
576 //#define HSDIO_AudioMstrClk_384X 4
577 //#define HSDIO_AudioMstrClk_512X 5
578 //#define HSDIO_AudioMstrClk_UNKNOWN 0xff
581 // ****************************************************************************
582 // ***** Sample Packet Type Status (1 byte)
583 // ****************************************************************************
584 #define HSDIO_AUDIO_INPUT_SAMPLE_PACKET_STS 0xC201,0x3C00
586 #define HSDIO_AudioSamplePacket_PCM_OR_COMPRESSED 1
587 #define HSDIO_AudioSamplePacket_HIGH_BIT_RATE 2
588 #define HSDIO_AudioSamplePacket_DSD 3
589 #define HSDIO_AudioSamplePacket_DST 4
590 #define HSDIO_AudioSamplePacket_UNKNOWN 0xff
593 // ****************************************************************************
594 // ***** Internal Mute Status (1 byte)
595 // ****************************************************************************
596 #define HSDIO_AUDIO_INPUT_INTERNAL_MUTE_STS 0xC201,0x3D00
598 #define HSDIO_AudioMute_OFF 0
599 #define HSDIO_AudioMute_ON 1
600 #define HSDIO_AudioMute_UNKNOWN 0xff
603 // ****************************************************************************
604 // NOTE: Aux Info is also known as Audio Infoframe data from CEA-861-D
605 // ****************************************************************************
607 // ****************************************************************************
608 // ***** Aux Info: Information Received Status (1 byte)
609 // ****************************************************************************
610 #define HSDIO_AUDIO_INPUT_AUX_INFO_RECEIVED_STS 0xC201,0x4000
612 #define HSDIO_AudioAuxInfo_RECEIVED 1
613 #define HSDIO_AudioAuxInfo_NOT_RECEIVED 0
616 // ****************************************************************************
617 // ***** Aux Info: Coding Status (1 byte)
618 // ****************************************************************************
619 #define HSDIO_AUDIO_INPUT_AUX_CODING_STS 0xC201,0x4100
621 /* // values specified in CEA861E section 6.6.1, CT0-CT3 */
622 /* // NOTE: data is right justified within status byte from HSDIO */
625 // ****************************************************************************
626 // ***** Aux Info: Channel Count Status (1 byte)
627 // ****************************************************************************
628 #define HSDIO_AUDIO_INPUT_AUX_CHANNEL_CNT_STS 0xC201,0x4200
630 /* // values specified in CEA861E, section 6.6.1, CC0-CC2 */
631 /* // NOTE: data is right justified within status byte from HSDIO */
634 // ****************************************************************************
635 // ***** Aux Info: Sampling Frequency Status (1 byte)
636 // ****************************************************************************
637 #define HSDIO_AUDIO_INPUT_AUX_SAMPLING_FREQ_STS 0xC201,0x4300
639 /* // values specified in CEA861E, section 6.6.1, SF0-SF2 */
640 /* // NOTE: data is right justified within status byte from HSDIO */
643 // ****************************************************************************
644 // ***** Aux Info: Sample Size Status (1 byte)
645 // ****************************************************************************
646 #define HSDIO_AUDIO_INPUT_AUX_SAMPLE_SIZE_STS 0xC201,0x4400
648 /* // values specified in CEA861E, section 6.6.1, SS0-SS1 */
649 /* // NOTE: data is right justified within status byte from HSDIO */
652 // ****************************************************************************
653 // ***** Aux Info: Speaker Mapping Status (1 byte)
654 // ****************************************************************************
655 #define HSDIO_AUDIO_INPUT_AUX_SPEAKER_MAPPING_STS 0xC201,0x4500
657 /* // values specified in CEA861E, section 6.6.2 */
660 // ****************************************************************************
661 // ***** Aux Info: Level Shift Status (1 byte)
662 // ****************************************************************************
663 #define HSDIO_AUDIO_INPUT_AUX_LEVEL_SHIFT_STS 0xC201,0x4600
665 /* // values specified in CEA861E, section 6.6.2, LSV0-LSV3 */
666 /* // NOTE: data is right justified within status byte from HSDIO */
669 // ****************************************************************************
670 // ***** Aux Info: Downmix Inhibit Status (1 byte)
671 // ****************************************************************************
672 #define HSDIO_AUDIO_INPUT_AUX_DOWNMIX_INHIBIT_STS 0xC201,0x4700
674 /* // values specified in CEA861E, section 6.6.2, DM_INH */
675 /* // NOTE: data is right justified within status byte from HSDIO */
678 // ****************************************************************************
679 // ***** Aux Info: Extended Coding Status (1 byte)
680 // ****************************************************************************
681 #define HSDIO_AUDIO_INPUT_AUX_EXT_CODING_STS 0xC201,0x4800
683 /* // values specified in CEA861E, section 6.6.1, CXT0-CXT4 */
684 /* // NOTE: data is right justified within status byte from HSDIO */
687 // ****************************************************************************
688 // ***** Aux Info: LFE Playback Level Status (1 byte)
689 // ****************************************************************************
690 #define HSDIO_AUDIO_INPUT_AUX_LFE_PLAYBACK_LEVEL_STS 0xC201,0x4900
692 /* // values specified in CEA861E, section 6.6.2, LFEPBL0-LFEPBL1 */
693 /* // NOTE: data is right justified within status byte from HSDIO */
697 // ****************************************************************************
698 // ***** Input Channel Status Data
699 // ****************************************************************************
701 // ****************************************************************************
702 // ***** Channel Status: Information Received
703 // ****************************************************************************
704 #define HSDIO_AUDIO_INPUT_CHSTS_INFO_RECEIVED_STS 0xC201,0x5000
706 #define HSDIO_AudioChSts_RECEIVED 1
707 #define HSDIO_AudioChSts_NOT_RECEIVED 0
709 // ****************************************************************************
710 // ***** Channel Status: Raw Data Status
711 // ****************************************************************************
712 #define HSDIO_AUDIO_INPUT_CHSTS_0_STS 0xC201,0x5100
713 #define HSDIO_AUDIO_INPUT_CHSTS_1_STS 0xC201,0x5200
714 #define HSDIO_AUDIO_INPUT_CHSTS_2_STS 0xC201,0x5300
715 #define HSDIO_AUDIO_INPUT_CHSTS_3_STS 0xC201,0x5400
716 #define HSDIO_AUDIO_INPUT_CHSTS_4_STS 0xC201,0x5500
717 #define HSDIO_AUDIO_INPUT_CHSTS_5_STS 0xC201,0x5600
719 #define HSDIO_AUDIO_INPUT_CHSTS_SIZE 6
720 #define HSDIO_AUDIO_INPUT_CHSTS_STS \
721 0xC506,0x0001,0x0051,HSDIO_AUDIO_INPUT_CHSTS_SIZE
729 /* ************************************************************************************************ */
730 /* // ***** Rx Input Packets */
731 /* ************************************************************************************************ */
733 /* Input Packet Change */
734 #define HSDIO_INPUT_PKT_CHANGE_STS 0xC405,0x0010
735 /* bit masks */
736 #define HSDIO_INPUT_PKT_CHANGE_AVI_msk 0x00000001
737 #define HSDIO_INPUT_PKT_CHANGE_AIF_msk 0x00000002
738 #define HSDIO_INPUT_PKT_CHANGE_ACP_msk 0x00000004
739 #define HSDIO_INPUT_PKT_CHANGE_ISRC1_msk 0x00000008
740 #define HSDIO_INPUT_PKT_CHANGE_ISRC2_msk 0x00000010
741 #define HSDIO_INPUT_PKT_CHANGE_SPD_msk 0x00000020
742 #define HSDIO_INPUT_PKT_CHANGE_GBD_msk 0x00000040
746 /* Read all Valid status flags in a single alpha command */
747 #define HSDIO_INPUT_PKT_VALID_SIZE 8
748 #define HSDIO_INPUT_PKT_VALID_STS \
749 0xC506,0x0005,0x0000,HSDIO_INPUT_PKT_VALID_SIZE
751 #define HSDIO_INPUT_PKT_VALID_AVI_ndx 0
752 #define HSDIO_INPUT_PKT_VALID_AIF_ndx 1
753 #define HSDIO_INPUT_PKT_VALID_ACP_ndx 2
754 #define HSDIO_INPUT_PKT_VALID_ISRC1_ndx 3
755 #define HSDIO_INPUT_PKT_VALID_ISRC2_ndx 4
756 #define HSDIO_INPUT_PKT_VALID_SPD_ndx 5
757 #define HSDIO_INPUT_PKT_VALID_GBD_ndx 6
760 /* ************************************************************************************************ */
761 /* ***** Auxilliary Video Information (AVI) */
762 /* ************************************************************************************************ */
763 #define HSDIO_INPUT_PKT_AVI_SIZE 16
765 #define HSDIO_INPUT_PKT_AVI_VALID_STS 0xC205,0x0000
767 #define HSDIO_INPUT_PKT_AVI_STS \
768 0xC506,0x0005,0x0020,HSDIO_INPUT_PKT_AVI_SIZE
770 /* ************************************************************************************************ */
771 /* ***** Audio Info Frame (AIF) */
772 /* ************************************************************************************************ */
773 #define HSDIO_INPUT_PKT_AIF_SIZE 14
775 #define HSDIO_INPUT_PKT_AIF_VALID_STS 0xC205,0x0100
777 #define HSDIO_INPUT_PKT_AIF_STS \
778 0xC506,0x0005,0x0040,HSDIO_INPUT_PKT_AIF_SIZE
780 /* ************************************************************************************************ */
781 /* ***** Audio Content Protection (ACP) */
782 /* ************************************************************************************************ */
783 #define HSDIO_INPUT_PKT_ACP_SIZE 32
785 #define HSDIO_INPUT_PKT_ACP_VALID_STS 0xC205,0x0200
787 #define HSDIO_INPUT_PKT_ACP_STS \
788 0xC506,0x0005,0x0060,HSDIO_INPUT_PKT_ACP_SIZE
790 /* ************************************************************************************************ */
791 /* ***** International Standard Recording Code 1 (ISRC1) */
792 /* ************************************************************************************************ */
793 #define HSDIO_INPUT_PKT_ISRC1_SIZE 32
795 #define HSDIO_INPUT_PKT_ISRC1_VALID_STS 0xC205,0x0300
797 #define HSDIO_INPUT_PKT_ISRC1_STS \
798 0xC506,0x0005,0x0080,HSDIO_INPUT_PKT_ISRC1_SIZE
800 /* ************************************************************************************************ */
801 /* ***** International Standard Recording Code 2 (ISRC2) */
802 /* ************************************************************************************************ */
803 #define HSDIO_INPUT_PKT_ISRC2_SIZE 32
805 #define HSDIO_INPUT_PKT_ISRC2_VALID_STS 0xC205,0x0400
807 #define HSDIO_INPUT_PKT_ISRC2_STS \
808 0xC506,0x0005,0x00A0,HSDIO_INPUT_PKT_ISRC2_SIZE
810 /* ************************************************************************************************ */
811 /* ***** Source Product Descriptor (SPD) */
812 /* ************************************************************************************************ */
813 #define HSDIO_INPUT_PKT_SPD_SIZE 28
815 #define HSDIO_INPUT_PKT_SPD_VALID_STS 0xC205,0x0500
817 #define HSDIO_INPUT_PKT_SPD_STS \
818 0xC506,0x0005,0x00C0,HSDIO_INPUT_PKT_SPD_SIZE
820 /* ************************************************************************************************ */
821 /* ***** Gamut Metadata Boundary description (GBD) */
822 /* ************************************************************************************************ */
823 #define HSDIO_INPUT_PKT_GBD_SIZE 32
825 #define HSDIO_INPUT_PKT_GBD_VALID_STS 0xC205,0x0600
827 #define HSDIO_INPUT_PKT_GBD_STS \
828 0xC506,0x0005,0x00E0,HSDIO_INPUT_PKT_GBD_SIZE
837 // ****************************************************************************
838 // ***** Audio Output Configuration
839 // ****************************************************************************
841 // ****************************************************************************
842 // ***** Audio Output Valid going to HSDIO (1 byte)
843 // ****************************************************************************
844 #define HSDIO_AUDIO_OUTPUT_PRESENT(nn) 0xCA00,0x6000+(nn&0xff)
845 #define HSDIO_GET_AUDIO_OUTPUT_PRESENT 0xC200,0x6000
847 // data same as definitions HSDIO_AudioPresent_xxx above
850 // ****************************************************************************
851 // ***** Audio Output Format to HSDIO
852 // ****************************************************************************
853 #define HSDIO_AUDIO_OUTPUT_FORMAT(nn) 0xCA00,0x6100+(nn&0xff)
854 #define HSDIO_GET_AUDIO_OUTPUT_FORMAT 0xC200,0x6100
856 // data same as definitions HSDIO_AudioFmt_xxx above
859 // ****************************************************************************
860 // ***** Audio Output Sample Size to HSDIO Cmd/Sts (1 byte)
861 // ****************************************************************************
862 #define HSDIO_AUDIO_OUTPUT_SAMPLE_SIZE(nn) 0xCA00,0x6200+(nn&0xff)
863 #define HSDIO_GET_AUDIO_OUTPUT_SAMPLE_SIZE 0xC200,0x6200
865 // data same as definitions HSDIO_AudioSampleSize_xxx above
868 // ****************************************************************************
869 // ***** Audio Output Frequency to HSDIO (1 byte)
870 // ****************************************************************************
871 #define HSDIO_AUDIO_OUTPUT_FREQ(nn) 0xCA00,0x6300+(nn&0xff)
872 #define HSDIO_GET_AUDIO_OUTPUT_FREQ 0xC200,0x6300
874 // data same as definitions HSDIO_AudioFreq_xxx above
877 // ****************************************************************************
878 // ***** Audio Output Layout to HSDIO (1 byte)
879 // ****************************************************************************
880 #define HSDIO_AUDIO_OUTPUT_LAYOUT(nn) 0xCA00,0x6400+(nn&0xff)
881 #define HSDIO_GET_AUDIO_OUTPUT_LAYOUT 0xC200,0x6400
883 // data same as definitions HSDIO_AudioLayout_xxx above
886 // ****************************************************************************
887 // ***** Audio Output Sample Packet Type to HSDIO (1 byte)
888 // ****************************************************************************
889 // NOTE: THIS COMMAND IS NO LONGER SUPPORTED AND WILL BE DELETED IN THE NEXT RELEASE
890 #define HSDIO_AUDIO_OUTPUT_SAMPLE_PACKET(nn) 0xCA00,0x6500+(nn&0xff)
891 #define HSDIO_GET_AUDIO_OUTPUT_SAMPLE_PACKET 0xC200,0x6500
893 // data same as definitions HSDIO_AudioSamplePacket_xxx above
896 // ****************************************************************************
897 // ***** Audio Output Sample Packet Type to HSDIO (1 byte)
898 // ****************************************************************************
899 #define HSDIO_AUDIO_OUTPUT_MCLK(nn) 0xCA00,0x6600+(nn&0xff)
900 #define HSDIO_GET_AUDIO_OUTPUT_MCLK 0xC200,0x6600
902 // data same as definitions HSDIO_AudioMClk_xxx above.
905 // ****************************************************************************
906 // NOTE: Aux Info is also known as Audio Infoframe data from CEA-861-D
907 // ****************************************************************************
909 // ****************************************************************************
910 // ***** Aux Info: Coding Status (1 byte)
911 // ****************************************************************************
912 #define HSDIO_AUDIO_OUTPUT_AUX_CODING(nn) 0xCA00,0x6800+(nn&0xff)
913 #define HSDIO_GET_AUDIO_OUTPUT_AUX_CODING 0xC200,0x6800
915 /* // values specified in CEA861D section 6.6.1, CT0-CT3 */
916 /* // NOTE: data should be right justified within command byte to HSDIO */
919 // ****************************************************************************
920 // ***** Aux Info: Channel Count (1 byte)
921 // ****************************************************************************
922 #define HSDIO_AUDIO_OUTPUT_AUX_CHANNEL_CNT(nn) 0xCA00,0x6900+(nn&0xff)
923 #define HSDIO_GET_AUDIO_OUTPUT_AUX_CHANNEL_CNT 0xC200,0x6900
925 /* // values specified in CEA861D, section 6.6.1, CC0-CC2 */
926 /* // NOTE: data should be right justified within command byte to HSDIO */
929 // ****************************************************************************
930 // ***** Aux Info: Sampling Frequency (1 byte)
931 // ****************************************************************************
932 #define HSDIO_AUDIO_OUTPUT_AUX_SAMPLING_FREQ(nn) 0xCA00,0x6A00+(nn&0xff)
933 #define HSDIO_GET_AUDIO_OUTPUT_AUX_SAMPLING_FREQ 0xC200,0x6A00
935 /* // values specified in CEA861D, section 6.6.1, SF0-SF2 */
936 /* // NOTE: data should be right justified within command byte to HSDIO */
939 // ****************************************************************************
940 // ***** Aux Info: Sample Size (1 byte)
941 // ****************************************************************************
942 #define HSDIO_AUDIO_OUTPUT_AUX_SAMPLE_SIZE(nn) 0xCA00,0x6B00+(nn&0xff)
943 #define HSDIO_GET_AUDIO_OUTPUT_AUX_SAMPLE_SIZE 0xC200,0x6B00
945 /* // values specified in CEA861D, section 6.6.1, SS0-SS1 */
946 /* // NOTE: data should be right justified within command byte to HSDIO */
949 // ****************************************************************************
950 // ***** Aux Info: Speaker Mapping (1 byte)
951 // ****************************************************************************
952 #define HSDIO_AUDIO_OUTPUT_AUX_SPEAKER_MAPPING(nn) 0xCA00,0x6C00+(nn&0xff)
953 #define HSDIO_GET_AUDIO_OUTPUT_AUX_SPEAKER_MAPPING 0xC200,0x6C00
955 /* // values specified in CEA861D, section 6.6.2 */
958 // ****************************************************************************
959 // ***** Aux Info: Level Shift (1 byte)
960 // ****************************************************************************
961 #define HSDIO_AUDIO_OUTPUT_AUX_LEVEL_SHIFT(nn) 0xCA00,0x6D00+(nn&0xff)
962 #define HSDIO_GET_AUDIO_OUTPUT_AUX_LEVEL_SHIFT 0xC200,0x6D00
964 /* // values specified in CEA861D, section 6.6.2, LSV0-LSV3 */
965 /* // NOTE: data should be right justified within command byte to HSDIO */
968 // ****************************************************************************
969 // ***** Aux Info: Downmix Inhibit (1 byte)
970 // ****************************************************************************
971 #define HSDIO_AUDIO_OUTPUT_AUX_DOWNMIX_INHIBIT(nn) 0xCA00,0x6E00+(nn&0xff)
972 #define HSDIO_GET_AUDIO_OUTPUT_AUX_DOWNMIX_INHIBIT 0xC200,0x6E00
974 /* // values specified in CEA861D, section 6.6.2, DM_INH */
975 /* // NOTE: data should be right justified within command byte to HSDIO */
978 // ****************************************************************************
979 // ***** Aux Info: Extended Coding Status (1 byte)
980 // ****************************************************************************
981 #define HSDIO_AUDIO_OUTPUT_AUX_EXT_CODING(nn) 0xCA00,0x6F00+(nn&0xff)
982 #define HSDIO_GET_AUDIO_OUTPUT_AUX_EXT_CODING 0xC200,0x6F00
984 /* // values specified in CEA861E section 6.6.1, CXT0-CXT4 */
985 /* // NOTE: data should be right justified within command byte to HSDIO */
988 // ****************************************************************************
989 // ***** Aux Info: LFE Playback Level (1 byte)
990 // ****************************************************************************
991 #define HSDIO_AUDIO_OUTPUT_AUX_LFE_PLAYBACK_LVL(nn) 0xCA00,0x7000+(nn&0xff)
992 #define HSDIO_GET_AUDIO_OUTPUT_AUX_LFE_PLAYBACK_LVL 0xC200,0x7000
994 /* // values specified in CEA861E, section 6.6.2, LFEPBL0-LFEPBL1 */
995 /* // NOTE: data should be right justified within command byte to HSDIO */
999 // ****************************************************************************
1000 // ***** Output Channel Status Data
1001 // ****************************************************************************
1002 #define HSDIO_AUDIO_OUTPUT_CHSTS_PCM_PREEMPHASIS(nn) 0xCA00,0x7800+(nn&0xff)
1003 #define HSDIO_AUDIO_OUTPUT_CHSTS_COPYRIGHT(nn) 0xCA00,0x7900+(nn&0xff)
1004 #define HSDIO_AUDIO_OUTPUT_CHSTS_CATEGORY_CODE(nn) 0xCA00,0x7A00+(nn&0xff)
1005 #define HSDIO_AUDIO_OUTPUT_CHSTS_WORD_LENGTH(nn) 0xCA00,0x7B00+(nn&0xff)
1007 #define HSDIO_GET_AUDIO_OUTPUT_CHSTS_PCM_PREEMPHASIS 0xC200,0x7800
1008 #define HSDIO_GET_AUDIO_OUTPUT_CHSTS_COPYRIGHT 0xC200,0x7900
1009 #define HSDIO_GET_AUDIO_OUTPUT_CHSTS_CATEGORY_CODE 0xC200,0x7A00
1010 #define HSDIO_GET_AUDIO_OUTPUT_CHSTS_WORD_LENGTH 0xC200,0x7B00
1013 #define HSDIO_CSFormatInfo_PCM_NO_PRE 0
1014 #define HSDIO_CSFormatInfo_PCM_PRE 1
1015 #define HSDIO_CSFormatInfo_NOTPCM 4
1017 #define HSDIO_CSCopyright_PROTECTED 0
1018 #define HSDIO_CSCopyright_UNPROTECTED 1
1020 #define HSDIO_CSWordLength_MAX_20 0x0
1021 #define HSDIO_CSWordLength_MAX_24 0x1
1022 #define HSDIO_CSWordLength_16 0x2
1023 #define HSDIO_CSWordLength_17 0xC
1024 #define HSDIO_CSWordLength_18 0x4
1025 #define HSDIO_CSWordLength_19 0x8
1026 #define HSDIO_CSWordLength_20 0xA
1027 #define HSDIO_CSWordLength_21 0xD
1028 #define HSDIO_CSWordLength_22 0x5
1029 #define HSDIO_CSWordLength_23 0x9
1030 #define HSDIO_CSWordLength_24 0xB
1033 // ****************************************************************************
1034 // ***** Audio Output Configuration GO (tells HSDIO to process all audio output parameters)
1035 // ****************************************************************************
1036 #define HSDIO_AUDIO_OUTPUT_GO 0xCA00,0x7F00
1040 // ****************************************************************************
1041 // ***** Input Configuration
1042 // ****************************************************************************
1044 // ****************************************************************************
1045 // ***** Input Sync Status
1046 // ****************************************************************************
1047 #define HSDIO_INPUT_SYNC_STS 0xC201,0x9000
1049 #define HSDIO_InSync_SYNC_LOSS 0
1050 #define HSDIO_InSync_SYNC_DETECTED 1
1051 #define HSDIO_InSync_UNKNOWN 0xff
1054 // ****************************************************************************
1055 // ***** Input Timing Status
1056 // ****************************************************************************
1057 #define HSDIO_INPUT_TIMING_STS 0xC201,0x9100
1059 // data same as definitions HSDIO_VideoTmg_xxx above
1062 // ****************************************************************************
1063 // ***** Input Copy Protection Status
1064 // ****************************************************************************
1065 #define HSDIO_INPUT_COPY_PROTECTION_STS 0xC201,0x9200
1067 #define HSDIO_CopyProtection_NONE 0
1068 #define HSDIO_CopyProtection_HDCP 1
1069 #define HSDIO_CopyProtection_MACROVISION 2
1070 #define HSDIO_CopyProtection_AUTO 128
1071 #define HSDIO_CopyProtection_ON 129
1072 #define HSDIO_CopyProtection_UNKNOWN 0xff
1075 // ****************************************************************************
1076 // ***** Input Source Type Status
1077 // ****************************************************************************
1078 #define HSDIO_INPUT_SOURCE_TYPE_STS 0xC201,0x9300
1080 #define HSDIO_SourceType_DVI 1
1081 #define HSDIO_SourceType_HDMI 2
1082 #define HSDIO_SourceType_COMPONENT 3
1083 #define HSDIO_SourceType_VGA 4
1084 #define HSDIO_Sourcetype_COMPOSITE 5
1085 #define HSDIO_SourceType_SVIDEO 6
1086 #define HSDIO_SourceType_UNKNOWN 0xff
1089 // ****************************************************************************
1090 // ***** Input Color Space Status
1091 // ****************************************************************************
1092 #define HSDIO_INPUT_COLOR_SPACE_STS 0xC201,0x9400
1094 #define HSDIO_ColorSpace_AUTO 0
1095 #define HSDIO_ColorSpace_RGB 1
1096 #define HSDIO_ColorSpace_YCbCr 2
1097 #define HSDIO_ColorSpace_XVYCC 3
1098 #define HSDIO_ColorSpace_UNKNOWN 0xff
1101 // ****************************************************************************
1102 // ***** Input Color Space Detailed Status
1103 // ****************************************************************************
1104 #define HSDIO_INPUT_COLOR_SPACE_DETAILED_STS 0xC201,0x9500
1106 #define HSDIO_ColorSpaceDtl_AUTO 0
1107 #define HSDIO_ColorSpaceDtl_RGB_FULL 1
1108 #define HSDIO_ColorSpaceDtl_RGB_LIMITED 2
1109 #define HSDIO_ColorSpaceDtl_YCbCr_709 3
1110 #define HSDIO_ColorSpaceDtl_YCbCr_601 4
1111 #define HSDIO_ColorSpaceDtl_XVYCC_709 5
1112 #define HSDIO_ColorSpaceDtl_XVYCC_601 6
1113 #define HSDIO_ColorSpaceDtl_UNKNOWN 0xff
1116 // ****************************************************************************
1117 // ***** Input Color Depth Status
1118 // ****************************************************************************
1119 #define HSDIO_INPUT_COLOR_DEPTH_STS 0xC201,0x9600
1121 #define HSDIO_ColorDepth_AUTO 0
1122 #define HSDIO_ColorDepth_8_BIT 8
1123 #define HSDIO_ColorDepth_10_BIT 10
1124 #define HSDIO_ColorDepth_12_BIT 12
1125 #define HSDIO_ColorDepth_16_BIT 16
1126 #define HSDIO_ColorDepth_NA 0xfe // not applicable
1127 #define HSDIO_ColorDepth_UNKNOWN 0xff
1130 // ****************************************************************************
1131 // ***** Input Video Mode Status
1132 // ****************************************************************************
1133 #define HSDIO_INPUT_VIDEO_MODE_STS 0xC201,0x9700
1135 #define HSDIO_VideoMode_AUTO 0
1136 #define HSDIO_VideoMode_656 1
1137 #define HSDIO_VideoMode_444 2
1138 #define HSDIO_VideoMode_422 3
1139 #define HSDIO_VideoMode_NA 0xfe // not applicable
1140 #define HSDIO_VideoMode_UNKNOWN 0xff
1143 // ****************************************************************************
1144 // ***** Input AV Mute Status
1145 // ****************************************************************************
1146 #define HSDIO_INPUT_AVMUTE_STS 0xC201,0x9800
1148 #define HSDIO_AvMute_OFF 0
1149 #define HSDIO_AvMute_ON 1
1150 #define HSDIO_AvMute_UNKNOWN 0xff
1153 // ****************************************************************************
1154 // ***** Input EQ Setting (1 byte)
1155 // ****************************************************************************
1156 #define HSDIO_INPUT_EQ_SETTING(nn) 0xCA00,0x9A00+(nn&0xff)
1157 #define HSDIO_GET_INPUT_EQ_SETTING 0xC200,0x9A00
1159 #define HSDIO_EqSetting_AUTO 0
1160 #define HSDIO_EqSetting_LO 1
1161 #define HSDIO_EqSetting_MED_LO 2
1162 #define HSDIO_EqSetting_MED 3
1163 #define HSDIO_EqSetting_MED_HI 4
1164 #define HSDIO_EqSetting_HI 5
1165 #define HSDIO_EqSetting_UNKNOWN 0xff
1168 // ****************************************************************************
1169 // ***** Input Pixel Repetition Status
1170 // ****************************************************************************
1171 #define HSDIO_INPUT_PIXEL_REP_STS 0xC201,0x9B00
1173 /* 0=no repetition, 1=2x, 2=3x, 3=4x etc. */
1176 // ****************************************************************************
1177 // ***** Video Processing Configuration
1178 // ****************************************************************************
1180 // ****************************************************************************
1181 // ***** Display Mode (1 byte)
1182 // ****************************************************************************
1183 // was VIDPROC_DISPLAY_MODE
1184 #define HSDIO_DISPLAY_MODE(nn) 0xCA00,0xA000+(nn&0xff)
1185 #define HSDIO_GET_DISPLAY_MODE 0xC200,0xA000
1186 #define HSDIO_DISPLAY_MODE_STS 0xC201,0xA000
1188 #define HSDIO_ImageDisplayMode_OFF 0
1189 #define HSDIO_ImageDisplayMode_LIVE 1
1190 #define HSDIO_ImageDisplayMode_FREEZE_FRAME 2
1191 #define HSDIO_ImageDisplayMode_FLAT_FRAME 3
1192 #define HSDIO_ImageDisplayMode_UNKNOWN 0xff
1195 // ****************************************************************************
1196 // ***** Aspect Ratio (1 byte)
1197 // ****************************************************************************
1198 #define HSDIO_ASPECT_RATIO(nn) 0xCA00,0xA200+(nn&0xff)
1199 #define HSDIO_GET_ASPECT_RATIO 0xC200,0xA200
1200 #define HSDIO_ASPECT_RATIO_STS 0xC201,0xA200
1202 #define HSDIO_AspectRatio_ANAMORPHIC 0 // linear horizontal stretch
1203 #define HSDIO_AspectRatio_PANAROMIC 1 // LR sides stretched more than middle
1204 #define HSDIO_AspectRatio_LETTERBOX 2 // keep aspect ratio with bars as necessary
1205 #define HSDIO_AspectRatio_EXTRACT 3 // image zoomed to remove bars
1206 #define HSDIO_AspectRatio_THROUGH 4 // image passes through without scaling
1209 // ****************************************************************************
1210 // ***** Aspect Ratio Pan/Tilt/Crop/Zoom settings (2 bytes)
1211 // ****************************************************************************
1212 #define HSDIO_CROPZOOM_HORIZONTAL_SIZE(nn) 0xCB00,0x00A3,0x0000+(nn) // data range 1 to 100, nominal 100
1213 #define HSDIO_GET_CROPZOOM_HORIZONTAL_SIZE 0xC300,0x00A3
1214 #define HSDIO_CROPZOOM_HORIZONTAL_SIZE_STS 0xC301,0x00A3
1216 #define HSDIO_CROPZOOM_VERTICAL_SIZE(nn) 0xCB00,0x00A5,0x0000+(nn) // data range 1 to 100, nominal 100
1217 #define HSDIO_GET_CROPZOOM_VERTICAL_SIZE 0xC300,0x00A5
1218 #define HSDIO_CROPZOOM_VERTICAL_SIZE_STS 0xC301,0x00A5
1220 #define HSDIO_PAN_HORIZONTAL_POS(nn) 0xCB00,0x00A7,0x0000+(nn) // data range 0 to 100, nominal 50
1221 #define HSDIO_GET_PAN_HORIZONTAL_POS 0xC300,0x00A7
1222 #define HSDIO_PAN_HORIZONTAL_POS_STS 0xC301,0x00A7
1224 #define HSDIO_TILT_VERTICAL_POS(nn) 0xCB00,0x00A9,0x0000+(nn) // data range 0 to 100, nominal 50
1225 #define HSDIO_GET_TILT_VERTICAL_POS 0xC300,0x00A9
1226 #define HSDIO_TILT_VERTICAL_POS_STS 0xC301,0x00A9
1229 #define HSDIO_PTCZ_GO 0xCA00,0xAB00 // implements the image size and position settings
1232 // ****************************************************************************
1233 // ***** Detail Level (1 byte)
1234 // ****************************************************************************
1235 #define HSDIO_DETAIL_LEVEL(nn) 0xCA00,0xAC00+(nn&0xff) // data range 0 to 100
1236 #define HSDIO_GET_DETAIL_LEVEL 0xC200,0xAC00
1237 #define HSDIO_DETAIL_LEVEL_STS 0xC201,0xAC00
1240 // ****************************************************************************
1241 // ***** Detail Threshold (1 byte)
1242 // ****************************************************************************
1243 #define HSDIO_DETAIL_THRESHOLD(nn) 0xCA00,0xAD00+(nn&0xff) // data range 0 to 100
1244 #define HSDIO_GET_DETAIL_THRESHOLD 0xC200,0xAD00
1245 #define HSDIO_DETAIL_THRESHOLD_STS 0xC201,0xAD00
1248 // ****************************************************************************
1249 // ***** Noise Reduction (1 byte)
1250 // ****************************************************************************
1251 #define HSDIO_NOISE_REDUCTION(nn) 0xCA00,0xAE00+(nn&0xff) // data range 0 to 100
1252 #define HSDIO_GET_NOISE_REDUCTION 0xC200,0xAE00
1253 #define HSDIO_NOISE_REDUCTION_STS 0xC201,0xAE00
1256 // ****************************************************************************
1257 // ***** Image Density (1 byte)
1258 // ****************************************************************************
1259 #define HSDIO_IMAGE_DENSITY(nn) 0xCA00,0xAF00+(nn&0xff)
1260 #define HSDIO_GET_IMAGE_DENSITY 0xC200,0xAF00
1261 #define HSDIO_IMAGE_DENSITY_STS 0xC201,0xAF00
1263 #define HSDIO_IMAGE_DENSITY_MIN 0
1264 #define HSDIO_IMAGE_DENSITY_MAX 100
1265 #define HSDIO_IMAGE_DENSITY_NORMAL HSDIO_IMAGE_DENSITY_MAX
1268 // ****************************************************************************
1269 // ***** Output Video Processing Position/Size (2 bytes)
1270 // ****************************************************************************
1271 // NOTE: size and position limits are dependent on output resolution
1273 // 2 bytes
1274 // data range 0 to output horizontal resolution
1275 #define HSDIO_HORIZONTAL_SIZE(nn) 0xCB00,0x00B0,0x0000+(nn)
1276 #define HSDIO_GET_HORIZONTAL_SIZE 0xC300,0x00B0
1277 #define HSDIO_HORIZONTAL_SIZE_STS 0xC301,0x00B0
1279 // 2 bytes
1280 // data range 0 to output vertical resolution
1281 #define HSDIO_VERTICAL_SIZE(nn) 0xCB00,0x00B2,0x0000+(nn)
1282 #define HSDIO_GET_VERTICAL_SIZE 0xC300,0x00B2
1283 #define HSDIO_VERTICAL_SIZE_STS 0xC301,0x00B2
1285 // 2 bytes
1286 // data range 0 to output horizontal resolution
1287 #define HSDIO_HORIZONTAL_POS(nn) 0xCB00,0x00B4,0x0000+(nn)
1288 #define HSDIO_GET_HORIZONTAL_POS 0xC300,0x00B4
1289 #define HSDIO_HORIZONTAL_POS_STS 0xC301,0x00B4
1291 // 2 bytes
1292 // data range 0 to output vertical resolution
1293 #define HSDIO_VERTICAL_POS(nn) 0xCB00,0x00B6,0x0000+(nn)
1294 #define HSDIO_GET_VERTICAL_POS 0xC300,0x00B6
1295 #define HSDIO_VERTICAL_POS_STS 0xC301,0x00B6
1297 // 1 byte
1298 #define HSDIO_VIDPSZ_IMG_GO 0xCA00,0xB800 // implements the image size and position settings
1301 // ****************************************************************************
1302 // ***** DeInterlacer InterFrame Motion Detection Threshold (1 byte)
1303 // ****************************************************************************
1304 #define HSDIO_DI_IFMD_THRESHOLD(nn) 0xCA00,0xBD00+(nn&0xff) // data range 4 to 6
1305 #define HSDIO_GET_DI_IFMD_THRESHOLD 0xC200,0xBD00
1306 #define HSDIO_DI_IFMD_THRESHOLD_STS 0xC201,0xBD00
1309 // ****************************************************************************
1310 // ***** Film Mode Cadence Status (1 byte)
1311 // ****************************************************************************
1312 #define HSDIO_DI_FILM_MODE_CADENCE_SEQ_STS 0xC201,0xBE00
1314 #define HSDIO_FilmModeCadence_NP 0
1315 #define HSDIO_FilmModeCadence_3_2 1
1316 #define HSDIO_FilmModeCadence_2_2 2
1317 #define HSDIO_FilmModeCadence_UNKNOWN 0xff
1319 // ****************************************************************************
1320 // ***** Film Mode Pull Down Status (1 byte)
1321 // ****************************************************************************
1322 #define HSDIO_DI_FILM_MODE_PULL_DOWN_STS 0xC201,0xBF00
1326 // ****************************************************************************
1327 // ***** Video Processing Brightness/Contrast Settings (2 bytes each)
1328 // ****************************************************************************
1329 #define HSDIO_BRIGHTNESS_RED(nn) 0xCB00,0x00C0,0x0000+(nn) // data range 0 to 2047, nominal 1024
1330 #define HSDIO_GET_BRIGHTNESS_RED 0xC300,0x00C0
1331 #define HSDIO_BRIGHTNESS_RED_STS 0xC301,0x00C0
1333 #define HSDIO_BRIGHTNESS_GREEN(nn) 0xCB00,0x00C2,0x0000+(nn) // data range 0 to 2047, nominal 1024
1334 #define HSDIO_GET_BRIGHTNESS_GREEN 0xC300,0x00C2
1335 #define HSDIO_BRIGHTNESS_GREEN_STS 0xC301,0x00C2
1337 #define HSDIO_BRIGHTNESS_BLUE(nn) 0xCB00,0x00C4,0x0000+(nn) // data range 0 to 2047, nominal 1024
1338 #define HSDIO_GET_BRIGHTNESS_BLUE 0xC300,0x00C4
1339 #define HSDIO_BRIGHTNESS_BLUE_STS 0xC301,0x00C4
1341 #define HSDIO_BRIGHTNESS_GO 0xCA00,0xC600 // implement brightness settings above
1343 #define HSDIO_MIN_BRIGHTNESS 0
1344 #define HSDIO_MAX_BRIGHTNESS 2047
1346 #define HSDIO_CONTRAST_RED(nn) 0xCB00,0x00C7,0x0000+(nn) // data range 0 to 2047, nominal 1024
1347 #define HSDIO_GET_CONTRAST_RED 0xC300,0x00C7
1348 #define HSDIO_CONTRAST_RED_STS 0xC301,0x00C7
1350 #define HSDIO_CONTRAST_GREEN(nn) 0xCB00,0x00C9,0x0000+(nn) // data range 0 to 2047, nominal 1024
1351 #define HSDIO_GET_CONTRAST_GREEN 0xC300,0x00C9
1352 #define HSDIO_CONTRAST_GREEN_STS 0xC301,0x00C9
1354 #define HSDIO_CONTRAST_BLUE(nn) 0xCB00,0x00CB,0x0000+(nn) // data range 0 to 2047, nominal 1024
1355 #define HSDIO_GET_CONTRAST_BLUE 0xC300,0x00CB
1356 #define HSDIO_CONTRAST_BLUE_STS 0xC301,0x00CB
1358 #define HSDIO_CONTRAST_GO 0xCA00,0xCD00 // implement contrast settings above
1360 #define HSDIO_MIN_CONTRAST 0
1361 #define HSDIO_MAX_CONTRAST 2047
1365 // ****************************************************************************
1366 // ***** Manufacturer Splash Screen OSD
1367 // ****************************************************************************
1368 #define HSDIO_OSD_MFR_SPLASH_SCREEN_OFF 0xCA00,0xE000
1370 #define HSDIO_OSD_MFR_SPLASH_SCREEN_ON 0xCA00,0xE001 // OSD will timeout and clear from screen automatically
1372 // ****************************************************************************
1373 // ***** Timing Info OSD
1374 // ****************************************************************************
1375 #define HSDIO_OSD_TMG_INFO_OFF 0xCA00,0xE100
1377 #define HSDIO_OSD_TMG_INFO_ON 0xCA00,0xE101 // OSD will timeout and clear from screen automatically
1383 // ****************************************************************************
1384 // ***** CEC Enable Control (1 byte)
1385 // ****************************************************************************
1386 #define HSDIO_CEC_ENABLE(nn) 0xCA00,0xE400+(nn&0xff)
1387 #define HSDIO_GET_CEC_ENABLE 0xC200,0xE400
1388 #define HSDIO_CEC_ENABLE_STS 0xC201,0xE400
1390 #define HSDIO_CEC_ENABLE_SWITCH_msk 0x01
1391 #define HSDIO_CEC_ENABLE_AMP_msk 0x02
1393 // ****************************************************************************
1394 // ***** CEC Amp Volume Setting (1 byte)
1395 // ***** Note: A value of 0 indicates No Sound
1396 // ****************************************************************************
1397 #define HSDIO_CEC_AMP_VOLUME(nn) 0xCA00,0xE500+(nn&0xff)
1398 #define HSDIO_GET_CEC_AMP_VOLUME 0xC200,0xE500
1400 #define HSDIO_CEC_AMP_VOLUME_MIN 0
1401 #define HSDIO_CEC_AMP_VOLUME_MAX 0x64
1403 // ****************************************************************************
1404 // ***** CEC Amp Mute Setting (1 byte)
1405 // ****************************************************************************
1406 #define HSDIO_CEC_AMP_MUTE(nn) 0xCA00,0xE600+(nn&0xff)
1407 #define HSDIO_GET_CEC_AMP_MUTE 0xC200,0xE600
1409 /* define elsewhere, here for convenience
1410 #define HSDIO_AudioMute_OFF 0
1411 #define HSDIO_AudioMute_ON 1
1412 */
1414 // ****************************************************************************
1415 // ***** CEC System Audio Mode Setting (1 byte)
1416 // ****************************************************************************
1417 #define HSDIO_CEC_SYS_AUDIO_MODE(nn) 0xCA00,0xE700+(nn&0xff)
1418 #define HSDIO_GET_CEC_SYS_AUDIO_MODE 0xC200,0xE700
1419 #define HSDIO_CEC_SYS_AUDIO_MODE_STS 0xC201,0xE700
1421 #define HSDIO_CecSysAudioMode_OFF 0
1422 #define HSDIO_CecSysAudioMode_ON 1
1424 // ****************************************************************************
1425 // ***** CEC Input Mode Setting (1 byte)
1426 // ****************************************************************************
1427 #define HSDIO_CEC_INPUT_MODE_STS 0xC201,0xE800
1429 #define HSDIO_CecInputMode_HDMI 0
1430 #define HSDIO_CecInputMode_TV 1
1432 // ****************************************************************************
1433 // ***** CEC System Power State (1 byte)
1434 // ****************************************************************************
1435 #define HSDIO_CEC_SYS_POWER_STATE(nn) 0xCA00,0xE900+(nn&0xff)
1436 #define HSDIO_GET_CEC_SYS_POWER_STATE 0xC200,0xE900
1438 #define HSDIO_CecPowerState_ON 0
1439 #define HSDIO_CecPowerState_STANDBY 1
1440 #define HSDIO_CecPowerState_STANDBY_TO_ON 2
1441 #define HSDIO_CecPowerState_ON_TO_STANDBY 3
1443 // ****************************************************************************
1444 // ***** CEC Key Status (1 byte)
1445 // ****************************************************************************
1446 #define HSDIO_CEC_KEY_STS 0xC201,0xEA00
1448 // these key definition values defined by HDMI Spec 1.3a
1449 #define HSDIO_CEC_KEY_VOLUME_UP 0x41
1450 #define HSDIO_CEC_KEY_VOLUME_DOWN 0x42
1451 #define HSDIO_CEC_KEY_MUTE 0x43
1452 #define HSDIO_CEC_KEY_AV_INPUT 0x69
1453 #define HSDIO_CEC_KEY_AUDIO_INPUT 0x6A
1454 #define HSDIO_CEC_KEY_POWER_TOGGLE 0x6B
1455 #define HSDIO_CEC_KEY_POWER_OFF 0x6C
1456 #define HSDIO_CEC_KEY_POWER_ON 0x6D
1458 // ****************************************************************************
1459 // ***** CEC Key Operand Status (1 byte)
1460 // ****************************************************************************
1461 #define HSDIO_CEC_KEY_OPERAND_STS 0xC201,0xEB00
1464 // ****************************************************************************
1465 // ***** CEC Event Status (2 byte)
1466 // ****************************************************************************
1467 //#define HSDIO_CEC_EVENT_STS 0xC201,0xE800
1468 #define HSDIO_CEC_EVENT_STS 0xC301,0x00EC
1470 #define HSDIO_CEC_ENABLE_CHANGED_msk 0x01
1471 #define HSDIO_CEC_SYS_AUDIO_MODE_CHANGED_msk 0x02
1472 #define HSDIO_CEC_INPUT_MODE_CHANGED_msk 0x04
1473 #define HSDIO_CEC_EVENT_KEY_PRESS_msk 0x08
1474 #define HSDIO_CEC_EVENT_KEY_RELEASE_msk 0x10
1475 #define HSDIO_CEC_EVENT_STANDBY_msk 0x20
1482 // ****************************************************************************
1483 // ***** Output Port Commands
1484 // these commands require a port number parameter.
1485 // Port Numbers are assigned below
1486 // ****************************************************************************
1487 #define HSDIO_OUTPUT_PORT_HDMI_1 0x10
1488 #define HSDIO_OUTPUT_PORT_HDMI_2 0x12
1489 #define HSDIO_OUTPUT_PORT_HD_ANA 0x14
1491 // ****************************************************************************
1492 // ***** Output Sink Detect Status (1 byte)
1493 // ****************************************************************************
1494 #define HSDIO_OUTPUT_SINK_DETECT_STS(port) 0xC200+(port+1),0x0000
1496 #define HSDIO_SinkDetect_NOT_DETECTED 0
1497 #define HSDIO_SinkDetect_DETECTED 1
1498 #define HSDIO_SinkDetect_SENSED 2
1499 #define HSDIO_SinkDetect_DETECTED_SENSED 3
1500 #define HSDIO_SinkDetect_UNKNOWN 0xff
1502 // ****************************************************************************
1503 // ***** Output Sink Type (1 byte)
1504 // ****************************************************************************
1505 #define HSDIO_OUTPUT_SINK_TYPE(port,nn) 0xCA00+(port),0x0100+(nn&0xff)
1506 #define HSDIO_GET_OUTPUT_SINK_TYPE(port) 0xC200+(port),0x0100
1507 #define HSDIO_OUTPUT_SINK_TYPE_STS(port) 0xC200+(port+1),0x0100
1509 #define HSDIO_SinkType_AUTO 0
1510 #define HSDIO_SinkType_DVI 1
1511 #define HSDIO_SinkType_HDMI 2
1512 #define HSDIO_SinkType_COMPONENT 3
1513 #define HSDIO_SinkType_VGA 4
1514 #define HSDIO_SinkType_COMPOSITE 5
1515 #define HSDIO_SinkType_SVIDEO 6
1516 #define HSDIO_SinkType_UNKNOWN 0xff // detected but not known
1519 // ****************************************************************************
1520 // ***** Output Color Space (1 byte)
1521 // ****************************************************************************
1522 #define HSDIO_OUTPUT_COLOR_SPACE(port,nn) 0xCA00+(port),0x0200+(nn&0xff)
1523 #define HSDIO_GET_OUTPUT_COLOR_SPACE(port) 0xC200+(port),0x0200
1524 #define HSDIO_OUTPUT_COLOR_SPACE_STS(port) 0xC200+(port+1),0x0200
1526 // data same as definitions HSDIO_ColorSpace_xxx above
1529 // ****************************************************************************
1530 // ***** Output Color Space Detail (1 byte)
1531 // ****************************************************************************
1532 #define HSDIO_OUTPUT_COLOR_SPACE_DTL(port,nn) 0xCA00+(port),0x0300+(nn&0xff)
1533 #define HSDIO_GET_OUTPUT_COLOR_SPACE_DTL(port) 0xC200+(port),0x0300
1534 #define HSDIO_OUTPUT_COLOR_SPACE_DTL_STS(port) 0xC200+(port+1),0x0300
1536 // data same as definitions HSDIO_ColorSpaceDtl_xxx above
1539 // ****************************************************************************
1540 // ***** Output Color Depth (1 byte)
1541 // ****************************************************************************
1542 #define HSDIO_OUTPUT_COLOR_DEPTH(port,nn) 0xCA00+(port),0x0400+(nn&0xff)
1543 #define HSDIO_GET_OUTPUT_COLOR_DEPTH(port) 0xC200+(port),0x0400
1544 #define HSDIO_OUTPUT_COLOR_DEPTH_STS(port) 0xC200+(port+1),0x0400
1546 // data same as definitions HSDIO_ColorDepth_xxx above
1549 // ****************************************************************************
1550 // ***** Output Video Mode (1 byte)
1551 // ****************************************************************************
1552 #define HSDIO_OUTPUT_VIDEO_MODE(port,nn) 0xCA00+(port),0x0500+(nn&0xff)
1553 #define HSDIO_GET_OUTPUT_VIDEO_MODE(port) 0xC200+(port),0x0500
1554 #define HSDIO_OUTPUT_VIDEO_MODE_STS(port) 0xC200+(port+1),0x0500
1556 // data same as definitions HSDIO_VideoMode_xxx above
1559 // ****************************************************************************
1560 // ***** Output Copy Protection (1 byte)
1561 // ****************************************************************************
1562 #define HSDIO_OUTPUT_COPY_PROTECTION(port,nn) 0xCA00+(port),0x0600+(nn&0xff)
1563 #define HSDIO_GET_OUTPUT_COPY_PROTECTION(port) 0xC200+(port),0x0600
1564 #define HSDIO_OUTPUT_COPY_PROTECTION_STS(port) 0xC200+(port+1),0x0600
1566 // data same as definitions HSDIO_CopyProtection_xxx above
1569 // ****************************************************************************
1570 // ***** Output Timing Format Error Status (1 byte)
1571 // ****************************************************************************
1572 // NO LONGER SUPPORTED
1573 //#define HSDIO_OUTPUT_TIMING_FORMAT_ERROR_STS(port) 0xC200+(port+1),0x0700
1575 //#define HSDIO_TimingFormatError_NO_ERROR 0
1576 //#define HSDIO_TimingFormatError_ERROR 1
1577 //#define HSDIO_TimingFormatError_UNKNOWN 0xff
1579 // ****************************************************************************
1580 // ***** Output State Status (1 byte)
1581 // ****************************************************************************
1582 #define HSDIO_OUTPUT_STATE_STS(port) 0xC200+(port+1),0x0700
1584 #define HSDIO_OutputState_POWER_DOWN 0
1585 #define HSDIO_OutputState_IDLE 1
1586 #define HSDIO_OutputState_VIDEO_NO_CP 2
1587 #define HSDIO_OutputState_VIDEO_AVMUTE 3
1588 #define HSDIO_OutputState_CP_AUTHENTICATING 4
1589 #define HSDIO_OutputState_VIDEO_CP 5
1590 #define HSDIO_OutputState_VIDEO_CP_ERR_AV_MUTED 6
1591 #define HSDIO_OutputState_UNKNOWN 0xff
1594 // ****************************************************************************
1595 // ***** Output Port Type Status (1 byte)
1596 // ****************************************************************************
1597 #define HSDIO_OUTPUT_PORT_TYPE_STS(port) 0xC200+(port+1),0x0800
1599 #define HSDIO_PortType_NOT_PRESENT 0
1600 #define HSDIO_PortType_HDMI 1
1601 #define HSDIO_PortType_DVI 2
1602 #define HSDIO_PortType_COMPONENT 3
1603 #define HSDIO_PortType_VGA 4
1604 #define HSDIO_PortType_COMPONENT_VGA 5
1605 #define HSDIO_PortType_S_VIDEO 6
1606 #define HSDIO_PortType_COMPOSITE 7
1607 #define HSDIO_PortType_EXTERNAL 8
1608 #define HSDIO_PortType_UNKNOWN 0xff
1611 // ****************************************************************************
1612 // ***** Output Port 5V Supply Overcurrent Status (1 byte)
1613 // ****************************************************************************
1614 #define HSDIO_OUTPUT_5V_SUPPLY_OVC_STS(port) 0xC200+(port+1),0x0900
1616 #define HSDIO_Boolean_FALSE 0
1617 #define HSDIO_Boolean_TRUE 1
1620 // ****************************************************************************
1621 // ***** Output Port HDCP Error Status (1 byte)
1622 // ****************************************************************************
1623 #define HSDIO_OUTPUT_HDCP_ERROR_STS(port) 0xC200+(port+1),0x0A00
1625 #define HSDIO_HdcpError_NONE 0
1626 #define HSDIO_HdcpError_BAD_BKSV 1
1627 #define HSDIO_HdcpError_RI_MISMATCH 2
1628 #define HSDIO_HdcpError_PJ_MISMATCH 3
1629 #define HSDIO_HdcpError_I2C_ERROR 4
1630 #define HSDIO_HdcpError_REP_DONE_TIMEOUT 5
1631 #define HSDIO_HdcpError_MAX_CASCADE_EXCEEDED 6
1632 #define HSDIO_HdcpError_V_DASH_CHECK_FAILED 7
1633 #define HSDIO_HdcpError_MAX_DEVICE_EXCEEDED 8
1634 #define HSDIO_HdcpError_UNKNOWN 0xff
1637 // ****************************************************************************
1638 // ***** Output Preferred Video Timing Status (1 byte)
1639 // ****************************************************************************
1640 #define HSDIO_OUTPUT_PREFERRED_VIDEO_TMG_STS(port) 0xC200+(port+1),0x0B00
1642 // status returned is a video timing format HSDIO_VideoTmg_...
1645 // ****************************************************************************
1646 // ***** Output Native Video Timing Status (1 byte)
1647 // ***** 4 native settings are available
1648 // ****************************************************************************
1649 #define HSDIO_OUTPUT_NATIVE_VIDEO_TMG_STS(port) 0xC200+(port+1),0x0C00
1650 #define HSDIO_OUTPUT_NATIVE_VIDEO_TMG2_STS(port) 0xC200+(port+1),0x0D00
1651 #define HSDIO_OUTPUT_NATIVE_VIDEO_TMG3_STS(port) 0xC200+(port+1),0x0E00
1652 #define HSDIO_OUTPUT_NATIVE_VIDEO_TMG4_STS(port) 0xC200+(port+1),0x0F00
1654 // status returned is a video timing format HSDIO_VideoTmg_...
1657 // ****************************************************************************
1658 // ***** Output EDID Video Timing Status (32 bytes)
1659 // ****************************************************************************
1660 /*
1661 need explanation of how this data is formatted
1662 */
1664 // read a single byte at offset nn
1665 #define HSDIO_OUTPUT_EDID_VIDEO_TIMING_STS(port,nn) 0xC200+(port+1),0x1000+(nn<<8)
1667 // read an array of bytes
1668 #define HSDIO_OUTPUT_EDID_VIDEO_TIMING_BFR_SIZE 32
1669 #define HSDIO_OUTPUT_EDID_VIDEO_TIMING_BFR_STS(port) \
1670 0xC506,(port+1),0x0010,HSDIO_OUTPUT_EDID_VIDEO_TIMING_BFR_SIZE
1674 // ****************************************************************************
1675 // ***** Output Audio Valid Status (1 byte)
1676 // ****************************************************************************
1677 #define HSDIO_AUDIO_OUTPUT_PRESENT_STS(port) 0xC200+(port+1),0x3000
1679 // data same as definitions HSDIO_AudioPresent_xxx above
1681 // ****************************************************************************
1682 // ***** Output Audio Error Status (1 byte)
1683 // ****************************************************************************
1684 #define HSDIO_AUDIO_OUTPUT_ERROR_STS(port) 0xC200+(port+1),0x3100
1686 // data same as definitions HSDIO_AudioErr_xxx above
1688 // ****************************************************************************
1689 // ***** Output Audio Format Status (1 byte)
1690 // ****************************************************************************
1691 #define HSDIO_AUDIO_OUTPUT_FORMAT_STS(port) 0xC200+(port+1),0x3200
1693 // data same as definitions HSDIO_AudioFmt_xxx above
1695 // ****************************************************************************
1696 // ***** Output Audio Sample Size Status (1 byte)
1697 // ****************************************************************************
1698 #define HSDIO_AUDIO_OUTPUT_SAMPLE_SIZE_STS(port) 0xC200+(port+1),0x3300
1700 // data same as definitions HSDIO_AudioSampleSize_xxx above
1702 // ****************************************************************************
1703 // ***** Output Audio Frequency Status (1 byte)
1704 // ****************************************************************************
1705 #define HSDIO_AUDIO_OUTPUT_FREQ_STS(port) 0xC200+(port+1),0x3400
1707 // data same as definitions HSDIO_AudioFreq_xxx above
1709 // ****************************************************************************
1710 // ***** Output Audio Layout Status (1 byte)
1711 // ****************************************************************************
1712 #define HSDIO_AUDIO_OUTPUT_LAYOUT_STS(port) 0xC200+(port+1),0x3500
1714 // data same as definitions HSDIO_AudioLayout_xxx above
1716 // ****************************************************************************
1717 // ***** Output Audio Layout Status (1 byte)
1718 // ****************************************************************************
1719 #define HSDIO_AUDIO_OUTPUT_SAMPLE_PACKET_STS(port) 0xC200+(port+1),0x3600
1721 // data same as definitions HSDIO_AudioSamplePacket_xxx above
1724 // ****************************************************************************
1725 // ***** Aux Info: Coding Status (1 byte)
1726 // ****************************************************************************
1727 #define HSDIO_AUDIO_OUTPUT_AUX_CODING_STS(port) 0xC200+(port+1),0x3800
1729 /* // values specified in CEA861D section 6.6.1, Table 17, CT0-CT3 */
1730 /* // NOTE: data is right justified within status byte from HSDIO */
1732 // ****************************************************************************
1733 // ***** Aux Info: Channel Count Status (1 byte)
1734 // ****************************************************************************
1735 #define HSDIO_AUDIO_OUTPUT_AUX_CHANNEL_CNT_STS(port) 0xC200+(port+1),0x3900
1737 /* // values specified in CEA861D, section 6.6.1, Table 17, CC0-CC2 */
1738 /* // NOTE: data is right justified within status byte from HSDIO */
1740 // ****************************************************************************
1741 // ***** Aux Info: Sampling Frequency Status (1 byte)
1742 // ****************************************************************************
1743 #define HSDIO_AUDIO_OUTPUT_AUX_SAMPLING_FREQ_STS(port) 0xC200+(port+1),0x3A00
1745 /* // values specified in CEA861D, section 6.6.1, Table 18, SF0-SF2 */
1746 /* // NOTE: data is right justified within status byte from HSDIO */
1748 // ****************************************************************************
1749 // ***** Aux Info: Sample Size Status (1 byte)
1750 // ****************************************************************************
1751 #define HSDIO_AUDIO_OUTPUT_AUX_SAMPLE_SIZE_STS(port) 0xC200+(port+1),0x3B00
1753 /* // values specified in CEA861D, section 6.6.1, Table 18, SS0-SS1 */
1754 /* // NOTE: data is right justified within status byte from HSDIO */
1756 // ****************************************************************************
1757 // ***** Aux Info: Speaker Mapping Status (1 byte)
1758 // ****************************************************************************
1759 #define HSDIO_AUDIO_OUTPUT_AUX_SPEAKER_MAPPING_STS(port) 0xC200+(port+1),0x3C00
1761 /* // values specified in CEA861D, section 6.6.2, Table 20 */
1763 // ****************************************************************************
1764 // ***** Aux Info: Level Shift Status (1 byte)
1765 // ****************************************************************************
1766 #define HSDIO_AUDIO_OUTPUT_AUX_LEVEL_SHIFT_STS(port) 0xC200+(port+1),0x3D00
1768 /* // values specified in CEA861D, section 6.6.2, Table 21, LSV0-LSV3 */
1769 /* // NOTE: data is right justified within status byte from HSDIO */
1771 // ****************************************************************************
1772 // ***** Aux Info: Downmix Inhibit Status (1 byte)
1773 // ****************************************************************************
1774 #define HSDIO_AUDIO_OUTPUT_AUX_DOWNMIX_INHIBIT_STS(port) 0xC200+(port+1),0x3E00
1776 /* // values specified in CEA861D, section 6.6.2, Table 22, DM_INH */
1777 /* // NOTE: data is right justified within status byte from HSDIO */
1779 // ****************************************************************************
1780 // ***** Aux Info: Extended Coding Status (1 byte)
1781 // ****************************************************************************
1782 #define HSDIO_AUDIO_OUTPUT_AUX_EXT_CODING_STS(port) 0xC200+(port+1),0x3F00
1784 /* // values specified in CEA861E section 6.6.1, CXT0-CXT4 */
1785 /* // NOTE: data is right justified within status byte from HSDIO */
1787 // ****************************************************************************
1788 // ***** Aux Info: LFE Playback Level (1 byte)
1789 // ****************************************************************************
1790 #define HSDIO_AUDIO_OUTPUT_AUX_LFE_PLAYBACK_LVL_STS(port) 0xC200+(port+1),0x4000
1792 /* // values specified in CEA861E, section 6.6.2, LFEPBL0-LFEPBL1 */
1793 /* // NOTE: data is right justified within status byte from HSDIO */
1797 // ****************************************************************************
1798 // ***** Channel Status
1799 // ****************************************************************************
1800 #define HSDIO_AUDIO_OUTPUT_CHSTS_0_STS(port) 0xC200+(port+1),0x4800
1801 #define HSDIO_AUDIO_OUTPUT_CHSTS_1_STS(port) 0xC200+(port+1),0x4900
1802 #define HSDIO_AUDIO_OUTPUT_CHSTS_2_STS(port) 0xC200+(port+1),0x4A00
1803 #define HSDIO_AUDIO_OUTPUT_CHSTS_3_STS(port) 0xC200+(port+1),0x4B00
1804 #define HSDIO_AUDIO_OUTPUT_CHSTS_4_STS(port) 0xC200+(port+1),0x4C00
1805 #define HSDIO_AUDIO_OUTPUT_CHSTS_5_STS(port) 0xC200+(port+1),0x4D00
1807 #define HSDIO_AUDIO_OUTPUT_CHSTS_SIZE 6
1808 #define HSDIO_AUDIO_OUTPUT_CHSTS_STS(port) \
1809 0xC506,(port+1),0x0048,HSDIO_AUDIO_OUTPUT_CHSTS_SIZE
1812 // ****************************************************************************
1813 // ***** Output EDID Audio Descriptors
1814 // ****************************************************************************
1816 #define HSDIO_OUTPUT_EDID_MAX_AUDIO_DESCRIPTORS 20
1818 /* send audio descriptor command components */
1819 /* NOTE: the descriptor parameter is the audio descriptor entry in the table,
1820 value should be between 0 and HSDIO_OUTPUT_EDID_MAX_AUDIO_DESCRIPTORS-1 */
1822 #define HSDIO_OUTPUT_EDID_AUDIO_DESC_FORMAT_STS(port,descriptor) 0xC200+(port+1),0x5000+((descriptor*4)<<8)
1824 #define HSDIO_OUTPUT_EDID_AUDIO_DESC_NUM_CHANNELS_STS(port,descriptor) 0xC200+(port+1),0x5100+((descriptor*4)<<8)
1826 #define HSDIO_OUTPUT_EDID_AUDIO_DESC_SAMPLE_RATES_STS(port,descriptor) 0xC200+(port+1),0x5200+((descriptor*4)<<8)
1828 #define HSDIO_OUTPUT_EDID_AUDIO_DESC_MISC_STS(port,descriptor) 0xC200+(port+1),0x5300+((descriptor*4)<<8)
1830 // command to read the entire array of HSDIO_OUTPUT_EDID_MAX_AUDIO_DESCRIPTORS*4 bytes
1831 #define HSDIO_OUTPUT_EDID_AUDIO_DESC_SIZE HSDIO_OUTPUT_EDID_MAX_AUDIO_DESCRIPTORS*4
1832 #define HSDIO_OUTPUT_EDID_AUDIO_DESC_STS(port) \
1833 0xC506,(port+1),0x0050,HSDIO_OUTPUT_EDID_AUDIO_DESC_SIZE
1836 // ****************************************************************************
1837 // ***** Output EDID Speaker Map (3 useful bytes)
1838 // ****************************************************************************
1839 #define HSDIO_OUTPUT_EDID_SPEAKER_MAP_SIZE 4
1840 #define HSDIO_OUTPUT_EDID_SPEAKER_MAP_STS(port) \
1841 0xC506,(port+1),0x00A0,HSDIO_OUTPUT_EDID_SPEAKER_MAP_SIZE
1844 // ****************************************************************************
1845 // ***** Output EDID Basic Audio (1 byte)
1846 // ****************************************************************************
1847 #define HSDIO_OUTPUT_EDID_BASIC_AUDIO_STS(port) 0xC200+(port+1),0xA300
1849 /* defined previously, here for reference
1850 #define HSDIO_Boolean_FALSE 0
1851 #define HSDIO_Boolean_TRUE 1
1852 */
1855 // ****************************************************************************
1856 // ***** Output Port Max TMDS Frequency (2 byte) for deep color output control
1857 // ****************************************************************************
1858 #define HSDIO_OUTPUT_MAX_TMDS_FREQ(port,nn) 0xCB00+(port),0x00A4,0x0000+(nn)
1859 #define HSDIO_GET_OUTPUT_MAX_TMDS_FREQ(port) 0xC300+(port),0x00A4
1861 /* the following tmds frequency values are suggested (values for nn)... */
1862 /* limit deep color to 1080p */
1863 #define HSDIO_MAX_TMDS_FREQ_1080P 225
1865 /* limit deep color to 720p/1080i */
1866 #define HSDIO_MAX_TMDS_FREQ_1080I 165
1868 /* disable deep color support */
1869 #define HSDIO_MAX_TMDS_FREQ_NO_DEEP_CLR 0
1872 // ****************************************************************************
1873 // ***** Output Timing Status (1 byte)
1874 // ****************************************************************************
1875 #define HSDIO_OUTPUT_TMG_STS(port) 0xC200+(port+1),0xA600
1877 /* defined previously: HSDIO_VideoTmg_... */
1880 // ****************************************************************************
1881 // ***** Output Pixel Repetition Status (1 byte)
1882 // ****************************************************************************
1883 #define HSDIO_OUTPUT_PIXEL_REP_STS(port) 0xC200+(port+1),0xA700
1885 /* 0=no repetition, 1=2x, 2=3x, 3=4x etc. */
1887 // ****************************************************************************
1888 // ***** Output EDID YCbCr Support Status (1 byte)
1889 // ****************************************************************************
1890 #define HSDIO_OUTPUT_EDID_YCBCR_STS(port) 0xC200+(port+1),0xA800
1892 #define HSDIO_OUTPUT_EDID_YCBCR_444_msk 0x01
1893 #define HSDIO_OUTPUT_EDID_YCBCR_422_msk 0x02
1896 // ****************************************************************************
1897 // ***** Output Port TMDS Drive Strength (1 byte)
1898 // ****************************************************************************
1899 #define HSDIO_OUTPUT_TMDS_DRIVE_STR(port,nn) 0xCA00+(port),0xA900+(nn&0xff)
1900 #define HSDIO_GET_OUTPUT_TMDS_DRIVE_STR(port) 0xC200+(port),0xA900
1902 #define HSDIO_OUTPUT_TMDS_DRIVE_STR_MIN 0
1903 #define HSDIO_OUTPUT_TMDS_DRIVE_STR_MAX 31
1907 // ****************************************************************************
1908 // ***** Output Port Change (1 byte)
1909 // ****************************************************************************
1910 #define HSDIO_OUTPUT_CHANGE_STS(port) 0xC200+(port+1),0xAF00
1912 /* Output port change event masks */
1913 #define HSDIO_ALERT_OUT_VIDEO_CHANGE_msk 0x01
1914 #define HSDIO_ALERT_OUT_AUDIO_CHANGE_msk 0x02
1915 #define HSDIO_ALERT_OUT_EDID_CHANGE_msk 0x04
1916 #define HSDIO_ALERT_OUT_5VSUPPLY_OVC_msk 0x08
1918 /* ************************************************************************************************ */
1919 /* // ***** EDID Information from Host */
1920 /* ************************************************************************************************ */
1922 /* ***** Speaker Allocation Cmd */
1923 #define HSDIO_EDID_SPEAKER_ALLOCATION_BLOCK(nn) 0xCA02,0x0000+(nn&0xff)
1924 #define HSDIO_GET_EDID_SPEAKER_ALLOCATION_BLOCK 0xC202,0x0000
1926 #define HSDIO_EDID_SPEAKER_ALLOCATION_BLOCK_2(nn) 0xCA02,0x0100+(nn&0xff)
1927 #define HSDIO_GET_EDID_SPEAKER_ALLOCATION_BLOCK_2 0xC202,0x0100
1929 #define HSDIO_EDID_SPEAKER_ALLOCATION_BLOCK_3(nn) 0xCA02,0x0200+(nn&0xff)
1930 #define HSDIO_GET_EDID_SPEAKER_ALLOCATION_BLOCK_3 0xC202,0x0200
1933 /* ***** Audio Descriptor Cmds */
1935 #define HSDIO_EDID_MAX_AUDIO_DESCRIPTORS 20
1936 #define HSDIO_EDID_TEXT_DESCRIPTOR_LENGTH 13
1937 #define HSDIO_EDID_TEXT_DESCRIPTOR_LENGTH_WITH_TERMINATOR (HSDIO_EDID_TEXT_DESCRIPTOR_LENGTH+1)
1938 #define HSDIO_EDID_MFR_PNP_ID_LENGTH 3
1939 #define HSDIO_EDID_MFR_PNP_ID_LENGTH_WITH_TERMINATOR (HSDIO_EDID_MFR_PNP_ID_LENGTH+1)
1941 /* send command as single 32 bit word */
1942 // not supported in this release #define HSDIO_AUDIO_DESC(descriptor,nn) 0xCC00,0x0044+(descriptor*4),(nn&0xffff),(nn>>16)
1944 /* send audio descriptor command components */
1945 /* NOTE: the descriptor parameter is the audio descriptor entry in the table,
1946 value should be between 0 and HSDIO_EDID_MAX_AUDIO_DESCRIPTORS-1 */
1948 #define HSDIO_EDID_AUDIO_DESC_FORMAT(descriptor,nn) 0xCA02,0x0400+((descriptor*4)<<8)+(nn&0xff)
1949 #define HSDIO_GET_EDID_AUDIO_DESC_FORMAT(descriptor) 0xC202,0x0400+((descriptor*4)<<8)
1951 #define HSDIO_EDID_AUDIO_DESC_NUM_CHANNELS(descriptor,nn) 0xCA02,0x0500+((descriptor*4)<<8)+(nn&0xff)
1952 #define HSDIO_GET_EDID_AUDIO_DESC_NUM_CHANNELS(descriptor) 0xC202,0x0500+((descriptor*4)<<8)
1954 #define HSDIO_EDID_AUDIO_DESC_SAMPLE_RATES(descriptor,nn) 0xCA02,0x0600+((descriptor*4)<<8)+(nn&0xff)
1955 #define HSDIO_GET_EDID_AUDIO_DESC_SAMPLE_RATES(descriptor) 0xC202,0x0600+((descriptor*4)<<8)
1957 #define HSDIO_EDID_AUDIO_DESC_MISC(descriptor,nn) 0xCA02,0x0700+((descriptor*4)<<8)+(nn&0xff)
1958 #define HSDIO_GET_EDID_AUDIO_DESC_MISC(descriptor) 0xC202,0x0700+((descriptor*4)<<8)
1960 // command to load the entire audio descriptor array
1961 // NOTE: not working yet
1962 //#define HSDIO_EDID_AUDIO_DESC_SIZE HSDIO_EDID_MAX_AUDIO_DESCRIPTORS*4
1963 //#define HSDIO_EDID_AUDIO_DESC_STS(pData) \
1964 // 0xC506,0x0002,0x0004,HSDIO_EDID_AUDIO_DESC_SIZE,pData
1968 /* ***** Manufacture Plug N Play ID (PNPID) */
1969 #define HSDIO_EDID_MFR_PNPID(str) 0xCD06,0x0002,0x0060,strlen(str)+1,str
1970 #define HSDIO_GET_EDID_MFR_PNPID 0xC506,0x0002,0x0060,HSDIO_EDID_MFR_PNP_ID_LENGTH_WITH_TERMINATOR
1972 // the following version of this command is for use in CALFA as it will add the NULL (0) at the end
1973 #define HSDIO_EDID_MFR_PNPID_CALFA(str) 0xcd06,0x0002,0x0060,strlen(str)+1,str"\0"
1976 /* ***** Product Code */
1977 #define HSDIO_EDID_PRODUCT_CODE(nn) 0xCB02,0x0064,0x0000+(nn)
1978 #define HSDIO_GET_EDID_PRODUCT_CODE 0xC302,0x0064
1981 /* ***** Short Serial Number */
1982 #define HSDIO_EDID_SHORT_SERIAL_NUMBER(nn) 0xCC02,0x0066,(nn&0xffff),(nn>>16)
1983 #define HSDIO_GET_EDID_SHORT_SERIAL_NUMBER 0xC402,0x0066
1986 /* **** Manufacture Week and Year */
1987 #define HSDIO_EDID_WEEK_OF_MFR(nn) 0xCA02,0x6A00+(nn&0xff)
1988 #define HSDIO_GET_EDID_WEEK_OF_MFR 0xC202,0x6A00
1990 #define HSDIO_EDID_YEAR_OF_MFR(nn) 0xCA02,0x6B00+(nn&0xff)
1991 #define HSDIO_GET_EDID_YEAR_OF_MFR 0xC202,0x6B00
1994 /* ***** Preferred Timing */
1995 #define HSDIO_EDID_PREFERRED_TIMING(nn) 0xCA02,0x6C00+(nn&0xff)
1996 #define HSDIO_GET_EDID_PREFERRED_TIMING 0xC202,0x6C00
1998 /* the following formats are supported for preferred timing
1999 (taken from definitions above, provided here for convenience)
2000 #define HSDIO_VideoTmg_04_1280x720p_60Hz 4
2001 #define HSDIO_VideoTmg_05_1920x1080i_60Hz 5
2002 #define HSDIO_VideoTmg_16_1920x1080p_60Hz 16
2003 #define HSDIO_VideoTmg_19_1280x720p_50Hz 19
2004 #define HSDIO_VideoTmg_20_1920x1080i_50Hz 20
2005 #define HSDIO_VideoTmg_31_1920x1080p_50Hz 31
2006 #define HSDIO_VideoTmg_32_1920x1080p_24Hz 32
2007 #define HSDIO_VideoTmg_33_1920x1080p_25Hz 33
2008 */
2011 /* ***** Audio Latency */
2012 #define HSDIO_EDID_AUDIO_LATENCY_PROGRESSIVE(nn) 0xCB02,0x0070,nn
2013 #define HSDIO_GET_EDID_AUDIO_LATENCY_PROGRESSIVE 0xC302,0x0070
2015 #define HSDIO_EDID_AUDIO_LATENCY_INTERLACED(nn) 0xCB02,0x0072,nn
2016 #define HSDIO_GET_EDID_AUDIO_LATENCY_INTERLACED 0xC302,0x0072
2020 /* ***** Maximum TMDS Frequency for Deep Color Support */
2021 #define HSDIO_EDID_MAX_TMDS_FREQ(nn) 0xCB02,0x0074,nn
2022 #define HSDIO_GET_EDID_MAX_TMDS_FREQ 0xC302,0x0074
2024 /* the following tmds frequency values are suggested (values for nn)... */
2025 /* limit deep color to 1080p */
2026 /* previously defined...
2027 #define HSDIO_MAX_TMDS_FREQ_1080P 225
2028 */
2030 /* limit deep color to 720p/1080i */
2031 /* previously defined...
2032 #define HSDIO_MAX_TMDS_FREQ_1080I 165
2033 */
2035 /* disable deep color support */
2036 /* previously defined...
2037 #define HSDIO_MAX_TMDS_FREQ_NO_DEEP_CLR 0
2038 */
2042 /* ***** Product Name */
2043 #define HSDIO_EDID_PRODUCT_NAME(str) \
2044 0xCD06,0x0002,0x0080,strlen(str)+1,str
2045 #define HSDIO_GET_EDID_PRODUCT_NAME \
2046 0xC506,0x0002,0x0080,HSDIO_EDID_TEXT_DESCRIPTOR_LENGTH_WITH_TERMINATOR
2048 // the following version of this command is for use in CALFA as it will add the NULL (0) at the end
2049 #define HSDIO_EDID_PRODUCT_NAME_CALFA(str) \
2050 0xcd06,0x0002,0x0080,strlen(str)+1,str"\0"
2053 /* Manufacture's Name */
2054 #define HSDIO_EDID_MFR_NAME(str) \
2055 0xCD06,0x0002,0x0090,strlen(str)+1,str
2056 #define HSDIO_GET_EDID_MFR_NAME \
2057 0xC506,0x0002,0x0090,HSDIO_EDID_TEXT_DESCRIPTOR_LENGTH_WITH_TERMINATOR
2059 // the following version of this command is for use in CALFA as it will add the NULL (0) at the end
2060 #define HSDIO_EDID_MFR_NAME_CALFA(str) \
2061 0xcd06,0x0002,0x0090,strlen(str)+1,str"\0"
2064 /* ***** Process EDID Values */
2065 #define HSDIO_EDID_GO 0xCA02,0xFF00
2069 /* ************************************************************************************************ */
2070 /* */
2071 /* ***** FLASHWRITER Commands */
2072 /* */
2073 /* ************************************************************************************************ */
2075 // ****************************************************************************
2076 // ***** FlashWriter Status (1 byte)
2077 // ****************************************************************************
2078 #define FLSHWR_STS 0xC201,0x8000
2079 /* in example code, the following command definition is used:
2080 #define FLASH_WRITER_STS 0xC201,0x8000
2081 */
2083 #define FLSHWR_STS_DOWNLOAD_BUSY 0
2084 #define FLSHWR_STS_DOWNLOAD_READY 1
2085 #define FLSHWR_STS_DOWNLOAD_ACK 2
2086 #define FLSHWR_STS_DOWNLOAD_INVALID_CHECKSUM 3
2087 #define FLSHWR_STS_DOWNLOAD_ERROR 4
2089 /*
2090 in example code, the following enumerated data type is used instead:
2091 typedef enum
2092 {
2093 STS_DOWNLOAD_BUSY,
2094 STS_DOWNLOAD_READY,
2095 STS_DOWNLOAD_ACK,
2096 STS_DOWNLOAD_INVALID_CHECKSUM,
2097 STS_DOWNLOAD_ERROR,
2098 } flashStatus_t;
2099 */
2101 // ****************************************************************************
2102 // ***** FlashWriter Attention (1 byte)
2103 // ****************************************************************************
2104 #define FLSHWR_ATTENTION 0xCA00,0x8800
2105 /* in example code, the following command definition is used:
2106 #define FLASH_ATTENTION 0xCA00,0x8800
2107 */
2110 // ****************************************************************************
2111 // ***** FlashWriter Download Complete (1 byte)
2112 // ****************************************************************************
2113 #define FLSHWR_DOWNLOAD_COMPLETE 0xCA00,0x8A00
2114 /* in example code, the following command definition is used:
2115 #define FLASH_DOWNLOAD_COMPLETE 0xCA00,0x8A00
2116 */
2119 // ****************************************************************************
2120 // ***** FlashWriter Start Application (1 byte)
2121 // ****************************************************************************
2122 #define FLSHWR_START_APP 0xCA00,0x8B00
2123 /* in example code, the following command definition is used:
2124 #define FLASH_START_APP 0xCA00,0x8B00
2125 */
2128 // ****************************************************************************
2129 // ***** FlashWriter Download Binary data buffer (alpha type 7)
2130 // ****************************************************************************
2131 #define FLSHWR_DOWNLOAD_BINARY(cnt,addr,pBuf) 0xCF01,cnt,addr,pBuf
2132 /* in example code, the following command definition is used:
2133 #define TYPE7_WRITE_MESSAGE_CODE 0xCF01
2134 */
2136 /* maximum number of bytes that can be downloaded in one command,
2137 checksum byte is included at end of buffer and is part of this count */
2138 #define FLSHWR_DOWNLOAD_BINARY_BUFFER_SIZE 1024
2141 /* ************************************************************************************************ */
2142 /* */
2143 /* ***** Diagnostics (Do not use unless you know what you are doing) */
2144 /* */
2145 /* ************************************************************************************************ */
2148 /* ***** Diagnostic Debug Mask (32 bits) */
2149 #define HSDIO_DIAG_SET_DEBUG_MASK(nn) 0xCC00,0x00F4,(nn&0xffff),(nn>>16)
2150 // where nn can be a logical OR of any or all of the following masks...
2152 // copy protection debug mask
2153 #define HSDIO_DBG_CP_DETAILED_msk 0x00000001
2154 #define HSDIO_DBG_CP_MINIMAL_msk 0x00000002
2155 #define HSDIO_DBG_CP_RECURRING_msk 0x00000004
2157 // operations debug mask
2158 #define HSDIO_DBG_OP_DETAILED_msk 0x00000010
2159 #define HSDIO_DBG_OP_MINIMAL_msk 0x00000020
2160 #define HSDIO_DBG_OP_RECURRING_msk 0x00000040
2162 // video related debug mask
2163 #define HSDIO_DBG_V_DETAILED_msk 0x00000100
2164 #define HSDIO_DBG_V_MINIMAL_msk 0x00000200
2165 #define HSDIO_DBG_V_RECURRING_msk 0x00000400
2167 // audio related debug mask
2168 #define HSDIO_DBG_A_DETAILED_msk 0x00001000
2169 #define HSDIO_DBG_A_MINIMAL_msk 0x00002000
2170 #define HSDIO_DBG_A_RECURRING_msk 0x00004000
2172 // command related debug mask
2173 #define HSDIO_DBG_CMD_DETAILED_msk 0x00010000
2174 #define HSDIO_DBG_CMD_MINIMAL_msk 0x00020000
2176 // data packet debug mask (Infoframes and HDMI Packets)
2177 #define HSDIO_DBG_PKT_DETAILED_msk 0x01000000
2178 #define HSDIO_DBG_PKT_MINIMAL_msk 0x02000000
2180 // CEC debug mask
2181 #define HSDIO_DBG_CEC_DETAILED_msk 0x04000000
2182 #define HSDIO_DBG_CEC_MINIMAL_msk 0x08000000
2184 // error debug mask
2185 #define HSDIO_DBG_COMM_ERROR_msk 0x00800000
2186 #define HSDIO_DBG_FATAL_ERROR_msk 0x00200000
2187 #define HSDIO_DBG_WARNING_msk 0x00100000
2190 #define HSDIO_DIAG_SET_DEBUG_MASK_TYPE(nn) 0xCA00,0xF800+(nn&0xff)
2191 // where nn can be one of the following...
2192 #define HSDIO_DiagDebugMaskType_ALL_ON 0
2193 #define HSDIO_DiagDebugMaskType_ALL_OFF 1
2194 #define HSDIO_DiagDebugMaskType_ALL 2
2195 #define HSDIO_DiagDebugMaskType_INPUT_DEV 3 // current input device
2196 #define HSDIO_DiagDebugMaskType_INPUT_DEV_ALL 4 // all input devices
2197 #define HSDIO_DiagDebugMaskType_OUTPUT_DEV_ALL 5
2198 #define HSDIO_DiagDebugMaskType_OUTPUT_DEV_1 6
2199 #define HSDIO_DiagDebugMaskType_OUTPUT_DEV_2 7
2200 #define HSDIO_DiagDebugMaskType_OUTPUT_DEV_3 8
2201 #define HSDIO_DiagDebugMaskType_HIB 9
2202 #define HSDIO_DiagDebugMaskType_HOB 10
2203 #define HSDIO_DiagDebugMaskType_EDID 11 // EDID building and parsing
2204 #define HSDIO_DiagDebugMaskType_MAINAPP 12 // Main Application
2208 /* ***** Diagnostic Commands */
2210 // Set Hot Plug Detect (HPD) on selected input
2211 #define HSDIO_DIAG_SET_HPD(input,state) 0xCA00,0xF900+(input&0x7F)+(state<<7)
2212 // input can be: HSDIO_Input_HDMI_1 through HSDIO_Input_HDMI_16
2213 // state can be: HSDIO_Boolean_TRUE (HPD is HI) or HSDIO_Boolean_FALSE (HPD is LO)
2216 // Execute ADV7510 Diagnostic Command
2217 #define HSDIO_DIAG_ADV7510_1_EXECUTE 0xCA00,0xFA02
2218 #define HSDIO_DIAG_ADV7510_2_EXECUTE 0xCA00,0xFA03
2220 // HDMI Rx (ADV7604) Input High Frequency EQ Setting
2221 #define HSDIO_DIAG_ADV7604_HIFREQ_EQ(lf,hf) 0xCC00,0x00F0,((lf&0xff)<<8)+1,(hf&0xff)
2223 // Execute Current Input Device Diagnostic Command
2224 #define HSDIO_DIAG_INPUT_DEV_EXECUTE 0xCA00,0xFA01
2227 #endif