dp aux: Add support for TGL

Just new registers for new ports.

Change-Id: I32ea8d31d70574dbe6bb835eb755087a2cae0b1b
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/libgfxinit/+/70891
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: Nico Huber <nico.h@gmx.de>
diff --git a/common/hw-gfx-gma-dp_aux_request.adb b/common/hw-gfx-gma-dp_aux_request.adb
index 54500e2..27c8d8a 100644
--- a/common/hw-gfx-gma-dp_aux_request.adb
+++ b/common/hw-gfx-gma-dp_aux_request.adb
@@ -54,10 +54,10 @@
    type AUX_CH_Data_Regs is new Positive range 1 .. 5;
 
    type AUX_CH_Data_Regs_Array is
-      array (AUX_CH_Data_Regs) of Registers.Registers_Index;
+      array (AUX_CH_Data_Regs) of Registers.Registers_Invalid_Index;
 
    type AUX_CH_Registers is record
-      CTL   : Registers.Registers_Index;
+      CTL   : Registers.Registers_Invalid_Index;
       DATA  : AUX_CH_Data_Regs_Array;
       MUTEX : Registers.Registers_Invalid_Index;
    end record;
@@ -65,7 +65,90 @@
    type AUX_CH_Registers_Array is array (DP_Port) of AUX_CH_Registers;
 
    AUX_CH : constant AUX_CH_Registers_Array :=
-     (if Config.Has_PCH_Aux_Channels then
+     (if Config.Has_Type_C_Ports then
+         AUX_CH_Registers_Array'
+        (DP_A => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_A,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_A_1,
+               2  => Registers.DDI_AUX_DATA_A_2,
+               3  => Registers.DDI_AUX_DATA_A_3,
+               4  => Registers.DDI_AUX_DATA_A_4,
+               5  => Registers.DDI_AUX_DATA_A_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_B => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_B,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_B_1,
+               2  => Registers.DDI_AUX_DATA_B_2,
+               3  => Registers.DDI_AUX_DATA_B_3,
+               4  => Registers.DDI_AUX_DATA_B_4,
+               5  => Registers.DDI_AUX_DATA_B_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_C => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_C,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_C_1,
+               2  => Registers.DDI_AUX_DATA_C_2,
+               3  => Registers.DDI_AUX_DATA_C_3,
+               4  => Registers.DDI_AUX_DATA_C_4,
+               5  => Registers.DDI_AUX_DATA_C_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_D => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_USBC1,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_USBC1_1,
+               2  => Registers.DDI_AUX_DATA_USBC1_2,
+               3  => Registers.DDI_AUX_DATA_USBC1_3,
+               4  => Registers.DDI_AUX_DATA_USBC1_4,
+               5  => Registers.DDI_AUX_DATA_USBC1_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_E => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_USBC2,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_USBC2_1,
+               2  => Registers.DDI_AUX_DATA_USBC2_2,
+               3  => Registers.DDI_AUX_DATA_USBC2_3,
+               4  => Registers.DDI_AUX_DATA_USBC2_4,
+               5  => Registers.DDI_AUX_DATA_USBC2_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_F => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_USBC3,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_USBC3_1,
+               2  => Registers.DDI_AUX_DATA_USBC3_2,
+               3  => Registers.DDI_AUX_DATA_USBC3_3,
+               4  => Registers.DDI_AUX_DATA_USBC3_4,
+               5  => Registers.DDI_AUX_DATA_USBC3_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_G => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_USBC4,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_USBC4_1,
+               2  => Registers.DDI_AUX_DATA_USBC4_2,
+               3  => Registers.DDI_AUX_DATA_USBC4_3,
+               4  => Registers.DDI_AUX_DATA_USBC4_4,
+               5  => Registers.DDI_AUX_DATA_USBC5_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_H => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_USBC5,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_USBC5_1,
+               2  => Registers.DDI_AUX_DATA_USBC5_2,
+               3  => Registers.DDI_AUX_DATA_USBC5_3,
+               4  => Registers.DDI_AUX_DATA_USBC5_4,
+               5  => Registers.DDI_AUX_DATA_USBC5_5),
+            MUTEX => Registers.Invalid_Register),
+         DP_I => AUX_CH_Registers'
+           (CTL   => Registers.DDI_AUX_CTL_USBC6,
+            DATA  => AUX_CH_Data_Regs_Array'
+              (1  => Registers.DDI_AUX_DATA_USBC6_1,
+               2  => Registers.DDI_AUX_DATA_USBC6_2,
+               3  => Registers.DDI_AUX_DATA_USBC6_3,
+               4  => Registers.DDI_AUX_DATA_USBC6_4,
+               5  => Registers.DDI_AUX_DATA_USBC6_5),
+            MUTEX => Registers.Invalid_Register))
+      elsif Config.Has_PCH_Aux_Channels then
          AUX_CH_Registers_Array'
         (DP_A => AUX_CH_Registers'
            (CTL   => Registers.DP_AUX_CTL_A,
@@ -102,7 +185,11 @@
                3  => Registers.PCH_DP_AUX_DATA_D_3,
                4  => Registers.PCH_DP_AUX_DATA_D_4,
                5  => Registers.PCH_DP_AUX_DATA_D_5),
-            MUTEX => Registers.Invalid_Register))
+            MUTEX => Registers.Invalid_Register),
+         others => AUX_CH_Registers'
+           (DATA => AUX_CH_Data_Regs_Array'
+             (others => Registers.Invalid_Register),
+            others => Registers.Invalid_Register))
       else
          AUX_CH_Registers_Array'
         (DP_A => AUX_CH_Registers'
@@ -140,7 +227,11 @@
                3  => Registers.DDI_AUX_DATA_D_3,
                4  => Registers.DDI_AUX_DATA_D_4,
                5  => Registers.DDI_AUX_DATA_D_5),
-            MUTEX => Registers.DDI_AUX_MUTEX_D)));
+            MUTEX => Registers.DDI_AUX_MUTEX_D),
+         others => AUX_CH_Registers'
+           (DATA => AUX_CH_Data_Regs_Array'
+             (others => Registers.Invalid_Register),
+            others => Registers.Invalid_Register)));
 
    ----------------------------------------------------------------------------
 
@@ -245,6 +336,11 @@
       Response := (others => 0); -- Don't care
       Response_Length := DP_Defs.Aux_Response_Length'First;
 
+      if not Config.Has_Type_C_Ports and Port > DP_D then
+         Success := False;
+         return;
+      end if;
+
       if Config.Need_DP_Aux_Mutex then
          Registers.Set_Mask
            (Register => AUX_CH (Port).MUTEX,