1 // This is a stripped-down version of the smu11_driver_if.h file for the relevant DAL interfaces.
2 
3 #define SMU11_DRIVER_IF_VERSION 0x40
4 
5 //Only Clks that have DPM descriptors are listed here
6 typedef enum {
7 	PPCLK_GFXCLK = 0,
8 	PPCLK_SOCCLK,
9 	PPCLK_UCLK,
10 	PPCLK_FCLK,
11 	PPCLK_DCLK_0,
12 	PPCLK_VCLK_0,
13 	PPCLK_DCLK_1,
14 	PPCLK_VCLK_1,
15 	PPCLK_DCEFCLK,
16 	PPCLK_DISPCLK,
17 	PPCLK_PIXCLK,
18 	PPCLK_PHYCLK,
19 	PPCLK_DTBCLK,
20 	PPCLK_COUNT,
21 } PPCLK_e;
22 
23 typedef struct {
24 	uint16_t MinClock; // This is either DCEFCLK or SOCCLK (in MHz)
25 	uint16_t MaxClock; // This is either DCEFCLK or SOCCLK (in MHz)
26 	uint16_t MinUclk;
27 	uint16_t MaxUclk;
28 
29 	uint8_t  WmSetting;
30 	uint8_t  Flags;
31 	uint8_t  Padding[2];
32 
33 } WatermarkRowGeneric_t;
34 
35 #define NUM_WM_RANGES 4
36 
37 typedef enum {
38 	WM_SOCCLK = 0,
39 	WM_DCEFCLK,
40 	WM_COUNT,
41 } WM_CLOCK_e;
42 
43 typedef enum {
44 	WATERMARKS_CLOCK_RANGE = 0,
45 	WATERMARKS_DUMMY_PSTATE,
46 	WATERMARKS_MALL,
47 	WATERMARKS_COUNT,
48 } WATERMARKS_FLAGS_e;
49 
50 typedef struct {
51 	// Watermarks
52 	WatermarkRowGeneric_t WatermarkRow[WM_COUNT][NUM_WM_RANGES];
53 } Watermarks_t;
54 
55 typedef struct {
56 	Watermarks_t Watermarks;
57 
58 	uint32_t     MmHubPadding[8]; // SMU internal use
59 } WatermarksExternal_t;
60 
61 // Table types
62 #define TABLE_PPTABLE                 0
63 #define TABLE_WATERMARKS              1
64 #define TABLE_AVFS_PSM_DEBUG          2
65 #define TABLE_AVFS_FUSE_OVERRIDE      3
66 #define TABLE_PMSTATUSLOG             4
67 #define TABLE_SMU_METRICS             5
68 #define TABLE_DRIVER_SMU_CONFIG       6
69 #define TABLE_ACTIVITY_MONITOR_COEFF  7
70 #define TABLE_OVERDRIVE               8
71 #define TABLE_I2C_COMMANDS            9
72 #define TABLE_PACE                   10
73 #define TABLE_ECCINFO                11
74 #define TABLE_COUNT                  12
75