|
@@ -1186,7 +1186,19 @@ enum skl_disp_power_wells {
|
|
|
#define DPIO_UPAR_SHIFT 30
|
|
|
|
|
|
/* BXT PHY registers */
|
|
|
-#define _BXT_PHY(phy, a, b) _MMIO_PIPE((phy), (a), (b))
|
|
|
+#define _BXT_PHY0_BASE 0x6C000
|
|
|
+#define _BXT_PHY1_BASE 0x162000
|
|
|
+#define BXT_PHY_BASE(phy) _PIPE((phy), _BXT_PHY0_BASE, \
|
|
|
+ _BXT_PHY1_BASE)
|
|
|
+
|
|
|
+#define _BXT_PHY(phy, reg) \
|
|
|
+ _MMIO(BXT_PHY_BASE(phy) - _BXT_PHY0_BASE + (reg))
|
|
|
+
|
|
|
+#define _BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) \
|
|
|
+ (BXT_PHY_BASE(phy) + _PIPE((ch), (reg_ch0) - _BXT_PHY0_BASE, \
|
|
|
+ (reg_ch1) - _BXT_PHY0_BASE))
|
|
|
+#define _MMIO_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) \
|
|
|
+ _MMIO(_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1))
|
|
|
|
|
|
#define BXT_P_CR_GT_DISP_PWRON _MMIO(0x138090)
|
|
|
#define GT_DISPLAY_POWER_ON(phy) (1 << (phy))
|
|
@@ -1203,8 +1215,8 @@ enum skl_disp_power_wells {
|
|
|
#define _PHY_CTL_FAMILY_EDP 0x64C80
|
|
|
#define _PHY_CTL_FAMILY_DDI 0x64C90
|
|
|
#define COMMON_RESET_DIS (1 << 31)
|
|
|
-#define BXT_PHY_CTL_FAMILY(phy) _BXT_PHY((phy), _PHY_CTL_FAMILY_DDI, \
|
|
|
- _PHY_CTL_FAMILY_EDP)
|
|
|
+#define BXT_PHY_CTL_FAMILY(phy) _MMIO_PIPE((phy), _PHY_CTL_FAMILY_DDI, \
|
|
|
+ _PHY_CTL_FAMILY_EDP)
|
|
|
|
|
|
/* BXT PHY PLL registers */
|
|
|
#define _PORT_PLL_A 0x46074
|
|
@@ -1224,18 +1236,18 @@ enum skl_disp_power_wells {
|
|
|
#define PORT_PLL_P2_SHIFT 8
|
|
|
#define PORT_PLL_P2_MASK (0x1f << PORT_PLL_P2_SHIFT)
|
|
|
#define PORT_PLL_P2(x) ((x) << PORT_PLL_P2_SHIFT)
|
|
|
-#define BXT_PORT_PLL_EBB_0(port) _MMIO_PORT3(port, _PORT_PLL_EBB_0_A, \
|
|
|
- _PORT_PLL_EBB_0_B, \
|
|
|
- _PORT_PLL_EBB_0_C)
|
|
|
+#define BXT_PORT_PLL_EBB_0(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PLL_EBB_0_B, \
|
|
|
+ _PORT_PLL_EBB_0_C)
|
|
|
|
|
|
#define _PORT_PLL_EBB_4_A 0x162038
|
|
|
#define _PORT_PLL_EBB_4_B 0x6C038
|
|
|
#define _PORT_PLL_EBB_4_C 0x6C344
|
|
|
#define PORT_PLL_10BIT_CLK_ENABLE (1 << 13)
|
|
|
#define PORT_PLL_RECALIBRATE (1 << 14)
|
|
|
-#define BXT_PORT_PLL_EBB_4(port) _MMIO_PORT3(port, _PORT_PLL_EBB_4_A, \
|
|
|
- _PORT_PLL_EBB_4_B, \
|
|
|
- _PORT_PLL_EBB_4_C)
|
|
|
+#define BXT_PORT_PLL_EBB_4(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PLL_EBB_4_B, \
|
|
|
+ _PORT_PLL_EBB_4_C)
|
|
|
|
|
|
#define _PORT_PLL_0_A 0x162100
|
|
|
#define _PORT_PLL_0_B 0x6C100
|
|
@@ -1266,62 +1278,56 @@ enum skl_disp_power_wells {
|
|
|
#define PORT_PLL_DCO_AMP_DEFAULT 15
|
|
|
#define PORT_PLL_DCO_AMP_MASK 0x3c00
|
|
|
#define PORT_PLL_DCO_AMP(x) ((x)<<10)
|
|
|
-#define _PORT_PLL_BASE(port) _PORT3(port, _PORT_PLL_0_A, \
|
|
|
- _PORT_PLL_0_B, \
|
|
|
- _PORT_PLL_0_C)
|
|
|
-#define BXT_PORT_PLL(port, idx) _MMIO(_PORT_PLL_BASE(port) + (idx) * 4)
|
|
|
+#define _PORT_PLL_BASE(phy, ch) _BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PLL_0_B, \
|
|
|
+ _PORT_PLL_0_C)
|
|
|
+#define BXT_PORT_PLL(phy, ch, idx) _MMIO(_PORT_PLL_BASE(phy, ch) + \
|
|
|
+ (idx) * 4)
|
|
|
|
|
|
/* BXT PHY common lane registers */
|
|
|
#define _PORT_CL1CM_DW0_A 0x162000
|
|
|
#define _PORT_CL1CM_DW0_BC 0x6C000
|
|
|
#define PHY_POWER_GOOD (1 << 16)
|
|
|
#define PHY_RESERVED (1 << 7)
|
|
|
-#define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC, \
|
|
|
- _PORT_CL1CM_DW0_A)
|
|
|
+#define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC)
|
|
|
|
|
|
#define _PORT_CL1CM_DW9_A 0x162024
|
|
|
#define _PORT_CL1CM_DW9_BC 0x6C024
|
|
|
#define IREF0RC_OFFSET_SHIFT 8
|
|
|
#define IREF0RC_OFFSET_MASK (0xFF << IREF0RC_OFFSET_SHIFT)
|
|
|
-#define BXT_PORT_CL1CM_DW9(phy) _BXT_PHY((phy), _PORT_CL1CM_DW9_BC, \
|
|
|
- _PORT_CL1CM_DW9_A)
|
|
|
+#define BXT_PORT_CL1CM_DW9(phy) _BXT_PHY((phy), _PORT_CL1CM_DW9_BC)
|
|
|
|
|
|
#define _PORT_CL1CM_DW10_A 0x162028
|
|
|
#define _PORT_CL1CM_DW10_BC 0x6C028
|
|
|
#define IREF1RC_OFFSET_SHIFT 8
|
|
|
#define IREF1RC_OFFSET_MASK (0xFF << IREF1RC_OFFSET_SHIFT)
|
|
|
-#define BXT_PORT_CL1CM_DW10(phy) _BXT_PHY((phy), _PORT_CL1CM_DW10_BC, \
|
|
|
- _PORT_CL1CM_DW10_A)
|
|
|
+#define BXT_PORT_CL1CM_DW10(phy) _BXT_PHY((phy), _PORT_CL1CM_DW10_BC)
|
|
|
|
|
|
#define _PORT_CL1CM_DW28_A 0x162070
|
|
|
#define _PORT_CL1CM_DW28_BC 0x6C070
|
|
|
#define OCL1_POWER_DOWN_EN (1 << 23)
|
|
|
#define DW28_OLDO_DYN_PWR_DOWN_EN (1 << 22)
|
|
|
#define SUS_CLK_CONFIG 0x3
|
|
|
-#define BXT_PORT_CL1CM_DW28(phy) _BXT_PHY((phy), _PORT_CL1CM_DW28_BC, \
|
|
|
- _PORT_CL1CM_DW28_A)
|
|
|
+#define BXT_PORT_CL1CM_DW28(phy) _BXT_PHY((phy), _PORT_CL1CM_DW28_BC)
|
|
|
|
|
|
#define _PORT_CL1CM_DW30_A 0x162078
|
|
|
#define _PORT_CL1CM_DW30_BC 0x6C078
|
|
|
#define OCL2_LDOFUSE_PWR_DIS (1 << 6)
|
|
|
-#define BXT_PORT_CL1CM_DW30(phy) _BXT_PHY((phy), _PORT_CL1CM_DW30_BC, \
|
|
|
- _PORT_CL1CM_DW30_A)
|
|
|
+#define BXT_PORT_CL1CM_DW30(phy) _BXT_PHY((phy), _PORT_CL1CM_DW30_BC)
|
|
|
|
|
|
/* The spec defines this only for BXT PHY0, but lets assume that this
|
|
|
* would exist for PHY1 too if it had a second channel.
|
|
|
*/
|
|
|
#define _PORT_CL2CM_DW6_A 0x162358
|
|
|
#define _PORT_CL2CM_DW6_BC 0x6C358
|
|
|
-#define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC, \
|
|
|
- _PORT_CL2CM_DW6_A)
|
|
|
+#define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC)
|
|
|
#define DW6_OLDO_DYN_PWR_DOWN_EN (1 << 28)
|
|
|
|
|
|
/* BXT PHY Ref registers */
|
|
|
#define _PORT_REF_DW3_A 0x16218C
|
|
|
#define _PORT_REF_DW3_BC 0x6C18C
|
|
|
#define GRC_DONE (1 << 22)
|
|
|
-#define BXT_PORT_REF_DW3(phy) _BXT_PHY((phy), _PORT_REF_DW3_BC, \
|
|
|
- _PORT_REF_DW3_A)
|
|
|
+#define BXT_PORT_REF_DW3(phy) _BXT_PHY((phy), _PORT_REF_DW3_BC)
|
|
|
|
|
|
#define _PORT_REF_DW6_A 0x162198
|
|
|
#define _PORT_REF_DW6_BC 0x6C198
|
|
@@ -1332,15 +1338,13 @@ enum skl_disp_power_wells {
|
|
|
#define GRC_CODE_SLOW_SHIFT 8
|
|
|
#define GRC_CODE_SLOW_MASK (0xFF << GRC_CODE_SLOW_SHIFT)
|
|
|
#define GRC_CODE_NOM_MASK 0xFF
|
|
|
-#define BXT_PORT_REF_DW6(phy) _BXT_PHY((phy), _PORT_REF_DW6_BC, \
|
|
|
- _PORT_REF_DW6_A)
|
|
|
+#define BXT_PORT_REF_DW6(phy) _BXT_PHY((phy), _PORT_REF_DW6_BC)
|
|
|
|
|
|
#define _PORT_REF_DW8_A 0x1621A0
|
|
|
#define _PORT_REF_DW8_BC 0x6C1A0
|
|
|
#define GRC_DIS (1 << 15)
|
|
|
#define GRC_RDY_OVRD (1 << 1)
|
|
|
-#define BXT_PORT_REF_DW8(phy) _BXT_PHY((phy), _PORT_REF_DW8_BC, \
|
|
|
- _PORT_REF_DW8_A)
|
|
|
+#define BXT_PORT_REF_DW8(phy) _BXT_PHY((phy), _PORT_REF_DW8_BC)
|
|
|
|
|
|
/* BXT PHY PCS registers */
|
|
|
#define _PORT_PCS_DW10_LN01_A 0x162428
|
|
@@ -1349,12 +1353,13 @@ enum skl_disp_power_wells {
|
|
|
#define _PORT_PCS_DW10_GRP_A 0x162C28
|
|
|
#define _PORT_PCS_DW10_GRP_B 0x6CC28
|
|
|
#define _PORT_PCS_DW10_GRP_C 0x6CE28
|
|
|
-#define BXT_PORT_PCS_DW10_LN01(port) _MMIO_PORT3(port, _PORT_PCS_DW10_LN01_A, \
|
|
|
- _PORT_PCS_DW10_LN01_B, \
|
|
|
- _PORT_PCS_DW10_LN01_C)
|
|
|
-#define BXT_PORT_PCS_DW10_GRP(port) _MMIO_PORT3(port, _PORT_PCS_DW10_GRP_A, \
|
|
|
- _PORT_PCS_DW10_GRP_B, \
|
|
|
- _PORT_PCS_DW10_GRP_C)
|
|
|
+#define BXT_PORT_PCS_DW10_LN01(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PCS_DW10_LN01_B, \
|
|
|
+ _PORT_PCS_DW10_LN01_C)
|
|
|
+#define BXT_PORT_PCS_DW10_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PCS_DW10_GRP_B, \
|
|
|
+ _PORT_PCS_DW10_GRP_C)
|
|
|
+
|
|
|
#define TX2_SWING_CALC_INIT (1 << 31)
|
|
|
#define TX1_SWING_CALC_INIT (1 << 30)
|
|
|
|
|
@@ -1369,15 +1374,15 @@ enum skl_disp_power_wells {
|
|
|
#define _PORT_PCS_DW12_GRP_C 0x6CE30
|
|
|
#define LANESTAGGER_STRAP_OVRD (1 << 6)
|
|
|
#define LANE_STAGGER_MASK 0x1F
|
|
|
-#define BXT_PORT_PCS_DW12_LN01(port) _MMIO_PORT3(port, _PORT_PCS_DW12_LN01_A, \
|
|
|
- _PORT_PCS_DW12_LN01_B, \
|
|
|
- _PORT_PCS_DW12_LN01_C)
|
|
|
-#define BXT_PORT_PCS_DW12_LN23(port) _MMIO_PORT3(port, _PORT_PCS_DW12_LN23_A, \
|
|
|
- _PORT_PCS_DW12_LN23_B, \
|
|
|
- _PORT_PCS_DW12_LN23_C)
|
|
|
-#define BXT_PORT_PCS_DW12_GRP(port) _MMIO_PORT3(port, _PORT_PCS_DW12_GRP_A, \
|
|
|
- _PORT_PCS_DW12_GRP_B, \
|
|
|
- _PORT_PCS_DW12_GRP_C)
|
|
|
+#define BXT_PORT_PCS_DW12_LN01(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PCS_DW12_LN01_B, \
|
|
|
+ _PORT_PCS_DW12_LN01_C)
|
|
|
+#define BXT_PORT_PCS_DW12_LN23(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PCS_DW12_LN23_B, \
|
|
|
+ _PORT_PCS_DW12_LN23_C)
|
|
|
+#define BXT_PORT_PCS_DW12_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_PCS_DW12_GRP_B, \
|
|
|
+ _PORT_PCS_DW12_GRP_C)
|
|
|
|
|
|
/* BXT PHY TX registers */
|
|
|
#define _BXT_LANE_OFFSET(lane) (((lane) >> 1) * 0x200 + \
|
|
@@ -1389,12 +1394,12 @@ enum skl_disp_power_wells {
|
|
|
#define _PORT_TX_DW2_GRP_A 0x162D08
|
|
|
#define _PORT_TX_DW2_GRP_B 0x6CD08
|
|
|
#define _PORT_TX_DW2_GRP_C 0x6CF08
|
|
|
-#define BXT_PORT_TX_DW2_GRP(port) _MMIO_PORT3(port, _PORT_TX_DW2_GRP_A, \
|
|
|
- _PORT_TX_DW2_GRP_B, \
|
|
|
- _PORT_TX_DW2_GRP_C)
|
|
|
-#define BXT_PORT_TX_DW2_LN0(port) _MMIO_PORT3(port, _PORT_TX_DW2_LN0_A, \
|
|
|
- _PORT_TX_DW2_LN0_B, \
|
|
|
- _PORT_TX_DW2_LN0_C)
|
|
|
+#define BXT_PORT_TX_DW2_LN0(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_TX_DW2_LN0_B, \
|
|
|
+ _PORT_TX_DW2_LN0_C)
|
|
|
+#define BXT_PORT_TX_DW2_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_TX_DW2_GRP_B, \
|
|
|
+ _PORT_TX_DW2_GRP_C)
|
|
|
#define MARGIN_000_SHIFT 16
|
|
|
#define MARGIN_000 (0xFF << MARGIN_000_SHIFT)
|
|
|
#define UNIQ_TRANS_SCALE_SHIFT 8
|
|
@@ -1406,12 +1411,12 @@ enum skl_disp_power_wells {
|
|
|
#define _PORT_TX_DW3_GRP_A 0x162D0C
|
|
|
#define _PORT_TX_DW3_GRP_B 0x6CD0C
|
|
|
#define _PORT_TX_DW3_GRP_C 0x6CF0C
|
|
|
-#define BXT_PORT_TX_DW3_GRP(port) _MMIO_PORT3(port, _PORT_TX_DW3_GRP_A, \
|
|
|
- _PORT_TX_DW3_GRP_B, \
|
|
|
- _PORT_TX_DW3_GRP_C)
|
|
|
-#define BXT_PORT_TX_DW3_LN0(port) _MMIO_PORT3(port, _PORT_TX_DW3_LN0_A, \
|
|
|
- _PORT_TX_DW3_LN0_B, \
|
|
|
- _PORT_TX_DW3_LN0_C)
|
|
|
+#define BXT_PORT_TX_DW3_LN0(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_TX_DW3_LN0_B, \
|
|
|
+ _PORT_TX_DW3_LN0_C)
|
|
|
+#define BXT_PORT_TX_DW3_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_TX_DW3_GRP_B, \
|
|
|
+ _PORT_TX_DW3_GRP_C)
|
|
|
#define SCALE_DCOMP_METHOD (1 << 26)
|
|
|
#define UNIQUE_TRANGE_EN_METHOD (1 << 27)
|
|
|
|
|
@@ -1421,12 +1426,12 @@ enum skl_disp_power_wells {
|
|
|
#define _PORT_TX_DW4_GRP_A 0x162D10
|
|
|
#define _PORT_TX_DW4_GRP_B 0x6CD10
|
|
|
#define _PORT_TX_DW4_GRP_C 0x6CF10
|
|
|
-#define BXT_PORT_TX_DW4_LN0(port) _MMIO_PORT3(port, _PORT_TX_DW4_LN0_A, \
|
|
|
- _PORT_TX_DW4_LN0_B, \
|
|
|
- _PORT_TX_DW4_LN0_C)
|
|
|
-#define BXT_PORT_TX_DW4_GRP(port) _MMIO_PORT3(port, _PORT_TX_DW4_GRP_A, \
|
|
|
- _PORT_TX_DW4_GRP_B, \
|
|
|
- _PORT_TX_DW4_GRP_C)
|
|
|
+#define BXT_PORT_TX_DW4_LN0(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_TX_DW4_LN0_B, \
|
|
|
+ _PORT_TX_DW4_LN0_C)
|
|
|
+#define BXT_PORT_TX_DW4_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \
|
|
|
+ _PORT_TX_DW4_GRP_B, \
|
|
|
+ _PORT_TX_DW4_GRP_C)
|
|
|
#define DEEMPH_SHIFT 24
|
|
|
#define DE_EMPHASIS (0xFF << DEEMPH_SHIFT)
|
|
|
|
|
@@ -1435,10 +1440,10 @@ enum skl_disp_power_wells {
|
|
|
#define _PORT_TX_DW14_LN0_C 0x6C938
|
|
|
#define LATENCY_OPTIM_SHIFT 30
|
|
|
#define LATENCY_OPTIM (1 << LATENCY_OPTIM_SHIFT)
|
|
|
-#define BXT_PORT_TX_DW14_LN(port, lane) _MMIO(_PORT3((port), _PORT_TX_DW14_LN0_A, \
|
|
|
- _PORT_TX_DW14_LN0_B, \
|
|
|
- _PORT_TX_DW14_LN0_C) + \
|
|
|
- _BXT_LANE_OFFSET(lane))
|
|
|
+#define BXT_PORT_TX_DW14_LN(phy, ch, lane) \
|
|
|
+ _MMIO(_BXT_PHY_CH(phy, ch, _PORT_TX_DW14_LN0_B, \
|
|
|
+ _PORT_TX_DW14_LN0_C) + \
|
|
|
+ _BXT_LANE_OFFSET(lane))
|
|
|
|
|
|
/* UAIMI scratch pad register 1 */
|
|
|
#define UAIMI_SPR1 _MMIO(0x4F074)
|