Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Copyright 2016 Advanced Micro Devices, Inc.
0003  *
0004  * Permission is hereby granted, free of charge, to any person obtaining a
0005  * copy of this software and associated documentation files (the "Software"),
0006  * to deal in the Software without restriction, including without limitation
0007  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
0008  * and/or sell copies of the Software, and to permit persons to whom the
0009  * Software is furnished to do so, subject to the following conditions:
0010  *
0011  * The above copyright notice and this permission notice shall be included in
0012  * all copies or substantial portions of the Software.
0013  *
0014  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0015  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0016  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
0017  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
0018  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
0019  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0020  * OTHER DEALINGS IN THE SOFTWARE.
0021  *
0022  */
0023 #ifndef _VEGA10_PPTABLE_H_
0024 #define _VEGA10_PPTABLE_H_
0025 
0026 #pragma pack(push, 1)
0027 
0028 #define ATOM_VEGA10_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK 0x0f
0029 #define ATOM_VEGA10_PP_FANPARAMETERS_NOFAN                                 0x80
0030 
0031 #define ATOM_VEGA10_PP_THERMALCONTROLLER_NONE      0
0032 #define ATOM_VEGA10_PP_THERMALCONTROLLER_LM96163   17
0033 #define ATOM_VEGA10_PP_THERMALCONTROLLER_VEGA10    24
0034 
0035 #define ATOM_VEGA10_PP_THERMALCONTROLLER_ADT7473_WITH_INTERNAL   0x89
0036 #define ATOM_VEGA10_PP_THERMALCONTROLLER_EMC2103_WITH_INTERNAL   0x8D
0037 
0038 #define ATOM_VEGA10_PP_PLATFORM_CAP_POWERPLAY                   0x1
0039 #define ATOM_VEGA10_PP_PLATFORM_CAP_SBIOSPOWERSOURCE            0x2
0040 #define ATOM_VEGA10_PP_PLATFORM_CAP_HARDWAREDC                  0x4
0041 #define ATOM_VEGA10_PP_PLATFORM_CAP_BACO                        0x8
0042 #define ATOM_VEGA10_PP_PLATFORM_COMBINE_PCC_WITH_THERMAL_SIGNAL 0x10
0043 
0044 
0045 /* ATOM_PPLIB_NONCLOCK_INFO::usClassification */
0046 #define ATOM_PPLIB_CLASSIFICATION_UI_MASK               0x0007
0047 #define ATOM_PPLIB_CLASSIFICATION_UI_SHIFT              0
0048 #define ATOM_PPLIB_CLASSIFICATION_UI_NONE               0
0049 #define ATOM_PPLIB_CLASSIFICATION_UI_BATTERY            1
0050 #define ATOM_PPLIB_CLASSIFICATION_UI_BALANCED           3
0051 #define ATOM_PPLIB_CLASSIFICATION_UI_PERFORMANCE        5
0052 /* 2, 4, 6, 7 are reserved */
0053 
0054 #define ATOM_PPLIB_CLASSIFICATION_BOOT                  0x0008
0055 #define ATOM_PPLIB_CLASSIFICATION_THERMAL               0x0010
0056 #define ATOM_PPLIB_CLASSIFICATION_LIMITEDPOWERSOURCE    0x0020
0057 #define ATOM_PPLIB_CLASSIFICATION_REST                  0x0040
0058 #define ATOM_PPLIB_CLASSIFICATION_FORCED                0x0080
0059 #define ATOM_PPLIB_CLASSIFICATION_ACPI                  0x1000
0060 
0061 /* ATOM_PPLIB_NONCLOCK_INFO::usClassification2 */
0062 #define ATOM_PPLIB_CLASSIFICATION2_LIMITEDPOWERSOURCE_2 0x0001
0063 
0064 #define ATOM_Vega10_DISALLOW_ON_DC                   0x00004000
0065 #define ATOM_Vega10_ENABLE_VARIBRIGHT                0x00008000
0066 
0067 #define ATOM_Vega10_TABLE_REVISION_VEGA10         8
0068 
0069 #define ATOM_Vega10_VoltageMode_AVFS_Interpolate     0
0070 #define ATOM_Vega10_VoltageMode_AVFS_WorstCase       1
0071 #define ATOM_Vega10_VoltageMode_Static               2
0072 
0073 typedef struct _ATOM_Vega10_POWERPLAYTABLE {
0074     struct atom_common_table_header sHeader;
0075     UCHAR  ucTableRevision;
0076     USHORT usTableSize;                        /* the size of header structure */
0077     ULONG  ulGoldenPPID;                       /* PPGen use only */
0078     ULONG  ulGoldenRevision;                   /* PPGen use only */
0079     USHORT usFormatID;                         /* PPGen use only */
0080     ULONG  ulPlatformCaps;                     /* See ATOM_Vega10_CAPS_* */
0081     ULONG  ulMaxODEngineClock;                 /* For Overdrive. */
0082     ULONG  ulMaxODMemoryClock;                 /* For Overdrive. */
0083     USHORT usPowerControlLimit;
0084     USHORT usUlvVoltageOffset;                 /* in mv units */
0085     USHORT usUlvSmnclkDid;
0086     USHORT usUlvMp1clkDid;
0087     USHORT usUlvGfxclkBypass;
0088     USHORT usGfxclkSlewRate;
0089     UCHAR  ucGfxVoltageMode;
0090     UCHAR  ucSocVoltageMode;
0091     UCHAR  ucUclkVoltageMode;
0092     UCHAR  ucUvdVoltageMode;
0093     UCHAR  ucVceVoltageMode;
0094     UCHAR  ucMp0VoltageMode;
0095     UCHAR  ucDcefVoltageMode;
0096     USHORT usStateArrayOffset;                 /* points to ATOM_Vega10_State_Array */
0097     USHORT usFanTableOffset;                   /* points to ATOM_Vega10_Fan_Table */
0098     USHORT usThermalControllerOffset;          /* points to ATOM_Vega10_Thermal_Controller */
0099     USHORT usSocclkDependencyTableOffset;      /* points to ATOM_Vega10_SOCCLK_Dependency_Table */
0100     USHORT usMclkDependencyTableOffset;        /* points to ATOM_Vega10_MCLK_Dependency_Table */
0101     USHORT usGfxclkDependencyTableOffset;      /* points to ATOM_Vega10_GFXCLK_Dependency_Table */
0102     USHORT usDcefclkDependencyTableOffset;     /* points to ATOM_Vega10_DCEFCLK_Dependency_Table */
0103     USHORT usVddcLookupTableOffset;            /* points to ATOM_Vega10_Voltage_Lookup_Table */
0104     USHORT usVddmemLookupTableOffset;          /* points to ATOM_Vega10_Voltage_Lookup_Table */
0105     USHORT usMMDependencyTableOffset;          /* points to ATOM_Vega10_MM_Dependency_Table */
0106     USHORT usVCEStateTableOffset;              /* points to ATOM_Vega10_VCE_State_Table */
0107     USHORT usReserve;                          /* No PPM Support for Vega10 */
0108     USHORT usPowerTuneTableOffset;             /* points to ATOM_Vega10_PowerTune_Table */
0109     USHORT usHardLimitTableOffset;             /* points to ATOM_Vega10_Hard_Limit_Table */
0110     USHORT usVddciLookupTableOffset;           /* points to ATOM_Vega10_Voltage_Lookup_Table */
0111     USHORT usPCIETableOffset;                  /* points to ATOM_Vega10_PCIE_Table */
0112     USHORT usPixclkDependencyTableOffset;      /* points to ATOM_Vega10_PIXCLK_Dependency_Table */
0113     USHORT usDispClkDependencyTableOffset;     /* points to ATOM_Vega10_DISPCLK_Dependency_Table */
0114     USHORT usPhyClkDependencyTableOffset;      /* points to ATOM_Vega10_PHYCLK_Dependency_Table */
0115 } ATOM_Vega10_POWERPLAYTABLE;
0116 
0117 typedef struct _ATOM_Vega10_State {
0118     UCHAR  ucSocClockIndexHigh;
0119     UCHAR  ucSocClockIndexLow;
0120     UCHAR  ucGfxClockIndexHigh;
0121     UCHAR  ucGfxClockIndexLow;
0122     UCHAR  ucMemClockIndexHigh;
0123     UCHAR  ucMemClockIndexLow;
0124     USHORT usClassification;
0125     ULONG  ulCapsAndSettings;
0126     USHORT usClassification2;
0127 } ATOM_Vega10_State;
0128 
0129 typedef struct _ATOM_Vega10_State_Array {
0130     UCHAR ucRevId;
0131     UCHAR ucNumEntries;                                         /* Number of entries. */
0132     ATOM_Vega10_State states[1];                             /* Dynamically allocate entries. */
0133 } ATOM_Vega10_State_Array;
0134 
0135 typedef struct _ATOM_Vega10_CLK_Dependency_Record {
0136     ULONG  ulClk;                                               /* Frequency of Clock */
0137     UCHAR  ucVddInd;                                            /* Base voltage */
0138 } ATOM_Vega10_CLK_Dependency_Record;
0139 
0140 typedef struct _ATOM_Vega10_GFXCLK_Dependency_Record {
0141     ULONG  ulClk;                                               /* Clock Frequency */
0142     UCHAR  ucVddInd;                                            /* SOC_VDD index */
0143     USHORT usCKSVOffsetandDisable;                              /* Bits 0~30: Voltage offset for CKS, Bit 31: Disable/enable for the GFXCLK level. */
0144     USHORT usAVFSOffset;                                        /* AVFS Voltage offset */
0145 } ATOM_Vega10_GFXCLK_Dependency_Record;
0146 
0147 typedef struct _ATOM_Vega10_GFXCLK_Dependency_Record_V2 {
0148     ULONG  ulClk;
0149     UCHAR  ucVddInd;
0150     USHORT usCKSVOffsetandDisable;
0151     USHORT usAVFSOffset;
0152     UCHAR  ucACGEnable;
0153     UCHAR  ucReserved[3];
0154 } ATOM_Vega10_GFXCLK_Dependency_Record_V2;
0155 
0156 typedef struct _ATOM_Vega10_MCLK_Dependency_Record {
0157     ULONG  ulMemClk;                                            /* Clock Frequency */
0158     UCHAR  ucVddInd;                                            /* SOC_VDD index */
0159     UCHAR  ucVddMemInd;                                         /* MEM_VDD - only non zero for MCLK record */
0160     UCHAR  ucVddciInd;                                          /* VDDCI   = only non zero for MCLK record */
0161 } ATOM_Vega10_MCLK_Dependency_Record;
0162 
0163 typedef struct _ATOM_Vega10_GFXCLK_Dependency_Table {
0164     UCHAR ucRevId;
0165     UCHAR ucNumEntries;                 /* Number of entries. */
0166     ATOM_Vega10_GFXCLK_Dependency_Record entries[];     /* Dynamically allocate entries. */
0167 } ATOM_Vega10_GFXCLK_Dependency_Table;
0168 
0169 typedef struct _ATOM_Vega10_MCLK_Dependency_Table {
0170     UCHAR ucRevId;
0171     UCHAR ucNumEntries;                                         /* Number of entries. */
0172     ATOM_Vega10_MCLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
0173 } ATOM_Vega10_MCLK_Dependency_Table;
0174 
0175 typedef struct _ATOM_Vega10_SOCCLK_Dependency_Table {
0176     UCHAR ucRevId;
0177     UCHAR ucNumEntries;                                         /* Number of entries. */
0178     ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
0179 } ATOM_Vega10_SOCCLK_Dependency_Table;
0180 
0181 typedef struct _ATOM_Vega10_DCEFCLK_Dependency_Table {
0182     UCHAR ucRevId;
0183     UCHAR ucNumEntries;                                         /* Number of entries. */
0184     ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
0185 } ATOM_Vega10_DCEFCLK_Dependency_Table;
0186 
0187 typedef struct _ATOM_Vega10_PIXCLK_Dependency_Table {
0188     UCHAR ucRevId;
0189     UCHAR ucNumEntries;                                         /* Number of entries. */
0190     ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
0191 } ATOM_Vega10_PIXCLK_Dependency_Table;
0192 
0193 typedef struct _ATOM_Vega10_DISPCLK_Dependency_Table {
0194     UCHAR ucRevId;
0195     UCHAR ucNumEntries;                                         /* Number of entries.*/
0196     ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
0197 } ATOM_Vega10_DISPCLK_Dependency_Table;
0198 
0199 typedef struct _ATOM_Vega10_PHYCLK_Dependency_Table {
0200     UCHAR ucRevId;
0201     UCHAR ucNumEntries;                                         /* Number of entries. */
0202     ATOM_Vega10_CLK_Dependency_Record entries[1];            /* Dynamically allocate entries. */
0203 } ATOM_Vega10_PHYCLK_Dependency_Table;
0204 
0205 typedef struct _ATOM_Vega10_MM_Dependency_Record {
0206     UCHAR  ucVddcInd;                                           /* SOC_VDD voltage */
0207     ULONG  ulDClk;                                              /* UVD D-clock */
0208     ULONG  ulVClk;                                              /* UVD V-clock */
0209     ULONG  ulEClk;                                              /* VCE clock */
0210     ULONG  ulPSPClk;                                            /* PSP clock */
0211 } ATOM_Vega10_MM_Dependency_Record;
0212 
0213 typedef struct _ATOM_Vega10_MM_Dependency_Table {
0214     UCHAR ucRevId;
0215     UCHAR ucNumEntries;                                         /* Number of entries */
0216     ATOM_Vega10_MM_Dependency_Record entries[1];             /* Dynamically allocate entries */
0217 } ATOM_Vega10_MM_Dependency_Table;
0218 
0219 typedef struct _ATOM_Vega10_PCIE_Record {
0220     ULONG ulLCLK;                                               /* LClock */
0221     UCHAR ucPCIEGenSpeed;                                       /* PCIE Speed */
0222     UCHAR ucPCIELaneWidth;                                      /* PCIE Lane Width */
0223 } ATOM_Vega10_PCIE_Record;
0224 
0225 typedef struct _ATOM_Vega10_PCIE_Table {
0226     UCHAR  ucRevId;
0227     UCHAR  ucNumEntries;                                        /* Number of entries */
0228     ATOM_Vega10_PCIE_Record entries[1];                      /* Dynamically allocate entries. */
0229 } ATOM_Vega10_PCIE_Table;
0230 
0231 typedef struct _ATOM_Vega10_Voltage_Lookup_Record {
0232     USHORT usVdd;                                               /* Base voltage */
0233 } ATOM_Vega10_Voltage_Lookup_Record;
0234 
0235 typedef struct _ATOM_Vega10_Voltage_Lookup_Table {
0236     UCHAR ucRevId;
0237     UCHAR ucNumEntries;                                          /* Number of entries */
0238     ATOM_Vega10_Voltage_Lookup_Record entries[1];             /* Dynamically allocate entries */
0239 } ATOM_Vega10_Voltage_Lookup_Table;
0240 
0241 typedef struct _ATOM_Vega10_Fan_Table {
0242     UCHAR   ucRevId;                         /* Change this if the table format changes or version changes so that the other fields are not the same. */
0243     USHORT  usFanOutputSensitivity;          /* Sensitivity of fan reaction to temepature changes. */
0244     USHORT  usFanRPMMax;                     /* The default value in RPM. */
0245     USHORT  usThrottlingRPM;
0246     USHORT  usFanAcousticLimit;              /* Minimum Fan Controller Frequency Acoustic Limit. */
0247     USHORT  usTargetTemperature;             /* The default ideal temperature in Celcius. */
0248     USHORT  usMinimumPWMLimit;               /* The minimum PWM that the advanced fan controller can set. */
0249     USHORT  usTargetGfxClk;                   /* The ideal Fan Controller GFXCLK Frequency Acoustic Limit. */
0250     USHORT  usFanGainEdge;
0251     USHORT  usFanGainHotspot;
0252     USHORT  usFanGainLiquid;
0253     USHORT  usFanGainVrVddc;
0254     USHORT  usFanGainVrMvdd;
0255     USHORT  usFanGainPlx;
0256     USHORT  usFanGainHbm;
0257     UCHAR   ucEnableZeroRPM;
0258     USHORT  usFanStopTemperature;
0259     USHORT  usFanStartTemperature;
0260 } ATOM_Vega10_Fan_Table;
0261 
0262 typedef struct _ATOM_Vega10_Fan_Table_V2 {
0263     UCHAR   ucRevId;
0264     USHORT  usFanOutputSensitivity;
0265     USHORT  usFanAcousticLimitRpm;
0266     USHORT  usThrottlingRPM;
0267     USHORT  usTargetTemperature;
0268     USHORT  usMinimumPWMLimit;
0269     USHORT  usTargetGfxClk;
0270     USHORT  usFanGainEdge;
0271     USHORT  usFanGainHotspot;
0272     USHORT  usFanGainLiquid;
0273     USHORT  usFanGainVrVddc;
0274     USHORT  usFanGainVrMvdd;
0275     USHORT  usFanGainPlx;
0276     USHORT  usFanGainHbm;
0277     UCHAR   ucEnableZeroRPM;
0278     USHORT  usFanStopTemperature;
0279     USHORT  usFanStartTemperature;
0280     UCHAR   ucFanParameters;
0281     UCHAR   ucFanMinRPM;
0282     UCHAR   ucFanMaxRPM;
0283 } ATOM_Vega10_Fan_Table_V2;
0284 
0285 typedef struct _ATOM_Vega10_Fan_Table_V3 {
0286     UCHAR   ucRevId;
0287     USHORT  usFanOutputSensitivity;
0288     USHORT  usFanAcousticLimitRpm;
0289     USHORT  usThrottlingRPM;
0290     USHORT  usTargetTemperature;
0291     USHORT  usMinimumPWMLimit;
0292     USHORT  usTargetGfxClk;
0293     USHORT  usFanGainEdge;
0294     USHORT  usFanGainHotspot;
0295     USHORT  usFanGainLiquid;
0296     USHORT  usFanGainVrVddc;
0297     USHORT  usFanGainVrMvdd;
0298     USHORT  usFanGainPlx;
0299     USHORT  usFanGainHbm;
0300     UCHAR   ucEnableZeroRPM;
0301     USHORT  usFanStopTemperature;
0302     USHORT  usFanStartTemperature;
0303     UCHAR   ucFanParameters;
0304     UCHAR   ucFanMinRPM;
0305     UCHAR   ucFanMaxRPM;
0306     USHORT  usMGpuThrottlingRPM;
0307 } ATOM_Vega10_Fan_Table_V3;
0308 
0309 typedef struct _ATOM_Vega10_Thermal_Controller {
0310     UCHAR ucRevId;
0311     UCHAR ucType;           /* one of ATOM_VEGA10_PP_THERMALCONTROLLER_*/
0312     UCHAR ucI2cLine;        /* as interpreted by DAL I2C */
0313     UCHAR ucI2cAddress;
0314     UCHAR ucFanParameters;  /* Fan Control Parameters. */
0315     UCHAR ucFanMinRPM;      /* Fan Minimum RPM (hundreds) -- for display purposes only.*/
0316     UCHAR ucFanMaxRPM;      /* Fan Maximum RPM (hundreds) -- for display purposes only.*/
0317     UCHAR ucFlags;          /* to be defined */
0318 } ATOM_Vega10_Thermal_Controller;
0319 
0320 typedef struct _ATOM_Vega10_VCE_State_Record
0321 {
0322     UCHAR  ucVCEClockIndex;         /*index into usVCEDependencyTableOffset of 'ATOM_Vega10_MM_Dependency_Table' type */
0323     UCHAR  ucFlag;                  /* 2 bits indicates memory p-states */
0324     UCHAR  ucSCLKIndex;             /* index into ATOM_Vega10_SCLK_Dependency_Table */
0325     UCHAR  ucMCLKIndex;             /* index into ATOM_Vega10_MCLK_Dependency_Table */
0326 } ATOM_Vega10_VCE_State_Record;
0327 
0328 typedef struct _ATOM_Vega10_VCE_State_Table
0329 {
0330     UCHAR ucRevId;
0331     UCHAR ucNumEntries;
0332     ATOM_Vega10_VCE_State_Record entries[1];
0333 } ATOM_Vega10_VCE_State_Table;
0334 
0335 typedef struct _ATOM_Vega10_PowerTune_Table {
0336     UCHAR  ucRevId;
0337     USHORT usSocketPowerLimit;
0338     USHORT usBatteryPowerLimit;
0339     USHORT usSmallPowerLimit;
0340     USHORT usTdcLimit;
0341     USHORT usEdcLimit;
0342     USHORT usSoftwareShutdownTemp;
0343     USHORT usTemperatureLimitHotSpot;
0344     USHORT usTemperatureLimitLiquid1;
0345     USHORT usTemperatureLimitLiquid2;
0346     USHORT usTemperatureLimitHBM;
0347     USHORT usTemperatureLimitVrSoc;
0348     USHORT usTemperatureLimitVrMem;
0349     USHORT usTemperatureLimitPlx;
0350     USHORT usLoadLineResistance;
0351     UCHAR  ucLiquid1_I2C_address;
0352     UCHAR  ucLiquid2_I2C_address;
0353     UCHAR  ucVr_I2C_address;
0354     UCHAR  ucPlx_I2C_address;
0355     UCHAR  ucLiquid_I2C_LineSCL;
0356     UCHAR  ucLiquid_I2C_LineSDA;
0357     UCHAR  ucVr_I2C_LineSCL;
0358     UCHAR  ucVr_I2C_LineSDA;
0359     UCHAR  ucPlx_I2C_LineSCL;
0360     UCHAR  ucPlx_I2C_LineSDA;
0361     USHORT usTemperatureLimitTedge;
0362 } ATOM_Vega10_PowerTune_Table;
0363 
0364 typedef struct _ATOM_Vega10_PowerTune_Table_V2
0365 {
0366     UCHAR  ucRevId;
0367     USHORT usSocketPowerLimit;
0368     USHORT usBatteryPowerLimit;
0369     USHORT usSmallPowerLimit;
0370     USHORT usTdcLimit;
0371     USHORT usEdcLimit;
0372     USHORT usSoftwareShutdownTemp;
0373     USHORT usTemperatureLimitHotSpot;
0374     USHORT usTemperatureLimitLiquid1;
0375     USHORT usTemperatureLimitLiquid2;
0376     USHORT usTemperatureLimitHBM;
0377     USHORT usTemperatureLimitVrSoc;
0378     USHORT usTemperatureLimitVrMem;
0379     USHORT usTemperatureLimitPlx;
0380     USHORT usLoadLineResistance;
0381     UCHAR ucLiquid1_I2C_address;
0382     UCHAR ucLiquid2_I2C_address;
0383     UCHAR ucLiquid_I2C_Line;
0384     UCHAR ucVr_I2C_address;
0385     UCHAR ucVr_I2C_Line;
0386     UCHAR ucPlx_I2C_address;
0387     UCHAR ucPlx_I2C_Line;
0388     USHORT usTemperatureLimitTedge;
0389 } ATOM_Vega10_PowerTune_Table_V2;
0390 
0391 typedef struct _ATOM_Vega10_PowerTune_Table_V3
0392 {
0393     UCHAR  ucRevId;
0394     USHORT usSocketPowerLimit;
0395     USHORT usBatteryPowerLimit;
0396     USHORT usSmallPowerLimit;
0397     USHORT usTdcLimit;
0398     USHORT usEdcLimit;
0399     USHORT usSoftwareShutdownTemp;
0400     USHORT usTemperatureLimitHotSpot;
0401     USHORT usTemperatureLimitLiquid1;
0402     USHORT usTemperatureLimitLiquid2;
0403     USHORT usTemperatureLimitHBM;
0404     USHORT usTemperatureLimitVrSoc;
0405     USHORT usTemperatureLimitVrMem;
0406     USHORT usTemperatureLimitPlx;
0407     USHORT usLoadLineResistance;
0408     UCHAR  ucLiquid1_I2C_address;
0409     UCHAR  ucLiquid2_I2C_address;
0410     UCHAR  ucLiquid_I2C_Line;
0411     UCHAR  ucVr_I2C_address;
0412     UCHAR  ucVr_I2C_Line;
0413     UCHAR  ucPlx_I2C_address;
0414     UCHAR  ucPlx_I2C_Line;
0415     USHORT usTemperatureLimitTedge;
0416     USHORT usBoostStartTemperature;
0417     USHORT usBoostStopTemperature;
0418     ULONG  ulBoostClock;
0419     ULONG  Reserved[2];
0420 } ATOM_Vega10_PowerTune_Table_V3;
0421 
0422 typedef struct _ATOM_Vega10_Hard_Limit_Record {
0423     ULONG  ulSOCCLKLimit;
0424     ULONG  ulGFXCLKLimit;
0425     ULONG  ulMCLKLimit;
0426     USHORT usVddcLimit;
0427     USHORT usVddciLimit;
0428     USHORT usVddMemLimit;
0429 } ATOM_Vega10_Hard_Limit_Record;
0430 
0431 typedef struct _ATOM_Vega10_Hard_Limit_Table
0432 {
0433     UCHAR ucRevId;
0434     UCHAR ucNumEntries;
0435     ATOM_Vega10_Hard_Limit_Record entries[1];
0436 } ATOM_Vega10_Hard_Limit_Table;
0437 
0438 typedef struct _Vega10_PPTable_Generic_SubTable_Header
0439 {
0440     UCHAR  ucRevId;
0441 } Vega10_PPTable_Generic_SubTable_Header;
0442 
0443 #pragma pack(pop)
0444 
0445 #endif