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

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

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

driver_module("astro-thermistor") {
  defines = [ "_ALL_SOURCE" ]
  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [
    "thermistor-channel.cc",
    "thermistor.cc",
  ]
  deps = [
    ":astro-thermistor-bind",
    "//sdk/fidl/fuchsia.hardware.adc:fuchsia.hardware.adc_llcpp",
    "//sdk/fidl/fuchsia.hardware.temperature:fuchsia.hardware.temperature_llcpp",
    "//src/devices/bus/lib/device-protocol-pdev",
    "//src/devices/lib/amlogic",
    "//src/devices/lib/driver",
    "//src/devices/lib/mmio",
    "//src/devices/lib/thermal",
    "//src/lib/ddk",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":astro-thermistor-bind_test",
    "test:test-package",
  ]
}
