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

source_set("common") {
  configs += [ "//build/config:all_source" ]
  sources = [ "nand.cc" ]
  deps = [
    ":nand-bind",
    "//sdk/banjo/ddk.protocol.nand",
    "//sdk/banjo/ddk.protocol.platform.device",
    "//sdk/banjo/ddk.protocol.rawnand",
    "//sdk/fidl/fuchsia.hardware.nand:fuchsia.hardware.nand_c",
    "//src/devices/lib/dev-operation",
    "//src/lib/ddk",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zircon-internal",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/fzl",
  ]
}

driver_module("nand") {
  deps = [
    ":common",
    "//src/devices/lib/driver",
  ]
}

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