# 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("pci-sdhci-bind") {
  rules = "pci-sdhci.bind"
  output = "pci-sdhci-bind.h"
  tests = "pci-sdhci-bind-test.json"
  deps = [ "//src/devices/bind/fuchsia.pci" ]
}

driver_module("pci-sdhci") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [ "pci-sdhci.c" ]
  deps = [
    ":pci-sdhci-bind",
    "//sdk/banjo/fuchsia.hardware.block",
    "//sdk/banjo/fuchsia.hardware.pci",
    "//sdk/banjo/fuchsia.hardware.sdhci",
    "//src/devices/lib/driver",
    "//src/devices/pci/lib/device-protocol-pci",
    "//src/lib/ddk",
    "//zircon/public/lib/sync",
  ]
}

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