1*b843c749SSergey Zigachev /****************************************************************************\ 2*b843c749SSergey Zigachev * 3*b843c749SSergey Zigachev * Module Name displayobjectsoc15.h 4*b843c749SSergey Zigachev * Project 5*b843c749SSergey Zigachev * Device 6*b843c749SSergey Zigachev * 7*b843c749SSergey Zigachev * Description Contains the common definitions for display objects for SoC15 products. 8*b843c749SSergey Zigachev * 9*b843c749SSergey Zigachev * Copyright 2014 Advanced Micro Devices, Inc. 10*b843c749SSergey Zigachev * 11*b843c749SSergey Zigachev * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 12*b843c749SSergey Zigachev * and associated documentation files (the "Software"), to deal in the Software without restriction, 13*b843c749SSergey Zigachev * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 14*b843c749SSergey Zigachev * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 15*b843c749SSergey Zigachev * subject to the following conditions: 16*b843c749SSergey Zigachev * 17*b843c749SSergey Zigachev * The above copyright notice and this permission notice shall be included in all copies or substantial 18*b843c749SSergey Zigachev * portions of the Software. 19*b843c749SSergey Zigachev * 20*b843c749SSergey Zigachev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21*b843c749SSergey Zigachev * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22*b843c749SSergey Zigachev * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23*b843c749SSergey Zigachev * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 24*b843c749SSergey Zigachev * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 25*b843c749SSergey Zigachev * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 26*b843c749SSergey Zigachev * OTHER DEALINGS IN THE SOFTWARE. 27*b843c749SSergey Zigachev * 28*b843c749SSergey Zigachev \****************************************************************************/ 29*b843c749SSergey Zigachev #ifndef _DISPLAY_OBJECT_SOC15_H_ 30*b843c749SSergey Zigachev #define _DISPLAY_OBJECT_SOC15_H_ 31*b843c749SSergey Zigachev 32*b843c749SSergey Zigachev #if defined(_X86_) 33*b843c749SSergey Zigachev #pragma pack(1) 34*b843c749SSergey Zigachev #endif 35*b843c749SSergey Zigachev 36*b843c749SSergey Zigachev 37*b843c749SSergey Zigachev /**************************************************** 38*b843c749SSergey Zigachev * Display Object Type Definition 39*b843c749SSergey Zigachev *****************************************************/ 40*b843c749SSergey Zigachev enum display_object_type{ 41*b843c749SSergey Zigachev DISPLAY_OBJECT_TYPE_NONE =0x00, 42*b843c749SSergey Zigachev DISPLAY_OBJECT_TYPE_GPU =0x01, 43*b843c749SSergey Zigachev DISPLAY_OBJECT_TYPE_ENCODER =0x02, 44*b843c749SSergey Zigachev DISPLAY_OBJECT_TYPE_CONNECTOR =0x03 45*b843c749SSergey Zigachev }; 46*b843c749SSergey Zigachev 47*b843c749SSergey Zigachev /**************************************************** 48*b843c749SSergey Zigachev * Encorder Object Type Definition 49*b843c749SSergey Zigachev *****************************************************/ 50*b843c749SSergey Zigachev enum encoder_object_type{ 51*b843c749SSergey Zigachev ENCODER_OBJECT_ID_NONE =0x00, 52*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY =0x01, 53*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 =0x02, 54*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 =0x03, 55*b843c749SSergey Zigachev }; 56*b843c749SSergey Zigachev 57*b843c749SSergey Zigachev 58*b843c749SSergey Zigachev /**************************************************** 59*b843c749SSergey Zigachev * Connector Object ID Definition 60*b843c749SSergey Zigachev *****************************************************/ 61*b843c749SSergey Zigachev 62*b843c749SSergey Zigachev enum connector_object_type{ 63*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_NONE =0x00, 64*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D =0x01, 65*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D =0x02, 66*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_HDMI_TYPE_A =0x03, 67*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_LVDS =0x04, 68*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DISPLAYPORT =0x05, 69*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_eDP =0x06, 70*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM =0x07 71*b843c749SSergey Zigachev }; 72*b843c749SSergey Zigachev 73*b843c749SSergey Zigachev 74*b843c749SSergey Zigachev /**************************************************** 75*b843c749SSergey Zigachev * Protection Object ID Definition 76*b843c749SSergey Zigachev *****************************************************/ 77*b843c749SSergey Zigachev //No need 78*b843c749SSergey Zigachev 79*b843c749SSergey Zigachev /**************************************************** 80*b843c749SSergey Zigachev * Object ENUM ID Definition 81*b843c749SSergey Zigachev *****************************************************/ 82*b843c749SSergey Zigachev 83*b843c749SSergey Zigachev enum object_enum_id{ 84*b843c749SSergey Zigachev OBJECT_ENUM_ID1 =0x01, 85*b843c749SSergey Zigachev OBJECT_ENUM_ID2 =0x02, 86*b843c749SSergey Zigachev OBJECT_ENUM_ID3 =0x03, 87*b843c749SSergey Zigachev OBJECT_ENUM_ID4 =0x04, 88*b843c749SSergey Zigachev OBJECT_ENUM_ID5 =0x05, 89*b843c749SSergey Zigachev OBJECT_ENUM_ID6 =0x06 90*b843c749SSergey Zigachev }; 91*b843c749SSergey Zigachev 92*b843c749SSergey Zigachev /**************************************************** 93*b843c749SSergey Zigachev *Object ID Bit definition 94*b843c749SSergey Zigachev *****************************************************/ 95*b843c749SSergey Zigachev enum object_id_bit{ 96*b843c749SSergey Zigachev OBJECT_ID_MASK =0x00FF, 97*b843c749SSergey Zigachev ENUM_ID_MASK =0x0F00, 98*b843c749SSergey Zigachev OBJECT_TYPE_MASK =0xF000, 99*b843c749SSergey Zigachev OBJECT_ID_SHIFT =0x00, 100*b843c749SSergey Zigachev ENUM_ID_SHIFT =0x08, 101*b843c749SSergey Zigachev OBJECT_TYPE_SHIFT =0x0C 102*b843c749SSergey Zigachev }; 103*b843c749SSergey Zigachev 104*b843c749SSergey Zigachev 105*b843c749SSergey Zigachev /**************************************************** 106*b843c749SSergey Zigachev * GPU Object definition - Shared with BIOS 107*b843c749SSergey Zigachev *****************************************************/ 108*b843c749SSergey Zigachev enum gpu_objet_def{ 109*b843c749SSergey Zigachev GPU_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_GPU << OBJECT_TYPE_SHIFT | OBJECT_ENUM_ID1 << ENUM_ID_SHIFT) 110*b843c749SSergey Zigachev }; 111*b843c749SSergey Zigachev 112*b843c749SSergey Zigachev /**************************************************** 113*b843c749SSergey Zigachev * Encoder Object definition - Shared with BIOS 114*b843c749SSergey Zigachev *****************************************************/ 115*b843c749SSergey Zigachev 116*b843c749SSergey Zigachev enum encoder_objet_def{ 117*b843c749SSergey Zigachev ENCODER_INTERNAL_UNIPHY_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ 118*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 119*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT), 120*b843c749SSergey Zigachev 121*b843c749SSergey Zigachev ENCODER_INTERNAL_UNIPHY_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ 122*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 123*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT), 124*b843c749SSergey Zigachev 125*b843c749SSergey Zigachev ENCODER_INTERNAL_UNIPHY1_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ 126*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 127*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT), 128*b843c749SSergey Zigachev 129*b843c749SSergey Zigachev ENCODER_INTERNAL_UNIPHY1_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ 130*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 131*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT), 132*b843c749SSergey Zigachev 133*b843c749SSergey Zigachev ENCODER_INTERNAL_UNIPHY2_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ 134*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 135*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT), 136*b843c749SSergey Zigachev 137*b843c749SSergey Zigachev ENCODER_INTERNAL_UNIPHY2_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ 138*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 139*b843c749SSergey Zigachev ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) 140*b843c749SSergey Zigachev }; 141*b843c749SSergey Zigachev 142*b843c749SSergey Zigachev 143*b843c749SSergey Zigachev /**************************************************** 144*b843c749SSergey Zigachev * Connector Object definition - Shared with BIOS 145*b843c749SSergey Zigachev *****************************************************/ 146*b843c749SSergey Zigachev 147*b843c749SSergey Zigachev 148*b843c749SSergey Zigachev enum connector_objet_def{ 149*b843c749SSergey Zigachev CONNECTOR_LVDS_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 150*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 151*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT), 152*b843c749SSergey Zigachev 153*b843c749SSergey Zigachev 154*b843c749SSergey Zigachev CONNECTOR_eDP_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 155*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 156*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_eDP << OBJECT_ID_SHIFT), 157*b843c749SSergey Zigachev 158*b843c749SSergey Zigachev CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 159*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 160*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT), 161*b843c749SSergey Zigachev 162*b843c749SSergey Zigachev CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 163*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 164*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT), 165*b843c749SSergey Zigachev 166*b843c749SSergey Zigachev 167*b843c749SSergey Zigachev CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 168*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 169*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT), 170*b843c749SSergey Zigachev 171*b843c749SSergey Zigachev CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 172*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 173*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT), 174*b843c749SSergey Zigachev 175*b843c749SSergey Zigachev CONNECTOR_HDMI_TYPE_A_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 176*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 177*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT), 178*b843c749SSergey Zigachev 179*b843c749SSergey Zigachev CONNECTOR_HDMI_TYPE_A_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 180*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 181*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT), 182*b843c749SSergey Zigachev 183*b843c749SSergey Zigachev CONNECTOR_DISPLAYPORT_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 184*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 185*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT), 186*b843c749SSergey Zigachev 187*b843c749SSergey Zigachev CONNECTOR_DISPLAYPORT_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 188*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 189*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT), 190*b843c749SSergey Zigachev 191*b843c749SSergey Zigachev CONNECTOR_DISPLAYPORT_ENUM_ID3 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 192*b843c749SSergey Zigachev OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ 193*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT), 194*b843c749SSergey Zigachev 195*b843c749SSergey Zigachev CONNECTOR_DISPLAYPORT_ENUM_ID4 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 196*b843c749SSergey Zigachev OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\ 197*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT), 198*b843c749SSergey Zigachev 199*b843c749SSergey Zigachev CONNECTOR_OPM_ENUM_ID1 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 200*b843c749SSergey Zigachev OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ 201*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT), //Mapping to MXM_DP_A 202*b843c749SSergey Zigachev 203*b843c749SSergey Zigachev CONNECTOR_OPM_ENUM_ID2 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 204*b843c749SSergey Zigachev OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ 205*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT), //Mapping to MXM_DP_B 206*b843c749SSergey Zigachev 207*b843c749SSergey Zigachev CONNECTOR_OPM_ENUM_ID3 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 208*b843c749SSergey Zigachev OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ 209*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT), //Mapping to MXM_DP_C 210*b843c749SSergey Zigachev 211*b843c749SSergey Zigachev CONNECTOR_OPM_ENUM_ID4 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 212*b843c749SSergey Zigachev OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\ 213*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT), //Mapping to MXM_DP_D 214*b843c749SSergey Zigachev 215*b843c749SSergey Zigachev CONNECTOR_OPM_ENUM_ID5 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 216*b843c749SSergey Zigachev OBJECT_ENUM_ID5 << ENUM_ID_SHIFT |\ 217*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT), //Mapping to MXM_LVDS_TXxx 218*b843c749SSergey Zigachev 219*b843c749SSergey Zigachev 220*b843c749SSergey Zigachev CONNECTOR_OPM_ENUM_ID6 =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ 221*b843c749SSergey Zigachev OBJECT_ENUM_ID6 << ENUM_ID_SHIFT |\ 222*b843c749SSergey Zigachev CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT) //Mapping to MXM_LVDS_TXxx 223*b843c749SSergey Zigachev }; 224*b843c749SSergey Zigachev 225*b843c749SSergey Zigachev /**************************************************** 226*b843c749SSergey Zigachev * Router Object ID definition - Shared with BIOS 227*b843c749SSergey Zigachev *****************************************************/ 228*b843c749SSergey Zigachev //No Need, in future we ever need, we can define a record in atomfirwareSoC15.h associated with an object that has this router 229*b843c749SSergey Zigachev 230*b843c749SSergey Zigachev 231*b843c749SSergey Zigachev /**************************************************** 232*b843c749SSergey Zigachev * PROTECTION Object ID definition - Shared with BIOS 233*b843c749SSergey Zigachev *****************************************************/ 234*b843c749SSergey Zigachev //No need,in future we ever need, all display path are capable of protection now. 235*b843c749SSergey Zigachev 236*b843c749SSergey Zigachev /**************************************************** 237*b843c749SSergey Zigachev * Generic Object ID definition - Shared with BIOS 238*b843c749SSergey Zigachev *****************************************************/ 239*b843c749SSergey Zigachev //No need, in future we ever need like GLsync, we can define a record in atomfirwareSoC15.h associated with an object. 240*b843c749SSergey Zigachev 241*b843c749SSergey Zigachev 242*b843c749SSergey Zigachev #if defined(_X86_) 243*b843c749SSergey Zigachev #pragma pack() 244*b843c749SSergey Zigachev #endif 245*b843c749SSergey Zigachev 246*b843c749SSergey Zigachev #endif 247*b843c749SSergey Zigachev 248*b843c749SSergey Zigachev 249*b843c749SSergey Zigachev 250