0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef _VEGA12_PPTABLE_H_
0024 #define _VEGA12_PPTABLE_H_
0025
0026 #pragma pack(push, 1)
0027
0028 #define ATOM_VEGA12_PP_THERMALCONTROLLER_NONE 0
0029 #define ATOM_VEGA12_PP_THERMALCONTROLLER_VEGA12 25
0030
0031 #define ATOM_VEGA12_PP_PLATFORM_CAP_POWERPLAY 0x1
0032 #define ATOM_VEGA12_PP_PLATFORM_CAP_SBIOSPOWERSOURCE 0x2
0033 #define ATOM_VEGA12_PP_PLATFORM_CAP_HARDWAREDC 0x4
0034 #define ATOM_VEGA12_PP_PLATFORM_CAP_BACO 0x8
0035 #define ATOM_VEGA12_PP_PLATFORM_CAP_BAMACO 0x10
0036 #define ATOM_VEGA12_PP_PLATFORM_CAP_ENABLESHADOWPSTATE 0x20
0037
0038 #define ATOM_VEGA12_TABLE_REVISION_VEGA12 9
0039
0040 enum ATOM_VEGA12_ODSETTING_ID {
0041 ATOM_VEGA12_ODSETTING_GFXCLKFMAX = 0,
0042 ATOM_VEGA12_ODSETTING_GFXCLKFMIN,
0043 ATOM_VEGA12_ODSETTING_VDDGFXCURVEFREQ_P1,
0044 ATOM_VEGA12_ODSETTING_VDDGFXCURVEVOLTAGEOFFSET_P1,
0045 ATOM_VEGA12_ODSETTING_VDDGFXCURVEFREQ_P2,
0046 ATOM_VEGA12_ODSETTING_VDDGFXCURVEVOLTAGEOFFSET_P2,
0047 ATOM_VEGA12_ODSETTING_VDDGFXCURVEFREQ_P3,
0048 ATOM_VEGA12_ODSETTING_VDDGFXCURVEVOLTAGEOFFSET_P3,
0049 ATOM_VEGA12_ODSETTING_UCLKFMAX,
0050 ATOM_VEGA12_ODSETTING_POWERPERCENTAGE,
0051 ATOM_VEGA12_ODSETTING_FANRPMMIN,
0052 ATOM_VEGA12_ODSETTING_FANRPMACOUSTICLIMIT,
0053 ATOM_VEGA12_ODSETTING_FANTARGETTEMPERATURE,
0054 ATOM_VEGA12_ODSETTING_OPERATINGTEMPMAX,
0055 ATOM_VEGA12_ODSETTING_COUNT,
0056 };
0057 typedef enum ATOM_VEGA12_ODSETTING_ID ATOM_VEGA12_ODSETTING_ID;
0058
0059 enum ATOM_VEGA12_PPCLOCK_ID {
0060 ATOM_VEGA12_PPCLOCK_GFXCLK = 0,
0061 ATOM_VEGA12_PPCLOCK_VCLK,
0062 ATOM_VEGA12_PPCLOCK_DCLK,
0063 ATOM_VEGA12_PPCLOCK_ECLK,
0064 ATOM_VEGA12_PPCLOCK_SOCCLK,
0065 ATOM_VEGA12_PPCLOCK_UCLK,
0066 ATOM_VEGA12_PPCLOCK_DCEFCLK,
0067 ATOM_VEGA12_PPCLOCK_DISPCLK,
0068 ATOM_VEGA12_PPCLOCK_PIXCLK,
0069 ATOM_VEGA12_PPCLOCK_PHYCLK,
0070 ATOM_VEGA12_PPCLOCK_COUNT,
0071 };
0072 typedef enum ATOM_VEGA12_PPCLOCK_ID ATOM_VEGA12_PPCLOCK_ID;
0073
0074
0075 typedef struct _ATOM_VEGA12_POWERPLAYTABLE
0076 {
0077 struct atom_common_table_header sHeader;
0078 UCHAR ucTableRevision;
0079 USHORT usTableSize;
0080 ULONG ulGoldenPPID;
0081 ULONG ulGoldenRevision;
0082 USHORT usFormatID;
0083
0084 ULONG ulPlatformCaps;
0085
0086 UCHAR ucThermalControllerType;
0087
0088 USHORT usSmallPowerLimit1;
0089 USHORT usSmallPowerLimit2;
0090 USHORT usBoostPowerLimit;
0091 USHORT usODTurboPowerLimit;
0092 USHORT usODPowerSavePowerLimit;
0093 USHORT usSoftwareShutdownTemp;
0094
0095 ULONG PowerSavingClockMax [ATOM_VEGA12_PPCLOCK_COUNT];
0096 ULONG PowerSavingClockMin [ATOM_VEGA12_PPCLOCK_COUNT];
0097
0098 ULONG ODSettingsMax [ATOM_VEGA12_ODSETTING_COUNT];
0099 ULONG ODSettingsMin [ATOM_VEGA12_ODSETTING_COUNT];
0100
0101 USHORT usReserve[5];
0102
0103 PPTable_t smcPPTable;
0104
0105 } ATOM_Vega12_POWERPLAYTABLE;
0106
0107 #pragma pack(pop)
0108
0109 #endif