diff --git a/stmhal/servo.c b/stmhal/servo.c
index 2916ca2807c418a332715aa4cf55782f3078a7a2..e4bcbc30e5aeb239c0253bac8c06997708fa0d61 100644
--- a/stmhal/servo.c
+++ b/stmhal/servo.c
@@ -33,6 +33,8 @@
 #include "timer.h"
 #include "servo.h"
 
+#if MICROPY_HW_ENABLE_SERVO
+
 // This file implements the pyb.Servo class which controls standard hobby servo
 // motors that have 3-wires (ground, power, signal).
 //
@@ -328,3 +330,5 @@ const mp_obj_type_t pyb_servo_type = {
     .make_new = pyb_servo_make_new,
     .locals_dict = (mp_obj_dict_t*)&pyb_servo_locals_dict,
 };
+
+#endif // MICROPY_HW_ENABLE_SERVO
diff --git a/stmhal/timer.c b/stmhal/timer.c
index 7db15f64924d3ab8b73d80260470c79115557e50..39f168fc8906bdf196a0a115df25504f454c5811 100644
--- a/stmhal/timer.c
+++ b/stmhal/timer.c
@@ -216,9 +216,11 @@ TIM_HandleTypeDef *timer_tim6_init(uint freq) {
 
 // Interrupt dispatch
 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
+    #if MICROPY_HW_ENABLE_SERVO
     if (htim == &TIM5_Handle) {
         servo_timer_irq_callback();
     }
+    #endif
 }
 
 // Get the frequency (in Hz) of the source clock for the given timer.