summaryrefslogtreecommitdiffstats
path: root/make/stub_includes/embedded/IntelGDL/gdl_pd.h
diff options
context:
space:
mode:
Diffstat (limited to 'make/stub_includes/embedded/IntelGDL/gdl_pd.h')
-rw-r--r--make/stub_includes/embedded/IntelGDL/gdl_pd.h938
1 files changed, 938 insertions, 0 deletions
diff --git a/make/stub_includes/embedded/IntelGDL/gdl_pd.h b/make/stub_includes/embedded/IntelGDL/gdl_pd.h
new file mode 100644
index 000000000..c39f1a6f0
--- /dev/null
+++ b/make/stub_includes/embedded/IntelGDL/gdl_pd.h
@@ -0,0 +1,938 @@
+//-----------------------------------------------------------------------------
+// This file is provided under a dual BSD/GPLv2 license. When using or
+// redistributing this file, you may do so under either license.
+//
+// GPL LICENSE SUMMARY
+//
+// Copyright(c) 2005-2009 Intel Corporation. All rights reserved.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of version 2 of the GNU General Public License as
+// published by the Free Software Foundation.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+// The full GNU General Public License is included in this distribution
+// in the file called LICENSE.GPL.
+//
+// Contact Information:
+// Intel Corporation
+// 2200 Mission College Blvd.
+// Santa Clara, CA 97052
+//
+// BSD LICENSE
+//
+// Copyright(c) 2005-2009 Intel Corporation. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+// - Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// - Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in
+// the documentation and/or other materials provided with the
+// distribution.
+// - Neither the name of Intel Corporation nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//---------------------------------------------------------------------------*/
+
+#ifndef _GDL_PD_H_
+#define _GDL_PD_H_
+
+#include "gdl_types.h"
+
+
+/** @ingroup disp_pd
+ Existing port driver IDs with room for user specified port drivers.
+ When communicating with a specific port driver the port id must be passed.
+*/
+typedef enum
+{
+ GDL_PD_MIN_SUPPORTED_DRIVERS=0, ///< Port Driver IDs start at this value
+
+ GDL_PD_ID_INTTVENC = GDL_PD_MIN_SUPPORTED_DRIVERS, ///< CVBS TV encoder
+ GDL_PD_ID_INTTVENC_COMPONENT, ///< Component TV encoder
+ GDL_PD_ID_HDMI, ///< HDMI
+ GDL_PD_ID_USER_MIN, ///< Begin user defined drivers
+ GDL_PD_ID_USER_MAX = 8, ///< End user defined drivers
+
+ GDL_PD_MAX_SUPPORTED_DRIVERS ///< Maximum number of port drivers.
+} gdl_pd_id_t;
+
+
+
+/** @ingroup disp_pd
+Defined port driver attributes. Which ones are supported (and exactly how)
+can vary from one port driver to another. See the Intel� CE Media Processors
+GDL 3.0 Programming Guide for details on the attributes supported by
+each port driver.
+*/
+
+// *NOTE* Extend pd_lib.c::__pd_attr_get_name() when adding new entries
+typedef enum
+{
+ GDL_PD_MIN_SUPPORTED_ATTRIBUTES=0, ///< Attribute ID enum's start at this value
+
+ // HDMI RELATED
+ GDL_PD_ATTR_ID_HDCP = GDL_PD_MIN_SUPPORTED_ATTRIBUTES, ///< HDCP control
+ GDL_PD_ATTR_ID_HDCP_AUTO_MUTE, ///< HDCP auto mute
+ GDL_PD_ATTR_ID_HDCP_STATUS, ///< HDCP status
+ GDL_PD_ATTR_ID_HDCP_1P1, ///< HDCP 1.1 Pj check control
+ GDL_PD_ATTR_ID_COLOR_SPACE_INPUT, ///< Input colorspace
+ GDL_PD_ATTR_ID_PIXEL_FORMAT_OUTPUT, ///< Output colorspace
+ GDL_PD_ATTR_ID_PIXEL_DEPTH, ///< Depth of outgoing pixels
+ GDL_PD_ATTR_ID_BG_COLOR, ///< Fixed color for HDCP failure
+ GDL_PD_ATTR_ID_CABLE_STATUS, ///< Cable status
+ GDL_PD_ATTR_ID_PAR, ///< Picture aspect ratio
+ GDL_PD_ATTR_ID_FAR, ///< Format aspect ratio
+ GDL_PD_ATTR_ID_USE_EDID, ///< TV timings source
+ GDL_PD_ATTR_ID_SLOW_DDC, ///< DDC bus speed
+ GDL_PD_ATTR_ID_EQUALIZE, ///< Equalization level
+ GDL_PD_ATTR_ID_TRANSMIT_LEVEL, ///< Transmit level amplitude
+ GDL_PD_ATTR_ID_TERMINATION, ///< Termination impedance
+ GDL_PD_ATTR_ID_AUDIO_CLOCK, ///< Audio clock
+ GDL_PD_ATTR_ID_COLOR_SPACE_EXT, ///< Extended colorimetry
+ GDL_PD_ATTR_ID_SENSE_DELAY, ///< TV sensing delay after HPD
+ GDL_PD_ATTR_ID_OUTPUT_CLAMP, ///< Clamp the output in (16,235) when
+ ///< it is RGB color space. In YCbCr output
+ ///< this attribute is ignored.
+
+ // ANALOG RELATED
+ GDL_PD_ATTR_ID_BRIGHTNESS, ///< Brightness Level
+ GDL_PD_ATTR_ID_CONTRAST, ///< Contrast Level
+ GDL_PD_ATTR_ID_HUE, ///< Hue Angle
+ GDL_PD_ATTR_ID_SATURATION, ///< Saturation Level
+ GDL_PD_ATTR_ID_ACP, ///< Analog Content Protection
+ GDL_PD_ATTR_ID_CC, ///< Closed Captioning
+ GDL_PD_ATTR_ID_UNDERSCAN, ///< Output scaler
+ GDL_PD_ATTR_ID_SHARPNESS_HLUMA, ///< Horizontal Luma filter
+ GDL_PD_ATTR_ID_SHARPNESS_HCHROMA, ///< Horizontal Chroma Filter
+ GDL_PD_ATTR_ID_BLANK_LEVEL, ///< Sync pulse level
+ GDL_PD_ATTR_ID_BLACK_LEVEL, ///< Black Level
+ GDL_PD_ATTR_ID_BURST_LEVEL, ///< Burst Level
+ GDL_PD_ATTR_ID_FLICKER, ///< Adaptive Flicker Filter
+ GDL_PD_ATTR_ID_CHROMA_FILTER, ///< Pre Chroma filter
+ GDL_PD_ATTR_ID_TVOUT_TYPE, ///< Current DAC configuration
+ GDL_PD_ATTR_ID_TESTMODE, ///< Test pattern generator
+ GDL_PD_ATTR_ID_3CH_SYNC, ///< 3 Channel sync
+ GDL_PD_ATTR_ID_SD_OPTION, ///< Alternate SD mode (e.g.: PAL-M,
+ ///< PAL-N, etc.)
+ GDL_PD_ATTR_ID_RGB, ///< RGB / YPbPr output selection
+ GDL_PD_ATTR_ID_CGMS_MODE, ///< Current Copy Generation mode
+ GDL_PD_ATTR_ID_NO_SYNC, ///< Sync removal from green (y) signal
+ GDL_PD_ATTR_ID_YC_DELAY, ///< Luma vs Chroma delay
+
+ // COMMON
+ GDL_PD_ATTR_ID_POWER, ///< Disable DAC output
+ GDL_PD_ATTR_ID_NAME, ///< Driver name
+ GDL_PD_ATTR_ID_VERSION_MAJOR, ///< Driver major version
+ GDL_PD_ATTR_ID_VERSION_MINOR, ///< Driver minor version
+ GDL_PD_ATTR_ID_DEBUG, ///< Debug log
+ GDL_PD_ATTR_ID_BUILD_DATE, ///< Driver Build date
+ GDL_PD_ATTR_ID_BUILD_TIME, ///< Driver Build time
+ GDL_PD_ATTR_ID_DISPLAY_PIPE, ///< Display Pipeline assigned
+
+ // ANALOG RELATED
+ GDL_PD_ATTR_ID_SVIDEO, ///< Assignment of component Pb & Pr DACs
+ ///< for S-Video output
+
+ // HDMI RELATED
+ GDL_PD_ATTR_ID_AUDIO_STATUS, ///< Status of audio playback
+
+ // EXTENDED
+ GDL_PD_ATTR_ID_USER_MIN, ///< Start of user defined attributes
+ GDL_PD_ATTR_ID_USER_MAX = 100, ///< Max user defined attribute
+
+ GDL_PD_MAX_SUPPORTED_ATTRIBUTES ///< End of attribute IDs; must be last
+} gdl_pd_attribute_id_t;
+
+
+/** @ingroup disp_pd
+
+ Attribute usage flags.
+*/
+// TODO: Move GDL_PD_ATTR_FLAG_SUPPORTED since it's internal to PD */
+typedef enum
+{
+ GDL_PD_ATTR_FLAG_WRITE = 0x1, /**< Attribute can be written */
+ GDL_PD_ATTR_FLAG_SUPPORTED = 0x2, /**< Attribute is supported on this port
+ driver. FOR INTERNAL USE ONLY. */
+ GDL_PD_ATTR_FLAG_INTERNAL = 0x4, /**< Attribute is invisible to outside
+ world. FOR INTERNAL USE ONLY */
+} gdl_pd_attribute_flag_t;
+
+//------------------------------------------------------------------------------
+// Attribute flags used internally to override / extend certain behavior
+// NOTE: Make sure values don't collide with gdl_pd_attribute_flag_t
+//------------------------------------------------------------------------------
+#define GDL_PD_ATTR_FLAG_FORCED 0x8000 // Read only is ignored
+
+/** @ingroup disp_pd
+ Attribute types
+*/
+typedef enum
+{
+ GDL_PD_ATTR_TYPE_UINT, /**< Attribute is of type #gdl_uint32. */
+ GDL_PD_ATTR_TYPE_BOOLEAN, /**< Attribute is of type #gdl_boolean_t. */
+ GDL_PD_ATTR_TYPE_STRING /**< Attribute is a read-only 0-terminated
+ ASCII string.
+ */
+} gdl_pd_attribute_type_t;
+
+/** @ingroup disp_pd
+ Maximum size of PD string attributes
+*/
+#define GDL_PD_MAX_STRING_LENGTH 16
+
+/** @ingroup disp_pd
+ This structure represents port driver attribute
+*/
+typedef struct
+{
+ gdl_pd_attribute_id_t id; ///< Global attribute ID.
+ gdl_pd_attribute_type_t type; ///< Data type of attribute.
+ gdl_pd_attribute_flag_t flags; ///< Access permissions and internal use
+
+ char name[GDL_PD_MAX_STRING_LENGTH+1];
+
+ union ///< Attribute data dependent on attribute type
+ {
+ struct
+ {
+ gdl_uint32 value_default; ///< default value
+ gdl_uint32 value_min; ///< minimum value
+ gdl_uint32 value_max; ///< maximum value
+ gdl_uint32 value; ///< current value
+ } _uint;
+
+ struct
+ {
+ gdl_boolean_t value_default; ///< default value
+ gdl_boolean_t value; ///< current value
+ } _bool;
+
+ struct
+ {
+ char value[GDL_PD_MAX_STRING_LENGTH+1]; ///< current value
+ } string;
+
+ } content;
+} gdl_pd_attribute_t;
+
+/** @ingroup disp_pd
+ The Internal TV Encoders can support several different TV standards when
+ they are used in Standard Definition (SD) resolutions. The entries in
+ this enumeration are values that can be used to set the
+ GDL_PD_ATR_ID_SD_OPTION attribute to specify the standard to be used for SD.
+*/
+typedef enum
+{
+ TV_STD_UNDEFINED = 0, ///< Use Default per resolution
+ TV_STD_NTSC = 0, ///< Use NTSC for 720x480i mode.
+ TV_STD_PAL = 0, ///< Use PAL for 720x576i mode.
+ TV_STD_NTSC_J = 1, ///< Use NTSC-J (Japan) for 720x480i mode.
+ TV_STD_PAL_M = 2, ///< Use PAL-M (Brazil) for 720x480i mode.
+ TV_STD_PAL_N = 3, ///< Use PAL-N (Argentina) for 720x576i mode.
+ TV_STD_MAX ///< The number of IDs in this enumeration.
+} gdl_pd_sd_option_t;
+
+//-----------------------------------------------------------------------------
+// Unique IDs for [end user -> port driver] communication
+//-----------------------------------------------------------------------------
+/** @ingroup disp_pd
+ Command codes for the gdl_port_send() function.
+*/
+typedef enum
+{
+ GDL_PD_SEND_CC = 0,
+ ///< Closed Captioning data; see #gdl_cc_data_t
+ GDL_PD_SEND_PAL_WSS,
+ ///< Pal Wide Screen signaling; See #gdl_wss_data_t
+ GDL_PD_SEND_CGMS_A,
+ ///< CGMS-A for NTSC and ATSC formats; See #gdl_cgms_data_t
+ GDL_PD_SEND_HDMI_AUDIO_CTRL,
+ ///< HDMI audio data; See #gdl_hdmi_audio_ctrl_t
+ GDL_PD_SEND_HDMI_HDCP_SRM,
+ ///< HDCP System Renewability Message
+ GDL_PD_SEND_HDMI_PACKET,
+ ///< Generic HDMI packet; See #gdl_hdmi_packet_info_t
+ GDL_PD_SEND_USER_MIN,
+ /**< External (non-Intel) port drivers may define command codes starting
+ with this value.
+ */
+ GDL_PD_SEND_USER_MAX = 30
+ /**< External (non-Intel) port drivers may define command codes up to
+ this value.
+ */
+} gdl_pd_send_t;
+
+//-----------------------------------------------------------------------------
+// Unique IDs for [port driver -> end user] communication
+//-----------------------------------------------------------------------------
+/** @ingroup disp_pd
+ Command codes for retrieving port driver extended information
+ via gdl_port_recv().
+*/
+typedef enum
+{
+ GDL_PD_RECV_HDMI_AUDIO_CTRL = 0, /**< Audio control information
+ see #gdl_hdmi_audio_ctrl_t */
+ GDL_PD_RECV_HDMI_SINK_INFO, /**< HDMI sink information
+ see #gdl_hdmi_sink_info_t */
+ GDL_PD_RECV_HDMI_EDID_BLOCK, /**< 128 bytes of raw EDID
+ see #gdl_hdmi_edid_block_t */
+ GDL_PD_RECV_HDMI_HDCP_INFO, /**< HDCP information */
+ GDL_PD_RECV_HDMI_HDCP_KSVS, /**< HDCP keys selection vectors */
+ GDL_PD_RECV_USER_MIN, /**< Begin user defined command codes */
+ GDL_PD_RECV_USER_MAX = 30 /**< End user defined command codes */
+} gdl_pd_recv_t;
+
+//-----------------------------------------------------------------------------
+// Output pixel format
+//-----------------------------------------------------------------------------
+/** @ingroup disp_pd
+ Attribute values for the HDMI output pixel format.
+ See #GDL_PD_ATTR_ID_PIXEL_FORMAT_OUTPUT.
+*/
+typedef enum
+{
+ GDL_PD_OPF_RGB444 = 0, ///< RGB 4:4:4 Output
+ GDL_PD_OPF_YUV422, ///< YUV 4:2:2 Output
+ GDL_PD_OPF_YUV444, ///< YUV 4:4:4 Output
+ GDL_PD_OPF_COUNT ///< Number of output pixel formats + 1
+} gdl_pd_output_pixel_format_t;
+
+//-----------------------------------------------------------------------------
+// Output pixel depth
+//-----------------------------------------------------------------------------
+/** @ingroup disp_pd
+ Attribute values for the HDMI output pixel depth.
+ See #GDL_PD_ATTR_ID_PIXEL_DEPTH.
+*/
+typedef enum
+{
+ GDL_PD_OPD_24BIT = 0, ///< 24 bits per pixel
+ GDL_PD_OPD_30BIT, ///< 30 bits per pixel
+ GDL_PD_OPD_36BIT, ///< 36 bits per pixel
+ GDL_PD_PIXEL_DEPTH_COUNT ///< Number of supported pixel depths + 1
+} gdl_pd_output_pixel_depth_t;
+
+//------------------------------------------------------------------------------
+// Picture Aspect Ratio infoframe code
+//------------------------------------------------------------------------------
+/** @ingroup disp_pd
+ Attribute values for the HDMI Picture Aspect Ratio information sent via
+ AVI infoframes. See #GDL_PD_ATTR_ID_PAR .
+*/
+typedef enum
+{
+ GDL_PD_PAR_NO_DATA = 0x00, ///< No aspect ratio specified
+ GDL_PD_PAR_4_3 = 0x01, ///< 4:3 aspect ratio
+ GDL_PD_PAR_16_9 = 0x02, ///< 16:9 aspect ratio
+} gdl_pd_par_t;
+
+//------------------------------------------------------------------------------
+// Format Aspect Ratio infoframe code
+//------------------------------------------------------------------------------
+/** @ingroup disp_pd
+ Attribute values for the HDMI Format Aspect Ratio information sent via
+ AVI infoframes. See #GDL_PD_ATTR_ID_FAR.
+*/
+typedef enum
+{
+ GDL_PD_FAR_16_9_TOP = 0x02, ///< box 16:9 (top)
+ GDL_PD_FAR_14_9_TOP = 0x03, ///< box 14:9 (top)
+ GDL_PD_FAR_G_14_9_CENTER = 0x04, ///< box > 16:9 (center)
+ GDL_PD_FAR_SAME_AS_PAR = 0x08, ///< As encoded frame
+ GDL_PD_FAR_4_3_CENTER = 0x09, ///< 4:3 center
+ GDL_PD_FAR_16_9_CENTER = 0x0A, ///< 16:9 center
+ GDL_PD_FAR_14_9_CENTER = 0x0B, ///< 14:9 center
+ GDL_PD_FAR_4_3_SP_14_9 = 0x0D, ///< 4:3 with s&p 14:9 center
+ GDL_PD_FAR_16_9_SP_14_9 = 0x0E, ///< 16:9 with s&p 14:9 center
+ GDL_PD_FAR_16_9_SP_4_3 = 0x0F, ///< 4:3 with s&p 4:3 center
+} gdl_pd_far_t;
+
+
+//------------------------------------------------------------------------------
+// V B I S E R V I C E S
+//------------------------------------------------------------------------------
+/** @ingroup disp_pd
+ When inserting VBI information into the analog TV signal, this enumeration
+ is used to indicate the field into which the information should be inserted.
+*/
+typedef enum
+{
+ VBI_FIELD_ID_ODD = 1, /**< Odd field (field 1). */
+ VBI_FIELD_ID_EVEN = 2, /**< Even field (field 2). */
+ VBI_FIELD_ID_UNDEFINED = 3 /**< This value should be passed when the
+ display is in a progressive (frame) mode.
+ */
+} gdl_pd_vbi_fieldid_t;
+
+/** @ingroup disp_pd
+
+ This enumeration is used to specify values for the #GDL_PD_ATTR_ID_ACP
+ attribute (the Analog Copy Protection mode).
+*/
+typedef enum
+{
+ ACP_MODE_OFF, ///< ACP Off
+ ACP_MODE_PSP, ///< Pseudo Sync Pulse + No Color Stripes
+ ACP_MODE_PSP_CS_2_LINES,///< Pseudo Sync Pulse + Color Stripes (2 lines)
+ ACP_MODE_PSP_CS_4_LINES ///< Pseudo Sync Pulse + Color Stripes (4 lines)
+} gdl_pd_acp_mode_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for CGMS-A copy permission states to be
+ inserted into the analog TV signal. See the #gdl_cgms_data_t data structure.
+*/
+typedef enum
+{
+ CGMS_A_COPY_FREELY = 1, ///< Unlimited Copies can be made
+ CGMS_A_COPY_NOMORE = 2, ///< Copy has already been made (was reserved)
+ CGMS_A_COPY_ONCE = 3, ///< One copy can be made
+ CGMS_A_COPY_NEVER = 4, ///< No copies can be made
+ CGMS_A_NO_DATA = 5 ///< No data. Word 1 will be 1111
+} gdl_pd_cgms_copy_t;
+
+/** @ingroup disp_pd
+
+ This enumeration specifies values for CGMS-A aspect ratios to be inserted
+ into the analog TV signal. See the #gdl_cgms_data_t data structure.
+*/
+typedef enum
+{
+ CGMS_A_4_3 = 1, ///< Normal 4:3 aspect ratio
+ CGMS_A_4_3_LB = 2, ///< 4:3 aspect ratio letterboxed
+ CGMS_A_16_9 = 3 ///< 16:9 aspect ratio (Not available at 480i/576i)
+} gdl_pd_cgms_aspect_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for Wide Screen Signalling aspect ration
+ information to be inserted into the analog TV signal. See the
+ #gdl_wss_data_t data structure.
+*/
+typedef enum
+{
+ /* PAL specific Modes */
+ WSS_4_3_FF = 0, ///< 4:3 Full Format
+ WSS_14_9_LB_C = 1, ///< 14:9 Letterbox, Centered
+ WSS_14_9_LB_T = 2, ///< 14:9 Letterbox, Top
+ WSS_16_9_LB_C = 3, ///< 16:9 Letterbox, Centered
+ WSS_16_9_LB_T = 4, ///< 16:9 Letterbox, Top
+ WSS_G_16_9_LB_C = 5, ///< >16:9 Letterbox, Centered
+ WSS_14_9_FF = 6, ///< 14:9 Full Format
+ WSS_16_9_ANAMORPHIC = 7, ///< 16:9 Anamorphic
+} gdl_pd_wss_aspect_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for Wide Screen Signalling camera mode
+ information to be inserted into the analog TV signal. See the
+ #gdl_wss_data_t data structure.
+*/
+typedef enum
+{
+ WSS_CAMERA_MODE = 0, ///< Camera Mode
+ WSS_FILM_MODE = 1, ///< Film Mode
+} gdl_pd_wss_camera_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for Wide Screen Signalling color encoding
+ information to be inserted into the analog TV signal. See the
+ #gdl_wss_data_t data structure.
+*/
+typedef enum
+{
+ WSS_CE_NORMAL_PAL = 10, ///< Normal PAL Colors
+ WSS_CE_COLOR_PLUS = 11, ///< Motion Adaptive Color Plus
+} gdl_pd_wss_ce_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values to indicate Wide Screen Signalling
+ helpers state, to be inserted into the analog TV signal. See the
+ #gdl_wss_data_t data structure.
+*/
+typedef enum
+{
+ WSS_HELPERS_NOT_PRESENT = 1, ///< No Helper
+ WSS_HELPERS_PRESENT = 2, ///< Modulated helper
+
+} gdl_pd_wss_helpers_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for Wide Screen Signalling open subtitles
+ state, to be inserted into the analog TV signal. See the #gdl_wss_data_t
+ data structure.
+*/
+typedef enum
+{
+ WSS_OPEN_SUBTITLES_NO = 1, ///< No open subtitles
+ WSS_OPEN_SUBTITLES_INSIDE = 2, ///< Subtitles in active image area
+ WSS_OPEN_SUBTITLES_OUTSIDE = 3, ///< Subtitles out of active image area
+} gdl_pd_wss_opensub_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for Wide Screen Signalling surround sound
+ state, to be inserted into the analog TV signal. See the #gdl_wss_data_t
+ data structure.
+*/
+typedef enum
+{
+ WSS_SURROUND_NO = 1, ///< No surround sound information
+ WSS_SURROUND_YES = 2, ///< Surround sound present
+} gdl_pd_wss_surround_t;
+
+/** @ingroup disp_pd
+ This enumeration contains the data type identifier for the WSS information
+ to pass to the TV encoder to be inserted into the analog TV signal.
+*/
+typedef enum
+{
+ WSS_NO_COPYRIGHT = 1, ///< No Copyright asserted or status unknown
+ WSS_COPYRIGHT = 2, ///< Copyright Asserted
+} gdl_pd_wss_copyright_t;
+
+/** @ingroup disp_pd
+ This enumeration specifies values for Wide Screen Signalling copy
+ restriction state, to be inserted into the analog TV signal. See the
+ #gdl_wss_data_t data structure.
+*/
+typedef enum
+{
+ WSS_COPY_NO_REST = 1, ///< Copying not restricted
+ WSS_COPY_RESTRICTED = 2 ///< Copying Restricted
+} gdl_pd_wss_copy_t;
+
+
+/** @ingroup disp_pd
+
+ This data structure is used to pass closed captioning information to the
+ display driver. The driver will pass this information to the TV encoder to
+ be inserted into the analog TV signal.
+*/
+typedef struct
+{
+ gdl_pd_vbi_fieldid_t pd_vbi_field_id;
+ /**< Field ID identifier; See
+ #gdl_pd_vbi_fieldid_t.
+ */
+ unsigned char data_length;
+ /**< Number of valid closed caption data bytes
+ passed; must be an even number, with a
+ maximum value of 8.
+ */
+ unsigned char ccdata[8];
+ /**< Array containing the closed caption data
+ to be inserted.
+ */
+} gdl_cc_data_t;
+
+/** @ingroup disp_pd
+
+ This data structure is used to pass PAL Wide Screen signaling from an
+ application to the display driver. The driver will pass this
+ information to the TV encoder to be inserted into the PAL analog TV signal.
+
+ Teletext is not supported in silicon. Teletext in subtitle always is 0.
+
+ Standard in use:
+ ETSI EN 300 294 V1.4.1 2003-2004
+*/
+typedef struct
+{
+ gdl_boolean_t enabled; ///< GDL_TRUE => Enabled
+ gdl_pd_wss_aspect_t aspect; ///< Aspect Ratio
+ gdl_pd_wss_camera_t cam_mode; ///< Camera Mode
+ gdl_pd_wss_ce_t color_enc; ///< Color Encoding
+ gdl_pd_wss_helpers_t helpers; ///< Helpers Present
+ gdl_pd_wss_opensub_t open_sub; ///< Open Subtitles
+ gdl_pd_wss_surround_t surround; ///< Surround sound
+ gdl_pd_wss_copyright_t copyright; ///< Copyright assertion
+ gdl_pd_wss_copy_t copy_rest; ///< Copy Restriction
+} gdl_wss_data_t;
+
+/** @ingroup disp_pd
+
+ This data structure is used to pass Copy Generation Management System
+ (Analog) information from the application to the display driver. The driver
+ will pass this information to the TV encoder to be inserted into the analog
+ TV signal.
+
+ XDS CEA-608 based CGMS-A should be passed using the Closed Captioning API.
+ See #gdl_cc_data_t
+
+ Standard is use: IEC 61880 480i Line20, EIA/CEA-805 480p Line 41,
+ 720p Line 24 , and 1080i Line 19
+*/
+typedef struct
+{
+ gdl_boolean_t enabled; ///< GDL_TRUE => Enabled
+ gdl_pd_cgms_copy_t copyGen; ///< CGMS-A data see #gdl_pd_cgms_copy_t
+ gdl_pd_cgms_aspect_t aspect; ///< Wide Screen signaling.
+ gdl_pd_acp_mode_t mv; ///< APS
+ gdl_boolean_t analog_src;///< Analog Source Bit
+} gdl_cgms_data_t;
+
+/** @ingroup disp_pd
+ This enumeration is used to specify values for the #GDL_PD_ATTR_ID_SVIDEO
+ attribute
+*/
+typedef enum
+{
+ GDL_PD_TVOUT_TYPE_COMPOSITE, ///< Composite only
+ GDL_PD_TVOUT_TYPE_SVIDEO, ///< S-Video only
+ GDL_PD_TVOUT_TYPE_COMPONENT, ///< Reserved for internal use
+ GDL_PD_TVOUT_TYPE_CVBSSV, ///< Composite and S-video
+} gdl_pd_tvout_type_t;
+
+//------------------------------------------------------------------------------
+// H D M I S P E C I F I C D A T A T Y P E S
+//------------------------------------------------------------------------------
+
+/** @ingroup disp_pd
+ This structure defines the HDMI audio data blocks.
+*/
+typedef struct
+{
+ gdl_uint32 format;
+ gdl_uint32 max_channels;
+ gdl_uint32 fs;
+ gdl_uint32 ss_bitrate;
+} gdl_hdmi_audio_cap_t;
+
+/** @ingroup disp_pd
+ A CEC Source Physical Address.
+*/
+typedef struct
+{
+ gdl_uint8 a;
+ gdl_uint8 b;
+ gdl_uint8 c;
+ gdl_uint8 d;
+} gdl_src_phys_addr_t;
+
+/** @ingroup disp_pd
+ This data structure represents additional sink details not-available through
+ port attributes
+*/
+typedef struct
+{
+ gdl_uint16 manufac_id; ///< Sink manufacturer ID
+ gdl_uint16 product_code; ///< Sink product code
+ gdl_boolean_t hdmi; ///< Sink is HDMI
+ gdl_boolean_t ycbcr444; ///< Sink supports YCbCr444
+ gdl_boolean_t ycbcr422; ///< Sink supports YCbCr422
+ gdl_src_phys_addr_t spa; ///< CEC source physical address a.b.c.d
+ gdl_uint32 speaker_map; ///< Speaker allocation map
+ gdl_boolean_t dc_30; ///< Sink supports 30-bit color
+ gdl_boolean_t dc_36; ///< Sink supports 36-bit color
+ gdl_boolean_t dc_y444; ///< Sink supports YCbCr444 in supported DC modes
+ gdl_boolean_t xvycc601; ///< Sink supports xvYCC BT601 Colorimetry
+ gdl_boolean_t xvycc709; ///< Sink supports xvYCC BT709 Colorimetry
+ gdl_boolean_t supports_ai; ///< Sink supports aux audio information
+} gdl_hdmi_sink_info_t;
+
+/** @ingroup disp_pd
+ This data structure represents 128 byte EDID block
+*/
+typedef struct
+{
+ gdl_uint8 index; ///< Block number to read
+ gdl_uint8 data[128]; ///< Block contents
+} gdl_hdmi_edid_block_t;
+
+/** @ingroup disp_pd
+ This data structure represents HDCP topology information
+*/
+typedef struct
+{
+ gdl_boolean_t hdcp_1p1; ///< Sink supports HDCP 1.1
+ gdl_boolean_t repeater; ///< Sink is a repeater
+ gdl_boolean_t max_cascade_exceeded; ///< Maximum allowed depth exceeded
+ gdl_uint32 depth; ///< Topology depth
+ gdl_boolean_t max_devs_exceeded; ///< Maximum allowed device number exceeded
+ gdl_uint32 device_count; ///< Number of devices connected to the repeater
+} gdl_hdmi_hdcp_info_t;
+
+/** @ingroup disp_pd
+ This enumeration defines the command IDs for the HDMI audio commands.
+ See #gdl_hdmi_audio_ctrl_t.
+*/
+typedef enum
+{
+ GDL_HDMI_AUDIO_START, ///< Start audio playback
+ GDL_HDMI_AUDIO_STOP, ///< Stop audio playback
+ GDL_HDMI_AUDIO_SET_FORMAT, ///< Set audio format
+ GDL_HDMI_AUDIO_GET_CAPS, ///< Retrieve descriptor of audio blocks
+ GDL_HDMI_AUDIO_WRITE, ///< For driver internal use only
+} gdl_hdmi_audio_cmd_id_t;
+
+
+/** @ingroup disp_pd
+ This enumeration defines IDs for different HDMI audio formats.
+*/
+// IMPORTANT: DO NOT change order!!!
+typedef enum
+{
+ GDL_HDMI_AUDIO_FORMAT_UNDEFINED = 0x00,
+ GDL_HDMI_AUDIO_FORMAT_PCM,
+ GDL_HDMI_AUDIO_FORMAT_AC3,
+ GDL_HDMI_AUDIO_FORMAT_MPEG1,
+ GDL_HDMI_AUDIO_FORMAT_MP3,
+ GDL_HDMI_AUDIO_FORMAT_MPEG2,
+ GDL_HDMI_AUDIO_FORMAT_AAC,
+ GDL_HDMI_AUDIO_FORMAT_DTS,
+ GDL_HDMI_AUDIO_FORMAT_ATRAC,
+ GDL_HDMI_AUDIO_FORMAT_OBA,
+ GDL_HDMI_AUDIO_FORMAT_DDP,
+ GDL_HDMI_AUDIO_FORMAT_DTSHD,
+ GDL_HDMI_AUDIO_FORMAT_MLP,
+ GDL_HDMI_AUDIO_FORMAT_DST,
+ GDL_HDMI_AUDIO_FORMAT_WMA_PRO,
+} gdl_hdmi_audio_fmt_t;
+
+/** @ingroup disp_pd
+ This enumeration defines IDs for different HDMI audio sampling frequencies.
+*/
+typedef enum
+{
+ GDL_HDMI_AUDIO_FS_32_KHZ = 0x01,
+ GDL_HDMI_AUDIO_FS_44_1_KHZ = 0x02,
+ GDL_HDMI_AUDIO_FS_48_KHZ = 0x04,
+ GDL_HDMI_AUDIO_FS_88_2_KHZ = 0x08,
+ GDL_HDMI_AUDIO_FS_96_KHZ = 0x10,
+ GDL_HDMI_AUDIO_FS_176_4_KHZ = 0x20,
+ GDL_HDMI_AUDIO_FS_192_KHZ = 0x40,
+} gdl_hdmi_audio_fs_t;
+
+/** @ingroup disp_pd
+ This enumeration defines IDs for different HDMI audio sample sizes.
+*/
+typedef enum
+{
+ GDL_HDMI_AUDIO_SS_UNDEFINED = 0x00, ///< Undefined value
+ GDL_HDMI_AUDIO_SS_16 = 0x01, ///< 16 bits
+ GDL_HDMI_AUDIO_SS_20 = 0x02, ///< 20 bits
+ GDL_HDMI_AUDIO_SS_24 = 0x04, ///< 24 bits
+} gdl_hdmi_audio_ss_t;
+
+/** @ingroup disp_pd
+ Enumeration of the different audio speaker allocation options defined in the
+ CEA-861D specification.
+*/
+typedef enum
+{
+ GDL_HDMI_AUDIO_SPEAKER_MAP_FLFR = 0x0001,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_LFE = 0x0002,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_FC = 0x0004,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_RLRR = 0x0008,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_RC = 0x0010,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_FLCFRC = 0x0020,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_RLCRRC = 0x0040,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_FLWFRW = 0x0080,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_FLHFRH = 0x0100,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_TC = 0x0200,
+ GDL_HDMI_AUDIO_SPEAKER_MAP_FCH = 0x0400,
+} gdl_hdmi_audio_speaker_map_t;
+
+/** @ingroup disp_pd
+ This structure represents different audio commands
+*/
+typedef struct
+{
+ gdl_hdmi_audio_cmd_id_t cmd_id; ///< Audio command type
+
+ union ///< Audio command details
+ {
+ struct ///< Arguments for #GDL_HDMI_AUDIO_SET_FORMAT command.
+ {
+ gdl_hdmi_audio_fmt_t fmt; ///< Audio format
+ gdl_hdmi_audio_fs_t fs; ///< Sampling frequency
+ unsigned int ch; ///< Number of channels
+ gdl_hdmi_audio_ss_t ss; ///< Sample size [in bits]
+ gdl_hdmi_audio_speaker_map_t map;
+ ///< Speaker allocation map
+ } _set_config;
+
+ struct ///< Arguments for #GDL_HDMI_AUDIO_GET_CAPS command.
+ {
+ unsigned int index; ///< Capability number
+ gdl_hdmi_audio_cap_t cap; ///< Capability content
+ } _get_caps;
+
+ struct ///< Arguments for #GDL_HDMI_AUDIO_WRITE command
+ {
+ unsigned int samples; ///< Audio samples buffer address
+ unsigned int silence; ///< Audio silence buffer address
+ unsigned int size; ///< Audio data buffer size
+ unsigned int id; ///< Audio buffer ID
+ gdl_boolean_t sync; ///< Type of write operation
+ } _write;
+
+ struct ///< Arguments for #GDL_HDMI_AUDIO_STOP command
+ {
+ gdl_boolean_t sync; ///< Type of stop request
+ } _stop;
+
+ } data;
+
+} gdl_hdmi_audio_ctrl_t;
+
+/** @ingroup disp_pd
+ This structure represents generic HDMI packet
+*/
+typedef struct
+{
+ unsigned char header[3];
+ unsigned char data[28];
+} gdl_hdmi_packet_t;
+
+/** @ingroup disp_pd
+ This structure represents HDMI packet slot number
+*/
+typedef enum
+{
+ GDL_HDMI_PACKET_SLOT_0,
+ GDL_HDMI_PACKET_SLOT_1,
+} gdl_hdmi_packet_slot_t;
+
+/** @ingroup disp_pd
+ This structure is used to submit data via #GDL_PD_SEND_HDMI_PACKET service
+ provided by #gdl_port_send
+*/
+typedef struct
+{
+ gdl_hdmi_packet_t packet;
+ gdl_hdmi_packet_slot_t slot;
+} gdl_hdmi_packet_info_t;
+
+/** @ingroup disp_pd
+* This enumeration represents YC Delay amounts
+*/
+typedef enum
+{
+ GDL_YC_DELAY_NONE, ///< No YC delay
+ GDL_YC_DELAY_ADVANCE, ///< Y 0.5 Pixel Advance delay
+ GDL_YC_DELAY_MINUS ///< Y 1.0 Pixel delay
+} gdl_yc_delay_t;
+
+/** @ingroup disp_pd
+* This enumeration represents vswing equalization values
+*/
+typedef enum
+{
+ GDL_HDMI_EQUALIZE_NONE, ///< Equalization disabled
+ GDL_HDMI_EQUALIZE_10, ///< Equalization 10%, not supported on CE3100
+ GDL_HDMI_EQUALIZE_20, ///< Equalization 20%
+ GDL_HDMI_EQUALIZE_30, ///< Equalization 30%, not supported on CE3100
+ GDL_HDMI_EQUALIZE_40, ///< Equalization 40%
+ GDL_HDMI_EQUALIZE_50, ///< Equalization 50%, not supported on CE3100
+ GDL_HDMI_EQUALIZE_60, ///< Equalization 60%
+ GDL_HDMI_EQUALIZE_70, ///< Equalization 70%, not supported on CE3100
+ GDL_HDMI_EQUALIZE_80, ///< Equalization 80%
+} gdl_hdmi_equalize_t;
+
+/** @ingroup disp_pd
+* This enumeration represents transmit level amplitude values
+*/
+typedef enum
+{
+ GDL_HDMI_TRANSMIT_LEVEL_300, ///< 300 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_325, ///< 325 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_350, ///< 350 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_375, ///< 375 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_400, ///< 400 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_425, ///< 425 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_450, ///< 450 mV
+ GDL_HDMI_TRANSMIT_LEVEL_475, ///< 475 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_500, ///< 500 mV
+ GDL_HDMI_TRANSMIT_LEVEL_525, ///< 525 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_550, ///< 550 mV
+ GDL_HDMI_TRANSMIT_LEVEL_575, ///< 575 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_600, ///< 600 mV
+ GDL_HDMI_TRANSMIT_LEVEL_625, ///< 625 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_650, ///< 650 mV, not supported on CE3100
+ GDL_HDMI_TRANSMIT_LEVEL_675, ///< 675 mV, not supported on CE3100
+} gdl_hdmi_transmit_level_t;
+
+/** @ingroup disp_pd
+* This enumeration represents termination impedance values
+*/
+typedef enum
+{
+ GDL_HDMI_TERMINATION_OPEN, ///< Open
+ GDL_HDMI_TERMINATION_677, ///< 677 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_398, ///< 398 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_250, ///< 250 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_200, ///< 200 Ohm
+ GDL_HDMI_TERMINATION_100, ///< 100 Ohm
+ GDL_HDMI_TERMINATION_88, ///< 88 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_78, ///< 78 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_72, ///< 72 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_67, ///< 67 Ohm
+ GDL_HDMI_TERMINATION_65, ///< 65 Ohm, not supported on CE3100
+ GDL_HDMI_TERMINATION_50, ///< 50 Ohm
+} gdl_hdmi_termination_t;
+
+/** @ingroup disp_pd
+* This enumeration represents band gap resistor values
+*/
+typedef enum
+{
+ GDL_HDMI_BGLVL_788, ///< 0.788v not supported on Sodaville
+ GDL_HDMI_BGLVL_818, ///< 0.818v not supported on Sodaville
+ GDL_HDMI_BGLVL_854, ///< 0.854v not supported on Sodaville [CE3100 default]
+ GDL_HDMI_BGLVL_891, ///< 0.891v not supported on Sodaville
+ GDL_HDMI_BGLVL_820, ///< 0.82v not supported on CE3100 [Sodaville default]
+ GDL_HDMI_BGLVL_800, ///< 0.80v not supported on CE3100
+ GDL_HDMI_BGLVL_780, ///< 0.78v not supported on CE3100
+ GDL_HDMI_BGLVL_760, ///< 0.76v not supported on CE3100
+ GDL_HDMI_BGLVL_750, ///< 0.75v not supported on CE3100
+ GDL_HDMI_BGLVL_720, ///< 0.72v not supported on CE3100
+ GDL_HDMI_BGLVL_660, ///< 0.66v not supported on CE3100
+ GDL_HDMI_BGLVL_600, ///< 0.60v not supported on CE3100
+} gdl_hdmi_bglvl_t;
+
+/** @ingroup disp_pd
+* This enumeration represents different HDCP states
+*/
+typedef enum
+{
+ GDL_HDCP_STATUS_OFF, ///< HDCP is disabled
+ GDL_HDCP_STATUS_IN_PROGRESS, ///< HDCP is enabled but not authenticated yet
+ GDL_HDCP_STATUS_ON, ///< HDCP is enabled and is authenticated
+} gdl_hdcp_status_t;
+
+/** @ingroup disp_pd
+* This enumeration represents audio clock values with respect to which
+* internal audio divisor value is chosen
+*/
+typedef enum
+{
+ GDL_HDMI_AUDIO_CLOCK_24, ///< Audio clock is running at 24MHz
+ GDL_HDMI_AUDIO_CLOCK_36, ///< Audio clock is running at 36Mhz
+} gdl_hdmi_audio_clock_t;
+
+
+#endif // _GDL_PD_H_