1 // SPDX-License-Identifier: MIT
2 //
3 // Copyright 2024 Advanced Micro Devices, Inc.
4 //
5 // This is a stripped-down version of the smu13_driver_if.h file for the relevant DAL interfaces.
6 
7 #define SMU14_DRIVER_IF_VERSION  0x1
8 
9 //Only Clks that have DPM descriptors are listed here
10 typedef enum {
11   PPCLK_GFXCLK = 0,
12   PPCLK_SOCCLK,
13   PPCLK_UCLK,
14   PPCLK_FCLK,
15   PPCLK_DCLK_0,
16   PPCLK_VCLK_0,
17   PPCLK_DISPCLK,
18   PPCLK_DPPCLK,
19   PPCLK_DPREFCLK,
20   PPCLK_DCFCLK,
21   PPCLK_DTBCLK,
22   PPCLK_COUNT,
23 } PPCLK_e;
24 
25 typedef struct {
26   uint8_t  WmSetting;
27   uint8_t  Flags;
28   uint8_t  Padding[2];
29 
30 } WatermarkRowGeneric_t;
31 
32 #define NUM_WM_RANGES 4
33 
34 typedef enum {
35   WATERMARKS_CLOCK_RANGE = 0,
36   WATERMARKS_DUMMY_PSTATE,
37   WATERMARKS_MALL,
38   WATERMARKS_COUNT,
39 } WATERMARKS_FLAGS_e;
40 
41 typedef struct {
42   // Watermarks
43   WatermarkRowGeneric_t WatermarkRow[NUM_WM_RANGES];
44 } Watermarks_t;
45 
46 typedef struct {
47   Watermarks_t Watermarks;
48   uint32_t  Spare[16];
49 
50   uint32_t     MmHubPadding[8]; // SMU internal use
51 } WatermarksExternal_t;
52 
53 // Table types
54 #define TABLE_PMFW_PPTABLE            0
55 #define TABLE_COMBO_PPTABLE           1
56 #define TABLE_WATERMARKS              2
57 #define TABLE_AVFS_PSM_DEBUG          3
58 #define TABLE_PMSTATUSLOG             4
59 #define TABLE_SMU_METRICS             5
60 #define TABLE_DRIVER_SMU_CONFIG       6
61 #define TABLE_ACTIVITY_MONITOR_COEFF  7
62 #define TABLE_OVERDRIVE               8
63 #define TABLE_I2C_COMMANDS            9
64 #define TABLE_DRIVER_INFO             10
65 #define TABLE_ECCINFO                 11
66 #define TABLE_COUNT                   12
67