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