diff -NurpP --minimal --exclude build.vivado cmv_hdmi3_clean_raw.2023.2/pin_hdmi_south.xdc cmv_hdmi3_clean_raw.2023.2/pin_hdmi_south.xdc
--- cmv_hdmi3_clean_raw.2023.2/pin_hdmi_south.xdc	2020-08-11 18:10:08.000000000 +0200
+++ cmv_hdmi3_clean_raw.2023.2/pin_hdmi_south.xdc	2024-02-25 18:32:16.005779819 +0100
@@ -18,10 +18,10 @@ set_property PACKAGE_PIN V10 [get_ports
 set_property IOSTANDARD LVDS_25 [get_ports {hdmi_south_d_*}]
 
 # LVDS_5A [JX2_18_P]
-set_property PACKAGE_PIN N15 [get_ports hdmi_south_scl]
+set_property PACKAGE_PIN K14 [get_ports hdmi_south_scl]
 set_property IOSTANDARD LVCMOS25 [get_ports hdmi_south_scl]
 
 # LVDS_5B [JX2_18_N]
-set_property PACKAGE_PIN N16 [get_ports hdmi_south_sda]
+set_property PACKAGE_PIN J14 [get_ports hdmi_south_sda]
 set_property IOSTANDARD LVCMOS25 [get_ports hdmi_south_sda]
 
diff -NurpP --minimal --exclude build.vivado cmv_hdmi3_clean_raw.2023.2/top.vhd cmv_hdmi3_clean_raw.2023.2/top.vhd
--- cmv_hdmi3_clean_raw_fixed.2023.2/top.vhd	2024-02-18 22:30:21.836004474 +0100
+++ cmv_hdmi3_clean_raw_fixed_i2c.2023.2/top.vhd	2024-02-25 00:59:37.600150008 +0100
@@ -156,6 +156,30 @@ architecture RTL of top is
     signal led : std_logic_vector (7 downto 0);
 
     --------------------------------------------------------------------
+    -- I2C HDMI North Signals
+    --------------------------------------------------------------------
+
+    signal hdmi_north_sda_i : std_ulogic;
+    signal hdmi_north_sda_o : std_ulogic;
+    signal hdmi_north_sda_t : std_ulogic;
+
+    signal hdmi_north_scl_i : std_ulogic;
+    signal hdmi_north_scl_o : std_ulogic;
+    signal hdmi_north_scl_t : std_ulogic;
+
+    --------------------------------------------------------------------
+    -- I2C HDMI South Signals
+    --------------------------------------------------------------------
+
+    signal hdmi_south_sda_i : std_ulogic;
+    signal hdmi_south_sda_o : std_ulogic;
+    signal hdmi_south_sda_t : std_ulogic;
+
+    signal hdmi_south_scl_i : std_ulogic;
+    signal hdmi_south_scl_o : std_ulogic;
+    signal hdmi_south_scl_t : std_ulogic;
+
+    --------------------------------------------------------------------
     -- PS7 Signals
     --------------------------------------------------------------------
 
@@ -426,7 +450,7 @@ architecture RTL of top is
     alias led_val : std_logic_vector (7 downto 0)
 	is reg_oreg(14)(7 downto 0);
 
-    alias i2c1_sel : std_logic_vector (1 downto 0)
+    alias i2c_sel : std_logic_vector (1 downto 0)
 	is reg_oreg(14)(13 downto 12);
 
     alias led_mask : std_logic_vector (7 downto 0)
@@ -1219,6 +1243,78 @@ begin
     -- cmv_sys_res_n <= '1';
 
     --------------------------------------------------------------------
+    -- I2C Interface HDMI North
+    --------------------------------------------------------------------
+
+    IOBUF_north_sda_inst : IOBUF
+	port map (
+	    I => hdmi_north_sda_o, O => hdmi_north_sda_i,
+	    T => hdmi_north_sda_t, IO => hdmi_north_sda );
+
+    PULLUP_north_sda_inst : PULLUP
+        port map ( O => hdmi_north_sda );
+
+    IOBUF_north_scl_inst : IOBUF
+	port map (
+	    I => hdmi_north_scl_o, O => hdmi_north_scl_i,
+	    T => hdmi_north_scl_t, IO => hdmi_north_scl );
+
+    PULLUP_north_scl_inst : PULLUP
+        port map ( O => hdmi_north_scl );
+
+    --------------------------------------------------------------------
+    -- I2C Interface HDMI South
+    --------------------------------------------------------------------
+
+    IOBUF_south_sda_inst : IOBUF
+	port map (
+	    I => hdmi_south_sda_o, O => hdmi_south_sda_i,
+	    T => hdmi_south_sda_t, IO => hdmi_south_sda );
+
+    PULLUP_south_sda_inst : PULLUP
+        port map ( O => hdmi_south_sda );
+
+    IOBUF_south_scl_inst : IOBUF
+	port map (
+	    I => hdmi_south_scl_o, O => hdmi_south_scl_i,
+	    T => hdmi_south_scl_t, IO => hdmi_south_scl );
+
+    PULLUP_south_scl_inst : PULLUP
+        port map ( O => hdmi_south_scl );
+
+    --------------------------------------------------------------------
+    -- I2C Interface HDMI Selection
+    --------------------------------------------------------------------
+
+    hdmi_north_sda_o <= i2c0_sda_o when i2c_sel = "01" else '1';
+    hdmi_north_sda_t <= i2c0_sda_t when i2c_sel = "01" else '1';
+
+    hdmi_south_sda_o <= i2c0_sda_o when i2c_sel = "10" else '1';
+    hdmi_south_sda_t <= i2c0_sda_t when i2c_sel = "10" else '1';
+
+    i2c0_sda_t <= not i2c0_sda_t_n;
+
+    with i2c_sel select i2c0_sda_i <=
+	'1'		 when  "00",
+	hdmi_north_sda_i when  "01",
+	hdmi_south_sda_i when  "10",
+	'1'		 when  "11";
+
+    hdmi_north_scl_o <= i2c0_scl_o when i2c_sel = "01" else '1';
+    hdmi_north_scl_t <= i2c0_scl_t when i2c_sel = "01" else '1';
+
+    hdmi_south_scl_o <= i2c0_scl_o when i2c_sel = "10" else '1';
+    hdmi_south_scl_t <= i2c0_scl_t when i2c_sel = "10" else '1';
+
+    i2c0_scl_t <= not i2c0_scl_t_n;
+
+    with i2c_sel select i2c0_scl_i <=
+	'1'		 when  "00",
+	hdmi_north_scl_i when  "01",
+	hdmi_south_scl_i when  "10",
+	'1'		 when  "11";
+
+    --------------------------------------------------------------------
     -- I2C Interface AB
     --------------------------------------------------------------------
 
@@ -1229,11 +1325,11 @@ begin
 	    I => i2c1_sda_o, O => i2c1_sda_i,
 	    T => i2c1_sda_t, IO => i2c_sda );
 
-    i2c1_scl_t <= not i2c1_scl_t_n;
-
     PULLUP_sda_inst : PULLUP
         port map ( O => i2c_sda );
 
+    i2c1_scl_t <= not i2c1_scl_t_n;
+
     IOBUF_scl_inst : IOBUF
 	port map (
 	    I => i2c1_scl_o, O => i2c1_scl_i,
