1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu/qn908x/include/vectors_qn908x.h

119 lines
3.8 KiB
C
Raw Normal View History

/*
* Copyright (C) 2020 iosabi
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License v2.1. See the file LICENSE in the top level directory for more
* details.
*/
/**
* @ingroup cpu_qn908x
* @{
*
* @file
* @brief Interrupt service routine declarations NXP QN908x MCUs
*
* @author iosabi <iosabi@protonmail.com>
*
* @}
*/
#ifndef VECTORS_QN908X_H
#define VECTORS_QN908X_H
#include <stdint.h>
#include "vectors_cortexm.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Dummy handler
*/
void dummy_handler(void);
/* Device specific interrupt vectors */
void isr_ext_gpio_wakeup(void); /**< Ext GPIO wakeup */
void isr_osc(void); /**< BLE wakeup */
void isr_acmp0(void); /**< Analog comparator0 */
void isr_acmp1(void); /**< Analog comparator1 */
void isr_rtc_sec(void); /**< RTC second */
void isr_rtc_fr(void); /**< RTC free running */
void isr_cs_wakeup(void); /**< Capacitive sense wakeup */
void isr_cs(void); /**< Capacitive sense */
void isr_gpioa(void); /**< GPIO group A */
void isr_gpiob(void); /**< GPIO group B */
void isr_dma0(void); /**< DMA controller */
void isr_pin_int0(void); /**< pin or pattern match engine slice 0 */
void isr_pin_int1(void); /**< pin or pattern match engine slice 1 */
void isr_pin_int2(void); /**< pin or pattern match engine slice 2 */
void isr_pin_int3(void); /**< pin or pattern match engine slice 3 */
void isr_osc_int_low(void); /**< Inverse of OSC */
void isr_usb0(void); /**< USB device */
void isr_flexcomm0(void); /**< Flexcomm Interface 0 (USART) */
void isr_flexcomm1(void); /**< Flexcomm Interface 1 (USART, I2C) */
void isr_flexcomm2(void); /**< Flexcomm Interface 2 (SPI, I2C) */
void isr_flexcomm3(void); /**< Flexcomm Interface 3 (SPI) */
void isr_ble(void); /**< BLE interrupts */
void isr_fsp(void); /**< FSP */
void isr_qdec0(void); /**< QDEC0 */
void isr_qdec1(void); /**< QDEC1 */
void isr_ctimer0(void); /**< Standard counter/timer CTIMER0 */
void isr_ctimer1(void); /**< Standard counter/timer CTIMER1 */
void isr_ctimer2(void); /**< Standard counter/timer CTIMER2 */
void isr_ctimer3(void); /**< Standard counter/timer CTIMER3 */
void isr_wdt(void); /**< Watch dog timer */
void isr_adc(void); /**< ADC */
void isr_dac(void); /**< DAC */
void isr_xtal_ready(void); /**< High frequency crystal ready */
void isr_flash(void); /**< Flash */
void isr_spifi0(void); /**< SPI flash interface */
void isr_sct0(void); /**< SCTimer/PWM */
void isr_rng(void); /**< Random number generator */
void isr_calib(void); /**< Calibration */
void isr_ble_tx(void); /**< ble tx flag */
void isr_ble_rx(void); /**< ble rx flag */
void isr_ble_freq_hop(void); /**< ble frequency hop */
void isr_bod(void); /**< Brown out detect */
/**
* @{
* @brief In-System Programming configuration field
*
* After the interrupt vectors, at address 0x110 there's a ISP
* (In-System Programming) configuration field. Define isp_configuration to
* any | combination of the following `QN908X_ISP_*` values to change the ISP
* allowed options.
*/
__attribute__((section(".vectors.100")))
extern const uint32_t isp_configuration;
/**
* @brief SMART write enabled to ISP
*/
#define QN908X_ISP_SMART_EN 0x80
/**
* @brief SMART USB disabled to ISP
*/
#define QN908X_ISP_USB_DIS 0x20
/**
* @brief SMART UART disabled to ISP
*/
#define QN908X_ISP_UART_DIS 0x08
/**
* @brief SMART SPI disabled to ISP
*/
#define QN908X_ISP_SPI_DIS 0x02
/** @} */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* VECTORS_QN908X_H */