diff --git a/stmhal/usrsw.c b/stmhal/usrsw.c
index 088b53ad182611ff8bff699791d75eae764d96d4..7a077e1dbbaaccff3377d0c4f453cf2c5a99c878 100644
--- a/stmhal/usrsw.c
+++ b/stmhal/usrsw.c
@@ -12,6 +12,8 @@
 #include "genhdr/pins.h"
 #include "usrsw.h"
 
+#if MICROPY_HW_HAS_SWITCH
+
 // Usage Model:
 //
 //      sw = pyb.Switch()       # create a switch object
@@ -111,3 +113,5 @@ const mp_obj_type_t pyb_switch_type = {
     .call = pyb_switch_call,
     .locals_dict = (mp_obj_t)&pyb_switch_locals_dict,
 };
+
+#endif // MICROPY_HW_HAS_SWITCH