[ddk][pwm] Use new protocol methods to get fragments

Preference towards lookup via name string is given, but in some cases,
the relationship is not static and we must continue to rely on indicies.

Change-Id: I01427425e34e2811442b8df51abfb2e5ef8983cb
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/438681
Commit-Queue: Suraj Malhotra <surajmalhotra@google.com>
Reviewed-by: Ruby Zhuang <rdzhuang@google.com>
Testability-Review: Ruby Zhuang <rdzhuang@google.com>
diff --git a/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.cc b/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.cc
index e51998a..a6e237f 100644
--- a/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.cc
+++ b/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.cc
@@ -22,17 +22,9 @@
     return ZX_ERR_NOT_SUPPORTED;
   }
 
-  zx_device_t* fragments[FRAGMENT_COUNT];
-  size_t fragment_count;
-  composite.GetFragments(fragments, countof(fragments), &fragment_count);
-  if (fragment_count != FRAGMENT_COUNT) {
-    zxlogf(ERROR, "PwmInitDevice: Could not get fragments");
-    return ZX_ERR_NOT_SUPPORTED;
-  }
-
-  ddk::PwmProtocolClient pwm(fragments[FRAGMENT_PWM]);
-  ddk::GpioProtocolClient wifi_gpio(fragments[FRAGMENT_WIFI_GPIO]);
-  ddk::GpioProtocolClient bt_gpio(fragments[FRAGMENT_BT_GPIO]);
+  ddk::PwmProtocolClient pwm(composite, "pwm");
+  ddk::GpioProtocolClient wifi_gpio(composite, "gpio-wifi");
+  ddk::GpioProtocolClient bt_gpio(composite, "gpio-bt");
   if (!pwm.is_valid() || !wifi_gpio.is_valid() || !bt_gpio.is_valid()) {
     zxlogf(ERROR, "%s: could not get fragments", __func__);
     return ZX_ERR_NO_RESOURCES;
diff --git a/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.h b/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.h
index 6b36cb5..7eed04a 100644
--- a/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.h
+++ b/src/devices/pwm/drivers/aml-pwm-init/aml-pwm-init.h
@@ -27,13 +27,6 @@
  private:
   friend class FakePwmInitDevice;
 
-  enum {
-    FRAGMENT_PWM,
-    FRAGMENT_WIFI_GPIO,
-    FRAGMENT_BT_GPIO,
-    FRAGMENT_COUNT,
-  };
-
   explicit PwmInitDevice(zx_device_t* parent, ddk::PwmProtocolClient pwm,
                          ddk::GpioProtocolClient wifi_gpio, ddk::GpioProtocolClient bt_gpio)
       : PwmInitDeviceType(parent), pwm_(pwm), wifi_gpio_(wifi_gpio), bt_gpio_(bt_gpio) {}