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

# This contains a list of all drivers in the devices area.
group("drivers") {
  testonly = true
  deps = [
    "//src/devices/bin/driver_host:driver-host-test-child-driver",
    "//src/devices/bin/driver_host:driver-host-test-driver",
    "//src/devices/bin/driver_host:unit-test-fail",
    "//src/devices/bin/driver_host:unit-test-pass",
    "//src/devices/block:drivers",
    "//src/devices/board:drivers",
    "//src/devices/bus:drivers",
    "//src/devices/clock:drivers",
    "//src/devices/cpu:drivers",
    "//src/devices/fw:drivers",
    "//src/devices/gpio:drivers",
    "//src/devices/i2c:drivers",
    "//src/devices/internal/drivers/fragment:fragment",
    "//src/devices/internal/drivers/fragment:fragment.proxy",
    "//src/devices/light-sensor:drivers",
    "//src/devices/mcu:drivers",
    "//src/devices/misc:drivers",
    "//src/devices/ml:drivers",
    "//src/devices/nand:drivers",
    "//src/devices/power:drivers",
    "//src/devices/pwm:drivers",
    "//src/devices/ram:drivers",
    "//src/devices/rtc:drivers",
    "//src/devices/scpi:drivers",
    "//src/devices/securemem:drivers",
    "//src/devices/serial:drivers",
    "//src/devices/shareddma:drivers",
    "//src/devices/spi:drivers",
    "//src/devices/sysmem:drivers",
    "//src/devices/tee:drivers",
    "//src/devices/temperature:drivers",
    "//src/devices/tests/bind-fail-test:driver",
    "//src/devices/tests/bind-test:bind-test-driver",
    "//src/devices/tests/ddk-environment-test:ddk-environment-test",
    "//src/devices/tests/ddk-fidl-test:fidl-async-llcpp-driver",
    "//src/devices/tests/ddk-fidl-test:fidl-llcpp-driver",
    "//src/devices/tests/ddk-instance-lifecycle-test:driver",
    "//src/devices/tests/ddk-lifecycle:ddk-lifecycle-test",
    "//src/devices/tests/ddk-metadata-test:driver",
    "//src/devices/tests/ddk-power:ddk-power-test",
    "//src/devices/tests/ddk-power:ddk-power-test-child",
    "//src/devices/tests/ddk-runcompatibilityhook:ddk-runcompatibilityhook-test",
    "//src/devices/tests/ddk-runcompatibilityhook:ddk-runcompatibilityhook-test-child",
    "//src/devices/tests/driver-inspect-test:driver",
    "//src/devices/tests/isolateddevmgr:isolateddevmgr-test-driver",
    "//src/devices/tests/mock-device:mock-device",
    "//src/devices/tests/sysdev:sysdev",
    "//src/devices/thermal:drivers",
    "//src/devices/usb:drivers",
  ]
}

# This target contains drivers that are present on the boot partition of all
# products.
group("bootstrap-dev") {
  deps = [
    "//src/devices/block/drivers/core",
    "//src/devices/block/drivers/gpt",
    "//src/devices/block/drivers/ramdisk",
    "//src/devices/block/drivers/sdmmc",
    "//src/devices/block/drivers/zxcrypt",
    "//src/devices/bus/drivers/platform:platform-bus",
    "//src/devices/bus/drivers/platform:platform-bus.proxy",
    "//src/devices/clock/drivers/clock",
    "//src/devices/gpio/drivers/gpio",
    "//src/devices/i2c/drivers/i2c",
    "//src/devices/internal/drivers/fragment",
    "//src/devices/internal/drivers/fragment:fragment.proxy",
    "//src/devices/misc/drivers/builtin",
    "//src/devices/power/drivers/power",
    "//src/devices/pwm/drivers/pwm",
    "//src/devices/serial/drivers/serial",
    "//src/devices/serial/drivers/serial-async",
    "//src/devices/spi/drivers/spi",
    "//src/devices/sysmem/drivers/sysmem",
    "//src/storage/fvm/driver",
  ]
}

# This target contains executables that are present on the boot partition of all
# products.
group("bootstrap-bin") {
  deps = [
    "//src/devices/bin/driver_host",
    "//src/devices/bin/driver_manager:bootfs",
  ]
}

group("usb-host-stack") {
  deps = [
    "//src/devices/block/drivers/usb-mass-storage",
    "//src/devices/ml/drivers/usb-harriet",
    "//src/devices/serial/drivers/ftdi",
    "//src/devices/serial/drivers/usb-cdc-acm",
    "//src/devices/usb/bin/lsusb",
    "//src/devices/usb/drivers/usb-bus",
    "//src/devices/usb/drivers/usb-composite",
    "//src/devices/usb/drivers/usb-dfu",
  ]
  deps += [ "//src/devices/usb/drivers/usb-hub-rewrite" ]
}

group("usb-peripheral-stack") {
  deps = [
    "//src/devices/block/drivers/ums-function",
    "//src/devices/usb/bin/usbctl",
    "//src/devices/usb/drivers/usb-peripheral",
  ]
}

group("utils") {
  deps = [
    # utils should not be included in user build which does not have shell
    # access.
    "//build/validate:non_production_tag",
    "//src/devices/bin/driver-registrar",
    "//src/devices/bin/driverctl",
    "//src/devices/bin/lsdev",
    "//src/devices/bin/unbind",
    "//src/devices/block/bin/gpt",
    "//src/devices/block/bin/lsblk",
    "//src/devices/block/bin/sdio",
    "//src/devices/clock/bin/clock",
    "//src/devices/clock/bin/clock:clkctl",
    "//src/devices/cpu/bin/cpuctl",
    "//src/devices/gpio/bin/gpioutil",
    "//src/devices/i2c/bin:i2cutil",
    "//src/devices/i2c/bin/i2c",
    "//src/devices/power/bin/lspwr",
    "//src/devices/ram/bin/ram-info",
    "//src/devices/spi/bin/spiutil",
    "//src/devices/thermal/bin/temperature-cli",
    "//src/devices/thermal/bin/thermal-cli",
    "//zircon/system/ulib/driver-info/app:driverinfo",
  ]
}

group("manual_testing") {
  testonly = true

  deps = [
    "//src/devices/bin/tee-test",
    "//src/devices/block/bin/biotime",
    "//src/devices/block/bin/blktest",
    "//src/devices/block/bin/iochk",
    "//src/devices/block/bin/iotime",
    "//src/devices/gpio/drivers/gpio-test",
    "//src/devices/misc/drivers/test",
    "//src/devices/serial/bin/serial-test",
    "//src/devices/tests/sysdev",
    "//src/devices/usb/bin/usb-fwloader",
    "//src/devices/usb/bin/xdc-test",
    "//src/devices/usb/drivers/usb-peripheral-test",
  ]
}

group("debugging") {
  deps = [
    "//src/devices/block/bin/disk-inspect",
    "//src/devices/block/bin/fvm-check",
    "//src/devices/nand/bin/nand-loader",
    "//src/devices/nand/bin/nand-util",
    "//src/devices/nand/drivers/broker:nand-broker",
  ]
}
