1 /* 2 * Copyright (c) 2021 Espressif Systems (Shanghai) Co., Ltd. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_INTERRUPT_CONTROLLER_ESP32S2_XTENSA_INTMUX_H_ 8 #define ZEPHYR_INCLUDE_DT_BINDINGS_INTERRUPT_CONTROLLER_ESP32S2_XTENSA_INTMUX_H_ 9 10 #define WIFI_MAC_INTR_SOURCE 0 /* WiFi MAC, level */ 11 #define WIFI_MAC_NMI_SOURCE 1 /* WiFi MAC, NMI, use if MAC needs fix in NMI */ 12 #define WIFI_PWR_INTR_SOURCE 2 13 #define WIFI_BB_INTR_SOURCE 3 /* WiFi BB, level, we can do some calibration */ 14 #define BT_MAC_INTR_SOURCE 4 /* will be cancelled */ 15 #define BT_BB_INTR_SOURCE 5 /* BB, level */ 16 #define BT_BB_NMI_SOURCE 6 /* BT BB, NMI, use if BB have bug to fix in NMI */ 17 #define RWBT_INTR_SOURCE 7 /* RWBT, level */ 18 #define RWBLE_INTR_SOURCE 8 /* RWBLE, level */ 19 #define RWBT_NMI_SOURCE 9 /* RWBT, NMI, use if RWBT has bug to fix in NMI */ 20 #define RWBLE_NMI_SOURCE 10 /* RWBLE, NMI, use if RWBT has bug to fix in NMI */ 21 #define SLC0_INTR_SOURCE 11 /* SLC0, level */ 22 #define SLC1_INTR_SOURCE 12 /* SLC1, level */ 23 #define UHCI0_INTR_SOURCE 13 /* UHCI0, level */ 24 #define UHCI1_INTR_SOURCE 14 /* UHCI1, level */ 25 #define TG0_T0_LEVEL_INTR_SOURCE 15 /* TIMER_GROUP0, TIMER0, level */ 26 #define TG0_T1_LEVEL_INTR_SOURCE 16 /* TIMER_GROUP0, TIMER1, level */ 27 #define TG0_WDT_LEVEL_INTR_SOURCE 17 /* TIMER_GROUP0, WATCHDOG, level */ 28 #define TG0_LACT_LEVEL_INTR_SOURCE 18 /* TIMER_GROUP0, LACT, level */ 29 #define TG1_T0_LEVEL_INTR_SOURCE 19 /* TIMER_GROUP1, TIMER0, level */ 30 #define TG1_T1_LEVEL_INTR_SOURCE 20 /* TIMER_GROUP1, TIMER1, level */ 31 #define TG1_WDT_LEVEL_INTR_SOURCE 21 /* TIMER_GROUP1, WATCHDOG, level */ 32 #define TG1_LACT_LEVEL_INTR_SOURCE 22 /* TIMER_GROUP1, LACT, level */ 33 #define GPIO_INTR_SOURCE 23 /* interrupt of GPIO, level */ 34 #define GPIO_NMI_SOURCE 24 /* interrupt of GPIO, NMI */ 35 #define GPIO_INTR_SOURCE2 25 /* interrupt of GPIO, level */ 36 #define GPIO_NMI_SOURCE2 26 /* interrupt of GPIO, NMI */ 37 #define DEDICATED_GPIO_INTR_SOURCE 27 /* interrupt of dedicated GPIO, level */ 38 #define FROM_CPU_INTR0_SOURCE 28 /* int0 from a CPU, level */ 39 #define FROM_CPU_INTR1_SOURCE 29 /* int1 from a CPU, level */ 40 #define FROM_CPU_INTR2_SOURCE 30 /* int2 from a CPU, level, for DPORT Access */ 41 #define FROM_CPU_INTR3_SOURCE 31 /* int3 from a CPU, level, for DPORT Access */ 42 #define SPI1_INTR_SOURCE 32 /* SPI1, level, flash r/w, do not use this */ 43 #define SPI2_INTR_SOURCE 33 /* SPI2, level */ 44 #define SPI3_INTR_SOURCE 34 /* SPI3, level */ 45 #define I2S0_INTR_SOURCE 35 /* I2S0, level */ 46 #define I2S1_INTR_SOURCE 36 /* I2S1, level */ 47 #define UART0_INTR_SOURCE 37 /* UART0, level */ 48 #define UART1_INTR_SOURCE 38 /* UART1, level */ 49 #define UART2_INTR_SOURCE 39 /* UART2, level */ 50 #define SDIO_HOST_INTR_SOURCE 40 /* SD/SDIO/MMC HOST, level */ 51 #define PWM0_INTR_SOURCE 41 /* PWM0, level, Reserved */ 52 #define PWM1_INTR_SOURCE 42 /* PWM1, level, Reserved */ 53 #define PWM2_INTR_SOURCE 43 /* PWM2, level */ 54 #define PWM3_INTR_SOURCE 44 /* PWM3, level */ 55 #define LEDC_INTR_SOURCE 45 /* LED PWM, level */ 56 #define EFUSE_INTR_SOURCE 46 /* efuse, level, not likely to use */ 57 #define TWAI_INTR_SOURCE 47 /* twai, level */ 58 #define USB_INTR_SOURCE 48 /* interrupt of USB, level */ 59 #define RTC_CORE_INTR_SOURCE 49 /* rtc core, level, include rtc watchdog */ 60 #define RMT_INTR_SOURCE 50 /* remote controller, level */ 61 #define PCNT_INTR_SOURCE 51 /* pulse count, level */ 62 #define I2C_EXT0_INTR_SOURCE 52 /* I2C controller1, level */ 63 #define I2C_EXT1_INTR_SOURCE 53 /* I2C controller0, level */ 64 #define RSA_INTR_SOURCE 54 /* RSA accelerator, level */ 65 #define SHA_INTR_SOURCE 55 /* interrupt of RSA accelerator, level */ 66 #define AES_INTR_SOURCE 56 /* interrupt of SHA accelerator, level */ 67 #define SPI2_DMA_INTR_SOURCE 57 /* SPI2 DMA, level */ 68 #define SPI3_DMA_INTR_SOURCE 58 /* interrupt of SPI3 DMA, level */ 69 #define WDT_INTR_SOURCE 59 /* will be cancelled */ 70 #define TIMER1_INTR_SOURCE 60 /* will be cancelled */ 71 #define TIMER2_INTR_SOURCE 61 /* will be cancelled */ 72 #define TG0_T0_EDGE_INTR_SOURCE 62 /* TIMER_GROUP0, TIMER0, EDGE */ 73 #define TG0_T1_EDGE_INTR_SOURCE 63 /* TIMER_GROUP0, TIMER1, EDGE */ 74 #define TG0_WDT_EDGE_INTR_SOURCE 64 /* TIMER_GROUP0, WATCH DOG, EDGE */ 75 #define TG0_LACT_EDGE_INTR_SOURCE 65 /* TIMER_GROUP0, LACT, EDGE */ 76 #define TG1_T0_EDGE_INTR_SOURCE 66 /* TIMER_GROUP1, TIMER0, EDGE */ 77 #define TG1_T1_EDGE_INTR_SOURCE 67 /* TIMER_GROUP1, TIMER1, EDGE */ 78 #define TG1_WDT_EDGE_INTR_SOURCE 68 /* TIMER_GROUP1, WATCHDOG, EDGE */ 79 #define TG1_LACT_EDGE_INTR_SOURCE 69 /* TIMER_GROUP0, LACT, EDGE */ 80 #define CACHE_IA_INTR_SOURCE 70 /* Cache Invalid Access, level */ 81 #define SYSTIMER_TARGET0_EDGE_INTR_SOURCE 71 /* system timer 0, edge */ 82 #define SYSTIMER_TARGET1_EDGE_INTR_SOURCE 72 /* system timer 1, edge */ 83 #define SYSTIMER_TARGET2_EDGE_INTR_SOURCE 73 /* system timer 2, edge */ 84 #define ASSIST_DEBUG_INTR_SOURCE 74 /* Assist debug module, level */ 85 #define PMS_PRO_IRAM0_ILG_INTR_SOURCE 75 /* illegal IRAM1 access, level */ 86 #define PMS_PRO_DRAM0_ILG_INTR_SOURCE 76 /* illegal DRAM0 access, level */ 87 #define PMS_PRO_DPORT_ILG_INTR_SOURCE 77 /* illegal DPORT access, level */ 88 #define PMS_PRO_AHB_ILG_INTR_SOURCE 78 /* illegal AHB access, level */ 89 #define PMS_PRO_CACHE_ILG_INTR_SOURCE 79 /* illegal CACHE access, level */ 90 #define PMS_DMA_APB_I_ILG_INTR_SOURCE 80 /* illegal APB access, level */ 91 #define PMS_DMA_RX_I_ILG_INTR_SOURCE 81 /* illegal DMA RX access, level */ 92 #define PMS_DMA_TX_I_ILG_INTR_SOURCE 82 /* illegal DMA TX access, level */ 93 #define SPI_MEM_REJECT_CACHE_INTR_SOURCE 83 /* SPI0 Cache access and 94 * SPI1 access rejected, level 95 */ 96 #define DMA_COPY_INTR_SOURCE 84 /* DMA copy, level */ 97 #define SPI4_DMA_INTR_SOURCE 85 /* SPI4 DMA, level */ 98 #define SPI4_INTR_SOURCE 86 /* SPI4, level */ 99 #define ICACHE_PRELOAD_INTR_SOURCE 87 /* ICache preload operation, level */ 100 #define DCACHE_PRELOAD_INTR_SOURCE 88 /* DCache preload operation, level */ 101 #define APB_ADC_INTR_SOURCE 89 /* APB ADC, level */ 102 #define CRYPTO_DMA_INTR_SOURCE 90 /* encrypted DMA, level */ 103 #define CPU_PERI_ERROR_INTR_SOURCE 91 /* CPU peripherals error, level */ 104 #define APB_PERI_ERROR_INTR_SOURCE 92 /* APB peripherals error, level */ 105 #define DCACHE_SYNC_INTR_SOURCE 93 /* data cache sync done, level */ 106 #define ICACHE_SYNC_INTR_SOURCE 94 /* instruction cache sync done, level */ 107 #define MAX_INTR_SOURCE 95 /* total number of interrupt sources */ 108 109 /* For Xtensa architecture, zero will allocate low/medium 110 * levels of priority (ESP_INTR_FLAG_LOWMED) 111 */ 112 #define IRQ_DEFAULT_PRIORITY 0 113 114 #define ESP_INTR_FLAG_SHARED (1<<8) /* Interrupt can be shared between ISRs */ 115 116 #endif 117