diff --git a/chpp/platform/aoc/include/chpp/platform/platform_notifier.h b/chpp/platform/aoc/include/chpp/platform/platform_notifier.h
index 5ce4581..47364c4 100644
--- a/chpp/platform/aoc/include/chpp/platform/platform_notifier.h
+++ b/chpp/platform/aoc/include/chpp/platform/platform_notifier.h
@@ -40,11 +40,9 @@
 void chppPlatformNotifierDeinit(struct ChppNotifier *notifier);
 
 /**
- * Platform implementation of chppNotifier[Timed]Wait()
+ * Platform implementation of chppNotifierWait()
  */
 uint32_t chppPlatformNotifierWait(struct ChppNotifier *notifier);
-uint32_t chppPlatformNotifierTimedWait(struct ChppNotifier *notifier,
-                                       uint64_t timeoutNs);
 
 /**
  * Platform implementation of chppNotifierSignal()
@@ -63,11 +61,6 @@
   return chppPlatformNotifierWait(notifier);
 }
 
-static inline uint32_t chppNotifierTimedWait(struct ChppNotifier *notifier,
-                                             uint64_t timeoutNs) {
-  return chppPlatformNotifierTimedWait(notifier, timeoutNs);
-}
-
 static inline void chppNotifierSignal(struct ChppNotifier *notifier,
                                       uint32_t signal) {
   chppPlatformNotifierSignal(notifier, signal);
diff --git a/chpp/platform/aoc/notifier.cc b/chpp/platform/aoc/notifier.cc
index b648979..3a7eac4 100644
--- a/chpp/platform/aoc/notifier.cc
+++ b/chpp/platform/aoc/notifier.cc
@@ -36,12 +36,6 @@
   return signal;
 }
 
-uint32_t chppPlatformNotifierTimedWait(struct ChppNotifier *notifier,
-                                       uint64_t /* timeoutNs */) {
-  // TODO: Implement this
-  return chppPlatformNotifierWait(notifier);
-}
-
 void chppPlatformNotifierSignal(struct ChppNotifier *notifier,
                                 uint32_t signal) {
   if (InterruptController::Instance()->IsInterruptContext()) {
