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