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

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

load("@lowrisc_opentitan//rules:opentitan.bzl", "OPENTITAN_CPU")

cc_library(
    name = "util",
    hdrs = [
        "util.h",
    ],
    target_compatible_with = [OPENTITAN_CPU],
)

cc_library(
    name = "tar_header",
    hdrs = [
        "tar.h",
    ],
    target_compatible_with = [OPENTITAN_CPU],
)

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

# TODO(atv): Merge SPI codes under @lowrisc_opentitan//sw/device/lib/testing:spi_device_testutils
# and @lowrisc_opentitan//sw/device/lib/testing:spi_flash_testutils with the SPI codes in matcha.
cc_library(
    name = "spi_flash",
    srcs = [
        "spi_flash.c",
    ],
    hdrs = [
        "spi_flash.h",
    ],
    target_compatible_with = [OPENTITAN_CPU],
    deps = [
        ":eflash",
        ":tar_header",
        "//hw/top_matcha/sw/autogen:top_matcha",
        "//sw/device/lib/arch:device",
        "@lowrisc_opentitan//sw/device/lib/dif:spi_host",
        "@lowrisc_opentitan//sw/device/lib/testing/test_framework:check",
    ],
)

cc_library(
    name = "eflash",
    srcs = [
        "eflash.c",
    ],
    hdrs = [
        "eflash.h",
    ],
    target_compatible_with = [OPENTITAN_CPU],
    deps = [
        "//hw/top_matcha/sw/autogen:top_matcha",
        "@lowrisc_opentitan//sw/device/lib/dif:flash_ctrl",
        "@lowrisc_opentitan//sw/device/lib/testing:flash_ctrl_testutils",
        "@lowrisc_opentitan//sw/device/silicon_creator/lib/drivers:flash_ctrl",
    ],
)

cc_library(
    name = "camera_hm01b0",
    srcs = [
        "camera_hm01b0.c",
    ],
    hdrs = [
        "camera_hm01b0.h",
        "camera_hm01b0_regs.h",
    ],
    target_compatible_with = [OPENTITAN_CPU],
    deps = [
        "//hw/top_matcha/sw/autogen:top_matcha",
        "//sw/device/lib/dif:rv_plic_smc",
        "@lowrisc_opentitan//sw/device/lib/dif:i2c",
        "@lowrisc_opentitan//sw/device/lib/testing/test_framework:check",
    ],
)
