blob: 5c171dac4f13351cc4e432e0fc5941aca91db7ee [file]
# Copyright 2024 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.
load(
"@rules_fuchsia//fuchsia:defs.bzl",
"fuchsia_cc_driver",
"fuchsia_component_manifest",
"fuchsia_driver_bind_bytecode",
"fuchsia_driver_component",
"fuchsia_package",
"fuchsia_prebuilt_package",
"fuchsia_structured_config_cpp_elf_lib",
"fuchsia_structured_config_values",
)
fuchsia_driver_bind_bytecode(
name = "aml-sdmmc-bind",
output = "aml-sdmmc.bindbc",
rules = "meta/aml-sdmmc.bind",
deps = [
"@fuchsia_sdk//bind/fuchsia.amlogic.platform",
"@fuchsia_sdk//bind/fuchsia.devicetree",
"@fuchsia_sdk//bind/fuchsia.gpio",
"@fuchsia_sdk//bind/fuchsia.platform",
"@fuchsia_sdk//bind/fuchsia.power",
"@fuchsia_sdk//bind/fuchsia.pwm",
"@fuchsia_sdk//bind/fuchsia.register",
"@fuchsia_sdk//fidl/fuchsia.hardware.clock:fuchsia.hardware.clock_bindlib",
"@fuchsia_sdk//fidl/fuchsia.hardware.gpio:fuchsia.hardware.gpio_bindlib",
],
)
fuchsia_cc_driver(
name = "aml-sdmmc-driver",
srcs = [
"aml-sdmmc.cc",
"aml-sdmmc.h",
"aml-sdmmc-export.cc",
"aml-sdmmc-regs.h",
],
defines = [
"_ALL_SOURCE",
"_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1",
],
features = ["enable_zircon_asserts"],
output_name = "aml-sdmmc",
deps = [
":aml-sdmmc-config",
"//sdk/lib/driver/compat/cpp",
"//src/devices/block/lib/sdio",
"//src/devices/block/lib/sdmmc",
"//src/devices/lib/amlogic",
"//src/devices/lib/dma-buffer",
"//src/lib/ddk:ddk_metadata",
"//src/lib/vmo_store",
"//zircon/system/ulib/ddk-platform-defs",
"@fuchsia_sdk//fidl/fuchsia.hardware.clock:fuchsia.hardware.clock_cpp",
"@fuchsia_sdk//fidl/fuchsia.hardware.gpio:fuchsia.hardware.gpio_cpp",
"@fuchsia_sdk//fidl/fuchsia.hardware.platform.device:fuchsia.hardware.platform.device_cpp",
"@fuchsia_sdk//fidl/fuchsia.hardware.power:fuchsia.hardware.power_cpp",
"@fuchsia_sdk//fidl/fuchsia.hardware.sdmmc:fuchsia.hardware.sdmmc_cpp",
"@fuchsia_sdk//fidl/fuchsia.power.broker:fuchsia.power.broker_cpp",
"@fuchsia_sdk//pkg/driver_component_cpp",
"@fuchsia_sdk//pkg/driver_logging_cpp",
"@fuchsia_sdk//pkg/driver_metadata_cpp",
"@fuchsia_sdk//pkg/driver_mmio_cpp",
"@fuchsia_sdk//pkg/driver_platform_device_cpp",
"@fuchsia_sdk//pkg/driver_power_cpp",
"@fuchsia_sdk//pkg/driver_runtime_cpp",
"@fuchsia_sdk//pkg/fit",
"@fuchsia_sdk//pkg/hwreg",
"@fuchsia_sdk//pkg/inspect",
"@fuchsia_sdk//pkg/sync",
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/zx",
],
)
fuchsia_component_manifest(
name = "manifest",
src = "meta/aml-sdmmc.cml",
)
fuchsia_driver_component(
name = "component",
bind_bytecode = ":aml-sdmmc-bind",
driver_lib = ":aml-sdmmc-driver",
manifest = ":manifest",
)
fuchsia_structured_config_cpp_elf_lib(
name = "aml-sdmmc-config",
cm_label = ":manifest",
)
fuchsia_structured_config_values(
name = "sc-values",
cm_label = ":manifest",
values = {
"enable_suspend": False,
},
)
fuchsia_package(
name = "aml-sdmmc-no-banjo",
package_name = "aml-sdmmc",
components = [":component"],
fuchsia_api_level = "HEAD",
package_repository_name = "fuchsia.com",
resources = [":sc-values"],
visibility = ["//visibility:public"],
)
fuchsia_prebuilt_package(
name = "aml-sdmmc",
archive = "@gn_targets//src/devices/block/drivers/aml-sdmmc:package",
drivers = [
"meta/aml-sdmmc.cm",
],
visibility = ["//visibility:public"],
)