[gxl][gpio] Remove C binding file

Test: CQ

Change-Id: If3bde95d8f06c93d6d71572aaf93e04899d27b09
diff --git a/zircon/system/dev/gpio/aml-gxl-gpio/BUILD.gn b/zircon/system/dev/gpio/aml-gxl-gpio/BUILD.gn
index 54479dd..c0cd295 100644
--- a/zircon/system/dev/gpio/aml-gxl-gpio/BUILD.gn
+++ b/zircon/system/dev/gpio/aml-gxl-gpio/BUILD.gn
@@ -5,7 +5,6 @@
 driver("aml-gxl-gpio") {
   sources = [
     "aml-gxl-gpio.cpp",
-    "binding.c",
   ]
   deps = [
     "$zx/system/banjo/ddk-protocol-gpio",
diff --git a/zircon/system/dev/gpio/aml-gxl-gpio/aml-gxl-gpio.cpp b/zircon/system/dev/gpio/aml-gxl-gpio/aml-gxl-gpio.cpp
index 51af983..0a748d6 100644
--- a/zircon/system/dev/gpio/aml-gxl-gpio/aml-gxl-gpio.cpp
+++ b/zircon/system/dev/gpio/aml-gxl-gpio/aml-gxl-gpio.cpp
@@ -4,11 +4,12 @@
 
 #include "aml-gxl-gpio.h"
 
+#include <ddk/binding.h>
 #include <ddk/debug.h>
 #include <ddk/platform-defs.h>
+#include <ddk/protocol/platform-device-lib.h>
 #include <ddk/protocol/platform/bus.h>
 #include <ddk/protocol/platform/device.h>
-#include <ddk/protocol/platform-device-lib.h>
 #include <fbl/alloc_checker.h>
 #include <fbl/array.h>
 #include <fbl/auto_lock.h>
@@ -35,14 +36,14 @@
     return __builtin_ctz(zero_bit_set);
 }
 
-}  // namespace
+} // namespace
 
 namespace gpio {
 
 // MMIO indices (based on vim-gpio.c gpio_mmios)
 enum {
-    MMIO_GPIO            = 0,
-    MMIO_GPIO_A0         = 1,
+    MMIO_GPIO = 0,
+    MMIO_GPIO_A0 = 1,
     MMIO_GPIO_INTERRUPTS = 2,
 };
 
@@ -167,7 +168,7 @@
 void AmlGxlGpio::Bind(const pbus_protocol_t& pbus) {
     gpio_impl_protocol_t gpio_proto = {
         .ops = &gpio_impl_protocol_ops_,
-        .ctx = this
+        .ctx = this,
     };
 
     pbus_register_protocol(&pbus, ZX_PROTOCOL_GPIO_IMPL, &gpio_proto, sizeof(gpio_proto));
@@ -493,8 +494,27 @@
     return ZX_OK;
 }
 
-}  // namespace gpio
-
-extern "C" zx_status_t aml_gpio_bind(void* ctx, zx_device_t* parent) {
+zx_status_t aml_gpio_bind(void* ctx, zx_device_t* parent) {
     return gpio::AmlGxlGpio::Create(parent);
 }
+
+static zx_driver_ops_t driver_ops = []() {
+    zx_driver_ops_t ops;
+    ops.version = DRIVER_OPS_VERSION;
+    ops.bind = aml_gpio_bind;
+    return ops;
+}();
+
+} // namespace gpio
+
+// clang-format off
+ZIRCON_DRIVER_BEGIN(aml_gpio, gpio::driver_ops, "zircon", "0.1", 6)
+    BI_ABORT_IF(NE, BIND_PROTOCOL, ZX_PROTOCOL_PDEV),
+    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_VID, PDEV_VID_AMLOGIC),
+    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_DID, PDEV_DID_AMLOGIC_GPIO),
+    // we support multiple SOC variants
+    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_PID, PDEV_PID_AMLOGIC_S912),
+    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_PID, PDEV_PID_AMLOGIC_S905X),
+    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_PID, PDEV_PID_AMLOGIC_S905),
+ZIRCON_DRIVER_END(aml_gpio)
+
diff --git a/zircon/system/dev/gpio/aml-gxl-gpio/binding.c b/zircon/system/dev/gpio/aml-gxl-gpio/binding.c
deleted file mode 100644
index abbc29e..0000000
--- a/zircon/system/dev/gpio/aml-gxl-gpio/binding.c
+++ /dev/null
@@ -1,25 +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/device.h>
-#include <ddk/driver.h>
-#include <ddk/platform-defs.h>
-
-extern zx_status_t aml_gpio_bind(void* ctx, zx_device_t* parent);
-
-static zx_driver_ops_t aml_gpio_driver_ops = {
-    .version = DRIVER_OPS_VERSION,
-    .bind = aml_gpio_bind,
-};
-
-ZIRCON_DRIVER_BEGIN(aml_gpio, aml_gpio_driver_ops, "zircon", "0.1", 6)
-    BI_ABORT_IF(NE, BIND_PROTOCOL, ZX_PROTOCOL_PDEV),
-    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_VID, PDEV_VID_AMLOGIC),
-    BI_ABORT_IF(NE, BIND_PLATFORM_DEV_DID, PDEV_DID_AMLOGIC_GPIO),
-    // we support multiple SOC variants
-    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_PID, PDEV_PID_AMLOGIC_S912),
-    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_PID, PDEV_PID_AMLOGIC_S905X),
-    BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_PID, PDEV_PID_AMLOGIC_S905),
-ZIRCON_DRIVER_END(aml_gpio)