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

library fuchsia.google.platform;

extend uint fuchsia.BIND_PLATFORM_DEV_VID {
  GOOGLE = 3,
};

extend uint fuchsia.BIND_PLATFORM_DEV_PID {
  GAUSS = 0x01,
  MACHINA = 0x02,
  ASTRO = 0x03,
  SHERLOCK = 0x05,
  CLEO = 0x06,
  EAGLE = 0x07,
  VISALIA = 0x08,
  C18 = 0x09,
  NELSON = 0x0A,
  VS680_EVK = 0x0B,
  LUIS = 0x0C,
  GOLDFISH = 0x0D,
  MOTMOT = 0x0E,
};

extend uint fuchsia.BIND_PLATFORM_DEV_DID {
  GAUSS_AUDIO_IN = 0x01,
  GAUSS_AUDIO_OUT = 0x02,
  GAUSS_I2C_TEST = 0x03,
  GAUSS_LED = 0x04,
  ASTRO_GOODIXTOUCH = 0x05,
  GOOGLE_AMLOGIC_CPU = 0x06,
  GOLDFISH_CONTROL = 0x07,
  BROWNOUT = 0x08,
  GOLDFISH_PIPE_CONTROL = 0x09,
  GOLDFISH_PIPE_SENSOR = 0x0A,
};
