mirror of
https://github.com/espressif/esp-idf.git
synced 2025-09-03 06:58:11 +00:00
fix(esp32c5): add CLIC interrupt controller support for the ESP32-C5
This commit is contained in:
@@ -335,17 +335,17 @@ extern "C" {
|
||||
#define INTERRUPT_CORE0_CPU_INTR_FROM_CPU_3_MAP_V 0x0000003FU
|
||||
#define INTERRUPT_CORE0_CPU_INTR_FROM_CPU_3_MAP_S 0
|
||||
|
||||
/** INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_REG register
|
||||
* BUS_MONITOR_INTR mapping register
|
||||
/** INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_REG register
|
||||
* ASSIST_DEBUG_INTR mapping register
|
||||
*/
|
||||
#define INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_REG (DR_REG_INTERRUPT_CORE0_BASE + 0x6c)
|
||||
/** INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP : R/W; bitpos: [5:0]; default: 0;
|
||||
#define INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_REG (DR_REG_INTERRUPT_CORE0_BASE + 0x6c)
|
||||
/** INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP : R/W; bitpos: [5:0]; default: 0;
|
||||
* Configures the interrupt source into one CPU interrupt.
|
||||
*/
|
||||
#define INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP 0x0000003FU
|
||||
#define INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_M (INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_V << INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_S)
|
||||
#define INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_V 0x0000003FU
|
||||
#define INTERRUPT_CORE0_BUS_MONITOR_INTR_MAP_S 0
|
||||
#define INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP 0x0000003FU
|
||||
#define INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_M (INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_V << INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_S)
|
||||
#define INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_V 0x0000003FU
|
||||
#define INTERRUPT_CORE0_ASSIST_DEBUG_INTR_MAP_S 0
|
||||
|
||||
/** INTERRUPT_CORE0_TRACE_INTR_MAP_REG register
|
||||
* TRACE_INTR mapping register
|
||||
|
@@ -1,11 +1,25 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
|
||||
#include "soc/clic_reg.h"
|
||||
#include "soc/soc_caps.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ESP32C5 uses the CLIC controller as the interrupt controller (SOC_INT_CLIC_SUPPORTED = y)
|
||||
*/
|
||||
#define INTERRUPT_CURRENT_CORE_INT_THRESH_REG (CLIC_INT_THRESH_REG)
|
||||
#define INTERRUPT_OTHER_CORE_INT_THRESH_REG (CLIC_INT_THRESH_REG + DUALCORE_CLIC_CTRL_OFF)
|
||||
|
||||
/* We only have a single core on the C5, CORE0 */
|
||||
#define INTERRUPT_CORE0_CPU_INT_THRESH_REG INTERRUPT_CURRENT_CORE_INT_THRESH_REG
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,11 +1,10 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -19,7 +18,7 @@ typedef enum {
|
||||
ETS_WIFI_MAC_INTR_SOURCE = 0, /**< interrupt of WiFi MAC, level*/
|
||||
ETS_WIFI_MAC_NMI_SOURCE, /**< interrupt of WiFi MAC, NMI, use if MAC have bug to fix in NMI*/
|
||||
ETS_WIFI_PWR_INTR_SOURCE, /**< */
|
||||
ETS_WIFI_BB_INTR_SOURCE, /**< interrupt of WiFi BB, level, we can do some calibartion*/
|
||||
ETS_WIFI_BB_INTR_SOURCE, /**< interrupt of WiFi BB, level, we can do some calibration*/
|
||||
ETS_BT_MAC_INTR_SOURCE, /**< will be cancelled*/
|
||||
ETS_BT_BB_INTR_SOURCE, /**< interrupt of BT BB, level*/
|
||||
ETS_BT_BB_NMI_SOURCE, /**< interrupt of BT BB, NMI, use if BB have bug to fix in NMI*/
|
||||
@@ -28,7 +27,7 @@ typedef enum {
|
||||
ETS_BLE_TIMER_INTR_SOURCE,
|
||||
ETS_BLE_SEC_INTR_SOURCE,
|
||||
ETS_I2C_MASTER_SOURCE, /**< interrupt of I2C Master, level*/
|
||||
ETS_ZB_MAC_SOURCE,
|
||||
ETS_ZB_MAC_INTR_SOURCE,
|
||||
ETS_PMU_INTR_SOURCE,
|
||||
ETS_EFUSE_INTR_SOURCE, /**< interrupt of efuse, level, not likely to use*/
|
||||
ETS_LP_RTC_TIMER_INTR_SOURCE,
|
||||
@@ -39,8 +38,8 @@ typedef enum {
|
||||
ETS_LP_APM_M0_INTR_SOURCE,
|
||||
ETS_LP_APM_M1_INTR_SOURCE,
|
||||
ETS_HUK_INTR_SOURCE,
|
||||
ETS_FROM_CPU_INTR0_SOURCE, /**< interrupt0 generated from a CPU, level*/ /* Used for FreeRTOS */
|
||||
ETS_FROM_CPU_INTR1_SOURCE, /**< interrupt1 generated from a CPU, level*/ /* Used for FreeRTOS */
|
||||
ETS_FROM_CPU_INTR0_SOURCE, /**< interrupt0 generated from a CPU, level*/
|
||||
ETS_FROM_CPU_INTR1_SOURCE, /**< interrupt1 generated from a CPU, level*/
|
||||
ETS_FROM_CPU_INTR2_SOURCE, /**< interrupt2 generated from a CPU, level*/
|
||||
ETS_FROM_CPU_INTR3_SOURCE, /**< interrupt3 generated from a CPU, level*/
|
||||
ETS_ASSIST_DEBUG_INTR_SOURCE, /**< interrupt of Assist debug module, LEVEL*/
|
||||
@@ -48,7 +47,7 @@ typedef enum {
|
||||
ETS_CACHE_INTR_SOURCE,
|
||||
ETS_CPU_PERI_TIMEOUT_INTR_SOURCE,
|
||||
ETS_GPIO_INTR_SOURCE, /**< interrupt of GPIO, level*/
|
||||
ETS_GPIO_INTR_EXT_SOURCE, /**< interrupt of GPIO, NMI*/
|
||||
ETS_GPIO_NMI_SOURCE, /**< interrupt of GPIO, NMI*/
|
||||
ETS_PAU_INTR_SOURCE,
|
||||
ETS_HP_PERI_TIMEOUT_INTR_SOURCE,
|
||||
ETS_MODEM_PERI_TIMEOUT_INTR_SOURCE,
|
||||
@@ -78,10 +77,7 @@ typedef enum {
|
||||
ETS_SYSTIMER_TARGET0_INTR_SOURCE, /**< interrupt of system timer 0 */
|
||||
ETS_SYSTIMER_TARGET1_INTR_SOURCE, /**< interrupt of system timer 1 */
|
||||
ETS_SYSTIMER_TARGET2_INTR_SOURCE, /**< interrupt of system timer 2 */
|
||||
ETS_SYSTIMER_TARGET0_EDGE_INTR_SOURCE = ETS_SYSTIMER_TARGET0_INTR_SOURCE, /**< use ETS_SYSTIMER_TARGET0_INTR_SOURCE */
|
||||
ETS_SYSTIMER_TARGET1_EDGE_INTR_SOURCE = ETS_SYSTIMER_TARGET1_INTR_SOURCE, /**< use ETS_SYSTIMER_TARGET1_INTR_SOURCE */
|
||||
ETS_SYSTIMER_TARGET2_EDGE_INTR_SOURCE = ETS_SYSTIMER_TARGET2_INTR_SOURCE, /**< use ETS_SYSTIMER_TARGET2_INTR_SOURCE */
|
||||
ETS_APB_ADC_INTR_SOURCE = 62, /**< interrupt of APB ADC, LEVEL*/
|
||||
ETS_APB_ADC_INTR_SOURCE, /**< interrupt of APB ADC, LEVEL*/
|
||||
ETS_MCPWM0_INTR_SOURCE, /**< interrupt of MCPWM0, LEVEL*/
|
||||
ETS_PCNT_INTR_SOURCE,
|
||||
ETS_PARL_IO_TX_INTR_SOURCE,
|
||||
@@ -100,7 +96,7 @@ typedef enum {
|
||||
ETS_ECDSA_INTR_SOURCE,
|
||||
ETS_KM_INTR_SOURCE,
|
||||
ETS_MAX_INTR_SOURCE,
|
||||
} periph_interrput_t;
|
||||
} periph_interrupt_t;
|
||||
|
||||
extern const char * const esp_isr_names[ETS_MAX_INTR_SOURCE];
|
||||
|
||||
|
Reference in New Issue
Block a user