diff --git a/pw_sync/backend.gni b/pw_sync/backend.gni
index 9e43ae6..59d8b48 100644
--- a/pw_sync/backend.gni
+++ b/pw_sync/backend.gni
@@ -24,4 +24,9 @@
 
   # Backend for the pw_sync module's spin lock.
   pw_sync_SPIN_LOCK_BACKEND = ""
+
+  # Whether the GN asserts should be silenced in ensuring that a compatible
+  # backend for pw_chrono_SYSTEM_CLOCK_BACKEND is chosen.
+  # Set to true to disable the asserts.
+  pw_sync_OVERRIDE_SYSTEM_CLOCK_BACKEND_CHECK = false
 }
diff --git a/pw_sync_threadx/BUILD.gn b/pw_sync_threadx/BUILD.gn
index dc82a5a..0b6e478 100644
--- a/pw_sync_threadx/BUILD.gn
+++ b/pw_sync_threadx/BUILD.gn
@@ -17,6 +17,7 @@
 import("$dir_pw_build/target_types.gni")
 import("$dir_pw_chrono/backend.gni")
 import("$dir_pw_docgen/docs.gni")
+import("$dir_pw_sync/backend.gni")
 
 config("public_include_path") {
   include_dirs = [ "public" ]
@@ -28,94 +29,97 @@
   visibility = [ ":*" ]
 }
 
-# This target provides the backend for pw::sync::BinarySemaphore.
-pw_source_set("binary_semaphore") {
-  public_configs = [
-    ":public_include_path",
-    ":backend_config",
-  ]
-  public = [
-    "public/pw_sync_threadx/binary_semaphore_inline.h",
-    "public/pw_sync_threadx/binary_semaphore_native.h",
-    "public_overrides/pw_sync_backend/binary_semaphore_inline.h",
-    "public_overrides/pw_sync_backend/binary_semaphore_native.h",
-  ]
-  public_deps = [
-    "$dir_pw_assert",
-    "$dir_pw_chrono:system_clock",
-    "$dir_pw_interrupt:context",
-    "$dir_pw_third_party/threadx",
-  ]
-  sources = [ "binary_semaphore.cc" ]
-  deps = [
-    "$dir_pw_chrono_threadx:system_clock",
-    "$dir_pw_sync:binary_semaphore.facade",
-  ]
-  assert(pw_chrono_SYSTEM_CLOCK_BACKEND == "" ||
-             pw_chrono_SYSTEM_CLOCK_BACKEND ==
-                 "$dir_pw_chrono_threadx:system_clock",
-         "The ThreadX pw::sync::BinarySemaphore backend only works with the " +
-             "ThreadX pw::chrono::SystemClock backend.")
-}
+if (pw_chrono_SYSTEM_CLOCK_BACKEND != "") {
+  # This target provides the backend for pw::sync::BinarySemaphore.
+  pw_source_set("binary_semaphore") {
+    public_configs = [
+      ":public_include_path",
+      ":backend_config",
+    ]
+    public = [
+      "public/pw_sync_threadx/binary_semaphore_inline.h",
+      "public/pw_sync_threadx/binary_semaphore_native.h",
+      "public_overrides/pw_sync_backend/binary_semaphore_inline.h",
+      "public_overrides/pw_sync_backend/binary_semaphore_native.h",
+    ]
+    public_deps = [
+      "$dir_pw_assert",
+      "$dir_pw_chrono:system_clock",
+      "$dir_pw_interrupt:context",
+      "$dir_pw_third_party/threadx",
+    ]
+    sources = [ "binary_semaphore.cc" ]
+    deps = [
+      "$dir_pw_sync:binary_semaphore.facade",
+      pw_chrono_SYSTEM_CLOCK_BACKEND,
+    ]
+    assert(
+        pw_sync_OVERRIDE_SYSTEM_CLOCK_BACKEND_CHECK ||
+            pw_chrono_SYSTEM_CLOCK_BACKEND ==
+                "$dir_pw_chrono_threadx:system_clock",
+        "The ThreadX pw::sync::BinarySemaphore backend only works with the " +
+            "ThreadX pw::chrono::SystemClock backend.")
+  }
 
-# This target provides the backend for pw::sync::CountingSemaphore.
-pw_source_set("counting_semaphore") {
-  public_configs = [
-    ":public_include_path",
-    ":backend_config",
-  ]
-  public = [
-    "public/pw_sync_threadx/counting_semaphore_inline.h",
-    "public/pw_sync_threadx/counting_semaphore_native.h",
-    "public_overrides/pw_sync_backend/counting_semaphore_inline.h",
-    "public_overrides/pw_sync_backend/counting_semaphore_native.h",
-  ]
-  public_deps = [
-    "$dir_pw_assert",
-    "$dir_pw_chrono:system_clock",
-    "$dir_pw_interrupt:context",
-    "$dir_pw_third_party/threadx",
-  ]
-  sources = [ "counting_semaphore.cc" ]
-  deps = [
-    "$dir_pw_chrono_threadx:system_clock",
-    "$dir_pw_sync:counting_semaphore.facade",
-  ]
-  assert(pw_chrono_SYSTEM_CLOCK_BACKEND == "" ||
-             pw_chrono_SYSTEM_CLOCK_BACKEND ==
-                 "$dir_pw_chrono_threadx:system_clock",
-         "The ThreadX pw::sync::CountingSemaphore backend only works with " +
-             "the ThreadX pw::chrono::SystemClock backend.")
-}
+  # This target provides the backend for pw::sync::CountingSemaphore.
+  pw_source_set("counting_semaphore") {
+    public_configs = [
+      ":public_include_path",
+      ":backend_config",
+    ]
+    public = [
+      "public/pw_sync_threadx/counting_semaphore_inline.h",
+      "public/pw_sync_threadx/counting_semaphore_native.h",
+      "public_overrides/pw_sync_backend/counting_semaphore_inline.h",
+      "public_overrides/pw_sync_backend/counting_semaphore_native.h",
+    ]
+    public_deps = [
+      "$dir_pw_assert",
+      "$dir_pw_chrono:system_clock",
+      "$dir_pw_interrupt:context",
+      "$dir_pw_third_party/threadx",
+    ]
+    sources = [ "counting_semaphore.cc" ]
+    deps = [
+      "$dir_pw_sync:counting_semaphore.facade",
+      pw_chrono_SYSTEM_CLOCK_BACKEND,
+    ]
+    assert(pw_sync_OVERRIDE_SYSTEM_CLOCK_BACKEND_CHECK ||
+               pw_chrono_SYSTEM_CLOCK_BACKEND ==
+                   "$dir_pw_chrono_threadx:system_clock",
+           "The ThreadX pw::sync::CountingSemaphore backend only works with " +
+               "the ThreadX pw::chrono::SystemClock backend.")
+  }
 
-# This target provides the backend for pw::sync::Mutex.
-pw_source_set("mutex") {
-  public_configs = [
-    ":public_include_path",
-    ":backend_config",
-  ]
-  public = [
-    "public/pw_sync_threadx/mutex_inline.h",
-    "public/pw_sync_threadx/mutex_native.h",
-    "public_overrides/pw_sync_backend/mutex_inline.h",
-    "public_overrides/pw_sync_backend/mutex_native.h",
-  ]
-  public_deps = [
-    "$dir_pw_assert",
-    "$dir_pw_chrono:system_clock",
-    "$dir_pw_interrupt:context",
-    "$dir_pw_third_party/threadx",
-  ]
-  sources = [ "mutex.cc" ]
-  deps = [
-    "$dir_pw_chrono_threadx:system_clock",
-    "$dir_pw_sync:mutex.facade",
-  ]
-  assert(pw_chrono_SYSTEM_CLOCK_BACKEND == "" ||
-             pw_chrono_SYSTEM_CLOCK_BACKEND ==
-                 "$dir_pw_chrono_threadx:system_clock",
-         "The ThreadX pw::sync::Mutex backend only works with the ThreadX " +
-             "pw::chrono::SystemClock backend.")
+  # This target provides the backend for pw::sync::Mutex.
+  pw_source_set("mutex") {
+    public_configs = [
+      ":public_include_path",
+      ":backend_config",
+    ]
+    public = [
+      "public/pw_sync_threadx/mutex_inline.h",
+      "public/pw_sync_threadx/mutex_native.h",
+      "public_overrides/pw_sync_backend/mutex_inline.h",
+      "public_overrides/pw_sync_backend/mutex_native.h",
+    ]
+    public_deps = [
+      "$dir_pw_assert",
+      "$dir_pw_chrono:system_clock",
+      "$dir_pw_interrupt:context",
+      "$dir_pw_third_party/threadx",
+    ]
+    sources = [ "mutex.cc" ]
+    deps = [
+      "$dir_pw_sync:mutex.facade",
+      pw_chrono_SYSTEM_CLOCK_BACKEND,
+    ]
+    assert(pw_sync_OVERRIDE_SYSTEM_CLOCK_BACKEND_CHECK ||
+               pw_chrono_SYSTEM_CLOCK_BACKEND ==
+                   "$dir_pw_chrono_threadx:system_clock",
+           "The ThreadX pw::sync::Mutex backend only works with the ThreadX " +
+               "pw::chrono::SystemClock backend.")
+  }
 }
 
 # This target provides the backend for pw::sync::SpinLock, note that this
diff --git a/pw_sync_threadx/docs.rst b/pw_sync_threadx/docs.rst
index f7b0eaa..b6fac08 100644
--- a/pw_sync_threadx/docs.rst
+++ b/pw_sync_threadx/docs.rst
@@ -6,3 +6,8 @@
 This is a set of backends for pw_sync based on ThreadX. It is not ready for use,
 and is under construction.
 
+It is possible, if necessary, to use pw_sync_threadx without using the Pigweed
+provided pw_chrono_threadx in case the ThreadX time API (``tx_time_get()``)) is
+not available (i.e. ``TX_NO_TIMER`` is set). You are responsible for ensuring
+that the chrono backend provided has counts which match the ThreadX tick based
+API.
