// 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.ti.platform;

extend uint fuchsia.BIND_PLATFORM_DEV_VID {
  TI = 0x10,
};

extend uint fuchsia.BIND_PLATFORM_DEV_PID {
  LP8556 = 0x01,
  LP5018 = 0x02,
  LP5024 = 0x03,
  LP5030 = 0x04,
  LP5036 = 0x05,
  TMP112 = 0x06,
};

extend uint fuchsia.BIND_PLATFORM_DEV_DID {
  BACKLIGHT = 0x01,
  TAS58xx = 0x02,
  TAS5782 = 0x03,
  TAS2770 = 0x04,
  LED = 0x05,
  TEMPERATURE = 0x06,
  TAS5720 = 0x07,
  TCA6408A = 0x09,
  TAS5707 = 0x0A,
  INA231_MLB = 0x0B,
  INA231_SPEAKERS = 0x0C,
};

extend uint fuchsia.BIND_I2C_ADDRESS {
  INA231_MLB = 0x49,
  INA231_SPEAKERS = 0x40,
  INA231_MLB_PROTO = 0x46,
};
