1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2026-01-01 01:41:18 +01:00
RIOT/pkg/tinyusb/Makefile.dep
2022-09-30 19:05:51 +02:00

78 lines
2.4 KiB
Makefile

# Package tinyUSB has its own USB device driver. Therefore, it cannot be used
# together with periph/usbdev for now.
ifneq (,$(filter periph_usbdev,$(USEMODULE)))
$(error "Package tinyUSB is not yet compatible with periph/usdev")
endif
# tinyUSB muteces use priority inheritance
# USEMODULE += core_mutex_priority_inheritance
# tinyUSB modules always needed
USEMODULE += tinyusb_common
USEMODULE += tinyusb_contrib
USEMODULE += tinyusb_hw
ifeq (,$(filter tinyusb_class_%,$(USEMODULE)))
$(error At least one tinyusb_class_* module has to be enabled)
endif
# tinyUSB device stack has to be supported if tinyusb_device is used
ifneq (,$(filter tinyusb_device,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
# tinyUSB host stack has to be supported if tinyusb_host is used
ifneq (,$(filter tinyusb_host,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_host
endif
# Following device classes work only with tinyUSB device stack
ifneq (,$(filter tinyusb_class_audio,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_bth,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_dfu,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_dfu_runtime,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_midi,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_net_ecm_rndis,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_net_ncm,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_usbtmc,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
ifneq (,$(filter tinyusb_class_video,$(USEMODULE)))
FEATURES_REQUIRED += tinyusb_device
endif
# tinyUSB hardware driver selection
ifneq (,$(filter esp32s2 esp32s3,$(CPU_FAM)))
USEMODULE += tinyusb_portable_espressif
else ifeq (stm32,$(CPU))
ifneq (,$(filter f2 f4 f7 h7 l4,$(CPU_FAM)))
USEMODULE += tinyusb_portable_synopsys_dwc2
else ifneq (,$(filter f0 f1 g4 l0 wb,$(CPU_FAM)))
# TODO not yet working, the driver has to be ported
USEMODULE += tinyusb_portable_stm32_fsdev
else
$(error STM32 family not supported)
endif
else
$(error CPU $(CPU) or CPU family $(CPU_FAM) not supported)
endif
# other module dependencies
USEMODULE += periph_usbdev_clk
USEMODULE += sema
USEMODULE += ztimer_msec