xref: /dragonfly/sys/dev/drm/amd/amdgpu/r600_dpm.h (revision b843c749)
1*b843c749SSergey Zigachev /*
2*b843c749SSergey Zigachev  * Copyright 2011 Advanced Micro Devices, Inc.
3*b843c749SSergey Zigachev  *
4*b843c749SSergey Zigachev  * Permission is hereby granted, free of charge, to any person obtaining a
5*b843c749SSergey Zigachev  * copy of this software and associated documentation files (the "Software"),
6*b843c749SSergey Zigachev  * to deal in the Software without restriction, including without limitation
7*b843c749SSergey Zigachev  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*b843c749SSergey Zigachev  * and/or sell copies of the Software, and to permit persons to whom the
9*b843c749SSergey Zigachev  * Software is furnished to do so, subject to the following conditions:
10*b843c749SSergey Zigachev  *
11*b843c749SSergey Zigachev  * The above copyright notice and this permission notice shall be included in
12*b843c749SSergey Zigachev  * all copies or substantial portions of the Software.
13*b843c749SSergey Zigachev  *
14*b843c749SSergey Zigachev  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*b843c749SSergey Zigachev  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*b843c749SSergey Zigachev  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17*b843c749SSergey Zigachev  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18*b843c749SSergey Zigachev  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19*b843c749SSergey Zigachev  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20*b843c749SSergey Zigachev  * OTHER DEALINGS IN THE SOFTWARE.
21*b843c749SSergey Zigachev  *
22*b843c749SSergey Zigachev  */
23*b843c749SSergey Zigachev #ifndef __R600_DPM_H__
24*b843c749SSergey Zigachev #define __R600_DPM_H__
25*b843c749SSergey Zigachev 
26*b843c749SSergey Zigachev #define R600_ASI_DFLT                                10000
27*b843c749SSergey Zigachev #define R600_BSP_DFLT                                0x41EB
28*b843c749SSergey Zigachev #define R600_BSU_DFLT                                0x2
29*b843c749SSergey Zigachev #define R600_AH_DFLT                                 5
30*b843c749SSergey Zigachev #define R600_RLP_DFLT                                25
31*b843c749SSergey Zigachev #define R600_RMP_DFLT                                65
32*b843c749SSergey Zigachev #define R600_LHP_DFLT                                40
33*b843c749SSergey Zigachev #define R600_LMP_DFLT                                15
34*b843c749SSergey Zigachev #define R600_TD_DFLT                                 0
35*b843c749SSergey Zigachev #define R600_UTC_DFLT_00                             0x24
36*b843c749SSergey Zigachev #define R600_UTC_DFLT_01                             0x22
37*b843c749SSergey Zigachev #define R600_UTC_DFLT_02                             0x22
38*b843c749SSergey Zigachev #define R600_UTC_DFLT_03                             0x22
39*b843c749SSergey Zigachev #define R600_UTC_DFLT_04                             0x22
40*b843c749SSergey Zigachev #define R600_UTC_DFLT_05                             0x22
41*b843c749SSergey Zigachev #define R600_UTC_DFLT_06                             0x22
42*b843c749SSergey Zigachev #define R600_UTC_DFLT_07                             0x22
43*b843c749SSergey Zigachev #define R600_UTC_DFLT_08                             0x22
44*b843c749SSergey Zigachev #define R600_UTC_DFLT_09                             0x22
45*b843c749SSergey Zigachev #define R600_UTC_DFLT_10                             0x22
46*b843c749SSergey Zigachev #define R600_UTC_DFLT_11                             0x22
47*b843c749SSergey Zigachev #define R600_UTC_DFLT_12                             0x22
48*b843c749SSergey Zigachev #define R600_UTC_DFLT_13                             0x22
49*b843c749SSergey Zigachev #define R600_UTC_DFLT_14                             0x22
50*b843c749SSergey Zigachev #define R600_DTC_DFLT_00                             0x24
51*b843c749SSergey Zigachev #define R600_DTC_DFLT_01                             0x22
52*b843c749SSergey Zigachev #define R600_DTC_DFLT_02                             0x22
53*b843c749SSergey Zigachev #define R600_DTC_DFLT_03                             0x22
54*b843c749SSergey Zigachev #define R600_DTC_DFLT_04                             0x22
55*b843c749SSergey Zigachev #define R600_DTC_DFLT_05                             0x22
56*b843c749SSergey Zigachev #define R600_DTC_DFLT_06                             0x22
57*b843c749SSergey Zigachev #define R600_DTC_DFLT_07                             0x22
58*b843c749SSergey Zigachev #define R600_DTC_DFLT_08                             0x22
59*b843c749SSergey Zigachev #define R600_DTC_DFLT_09                             0x22
60*b843c749SSergey Zigachev #define R600_DTC_DFLT_10                             0x22
61*b843c749SSergey Zigachev #define R600_DTC_DFLT_11                             0x22
62*b843c749SSergey Zigachev #define R600_DTC_DFLT_12                             0x22
63*b843c749SSergey Zigachev #define R600_DTC_DFLT_13                             0x22
64*b843c749SSergey Zigachev #define R600_DTC_DFLT_14                             0x22
65*b843c749SSergey Zigachev #define R600_VRC_DFLT                                0x0000C003
66*b843c749SSergey Zigachev #define R600_VOLTAGERESPONSETIME_DFLT                1000
67*b843c749SSergey Zigachev #define R600_BACKBIASRESPONSETIME_DFLT               1000
68*b843c749SSergey Zigachev #define R600_VRU_DFLT                                0x3
69*b843c749SSergey Zigachev #define R600_SPLLSTEPTIME_DFLT                       0x1000
70*b843c749SSergey Zigachev #define R600_SPLLSTEPUNIT_DFLT                       0x3
71*b843c749SSergey Zigachev #define R600_TPU_DFLT                                0
72*b843c749SSergey Zigachev #define R600_TPC_DFLT                                0x200
73*b843c749SSergey Zigachev #define R600_SSTU_DFLT                               0
74*b843c749SSergey Zigachev #define R600_SST_DFLT                                0x00C8
75*b843c749SSergey Zigachev #define R600_GICST_DFLT                              0x200
76*b843c749SSergey Zigachev #define R600_FCT_DFLT                                0x0400
77*b843c749SSergey Zigachev #define R600_FCTU_DFLT                               0
78*b843c749SSergey Zigachev #define R600_CTXCGTT3DRPHC_DFLT                      0x20
79*b843c749SSergey Zigachev #define R600_CTXCGTT3DRSDC_DFLT                      0x40
80*b843c749SSergey Zigachev #define R600_VDDC3DOORPHC_DFLT                       0x100
81*b843c749SSergey Zigachev #define R600_VDDC3DOORSDC_DFLT                       0x7
82*b843c749SSergey Zigachev #define R600_VDDC3DOORSU_DFLT                        0
83*b843c749SSergey Zigachev #define R600_MPLLLOCKTIME_DFLT                       100
84*b843c749SSergey Zigachev #define R600_MPLLRESETTIME_DFLT                      150
85*b843c749SSergey Zigachev #define R600_VCOSTEPPCT_DFLT                          20
86*b843c749SSergey Zigachev #define R600_ENDINGVCOSTEPPCT_DFLT                    5
87*b843c749SSergey Zigachev #define R600_REFERENCEDIVIDER_DFLT                    4
88*b843c749SSergey Zigachev 
89*b843c749SSergey Zigachev #define R600_PM_NUMBER_OF_TC 15
90*b843c749SSergey Zigachev #define R600_PM_NUMBER_OF_SCLKS 20
91*b843c749SSergey Zigachev #define R600_PM_NUMBER_OF_MCLKS 4
92*b843c749SSergey Zigachev #define R600_PM_NUMBER_OF_VOLTAGE_LEVELS 4
93*b843c749SSergey Zigachev #define R600_PM_NUMBER_OF_ACTIVITY_LEVELS 3
94*b843c749SSergey Zigachev 
95*b843c749SSergey Zigachev /* XXX are these ok? */
96*b843c749SSergey Zigachev #define R600_TEMP_RANGE_MIN (90 * 1000)
97*b843c749SSergey Zigachev #define R600_TEMP_RANGE_MAX (120 * 1000)
98*b843c749SSergey Zigachev 
99*b843c749SSergey Zigachev #define FDO_PWM_MODE_STATIC  1
100*b843c749SSergey Zigachev #define FDO_PWM_MODE_STATIC_RPM 5
101*b843c749SSergey Zigachev 
102*b843c749SSergey Zigachev enum r600_power_level {
103*b843c749SSergey Zigachev 	R600_POWER_LEVEL_LOW = 0,
104*b843c749SSergey Zigachev 	R600_POWER_LEVEL_MEDIUM = 1,
105*b843c749SSergey Zigachev 	R600_POWER_LEVEL_HIGH = 2,
106*b843c749SSergey Zigachev 	R600_POWER_LEVEL_CTXSW = 3,
107*b843c749SSergey Zigachev };
108*b843c749SSergey Zigachev 
109*b843c749SSergey Zigachev enum r600_td {
110*b843c749SSergey Zigachev 	R600_TD_AUTO,
111*b843c749SSergey Zigachev 	R600_TD_UP,
112*b843c749SSergey Zigachev 	R600_TD_DOWN,
113*b843c749SSergey Zigachev };
114*b843c749SSergey Zigachev 
115*b843c749SSergey Zigachev enum r600_display_watermark {
116*b843c749SSergey Zigachev 	R600_DISPLAY_WATERMARK_LOW = 0,
117*b843c749SSergey Zigachev 	R600_DISPLAY_WATERMARK_HIGH = 1,
118*b843c749SSergey Zigachev };
119*b843c749SSergey Zigachev 
120*b843c749SSergey Zigachev enum r600_display_gap
121*b843c749SSergey Zigachev {
122*b843c749SSergey Zigachev     R600_PM_DISPLAY_GAP_VBLANK_OR_WM = 0,
123*b843c749SSergey Zigachev     R600_PM_DISPLAY_GAP_VBLANK       = 1,
124*b843c749SSergey Zigachev     R600_PM_DISPLAY_GAP_WATERMARK    = 2,
125*b843c749SSergey Zigachev     R600_PM_DISPLAY_GAP_IGNORE       = 3,
126*b843c749SSergey Zigachev };
127*b843c749SSergey Zigachev #endif
128