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 *****************************************************/ 42 enum display_object_type{ 43 DISPLAY_OBJECT_TYPE_NONE =0x00, 44 DISPLAY_OBJECT_TYPE_GPU =0x01, 45 DISPLAY_OBJECT_TYPE_ENCODER =0x02, 46 DISPLAY_OBJECT_TYPE_CONNECTOR =0x03 47 }; 48 49 /**************************************************** 50 * Encorder Object Type Definition 51 *****************************************************/ 52 enum encoder_object_type{ 53 ENCODER_OBJECT_ID_NONE =0x00, 54 ENCODER_OBJECT_ID_INTERNAL_UNIPHY =0x01, 55 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 =0x02, 56 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 =0x03, 57 }; 58 59 60 /**************************************************** 61 * Connector Object ID Definition 62 *****************************************************/ 63 64 enum connector_object_type{ 65 CONNECTOR_OBJECT_ID_NONE =0x00, 66 CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D =0x01, 67 CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D =0x02, 68 CONNECTOR_OBJECT_ID_HDMI_TYPE_A =0x03, 69 CONNECTOR_OBJECT_ID_LVDS =0x04, 70 CONNECTOR_OBJECT_ID_DISPLAYPORT =0x05, 71 CONNECTOR_OBJECT_ID_eDP =0x06, 72 CONNECTOR_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 85 enum object_enum_id{ 86 OBJECT_ENUM_ID1 =0x01, 87 OBJECT_ENUM_ID2 =0x02, 88 OBJECT_ENUM_ID3 =0x03, 89 OBJECT_ENUM_ID4 =0x04, 90 OBJECT_ENUM_ID5 =0x05, 91 OBJECT_ENUM_ID6 =0x06 92 }; 93 94 /**************************************************** 95 *Object ID Bit definition 96 *****************************************************/ 97 enum object_id_bit{ 98 OBJECT_ID_MASK =0x00FF, 99 ENUM_ID_MASK =0x0F00, 100 OBJECT_TYPE_MASK =0xF000, 101 OBJECT_ID_SHIFT =0x00, 102 ENUM_ID_SHIFT =0x08, 103 OBJECT_TYPE_SHIFT =0x0C 104 }; 105 106 107 /**************************************************** 108 * GPU Object definition - Shared with BIOS 109 *****************************************************/ 110 enum gpu_objet_def{ 111 GPU_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 118 enum encoder_objet_def{ 119 ENCODER_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 123 ENCODER_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 127 ENCODER_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 131 ENCODER_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 135 ENCODER_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 139 ENCODER_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 150 enum connector_objet_def{ 151 CONNECTOR_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 156 CONNECTOR_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 160 CONNECTOR_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 164 CONNECTOR_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 169 CONNECTOR_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 173 CONNECTOR_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 177 CONNECTOR_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 181 CONNECTOR_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 185 CONNECTOR_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 189 CONNECTOR_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 193 CONNECTOR_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 197 CONNECTOR_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 201 CONNECTOR_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 205 CONNECTOR_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 209 CONNECTOR_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 213 CONNECTOR_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 217 CONNECTOR_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 222 CONNECTOR_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