mirror of https://github.com/Desuuuu/klipper.git
110 lines
8.0 KiB
C
110 lines
8.0 KiB
C
|
/*************************************************************************//**
|
||
|
* @file RP2040.h
|
||
|
* @brief CMSIS-Core(M) Device Peripheral Access Layer Header File for
|
||
|
* Device RP2040
|
||
|
* @version V1.0.0
|
||
|
* @date 5. May 2021
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Copyright (c) 2009-2021 Arm Limited. All rights reserved.
|
||
|
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||
|
*
|
||
|
* SPDX-License-Identifier: Apache-2.0
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||
|
* not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*
|
||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||
|
*/
|
||
|
|
||
|
#ifndef _CMSIS_RP2040_H_
|
||
|
#define _CMSIS_RP2040_H_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* =========================================================================================================================== */
|
||
|
/* ================ Interrupt Number Definition ================ */
|
||
|
/* =========================================================================================================================== */
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
/* ======================================= ARM Cortex-M0+ Specific Interrupt Numbers ======================================= */
|
||
|
Reset_IRQn = -15, /*!< -15 Reset Vector, invoked on Power up and warm reset */
|
||
|
NonMaskableInt_IRQn = -14, /*!< -14 Non maskable Interrupt, cannot be stopped or preempted */
|
||
|
HardFault_IRQn = -13, /*!< -13 Hard Fault, all classes of Fault */
|
||
|
SVCall_IRQn = -5, /*!< -5 System Service Call via SVC instruction */
|
||
|
PendSV_IRQn = -2, /*!< -2 Pendable request for system service */
|
||
|
SysTick_IRQn = -1, /*!< -1 System Tick Timer */
|
||
|
/* =========================================== RP2040 Specific Interrupt Numbers =========================================== */
|
||
|
TIMER_IRQ_0_IRQn = 0, /*!< 0 TIMER_IRQ_0 */
|
||
|
TIMER_IRQ_1_IRQn = 1, /*!< 1 TIMER_IRQ_1 */
|
||
|
TIMER_IRQ_2_IRQn = 2, /*!< 2 TIMER_IRQ_2 */
|
||
|
TIMER_IRQ_3_IRQn = 3, /*!< 3 TIMER_IRQ_3 */
|
||
|
PWM_IRQ_WRAP_IRQn = 4, /*!< 4 PWM_IRQ_WRAP */
|
||
|
USBCTRL_IRQ_IRQn = 5, /*!< 5 USBCTRL_IRQ */
|
||
|
XIP_IRQ_IRQn = 6, /*!< 6 XIP_IRQ */
|
||
|
PIO0_IRQ_0_IRQn = 7, /*!< 7 PIO0_IRQ_0 */
|
||
|
PIO0_IRQ_1_IRQn = 8, /*!< 8 PIO0_IRQ_1 */
|
||
|
PIO1_IRQ_0_IRQn = 9, /*!< 9 PIO1_IRQ_0 */
|
||
|
PIO1_IRQ_1_IRQn = 10, /*!< 10 PIO1_IRQ_1 */
|
||
|
DMA_IRQ_0_IRQn = 11, /*!< 11 DMA_IRQ_0 */
|
||
|
DMA_IRQ_1_IRQn = 12, /*!< 12 DMA_IRQ_1 */
|
||
|
IO_IRQ_BANK0_IRQn = 13, /*!< 13 IO_IRQ_BANK0 */
|
||
|
IO_IRQ_QSPI_IRQn = 14, /*!< 14 IO_IRQ_QSPI */
|
||
|
SIO_IRQ_PROC0_IRQn = 15, /*!< 15 SIO_IRQ_PROC0 */
|
||
|
SIO_IRQ_PROC1_IRQn = 16, /*!< 16 SIO_IRQ_PROC1 */
|
||
|
CLOCKS_IRQ_IRQn = 17, /*!< 17 CLOCKS_IRQ */
|
||
|
SPI0_IRQ_IRQn = 18, /*!< 18 SPI0_IRQ */
|
||
|
SPI1_IRQ_IRQn = 19, /*!< 19 SPI1_IRQ */
|
||
|
UART0_IRQ_IRQn = 20, /*!< 20 UART0_IRQ */
|
||
|
UART1_IRQ_IRQn = 21, /*!< 21 UART1_IRQ */
|
||
|
ADC_IRQ_FIFO_IRQn = 22, /*!< 22 ADC_IRQ_FIFO */
|
||
|
I2C0_IRQ_IRQn = 23, /*!< 23 I2C0_IRQ */
|
||
|
I2C1_IRQ_IRQn = 24, /*!< 24 I2C1_IRQ */
|
||
|
RTC_IRQ_IRQn = 25 /*!< 25 RTC_IRQ */
|
||
|
} IRQn_Type;
|
||
|
|
||
|
/* =========================================================================================================================== */
|
||
|
/* ================ Processor and Core Peripheral Section ================ */
|
||
|
/* =========================================================================================================================== */
|
||
|
|
||
|
/* ========================== Configuration of the ARM Cortex-M0+ Processor and Core Peripherals =========================== */
|
||
|
#define __CM0PLUS_REV 0x0001U /*!< CM0PLUS Core Revision */
|
||
|
#define __NVIC_PRIO_BITS 2 /*!< Number of Bits used for Priority Levels */
|
||
|
#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
|
||
|
#define __VTOR_PRESENT 1 /*!< Set to 1 if CPU supports Vector Table Offset Register */
|
||
|
#define __MPU_PRESENT 1 /*!< MPU present */
|
||
|
#define __FPU_PRESENT 0 /*!< FPU present */
|
||
|
|
||
|
/** @} */ /* End of group Configuration_of_CMSIS */
|
||
|
|
||
|
#include "core_cm0plus.h" /*!< ARM Cortex-M0+ processor and core peripherals */
|
||
|
#include "system_RP2040.h" /*!< RP2040 System */
|
||
|
|
||
|
#ifndef __IM /*!< Fallback for older CMSIS versions */
|
||
|
#define __IM __I
|
||
|
#endif
|
||
|
#ifndef __OM /*!< Fallback for older CMSIS versions */
|
||
|
#define __OM __O
|
||
|
#endif
|
||
|
#ifndef __IOM /*!< Fallback for older CMSIS versions */
|
||
|
#define __IOM __IO
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* _CMSIS_RP2040_H */
|