// This JSON5 file contains a list of all the drivers used in Mbed. // There are three types of drivers: // Peripherals - Drives a peripheral present on this target MCU and supported by Mbed CE. // Peripheral drivers have names starting with DEVICE. // Feature - A larger Mbed OS optional feature supported for this target. // Component - A driver for an external component present on a given board. This is commonly // used to set up a given eval board as having flash support, etc. // Each feature is defined here before it can be used in targets.json5. // The contents of this file are not used during the build, but are used // when generating documentation. { "Component": { // WiFI and WiFi/BT modules ----------------------------------------------------------- "COMPONENT_43012": { "description": "Infineon/Cypress AIROC Wifi 802.11n (2.4GHz and 5GHz) + BT 5.4 module", "friendly_name": "Infineon CYW43012" }, "COMPONENT_43438": { "description": "Infineon/Cypress AIROC Wifi 802.11n (2.4GHz) + BT 5.3 module", "friendly_name": "Infineon CYW43438" }, "COMPONENT_4343W": { "description": "Infineon/Cypress AIROC Wifi 802.11n (2.4GHz) + BT 5.3 module", "friendly_name": "Infineon CYW4343W" }, "COMPONENT_4343W_FS": { "description": "Infineon/Cypress AIROC Wifi 802.11n (2.4GHz) + BT 5.3 module", "friendly_name": "Infineon CYW4343W (Arduino Portenta variant)" }, "COMPONENT_CYW43XXX": { "description": "Generic component for Infineon/Cypress AIROC Wifi modules. Add one of the specific part number components to get configs + firmware for your device.", "friendly_name": "Infineon CYW43XXX" }, "COMPONENT_WHD": { "description": "Generic component for the driver for Infineon/Cypress wifi modules. Works in combination with other components.", "friendly_name": "Infineon Wifi Host Driver" }, // Annoyingly, STMicro wrote the driver for this module (since it is used on // some of their dev boards), and they licensed it under terms that the // code may only run on STM32 chips. So, this component is only available when // an STMicro processor is in use. "COMPONENT_EMW3080B": { "description": "Wifi 802.11b/g/n module (driver available for STM32 targets only)", "friendly_name": "MXChip EMW3080B" }, "COMPONENT_ESPRESSIF_ESP8266": { "description": "Wifi 802.11b/g/n MCU running ESP8266-IDF-AT AT command firmware", "friendly_name": "Espressif ESP8366" }, // Bluetooth only modules ----------------------------------------------------------- "COMPONENT_BlueNRG_2": { "description": "STMicro BlueNRG-2", "friendly_name": "STMicro BlueNRG-2" }, "COMPONENT_BlueNRG_MS": { "description": "Bluetooth 4.2 module", "friendly_name": "STMicro BlueNRG-MS" }, // Cellular and Cellular/GNSS modules ---------------------------------------------- "COMPONENT_ALTAIR_ALT1250": { "description": "Cellular module from Altair", "friendly_name": "Altair ALT1250" }, "COMPONENT_STMOD_CELLULAR": { "description": "STMicro cellular module boards (Quectel UG96 and BG96, selectable via json option)", "friendly_name": "STMod Cellular Modules" }, "COMPONENT_GEMALTO_CINTERION": { "description": "Gemalto Cinterion family of cellular modules (ELS61, BGS2, EMS31, and EHS5-E are supported)", "friendly_name": "Gemalto Cinterion" }, "COMPONENT_GENERIC_AT3GPP": { "description": "Generic cellular module supporting 3GPP AT command set", "friendly_name": "Generic 3GPP Cellular" }, "COMPONENT_MULTITECH_DRAGONFLY_NANO_CELLULAR": { "description": "Cellular module from this Multitech board. I have been unable to figure out its exact part number from the available docs...", "friendly_name": "Multitech Dragonfly Nano Cellular" }, "COMPONENT_RIOTMICRO_RM1000": { "description": "LTE + Narrowband Internet of Things (NB-IoT) cellular module", "friendly_name": "Riot Micro RM1000" }, "COMPONENT_TELIT_HE910": { "description": "3G module", "friendly_name": "Telit HE910" }, "COMPONENT_TELIT_ME310": { "description": "LTE + GSM + GNSS module", "friendly_name": "Telit ME310" }, "COMPONENT_TELIT_ME910": { "description": "LTE + GSM + GNSS module", "friendly_name": "Telit ME910" }, // 802.15.4 modules ----------------------------------------------------------------- "COMPONENT_MICROCHIP_AT86RF": { "description": "AT86RF233 and AT86RF212B 802.15.4 modules", "friendly_name": "Microchip/Atmel AT86RF" }, "COMPONENT_NXP_MCR20A": { "description": "802.15.4 module", "friendly_name": "NXP/Freescale MCR20A" }, "COMPONENT_STM_S2_LP": { "description": "802.15.4 module, present on X-Nucleo-S2868A1 board", "friendly_name": "STMicro S2-LP" }, // LoRa modules --------------------------------------------------------------------- "COMPONENT_SX126x": { "description": "LoRa Connect™ 150-960MHz Transceivers", "friendly_name": "Semtech SX126x" }, "COMPONENT_SX1272": { "description": "LoRa Connect™ 860-1000MHz Transceiver", "friendly_name": "Semtech SX1272" }, "COMPONENT_SX1276": { "description": "LoRa Connect™ 137-1020MHz Transceiver", "friendly_name": "Semtech SX1276" }, // NFC modules ---------------------------------------------------------------------- "COMPONENT_NXP_PN512": { "friendly_name": "NXP P512", "description": "NFC reader/writer/card" }, "COMPONENT_STM_M24SR": { "friendly_name": "STMicro M24SR64-Y", "description": "NFC tag" }, // Memory devices ------------------------------------------------------------------- "COMPONENT_DATAFLASH": { "friendly_name": "Generic DataFlash Memory", "description": "Component for boards with an SPI flash supporting the Atmel DataFlash interface" }, "COMPONENT_I2CEE": { "friendly_name": "Generic I2C EEPROM", "description": "Component for boards with an I2C EEPROM supporting the 24LC/AT24C interface convention" }, "COMPONENT_SPIF": { "friendly_name": "SFDP SPI Flash", "description": "Component for generic SPI flashes supporting the SFDP standard" }, "COMPONENT_QSPIF": { "friendly_name": "SFDP QuadSPI Flash", "description": "Component for generic QuadSPI flashes supporting the SFDP standard" }, "COMPONENT_OSPIF": { "friendly_name": "SFDP Octal SPI Flash", "description": "Component for generic Octal SPI flashes supporting the SFDP standard" }, "COMPONENT_SD": { "friendly_name": "SD/SDHC Card", "description": "Component for SD card support via the SPI bus." }, // Other ---------------------------------------------------------------------------- "COMPONENT_CM0P_SECURE": { "description": "Used on Cypress PSoC 64 dual core processors with secure boot. When enabled, activates the Cortex-M0 coprocessor as a security coprocessor.", "friendly_name": "PSoC CM0 in Security Mode" }, "COMPONENT_CM0P_SLEEP": { "description": "Used on Cypress PSoC6 dual core processors. When enabled, this activates the Cortex-M0 coprocessor in sleep mode.", "friendly_name": "PSoC CM0 in Sleep Mode" }, "COMPONENT_LOCALFILESYSTEM": { "description": "Mbed interface chip on the board can store a local filesystem and make it available on the USB drive", "friendly_name": "LocalFileSystem" }, "COMPONENT_SCL": { "description": "Wi-Fi Cortex-M0 coprocessor present on Infineon/Cypress CYSBSYS-RP01", "friendly_name": "Infineon Wi-Fi Coprocessor" }, "COMPONENT_SMSC9220": { "description": "Parallel bus-connected Ethernet MAC/PHY", "friendly_name": "Microchip LAN9220" }, "COMPONENT_TFM_S_FW": { "description": "Component for devices with a separate firmware image that must be merged for the TFM Secure processor.", "friendly_name": "TFM Secure Firmware" }, "COMPONENT_hm01b0": { "description": "320x320 monochrome camera module", "friendly_name": "Himax HM01B0" }, "COMPONENT_lis2dh12": { "description": "Low power 3-axis accelerometer", "friendly_name": "STMicro LIS2DH12" } }, "Feature": { "FEATURE_BLE": { "description": "This feature enables Mbed's BLE stack.", "friendly_name": "Bluetooth Low Energy" }, "FEATURE_CRYPTOCELL310": { "description": "Embedded security peripheral providing TRNG and H/W accelerated encryption algorithms.", "friendly_name": "Arm CryptoCell 310" }, "FEATURE_EXPERIMENTAL_API": { "description": "Feature flag to enable Mbed OS experimental API features, including driver virtual base classes and PSA.", "friendly_name": "Experimental API" }, "FEATURE_PSA": { "description": "Feature representing support for the Arm PSA Root of Trust peripheral. This provides a secure storage environment, cryptography acceleration, secure boot and updates, and more.", "friendly_name": "Arm Platform Security Architecture (PSA)" }, "FEATURE_STORAGE": { "description": "", "friendly_name": "" } }, "Peripheral": { "DEVICE_802_15_4_PHY": { "description": "802.15.4 radio driver, used to implement mesh networking (Wi-SUN, Thread, LoWPAN)", "friendly_name": "802.15.4 Radio" }, // Mystery ARM feature, used only on ARM FPGA reference designs "DEVICE_AACI": { "description": "", "friendly_name": "", "hidden_from_docs": true }, "DEVICE_ANALOGIN": { "description": "Analog input (ADC) peripheral driver", "friendly_name": "Analog Inputs" }, "DEVICE_ANALOGOUT": { "description": "Analog output (DAC) peripheral driver", "friendly_name": "Analog Outputs" }, "DEVICE_CAN": { "description": "Controller Area Network (CAN) peripheral driver", "friendly_name": "CAN" }, // mystery ARM feature, used only on reference designs (SPI related?) "DEVICE_CLCD": { "description": "", "friendly_name": "ARM CLCD", "hidden_from_docs": true }, "DEVICE_CRC": { "description": "Driver for CRC Accelerator peripheral, used to accelerate certain CRC computations.", "friendly_name": "Hardware CRC" }, "DEVICE_DEBUG_AWARENESS": { "description": "Target supports awareness of whether semihost is attached", "friendly_name": "Semihost Debug Aware" }, "DEVICE_EMAC": { "description": "Ethernet MAC peripheral driver. Combine the MAC with a PHY chip to connect to Ethernet networks.", "friendly_name": "Ethernet MAC" }, "DEVICE_FLASH": { "description": "Driver allowing In-Application Programming (IAP) of the MCU flash memory.", "friendly_name": "Flash IAP" }, "DEVICE_I2C": { "description": "I2C driver for synchronous (blocking) controller/master mode", "friendly_name": "I2C Controller/Master" }, "DEVICE_I2CSLAVE": { "description": "I2C for interrupt-based peripheral/slave mode", "friendly_name": "I2C Peripheral/Slave" }, "DEVICE_I2C_ASYNCH": { "description": "Driver allowing I2C controller mode to be used in the background via interrupts and/or DMA.", "friendly_name": "Async I2C Controller/Master" }, "DEVICE_INTERRUPTIN": { "description": "GPIO input pin interrupt support", "friendly_name": "GPIO Interrupts" }, "DEVICE_ITM": { "description": "Driver for for ARM Instrumentation Trace Macrocell (ITM). Basically a fast serial port designed for application logging and tracing that runs over the SWO pin.", "friendly_name": "ITM" }, "DEVICE_LPTICKER": { "description": "Also known as the Low-Power Ticker, this peripheral keeps time at a low-frequency clock (usually 32kHz) and generates events for the application. Usually it is used to implement low power sleep.", "friendly_name": "Low-Precision Ticker" }, "DEVICE_MPU": { "description": "Mbed supports configuring the MPU on this device to disable writing to ROM and executing from RAM.", "friendly_name": "Memory Protection Unit" }, "DEVICE_OSPI": { "description": "Octal SPI peripheral driver, usually used to communicate with flash memory chips. OSPI uses 8 bidirectional data lines and one clock line, plus optionally a CS line and a DQS line.", "friendly_name": "Octal SPI" }, "DEVICE_PORTIN": { "description": "Driver for reading from an entire GPIO port at a time", "friendly_name": "GPIO Port Input" }, "DEVICE_PORTINOUT": { "description": "Driver for using an entire GPIO port as a bidirectional I/O port.", "friendly_name": "GPIO Port I/O" }, "DEVICE_PORTOUT": { "description": "Driver for writing to an entire GPIO port at a time", "friendly_name": "GPIO Port Output" }, "DEVICE_PWMOUT": { "description": "Pulse Width Modulation (PWM) generator peripheral driver", "friendly_name": "PWM Out" }, "DEVICE_QSPI": { "description": "Quad SPI peripheral, usually used to communicate with flash memory chips. Has 4 bidirectional data lines and one clock line, plus optionally a CS line.", "friendly_name": "Quad SPI" }, "DEVICE_RESET_REASON": { "description": "Support for determining the cause of the most recent MCU reset.", "friendly_name": "Reset Reason" }, "DEVICE_RTC": { "description": "Real-Time Clock. Clock which keeps track of real world time, usually using a low frequency, accurate clock.", "friendly_name": "RTC" }, "DEVICE_SERIAL": { "description": "Support for buffered and unbuffered serial (UART) ports", "friendly_name": "Serial (UART)" }, // Based on git history, it looks like DEVICE_SERIAL_ASYNC was added first, // before BufferedSerial existed. Unlike BufferedSerial, it requires // that you use different API functions than standard serial read and write. // In the current Mbed version, the functionality only exists in SerialBase, so // you would have to extend SerialBase yourself to even access it. // Unfortunately, this API supports DMA but BufferedSerial does not... oops. "DEVICE_SERIAL_ASYNCH": { "description": "Legacy asynchronous serial API via SerialBase", "friendly_name": "Legacy Async Serial (UART)" }, "DEVICE_SERIAL_FC": { "description": "Serial (UART) peripheral supports using RTS and/or CTS pins for hardware flow control.", "friendly_name": "Serial RTS/CTS Flow Control" }, "DEVICE_SLEEP": { "description": "Support for sending the processor to sleep when no threads/ISRs are executing.", "friendly_name": "Sleep" }, "DEVICE_SPI": { "description": "Serial Peripheral Interface (SPI) controller/master mode", "friendly_name": "SPI Controller/Master" }, "DEVICE_SPISLAVE": { "description": "Serial Peripheral Interface (SPI) device/slave mode", "friendly_name": "SPI Peripheral/Slave" }, // Only used for testing, hide for now "DEVICE_SPI_32BIT_WORDS": { "description": "", "friendly_name": "SPI supports 32 Bit Words", "hidden_from_docs": true }, "DEVICE_SPI_ASYNCH": { "description": "Allows use of SPI controller mode in the background via interrupts and/or DMA.", "friendly_name": "Async SPI" }, "DEVICE_TRNG": { "description": "Cryptographic-grade True Random Number Generator (TRNG). This is required to implement SSL communications securely unless you provision devices with an entropy seed stored in nonvolatile storage.", "friendly_name": "True Random Number Generator" }, // Mystery ARM feature, used only on ARM FPGA reference designs "DEVICE_TSC": { "description": "", "friendly_name": "", "hidden_from_docs": true }, "DEVICE_USBDEVICE": { "description": "USB Device peripheral. Allows the Mbed target to act as a USB device when connected to a host computer.", "friendly_name": "USB Device" }, "DEVICE_USTICKER": { "description": "Clock peripheral with at least microsecond resolution that Mbed uses to implement Timer and Ticker.", "friendly_name": "μs Ticker" }, "DEVICE_WATCHDOG": { "description": "Peripheral which resets the chip if software doesn't service it within a configurable amount of time. Used to guard against software hangs.", "friendly_name": "Watchdog" } } }