// Copyright 2020 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.

using fuchsia.platform;
using fuchsia.devicetree;
using fuchsia.hardware.platform.device;

fuchsia.BIND_PLATFORM_DEV_VID == fuchsia.platform.BIND_PLATFORM_DEV_VID.GENERIC;

if fuchsia.BIND_PLATFORM_DEV_DID == fuchsia.platform.BIND_PLATFORM_DEV_DID.DEVICETREE {
  fuchsia.devicetree.FIRST_COMPATIBLE == "sysmem";
} else {
  fuchsia.hardware.platform.device.Service == fuchsia.hardware.platform.device.Service.ZirconTransport;
  fuchsia.BIND_PLATFORM_DEV_PID == fuchsia.platform.BIND_PLATFORM_DEV_PID.GENERIC;
  // PDEV_DID_SYSMEM
  fuchsia.BIND_PLATFORM_DEV_DID == 0x1b;
}
