1 1.2 riastrad /* $NetBSD: rs780d.h,v 1.3 2021/12/18 23:45:43 riastradh Exp $ */ 2 1.2 riastrad 3 1.1 riastrad /* 4 1.1 riastrad * Copyright 2011 Advanced Micro Devices, Inc. 5 1.1 riastrad * 6 1.1 riastrad * Permission is hereby granted, free of charge, to any person obtaining a 7 1.1 riastrad * copy of this software and associated documentation files (the "Software"), 8 1.1 riastrad * to deal in the Software without restriction, including without limitation 9 1.1 riastrad * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 1.1 riastrad * and/or sell copies of the Software, and to permit persons to whom the 11 1.1 riastrad * Software is furnished to do so, subject to the following conditions: 12 1.1 riastrad * 13 1.1 riastrad * The above copyright notice and this permission notice shall be included in 14 1.1 riastrad * all copies or substantial portions of the Software. 15 1.1 riastrad * 16 1.1 riastrad * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 1.1 riastrad * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 1.1 riastrad * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 1.1 riastrad * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 1.1 riastrad * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 1.1 riastrad * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 1.1 riastrad * OTHER DEALINGS IN THE SOFTWARE. 23 1.1 riastrad * 24 1.1 riastrad */ 25 1.1 riastrad #ifndef __RS780D_H__ 26 1.1 riastrad #define __RS780D_H__ 27 1.1 riastrad 28 1.1 riastrad #define CG_SPLL_FUNC_CNTL 0x600 29 1.1 riastrad # define SPLL_RESET (1 << 0) 30 1.1 riastrad # define SPLL_SLEEP (1 << 1) 31 1.1 riastrad # define SPLL_REF_DIV(x) ((x) << 2) 32 1.1 riastrad # define SPLL_REF_DIV_MASK (7 << 2) 33 1.1 riastrad # define SPLL_REF_DIV_SHIFT 2 34 1.1 riastrad # define SPLL_FB_DIV(x) ((x) << 5) 35 1.1 riastrad # define SPLL_FB_DIV_MASK (0xff << 2) 36 1.1 riastrad # define SPLL_FB_DIV_SHIFT 2 37 1.1 riastrad # define SPLL_PULSEEN (1 << 13) 38 1.1 riastrad # define SPLL_PULSENUM(x) ((x) << 14) 39 1.1 riastrad # define SPLL_PULSENUM_MASK (3 << 14) 40 1.1 riastrad # define SPLL_SW_HILEN(x) ((x) << 16) 41 1.1 riastrad # define SPLL_SW_HILEN_MASK (0xf << 16) 42 1.1 riastrad # define SPLL_SW_HILEN_SHIFT 16 43 1.1 riastrad # define SPLL_SW_LOLEN(x) ((x) << 20) 44 1.1 riastrad # define SPLL_SW_LOLEN_MASK (0xf << 20) 45 1.1 riastrad # define SPLL_SW_LOLEN_SHIFT 20 46 1.1 riastrad # define SPLL_DIVEN (1 << 24) 47 1.1 riastrad # define SPLL_BYPASS_EN (1 << 25) 48 1.1 riastrad # define SPLL_CHG_STATUS (1 << 29) 49 1.1 riastrad # define SPLL_CTLREQ (1 << 30) 50 1.1 riastrad # define SPLL_CTLACK (1 << 31) 51 1.1 riastrad 52 1.1 riastrad /* RS780/RS880 PM */ 53 1.1 riastrad #define FVTHROT_CNTRL_REG 0x3000 54 1.1 riastrad #define DONT_WAIT_FOR_FBDIV_WRAP (1 << 0) 55 1.1 riastrad #define MINIMUM_CIP(x) ((x) << 1) 56 1.1 riastrad #define MINIMUM_CIP_SHIFT 1 57 1.1 riastrad #define MINIMUM_CIP_MASK 0x1fffffe 58 1.1 riastrad #define REFRESH_RATE_DIVISOR(x) ((x) << 25) 59 1.1 riastrad #define REFRESH_RATE_DIVISOR_SHIFT 25 60 1.1 riastrad #define REFRESH_RATE_DIVISOR_MASK (0x3 << 25) 61 1.1 riastrad #define ENABLE_FV_THROT (1 << 27) 62 1.1 riastrad #define ENABLE_FV_UPDATE (1 << 28) 63 1.1 riastrad #define TREND_SEL_MODE (1 << 29) 64 1.1 riastrad #define FORCE_TREND_SEL (1 << 30) 65 1.1 riastrad #define ENABLE_FV_THROT_IO (1 << 31) 66 1.1 riastrad #define FVTHROT_TARGET_REG 0x3004 67 1.1 riastrad #define TARGET_IDLE_COUNT(x) ((x) << 0) 68 1.1 riastrad #define TARGET_IDLE_COUNT_MASK 0xffffff 69 1.1 riastrad #define TARGET_IDLE_COUNT_SHIFT 0 70 1.1 riastrad #define FVTHROT_CB1 0x3008 71 1.1 riastrad #define FVTHROT_CB2 0x300c 72 1.1 riastrad #define FVTHROT_CB3 0x3010 73 1.1 riastrad #define FVTHROT_CB4 0x3014 74 1.1 riastrad #define FVTHROT_UTC0 0x3018 75 1.1 riastrad #define FVTHROT_UTC1 0x301c 76 1.1 riastrad #define FVTHROT_UTC2 0x3020 77 1.1 riastrad #define FVTHROT_UTC3 0x3024 78 1.1 riastrad #define FVTHROT_UTC4 0x3028 79 1.1 riastrad #define FVTHROT_DTC0 0x302c 80 1.1 riastrad #define FVTHROT_DTC1 0x3030 81 1.1 riastrad #define FVTHROT_DTC2 0x3034 82 1.1 riastrad #define FVTHROT_DTC3 0x3038 83 1.1 riastrad #define FVTHROT_DTC4 0x303c 84 1.1 riastrad #define FVTHROT_FBDIV_REG0 0x3040 85 1.1 riastrad #define MIN_FEEDBACK_DIV(x) ((x) << 0) 86 1.1 riastrad #define MIN_FEEDBACK_DIV_MASK 0xfff 87 1.1 riastrad #define MIN_FEEDBACK_DIV_SHIFT 0 88 1.1 riastrad #define MAX_FEEDBACK_DIV(x) ((x) << 12) 89 1.1 riastrad #define MAX_FEEDBACK_DIV_MASK (0xfff << 12) 90 1.1 riastrad #define MAX_FEEDBACK_DIV_SHIFT 12 91 1.1 riastrad #define FVTHROT_FBDIV_REG1 0x3044 92 1.1 riastrad #define MAX_FEEDBACK_STEP(x) ((x) << 0) 93 1.1 riastrad #define MAX_FEEDBACK_STEP_MASK 0xfff 94 1.1 riastrad #define MAX_FEEDBACK_STEP_SHIFT 0 95 1.1 riastrad #define STARTING_FEEDBACK_DIV(x) ((x) << 12) 96 1.1 riastrad #define STARTING_FEEDBACK_DIV_MASK (0xfff << 12) 97 1.1 riastrad #define STARTING_FEEDBACK_DIV_SHIFT 12 98 1.1 riastrad #define FORCE_FEEDBACK_DIV (1 << 24) 99 1.1 riastrad #define FVTHROT_FBDIV_REG2 0x3048 100 1.1 riastrad #define FORCED_FEEDBACK_DIV(x) ((x) << 0) 101 1.1 riastrad #define FORCED_FEEDBACK_DIV_MASK 0xfff 102 1.1 riastrad #define FORCED_FEEDBACK_DIV_SHIFT 0 103 1.1 riastrad #define FB_DIV_TIMER_VAL(x) ((x) << 12) 104 1.1 riastrad #define FB_DIV_TIMER_VAL_MASK (0xffff << 12) 105 1.1 riastrad #define FB_DIV_TIMER_VAL_SHIFT 12 106 1.1 riastrad #define FVTHROT_FB_US_REG0 0x304c 107 1.1 riastrad #define FVTHROT_FB_US_REG1 0x3050 108 1.1 riastrad #define FVTHROT_FB_DS_REG0 0x3054 109 1.1 riastrad #define FVTHROT_FB_DS_REG1 0x3058 110 1.1 riastrad #define FVTHROT_PWM_CTRL_REG0 0x305c 111 1.1 riastrad #define STARTING_PWM_HIGHTIME(x) ((x) << 0) 112 1.1 riastrad #define STARTING_PWM_HIGHTIME_MASK 0xfff 113 1.1 riastrad #define STARTING_PWM_HIGHTIME_SHIFT 0 114 1.1 riastrad #define NUMBER_OF_CYCLES_IN_PERIOD(x) ((x) << 12) 115 1.1 riastrad #define NUMBER_OF_CYCLES_IN_PERIOD_MASK (0xfff << 12) 116 1.1 riastrad #define NUMBER_OF_CYCLES_IN_PERIOD_SHIFT 12 117 1.1 riastrad #define FORCE_STARTING_PWM_HIGHTIME (1 << 24) 118 1.1 riastrad #define INVERT_PWM_WAVEFORM (1 << 25) 119 1.1 riastrad #define FVTHROT_PWM_CTRL_REG1 0x3060 120 1.1 riastrad #define MIN_PWM_HIGHTIME(x) ((x) << 0) 121 1.1 riastrad #define MIN_PWM_HIGHTIME_MASK 0xfff 122 1.1 riastrad #define MIN_PWM_HIGHTIME_SHIFT 0 123 1.1 riastrad #define MAX_PWM_HIGHTIME(x) ((x) << 12) 124 1.1 riastrad #define MAX_PWM_HIGHTIME_MASK (0xfff << 12) 125 1.1 riastrad #define MAX_PWM_HIGHTIME_SHIFT 12 126 1.1 riastrad #define FVTHROT_PWM_US_REG0 0x3064 127 1.1 riastrad #define FVTHROT_PWM_US_REG1 0x3068 128 1.1 riastrad #define FVTHROT_PWM_DS_REG0 0x306c 129 1.1 riastrad #define FVTHROT_PWM_DS_REG1 0x3070 130 1.1 riastrad #define FVTHROT_STATUS_REG0 0x3074 131 1.1 riastrad #define CURRENT_FEEDBACK_DIV_MASK 0xfff 132 1.1 riastrad #define CURRENT_FEEDBACK_DIV_SHIFT 0 133 1.1 riastrad #define FVTHROT_STATUS_REG1 0x3078 134 1.1 riastrad #define FVTHROT_STATUS_REG2 0x307c 135 1.1 riastrad #define CG_INTGFX_MISC 0x3080 136 1.1 riastrad #define FVTHROT_VBLANK_SEL (1 << 9) 137 1.1 riastrad #define FVTHROT_PWM_FEEDBACK_DIV_REG1 0x308c 138 1.1 riastrad #define RANGE0_PWM_FEEDBACK_DIV(x) ((x) << 0) 139 1.1 riastrad #define RANGE0_PWM_FEEDBACK_DIV_MASK 0xfff 140 1.1 riastrad #define RANGE0_PWM_FEEDBACK_DIV_SHIFT 0 141 1.1 riastrad #define RANGE_PWM_FEEDBACK_DIV_EN (1 << 12) 142 1.1 riastrad #define FVTHROT_PWM_FEEDBACK_DIV_REG2 0x3090 143 1.1 riastrad #define RANGE1_PWM_FEEDBACK_DIV(x) ((x) << 0) 144 1.1 riastrad #define RANGE1_PWM_FEEDBACK_DIV_MASK 0xfff 145 1.1 riastrad #define RANGE1_PWM_FEEDBACK_DIV_SHIFT 0 146 1.1 riastrad #define RANGE2_PWM_FEEDBACK_DIV(x) ((x) << 12) 147 1.1 riastrad #define RANGE2_PWM_FEEDBACK_DIV_MASK (0xfff << 12) 148 1.1 riastrad #define RANGE2_PWM_FEEDBACK_DIV_SHIFT 12 149 1.1 riastrad #define FVTHROT_PWM_FEEDBACK_DIV_REG3 0x3094 150 1.1 riastrad #define RANGE0_PWM(x) ((x) << 0) 151 1.1 riastrad #define RANGE0_PWM_MASK 0xfff 152 1.1 riastrad #define RANGE0_PWM_SHIFT 0 153 1.1 riastrad #define RANGE1_PWM(x) ((x) << 12) 154 1.1 riastrad #define RANGE1_PWM_MASK (0xfff << 12) 155 1.1 riastrad #define RANGE1_PWM_SHIFT 12 156 1.1 riastrad #define FVTHROT_PWM_FEEDBACK_DIV_REG4 0x3098 157 1.1 riastrad #define RANGE2_PWM(x) ((x) << 0) 158 1.1 riastrad #define RANGE2_PWM_MASK 0xfff 159 1.1 riastrad #define RANGE2_PWM_SHIFT 0 160 1.1 riastrad #define RANGE3_PWM(x) ((x) << 12) 161 1.1 riastrad #define RANGE3_PWM_MASK (0xfff << 12) 162 1.1 riastrad #define RANGE3_PWM_SHIFT 12 163 1.1 riastrad #define FVTHROT_SLOW_CLK_FEEDBACK_DIV_REG1 0x30ac 164 1.1 riastrad #define RANGE0_SLOW_CLK_FEEDBACK_DIV(x) ((x) << 0) 165 1.1 riastrad #define RANGE0_SLOW_CLK_FEEDBACK_DIV_MASK 0xfff 166 1.1 riastrad #define RANGE0_SLOW_CLK_FEEDBACK_DIV_SHIFT 0 167 1.1 riastrad #define RANGE_SLOW_CLK_FEEDBACK_DIV_EN (1 << 12) 168 1.1 riastrad 169 1.1 riastrad #define GFX_MACRO_BYPASS_CNTL 0x30c0 170 1.1 riastrad #define SPLL_BYPASS_CNTL (1 << 0) 171 1.1 riastrad #define UPLL_BYPASS_CNTL (1 << 1) 172 1.1 riastrad 173 1.1 riastrad #endif 174