| # 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_cc_test", |
| "fuchsia_component_manifest", |
| "fuchsia_driver_bind_bytecode", |
| "fuchsia_driver_component", |
| "fuchsia_package", |
| "fuchsia_structured_config_cpp_elf_lib", |
| "fuchsia_structured_config_values", |
| "fuchsia_unittest_package", |
| ) |
| |
| fuchsia_driver_bind_bytecode( |
| name = "dwc3-bind", |
| output = "dwc3.bindbc", |
| rules = "meta/dwc3.bind", |
| deps = [ |
| "@fuchsia_sdk//bind/fuchsia.clock", |
| "@fuchsia_sdk//bind/fuchsia.designware.platform", |
| "@fuchsia_sdk//bind/fuchsia.devicetree", |
| "@fuchsia_sdk//bind/fuchsia.interconnect", |
| "@fuchsia_sdk//bind/fuchsia.platform", |
| "@fuchsia_sdk//bind/fuchsia.regulator", |
| "@fuchsia_sdk//bind/fuchsia.reset", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.interconnect:fuchsia.hardware.interconnect_bindlib", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.usb.phy:fuchsia.hardware.usb.phy_bindlib", |
| ], |
| ) |
| |
| cc_library( |
| name = "dwc3-common", |
| srcs = [ |
| "dwc3.cc", |
| "dwc3.h", |
| "dwc3-commands.cc", |
| "dwc3-endpoints.cc", |
| "dwc3-ep0.cc", |
| "dwc3-event-fifo.h", |
| "dwc3-events.cc", |
| "dwc3-fifo.h", |
| "dwc3-metrics.cc", |
| "dwc3-metrics.h", |
| "dwc3-regs.h", |
| "dwc3-trb-fifo.h", |
| "dwc3-types.h", |
| ], |
| defines = [ |
| "ZX_ASSERT_LEVEL=2", |
| "_ALL_SOURCE", |
| ], |
| deps = [ |
| ":dwc3-config", |
| "//src/devices/lib/dma-buffer", |
| "//src/devices/usb/lib/usb:descriptors", |
| "//src/devices/usb/lib/usb:usb-fidl", |
| "//src/devices/usb/lib/usb-endpoint:usb-endpoint-server", |
| "//src/lib/ddk:ddk_metadata", |
| "@fuchsia_sdk//bind/fuchsia.designware.platform:fuchsia.designware.platform_cc", |
| "@fuchsia_sdk//bind/fuchsia:fuchsia_cc", |
| "@fuchsia_sdk//fidl/fuchsia.boot.metadata:fuchsia.boot.metadata_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.clock:fuchsia.hardware.clock_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.interconnect:fuchsia.hardware.interconnect_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.platform.device:fuchsia.hardware.platform.device_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.reset:fuchsia.hardware.reset_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.usb.dci:fuchsia.hardware.usb.dci_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.usb.endpoint:fuchsia.hardware.usb.endpoint_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.usb.phy:fuchsia.hardware.usb.phy_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.vreg:fuchsia.hardware.vreg_cpp", |
| "@fuchsia_sdk//fidl/fuchsia.io:fuchsia.io_cpp", |
| "@fuchsia_sdk//pkg/async-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/fit", |
| "@fuchsia_sdk//pkg/hwreg", |
| "@fuchsia_sdk//pkg/inspect", |
| "@fuchsia_sdk//pkg/sync_cpp", |
| ], |
| ) |
| |
| fuchsia_cc_driver( |
| name = "dwc3-driver", |
| output_name = "dwc3", |
| deps = [ |
| ":dwc3-common", |
| "@fuchsia_sdk//pkg/driver_runtime_cpp", |
| ], |
| ) |
| |
| fuchsia_component_manifest( |
| name = "manifest", |
| src = "meta/dwc3.cml", |
| ) |
| |
| fuchsia_structured_config_cpp_elf_lib( |
| name = "dwc3-config", |
| cm_label = ":manifest", |
| ) |
| |
| fuchsia_structured_config_values( |
| name = "dwc3-config-values", |
| cm_label = ":manifest", |
| cvf_output_name = "dwc3-config", |
| values = { |
| "enable_suspend": False, |
| }, |
| ) |
| |
| fuchsia_driver_component( |
| name = "component", |
| bind_bytecode = ":dwc3-bind", |
| driver_lib = ":dwc3-driver", |
| manifest = ":manifest", |
| ) |
| |
| fuchsia_package( |
| name = "dwc3", |
| package_name = "dwc3", |
| components = [":component"], |
| fuchsia_api_level = "HEAD", |
| package_repository_name = "fuchsia.com", |
| resources = [":dwc3-config-values"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Tests |
| fuchsia_cc_test( |
| name = "dwc3-test-bin", |
| srcs = [ |
| "dwc3-test.cc", |
| ], |
| linkstatic = True, |
| deps = [ |
| ":dwc3-common", |
| "@com_google_googletest//:gtest_main", |
| "@fuchsia_sdk//fidl/fuchsia.hardware.interconnect:fuchsia.hardware.interconnect_cpp", |
| "@fuchsia_sdk//pkg/component_outgoing_cpp", |
| "@fuchsia_sdk//pkg/driver_fake_platform_device_cpp", |
| "@fuchsia_sdk//pkg/driver_testing_cpp", |
| "@internal_sdk//pkg/fake-mmio-reg", |
| ], |
| ) |
| |
| fuchsia_cc_test( |
| name = "dwc3-fifo-test-bin", |
| srcs = [ |
| "dwc3-fifo.h", |
| "dwc3-fifo-test.cc", |
| ], |
| linkstatic = True, |
| deps = [ |
| "//src/devices/lib/dma-buffer", |
| "@com_google_googletest//:gtest_main", |
| "@fuchsia_sdk//pkg/driver_fake_bti_cpp", |
| "@fuchsia_sdk//pkg/driver_logging_cpp", |
| ], |
| ) |
| |
| fuchsia_cc_test( |
| name = "dwc3-trb-fifo-test-bin", |
| srcs = [ |
| "dwc3-fifo.h", |
| "dwc3-trb-fifo.h", |
| "dwc3-trb-fifo-test.cc", |
| "dwc3-types.h", |
| ], |
| linkstatic = True, |
| deps = [ |
| "//src/devices/lib/dma-buffer", |
| "@com_google_googletest//:gtest_main", |
| "@fuchsia_sdk//pkg/driver_fake_bti_cpp", |
| "@fuchsia_sdk//pkg/driver_logging_cpp", |
| ], |
| ) |
| |
| fuchsia_unittest_package( |
| name = "dwc3-test-package", |
| package_name = "dwc3-test", |
| fuchsia_api_level = "HEAD", |
| unit_tests = [ |
| ":dwc3-test-bin", |
| ":dwc3-fifo-test-bin", |
| ":dwc3-trb-fifo-test-bin", |
| ], |
| visibility = ["//visibility:public"], |
| ) |