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

library fuchsia.platform;

extend uint fuchsia.BIND_PROTOCOL {
  BUS = 84,
  DEVICE = 85,
};

// NOTE(fxbug.dev/66206): Don't add more definitions here. Instead create a new
// bind library with the top-level namespace "fuchsia", use the name of the
// device vendor as the second level, and the name of the library should be
// "platform". For example, "fuchsia.realtek.platform".
extend uint fuchsia.BIND_PLATFORM_DEV_VID {
  GENERIC = 0,
  QEMU = 1,
};

extend uint fuchsia.BIND_PLATFORM_DEV_DID {
  RTC_PL031 = 0x06,
  ETH_MAC = 0x10,
  HID_BUTTONS = 0x13,
  FAKE_DISPLAY = 0x16,
  GPIO_LIGHT = 0x1C,
};

extend uint fuchsia.BIND_PLATFORM_DEV_PID {
  GENERIC = 0,
};
