diff --git a/src/composite_sample/BUILD.bazel b/src/composite_sample/BUILD.bazel
index a285da3..c05f67d 100644
--- a/src/composite_sample/BUILD.bazel
+++ b/src/composite_sample/BUILD.bazel
@@ -40,6 +40,9 @@
 fuchsia_component_manifest(
     name = "manifest",
     src = "meta/composite_sample.cml",
+    includes = [
+        "@fuchsia_sdk//pkg/syslog:client",
+    ],
 )
 
 fuchsia_driver_component(
diff --git a/src/composite_sample/README.md b/src/composite_sample/README.md
new file mode 100644
index 0000000..6d25f68
--- /dev/null
+++ b/src/composite_sample/README.md
@@ -0,0 +1,36 @@
+# Composite Device Sample
+
+This sample project contains a Fuchsia driver for a composite device node. The driver binds with
+multiple parent device nodes described using ACPI.
+
+## Building
+
+To build the `composite_sample` driver and related components, run the following command:
+
+```
+tools/bazel build --config=fuchsia_x64 //src/composite_device:pkg
+```
+
+## Running
+
+Use the following commands to load the driver component on a target device:
+
+1.  Load the `composite_sample` driver component:
+
+    ```
+    tools/bazel run --config=fuchsia_x64 //src/composite_sample:pkg.component
+    ```
+
+1.  Open the device log viewer:
+
+    ```
+    tools/ffx log --filter composite_sample
+    ```
+
+You should see the driver component print the topological path of each parent device node
+after the driver has successfully bound:
+
+```
+[composite-sample,driver][I]: [composite_sample.cc:69] Topological path  path=sys/platform/platform-passthrough/acpi/acpi-_SB_/acpi-GFBY/acpi-GFBY-passthrough
+[composite-sample,driver][I]: [composite_sample.cc:69] Topological path  path=sys/platform/platform-passthrough/acpi/acpi-_SB_/acpi-GFRT/acpi-GFRT-passthrough
+```
diff --git a/src/composite_sample/composite_sample.bind b/src/composite_sample/composite_sample.bind
index 241a2ad..1ae1d05 100644
--- a/src/composite_sample/composite_sample.bind
+++ b/src/composite_sample/composite_sample.bind
@@ -6,6 +6,8 @@
 
 using fuchsia.acpi;
 
+// Bind to an unused ACPI node in Qemu or Atlas.
+// TODO(fxb/100716): Bind to a test node once it's available.
 primary node "acpi-GFBY" {
     if fuchsia.acpi.hid == "GFSH0001" {
         true;
diff --git a/src/composite_sample/composite_sample.cc b/src/composite_sample/composite_sample.cc
index b2c74b1..26a0dff 100644
--- a/src/composite_sample/composite_sample.cc
+++ b/src/composite_sample/composite_sample.cc
@@ -2,13 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "src/composite_sample/composite_sample.h"
+#include "composite_sample.h"
 
 #include <fidl/fuchsia.driver.compat/cpp/wire.h>
 #include <lib/driver2/record_cpp.h>
 
-namespace fio = fuchsia_io;
-
 namespace composite_sample {
 
 // static
@@ -27,7 +25,7 @@
 }
 
 zx::status<> CompositeSampleDriver::Run(async_dispatcher *dispatcher,
-                                        fidl::ServerEnd<fio::Directory> outgoing_dir) {
+                                        fidl::ServerEnd<fuchsia_io::Directory> outgoing_dir) {
   auto result = PrintTopologicalPath("acpi-GFBY");
   if (result.is_error()) {
     FDF_SLOG(ERROR, "Failed to print topological path for \"acpi-GFBY\"",
@@ -45,8 +43,9 @@
   return outgoing_.Serve(std::move(outgoing_dir));
 }
 
+// Print the topological path for a given parent device node.
 zx::status<> CompositeSampleDriver::PrintTopologicalPath(std::string_view name) {
-  // Connect to parent.
+  // Connect to the parent device node.
   auto result = ns_.OpenService<fuchsia_driver_compat::Service>(name);
   if (result.is_error()) {
     FDF_SLOG(ERROR, "Failed to open service", KV("status", result.status_string()));
@@ -59,7 +58,8 @@
     return parent.take_error();
   }
 
-  auto path_result = fidl::WireCall(*parent)->GetTopologicalPath();
+  // Retrieve the path of the device node from the `fuchsia.driver.compat` service
+  auto path_result = fidl::WireCall<fuchsia_driver_compat::Device>(*parent)->GetTopologicalPath();
   if (!path_result.ok()) {
     FDF_SLOG(ERROR, "Failed to get topological path", KV("status", result.status_string()));
     return zx::error(path_result.status());
diff --git a/src/composite_sample/meta/composite_sample.cml b/src/composite_sample/meta/composite_sample.cml
index 9d34ab4..3127b3f 100644
--- a/src/composite_sample/meta/composite_sample.cml
+++ b/src/composite_sample/meta/composite_sample.cml
@@ -1,15 +1,16 @@
+// Copyright 2022 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: [
+        'syslog/client.shard.cml',
+    ],
     program: {
         runner: 'driver',
         binary: 'lib/libcomposite_sample.so',
         bind: 'meta/bind/composite_sample.bindbc'
     },
     use: [
-        {
-            protocol: [
-              'fuchsia.logger.LogSink',
-            ],
-        },
-        { service: "fuchsia.driver.compat.Service" },
+        { service: 'fuchsia.driver.compat.Service' },
     ],
 }
