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