0001
0002
0003
0004
0005
0006 #ifndef _VLV_SIDEBAND_REG_H_
0007 #define _VLV_SIDEBAND_REG_H_
0008
0009
0010 #define BUNIT_REG_BISOC 0x11
0011
0012
0013 #define _SSPM0_SSC(val) ((val) << 0)
0014 #define SSPM0_SSC_MASK _SSPM0_SSC(0x3)
0015 #define SSPM0_SSC_PWR_ON _SSPM0_SSC(0x0)
0016 #define SSPM0_SSC_CLK_GATE _SSPM0_SSC(0x1)
0017 #define SSPM0_SSC_RESET _SSPM0_SSC(0x2)
0018 #define SSPM0_SSC_PWR_GATE _SSPM0_SSC(0x3)
0019 #define _SSPM0_SSS(val) ((val) << 24)
0020 #define SSPM0_SSS_MASK _SSPM0_SSS(0x3)
0021 #define SSPM0_SSS_PWR_ON _SSPM0_SSS(0x0)
0022 #define SSPM0_SSS_CLK_GATE _SSPM0_SSS(0x1)
0023 #define SSPM0_SSS_RESET _SSPM0_SSS(0x2)
0024 #define SSPM0_SSS_PWR_GATE _SSPM0_SSS(0x3)
0025
0026
0027 #define SSPM1_FREQSTAT_SHIFT 24
0028 #define SSPM1_FREQSTAT_MASK (0x1f << SSPM1_FREQSTAT_SHIFT)
0029 #define SSPM1_FREQGUAR_SHIFT 8
0030 #define SSPM1_FREQGUAR_MASK (0x1f << SSPM1_FREQGUAR_SHIFT)
0031 #define SSPM1_FREQ_SHIFT 0
0032 #define SSPM1_FREQ_MASK (0x1f << SSPM1_FREQ_SHIFT)
0033
0034 #define PUNIT_REG_VEDSSPM0 0x32
0035 #define PUNIT_REG_VEDSSPM1 0x33
0036
0037 #define PUNIT_REG_DSPSSPM 0x36
0038 #define DSPFREQSTAT_SHIFT_CHV 24
0039 #define DSPFREQSTAT_MASK_CHV (0x1f << DSPFREQSTAT_SHIFT_CHV)
0040 #define DSPFREQGUAR_SHIFT_CHV 8
0041 #define DSPFREQGUAR_MASK_CHV (0x1f << DSPFREQGUAR_SHIFT_CHV)
0042 #define DSPFREQSTAT_SHIFT 30
0043 #define DSPFREQSTAT_MASK (0x3 << DSPFREQSTAT_SHIFT)
0044 #define DSPFREQGUAR_SHIFT 14
0045 #define DSPFREQGUAR_MASK (0x3 << DSPFREQGUAR_SHIFT)
0046 #define DSP_MAXFIFO_PM5_STATUS (1 << 22)
0047 #define DSP_AUTO_CDCLK_GATE_DISABLE (1 << 7)
0048 #define DSP_MAXFIFO_PM5_ENABLE (1 << 6)
0049 #define _DP_SSC(val, pipe) ((val) << (2 * (pipe)))
0050 #define DP_SSC_MASK(pipe) _DP_SSC(0x3, (pipe))
0051 #define DP_SSC_PWR_ON(pipe) _DP_SSC(0x0, (pipe))
0052 #define DP_SSC_CLK_GATE(pipe) _DP_SSC(0x1, (pipe))
0053 #define DP_SSC_RESET(pipe) _DP_SSC(0x2, (pipe))
0054 #define DP_SSC_PWR_GATE(pipe) _DP_SSC(0x3, (pipe))
0055 #define _DP_SSS(val, pipe) ((val) << (2 * (pipe) + 16))
0056 #define DP_SSS_MASK(pipe) _DP_SSS(0x3, (pipe))
0057 #define DP_SSS_PWR_ON(pipe) _DP_SSS(0x0, (pipe))
0058 #define DP_SSS_CLK_GATE(pipe) _DP_SSS(0x1, (pipe))
0059 #define DP_SSS_RESET(pipe) _DP_SSS(0x2, (pipe))
0060 #define DP_SSS_PWR_GATE(pipe) _DP_SSS(0x3, (pipe))
0061
0062 #define PUNIT_REG_ISPSSPM0 0x39
0063 #define PUNIT_REG_ISPSSPM1 0x3a
0064
0065 #define PUNIT_REG_PWRGT_CTRL 0x60
0066 #define PUNIT_REG_PWRGT_STATUS 0x61
0067 #define PUNIT_PWRGT_MASK(pw_idx) (3 << ((pw_idx) * 2))
0068 #define PUNIT_PWRGT_PWR_ON(pw_idx) (0 << ((pw_idx) * 2))
0069 #define PUNIT_PWRGT_CLK_GATE(pw_idx) (1 << ((pw_idx) * 2))
0070 #define PUNIT_PWRGT_RESET(pw_idx) (2 << ((pw_idx) * 2))
0071 #define PUNIT_PWRGT_PWR_GATE(pw_idx) (3 << ((pw_idx) * 2))
0072
0073 #define PUNIT_PWGT_IDX_RENDER 0
0074 #define PUNIT_PWGT_IDX_MEDIA 1
0075 #define PUNIT_PWGT_IDX_DISP2D 3
0076 #define PUNIT_PWGT_IDX_DPIO_CMN_BC 5
0077 #define PUNIT_PWGT_IDX_DPIO_TX_B_LANES_01 6
0078 #define PUNIT_PWGT_IDX_DPIO_TX_B_LANES_23 7
0079 #define PUNIT_PWGT_IDX_DPIO_TX_C_LANES_01 8
0080 #define PUNIT_PWGT_IDX_DPIO_TX_C_LANES_23 9
0081 #define PUNIT_PWGT_IDX_DPIO_RX0 10
0082 #define PUNIT_PWGT_IDX_DPIO_RX1 11
0083 #define PUNIT_PWGT_IDX_DPIO_CMN_D 12
0084
0085 #define PUNIT_REG_GPU_LFM 0xd3
0086 #define PUNIT_REG_GPU_FREQ_REQ 0xd4
0087 #define PUNIT_REG_GPU_FREQ_STS 0xd8
0088 #define GPLLENABLE (1 << 4)
0089 #define GENFREQSTATUS (1 << 0)
0090 #define PUNIT_REG_MEDIA_TURBO_FREQ_REQ 0xdc
0091 #define PUNIT_REG_CZ_TIMESTAMP 0xce
0092
0093 #define PUNIT_FUSE_BUS2 0xf6
0094 #define PUNIT_FUSE_BUS1 0xf5
0095
0096 #define FB_GFX_FMAX_AT_VMAX_FUSE 0x136
0097 #define FB_GFX_FREQ_FUSE_MASK 0xff
0098 #define FB_GFX_FMAX_AT_VMAX_2SS4EU_FUSE_SHIFT 24
0099 #define FB_GFX_FMAX_AT_VMAX_2SS6EU_FUSE_SHIFT 16
0100 #define FB_GFX_FMAX_AT_VMAX_2SS8EU_FUSE_SHIFT 8
0101
0102 #define FB_GFX_FMIN_AT_VMIN_FUSE 0x137
0103 #define FB_GFX_FMIN_AT_VMIN_FUSE_SHIFT 8
0104
0105 #define PUNIT_REG_DDR_SETUP2 0x139
0106 #define FORCE_DDR_FREQ_REQ_ACK (1 << 8)
0107 #define FORCE_DDR_LOW_FREQ (1 << 1)
0108 #define FORCE_DDR_HIGH_FREQ (1 << 0)
0109
0110 #define PUNIT_GPU_STATUS_REG 0xdb
0111 #define PUNIT_GPU_STATUS_MAX_FREQ_SHIFT 16
0112 #define PUNIT_GPU_STATUS_MAX_FREQ_MASK 0xff
0113 #define PUNIT_GPU_STATIS_GFX_MIN_FREQ_SHIFT 8
0114 #define PUNIT_GPU_STATUS_GFX_MIN_FREQ_MASK 0xff
0115
0116 #define PUNIT_GPU_DUTYCYCLE_REG 0xdf
0117 #define PUNIT_GPU_DUTYCYCLE_RPE_FREQ_SHIFT 8
0118 #define PUNIT_GPU_DUTYCYCLE_RPE_FREQ_MASK 0xff
0119
0120 #define IOSF_NC_FB_GFX_FREQ_FUSE 0x1c
0121 #define FB_GFX_MAX_FREQ_FUSE_SHIFT 3
0122 #define FB_GFX_MAX_FREQ_FUSE_MASK 0x000007f8
0123 #define FB_GFX_FGUARANTEED_FREQ_FUSE_SHIFT 11
0124 #define FB_GFX_FGUARANTEED_FREQ_FUSE_MASK 0x0007f800
0125 #define IOSF_NC_FB_GFX_FMAX_FUSE_HI 0x34
0126 #define FB_FMAX_VMIN_FREQ_HI_MASK 0x00000007
0127 #define IOSF_NC_FB_GFX_FMAX_FUSE_LO 0x30
0128 #define FB_FMAX_VMIN_FREQ_LO_SHIFT 27
0129 #define FB_FMAX_VMIN_FREQ_LO_MASK 0xf8000000
0130
0131 #define VLV_TURBO_SOC_OVERRIDE 0x04
0132 #define VLV_OVERRIDE_EN 1
0133 #define VLV_SOC_TDP_EN (1 << 1)
0134 #define VLV_BIAS_CPU_125_SOC_875 (6 << 2)
0135 #define CHV_BIAS_CPU_50_SOC_50 (3 << 2)
0136
0137
0138 #define CCK_FUSE_REG 0x8
0139 #define CCK_FUSE_HPLL_FREQ_MASK 0x3
0140 #define CCK_REG_DSI_PLL_FUSE 0x44
0141 #define CCK_REG_DSI_PLL_CONTROL 0x48
0142 #define DSI_PLL_VCO_EN (1 << 31)
0143 #define DSI_PLL_LDO_GATE (1 << 30)
0144 #define DSI_PLL_P1_POST_DIV_SHIFT 17
0145 #define DSI_PLL_P1_POST_DIV_MASK (0x1ff << 17)
0146 #define DSI_PLL_P2_MUX_DSI0_DIV2 (1 << 13)
0147 #define DSI_PLL_P3_MUX_DSI1_DIV2 (1 << 12)
0148 #define DSI_PLL_MUX_MASK (3 << 9)
0149 #define DSI_PLL_MUX_DSI0_DSIPLL (0 << 10)
0150 #define DSI_PLL_MUX_DSI0_CCK (1 << 10)
0151 #define DSI_PLL_MUX_DSI1_DSIPLL (0 << 9)
0152 #define DSI_PLL_MUX_DSI1_CCK (1 << 9)
0153 #define DSI_PLL_CLK_GATE_MASK (0xf << 5)
0154 #define DSI_PLL_CLK_GATE_DSI0_DSIPLL (1 << 8)
0155 #define DSI_PLL_CLK_GATE_DSI1_DSIPLL (1 << 7)
0156 #define DSI_PLL_CLK_GATE_DSI0_CCK (1 << 6)
0157 #define DSI_PLL_CLK_GATE_DSI1_CCK (1 << 5)
0158 #define DSI_PLL_LOCK (1 << 0)
0159 #define CCK_REG_DSI_PLL_DIVIDER 0x4c
0160 #define DSI_PLL_LFSR (1 << 31)
0161 #define DSI_PLL_FRACTION_EN (1 << 30)
0162 #define DSI_PLL_FRAC_COUNTER_SHIFT 27
0163 #define DSI_PLL_FRAC_COUNTER_MASK (7 << 27)
0164 #define DSI_PLL_USYNC_CNT_SHIFT 18
0165 #define DSI_PLL_USYNC_CNT_MASK (0x1ff << 18)
0166 #define DSI_PLL_N1_DIV_SHIFT 16
0167 #define DSI_PLL_N1_DIV_MASK (3 << 16)
0168 #define DSI_PLL_M1_DIV_SHIFT 0
0169 #define DSI_PLL_M1_DIV_MASK (0x1ff << 0)
0170 #define CCK_CZ_CLOCK_CONTROL 0x62
0171 #define CCK_GPLL_CLOCK_CONTROL 0x67
0172 #define CCK_DISPLAY_CLOCK_CONTROL 0x6b
0173 #define CCK_DISPLAY_REF_CLOCK_CONTROL 0x6c
0174 #define CCK_TRUNK_FORCE_ON (1 << 17)
0175 #define CCK_TRUNK_FORCE_OFF (1 << 16)
0176 #define CCK_FREQUENCY_STATUS (0x1f << 8)
0177 #define CCK_FREQUENCY_STATUS_SHIFT 8
0178 #define CCK_FREQUENCY_VALUES (0x1f << 0)
0179
0180 #endif