diff --git a/libsel4platsupport/include/sel4platsupport/io.h b/libsel4platsupport/include/sel4platsupport/io.h
index 34fc824..fa33cba 100644
--- a/libsel4platsupport/include/sel4platsupport/io.h
+++ b/libsel4platsupport/include/sel4platsupport/io.h
@@ -64,7 +64,8 @@
 
 /**
  * Creates a new implementation of the platsupport io_ops interface using a
- * provided vspace and vka
+ * provided vspace and vka. Keep in mind that the more device specific
+ * interfaces like MUX and CLK subsystems are not initialised.
  *
  * @param vspace VSpace interface to use for mapping
  * @param vka VKA interface for allocating physical frames, and any extra objects or cslots
diff --git a/libsel4platsupport/src/io.c b/libsel4platsupport/src/io.c
index 9f63bcd..18377c4 100644
--- a/libsel4platsupport/src/io.c
+++ b/libsel4platsupport/src/io.c
@@ -327,23 +327,6 @@
     return 0;
 }
 
-#ifdef CONFIG_PLAT_TK1
-#include <platsupport/gpio.h>
-
-gpio_sys_t gpio_sys;
-#endif
-
-void *get_mux_dependencies(void)
-{
-#ifdef CONFIG_PLAT_TK1
-    /* The TK1's mux depends on an instance of the GPIO driver. */
-    return &gpio_sys;
-#else
-    /* The other platforms don't have any such dependency issues. */
-    return NULL;
-#endif
-}
-
 int sel4platsupport_new_io_ops(vspace_t *vspace, vka_t *vka, simple_t *simple, ps_io_ops_t *io_ops)
 {
     memset(io_ops, 0, sizeof(ps_io_ops_t));
@@ -351,15 +334,7 @@
     int error = 0;
 
     /* Initialise the interfaces which do not require memory allocation/need to be initialised first */
-    error = sel4platsupport_new_malloc_ops(&io_ops->malloc_ops)
-#ifdef ARCH_ARM
-            || clock_sys_init(io_ops, &io_ops->clock_sys)
-#ifdef CONFIG_PLAT_TK1
-            || gpio_sys_init(io_ops, &gpio_sys)
-#endif
-            || mux_sys_init(io_ops, get_mux_dependencies(), &io_ops->mux_sys)
-#endif
-            ;
+    error = sel4platsupport_new_malloc_ops(&io_ops->malloc_ops);
     if (error) {
         return error;
     }
