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

group("bootstrap") {
  deps = [
    "//src/connectivity/ethernet/drivers/ethernet",
    "//src/connectivity/network/drivers/network-device",
    "//src/devices/bundles:bootstrap-dev",
    "//src/graphics/display/drivers/display",
    "//src/ui/input/drivers/hid",
    "//src/ui/input/drivers/hid-buttons",
    "//src/ui/input/drivers/hid-input-report",
  ]
}

# Drivers which are meant only for non-user facing products.
group("bootstrap-eng") {
  deps = [ "//src/devices/misc/drivers/cpu-trace" ]
}

group("usb-host-stack") {
  deps = [
    "//src/connectivity/bluetooth/hci/transport/usb:bt-transport-usb",
    "//src/connectivity/ethernet/drivers/asix-88179",
    "//src/connectivity/ethernet/drivers/asix-88772b",
    "//src/connectivity/ethernet/drivers/usb-cdc-ecm",
    "//src/devices/bundles:usb-host-stack",
    "//src/media/audio/drivers/usb-audio",
    "//src/ui/input/drivers/usb-hid",
  ]
}

group("usb-peripheral-stack") {
  deps = [
    "//src/connectivity/ethernet/drivers/rndis-function",
    "//src/connectivity/ethernet/drivers/usb-cdc-function",
    "//src/devices/bundles:usb-peripheral-stack",
  ]
}

group("utils") {
  deps = [
    "//build/validate:non_production_tag",
    "//src/devices/bundles:utils",
    "//src/graphics/display/bin/dsiutil",
    "//src/media/audio/tools/audio-driver-ctl:bin",
    "//src/ui/backlight/bin/backlight",
    "//src/ui/input/bin/hid",
  ]
}

group("pci") {
  deps = [
    "//src/connectivity/ethernet/drivers/virtio:virtio_ethernet",
    "//src/connectivity/wlan/drivers/third_party/atheros/ath10k:ath10k_driver",
    "//src/connectivity/wlan/drivers/third_party/broadcom/brcmfmac:driver_module",
    "//src/connectivity/wlan/drivers/third_party/intel/iwlwifi:iwlwifi_driver",
    "//src/devices/block/drivers/ahci:ahci",
    "//src/devices/block/drivers/nvme:nvme",
    "//src/devices/block/drivers/pci-sdhci:pci-sdhci",
    "//src/devices/block/drivers/virtio:virtio_block",
    "//src/devices/i2c/drivers/intel-i2c:intel-i2c",
    "//src/devices/misc/drivers/virtio-rng:virtio_rng",
    "//src/devices/misc/drivers/virtio-socket:virtio_socket",
    "//src/devices/serial/drivers/virtio-console:virtio_console",
    "//src/devices/usb/drivers/xhci:xhci-x86",
    "//src/devices/usb/drivers/xhci-rewrite:xhci",
    "//src/graphics/display/drivers/intel-i915:intel-i915",
    "//src/graphics/display/drivers/simple:simple.amd-kaveri",
    "//src/graphics/display/drivers/simple:simple.bochs",
    "//src/graphics/display/drivers/simple:simple.intel",
    "//src/graphics/display/drivers/simple:simple.nv",
    "//src/graphics/display/drivers/simple:simple.vmware",
    "//src/graphics/drivers/misc/goldfish_address_space:address_space_driver",
    "//src/graphics/drivers/virtio:virtio_gpu",
    "//src/media/audio/drivers/intel-hda/controller:intel-hda",
    "//src/ui/input/drivers/virtio:virtio_input",
    "//zircon/third_party/dev/ethernet/e1000:e1000",
  ]

  if (target_cpu == "x64") {
    deps += [
      "//src/connectivity/ethernet/drivers/realtek-8111:realtek-8111",
      "//src/graphics/lib/magma/gnbuild/magma-intel-gen:msd-intel-gen",
    ]
  }
}
