 +        nrf52840::usbd::Usbd<'static>,
 +    >,
  }
-
+ 
  impl kernel::Platform for Platform {
-@@ -184,6 +201,7 @@ impl kernel::Platform for Platform {
+@@ -184,6 +200,7 @@ impl kernel::Platform for Platform {
              capsules::analog_comparator::DRIVER_NUM => f(Some(self.analog_comparator)),
              capsules::nonvolatile_storage_driver::DRIVER_NUM => f(Some(self.nonvolatile_storage)),
              nrf52840::nvmc::DRIVER_NUM => f(Some(self.nvmc)),

+        max_ctrl_packet_size: u8,
+        vendor_id: u16,
+        product_id: u16,
+        strings: &'static [&'static str]
+    ) -> Self {
+        let interfaces: &mut [InterfaceDescriptor] = &mut [
+            // Interface declared in the FIDO2 specification, section 8.1.8.1

     UsbUser               = 0x20005,
     I2cMasterSlave        = 0x20006,
+    UsbCtap               = 0x20009,
 
     // Radio
     BleAdvertising        = 0x30000,
diff --git a/capsules/src/usb/mod.rs b/capsules/src/usb/mod.rs
index 767f5de83..3f3a4f646 100644
--- a/capsules/src/usb/mod.rs
+++ b/capsules/src/usb/mod.rs
@@ -1,5 +1,7 @@
