[dev][usb-audio] Remove unnecessary binding.c source file

TEST: USB audio device binds on NUC.
Change-Id: I0252c2d421f595c8608894a8b813feaabec09bd2
diff --git a/system/dev/audio/usb-audio/binding.c b/system/dev/audio/usb-audio/binding.c
deleted file mode 100644
index a35fbce..0000000
--- a/system/dev/audio/usb-audio/binding.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2016 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <ddk/device.h>
-#include <ddk/driver.h>
-#include <ddk/binding.h>
-#include <zircon/hw/usb.h>
-#include <zircon/hw/usb/audio.h>
-
-extern zx_status_t usb_audio_device_bind(void*, zx_device_t*);
-extern void usb_audio_driver_release(void*);
-
-static zx_driver_ops_t usb_audio_driver_ops = {
-    .version = DRIVER_OPS_VERSION,
-    .bind = usb_audio_device_bind,
-    .release = usb_audio_driver_release,
-};
-
-ZIRCON_DRIVER_BEGIN(usb_audio, usb_audio_driver_ops, "zircon", "0.1", 4)
-    BI_ABORT_IF(NE, BIND_PROTOCOL, ZX_PROTOCOL_USB),
-    BI_ABORT_IF(NE, BIND_USB_CLASS, USB_CLASS_AUDIO),
-    BI_ABORT_IF(NE, BIND_USB_SUBCLASS, USB_SUBCLASS_AUDIO_CONTROL),
-    BI_MATCH_IF(EQ, BIND_USB_PROTOCOL, 0),
-ZIRCON_DRIVER_END(usb_audio)
diff --git a/system/dev/audio/usb-audio/rules.mk b/system/dev/audio/usb-audio/rules.mk
index dcd7487..63a0b80 100644
--- a/system/dev/audio/usb-audio/rules.mk
+++ b/system/dev/audio/usb-audio/rules.mk
@@ -9,7 +9,6 @@
 MODULE_TYPE := driver
 
 MODULE_SRCS += \
-    $(LOCAL_DIR)/binding.c \
     $(LOCAL_DIR)/midi.c \
     $(LOCAL_DIR)/usb-audio.cpp \
     $(LOCAL_DIR)/usb-audio-control-interface.cpp \
diff --git a/system/dev/audio/usb-audio/usb-audio-device.cpp b/system/dev/audio/usb-audio/usb-audio-device.cpp
index 68c364a..b6a1c51 100644
--- a/system/dev/audio/usb-audio/usb-audio-device.cpp
+++ b/system/dev/audio/usb-audio/usb-audio-device.cpp
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <ddk/binding.h>
 #include <dispatcher-pool/dispatcher-thread-pool.h>
 #include <fbl/auto_call.h>
 #include <fbl/auto_lock.h>
@@ -500,15 +501,28 @@
     auto reference = fbl::internal::MakeRefPtrNoAdopt(this);
 }
 
+static zx_status_t usb_audio_device_bind(void* ctx, zx_device_t* device) {
+    return UsbAudioDevice::DriverBind(device);
+}
+
+static void usb_audio_driver_release(void*) {
+    dispatcher::ThreadPool::ShutdownAll();
+}
+
+static zx_driver_ops_t driver_ops = [](){
+    zx_driver_ops_t ops = {};
+    ops.version = DRIVER_OPS_VERSION;
+    ops.bind = usb_audio_device_bind;
+    ops.release = usb_audio_driver_release;
+    return ops;
+}();
+
 }  // namespace usb
 }  // namespace audio
 
-extern "C" {
-zx_status_t usb_audio_device_bind(void* ctx, zx_device_t* device) {
-    return audio::usb::UsbAudioDevice::DriverBind(device);
-}
-
-void usb_audio_driver_release(void*) {
-    dispatcher::ThreadPool::ShutdownAll();
-}
-}  // extern "C"
+ZIRCON_DRIVER_BEGIN(usb_audio, audio::usb::driver_ops, "zircon", "0.1", 4)
+    BI_ABORT_IF(NE, BIND_PROTOCOL, ZX_PROTOCOL_USB),
+    BI_ABORT_IF(NE, BIND_USB_CLASS, USB_CLASS_AUDIO),
+    BI_ABORT_IF(NE, BIND_USB_SUBCLASS, USB_SUBCLASS_AUDIO_CONTROL),
+    BI_MATCH_IF(EQ, BIND_USB_PROTOCOL, 0),
+ZIRCON_DRIVER_END(usb_audio)