Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2022 Intel Corporation
0004  */
0005 
0006 #ifndef __INTEL_TC_PHY_REGS__
0007 #define __INTEL_TC_PHY_REGS__
0008 
0009 #include "i915_reg_defs.h"
0010 
0011 #define MG_PHY_PORT_LN(ln, tc_port, ln0p1, ln0p2, ln1p1) \
0012     _MMIO(_PORT(tc_port, ln0p1, ln0p2) + (ln) * ((ln1p1) - (ln0p1)))
0013 
0014 #define MG_TX_LINK_PARAMS_TX1LN0_PORT1      0x16812C
0015 #define MG_TX_LINK_PARAMS_TX1LN1_PORT1      0x16852C
0016 #define MG_TX_LINK_PARAMS_TX1LN0_PORT2      0x16912C
0017 #define MG_TX_LINK_PARAMS_TX1LN1_PORT2      0x16952C
0018 #define MG_TX1_LINK_PARAMS(ln, tc_port) \
0019     MG_PHY_PORT_LN(ln, tc_port, MG_TX_LINK_PARAMS_TX1LN0_PORT1, \
0020                MG_TX_LINK_PARAMS_TX1LN0_PORT2, \
0021                MG_TX_LINK_PARAMS_TX1LN1_PORT1)
0022 
0023 #define MG_TX_LINK_PARAMS_TX2LN0_PORT1      0x1680AC
0024 #define MG_TX_LINK_PARAMS_TX2LN1_PORT1      0x1684AC
0025 #define MG_TX_LINK_PARAMS_TX2LN0_PORT2      0x1690AC
0026 #define MG_TX_LINK_PARAMS_TX2LN1_PORT2      0x1694AC
0027 #define MG_TX2_LINK_PARAMS(ln, tc_port) \
0028     MG_PHY_PORT_LN(ln, tc_port, MG_TX_LINK_PARAMS_TX2LN0_PORT1, \
0029                MG_TX_LINK_PARAMS_TX2LN0_PORT2, \
0030                MG_TX_LINK_PARAMS_TX2LN1_PORT1)
0031 #define   CRI_USE_FS32          (1 << 5)
0032 
0033 #define MG_TX_PISO_READLOAD_TX1LN0_PORT1        0x16814C
0034 #define MG_TX_PISO_READLOAD_TX1LN1_PORT1        0x16854C
0035 #define MG_TX_PISO_READLOAD_TX1LN0_PORT2        0x16914C
0036 #define MG_TX_PISO_READLOAD_TX1LN1_PORT2        0x16954C
0037 #define MG_TX1_PISO_READLOAD(ln, tc_port) \
0038     MG_PHY_PORT_LN(ln, tc_port, MG_TX_PISO_READLOAD_TX1LN0_PORT1, \
0039                MG_TX_PISO_READLOAD_TX1LN0_PORT2, \
0040                MG_TX_PISO_READLOAD_TX1LN1_PORT1)
0041 
0042 #define MG_TX_PISO_READLOAD_TX2LN0_PORT1        0x1680CC
0043 #define MG_TX_PISO_READLOAD_TX2LN1_PORT1        0x1684CC
0044 #define MG_TX_PISO_READLOAD_TX2LN0_PORT2        0x1690CC
0045 #define MG_TX_PISO_READLOAD_TX2LN1_PORT2        0x1694CC
0046 #define MG_TX2_PISO_READLOAD(ln, tc_port) \
0047     MG_PHY_PORT_LN(ln, tc_port, MG_TX_PISO_READLOAD_TX2LN0_PORT1, \
0048                MG_TX_PISO_READLOAD_TX2LN0_PORT2, \
0049                MG_TX_PISO_READLOAD_TX2LN1_PORT1)
0050 #define   CRI_CALCINIT                  (1 << 1)
0051 
0052 #define MG_TX_SWINGCTRL_TX1LN0_PORT1        0x168148
0053 #define MG_TX_SWINGCTRL_TX1LN1_PORT1        0x168548
0054 #define MG_TX_SWINGCTRL_TX1LN0_PORT2        0x169148
0055 #define MG_TX_SWINGCTRL_TX1LN1_PORT2        0x169548
0056 #define MG_TX1_SWINGCTRL(ln, tc_port) \
0057     MG_PHY_PORT_LN(ln, tc_port, MG_TX_SWINGCTRL_TX1LN0_PORT1, \
0058                MG_TX_SWINGCTRL_TX1LN0_PORT2, \
0059                MG_TX_SWINGCTRL_TX1LN1_PORT1)
0060 
0061 #define MG_TX_SWINGCTRL_TX2LN0_PORT1        0x1680C8
0062 #define MG_TX_SWINGCTRL_TX2LN1_PORT1        0x1684C8
0063 #define MG_TX_SWINGCTRL_TX2LN0_PORT2        0x1690C8
0064 #define MG_TX_SWINGCTRL_TX2LN1_PORT2        0x1694C8
0065 #define MG_TX2_SWINGCTRL(ln, tc_port) \
0066     MG_PHY_PORT_LN(ln, tc_port, MG_TX_SWINGCTRL_TX2LN0_PORT1, \
0067                MG_TX_SWINGCTRL_TX2LN0_PORT2, \
0068                MG_TX_SWINGCTRL_TX2LN1_PORT1)
0069 #define   CRI_TXDEEMPH_OVERRIDE_17_12(x)        ((x) << 0)
0070 #define   CRI_TXDEEMPH_OVERRIDE_17_12_MASK      (0x3F << 0)
0071 
0072 #define MG_TX_DRVCTRL_TX1LN0_TXPORT1            0x168144
0073 #define MG_TX_DRVCTRL_TX1LN1_TXPORT1            0x168544
0074 #define MG_TX_DRVCTRL_TX1LN0_TXPORT2            0x169144
0075 #define MG_TX_DRVCTRL_TX1LN1_TXPORT2            0x169544
0076 #define MG_TX_DRVCTRL_TX1LN0_TXPORT3            0x16A144
0077 #define MG_TX_DRVCTRL_TX1LN1_TXPORT3            0x16A544
0078 #define MG_TX_DRVCTRL_TX1LN0_TXPORT4            0x16B144
0079 #define MG_TX_DRVCTRL_TX1LN1_TXPORT4            0x16B544
0080 #define MG_TX1_DRVCTRL(ln, tc_port) \
0081     MG_PHY_PORT_LN(ln, tc_port, MG_TX_DRVCTRL_TX1LN0_TXPORT1, \
0082                MG_TX_DRVCTRL_TX1LN0_TXPORT2, \
0083                MG_TX_DRVCTRL_TX1LN1_TXPORT1)
0084 
0085 #define MG_TX_DRVCTRL_TX2LN0_PORT1          0x1680C4
0086 #define MG_TX_DRVCTRL_TX2LN1_PORT1          0x1684C4
0087 #define MG_TX_DRVCTRL_TX2LN0_PORT2          0x1690C4
0088 #define MG_TX_DRVCTRL_TX2LN1_PORT2          0x1694C4
0089 #define MG_TX2_DRVCTRL(ln, tc_port) \
0090     MG_PHY_PORT_LN(ln, tc_port, MG_TX_DRVCTRL_TX2LN0_PORT1, \
0091                MG_TX_DRVCTRL_TX2LN0_PORT2, \
0092                MG_TX_DRVCTRL_TX2LN1_PORT1)
0093 #define   CRI_TXDEEMPH_OVERRIDE_11_6(x)         ((x) << 24)
0094 #define   CRI_TXDEEMPH_OVERRIDE_11_6_MASK       (0x3F << 24)
0095 #define   CRI_TXDEEMPH_OVERRIDE_EN          (1 << 22)
0096 #define   CRI_TXDEEMPH_OVERRIDE_5_0(x)          ((x) << 16)
0097 #define   CRI_TXDEEMPH_OVERRIDE_5_0_MASK        (0x3F << 16)
0098 #define   CRI_LOADGEN_SEL(x)                ((x) << 12)
0099 #define   CRI_LOADGEN_SEL_MASK              (0x3 << 12)
0100 
0101 #define MG_CLKHUB_LN0_PORT1         0x16839C
0102 #define MG_CLKHUB_LN1_PORT1         0x16879C
0103 #define MG_CLKHUB_LN0_PORT2         0x16939C
0104 #define MG_CLKHUB_LN1_PORT2         0x16979C
0105 #define MG_CLKHUB(ln, tc_port) \
0106     MG_PHY_PORT_LN(ln, tc_port, MG_CLKHUB_LN0_PORT1, \
0107                MG_CLKHUB_LN0_PORT2, \
0108                MG_CLKHUB_LN1_PORT1)
0109 #define   CFG_LOW_RATE_LKREN_EN             (1 << 11)
0110 
0111 #define MG_TX_DCC_TX1LN0_PORT1          0x168110
0112 #define MG_TX_DCC_TX1LN1_PORT1          0x168510
0113 #define MG_TX_DCC_TX1LN0_PORT2          0x169110
0114 #define MG_TX_DCC_TX1LN1_PORT2          0x169510
0115 #define MG_TX1_DCC(ln, tc_port) \
0116     MG_PHY_PORT_LN(ln, tc_port, MG_TX_DCC_TX1LN0_PORT1, \
0117                MG_TX_DCC_TX1LN0_PORT2, \
0118                MG_TX_DCC_TX1LN1_PORT1)
0119 #define MG_TX_DCC_TX2LN0_PORT1          0x168090
0120 #define MG_TX_DCC_TX2LN1_PORT1          0x168490
0121 #define MG_TX_DCC_TX2LN0_PORT2          0x169090
0122 #define MG_TX_DCC_TX2LN1_PORT2          0x169490
0123 #define MG_TX2_DCC(ln, tc_port) \
0124     MG_PHY_PORT_LN(ln, tc_port, MG_TX_DCC_TX2LN0_PORT1, \
0125                MG_TX_DCC_TX2LN0_PORT2, \
0126                MG_TX_DCC_TX2LN1_PORT1)
0127 #define   CFG_AMI_CK_DIV_OVERRIDE_VAL(x)    ((x) << 25)
0128 #define   CFG_AMI_CK_DIV_OVERRIDE_VAL_MASK  (0x3 << 25)
0129 #define   CFG_AMI_CK_DIV_OVERRIDE_EN        (1 << 24)
0130 
0131 #define MG_DP_MODE_LN0_ACU_PORT1            0x1683A0
0132 #define MG_DP_MODE_LN1_ACU_PORT1            0x1687A0
0133 #define MG_DP_MODE_LN0_ACU_PORT2            0x1693A0
0134 #define MG_DP_MODE_LN1_ACU_PORT2            0x1697A0
0135 #define MG_DP_MODE(ln, tc_port) \
0136     MG_PHY_PORT_LN(ln, tc_port, MG_DP_MODE_LN0_ACU_PORT1, \
0137                MG_DP_MODE_LN0_ACU_PORT2, \
0138                MG_DP_MODE_LN1_ACU_PORT1)
0139 #define   MG_DP_MODE_CFG_DP_X2_MODE         (1 << 7)
0140 #define   MG_DP_MODE_CFG_DP_X1_MODE         (1 << 6)
0141 
0142 #define FIA1_BASE           0x163000
0143 #define FIA2_BASE           0x16E000
0144 #define FIA3_BASE           0x16F000
0145 #define _FIA(fia)           _PICK((fia), FIA1_BASE, FIA2_BASE, FIA3_BASE)
0146 #define _MMIO_FIA(fia, off)     _MMIO(_FIA(fia) + (off))
0147 
0148 /* ICL PHY DFLEX registers */
0149 #define PORT_TX_DFLEXDPMLE1(fia)        _MMIO_FIA((fia),  0x008C0)
0150 #define   DFLEXDPMLE1_DPMLETC_MASK(idx)     (0xf << (4 * (idx)))
0151 #define   DFLEXDPMLE1_DPMLETC_ML0(idx)      (1 << (4 * (idx)))
0152 #define   DFLEXDPMLE1_DPMLETC_ML1_0(idx)    (3 << (4 * (idx)))
0153 #define   DFLEXDPMLE1_DPMLETC_ML3(idx)      (8 << (4 * (idx)))
0154 #define   DFLEXDPMLE1_DPMLETC_ML3_2(idx)    (12 << (4 * (idx)))
0155 #define   DFLEXDPMLE1_DPMLETC_ML3_0(idx)    (15 << (4 * (idx)))
0156 
0157 #define _MG_REFCLKIN_CTL_PORT1              0x16892C
0158 #define _MG_REFCLKIN_CTL_PORT2              0x16992C
0159 #define   MG_REFCLKIN_CTL_OD_2_MUX(x)           ((x) << 8)
0160 #define   MG_REFCLKIN_CTL_OD_2_MUX_MASK         (0x7 << 8)
0161 #define MG_REFCLKIN_CTL(tc_port) _MMIO_PORT((tc_port), \
0162                         _MG_REFCLKIN_CTL_PORT1, \
0163                         _MG_REFCLKIN_CTL_PORT2)
0164 
0165 #define _MG_CLKTOP2_CORECLKCTL1_PORT1           0x1688D8
0166 #define _MG_CLKTOP2_CORECLKCTL1_PORT2           0x1698D8
0167 #define   MG_CLKTOP2_CORECLKCTL1_B_DIVRATIO(x)      ((x) << 16)
0168 #define   MG_CLKTOP2_CORECLKCTL1_B_DIVRATIO_MASK    (0xff << 16)
0169 #define   MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO(x)      ((x) << 8)
0170 #define   MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO_MASK    (0xff << 8)
0171 #define MG_CLKTOP2_CORECLKCTL1(tc_port) _MMIO_PORT((tc_port), \
0172                            _MG_CLKTOP2_CORECLKCTL1_PORT1, \
0173                            _MG_CLKTOP2_CORECLKCTL1_PORT2)
0174 
0175 #define _MG_CLKTOP2_HSCLKCTL_PORT1          0x1688D4
0176 #define _MG_CLKTOP2_HSCLKCTL_PORT2          0x1698D4
0177 #define   MG_CLKTOP2_HSCLKCTL_CORE_INPUTSEL(x)      ((x) << 16)
0178 #define   MG_CLKTOP2_HSCLKCTL_CORE_INPUTSEL_MASK    (0x1 << 16)
0179 #define   MG_CLKTOP2_HSCLKCTL_TLINEDRV_CLKSEL(x)    ((x) << 14)
0180 #define   MG_CLKTOP2_HSCLKCTL_TLINEDRV_CLKSEL_MASK  (0x3 << 14)
0181 #define   MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_MASK      (0x3 << 12)
0182 #define   MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_2     (0 << 12)
0183 #define   MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_3     (1 << 12)
0184 #define   MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_5     (2 << 12)
0185 #define   MG_CLKTOP2_HSCLKCTL_HSDIV_RATIO_7     (3 << 12)
0186 #define   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO(x)        ((x) << 8)
0187 #define   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_SHIFT     8
0188 #define   MG_CLKTOP2_HSCLKCTL_DSDIV_RATIO_MASK      (0xf << 8)
0189 #define MG_CLKTOP2_HSCLKCTL(tc_port) _MMIO_PORT((tc_port), \
0190                         _MG_CLKTOP2_HSCLKCTL_PORT1, \
0191                         _MG_CLKTOP2_HSCLKCTL_PORT2)
0192 
0193 #define _MG_PLL_DIV0_PORT1              0x168A00
0194 #define _MG_PLL_DIV0_PORT2              0x169A00
0195 #define   MG_PLL_DIV0_FRACNEN_H             (1 << 30)
0196 #define   MG_PLL_DIV0_FBDIV_FRAC_MASK           (0x3fffff << 8)
0197 #define   MG_PLL_DIV0_FBDIV_FRAC_SHIFT          8
0198 #define   MG_PLL_DIV0_FBDIV_FRAC(x)         ((x) << 8)
0199 #define   MG_PLL_DIV0_FBDIV_INT_MASK            (0xff << 0)
0200 #define   MG_PLL_DIV0_FBDIV_INT(x)          ((x) << 0)
0201 #define MG_PLL_DIV0(tc_port) _MMIO_PORT((tc_port), _MG_PLL_DIV0_PORT1, \
0202                     _MG_PLL_DIV0_PORT2)
0203 
0204 #define _MG_PLL_DIV1_PORT1              0x168A04
0205 #define _MG_PLL_DIV1_PORT2              0x169A04
0206 #define   MG_PLL_DIV1_IREF_NDIVRATIO(x)         ((x) << 16)
0207 #define   MG_PLL_DIV1_DITHER_DIV_1          (0 << 12)
0208 #define   MG_PLL_DIV1_DITHER_DIV_2          (1 << 12)
0209 #define   MG_PLL_DIV1_DITHER_DIV_4          (2 << 12)
0210 #define   MG_PLL_DIV1_DITHER_DIV_8          (3 << 12)
0211 #define   MG_PLL_DIV1_NDIVRATIO(x)          ((x) << 4)
0212 #define   MG_PLL_DIV1_FBPREDIV_MASK         (0xf << 0)
0213 #define   MG_PLL_DIV1_FBPREDIV(x)           ((x) << 0)
0214 #define MG_PLL_DIV1(tc_port) _MMIO_PORT((tc_port), _MG_PLL_DIV1_PORT1, \
0215                     _MG_PLL_DIV1_PORT2)
0216 
0217 #define _MG_PLL_LF_PORT1                0x168A08
0218 #define _MG_PLL_LF_PORT2                0x169A08
0219 #define   MG_PLL_LF_TDCTARGETCNT(x)         ((x) << 24)
0220 #define   MG_PLL_LF_AFCCNTSEL_256           (0 << 20)
0221 #define   MG_PLL_LF_AFCCNTSEL_512           (1 << 20)
0222 #define   MG_PLL_LF_GAINCTRL(x)             ((x) << 16)
0223 #define   MG_PLL_LF_INT_COEFF(x)            ((x) << 8)
0224 #define   MG_PLL_LF_PROP_COEFF(x)           ((x) << 0)
0225 #define MG_PLL_LF(tc_port) _MMIO_PORT((tc_port), _MG_PLL_LF_PORT1, \
0226                       _MG_PLL_LF_PORT2)
0227 
0228 #define _MG_PLL_FRAC_LOCK_PORT1             0x168A0C
0229 #define _MG_PLL_FRAC_LOCK_PORT2             0x169A0C
0230 #define   MG_PLL_FRAC_LOCK_TRUELOCK_CRIT_32     (1 << 18)
0231 #define   MG_PLL_FRAC_LOCK_EARLYLOCK_CRIT_32        (1 << 16)
0232 #define   MG_PLL_FRAC_LOCK_LOCKTHRESH(x)        ((x) << 11)
0233 #define   MG_PLL_FRAC_LOCK_DCODITHEREN          (1 << 10)
0234 #define   MG_PLL_FRAC_LOCK_FEEDFWRDCAL_EN       (1 << 8)
0235 #define   MG_PLL_FRAC_LOCK_FEEDFWRDGAIN(x)      ((x) << 0)
0236 #define MG_PLL_FRAC_LOCK(tc_port) _MMIO_PORT((tc_port), \
0237                          _MG_PLL_FRAC_LOCK_PORT1, \
0238                          _MG_PLL_FRAC_LOCK_PORT2)
0239 
0240 #define _MG_PLL_SSC_PORT1               0x168A10
0241 #define _MG_PLL_SSC_PORT2               0x169A10
0242 #define   MG_PLL_SSC_EN                 (1 << 28)
0243 #define   MG_PLL_SSC_TYPE(x)                ((x) << 26)
0244 #define   MG_PLL_SSC_STEPLENGTH(x)          ((x) << 16)
0245 #define   MG_PLL_SSC_STEPNUM(x)             ((x) << 10)
0246 #define   MG_PLL_SSC_FLLEN              (1 << 9)
0247 #define   MG_PLL_SSC_STEPSIZE(x)            ((x) << 0)
0248 #define MG_PLL_SSC(tc_port) _MMIO_PORT((tc_port), _MG_PLL_SSC_PORT1, \
0249                        _MG_PLL_SSC_PORT2)
0250 
0251 #define _MG_PLL_BIAS_PORT1              0x168A14
0252 #define _MG_PLL_BIAS_PORT2              0x169A14
0253 #define   MG_PLL_BIAS_BIAS_GB_SEL(x)            ((x) << 30)
0254 #define   MG_PLL_BIAS_BIAS_GB_SEL_MASK          (0x3 << 30)
0255 #define   MG_PLL_BIAS_INIT_DCOAMP(x)            ((x) << 24)
0256 #define   MG_PLL_BIAS_INIT_DCOAMP_MASK          (0x3f << 24)
0257 #define   MG_PLL_BIAS_BIAS_BONUS(x)         ((x) << 16)
0258 #define   MG_PLL_BIAS_BIAS_BONUS_MASK           (0xff << 16)
0259 #define   MG_PLL_BIAS_BIASCAL_EN            (1 << 15)
0260 #define   MG_PLL_BIAS_CTRIM(x)              ((x) << 8)
0261 #define   MG_PLL_BIAS_CTRIM_MASK            (0x1f << 8)
0262 #define   MG_PLL_BIAS_VREF_RDAC(x)          ((x) << 5)
0263 #define   MG_PLL_BIAS_VREF_RDAC_MASK            (0x7 << 5)
0264 #define   MG_PLL_BIAS_IREFTRIM(x)           ((x) << 0)
0265 #define   MG_PLL_BIAS_IREFTRIM_MASK         (0x1f << 0)
0266 #define MG_PLL_BIAS(tc_port) _MMIO_PORT((tc_port), _MG_PLL_BIAS_PORT1, \
0267                     _MG_PLL_BIAS_PORT2)
0268 
0269 #define _MG_PLL_TDC_COLDST_BIAS_PORT1           0x168A18
0270 #define _MG_PLL_TDC_COLDST_BIAS_PORT2           0x169A18
0271 #define   MG_PLL_TDC_COLDST_IREFINT_EN          (1 << 27)
0272 #define   MG_PLL_TDC_COLDST_REFBIAS_START_PULSE_W(x)    ((x) << 17)
0273 #define   MG_PLL_TDC_COLDST_COLDSTART           (1 << 16)
0274 #define   MG_PLL_TDC_TDCOVCCORR_EN          (1 << 2)
0275 #define   MG_PLL_TDC_TDCSEL(x)              ((x) << 0)
0276 #define MG_PLL_TDC_COLDST_BIAS(tc_port) _MMIO_PORT((tc_port), \
0277                            _MG_PLL_TDC_COLDST_BIAS_PORT1, \
0278                            _MG_PLL_TDC_COLDST_BIAS_PORT2)
0279 
0280 #endif /* __INTEL_TC_PHY_REGS__ */