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

import("//build/bind/bind.gni")
import("//build/config/fuchsia/rules.gni")

bind_rules("vim2-bind") {
  rules = "vim2.bind"
  output = "vim2-bind.h"
  tests = "bind-tests.json"
  deps = [
    "//src/devices/bind/fuchsia.khadas.platform",
    "//src/devices/bind/fuchsia.platform",
  ]
}

driver_module("vim2") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  sources = [
    "vim-canvas.cc",
    "vim-clk.cc",
    "vim-display.cc",
    "vim-emmc.cc",
    "vim-eth.cc",
    "vim-gpio.cc",
    "vim-i2c.cc",
    "vim-mali.cc",
    "vim-registers.cc",
    "vim-sd.cc",
    "vim-sdio.cc",
    "vim-sysmem.cc",
    "vim-thermal.cc",
    "vim-uart.cc",
    "vim-usb.cc",
    "vim-video.cc",
    "vim.cc",
  ]
  deps = [
    ":vim2-bind",
    "//sdk/banjo/fuchsia.hardware.ethernet:fuchsia.hardware.ethernet_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.gpio:fuchsia.hardware.gpio_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.gpioimpl:fuchsia.hardware.gpioimpl_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.iommu:fuchsia.hardware.iommu_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.platform.device:fuchsia.hardware.platform.device_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.scpi:fuchsia.hardware.scpi_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.sdmmc:fuchsia.hardware.sdmmc_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.serial:fuchsia.hardware.serial_banjo_cpp",
    "//sdk/banjo/fuchsia.sysmem:fuchsia.sysmem_banjo_c",
    "//sdk/fidl/fuchsia.hardware.serial:fuchsia.hardware.serial_c",
    "//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_llcpp",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_c",
    "//src/devices/lib/amlogic",
    "//src/devices/lib/broadcom",
    "//src/devices/lib/driver",
    "//src/devices/lib/metadata:llcpp",
    "//src/devices/lib/mmio",
    "//src/lib/ddk",
    "//src/lib/ddk:ddk-metadata-headers",

    # TODO(fxb/38132): Migrate to the new bind rules and delete the below
    "//src/lib/ddk:ddk-deprecated-binding-headers",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":vim2-bind_test" ]
}
