diff --git a/sdk/banjo/fuchsia.hardware.gpio/BUILD.gn b/sdk/banjo/fuchsia.hardware.gpio/BUILD.gn
index 3097642..00cea8a 100644
--- a/sdk/banjo/fuchsia.hardware.gpio/BUILD.gn
+++ b/sdk/banjo/fuchsia.hardware.gpio/BUILD.gn
@@ -2,19 +2,9 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//build/banjo/banjo.gni")
+import("//build/fidl/fidl.gni")
 
-banjo("fuchsia.hardware.gpio") {
-  fidl_only = true
-  sources = [ "gpio.banjo" ]
-  deps = [ "//sdk/banjo/zx" ]
-}
-
-group("fuchsia.hardware.gpio_banjo_cpp") {
-  public_deps = [ ":fuchsia.hardware.gpio_banjo_cpp_2" ]
-}
-
-group("fuchsia.hardware.gpio_banjo_cpp_mock") {
-  testonly = true
-  public_deps = [ ":fuchsia.hardware.gpio_banjo_cpp_mock_2" ]
+fidl("fuchsia.hardware.gpio") {
+  sources = [ "gpio.fidl" ]
+  public_deps = [ "//zircon/vdso/zx" ]
 }
diff --git a/sdk/banjo/fuchsia.hardware.gpio/gpio.banjo b/sdk/banjo/fuchsia.hardware.gpio/gpio.fidl
similarity index 94%
rename from sdk/banjo/fuchsia.hardware.gpio/gpio.banjo
rename to sdk/banjo/fuchsia.hardware.gpio/gpio.fidl
index 3a39d67..dd569e9 100644
--- a/sdk/banjo/fuchsia.hardware.gpio/gpio.banjo
+++ b/sdk/banjo/fuchsia.hardware.gpio/gpio.fidl
@@ -28,13 +28,13 @@
     /// the interpretation of "function" is platform dependent.
     SetAltFunction(uint64 function) -> (zx.status s);
     /// Reads the current value of a GPIO (0 or 1).
-    Read()-> (zx.status s, uint8 value);
+    Read() -> (zx.status s, uint8 value);
     /// Sets the current value of the GPIO (any non-zero value maps to 1).
     Write(uint8 value) -> (zx.status s);
     /// Gets an interrupt object pertaining to a particular GPIO pin.
     GetInterrupt(uint32 flags) -> (zx.status s, zx.handle:INTERRUPT irq);
     /// Release the interrupt.
-    ReleaseInterrupt()-> (zx.status s);
+    ReleaseInterrupt() -> (zx.status s);
     /// Set GPIO polarity.
     SetPolarity(GpioPolarity polarity) -> (zx.status s);
     /// Set GPIO drive strength.
diff --git a/sdk/banjo/fuchsia.hardware.gpioimpl/BUILD.gn b/sdk/banjo/fuchsia.hardware.gpioimpl/BUILD.gn
index 7636690..8028970 100644
--- a/sdk/banjo/fuchsia.hardware.gpioimpl/BUILD.gn
+++ b/sdk/banjo/fuchsia.hardware.gpioimpl/BUILD.gn
@@ -2,22 +2,12 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//build/banjo/banjo.gni")
+import("//build/fidl/fidl.gni")
 
-banjo("fuchsia.hardware.gpioimpl") {
-  fidl_only = true
-  sources = [ "gpio-impl.banjo" ]
-  deps = [
+fidl("fuchsia.hardware.gpioimpl") {
+  sources = [ "gpio-impl.fidl" ]
+  public_deps = [
     "//sdk/banjo/fuchsia.hardware.gpio",
-    "//sdk/banjo/zx",
+    "//zircon/vdso/zx",
   ]
 }
-
-group("fuchsia.hardware.gpioimpl_banjo_cpp") {
-  public_deps = [ ":fuchsia.hardware.gpioimpl_banjo_cpp_2" ]
-}
-
-group("fuchsia.hardware.gpioimpl_banjo_cpp_mock") {
-  testonly = true
-  public_deps = [ ":fuchsia.hardware.gpioimpl_banjo_cpp_mock_2" ]
-}
diff --git a/sdk/banjo/fuchsia.hardware.gpioimpl/gpio-impl.banjo b/sdk/banjo/fuchsia.hardware.gpioimpl/gpio-impl.fidl
similarity index 100%
rename from sdk/banjo/fuchsia.hardware.gpioimpl/gpio-impl.banjo
rename to sdk/banjo/fuchsia.hardware.gpioimpl/gpio-impl.fidl
diff --git a/src/camera/drivers/sensors/imx227/BUILD.gn b/src/camera/drivers/sensors/imx227/BUILD.gn
index af874ba..5ec74b7 100644
--- a/src/camera/drivers/sensors/imx227/BUILD.gn
+++ b/src/camera/drivers/sensors/imx227/BUILD.gn
@@ -32,7 +32,6 @@
     ":imx227_bind",
     "//sdk/banjo/fuchsia.hardware.camera",
     "//sdk/banjo/fuchsia.hardware.camera.sensor",
-    "//sdk/banjo/fuchsia.hardware.gpio:fuchsia.hardware.gpio_banjo_cpp",
     "//sdk/banjo/fuchsia.hardware.mipicsi",
     "//sdk/banjo/fuchsia.hardware.platform.device",
     "//sdk/lib/syslog/cpp",
@@ -44,6 +43,7 @@
 
   public_deps = [
     "//sdk/banjo/fuchsia.hardware.clock:fuchsia.hardware.clock_banjo_cpp",
+    "//sdk/banjo/fuchsia.hardware.gpio:fuchsia.hardware.gpio_banjo_cpp",
     "//sdk/lib/fit-promise",
     "//src/devices/bus/lib/device-protocol-pdev",
     "//src/devices/i2c/lib/device-protocol-i2c-channel",
