gma broxton: Add final glue

Add new configuration flags for Broxton and hook up its DDI_Phy
implementation in the shared Haswell DDI code. Haswell and Skylake
get DDI_Phy stubs.

Tested (in Linux userspace) on ASRock J3455-ITX which exposes the
following ports:
  o VGA through an active eDP to VGA converter chip
  o HDMI 2.0 through an active DP to HDMI converter chip
  o DVI-D connected to the SoC

Change-Id: If72b228c6a4c45487261e6e7435d281ec2d97f38
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/18426
Tested-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/common/hw-gfx-gma-i2c.adb b/common/hw-gfx-gma-i2c.adb
index 5b66f07..4b58dde 100644
--- a/common/hw-gfx-gma-i2c.adb
+++ b/common/hw-gfx-gma-i2c.adb
@@ -37,6 +37,9 @@
    GMBUS0_PIN_PAIR_SELECT_DIGI_C    : constant :=   4 * 2 **  0;
    GMBUS0_PIN_PAIR_SELECT_DIGI_B    : constant :=   5 * 2 **  0;
    GMBUS0_PIN_PAIR_SELECT_DIGI_D    : constant :=   6 * 2 **  0;
+   -- Broxton uses different pins
+   GMBUS0_PIN_PAIR_SELECT_BXT_B     : constant :=   1 * 2 **  0;
+   GMBUS0_PIN_PAIR_SELECT_BXT_C     : constant :=   2 * 2 **  0;
 
    GMBUS1_SOFTWARE_CLEAR_INTERRUPT  : constant :=   1 * 2 ** 31;
    GMBUS1_SOFTWARE_READY            : constant :=   1 * 2 ** 30;
@@ -85,13 +88,19 @@
    function GMBUS0_PIN_PAIR_SELECT (Port : PCH_Port) return Word32 is
    begin
       return
-        (case Port is
-            when PCH_DAC      => GMBUS0_PIN_PAIR_SELECT_DAC,
-            when PCH_LVDS     => GMBUS0_PIN_PAIR_SELECT_LVDS,
-            when PCH_HDMI_B   => GMBUS0_PIN_PAIR_SELECT_DIGI_B,
-            when PCH_HDMI_C   => GMBUS0_PIN_PAIR_SELECT_DIGI_C,
-            when PCH_HDMI_D   => GMBUS0_PIN_PAIR_SELECT_DIGI_D,
-            when others       => GMBUS0_PIN_PAIR_SELECT_NONE);
+        (if Config.GMBUS_Alternative_Pins then
+           (case Port is
+               when PCH_HDMI_B   => GMBUS0_PIN_PAIR_SELECT_BXT_B,
+               when PCH_HDMI_C   => GMBUS0_PIN_PAIR_SELECT_BXT_C,
+               when others       => GMBUS0_PIN_PAIR_SELECT_NONE)
+         else
+           (case Port is
+               when PCH_DAC      => GMBUS0_PIN_PAIR_SELECT_DAC,
+               when PCH_LVDS     => GMBUS0_PIN_PAIR_SELECT_LVDS,
+               when PCH_HDMI_B   => GMBUS0_PIN_PAIR_SELECT_DIGI_B,
+               when PCH_HDMI_C   => GMBUS0_PIN_PAIR_SELECT_DIGI_C,
+               when PCH_HDMI_D   => GMBUS0_PIN_PAIR_SELECT_DIGI_D,
+               when others       => GMBUS0_PIN_PAIR_SELECT_NONE));
    end GMBUS0_PIN_PAIR_SELECT;
 
    ----------------------------------------------------------------------------