diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index cafbe645b4..cbe49ed190 100644
--- a/src/ec/lenovo/h8/h8.c
+++ b/src/ec/lenovo/h8/h8.c
@@ -352,6 +352,8 @@ static void h8_enable(struct device *dev)
 	h8_charge_priority(val);
 
 	h8_set_audio_mute(0);
+
+	h8_mainboard_init_dock ();
 }
 
 struct chip_operations ec_lenovo_h8_ops = {
diff --git a/src/ec/lenovo/h8/h8.h b/src/ec/lenovo/h8/h8.h
index 9e2cfa044d..43bc8c0400 100644
--- a/src/ec/lenovo/h8/h8.h
+++ b/src/ec/lenovo/h8/h8.h
@@ -35,6 +35,8 @@ int h8_ultrabay_device_present(void);
 u8 h8_build_id_and_function_spec_version(char *buf, u8 buf_len);
 void h8_usb_always_on(void);
 
+void h8_mainboard_init_dock (void);
+
 int h8_get_fn_key(void);
 int h8_get_sense_ready(void);
 
diff --git a/src/mainboard/lenovo/x201/dock.c b/src/mainboard/lenovo/x201/dock.c
index d5f122e5e0..b5eb065a09 100644
--- a/src/mainboard/lenovo/x201/dock.c
+++ b/src/mainboard/lenovo/x201/dock.c
@@ -20,7 +20,7 @@
 #include <ec/lenovo/h8/h8.h>
 #include <ec/acpi/ec.h>
 
-void init_dock(void)
+void h8_mainboard_init_dock(void)
 {
 	if (dock_present()) {
 		printk(BIOS_DEBUG, "dock is connected\n");
diff --git a/src/mainboard/lenovo/x201/dock.h b/src/mainboard/lenovo/x201/dock.h
index af368b3ddd..27e641e6b2 100644
--- a/src/mainboard/lenovo/x201/dock.h
+++ b/src/mainboard/lenovo/x201/dock.h
@@ -14,7 +14,6 @@
 
 #ifndef THINKPAD_X201_DOCK_H
 #define THINKPAD_X201_DOCK_H
-void init_dock(void);
 void dock_connect(void);
 void dock_disconnect(void);
 int dock_present(void);
diff --git a/src/mainboard/lenovo/x201/mainboard.c b/src/mainboard/lenovo/x201/mainboard.c
index 212f3a90cf..fe024295b1 100644
--- a/src/mainboard/lenovo/x201/mainboard.c
+++ b/src/mainboard/lenovo/x201/mainboard.c
@@ -38,8 +38,6 @@ static void mainboard_enable(struct device *dev)
 	install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
 					GMA_INT15_PANEL_FIT_DEFAULT,
 					GMA_INT15_BOOT_DISPLAY_LFP, 2);
-
-	init_dock();
 }
 
 struct chip_operations mainboard_ops = {
