gma skl: Implement CDClk switching

Flow is roughly the same as for Broadwell. Maximum CDClk is now
completely controlled by fuses, though. The same frequencies are
supported and dot clocks can run at full CDClk speed.

Change-Id: Ic14cf5981540d36d3f337a43bbec3574be0d3c99
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/libgfxinit/+/35614
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/common/skylake/hw-gfx-gma-power_and_clocks_skylake.ads b/common/skylake/hw-gfx-gma-power_and_clocks_skylake.ads
index 4db9ab5..d5b9685 100644
--- a/common/skylake/hw-gfx-gma-power_and_clocks_skylake.ads
+++ b/common/skylake/hw-gfx-gma-power_and_clocks_skylake.ads
@@ -12,6 +12,8 @@
 -- GNU General Public License for more details.
 --
 
+with HW.GFX.GMA.Config_Helpers;
+
 private package HW.GFX.GMA.Power_And_Clocks_Skylake is
 
    procedure Pre_All_Off;
@@ -19,6 +21,16 @@
 
    procedure Initialize;
 
+   procedure Limit_Dotclocks
+     (Configs        : in out Pipe_Configs;
+      CDClk_Switch   :    out Boolean)
+   with
+      Post => Config_Helpers.Stable_FB (Configs'Old, Configs);
+   procedure Update_CDClk (Configs : in out Pipe_Configs)
+   with
+      Post => Config_Helpers.Stable_FB (Configs'Old, Configs);
+   procedure Enable_CDClk is null;
+
    procedure Power_Set_To (Configs : Pipe_Configs);
    procedure Power_Up (Old_Configs, New_Configs : Pipe_Configs);
    procedure Power_Down (Old_Configs, Tmp_Configs, New_Configs : Pipe_Configs);