[driver][hidbuttons] Remove bind.c.

Change-Id: I3a03048e6a3392b8e984172b0dfe8c3a6609be51
diff --git a/zircon/system/dev/input/hid-buttons/BUILD.gn b/zircon/system/dev/input/hid-buttons/BUILD.gn
index 6759b38..25eef44 100644
--- a/zircon/system/dev/input/hid-buttons/BUILD.gn
+++ b/zircon/system/dev/input/hid-buttons/BUILD.gn
@@ -4,7 +4,6 @@
 
 driver("hid-buttons") {
   sources = [
-    "bind.c",
     "hid-buttons.cpp",
   ]
   deps = [
diff --git a/zircon/system/dev/input/hid-buttons/bind.c b/zircon/system/dev/input/hid-buttons/bind.c
deleted file mode 100644
index 1e8de07..0000000
--- a/zircon/system/dev/input/hid-buttons/bind.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2018 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/binding.h>
-#include <ddk/debug.h>
-#include <ddk/device.h>
-#include <ddk/driver.h>
-#include <ddk/platform-defs.h>
-
-extern zx_status_t hid_buttons_bind(void* ctx, zx_device_t* parent);
-
-static zx_driver_ops_t hid_buttons_driver_ops = {
-    .version = DRIVER_OPS_VERSION,
-    .bind = hid_buttons_bind,
-};
-
-// clang-format off
-ZIRCON_DRIVER_BEGIN(hid_buttons, hid_buttons_driver_ops, "zircon", "0.1", 3)
-    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_VID, PDEV_VID_GENERIC),
-    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_PID, PDEV_PID_GENERIC),
-    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_DID, PDEV_DID_HID_BUTTONS),
-ZIRCON_DRIVER_END(hid_buttons)
-// clang-format on
diff --git a/zircon/system/dev/input/hid-buttons/hid-buttons.cpp b/zircon/system/dev/input/hid-buttons/hid-buttons.cpp
index 6fc4849..aec0399 100644
--- a/zircon/system/dev/input/hid-buttons/hid-buttons.cpp
+++ b/zircon/system/dev/input/hid-buttons/hid-buttons.cpp
@@ -8,6 +8,7 @@
 #include <threads.h>
 #include <unistd.h>
 
+#include <ddk/binding.h>
 #include <ddk/debug.h>
 #include <ddk/metadata.h>
 #include <ddk/platform-defs.h>
@@ -386,9 +387,7 @@
     delete this;
 }
 
-} // namespace buttons
-
-extern "C" zx_status_t hid_buttons_bind(void* ctx, zx_device_t* parent) {
+static zx_status_t hid_buttons_bind(void* ctx, zx_device_t* parent) {
     fbl::AllocChecker ac;
     auto dev = fbl::make_unique_checked<buttons::HidButtonsDevice>(&ac, parent);
     if (!ac.check()) {
@@ -401,3 +400,20 @@
     }
     return status;
 }
+
+static zx_driver_ops_t hid_buttons_driver_ops = []() {
+    zx_driver_ops_t ops = {};
+    ops.version = DRIVER_OPS_VERSION;
+    ops.bind = hid_buttons_bind;
+    return ops;
+}();
+
+} // namespace buttons
+
+// clang-format off
+ZIRCON_DRIVER_BEGIN(hid_buttons, buttons::hid_buttons_driver_ops, "zircon", "0.1", 3)
+    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_VID, PDEV_VID_GENERIC),
+    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_PID, PDEV_PID_GENERIC),
+    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_DID, PDEV_DID_HID_BUTTONS),
+ZIRCON_DRIVER_END(hid_buttons)
+// clang-format on