162306a36Sopenharmony_ci/****************************************************************************\
262306a36Sopenharmony_ci*
362306a36Sopenharmony_ci*  Module Name    displayobjectsoc15.h
462306a36Sopenharmony_ci*  Project
562306a36Sopenharmony_ci*  Device
662306a36Sopenharmony_ci*
762306a36Sopenharmony_ci*  Description    Contains the common definitions for display objects for SoC15 products.
862306a36Sopenharmony_ci*
962306a36Sopenharmony_ci*  Copyright 2014 Advanced Micro Devices, Inc.
1062306a36Sopenharmony_ci*
1162306a36Sopenharmony_ci* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
1262306a36Sopenharmony_ci* and associated documentation files (the "Software"), to deal in the Software without restriction,
1362306a36Sopenharmony_ci* including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
1462306a36Sopenharmony_ci* and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
1562306a36Sopenharmony_ci* subject to the following conditions:
1662306a36Sopenharmony_ci*
1762306a36Sopenharmony_ci* The above copyright notice and this permission notice shall be included in all copies or substantial
1862306a36Sopenharmony_ci* portions of the Software.
1962306a36Sopenharmony_ci*
2062306a36Sopenharmony_ci* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2162306a36Sopenharmony_ci* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2262306a36Sopenharmony_ci* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
2362306a36Sopenharmony_ci* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
2462306a36Sopenharmony_ci* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
2562306a36Sopenharmony_ci* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2662306a36Sopenharmony_ci* OTHER DEALINGS IN THE SOFTWARE.
2762306a36Sopenharmony_ci*
2862306a36Sopenharmony_ci\****************************************************************************/
2962306a36Sopenharmony_ci#ifndef _DISPLAY_OBJECT_SOC15_H_
3062306a36Sopenharmony_ci#define _DISPLAY_OBJECT_SOC15_H_
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#if defined(_X86_)
3362306a36Sopenharmony_ci#pragma pack(1)
3462306a36Sopenharmony_ci#endif
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci/****************************************************
3862306a36Sopenharmony_ci* Display Object Type Definition
3962306a36Sopenharmony_ci*****************************************************/
4062306a36Sopenharmony_cienum display_object_type{
4162306a36Sopenharmony_ciDISPLAY_OBJECT_TYPE_NONE						=0x00,
4262306a36Sopenharmony_ciDISPLAY_OBJECT_TYPE_GPU							=0x01,
4362306a36Sopenharmony_ciDISPLAY_OBJECT_TYPE_ENCODER						=0x02,
4462306a36Sopenharmony_ciDISPLAY_OBJECT_TYPE_CONNECTOR					=0x03
4562306a36Sopenharmony_ci};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci/****************************************************
4862306a36Sopenharmony_ci* Encorder Object Type Definition
4962306a36Sopenharmony_ci*****************************************************/
5062306a36Sopenharmony_cienum encoder_object_type{
5162306a36Sopenharmony_ciENCODER_OBJECT_ID_NONE							 =0x00,
5262306a36Sopenharmony_ciENCODER_OBJECT_ID_INTERNAL_UNIPHY				 =0x01,
5362306a36Sopenharmony_ciENCODER_OBJECT_ID_INTERNAL_UNIPHY1				 =0x02,
5462306a36Sopenharmony_ciENCODER_OBJECT_ID_INTERNAL_UNIPHY2				 =0x03,
5562306a36Sopenharmony_ci};
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci/****************************************************
5962306a36Sopenharmony_ci* Connector Object ID Definition
6062306a36Sopenharmony_ci*****************************************************/
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cienum connector_object_type{
6362306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_NONE						  =0x00,
6462306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D			  =0x01,
6562306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D				  =0x02,
6662306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_HDMI_TYPE_A					  =0x03,
6762306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_LVDS						  =0x04,
6862306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_DISPLAYPORT					  =0x05,
6962306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_eDP							  =0x06,
7062306a36Sopenharmony_ciCONNECTOR_OBJECT_ID_OPM							  =0x07
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci/****************************************************
7562306a36Sopenharmony_ci* Protection Object ID Definition
7662306a36Sopenharmony_ci*****************************************************/
7762306a36Sopenharmony_ci//No need
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci/****************************************************
8062306a36Sopenharmony_ci*  Object ENUM ID Definition
8162306a36Sopenharmony_ci*****************************************************/
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_cienum object_enum_id{
8462306a36Sopenharmony_ciOBJECT_ENUM_ID1									  =0x01,
8562306a36Sopenharmony_ciOBJECT_ENUM_ID2									  =0x02,
8662306a36Sopenharmony_ciOBJECT_ENUM_ID3									  =0x03,
8762306a36Sopenharmony_ciOBJECT_ENUM_ID4									  =0x04,
8862306a36Sopenharmony_ciOBJECT_ENUM_ID5									  =0x05,
8962306a36Sopenharmony_ciOBJECT_ENUM_ID6									  =0x06
9062306a36Sopenharmony_ci};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci/****************************************************
9362306a36Sopenharmony_ci*Object ID Bit definition
9462306a36Sopenharmony_ci*****************************************************/
9562306a36Sopenharmony_cienum object_id_bit{
9662306a36Sopenharmony_ciOBJECT_ID_MASK									  =0x00FF,
9762306a36Sopenharmony_ciENUM_ID_MASK									  =0x0F00,
9862306a36Sopenharmony_ciOBJECT_TYPE_MASK								  =0xF000,
9962306a36Sopenharmony_ciOBJECT_ID_SHIFT									  =0x00,
10062306a36Sopenharmony_ciENUM_ID_SHIFT									  =0x08,
10162306a36Sopenharmony_ciOBJECT_TYPE_SHIFT								  =0x0C
10262306a36Sopenharmony_ci};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci/****************************************************
10662306a36Sopenharmony_ci* GPU Object definition - Shared with BIOS
10762306a36Sopenharmony_ci*****************************************************/
10862306a36Sopenharmony_cienum gpu_objet_def{
10962306a36Sopenharmony_ciGPU_ENUM_ID1                            =( DISPLAY_OBJECT_TYPE_GPU << OBJECT_TYPE_SHIFT | OBJECT_ENUM_ID1 << ENUM_ID_SHIFT)
11062306a36Sopenharmony_ci};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci/****************************************************
11362306a36Sopenharmony_ci* Encoder Object definition - Shared with BIOS
11462306a36Sopenharmony_ci*****************************************************/
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_cienum encoder_objet_def{
11762306a36Sopenharmony_ciENCODER_INTERNAL_UNIPHY_ENUM_ID1         =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
11862306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
11962306a36Sopenharmony_ci                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT),
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciENCODER_INTERNAL_UNIPHY_ENUM_ID2         =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
12262306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
12362306a36Sopenharmony_ci                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT),
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciENCODER_INTERNAL_UNIPHY1_ENUM_ID1        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
12662306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
12762306a36Sopenharmony_ci                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT),
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciENCODER_INTERNAL_UNIPHY1_ENUM_ID2        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
13062306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
13162306a36Sopenharmony_ci                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT),
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciENCODER_INTERNAL_UNIPHY2_ENUM_ID1        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
13462306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
13562306a36Sopenharmony_ci                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT),
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciENCODER_INTERNAL_UNIPHY2_ENUM_ID2        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
13862306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
13962306a36Sopenharmony_ci                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT)
14062306a36Sopenharmony_ci};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci/****************************************************
14462306a36Sopenharmony_ci* Connector Object definition - Shared with BIOS
14562306a36Sopenharmony_ci*****************************************************/
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_cienum connector_objet_def{
14962306a36Sopenharmony_ciCONNECTOR_LVDS_ENUM_ID1							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
15062306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
15162306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT),
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ciCONNECTOR_eDP_ENUM_ID1							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
15562306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
15662306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_eDP << OBJECT_ID_SHIFT),
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciCONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1			=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
15962306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
16062306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT),
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ciCONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID2			=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
16362306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
16462306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT),
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ciCONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1				=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
16862306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
16962306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT),
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciCONNECTOR_DUAL_LINK_DVI_D_ENUM_ID2				=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
17262306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
17362306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT),
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ciCONNECTOR_HDMI_TYPE_A_ENUM_ID1					=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
17662306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
17762306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT),
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ciCONNECTOR_HDMI_TYPE_A_ENUM_ID2					=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
18062306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
18162306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT),
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ciCONNECTOR_DISPLAYPORT_ENUM_ID1					=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
18462306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
18562306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ciCONNECTOR_DISPLAYPORT_ENUM_ID2					=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
18862306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
18962306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ciCONNECTOR_DISPLAYPORT_ENUM_ID3					=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
19262306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\
19362306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ciCONNECTOR_DISPLAYPORT_ENUM_ID4					=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
19662306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\
19762306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ciCONNECTOR_OPM_ENUM_ID1							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
20062306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
20162306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_A
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ciCONNECTOR_OPM_ENUM_ID2							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
20462306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
20562306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_B
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ciCONNECTOR_OPM_ENUM_ID3							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
20862306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\
20962306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_C
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ciCONNECTOR_OPM_ENUM_ID4							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
21262306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\
21362306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_D
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ciCONNECTOR_OPM_ENUM_ID5							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
21662306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID5 << ENUM_ID_SHIFT |\
21762306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_LVDS_TXxx
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ciCONNECTOR_OPM_ENUM_ID6							=( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
22162306a36Sopenharmony_ci                                                 OBJECT_ENUM_ID6 << ENUM_ID_SHIFT |\
22262306a36Sopenharmony_ci                                                 CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT)         //Mapping to MXM_LVDS_TXxx
22362306a36Sopenharmony_ci};
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci/****************************************************
22662306a36Sopenharmony_ci* Router Object ID definition - Shared with BIOS
22762306a36Sopenharmony_ci*****************************************************/
22862306a36Sopenharmony_ci//No Need, in future we ever need, we can define a record in atomfirwareSoC15.h associated with an object that has this router
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci/****************************************************
23262306a36Sopenharmony_ci* PROTECTION Object ID definition - Shared with BIOS
23362306a36Sopenharmony_ci*****************************************************/
23462306a36Sopenharmony_ci//No need,in future we ever need, all display path are capable of protection now.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci/****************************************************
23762306a36Sopenharmony_ci* Generic Object ID definition - Shared with BIOS
23862306a36Sopenharmony_ci*****************************************************/
23962306a36Sopenharmony_ci//No need, in future we ever need like GLsync, we can define a record in atomfirwareSoC15.h associated with an object.
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci#if defined(_X86_)
24362306a36Sopenharmony_ci#pragma pack()
24462306a36Sopenharmony_ci#endif
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci#endif
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci
250