# 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-debugger-test:bind-debugger-test-driver",
    "//src/devices/tests/bind-fail-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/fvm",
    "//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",
  ]
}

# 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 = [
    "//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/spi/bin/spiutil",
    "//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",
  ]
}
