2021-09-23 08:31:49 -04:00
|
|
|
/*
|
2022-01-11 22:30:29 -05:00
|
|
|
* SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
|
2021-09-23 08:31:49 -04:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
// The long term plan is to have a single soc_caps.h for all peripherals.
|
2020-06-18 05:13:19 -04:00
|
|
|
// During the refactoring and multichip support development process, we
|
2020-09-09 22:37:58 -04:00
|
|
|
// separate these information into periph_caps.h for each peripheral and
|
|
|
|
// include them here to avoid developing conflicts.
|
2020-06-18 05:13:19 -04:00
|
|
|
|
2021-11-05 05:23:24 -04:00
|
|
|
/*
|
|
|
|
* These defines are parsed and imported as kconfig variables via the script
|
|
|
|
* `tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py`
|
|
|
|
*
|
|
|
|
* If this file is changed the script will automatically run the script
|
|
|
|
* and generate the kconfig variables as part of the pre-commit hooks.
|
|
|
|
*
|
|
|
|
* It can also be ran manually with `./tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py 'components/soc/esp32s3/include/soc/'`
|
|
|
|
*
|
|
|
|
* For more information see `tools/gen_soc_caps_kconfig/README.md`
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2020-06-18 05:13:19 -04:00
|
|
|
#pragma once
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- COMMON CAPS ---------------------------------------*/
|
2021-12-15 01:15:32 -05:00
|
|
|
#define SOC_ADC_SUPPORTED 1
|
2020-11-19 04:03:10 -05:00
|
|
|
#define SOC_PCNT_SUPPORTED 1
|
2021-11-09 04:11:01 -05:00
|
|
|
#define SOC_WIFI_SUPPORTED 1
|
2020-11-19 04:03:10 -05:00
|
|
|
#define SOC_TWAI_SUPPORTED 1
|
|
|
|
#define SOC_GDMA_SUPPORTED 1
|
2021-05-11 23:26:07 -04:00
|
|
|
#define SOC_LCDCAM_SUPPORTED 1
|
2021-01-07 04:34:59 -05:00
|
|
|
#define SOC_MCPWM_SUPPORTED 1
|
2020-11-19 04:03:10 -05:00
|
|
|
#define SOC_DEDICATED_GPIO_SUPPORTED 1
|
|
|
|
#define SOC_CPU_CORES_NUM 2
|
2020-11-25 23:39:49 -05:00
|
|
|
#define SOC_CACHE_SUPPORT_WRAP 1
|
|
|
|
#define SOC_ULP_SUPPORTED 1
|
2021-12-23 01:12:47 -05:00
|
|
|
#define SOC_RISCV_COPROC_SUPPORTED 1
|
2021-10-25 08:15:13 -04:00
|
|
|
#define SOC_BT_SUPPORTED 1
|
2021-12-06 04:38:11 -05:00
|
|
|
#define SOC_BLUEDROID_SUPPORTED 1
|
2021-06-30 04:04:37 -04:00
|
|
|
#define SOC_USB_OTG_SUPPORTED 1
|
2021-08-19 08:28:28 -04:00
|
|
|
#define SOC_USB_SERIAL_JTAG_SUPPORTED 1
|
2020-12-03 22:35:21 -05:00
|
|
|
#define SOC_CCOMP_TIMER_SUPPORTED 1
|
2021-03-12 02:20:41 -05:00
|
|
|
#define SOC_ASYNC_MEMCPY_SUPPORTED 1
|
2021-08-11 09:09:53 -04:00
|
|
|
#define SOC_SUPPORTS_SECURE_DL_MODE 1
|
2021-12-02 12:48:47 -05:00
|
|
|
#define SOC_EFUSE_KEY_PURPOSE_FIELD 1
|
2021-10-21 06:09:37 -04:00
|
|
|
#define SOC_SDMMC_HOST_SUPPORTED 1
|
2021-11-06 05:25:49 -04:00
|
|
|
#define SOC_RTC_FAST_MEM_SUPPORTED 1
|
|
|
|
#define SOC_RTC_SLOW_MEM_SUPPORTED 1
|
2021-10-21 06:09:37 -04:00
|
|
|
#define SOC_PSRAM_DMA_CAPABLE 1
|
|
|
|
#define SOC_XT_WDT_SUPPORTED 1
|
2021-11-26 04:03:47 -05:00
|
|
|
#define SOC_I2S_SUPPORTED 1
|
|
|
|
#define SOC_RMT_SUPPORTED 1
|
|
|
|
#define SOC_SIGMADELTA_SUPPORTED 1
|
2021-07-28 23:20:52 -04:00
|
|
|
#define SOC_SUPPORT_COEXISTENCE 1
|
2022-03-04 05:02:38 -05:00
|
|
|
#define SOC_TEMP_SENSOR_SUPPORTED 1
|
2022-03-17 05:32:14 -04:00
|
|
|
#define SOC_AES_SUPPORTED 1
|
|
|
|
#define SOC_MPI_SUPPORTED 1
|
|
|
|
#define SOC_SHA_SUPPORTED 1
|
|
|
|
#define SOC_HMAC_SUPPORTED 1
|
|
|
|
#define SOC_DIG_SIGN_SUPPORTED 1
|
2022-03-31 08:13:50 -04:00
|
|
|
#define SOC_FLASH_ENC_SUPPORTED 1
|
|
|
|
#define SOC_SECURE_BOOT_SUPPORTED 1
|
2022-03-17 05:32:14 -04:00
|
|
|
|
2021-08-29 23:30:12 -04:00
|
|
|
|
2021-06-30 08:33:07 -04:00
|
|
|
/*-------------------------- SOC CAPS ----------------------------------------*/
|
|
|
|
#define SOC_APPCPU_HAS_CLOCK_GATING_BUG (1)
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- ADC CAPS ----------------------------------------*/
|
2021-09-06 23:21:35 -04:00
|
|
|
/*!< SAR ADC Module*/
|
|
|
|
#define SOC_ADC_RTC_CTRL_SUPPORTED 1
|
2021-12-15 01:15:32 -05:00
|
|
|
#define SOC_ADC_DIG_CTRL_SUPPORTED 1
|
2021-09-06 23:21:35 -04:00
|
|
|
#define SOC_ADC_ARBITER_SUPPORTED 1
|
|
|
|
#define SOC_ADC_FILTER_SUPPORTED 1
|
|
|
|
#define SOC_ADC_MONITOR_SUPPORTED 1
|
|
|
|
#define SOC_ADC_PERIPH_NUM (2)
|
|
|
|
#define SOC_ADC_CHANNEL_NUM(PERIPH_NUM) (10)
|
|
|
|
#define SOC_ADC_MAX_CHANNEL_NUM (10)
|
2022-03-24 05:45:58 -04:00
|
|
|
#define SOC_ADC_ATTEN_NUM (4)
|
2021-09-06 23:21:35 -04:00
|
|
|
|
|
|
|
/*!< Digital */
|
|
|
|
#define SOC_ADC_DIGI_CONTROLLER_NUM (2)
|
|
|
|
#define SOC_ADC_PATT_LEN_MAX (24) //Two pattern table, each contains 12 items. Each item takes 1 byte
|
|
|
|
#define SOC_ADC_DIGI_MAX_BITWIDTH (13)
|
|
|
|
/*!< F_sample = F_digi_con / 2 / interval. F_digi_con = 5M for now. 30 <= interva <= 4095 */
|
|
|
|
#define SOC_ADC_SAMPLE_FREQ_THRES_HIGH 83333
|
|
|
|
#define SOC_ADC_SAMPLE_FREQ_THRES_LOW 611
|
|
|
|
|
|
|
|
/*!< RTC */
|
2022-03-24 05:45:58 -04:00
|
|
|
#define SOC_ADC_RTC_MIN_BITWIDTH (12)
|
|
|
|
#define SOC_ADC_RTC_MAX_BITWIDTH (12)
|
pm: fixed RTC8M domain power issues
introduced in e44ead535640525969c7e85892f38ca349d5ddf4
1. The int8M power domain config by default is PD. While LEDC is using
RTC8M as clock source, this power domain will be kept on.
But when 8MD256 is used as RTC clock source, the power domain should
also be kept on.
On ESP32, there was protection for it, but broken by commit
e44ead535640525969c7e85892f38ca349d5ddf4. Currently the power domain
will be forced on when LEDC is using RTC8M as clock source &&
!int8m_pd_en (user enable ESP_PDP_DOMAIN_RTC8M in lightsleep). Otherwise
the power domain will be powered off, regardless of RTC clock source.
In other words, int8M domain will be forced off (even when 8MD256
used as RTC clock source) if LEDC not using RTC8M as clock source, user
doesn't enable ESP_PDP_DOMAIN_RTC8M, or in deep sleep.
On later chips, there's no such protection, so 8MD256 could't be used as
RTC clock source in sleep modes.
This commit adds protection of 8MD256 clock to other chips. Fixes the
incorrect protection logic overriding on ESP32. Now the power domain
will be determiend by the logic below (order by priority):
1. When RTC clock source uses 8MD256, power up
2. When LEDC uses RTC8M clock source, power up
3. In deepsleep, power down
4. Otherwise determined by user config of ESP_PDP_DOMAIN_RTC8M,
power down by default. (This is preferred to have highest
priority, but it's kept as is because of current code structure.)
2. Before, after the macro `RTC_SLEEP_CONFIG_DEFAULT` decides dbias, the
protection above may force the int8m PU. This may cause the inconsistent
of dbias and the int8m PU status.
This commit lifts the logic of pd int8m/xtal fpu logic to upper layer
(sleep_modes.c).
Related: https://github.com/espressif/esp-idf/issues/8007, https://github.com/espressif/esp-idf/pull/8089
temp
2022-03-26 15:02:22 -04:00
|
|
|
#define SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256 (1)
|
2021-09-06 23:21:35 -04:00
|
|
|
|
|
|
|
/*!< Calibration */
|
|
|
|
#define SOC_ADC_CALIBRATION_V1_SUPPORTED (1) /*!< support HW offset calibration version 1*/
|
|
|
|
|
2021-06-08 05:38:46 -04:00
|
|
|
|
2021-04-13 04:50:22 -04:00
|
|
|
/*-------------------------- APB BACKUP DMA CAPS -------------------------------*/
|
|
|
|
#define SOC_APB_BACKUP_DMA (1)
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- BROWNOUT CAPS -----------------------------------*/
|
|
|
|
#include "brownout_caps.h"
|
|
|
|
|
|
|
|
/*-------------------------- CPU CAPS ----------------------------------------*/
|
|
|
|
#include "cpu_caps.h"
|
|
|
|
|
2021-08-24 11:53:45 -04:00
|
|
|
/*-------------------------- DIGITAL SIGNATURE CAPS ----------------------------------------*/
|
|
|
|
/** The maximum length of a Digital Signature in bits. */
|
|
|
|
#define SOC_DS_SIGNATURE_MAX_BIT_LEN (4096)
|
|
|
|
|
|
|
|
/** Initialization vector (IV) length for the RSA key parameter message digest (MD) in bytes. */
|
|
|
|
#define SOC_DS_KEY_PARAM_MD_IV_LENGTH (16)
|
|
|
|
|
|
|
|
/** Maximum wait time for DS parameter decryption key. If overdue, then key error.
|
|
|
|
See TRM DS chapter for more details */
|
|
|
|
#define SOC_DS_KEY_CHECK_MAX_WAIT_US (1100)
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- GDMA CAPS ---------------------------------------*/
|
2021-04-27 06:52:42 -04:00
|
|
|
#define SOC_GDMA_GROUPS (1) // Number of GDMA groups
|
|
|
|
#define SOC_GDMA_PAIRS_PER_GROUP (5) // Number of GDMA pairs in each group
|
2021-06-15 07:14:15 -04:00
|
|
|
#define SOC_GDMA_SUPPORT_PSRAM (1) // GDMA can access external PSRAM
|
|
|
|
#define SOC_GDMA_PSRAM_MIN_ALIGN (16) // Minimal alignment for PSRAM transaction
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- GPIO CAPS ---------------------------------------*/
|
2022-02-14 13:09:16 -05:00
|
|
|
// ESP32-S3 has 1 GPIO peripheral
|
|
|
|
#define SOC_GPIO_PORT (1U)
|
|
|
|
#define SOC_GPIO_PIN_COUNT (49)
|
|
|
|
|
|
|
|
// On ESP32-S3, Digital IOs have their own registers to control pullup/down/capability, independent with RTC registers.
|
|
|
|
#define SOC_GPIO_SUPPORT_RTC_INDEPENDENT (1)
|
|
|
|
// Force hold is a new function of ESP32-S3
|
|
|
|
#define SOC_GPIO_SUPPORT_FORCE_HOLD (1)
|
|
|
|
|
|
|
|
// 0~48 except from 22~25 are valid
|
|
|
|
#define SOC_GPIO_VALID_GPIO_MASK (0x1FFFFFFFFFFFFULL & ~(0ULL | BIT22 | BIT23 | BIT24 | BIT25))
|
|
|
|
// No GPIO is input only
|
|
|
|
#define SOC_GPIO_VALID_OUTPUT_GPIO_MASK (SOC_GPIO_VALID_GPIO_MASK)
|
|
|
|
|
|
|
|
// Support to configure slept status
|
|
|
|
#define SOC_GPIO_SUPPORT_SLP_SWITCH (1)
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
|
2020-05-11 07:50:17 -04:00
|
|
|
/*-------------------------- Dedicated GPIO CAPS -----------------------------*/
|
2021-06-29 23:23:02 -04:00
|
|
|
#define SOC_DEDIC_GPIO_OUT_CHANNELS_NUM (8) /*!< 8 outward channels on each CPU core */
|
|
|
|
#define SOC_DEDIC_GPIO_IN_CHANNELS_NUM (8) /*!< 8 inward channels on each CPU core */
|
2021-08-27 00:18:12 -04:00
|
|
|
#define SOC_DEDIC_GPIO_OUT_AUTO_ENABLE (1) /*!< Dedicated GPIO output attribution is enabled automatically */
|
2020-05-11 07:50:17 -04:00
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- I2C CAPS ----------------------------------------*/
|
2022-01-09 22:54:22 -05:00
|
|
|
// ESP32-S3 has 2 I2C
|
|
|
|
#define SOC_I2C_NUM (2)
|
|
|
|
|
|
|
|
#define SOC_I2C_FIFO_LEN (32) /*!< I2C hardware FIFO depth */
|
2022-01-04 06:48:12 -05:00
|
|
|
#define SOC_I2C_SUPPORT_SLAVE (1)
|
2022-01-09 22:54:22 -05:00
|
|
|
|
2022-04-14 23:06:48 -04:00
|
|
|
// FSM_RST only resets the FSM, not using it. So SOC_I2C_SUPPORT_HW_FSM_RST not defined.
|
2022-01-09 22:54:22 -05:00
|
|
|
//ESP32-S3 support hardware clear bus
|
|
|
|
#define SOC_I2C_SUPPORT_HW_CLR_BUS (1)
|
|
|
|
|
|
|
|
#define SOC_I2C_SUPPORT_XTAL (1)
|
|
|
|
#define SOC_I2C_SUPPORT_RTC (1)
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- I2S CAPS ----------------------------------------*/
|
2020-05-31 21:47:48 -04:00
|
|
|
#define SOC_I2S_NUM (2)
|
2022-03-13 23:34:46 -04:00
|
|
|
#define SOC_I2S_HW_VERSION_2 (1)
|
2020-05-31 21:47:48 -04:00
|
|
|
#define SOC_I2S_SUPPORTS_PCM (1)
|
2022-03-13 23:34:46 -04:00
|
|
|
#define SOC_I2S_SUPPORTS_PDM (1)
|
2021-06-15 03:43:03 -04:00
|
|
|
#define SOC_I2S_SUPPORTS_PDM_TX (1)
|
2020-05-31 21:47:48 -04:00
|
|
|
#define SOC_I2S_SUPPORTS_PDM_RX (1)
|
2021-07-20 09:03:52 -04:00
|
|
|
#define SOC_I2S_SUPPORTS_PDM_CODEC (1)
|
2020-05-31 21:47:48 -04:00
|
|
|
#define SOC_I2S_SUPPORTS_TDM (1)
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- LEDC CAPS ---------------------------------------*/
|
|
|
|
#include "ledc_caps.h"
|
|
|
|
|
2021-01-07 04:34:59 -05:00
|
|
|
/*-------------------------- MCPWM CAPS --------------------------------------*/
|
|
|
|
#define SOC_MCPWM_GROUPS (2) ///< 2 MCPWM groups on the chip (i.e., the number of independent MCPWM peripherals)
|
|
|
|
#define SOC_MCPWM_TIMERS_PER_GROUP (3) ///< The number of timers that each group has
|
|
|
|
#define SOC_MCPWM_OPERATORS_PER_GROUP (3) ///< The number of operators that each group has
|
|
|
|
#define SOC_MCPWM_COMPARATORS_PER_OPERATOR (2) ///< The number of comparators that each operator has
|
|
|
|
#define SOC_MCPWM_GENERATORS_PER_OPERATOR (2) ///< The number of generators that each operator has
|
2021-07-05 12:12:25 -04:00
|
|
|
#define SOC_MCPWM_TRIGGERS_PER_OPERATOR (2) ///< The number of triggers that each operator has
|
|
|
|
#define SOC_MCPWM_GPIO_FAULTS_PER_GROUP (3) ///< The number of fault signal detectors that each group has
|
2021-01-07 04:34:59 -05:00
|
|
|
#define SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP (1) ///< The number of capture timers that each group has
|
|
|
|
#define SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER (3) ///< The number of capture channels that each capture timer has
|
2021-07-05 12:12:25 -04:00
|
|
|
#define SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP (3) ///< The number of GPIO synchros that each group has
|
2021-08-03 07:21:19 -04:00
|
|
|
#define SOC_MCPWM_SWSYNC_CAN_PROPAGATE (1) ///< Software sync event can be routed to its output
|
2021-01-07 04:34:59 -05:00
|
|
|
#define SOC_MCPWM_BASE_CLK_HZ (160000000ULL) ///< Base Clock frequency of 160MHz
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- MPU CAPS ----------------------------------------*/
|
|
|
|
#include "mpu_caps.h"
|
|
|
|
|
|
|
|
/*-------------------------- PCNT CAPS ---------------------------------------*/
|
2021-08-07 05:43:08 -04:00
|
|
|
#define SOC_PCNT_GROUPS (1)
|
|
|
|
#define SOC_PCNT_UNITS_PER_GROUP (4)
|
|
|
|
#define SOC_PCNT_CHANNELS_PER_UNIT (2)
|
|
|
|
#define SOC_PCNT_THRES_POINT_PER_UNIT (2)
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- RMT CAPS ----------------------------------------*/
|
2022-03-01 02:06:29 -05:00
|
|
|
#define SOC_RMT_GROUPS 1U /*!< One RMT group */
|
|
|
|
#define SOC_RMT_TX_CANDIDATES_PER_GROUP 4 /*!< Number of channels that capable of Transmit in each group */
|
|
|
|
#define SOC_RMT_RX_CANDIDATES_PER_GROUP 4 /*!< Number of channels that capable of Receive in each group */
|
|
|
|
#define SOC_RMT_CHANNELS_PER_GROUP 8 /*!< Total 8 channels */
|
|
|
|
#define SOC_RMT_MEM_WORDS_PER_CHANNEL 48 /*!< Each channel owns 48 words memory (1 word = 4 Bytes) */
|
|
|
|
#define SOC_RMT_SUPPORT_RX_PINGPONG 1 /*!< Support Ping-Pong mode on RX path */
|
|
|
|
#define SOC_RMT_SUPPORT_RX_DEMODULATION 1 /*!< Support signal demodulation on RX path (i.e. remove carrier) */
|
|
|
|
#define SOC_RMT_SUPPORT_TX_ASYNC_STOP 1 /*!< Support stop transmission asynchronously */
|
|
|
|
#define SOC_RMT_SUPPORT_TX_LOOP_COUNT 1 /*!< Support transmit specified number of cycles in loop mode */
|
|
|
|
#define SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP 1 /*!< Hardware support of auto-stop in loop mode */
|
|
|
|
#define SOC_RMT_SUPPORT_TX_SYNCHRO 1 /*!< Support coordinate a group of TX channels to start simultaneously */
|
2022-04-06 23:59:46 -04:00
|
|
|
#define SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY 1 /*!< TX carrier can be modulated to data phase only */
|
2022-03-01 02:06:29 -05:00
|
|
|
#define SOC_RMT_SUPPORT_XTAL 1 /*!< Support set XTAL clock as the RMT clock source */
|
2022-04-21 02:46:06 -04:00
|
|
|
#define SOC_RMT_SUPPORT_RC_FAST 1 /*!< Support set RC_FAST clock as the RMT clock source */
|
|
|
|
#define SOC_RMT_SUPPORT_APB 1 /*!< Support set APB as the RMT clock source */
|
2022-03-01 02:06:29 -05:00
|
|
|
#define SOC_RMT_SUPPORT_DMA 1 /*!< RMT peripheral can connect to DMA channel */
|
2021-02-26 00:58:04 -05:00
|
|
|
|
|
|
|
/*-------------------------- LCD CAPS ----------------------------------------*/
|
2021-05-11 23:26:07 -04:00
|
|
|
/* Notes: On esp32-s3, I80 bus and RGB timing generator can't work at the same time */
|
|
|
|
#define SOC_LCD_I80_SUPPORTED (1) /*!< Intel 8080 LCD is supported */
|
|
|
|
#define SOC_LCD_RGB_SUPPORTED (1) /*!< RGB LCD is supported */
|
2022-03-03 02:35:43 -05:00
|
|
|
#define SOC_LCD_I80_BUSES (1U) /*!< Has one LCD Intel 8080 bus */
|
|
|
|
#define SOC_LCD_RGB_PANELS (1U) /*!< Support one RGB LCD panel */
|
2021-05-11 23:26:07 -04:00
|
|
|
#define SOC_LCD_I80_BUS_WIDTH (16) /*!< Intel 8080 bus width */
|
|
|
|
#define SOC_LCD_RGB_DATA_WIDTH (16) /*!< Number of LCD data lines */
|
2021-02-26 00:58:04 -05:00
|
|
|
|
2021-06-18 05:25:04 -04:00
|
|
|
/*-------------------------- RTC CAPS --------------------------------------*/
|
|
|
|
#define SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH (128)
|
|
|
|
#define SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM (549)
|
|
|
|
#define SOC_RTC_CNTL_CPU_PD_DMA_ADDR_ALIGN (SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH >> 3)
|
|
|
|
#define SOC_RTC_CNTL_CPU_PD_DMA_BLOCK_SIZE (SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH >> 3)
|
|
|
|
|
|
|
|
#define SOC_RTC_CNTL_CPU_PD_RETENTION_MEM_SIZE (SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM * (SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH >> 3))
|
|
|
|
|
2021-08-20 08:33:33 -04:00
|
|
|
/* I/D Cache tag memory retention hardware parameters */
|
|
|
|
#define SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH (128)
|
|
|
|
#define SOC_RTC_CNTL_TAGMEM_PD_DMA_ADDR_ALIGN (SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH >> 3)
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- RTCIO CAPS --------------------------------------*/
|
2022-02-14 13:09:16 -05:00
|
|
|
#define SOC_RTCIO_PIN_COUNT 22
|
|
|
|
#define SOC_RTCIO_INPUT_OUTPUT_SUPPORTED 1
|
|
|
|
#define SOC_RTCIO_HOLD_SUPPORTED 1
|
|
|
|
#define SOC_RTCIO_WAKE_SUPPORTED 1
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- SIGMA DELTA CAPS --------------------------------*/
|
2020-10-22 01:16:49 -04:00
|
|
|
#define SOC_SIGMADELTA_NUM (1) // 1 sigma-delta peripheral
|
|
|
|
#define SOC_SIGMADELTA_CHANNEL_NUM (8) // 8 channels
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- SPI CAPS ----------------------------------------*/
|
2021-07-09 04:46:27 -04:00
|
|
|
#define SOC_SPI_PERIPH_NUM 3
|
|
|
|
#define SOC_SPI_PERIPH_CS_NUM(i) 3
|
|
|
|
#define SOC_SPI_MAXIMUM_BUFFER_SIZE 64
|
|
|
|
#define SOC_SPI_SUPPORT_DDRCLK 1
|
|
|
|
#define SOC_SPI_SLAVE_SUPPORT_SEG_TRANS 1
|
|
|
|
#define SOC_SPI_SUPPORT_CD_SIG 1
|
|
|
|
#define SOC_SPI_SUPPORT_CONTINUOUS_TRANS 1
|
|
|
|
#define SOC_SPI_SUPPORT_SLAVE_HD_VER2 1
|
|
|
|
|
|
|
|
// Peripheral supports DIO, DOUT, QIO, or QOUT
|
|
|
|
#define SOC_SPI_PERIPH_SUPPORT_MULTILINE_MODE(host_id) ({(void)host_id; 1;})
|
|
|
|
|
|
|
|
// Peripheral supports output given level during its "dummy phase"
|
2021-11-05 05:23:24 -04:00
|
|
|
#define SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT 1
|
2021-07-09 04:46:27 -04:00
|
|
|
#define SOC_MEMSPI_IS_INDEPENDENT 1
|
|
|
|
#define SOC_SPI_MAX_PRE_DIVIDER 16
|
|
|
|
#define SOC_SPI_SUPPORT_OCT 1
|
2020-09-09 22:37:58 -04:00
|
|
|
|
2022-04-12 04:37:40 -04:00
|
|
|
#define SOC_MEMSPI_SRC_FREQ_120M 1
|
|
|
|
#define SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED 1
|
|
|
|
#define SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED 1
|
|
|
|
#define SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED 1
|
|
|
|
|
2020-11-25 23:39:49 -05:00
|
|
|
/*-------------------------- SPIRAM CAPS ----------------------------------------*/
|
|
|
|
#define SOC_SPIRAM_SUPPORTED 1
|
|
|
|
|
2020-09-09 22:37:58 -04:00
|
|
|
/*-------------------------- SYS TIMER CAPS ----------------------------------*/
|
2022-04-24 04:40:32 -04:00
|
|
|
#define SOC_SYSTIMER_SUPPORTED 1
|
2021-04-02 00:41:08 -04:00
|
|
|
#define SOC_SYSTIMER_COUNTER_NUM (2) // Number of counter units
|
|
|
|
#define SOC_SYSTIMER_ALARM_NUM (3) // Number of alarm units
|
|
|
|
#define SOC_SYSTIMER_BIT_WIDTH_LO (32) // Bit width of systimer low part
|
|
|
|
#define SOC_SYSTIMER_BIT_WIDTH_HI (20) // Bit width of systimer high part
|
|
|
|
#define SOC_SYSTIMER_FIXED_TICKS_US (16) // Number of ticks per microsecond is fixed
|
|
|
|
#define SOC_SYSTIMER_INT_LEVEL (1) // Systimer peripheral uses level
|
|
|
|
#define SOC_SYSTIMER_ALARM_MISS_COMPENSATE (1) // Systimer peripheral can generate interrupt immediately if t(target) > t(current)
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- TIMER GROUP CAPS --------------------------------*/
|
2021-02-01 01:17:10 -05:00
|
|
|
#define SOC_TIMER_GROUPS (2)
|
|
|
|
#define SOC_TIMER_GROUP_TIMERS_PER_GROUP (2)
|
|
|
|
#define SOC_TIMER_GROUP_COUNTER_BIT_WIDTH (54)
|
|
|
|
#define SOC_TIMER_GROUP_SUPPORT_XTAL (1)
|
2022-04-13 01:12:30 -04:00
|
|
|
#define SOC_TIMER_GROUP_SUPPORT_APB (1)
|
2021-12-16 10:13:09 -05:00
|
|
|
#define SOC_TIMER_GROUP_TOTAL_TIMERS (4)
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- TOUCH SENSOR CAPS -------------------------------*/
|
2022-04-24 04:40:32 -04:00
|
|
|
#define SOC_TOUCH_VERSION_2 (1) // Hardware version of touch sensor
|
2021-06-22 09:53:16 -04:00
|
|
|
#define SOC_TOUCH_SENSOR_NUM (15) /*! 15 Touch channels */
|
|
|
|
#define SOC_TOUCH_PROXIMITY_CHANNEL_NUM (3) /* Sopport touch proximity channel number. */
|
|
|
|
#define SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED (1) /*Sopport touch proximity channel measure done interrupt type. */
|
|
|
|
|
|
|
|
#define SOC_TOUCH_PAD_THRESHOLD_MAX (0x1FFFFF) /*!<If set touch threshold max value, The touch sensor can't be in touched status */
|
|
|
|
#define SOC_TOUCH_PAD_MEASURE_WAIT_MAX (0xFF) /*!<The timer frequency is 8Mhz, the max value is 0xff */
|
2020-09-09 22:37:58 -04:00
|
|
|
|
|
|
|
/*-------------------------- TWAI CAPS ---------------------------------------*/
|
|
|
|
#include "twai_caps.h"
|
|
|
|
|
|
|
|
/*-------------------------- UART CAPS ---------------------------------------*/
|
2022-01-11 22:03:38 -05:00
|
|
|
// ESP32-S3 has 3 UARTs
|
|
|
|
#define SOC_UART_NUM (3)
|
|
|
|
#define SOC_UART_FIFO_LEN (128) /*!< The UART hardware FIFO length */
|
|
|
|
#define SOC_UART_BITRATE_MAX (5000000) /*!< Max bit rate supported by UART */
|
|
|
|
// UART has an extra TX_WAIT_SEND state when the FIFO is not empty and XOFF is enabled
|
|
|
|
#define SOC_UART_SUPPORT_FSM_TX_WAIT_SEND (1)
|
|
|
|
#define SOC_UART_SUPPORT_WAKEUP_INT (1) /*!< Support UART wakeup interrupt */
|
2020-11-19 04:03:10 -05:00
|
|
|
#define SOC_UART_SUPPORT_RTC_CLK (1) /*!< Support RTC clock as the clock source */
|
|
|
|
#define SOC_UART_SUPPORT_XTAL_CLK (1) /*!< Support XTAL clock as the clock source */
|
2022-01-17 07:32:39 -05:00
|
|
|
#define SOC_UART_REQUIRE_CORE_RESET (1)
|
2020-10-28 22:51:36 -04:00
|
|
|
|
2021-05-06 04:20:54 -04:00
|
|
|
/*-------------------------- USB CAPS ----------------------------------------*/
|
|
|
|
#define SOC_USB_PERIPH_NUM 1
|
|
|
|
|
|
|
|
|
2020-10-28 22:51:36 -04:00
|
|
|
/*--------------------------- SHA CAPS ---------------------------------------*/
|
|
|
|
/* Max amount of bytes in a single DMA operation is 4095,
|
|
|
|
for SHA this means that the biggest safe amount of bytes is
|
|
|
|
31 blocks of 128 bytes = 3968
|
|
|
|
*/
|
|
|
|
#define SOC_SHA_DMA_MAX_BUFFER_SIZE (3968)
|
|
|
|
#define SOC_SHA_SUPPORT_DMA (1)
|
|
|
|
|
|
|
|
/* The SHA engine is able to resume hashing from a user supplied context */
|
|
|
|
#define SOC_SHA_SUPPORT_RESUME (1)
|
|
|
|
|
|
|
|
/* Has a centralized DMA, which is shared with all peripherals */
|
2021-01-14 02:25:06 -05:00
|
|
|
#define SOC_SHA_GDMA (1)
|
2020-10-28 22:51:36 -04:00
|
|
|
|
|
|
|
/* Supported HW algorithms */
|
|
|
|
#define SOC_SHA_SUPPORT_SHA1 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA224 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA256 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA384 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA512 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA512_224 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA512_256 (1)
|
|
|
|
#define SOC_SHA_SUPPORT_SHA512_T (1)
|
|
|
|
|
|
|
|
|
|
|
|
/*--------------------------- RSA CAPS ---------------------------------------*/
|
|
|
|
#define SOC_RSA_MAX_BIT_LEN (4096)
|
|
|
|
|
|
|
|
|
2020-11-12 02:11:38 -05:00
|
|
|
/*-------------------------- AES CAPS -----------------------------------------*/
|
|
|
|
#define SOC_AES_SUPPORT_DMA (1)
|
|
|
|
|
2021-06-06 22:47:19 -04:00
|
|
|
/* Has a centralized DMA, which is shared with all peripherals */
|
|
|
|
#define SOC_AES_GDMA (1)
|
|
|
|
|
|
|
|
#define SOC_AES_SUPPORT_AES_128 (1)
|
|
|
|
#define SOC_AES_SUPPORT_AES_256 (1)
|
|
|
|
|
|
|
|
|
2021-01-12 06:10:21 -05:00
|
|
|
/*-------------------------- Power Management CAPS ---------------------------*/
|
|
|
|
#define SOC_PM_SUPPORT_EXT_WAKEUP (1)
|
|
|
|
|
|
|
|
#define SOC_PM_SUPPORT_WIFI_WAKEUP (1)
|
|
|
|
|
|
|
|
#define SOC_PM_SUPPORT_BT_WAKEUP (1)
|
|
|
|
|
2021-06-18 05:25:04 -04:00
|
|
|
#define SOC_PM_SUPPORT_CPU_PD (1)
|
|
|
|
|
2021-08-20 08:33:33 -04:00
|
|
|
#define SOC_PM_SUPPORT_TAGMEM_PD (1)
|
|
|
|
|
2021-12-20 02:09:07 -05:00
|
|
|
#define SOC_PM_SUPPORT_RTC_PERIPH_PD (1)
|
|
|
|
|
2021-06-22 09:53:16 -04:00
|
|
|
#define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */
|
2020-11-12 02:11:38 -05:00
|
|
|
|
2021-11-05 05:23:24 -04:00
|
|
|
#define SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY (1)
|
2021-08-11 10:06:47 -04:00
|
|
|
|
2022-03-31 08:13:50 -04:00
|
|
|
/*-------------------------- Secure Boot CAPS----------------------------*/
|
|
|
|
#define SOC_SECURE_BOOT_V2_RSA 1
|
|
|
|
#define SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS 3
|
|
|
|
#define SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS 1
|
|
|
|
#define SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY 1
|
2021-08-11 10:06:47 -04:00
|
|
|
|
2021-02-24 23:25:38 -05:00
|
|
|
/*-------------------------- Flash Encryption CAPS----------------------------*/
|
|
|
|
#define SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX (64)
|
2022-03-31 08:13:50 -04:00
|
|
|
#define SOC_FLASH_ENCRYPTION_XTS_AES 1
|
2022-05-04 07:04:56 -04:00
|
|
|
#define SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS 1
|
2022-03-31 08:13:50 -04:00
|
|
|
#define SOC_FLASH_ENCRYPTION_XTS_AES_128 1
|
|
|
|
#define SOC_FLASH_ENCRYPTION_XTS_AES_256 1
|
2021-01-24 11:18:42 -05:00
|
|
|
|
2021-01-19 06:36:06 -05:00
|
|
|
/*--------------- PHY REGISTER AND MEMORY SIZE CAPS --------------------------*/
|
|
|
|
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
|
|
|
#define SOC_MAC_BB_PD_MEM_SIZE (192*4)
|
2020-12-17 23:57:55 -05:00
|
|
|
|
2021-02-24 03:24:16 -05:00
|
|
|
/*--------------- WIFI LIGHT SLEEP CLOCK WIDTH CAPS --------------------------*/
|
|
|
|
#define SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH (12)
|
|
|
|
|
2020-12-17 23:57:55 -05:00
|
|
|
/*-------------------------- SPI MEM CAPS ---------------------------------------*/
|
|
|
|
#define SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE (1)
|
|
|
|
#define SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND (1)
|
|
|
|
#define SOC_SPI_MEM_SUPPORT_AUTO_RESUME (1)
|
|
|
|
#define SOC_SPI_MEM_SUPPORT_SW_SUSPEND (1)
|
2021-09-01 03:58:15 -04:00
|
|
|
#define SOC_SPI_MEM_SUPPORT_OPI_MODE (1)
|
|
|
|
#define SOC_SPI_MEM_SUPPORT_TIME_TUNING (1)
|
2022-01-24 22:02:52 -05:00
|
|
|
#define SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE (1)
|
2021-09-01 03:58:15 -04:00
|
|
|
|
2021-01-24 11:18:42 -05:00
|
|
|
/*-------------------------- COEXISTENCE HARDWARE PTI CAPS -------------------------------*/
|
|
|
|
#define SOC_COEX_HW_PTI (1)
|
2021-01-04 14:34:31 -05:00
|
|
|
|
|
|
|
/*-------------------------- SDMMC CAPS -----------------------------------------*/
|
|
|
|
|
|
|
|
/* Card detect, write protect, interrupt use GPIO Matrix on all chips.
|
|
|
|
* On ESP32-S3, clock/cmd/data pins use GPIO Matrix as well.
|
|
|
|
*/
|
|
|
|
#define SOC_SDMMC_USE_GPIO_MATRIX 1
|
|
|
|
#define SOC_SDMMC_NUM_SLOTS 2
|
|
|
|
/* Indicates that there is an option to use XTAL clock instead of PLL for SDMMC */
|
|
|
|
#define SOC_SDMMC_SUPPORT_XTAL_CLOCK 1
|
2022-03-04 05:02:38 -05:00
|
|
|
|
|
|
|
/*-------------------------- Temperature Sensor CAPS -------------------------------------*/
|
|
|
|
#define SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC (1)
|
2022-05-10 04:00:01 -04:00
|
|
|
|
|
|
|
/*------------------------------------ WI-FI CAPS ------------------------------------*/
|
|
|
|
#define SOC_WIFI_HW_TSF (1) /*!< Support hardware TSF */
|
|
|
|
#define SOC_WIFI_FTM_SUPPORT (1) /*!< FTM Support */
|
|
|
|
#define SOC_WIFI_GCMP_SUPPORT (1) /*!< GCMP Support(GCMP128 and GCMP256) */
|