1 // Copyright 2015-2018 Espressif Systems (Shanghai) PTE LTD 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #ifndef _SOC_PERIPH_DEFS_H_ 16 #define _SOC_PERIPH_DEFS_H_ 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 typedef enum { 23 PERIPH_LEDC_MODULE = 0, 24 PERIPH_UART0_MODULE, 25 PERIPH_UART1_MODULE, 26 PERIPH_USB_MODULE, 27 PERIPH_I2C0_MODULE, 28 PERIPH_I2C1_MODULE, 29 PERIPH_I2S0_MODULE, 30 PERIPH_I2S1_MODULE, 31 PERIPH_TIMG0_MODULE, 32 PERIPH_TIMG1_MODULE, 33 PERIPH_PWM0_MODULE, 34 PERIPH_PWM1_MODULE, 35 PERIPH_PWM2_MODULE, 36 PERIPH_PWM3_MODULE, 37 PERIPH_UHCI0_MODULE, 38 PERIPH_UHCI1_MODULE, 39 PERIPH_RMT_MODULE, 40 PERIPH_PCNT_MODULE, 41 PERIPH_SPI_MODULE, //SPI1 42 PERIPH_FSPI_MODULE, //SPI2 43 PERIPH_HSPI_MODULE, //SPI3 44 PERIPH_SPI2_DMA_MODULE, 45 PERIPH_SPI3_DMA_MODULE, 46 PERIPH_TWAI_MODULE, 47 PERIPH_RNG_MODULE, 48 PERIPH_WIFI_MODULE, 49 PERIPH_WIFI_BT_COMMON_MODULE, 50 PERIPH_SYSTIMER_MODULE, 51 PERIPH_AES_MODULE, 52 PERIPH_SHA_MODULE, 53 PERIPH_RSA_MODULE, 54 PERIPH_CRYPTO_DMA_MODULE, //this DMA is shared between AES and SHA 55 PERIPH_AES_DMA_MODULE, 56 PERIPH_SHA_DMA_MODULE, 57 PERIPH_DEDIC_GPIO_MODULE, 58 PERIPH_MODULE_MAX 59 } periph_module_t; 60 61 typedef enum { 62 ETS_WIFI_MAC_INTR_SOURCE = 0, /**< interrupt of WiFi MAC, level*/ 63 ETS_WIFI_MAC_NMI_SOURCE, /**< interrupt of WiFi MAC, NMI, use if MAC have bug to fix in NMI*/ 64 ETS_WIFI_PWR_INTR_SOURCE, /**< */ 65 ETS_WIFI_BB_INTR_SOURCE, /**< interrupt of WiFi BB, level, we can do some calibartion*/ 66 ETS_BT_MAC_INTR_SOURCE, /**< will be cancelled*/ 67 ETS_BT_BB_INTR_SOURCE, /**< interrupt of BT BB, level*/ 68 ETS_BT_BB_NMI_SOURCE, /**< interrupt of BT BB, NMI, use if BB have bug to fix in NMI*/ 69 ETS_RWBT_INTR_SOURCE, /**< interrupt of RWBT, level*/ 70 ETS_RWBLE_INTR_SOURCE, /**< interrupt of RWBLE, level*/ 71 ETS_RWBT_NMI_SOURCE, /**< interrupt of RWBT, NMI, use if RWBT have bug to fix in NMI*/ 72 ETS_RWBLE_NMI_SOURCE, /**< interrupt of RWBLE, NMI, use if RWBT have bug to fix in NMI*/ 73 ETS_SLC0_INTR_SOURCE, /**< interrupt of SLC0, level*/ 74 ETS_SLC1_INTR_SOURCE, /**< interrupt of SLC1, level*/ 75 ETS_UHCI0_INTR_SOURCE, /**< interrupt of UHCI0, level*/ 76 ETS_UHCI1_INTR_SOURCE, /**< interrupt of UHCI1, level*/ 77 ETS_TG0_T0_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER0, level, we would like use EDGE for timer if permission*/ 78 79 ETS_TG0_T1_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER1, level, we would like use EDGE for timer if permission*/ 80 ETS_TG0_WDT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, WATCHDOG, level*/ 81 ETS_TG0_LACT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, LACT, level*/ 82 ETS_TG1_T0_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER0, level, we would like use EDGE for timer if permission*/ 83 ETS_TG1_T1_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER1, level, we would like use EDGE for timer if permission*/ 84 ETS_TG1_WDT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, WATCHDOG, level*/ 85 ETS_TG1_LACT_LEVEL_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, LACT, level*/ 86 ETS_GPIO_INTR_SOURCE, /**< interrupt of GPIO, level*/ 87 ETS_GPIO_NMI_SOURCE, /**< interrupt of GPIO, NMI*/ 88 ETS_GPIO_INTR_SOURCE2, /**< interrupt of GPIO, level*/ 89 ETS_GPIO_NMI_SOURCE2, /**< interrupt of GPIO, NMI*/ 90 ETS_DEDICATED_GPIO_INTR_SOURCE, /**< interrupt of dedicated GPIO, level*/ 91 ETS_FROM_CPU_INTR0_SOURCE, /**< interrupt0 generated from a CPU, level*/ /* Used for FreeRTOS */ 92 ETS_FROM_CPU_INTR1_SOURCE, /**< interrupt1 generated from a CPU, level*/ /* Used for FreeRTOS */ 93 ETS_FROM_CPU_INTR2_SOURCE, /**< interrupt2 generated from a CPU, level*/ /* Used for DPORT Access */ 94 ETS_FROM_CPU_INTR3_SOURCE, /**< interrupt3 generated from a CPU, level*/ /* Used for DPORT Access */ 95 96 ETS_SPI1_INTR_SOURCE = 32, /**< interrupt of SPI1, level, SPI1 is for flash read/write, do not use this*/ 97 ETS_SPI2_INTR_SOURCE, /**< interrupt of SPI2, level*/ 98 ETS_SPI3_INTR_SOURCE, /**< interrupt of SPI3, level*/ 99 ETS_I2S0_INTR_SOURCE, /**< interrupt of I2S0, level*/ 100 ETS_I2S1_INTR_SOURCE, /**< interrupt of I2S1, level*/ 101 ETS_UART0_INTR_SOURCE, /**< interrupt of UART0, level*/ 102 ETS_UART1_INTR_SOURCE, /**< interrupt of UART1, level*/ 103 ETS_UART2_INTR_SOURCE, /**< interrupt of UART2, level*/ 104 ETS_SDIO_HOST_INTR_SOURCE, /**< interrupt of SD/SDIO/MMC HOST, level*/ 105 ETS_PWM0_INTR_SOURCE, /**< interrupt of PWM0, level, Reserved*/ 106 ETS_PWM1_INTR_SOURCE, /**< interrupt of PWM1, level, Reserved*/ 107 ETS_PWM2_INTR_SOURCE, /**< interrupt of PWM2, level*/ 108 ETS_PWM3_INTR_SOURCE, /**< interruot of PWM3, level*/ 109 ETS_LEDC_INTR_SOURCE, /**< interrupt of LED PWM, level*/ 110 ETS_EFUSE_INTR_SOURCE, /**< interrupt of efuse, level, not likely to use*/ 111 ETS_TWAI_INTR_SOURCE , /**< interrupt of twai, level*/ 112 113 ETS_USB_INTR_SOURCE = 48, /**< interrupt of USB, level*/ 114 ETS_RTC_CORE_INTR_SOURCE, /**< interrupt of rtc core, level, include rtc watchdog*/ 115 ETS_RMT_INTR_SOURCE, /**< interrupt of remote controller, level*/ 116 ETS_PCNT_INTR_SOURCE, /**< interrupt of pluse count, level*/ 117 ETS_I2C_EXT0_INTR_SOURCE, /**< interrupt of I2C controller1, level*/ 118 ETS_I2C_EXT1_INTR_SOURCE, /**< interrupt of I2C controller0, level*/ 119 ETS_RSA_INTR_SOURCE, /**< interrupt of RSA accelerator, level*/ 120 ETS_SHA_INTR_SOURCE, /**< interrupt of SHA accelerator, level*/ 121 ETS_AES_INTR_SOURCE, /**< interrupt of AES accelerator, level*/ 122 ETS_SPI2_DMA_INTR_SOURCE, /**< interrupt of SPI2 DMA, level*/ 123 ETS_SPI3_DMA_INTR_SOURCE, /**< interrupt of SPI3 DMA, level*/ 124 ETS_WDT_INTR_SOURCE, /**< will be cancelled*/ 125 ETS_TIMER1_INTR_SOURCE, /**< will be cancelled*/ 126 ETS_TIMER2_INTR_SOURCE, /**< will be cancelled*/ 127 ETS_TG0_T0_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER0, EDGE*/ 128 ETS_TG0_T1_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, TIMER1, EDGE*/ 129 130 ETS_TG0_WDT_EDGE_INTR_SOURCE = 64, /**< interrupt of TIMER_GROUP0, WATCH DOG, EDGE*/ 131 ETS_TG0_LACT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, LACT, EDGE*/ 132 ETS_TG1_T0_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER0, EDGE*/ 133 ETS_TG1_T1_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, TIMER1, EDGE*/ 134 ETS_TG1_WDT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP1, WATCHDOG, EDGE*/ 135 ETS_TG1_LACT_EDGE_INTR_SOURCE, /**< interrupt of TIMER_GROUP0, LACT, EDGE*/ 136 ETS_CACHE_IA_INTR_SOURCE, /**< interrupt of Cache Invalied Access, LEVEL*/ 137 ETS_SYSTIMER_TARGET0_EDGE_INTR_SOURCE, /**< interrupt of system timer 0, EDGE*/ 138 ETS_SYSTIMER_TARGET1_EDGE_INTR_SOURCE, /**< interrupt of system timer 1, EDGE*/ 139 ETS_SYSTIMER_TARGET2_EDGE_INTR_SOURCE, /**< interrupt of system timer 2, EDGE*/ 140 ETS_ASSIST_DEBUG_INTR_SOURCE, /**< interrupt of Assist debug module, LEVEL*/ 141 ETS_PMS_PRO_IRAM0_ILG_INTR_SOURCE, /**< interrupt of illegal IRAM1 access, LEVEL*/ 142 ETS_PMS_PRO_DRAM0_ILG_INTR_SOURCE, /**< interrupt of illegal DRAM0 access, LEVEL*/ 143 ETS_PMS_PRO_DPORT_ILG_INTR_SOURCE, /**< interrupt of illegal DPORT access, LEVEL*/ 144 ETS_PMS_PRO_AHB_ILG_INTR_SOURCE, /**< interrupt of illegal AHB access, LEVEL*/ 145 ETS_PMS_PRO_CACHE_ILG_INTR_SOURCE, /**< interrupt of illegal CACHE access, LEVEL*/ 146 147 ETS_PMS_DMA_APB_I_ILG_INTR_SOURCE = 80, /**< interrupt of illegal APB access, LEVEL*/ 148 ETS_PMS_DMA_RX_I_ILG_INTR_SOURCE, /**< interrupt of illegal DMA RX access, LEVEL*/ 149 ETS_PMS_DMA_TX_I_ILG_INTR_SOURCE, /**< interrupt of illegal DMA TX access, LEVEL*/ 150 ETS_SPI_MEM_REJECT_CACHE_INTR_SOURCE, /**< interrupt of SPI0 Cache access and SPI1 access rejected, LEVEL*/ 151 ETS_DMA_COPY_INTR_SOURCE, /**< interrupt of DMA copy, LEVEL*/ 152 ETS_SPI4_DMA_INTR_SOURCE, /**< interrupt of SPI4 DMA, LEVEL*/ 153 ETS_SPI4_INTR_SOURCE, /**< interrupt of SPI4, LEVEL*/ 154 ETS_ICACHE_PRELOAD_INTR_SOURCE, /**< interrupt of ICache perload operation, LEVEL*/ 155 ETS_DCACHE_PRELOAD_INTR_SOURCE, /**< interrupt of DCache preload operation, LEVEL*/ 156 ETS_APB_ADC_INTR_SOURCE, /**< interrupt of APB ADC, LEVEL*/ 157 ETS_CRYPTO_DMA_INTR_SOURCE, /**< interrupt of encrypted DMA, LEVEL*/ 158 ETS_CPU_PERI_ERROR_INTR_SOURCE, /**< interrupt of CPU peripherals error, LEVEL*/ 159 ETS_APB_PERI_ERROR_INTR_SOURCE, /**< interrupt of APB peripherals error, LEVEL*/ 160 ETS_DCACHE_SYNC_INTR_SOURCE, /**< interrupt of data cache sync done, LEVEL*/ 161 ETS_ICACHE_SYNC_INTR_SOURCE, /**< interrupt of instruction cache sync done, LEVEL*/ 162 ETS_MAX_INTR_SOURCE, /**< number of interrupt sources */ 163 164 } periph_interrput_t; 165 166 #ifdef __cplusplus 167 } 168 #endif 169 170 #endif /* _SOC_PERIPH_DEFS_H_ */ 171