diff --git a/libsel4simple-default/src/arch/arm/default.c b/libsel4simple-default/src/arch/arm/default.c
index a0b50c1..7a9c625 100644
--- a/libsel4simple-default/src/arch/arm/default.c
+++ b/libsel4simple-default/src/arch/arm/default.c
@@ -37,7 +37,7 @@
 #endif
 }
 
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
 seL4_Error simple_default_get_iospace_cap_count(void *data, int *count)
 {
     seL4_BootInfo *bi = data;
@@ -97,7 +97,7 @@
     simple->data = data;
     simple->irq = simple_default_get_irq;
     simple->irq_trigger = simple_default_get_irq_trigger;
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     simple->iospace_cap_count = simple_default_get_iospace_cap_count;
     simple->iospace_get_nth_cap = simple_default_get_iospace_nth_cap;
 #endif
diff --git a/libsel4simple/arch_include/arm/simple/arch/simple.h b/libsel4simple/arch_include/arm/simple/arch/simple.h
index 01a8dac..d204ca0 100644
--- a/libsel4simple/arch_include/arm/simple/arch/simple.h
+++ b/libsel4simple/arch_include/arm/simple/arch/simple.h
@@ -43,7 +43,7 @@
 typedef struct arch_simple {
     simple_get_IRQ_handler_fn irq;
     simple_get_IRQ_trigger_fn irq_trigger;
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     simple_get_iospace_cap_count_fn iospace_cap_count;
     simple_get_nth_iospace_cap_fn   iospace_get_nth_cap;
 #endif
diff --git a/libsel4simple/include/simple/simple.h b/libsel4simple/include/simple/simple.h
index 11ed8a0..bed11a7 100644
--- a/libsel4simple/include/simple/simple.h
+++ b/libsel4simple/include/simple/simple.h
@@ -516,7 +516,8 @@
 }
 #endif
 
-#ifdef CONFIG_ARM_SMMU
+
+#ifdef CONFIG_TK1_SMMU
 static inline seL4_Error simple_get_iospace_cap_count(simple_t *simple, int *count)
 {
     if (!simple) {
diff --git a/libsel4test/include/sel4test/test.h b/libsel4test/include/sel4test/test.h
index 6355bf0..114e99d 100644
--- a/libsel4test/include/sel4test/test.h
+++ b/libsel4test/include/sel4test/test.h
@@ -65,7 +65,7 @@
 #ifdef CONFIG_IOMMU
     seL4_CPtr io_space;
 #endif /* CONFIG_IOMMU */
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     seL4_SlotRegion io_space_caps;
 #endif
     seL4_Word cores;
diff --git a/libsel4utils/include/sel4utils/mapping.h b/libsel4utils/include/sel4utils/mapping.h
index e45b97d..63c86ea 100644
--- a/libsel4utils/include/sel4utils/mapping.h
+++ b/libsel4utils/include/sel4utils/mapping.h
@@ -73,11 +73,11 @@
  */
 void sel4utils_unmap_dup(vka_t *vka, vspace_t *vspace, void *mapping, size_t size_bits);
 
-#if defined(CONFIG_IOMMU) || defined(CONFIG_ARM_SMMU)
+#if defined(CONFIG_IOMMU) || defined(CONFIG_TK1_SMMU)
 int sel4utils_map_iospace_page(vka_t *vka, seL4_CPtr iospace, seL4_CPtr frame, seL4_Word vaddr,
                                seL4_CapRights_t rights, int cacheable, seL4_Word size_bits,
                                vka_object_t *pts, int *num_pts);
-#endif /* defined(CONFIG_IOMMU) || defined(CONFIG_ARM_SMMU) */
+#endif /* defined(CONFIG_IOMMU) || defined(CONFIG_TK1_SMMU) */
 
 #ifdef CONFIG_VTX
 int sel4utils_map_ept_page(vka_t *vka, seL4_CPtr pd, seL4_CPtr frame, seL4_Word vaddr,
diff --git a/libsel4vka/arch_include/arm/vka/arch/object.h b/libsel4vka/arch_include/arm/vka/arch/object.h
index f7b032d..af1b432 100644
--- a/libsel4vka/arch_include/arm/vka/arch/object.h
+++ b/libsel4vka/arch_include/arm/vka/arch/object.h
@@ -27,7 +27,7 @@
 LEAKY(vcpu)
 #endif
 
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
 static inline int vka_alloc_io_page_table(vka_t *vka, vka_object_t *result)
 {
     return vka_alloc_object(vka, seL4_ARM_IOPageTableObject, seL4_IOPageTableBits, result);
@@ -54,7 +54,7 @@
         return seL4_PageDirBits;
     case seL4_ARM_VCPUObject:
         return seL4_ARM_VCPUBits;
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     case seL4_ARM_IOPageTableObject:
         return seL4_IOPageTableBits;
 #endif
diff --git a/libsel4vspace/include/vspace/mapping.h b/libsel4vspace/include/vspace/mapping.h
index dcb5d80..428430e 100644
--- a/libsel4vspace/include/vspace/mapping.h
+++ b/libsel4vspace/include/vspace/mapping.h
@@ -25,7 +25,7 @@
 static inline seL4_Error vspace_iospace_map_page(seL4_CPtr cap, seL4_CPtr root, seL4_Word vaddr,
                                                  seL4_CapRights_t rights, UNUSED seL4_Word attr)
 {
-#if defined(CONFIG_IOMMU) || defined(CONFIG_ARM_SMMU)
+#if defined(CONFIG_IOMMU) || defined(CONFIG_TK1_SMMU)
     return seL4_ARCH_Page_MapIO(cap, root, rights, vaddr);
 #else
     return -1;
diff --git a/libsel4vspace/src/arch/arm/mapping.c b/libsel4vspace/src/arch/arm/mapping.c
index 67f2aa0..c20567d 100644
--- a/libsel4vspace/src/arch/arm/mapping.c
+++ b/libsel4vspace/src/arch/arm/mapping.c
@@ -13,19 +13,19 @@
 #include <autoconf.h>
 #include <vspace/mapping.h>
 
-#ifdef CONFIG_ARM_SMMU
 static seL4_Error vspace_map_io(seL4_CPtr cap, seL4_CPtr iospace_root, seL4_Word vaddr, UNUSED seL4_Word attr)
 {
+#ifdef CONFIG_TK1_SMMU
     return seL4_ARM_IOPageTable_Map(cap, iospace_root, vaddr);
-}
 #endif
+}
 
 int vspace_get_iospace_map_obj(UNUSED seL4_Word failed_bits, vspace_map_obj_t *obj)
 {
-    if (unlikely(obj == NULL) || !config_set(CONFIG_ARM_SMMU)) {
+    if (unlikely(obj == NULL) || !config_set(CONFIG_TK1_SMMU)) {
         return EINVAL;
     }
-#ifdef CONFIG_ARM_SMMU
+#ifdef CONFIG_TK1_SMMU
     obj->size_bits = seL4_IOPageTableBits;
     obj->type = seL4_ARM_IOPageTableObject;
     obj->map_fn = vspace_map_io;
