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

extend uint fuchsia.BIND_PLATFORM_DEV_VID {
  BROADCOM = 0x06,
};

extend uint fuchsia.BIND_PLATFORM_DEV_PID {
  BCM4356 = 0x01,
  BCM43458 = 0x02,
  BCM4359 = 0x03,
  BCM4381A1 = 0xBA,
};

extend uint fuchsia.BIND_PLATFORM_DEV_DID {
  WIFI = 0x01,
};
