nuttx/arch/arm/include/tiva/cc13x0_irq.h

140 lines
7.1 KiB
C

/************************************************************************************
* arch/arm/include/tiva/cc13x0_irq.h
*
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
#ifndef __ARCH_ARM_INCLUDE_TIVA_CC13X0_IRQ_H
#define __ARCH_ARM_INCLUDE_TIVA_CC13X0_IRQ_H
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
/******************************************************************************
* Pre-processor Definitions
******************************************************************************/
/* IRQ numbers. The IRQ number corresponds vector number and hence map directly to
* bits in the NVIC. This does, however, waste several words of memory in the IRQ
* to handle mapping tables.
*/
/* External interrupts (vectors >= 16) */
#define TIVA_IRQ_AON_GPIO_EDGE (16) /* Edge detect event from IOC */
#define TIVA_IRQ_I2C (17) /* Interrupt event from I2C */
#define TIVA_IRQ_RFC_CPE_1 (18) /* Combined Interrupt for CPE
* Generated events */
#define TIVA_IRQ_AON_RTC_COMB (20) /* Event from AON_RTC */
#define TIVA_IRQ_UART0_COMB (21) /* UART0 combined interrupt */
#define TIVA_IRQ_AUX_SWEV0 (22) /* AUX software event 0 */
#define TIVA_IRQ_SSI0_COMB (23) /* SSI0 combined interrupt */
#define TIVA_IRQ_SSI1_COMB (24) /* SSI1 combined interrupt */
#define TIVA_IRQ_RFC_CPE_0 (25) /* Combined Interrupt for CPE
* Generated events */
#define TIVA_IRQ_RFC_HW_COMB (26) /* Combined RFC hardware interrupt */
#define TIVA_IRQ_RFC_CMD_ACK (27) /* RFC Doorbell Command
* Acknowledgement Interrupt */
#define TIVA_IRQ_I2S (28) /* Interrupt event from I2S */
#define TIVA_IRQ_AUX_SWEV1 (29) /* AUX software event 1 */
#define TIVA_IRQ_WDT (30) /* Watchdog interrupt event */
#define TIVA_IRQ_GPT0A (31) /* GPT0A interrupt event */
#define TIVA_IRQ_GPT0B (32) /* GPT0B interrupt event */
#define TIVA_IRQ_GPT1A (33) /* GPT1A interrupt event */
#define TIVA_IRQ_GPT1B (34) /* GPT1B interrupt event */
#define TIVA_IRQ_GPT2A (35) /* GPT2A interrupt event */
#define TIVA_IRQ_GPT2B (36) /* GPT2B interrupt event */
#define TIVA_IRQ_GPT3A (37) /* GPT3A interrupt event */
#define TIVA_IRQ_GPT3B (38) /* GPT3B interrupt event */
#define TIVA_IRQ_CRYPTO_RESULT_AVAIL (39) /* CRYPTO result available interupt
* event */
#define TIVA_IRQ_DMA_DONE_COMB (40) /* Combined DMA done */
#define TIVA_IRQ_DMA_ERR (41) /* DMA bus error */
#define TIVA_IRQ_FLASH (42) /* FLASH controller error event */
#define TIVA_IRQ_SWEV0 (43) /* Software event 0 */
#define TIVA_IRQ_AUX_COMB (44) /* AUX combined event */
#define TIVA_IRQ_AON_PROG0 (45) /* AON programmable event 0 */
#define TIVA_IRQ_PROG0 (46) /* Programmable Interrupt 0 */
#define TIVA_IRQ_AUX_COMPA (47) /* AUX Compare A event */
#define TIVA_IRQ_AUX_ADC (48) /* AUX ADC interrupt event */
#define TIVA_IRQ_TRNG (49) /* TRNG Interrupt event */
#define NR_IRQS (50) /* Number of interrupt vectors */
#define TIVA_IRQ_NEXTINT (NR_IRQS - 16)
/* GPIO IRQs -- Up to 31 interrupts, one for each supported pin */
#if defined(CONFIG_TIVA_GPIOIRQS)
# define TIVA_IRQ_DIO_0 (NR_IRQS + 0)
# define TIVA_IRQ_DIO_1 (NR_IRQS + 1)
# define TIVA_IRQ_DIO_2 (NR_IRQS + 2)
# define TIVA_IRQ_DIO_3 (NR_IRQS + 3)
# define TIVA_IRQ_DIO_4 (NR_IRQS + 4)
# define TIVA_IRQ_DIO_5 (NR_IRQS + 5)
# define TIVA_IRQ_DIO_6 (NR_IRQS + 6)
# define TIVA_IRQ_DIO_7 (NR_IRQS + 7)
# define TIVA_IRQ_DIO_8 (NR_IRQS + 8)
# define TIVA_IRQ_DIO_9 (NR_IRQS + 9)
# define TIVA_IRQ_DIO_10 (NR_IRQS + 10)
# define TIVA_IRQ_DIO_11 (NR_IRQS + 11)
# define TIVA_IRQ_DIO_12 (NR_IRQS + 12)
# define TIVA_IRQ_DIO_13 (NR_IRQS + 13)
# define TIVA_IRQ_DIO_14 (NR_IRQS + 14)
# define TIVA_IRQ_DIO_15 (NR_IRQS + 15)
# define TIVA_IRQ_DIO_16 (NR_IRQS + 16)
# define TIVA_IRQ_DIO_17 (NR_IRQS + 17)
# define TIVA_IRQ_DIO_18 (NR_IRQS + 18)
# define TIVA_IRQ_DIO_19 (NR_IRQS + 19)
# define TIVA_IRQ_DIO_20 (NR_IRQS + 20)
# define TIVA_IRQ_DIO_21 (NR_IRQS + 21)
# define TIVA_IRQ_DIO_22 (NR_IRQS + 22)
# define TIVA_IRQ_DIO_23 (NR_IRQS + 23)
# define TIVA_IRQ_DIO_24 (NR_IRQS + 24)
# define TIVA_IRQ_DIO_25 (NR_IRQS + 25)
# define TIVA_IRQ_DIO_26 (NR_IRQS + 26)
# define TIVA_IRQ_DIO_27 (NR_IRQS + 27)
# define TIVA_IRQ_DIO_28 (NR_IRQS + 28)
# define TIVA_IRQ_DIO_29 (NR_IRQS + 29)
# define TIVA_IRQ_DIO_30 (NR_IRQS + 30)
# define TIVA_IRQ_DIO_31 (NR_IRQS + 31)
# define _NGPIOIRQS (NR_IRQS + 32)
#else
# define _NGPIOIRQS NR_IRQS
#endif
#define NR_GPIO_IRQS (_NGPIOTIRQS - NR_IRQS)
#endif /* __ARCH_ARM_INCLUDE_TIVA_CC13X0_IRQ_H */