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

driver_module("pl031-rtc") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  configs += [ "//build/unification/config:zircon-migrated" ]

  sources = [ "pl031-rtc.cc" ]
  deps = [
    ":pl031_rtc_bind",
    "//sdk/banjo/fuchsia.hardware.platform.device:fuchsia.hardware.platform.device_banjo_cpp",
    "//sdk/fidl/fuchsia.hardware.rtc:fuchsia.hardware.rtc_llcpp",
    "//src/devices/bus/lib/device-protocol-pdev",
    "//src/devices/lib/driver",
    "//src/devices/lib/mmio",
    "//src/devices/rtc/lib/rtc:rtc_llcpp",
    "//src/lib/ddk",
    "//src/lib/ddktl",
    "//zircon/system/ulib/fidl-utils",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":pl031_rtc_bind_test" ]
}
