ifeq (esp32,$(CPU_FAM)) CPU_ARCH = xtensa CPU_CORE = xtensa-lx6 else ifeq (esp32c3,$(CPU_FAM)) CPU_ARCH = rv32 CPU_CORE = rv32imc else ifeq (esp32c6,$(CPU_FAM)) CPU_ARCH = rv32 CPU_CORE = rv32imac else ifeq (esp32h2,$(CPU_FAM)) CPU_ARCH = rv32 CPU_CORE = rv32imac else ifneq (,$(filter esp32s2 esp32s3,$(CPU_FAM))) CPU_ARCH = xtensa CPU_CORE = xtensa-lx7 else $(error Unknown ESP32x SoC variant (family): $(CPU_FAM)) endif # MCU defined features that are provided independent on board definitions include $(RIOTCPU)/esp_common/Makefile.features FEATURES_PROVIDED += arch_esp32 FEATURES_PROVIDED += esp_rmt FEATURES_PROVIDED += periph_flashpage FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise FEATURES_PROVIDED += periph_gpio_ll FEATURES_PROVIDED += periph_gpio_ll_disconnect FEATURES_PROVIDED += periph_gpio_ll_input_pull_down FEATURES_PROVIDED += periph_gpio_ll_input_pull_up FEATURES_PROVIDED += periph_gpio_ll_irq FEATURES_PROVIDED += periph_gpio_ll_irq_edge_triggered_both FEATURES_PROVIDED += periph_gpio_ll_irq_level_triggered_high FEATURES_PROVIDED += periph_gpio_ll_irq_level_triggered_low FEATURES_PROVIDED += periph_gpio_ll_open_drain FEATURES_PROVIDED += periph_gpio_ll_open_drain_pull_up FEATURES_PROVIDED += periph_spi_reconfigure FEATURES_PROVIDED += puf_sram ifeq (xtensa,$(CPU_ARCH)) FEATURES_PROVIDED += esp_hw_counter endif ifneq (esp32h2,$(CPU_FAM)) # ESP32-H2 doesn't have a WiFi module FEATURES_PROVIDED += esp_wifi_enterprise endif ifneq (,$(filter esp32 esp32c3 esp32c6 esp32h2 esp32s3,$(CPU_FAM))) FEATURES_PROVIDED += ble_nimble FEATURES_PROVIDED += ble_nimble_netif FEATURES_PROVIDED += esp_ble ifneq (esp32,$(CPU_FAM)) FEATURES_PROVIDED += ble_adv_ext FEATURES_PROVIDED += ble_phy_2mbit endif endif ifneq (,$(filter esp32 esp32s3,$(CPU_FAM))) FEATURES_PROVIDED += periph_sdmmc_auto_clk FEATURES_PROVIDED += periph_sdmmc_auto_cmd12 FEATURES_PROVIDED += periph_sdmmc_mmc ifeq (esp32s3,$(CPU_FAM)) FEATURES_PROVIDED += periph_sdmmc_hs endif endif ifneq (,$(filter esp32c6 esp32h2,$(CPU_FAM))) FEATURES_PROVIDED += esp_ieee802154 endif ifneq (,$(filter esp32-wrover% esp32s2%r2 esp32s3%r2 esp32s3%r8 esp32s3%r8v,$(CPU_MODEL))) FEATURES_PROVIDED += esp_spi_ram ifneq (,$(filter esp32s3%r8 esp32s3%r8v,$(CPU_MODEL))) FEATURES_PROVIDED += esp_spi_oct endif endif