# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

load("//rules:matcha.bzl", "OPENTITAN_CPU")

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "pinmux_testutils",
    srcs = ["pinmux_testutils.c"],
    hdrs = ["pinmux_testutils.h"],
    target_compatible_with = [OPENTITAN_CPU],
    deps = [
        "//hw/top_matcha/sw/autogen:top_matcha",
        "//sw/device/lib/arch:device",
        "@lowrisc_opentitan//sw/device/lib/dif:base",
        "@lowrisc_opentitan//sw/device/lib/dif:gpio",
        "@lowrisc_opentitan//sw/device/lib/dif:pinmux",
        "@lowrisc_opentitan//sw/device/lib/runtime:hart",
        "@lowrisc_opentitan//sw/device/lib/testing/test_framework:check",
    ],
)

cc_library(
    name = "clkmgr_testutils",
    srcs = ["clkmgr_testutils.c"],
    hdrs = ["@lowrisc_opentitan//sw/device/lib/testing:clkmgr_testutils.h"],
    target_compatible_with = [OPENTITAN_CPU],
    deps = [
        "//sw/device/lib/dif:clkmgr",
        "@lowrisc_opentitan//sw/device/lib/runtime:ibex",
        "@lowrisc_opentitan//sw/device/lib/testing/test_framework:check",
    ],
)
