mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-31 01:11:21 +01:00
There are STM32 families where all models use only the Synopsys DWC2 USB OTG core while others completely use only the USB Device FS core. For these families then either the driver `drivers/usbdev_synopsys_dwc2` or the driver `cpu/stm32/periph/usbdev` is used depending on the respective family. However, the STM32 families F1 and L4 use both cores. The correct driver must therefore be selected depending on the CPU line or CPU model.
202 lines
7.5 KiB
Plaintext
202 lines
7.5 KiB
Plaintext
# Copyright (c) 2022 Gunar Schorcht
|
|
#
|
|
# This file is subject to the terms and conditions of the GNU Lesser
|
|
# General Public License v2.1. See the file LICENSE in the top level
|
|
# directory for more details.
|
|
#
|
|
|
|
config HAS_TINYUSB_DEVICE
|
|
bool
|
|
help
|
|
Indicates that the hardware supports tinyUSB device stack
|
|
|
|
config HAS_TINYUSB_HOST
|
|
bool
|
|
help
|
|
Indicates that the hardware supports tinyUSB host stack
|
|
|
|
menuconfig PACKAGE_TINYUSB
|
|
bool "TinyUSB stack package"
|
|
depends on HAS_ARCH_32BIT
|
|
depends on HAS_TINYUSB_DEVICE || HAS_TINYUSB_HOST
|
|
select MODULE_PERIPH_USBDEV_CLK
|
|
select MODULE_SEMA
|
|
select MODULE_TINYUSB_COMMON
|
|
select MODULE_TINYUSB_CONTRIB
|
|
select MODULE_TINYUSB_HW
|
|
select MODULE_TINYUSB_PORTABLE_ESPRESSIF if CPU_FAM_ESP32S2 || CPU_FAM_ESP32S3
|
|
# Whole STM32 families F2, F4, F7 and U5 use the Synopsys DWC2 USB OTG core
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if HAS_CPU_STM32F2
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if HAS_CPU_STM32F4
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if HAS_CPU_STM32F7
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if HAS_CPU_STM32U5
|
|
# STM32F105xx and STM32F107xx lines also use the Synopsys DWC2 USB OTG core
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32F105XC
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32F107XC
|
|
# Several lines of STM32L4 family also use the Synopsys DWC2 USB OTG core
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L475XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L476XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L485XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L486XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L496XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4A6XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4P5XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4Q5XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4R5XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4R7XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4R9XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4S5XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4S7XX
|
|
select MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2 if CPU_LINE_STM32L4S9XX
|
|
# Whole STM32 families F0, F3, G0, G4, L0, L1, L5 and WB use the Synopsys DWC2 USB OTG core
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32F0
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32F3
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32G0
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32G4
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32L0
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32L1
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32L5
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if HAS_CPU_STM32WB
|
|
# STM32F102xx and STM32F103xx lines also use USB FS Device core
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32F102X6
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32F102XB
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32F103X6
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32F103XB
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32F103XE
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32F103XG
|
|
# Following STM32L4 lines also use USB FS Device core
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L412XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L422XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L432XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L433XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L442XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L443XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L452XX
|
|
select MODULE_TINYUSB_PORTABLE_STM32_FSDEV if CPU_LINE_STM32L462XX
|
|
#
|
|
select MODULE_TINYUSB_PORTABLE_MICROCHIP if CPU_FAM_SAMD21 || CPU_FAM_SAMR21 \
|
|
|| CPU_COMMON_SAMD5X || CPU_FAM_SAML21 || CPU_FAM_SAMR34 \
|
|
|| CPU_FAM_SAMR30
|
|
select MODULE_TINYUSB_PORTABLE_NRF5X if CPU_FAM_NRF52
|
|
select MODULE_ZTIMER_MSEC
|
|
select PACKAGE_NRFX if CPU_FAM_NRF52
|
|
help
|
|
tinyUSB is an open-source cross-platform USB Host/Device stack for
|
|
embedded systems.
|
|
|
|
if PACKAGE_TINYUSB
|
|
|
|
config MODULE_AUTO_INIT_TINYUSB
|
|
bool "Auto-initialize the tinyUSB package"
|
|
default y
|
|
depends on MODULE_AUTO_INIT
|
|
help
|
|
The tinyUSB stack including the used peripherals are initialized
|
|
automatically at startup. Additionally, the auto-initialization
|
|
starts the tinyUSB thread.
|
|
|
|
config MODULE_TINYUSB_COMMON
|
|
bool
|
|
help
|
|
Common tinyUSB files
|
|
|
|
config MODULE_TINYUSB_CONTRIB
|
|
bool
|
|
help
|
|
RIOT support for tinyUSB
|
|
|
|
config MODULE_TINYUSB_HW
|
|
bool
|
|
help
|
|
tinyUSB hardware driver implementation
|
|
|
|
config MODULE_TINYUSB_DEVICE
|
|
bool "Device Stack"
|
|
depends on HAS_TINYUSB_DEVICE
|
|
help
|
|
Select to enable tinyUSB device stack
|
|
|
|
config MODULE_TINYUSB_HOST
|
|
bool "Host Stack"
|
|
depends on HAS_TINYUSB_HOST
|
|
help
|
|
Select to enable tinyUSB host stack
|
|
|
|
config MODULE_TINYUSB_PORTABLE_ESPRESSIF
|
|
bool
|
|
help
|
|
tinyUSB driver for ESP32Sx is used
|
|
|
|
config MODULE_TINYUSB_PORTABLE_SYNOPSYS_DWC2
|
|
bool
|
|
help
|
|
tinyUSB Sysnopsys DCW2 driver is used
|
|
|
|
config MODULE_TINYUSB_PORTABLE_STM32_FSDEV
|
|
bool
|
|
help
|
|
tinyUSB STM32 FS device driver is used
|
|
|
|
config MODULE_TINYUSB_PORTABLE_MICROCHIP
|
|
bool
|
|
help
|
|
tinyUSB Microchip SAM0 driver is used
|
|
|
|
config MODULE_TINYUSB_PORTABLE_NRF5X
|
|
bool
|
|
help
|
|
tinyUSB nRFx device driver is used
|
|
|
|
menu "Device Classes"
|
|
config MODULE_TINYUSB_CLASS_AUDIO
|
|
bool "Audio Class 2.0 (UAC2)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_BTH
|
|
bool "Bluetooth Host Controller Interface (BTH HCI)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_CDC
|
|
bool "Communication Device Class (CDC)"
|
|
|
|
config MODULE_TINYUSB_CLASS_DFU
|
|
bool "Device Firmware Update (DFU) Runtime"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_DFU_RUNTIME
|
|
bool "Device Firmware Update (DFU)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_HID
|
|
bool "Human Interface Device (HID)"
|
|
|
|
config MODULE_TINYUSB_CLASS_MSC
|
|
bool "Mass Storage Class (MSC)"
|
|
|
|
config MODULE_TINYUSB_CLASS_MIDI
|
|
bool "Musical Instrument Digital Interface (MIDI)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_NET_ECM_RNDIS
|
|
bool "Network with RNDIS, Ethernet Control Model (ECM)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_NET_NCM
|
|
bool "Network with Network Control Model (NCM)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_USBTMC
|
|
bool "Test and Measurement Class (USBTMC)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
config MODULE_TINYUSB_CLASS_VENDOR
|
|
bool "Vendor-specific class support with generic IN & OUT endpoints"
|
|
|
|
config MODULE_TINYUSB_CLASS_VIDEO
|
|
bool "Video class 1.5 (UVC)"
|
|
depends on MODULE_TINYUSB_DEVICE
|
|
|
|
endmenu
|
|
|
|
endif # PACKAGE_TINYUSB
|