Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2022 Intel Corporation
0004  */
0005 
0006 #ifndef _VLV_SIDEBAND_REG_H_
0007 #define _VLV_SIDEBAND_REG_H_
0008 
0009 /* See configdb bunit SB addr map */
0010 #define BUNIT_REG_BISOC             0x11
0011 
0012 /* PUNIT_REG_*SSPM0 */
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 /* PUNIT_REG_*SSPM1 */
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) /* chv */
0047 #define   DSP_AUTO_CDCLK_GATE_DISABLE       (1 << 7) /* chv */
0048 #define   DSP_MAXFIFO_PM5_ENABLE        (1 << 6) /* chv */
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 /* bits 47:40 */
0094 #define PUNIT_FUSE_BUS1             0xf5 /* bits 55:48 */
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 /* vlv2 north clock has */
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 /* _VLV_SIDEBAND_REG_H_ */