drm/i915/icl: Add register definitions for Combo PHY vswing sequences.
authorManasi Navare <manasi.d.navare@intel.com>
Fri, 23 Mar 2018 17:24:13 +0000 (10:24 -0700)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 23 Mar 2018 21:52:36 +0000 (14:52 -0700)
This patch defines register definitions required for ICL voltage
vswing programming for Combo PHY DDI Ports. It uses the same bit
definitions and macros as the CNL voltage swing sequences.

v8 (from Paulo):
* Rebase.
v7:
* Kill _MMIIO_PORT2_LN (Paulo)
v6:
* Replace some spaces with TAB (Paulo)
v5:
* Use _PORT instead of _PICK (Paulo)
* Remove DW7 defs for ICL, not used (Paulo)
v4:
* Rebase after _PICK was used instead of _PORT3
* Use _PICK for _MMIO_PORT2 since address of B is less
than address of A so cant use the math (Paulo)
v3:
* Make changes to the existing macro in a diff patch (Paulo)
v2:
* Add new defs fro ICL regs (Paulo)

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180323172419.24911-2-paulo.r.zanoni@intel.com
drivers/gpu/drm/i915/i915_reg.h

index 4e31dfff940a79da5c9703b337882cbac9e044bf..407ee5ca527f1f7bce6c7b716170843229bb1cab 100644 (file)
@@ -1697,6 +1697,16 @@ enum i915_power_well_id {
                                                    _CNL_PORT_PCS_DW1_LN0_D, \
                                                    _CNL_PORT_PCS_DW1_LN0_AE, \
                                                    _CNL_PORT_PCS_DW1_LN0_F))
+#define _ICL_PORT_PCS_DW1_GRP_A                0x162604
+#define _ICL_PORT_PCS_DW1_GRP_B                0x6C604
+#define _ICL_PORT_PCS_DW1_LN0_A                0x162804
+#define _ICL_PORT_PCS_DW1_LN0_B                0x6C804
+#define ICL_PORT_PCS_DW1_GRP(port)     _MMIO_PORT(port,\
+                                                  _ICL_PORT_PCS_DW1_GRP_A, \
+                                                  _ICL_PORT_PCS_DW1_GRP_B)
+#define ICL_PORT_PCS_DW1_LN0(port)     _MMIO_PORT(port, \
+                                                  _ICL_PORT_PCS_DW1_LN0_A, \
+                                                  _ICL_PORT_PCS_DW1_LN0_B)
 #define   COMMON_KEEPER_EN             (1 << 26)
 
 /* CNL Port TX registers */
@@ -1729,6 +1739,16 @@ enum i915_power_well_id {
 
 #define CNL_PORT_TX_DW2_GRP(port)      _MMIO(_CNL_PORT_TX_DW_GRP((port), 2))
 #define CNL_PORT_TX_DW2_LN0(port)      _MMIO(_CNL_PORT_TX_DW_LN0((port), 2))
+#define _ICL_PORT_TX_DW2_GRP_A         0x162688
+#define _ICL_PORT_TX_DW2_GRP_B         0x6C688
+#define _ICL_PORT_TX_DW2_LN0_A         0x162888
+#define _ICL_PORT_TX_DW2_LN0_B         0x6C888
+#define ICL_PORT_TX_DW2_GRP(port)      _MMIO_PORT(port, \
+                                                  _ICL_PORT_TX_DW2_GRP_A, \
+                                                  _ICL_PORT_TX_DW2_GRP_B)
+#define ICL_PORT_TX_DW2_LN0(port)      _MMIO_PORT(port, \
+                                                  _ICL_PORT_TX_DW2_LN0_A, \
+                                                  _ICL_PORT_TX_DW2_LN0_B)
 #define   SWING_SEL_UPPER(x)           ((x >> 3) << 15)
 #define   SWING_SEL_UPPER_MASK         (1 << 15)
 #define   SWING_SEL_LOWER(x)           ((x & 0x7) << 11)
@@ -1743,6 +1763,19 @@ enum i915_power_well_id {
 #define CNL_PORT_TX_DW4_LN(port, ln)   _MMIO(_CNL_PORT_TX_DW_LN0((port), 4) + \
                                             (ln * (_CNL_PORT_TX_DW4_LN1_AE - \
                                                    _CNL_PORT_TX_DW4_LN0_AE)))
+#define _ICL_PORT_TX_DW4_GRP_A         0x162690
+#define _ICL_PORT_TX_DW4_GRP_B         0x6C690
+#define _ICL_PORT_TX_DW4_LN0_A         0x162890
+#define _ICL_PORT_TX_DW4_LN1_A         0x162990
+#define _ICL_PORT_TX_DW4_LN0_B         0x6C890
+#define ICL_PORT_TX_DW4_GRP(port)      _MMIO_PORT(port, \
+                                                  _ICL_PORT_TX_DW4_GRP_A, \
+                                                  _ICL_PORT_TX_DW4_GRP_B)
+#define ICL_PORT_TX_DW4_LN(port, ln)   _MMIO(_PORT(port, \
+                                                  _ICL_PORT_TX_DW4_LN0_A, \
+                                                  _ICL_PORT_TX_DW4_LN0_B) + \
+                                             (ln * (_ICL_PORT_TX_DW4_LN1_A - \
+                                                    _ICL_PORT_TX_DW4_LN0_A)))
 #define   LOADGEN_SELECT               (1 << 31)
 #define   POST_CURSOR_1(x)             ((x) << 12)
 #define   POST_CURSOR_1_MASK           (0x3F << 12)
@@ -1753,7 +1786,18 @@ enum i915_power_well_id {
 
 #define CNL_PORT_TX_DW5_GRP(port)      _MMIO(_CNL_PORT_TX_DW_GRP((port), 5))
 #define CNL_PORT_TX_DW5_LN0(port)      _MMIO(_CNL_PORT_TX_DW_LN0((port), 5))
+#define _ICL_PORT_TX_DW5_GRP_A         0x162694
+#define _ICL_PORT_TX_DW5_GRP_B         0x6C694
+#define _ICL_PORT_TX_DW5_LN0_A         0x162894
+#define _ICL_PORT_TX_DW5_LN0_B         0x6C894
+#define ICL_PORT_TX_DW5_GRP(port)      _MMIO_PORT(port, \
+                                                  _ICL_PORT_TX_DW5_GRP_A, \
+                                                  _ICL_PORT_TX_DW5_GRP_B)
+#define ICL_PORT_TX_DW5_LN0(port)      _MMIO_PORT(port, \
+                                                  _ICL_PORT_TX_DW5_LN0_A, \
+                                                  _ICL_PORT_TX_DW5_LN0_B)
 #define   TX_TRAINING_EN               (1 << 31)
+#define   TAP2_DISABLE                 (1 << 30)
 #define   TAP3_DISABLE                 (1 << 29)
 #define   SCALING_MODE_SEL(x)          ((x) << 18)
 #define   SCALING_MODE_SEL_MASK                (0x7 << 18)