blob: e79cba5aada93ffa068d1dace3becdfc0fbf1552 [file] [log] [blame]
/****************************************************************************
* arch/arm/src/nrf52/hardware/nrf52_memorymap.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you 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
*
* http://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.
*
****************************************************************************/
#ifndef __ARCH_ARM_SRC_NRF52_HARDWARE_NRF52_MEMORYMAP_H
#define __ARCH_ARM_SRC_NRF52_HARDWARE_NRF52_MEMORYMAP_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Memory Map */
#define NRF52_FLASH_BASE 0x00000000 /* Flash memory Start Address */
#define NRF52_SRAM_BASE 0x20000000 /* SRAM Start Address */
#define NRF52_FICR_BASE 0x10000000 /* FICR */
#define NRF52_UICR_BASE 0x10001000 /* UICR */
#define NRF52_APB0_BASE 0x40000000 /* APB */
#define NRF52_AHB0_BASE 0x50000000 /* AHB */
#define NRF52_CORTEXM4_BASE 0xe0000000 /* Cortex-M4 Private Peripheral Bus */
/* APB Peripherals */
#define NRF52_CLOCK_BASE 0x40000000
#define NRF52_POWER_BASE 0x40000000
#ifdef CONFIG_NRF52_HAVE_BPROT
# define NRF52_BPROT_BASE 0x40000000
#endif
#define NRF52_RADIO_BASE 0x40001000
#define NRF52_UARTE0_BASE 0x40002000
#define NRF52_UART0_BASE 0x40002000
#define NRF52_SPI0_BASE 0x40003000
#define NRF52_SPIM0_BASE 0x40003000
#define NRF52_SPIS0_BASE 0x40003000
#define NRF52_TWI0_BASE 0x40003000
#define NRF52_TWIM0_BASE 0x40003000
#define NRF52_TWIS0_BASE 0x40003000
#define NRF52_SPI1_BASE 0x40004000
#define NRF52_SPIM1_BASE 0x40004000
#define NRF52_SPIS1_BASE 0x40004000
#define NRF52_TWI1_BASE 0x40004000
#define NRF52_TWIM1_BASE 0x40004000
#define NRF52_TWIS1_BASE 0x40004000
#define NRF52_NFCT_BASE 0x40005000
#define NRF52_GPIOTE_BASE 0x40006000
#define NRF52_SAADC_BASE 0x40007000
#define NRF52_TIMER0_BASE 0x40008000
#define NRF52_TIMER1_BASE 0x40009000
#define NRF52_TIMER2_BASE 0x4000a000
#define NRF52_RTC0_BASE 0x4000b000
#define NRF52_TEMP_BASE 0x4000c000
#define NRF52_RNG_BASE 0x4000d000
#define NRF52_ECB_BASE 0x4000e000
#define NRF52_CCM_BASE 0x4000f000
#define NRF52_AAR_BASE 0x4000f000
#define NRF52_WDT_BASE 0x40010000
#define NRF52_RTC1_BASE 0x40011000
#define NRF52_QDEC_BASE 0x40012000
#define NRF52_LPCOMP_BASE 0x40013000
#define NRF52_COMP_BASE 0x40013000
#define NRF52_SWI0_BASE 0x40014000
#define NRF52_EGU0_BASE 0x40014000
#define NRF52_EGU1_BASE 0x40015000
#define NRF52_SWI1_BASE 0x40015000
#define NRF52_SWI2_BASE 0x40016000
#define NRF52_EGU2_BASE 0x40016000
#define NRF52_SWI3_BASE 0x40017000
#define NRF52_EGU3_BASE 0x40017000
#define NRF52_EGU4_BASE 0x40018000
#define NRF52_SWI4_BASE 0x40018000
#define NRF52_SWI5_BASE 0x40019000
#define NRF52_EGU5_BASE 0x40019000
#define NRF52_TIMER3_BASE 0x4001a000
#define NRF52_TIMER4_BASE 0x4001b000
#define NRF52_PWM0_BASE 0x4001c000
#define NRF52_PDM_BASE 0x4001d000
#ifdef CONFIG_NRF52_HAVE_ACL
# define NRF52_ACL_BASE 0x4001e000
#endif
#define NRF52_NVMC_BASE 0x4001e000
#define NRF52_PPI_BASE 0x4001f000
#define NRF52_MWU_BASE 0x40020000
#define NRF52_PWM1_BASE 0x40021000
#define NRF52_PWM2_BASE 0x40022000
#define NRF52_SPI2_BASE 0x40023000
#define NRF52_SPIS2_BASE 0x40023000
#define NRF52_SPIM2_BASE 0x40023000
#define NRF52_RTC2_BASE 0x40024000
#define NRF52_I2S_BASE 0x40025000
#define NRF52_FPU_BASE 0x40026000
#ifdef CONFIG_NRF52_HAVE_USBDEV
# define NRF52_USBD_BASE 0x40027000
#endif
#ifdef CONFIG_NRF52_HAVE_UART1
# define NRF52_UART1_BASE 0x40028000
# define NRF52_UARTE1_BASE 0x40028000
#endif
#ifdef CONFIG_NRF52_HAVE_QSPI
# define NRF52_QSPI_BASE 0x40029000
#endif
#ifdef CONFIG_NRF52_HAVE_PWM3
# define NRF52_PWM3_BASE 0x4002d000
#endif
#ifdef CONFIG_NRF52_HAVE_SPI3_MASTER
# define NRF52_SPIM3_BASE 0x4002f000
#endif
/* AHB Peripherals */
#define NRF52_GPIO_P0_BASE 0x50000000
#ifdef CONFIG_NRF52_HAVE_PORT1
# define NRF52_GPIO_P1_BASE 0x50000300
#endif
#ifdef CONFIG_NRF52_HAVE_CRYPTOCELL
# define NRF52_CCHOSTRGF_BASE 0x5002a000
# define NRF52_CRYPTOCELL_BASE 0x5002a000
#endif
#endif /* __ARCH_ARM_SRC_NRF52_HARDWARE_NRF52_MEMORYMAP_H */