From d6f950c918715fe8b4de499b2ffc772b2d524f54 Mon Sep 17 00:00:00 2001 From: Maureen Helm Date: Fri, 20 May 2016 15:06:07 -0500 Subject: [PATCH] ksdk: Import Kinetis SDK device support for K64F Import device-specific header files and clock configuration for K64F. Origin: NXP KSDK 2.0 URL: kex.nxp.com Maintained-by: External Change-Id: I8b4cc0fc0a832c736067459afec57939643181a7 Signed-off-by: Maureen Helm --- ext/hal/ksdk/README | 4 +- ext/hal/ksdk/devices/MK64F12/MK64F12.h | 12722 ++ ext/hal/ksdk/devices/MK64F12/MK64F12.svd | 136687 +++++++++++++++ .../ksdk/devices/MK64F12/MK64F12_features.h | 2370 + ext/hal/ksdk/devices/MK64F12/clock_config.c | 196 + ext/hal/ksdk/devices/MK64F12/clock_config.h | 53 + ext/hal/ksdk/devices/MK64F12/fsl_clock.c | 1760 + ext/hal/ksdk/devices/MK64F12/fsl_clock.h | 1510 + .../devices/MK64F12/fsl_device_registers.h | 58 + ext/hal/ksdk/devices/MK64F12/system_MK64F12.c | 247 + ext/hal/ksdk/devices/MK64F12/system_MK64F12.h | 168 + 11 files changed, 155774 insertions(+), 1 deletion(-) create mode 100644 ext/hal/ksdk/devices/MK64F12/MK64F12.h create mode 100644 ext/hal/ksdk/devices/MK64F12/MK64F12.svd create mode 100644 ext/hal/ksdk/devices/MK64F12/MK64F12_features.h create mode 100644 ext/hal/ksdk/devices/MK64F12/clock_config.c create mode 100644 ext/hal/ksdk/devices/MK64F12/clock_config.h create mode 100644 ext/hal/ksdk/devices/MK64F12/fsl_clock.c create mode 100644 ext/hal/ksdk/devices/MK64F12/fsl_clock.h create mode 100644 ext/hal/ksdk/devices/MK64F12/fsl_device_registers.h create mode 100644 ext/hal/ksdk/devices/MK64F12/system_MK64F12.c create mode 100644 ext/hal/ksdk/devices/MK64F12/system_MK64F12.h diff --git a/ext/hal/ksdk/README b/ext/hal/ksdk/README index d35d45a3506..d4aac8bfa5a 100644 --- a/ext/hal/ksdk/README +++ b/ext/hal/ksdk/README @@ -3,4 +3,6 @@ peripheral drivers for Kinetis SOCs. The sources in this directory are imported from kex.nxp.com. -The current version supported in Zephyr is KSDK 2.0. +The current version supported in Zephyr is KSDK 2.0. It currently supports the +following SOCs: +- MK64F12 (aka K64F) diff --git a/ext/hal/ksdk/devices/MK64F12/MK64F12.h b/ext/hal/ksdk/devices/MK64F12/MK64F12.h new file mode 100644 index 00000000000..ddde3d6bac2 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/MK64F12.h @@ -0,0 +1,12722 @@ +/* +** ################################################################### +** Processors: MK64FN1M0CAJ12 +** MK64FN1M0VDC12 +** MK64FN1M0VLL12 +** MK64FN1M0VLQ12 +** MK64FN1M0VMD12 +** MK64FX512VDC12 +** MK64FX512VLL12 +** MK64FX512VLQ12 +** MK64FX512VMD12 +** +** Compilers: Keil ARM C/C++ Compiler +** Freescale C/C++ for Embedded ARM +** GNU C Compiler +** IAR ANSI C/C++ Compiler for ARM +** +** Reference manual: K64P144M120SF5RM, Rev.2, January 2014 +** Version: rev. 2.9, 2016-03-21 +** Build: b160321 +** +** Abstract: +** CMSIS Peripheral Access Layer for MK64F12 +** +** Copyright (c) 1997 - 2016 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o 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. +** +** o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** Revisions: +** - rev. 1.0 (2013-08-12) +** Initial version. +** - rev. 2.0 (2013-10-29) +** Register accessor macros added to the memory map. +** Symbols for Processor Expert memory map compatibility added to the memory map. +** Startup file for gcc has been updated according to CMSIS 3.2. +** System initialization updated. +** MCG - registers updated. +** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed. +** - rev. 2.1 (2013-10-30) +** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled. +** - rev. 2.2 (2013-12-09) +** DMA - EARS register removed. +** AIPS0, AIPS1 - MPRA register updated. +** - rev. 2.3 (2014-01-24) +** Update according to reference manual rev. 2 +** ENET, MCG, MCM, SIM, USB - registers updated +** - rev. 2.4 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** - rev. 2.5 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** Module access macro module_BASES replaced by module_BASE_PTRS. +** - rev. 2.6 (2014-08-28) +** Update of system files - default clock configuration changed. +** Update of startup files - possibility to override DefaultISR added. +** - rev. 2.7 (2014-10-14) +** Interrupt INT_LPTimer renamed to INT_LPTMR0, interrupt INT_Watchdog renamed to INT_WDOG_EWM. +** - rev. 2.8 (2015-02-19) +** Renamed interrupt vector LLW to LLWU. +** - rev. 2.9 (2016-03-21) +** Added MK64FN1M0CAJ12 part. +** GPIO - renamed port instances: PTx -> GPIOx. +** +** ################################################################### +*/ + +/*! + * @file MK64F12.h + * @version 2.9 + * @date 2016-03-21 + * @brief CMSIS Peripheral Access Layer for MK64F12 + * + * CMSIS Peripheral Access Layer for MK64F12 + */ + +#ifndef _MK64F12_H_ +#define _MK64F12_H_ /**< Symbol preventing repeated inclusion */ + +/** Memory map major version (memory maps with equal major version number are + * compatible) */ +#define MCU_MEM_MAP_VERSION 0x0200U +/** Memory map minor version */ +#define MCU_MEM_MAP_VERSION_MINOR 0x0009U + +/** + * @brief Macro to calculate address of an aliased word in the peripheral + * bitband area for a peripheral register and bit (bit band region 0x40000000 to + * 0x400FFFFF). + * @param Reg Register to access. + * @param Bit Bit number to access. + * @return Address of the aliased word in the peripheral bitband area. + */ +#define BITBAND_REGADDR(Reg,Bit) (0x42000000u + (32u*((uint32_t)&(Reg) - (uint32_t)0x40000000u)) + (4u*((uint32_t)(Bit)))) +/** + * @brief Macro to access a single bit of a peripheral register (bit band region + * 0x40000000 to 0x400FFFFF) using the bit-band alias region access. Can + * be used for peripherals with 32bit access allowed. + * @param Reg Register to access. + * @param Bit Bit number to access. + * @return Value of the targeted bit in the bit band region. + */ +#define BITBAND_REG32(Reg,Bit) (*((uint32_t volatile*)(BITBAND_REGADDR((Reg),(Bit))))) +#define BITBAND_REG(Reg,Bit) (BITBAND_REG32((Reg),(Bit))) +/** + * @brief Macro to access a single bit of a peripheral register (bit band region + * 0x40000000 to 0x400FFFFF) using the bit-band alias region access. Can + * be used for peripherals with 16bit access allowed. + * @param Reg Register to access. + * @param Bit Bit number to access. + * @return Value of the targeted bit in the bit band region. + */ +#define BITBAND_REG16(Reg,Bit) (*((uint16_t volatile*)(BITBAND_REGADDR((Reg),(Bit))))) +/** + * @brief Macro to access a single bit of a peripheral register (bit band region + * 0x40000000 to 0x400FFFFF) using the bit-band alias region access. Can + * be used for peripherals with 8bit access allowed. + * @param Reg Register to access. + * @param Bit Bit number to access. + * @return Value of the targeted bit in the bit band region. + */ +#define BITBAND_REG8(Reg,Bit) (*((uint8_t volatile*)(BITBAND_REGADDR((Reg),(Bit))))) + +/* ---------------------------------------------------------------------------- + -- Interrupt vector numbers + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup Interrupt_vector_numbers Interrupt vector numbers + * @{ + */ + +/** Interrupt Number Definitions */ +#define NUMBER_OF_INT_VECTORS 102 /**< Number of interrupts in the Vector table */ + +typedef enum IRQn { + /* Auxiliary constants */ + NotAvail_IRQn = -128, /**< Not available device specific interrupt */ + + /* Core interrupts */ + NonMaskableInt_IRQn = -14, /**< Non Maskable Interrupt */ + HardFault_IRQn = -13, /**< Cortex-M4 SV Hard Fault Interrupt */ + MemoryManagement_IRQn = -12, /**< Cortex-M4 Memory Management Interrupt */ + BusFault_IRQn = -11, /**< Cortex-M4 Bus Fault Interrupt */ + UsageFault_IRQn = -10, /**< Cortex-M4 Usage Fault Interrupt */ + SVCall_IRQn = -5, /**< Cortex-M4 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /**< Cortex-M4 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /**< Cortex-M4 Pend SV Interrupt */ + SysTick_IRQn = -1, /**< Cortex-M4 System Tick Interrupt */ + + /* Device specific interrupts */ + DMA0_IRQn = 0, /**< DMA Channel 0 Transfer Complete */ + DMA1_IRQn = 1, /**< DMA Channel 1 Transfer Complete */ + DMA2_IRQn = 2, /**< DMA Channel 2 Transfer Complete */ + DMA3_IRQn = 3, /**< DMA Channel 3 Transfer Complete */ + DMA4_IRQn = 4, /**< DMA Channel 4 Transfer Complete */ + DMA5_IRQn = 5, /**< DMA Channel 5 Transfer Complete */ + DMA6_IRQn = 6, /**< DMA Channel 6 Transfer Complete */ + DMA7_IRQn = 7, /**< DMA Channel 7 Transfer Complete */ + DMA8_IRQn = 8, /**< DMA Channel 8 Transfer Complete */ + DMA9_IRQn = 9, /**< DMA Channel 9 Transfer Complete */ + DMA10_IRQn = 10, /**< DMA Channel 10 Transfer Complete */ + DMA11_IRQn = 11, /**< DMA Channel 11 Transfer Complete */ + DMA12_IRQn = 12, /**< DMA Channel 12 Transfer Complete */ + DMA13_IRQn = 13, /**< DMA Channel 13 Transfer Complete */ + DMA14_IRQn = 14, /**< DMA Channel 14 Transfer Complete */ + DMA15_IRQn = 15, /**< DMA Channel 15 Transfer Complete */ + DMA_Error_IRQn = 16, /**< DMA Error Interrupt */ + MCM_IRQn = 17, /**< Normal Interrupt */ + FTFE_IRQn = 18, /**< FTFE Command complete interrupt */ + Read_Collision_IRQn = 19, /**< Read Collision Interrupt */ + LVD_LVW_IRQn = 20, /**< Low Voltage Detect, Low Voltage Warning */ + LLWU_IRQn = 21, /**< Low Leakage Wakeup Unit */ + WDOG_EWM_IRQn = 22, /**< WDOG Interrupt */ + RNG_IRQn = 23, /**< RNG Interrupt */ + I2C0_IRQn = 24, /**< I2C0 interrupt */ + I2C1_IRQn = 25, /**< I2C1 interrupt */ + SPI0_IRQn = 26, /**< SPI0 Interrupt */ + SPI1_IRQn = 27, /**< SPI1 Interrupt */ + I2S0_Tx_IRQn = 28, /**< I2S0 transmit interrupt */ + I2S0_Rx_IRQn = 29, /**< I2S0 receive interrupt */ + UART0_LON_IRQn = 30, /**< UART0 LON interrupt */ + UART0_RX_TX_IRQn = 31, /**< UART0 Receive/Transmit interrupt */ + UART0_ERR_IRQn = 32, /**< UART0 Error interrupt */ + UART1_RX_TX_IRQn = 33, /**< UART1 Receive/Transmit interrupt */ + UART1_ERR_IRQn = 34, /**< UART1 Error interrupt */ + UART2_RX_TX_IRQn = 35, /**< UART2 Receive/Transmit interrupt */ + UART2_ERR_IRQn = 36, /**< UART2 Error interrupt */ + UART3_RX_TX_IRQn = 37, /**< UART3 Receive/Transmit interrupt */ + UART3_ERR_IRQn = 38, /**< UART3 Error interrupt */ + ADC0_IRQn = 39, /**< ADC0 interrupt */ + CMP0_IRQn = 40, /**< CMP0 interrupt */ + CMP1_IRQn = 41, /**< CMP1 interrupt */ + FTM0_IRQn = 42, /**< FTM0 fault, overflow and channels interrupt */ + FTM1_IRQn = 43, /**< FTM1 fault, overflow and channels interrupt */ + FTM2_IRQn = 44, /**< FTM2 fault, overflow and channels interrupt */ + CMT_IRQn = 45, /**< CMT interrupt */ + RTC_IRQn = 46, /**< RTC interrupt */ + RTC_Seconds_IRQn = 47, /**< RTC seconds interrupt */ + PIT0_IRQn = 48, /**< PIT timer channel 0 interrupt */ + PIT1_IRQn = 49, /**< PIT timer channel 1 interrupt */ + PIT2_IRQn = 50, /**< PIT timer channel 2 interrupt */ + PIT3_IRQn = 51, /**< PIT timer channel 3 interrupt */ + PDB0_IRQn = 52, /**< PDB0 Interrupt */ + USB0_IRQn = 53, /**< USB0 interrupt */ + USBDCD_IRQn = 54, /**< USBDCD Interrupt */ + Reserved71_IRQn = 55, /**< Reserved interrupt 71 */ + DAC0_IRQn = 56, /**< DAC0 interrupt */ + MCG_IRQn = 57, /**< MCG Interrupt */ + LPTMR0_IRQn = 58, /**< LPTimer interrupt */ + PORTA_IRQn = 59, /**< Port A interrupt */ + PORTB_IRQn = 60, /**< Port B interrupt */ + PORTC_IRQn = 61, /**< Port C interrupt */ + PORTD_IRQn = 62, /**< Port D interrupt */ + PORTE_IRQn = 63, /**< Port E interrupt */ + SWI_IRQn = 64, /**< Software interrupt */ + SPI2_IRQn = 65, /**< SPI2 Interrupt */ + UART4_RX_TX_IRQn = 66, /**< UART4 Receive/Transmit interrupt */ + UART4_ERR_IRQn = 67, /**< UART4 Error interrupt */ + UART5_RX_TX_IRQn = 68, /**< UART5 Receive/Transmit interrupt */ + UART5_ERR_IRQn = 69, /**< UART5 Error interrupt */ + CMP2_IRQn = 70, /**< CMP2 interrupt */ + FTM3_IRQn = 71, /**< FTM3 fault, overflow and channels interrupt */ + DAC1_IRQn = 72, /**< DAC1 interrupt */ + ADC1_IRQn = 73, /**< ADC1 interrupt */ + I2C2_IRQn = 74, /**< I2C2 interrupt */ + CAN0_ORed_Message_buffer_IRQn = 75, /**< CAN0 OR'd message buffers interrupt */ + CAN0_Bus_Off_IRQn = 76, /**< CAN0 bus off interrupt */ + CAN0_Error_IRQn = 77, /**< CAN0 error interrupt */ + CAN0_Tx_Warning_IRQn = 78, /**< CAN0 Tx warning interrupt */ + CAN0_Rx_Warning_IRQn = 79, /**< CAN0 Rx warning interrupt */ + CAN0_Wake_Up_IRQn = 80, /**< CAN0 wake up interrupt */ + SDHC_IRQn = 81, /**< SDHC interrupt */ + ENET_1588_Timer_IRQn = 82, /**< Ethernet MAC IEEE 1588 Timer Interrupt */ + ENET_Transmit_IRQn = 83, /**< Ethernet MAC Transmit Interrupt */ + ENET_Receive_IRQn = 84, /**< Ethernet MAC Receive Interrupt */ + ENET_Error_IRQn = 85 /**< Ethernet MAC Error and miscelaneous Interrupt */ +} IRQn_Type; + +/*! + * @} + */ /* end of group Interrupt_vector_numbers */ + + +/* ---------------------------------------------------------------------------- + -- Cortex M4 Core Configuration + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup Cortex_Core_Configuration Cortex M4 Core Configuration + * @{ + */ + +#define __MPU_PRESENT 0 /**< Defines if an MPU is present or not */ +#define __NVIC_PRIO_BITS 4 /**< Number of priority bits implemented in the NVIC */ +#define __Vendor_SysTickConfig 0 /**< Vendor specific implementation of SysTickConfig is defined */ +#define __FPU_PRESENT 1 /**< Defines if an FPU is present or not */ + +#include "core_cm4.h" /* Core Peripheral Access Layer */ +#include "system_MK64F12.h" /* Device specific configuration file */ + +/*! + * @} + */ /* end of group Cortex_Core_Configuration */ + + +/* ---------------------------------------------------------------------------- + -- Mapping Information + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup Mapping_Information Mapping Information + * @{ + */ + +/** Mapping Information */ +/*! + * @addtogroup edma_request + * @{ + */ + +/******************************************************************************* + * Definitions + ******************************************************************************/ + +/*! + * @brief Structure for the DMA hardware request + * + * Defines the structure for the DMA hardware request collections. The user can configure the + * hardware request into DMAMUX to trigger the DMA transfer accordingly. The index + * of the hardware request varies according to the to SoC. + */ +typedef enum _dma_request_source +{ + kDmaRequestMux0Disable = 0|0x100U, /**< DMAMUX TriggerDisabled. */ + kDmaRequestMux0Reserved1 = 1|0x100U, /**< Reserved1 */ + kDmaRequestMux0UART0Rx = 2|0x100U, /**< UART0 Receive. */ + kDmaRequestMux0UART0Tx = 3|0x100U, /**< UART0 Transmit. */ + kDmaRequestMux0UART1Rx = 4|0x100U, /**< UART1 Receive. */ + kDmaRequestMux0UART1Tx = 5|0x100U, /**< UART1 Transmit. */ + kDmaRequestMux0UART2Rx = 6|0x100U, /**< UART2 Receive. */ + kDmaRequestMux0UART2Tx = 7|0x100U, /**< UART2 Transmit. */ + kDmaRequestMux0UART3Rx = 8|0x100U, /**< UART3 Receive. */ + kDmaRequestMux0UART3Tx = 9|0x100U, /**< UART3 Transmit. */ + kDmaRequestMux0UART4 = 10|0x100U, /**< UART4 Transmit or Receive. */ + kDmaRequestMux0UART5 = 11|0x100U, /**< UART5 Transmit or Receive. */ + kDmaRequestMux0I2S0Rx = 12|0x100U, /**< I2S0 Receive. */ + kDmaRequestMux0I2S0Tx = 13|0x100U, /**< I2S0 Transmit. */ + kDmaRequestMux0SPI0Rx = 14|0x100U, /**< SPI0 Receive. */ + kDmaRequestMux0SPI0Tx = 15|0x100U, /**< SPI0 Transmit. */ + kDmaRequestMux0SPI1 = 16|0x100U, /**< SPI1 Transmit or Receive. */ + kDmaRequestMux0SPI2 = 17|0x100U, /**< SPI2 Transmit or Receive. */ + kDmaRequestMux0I2C0 = 18|0x100U, /**< I2C0. */ + kDmaRequestMux0I2C1I2C2 = 19|0x100U, /**< I2C1 and I2C2. */ + kDmaRequestMux0I2C1 = 19|0x100U, /**< I2C1 and I2C2. */ + kDmaRequestMux0I2C2 = 19|0x100U, /**< I2C1 and I2C2. */ + kDmaRequestMux0FTM0Channel0 = 20|0x100U, /**< FTM0 C0V. */ + kDmaRequestMux0FTM0Channel1 = 21|0x100U, /**< FTM0 C1V. */ + kDmaRequestMux0FTM0Channel2 = 22|0x100U, /**< FTM0 C2V. */ + kDmaRequestMux0FTM0Channel3 = 23|0x100U, /**< FTM0 C3V. */ + kDmaRequestMux0FTM0Channel4 = 24|0x100U, /**< FTM0 C4V. */ + kDmaRequestMux0FTM0Channel5 = 25|0x100U, /**< FTM0 C5V. */ + kDmaRequestMux0FTM0Channel6 = 26|0x100U, /**< FTM0 C6V. */ + kDmaRequestMux0FTM0Channel7 = 27|0x100U, /**< FTM0 C7V. */ + kDmaRequestMux0FTM1Channel0 = 28|0x100U, /**< FTM1 C0V. */ + kDmaRequestMux0FTM1Channel1 = 29|0x100U, /**< FTM1 C1V. */ + kDmaRequestMux0FTM2Channel0 = 30|0x100U, /**< FTM2 C0V. */ + kDmaRequestMux0FTM2Channel1 = 31|0x100U, /**< FTM2 C1V. */ + kDmaRequestMux0FTM3Channel0 = 32|0x100U, /**< FTM3 C0V. */ + kDmaRequestMux0FTM3Channel1 = 33|0x100U, /**< FTM3 C1V. */ + kDmaRequestMux0FTM3Channel2 = 34|0x100U, /**< FTM3 C2V. */ + kDmaRequestMux0FTM3Channel3 = 35|0x100U, /**< FTM3 C3V. */ + kDmaRequestMux0FTM3Channel4 = 36|0x100U, /**< FTM3 C4V. */ + kDmaRequestMux0FTM3Channel5 = 37|0x100U, /**< FTM3 C5V. */ + kDmaRequestMux0FTM3Channel6 = 38|0x100U, /**< FTM3 C6V. */ + kDmaRequestMux0FTM3Channel7 = 39|0x100U, /**< FTM3 C7V. */ + kDmaRequestMux0ADC0 = 40|0x100U, /**< ADC0. */ + kDmaRequestMux0ADC1 = 41|0x100U, /**< ADC1. */ + kDmaRequestMux0CMP0 = 42|0x100U, /**< CMP0. */ + kDmaRequestMux0CMP1 = 43|0x100U, /**< CMP1. */ + kDmaRequestMux0CMP2 = 44|0x100U, /**< CMP2. */ + kDmaRequestMux0DAC0 = 45|0x100U, /**< DAC0. */ + kDmaRequestMux0DAC1 = 46|0x100U, /**< DAC1. */ + kDmaRequestMux0CMT = 47|0x100U, /**< CMT. */ + kDmaRequestMux0PDB = 48|0x100U, /**< PDB0. */ + kDmaRequestMux0PortA = 49|0x100U, /**< PTA. */ + kDmaRequestMux0PortB = 50|0x100U, /**< PTB. */ + kDmaRequestMux0PortC = 51|0x100U, /**< PTC. */ + kDmaRequestMux0PortD = 52|0x100U, /**< PTD. */ + kDmaRequestMux0PortE = 53|0x100U, /**< PTE. */ + kDmaRequestMux0IEEE1588Timer0 = 54|0x100U, /**< ENET IEEE 1588 timer 0. */ + kDmaRequestMux0IEEE1588Timer1 = 55|0x100U, /**< ENET IEEE 1588 timer 1. */ + kDmaRequestMux0IEEE1588Timer2 = 56|0x100U, /**< ENET IEEE 1588 timer 2. */ + kDmaRequestMux0IEEE1588Timer3 = 57|0x100U, /**< ENET IEEE 1588 timer 3. */ + kDmaRequestMux0AlwaysOn58 = 58|0x100U, /**< DMAMUX Always Enabled slot. */ + kDmaRequestMux0AlwaysOn59 = 59|0x100U, /**< DMAMUX Always Enabled slot. */ + kDmaRequestMux0AlwaysOn60 = 60|0x100U, /**< DMAMUX Always Enabled slot. */ + kDmaRequestMux0AlwaysOn61 = 61|0x100U, /**< DMAMUX Always Enabled slot. */ + kDmaRequestMux0AlwaysOn62 = 62|0x100U, /**< DMAMUX Always Enabled slot. */ + kDmaRequestMux0AlwaysOn63 = 63|0x100U, /**< DMAMUX Always Enabled slot. */ +} dma_request_source_t; + +/* @} */ + + +/*! + * @} + */ /* end of group Mapping_Information */ + + +/* ---------------------------------------------------------------------------- + -- Device Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup Peripheral_access_layer Device Peripheral Access Layer + * @{ + */ + + +/* +** Start of section using anonymous unions +*/ + +#if defined(__ARMCC_VERSION) + #pragma push + #pragma anon_unions +#elif defined(__CWCC__) + #pragma push + #pragma cpp_extensions on +#elif defined(__GNUC__) + /* anonymous unions are enabled by default */ +#elif defined(__IAR_SYSTEMS_ICC__) + #pragma language=extended +#else + #error Not supported compiler type +#endif + +/* ---------------------------------------------------------------------------- + -- ADC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup ADC_Peripheral_Access_Layer ADC Peripheral Access Layer + * @{ + */ + +/** ADC - Register Layout Typedef */ +typedef struct { + __IO uint32_t SC1[2]; /**< ADC Status and Control Registers 1, array offset: 0x0, array step: 0x4 */ + __IO uint32_t CFG1; /**< ADC Configuration Register 1, offset: 0x8 */ + __IO uint32_t CFG2; /**< ADC Configuration Register 2, offset: 0xC */ + __I uint32_t R[2]; /**< ADC Data Result Register, array offset: 0x10, array step: 0x4 */ + __IO uint32_t CV1; /**< Compare Value Registers, offset: 0x18 */ + __IO uint32_t CV2; /**< Compare Value Registers, offset: 0x1C */ + __IO uint32_t SC2; /**< Status and Control Register 2, offset: 0x20 */ + __IO uint32_t SC3; /**< Status and Control Register 3, offset: 0x24 */ + __IO uint32_t OFS; /**< ADC Offset Correction Register, offset: 0x28 */ + __IO uint32_t PG; /**< ADC Plus-Side Gain Register, offset: 0x2C */ + __IO uint32_t MG; /**< ADC Minus-Side Gain Register, offset: 0x30 */ + __IO uint32_t CLPD; /**< ADC Plus-Side General Calibration Value Register, offset: 0x34 */ + __IO uint32_t CLPS; /**< ADC Plus-Side General Calibration Value Register, offset: 0x38 */ + __IO uint32_t CLP4; /**< ADC Plus-Side General Calibration Value Register, offset: 0x3C */ + __IO uint32_t CLP3; /**< ADC Plus-Side General Calibration Value Register, offset: 0x40 */ + __IO uint32_t CLP2; /**< ADC Plus-Side General Calibration Value Register, offset: 0x44 */ + __IO uint32_t CLP1; /**< ADC Plus-Side General Calibration Value Register, offset: 0x48 */ + __IO uint32_t CLP0; /**< ADC Plus-Side General Calibration Value Register, offset: 0x4C */ + uint8_t RESERVED_0[4]; + __IO uint32_t CLMD; /**< ADC Minus-Side General Calibration Value Register, offset: 0x54 */ + __IO uint32_t CLMS; /**< ADC Minus-Side General Calibration Value Register, offset: 0x58 */ + __IO uint32_t CLM4; /**< ADC Minus-Side General Calibration Value Register, offset: 0x5C */ + __IO uint32_t CLM3; /**< ADC Minus-Side General Calibration Value Register, offset: 0x60 */ + __IO uint32_t CLM2; /**< ADC Minus-Side General Calibration Value Register, offset: 0x64 */ + __IO uint32_t CLM1; /**< ADC Minus-Side General Calibration Value Register, offset: 0x68 */ + __IO uint32_t CLM0; /**< ADC Minus-Side General Calibration Value Register, offset: 0x6C */ +} ADC_Type; + +/* ---------------------------------------------------------------------------- + -- ADC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup ADC_Register_Masks ADC Register Masks + * @{ + */ + +/*! @name SC1 - ADC Status and Control Registers 1 */ +#define ADC_SC1_ADCH_MASK (0x1FU) +#define ADC_SC1_ADCH_SHIFT (0U) +#define ADC_SC1_ADCH(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC1_ADCH_SHIFT)) & ADC_SC1_ADCH_MASK) +#define ADC_SC1_DIFF_MASK (0x20U) +#define ADC_SC1_DIFF_SHIFT (5U) +#define ADC_SC1_DIFF(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC1_DIFF_SHIFT)) & ADC_SC1_DIFF_MASK) +#define ADC_SC1_AIEN_MASK (0x40U) +#define ADC_SC1_AIEN_SHIFT (6U) +#define ADC_SC1_AIEN(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC1_AIEN_SHIFT)) & ADC_SC1_AIEN_MASK) +#define ADC_SC1_COCO_MASK (0x80U) +#define ADC_SC1_COCO_SHIFT (7U) +#define ADC_SC1_COCO(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC1_COCO_SHIFT)) & ADC_SC1_COCO_MASK) + +/* The count of ADC_SC1 */ +#define ADC_SC1_COUNT (2U) + +/*! @name CFG1 - ADC Configuration Register 1 */ +#define ADC_CFG1_ADICLK_MASK (0x3U) +#define ADC_CFG1_ADICLK_SHIFT (0U) +#define ADC_CFG1_ADICLK(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG1_ADICLK_SHIFT)) & ADC_CFG1_ADICLK_MASK) +#define ADC_CFG1_MODE_MASK (0xCU) +#define ADC_CFG1_MODE_SHIFT (2U) +#define ADC_CFG1_MODE(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG1_MODE_SHIFT)) & ADC_CFG1_MODE_MASK) +#define ADC_CFG1_ADLSMP_MASK (0x10U) +#define ADC_CFG1_ADLSMP_SHIFT (4U) +#define ADC_CFG1_ADLSMP(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG1_ADLSMP_SHIFT)) & ADC_CFG1_ADLSMP_MASK) +#define ADC_CFG1_ADIV_MASK (0x60U) +#define ADC_CFG1_ADIV_SHIFT (5U) +#define ADC_CFG1_ADIV(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG1_ADIV_SHIFT)) & ADC_CFG1_ADIV_MASK) +#define ADC_CFG1_ADLPC_MASK (0x80U) +#define ADC_CFG1_ADLPC_SHIFT (7U) +#define ADC_CFG1_ADLPC(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG1_ADLPC_SHIFT)) & ADC_CFG1_ADLPC_MASK) + +/*! @name CFG2 - ADC Configuration Register 2 */ +#define ADC_CFG2_ADLSTS_MASK (0x3U) +#define ADC_CFG2_ADLSTS_SHIFT (0U) +#define ADC_CFG2_ADLSTS(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG2_ADLSTS_SHIFT)) & ADC_CFG2_ADLSTS_MASK) +#define ADC_CFG2_ADHSC_MASK (0x4U) +#define ADC_CFG2_ADHSC_SHIFT (2U) +#define ADC_CFG2_ADHSC(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG2_ADHSC_SHIFT)) & ADC_CFG2_ADHSC_MASK) +#define ADC_CFG2_ADACKEN_MASK (0x8U) +#define ADC_CFG2_ADACKEN_SHIFT (3U) +#define ADC_CFG2_ADACKEN(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG2_ADACKEN_SHIFT)) & ADC_CFG2_ADACKEN_MASK) +#define ADC_CFG2_MUXSEL_MASK (0x10U) +#define ADC_CFG2_MUXSEL_SHIFT (4U) +#define ADC_CFG2_MUXSEL(x) (((uint32_t)(((uint32_t)(x)) << ADC_CFG2_MUXSEL_SHIFT)) & ADC_CFG2_MUXSEL_MASK) + +/*! @name R - ADC Data Result Register */ +#define ADC_R_D_MASK (0xFFFFU) +#define ADC_R_D_SHIFT (0U) +#define ADC_R_D(x) (((uint32_t)(((uint32_t)(x)) << ADC_R_D_SHIFT)) & ADC_R_D_MASK) + +/* The count of ADC_R */ +#define ADC_R_COUNT (2U) + +/*! @name CV1 - Compare Value Registers */ +#define ADC_CV1_CV_MASK (0xFFFFU) +#define ADC_CV1_CV_SHIFT (0U) +#define ADC_CV1_CV(x) (((uint32_t)(((uint32_t)(x)) << ADC_CV1_CV_SHIFT)) & ADC_CV1_CV_MASK) + +/*! @name CV2 - Compare Value Registers */ +#define ADC_CV2_CV_MASK (0xFFFFU) +#define ADC_CV2_CV_SHIFT (0U) +#define ADC_CV2_CV(x) (((uint32_t)(((uint32_t)(x)) << ADC_CV2_CV_SHIFT)) & ADC_CV2_CV_MASK) + +/*! @name SC2 - Status and Control Register 2 */ +#define ADC_SC2_REFSEL_MASK (0x3U) +#define ADC_SC2_REFSEL_SHIFT (0U) +#define ADC_SC2_REFSEL(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_REFSEL_SHIFT)) & ADC_SC2_REFSEL_MASK) +#define ADC_SC2_DMAEN_MASK (0x4U) +#define ADC_SC2_DMAEN_SHIFT (2U) +#define ADC_SC2_DMAEN(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_DMAEN_SHIFT)) & ADC_SC2_DMAEN_MASK) +#define ADC_SC2_ACREN_MASK (0x8U) +#define ADC_SC2_ACREN_SHIFT (3U) +#define ADC_SC2_ACREN(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_ACREN_SHIFT)) & ADC_SC2_ACREN_MASK) +#define ADC_SC2_ACFGT_MASK (0x10U) +#define ADC_SC2_ACFGT_SHIFT (4U) +#define ADC_SC2_ACFGT(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_ACFGT_SHIFT)) & ADC_SC2_ACFGT_MASK) +#define ADC_SC2_ACFE_MASK (0x20U) +#define ADC_SC2_ACFE_SHIFT (5U) +#define ADC_SC2_ACFE(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_ACFE_SHIFT)) & ADC_SC2_ACFE_MASK) +#define ADC_SC2_ADTRG_MASK (0x40U) +#define ADC_SC2_ADTRG_SHIFT (6U) +#define ADC_SC2_ADTRG(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_ADTRG_SHIFT)) & ADC_SC2_ADTRG_MASK) +#define ADC_SC2_ADACT_MASK (0x80U) +#define ADC_SC2_ADACT_SHIFT (7U) +#define ADC_SC2_ADACT(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC2_ADACT_SHIFT)) & ADC_SC2_ADACT_MASK) + +/*! @name SC3 - Status and Control Register 3 */ +#define ADC_SC3_AVGS_MASK (0x3U) +#define ADC_SC3_AVGS_SHIFT (0U) +#define ADC_SC3_AVGS(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC3_AVGS_SHIFT)) & ADC_SC3_AVGS_MASK) +#define ADC_SC3_AVGE_MASK (0x4U) +#define ADC_SC3_AVGE_SHIFT (2U) +#define ADC_SC3_AVGE(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC3_AVGE_SHIFT)) & ADC_SC3_AVGE_MASK) +#define ADC_SC3_ADCO_MASK (0x8U) +#define ADC_SC3_ADCO_SHIFT (3U) +#define ADC_SC3_ADCO(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC3_ADCO_SHIFT)) & ADC_SC3_ADCO_MASK) +#define ADC_SC3_CALF_MASK (0x40U) +#define ADC_SC3_CALF_SHIFT (6U) +#define ADC_SC3_CALF(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC3_CALF_SHIFT)) & ADC_SC3_CALF_MASK) +#define ADC_SC3_CAL_MASK (0x80U) +#define ADC_SC3_CAL_SHIFT (7U) +#define ADC_SC3_CAL(x) (((uint32_t)(((uint32_t)(x)) << ADC_SC3_CAL_SHIFT)) & ADC_SC3_CAL_MASK) + +/*! @name OFS - ADC Offset Correction Register */ +#define ADC_OFS_OFS_MASK (0xFFFFU) +#define ADC_OFS_OFS_SHIFT (0U) +#define ADC_OFS_OFS(x) (((uint32_t)(((uint32_t)(x)) << ADC_OFS_OFS_SHIFT)) & ADC_OFS_OFS_MASK) + +/*! @name PG - ADC Plus-Side Gain Register */ +#define ADC_PG_PG_MASK (0xFFFFU) +#define ADC_PG_PG_SHIFT (0U) +#define ADC_PG_PG(x) (((uint32_t)(((uint32_t)(x)) << ADC_PG_PG_SHIFT)) & ADC_PG_PG_MASK) + +/*! @name MG - ADC Minus-Side Gain Register */ +#define ADC_MG_MG_MASK (0xFFFFU) +#define ADC_MG_MG_SHIFT (0U) +#define ADC_MG_MG(x) (((uint32_t)(((uint32_t)(x)) << ADC_MG_MG_SHIFT)) & ADC_MG_MG_MASK) + +/*! @name CLPD - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLPD_CLPD_MASK (0x3FU) +#define ADC_CLPD_CLPD_SHIFT (0U) +#define ADC_CLPD_CLPD(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLPD_CLPD_SHIFT)) & ADC_CLPD_CLPD_MASK) + +/*! @name CLPS - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLPS_CLPS_MASK (0x3FU) +#define ADC_CLPS_CLPS_SHIFT (0U) +#define ADC_CLPS_CLPS(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLPS_CLPS_SHIFT)) & ADC_CLPS_CLPS_MASK) + +/*! @name CLP4 - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLP4_CLP4_MASK (0x3FFU) +#define ADC_CLP4_CLP4_SHIFT (0U) +#define ADC_CLP4_CLP4(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLP4_CLP4_SHIFT)) & ADC_CLP4_CLP4_MASK) + +/*! @name CLP3 - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLP3_CLP3_MASK (0x1FFU) +#define ADC_CLP3_CLP3_SHIFT (0U) +#define ADC_CLP3_CLP3(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLP3_CLP3_SHIFT)) & ADC_CLP3_CLP3_MASK) + +/*! @name CLP2 - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLP2_CLP2_MASK (0xFFU) +#define ADC_CLP2_CLP2_SHIFT (0U) +#define ADC_CLP2_CLP2(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLP2_CLP2_SHIFT)) & ADC_CLP2_CLP2_MASK) + +/*! @name CLP1 - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLP1_CLP1_MASK (0x7FU) +#define ADC_CLP1_CLP1_SHIFT (0U) +#define ADC_CLP1_CLP1(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLP1_CLP1_SHIFT)) & ADC_CLP1_CLP1_MASK) + +/*! @name CLP0 - ADC Plus-Side General Calibration Value Register */ +#define ADC_CLP0_CLP0_MASK (0x3FU) +#define ADC_CLP0_CLP0_SHIFT (0U) +#define ADC_CLP0_CLP0(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLP0_CLP0_SHIFT)) & ADC_CLP0_CLP0_MASK) + +/*! @name CLMD - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLMD_CLMD_MASK (0x3FU) +#define ADC_CLMD_CLMD_SHIFT (0U) +#define ADC_CLMD_CLMD(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLMD_CLMD_SHIFT)) & ADC_CLMD_CLMD_MASK) + +/*! @name CLMS - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLMS_CLMS_MASK (0x3FU) +#define ADC_CLMS_CLMS_SHIFT (0U) +#define ADC_CLMS_CLMS(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLMS_CLMS_SHIFT)) & ADC_CLMS_CLMS_MASK) + +/*! @name CLM4 - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLM4_CLM4_MASK (0x3FFU) +#define ADC_CLM4_CLM4_SHIFT (0U) +#define ADC_CLM4_CLM4(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLM4_CLM4_SHIFT)) & ADC_CLM4_CLM4_MASK) + +/*! @name CLM3 - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLM3_CLM3_MASK (0x1FFU) +#define ADC_CLM3_CLM3_SHIFT (0U) +#define ADC_CLM3_CLM3(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLM3_CLM3_SHIFT)) & ADC_CLM3_CLM3_MASK) + +/*! @name CLM2 - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLM2_CLM2_MASK (0xFFU) +#define ADC_CLM2_CLM2_SHIFT (0U) +#define ADC_CLM2_CLM2(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLM2_CLM2_SHIFT)) & ADC_CLM2_CLM2_MASK) + +/*! @name CLM1 - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLM1_CLM1_MASK (0x7FU) +#define ADC_CLM1_CLM1_SHIFT (0U) +#define ADC_CLM1_CLM1(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLM1_CLM1_SHIFT)) & ADC_CLM1_CLM1_MASK) + +/*! @name CLM0 - ADC Minus-Side General Calibration Value Register */ +#define ADC_CLM0_CLM0_MASK (0x3FU) +#define ADC_CLM0_CLM0_SHIFT (0U) +#define ADC_CLM0_CLM0(x) (((uint32_t)(((uint32_t)(x)) << ADC_CLM0_CLM0_SHIFT)) & ADC_CLM0_CLM0_MASK) + + +/*! + * @} + */ /* end of group ADC_Register_Masks */ + + +/* ADC - Peripheral instance base addresses */ +/** Peripheral ADC0 base address */ +#define ADC0_BASE (0x4003B000u) +/** Peripheral ADC0 base pointer */ +#define ADC0 ((ADC_Type *)ADC0_BASE) +/** Peripheral ADC1 base address */ +#define ADC1_BASE (0x400BB000u) +/** Peripheral ADC1 base pointer */ +#define ADC1 ((ADC_Type *)ADC1_BASE) +/** Array initializer of ADC peripheral base addresses */ +#define ADC_BASE_ADDRS { ADC0_BASE, ADC1_BASE } +/** Array initializer of ADC peripheral base pointers */ +#define ADC_BASE_PTRS { ADC0, ADC1 } +/** Interrupt vectors for the ADC peripheral type */ +#define ADC_IRQS { ADC0_IRQn, ADC1_IRQn } + +/*! + * @} + */ /* end of group ADC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- AIPS Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup AIPS_Peripheral_Access_Layer AIPS Peripheral Access Layer + * @{ + */ + +/** AIPS - Register Layout Typedef */ +typedef struct { + __IO uint32_t MPRA; /**< Master Privilege Register A, offset: 0x0 */ + uint8_t RESERVED_0[28]; + __IO uint32_t PACRA; /**< Peripheral Access Control Register, offset: 0x20 */ + __IO uint32_t PACRB; /**< Peripheral Access Control Register, offset: 0x24 */ + __IO uint32_t PACRC; /**< Peripheral Access Control Register, offset: 0x28 */ + __IO uint32_t PACRD; /**< Peripheral Access Control Register, offset: 0x2C */ + uint8_t RESERVED_1[16]; + __IO uint32_t PACRE; /**< Peripheral Access Control Register, offset: 0x40 */ + __IO uint32_t PACRF; /**< Peripheral Access Control Register, offset: 0x44 */ + __IO uint32_t PACRG; /**< Peripheral Access Control Register, offset: 0x48 */ + __IO uint32_t PACRH; /**< Peripheral Access Control Register, offset: 0x4C */ + __IO uint32_t PACRI; /**< Peripheral Access Control Register, offset: 0x50 */ + __IO uint32_t PACRJ; /**< Peripheral Access Control Register, offset: 0x54 */ + __IO uint32_t PACRK; /**< Peripheral Access Control Register, offset: 0x58 */ + __IO uint32_t PACRL; /**< Peripheral Access Control Register, offset: 0x5C */ + __IO uint32_t PACRM; /**< Peripheral Access Control Register, offset: 0x60 */ + __IO uint32_t PACRN; /**< Peripheral Access Control Register, offset: 0x64 */ + __IO uint32_t PACRO; /**< Peripheral Access Control Register, offset: 0x68 */ + __IO uint32_t PACRP; /**< Peripheral Access Control Register, offset: 0x6C */ + uint8_t RESERVED_2[16]; + __IO uint32_t PACRU; /**< Peripheral Access Control Register, offset: 0x80 */ +} AIPS_Type; + +/* ---------------------------------------------------------------------------- + -- AIPS Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup AIPS_Register_Masks AIPS Register Masks + * @{ + */ + +/*! @name MPRA - Master Privilege Register A */ +#define AIPS_MPRA_MPL5_MASK (0x100U) +#define AIPS_MPRA_MPL5_SHIFT (8U) +#define AIPS_MPRA_MPL5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MPL5_SHIFT)) & AIPS_MPRA_MPL5_MASK) +#define AIPS_MPRA_MTW5_MASK (0x200U) +#define AIPS_MPRA_MTW5_SHIFT (9U) +#define AIPS_MPRA_MTW5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTW5_SHIFT)) & AIPS_MPRA_MTW5_MASK) +#define AIPS_MPRA_MTR5_MASK (0x400U) +#define AIPS_MPRA_MTR5_SHIFT (10U) +#define AIPS_MPRA_MTR5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTR5_SHIFT)) & AIPS_MPRA_MTR5_MASK) +#define AIPS_MPRA_MPL4_MASK (0x1000U) +#define AIPS_MPRA_MPL4_SHIFT (12U) +#define AIPS_MPRA_MPL4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MPL4_SHIFT)) & AIPS_MPRA_MPL4_MASK) +#define AIPS_MPRA_MTW4_MASK (0x2000U) +#define AIPS_MPRA_MTW4_SHIFT (13U) +#define AIPS_MPRA_MTW4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTW4_SHIFT)) & AIPS_MPRA_MTW4_MASK) +#define AIPS_MPRA_MTR4_MASK (0x4000U) +#define AIPS_MPRA_MTR4_SHIFT (14U) +#define AIPS_MPRA_MTR4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTR4_SHIFT)) & AIPS_MPRA_MTR4_MASK) +#define AIPS_MPRA_MPL3_MASK (0x10000U) +#define AIPS_MPRA_MPL3_SHIFT (16U) +#define AIPS_MPRA_MPL3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MPL3_SHIFT)) & AIPS_MPRA_MPL3_MASK) +#define AIPS_MPRA_MTW3_MASK (0x20000U) +#define AIPS_MPRA_MTW3_SHIFT (17U) +#define AIPS_MPRA_MTW3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTW3_SHIFT)) & AIPS_MPRA_MTW3_MASK) +#define AIPS_MPRA_MTR3_MASK (0x40000U) +#define AIPS_MPRA_MTR3_SHIFT (18U) +#define AIPS_MPRA_MTR3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTR3_SHIFT)) & AIPS_MPRA_MTR3_MASK) +#define AIPS_MPRA_MPL2_MASK (0x100000U) +#define AIPS_MPRA_MPL2_SHIFT (20U) +#define AIPS_MPRA_MPL2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MPL2_SHIFT)) & AIPS_MPRA_MPL2_MASK) +#define AIPS_MPRA_MTW2_MASK (0x200000U) +#define AIPS_MPRA_MTW2_SHIFT (21U) +#define AIPS_MPRA_MTW2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTW2_SHIFT)) & AIPS_MPRA_MTW2_MASK) +#define AIPS_MPRA_MTR2_MASK (0x400000U) +#define AIPS_MPRA_MTR2_SHIFT (22U) +#define AIPS_MPRA_MTR2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTR2_SHIFT)) & AIPS_MPRA_MTR2_MASK) +#define AIPS_MPRA_MPL1_MASK (0x1000000U) +#define AIPS_MPRA_MPL1_SHIFT (24U) +#define AIPS_MPRA_MPL1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MPL1_SHIFT)) & AIPS_MPRA_MPL1_MASK) +#define AIPS_MPRA_MTW1_MASK (0x2000000U) +#define AIPS_MPRA_MTW1_SHIFT (25U) +#define AIPS_MPRA_MTW1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTW1_SHIFT)) & AIPS_MPRA_MTW1_MASK) +#define AIPS_MPRA_MTR1_MASK (0x4000000U) +#define AIPS_MPRA_MTR1_SHIFT (26U) +#define AIPS_MPRA_MTR1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTR1_SHIFT)) & AIPS_MPRA_MTR1_MASK) +#define AIPS_MPRA_MPL0_MASK (0x10000000U) +#define AIPS_MPRA_MPL0_SHIFT (28U) +#define AIPS_MPRA_MPL0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MPL0_SHIFT)) & AIPS_MPRA_MPL0_MASK) +#define AIPS_MPRA_MTW0_MASK (0x20000000U) +#define AIPS_MPRA_MTW0_SHIFT (29U) +#define AIPS_MPRA_MTW0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTW0_SHIFT)) & AIPS_MPRA_MTW0_MASK) +#define AIPS_MPRA_MTR0_MASK (0x40000000U) +#define AIPS_MPRA_MTR0_SHIFT (30U) +#define AIPS_MPRA_MTR0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_MPRA_MTR0_SHIFT)) & AIPS_MPRA_MTR0_MASK) + +/*! @name PACRA - Peripheral Access Control Register */ +#define AIPS_PACRA_TP7_MASK (0x1U) +#define AIPS_PACRA_TP7_SHIFT (0U) +#define AIPS_PACRA_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP7_SHIFT)) & AIPS_PACRA_TP7_MASK) +#define AIPS_PACRA_WP7_MASK (0x2U) +#define AIPS_PACRA_WP7_SHIFT (1U) +#define AIPS_PACRA_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP7_SHIFT)) & AIPS_PACRA_WP7_MASK) +#define AIPS_PACRA_SP7_MASK (0x4U) +#define AIPS_PACRA_SP7_SHIFT (2U) +#define AIPS_PACRA_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP7_SHIFT)) & AIPS_PACRA_SP7_MASK) +#define AIPS_PACRA_TP6_MASK (0x10U) +#define AIPS_PACRA_TP6_SHIFT (4U) +#define AIPS_PACRA_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP6_SHIFT)) & AIPS_PACRA_TP6_MASK) +#define AIPS_PACRA_WP6_MASK (0x20U) +#define AIPS_PACRA_WP6_SHIFT (5U) +#define AIPS_PACRA_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP6_SHIFT)) & AIPS_PACRA_WP6_MASK) +#define AIPS_PACRA_SP6_MASK (0x40U) +#define AIPS_PACRA_SP6_SHIFT (6U) +#define AIPS_PACRA_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP6_SHIFT)) & AIPS_PACRA_SP6_MASK) +#define AIPS_PACRA_TP5_MASK (0x100U) +#define AIPS_PACRA_TP5_SHIFT (8U) +#define AIPS_PACRA_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP5_SHIFT)) & AIPS_PACRA_TP5_MASK) +#define AIPS_PACRA_WP5_MASK (0x200U) +#define AIPS_PACRA_WP5_SHIFT (9U) +#define AIPS_PACRA_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP5_SHIFT)) & AIPS_PACRA_WP5_MASK) +#define AIPS_PACRA_SP5_MASK (0x400U) +#define AIPS_PACRA_SP5_SHIFT (10U) +#define AIPS_PACRA_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP5_SHIFT)) & AIPS_PACRA_SP5_MASK) +#define AIPS_PACRA_TP4_MASK (0x1000U) +#define AIPS_PACRA_TP4_SHIFT (12U) +#define AIPS_PACRA_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP4_SHIFT)) & AIPS_PACRA_TP4_MASK) +#define AIPS_PACRA_WP4_MASK (0x2000U) +#define AIPS_PACRA_WP4_SHIFT (13U) +#define AIPS_PACRA_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP4_SHIFT)) & AIPS_PACRA_WP4_MASK) +#define AIPS_PACRA_SP4_MASK (0x4000U) +#define AIPS_PACRA_SP4_SHIFT (14U) +#define AIPS_PACRA_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP4_SHIFT)) & AIPS_PACRA_SP4_MASK) +#define AIPS_PACRA_TP3_MASK (0x10000U) +#define AIPS_PACRA_TP3_SHIFT (16U) +#define AIPS_PACRA_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP3_SHIFT)) & AIPS_PACRA_TP3_MASK) +#define AIPS_PACRA_WP3_MASK (0x20000U) +#define AIPS_PACRA_WP3_SHIFT (17U) +#define AIPS_PACRA_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP3_SHIFT)) & AIPS_PACRA_WP3_MASK) +#define AIPS_PACRA_SP3_MASK (0x40000U) +#define AIPS_PACRA_SP3_SHIFT (18U) +#define AIPS_PACRA_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP3_SHIFT)) & AIPS_PACRA_SP3_MASK) +#define AIPS_PACRA_TP2_MASK (0x100000U) +#define AIPS_PACRA_TP2_SHIFT (20U) +#define AIPS_PACRA_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP2_SHIFT)) & AIPS_PACRA_TP2_MASK) +#define AIPS_PACRA_WP2_MASK (0x200000U) +#define AIPS_PACRA_WP2_SHIFT (21U) +#define AIPS_PACRA_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP2_SHIFT)) & AIPS_PACRA_WP2_MASK) +#define AIPS_PACRA_SP2_MASK (0x400000U) +#define AIPS_PACRA_SP2_SHIFT (22U) +#define AIPS_PACRA_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP2_SHIFT)) & AIPS_PACRA_SP2_MASK) +#define AIPS_PACRA_TP1_MASK (0x1000000U) +#define AIPS_PACRA_TP1_SHIFT (24U) +#define AIPS_PACRA_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP1_SHIFT)) & AIPS_PACRA_TP1_MASK) +#define AIPS_PACRA_WP1_MASK (0x2000000U) +#define AIPS_PACRA_WP1_SHIFT (25U) +#define AIPS_PACRA_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP1_SHIFT)) & AIPS_PACRA_WP1_MASK) +#define AIPS_PACRA_SP1_MASK (0x4000000U) +#define AIPS_PACRA_SP1_SHIFT (26U) +#define AIPS_PACRA_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP1_SHIFT)) & AIPS_PACRA_SP1_MASK) +#define AIPS_PACRA_TP0_MASK (0x10000000U) +#define AIPS_PACRA_TP0_SHIFT (28U) +#define AIPS_PACRA_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_TP0_SHIFT)) & AIPS_PACRA_TP0_MASK) +#define AIPS_PACRA_WP0_MASK (0x20000000U) +#define AIPS_PACRA_WP0_SHIFT (29U) +#define AIPS_PACRA_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_WP0_SHIFT)) & AIPS_PACRA_WP0_MASK) +#define AIPS_PACRA_SP0_MASK (0x40000000U) +#define AIPS_PACRA_SP0_SHIFT (30U) +#define AIPS_PACRA_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRA_SP0_SHIFT)) & AIPS_PACRA_SP0_MASK) + +/*! @name PACRB - Peripheral Access Control Register */ +#define AIPS_PACRB_TP7_MASK (0x1U) +#define AIPS_PACRB_TP7_SHIFT (0U) +#define AIPS_PACRB_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP7_SHIFT)) & AIPS_PACRB_TP7_MASK) +#define AIPS_PACRB_WP7_MASK (0x2U) +#define AIPS_PACRB_WP7_SHIFT (1U) +#define AIPS_PACRB_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP7_SHIFT)) & AIPS_PACRB_WP7_MASK) +#define AIPS_PACRB_SP7_MASK (0x4U) +#define AIPS_PACRB_SP7_SHIFT (2U) +#define AIPS_PACRB_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP7_SHIFT)) & AIPS_PACRB_SP7_MASK) +#define AIPS_PACRB_TP6_MASK (0x10U) +#define AIPS_PACRB_TP6_SHIFT (4U) +#define AIPS_PACRB_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP6_SHIFT)) & AIPS_PACRB_TP6_MASK) +#define AIPS_PACRB_WP6_MASK (0x20U) +#define AIPS_PACRB_WP6_SHIFT (5U) +#define AIPS_PACRB_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP6_SHIFT)) & AIPS_PACRB_WP6_MASK) +#define AIPS_PACRB_SP6_MASK (0x40U) +#define AIPS_PACRB_SP6_SHIFT (6U) +#define AIPS_PACRB_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP6_SHIFT)) & AIPS_PACRB_SP6_MASK) +#define AIPS_PACRB_TP5_MASK (0x100U) +#define AIPS_PACRB_TP5_SHIFT (8U) +#define AIPS_PACRB_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP5_SHIFT)) & AIPS_PACRB_TP5_MASK) +#define AIPS_PACRB_WP5_MASK (0x200U) +#define AIPS_PACRB_WP5_SHIFT (9U) +#define AIPS_PACRB_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP5_SHIFT)) & AIPS_PACRB_WP5_MASK) +#define AIPS_PACRB_SP5_MASK (0x400U) +#define AIPS_PACRB_SP5_SHIFT (10U) +#define AIPS_PACRB_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP5_SHIFT)) & AIPS_PACRB_SP5_MASK) +#define AIPS_PACRB_TP4_MASK (0x1000U) +#define AIPS_PACRB_TP4_SHIFT (12U) +#define AIPS_PACRB_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP4_SHIFT)) & AIPS_PACRB_TP4_MASK) +#define AIPS_PACRB_WP4_MASK (0x2000U) +#define AIPS_PACRB_WP4_SHIFT (13U) +#define AIPS_PACRB_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP4_SHIFT)) & AIPS_PACRB_WP4_MASK) +#define AIPS_PACRB_SP4_MASK (0x4000U) +#define AIPS_PACRB_SP4_SHIFT (14U) +#define AIPS_PACRB_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP4_SHIFT)) & AIPS_PACRB_SP4_MASK) +#define AIPS_PACRB_TP3_MASK (0x10000U) +#define AIPS_PACRB_TP3_SHIFT (16U) +#define AIPS_PACRB_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP3_SHIFT)) & AIPS_PACRB_TP3_MASK) +#define AIPS_PACRB_WP3_MASK (0x20000U) +#define AIPS_PACRB_WP3_SHIFT (17U) +#define AIPS_PACRB_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP3_SHIFT)) & AIPS_PACRB_WP3_MASK) +#define AIPS_PACRB_SP3_MASK (0x40000U) +#define AIPS_PACRB_SP3_SHIFT (18U) +#define AIPS_PACRB_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP3_SHIFT)) & AIPS_PACRB_SP3_MASK) +#define AIPS_PACRB_TP2_MASK (0x100000U) +#define AIPS_PACRB_TP2_SHIFT (20U) +#define AIPS_PACRB_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP2_SHIFT)) & AIPS_PACRB_TP2_MASK) +#define AIPS_PACRB_WP2_MASK (0x200000U) +#define AIPS_PACRB_WP2_SHIFT (21U) +#define AIPS_PACRB_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP2_SHIFT)) & AIPS_PACRB_WP2_MASK) +#define AIPS_PACRB_SP2_MASK (0x400000U) +#define AIPS_PACRB_SP2_SHIFT (22U) +#define AIPS_PACRB_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP2_SHIFT)) & AIPS_PACRB_SP2_MASK) +#define AIPS_PACRB_TP1_MASK (0x1000000U) +#define AIPS_PACRB_TP1_SHIFT (24U) +#define AIPS_PACRB_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP1_SHIFT)) & AIPS_PACRB_TP1_MASK) +#define AIPS_PACRB_WP1_MASK (0x2000000U) +#define AIPS_PACRB_WP1_SHIFT (25U) +#define AIPS_PACRB_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP1_SHIFT)) & AIPS_PACRB_WP1_MASK) +#define AIPS_PACRB_SP1_MASK (0x4000000U) +#define AIPS_PACRB_SP1_SHIFT (26U) +#define AIPS_PACRB_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP1_SHIFT)) & AIPS_PACRB_SP1_MASK) +#define AIPS_PACRB_TP0_MASK (0x10000000U) +#define AIPS_PACRB_TP0_SHIFT (28U) +#define AIPS_PACRB_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_TP0_SHIFT)) & AIPS_PACRB_TP0_MASK) +#define AIPS_PACRB_WP0_MASK (0x20000000U) +#define AIPS_PACRB_WP0_SHIFT (29U) +#define AIPS_PACRB_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_WP0_SHIFT)) & AIPS_PACRB_WP0_MASK) +#define AIPS_PACRB_SP0_MASK (0x40000000U) +#define AIPS_PACRB_SP0_SHIFT (30U) +#define AIPS_PACRB_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRB_SP0_SHIFT)) & AIPS_PACRB_SP0_MASK) + +/*! @name PACRC - Peripheral Access Control Register */ +#define AIPS_PACRC_TP7_MASK (0x1U) +#define AIPS_PACRC_TP7_SHIFT (0U) +#define AIPS_PACRC_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP7_SHIFT)) & AIPS_PACRC_TP7_MASK) +#define AIPS_PACRC_WP7_MASK (0x2U) +#define AIPS_PACRC_WP7_SHIFT (1U) +#define AIPS_PACRC_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP7_SHIFT)) & AIPS_PACRC_WP7_MASK) +#define AIPS_PACRC_SP7_MASK (0x4U) +#define AIPS_PACRC_SP7_SHIFT (2U) +#define AIPS_PACRC_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP7_SHIFT)) & AIPS_PACRC_SP7_MASK) +#define AIPS_PACRC_TP6_MASK (0x10U) +#define AIPS_PACRC_TP6_SHIFT (4U) +#define AIPS_PACRC_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP6_SHIFT)) & AIPS_PACRC_TP6_MASK) +#define AIPS_PACRC_WP6_MASK (0x20U) +#define AIPS_PACRC_WP6_SHIFT (5U) +#define AIPS_PACRC_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP6_SHIFT)) & AIPS_PACRC_WP6_MASK) +#define AIPS_PACRC_SP6_MASK (0x40U) +#define AIPS_PACRC_SP6_SHIFT (6U) +#define AIPS_PACRC_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP6_SHIFT)) & AIPS_PACRC_SP6_MASK) +#define AIPS_PACRC_TP5_MASK (0x100U) +#define AIPS_PACRC_TP5_SHIFT (8U) +#define AIPS_PACRC_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP5_SHIFT)) & AIPS_PACRC_TP5_MASK) +#define AIPS_PACRC_WP5_MASK (0x200U) +#define AIPS_PACRC_WP5_SHIFT (9U) +#define AIPS_PACRC_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP5_SHIFT)) & AIPS_PACRC_WP5_MASK) +#define AIPS_PACRC_SP5_MASK (0x400U) +#define AIPS_PACRC_SP5_SHIFT (10U) +#define AIPS_PACRC_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP5_SHIFT)) & AIPS_PACRC_SP5_MASK) +#define AIPS_PACRC_TP4_MASK (0x1000U) +#define AIPS_PACRC_TP4_SHIFT (12U) +#define AIPS_PACRC_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP4_SHIFT)) & AIPS_PACRC_TP4_MASK) +#define AIPS_PACRC_WP4_MASK (0x2000U) +#define AIPS_PACRC_WP4_SHIFT (13U) +#define AIPS_PACRC_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP4_SHIFT)) & AIPS_PACRC_WP4_MASK) +#define AIPS_PACRC_SP4_MASK (0x4000U) +#define AIPS_PACRC_SP4_SHIFT (14U) +#define AIPS_PACRC_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP4_SHIFT)) & AIPS_PACRC_SP4_MASK) +#define AIPS_PACRC_TP3_MASK (0x10000U) +#define AIPS_PACRC_TP3_SHIFT (16U) +#define AIPS_PACRC_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP3_SHIFT)) & AIPS_PACRC_TP3_MASK) +#define AIPS_PACRC_WP3_MASK (0x20000U) +#define AIPS_PACRC_WP3_SHIFT (17U) +#define AIPS_PACRC_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP3_SHIFT)) & AIPS_PACRC_WP3_MASK) +#define AIPS_PACRC_SP3_MASK (0x40000U) +#define AIPS_PACRC_SP3_SHIFT (18U) +#define AIPS_PACRC_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP3_SHIFT)) & AIPS_PACRC_SP3_MASK) +#define AIPS_PACRC_TP2_MASK (0x100000U) +#define AIPS_PACRC_TP2_SHIFT (20U) +#define AIPS_PACRC_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP2_SHIFT)) & AIPS_PACRC_TP2_MASK) +#define AIPS_PACRC_WP2_MASK (0x200000U) +#define AIPS_PACRC_WP2_SHIFT (21U) +#define AIPS_PACRC_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP2_SHIFT)) & AIPS_PACRC_WP2_MASK) +#define AIPS_PACRC_SP2_MASK (0x400000U) +#define AIPS_PACRC_SP2_SHIFT (22U) +#define AIPS_PACRC_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP2_SHIFT)) & AIPS_PACRC_SP2_MASK) +#define AIPS_PACRC_TP1_MASK (0x1000000U) +#define AIPS_PACRC_TP1_SHIFT (24U) +#define AIPS_PACRC_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP1_SHIFT)) & AIPS_PACRC_TP1_MASK) +#define AIPS_PACRC_WP1_MASK (0x2000000U) +#define AIPS_PACRC_WP1_SHIFT (25U) +#define AIPS_PACRC_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP1_SHIFT)) & AIPS_PACRC_WP1_MASK) +#define AIPS_PACRC_SP1_MASK (0x4000000U) +#define AIPS_PACRC_SP1_SHIFT (26U) +#define AIPS_PACRC_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP1_SHIFT)) & AIPS_PACRC_SP1_MASK) +#define AIPS_PACRC_TP0_MASK (0x10000000U) +#define AIPS_PACRC_TP0_SHIFT (28U) +#define AIPS_PACRC_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_TP0_SHIFT)) & AIPS_PACRC_TP0_MASK) +#define AIPS_PACRC_WP0_MASK (0x20000000U) +#define AIPS_PACRC_WP0_SHIFT (29U) +#define AIPS_PACRC_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_WP0_SHIFT)) & AIPS_PACRC_WP0_MASK) +#define AIPS_PACRC_SP0_MASK (0x40000000U) +#define AIPS_PACRC_SP0_SHIFT (30U) +#define AIPS_PACRC_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRC_SP0_SHIFT)) & AIPS_PACRC_SP0_MASK) + +/*! @name PACRD - Peripheral Access Control Register */ +#define AIPS_PACRD_TP7_MASK (0x1U) +#define AIPS_PACRD_TP7_SHIFT (0U) +#define AIPS_PACRD_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP7_SHIFT)) & AIPS_PACRD_TP7_MASK) +#define AIPS_PACRD_WP7_MASK (0x2U) +#define AIPS_PACRD_WP7_SHIFT (1U) +#define AIPS_PACRD_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP7_SHIFT)) & AIPS_PACRD_WP7_MASK) +#define AIPS_PACRD_SP7_MASK (0x4U) +#define AIPS_PACRD_SP7_SHIFT (2U) +#define AIPS_PACRD_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP7_SHIFT)) & AIPS_PACRD_SP7_MASK) +#define AIPS_PACRD_TP6_MASK (0x10U) +#define AIPS_PACRD_TP6_SHIFT (4U) +#define AIPS_PACRD_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP6_SHIFT)) & AIPS_PACRD_TP6_MASK) +#define AIPS_PACRD_WP6_MASK (0x20U) +#define AIPS_PACRD_WP6_SHIFT (5U) +#define AIPS_PACRD_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP6_SHIFT)) & AIPS_PACRD_WP6_MASK) +#define AIPS_PACRD_SP6_MASK (0x40U) +#define AIPS_PACRD_SP6_SHIFT (6U) +#define AIPS_PACRD_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP6_SHIFT)) & AIPS_PACRD_SP6_MASK) +#define AIPS_PACRD_TP5_MASK (0x100U) +#define AIPS_PACRD_TP5_SHIFT (8U) +#define AIPS_PACRD_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP5_SHIFT)) & AIPS_PACRD_TP5_MASK) +#define AIPS_PACRD_WP5_MASK (0x200U) +#define AIPS_PACRD_WP5_SHIFT (9U) +#define AIPS_PACRD_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP5_SHIFT)) & AIPS_PACRD_WP5_MASK) +#define AIPS_PACRD_SP5_MASK (0x400U) +#define AIPS_PACRD_SP5_SHIFT (10U) +#define AIPS_PACRD_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP5_SHIFT)) & AIPS_PACRD_SP5_MASK) +#define AIPS_PACRD_TP4_MASK (0x1000U) +#define AIPS_PACRD_TP4_SHIFT (12U) +#define AIPS_PACRD_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP4_SHIFT)) & AIPS_PACRD_TP4_MASK) +#define AIPS_PACRD_WP4_MASK (0x2000U) +#define AIPS_PACRD_WP4_SHIFT (13U) +#define AIPS_PACRD_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP4_SHIFT)) & AIPS_PACRD_WP4_MASK) +#define AIPS_PACRD_SP4_MASK (0x4000U) +#define AIPS_PACRD_SP4_SHIFT (14U) +#define AIPS_PACRD_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP4_SHIFT)) & AIPS_PACRD_SP4_MASK) +#define AIPS_PACRD_TP3_MASK (0x10000U) +#define AIPS_PACRD_TP3_SHIFT (16U) +#define AIPS_PACRD_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP3_SHIFT)) & AIPS_PACRD_TP3_MASK) +#define AIPS_PACRD_WP3_MASK (0x20000U) +#define AIPS_PACRD_WP3_SHIFT (17U) +#define AIPS_PACRD_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP3_SHIFT)) & AIPS_PACRD_WP3_MASK) +#define AIPS_PACRD_SP3_MASK (0x40000U) +#define AIPS_PACRD_SP3_SHIFT (18U) +#define AIPS_PACRD_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP3_SHIFT)) & AIPS_PACRD_SP3_MASK) +#define AIPS_PACRD_TP2_MASK (0x100000U) +#define AIPS_PACRD_TP2_SHIFT (20U) +#define AIPS_PACRD_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP2_SHIFT)) & AIPS_PACRD_TP2_MASK) +#define AIPS_PACRD_WP2_MASK (0x200000U) +#define AIPS_PACRD_WP2_SHIFT (21U) +#define AIPS_PACRD_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP2_SHIFT)) & AIPS_PACRD_WP2_MASK) +#define AIPS_PACRD_SP2_MASK (0x400000U) +#define AIPS_PACRD_SP2_SHIFT (22U) +#define AIPS_PACRD_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP2_SHIFT)) & AIPS_PACRD_SP2_MASK) +#define AIPS_PACRD_TP1_MASK (0x1000000U) +#define AIPS_PACRD_TP1_SHIFT (24U) +#define AIPS_PACRD_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP1_SHIFT)) & AIPS_PACRD_TP1_MASK) +#define AIPS_PACRD_WP1_MASK (0x2000000U) +#define AIPS_PACRD_WP1_SHIFT (25U) +#define AIPS_PACRD_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP1_SHIFT)) & AIPS_PACRD_WP1_MASK) +#define AIPS_PACRD_SP1_MASK (0x4000000U) +#define AIPS_PACRD_SP1_SHIFT (26U) +#define AIPS_PACRD_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP1_SHIFT)) & AIPS_PACRD_SP1_MASK) +#define AIPS_PACRD_TP0_MASK (0x10000000U) +#define AIPS_PACRD_TP0_SHIFT (28U) +#define AIPS_PACRD_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_TP0_SHIFT)) & AIPS_PACRD_TP0_MASK) +#define AIPS_PACRD_WP0_MASK (0x20000000U) +#define AIPS_PACRD_WP0_SHIFT (29U) +#define AIPS_PACRD_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_WP0_SHIFT)) & AIPS_PACRD_WP0_MASK) +#define AIPS_PACRD_SP0_MASK (0x40000000U) +#define AIPS_PACRD_SP0_SHIFT (30U) +#define AIPS_PACRD_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRD_SP0_SHIFT)) & AIPS_PACRD_SP0_MASK) + +/*! @name PACRE - Peripheral Access Control Register */ +#define AIPS_PACRE_TP7_MASK (0x1U) +#define AIPS_PACRE_TP7_SHIFT (0U) +#define AIPS_PACRE_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP7_SHIFT)) & AIPS_PACRE_TP7_MASK) +#define AIPS_PACRE_WP7_MASK (0x2U) +#define AIPS_PACRE_WP7_SHIFT (1U) +#define AIPS_PACRE_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP7_SHIFT)) & AIPS_PACRE_WP7_MASK) +#define AIPS_PACRE_SP7_MASK (0x4U) +#define AIPS_PACRE_SP7_SHIFT (2U) +#define AIPS_PACRE_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP7_SHIFT)) & AIPS_PACRE_SP7_MASK) +#define AIPS_PACRE_TP6_MASK (0x10U) +#define AIPS_PACRE_TP6_SHIFT (4U) +#define AIPS_PACRE_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP6_SHIFT)) & AIPS_PACRE_TP6_MASK) +#define AIPS_PACRE_WP6_MASK (0x20U) +#define AIPS_PACRE_WP6_SHIFT (5U) +#define AIPS_PACRE_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP6_SHIFT)) & AIPS_PACRE_WP6_MASK) +#define AIPS_PACRE_SP6_MASK (0x40U) +#define AIPS_PACRE_SP6_SHIFT (6U) +#define AIPS_PACRE_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP6_SHIFT)) & AIPS_PACRE_SP6_MASK) +#define AIPS_PACRE_TP5_MASK (0x100U) +#define AIPS_PACRE_TP5_SHIFT (8U) +#define AIPS_PACRE_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP5_SHIFT)) & AIPS_PACRE_TP5_MASK) +#define AIPS_PACRE_WP5_MASK (0x200U) +#define AIPS_PACRE_WP5_SHIFT (9U) +#define AIPS_PACRE_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP5_SHIFT)) & AIPS_PACRE_WP5_MASK) +#define AIPS_PACRE_SP5_MASK (0x400U) +#define AIPS_PACRE_SP5_SHIFT (10U) +#define AIPS_PACRE_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP5_SHIFT)) & AIPS_PACRE_SP5_MASK) +#define AIPS_PACRE_TP4_MASK (0x1000U) +#define AIPS_PACRE_TP4_SHIFT (12U) +#define AIPS_PACRE_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP4_SHIFT)) & AIPS_PACRE_TP4_MASK) +#define AIPS_PACRE_WP4_MASK (0x2000U) +#define AIPS_PACRE_WP4_SHIFT (13U) +#define AIPS_PACRE_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP4_SHIFT)) & AIPS_PACRE_WP4_MASK) +#define AIPS_PACRE_SP4_MASK (0x4000U) +#define AIPS_PACRE_SP4_SHIFT (14U) +#define AIPS_PACRE_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP4_SHIFT)) & AIPS_PACRE_SP4_MASK) +#define AIPS_PACRE_TP3_MASK (0x10000U) +#define AIPS_PACRE_TP3_SHIFT (16U) +#define AIPS_PACRE_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP3_SHIFT)) & AIPS_PACRE_TP3_MASK) +#define AIPS_PACRE_WP3_MASK (0x20000U) +#define AIPS_PACRE_WP3_SHIFT (17U) +#define AIPS_PACRE_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP3_SHIFT)) & AIPS_PACRE_WP3_MASK) +#define AIPS_PACRE_SP3_MASK (0x40000U) +#define AIPS_PACRE_SP3_SHIFT (18U) +#define AIPS_PACRE_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP3_SHIFT)) & AIPS_PACRE_SP3_MASK) +#define AIPS_PACRE_TP2_MASK (0x100000U) +#define AIPS_PACRE_TP2_SHIFT (20U) +#define AIPS_PACRE_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP2_SHIFT)) & AIPS_PACRE_TP2_MASK) +#define AIPS_PACRE_WP2_MASK (0x200000U) +#define AIPS_PACRE_WP2_SHIFT (21U) +#define AIPS_PACRE_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP2_SHIFT)) & AIPS_PACRE_WP2_MASK) +#define AIPS_PACRE_SP2_MASK (0x400000U) +#define AIPS_PACRE_SP2_SHIFT (22U) +#define AIPS_PACRE_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP2_SHIFT)) & AIPS_PACRE_SP2_MASK) +#define AIPS_PACRE_TP1_MASK (0x1000000U) +#define AIPS_PACRE_TP1_SHIFT (24U) +#define AIPS_PACRE_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP1_SHIFT)) & AIPS_PACRE_TP1_MASK) +#define AIPS_PACRE_WP1_MASK (0x2000000U) +#define AIPS_PACRE_WP1_SHIFT (25U) +#define AIPS_PACRE_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP1_SHIFT)) & AIPS_PACRE_WP1_MASK) +#define AIPS_PACRE_SP1_MASK (0x4000000U) +#define AIPS_PACRE_SP1_SHIFT (26U) +#define AIPS_PACRE_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP1_SHIFT)) & AIPS_PACRE_SP1_MASK) +#define AIPS_PACRE_TP0_MASK (0x10000000U) +#define AIPS_PACRE_TP0_SHIFT (28U) +#define AIPS_PACRE_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_TP0_SHIFT)) & AIPS_PACRE_TP0_MASK) +#define AIPS_PACRE_WP0_MASK (0x20000000U) +#define AIPS_PACRE_WP0_SHIFT (29U) +#define AIPS_PACRE_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_WP0_SHIFT)) & AIPS_PACRE_WP0_MASK) +#define AIPS_PACRE_SP0_MASK (0x40000000U) +#define AIPS_PACRE_SP0_SHIFT (30U) +#define AIPS_PACRE_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRE_SP0_SHIFT)) & AIPS_PACRE_SP0_MASK) + +/*! @name PACRF - Peripheral Access Control Register */ +#define AIPS_PACRF_TP7_MASK (0x1U) +#define AIPS_PACRF_TP7_SHIFT (0U) +#define AIPS_PACRF_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP7_SHIFT)) & AIPS_PACRF_TP7_MASK) +#define AIPS_PACRF_WP7_MASK (0x2U) +#define AIPS_PACRF_WP7_SHIFT (1U) +#define AIPS_PACRF_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP7_SHIFT)) & AIPS_PACRF_WP7_MASK) +#define AIPS_PACRF_SP7_MASK (0x4U) +#define AIPS_PACRF_SP7_SHIFT (2U) +#define AIPS_PACRF_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP7_SHIFT)) & AIPS_PACRF_SP7_MASK) +#define AIPS_PACRF_TP6_MASK (0x10U) +#define AIPS_PACRF_TP6_SHIFT (4U) +#define AIPS_PACRF_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP6_SHIFT)) & AIPS_PACRF_TP6_MASK) +#define AIPS_PACRF_WP6_MASK (0x20U) +#define AIPS_PACRF_WP6_SHIFT (5U) +#define AIPS_PACRF_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP6_SHIFT)) & AIPS_PACRF_WP6_MASK) +#define AIPS_PACRF_SP6_MASK (0x40U) +#define AIPS_PACRF_SP6_SHIFT (6U) +#define AIPS_PACRF_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP6_SHIFT)) & AIPS_PACRF_SP6_MASK) +#define AIPS_PACRF_TP5_MASK (0x100U) +#define AIPS_PACRF_TP5_SHIFT (8U) +#define AIPS_PACRF_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP5_SHIFT)) & AIPS_PACRF_TP5_MASK) +#define AIPS_PACRF_WP5_MASK (0x200U) +#define AIPS_PACRF_WP5_SHIFT (9U) +#define AIPS_PACRF_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP5_SHIFT)) & AIPS_PACRF_WP5_MASK) +#define AIPS_PACRF_SP5_MASK (0x400U) +#define AIPS_PACRF_SP5_SHIFT (10U) +#define AIPS_PACRF_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP5_SHIFT)) & AIPS_PACRF_SP5_MASK) +#define AIPS_PACRF_TP4_MASK (0x1000U) +#define AIPS_PACRF_TP4_SHIFT (12U) +#define AIPS_PACRF_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP4_SHIFT)) & AIPS_PACRF_TP4_MASK) +#define AIPS_PACRF_WP4_MASK (0x2000U) +#define AIPS_PACRF_WP4_SHIFT (13U) +#define AIPS_PACRF_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP4_SHIFT)) & AIPS_PACRF_WP4_MASK) +#define AIPS_PACRF_SP4_MASK (0x4000U) +#define AIPS_PACRF_SP4_SHIFT (14U) +#define AIPS_PACRF_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP4_SHIFT)) & AIPS_PACRF_SP4_MASK) +#define AIPS_PACRF_TP3_MASK (0x10000U) +#define AIPS_PACRF_TP3_SHIFT (16U) +#define AIPS_PACRF_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP3_SHIFT)) & AIPS_PACRF_TP3_MASK) +#define AIPS_PACRF_WP3_MASK (0x20000U) +#define AIPS_PACRF_WP3_SHIFT (17U) +#define AIPS_PACRF_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP3_SHIFT)) & AIPS_PACRF_WP3_MASK) +#define AIPS_PACRF_SP3_MASK (0x40000U) +#define AIPS_PACRF_SP3_SHIFT (18U) +#define AIPS_PACRF_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP3_SHIFT)) & AIPS_PACRF_SP3_MASK) +#define AIPS_PACRF_TP2_MASK (0x100000U) +#define AIPS_PACRF_TP2_SHIFT (20U) +#define AIPS_PACRF_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP2_SHIFT)) & AIPS_PACRF_TP2_MASK) +#define AIPS_PACRF_WP2_MASK (0x200000U) +#define AIPS_PACRF_WP2_SHIFT (21U) +#define AIPS_PACRF_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP2_SHIFT)) & AIPS_PACRF_WP2_MASK) +#define AIPS_PACRF_SP2_MASK (0x400000U) +#define AIPS_PACRF_SP2_SHIFT (22U) +#define AIPS_PACRF_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP2_SHIFT)) & AIPS_PACRF_SP2_MASK) +#define AIPS_PACRF_TP1_MASK (0x1000000U) +#define AIPS_PACRF_TP1_SHIFT (24U) +#define AIPS_PACRF_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP1_SHIFT)) & AIPS_PACRF_TP1_MASK) +#define AIPS_PACRF_WP1_MASK (0x2000000U) +#define AIPS_PACRF_WP1_SHIFT (25U) +#define AIPS_PACRF_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP1_SHIFT)) & AIPS_PACRF_WP1_MASK) +#define AIPS_PACRF_SP1_MASK (0x4000000U) +#define AIPS_PACRF_SP1_SHIFT (26U) +#define AIPS_PACRF_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP1_SHIFT)) & AIPS_PACRF_SP1_MASK) +#define AIPS_PACRF_TP0_MASK (0x10000000U) +#define AIPS_PACRF_TP0_SHIFT (28U) +#define AIPS_PACRF_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_TP0_SHIFT)) & AIPS_PACRF_TP0_MASK) +#define AIPS_PACRF_WP0_MASK (0x20000000U) +#define AIPS_PACRF_WP0_SHIFT (29U) +#define AIPS_PACRF_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_WP0_SHIFT)) & AIPS_PACRF_WP0_MASK) +#define AIPS_PACRF_SP0_MASK (0x40000000U) +#define AIPS_PACRF_SP0_SHIFT (30U) +#define AIPS_PACRF_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRF_SP0_SHIFT)) & AIPS_PACRF_SP0_MASK) + +/*! @name PACRG - Peripheral Access Control Register */ +#define AIPS_PACRG_TP7_MASK (0x1U) +#define AIPS_PACRG_TP7_SHIFT (0U) +#define AIPS_PACRG_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP7_SHIFT)) & AIPS_PACRG_TP7_MASK) +#define AIPS_PACRG_WP7_MASK (0x2U) +#define AIPS_PACRG_WP7_SHIFT (1U) +#define AIPS_PACRG_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP7_SHIFT)) & AIPS_PACRG_WP7_MASK) +#define AIPS_PACRG_SP7_MASK (0x4U) +#define AIPS_PACRG_SP7_SHIFT (2U) +#define AIPS_PACRG_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP7_SHIFT)) & AIPS_PACRG_SP7_MASK) +#define AIPS_PACRG_TP6_MASK (0x10U) +#define AIPS_PACRG_TP6_SHIFT (4U) +#define AIPS_PACRG_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP6_SHIFT)) & AIPS_PACRG_TP6_MASK) +#define AIPS_PACRG_WP6_MASK (0x20U) +#define AIPS_PACRG_WP6_SHIFT (5U) +#define AIPS_PACRG_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP6_SHIFT)) & AIPS_PACRG_WP6_MASK) +#define AIPS_PACRG_SP6_MASK (0x40U) +#define AIPS_PACRG_SP6_SHIFT (6U) +#define AIPS_PACRG_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP6_SHIFT)) & AIPS_PACRG_SP6_MASK) +#define AIPS_PACRG_TP5_MASK (0x100U) +#define AIPS_PACRG_TP5_SHIFT (8U) +#define AIPS_PACRG_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP5_SHIFT)) & AIPS_PACRG_TP5_MASK) +#define AIPS_PACRG_WP5_MASK (0x200U) +#define AIPS_PACRG_WP5_SHIFT (9U) +#define AIPS_PACRG_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP5_SHIFT)) & AIPS_PACRG_WP5_MASK) +#define AIPS_PACRG_SP5_MASK (0x400U) +#define AIPS_PACRG_SP5_SHIFT (10U) +#define AIPS_PACRG_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP5_SHIFT)) & AIPS_PACRG_SP5_MASK) +#define AIPS_PACRG_TP4_MASK (0x1000U) +#define AIPS_PACRG_TP4_SHIFT (12U) +#define AIPS_PACRG_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP4_SHIFT)) & AIPS_PACRG_TP4_MASK) +#define AIPS_PACRG_WP4_MASK (0x2000U) +#define AIPS_PACRG_WP4_SHIFT (13U) +#define AIPS_PACRG_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP4_SHIFT)) & AIPS_PACRG_WP4_MASK) +#define AIPS_PACRG_SP4_MASK (0x4000U) +#define AIPS_PACRG_SP4_SHIFT (14U) +#define AIPS_PACRG_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP4_SHIFT)) & AIPS_PACRG_SP4_MASK) +#define AIPS_PACRG_TP3_MASK (0x10000U) +#define AIPS_PACRG_TP3_SHIFT (16U) +#define AIPS_PACRG_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP3_SHIFT)) & AIPS_PACRG_TP3_MASK) +#define AIPS_PACRG_WP3_MASK (0x20000U) +#define AIPS_PACRG_WP3_SHIFT (17U) +#define AIPS_PACRG_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP3_SHIFT)) & AIPS_PACRG_WP3_MASK) +#define AIPS_PACRG_SP3_MASK (0x40000U) +#define AIPS_PACRG_SP3_SHIFT (18U) +#define AIPS_PACRG_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP3_SHIFT)) & AIPS_PACRG_SP3_MASK) +#define AIPS_PACRG_TP2_MASK (0x100000U) +#define AIPS_PACRG_TP2_SHIFT (20U) +#define AIPS_PACRG_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP2_SHIFT)) & AIPS_PACRG_TP2_MASK) +#define AIPS_PACRG_WP2_MASK (0x200000U) +#define AIPS_PACRG_WP2_SHIFT (21U) +#define AIPS_PACRG_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP2_SHIFT)) & AIPS_PACRG_WP2_MASK) +#define AIPS_PACRG_SP2_MASK (0x400000U) +#define AIPS_PACRG_SP2_SHIFT (22U) +#define AIPS_PACRG_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP2_SHIFT)) & AIPS_PACRG_SP2_MASK) +#define AIPS_PACRG_TP1_MASK (0x1000000U) +#define AIPS_PACRG_TP1_SHIFT (24U) +#define AIPS_PACRG_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP1_SHIFT)) & AIPS_PACRG_TP1_MASK) +#define AIPS_PACRG_WP1_MASK (0x2000000U) +#define AIPS_PACRG_WP1_SHIFT (25U) +#define AIPS_PACRG_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP1_SHIFT)) & AIPS_PACRG_WP1_MASK) +#define AIPS_PACRG_SP1_MASK (0x4000000U) +#define AIPS_PACRG_SP1_SHIFT (26U) +#define AIPS_PACRG_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP1_SHIFT)) & AIPS_PACRG_SP1_MASK) +#define AIPS_PACRG_TP0_MASK (0x10000000U) +#define AIPS_PACRG_TP0_SHIFT (28U) +#define AIPS_PACRG_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_TP0_SHIFT)) & AIPS_PACRG_TP0_MASK) +#define AIPS_PACRG_WP0_MASK (0x20000000U) +#define AIPS_PACRG_WP0_SHIFT (29U) +#define AIPS_PACRG_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_WP0_SHIFT)) & AIPS_PACRG_WP0_MASK) +#define AIPS_PACRG_SP0_MASK (0x40000000U) +#define AIPS_PACRG_SP0_SHIFT (30U) +#define AIPS_PACRG_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRG_SP0_SHIFT)) & AIPS_PACRG_SP0_MASK) + +/*! @name PACRH - Peripheral Access Control Register */ +#define AIPS_PACRH_TP7_MASK (0x1U) +#define AIPS_PACRH_TP7_SHIFT (0U) +#define AIPS_PACRH_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP7_SHIFT)) & AIPS_PACRH_TP7_MASK) +#define AIPS_PACRH_WP7_MASK (0x2U) +#define AIPS_PACRH_WP7_SHIFT (1U) +#define AIPS_PACRH_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP7_SHIFT)) & AIPS_PACRH_WP7_MASK) +#define AIPS_PACRH_SP7_MASK (0x4U) +#define AIPS_PACRH_SP7_SHIFT (2U) +#define AIPS_PACRH_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP7_SHIFT)) & AIPS_PACRH_SP7_MASK) +#define AIPS_PACRH_TP6_MASK (0x10U) +#define AIPS_PACRH_TP6_SHIFT (4U) +#define AIPS_PACRH_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP6_SHIFT)) & AIPS_PACRH_TP6_MASK) +#define AIPS_PACRH_WP6_MASK (0x20U) +#define AIPS_PACRH_WP6_SHIFT (5U) +#define AIPS_PACRH_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP6_SHIFT)) & AIPS_PACRH_WP6_MASK) +#define AIPS_PACRH_SP6_MASK (0x40U) +#define AIPS_PACRH_SP6_SHIFT (6U) +#define AIPS_PACRH_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP6_SHIFT)) & AIPS_PACRH_SP6_MASK) +#define AIPS_PACRH_TP5_MASK (0x100U) +#define AIPS_PACRH_TP5_SHIFT (8U) +#define AIPS_PACRH_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP5_SHIFT)) & AIPS_PACRH_TP5_MASK) +#define AIPS_PACRH_WP5_MASK (0x200U) +#define AIPS_PACRH_WP5_SHIFT (9U) +#define AIPS_PACRH_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP5_SHIFT)) & AIPS_PACRH_WP5_MASK) +#define AIPS_PACRH_SP5_MASK (0x400U) +#define AIPS_PACRH_SP5_SHIFT (10U) +#define AIPS_PACRH_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP5_SHIFT)) & AIPS_PACRH_SP5_MASK) +#define AIPS_PACRH_TP4_MASK (0x1000U) +#define AIPS_PACRH_TP4_SHIFT (12U) +#define AIPS_PACRH_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP4_SHIFT)) & AIPS_PACRH_TP4_MASK) +#define AIPS_PACRH_WP4_MASK (0x2000U) +#define AIPS_PACRH_WP4_SHIFT (13U) +#define AIPS_PACRH_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP4_SHIFT)) & AIPS_PACRH_WP4_MASK) +#define AIPS_PACRH_SP4_MASK (0x4000U) +#define AIPS_PACRH_SP4_SHIFT (14U) +#define AIPS_PACRH_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP4_SHIFT)) & AIPS_PACRH_SP4_MASK) +#define AIPS_PACRH_TP3_MASK (0x10000U) +#define AIPS_PACRH_TP3_SHIFT (16U) +#define AIPS_PACRH_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP3_SHIFT)) & AIPS_PACRH_TP3_MASK) +#define AIPS_PACRH_WP3_MASK (0x20000U) +#define AIPS_PACRH_WP3_SHIFT (17U) +#define AIPS_PACRH_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP3_SHIFT)) & AIPS_PACRH_WP3_MASK) +#define AIPS_PACRH_SP3_MASK (0x40000U) +#define AIPS_PACRH_SP3_SHIFT (18U) +#define AIPS_PACRH_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP3_SHIFT)) & AIPS_PACRH_SP3_MASK) +#define AIPS_PACRH_TP2_MASK (0x100000U) +#define AIPS_PACRH_TP2_SHIFT (20U) +#define AIPS_PACRH_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP2_SHIFT)) & AIPS_PACRH_TP2_MASK) +#define AIPS_PACRH_WP2_MASK (0x200000U) +#define AIPS_PACRH_WP2_SHIFT (21U) +#define AIPS_PACRH_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP2_SHIFT)) & AIPS_PACRH_WP2_MASK) +#define AIPS_PACRH_SP2_MASK (0x400000U) +#define AIPS_PACRH_SP2_SHIFT (22U) +#define AIPS_PACRH_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP2_SHIFT)) & AIPS_PACRH_SP2_MASK) +#define AIPS_PACRH_TP1_MASK (0x1000000U) +#define AIPS_PACRH_TP1_SHIFT (24U) +#define AIPS_PACRH_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP1_SHIFT)) & AIPS_PACRH_TP1_MASK) +#define AIPS_PACRH_WP1_MASK (0x2000000U) +#define AIPS_PACRH_WP1_SHIFT (25U) +#define AIPS_PACRH_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP1_SHIFT)) & AIPS_PACRH_WP1_MASK) +#define AIPS_PACRH_SP1_MASK (0x4000000U) +#define AIPS_PACRH_SP1_SHIFT (26U) +#define AIPS_PACRH_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP1_SHIFT)) & AIPS_PACRH_SP1_MASK) +#define AIPS_PACRH_TP0_MASK (0x10000000U) +#define AIPS_PACRH_TP0_SHIFT (28U) +#define AIPS_PACRH_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_TP0_SHIFT)) & AIPS_PACRH_TP0_MASK) +#define AIPS_PACRH_WP0_MASK (0x20000000U) +#define AIPS_PACRH_WP0_SHIFT (29U) +#define AIPS_PACRH_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_WP0_SHIFT)) & AIPS_PACRH_WP0_MASK) +#define AIPS_PACRH_SP0_MASK (0x40000000U) +#define AIPS_PACRH_SP0_SHIFT (30U) +#define AIPS_PACRH_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRH_SP0_SHIFT)) & AIPS_PACRH_SP0_MASK) + +/*! @name PACRI - Peripheral Access Control Register */ +#define AIPS_PACRI_TP7_MASK (0x1U) +#define AIPS_PACRI_TP7_SHIFT (0U) +#define AIPS_PACRI_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP7_SHIFT)) & AIPS_PACRI_TP7_MASK) +#define AIPS_PACRI_WP7_MASK (0x2U) +#define AIPS_PACRI_WP7_SHIFT (1U) +#define AIPS_PACRI_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP7_SHIFT)) & AIPS_PACRI_WP7_MASK) +#define AIPS_PACRI_SP7_MASK (0x4U) +#define AIPS_PACRI_SP7_SHIFT (2U) +#define AIPS_PACRI_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP7_SHIFT)) & AIPS_PACRI_SP7_MASK) +#define AIPS_PACRI_TP6_MASK (0x10U) +#define AIPS_PACRI_TP6_SHIFT (4U) +#define AIPS_PACRI_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP6_SHIFT)) & AIPS_PACRI_TP6_MASK) +#define AIPS_PACRI_WP6_MASK (0x20U) +#define AIPS_PACRI_WP6_SHIFT (5U) +#define AIPS_PACRI_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP6_SHIFT)) & AIPS_PACRI_WP6_MASK) +#define AIPS_PACRI_SP6_MASK (0x40U) +#define AIPS_PACRI_SP6_SHIFT (6U) +#define AIPS_PACRI_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP6_SHIFT)) & AIPS_PACRI_SP6_MASK) +#define AIPS_PACRI_TP5_MASK (0x100U) +#define AIPS_PACRI_TP5_SHIFT (8U) +#define AIPS_PACRI_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP5_SHIFT)) & AIPS_PACRI_TP5_MASK) +#define AIPS_PACRI_WP5_MASK (0x200U) +#define AIPS_PACRI_WP5_SHIFT (9U) +#define AIPS_PACRI_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP5_SHIFT)) & AIPS_PACRI_WP5_MASK) +#define AIPS_PACRI_SP5_MASK (0x400U) +#define AIPS_PACRI_SP5_SHIFT (10U) +#define AIPS_PACRI_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP5_SHIFT)) & AIPS_PACRI_SP5_MASK) +#define AIPS_PACRI_TP4_MASK (0x1000U) +#define AIPS_PACRI_TP4_SHIFT (12U) +#define AIPS_PACRI_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP4_SHIFT)) & AIPS_PACRI_TP4_MASK) +#define AIPS_PACRI_WP4_MASK (0x2000U) +#define AIPS_PACRI_WP4_SHIFT (13U) +#define AIPS_PACRI_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP4_SHIFT)) & AIPS_PACRI_WP4_MASK) +#define AIPS_PACRI_SP4_MASK (0x4000U) +#define AIPS_PACRI_SP4_SHIFT (14U) +#define AIPS_PACRI_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP4_SHIFT)) & AIPS_PACRI_SP4_MASK) +#define AIPS_PACRI_TP3_MASK (0x10000U) +#define AIPS_PACRI_TP3_SHIFT (16U) +#define AIPS_PACRI_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP3_SHIFT)) & AIPS_PACRI_TP3_MASK) +#define AIPS_PACRI_WP3_MASK (0x20000U) +#define AIPS_PACRI_WP3_SHIFT (17U) +#define AIPS_PACRI_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP3_SHIFT)) & AIPS_PACRI_WP3_MASK) +#define AIPS_PACRI_SP3_MASK (0x40000U) +#define AIPS_PACRI_SP3_SHIFT (18U) +#define AIPS_PACRI_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP3_SHIFT)) & AIPS_PACRI_SP3_MASK) +#define AIPS_PACRI_TP2_MASK (0x100000U) +#define AIPS_PACRI_TP2_SHIFT (20U) +#define AIPS_PACRI_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP2_SHIFT)) & AIPS_PACRI_TP2_MASK) +#define AIPS_PACRI_WP2_MASK (0x200000U) +#define AIPS_PACRI_WP2_SHIFT (21U) +#define AIPS_PACRI_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP2_SHIFT)) & AIPS_PACRI_WP2_MASK) +#define AIPS_PACRI_SP2_MASK (0x400000U) +#define AIPS_PACRI_SP2_SHIFT (22U) +#define AIPS_PACRI_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP2_SHIFT)) & AIPS_PACRI_SP2_MASK) +#define AIPS_PACRI_TP1_MASK (0x1000000U) +#define AIPS_PACRI_TP1_SHIFT (24U) +#define AIPS_PACRI_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP1_SHIFT)) & AIPS_PACRI_TP1_MASK) +#define AIPS_PACRI_WP1_MASK (0x2000000U) +#define AIPS_PACRI_WP1_SHIFT (25U) +#define AIPS_PACRI_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP1_SHIFT)) & AIPS_PACRI_WP1_MASK) +#define AIPS_PACRI_SP1_MASK (0x4000000U) +#define AIPS_PACRI_SP1_SHIFT (26U) +#define AIPS_PACRI_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP1_SHIFT)) & AIPS_PACRI_SP1_MASK) +#define AIPS_PACRI_TP0_MASK (0x10000000U) +#define AIPS_PACRI_TP0_SHIFT (28U) +#define AIPS_PACRI_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_TP0_SHIFT)) & AIPS_PACRI_TP0_MASK) +#define AIPS_PACRI_WP0_MASK (0x20000000U) +#define AIPS_PACRI_WP0_SHIFT (29U) +#define AIPS_PACRI_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_WP0_SHIFT)) & AIPS_PACRI_WP0_MASK) +#define AIPS_PACRI_SP0_MASK (0x40000000U) +#define AIPS_PACRI_SP0_SHIFT (30U) +#define AIPS_PACRI_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRI_SP0_SHIFT)) & AIPS_PACRI_SP0_MASK) + +/*! @name PACRJ - Peripheral Access Control Register */ +#define AIPS_PACRJ_TP7_MASK (0x1U) +#define AIPS_PACRJ_TP7_SHIFT (0U) +#define AIPS_PACRJ_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP7_SHIFT)) & AIPS_PACRJ_TP7_MASK) +#define AIPS_PACRJ_WP7_MASK (0x2U) +#define AIPS_PACRJ_WP7_SHIFT (1U) +#define AIPS_PACRJ_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP7_SHIFT)) & AIPS_PACRJ_WP7_MASK) +#define AIPS_PACRJ_SP7_MASK (0x4U) +#define AIPS_PACRJ_SP7_SHIFT (2U) +#define AIPS_PACRJ_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP7_SHIFT)) & AIPS_PACRJ_SP7_MASK) +#define AIPS_PACRJ_TP6_MASK (0x10U) +#define AIPS_PACRJ_TP6_SHIFT (4U) +#define AIPS_PACRJ_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP6_SHIFT)) & AIPS_PACRJ_TP6_MASK) +#define AIPS_PACRJ_WP6_MASK (0x20U) +#define AIPS_PACRJ_WP6_SHIFT (5U) +#define AIPS_PACRJ_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP6_SHIFT)) & AIPS_PACRJ_WP6_MASK) +#define AIPS_PACRJ_SP6_MASK (0x40U) +#define AIPS_PACRJ_SP6_SHIFT (6U) +#define AIPS_PACRJ_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP6_SHIFT)) & AIPS_PACRJ_SP6_MASK) +#define AIPS_PACRJ_TP5_MASK (0x100U) +#define AIPS_PACRJ_TP5_SHIFT (8U) +#define AIPS_PACRJ_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP5_SHIFT)) & AIPS_PACRJ_TP5_MASK) +#define AIPS_PACRJ_WP5_MASK (0x200U) +#define AIPS_PACRJ_WP5_SHIFT (9U) +#define AIPS_PACRJ_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP5_SHIFT)) & AIPS_PACRJ_WP5_MASK) +#define AIPS_PACRJ_SP5_MASK (0x400U) +#define AIPS_PACRJ_SP5_SHIFT (10U) +#define AIPS_PACRJ_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP5_SHIFT)) & AIPS_PACRJ_SP5_MASK) +#define AIPS_PACRJ_TP4_MASK (0x1000U) +#define AIPS_PACRJ_TP4_SHIFT (12U) +#define AIPS_PACRJ_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP4_SHIFT)) & AIPS_PACRJ_TP4_MASK) +#define AIPS_PACRJ_WP4_MASK (0x2000U) +#define AIPS_PACRJ_WP4_SHIFT (13U) +#define AIPS_PACRJ_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP4_SHIFT)) & AIPS_PACRJ_WP4_MASK) +#define AIPS_PACRJ_SP4_MASK (0x4000U) +#define AIPS_PACRJ_SP4_SHIFT (14U) +#define AIPS_PACRJ_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP4_SHIFT)) & AIPS_PACRJ_SP4_MASK) +#define AIPS_PACRJ_TP3_MASK (0x10000U) +#define AIPS_PACRJ_TP3_SHIFT (16U) +#define AIPS_PACRJ_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP3_SHIFT)) & AIPS_PACRJ_TP3_MASK) +#define AIPS_PACRJ_WP3_MASK (0x20000U) +#define AIPS_PACRJ_WP3_SHIFT (17U) +#define AIPS_PACRJ_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP3_SHIFT)) & AIPS_PACRJ_WP3_MASK) +#define AIPS_PACRJ_SP3_MASK (0x40000U) +#define AIPS_PACRJ_SP3_SHIFT (18U) +#define AIPS_PACRJ_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP3_SHIFT)) & AIPS_PACRJ_SP3_MASK) +#define AIPS_PACRJ_TP2_MASK (0x100000U) +#define AIPS_PACRJ_TP2_SHIFT (20U) +#define AIPS_PACRJ_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP2_SHIFT)) & AIPS_PACRJ_TP2_MASK) +#define AIPS_PACRJ_WP2_MASK (0x200000U) +#define AIPS_PACRJ_WP2_SHIFT (21U) +#define AIPS_PACRJ_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP2_SHIFT)) & AIPS_PACRJ_WP2_MASK) +#define AIPS_PACRJ_SP2_MASK (0x400000U) +#define AIPS_PACRJ_SP2_SHIFT (22U) +#define AIPS_PACRJ_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP2_SHIFT)) & AIPS_PACRJ_SP2_MASK) +#define AIPS_PACRJ_TP1_MASK (0x1000000U) +#define AIPS_PACRJ_TP1_SHIFT (24U) +#define AIPS_PACRJ_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP1_SHIFT)) & AIPS_PACRJ_TP1_MASK) +#define AIPS_PACRJ_WP1_MASK (0x2000000U) +#define AIPS_PACRJ_WP1_SHIFT (25U) +#define AIPS_PACRJ_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP1_SHIFT)) & AIPS_PACRJ_WP1_MASK) +#define AIPS_PACRJ_SP1_MASK (0x4000000U) +#define AIPS_PACRJ_SP1_SHIFT (26U) +#define AIPS_PACRJ_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP1_SHIFT)) & AIPS_PACRJ_SP1_MASK) +#define AIPS_PACRJ_TP0_MASK (0x10000000U) +#define AIPS_PACRJ_TP0_SHIFT (28U) +#define AIPS_PACRJ_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_TP0_SHIFT)) & AIPS_PACRJ_TP0_MASK) +#define AIPS_PACRJ_WP0_MASK (0x20000000U) +#define AIPS_PACRJ_WP0_SHIFT (29U) +#define AIPS_PACRJ_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_WP0_SHIFT)) & AIPS_PACRJ_WP0_MASK) +#define AIPS_PACRJ_SP0_MASK (0x40000000U) +#define AIPS_PACRJ_SP0_SHIFT (30U) +#define AIPS_PACRJ_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRJ_SP0_SHIFT)) & AIPS_PACRJ_SP0_MASK) + +/*! @name PACRK - Peripheral Access Control Register */ +#define AIPS_PACRK_TP7_MASK (0x1U) +#define AIPS_PACRK_TP7_SHIFT (0U) +#define AIPS_PACRK_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP7_SHIFT)) & AIPS_PACRK_TP7_MASK) +#define AIPS_PACRK_WP7_MASK (0x2U) +#define AIPS_PACRK_WP7_SHIFT (1U) +#define AIPS_PACRK_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP7_SHIFT)) & AIPS_PACRK_WP7_MASK) +#define AIPS_PACRK_SP7_MASK (0x4U) +#define AIPS_PACRK_SP7_SHIFT (2U) +#define AIPS_PACRK_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP7_SHIFT)) & AIPS_PACRK_SP7_MASK) +#define AIPS_PACRK_TP6_MASK (0x10U) +#define AIPS_PACRK_TP6_SHIFT (4U) +#define AIPS_PACRK_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP6_SHIFT)) & AIPS_PACRK_TP6_MASK) +#define AIPS_PACRK_WP6_MASK (0x20U) +#define AIPS_PACRK_WP6_SHIFT (5U) +#define AIPS_PACRK_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP6_SHIFT)) & AIPS_PACRK_WP6_MASK) +#define AIPS_PACRK_SP6_MASK (0x40U) +#define AIPS_PACRK_SP6_SHIFT (6U) +#define AIPS_PACRK_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP6_SHIFT)) & AIPS_PACRK_SP6_MASK) +#define AIPS_PACRK_TP5_MASK (0x100U) +#define AIPS_PACRK_TP5_SHIFT (8U) +#define AIPS_PACRK_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP5_SHIFT)) & AIPS_PACRK_TP5_MASK) +#define AIPS_PACRK_WP5_MASK (0x200U) +#define AIPS_PACRK_WP5_SHIFT (9U) +#define AIPS_PACRK_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP5_SHIFT)) & AIPS_PACRK_WP5_MASK) +#define AIPS_PACRK_SP5_MASK (0x400U) +#define AIPS_PACRK_SP5_SHIFT (10U) +#define AIPS_PACRK_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP5_SHIFT)) & AIPS_PACRK_SP5_MASK) +#define AIPS_PACRK_TP4_MASK (0x1000U) +#define AIPS_PACRK_TP4_SHIFT (12U) +#define AIPS_PACRK_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP4_SHIFT)) & AIPS_PACRK_TP4_MASK) +#define AIPS_PACRK_WP4_MASK (0x2000U) +#define AIPS_PACRK_WP4_SHIFT (13U) +#define AIPS_PACRK_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP4_SHIFT)) & AIPS_PACRK_WP4_MASK) +#define AIPS_PACRK_SP4_MASK (0x4000U) +#define AIPS_PACRK_SP4_SHIFT (14U) +#define AIPS_PACRK_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP4_SHIFT)) & AIPS_PACRK_SP4_MASK) +#define AIPS_PACRK_TP3_MASK (0x10000U) +#define AIPS_PACRK_TP3_SHIFT (16U) +#define AIPS_PACRK_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP3_SHIFT)) & AIPS_PACRK_TP3_MASK) +#define AIPS_PACRK_WP3_MASK (0x20000U) +#define AIPS_PACRK_WP3_SHIFT (17U) +#define AIPS_PACRK_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP3_SHIFT)) & AIPS_PACRK_WP3_MASK) +#define AIPS_PACRK_SP3_MASK (0x40000U) +#define AIPS_PACRK_SP3_SHIFT (18U) +#define AIPS_PACRK_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP3_SHIFT)) & AIPS_PACRK_SP3_MASK) +#define AIPS_PACRK_TP2_MASK (0x100000U) +#define AIPS_PACRK_TP2_SHIFT (20U) +#define AIPS_PACRK_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP2_SHIFT)) & AIPS_PACRK_TP2_MASK) +#define AIPS_PACRK_WP2_MASK (0x200000U) +#define AIPS_PACRK_WP2_SHIFT (21U) +#define AIPS_PACRK_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP2_SHIFT)) & AIPS_PACRK_WP2_MASK) +#define AIPS_PACRK_SP2_MASK (0x400000U) +#define AIPS_PACRK_SP2_SHIFT (22U) +#define AIPS_PACRK_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP2_SHIFT)) & AIPS_PACRK_SP2_MASK) +#define AIPS_PACRK_TP1_MASK (0x1000000U) +#define AIPS_PACRK_TP1_SHIFT (24U) +#define AIPS_PACRK_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP1_SHIFT)) & AIPS_PACRK_TP1_MASK) +#define AIPS_PACRK_WP1_MASK (0x2000000U) +#define AIPS_PACRK_WP1_SHIFT (25U) +#define AIPS_PACRK_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP1_SHIFT)) & AIPS_PACRK_WP1_MASK) +#define AIPS_PACRK_SP1_MASK (0x4000000U) +#define AIPS_PACRK_SP1_SHIFT (26U) +#define AIPS_PACRK_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP1_SHIFT)) & AIPS_PACRK_SP1_MASK) +#define AIPS_PACRK_TP0_MASK (0x10000000U) +#define AIPS_PACRK_TP0_SHIFT (28U) +#define AIPS_PACRK_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_TP0_SHIFT)) & AIPS_PACRK_TP0_MASK) +#define AIPS_PACRK_WP0_MASK (0x20000000U) +#define AIPS_PACRK_WP0_SHIFT (29U) +#define AIPS_PACRK_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_WP0_SHIFT)) & AIPS_PACRK_WP0_MASK) +#define AIPS_PACRK_SP0_MASK (0x40000000U) +#define AIPS_PACRK_SP0_SHIFT (30U) +#define AIPS_PACRK_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRK_SP0_SHIFT)) & AIPS_PACRK_SP0_MASK) + +/*! @name PACRL - Peripheral Access Control Register */ +#define AIPS_PACRL_TP7_MASK (0x1U) +#define AIPS_PACRL_TP7_SHIFT (0U) +#define AIPS_PACRL_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP7_SHIFT)) & AIPS_PACRL_TP7_MASK) +#define AIPS_PACRL_WP7_MASK (0x2U) +#define AIPS_PACRL_WP7_SHIFT (1U) +#define AIPS_PACRL_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP7_SHIFT)) & AIPS_PACRL_WP7_MASK) +#define AIPS_PACRL_SP7_MASK (0x4U) +#define AIPS_PACRL_SP7_SHIFT (2U) +#define AIPS_PACRL_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP7_SHIFT)) & AIPS_PACRL_SP7_MASK) +#define AIPS_PACRL_TP6_MASK (0x10U) +#define AIPS_PACRL_TP6_SHIFT (4U) +#define AIPS_PACRL_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP6_SHIFT)) & AIPS_PACRL_TP6_MASK) +#define AIPS_PACRL_WP6_MASK (0x20U) +#define AIPS_PACRL_WP6_SHIFT (5U) +#define AIPS_PACRL_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP6_SHIFT)) & AIPS_PACRL_WP6_MASK) +#define AIPS_PACRL_SP6_MASK (0x40U) +#define AIPS_PACRL_SP6_SHIFT (6U) +#define AIPS_PACRL_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP6_SHIFT)) & AIPS_PACRL_SP6_MASK) +#define AIPS_PACRL_TP5_MASK (0x100U) +#define AIPS_PACRL_TP5_SHIFT (8U) +#define AIPS_PACRL_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP5_SHIFT)) & AIPS_PACRL_TP5_MASK) +#define AIPS_PACRL_WP5_MASK (0x200U) +#define AIPS_PACRL_WP5_SHIFT (9U) +#define AIPS_PACRL_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP5_SHIFT)) & AIPS_PACRL_WP5_MASK) +#define AIPS_PACRL_SP5_MASK (0x400U) +#define AIPS_PACRL_SP5_SHIFT (10U) +#define AIPS_PACRL_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP5_SHIFT)) & AIPS_PACRL_SP5_MASK) +#define AIPS_PACRL_TP4_MASK (0x1000U) +#define AIPS_PACRL_TP4_SHIFT (12U) +#define AIPS_PACRL_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP4_SHIFT)) & AIPS_PACRL_TP4_MASK) +#define AIPS_PACRL_WP4_MASK (0x2000U) +#define AIPS_PACRL_WP4_SHIFT (13U) +#define AIPS_PACRL_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP4_SHIFT)) & AIPS_PACRL_WP4_MASK) +#define AIPS_PACRL_SP4_MASK (0x4000U) +#define AIPS_PACRL_SP4_SHIFT (14U) +#define AIPS_PACRL_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP4_SHIFT)) & AIPS_PACRL_SP4_MASK) +#define AIPS_PACRL_TP3_MASK (0x10000U) +#define AIPS_PACRL_TP3_SHIFT (16U) +#define AIPS_PACRL_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP3_SHIFT)) & AIPS_PACRL_TP3_MASK) +#define AIPS_PACRL_WP3_MASK (0x20000U) +#define AIPS_PACRL_WP3_SHIFT (17U) +#define AIPS_PACRL_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP3_SHIFT)) & AIPS_PACRL_WP3_MASK) +#define AIPS_PACRL_SP3_MASK (0x40000U) +#define AIPS_PACRL_SP3_SHIFT (18U) +#define AIPS_PACRL_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP3_SHIFT)) & AIPS_PACRL_SP3_MASK) +#define AIPS_PACRL_TP2_MASK (0x100000U) +#define AIPS_PACRL_TP2_SHIFT (20U) +#define AIPS_PACRL_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP2_SHIFT)) & AIPS_PACRL_TP2_MASK) +#define AIPS_PACRL_WP2_MASK (0x200000U) +#define AIPS_PACRL_WP2_SHIFT (21U) +#define AIPS_PACRL_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP2_SHIFT)) & AIPS_PACRL_WP2_MASK) +#define AIPS_PACRL_SP2_MASK (0x400000U) +#define AIPS_PACRL_SP2_SHIFT (22U) +#define AIPS_PACRL_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP2_SHIFT)) & AIPS_PACRL_SP2_MASK) +#define AIPS_PACRL_TP1_MASK (0x1000000U) +#define AIPS_PACRL_TP1_SHIFT (24U) +#define AIPS_PACRL_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP1_SHIFT)) & AIPS_PACRL_TP1_MASK) +#define AIPS_PACRL_WP1_MASK (0x2000000U) +#define AIPS_PACRL_WP1_SHIFT (25U) +#define AIPS_PACRL_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP1_SHIFT)) & AIPS_PACRL_WP1_MASK) +#define AIPS_PACRL_SP1_MASK (0x4000000U) +#define AIPS_PACRL_SP1_SHIFT (26U) +#define AIPS_PACRL_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP1_SHIFT)) & AIPS_PACRL_SP1_MASK) +#define AIPS_PACRL_TP0_MASK (0x10000000U) +#define AIPS_PACRL_TP0_SHIFT (28U) +#define AIPS_PACRL_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_TP0_SHIFT)) & AIPS_PACRL_TP0_MASK) +#define AIPS_PACRL_WP0_MASK (0x20000000U) +#define AIPS_PACRL_WP0_SHIFT (29U) +#define AIPS_PACRL_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_WP0_SHIFT)) & AIPS_PACRL_WP0_MASK) +#define AIPS_PACRL_SP0_MASK (0x40000000U) +#define AIPS_PACRL_SP0_SHIFT (30U) +#define AIPS_PACRL_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRL_SP0_SHIFT)) & AIPS_PACRL_SP0_MASK) + +/*! @name PACRM - Peripheral Access Control Register */ +#define AIPS_PACRM_TP7_MASK (0x1U) +#define AIPS_PACRM_TP7_SHIFT (0U) +#define AIPS_PACRM_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP7_SHIFT)) & AIPS_PACRM_TP7_MASK) +#define AIPS_PACRM_WP7_MASK (0x2U) +#define AIPS_PACRM_WP7_SHIFT (1U) +#define AIPS_PACRM_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP7_SHIFT)) & AIPS_PACRM_WP7_MASK) +#define AIPS_PACRM_SP7_MASK (0x4U) +#define AIPS_PACRM_SP7_SHIFT (2U) +#define AIPS_PACRM_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP7_SHIFT)) & AIPS_PACRM_SP7_MASK) +#define AIPS_PACRM_TP6_MASK (0x10U) +#define AIPS_PACRM_TP6_SHIFT (4U) +#define AIPS_PACRM_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP6_SHIFT)) & AIPS_PACRM_TP6_MASK) +#define AIPS_PACRM_WP6_MASK (0x20U) +#define AIPS_PACRM_WP6_SHIFT (5U) +#define AIPS_PACRM_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP6_SHIFT)) & AIPS_PACRM_WP6_MASK) +#define AIPS_PACRM_SP6_MASK (0x40U) +#define AIPS_PACRM_SP6_SHIFT (6U) +#define AIPS_PACRM_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP6_SHIFT)) & AIPS_PACRM_SP6_MASK) +#define AIPS_PACRM_TP5_MASK (0x100U) +#define AIPS_PACRM_TP5_SHIFT (8U) +#define AIPS_PACRM_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP5_SHIFT)) & AIPS_PACRM_TP5_MASK) +#define AIPS_PACRM_WP5_MASK (0x200U) +#define AIPS_PACRM_WP5_SHIFT (9U) +#define AIPS_PACRM_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP5_SHIFT)) & AIPS_PACRM_WP5_MASK) +#define AIPS_PACRM_SP5_MASK (0x400U) +#define AIPS_PACRM_SP5_SHIFT (10U) +#define AIPS_PACRM_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP5_SHIFT)) & AIPS_PACRM_SP5_MASK) +#define AIPS_PACRM_TP4_MASK (0x1000U) +#define AIPS_PACRM_TP4_SHIFT (12U) +#define AIPS_PACRM_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP4_SHIFT)) & AIPS_PACRM_TP4_MASK) +#define AIPS_PACRM_WP4_MASK (0x2000U) +#define AIPS_PACRM_WP4_SHIFT (13U) +#define AIPS_PACRM_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP4_SHIFT)) & AIPS_PACRM_WP4_MASK) +#define AIPS_PACRM_SP4_MASK (0x4000U) +#define AIPS_PACRM_SP4_SHIFT (14U) +#define AIPS_PACRM_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP4_SHIFT)) & AIPS_PACRM_SP4_MASK) +#define AIPS_PACRM_TP3_MASK (0x10000U) +#define AIPS_PACRM_TP3_SHIFT (16U) +#define AIPS_PACRM_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP3_SHIFT)) & AIPS_PACRM_TP3_MASK) +#define AIPS_PACRM_WP3_MASK (0x20000U) +#define AIPS_PACRM_WP3_SHIFT (17U) +#define AIPS_PACRM_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP3_SHIFT)) & AIPS_PACRM_WP3_MASK) +#define AIPS_PACRM_SP3_MASK (0x40000U) +#define AIPS_PACRM_SP3_SHIFT (18U) +#define AIPS_PACRM_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP3_SHIFT)) & AIPS_PACRM_SP3_MASK) +#define AIPS_PACRM_TP2_MASK (0x100000U) +#define AIPS_PACRM_TP2_SHIFT (20U) +#define AIPS_PACRM_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP2_SHIFT)) & AIPS_PACRM_TP2_MASK) +#define AIPS_PACRM_WP2_MASK (0x200000U) +#define AIPS_PACRM_WP2_SHIFT (21U) +#define AIPS_PACRM_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP2_SHIFT)) & AIPS_PACRM_WP2_MASK) +#define AIPS_PACRM_SP2_MASK (0x400000U) +#define AIPS_PACRM_SP2_SHIFT (22U) +#define AIPS_PACRM_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP2_SHIFT)) & AIPS_PACRM_SP2_MASK) +#define AIPS_PACRM_TP1_MASK (0x1000000U) +#define AIPS_PACRM_TP1_SHIFT (24U) +#define AIPS_PACRM_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP1_SHIFT)) & AIPS_PACRM_TP1_MASK) +#define AIPS_PACRM_WP1_MASK (0x2000000U) +#define AIPS_PACRM_WP1_SHIFT (25U) +#define AIPS_PACRM_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP1_SHIFT)) & AIPS_PACRM_WP1_MASK) +#define AIPS_PACRM_SP1_MASK (0x4000000U) +#define AIPS_PACRM_SP1_SHIFT (26U) +#define AIPS_PACRM_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP1_SHIFT)) & AIPS_PACRM_SP1_MASK) +#define AIPS_PACRM_TP0_MASK (0x10000000U) +#define AIPS_PACRM_TP0_SHIFT (28U) +#define AIPS_PACRM_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_TP0_SHIFT)) & AIPS_PACRM_TP0_MASK) +#define AIPS_PACRM_WP0_MASK (0x20000000U) +#define AIPS_PACRM_WP0_SHIFT (29U) +#define AIPS_PACRM_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_WP0_SHIFT)) & AIPS_PACRM_WP0_MASK) +#define AIPS_PACRM_SP0_MASK (0x40000000U) +#define AIPS_PACRM_SP0_SHIFT (30U) +#define AIPS_PACRM_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRM_SP0_SHIFT)) & AIPS_PACRM_SP0_MASK) + +/*! @name PACRN - Peripheral Access Control Register */ +#define AIPS_PACRN_TP7_MASK (0x1U) +#define AIPS_PACRN_TP7_SHIFT (0U) +#define AIPS_PACRN_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP7_SHIFT)) & AIPS_PACRN_TP7_MASK) +#define AIPS_PACRN_WP7_MASK (0x2U) +#define AIPS_PACRN_WP7_SHIFT (1U) +#define AIPS_PACRN_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP7_SHIFT)) & AIPS_PACRN_WP7_MASK) +#define AIPS_PACRN_SP7_MASK (0x4U) +#define AIPS_PACRN_SP7_SHIFT (2U) +#define AIPS_PACRN_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP7_SHIFT)) & AIPS_PACRN_SP7_MASK) +#define AIPS_PACRN_TP6_MASK (0x10U) +#define AIPS_PACRN_TP6_SHIFT (4U) +#define AIPS_PACRN_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP6_SHIFT)) & AIPS_PACRN_TP6_MASK) +#define AIPS_PACRN_WP6_MASK (0x20U) +#define AIPS_PACRN_WP6_SHIFT (5U) +#define AIPS_PACRN_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP6_SHIFT)) & AIPS_PACRN_WP6_MASK) +#define AIPS_PACRN_SP6_MASK (0x40U) +#define AIPS_PACRN_SP6_SHIFT (6U) +#define AIPS_PACRN_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP6_SHIFT)) & AIPS_PACRN_SP6_MASK) +#define AIPS_PACRN_TP5_MASK (0x100U) +#define AIPS_PACRN_TP5_SHIFT (8U) +#define AIPS_PACRN_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP5_SHIFT)) & AIPS_PACRN_TP5_MASK) +#define AIPS_PACRN_WP5_MASK (0x200U) +#define AIPS_PACRN_WP5_SHIFT (9U) +#define AIPS_PACRN_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP5_SHIFT)) & AIPS_PACRN_WP5_MASK) +#define AIPS_PACRN_SP5_MASK (0x400U) +#define AIPS_PACRN_SP5_SHIFT (10U) +#define AIPS_PACRN_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP5_SHIFT)) & AIPS_PACRN_SP5_MASK) +#define AIPS_PACRN_TP4_MASK (0x1000U) +#define AIPS_PACRN_TP4_SHIFT (12U) +#define AIPS_PACRN_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP4_SHIFT)) & AIPS_PACRN_TP4_MASK) +#define AIPS_PACRN_WP4_MASK (0x2000U) +#define AIPS_PACRN_WP4_SHIFT (13U) +#define AIPS_PACRN_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP4_SHIFT)) & AIPS_PACRN_WP4_MASK) +#define AIPS_PACRN_SP4_MASK (0x4000U) +#define AIPS_PACRN_SP4_SHIFT (14U) +#define AIPS_PACRN_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP4_SHIFT)) & AIPS_PACRN_SP4_MASK) +#define AIPS_PACRN_TP3_MASK (0x10000U) +#define AIPS_PACRN_TP3_SHIFT (16U) +#define AIPS_PACRN_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP3_SHIFT)) & AIPS_PACRN_TP3_MASK) +#define AIPS_PACRN_WP3_MASK (0x20000U) +#define AIPS_PACRN_WP3_SHIFT (17U) +#define AIPS_PACRN_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP3_SHIFT)) & AIPS_PACRN_WP3_MASK) +#define AIPS_PACRN_SP3_MASK (0x40000U) +#define AIPS_PACRN_SP3_SHIFT (18U) +#define AIPS_PACRN_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP3_SHIFT)) & AIPS_PACRN_SP3_MASK) +#define AIPS_PACRN_TP2_MASK (0x100000U) +#define AIPS_PACRN_TP2_SHIFT (20U) +#define AIPS_PACRN_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP2_SHIFT)) & AIPS_PACRN_TP2_MASK) +#define AIPS_PACRN_WP2_MASK (0x200000U) +#define AIPS_PACRN_WP2_SHIFT (21U) +#define AIPS_PACRN_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP2_SHIFT)) & AIPS_PACRN_WP2_MASK) +#define AIPS_PACRN_SP2_MASK (0x400000U) +#define AIPS_PACRN_SP2_SHIFT (22U) +#define AIPS_PACRN_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP2_SHIFT)) & AIPS_PACRN_SP2_MASK) +#define AIPS_PACRN_TP1_MASK (0x1000000U) +#define AIPS_PACRN_TP1_SHIFT (24U) +#define AIPS_PACRN_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP1_SHIFT)) & AIPS_PACRN_TP1_MASK) +#define AIPS_PACRN_WP1_MASK (0x2000000U) +#define AIPS_PACRN_WP1_SHIFT (25U) +#define AIPS_PACRN_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP1_SHIFT)) & AIPS_PACRN_WP1_MASK) +#define AIPS_PACRN_SP1_MASK (0x4000000U) +#define AIPS_PACRN_SP1_SHIFT (26U) +#define AIPS_PACRN_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP1_SHIFT)) & AIPS_PACRN_SP1_MASK) +#define AIPS_PACRN_TP0_MASK (0x10000000U) +#define AIPS_PACRN_TP0_SHIFT (28U) +#define AIPS_PACRN_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_TP0_SHIFT)) & AIPS_PACRN_TP0_MASK) +#define AIPS_PACRN_WP0_MASK (0x20000000U) +#define AIPS_PACRN_WP0_SHIFT (29U) +#define AIPS_PACRN_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_WP0_SHIFT)) & AIPS_PACRN_WP0_MASK) +#define AIPS_PACRN_SP0_MASK (0x40000000U) +#define AIPS_PACRN_SP0_SHIFT (30U) +#define AIPS_PACRN_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRN_SP0_SHIFT)) & AIPS_PACRN_SP0_MASK) + +/*! @name PACRO - Peripheral Access Control Register */ +#define AIPS_PACRO_TP7_MASK (0x1U) +#define AIPS_PACRO_TP7_SHIFT (0U) +#define AIPS_PACRO_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP7_SHIFT)) & AIPS_PACRO_TP7_MASK) +#define AIPS_PACRO_WP7_MASK (0x2U) +#define AIPS_PACRO_WP7_SHIFT (1U) +#define AIPS_PACRO_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP7_SHIFT)) & AIPS_PACRO_WP7_MASK) +#define AIPS_PACRO_SP7_MASK (0x4U) +#define AIPS_PACRO_SP7_SHIFT (2U) +#define AIPS_PACRO_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP7_SHIFT)) & AIPS_PACRO_SP7_MASK) +#define AIPS_PACRO_TP6_MASK (0x10U) +#define AIPS_PACRO_TP6_SHIFT (4U) +#define AIPS_PACRO_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP6_SHIFT)) & AIPS_PACRO_TP6_MASK) +#define AIPS_PACRO_WP6_MASK (0x20U) +#define AIPS_PACRO_WP6_SHIFT (5U) +#define AIPS_PACRO_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP6_SHIFT)) & AIPS_PACRO_WP6_MASK) +#define AIPS_PACRO_SP6_MASK (0x40U) +#define AIPS_PACRO_SP6_SHIFT (6U) +#define AIPS_PACRO_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP6_SHIFT)) & AIPS_PACRO_SP6_MASK) +#define AIPS_PACRO_TP5_MASK (0x100U) +#define AIPS_PACRO_TP5_SHIFT (8U) +#define AIPS_PACRO_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP5_SHIFT)) & AIPS_PACRO_TP5_MASK) +#define AIPS_PACRO_WP5_MASK (0x200U) +#define AIPS_PACRO_WP5_SHIFT (9U) +#define AIPS_PACRO_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP5_SHIFT)) & AIPS_PACRO_WP5_MASK) +#define AIPS_PACRO_SP5_MASK (0x400U) +#define AIPS_PACRO_SP5_SHIFT (10U) +#define AIPS_PACRO_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP5_SHIFT)) & AIPS_PACRO_SP5_MASK) +#define AIPS_PACRO_TP4_MASK (0x1000U) +#define AIPS_PACRO_TP4_SHIFT (12U) +#define AIPS_PACRO_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP4_SHIFT)) & AIPS_PACRO_TP4_MASK) +#define AIPS_PACRO_WP4_MASK (0x2000U) +#define AIPS_PACRO_WP4_SHIFT (13U) +#define AIPS_PACRO_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP4_SHIFT)) & AIPS_PACRO_WP4_MASK) +#define AIPS_PACRO_SP4_MASK (0x4000U) +#define AIPS_PACRO_SP4_SHIFT (14U) +#define AIPS_PACRO_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP4_SHIFT)) & AIPS_PACRO_SP4_MASK) +#define AIPS_PACRO_TP3_MASK (0x10000U) +#define AIPS_PACRO_TP3_SHIFT (16U) +#define AIPS_PACRO_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP3_SHIFT)) & AIPS_PACRO_TP3_MASK) +#define AIPS_PACRO_WP3_MASK (0x20000U) +#define AIPS_PACRO_WP3_SHIFT (17U) +#define AIPS_PACRO_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP3_SHIFT)) & AIPS_PACRO_WP3_MASK) +#define AIPS_PACRO_SP3_MASK (0x40000U) +#define AIPS_PACRO_SP3_SHIFT (18U) +#define AIPS_PACRO_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP3_SHIFT)) & AIPS_PACRO_SP3_MASK) +#define AIPS_PACRO_TP2_MASK (0x100000U) +#define AIPS_PACRO_TP2_SHIFT (20U) +#define AIPS_PACRO_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP2_SHIFT)) & AIPS_PACRO_TP2_MASK) +#define AIPS_PACRO_WP2_MASK (0x200000U) +#define AIPS_PACRO_WP2_SHIFT (21U) +#define AIPS_PACRO_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP2_SHIFT)) & AIPS_PACRO_WP2_MASK) +#define AIPS_PACRO_SP2_MASK (0x400000U) +#define AIPS_PACRO_SP2_SHIFT (22U) +#define AIPS_PACRO_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP2_SHIFT)) & AIPS_PACRO_SP2_MASK) +#define AIPS_PACRO_TP1_MASK (0x1000000U) +#define AIPS_PACRO_TP1_SHIFT (24U) +#define AIPS_PACRO_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP1_SHIFT)) & AIPS_PACRO_TP1_MASK) +#define AIPS_PACRO_WP1_MASK (0x2000000U) +#define AIPS_PACRO_WP1_SHIFT (25U) +#define AIPS_PACRO_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP1_SHIFT)) & AIPS_PACRO_WP1_MASK) +#define AIPS_PACRO_SP1_MASK (0x4000000U) +#define AIPS_PACRO_SP1_SHIFT (26U) +#define AIPS_PACRO_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP1_SHIFT)) & AIPS_PACRO_SP1_MASK) +#define AIPS_PACRO_TP0_MASK (0x10000000U) +#define AIPS_PACRO_TP0_SHIFT (28U) +#define AIPS_PACRO_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_TP0_SHIFT)) & AIPS_PACRO_TP0_MASK) +#define AIPS_PACRO_WP0_MASK (0x20000000U) +#define AIPS_PACRO_WP0_SHIFT (29U) +#define AIPS_PACRO_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_WP0_SHIFT)) & AIPS_PACRO_WP0_MASK) +#define AIPS_PACRO_SP0_MASK (0x40000000U) +#define AIPS_PACRO_SP0_SHIFT (30U) +#define AIPS_PACRO_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRO_SP0_SHIFT)) & AIPS_PACRO_SP0_MASK) + +/*! @name PACRP - Peripheral Access Control Register */ +#define AIPS_PACRP_TP7_MASK (0x1U) +#define AIPS_PACRP_TP7_SHIFT (0U) +#define AIPS_PACRP_TP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP7_SHIFT)) & AIPS_PACRP_TP7_MASK) +#define AIPS_PACRP_WP7_MASK (0x2U) +#define AIPS_PACRP_WP7_SHIFT (1U) +#define AIPS_PACRP_WP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP7_SHIFT)) & AIPS_PACRP_WP7_MASK) +#define AIPS_PACRP_SP7_MASK (0x4U) +#define AIPS_PACRP_SP7_SHIFT (2U) +#define AIPS_PACRP_SP7(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP7_SHIFT)) & AIPS_PACRP_SP7_MASK) +#define AIPS_PACRP_TP6_MASK (0x10U) +#define AIPS_PACRP_TP6_SHIFT (4U) +#define AIPS_PACRP_TP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP6_SHIFT)) & AIPS_PACRP_TP6_MASK) +#define AIPS_PACRP_WP6_MASK (0x20U) +#define AIPS_PACRP_WP6_SHIFT (5U) +#define AIPS_PACRP_WP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP6_SHIFT)) & AIPS_PACRP_WP6_MASK) +#define AIPS_PACRP_SP6_MASK (0x40U) +#define AIPS_PACRP_SP6_SHIFT (6U) +#define AIPS_PACRP_SP6(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP6_SHIFT)) & AIPS_PACRP_SP6_MASK) +#define AIPS_PACRP_TP5_MASK (0x100U) +#define AIPS_PACRP_TP5_SHIFT (8U) +#define AIPS_PACRP_TP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP5_SHIFT)) & AIPS_PACRP_TP5_MASK) +#define AIPS_PACRP_WP5_MASK (0x200U) +#define AIPS_PACRP_WP5_SHIFT (9U) +#define AIPS_PACRP_WP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP5_SHIFT)) & AIPS_PACRP_WP5_MASK) +#define AIPS_PACRP_SP5_MASK (0x400U) +#define AIPS_PACRP_SP5_SHIFT (10U) +#define AIPS_PACRP_SP5(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP5_SHIFT)) & AIPS_PACRP_SP5_MASK) +#define AIPS_PACRP_TP4_MASK (0x1000U) +#define AIPS_PACRP_TP4_SHIFT (12U) +#define AIPS_PACRP_TP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP4_SHIFT)) & AIPS_PACRP_TP4_MASK) +#define AIPS_PACRP_WP4_MASK (0x2000U) +#define AIPS_PACRP_WP4_SHIFT (13U) +#define AIPS_PACRP_WP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP4_SHIFT)) & AIPS_PACRP_WP4_MASK) +#define AIPS_PACRP_SP4_MASK (0x4000U) +#define AIPS_PACRP_SP4_SHIFT (14U) +#define AIPS_PACRP_SP4(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP4_SHIFT)) & AIPS_PACRP_SP4_MASK) +#define AIPS_PACRP_TP3_MASK (0x10000U) +#define AIPS_PACRP_TP3_SHIFT (16U) +#define AIPS_PACRP_TP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP3_SHIFT)) & AIPS_PACRP_TP3_MASK) +#define AIPS_PACRP_WP3_MASK (0x20000U) +#define AIPS_PACRP_WP3_SHIFT (17U) +#define AIPS_PACRP_WP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP3_SHIFT)) & AIPS_PACRP_WP3_MASK) +#define AIPS_PACRP_SP3_MASK (0x40000U) +#define AIPS_PACRP_SP3_SHIFT (18U) +#define AIPS_PACRP_SP3(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP3_SHIFT)) & AIPS_PACRP_SP3_MASK) +#define AIPS_PACRP_TP2_MASK (0x100000U) +#define AIPS_PACRP_TP2_SHIFT (20U) +#define AIPS_PACRP_TP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP2_SHIFT)) & AIPS_PACRP_TP2_MASK) +#define AIPS_PACRP_WP2_MASK (0x200000U) +#define AIPS_PACRP_WP2_SHIFT (21U) +#define AIPS_PACRP_WP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP2_SHIFT)) & AIPS_PACRP_WP2_MASK) +#define AIPS_PACRP_SP2_MASK (0x400000U) +#define AIPS_PACRP_SP2_SHIFT (22U) +#define AIPS_PACRP_SP2(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP2_SHIFT)) & AIPS_PACRP_SP2_MASK) +#define AIPS_PACRP_TP1_MASK (0x1000000U) +#define AIPS_PACRP_TP1_SHIFT (24U) +#define AIPS_PACRP_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP1_SHIFT)) & AIPS_PACRP_TP1_MASK) +#define AIPS_PACRP_WP1_MASK (0x2000000U) +#define AIPS_PACRP_WP1_SHIFT (25U) +#define AIPS_PACRP_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP1_SHIFT)) & AIPS_PACRP_WP1_MASK) +#define AIPS_PACRP_SP1_MASK (0x4000000U) +#define AIPS_PACRP_SP1_SHIFT (26U) +#define AIPS_PACRP_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP1_SHIFT)) & AIPS_PACRP_SP1_MASK) +#define AIPS_PACRP_TP0_MASK (0x10000000U) +#define AIPS_PACRP_TP0_SHIFT (28U) +#define AIPS_PACRP_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_TP0_SHIFT)) & AIPS_PACRP_TP0_MASK) +#define AIPS_PACRP_WP0_MASK (0x20000000U) +#define AIPS_PACRP_WP0_SHIFT (29U) +#define AIPS_PACRP_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_WP0_SHIFT)) & AIPS_PACRP_WP0_MASK) +#define AIPS_PACRP_SP0_MASK (0x40000000U) +#define AIPS_PACRP_SP0_SHIFT (30U) +#define AIPS_PACRP_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRP_SP0_SHIFT)) & AIPS_PACRP_SP0_MASK) + +/*! @name PACRU - Peripheral Access Control Register */ +#define AIPS_PACRU_TP1_MASK (0x1000000U) +#define AIPS_PACRU_TP1_SHIFT (24U) +#define AIPS_PACRU_TP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRU_TP1_SHIFT)) & AIPS_PACRU_TP1_MASK) +#define AIPS_PACRU_WP1_MASK (0x2000000U) +#define AIPS_PACRU_WP1_SHIFT (25U) +#define AIPS_PACRU_WP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRU_WP1_SHIFT)) & AIPS_PACRU_WP1_MASK) +#define AIPS_PACRU_SP1_MASK (0x4000000U) +#define AIPS_PACRU_SP1_SHIFT (26U) +#define AIPS_PACRU_SP1(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRU_SP1_SHIFT)) & AIPS_PACRU_SP1_MASK) +#define AIPS_PACRU_TP0_MASK (0x10000000U) +#define AIPS_PACRU_TP0_SHIFT (28U) +#define AIPS_PACRU_TP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRU_TP0_SHIFT)) & AIPS_PACRU_TP0_MASK) +#define AIPS_PACRU_WP0_MASK (0x20000000U) +#define AIPS_PACRU_WP0_SHIFT (29U) +#define AIPS_PACRU_WP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRU_WP0_SHIFT)) & AIPS_PACRU_WP0_MASK) +#define AIPS_PACRU_SP0_MASK (0x40000000U) +#define AIPS_PACRU_SP0_SHIFT (30U) +#define AIPS_PACRU_SP0(x) (((uint32_t)(((uint32_t)(x)) << AIPS_PACRU_SP0_SHIFT)) & AIPS_PACRU_SP0_MASK) + + +/*! + * @} + */ /* end of group AIPS_Register_Masks */ + + +/* AIPS - Peripheral instance base addresses */ +/** Peripheral AIPS0 base address */ +#define AIPS0_BASE (0x40000000u) +/** Peripheral AIPS0 base pointer */ +#define AIPS0 ((AIPS_Type *)AIPS0_BASE) +/** Peripheral AIPS1 base address */ +#define AIPS1_BASE (0x40080000u) +/** Peripheral AIPS1 base pointer */ +#define AIPS1 ((AIPS_Type *)AIPS1_BASE) +/** Array initializer of AIPS peripheral base addresses */ +#define AIPS_BASE_ADDRS { AIPS0_BASE, AIPS1_BASE } +/** Array initializer of AIPS peripheral base pointers */ +#define AIPS_BASE_PTRS { AIPS0, AIPS1 } + +/*! + * @} + */ /* end of group AIPS_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- AXBS Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup AXBS_Peripheral_Access_Layer AXBS Peripheral Access Layer + * @{ + */ + +/** AXBS - Register Layout Typedef */ +typedef struct { + struct { /* offset: 0x0, array step: 0x100 */ + __IO uint32_t PRS; /**< Priority Registers Slave, array offset: 0x0, array step: 0x100 */ + uint8_t RESERVED_0[12]; + __IO uint32_t CRS; /**< Control Register, array offset: 0x10, array step: 0x100 */ + uint8_t RESERVED_1[236]; + } SLAVE[5]; + uint8_t RESERVED_0[768]; + __IO uint32_t MGPCR0; /**< Master General Purpose Control Register, offset: 0x800 */ + uint8_t RESERVED_1[252]; + __IO uint32_t MGPCR1; /**< Master General Purpose Control Register, offset: 0x900 */ + uint8_t RESERVED_2[252]; + __IO uint32_t MGPCR2; /**< Master General Purpose Control Register, offset: 0xA00 */ + uint8_t RESERVED_3[252]; + __IO uint32_t MGPCR3; /**< Master General Purpose Control Register, offset: 0xB00 */ + uint8_t RESERVED_4[252]; + __IO uint32_t MGPCR4; /**< Master General Purpose Control Register, offset: 0xC00 */ + uint8_t RESERVED_5[252]; + __IO uint32_t MGPCR5; /**< Master General Purpose Control Register, offset: 0xD00 */ +} AXBS_Type; + +/* ---------------------------------------------------------------------------- + -- AXBS Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup AXBS_Register_Masks AXBS Register Masks + * @{ + */ + +/*! @name PRS - Priority Registers Slave */ +#define AXBS_PRS_M0_MASK (0x7U) +#define AXBS_PRS_M0_SHIFT (0U) +#define AXBS_PRS_M0(x) (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M0_SHIFT)) & AXBS_PRS_M0_MASK) +#define AXBS_PRS_M1_MASK (0x70U) +#define AXBS_PRS_M1_SHIFT (4U) +#define AXBS_PRS_M1(x) (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M1_SHIFT)) & AXBS_PRS_M1_MASK) +#define AXBS_PRS_M2_MASK (0x700U) +#define AXBS_PRS_M2_SHIFT (8U) +#define AXBS_PRS_M2(x) (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M2_SHIFT)) & AXBS_PRS_M2_MASK) +#define AXBS_PRS_M3_MASK (0x7000U) +#define AXBS_PRS_M3_SHIFT (12U) +#define AXBS_PRS_M3(x) (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M3_SHIFT)) & AXBS_PRS_M3_MASK) +#define AXBS_PRS_M4_MASK (0x70000U) +#define AXBS_PRS_M4_SHIFT (16U) +#define AXBS_PRS_M4(x) (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M4_SHIFT)) & AXBS_PRS_M4_MASK) +#define AXBS_PRS_M5_MASK (0x700000U) +#define AXBS_PRS_M5_SHIFT (20U) +#define AXBS_PRS_M5(x) (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M5_SHIFT)) & AXBS_PRS_M5_MASK) + +/* The count of AXBS_PRS */ +#define AXBS_PRS_COUNT (5U) + +/*! @name CRS - Control Register */ +#define AXBS_CRS_PARK_MASK (0x7U) +#define AXBS_CRS_PARK_SHIFT (0U) +#define AXBS_CRS_PARK(x) (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_PARK_SHIFT)) & AXBS_CRS_PARK_MASK) +#define AXBS_CRS_PCTL_MASK (0x30U) +#define AXBS_CRS_PCTL_SHIFT (4U) +#define AXBS_CRS_PCTL(x) (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_PCTL_SHIFT)) & AXBS_CRS_PCTL_MASK) +#define AXBS_CRS_ARB_MASK (0x300U) +#define AXBS_CRS_ARB_SHIFT (8U) +#define AXBS_CRS_ARB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_ARB_SHIFT)) & AXBS_CRS_ARB_MASK) +#define AXBS_CRS_HLP_MASK (0x40000000U) +#define AXBS_CRS_HLP_SHIFT (30U) +#define AXBS_CRS_HLP(x) (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_HLP_SHIFT)) & AXBS_CRS_HLP_MASK) +#define AXBS_CRS_RO_MASK (0x80000000U) +#define AXBS_CRS_RO_SHIFT (31U) +#define AXBS_CRS_RO(x) (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_RO_SHIFT)) & AXBS_CRS_RO_MASK) + +/* The count of AXBS_CRS */ +#define AXBS_CRS_COUNT (5U) + +/*! @name MGPCR0 - Master General Purpose Control Register */ +#define AXBS_MGPCR0_AULB_MASK (0x7U) +#define AXBS_MGPCR0_AULB_SHIFT (0U) +#define AXBS_MGPCR0_AULB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR0_AULB_SHIFT)) & AXBS_MGPCR0_AULB_MASK) + +/*! @name MGPCR1 - Master General Purpose Control Register */ +#define AXBS_MGPCR1_AULB_MASK (0x7U) +#define AXBS_MGPCR1_AULB_SHIFT (0U) +#define AXBS_MGPCR1_AULB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR1_AULB_SHIFT)) & AXBS_MGPCR1_AULB_MASK) + +/*! @name MGPCR2 - Master General Purpose Control Register */ +#define AXBS_MGPCR2_AULB_MASK (0x7U) +#define AXBS_MGPCR2_AULB_SHIFT (0U) +#define AXBS_MGPCR2_AULB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR2_AULB_SHIFT)) & AXBS_MGPCR2_AULB_MASK) + +/*! @name MGPCR3 - Master General Purpose Control Register */ +#define AXBS_MGPCR3_AULB_MASK (0x7U) +#define AXBS_MGPCR3_AULB_SHIFT (0U) +#define AXBS_MGPCR3_AULB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR3_AULB_SHIFT)) & AXBS_MGPCR3_AULB_MASK) + +/*! @name MGPCR4 - Master General Purpose Control Register */ +#define AXBS_MGPCR4_AULB_MASK (0x7U) +#define AXBS_MGPCR4_AULB_SHIFT (0U) +#define AXBS_MGPCR4_AULB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR4_AULB_SHIFT)) & AXBS_MGPCR4_AULB_MASK) + +/*! @name MGPCR5 - Master General Purpose Control Register */ +#define AXBS_MGPCR5_AULB_MASK (0x7U) +#define AXBS_MGPCR5_AULB_SHIFT (0U) +#define AXBS_MGPCR5_AULB(x) (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR5_AULB_SHIFT)) & AXBS_MGPCR5_AULB_MASK) + + +/*! + * @} + */ /* end of group AXBS_Register_Masks */ + + +/* AXBS - Peripheral instance base addresses */ +/** Peripheral AXBS base address */ +#define AXBS_BASE (0x40004000u) +/** Peripheral AXBS base pointer */ +#define AXBS ((AXBS_Type *)AXBS_BASE) +/** Array initializer of AXBS peripheral base addresses */ +#define AXBS_BASE_ADDRS { AXBS_BASE } +/** Array initializer of AXBS peripheral base pointers */ +#define AXBS_BASE_PTRS { AXBS } + +/*! + * @} + */ /* end of group AXBS_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- CAN Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CAN_Peripheral_Access_Layer CAN Peripheral Access Layer + * @{ + */ + +/** CAN - Register Layout Typedef */ +typedef struct { + __IO uint32_t MCR; /**< Module Configuration Register, offset: 0x0 */ + __IO uint32_t CTRL1; /**< Control 1 register, offset: 0x4 */ + __IO uint32_t TIMER; /**< Free Running Timer, offset: 0x8 */ + uint8_t RESERVED_0[4]; + __IO uint32_t RXMGMASK; /**< Rx Mailboxes Global Mask Register, offset: 0x10 */ + __IO uint32_t RX14MASK; /**< Rx 14 Mask register, offset: 0x14 */ + __IO uint32_t RX15MASK; /**< Rx 15 Mask register, offset: 0x18 */ + __IO uint32_t ECR; /**< Error Counter, offset: 0x1C */ + __IO uint32_t ESR1; /**< Error and Status 1 register, offset: 0x20 */ + uint8_t RESERVED_1[4]; + __IO uint32_t IMASK1; /**< Interrupt Masks 1 register, offset: 0x28 */ + uint8_t RESERVED_2[4]; + __IO uint32_t IFLAG1; /**< Interrupt Flags 1 register, offset: 0x30 */ + __IO uint32_t CTRL2; /**< Control 2 register, offset: 0x34 */ + __I uint32_t ESR2; /**< Error and Status 2 register, offset: 0x38 */ + uint8_t RESERVED_3[8]; + __I uint32_t CRCR; /**< CRC Register, offset: 0x44 */ + __IO uint32_t RXFGMASK; /**< Rx FIFO Global Mask register, offset: 0x48 */ + __I uint32_t RXFIR; /**< Rx FIFO Information Register, offset: 0x4C */ + uint8_t RESERVED_4[48]; + struct { /* offset: 0x80, array step: 0x10 */ + __IO uint32_t CS; /**< Message Buffer 0 CS Register..Message Buffer 15 CS Register, array offset: 0x80, array step: 0x10 */ + __IO uint32_t ID; /**< Message Buffer 0 ID Register..Message Buffer 15 ID Register, array offset: 0x84, array step: 0x10 */ + __IO uint32_t WORD0; /**< Message Buffer 0 WORD0 Register..Message Buffer 15 WORD0 Register, array offset: 0x88, array step: 0x10 */ + __IO uint32_t WORD1; /**< Message Buffer 0 WORD1 Register..Message Buffer 15 WORD1 Register, array offset: 0x8C, array step: 0x10 */ + } MB[16]; + uint8_t RESERVED_5[1792]; + __IO uint32_t RXIMR[16]; /**< Rx Individual Mask Registers, array offset: 0x880, array step: 0x4 */ +} CAN_Type; + +/* ---------------------------------------------------------------------------- + -- CAN Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CAN_Register_Masks CAN Register Masks + * @{ + */ + +/*! @name MCR - Module Configuration Register */ +#define CAN_MCR_MAXMB_MASK (0x7FU) +#define CAN_MCR_MAXMB_SHIFT (0U) +#define CAN_MCR_MAXMB(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_MAXMB_SHIFT)) & CAN_MCR_MAXMB_MASK) +#define CAN_MCR_IDAM_MASK (0x300U) +#define CAN_MCR_IDAM_SHIFT (8U) +#define CAN_MCR_IDAM(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_IDAM_SHIFT)) & CAN_MCR_IDAM_MASK) +#define CAN_MCR_AEN_MASK (0x1000U) +#define CAN_MCR_AEN_SHIFT (12U) +#define CAN_MCR_AEN(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_AEN_SHIFT)) & CAN_MCR_AEN_MASK) +#define CAN_MCR_LPRIOEN_MASK (0x2000U) +#define CAN_MCR_LPRIOEN_SHIFT (13U) +#define CAN_MCR_LPRIOEN(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_LPRIOEN_SHIFT)) & CAN_MCR_LPRIOEN_MASK) +#define CAN_MCR_IRMQ_MASK (0x10000U) +#define CAN_MCR_IRMQ_SHIFT (16U) +#define CAN_MCR_IRMQ(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_IRMQ_SHIFT)) & CAN_MCR_IRMQ_MASK) +#define CAN_MCR_SRXDIS_MASK (0x20000U) +#define CAN_MCR_SRXDIS_SHIFT (17U) +#define CAN_MCR_SRXDIS(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SRXDIS_SHIFT)) & CAN_MCR_SRXDIS_MASK) +#define CAN_MCR_WAKSRC_MASK (0x80000U) +#define CAN_MCR_WAKSRC_SHIFT (19U) +#define CAN_MCR_WAKSRC(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_WAKSRC_SHIFT)) & CAN_MCR_WAKSRC_MASK) +#define CAN_MCR_LPMACK_MASK (0x100000U) +#define CAN_MCR_LPMACK_SHIFT (20U) +#define CAN_MCR_LPMACK(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_LPMACK_SHIFT)) & CAN_MCR_LPMACK_MASK) +#define CAN_MCR_WRNEN_MASK (0x200000U) +#define CAN_MCR_WRNEN_SHIFT (21U) +#define CAN_MCR_WRNEN(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_WRNEN_SHIFT)) & CAN_MCR_WRNEN_MASK) +#define CAN_MCR_SLFWAK_MASK (0x400000U) +#define CAN_MCR_SLFWAK_SHIFT (22U) +#define CAN_MCR_SLFWAK(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SLFWAK_SHIFT)) & CAN_MCR_SLFWAK_MASK) +#define CAN_MCR_SUPV_MASK (0x800000U) +#define CAN_MCR_SUPV_SHIFT (23U) +#define CAN_MCR_SUPV(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SUPV_SHIFT)) & CAN_MCR_SUPV_MASK) +#define CAN_MCR_FRZACK_MASK (0x1000000U) +#define CAN_MCR_FRZACK_SHIFT (24U) +#define CAN_MCR_FRZACK(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_FRZACK_SHIFT)) & CAN_MCR_FRZACK_MASK) +#define CAN_MCR_SOFTRST_MASK (0x2000000U) +#define CAN_MCR_SOFTRST_SHIFT (25U) +#define CAN_MCR_SOFTRST(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_SOFTRST_SHIFT)) & CAN_MCR_SOFTRST_MASK) +#define CAN_MCR_WAKMSK_MASK (0x4000000U) +#define CAN_MCR_WAKMSK_SHIFT (26U) +#define CAN_MCR_WAKMSK(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_WAKMSK_SHIFT)) & CAN_MCR_WAKMSK_MASK) +#define CAN_MCR_NOTRDY_MASK (0x8000000U) +#define CAN_MCR_NOTRDY_SHIFT (27U) +#define CAN_MCR_NOTRDY(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_NOTRDY_SHIFT)) & CAN_MCR_NOTRDY_MASK) +#define CAN_MCR_HALT_MASK (0x10000000U) +#define CAN_MCR_HALT_SHIFT (28U) +#define CAN_MCR_HALT(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_HALT_SHIFT)) & CAN_MCR_HALT_MASK) +#define CAN_MCR_RFEN_MASK (0x20000000U) +#define CAN_MCR_RFEN_SHIFT (29U) +#define CAN_MCR_RFEN(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_RFEN_SHIFT)) & CAN_MCR_RFEN_MASK) +#define CAN_MCR_FRZ_MASK (0x40000000U) +#define CAN_MCR_FRZ_SHIFT (30U) +#define CAN_MCR_FRZ(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_FRZ_SHIFT)) & CAN_MCR_FRZ_MASK) +#define CAN_MCR_MDIS_MASK (0x80000000U) +#define CAN_MCR_MDIS_SHIFT (31U) +#define CAN_MCR_MDIS(x) (((uint32_t)(((uint32_t)(x)) << CAN_MCR_MDIS_SHIFT)) & CAN_MCR_MDIS_MASK) + +/*! @name CTRL1 - Control 1 register */ +#define CAN_CTRL1_PROPSEG_MASK (0x7U) +#define CAN_CTRL1_PROPSEG_SHIFT (0U) +#define CAN_CTRL1_PROPSEG(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PROPSEG_SHIFT)) & CAN_CTRL1_PROPSEG_MASK) +#define CAN_CTRL1_LOM_MASK (0x8U) +#define CAN_CTRL1_LOM_SHIFT (3U) +#define CAN_CTRL1_LOM(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_LOM_SHIFT)) & CAN_CTRL1_LOM_MASK) +#define CAN_CTRL1_LBUF_MASK (0x10U) +#define CAN_CTRL1_LBUF_SHIFT (4U) +#define CAN_CTRL1_LBUF(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_LBUF_SHIFT)) & CAN_CTRL1_LBUF_MASK) +#define CAN_CTRL1_TSYN_MASK (0x20U) +#define CAN_CTRL1_TSYN_SHIFT (5U) +#define CAN_CTRL1_TSYN(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_TSYN_SHIFT)) & CAN_CTRL1_TSYN_MASK) +#define CAN_CTRL1_BOFFREC_MASK (0x40U) +#define CAN_CTRL1_BOFFREC_SHIFT (6U) +#define CAN_CTRL1_BOFFREC(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_BOFFREC_SHIFT)) & CAN_CTRL1_BOFFREC_MASK) +#define CAN_CTRL1_SMP_MASK (0x80U) +#define CAN_CTRL1_SMP_SHIFT (7U) +#define CAN_CTRL1_SMP(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_SMP_SHIFT)) & CAN_CTRL1_SMP_MASK) +#define CAN_CTRL1_RWRNMSK_MASK (0x400U) +#define CAN_CTRL1_RWRNMSK_SHIFT (10U) +#define CAN_CTRL1_RWRNMSK(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_RWRNMSK_SHIFT)) & CAN_CTRL1_RWRNMSK_MASK) +#define CAN_CTRL1_TWRNMSK_MASK (0x800U) +#define CAN_CTRL1_TWRNMSK_SHIFT (11U) +#define CAN_CTRL1_TWRNMSK(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_TWRNMSK_SHIFT)) & CAN_CTRL1_TWRNMSK_MASK) +#define CAN_CTRL1_LPB_MASK (0x1000U) +#define CAN_CTRL1_LPB_SHIFT (12U) +#define CAN_CTRL1_LPB(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_LPB_SHIFT)) & CAN_CTRL1_LPB_MASK) +#define CAN_CTRL1_CLKSRC_MASK (0x2000U) +#define CAN_CTRL1_CLKSRC_SHIFT (13U) +#define CAN_CTRL1_CLKSRC(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_CLKSRC_SHIFT)) & CAN_CTRL1_CLKSRC_MASK) +#define CAN_CTRL1_ERRMSK_MASK (0x4000U) +#define CAN_CTRL1_ERRMSK_SHIFT (14U) +#define CAN_CTRL1_ERRMSK(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_ERRMSK_SHIFT)) & CAN_CTRL1_ERRMSK_MASK) +#define CAN_CTRL1_BOFFMSK_MASK (0x8000U) +#define CAN_CTRL1_BOFFMSK_SHIFT (15U) +#define CAN_CTRL1_BOFFMSK(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_BOFFMSK_SHIFT)) & CAN_CTRL1_BOFFMSK_MASK) +#define CAN_CTRL1_PSEG2_MASK (0x70000U) +#define CAN_CTRL1_PSEG2_SHIFT (16U) +#define CAN_CTRL1_PSEG2(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PSEG2_SHIFT)) & CAN_CTRL1_PSEG2_MASK) +#define CAN_CTRL1_PSEG1_MASK (0x380000U) +#define CAN_CTRL1_PSEG1_SHIFT (19U) +#define CAN_CTRL1_PSEG1(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PSEG1_SHIFT)) & CAN_CTRL1_PSEG1_MASK) +#define CAN_CTRL1_RJW_MASK (0xC00000U) +#define CAN_CTRL1_RJW_SHIFT (22U) +#define CAN_CTRL1_RJW(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_RJW_SHIFT)) & CAN_CTRL1_RJW_MASK) +#define CAN_CTRL1_PRESDIV_MASK (0xFF000000U) +#define CAN_CTRL1_PRESDIV_SHIFT (24U) +#define CAN_CTRL1_PRESDIV(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL1_PRESDIV_SHIFT)) & CAN_CTRL1_PRESDIV_MASK) + +/*! @name TIMER - Free Running Timer */ +#define CAN_TIMER_TIMER_MASK (0xFFFFU) +#define CAN_TIMER_TIMER_SHIFT (0U) +#define CAN_TIMER_TIMER(x) (((uint32_t)(((uint32_t)(x)) << CAN_TIMER_TIMER_SHIFT)) & CAN_TIMER_TIMER_MASK) + +/*! @name RXMGMASK - Rx Mailboxes Global Mask Register */ +#define CAN_RXMGMASK_MG_MASK (0xFFFFFFFFU) +#define CAN_RXMGMASK_MG_SHIFT (0U) +#define CAN_RXMGMASK_MG(x) (((uint32_t)(((uint32_t)(x)) << CAN_RXMGMASK_MG_SHIFT)) & CAN_RXMGMASK_MG_MASK) + +/*! @name RX14MASK - Rx 14 Mask register */ +#define CAN_RX14MASK_RX14M_MASK (0xFFFFFFFFU) +#define CAN_RX14MASK_RX14M_SHIFT (0U) +#define CAN_RX14MASK_RX14M(x) (((uint32_t)(((uint32_t)(x)) << CAN_RX14MASK_RX14M_SHIFT)) & CAN_RX14MASK_RX14M_MASK) + +/*! @name RX15MASK - Rx 15 Mask register */ +#define CAN_RX15MASK_RX15M_MASK (0xFFFFFFFFU) +#define CAN_RX15MASK_RX15M_SHIFT (0U) +#define CAN_RX15MASK_RX15M(x) (((uint32_t)(((uint32_t)(x)) << CAN_RX15MASK_RX15M_SHIFT)) & CAN_RX15MASK_RX15M_MASK) + +/*! @name ECR - Error Counter */ +#define CAN_ECR_TXERRCNT_MASK (0xFFU) +#define CAN_ECR_TXERRCNT_SHIFT (0U) +#define CAN_ECR_TXERRCNT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ECR_TXERRCNT_SHIFT)) & CAN_ECR_TXERRCNT_MASK) +#define CAN_ECR_RXERRCNT_MASK (0xFF00U) +#define CAN_ECR_RXERRCNT_SHIFT (8U) +#define CAN_ECR_RXERRCNT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ECR_RXERRCNT_SHIFT)) & CAN_ECR_RXERRCNT_MASK) + +/*! @name ESR1 - Error and Status 1 register */ +#define CAN_ESR1_WAKINT_MASK (0x1U) +#define CAN_ESR1_WAKINT_SHIFT (0U) +#define CAN_ESR1_WAKINT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_WAKINT_SHIFT)) & CAN_ESR1_WAKINT_MASK) +#define CAN_ESR1_ERRINT_MASK (0x2U) +#define CAN_ESR1_ERRINT_SHIFT (1U) +#define CAN_ESR1_ERRINT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_ERRINT_SHIFT)) & CAN_ESR1_ERRINT_MASK) +#define CAN_ESR1_BOFFINT_MASK (0x4U) +#define CAN_ESR1_BOFFINT_SHIFT (2U) +#define CAN_ESR1_BOFFINT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BOFFINT_SHIFT)) & CAN_ESR1_BOFFINT_MASK) +#define CAN_ESR1_RX_MASK (0x8U) +#define CAN_ESR1_RX_SHIFT (3U) +#define CAN_ESR1_RX(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_RX_SHIFT)) & CAN_ESR1_RX_MASK) +#define CAN_ESR1_FLTCONF_MASK (0x30U) +#define CAN_ESR1_FLTCONF_SHIFT (4U) +#define CAN_ESR1_FLTCONF(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_FLTCONF_SHIFT)) & CAN_ESR1_FLTCONF_MASK) +#define CAN_ESR1_TX_MASK (0x40U) +#define CAN_ESR1_TX_SHIFT (6U) +#define CAN_ESR1_TX(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_TX_SHIFT)) & CAN_ESR1_TX_MASK) +#define CAN_ESR1_IDLE_MASK (0x80U) +#define CAN_ESR1_IDLE_SHIFT (7U) +#define CAN_ESR1_IDLE(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_IDLE_SHIFT)) & CAN_ESR1_IDLE_MASK) +#define CAN_ESR1_RXWRN_MASK (0x100U) +#define CAN_ESR1_RXWRN_SHIFT (8U) +#define CAN_ESR1_RXWRN(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_RXWRN_SHIFT)) & CAN_ESR1_RXWRN_MASK) +#define CAN_ESR1_TXWRN_MASK (0x200U) +#define CAN_ESR1_TXWRN_SHIFT (9U) +#define CAN_ESR1_TXWRN(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_TXWRN_SHIFT)) & CAN_ESR1_TXWRN_MASK) +#define CAN_ESR1_STFERR_MASK (0x400U) +#define CAN_ESR1_STFERR_SHIFT (10U) +#define CAN_ESR1_STFERR(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_STFERR_SHIFT)) & CAN_ESR1_STFERR_MASK) +#define CAN_ESR1_FRMERR_MASK (0x800U) +#define CAN_ESR1_FRMERR_SHIFT (11U) +#define CAN_ESR1_FRMERR(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_FRMERR_SHIFT)) & CAN_ESR1_FRMERR_MASK) +#define CAN_ESR1_CRCERR_MASK (0x1000U) +#define CAN_ESR1_CRCERR_SHIFT (12U) +#define CAN_ESR1_CRCERR(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_CRCERR_SHIFT)) & CAN_ESR1_CRCERR_MASK) +#define CAN_ESR1_ACKERR_MASK (0x2000U) +#define CAN_ESR1_ACKERR_SHIFT (13U) +#define CAN_ESR1_ACKERR(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_ACKERR_SHIFT)) & CAN_ESR1_ACKERR_MASK) +#define CAN_ESR1_BIT0ERR_MASK (0x4000U) +#define CAN_ESR1_BIT0ERR_SHIFT (14U) +#define CAN_ESR1_BIT0ERR(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BIT0ERR_SHIFT)) & CAN_ESR1_BIT0ERR_MASK) +#define CAN_ESR1_BIT1ERR_MASK (0x8000U) +#define CAN_ESR1_BIT1ERR_SHIFT (15U) +#define CAN_ESR1_BIT1ERR(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_BIT1ERR_SHIFT)) & CAN_ESR1_BIT1ERR_MASK) +#define CAN_ESR1_RWRNINT_MASK (0x10000U) +#define CAN_ESR1_RWRNINT_SHIFT (16U) +#define CAN_ESR1_RWRNINT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_RWRNINT_SHIFT)) & CAN_ESR1_RWRNINT_MASK) +#define CAN_ESR1_TWRNINT_MASK (0x20000U) +#define CAN_ESR1_TWRNINT_SHIFT (17U) +#define CAN_ESR1_TWRNINT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_TWRNINT_SHIFT)) & CAN_ESR1_TWRNINT_MASK) +#define CAN_ESR1_SYNCH_MASK (0x40000U) +#define CAN_ESR1_SYNCH_SHIFT (18U) +#define CAN_ESR1_SYNCH(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR1_SYNCH_SHIFT)) & CAN_ESR1_SYNCH_MASK) + +/*! @name IMASK1 - Interrupt Masks 1 register */ +#define CAN_IMASK1_BUFLM_MASK (0xFFFFFFFFU) +#define CAN_IMASK1_BUFLM_SHIFT (0U) +#define CAN_IMASK1_BUFLM(x) (((uint32_t)(((uint32_t)(x)) << CAN_IMASK1_BUFLM_SHIFT)) & CAN_IMASK1_BUFLM_MASK) + +/*! @name IFLAG1 - Interrupt Flags 1 register */ +#define CAN_IFLAG1_BUF0I_MASK (0x1U) +#define CAN_IFLAG1_BUF0I_SHIFT (0U) +#define CAN_IFLAG1_BUF0I(x) (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF0I_SHIFT)) & CAN_IFLAG1_BUF0I_MASK) +#define CAN_IFLAG1_BUF4TO1I_MASK (0x1EU) +#define CAN_IFLAG1_BUF4TO1I_SHIFT (1U) +#define CAN_IFLAG1_BUF4TO1I(x) (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF4TO1I_SHIFT)) & CAN_IFLAG1_BUF4TO1I_MASK) +#define CAN_IFLAG1_BUF5I_MASK (0x20U) +#define CAN_IFLAG1_BUF5I_SHIFT (5U) +#define CAN_IFLAG1_BUF5I(x) (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF5I_SHIFT)) & CAN_IFLAG1_BUF5I_MASK) +#define CAN_IFLAG1_BUF6I_MASK (0x40U) +#define CAN_IFLAG1_BUF6I_SHIFT (6U) +#define CAN_IFLAG1_BUF6I(x) (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF6I_SHIFT)) & CAN_IFLAG1_BUF6I_MASK) +#define CAN_IFLAG1_BUF7I_MASK (0x80U) +#define CAN_IFLAG1_BUF7I_SHIFT (7U) +#define CAN_IFLAG1_BUF7I(x) (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF7I_SHIFT)) & CAN_IFLAG1_BUF7I_MASK) +#define CAN_IFLAG1_BUF31TO8I_MASK (0xFFFFFF00U) +#define CAN_IFLAG1_BUF31TO8I_SHIFT (8U) +#define CAN_IFLAG1_BUF31TO8I(x) (((uint32_t)(((uint32_t)(x)) << CAN_IFLAG1_BUF31TO8I_SHIFT)) & CAN_IFLAG1_BUF31TO8I_MASK) + +/*! @name CTRL2 - Control 2 register */ +#define CAN_CTRL2_EACEN_MASK (0x10000U) +#define CAN_CTRL2_EACEN_SHIFT (16U) +#define CAN_CTRL2_EACEN(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_EACEN_SHIFT)) & CAN_CTRL2_EACEN_MASK) +#define CAN_CTRL2_RRS_MASK (0x20000U) +#define CAN_CTRL2_RRS_SHIFT (17U) +#define CAN_CTRL2_RRS(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_RRS_SHIFT)) & CAN_CTRL2_RRS_MASK) +#define CAN_CTRL2_MRP_MASK (0x40000U) +#define CAN_CTRL2_MRP_SHIFT (18U) +#define CAN_CTRL2_MRP(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_MRP_SHIFT)) & CAN_CTRL2_MRP_MASK) +#define CAN_CTRL2_TASD_MASK (0xF80000U) +#define CAN_CTRL2_TASD_SHIFT (19U) +#define CAN_CTRL2_TASD(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_TASD_SHIFT)) & CAN_CTRL2_TASD_MASK) +#define CAN_CTRL2_RFFN_MASK (0xF000000U) +#define CAN_CTRL2_RFFN_SHIFT (24U) +#define CAN_CTRL2_RFFN(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_RFFN_SHIFT)) & CAN_CTRL2_RFFN_MASK) +#define CAN_CTRL2_WRMFRZ_MASK (0x10000000U) +#define CAN_CTRL2_WRMFRZ_SHIFT (28U) +#define CAN_CTRL2_WRMFRZ(x) (((uint32_t)(((uint32_t)(x)) << CAN_CTRL2_WRMFRZ_SHIFT)) & CAN_CTRL2_WRMFRZ_MASK) + +/*! @name ESR2 - Error and Status 2 register */ +#define CAN_ESR2_IMB_MASK (0x2000U) +#define CAN_ESR2_IMB_SHIFT (13U) +#define CAN_ESR2_IMB(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR2_IMB_SHIFT)) & CAN_ESR2_IMB_MASK) +#define CAN_ESR2_VPS_MASK (0x4000U) +#define CAN_ESR2_VPS_SHIFT (14U) +#define CAN_ESR2_VPS(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR2_VPS_SHIFT)) & CAN_ESR2_VPS_MASK) +#define CAN_ESR2_LPTM_MASK (0x7F0000U) +#define CAN_ESR2_LPTM_SHIFT (16U) +#define CAN_ESR2_LPTM(x) (((uint32_t)(((uint32_t)(x)) << CAN_ESR2_LPTM_SHIFT)) & CAN_ESR2_LPTM_MASK) + +/*! @name CRCR - CRC Register */ +#define CAN_CRCR_TXCRC_MASK (0x7FFFU) +#define CAN_CRCR_TXCRC_SHIFT (0U) +#define CAN_CRCR_TXCRC(x) (((uint32_t)(((uint32_t)(x)) << CAN_CRCR_TXCRC_SHIFT)) & CAN_CRCR_TXCRC_MASK) +#define CAN_CRCR_MBCRC_MASK (0x7F0000U) +#define CAN_CRCR_MBCRC_SHIFT (16U) +#define CAN_CRCR_MBCRC(x) (((uint32_t)(((uint32_t)(x)) << CAN_CRCR_MBCRC_SHIFT)) & CAN_CRCR_MBCRC_MASK) + +/*! @name RXFGMASK - Rx FIFO Global Mask register */ +#define CAN_RXFGMASK_FGM_MASK (0xFFFFFFFFU) +#define CAN_RXFGMASK_FGM_SHIFT (0U) +#define CAN_RXFGMASK_FGM(x) (((uint32_t)(((uint32_t)(x)) << CAN_RXFGMASK_FGM_SHIFT)) & CAN_RXFGMASK_FGM_MASK) + +/*! @name RXFIR - Rx FIFO Information Register */ +#define CAN_RXFIR_IDHIT_MASK (0x1FFU) +#define CAN_RXFIR_IDHIT_SHIFT (0U) +#define CAN_RXFIR_IDHIT(x) (((uint32_t)(((uint32_t)(x)) << CAN_RXFIR_IDHIT_SHIFT)) & CAN_RXFIR_IDHIT_MASK) + +/*! @name CS - Message Buffer 0 CS Register..Message Buffer 15 CS Register */ +#define CAN_CS_TIME_STAMP_MASK (0xFFFFU) +#define CAN_CS_TIME_STAMP_SHIFT (0U) +#define CAN_CS_TIME_STAMP(x) (((uint32_t)(((uint32_t)(x)) << CAN_CS_TIME_STAMP_SHIFT)) & CAN_CS_TIME_STAMP_MASK) +#define CAN_CS_DLC_MASK (0xF0000U) +#define CAN_CS_DLC_SHIFT (16U) +#define CAN_CS_DLC(x) (((uint32_t)(((uint32_t)(x)) << CAN_CS_DLC_SHIFT)) & CAN_CS_DLC_MASK) +#define CAN_CS_RTR_MASK (0x100000U) +#define CAN_CS_RTR_SHIFT (20U) +#define CAN_CS_RTR(x) (((uint32_t)(((uint32_t)(x)) << CAN_CS_RTR_SHIFT)) & CAN_CS_RTR_MASK) +#define CAN_CS_IDE_MASK (0x200000U) +#define CAN_CS_IDE_SHIFT (21U) +#define CAN_CS_IDE(x) (((uint32_t)(((uint32_t)(x)) << CAN_CS_IDE_SHIFT)) & CAN_CS_IDE_MASK) +#define CAN_CS_SRR_MASK (0x400000U) +#define CAN_CS_SRR_SHIFT (22U) +#define CAN_CS_SRR(x) (((uint32_t)(((uint32_t)(x)) << CAN_CS_SRR_SHIFT)) & CAN_CS_SRR_MASK) +#define CAN_CS_CODE_MASK (0xF000000U) +#define CAN_CS_CODE_SHIFT (24U) +#define CAN_CS_CODE(x) (((uint32_t)(((uint32_t)(x)) << CAN_CS_CODE_SHIFT)) & CAN_CS_CODE_MASK) + +/* The count of CAN_CS */ +#define CAN_CS_COUNT (16U) + +/*! @name ID - Message Buffer 0 ID Register..Message Buffer 15 ID Register */ +#define CAN_ID_EXT_MASK (0x3FFFFU) +#define CAN_ID_EXT_SHIFT (0U) +#define CAN_ID_EXT(x) (((uint32_t)(((uint32_t)(x)) << CAN_ID_EXT_SHIFT)) & CAN_ID_EXT_MASK) +#define CAN_ID_STD_MASK (0x1FFC0000U) +#define CAN_ID_STD_SHIFT (18U) +#define CAN_ID_STD(x) (((uint32_t)(((uint32_t)(x)) << CAN_ID_STD_SHIFT)) & CAN_ID_STD_MASK) +#define CAN_ID_PRIO_MASK (0xE0000000U) +#define CAN_ID_PRIO_SHIFT (29U) +#define CAN_ID_PRIO(x) (((uint32_t)(((uint32_t)(x)) << CAN_ID_PRIO_SHIFT)) & CAN_ID_PRIO_MASK) + +/* The count of CAN_ID */ +#define CAN_ID_COUNT (16U) + +/*! @name WORD0 - Message Buffer 0 WORD0 Register..Message Buffer 15 WORD0 Register */ +#define CAN_WORD0_DATA_BYTE_3_MASK (0xFFU) +#define CAN_WORD0_DATA_BYTE_3_SHIFT (0U) +#define CAN_WORD0_DATA_BYTE_3(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_3_SHIFT)) & CAN_WORD0_DATA_BYTE_3_MASK) +#define CAN_WORD0_DATA_BYTE_2_MASK (0xFF00U) +#define CAN_WORD0_DATA_BYTE_2_SHIFT (8U) +#define CAN_WORD0_DATA_BYTE_2(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_2_SHIFT)) & CAN_WORD0_DATA_BYTE_2_MASK) +#define CAN_WORD0_DATA_BYTE_1_MASK (0xFF0000U) +#define CAN_WORD0_DATA_BYTE_1_SHIFT (16U) +#define CAN_WORD0_DATA_BYTE_1(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_1_SHIFT)) & CAN_WORD0_DATA_BYTE_1_MASK) +#define CAN_WORD0_DATA_BYTE_0_MASK (0xFF000000U) +#define CAN_WORD0_DATA_BYTE_0_SHIFT (24U) +#define CAN_WORD0_DATA_BYTE_0(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD0_DATA_BYTE_0_SHIFT)) & CAN_WORD0_DATA_BYTE_0_MASK) + +/* The count of CAN_WORD0 */ +#define CAN_WORD0_COUNT (16U) + +/*! @name WORD1 - Message Buffer 0 WORD1 Register..Message Buffer 15 WORD1 Register */ +#define CAN_WORD1_DATA_BYTE_7_MASK (0xFFU) +#define CAN_WORD1_DATA_BYTE_7_SHIFT (0U) +#define CAN_WORD1_DATA_BYTE_7(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_7_SHIFT)) & CAN_WORD1_DATA_BYTE_7_MASK) +#define CAN_WORD1_DATA_BYTE_6_MASK (0xFF00U) +#define CAN_WORD1_DATA_BYTE_6_SHIFT (8U) +#define CAN_WORD1_DATA_BYTE_6(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_6_SHIFT)) & CAN_WORD1_DATA_BYTE_6_MASK) +#define CAN_WORD1_DATA_BYTE_5_MASK (0xFF0000U) +#define CAN_WORD1_DATA_BYTE_5_SHIFT (16U) +#define CAN_WORD1_DATA_BYTE_5(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_5_SHIFT)) & CAN_WORD1_DATA_BYTE_5_MASK) +#define CAN_WORD1_DATA_BYTE_4_MASK (0xFF000000U) +#define CAN_WORD1_DATA_BYTE_4_SHIFT (24U) +#define CAN_WORD1_DATA_BYTE_4(x) (((uint32_t)(((uint32_t)(x)) << CAN_WORD1_DATA_BYTE_4_SHIFT)) & CAN_WORD1_DATA_BYTE_4_MASK) + +/* The count of CAN_WORD1 */ +#define CAN_WORD1_COUNT (16U) + +/*! @name RXIMR - Rx Individual Mask Registers */ +#define CAN_RXIMR_MI_MASK (0xFFFFFFFFU) +#define CAN_RXIMR_MI_SHIFT (0U) +#define CAN_RXIMR_MI(x) (((uint32_t)(((uint32_t)(x)) << CAN_RXIMR_MI_SHIFT)) & CAN_RXIMR_MI_MASK) + +/* The count of CAN_RXIMR */ +#define CAN_RXIMR_COUNT (16U) + + +/*! + * @} + */ /* end of group CAN_Register_Masks */ + + +/* CAN - Peripheral instance base addresses */ +/** Peripheral CAN0 base address */ +#define CAN0_BASE (0x40024000u) +/** Peripheral CAN0 base pointer */ +#define CAN0 ((CAN_Type *)CAN0_BASE) +/** Array initializer of CAN peripheral base addresses */ +#define CAN_BASE_ADDRS { CAN0_BASE } +/** Array initializer of CAN peripheral base pointers */ +#define CAN_BASE_PTRS { CAN0 } +/** Interrupt vectors for the CAN peripheral type */ +#define CAN_Rx_Warning_IRQS { CAN0_Rx_Warning_IRQn } +#define CAN_Tx_Warning_IRQS { CAN0_Tx_Warning_IRQn } +#define CAN_Wake_Up_IRQS { CAN0_Wake_Up_IRQn } +#define CAN_Error_IRQS { CAN0_Error_IRQn } +#define CAN_Bus_Off_IRQS { CAN0_Bus_Off_IRQn } +#define CAN_ORed_Message_buffer_IRQS { CAN0_ORed_Message_buffer_IRQn } + +/*! + * @} + */ /* end of group CAN_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- CAU Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CAU_Peripheral_Access_Layer CAU Peripheral Access Layer + * @{ + */ + +/** CAU - Register Layout Typedef */ +typedef struct { + __O uint32_t DIRECT[16]; /**< Direct access register 0..Direct access register 15, array offset: 0x0, array step: 0x4 */ + uint8_t RESERVED_0[2048]; + __O uint32_t LDR_CASR; /**< Status register - Load Register command, offset: 0x840 */ + __O uint32_t LDR_CAA; /**< Accumulator register - Load Register command, offset: 0x844 */ + __O uint32_t LDR_CA[9]; /**< General Purpose Register 0 - Load Register command..General Purpose Register 8 - Load Register command, array offset: 0x848, array step: 0x4 */ + uint8_t RESERVED_1[20]; + __I uint32_t STR_CASR; /**< Status register - Store Register command, offset: 0x880 */ + __I uint32_t STR_CAA; /**< Accumulator register - Store Register command, offset: 0x884 */ + __I uint32_t STR_CA[9]; /**< General Purpose Register 0 - Store Register command..General Purpose Register 8 - Store Register command, array offset: 0x888, array step: 0x4 */ + uint8_t RESERVED_2[20]; + __O uint32_t ADR_CASR; /**< Status register - Add Register command, offset: 0x8C0 */ + __O uint32_t ADR_CAA; /**< Accumulator register - Add to register command, offset: 0x8C4 */ + __O uint32_t ADR_CA[9]; /**< General Purpose Register 0 - Add to register command..General Purpose Register 8 - Add to register command, array offset: 0x8C8, array step: 0x4 */ + uint8_t RESERVED_3[20]; + __O uint32_t RADR_CASR; /**< Status register - Reverse and Add to Register command, offset: 0x900 */ + __O uint32_t RADR_CAA; /**< Accumulator register - Reverse and Add to Register command, offset: 0x904 */ + __O uint32_t RADR_CA[9]; /**< General Purpose Register 0 - Reverse and Add to Register command..General Purpose Register 8 - Reverse and Add to Register command, array offset: 0x908, array step: 0x4 */ + uint8_t RESERVED_4[84]; + __O uint32_t XOR_CASR; /**< Status register - Exclusive Or command, offset: 0x980 */ + __O uint32_t XOR_CAA; /**< Accumulator register - Exclusive Or command, offset: 0x984 */ + __O uint32_t XOR_CA[9]; /**< General Purpose Register 0 - Exclusive Or command..General Purpose Register 8 - Exclusive Or command, array offset: 0x988, array step: 0x4 */ + uint8_t RESERVED_5[20]; + __O uint32_t ROTL_CASR; /**< Status register - Rotate Left command, offset: 0x9C0 */ + __O uint32_t ROTL_CAA; /**< Accumulator register - Rotate Left command, offset: 0x9C4 */ + __O uint32_t ROTL_CA[9]; /**< General Purpose Register 0 - Rotate Left command..General Purpose Register 8 - Rotate Left command, array offset: 0x9C8, array step: 0x4 */ + uint8_t RESERVED_6[276]; + __O uint32_t AESC_CASR; /**< Status register - AES Column Operation command, offset: 0xB00 */ + __O uint32_t AESC_CAA; /**< Accumulator register - AES Column Operation command, offset: 0xB04 */ + __O uint32_t AESC_CA[9]; /**< General Purpose Register 0 - AES Column Operation command..General Purpose Register 8 - AES Column Operation command, array offset: 0xB08, array step: 0x4 */ + uint8_t RESERVED_7[20]; + __O uint32_t AESIC_CASR; /**< Status register - AES Inverse Column Operation command, offset: 0xB40 */ + __O uint32_t AESIC_CAA; /**< Accumulator register - AES Inverse Column Operation command, offset: 0xB44 */ + __O uint32_t AESIC_CA[9]; /**< General Purpose Register 0 - AES Inverse Column Operation command..General Purpose Register 8 - AES Inverse Column Operation command, array offset: 0xB48, array step: 0x4 */ +} CAU_Type; + +/* ---------------------------------------------------------------------------- + -- CAU Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CAU_Register_Masks CAU Register Masks + * @{ + */ + +/*! @name DIRECT - Direct access register 0..Direct access register 15 */ +#define CAU_DIRECT_CAU_DIRECT0_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT0_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT0(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT0_SHIFT)) & CAU_DIRECT_CAU_DIRECT0_MASK) +#define CAU_DIRECT_CAU_DIRECT1_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT1_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT1(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT1_SHIFT)) & CAU_DIRECT_CAU_DIRECT1_MASK) +#define CAU_DIRECT_CAU_DIRECT2_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT2_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT2(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT2_SHIFT)) & CAU_DIRECT_CAU_DIRECT2_MASK) +#define CAU_DIRECT_CAU_DIRECT3_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT3_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT3(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT3_SHIFT)) & CAU_DIRECT_CAU_DIRECT3_MASK) +#define CAU_DIRECT_CAU_DIRECT4_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT4_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT4(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT4_SHIFT)) & CAU_DIRECT_CAU_DIRECT4_MASK) +#define CAU_DIRECT_CAU_DIRECT5_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT5_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT5(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT5_SHIFT)) & CAU_DIRECT_CAU_DIRECT5_MASK) +#define CAU_DIRECT_CAU_DIRECT6_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT6_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT6(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT6_SHIFT)) & CAU_DIRECT_CAU_DIRECT6_MASK) +#define CAU_DIRECT_CAU_DIRECT7_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT7_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT7(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT7_SHIFT)) & CAU_DIRECT_CAU_DIRECT7_MASK) +#define CAU_DIRECT_CAU_DIRECT8_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT8_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT8(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT8_SHIFT)) & CAU_DIRECT_CAU_DIRECT8_MASK) +#define CAU_DIRECT_CAU_DIRECT9_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT9_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT9(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT9_SHIFT)) & CAU_DIRECT_CAU_DIRECT9_MASK) +#define CAU_DIRECT_CAU_DIRECT10_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT10_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT10(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT10_SHIFT)) & CAU_DIRECT_CAU_DIRECT10_MASK) +#define CAU_DIRECT_CAU_DIRECT11_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT11_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT11(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT11_SHIFT)) & CAU_DIRECT_CAU_DIRECT11_MASK) +#define CAU_DIRECT_CAU_DIRECT12_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT12_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT12(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT12_SHIFT)) & CAU_DIRECT_CAU_DIRECT12_MASK) +#define CAU_DIRECT_CAU_DIRECT13_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT13_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT13(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT13_SHIFT)) & CAU_DIRECT_CAU_DIRECT13_MASK) +#define CAU_DIRECT_CAU_DIRECT14_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT14_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT14(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT14_SHIFT)) & CAU_DIRECT_CAU_DIRECT14_MASK) +#define CAU_DIRECT_CAU_DIRECT15_MASK (0xFFFFFFFFU) +#define CAU_DIRECT_CAU_DIRECT15_SHIFT (0U) +#define CAU_DIRECT_CAU_DIRECT15(x) (((uint32_t)(((uint32_t)(x)) << CAU_DIRECT_CAU_DIRECT15_SHIFT)) & CAU_DIRECT_CAU_DIRECT15_MASK) + +/* The count of CAU_DIRECT */ +#define CAU_DIRECT_COUNT (16U) + +/*! @name LDR_CASR - Status register - Load Register command */ +#define CAU_LDR_CASR_IC_MASK (0x1U) +#define CAU_LDR_CASR_IC_SHIFT (0U) +#define CAU_LDR_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CASR_IC_SHIFT)) & CAU_LDR_CASR_IC_MASK) +#define CAU_LDR_CASR_DPE_MASK (0x2U) +#define CAU_LDR_CASR_DPE_SHIFT (1U) +#define CAU_LDR_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CASR_DPE_SHIFT)) & CAU_LDR_CASR_DPE_MASK) +#define CAU_LDR_CASR_VER_MASK (0xF0000000U) +#define CAU_LDR_CASR_VER_SHIFT (28U) +#define CAU_LDR_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CASR_VER_SHIFT)) & CAU_LDR_CASR_VER_MASK) + +/*! @name LDR_CAA - Accumulator register - Load Register command */ +#define CAU_LDR_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_LDR_CAA_ACC_SHIFT (0U) +#define CAU_LDR_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CAA_ACC_SHIFT)) & CAU_LDR_CAA_ACC_MASK) + +/*! @name LDR_CA - General Purpose Register 0 - Load Register command..General Purpose Register 8 - Load Register command */ +#define CAU_LDR_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA0_SHIFT (0U) +#define CAU_LDR_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA0_SHIFT)) & CAU_LDR_CA_CA0_MASK) +#define CAU_LDR_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA1_SHIFT (0U) +#define CAU_LDR_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA1_SHIFT)) & CAU_LDR_CA_CA1_MASK) +#define CAU_LDR_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA2_SHIFT (0U) +#define CAU_LDR_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA2_SHIFT)) & CAU_LDR_CA_CA2_MASK) +#define CAU_LDR_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA3_SHIFT (0U) +#define CAU_LDR_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA3_SHIFT)) & CAU_LDR_CA_CA3_MASK) +#define CAU_LDR_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA4_SHIFT (0U) +#define CAU_LDR_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA4_SHIFT)) & CAU_LDR_CA_CA4_MASK) +#define CAU_LDR_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA5_SHIFT (0U) +#define CAU_LDR_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA5_SHIFT)) & CAU_LDR_CA_CA5_MASK) +#define CAU_LDR_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA6_SHIFT (0U) +#define CAU_LDR_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA6_SHIFT)) & CAU_LDR_CA_CA6_MASK) +#define CAU_LDR_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA7_SHIFT (0U) +#define CAU_LDR_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA7_SHIFT)) & CAU_LDR_CA_CA7_MASK) +#define CAU_LDR_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_LDR_CA_CA8_SHIFT (0U) +#define CAU_LDR_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_LDR_CA_CA8_SHIFT)) & CAU_LDR_CA_CA8_MASK) + +/* The count of CAU_LDR_CA */ +#define CAU_LDR_CA_COUNT (9U) + +/*! @name STR_CASR - Status register - Store Register command */ +#define CAU_STR_CASR_IC_MASK (0x1U) +#define CAU_STR_CASR_IC_SHIFT (0U) +#define CAU_STR_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CASR_IC_SHIFT)) & CAU_STR_CASR_IC_MASK) +#define CAU_STR_CASR_DPE_MASK (0x2U) +#define CAU_STR_CASR_DPE_SHIFT (1U) +#define CAU_STR_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CASR_DPE_SHIFT)) & CAU_STR_CASR_DPE_MASK) +#define CAU_STR_CASR_VER_MASK (0xF0000000U) +#define CAU_STR_CASR_VER_SHIFT (28U) +#define CAU_STR_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CASR_VER_SHIFT)) & CAU_STR_CASR_VER_MASK) + +/*! @name STR_CAA - Accumulator register - Store Register command */ +#define CAU_STR_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_STR_CAA_ACC_SHIFT (0U) +#define CAU_STR_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CAA_ACC_SHIFT)) & CAU_STR_CAA_ACC_MASK) + +/*! @name STR_CA - General Purpose Register 0 - Store Register command..General Purpose Register 8 - Store Register command */ +#define CAU_STR_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA0_SHIFT (0U) +#define CAU_STR_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA0_SHIFT)) & CAU_STR_CA_CA0_MASK) +#define CAU_STR_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA1_SHIFT (0U) +#define CAU_STR_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA1_SHIFT)) & CAU_STR_CA_CA1_MASK) +#define CAU_STR_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA2_SHIFT (0U) +#define CAU_STR_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA2_SHIFT)) & CAU_STR_CA_CA2_MASK) +#define CAU_STR_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA3_SHIFT (0U) +#define CAU_STR_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA3_SHIFT)) & CAU_STR_CA_CA3_MASK) +#define CAU_STR_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA4_SHIFT (0U) +#define CAU_STR_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA4_SHIFT)) & CAU_STR_CA_CA4_MASK) +#define CAU_STR_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA5_SHIFT (0U) +#define CAU_STR_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA5_SHIFT)) & CAU_STR_CA_CA5_MASK) +#define CAU_STR_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA6_SHIFT (0U) +#define CAU_STR_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA6_SHIFT)) & CAU_STR_CA_CA6_MASK) +#define CAU_STR_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA7_SHIFT (0U) +#define CAU_STR_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA7_SHIFT)) & CAU_STR_CA_CA7_MASK) +#define CAU_STR_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_STR_CA_CA8_SHIFT (0U) +#define CAU_STR_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_STR_CA_CA8_SHIFT)) & CAU_STR_CA_CA8_MASK) + +/* The count of CAU_STR_CA */ +#define CAU_STR_CA_COUNT (9U) + +/*! @name ADR_CASR - Status register - Add Register command */ +#define CAU_ADR_CASR_IC_MASK (0x1U) +#define CAU_ADR_CASR_IC_SHIFT (0U) +#define CAU_ADR_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CASR_IC_SHIFT)) & CAU_ADR_CASR_IC_MASK) +#define CAU_ADR_CASR_DPE_MASK (0x2U) +#define CAU_ADR_CASR_DPE_SHIFT (1U) +#define CAU_ADR_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CASR_DPE_SHIFT)) & CAU_ADR_CASR_DPE_MASK) +#define CAU_ADR_CASR_VER_MASK (0xF0000000U) +#define CAU_ADR_CASR_VER_SHIFT (28U) +#define CAU_ADR_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CASR_VER_SHIFT)) & CAU_ADR_CASR_VER_MASK) + +/*! @name ADR_CAA - Accumulator register - Add to register command */ +#define CAU_ADR_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_ADR_CAA_ACC_SHIFT (0U) +#define CAU_ADR_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CAA_ACC_SHIFT)) & CAU_ADR_CAA_ACC_MASK) + +/*! @name ADR_CA - General Purpose Register 0 - Add to register command..General Purpose Register 8 - Add to register command */ +#define CAU_ADR_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA0_SHIFT (0U) +#define CAU_ADR_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA0_SHIFT)) & CAU_ADR_CA_CA0_MASK) +#define CAU_ADR_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA1_SHIFT (0U) +#define CAU_ADR_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA1_SHIFT)) & CAU_ADR_CA_CA1_MASK) +#define CAU_ADR_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA2_SHIFT (0U) +#define CAU_ADR_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA2_SHIFT)) & CAU_ADR_CA_CA2_MASK) +#define CAU_ADR_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA3_SHIFT (0U) +#define CAU_ADR_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA3_SHIFT)) & CAU_ADR_CA_CA3_MASK) +#define CAU_ADR_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA4_SHIFT (0U) +#define CAU_ADR_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA4_SHIFT)) & CAU_ADR_CA_CA4_MASK) +#define CAU_ADR_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA5_SHIFT (0U) +#define CAU_ADR_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA5_SHIFT)) & CAU_ADR_CA_CA5_MASK) +#define CAU_ADR_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA6_SHIFT (0U) +#define CAU_ADR_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA6_SHIFT)) & CAU_ADR_CA_CA6_MASK) +#define CAU_ADR_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA7_SHIFT (0U) +#define CAU_ADR_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA7_SHIFT)) & CAU_ADR_CA_CA7_MASK) +#define CAU_ADR_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_ADR_CA_CA8_SHIFT (0U) +#define CAU_ADR_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_ADR_CA_CA8_SHIFT)) & CAU_ADR_CA_CA8_MASK) + +/* The count of CAU_ADR_CA */ +#define CAU_ADR_CA_COUNT (9U) + +/*! @name RADR_CASR - Status register - Reverse and Add to Register command */ +#define CAU_RADR_CASR_IC_MASK (0x1U) +#define CAU_RADR_CASR_IC_SHIFT (0U) +#define CAU_RADR_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CASR_IC_SHIFT)) & CAU_RADR_CASR_IC_MASK) +#define CAU_RADR_CASR_DPE_MASK (0x2U) +#define CAU_RADR_CASR_DPE_SHIFT (1U) +#define CAU_RADR_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CASR_DPE_SHIFT)) & CAU_RADR_CASR_DPE_MASK) +#define CAU_RADR_CASR_VER_MASK (0xF0000000U) +#define CAU_RADR_CASR_VER_SHIFT (28U) +#define CAU_RADR_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CASR_VER_SHIFT)) & CAU_RADR_CASR_VER_MASK) + +/*! @name RADR_CAA - Accumulator register - Reverse and Add to Register command */ +#define CAU_RADR_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_RADR_CAA_ACC_SHIFT (0U) +#define CAU_RADR_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CAA_ACC_SHIFT)) & CAU_RADR_CAA_ACC_MASK) + +/*! @name RADR_CA - General Purpose Register 0 - Reverse and Add to Register command..General Purpose Register 8 - Reverse and Add to Register command */ +#define CAU_RADR_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA0_SHIFT (0U) +#define CAU_RADR_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA0_SHIFT)) & CAU_RADR_CA_CA0_MASK) +#define CAU_RADR_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA1_SHIFT (0U) +#define CAU_RADR_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA1_SHIFT)) & CAU_RADR_CA_CA1_MASK) +#define CAU_RADR_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA2_SHIFT (0U) +#define CAU_RADR_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA2_SHIFT)) & CAU_RADR_CA_CA2_MASK) +#define CAU_RADR_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA3_SHIFT (0U) +#define CAU_RADR_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA3_SHIFT)) & CAU_RADR_CA_CA3_MASK) +#define CAU_RADR_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA4_SHIFT (0U) +#define CAU_RADR_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA4_SHIFT)) & CAU_RADR_CA_CA4_MASK) +#define CAU_RADR_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA5_SHIFT (0U) +#define CAU_RADR_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA5_SHIFT)) & CAU_RADR_CA_CA5_MASK) +#define CAU_RADR_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA6_SHIFT (0U) +#define CAU_RADR_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA6_SHIFT)) & CAU_RADR_CA_CA6_MASK) +#define CAU_RADR_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA7_SHIFT (0U) +#define CAU_RADR_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA7_SHIFT)) & CAU_RADR_CA_CA7_MASK) +#define CAU_RADR_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_RADR_CA_CA8_SHIFT (0U) +#define CAU_RADR_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_RADR_CA_CA8_SHIFT)) & CAU_RADR_CA_CA8_MASK) + +/* The count of CAU_RADR_CA */ +#define CAU_RADR_CA_COUNT (9U) + +/*! @name XOR_CASR - Status register - Exclusive Or command */ +#define CAU_XOR_CASR_IC_MASK (0x1U) +#define CAU_XOR_CASR_IC_SHIFT (0U) +#define CAU_XOR_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CASR_IC_SHIFT)) & CAU_XOR_CASR_IC_MASK) +#define CAU_XOR_CASR_DPE_MASK (0x2U) +#define CAU_XOR_CASR_DPE_SHIFT (1U) +#define CAU_XOR_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CASR_DPE_SHIFT)) & CAU_XOR_CASR_DPE_MASK) +#define CAU_XOR_CASR_VER_MASK (0xF0000000U) +#define CAU_XOR_CASR_VER_SHIFT (28U) +#define CAU_XOR_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CASR_VER_SHIFT)) & CAU_XOR_CASR_VER_MASK) + +/*! @name XOR_CAA - Accumulator register - Exclusive Or command */ +#define CAU_XOR_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_XOR_CAA_ACC_SHIFT (0U) +#define CAU_XOR_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CAA_ACC_SHIFT)) & CAU_XOR_CAA_ACC_MASK) + +/*! @name XOR_CA - General Purpose Register 0 - Exclusive Or command..General Purpose Register 8 - Exclusive Or command */ +#define CAU_XOR_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA0_SHIFT (0U) +#define CAU_XOR_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA0_SHIFT)) & CAU_XOR_CA_CA0_MASK) +#define CAU_XOR_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA1_SHIFT (0U) +#define CAU_XOR_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA1_SHIFT)) & CAU_XOR_CA_CA1_MASK) +#define CAU_XOR_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA2_SHIFT (0U) +#define CAU_XOR_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA2_SHIFT)) & CAU_XOR_CA_CA2_MASK) +#define CAU_XOR_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA3_SHIFT (0U) +#define CAU_XOR_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA3_SHIFT)) & CAU_XOR_CA_CA3_MASK) +#define CAU_XOR_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA4_SHIFT (0U) +#define CAU_XOR_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA4_SHIFT)) & CAU_XOR_CA_CA4_MASK) +#define CAU_XOR_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA5_SHIFT (0U) +#define CAU_XOR_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA5_SHIFT)) & CAU_XOR_CA_CA5_MASK) +#define CAU_XOR_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA6_SHIFT (0U) +#define CAU_XOR_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA6_SHIFT)) & CAU_XOR_CA_CA6_MASK) +#define CAU_XOR_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA7_SHIFT (0U) +#define CAU_XOR_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA7_SHIFT)) & CAU_XOR_CA_CA7_MASK) +#define CAU_XOR_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_XOR_CA_CA8_SHIFT (0U) +#define CAU_XOR_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_XOR_CA_CA8_SHIFT)) & CAU_XOR_CA_CA8_MASK) + +/* The count of CAU_XOR_CA */ +#define CAU_XOR_CA_COUNT (9U) + +/*! @name ROTL_CASR - Status register - Rotate Left command */ +#define CAU_ROTL_CASR_IC_MASK (0x1U) +#define CAU_ROTL_CASR_IC_SHIFT (0U) +#define CAU_ROTL_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CASR_IC_SHIFT)) & CAU_ROTL_CASR_IC_MASK) +#define CAU_ROTL_CASR_DPE_MASK (0x2U) +#define CAU_ROTL_CASR_DPE_SHIFT (1U) +#define CAU_ROTL_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CASR_DPE_SHIFT)) & CAU_ROTL_CASR_DPE_MASK) +#define CAU_ROTL_CASR_VER_MASK (0xF0000000U) +#define CAU_ROTL_CASR_VER_SHIFT (28U) +#define CAU_ROTL_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CASR_VER_SHIFT)) & CAU_ROTL_CASR_VER_MASK) + +/*! @name ROTL_CAA - Accumulator register - Rotate Left command */ +#define CAU_ROTL_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CAA_ACC_SHIFT (0U) +#define CAU_ROTL_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CAA_ACC_SHIFT)) & CAU_ROTL_CAA_ACC_MASK) + +/*! @name ROTL_CA - General Purpose Register 0 - Rotate Left command..General Purpose Register 8 - Rotate Left command */ +#define CAU_ROTL_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA0_SHIFT (0U) +#define CAU_ROTL_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA0_SHIFT)) & CAU_ROTL_CA_CA0_MASK) +#define CAU_ROTL_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA1_SHIFT (0U) +#define CAU_ROTL_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA1_SHIFT)) & CAU_ROTL_CA_CA1_MASK) +#define CAU_ROTL_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA2_SHIFT (0U) +#define CAU_ROTL_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA2_SHIFT)) & CAU_ROTL_CA_CA2_MASK) +#define CAU_ROTL_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA3_SHIFT (0U) +#define CAU_ROTL_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA3_SHIFT)) & CAU_ROTL_CA_CA3_MASK) +#define CAU_ROTL_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA4_SHIFT (0U) +#define CAU_ROTL_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA4_SHIFT)) & CAU_ROTL_CA_CA4_MASK) +#define CAU_ROTL_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA5_SHIFT (0U) +#define CAU_ROTL_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA5_SHIFT)) & CAU_ROTL_CA_CA5_MASK) +#define CAU_ROTL_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA6_SHIFT (0U) +#define CAU_ROTL_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA6_SHIFT)) & CAU_ROTL_CA_CA6_MASK) +#define CAU_ROTL_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA7_SHIFT (0U) +#define CAU_ROTL_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA7_SHIFT)) & CAU_ROTL_CA_CA7_MASK) +#define CAU_ROTL_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_ROTL_CA_CA8_SHIFT (0U) +#define CAU_ROTL_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_ROTL_CA_CA8_SHIFT)) & CAU_ROTL_CA_CA8_MASK) + +/* The count of CAU_ROTL_CA */ +#define CAU_ROTL_CA_COUNT (9U) + +/*! @name AESC_CASR - Status register - AES Column Operation command */ +#define CAU_AESC_CASR_IC_MASK (0x1U) +#define CAU_AESC_CASR_IC_SHIFT (0U) +#define CAU_AESC_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CASR_IC_SHIFT)) & CAU_AESC_CASR_IC_MASK) +#define CAU_AESC_CASR_DPE_MASK (0x2U) +#define CAU_AESC_CASR_DPE_SHIFT (1U) +#define CAU_AESC_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CASR_DPE_SHIFT)) & CAU_AESC_CASR_DPE_MASK) +#define CAU_AESC_CASR_VER_MASK (0xF0000000U) +#define CAU_AESC_CASR_VER_SHIFT (28U) +#define CAU_AESC_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CASR_VER_SHIFT)) & CAU_AESC_CASR_VER_MASK) + +/*! @name AESC_CAA - Accumulator register - AES Column Operation command */ +#define CAU_AESC_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_AESC_CAA_ACC_SHIFT (0U) +#define CAU_AESC_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CAA_ACC_SHIFT)) & CAU_AESC_CAA_ACC_MASK) + +/*! @name AESC_CA - General Purpose Register 0 - AES Column Operation command..General Purpose Register 8 - AES Column Operation command */ +#define CAU_AESC_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA0_SHIFT (0U) +#define CAU_AESC_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA0_SHIFT)) & CAU_AESC_CA_CA0_MASK) +#define CAU_AESC_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA1_SHIFT (0U) +#define CAU_AESC_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA1_SHIFT)) & CAU_AESC_CA_CA1_MASK) +#define CAU_AESC_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA2_SHIFT (0U) +#define CAU_AESC_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA2_SHIFT)) & CAU_AESC_CA_CA2_MASK) +#define CAU_AESC_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA3_SHIFT (0U) +#define CAU_AESC_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA3_SHIFT)) & CAU_AESC_CA_CA3_MASK) +#define CAU_AESC_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA4_SHIFT (0U) +#define CAU_AESC_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA4_SHIFT)) & CAU_AESC_CA_CA4_MASK) +#define CAU_AESC_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA5_SHIFT (0U) +#define CAU_AESC_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA5_SHIFT)) & CAU_AESC_CA_CA5_MASK) +#define CAU_AESC_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA6_SHIFT (0U) +#define CAU_AESC_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA6_SHIFT)) & CAU_AESC_CA_CA6_MASK) +#define CAU_AESC_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA7_SHIFT (0U) +#define CAU_AESC_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA7_SHIFT)) & CAU_AESC_CA_CA7_MASK) +#define CAU_AESC_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_AESC_CA_CA8_SHIFT (0U) +#define CAU_AESC_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESC_CA_CA8_SHIFT)) & CAU_AESC_CA_CA8_MASK) + +/* The count of CAU_AESC_CA */ +#define CAU_AESC_CA_COUNT (9U) + +/*! @name AESIC_CASR - Status register - AES Inverse Column Operation command */ +#define CAU_AESIC_CASR_IC_MASK (0x1U) +#define CAU_AESIC_CASR_IC_SHIFT (0U) +#define CAU_AESIC_CASR_IC(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CASR_IC_SHIFT)) & CAU_AESIC_CASR_IC_MASK) +#define CAU_AESIC_CASR_DPE_MASK (0x2U) +#define CAU_AESIC_CASR_DPE_SHIFT (1U) +#define CAU_AESIC_CASR_DPE(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CASR_DPE_SHIFT)) & CAU_AESIC_CASR_DPE_MASK) +#define CAU_AESIC_CASR_VER_MASK (0xF0000000U) +#define CAU_AESIC_CASR_VER_SHIFT (28U) +#define CAU_AESIC_CASR_VER(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CASR_VER_SHIFT)) & CAU_AESIC_CASR_VER_MASK) + +/*! @name AESIC_CAA - Accumulator register - AES Inverse Column Operation command */ +#define CAU_AESIC_CAA_ACC_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CAA_ACC_SHIFT (0U) +#define CAU_AESIC_CAA_ACC(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CAA_ACC_SHIFT)) & CAU_AESIC_CAA_ACC_MASK) + +/*! @name AESIC_CA - General Purpose Register 0 - AES Inverse Column Operation command..General Purpose Register 8 - AES Inverse Column Operation command */ +#define CAU_AESIC_CA_CA0_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA0_SHIFT (0U) +#define CAU_AESIC_CA_CA0(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA0_SHIFT)) & CAU_AESIC_CA_CA0_MASK) +#define CAU_AESIC_CA_CA1_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA1_SHIFT (0U) +#define CAU_AESIC_CA_CA1(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA1_SHIFT)) & CAU_AESIC_CA_CA1_MASK) +#define CAU_AESIC_CA_CA2_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA2_SHIFT (0U) +#define CAU_AESIC_CA_CA2(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA2_SHIFT)) & CAU_AESIC_CA_CA2_MASK) +#define CAU_AESIC_CA_CA3_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA3_SHIFT (0U) +#define CAU_AESIC_CA_CA3(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA3_SHIFT)) & CAU_AESIC_CA_CA3_MASK) +#define CAU_AESIC_CA_CA4_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA4_SHIFT (0U) +#define CAU_AESIC_CA_CA4(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA4_SHIFT)) & CAU_AESIC_CA_CA4_MASK) +#define CAU_AESIC_CA_CA5_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA5_SHIFT (0U) +#define CAU_AESIC_CA_CA5(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA5_SHIFT)) & CAU_AESIC_CA_CA5_MASK) +#define CAU_AESIC_CA_CA6_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA6_SHIFT (0U) +#define CAU_AESIC_CA_CA6(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA6_SHIFT)) & CAU_AESIC_CA_CA6_MASK) +#define CAU_AESIC_CA_CA7_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA7_SHIFT (0U) +#define CAU_AESIC_CA_CA7(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA7_SHIFT)) & CAU_AESIC_CA_CA7_MASK) +#define CAU_AESIC_CA_CA8_MASK (0xFFFFFFFFU) +#define CAU_AESIC_CA_CA8_SHIFT (0U) +#define CAU_AESIC_CA_CA8(x) (((uint32_t)(((uint32_t)(x)) << CAU_AESIC_CA_CA8_SHIFT)) & CAU_AESIC_CA_CA8_MASK) + +/* The count of CAU_AESIC_CA */ +#define CAU_AESIC_CA_COUNT (9U) + + +/*! + * @} + */ /* end of group CAU_Register_Masks */ + + +/* CAU - Peripheral instance base addresses */ +/** Peripheral CAU base address */ +#define CAU_BASE (0xE0081000u) +/** Peripheral CAU base pointer */ +#define CAU ((CAU_Type *)CAU_BASE) +/** Array initializer of CAU peripheral base addresses */ +#define CAU_BASE_ADDRS { CAU_BASE } +/** Array initializer of CAU peripheral base pointers */ +#define CAU_BASE_PTRS { CAU } + +/*! + * @} + */ /* end of group CAU_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- CMP Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CMP_Peripheral_Access_Layer CMP Peripheral Access Layer + * @{ + */ + +/** CMP - Register Layout Typedef */ +typedef struct { + __IO uint8_t CR0; /**< CMP Control Register 0, offset: 0x0 */ + __IO uint8_t CR1; /**< CMP Control Register 1, offset: 0x1 */ + __IO uint8_t FPR; /**< CMP Filter Period Register, offset: 0x2 */ + __IO uint8_t SCR; /**< CMP Status and Control Register, offset: 0x3 */ + __IO uint8_t DACCR; /**< DAC Control Register, offset: 0x4 */ + __IO uint8_t MUXCR; /**< MUX Control Register, offset: 0x5 */ +} CMP_Type; + +/* ---------------------------------------------------------------------------- + -- CMP Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CMP_Register_Masks CMP Register Masks + * @{ + */ + +/*! @name CR0 - CMP Control Register 0 */ +#define CMP_CR0_HYSTCTR_MASK (0x3U) +#define CMP_CR0_HYSTCTR_SHIFT (0U) +#define CMP_CR0_HYSTCTR(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR0_HYSTCTR_SHIFT)) & CMP_CR0_HYSTCTR_MASK) +#define CMP_CR0_FILTER_CNT_MASK (0x70U) +#define CMP_CR0_FILTER_CNT_SHIFT (4U) +#define CMP_CR0_FILTER_CNT(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR0_FILTER_CNT_SHIFT)) & CMP_CR0_FILTER_CNT_MASK) + +/*! @name CR1 - CMP Control Register 1 */ +#define CMP_CR1_EN_MASK (0x1U) +#define CMP_CR1_EN_SHIFT (0U) +#define CMP_CR1_EN(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_EN_SHIFT)) & CMP_CR1_EN_MASK) +#define CMP_CR1_OPE_MASK (0x2U) +#define CMP_CR1_OPE_SHIFT (1U) +#define CMP_CR1_OPE(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_OPE_SHIFT)) & CMP_CR1_OPE_MASK) +#define CMP_CR1_COS_MASK (0x4U) +#define CMP_CR1_COS_SHIFT (2U) +#define CMP_CR1_COS(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_COS_SHIFT)) & CMP_CR1_COS_MASK) +#define CMP_CR1_INV_MASK (0x8U) +#define CMP_CR1_INV_SHIFT (3U) +#define CMP_CR1_INV(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_INV_SHIFT)) & CMP_CR1_INV_MASK) +#define CMP_CR1_PMODE_MASK (0x10U) +#define CMP_CR1_PMODE_SHIFT (4U) +#define CMP_CR1_PMODE(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_PMODE_SHIFT)) & CMP_CR1_PMODE_MASK) +#define CMP_CR1_WE_MASK (0x40U) +#define CMP_CR1_WE_SHIFT (6U) +#define CMP_CR1_WE(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_WE_SHIFT)) & CMP_CR1_WE_MASK) +#define CMP_CR1_SE_MASK (0x80U) +#define CMP_CR1_SE_SHIFT (7U) +#define CMP_CR1_SE(x) (((uint8_t)(((uint8_t)(x)) << CMP_CR1_SE_SHIFT)) & CMP_CR1_SE_MASK) + +/*! @name FPR - CMP Filter Period Register */ +#define CMP_FPR_FILT_PER_MASK (0xFFU) +#define CMP_FPR_FILT_PER_SHIFT (0U) +#define CMP_FPR_FILT_PER(x) (((uint8_t)(((uint8_t)(x)) << CMP_FPR_FILT_PER_SHIFT)) & CMP_FPR_FILT_PER_MASK) + +/*! @name SCR - CMP Status and Control Register */ +#define CMP_SCR_COUT_MASK (0x1U) +#define CMP_SCR_COUT_SHIFT (0U) +#define CMP_SCR_COUT(x) (((uint8_t)(((uint8_t)(x)) << CMP_SCR_COUT_SHIFT)) & CMP_SCR_COUT_MASK) +#define CMP_SCR_CFF_MASK (0x2U) +#define CMP_SCR_CFF_SHIFT (1U) +#define CMP_SCR_CFF(x) (((uint8_t)(((uint8_t)(x)) << CMP_SCR_CFF_SHIFT)) & CMP_SCR_CFF_MASK) +#define CMP_SCR_CFR_MASK (0x4U) +#define CMP_SCR_CFR_SHIFT (2U) +#define CMP_SCR_CFR(x) (((uint8_t)(((uint8_t)(x)) << CMP_SCR_CFR_SHIFT)) & CMP_SCR_CFR_MASK) +#define CMP_SCR_IEF_MASK (0x8U) +#define CMP_SCR_IEF_SHIFT (3U) +#define CMP_SCR_IEF(x) (((uint8_t)(((uint8_t)(x)) << CMP_SCR_IEF_SHIFT)) & CMP_SCR_IEF_MASK) +#define CMP_SCR_IER_MASK (0x10U) +#define CMP_SCR_IER_SHIFT (4U) +#define CMP_SCR_IER(x) (((uint8_t)(((uint8_t)(x)) << CMP_SCR_IER_SHIFT)) & CMP_SCR_IER_MASK) +#define CMP_SCR_DMAEN_MASK (0x40U) +#define CMP_SCR_DMAEN_SHIFT (6U) +#define CMP_SCR_DMAEN(x) (((uint8_t)(((uint8_t)(x)) << CMP_SCR_DMAEN_SHIFT)) & CMP_SCR_DMAEN_MASK) + +/*! @name DACCR - DAC Control Register */ +#define CMP_DACCR_VOSEL_MASK (0x3FU) +#define CMP_DACCR_VOSEL_SHIFT (0U) +#define CMP_DACCR_VOSEL(x) (((uint8_t)(((uint8_t)(x)) << CMP_DACCR_VOSEL_SHIFT)) & CMP_DACCR_VOSEL_MASK) +#define CMP_DACCR_VRSEL_MASK (0x40U) +#define CMP_DACCR_VRSEL_SHIFT (6U) +#define CMP_DACCR_VRSEL(x) (((uint8_t)(((uint8_t)(x)) << CMP_DACCR_VRSEL_SHIFT)) & CMP_DACCR_VRSEL_MASK) +#define CMP_DACCR_DACEN_MASK (0x80U) +#define CMP_DACCR_DACEN_SHIFT (7U) +#define CMP_DACCR_DACEN(x) (((uint8_t)(((uint8_t)(x)) << CMP_DACCR_DACEN_SHIFT)) & CMP_DACCR_DACEN_MASK) + +/*! @name MUXCR - MUX Control Register */ +#define CMP_MUXCR_MSEL_MASK (0x7U) +#define CMP_MUXCR_MSEL_SHIFT (0U) +#define CMP_MUXCR_MSEL(x) (((uint8_t)(((uint8_t)(x)) << CMP_MUXCR_MSEL_SHIFT)) & CMP_MUXCR_MSEL_MASK) +#define CMP_MUXCR_PSEL_MASK (0x38U) +#define CMP_MUXCR_PSEL_SHIFT (3U) +#define CMP_MUXCR_PSEL(x) (((uint8_t)(((uint8_t)(x)) << CMP_MUXCR_PSEL_SHIFT)) & CMP_MUXCR_PSEL_MASK) +#define CMP_MUXCR_PSTM_MASK (0x80U) +#define CMP_MUXCR_PSTM_SHIFT (7U) +#define CMP_MUXCR_PSTM(x) (((uint8_t)(((uint8_t)(x)) << CMP_MUXCR_PSTM_SHIFT)) & CMP_MUXCR_PSTM_MASK) + + +/*! + * @} + */ /* end of group CMP_Register_Masks */ + + +/* CMP - Peripheral instance base addresses */ +/** Peripheral CMP0 base address */ +#define CMP0_BASE (0x40073000u) +/** Peripheral CMP0 base pointer */ +#define CMP0 ((CMP_Type *)CMP0_BASE) +/** Peripheral CMP1 base address */ +#define CMP1_BASE (0x40073008u) +/** Peripheral CMP1 base pointer */ +#define CMP1 ((CMP_Type *)CMP1_BASE) +/** Peripheral CMP2 base address */ +#define CMP2_BASE (0x40073010u) +/** Peripheral CMP2 base pointer */ +#define CMP2 ((CMP_Type *)CMP2_BASE) +/** Array initializer of CMP peripheral base addresses */ +#define CMP_BASE_ADDRS { CMP0_BASE, CMP1_BASE, CMP2_BASE } +/** Array initializer of CMP peripheral base pointers */ +#define CMP_BASE_PTRS { CMP0, CMP1, CMP2 } +/** Interrupt vectors for the CMP peripheral type */ +#define CMP_IRQS { CMP0_IRQn, CMP1_IRQn, CMP2_IRQn } + +/*! + * @} + */ /* end of group CMP_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- CMT Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CMT_Peripheral_Access_Layer CMT Peripheral Access Layer + * @{ + */ + +/** CMT - Register Layout Typedef */ +typedef struct { + __IO uint8_t CGH1; /**< CMT Carrier Generator High Data Register 1, offset: 0x0 */ + __IO uint8_t CGL1; /**< CMT Carrier Generator Low Data Register 1, offset: 0x1 */ + __IO uint8_t CGH2; /**< CMT Carrier Generator High Data Register 2, offset: 0x2 */ + __IO uint8_t CGL2; /**< CMT Carrier Generator Low Data Register 2, offset: 0x3 */ + __IO uint8_t OC; /**< CMT Output Control Register, offset: 0x4 */ + __IO uint8_t MSC; /**< CMT Modulator Status and Control Register, offset: 0x5 */ + __IO uint8_t CMD1; /**< CMT Modulator Data Register Mark High, offset: 0x6 */ + __IO uint8_t CMD2; /**< CMT Modulator Data Register Mark Low, offset: 0x7 */ + __IO uint8_t CMD3; /**< CMT Modulator Data Register Space High, offset: 0x8 */ + __IO uint8_t CMD4; /**< CMT Modulator Data Register Space Low, offset: 0x9 */ + __IO uint8_t PPS; /**< CMT Primary Prescaler Register, offset: 0xA */ + __IO uint8_t DMA; /**< CMT Direct Memory Access Register, offset: 0xB */ +} CMT_Type; + +/* ---------------------------------------------------------------------------- + -- CMT Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CMT_Register_Masks CMT Register Masks + * @{ + */ + +/*! @name CGH1 - CMT Carrier Generator High Data Register 1 */ +#define CMT_CGH1_PH_MASK (0xFFU) +#define CMT_CGH1_PH_SHIFT (0U) +#define CMT_CGH1_PH(x) (((uint8_t)(((uint8_t)(x)) << CMT_CGH1_PH_SHIFT)) & CMT_CGH1_PH_MASK) + +/*! @name CGL1 - CMT Carrier Generator Low Data Register 1 */ +#define CMT_CGL1_PL_MASK (0xFFU) +#define CMT_CGL1_PL_SHIFT (0U) +#define CMT_CGL1_PL(x) (((uint8_t)(((uint8_t)(x)) << CMT_CGL1_PL_SHIFT)) & CMT_CGL1_PL_MASK) + +/*! @name CGH2 - CMT Carrier Generator High Data Register 2 */ +#define CMT_CGH2_SH_MASK (0xFFU) +#define CMT_CGH2_SH_SHIFT (0U) +#define CMT_CGH2_SH(x) (((uint8_t)(((uint8_t)(x)) << CMT_CGH2_SH_SHIFT)) & CMT_CGH2_SH_MASK) + +/*! @name CGL2 - CMT Carrier Generator Low Data Register 2 */ +#define CMT_CGL2_SL_MASK (0xFFU) +#define CMT_CGL2_SL_SHIFT (0U) +#define CMT_CGL2_SL(x) (((uint8_t)(((uint8_t)(x)) << CMT_CGL2_SL_SHIFT)) & CMT_CGL2_SL_MASK) + +/*! @name OC - CMT Output Control Register */ +#define CMT_OC_IROPEN_MASK (0x20U) +#define CMT_OC_IROPEN_SHIFT (5U) +#define CMT_OC_IROPEN(x) (((uint8_t)(((uint8_t)(x)) << CMT_OC_IROPEN_SHIFT)) & CMT_OC_IROPEN_MASK) +#define CMT_OC_CMTPOL_MASK (0x40U) +#define CMT_OC_CMTPOL_SHIFT (6U) +#define CMT_OC_CMTPOL(x) (((uint8_t)(((uint8_t)(x)) << CMT_OC_CMTPOL_SHIFT)) & CMT_OC_CMTPOL_MASK) +#define CMT_OC_IROL_MASK (0x80U) +#define CMT_OC_IROL_SHIFT (7U) +#define CMT_OC_IROL(x) (((uint8_t)(((uint8_t)(x)) << CMT_OC_IROL_SHIFT)) & CMT_OC_IROL_MASK) + +/*! @name MSC - CMT Modulator Status and Control Register */ +#define CMT_MSC_MCGEN_MASK (0x1U) +#define CMT_MSC_MCGEN_SHIFT (0U) +#define CMT_MSC_MCGEN(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_MCGEN_SHIFT)) & CMT_MSC_MCGEN_MASK) +#define CMT_MSC_EOCIE_MASK (0x2U) +#define CMT_MSC_EOCIE_SHIFT (1U) +#define CMT_MSC_EOCIE(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_EOCIE_SHIFT)) & CMT_MSC_EOCIE_MASK) +#define CMT_MSC_FSK_MASK (0x4U) +#define CMT_MSC_FSK_SHIFT (2U) +#define CMT_MSC_FSK(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_FSK_SHIFT)) & CMT_MSC_FSK_MASK) +#define CMT_MSC_BASE_MASK (0x8U) +#define CMT_MSC_BASE_SHIFT (3U) +#define CMT_MSC_BASE(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_BASE_SHIFT)) & CMT_MSC_BASE_MASK) +#define CMT_MSC_EXSPC_MASK (0x10U) +#define CMT_MSC_EXSPC_SHIFT (4U) +#define CMT_MSC_EXSPC(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_EXSPC_SHIFT)) & CMT_MSC_EXSPC_MASK) +#define CMT_MSC_CMTDIV_MASK (0x60U) +#define CMT_MSC_CMTDIV_SHIFT (5U) +#define CMT_MSC_CMTDIV(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_CMTDIV_SHIFT)) & CMT_MSC_CMTDIV_MASK) +#define CMT_MSC_EOCF_MASK (0x80U) +#define CMT_MSC_EOCF_SHIFT (7U) +#define CMT_MSC_EOCF(x) (((uint8_t)(((uint8_t)(x)) << CMT_MSC_EOCF_SHIFT)) & CMT_MSC_EOCF_MASK) + +/*! @name CMD1 - CMT Modulator Data Register Mark High */ +#define CMT_CMD1_MB_MASK (0xFFU) +#define CMT_CMD1_MB_SHIFT (0U) +#define CMT_CMD1_MB(x) (((uint8_t)(((uint8_t)(x)) << CMT_CMD1_MB_SHIFT)) & CMT_CMD1_MB_MASK) + +/*! @name CMD2 - CMT Modulator Data Register Mark Low */ +#define CMT_CMD2_MB_MASK (0xFFU) +#define CMT_CMD2_MB_SHIFT (0U) +#define CMT_CMD2_MB(x) (((uint8_t)(((uint8_t)(x)) << CMT_CMD2_MB_SHIFT)) & CMT_CMD2_MB_MASK) + +/*! @name CMD3 - CMT Modulator Data Register Space High */ +#define CMT_CMD3_SB_MASK (0xFFU) +#define CMT_CMD3_SB_SHIFT (0U) +#define CMT_CMD3_SB(x) (((uint8_t)(((uint8_t)(x)) << CMT_CMD3_SB_SHIFT)) & CMT_CMD3_SB_MASK) + +/*! @name CMD4 - CMT Modulator Data Register Space Low */ +#define CMT_CMD4_SB_MASK (0xFFU) +#define CMT_CMD4_SB_SHIFT (0U) +#define CMT_CMD4_SB(x) (((uint8_t)(((uint8_t)(x)) << CMT_CMD4_SB_SHIFT)) & CMT_CMD4_SB_MASK) + +/*! @name PPS - CMT Primary Prescaler Register */ +#define CMT_PPS_PPSDIV_MASK (0xFU) +#define CMT_PPS_PPSDIV_SHIFT (0U) +#define CMT_PPS_PPSDIV(x) (((uint8_t)(((uint8_t)(x)) << CMT_PPS_PPSDIV_SHIFT)) & CMT_PPS_PPSDIV_MASK) + +/*! @name DMA - CMT Direct Memory Access Register */ +#define CMT_DMA_DMA_MASK (0x1U) +#define CMT_DMA_DMA_SHIFT (0U) +#define CMT_DMA_DMA(x) (((uint8_t)(((uint8_t)(x)) << CMT_DMA_DMA_SHIFT)) & CMT_DMA_DMA_MASK) + + +/*! + * @} + */ /* end of group CMT_Register_Masks */ + + +/* CMT - Peripheral instance base addresses */ +/** Peripheral CMT base address */ +#define CMT_BASE (0x40062000u) +/** Peripheral CMT base pointer */ +#define CMT ((CMT_Type *)CMT_BASE) +/** Array initializer of CMT peripheral base addresses */ +#define CMT_BASE_ADDRS { CMT_BASE } +/** Array initializer of CMT peripheral base pointers */ +#define CMT_BASE_PTRS { CMT } +/** Interrupt vectors for the CMT peripheral type */ +#define CMT_IRQS { CMT_IRQn } + +/*! + * @} + */ /* end of group CMT_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- CRC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CRC_Peripheral_Access_Layer CRC Peripheral Access Layer + * @{ + */ + +/** CRC - Register Layout Typedef */ +typedef struct { + union { /* offset: 0x0 */ + struct { /* offset: 0x0 */ + __IO uint16_t DATAL; /**< CRC_DATAL register., offset: 0x0 */ + __IO uint16_t DATAH; /**< CRC_DATAH register., offset: 0x2 */ + } ACCESS16BIT; + __IO uint32_t DATA; /**< CRC Data register, offset: 0x0 */ + struct { /* offset: 0x0 */ + __IO uint8_t DATALL; /**< CRC_DATALL register., offset: 0x0 */ + __IO uint8_t DATALU; /**< CRC_DATALU register., offset: 0x1 */ + __IO uint8_t DATAHL; /**< CRC_DATAHL register., offset: 0x2 */ + __IO uint8_t DATAHU; /**< CRC_DATAHU register., offset: 0x3 */ + } ACCESS8BIT; + }; + union { /* offset: 0x4 */ + struct { /* offset: 0x4 */ + __IO uint16_t GPOLYL; /**< CRC_GPOLYL register., offset: 0x4 */ + __IO uint16_t GPOLYH; /**< CRC_GPOLYH register., offset: 0x6 */ + } GPOLY_ACCESS16BIT; + __IO uint32_t GPOLY; /**< CRC Polynomial register, offset: 0x4 */ + struct { /* offset: 0x4 */ + __IO uint8_t GPOLYLL; /**< CRC_GPOLYLL register., offset: 0x4 */ + __IO uint8_t GPOLYLU; /**< CRC_GPOLYLU register., offset: 0x5 */ + __IO uint8_t GPOLYHL; /**< CRC_GPOLYHL register., offset: 0x6 */ + __IO uint8_t GPOLYHU; /**< CRC_GPOLYHU register., offset: 0x7 */ + } GPOLY_ACCESS8BIT; + }; + union { /* offset: 0x8 */ + __IO uint32_t CTRL; /**< CRC Control register, offset: 0x8 */ + struct { /* offset: 0x8 */ + uint8_t RESERVED_0[3]; + __IO uint8_t CTRLHU; /**< CRC_CTRLHU register., offset: 0xB */ + } CTRL_ACCESS8BIT; + }; +} CRC_Type; + +/* ---------------------------------------------------------------------------- + -- CRC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup CRC_Register_Masks CRC Register Masks + * @{ + */ + +/*! @name DATAL - CRC_DATAL register. */ +#define CRC_DATAL_DATAL_MASK (0xFFFFU) +#define CRC_DATAL_DATAL_SHIFT (0U) +#define CRC_DATAL_DATAL(x) (((uint16_t)(((uint16_t)(x)) << CRC_DATAL_DATAL_SHIFT)) & CRC_DATAL_DATAL_MASK) + +/*! @name DATAH - CRC_DATAH register. */ +#define CRC_DATAH_DATAH_MASK (0xFFFFU) +#define CRC_DATAH_DATAH_SHIFT (0U) +#define CRC_DATAH_DATAH(x) (((uint16_t)(((uint16_t)(x)) << CRC_DATAH_DATAH_SHIFT)) & CRC_DATAH_DATAH_MASK) + +/*! @name DATA - CRC Data register */ +#define CRC_DATA_LL_MASK (0xFFU) +#define CRC_DATA_LL_SHIFT (0U) +#define CRC_DATA_LL(x) (((uint32_t)(((uint32_t)(x)) << CRC_DATA_LL_SHIFT)) & CRC_DATA_LL_MASK) +#define CRC_DATA_LU_MASK (0xFF00U) +#define CRC_DATA_LU_SHIFT (8U) +#define CRC_DATA_LU(x) (((uint32_t)(((uint32_t)(x)) << CRC_DATA_LU_SHIFT)) & CRC_DATA_LU_MASK) +#define CRC_DATA_HL_MASK (0xFF0000U) +#define CRC_DATA_HL_SHIFT (16U) +#define CRC_DATA_HL(x) (((uint32_t)(((uint32_t)(x)) << CRC_DATA_HL_SHIFT)) & CRC_DATA_HL_MASK) +#define CRC_DATA_HU_MASK (0xFF000000U) +#define CRC_DATA_HU_SHIFT (24U) +#define CRC_DATA_HU(x) (((uint32_t)(((uint32_t)(x)) << CRC_DATA_HU_SHIFT)) & CRC_DATA_HU_MASK) + +/*! @name DATALL - CRC_DATALL register. */ +#define CRC_DATALL_DATALL_MASK (0xFFU) +#define CRC_DATALL_DATALL_SHIFT (0U) +#define CRC_DATALL_DATALL(x) (((uint8_t)(((uint8_t)(x)) << CRC_DATALL_DATALL_SHIFT)) & CRC_DATALL_DATALL_MASK) + +/*! @name DATALU - CRC_DATALU register. */ +#define CRC_DATALU_DATALU_MASK (0xFFU) +#define CRC_DATALU_DATALU_SHIFT (0U) +#define CRC_DATALU_DATALU(x) (((uint8_t)(((uint8_t)(x)) << CRC_DATALU_DATALU_SHIFT)) & CRC_DATALU_DATALU_MASK) + +/*! @name DATAHL - CRC_DATAHL register. */ +#define CRC_DATAHL_DATAHL_MASK (0xFFU) +#define CRC_DATAHL_DATAHL_SHIFT (0U) +#define CRC_DATAHL_DATAHL(x) (((uint8_t)(((uint8_t)(x)) << CRC_DATAHL_DATAHL_SHIFT)) & CRC_DATAHL_DATAHL_MASK) + +/*! @name DATAHU - CRC_DATAHU register. */ +#define CRC_DATAHU_DATAHU_MASK (0xFFU) +#define CRC_DATAHU_DATAHU_SHIFT (0U) +#define CRC_DATAHU_DATAHU(x) (((uint8_t)(((uint8_t)(x)) << CRC_DATAHU_DATAHU_SHIFT)) & CRC_DATAHU_DATAHU_MASK) + +/*! @name GPOLYL - CRC_GPOLYL register. */ +#define CRC_GPOLYL_GPOLYL_MASK (0xFFFFU) +#define CRC_GPOLYL_GPOLYL_SHIFT (0U) +#define CRC_GPOLYL_GPOLYL(x) (((uint16_t)(((uint16_t)(x)) << CRC_GPOLYL_GPOLYL_SHIFT)) & CRC_GPOLYL_GPOLYL_MASK) + +/*! @name GPOLYH - CRC_GPOLYH register. */ +#define CRC_GPOLYH_GPOLYH_MASK (0xFFFFU) +#define CRC_GPOLYH_GPOLYH_SHIFT (0U) +#define CRC_GPOLYH_GPOLYH(x) (((uint16_t)(((uint16_t)(x)) << CRC_GPOLYH_GPOLYH_SHIFT)) & CRC_GPOLYH_GPOLYH_MASK) + +/*! @name GPOLY - CRC Polynomial register */ +#define CRC_GPOLY_LOW_MASK (0xFFFFU) +#define CRC_GPOLY_LOW_SHIFT (0U) +#define CRC_GPOLY_LOW(x) (((uint32_t)(((uint32_t)(x)) << CRC_GPOLY_LOW_SHIFT)) & CRC_GPOLY_LOW_MASK) +#define CRC_GPOLY_HIGH_MASK (0xFFFF0000U) +#define CRC_GPOLY_HIGH_SHIFT (16U) +#define CRC_GPOLY_HIGH(x) (((uint32_t)(((uint32_t)(x)) << CRC_GPOLY_HIGH_SHIFT)) & CRC_GPOLY_HIGH_MASK) + +/*! @name GPOLYLL - CRC_GPOLYLL register. */ +#define CRC_GPOLYLL_GPOLYLL_MASK (0xFFU) +#define CRC_GPOLYLL_GPOLYLL_SHIFT (0U) +#define CRC_GPOLYLL_GPOLYLL(x) (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYLL_GPOLYLL_SHIFT)) & CRC_GPOLYLL_GPOLYLL_MASK) + +/*! @name GPOLYLU - CRC_GPOLYLU register. */ +#define CRC_GPOLYLU_GPOLYLU_MASK (0xFFU) +#define CRC_GPOLYLU_GPOLYLU_SHIFT (0U) +#define CRC_GPOLYLU_GPOLYLU(x) (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYLU_GPOLYLU_SHIFT)) & CRC_GPOLYLU_GPOLYLU_MASK) + +/*! @name GPOLYHL - CRC_GPOLYHL register. */ +#define CRC_GPOLYHL_GPOLYHL_MASK (0xFFU) +#define CRC_GPOLYHL_GPOLYHL_SHIFT (0U) +#define CRC_GPOLYHL_GPOLYHL(x) (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYHL_GPOLYHL_SHIFT)) & CRC_GPOLYHL_GPOLYHL_MASK) + +/*! @name GPOLYHU - CRC_GPOLYHU register. */ +#define CRC_GPOLYHU_GPOLYHU_MASK (0xFFU) +#define CRC_GPOLYHU_GPOLYHU_SHIFT (0U) +#define CRC_GPOLYHU_GPOLYHU(x) (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYHU_GPOLYHU_SHIFT)) & CRC_GPOLYHU_GPOLYHU_MASK) + +/*! @name CTRL - CRC Control register */ +#define CRC_CTRL_TCRC_MASK (0x1000000U) +#define CRC_CTRL_TCRC_SHIFT (24U) +#define CRC_CTRL_TCRC(x) (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TCRC_SHIFT)) & CRC_CTRL_TCRC_MASK) +#define CRC_CTRL_WAS_MASK (0x2000000U) +#define CRC_CTRL_WAS_SHIFT (25U) +#define CRC_CTRL_WAS(x) (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_WAS_SHIFT)) & CRC_CTRL_WAS_MASK) +#define CRC_CTRL_FXOR_MASK (0x4000000U) +#define CRC_CTRL_FXOR_SHIFT (26U) +#define CRC_CTRL_FXOR(x) (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_FXOR_SHIFT)) & CRC_CTRL_FXOR_MASK) +#define CRC_CTRL_TOTR_MASK (0x30000000U) +#define CRC_CTRL_TOTR_SHIFT (28U) +#define CRC_CTRL_TOTR(x) (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TOTR_SHIFT)) & CRC_CTRL_TOTR_MASK) +#define CRC_CTRL_TOT_MASK (0xC0000000U) +#define CRC_CTRL_TOT_SHIFT (30U) +#define CRC_CTRL_TOT(x) (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TOT_SHIFT)) & CRC_CTRL_TOT_MASK) + +/*! @name CTRLHU - CRC_CTRLHU register. */ +#define CRC_CTRLHU_TCRC_MASK (0x1U) +#define CRC_CTRLHU_TCRC_SHIFT (0U) +#define CRC_CTRLHU_TCRC(x) (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TCRC_SHIFT)) & CRC_CTRLHU_TCRC_MASK) +#define CRC_CTRLHU_WAS_MASK (0x2U) +#define CRC_CTRLHU_WAS_SHIFT (1U) +#define CRC_CTRLHU_WAS(x) (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_WAS_SHIFT)) & CRC_CTRLHU_WAS_MASK) +#define CRC_CTRLHU_FXOR_MASK (0x4U) +#define CRC_CTRLHU_FXOR_SHIFT (2U) +#define CRC_CTRLHU_FXOR(x) (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_FXOR_SHIFT)) & CRC_CTRLHU_FXOR_MASK) +#define CRC_CTRLHU_TOTR_MASK (0x30U) +#define CRC_CTRLHU_TOTR_SHIFT (4U) +#define CRC_CTRLHU_TOTR(x) (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TOTR_SHIFT)) & CRC_CTRLHU_TOTR_MASK) +#define CRC_CTRLHU_TOT_MASK (0xC0U) +#define CRC_CTRLHU_TOT_SHIFT (6U) +#define CRC_CTRLHU_TOT(x) (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TOT_SHIFT)) & CRC_CTRLHU_TOT_MASK) + + +/*! + * @} + */ /* end of group CRC_Register_Masks */ + + +/* CRC - Peripheral instance base addresses */ +/** Peripheral CRC base address */ +#define CRC_BASE (0x40032000u) +/** Peripheral CRC base pointer */ +#define CRC0 ((CRC_Type *)CRC_BASE) +/** Array initializer of CRC peripheral base addresses */ +#define CRC_BASE_ADDRS { CRC_BASE } +/** Array initializer of CRC peripheral base pointers */ +#define CRC_BASE_PTRS { CRC0 } + +/*! + * @} + */ /* end of group CRC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- DAC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup DAC_Peripheral_Access_Layer DAC Peripheral Access Layer + * @{ + */ + +/** DAC - Register Layout Typedef */ +typedef struct { + struct { /* offset: 0x0, array step: 0x2 */ + __IO uint8_t DATL; /**< DAC Data Low Register, array offset: 0x0, array step: 0x2 */ + __IO uint8_t DATH; /**< DAC Data High Register, array offset: 0x1, array step: 0x2 */ + } DAT[16]; + __IO uint8_t SR; /**< DAC Status Register, offset: 0x20 */ + __IO uint8_t C0; /**< DAC Control Register, offset: 0x21 */ + __IO uint8_t C1; /**< DAC Control Register 1, offset: 0x22 */ + __IO uint8_t C2; /**< DAC Control Register 2, offset: 0x23 */ +} DAC_Type; + +/* ---------------------------------------------------------------------------- + -- DAC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup DAC_Register_Masks DAC Register Masks + * @{ + */ + +/*! @name DATL - DAC Data Low Register */ +#define DAC_DATL_DATA0_MASK (0xFFU) +#define DAC_DATL_DATA0_SHIFT (0U) +#define DAC_DATL_DATA0(x) (((uint8_t)(((uint8_t)(x)) << DAC_DATL_DATA0_SHIFT)) & DAC_DATL_DATA0_MASK) + +/* The count of DAC_DATL */ +#define DAC_DATL_COUNT (16U) + +/*! @name DATH - DAC Data High Register */ +#define DAC_DATH_DATA1_MASK (0xFU) +#define DAC_DATH_DATA1_SHIFT (0U) +#define DAC_DATH_DATA1(x) (((uint8_t)(((uint8_t)(x)) << DAC_DATH_DATA1_SHIFT)) & DAC_DATH_DATA1_MASK) + +/* The count of DAC_DATH */ +#define DAC_DATH_COUNT (16U) + +/*! @name SR - DAC Status Register */ +#define DAC_SR_DACBFRPBF_MASK (0x1U) +#define DAC_SR_DACBFRPBF_SHIFT (0U) +#define DAC_SR_DACBFRPBF(x) (((uint8_t)(((uint8_t)(x)) << DAC_SR_DACBFRPBF_SHIFT)) & DAC_SR_DACBFRPBF_MASK) +#define DAC_SR_DACBFRPTF_MASK (0x2U) +#define DAC_SR_DACBFRPTF_SHIFT (1U) +#define DAC_SR_DACBFRPTF(x) (((uint8_t)(((uint8_t)(x)) << DAC_SR_DACBFRPTF_SHIFT)) & DAC_SR_DACBFRPTF_MASK) +#define DAC_SR_DACBFWMF_MASK (0x4U) +#define DAC_SR_DACBFWMF_SHIFT (2U) +#define DAC_SR_DACBFWMF(x) (((uint8_t)(((uint8_t)(x)) << DAC_SR_DACBFWMF_SHIFT)) & DAC_SR_DACBFWMF_MASK) + +/*! @name C0 - DAC Control Register */ +#define DAC_C0_DACBBIEN_MASK (0x1U) +#define DAC_C0_DACBBIEN_SHIFT (0U) +#define DAC_C0_DACBBIEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACBBIEN_SHIFT)) & DAC_C0_DACBBIEN_MASK) +#define DAC_C0_DACBTIEN_MASK (0x2U) +#define DAC_C0_DACBTIEN_SHIFT (1U) +#define DAC_C0_DACBTIEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACBTIEN_SHIFT)) & DAC_C0_DACBTIEN_MASK) +#define DAC_C0_DACBWIEN_MASK (0x4U) +#define DAC_C0_DACBWIEN_SHIFT (2U) +#define DAC_C0_DACBWIEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACBWIEN_SHIFT)) & DAC_C0_DACBWIEN_MASK) +#define DAC_C0_LPEN_MASK (0x8U) +#define DAC_C0_LPEN_SHIFT (3U) +#define DAC_C0_LPEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_LPEN_SHIFT)) & DAC_C0_LPEN_MASK) +#define DAC_C0_DACSWTRG_MASK (0x10U) +#define DAC_C0_DACSWTRG_SHIFT (4U) +#define DAC_C0_DACSWTRG(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACSWTRG_SHIFT)) & DAC_C0_DACSWTRG_MASK) +#define DAC_C0_DACTRGSEL_MASK (0x20U) +#define DAC_C0_DACTRGSEL_SHIFT (5U) +#define DAC_C0_DACTRGSEL(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACTRGSEL_SHIFT)) & DAC_C0_DACTRGSEL_MASK) +#define DAC_C0_DACRFS_MASK (0x40U) +#define DAC_C0_DACRFS_SHIFT (6U) +#define DAC_C0_DACRFS(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACRFS_SHIFT)) & DAC_C0_DACRFS_MASK) +#define DAC_C0_DACEN_MASK (0x80U) +#define DAC_C0_DACEN_SHIFT (7U) +#define DAC_C0_DACEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C0_DACEN_SHIFT)) & DAC_C0_DACEN_MASK) + +/*! @name C1 - DAC Control Register 1 */ +#define DAC_C1_DACBFEN_MASK (0x1U) +#define DAC_C1_DACBFEN_SHIFT (0U) +#define DAC_C1_DACBFEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C1_DACBFEN_SHIFT)) & DAC_C1_DACBFEN_MASK) +#define DAC_C1_DACBFMD_MASK (0x6U) +#define DAC_C1_DACBFMD_SHIFT (1U) +#define DAC_C1_DACBFMD(x) (((uint8_t)(((uint8_t)(x)) << DAC_C1_DACBFMD_SHIFT)) & DAC_C1_DACBFMD_MASK) +#define DAC_C1_DACBFWM_MASK (0x18U) +#define DAC_C1_DACBFWM_SHIFT (3U) +#define DAC_C1_DACBFWM(x) (((uint8_t)(((uint8_t)(x)) << DAC_C1_DACBFWM_SHIFT)) & DAC_C1_DACBFWM_MASK) +#define DAC_C1_DMAEN_MASK (0x80U) +#define DAC_C1_DMAEN_SHIFT (7U) +#define DAC_C1_DMAEN(x) (((uint8_t)(((uint8_t)(x)) << DAC_C1_DMAEN_SHIFT)) & DAC_C1_DMAEN_MASK) + +/*! @name C2 - DAC Control Register 2 */ +#define DAC_C2_DACBFUP_MASK (0xFU) +#define DAC_C2_DACBFUP_SHIFT (0U) +#define DAC_C2_DACBFUP(x) (((uint8_t)(((uint8_t)(x)) << DAC_C2_DACBFUP_SHIFT)) & DAC_C2_DACBFUP_MASK) +#define DAC_C2_DACBFRP_MASK (0xF0U) +#define DAC_C2_DACBFRP_SHIFT (4U) +#define DAC_C2_DACBFRP(x) (((uint8_t)(((uint8_t)(x)) << DAC_C2_DACBFRP_SHIFT)) & DAC_C2_DACBFRP_MASK) + + +/*! + * @} + */ /* end of group DAC_Register_Masks */ + + +/* DAC - Peripheral instance base addresses */ +/** Peripheral DAC0 base address */ +#define DAC0_BASE (0x400CC000u) +/** Peripheral DAC0 base pointer */ +#define DAC0 ((DAC_Type *)DAC0_BASE) +/** Peripheral DAC1 base address */ +#define DAC1_BASE (0x400CD000u) +/** Peripheral DAC1 base pointer */ +#define DAC1 ((DAC_Type *)DAC1_BASE) +/** Array initializer of DAC peripheral base addresses */ +#define DAC_BASE_ADDRS { DAC0_BASE, DAC1_BASE } +/** Array initializer of DAC peripheral base pointers */ +#define DAC_BASE_PTRS { DAC0, DAC1 } +/** Interrupt vectors for the DAC peripheral type */ +#define DAC_IRQS { DAC0_IRQn, DAC1_IRQn } + +/*! + * @} + */ /* end of group DAC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- DMA Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup DMA_Peripheral_Access_Layer DMA Peripheral Access Layer + * @{ + */ + +/** DMA - Register Layout Typedef */ +typedef struct { + __IO uint32_t CR; /**< Control Register, offset: 0x0 */ + __I uint32_t ES; /**< Error Status Register, offset: 0x4 */ + uint8_t RESERVED_0[4]; + __IO uint32_t ERQ; /**< Enable Request Register, offset: 0xC */ + uint8_t RESERVED_1[4]; + __IO uint32_t EEI; /**< Enable Error Interrupt Register, offset: 0x14 */ + __O uint8_t CEEI; /**< Clear Enable Error Interrupt Register, offset: 0x18 */ + __O uint8_t SEEI; /**< Set Enable Error Interrupt Register, offset: 0x19 */ + __O uint8_t CERQ; /**< Clear Enable Request Register, offset: 0x1A */ + __O uint8_t SERQ; /**< Set Enable Request Register, offset: 0x1B */ + __O uint8_t CDNE; /**< Clear DONE Status Bit Register, offset: 0x1C */ + __O uint8_t SSRT; /**< Set START Bit Register, offset: 0x1D */ + __O uint8_t CERR; /**< Clear Error Register, offset: 0x1E */ + __O uint8_t CINT; /**< Clear Interrupt Request Register, offset: 0x1F */ + uint8_t RESERVED_2[4]; + __IO uint32_t INT; /**< Interrupt Request Register, offset: 0x24 */ + uint8_t RESERVED_3[4]; + __IO uint32_t ERR; /**< Error Register, offset: 0x2C */ + uint8_t RESERVED_4[4]; + __I uint32_t HRS; /**< Hardware Request Status Register, offset: 0x34 */ + uint8_t RESERVED_5[200]; + __IO uint8_t DCHPRI3; /**< Channel n Priority Register, offset: 0x100 */ + __IO uint8_t DCHPRI2; /**< Channel n Priority Register, offset: 0x101 */ + __IO uint8_t DCHPRI1; /**< Channel n Priority Register, offset: 0x102 */ + __IO uint8_t DCHPRI0; /**< Channel n Priority Register, offset: 0x103 */ + __IO uint8_t DCHPRI7; /**< Channel n Priority Register, offset: 0x104 */ + __IO uint8_t DCHPRI6; /**< Channel n Priority Register, offset: 0x105 */ + __IO uint8_t DCHPRI5; /**< Channel n Priority Register, offset: 0x106 */ + __IO uint8_t DCHPRI4; /**< Channel n Priority Register, offset: 0x107 */ + __IO uint8_t DCHPRI11; /**< Channel n Priority Register, offset: 0x108 */ + __IO uint8_t DCHPRI10; /**< Channel n Priority Register, offset: 0x109 */ + __IO uint8_t DCHPRI9; /**< Channel n Priority Register, offset: 0x10A */ + __IO uint8_t DCHPRI8; /**< Channel n Priority Register, offset: 0x10B */ + __IO uint8_t DCHPRI15; /**< Channel n Priority Register, offset: 0x10C */ + __IO uint8_t DCHPRI14; /**< Channel n Priority Register, offset: 0x10D */ + __IO uint8_t DCHPRI13; /**< Channel n Priority Register, offset: 0x10E */ + __IO uint8_t DCHPRI12; /**< Channel n Priority Register, offset: 0x10F */ + uint8_t RESERVED_6[3824]; + struct { /* offset: 0x1000, array step: 0x20 */ + __IO uint32_t SADDR; /**< TCD Source Address, array offset: 0x1000, array step: 0x20 */ + __IO uint16_t SOFF; /**< TCD Signed Source Address Offset, array offset: 0x1004, array step: 0x20 */ + __IO uint16_t ATTR; /**< TCD Transfer Attributes, array offset: 0x1006, array step: 0x20 */ + union { /* offset: 0x1008, array step: 0x20 */ + __IO uint32_t NBYTES_MLNO; /**< TCD Minor Byte Count (Minor Loop Disabled), array offset: 0x1008, array step: 0x20 */ + __IO uint32_t NBYTES_MLOFFNO; /**< TCD Signed Minor Loop Offset (Minor Loop Enabled and Offset Disabled), array offset: 0x1008, array step: 0x20 */ + __IO uint32_t NBYTES_MLOFFYES; /**< TCD Signed Minor Loop Offset (Minor Loop and Offset Enabled), array offset: 0x1008, array step: 0x20 */ + }; + __IO uint32_t SLAST; /**< TCD Last Source Address Adjustment, array offset: 0x100C, array step: 0x20 */ + __IO uint32_t DADDR; /**< TCD Destination Address, array offset: 0x1010, array step: 0x20 */ + __IO uint16_t DOFF; /**< TCD Signed Destination Address Offset, array offset: 0x1014, array step: 0x20 */ + union { /* offset: 0x1016, array step: 0x20 */ + __IO uint16_t CITER_ELINKNO; /**< TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled), array offset: 0x1016, array step: 0x20 */ + __IO uint16_t CITER_ELINKYES; /**< TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled), array offset: 0x1016, array step: 0x20 */ + }; + __IO uint32_t DLAST_SGA; /**< TCD Last Destination Address Adjustment/Scatter Gather Address, array offset: 0x1018, array step: 0x20 */ + __IO uint16_t CSR; /**< TCD Control and Status, array offset: 0x101C, array step: 0x20 */ + union { /* offset: 0x101E, array step: 0x20 */ + __IO uint16_t BITER_ELINKNO; /**< TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled), array offset: 0x101E, array step: 0x20 */ + __IO uint16_t BITER_ELINKYES; /**< TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled), array offset: 0x101E, array step: 0x20 */ + }; + } TCD[16]; +} DMA_Type; + +/* ---------------------------------------------------------------------------- + -- DMA Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup DMA_Register_Masks DMA Register Masks + * @{ + */ + +/*! @name CR - Control Register */ +#define DMA_CR_EDBG_MASK (0x2U) +#define DMA_CR_EDBG_SHIFT (1U) +#define DMA_CR_EDBG(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_EDBG_SHIFT)) & DMA_CR_EDBG_MASK) +#define DMA_CR_ERCA_MASK (0x4U) +#define DMA_CR_ERCA_SHIFT (2U) +#define DMA_CR_ERCA(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_ERCA_SHIFT)) & DMA_CR_ERCA_MASK) +#define DMA_CR_HOE_MASK (0x10U) +#define DMA_CR_HOE_SHIFT (4U) +#define DMA_CR_HOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_HOE_SHIFT)) & DMA_CR_HOE_MASK) +#define DMA_CR_HALT_MASK (0x20U) +#define DMA_CR_HALT_SHIFT (5U) +#define DMA_CR_HALT(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_HALT_SHIFT)) & DMA_CR_HALT_MASK) +#define DMA_CR_CLM_MASK (0x40U) +#define DMA_CR_CLM_SHIFT (6U) +#define DMA_CR_CLM(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_CLM_SHIFT)) & DMA_CR_CLM_MASK) +#define DMA_CR_EMLM_MASK (0x80U) +#define DMA_CR_EMLM_SHIFT (7U) +#define DMA_CR_EMLM(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_EMLM_SHIFT)) & DMA_CR_EMLM_MASK) +#define DMA_CR_ECX_MASK (0x10000U) +#define DMA_CR_ECX_SHIFT (16U) +#define DMA_CR_ECX(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_ECX_SHIFT)) & DMA_CR_ECX_MASK) +#define DMA_CR_CX_MASK (0x20000U) +#define DMA_CR_CX_SHIFT (17U) +#define DMA_CR_CX(x) (((uint32_t)(((uint32_t)(x)) << DMA_CR_CX_SHIFT)) & DMA_CR_CX_MASK) + +/*! @name ES - Error Status Register */ +#define DMA_ES_DBE_MASK (0x1U) +#define DMA_ES_DBE_SHIFT (0U) +#define DMA_ES_DBE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_DBE_SHIFT)) & DMA_ES_DBE_MASK) +#define DMA_ES_SBE_MASK (0x2U) +#define DMA_ES_SBE_SHIFT (1U) +#define DMA_ES_SBE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_SBE_SHIFT)) & DMA_ES_SBE_MASK) +#define DMA_ES_SGE_MASK (0x4U) +#define DMA_ES_SGE_SHIFT (2U) +#define DMA_ES_SGE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_SGE_SHIFT)) & DMA_ES_SGE_MASK) +#define DMA_ES_NCE_MASK (0x8U) +#define DMA_ES_NCE_SHIFT (3U) +#define DMA_ES_NCE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_NCE_SHIFT)) & DMA_ES_NCE_MASK) +#define DMA_ES_DOE_MASK (0x10U) +#define DMA_ES_DOE_SHIFT (4U) +#define DMA_ES_DOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_DOE_SHIFT)) & DMA_ES_DOE_MASK) +#define DMA_ES_DAE_MASK (0x20U) +#define DMA_ES_DAE_SHIFT (5U) +#define DMA_ES_DAE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_DAE_SHIFT)) & DMA_ES_DAE_MASK) +#define DMA_ES_SOE_MASK (0x40U) +#define DMA_ES_SOE_SHIFT (6U) +#define DMA_ES_SOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_SOE_SHIFT)) & DMA_ES_SOE_MASK) +#define DMA_ES_SAE_MASK (0x80U) +#define DMA_ES_SAE_SHIFT (7U) +#define DMA_ES_SAE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_SAE_SHIFT)) & DMA_ES_SAE_MASK) +#define DMA_ES_ERRCHN_MASK (0xF00U) +#define DMA_ES_ERRCHN_SHIFT (8U) +#define DMA_ES_ERRCHN(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_ERRCHN_SHIFT)) & DMA_ES_ERRCHN_MASK) +#define DMA_ES_CPE_MASK (0x4000U) +#define DMA_ES_CPE_SHIFT (14U) +#define DMA_ES_CPE(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_CPE_SHIFT)) & DMA_ES_CPE_MASK) +#define DMA_ES_ECX_MASK (0x10000U) +#define DMA_ES_ECX_SHIFT (16U) +#define DMA_ES_ECX(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_ECX_SHIFT)) & DMA_ES_ECX_MASK) +#define DMA_ES_VLD_MASK (0x80000000U) +#define DMA_ES_VLD_SHIFT (31U) +#define DMA_ES_VLD(x) (((uint32_t)(((uint32_t)(x)) << DMA_ES_VLD_SHIFT)) & DMA_ES_VLD_MASK) + +/*! @name ERQ - Enable Request Register */ +#define DMA_ERQ_ERQ0_MASK (0x1U) +#define DMA_ERQ_ERQ0_SHIFT (0U) +#define DMA_ERQ_ERQ0(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ0_SHIFT)) & DMA_ERQ_ERQ0_MASK) +#define DMA_ERQ_ERQ1_MASK (0x2U) +#define DMA_ERQ_ERQ1_SHIFT (1U) +#define DMA_ERQ_ERQ1(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ1_SHIFT)) & DMA_ERQ_ERQ1_MASK) +#define DMA_ERQ_ERQ2_MASK (0x4U) +#define DMA_ERQ_ERQ2_SHIFT (2U) +#define DMA_ERQ_ERQ2(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ2_SHIFT)) & DMA_ERQ_ERQ2_MASK) +#define DMA_ERQ_ERQ3_MASK (0x8U) +#define DMA_ERQ_ERQ3_SHIFT (3U) +#define DMA_ERQ_ERQ3(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ3_SHIFT)) & DMA_ERQ_ERQ3_MASK) +#define DMA_ERQ_ERQ4_MASK (0x10U) +#define DMA_ERQ_ERQ4_SHIFT (4U) +#define DMA_ERQ_ERQ4(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ4_SHIFT)) & DMA_ERQ_ERQ4_MASK) +#define DMA_ERQ_ERQ5_MASK (0x20U) +#define DMA_ERQ_ERQ5_SHIFT (5U) +#define DMA_ERQ_ERQ5(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ5_SHIFT)) & DMA_ERQ_ERQ5_MASK) +#define DMA_ERQ_ERQ6_MASK (0x40U) +#define DMA_ERQ_ERQ6_SHIFT (6U) +#define DMA_ERQ_ERQ6(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ6_SHIFT)) & DMA_ERQ_ERQ6_MASK) +#define DMA_ERQ_ERQ7_MASK (0x80U) +#define DMA_ERQ_ERQ7_SHIFT (7U) +#define DMA_ERQ_ERQ7(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ7_SHIFT)) & DMA_ERQ_ERQ7_MASK) +#define DMA_ERQ_ERQ8_MASK (0x100U) +#define DMA_ERQ_ERQ8_SHIFT (8U) +#define DMA_ERQ_ERQ8(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ8_SHIFT)) & DMA_ERQ_ERQ8_MASK) +#define DMA_ERQ_ERQ9_MASK (0x200U) +#define DMA_ERQ_ERQ9_SHIFT (9U) +#define DMA_ERQ_ERQ9(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ9_SHIFT)) & DMA_ERQ_ERQ9_MASK) +#define DMA_ERQ_ERQ10_MASK (0x400U) +#define DMA_ERQ_ERQ10_SHIFT (10U) +#define DMA_ERQ_ERQ10(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ10_SHIFT)) & DMA_ERQ_ERQ10_MASK) +#define DMA_ERQ_ERQ11_MASK (0x800U) +#define DMA_ERQ_ERQ11_SHIFT (11U) +#define DMA_ERQ_ERQ11(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ11_SHIFT)) & DMA_ERQ_ERQ11_MASK) +#define DMA_ERQ_ERQ12_MASK (0x1000U) +#define DMA_ERQ_ERQ12_SHIFT (12U) +#define DMA_ERQ_ERQ12(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ12_SHIFT)) & DMA_ERQ_ERQ12_MASK) +#define DMA_ERQ_ERQ13_MASK (0x2000U) +#define DMA_ERQ_ERQ13_SHIFT (13U) +#define DMA_ERQ_ERQ13(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ13_SHIFT)) & DMA_ERQ_ERQ13_MASK) +#define DMA_ERQ_ERQ14_MASK (0x4000U) +#define DMA_ERQ_ERQ14_SHIFT (14U) +#define DMA_ERQ_ERQ14(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ14_SHIFT)) & DMA_ERQ_ERQ14_MASK) +#define DMA_ERQ_ERQ15_MASK (0x8000U) +#define DMA_ERQ_ERQ15_SHIFT (15U) +#define DMA_ERQ_ERQ15(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ15_SHIFT)) & DMA_ERQ_ERQ15_MASK) + +/*! @name EEI - Enable Error Interrupt Register */ +#define DMA_EEI_EEI0_MASK (0x1U) +#define DMA_EEI_EEI0_SHIFT (0U) +#define DMA_EEI_EEI0(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI0_SHIFT)) & DMA_EEI_EEI0_MASK) +#define DMA_EEI_EEI1_MASK (0x2U) +#define DMA_EEI_EEI1_SHIFT (1U) +#define DMA_EEI_EEI1(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI1_SHIFT)) & DMA_EEI_EEI1_MASK) +#define DMA_EEI_EEI2_MASK (0x4U) +#define DMA_EEI_EEI2_SHIFT (2U) +#define DMA_EEI_EEI2(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI2_SHIFT)) & DMA_EEI_EEI2_MASK) +#define DMA_EEI_EEI3_MASK (0x8U) +#define DMA_EEI_EEI3_SHIFT (3U) +#define DMA_EEI_EEI3(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI3_SHIFT)) & DMA_EEI_EEI3_MASK) +#define DMA_EEI_EEI4_MASK (0x10U) +#define DMA_EEI_EEI4_SHIFT (4U) +#define DMA_EEI_EEI4(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI4_SHIFT)) & DMA_EEI_EEI4_MASK) +#define DMA_EEI_EEI5_MASK (0x20U) +#define DMA_EEI_EEI5_SHIFT (5U) +#define DMA_EEI_EEI5(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI5_SHIFT)) & DMA_EEI_EEI5_MASK) +#define DMA_EEI_EEI6_MASK (0x40U) +#define DMA_EEI_EEI6_SHIFT (6U) +#define DMA_EEI_EEI6(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI6_SHIFT)) & DMA_EEI_EEI6_MASK) +#define DMA_EEI_EEI7_MASK (0x80U) +#define DMA_EEI_EEI7_SHIFT (7U) +#define DMA_EEI_EEI7(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI7_SHIFT)) & DMA_EEI_EEI7_MASK) +#define DMA_EEI_EEI8_MASK (0x100U) +#define DMA_EEI_EEI8_SHIFT (8U) +#define DMA_EEI_EEI8(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI8_SHIFT)) & DMA_EEI_EEI8_MASK) +#define DMA_EEI_EEI9_MASK (0x200U) +#define DMA_EEI_EEI9_SHIFT (9U) +#define DMA_EEI_EEI9(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI9_SHIFT)) & DMA_EEI_EEI9_MASK) +#define DMA_EEI_EEI10_MASK (0x400U) +#define DMA_EEI_EEI10_SHIFT (10U) +#define DMA_EEI_EEI10(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI10_SHIFT)) & DMA_EEI_EEI10_MASK) +#define DMA_EEI_EEI11_MASK (0x800U) +#define DMA_EEI_EEI11_SHIFT (11U) +#define DMA_EEI_EEI11(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI11_SHIFT)) & DMA_EEI_EEI11_MASK) +#define DMA_EEI_EEI12_MASK (0x1000U) +#define DMA_EEI_EEI12_SHIFT (12U) +#define DMA_EEI_EEI12(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI12_SHIFT)) & DMA_EEI_EEI12_MASK) +#define DMA_EEI_EEI13_MASK (0x2000U) +#define DMA_EEI_EEI13_SHIFT (13U) +#define DMA_EEI_EEI13(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI13_SHIFT)) & DMA_EEI_EEI13_MASK) +#define DMA_EEI_EEI14_MASK (0x4000U) +#define DMA_EEI_EEI14_SHIFT (14U) +#define DMA_EEI_EEI14(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI14_SHIFT)) & DMA_EEI_EEI14_MASK) +#define DMA_EEI_EEI15_MASK (0x8000U) +#define DMA_EEI_EEI15_SHIFT (15U) +#define DMA_EEI_EEI15(x) (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI15_SHIFT)) & DMA_EEI_EEI15_MASK) + +/*! @name CEEI - Clear Enable Error Interrupt Register */ +#define DMA_CEEI_CEEI_MASK (0xFU) +#define DMA_CEEI_CEEI_SHIFT (0U) +#define DMA_CEEI_CEEI(x) (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_CEEI_SHIFT)) & DMA_CEEI_CEEI_MASK) +#define DMA_CEEI_CAEE_MASK (0x40U) +#define DMA_CEEI_CAEE_SHIFT (6U) +#define DMA_CEEI_CAEE(x) (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_CAEE_SHIFT)) & DMA_CEEI_CAEE_MASK) +#define DMA_CEEI_NOP_MASK (0x80U) +#define DMA_CEEI_NOP_SHIFT (7U) +#define DMA_CEEI_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_NOP_SHIFT)) & DMA_CEEI_NOP_MASK) + +/*! @name SEEI - Set Enable Error Interrupt Register */ +#define DMA_SEEI_SEEI_MASK (0xFU) +#define DMA_SEEI_SEEI_SHIFT (0U) +#define DMA_SEEI_SEEI(x) (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_SEEI_SHIFT)) & DMA_SEEI_SEEI_MASK) +#define DMA_SEEI_SAEE_MASK (0x40U) +#define DMA_SEEI_SAEE_SHIFT (6U) +#define DMA_SEEI_SAEE(x) (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_SAEE_SHIFT)) & DMA_SEEI_SAEE_MASK) +#define DMA_SEEI_NOP_MASK (0x80U) +#define DMA_SEEI_NOP_SHIFT (7U) +#define DMA_SEEI_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_NOP_SHIFT)) & DMA_SEEI_NOP_MASK) + +/*! @name CERQ - Clear Enable Request Register */ +#define DMA_CERQ_CERQ_MASK (0xFU) +#define DMA_CERQ_CERQ_SHIFT (0U) +#define DMA_CERQ_CERQ(x) (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_CERQ_SHIFT)) & DMA_CERQ_CERQ_MASK) +#define DMA_CERQ_CAER_MASK (0x40U) +#define DMA_CERQ_CAER_SHIFT (6U) +#define DMA_CERQ_CAER(x) (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_CAER_SHIFT)) & DMA_CERQ_CAER_MASK) +#define DMA_CERQ_NOP_MASK (0x80U) +#define DMA_CERQ_NOP_SHIFT (7U) +#define DMA_CERQ_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_NOP_SHIFT)) & DMA_CERQ_NOP_MASK) + +/*! @name SERQ - Set Enable Request Register */ +#define DMA_SERQ_SERQ_MASK (0xFU) +#define DMA_SERQ_SERQ_SHIFT (0U) +#define DMA_SERQ_SERQ(x) (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_SERQ_SHIFT)) & DMA_SERQ_SERQ_MASK) +#define DMA_SERQ_SAER_MASK (0x40U) +#define DMA_SERQ_SAER_SHIFT (6U) +#define DMA_SERQ_SAER(x) (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_SAER_SHIFT)) & DMA_SERQ_SAER_MASK) +#define DMA_SERQ_NOP_MASK (0x80U) +#define DMA_SERQ_NOP_SHIFT (7U) +#define DMA_SERQ_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_NOP_SHIFT)) & DMA_SERQ_NOP_MASK) + +/*! @name CDNE - Clear DONE Status Bit Register */ +#define DMA_CDNE_CDNE_MASK (0xFU) +#define DMA_CDNE_CDNE_SHIFT (0U) +#define DMA_CDNE_CDNE(x) (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_CDNE_SHIFT)) & DMA_CDNE_CDNE_MASK) +#define DMA_CDNE_CADN_MASK (0x40U) +#define DMA_CDNE_CADN_SHIFT (6U) +#define DMA_CDNE_CADN(x) (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_CADN_SHIFT)) & DMA_CDNE_CADN_MASK) +#define DMA_CDNE_NOP_MASK (0x80U) +#define DMA_CDNE_NOP_SHIFT (7U) +#define DMA_CDNE_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_NOP_SHIFT)) & DMA_CDNE_NOP_MASK) + +/*! @name SSRT - Set START Bit Register */ +#define DMA_SSRT_SSRT_MASK (0xFU) +#define DMA_SSRT_SSRT_SHIFT (0U) +#define DMA_SSRT_SSRT(x) (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_SSRT_SHIFT)) & DMA_SSRT_SSRT_MASK) +#define DMA_SSRT_SAST_MASK (0x40U) +#define DMA_SSRT_SAST_SHIFT (6U) +#define DMA_SSRT_SAST(x) (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_SAST_SHIFT)) & DMA_SSRT_SAST_MASK) +#define DMA_SSRT_NOP_MASK (0x80U) +#define DMA_SSRT_NOP_SHIFT (7U) +#define DMA_SSRT_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_NOP_SHIFT)) & DMA_SSRT_NOP_MASK) + +/*! @name CERR - Clear Error Register */ +#define DMA_CERR_CERR_MASK (0xFU) +#define DMA_CERR_CERR_SHIFT (0U) +#define DMA_CERR_CERR(x) (((uint8_t)(((uint8_t)(x)) << DMA_CERR_CERR_SHIFT)) & DMA_CERR_CERR_MASK) +#define DMA_CERR_CAEI_MASK (0x40U) +#define DMA_CERR_CAEI_SHIFT (6U) +#define DMA_CERR_CAEI(x) (((uint8_t)(((uint8_t)(x)) << DMA_CERR_CAEI_SHIFT)) & DMA_CERR_CAEI_MASK) +#define DMA_CERR_NOP_MASK (0x80U) +#define DMA_CERR_NOP_SHIFT (7U) +#define DMA_CERR_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_CERR_NOP_SHIFT)) & DMA_CERR_NOP_MASK) + +/*! @name CINT - Clear Interrupt Request Register */ +#define DMA_CINT_CINT_MASK (0xFU) +#define DMA_CINT_CINT_SHIFT (0U) +#define DMA_CINT_CINT(x) (((uint8_t)(((uint8_t)(x)) << DMA_CINT_CINT_SHIFT)) & DMA_CINT_CINT_MASK) +#define DMA_CINT_CAIR_MASK (0x40U) +#define DMA_CINT_CAIR_SHIFT (6U) +#define DMA_CINT_CAIR(x) (((uint8_t)(((uint8_t)(x)) << DMA_CINT_CAIR_SHIFT)) & DMA_CINT_CAIR_MASK) +#define DMA_CINT_NOP_MASK (0x80U) +#define DMA_CINT_NOP_SHIFT (7U) +#define DMA_CINT_NOP(x) (((uint8_t)(((uint8_t)(x)) << DMA_CINT_NOP_SHIFT)) & DMA_CINT_NOP_MASK) + +/*! @name INT - Interrupt Request Register */ +#define DMA_INT_INT0_MASK (0x1U) +#define DMA_INT_INT0_SHIFT (0U) +#define DMA_INT_INT0(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT0_SHIFT)) & DMA_INT_INT0_MASK) +#define DMA_INT_INT1_MASK (0x2U) +#define DMA_INT_INT1_SHIFT (1U) +#define DMA_INT_INT1(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT1_SHIFT)) & DMA_INT_INT1_MASK) +#define DMA_INT_INT2_MASK (0x4U) +#define DMA_INT_INT2_SHIFT (2U) +#define DMA_INT_INT2(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT2_SHIFT)) & DMA_INT_INT2_MASK) +#define DMA_INT_INT3_MASK (0x8U) +#define DMA_INT_INT3_SHIFT (3U) +#define DMA_INT_INT3(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT3_SHIFT)) & DMA_INT_INT3_MASK) +#define DMA_INT_INT4_MASK (0x10U) +#define DMA_INT_INT4_SHIFT (4U) +#define DMA_INT_INT4(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT4_SHIFT)) & DMA_INT_INT4_MASK) +#define DMA_INT_INT5_MASK (0x20U) +#define DMA_INT_INT5_SHIFT (5U) +#define DMA_INT_INT5(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT5_SHIFT)) & DMA_INT_INT5_MASK) +#define DMA_INT_INT6_MASK (0x40U) +#define DMA_INT_INT6_SHIFT (6U) +#define DMA_INT_INT6(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT6_SHIFT)) & DMA_INT_INT6_MASK) +#define DMA_INT_INT7_MASK (0x80U) +#define DMA_INT_INT7_SHIFT (7U) +#define DMA_INT_INT7(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT7_SHIFT)) & DMA_INT_INT7_MASK) +#define DMA_INT_INT8_MASK (0x100U) +#define DMA_INT_INT8_SHIFT (8U) +#define DMA_INT_INT8(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT8_SHIFT)) & DMA_INT_INT8_MASK) +#define DMA_INT_INT9_MASK (0x200U) +#define DMA_INT_INT9_SHIFT (9U) +#define DMA_INT_INT9(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT9_SHIFT)) & DMA_INT_INT9_MASK) +#define DMA_INT_INT10_MASK (0x400U) +#define DMA_INT_INT10_SHIFT (10U) +#define DMA_INT_INT10(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT10_SHIFT)) & DMA_INT_INT10_MASK) +#define DMA_INT_INT11_MASK (0x800U) +#define DMA_INT_INT11_SHIFT (11U) +#define DMA_INT_INT11(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT11_SHIFT)) & DMA_INT_INT11_MASK) +#define DMA_INT_INT12_MASK (0x1000U) +#define DMA_INT_INT12_SHIFT (12U) +#define DMA_INT_INT12(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT12_SHIFT)) & DMA_INT_INT12_MASK) +#define DMA_INT_INT13_MASK (0x2000U) +#define DMA_INT_INT13_SHIFT (13U) +#define DMA_INT_INT13(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT13_SHIFT)) & DMA_INT_INT13_MASK) +#define DMA_INT_INT14_MASK (0x4000U) +#define DMA_INT_INT14_SHIFT (14U) +#define DMA_INT_INT14(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT14_SHIFT)) & DMA_INT_INT14_MASK) +#define DMA_INT_INT15_MASK (0x8000U) +#define DMA_INT_INT15_SHIFT (15U) +#define DMA_INT_INT15(x) (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT15_SHIFT)) & DMA_INT_INT15_MASK) + +/*! @name ERR - Error Register */ +#define DMA_ERR_ERR0_MASK (0x1U) +#define DMA_ERR_ERR0_SHIFT (0U) +#define DMA_ERR_ERR0(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR0_SHIFT)) & DMA_ERR_ERR0_MASK) +#define DMA_ERR_ERR1_MASK (0x2U) +#define DMA_ERR_ERR1_SHIFT (1U) +#define DMA_ERR_ERR1(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR1_SHIFT)) & DMA_ERR_ERR1_MASK) +#define DMA_ERR_ERR2_MASK (0x4U) +#define DMA_ERR_ERR2_SHIFT (2U) +#define DMA_ERR_ERR2(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR2_SHIFT)) & DMA_ERR_ERR2_MASK) +#define DMA_ERR_ERR3_MASK (0x8U) +#define DMA_ERR_ERR3_SHIFT (3U) +#define DMA_ERR_ERR3(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR3_SHIFT)) & DMA_ERR_ERR3_MASK) +#define DMA_ERR_ERR4_MASK (0x10U) +#define DMA_ERR_ERR4_SHIFT (4U) +#define DMA_ERR_ERR4(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR4_SHIFT)) & DMA_ERR_ERR4_MASK) +#define DMA_ERR_ERR5_MASK (0x20U) +#define DMA_ERR_ERR5_SHIFT (5U) +#define DMA_ERR_ERR5(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR5_SHIFT)) & DMA_ERR_ERR5_MASK) +#define DMA_ERR_ERR6_MASK (0x40U) +#define DMA_ERR_ERR6_SHIFT (6U) +#define DMA_ERR_ERR6(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR6_SHIFT)) & DMA_ERR_ERR6_MASK) +#define DMA_ERR_ERR7_MASK (0x80U) +#define DMA_ERR_ERR7_SHIFT (7U) +#define DMA_ERR_ERR7(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR7_SHIFT)) & DMA_ERR_ERR7_MASK) +#define DMA_ERR_ERR8_MASK (0x100U) +#define DMA_ERR_ERR8_SHIFT (8U) +#define DMA_ERR_ERR8(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR8_SHIFT)) & DMA_ERR_ERR8_MASK) +#define DMA_ERR_ERR9_MASK (0x200U) +#define DMA_ERR_ERR9_SHIFT (9U) +#define DMA_ERR_ERR9(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR9_SHIFT)) & DMA_ERR_ERR9_MASK) +#define DMA_ERR_ERR10_MASK (0x400U) +#define DMA_ERR_ERR10_SHIFT (10U) +#define DMA_ERR_ERR10(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR10_SHIFT)) & DMA_ERR_ERR10_MASK) +#define DMA_ERR_ERR11_MASK (0x800U) +#define DMA_ERR_ERR11_SHIFT (11U) +#define DMA_ERR_ERR11(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR11_SHIFT)) & DMA_ERR_ERR11_MASK) +#define DMA_ERR_ERR12_MASK (0x1000U) +#define DMA_ERR_ERR12_SHIFT (12U) +#define DMA_ERR_ERR12(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR12_SHIFT)) & DMA_ERR_ERR12_MASK) +#define DMA_ERR_ERR13_MASK (0x2000U) +#define DMA_ERR_ERR13_SHIFT (13U) +#define DMA_ERR_ERR13(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR13_SHIFT)) & DMA_ERR_ERR13_MASK) +#define DMA_ERR_ERR14_MASK (0x4000U) +#define DMA_ERR_ERR14_SHIFT (14U) +#define DMA_ERR_ERR14(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR14_SHIFT)) & DMA_ERR_ERR14_MASK) +#define DMA_ERR_ERR15_MASK (0x8000U) +#define DMA_ERR_ERR15_SHIFT (15U) +#define DMA_ERR_ERR15(x) (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR15_SHIFT)) & DMA_ERR_ERR15_MASK) + +/*! @name HRS - Hardware Request Status Register */ +#define DMA_HRS_HRS0_MASK (0x1U) +#define DMA_HRS_HRS0_SHIFT (0U) +#define DMA_HRS_HRS0(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS0_SHIFT)) & DMA_HRS_HRS0_MASK) +#define DMA_HRS_HRS1_MASK (0x2U) +#define DMA_HRS_HRS1_SHIFT (1U) +#define DMA_HRS_HRS1(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS1_SHIFT)) & DMA_HRS_HRS1_MASK) +#define DMA_HRS_HRS2_MASK (0x4U) +#define DMA_HRS_HRS2_SHIFT (2U) +#define DMA_HRS_HRS2(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS2_SHIFT)) & DMA_HRS_HRS2_MASK) +#define DMA_HRS_HRS3_MASK (0x8U) +#define DMA_HRS_HRS3_SHIFT (3U) +#define DMA_HRS_HRS3(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS3_SHIFT)) & DMA_HRS_HRS3_MASK) +#define DMA_HRS_HRS4_MASK (0x10U) +#define DMA_HRS_HRS4_SHIFT (4U) +#define DMA_HRS_HRS4(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS4_SHIFT)) & DMA_HRS_HRS4_MASK) +#define DMA_HRS_HRS5_MASK (0x20U) +#define DMA_HRS_HRS5_SHIFT (5U) +#define DMA_HRS_HRS5(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS5_SHIFT)) & DMA_HRS_HRS5_MASK) +#define DMA_HRS_HRS6_MASK (0x40U) +#define DMA_HRS_HRS6_SHIFT (6U) +#define DMA_HRS_HRS6(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS6_SHIFT)) & DMA_HRS_HRS6_MASK) +#define DMA_HRS_HRS7_MASK (0x80U) +#define DMA_HRS_HRS7_SHIFT (7U) +#define DMA_HRS_HRS7(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS7_SHIFT)) & DMA_HRS_HRS7_MASK) +#define DMA_HRS_HRS8_MASK (0x100U) +#define DMA_HRS_HRS8_SHIFT (8U) +#define DMA_HRS_HRS8(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS8_SHIFT)) & DMA_HRS_HRS8_MASK) +#define DMA_HRS_HRS9_MASK (0x200U) +#define DMA_HRS_HRS9_SHIFT (9U) +#define DMA_HRS_HRS9(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS9_SHIFT)) & DMA_HRS_HRS9_MASK) +#define DMA_HRS_HRS10_MASK (0x400U) +#define DMA_HRS_HRS10_SHIFT (10U) +#define DMA_HRS_HRS10(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS10_SHIFT)) & DMA_HRS_HRS10_MASK) +#define DMA_HRS_HRS11_MASK (0x800U) +#define DMA_HRS_HRS11_SHIFT (11U) +#define DMA_HRS_HRS11(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS11_SHIFT)) & DMA_HRS_HRS11_MASK) +#define DMA_HRS_HRS12_MASK (0x1000U) +#define DMA_HRS_HRS12_SHIFT (12U) +#define DMA_HRS_HRS12(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS12_SHIFT)) & DMA_HRS_HRS12_MASK) +#define DMA_HRS_HRS13_MASK (0x2000U) +#define DMA_HRS_HRS13_SHIFT (13U) +#define DMA_HRS_HRS13(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS13_SHIFT)) & DMA_HRS_HRS13_MASK) +#define DMA_HRS_HRS14_MASK (0x4000U) +#define DMA_HRS_HRS14_SHIFT (14U) +#define DMA_HRS_HRS14(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS14_SHIFT)) & DMA_HRS_HRS14_MASK) +#define DMA_HRS_HRS15_MASK (0x8000U) +#define DMA_HRS_HRS15_SHIFT (15U) +#define DMA_HRS_HRS15(x) (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS15_SHIFT)) & DMA_HRS_HRS15_MASK) + +/*! @name DCHPRI3 - Channel n Priority Register */ +#define DMA_DCHPRI3_CHPRI_MASK (0xFU) +#define DMA_DCHPRI3_CHPRI_SHIFT (0U) +#define DMA_DCHPRI3_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_CHPRI_SHIFT)) & DMA_DCHPRI3_CHPRI_MASK) +#define DMA_DCHPRI3_DPA_MASK (0x40U) +#define DMA_DCHPRI3_DPA_SHIFT (6U) +#define DMA_DCHPRI3_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_DPA_SHIFT)) & DMA_DCHPRI3_DPA_MASK) +#define DMA_DCHPRI3_ECP_MASK (0x80U) +#define DMA_DCHPRI3_ECP_SHIFT (7U) +#define DMA_DCHPRI3_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_ECP_SHIFT)) & DMA_DCHPRI3_ECP_MASK) + +/*! @name DCHPRI2 - Channel n Priority Register */ +#define DMA_DCHPRI2_CHPRI_MASK (0xFU) +#define DMA_DCHPRI2_CHPRI_SHIFT (0U) +#define DMA_DCHPRI2_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_CHPRI_SHIFT)) & DMA_DCHPRI2_CHPRI_MASK) +#define DMA_DCHPRI2_DPA_MASK (0x40U) +#define DMA_DCHPRI2_DPA_SHIFT (6U) +#define DMA_DCHPRI2_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_DPA_SHIFT)) & DMA_DCHPRI2_DPA_MASK) +#define DMA_DCHPRI2_ECP_MASK (0x80U) +#define DMA_DCHPRI2_ECP_SHIFT (7U) +#define DMA_DCHPRI2_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_ECP_SHIFT)) & DMA_DCHPRI2_ECP_MASK) + +/*! @name DCHPRI1 - Channel n Priority Register */ +#define DMA_DCHPRI1_CHPRI_MASK (0xFU) +#define DMA_DCHPRI1_CHPRI_SHIFT (0U) +#define DMA_DCHPRI1_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_CHPRI_SHIFT)) & DMA_DCHPRI1_CHPRI_MASK) +#define DMA_DCHPRI1_DPA_MASK (0x40U) +#define DMA_DCHPRI1_DPA_SHIFT (6U) +#define DMA_DCHPRI1_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_DPA_SHIFT)) & DMA_DCHPRI1_DPA_MASK) +#define DMA_DCHPRI1_ECP_MASK (0x80U) +#define DMA_DCHPRI1_ECP_SHIFT (7U) +#define DMA_DCHPRI1_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_ECP_SHIFT)) & DMA_DCHPRI1_ECP_MASK) + +/*! @name DCHPRI0 - Channel n Priority Register */ +#define DMA_DCHPRI0_CHPRI_MASK (0xFU) +#define DMA_DCHPRI0_CHPRI_SHIFT (0U) +#define DMA_DCHPRI0_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_CHPRI_SHIFT)) & DMA_DCHPRI0_CHPRI_MASK) +#define DMA_DCHPRI0_DPA_MASK (0x40U) +#define DMA_DCHPRI0_DPA_SHIFT (6U) +#define DMA_DCHPRI0_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_DPA_SHIFT)) & DMA_DCHPRI0_DPA_MASK) +#define DMA_DCHPRI0_ECP_MASK (0x80U) +#define DMA_DCHPRI0_ECP_SHIFT (7U) +#define DMA_DCHPRI0_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_ECP_SHIFT)) & DMA_DCHPRI0_ECP_MASK) + +/*! @name DCHPRI7 - Channel n Priority Register */ +#define DMA_DCHPRI7_CHPRI_MASK (0xFU) +#define DMA_DCHPRI7_CHPRI_SHIFT (0U) +#define DMA_DCHPRI7_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_CHPRI_SHIFT)) & DMA_DCHPRI7_CHPRI_MASK) +#define DMA_DCHPRI7_DPA_MASK (0x40U) +#define DMA_DCHPRI7_DPA_SHIFT (6U) +#define DMA_DCHPRI7_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_DPA_SHIFT)) & DMA_DCHPRI7_DPA_MASK) +#define DMA_DCHPRI7_ECP_MASK (0x80U) +#define DMA_DCHPRI7_ECP_SHIFT (7U) +#define DMA_DCHPRI7_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_ECP_SHIFT)) & DMA_DCHPRI7_ECP_MASK) + +/*! @name DCHPRI6 - Channel n Priority Register */ +#define DMA_DCHPRI6_CHPRI_MASK (0xFU) +#define DMA_DCHPRI6_CHPRI_SHIFT (0U) +#define DMA_DCHPRI6_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_CHPRI_SHIFT)) & DMA_DCHPRI6_CHPRI_MASK) +#define DMA_DCHPRI6_DPA_MASK (0x40U) +#define DMA_DCHPRI6_DPA_SHIFT (6U) +#define DMA_DCHPRI6_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_DPA_SHIFT)) & DMA_DCHPRI6_DPA_MASK) +#define DMA_DCHPRI6_ECP_MASK (0x80U) +#define DMA_DCHPRI6_ECP_SHIFT (7U) +#define DMA_DCHPRI6_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_ECP_SHIFT)) & DMA_DCHPRI6_ECP_MASK) + +/*! @name DCHPRI5 - Channel n Priority Register */ +#define DMA_DCHPRI5_CHPRI_MASK (0xFU) +#define DMA_DCHPRI5_CHPRI_SHIFT (0U) +#define DMA_DCHPRI5_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_CHPRI_SHIFT)) & DMA_DCHPRI5_CHPRI_MASK) +#define DMA_DCHPRI5_DPA_MASK (0x40U) +#define DMA_DCHPRI5_DPA_SHIFT (6U) +#define DMA_DCHPRI5_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_DPA_SHIFT)) & DMA_DCHPRI5_DPA_MASK) +#define DMA_DCHPRI5_ECP_MASK (0x80U) +#define DMA_DCHPRI5_ECP_SHIFT (7U) +#define DMA_DCHPRI5_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_ECP_SHIFT)) & DMA_DCHPRI5_ECP_MASK) + +/*! @name DCHPRI4 - Channel n Priority Register */ +#define DMA_DCHPRI4_CHPRI_MASK (0xFU) +#define DMA_DCHPRI4_CHPRI_SHIFT (0U) +#define DMA_DCHPRI4_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_CHPRI_SHIFT)) & DMA_DCHPRI4_CHPRI_MASK) +#define DMA_DCHPRI4_DPA_MASK (0x40U) +#define DMA_DCHPRI4_DPA_SHIFT (6U) +#define DMA_DCHPRI4_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_DPA_SHIFT)) & DMA_DCHPRI4_DPA_MASK) +#define DMA_DCHPRI4_ECP_MASK (0x80U) +#define DMA_DCHPRI4_ECP_SHIFT (7U) +#define DMA_DCHPRI4_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_ECP_SHIFT)) & DMA_DCHPRI4_ECP_MASK) + +/*! @name DCHPRI11 - Channel n Priority Register */ +#define DMA_DCHPRI11_CHPRI_MASK (0xFU) +#define DMA_DCHPRI11_CHPRI_SHIFT (0U) +#define DMA_DCHPRI11_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI11_CHPRI_SHIFT)) & DMA_DCHPRI11_CHPRI_MASK) +#define DMA_DCHPRI11_DPA_MASK (0x40U) +#define DMA_DCHPRI11_DPA_SHIFT (6U) +#define DMA_DCHPRI11_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI11_DPA_SHIFT)) & DMA_DCHPRI11_DPA_MASK) +#define DMA_DCHPRI11_ECP_MASK (0x80U) +#define DMA_DCHPRI11_ECP_SHIFT (7U) +#define DMA_DCHPRI11_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI11_ECP_SHIFT)) & DMA_DCHPRI11_ECP_MASK) + +/*! @name DCHPRI10 - Channel n Priority Register */ +#define DMA_DCHPRI10_CHPRI_MASK (0xFU) +#define DMA_DCHPRI10_CHPRI_SHIFT (0U) +#define DMA_DCHPRI10_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI10_CHPRI_SHIFT)) & DMA_DCHPRI10_CHPRI_MASK) +#define DMA_DCHPRI10_DPA_MASK (0x40U) +#define DMA_DCHPRI10_DPA_SHIFT (6U) +#define DMA_DCHPRI10_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI10_DPA_SHIFT)) & DMA_DCHPRI10_DPA_MASK) +#define DMA_DCHPRI10_ECP_MASK (0x80U) +#define DMA_DCHPRI10_ECP_SHIFT (7U) +#define DMA_DCHPRI10_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI10_ECP_SHIFT)) & DMA_DCHPRI10_ECP_MASK) + +/*! @name DCHPRI9 - Channel n Priority Register */ +#define DMA_DCHPRI9_CHPRI_MASK (0xFU) +#define DMA_DCHPRI9_CHPRI_SHIFT (0U) +#define DMA_DCHPRI9_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI9_CHPRI_SHIFT)) & DMA_DCHPRI9_CHPRI_MASK) +#define DMA_DCHPRI9_DPA_MASK (0x40U) +#define DMA_DCHPRI9_DPA_SHIFT (6U) +#define DMA_DCHPRI9_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI9_DPA_SHIFT)) & DMA_DCHPRI9_DPA_MASK) +#define DMA_DCHPRI9_ECP_MASK (0x80U) +#define DMA_DCHPRI9_ECP_SHIFT (7U) +#define DMA_DCHPRI9_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI9_ECP_SHIFT)) & DMA_DCHPRI9_ECP_MASK) + +/*! @name DCHPRI8 - Channel n Priority Register */ +#define DMA_DCHPRI8_CHPRI_MASK (0xFU) +#define DMA_DCHPRI8_CHPRI_SHIFT (0U) +#define DMA_DCHPRI8_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI8_CHPRI_SHIFT)) & DMA_DCHPRI8_CHPRI_MASK) +#define DMA_DCHPRI8_DPA_MASK (0x40U) +#define DMA_DCHPRI8_DPA_SHIFT (6U) +#define DMA_DCHPRI8_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI8_DPA_SHIFT)) & DMA_DCHPRI8_DPA_MASK) +#define DMA_DCHPRI8_ECP_MASK (0x80U) +#define DMA_DCHPRI8_ECP_SHIFT (7U) +#define DMA_DCHPRI8_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI8_ECP_SHIFT)) & DMA_DCHPRI8_ECP_MASK) + +/*! @name DCHPRI15 - Channel n Priority Register */ +#define DMA_DCHPRI15_CHPRI_MASK (0xFU) +#define DMA_DCHPRI15_CHPRI_SHIFT (0U) +#define DMA_DCHPRI15_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI15_CHPRI_SHIFT)) & DMA_DCHPRI15_CHPRI_MASK) +#define DMA_DCHPRI15_DPA_MASK (0x40U) +#define DMA_DCHPRI15_DPA_SHIFT (6U) +#define DMA_DCHPRI15_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI15_DPA_SHIFT)) & DMA_DCHPRI15_DPA_MASK) +#define DMA_DCHPRI15_ECP_MASK (0x80U) +#define DMA_DCHPRI15_ECP_SHIFT (7U) +#define DMA_DCHPRI15_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI15_ECP_SHIFT)) & DMA_DCHPRI15_ECP_MASK) + +/*! @name DCHPRI14 - Channel n Priority Register */ +#define DMA_DCHPRI14_CHPRI_MASK (0xFU) +#define DMA_DCHPRI14_CHPRI_SHIFT (0U) +#define DMA_DCHPRI14_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI14_CHPRI_SHIFT)) & DMA_DCHPRI14_CHPRI_MASK) +#define DMA_DCHPRI14_DPA_MASK (0x40U) +#define DMA_DCHPRI14_DPA_SHIFT (6U) +#define DMA_DCHPRI14_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI14_DPA_SHIFT)) & DMA_DCHPRI14_DPA_MASK) +#define DMA_DCHPRI14_ECP_MASK (0x80U) +#define DMA_DCHPRI14_ECP_SHIFT (7U) +#define DMA_DCHPRI14_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI14_ECP_SHIFT)) & DMA_DCHPRI14_ECP_MASK) + +/*! @name DCHPRI13 - Channel n Priority Register */ +#define DMA_DCHPRI13_CHPRI_MASK (0xFU) +#define DMA_DCHPRI13_CHPRI_SHIFT (0U) +#define DMA_DCHPRI13_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI13_CHPRI_SHIFT)) & DMA_DCHPRI13_CHPRI_MASK) +#define DMA_DCHPRI13_DPA_MASK (0x40U) +#define DMA_DCHPRI13_DPA_SHIFT (6U) +#define DMA_DCHPRI13_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI13_DPA_SHIFT)) & DMA_DCHPRI13_DPA_MASK) +#define DMA_DCHPRI13_ECP_MASK (0x80U) +#define DMA_DCHPRI13_ECP_SHIFT (7U) +#define DMA_DCHPRI13_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI13_ECP_SHIFT)) & DMA_DCHPRI13_ECP_MASK) + +/*! @name DCHPRI12 - Channel n Priority Register */ +#define DMA_DCHPRI12_CHPRI_MASK (0xFU) +#define DMA_DCHPRI12_CHPRI_SHIFT (0U) +#define DMA_DCHPRI12_CHPRI(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI12_CHPRI_SHIFT)) & DMA_DCHPRI12_CHPRI_MASK) +#define DMA_DCHPRI12_DPA_MASK (0x40U) +#define DMA_DCHPRI12_DPA_SHIFT (6U) +#define DMA_DCHPRI12_DPA(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI12_DPA_SHIFT)) & DMA_DCHPRI12_DPA_MASK) +#define DMA_DCHPRI12_ECP_MASK (0x80U) +#define DMA_DCHPRI12_ECP_SHIFT (7U) +#define DMA_DCHPRI12_ECP(x) (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI12_ECP_SHIFT)) & DMA_DCHPRI12_ECP_MASK) + +/*! @name SADDR - TCD Source Address */ +#define DMA_SADDR_SADDR_MASK (0xFFFFFFFFU) +#define DMA_SADDR_SADDR_SHIFT (0U) +#define DMA_SADDR_SADDR(x) (((uint32_t)(((uint32_t)(x)) << DMA_SADDR_SADDR_SHIFT)) & DMA_SADDR_SADDR_MASK) + +/* The count of DMA_SADDR */ +#define DMA_SADDR_COUNT (16U) + +/*! @name SOFF - TCD Signed Source Address Offset */ +#define DMA_SOFF_SOFF_MASK (0xFFFFU) +#define DMA_SOFF_SOFF_SHIFT (0U) +#define DMA_SOFF_SOFF(x) (((uint16_t)(((uint16_t)(x)) << DMA_SOFF_SOFF_SHIFT)) & DMA_SOFF_SOFF_MASK) + +/* The count of DMA_SOFF */ +#define DMA_SOFF_COUNT (16U) + +/*! @name ATTR - TCD Transfer Attributes */ +#define DMA_ATTR_DSIZE_MASK (0x7U) +#define DMA_ATTR_DSIZE_SHIFT (0U) +#define DMA_ATTR_DSIZE(x) (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_DSIZE_SHIFT)) & DMA_ATTR_DSIZE_MASK) +#define DMA_ATTR_DMOD_MASK (0xF8U) +#define DMA_ATTR_DMOD_SHIFT (3U) +#define DMA_ATTR_DMOD(x) (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_DMOD_SHIFT)) & DMA_ATTR_DMOD_MASK) +#define DMA_ATTR_SSIZE_MASK (0x700U) +#define DMA_ATTR_SSIZE_SHIFT (8U) +#define DMA_ATTR_SSIZE(x) (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_SSIZE_SHIFT)) & DMA_ATTR_SSIZE_MASK) +#define DMA_ATTR_SMOD_MASK (0xF800U) +#define DMA_ATTR_SMOD_SHIFT (11U) +#define DMA_ATTR_SMOD(x) (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_SMOD_SHIFT)) & DMA_ATTR_SMOD_MASK) + +/* The count of DMA_ATTR */ +#define DMA_ATTR_COUNT (16U) + +/*! @name NBYTES_MLNO - TCD Minor Byte Count (Minor Loop Disabled) */ +#define DMA_NBYTES_MLNO_NBYTES_MASK (0xFFFFFFFFU) +#define DMA_NBYTES_MLNO_NBYTES_SHIFT (0U) +#define DMA_NBYTES_MLNO_NBYTES(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLNO_NBYTES_SHIFT)) & DMA_NBYTES_MLNO_NBYTES_MASK) + +/* The count of DMA_NBYTES_MLNO */ +#define DMA_NBYTES_MLNO_COUNT (16U) + +/*! @name NBYTES_MLOFFNO - TCD Signed Minor Loop Offset (Minor Loop Enabled and Offset Disabled) */ +#define DMA_NBYTES_MLOFFNO_NBYTES_MASK (0x3FFFFFFFU) +#define DMA_NBYTES_MLOFFNO_NBYTES_SHIFT (0U) +#define DMA_NBYTES_MLOFFNO_NBYTES(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_NBYTES_SHIFT)) & DMA_NBYTES_MLOFFNO_NBYTES_MASK) +#define DMA_NBYTES_MLOFFNO_DMLOE_MASK (0x40000000U) +#define DMA_NBYTES_MLOFFNO_DMLOE_SHIFT (30U) +#define DMA_NBYTES_MLOFFNO_DMLOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_DMLOE_SHIFT)) & DMA_NBYTES_MLOFFNO_DMLOE_MASK) +#define DMA_NBYTES_MLOFFNO_SMLOE_MASK (0x80000000U) +#define DMA_NBYTES_MLOFFNO_SMLOE_SHIFT (31U) +#define DMA_NBYTES_MLOFFNO_SMLOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_SMLOE_SHIFT)) & DMA_NBYTES_MLOFFNO_SMLOE_MASK) + +/* The count of DMA_NBYTES_MLOFFNO */ +#define DMA_NBYTES_MLOFFNO_COUNT (16U) + +/*! @name NBYTES_MLOFFYES - TCD Signed Minor Loop Offset (Minor Loop and Offset Enabled) */ +#define DMA_NBYTES_MLOFFYES_NBYTES_MASK (0x3FFU) +#define DMA_NBYTES_MLOFFYES_NBYTES_SHIFT (0U) +#define DMA_NBYTES_MLOFFYES_NBYTES(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_NBYTES_SHIFT)) & DMA_NBYTES_MLOFFYES_NBYTES_MASK) +#define DMA_NBYTES_MLOFFYES_MLOFF_MASK (0x3FFFFC00U) +#define DMA_NBYTES_MLOFFYES_MLOFF_SHIFT (10U) +#define DMA_NBYTES_MLOFFYES_MLOFF(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_MLOFF_SHIFT)) & DMA_NBYTES_MLOFFYES_MLOFF_MASK) +#define DMA_NBYTES_MLOFFYES_DMLOE_MASK (0x40000000U) +#define DMA_NBYTES_MLOFFYES_DMLOE_SHIFT (30U) +#define DMA_NBYTES_MLOFFYES_DMLOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_DMLOE_SHIFT)) & DMA_NBYTES_MLOFFYES_DMLOE_MASK) +#define DMA_NBYTES_MLOFFYES_SMLOE_MASK (0x80000000U) +#define DMA_NBYTES_MLOFFYES_SMLOE_SHIFT (31U) +#define DMA_NBYTES_MLOFFYES_SMLOE(x) (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_SMLOE_SHIFT)) & DMA_NBYTES_MLOFFYES_SMLOE_MASK) + +/* The count of DMA_NBYTES_MLOFFYES */ +#define DMA_NBYTES_MLOFFYES_COUNT (16U) + +/*! @name SLAST - TCD Last Source Address Adjustment */ +#define DMA_SLAST_SLAST_MASK (0xFFFFFFFFU) +#define DMA_SLAST_SLAST_SHIFT (0U) +#define DMA_SLAST_SLAST(x) (((uint32_t)(((uint32_t)(x)) << DMA_SLAST_SLAST_SHIFT)) & DMA_SLAST_SLAST_MASK) + +/* The count of DMA_SLAST */ +#define DMA_SLAST_COUNT (16U) + +/*! @name DADDR - TCD Destination Address */ +#define DMA_DADDR_DADDR_MASK (0xFFFFFFFFU) +#define DMA_DADDR_DADDR_SHIFT (0U) +#define DMA_DADDR_DADDR(x) (((uint32_t)(((uint32_t)(x)) << DMA_DADDR_DADDR_SHIFT)) & DMA_DADDR_DADDR_MASK) + +/* The count of DMA_DADDR */ +#define DMA_DADDR_COUNT (16U) + +/*! @name DOFF - TCD Signed Destination Address Offset */ +#define DMA_DOFF_DOFF_MASK (0xFFFFU) +#define DMA_DOFF_DOFF_SHIFT (0U) +#define DMA_DOFF_DOFF(x) (((uint16_t)(((uint16_t)(x)) << DMA_DOFF_DOFF_SHIFT)) & DMA_DOFF_DOFF_MASK) + +/* The count of DMA_DOFF */ +#define DMA_DOFF_COUNT (16U) + +/*! @name CITER_ELINKNO - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled) */ +#define DMA_CITER_ELINKNO_CITER_MASK (0x7FFFU) +#define DMA_CITER_ELINKNO_CITER_SHIFT (0U) +#define DMA_CITER_ELINKNO_CITER(x) (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKNO_CITER_SHIFT)) & DMA_CITER_ELINKNO_CITER_MASK) +#define DMA_CITER_ELINKNO_ELINK_MASK (0x8000U) +#define DMA_CITER_ELINKNO_ELINK_SHIFT (15U) +#define DMA_CITER_ELINKNO_ELINK(x) (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKNO_ELINK_SHIFT)) & DMA_CITER_ELINKNO_ELINK_MASK) + +/* The count of DMA_CITER_ELINKNO */ +#define DMA_CITER_ELINKNO_COUNT (16U) + +/*! @name CITER_ELINKYES - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled) */ +#define DMA_CITER_ELINKYES_CITER_MASK (0x1FFU) +#define DMA_CITER_ELINKYES_CITER_SHIFT (0U) +#define DMA_CITER_ELINKYES_CITER(x) (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_CITER_SHIFT)) & DMA_CITER_ELINKYES_CITER_MASK) +#define DMA_CITER_ELINKYES_LINKCH_MASK (0x1E00U) +#define DMA_CITER_ELINKYES_LINKCH_SHIFT (9U) +#define DMA_CITER_ELINKYES_LINKCH(x) (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_LINKCH_SHIFT)) & DMA_CITER_ELINKYES_LINKCH_MASK) +#define DMA_CITER_ELINKYES_ELINK_MASK (0x8000U) +#define DMA_CITER_ELINKYES_ELINK_SHIFT (15U) +#define DMA_CITER_ELINKYES_ELINK(x) (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_ELINK_SHIFT)) & DMA_CITER_ELINKYES_ELINK_MASK) + +/* The count of DMA_CITER_ELINKYES */ +#define DMA_CITER_ELINKYES_COUNT (16U) + +/*! @name DLAST_SGA - TCD Last Destination Address Adjustment/Scatter Gather Address */ +#define DMA_DLAST_SGA_DLASTSGA_MASK (0xFFFFFFFFU) +#define DMA_DLAST_SGA_DLASTSGA_SHIFT (0U) +#define DMA_DLAST_SGA_DLASTSGA(x) (((uint32_t)(((uint32_t)(x)) << DMA_DLAST_SGA_DLASTSGA_SHIFT)) & DMA_DLAST_SGA_DLASTSGA_MASK) + +/* The count of DMA_DLAST_SGA */ +#define DMA_DLAST_SGA_COUNT (16U) + +/*! @name CSR - TCD Control and Status */ +#define DMA_CSR_START_MASK (0x1U) +#define DMA_CSR_START_SHIFT (0U) +#define DMA_CSR_START(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_START_SHIFT)) & DMA_CSR_START_MASK) +#define DMA_CSR_INTMAJOR_MASK (0x2U) +#define DMA_CSR_INTMAJOR_SHIFT (1U) +#define DMA_CSR_INTMAJOR(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_INTMAJOR_SHIFT)) & DMA_CSR_INTMAJOR_MASK) +#define DMA_CSR_INTHALF_MASK (0x4U) +#define DMA_CSR_INTHALF_SHIFT (2U) +#define DMA_CSR_INTHALF(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_INTHALF_SHIFT)) & DMA_CSR_INTHALF_MASK) +#define DMA_CSR_DREQ_MASK (0x8U) +#define DMA_CSR_DREQ_SHIFT (3U) +#define DMA_CSR_DREQ(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_DREQ_SHIFT)) & DMA_CSR_DREQ_MASK) +#define DMA_CSR_ESG_MASK (0x10U) +#define DMA_CSR_ESG_SHIFT (4U) +#define DMA_CSR_ESG(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_ESG_SHIFT)) & DMA_CSR_ESG_MASK) +#define DMA_CSR_MAJORELINK_MASK (0x20U) +#define DMA_CSR_MAJORELINK_SHIFT (5U) +#define DMA_CSR_MAJORELINK(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_MAJORELINK_SHIFT)) & DMA_CSR_MAJORELINK_MASK) +#define DMA_CSR_ACTIVE_MASK (0x40U) +#define DMA_CSR_ACTIVE_SHIFT (6U) +#define DMA_CSR_ACTIVE(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_ACTIVE_SHIFT)) & DMA_CSR_ACTIVE_MASK) +#define DMA_CSR_DONE_MASK (0x80U) +#define DMA_CSR_DONE_SHIFT (7U) +#define DMA_CSR_DONE(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_DONE_SHIFT)) & DMA_CSR_DONE_MASK) +#define DMA_CSR_MAJORLINKCH_MASK (0xF00U) +#define DMA_CSR_MAJORLINKCH_SHIFT (8U) +#define DMA_CSR_MAJORLINKCH(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_MAJORLINKCH_SHIFT)) & DMA_CSR_MAJORLINKCH_MASK) +#define DMA_CSR_BWC_MASK (0xC000U) +#define DMA_CSR_BWC_SHIFT (14U) +#define DMA_CSR_BWC(x) (((uint16_t)(((uint16_t)(x)) << DMA_CSR_BWC_SHIFT)) & DMA_CSR_BWC_MASK) + +/* The count of DMA_CSR */ +#define DMA_CSR_COUNT (16U) + +/*! @name BITER_ELINKNO - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled) */ +#define DMA_BITER_ELINKNO_BITER_MASK (0x7FFFU) +#define DMA_BITER_ELINKNO_BITER_SHIFT (0U) +#define DMA_BITER_ELINKNO_BITER(x) (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKNO_BITER_SHIFT)) & DMA_BITER_ELINKNO_BITER_MASK) +#define DMA_BITER_ELINKNO_ELINK_MASK (0x8000U) +#define DMA_BITER_ELINKNO_ELINK_SHIFT (15U) +#define DMA_BITER_ELINKNO_ELINK(x) (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKNO_ELINK_SHIFT)) & DMA_BITER_ELINKNO_ELINK_MASK) + +/* The count of DMA_BITER_ELINKNO */ +#define DMA_BITER_ELINKNO_COUNT (16U) + +/*! @name BITER_ELINKYES - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled) */ +#define DMA_BITER_ELINKYES_BITER_MASK (0x1FFU) +#define DMA_BITER_ELINKYES_BITER_SHIFT (0U) +#define DMA_BITER_ELINKYES_BITER(x) (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_BITER_SHIFT)) & DMA_BITER_ELINKYES_BITER_MASK) +#define DMA_BITER_ELINKYES_LINKCH_MASK (0x1E00U) +#define DMA_BITER_ELINKYES_LINKCH_SHIFT (9U) +#define DMA_BITER_ELINKYES_LINKCH(x) (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_LINKCH_SHIFT)) & DMA_BITER_ELINKYES_LINKCH_MASK) +#define DMA_BITER_ELINKYES_ELINK_MASK (0x8000U) +#define DMA_BITER_ELINKYES_ELINK_SHIFT (15U) +#define DMA_BITER_ELINKYES_ELINK(x) (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_ELINK_SHIFT)) & DMA_BITER_ELINKYES_ELINK_MASK) + +/* The count of DMA_BITER_ELINKYES */ +#define DMA_BITER_ELINKYES_COUNT (16U) + + +/*! + * @} + */ /* end of group DMA_Register_Masks */ + + +/* DMA - Peripheral instance base addresses */ +/** Peripheral DMA base address */ +#define DMA_BASE (0x40008000u) +/** Peripheral DMA base pointer */ +#define DMA0 ((DMA_Type *)DMA_BASE) +/** Array initializer of DMA peripheral base addresses */ +#define DMA_BASE_ADDRS { DMA_BASE } +/** Array initializer of DMA peripheral base pointers */ +#define DMA_BASE_PTRS { DMA0 } +/** Interrupt vectors for the DMA peripheral type */ +#define DMA_CHN_IRQS { DMA0_IRQn, DMA1_IRQn, DMA2_IRQn, DMA3_IRQn, DMA4_IRQn, DMA5_IRQn, DMA6_IRQn, DMA7_IRQn, DMA8_IRQn, DMA9_IRQn, DMA10_IRQn, DMA11_IRQn, DMA12_IRQn, DMA13_IRQn, DMA14_IRQn, DMA15_IRQn } +#define DMA_ERROR_IRQS { DMA_Error_IRQn } + +/*! + * @} + */ /* end of group DMA_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- DMAMUX Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup DMAMUX_Peripheral_Access_Layer DMAMUX Peripheral Access Layer + * @{ + */ + +/** DMAMUX - Register Layout Typedef */ +typedef struct { + __IO uint8_t CHCFG[16]; /**< Channel Configuration register, array offset: 0x0, array step: 0x1 */ +} DMAMUX_Type; + +/* ---------------------------------------------------------------------------- + -- DMAMUX Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup DMAMUX_Register_Masks DMAMUX Register Masks + * @{ + */ + +/*! @name CHCFG - Channel Configuration register */ +#define DMAMUX_CHCFG_SOURCE_MASK (0x3FU) +#define DMAMUX_CHCFG_SOURCE_SHIFT (0U) +#define DMAMUX_CHCFG_SOURCE(x) (((uint8_t)(((uint8_t)(x)) << DMAMUX_CHCFG_SOURCE_SHIFT)) & DMAMUX_CHCFG_SOURCE_MASK) +#define DMAMUX_CHCFG_TRIG_MASK (0x40U) +#define DMAMUX_CHCFG_TRIG_SHIFT (6U) +#define DMAMUX_CHCFG_TRIG(x) (((uint8_t)(((uint8_t)(x)) << DMAMUX_CHCFG_TRIG_SHIFT)) & DMAMUX_CHCFG_TRIG_MASK) +#define DMAMUX_CHCFG_ENBL_MASK (0x80U) +#define DMAMUX_CHCFG_ENBL_SHIFT (7U) +#define DMAMUX_CHCFG_ENBL(x) (((uint8_t)(((uint8_t)(x)) << DMAMUX_CHCFG_ENBL_SHIFT)) & DMAMUX_CHCFG_ENBL_MASK) + +/* The count of DMAMUX_CHCFG */ +#define DMAMUX_CHCFG_COUNT (16U) + + +/*! + * @} + */ /* end of group DMAMUX_Register_Masks */ + + +/* DMAMUX - Peripheral instance base addresses */ +/** Peripheral DMAMUX base address */ +#define DMAMUX_BASE (0x40021000u) +/** Peripheral DMAMUX base pointer */ +#define DMAMUX ((DMAMUX_Type *)DMAMUX_BASE) +/** Array initializer of DMAMUX peripheral base addresses */ +#define DMAMUX_BASE_ADDRS { DMAMUX_BASE } +/** Array initializer of DMAMUX peripheral base pointers */ +#define DMAMUX_BASE_PTRS { DMAMUX } + +/*! + * @} + */ /* end of group DMAMUX_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- ENET Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup ENET_Peripheral_Access_Layer ENET Peripheral Access Layer + * @{ + */ + +/** ENET - Register Layout Typedef */ +typedef struct { + uint8_t RESERVED_0[4]; + __IO uint32_t EIR; /**< Interrupt Event Register, offset: 0x4 */ + __IO uint32_t EIMR; /**< Interrupt Mask Register, offset: 0x8 */ + uint8_t RESERVED_1[4]; + __IO uint32_t RDAR; /**< Receive Descriptor Active Register, offset: 0x10 */ + __IO uint32_t TDAR; /**< Transmit Descriptor Active Register, offset: 0x14 */ + uint8_t RESERVED_2[12]; + __IO uint32_t ECR; /**< Ethernet Control Register, offset: 0x24 */ + uint8_t RESERVED_3[24]; + __IO uint32_t MMFR; /**< MII Management Frame Register, offset: 0x40 */ + __IO uint32_t MSCR; /**< MII Speed Control Register, offset: 0x44 */ + uint8_t RESERVED_4[28]; + __IO uint32_t MIBC; /**< MIB Control Register, offset: 0x64 */ + uint8_t RESERVED_5[28]; + __IO uint32_t RCR; /**< Receive Control Register, offset: 0x84 */ + uint8_t RESERVED_6[60]; + __IO uint32_t TCR; /**< Transmit Control Register, offset: 0xC4 */ + uint8_t RESERVED_7[28]; + __IO uint32_t PALR; /**< Physical Address Lower Register, offset: 0xE4 */ + __IO uint32_t PAUR; /**< Physical Address Upper Register, offset: 0xE8 */ + __IO uint32_t OPD; /**< Opcode/Pause Duration Register, offset: 0xEC */ + uint8_t RESERVED_8[40]; + __IO uint32_t IAUR; /**< Descriptor Individual Upper Address Register, offset: 0x118 */ + __IO uint32_t IALR; /**< Descriptor Individual Lower Address Register, offset: 0x11C */ + __IO uint32_t GAUR; /**< Descriptor Group Upper Address Register, offset: 0x120 */ + __IO uint32_t GALR; /**< Descriptor Group Lower Address Register, offset: 0x124 */ + uint8_t RESERVED_9[28]; + __IO uint32_t TFWR; /**< Transmit FIFO Watermark Register, offset: 0x144 */ + uint8_t RESERVED_10[56]; + __IO uint32_t RDSR; /**< Receive Descriptor Ring Start Register, offset: 0x180 */ + __IO uint32_t TDSR; /**< Transmit Buffer Descriptor Ring Start Register, offset: 0x184 */ + __IO uint32_t MRBR; /**< Maximum Receive Buffer Size Register, offset: 0x188 */ + uint8_t RESERVED_11[4]; + __IO uint32_t RSFL; /**< Receive FIFO Section Full Threshold, offset: 0x190 */ + __IO uint32_t RSEM; /**< Receive FIFO Section Empty Threshold, offset: 0x194 */ + __IO uint32_t RAEM; /**< Receive FIFO Almost Empty Threshold, offset: 0x198 */ + __IO uint32_t RAFL; /**< Receive FIFO Almost Full Threshold, offset: 0x19C */ + __IO uint32_t TSEM; /**< Transmit FIFO Section Empty Threshold, offset: 0x1A0 */ + __IO uint32_t TAEM; /**< Transmit FIFO Almost Empty Threshold, offset: 0x1A4 */ + __IO uint32_t TAFL; /**< Transmit FIFO Almost Full Threshold, offset: 0x1A8 */ + __IO uint32_t TIPG; /**< Transmit Inter-Packet Gap, offset: 0x1AC */ + __IO uint32_t FTRL; /**< Frame Truncation Length, offset: 0x1B0 */ + uint8_t RESERVED_12[12]; + __IO uint32_t TACC; /**< Transmit Accelerator Function Configuration, offset: 0x1C0 */ + __IO uint32_t RACC; /**< Receive Accelerator Function Configuration, offset: 0x1C4 */ + uint8_t RESERVED_13[60]; + __I uint32_t RMON_T_PACKETS; /**< Tx Packet Count Statistic Register, offset: 0x204 */ + __I uint32_t RMON_T_BC_PKT; /**< Tx Broadcast Packets Statistic Register, offset: 0x208 */ + __I uint32_t RMON_T_MC_PKT; /**< Tx Multicast Packets Statistic Register, offset: 0x20C */ + __I uint32_t RMON_T_CRC_ALIGN; /**< Tx Packets with CRC/Align Error Statistic Register, offset: 0x210 */ + __I uint32_t RMON_T_UNDERSIZE; /**< Tx Packets Less Than Bytes and Good CRC Statistic Register, offset: 0x214 */ + __I uint32_t RMON_T_OVERSIZE; /**< Tx Packets GT MAX_FL bytes and Good CRC Statistic Register, offset: 0x218 */ + __I uint32_t RMON_T_FRAG; /**< Tx Packets Less Than 64 Bytes and Bad CRC Statistic Register, offset: 0x21C */ + __I uint32_t RMON_T_JAB; /**< Tx Packets Greater Than MAX_FL bytes and Bad CRC Statistic Register, offset: 0x220 */ + __I uint32_t RMON_T_COL; /**< Tx Collision Count Statistic Register, offset: 0x224 */ + __I uint32_t RMON_T_P64; /**< Tx 64-Byte Packets Statistic Register, offset: 0x228 */ + __I uint32_t RMON_T_P65TO127; /**< Tx 65- to 127-byte Packets Statistic Register, offset: 0x22C */ + __I uint32_t RMON_T_P128TO255; /**< Tx 128- to 255-byte Packets Statistic Register, offset: 0x230 */ + __I uint32_t RMON_T_P256TO511; /**< Tx 256- to 511-byte Packets Statistic Register, offset: 0x234 */ + __I uint32_t RMON_T_P512TO1023; /**< Tx 512- to 1023-byte Packets Statistic Register, offset: 0x238 */ + __I uint32_t RMON_T_P1024TO2047; /**< Tx 1024- to 2047-byte Packets Statistic Register, offset: 0x23C */ + __I uint32_t RMON_T_P_GTE2048; /**< Tx Packets Greater Than 2048 Bytes Statistic Register, offset: 0x240 */ + __I uint32_t RMON_T_OCTETS; /**< Tx Octets Statistic Register, offset: 0x244 */ + uint8_t RESERVED_14[4]; + __I uint32_t IEEE_T_FRAME_OK; /**< Frames Transmitted OK Statistic Register, offset: 0x24C */ + __I uint32_t IEEE_T_1COL; /**< Frames Transmitted with Single Collision Statistic Register, offset: 0x250 */ + __I uint32_t IEEE_T_MCOL; /**< Frames Transmitted with Multiple Collisions Statistic Register, offset: 0x254 */ + __I uint32_t IEEE_T_DEF; /**< Frames Transmitted after Deferral Delay Statistic Register, offset: 0x258 */ + __I uint32_t IEEE_T_LCOL; /**< Frames Transmitted with Late Collision Statistic Register, offset: 0x25C */ + __I uint32_t IEEE_T_EXCOL; /**< Frames Transmitted with Excessive Collisions Statistic Register, offset: 0x260 */ + __I uint32_t IEEE_T_MACERR; /**< Frames Transmitted with Tx FIFO Underrun Statistic Register, offset: 0x264 */ + __I uint32_t IEEE_T_CSERR; /**< Frames Transmitted with Carrier Sense Error Statistic Register, offset: 0x268 */ + uint8_t RESERVED_15[4]; + __I uint32_t IEEE_T_FDXFC; /**< Flow Control Pause Frames Transmitted Statistic Register, offset: 0x270 */ + __I uint32_t IEEE_T_OCTETS_OK; /**< Octet Count for Frames Transmitted w/o Error Statistic Register, offset: 0x274 */ + uint8_t RESERVED_16[12]; + __I uint32_t RMON_R_PACKETS; /**< Rx Packet Count Statistic Register, offset: 0x284 */ + __I uint32_t RMON_R_BC_PKT; /**< Rx Broadcast Packets Statistic Register, offset: 0x288 */ + __I uint32_t RMON_R_MC_PKT; /**< Rx Multicast Packets Statistic Register, offset: 0x28C */ + __I uint32_t RMON_R_CRC_ALIGN; /**< Rx Packets with CRC/Align Error Statistic Register, offset: 0x290 */ + __I uint32_t RMON_R_UNDERSIZE; /**< Rx Packets with Less Than 64 Bytes and Good CRC Statistic Register, offset: 0x294 */ + __I uint32_t RMON_R_OVERSIZE; /**< Rx Packets Greater Than MAX_FL and Good CRC Statistic Register, offset: 0x298 */ + __I uint32_t RMON_R_FRAG; /**< Rx Packets Less Than 64 Bytes and Bad CRC Statistic Register, offset: 0x29C */ + __I uint32_t RMON_R_JAB; /**< Rx Packets Greater Than MAX_FL Bytes and Bad CRC Statistic Register, offset: 0x2A0 */ + uint8_t RESERVED_17[4]; + __I uint32_t RMON_R_P64; /**< Rx 64-Byte Packets Statistic Register, offset: 0x2A8 */ + __I uint32_t RMON_R_P65TO127; /**< Rx 65- to 127-Byte Packets Statistic Register, offset: 0x2AC */ + __I uint32_t RMON_R_P128TO255; /**< Rx 128- to 255-Byte Packets Statistic Register, offset: 0x2B0 */ + __I uint32_t RMON_R_P256TO511; /**< Rx 256- to 511-Byte Packets Statistic Register, offset: 0x2B4 */ + __I uint32_t RMON_R_P512TO1023; /**< Rx 512- to 1023-Byte Packets Statistic Register, offset: 0x2B8 */ + __I uint32_t RMON_R_P1024TO2047; /**< Rx 1024- to 2047-Byte Packets Statistic Register, offset: 0x2BC */ + __I uint32_t RMON_R_P_GTE2048; /**< Rx Packets Greater than 2048 Bytes Statistic Register, offset: 0x2C0 */ + __I uint32_t RMON_R_OCTETS; /**< Rx Octets Statistic Register, offset: 0x2C4 */ + __I uint32_t IEEE_R_DROP; /**< Frames not Counted Correctly Statistic Register, offset: 0x2C8 */ + __I uint32_t IEEE_R_FRAME_OK; /**< Frames Received OK Statistic Register, offset: 0x2CC */ + __I uint32_t IEEE_R_CRC; /**< Frames Received with CRC Error Statistic Register, offset: 0x2D0 */ + __I uint32_t IEEE_R_ALIGN; /**< Frames Received with Alignment Error Statistic Register, offset: 0x2D4 */ + __I uint32_t IEEE_R_MACERR; /**< Receive FIFO Overflow Count Statistic Register, offset: 0x2D8 */ + __I uint32_t IEEE_R_FDXFC; /**< Flow Control Pause Frames Received Statistic Register, offset: 0x2DC */ + __I uint32_t IEEE_R_OCTETS_OK; /**< Octet Count for Frames Received without Error Statistic Register, offset: 0x2E0 */ + uint8_t RESERVED_18[284]; + __IO uint32_t ATCR; /**< Adjustable Timer Control Register, offset: 0x400 */ + __IO uint32_t ATVR; /**< Timer Value Register, offset: 0x404 */ + __IO uint32_t ATOFF; /**< Timer Offset Register, offset: 0x408 */ + __IO uint32_t ATPER; /**< Timer Period Register, offset: 0x40C */ + __IO uint32_t ATCOR; /**< Timer Correction Register, offset: 0x410 */ + __IO uint32_t ATINC; /**< Time-Stamping Clock Period Register, offset: 0x414 */ + __I uint32_t ATSTMP; /**< Timestamp of Last Transmitted Frame, offset: 0x418 */ + uint8_t RESERVED_19[488]; + __IO uint32_t TGSR; /**< Timer Global Status Register, offset: 0x604 */ + struct { /* offset: 0x608, array step: 0x8 */ + __IO uint32_t TCSR; /**< Timer Control Status Register, array offset: 0x608, array step: 0x8 */ + __IO uint32_t TCCR; /**< Timer Compare Capture Register, array offset: 0x60C, array step: 0x8 */ + } CHANNEL[4]; +} ENET_Type; + +/* ---------------------------------------------------------------------------- + -- ENET Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup ENET_Register_Masks ENET Register Masks + * @{ + */ + +/*! @name EIR - Interrupt Event Register */ +#define ENET_EIR_TS_TIMER_MASK (0x8000U) +#define ENET_EIR_TS_TIMER_SHIFT (15U) +#define ENET_EIR_TS_TIMER(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_TS_TIMER_SHIFT)) & ENET_EIR_TS_TIMER_MASK) +#define ENET_EIR_TS_AVAIL_MASK (0x10000U) +#define ENET_EIR_TS_AVAIL_SHIFT (16U) +#define ENET_EIR_TS_AVAIL(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_TS_AVAIL_SHIFT)) & ENET_EIR_TS_AVAIL_MASK) +#define ENET_EIR_WAKEUP_MASK (0x20000U) +#define ENET_EIR_WAKEUP_SHIFT (17U) +#define ENET_EIR_WAKEUP(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_WAKEUP_SHIFT)) & ENET_EIR_WAKEUP_MASK) +#define ENET_EIR_PLR_MASK (0x40000U) +#define ENET_EIR_PLR_SHIFT (18U) +#define ENET_EIR_PLR(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_PLR_SHIFT)) & ENET_EIR_PLR_MASK) +#define ENET_EIR_UN_MASK (0x80000U) +#define ENET_EIR_UN_SHIFT (19U) +#define ENET_EIR_UN(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_UN_SHIFT)) & ENET_EIR_UN_MASK) +#define ENET_EIR_RL_MASK (0x100000U) +#define ENET_EIR_RL_SHIFT (20U) +#define ENET_EIR_RL(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_RL_SHIFT)) & ENET_EIR_RL_MASK) +#define ENET_EIR_LC_MASK (0x200000U) +#define ENET_EIR_LC_SHIFT (21U) +#define ENET_EIR_LC(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_LC_SHIFT)) & ENET_EIR_LC_MASK) +#define ENET_EIR_EBERR_MASK (0x400000U) +#define ENET_EIR_EBERR_SHIFT (22U) +#define ENET_EIR_EBERR(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_EBERR_SHIFT)) & ENET_EIR_EBERR_MASK) +#define ENET_EIR_MII_MASK (0x800000U) +#define ENET_EIR_MII_SHIFT (23U) +#define ENET_EIR_MII(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_MII_SHIFT)) & ENET_EIR_MII_MASK) +#define ENET_EIR_RXB_MASK (0x1000000U) +#define ENET_EIR_RXB_SHIFT (24U) +#define ENET_EIR_RXB(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_RXB_SHIFT)) & ENET_EIR_RXB_MASK) +#define ENET_EIR_RXF_MASK (0x2000000U) +#define ENET_EIR_RXF_SHIFT (25U) +#define ENET_EIR_RXF(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_RXF_SHIFT)) & ENET_EIR_RXF_MASK) +#define ENET_EIR_TXB_MASK (0x4000000U) +#define ENET_EIR_TXB_SHIFT (26U) +#define ENET_EIR_TXB(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_TXB_SHIFT)) & ENET_EIR_TXB_MASK) +#define ENET_EIR_TXF_MASK (0x8000000U) +#define ENET_EIR_TXF_SHIFT (27U) +#define ENET_EIR_TXF(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_TXF_SHIFT)) & ENET_EIR_TXF_MASK) +#define ENET_EIR_GRA_MASK (0x10000000U) +#define ENET_EIR_GRA_SHIFT (28U) +#define ENET_EIR_GRA(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_GRA_SHIFT)) & ENET_EIR_GRA_MASK) +#define ENET_EIR_BABT_MASK (0x20000000U) +#define ENET_EIR_BABT_SHIFT (29U) +#define ENET_EIR_BABT(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_BABT_SHIFT)) & ENET_EIR_BABT_MASK) +#define ENET_EIR_BABR_MASK (0x40000000U) +#define ENET_EIR_BABR_SHIFT (30U) +#define ENET_EIR_BABR(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIR_BABR_SHIFT)) & ENET_EIR_BABR_MASK) + +/*! @name EIMR - Interrupt Mask Register */ +#define ENET_EIMR_TS_TIMER_MASK (0x8000U) +#define ENET_EIMR_TS_TIMER_SHIFT (15U) +#define ENET_EIMR_TS_TIMER(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_TS_TIMER_SHIFT)) & ENET_EIMR_TS_TIMER_MASK) +#define ENET_EIMR_TS_AVAIL_MASK (0x10000U) +#define ENET_EIMR_TS_AVAIL_SHIFT (16U) +#define ENET_EIMR_TS_AVAIL(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_TS_AVAIL_SHIFT)) & ENET_EIMR_TS_AVAIL_MASK) +#define ENET_EIMR_WAKEUP_MASK (0x20000U) +#define ENET_EIMR_WAKEUP_SHIFT (17U) +#define ENET_EIMR_WAKEUP(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_WAKEUP_SHIFT)) & ENET_EIMR_WAKEUP_MASK) +#define ENET_EIMR_PLR_MASK (0x40000U) +#define ENET_EIMR_PLR_SHIFT (18U) +#define ENET_EIMR_PLR(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_PLR_SHIFT)) & ENET_EIMR_PLR_MASK) +#define ENET_EIMR_UN_MASK (0x80000U) +#define ENET_EIMR_UN_SHIFT (19U) +#define ENET_EIMR_UN(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_UN_SHIFT)) & ENET_EIMR_UN_MASK) +#define ENET_EIMR_RL_MASK (0x100000U) +#define ENET_EIMR_RL_SHIFT (20U) +#define ENET_EIMR_RL(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_RL_SHIFT)) & ENET_EIMR_RL_MASK) +#define ENET_EIMR_LC_MASK (0x200000U) +#define ENET_EIMR_LC_SHIFT (21U) +#define ENET_EIMR_LC(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_LC_SHIFT)) & ENET_EIMR_LC_MASK) +#define ENET_EIMR_EBERR_MASK (0x400000U) +#define ENET_EIMR_EBERR_SHIFT (22U) +#define ENET_EIMR_EBERR(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_EBERR_SHIFT)) & ENET_EIMR_EBERR_MASK) +#define ENET_EIMR_MII_MASK (0x800000U) +#define ENET_EIMR_MII_SHIFT (23U) +#define ENET_EIMR_MII(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_MII_SHIFT)) & ENET_EIMR_MII_MASK) +#define ENET_EIMR_RXB_MASK (0x1000000U) +#define ENET_EIMR_RXB_SHIFT (24U) +#define ENET_EIMR_RXB(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_RXB_SHIFT)) & ENET_EIMR_RXB_MASK) +#define ENET_EIMR_RXF_MASK (0x2000000U) +#define ENET_EIMR_RXF_SHIFT (25U) +#define ENET_EIMR_RXF(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_RXF_SHIFT)) & ENET_EIMR_RXF_MASK) +#define ENET_EIMR_TXB_MASK (0x4000000U) +#define ENET_EIMR_TXB_SHIFT (26U) +#define ENET_EIMR_TXB(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_TXB_SHIFT)) & ENET_EIMR_TXB_MASK) +#define ENET_EIMR_TXF_MASK (0x8000000U) +#define ENET_EIMR_TXF_SHIFT (27U) +#define ENET_EIMR_TXF(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_TXF_SHIFT)) & ENET_EIMR_TXF_MASK) +#define ENET_EIMR_GRA_MASK (0x10000000U) +#define ENET_EIMR_GRA_SHIFT (28U) +#define ENET_EIMR_GRA(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_GRA_SHIFT)) & ENET_EIMR_GRA_MASK) +#define ENET_EIMR_BABT_MASK (0x20000000U) +#define ENET_EIMR_BABT_SHIFT (29U) +#define ENET_EIMR_BABT(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_BABT_SHIFT)) & ENET_EIMR_BABT_MASK) +#define ENET_EIMR_BABR_MASK (0x40000000U) +#define ENET_EIMR_BABR_SHIFT (30U) +#define ENET_EIMR_BABR(x) (((uint32_t)(((uint32_t)(x)) << ENET_EIMR_BABR_SHIFT)) & ENET_EIMR_BABR_MASK) + +/*! @name RDAR - Receive Descriptor Active Register */ +#define ENET_RDAR_RDAR_MASK (0x1000000U) +#define ENET_RDAR_RDAR_SHIFT (24U) +#define ENET_RDAR_RDAR(x) (((uint32_t)(((uint32_t)(x)) << ENET_RDAR_RDAR_SHIFT)) & ENET_RDAR_RDAR_MASK) + +/*! @name TDAR - Transmit Descriptor Active Register */ +#define ENET_TDAR_TDAR_MASK (0x1000000U) +#define ENET_TDAR_TDAR_SHIFT (24U) +#define ENET_TDAR_TDAR(x) (((uint32_t)(((uint32_t)(x)) << ENET_TDAR_TDAR_SHIFT)) & ENET_TDAR_TDAR_MASK) + +/*! @name ECR - Ethernet Control Register */ +#define ENET_ECR_RESET_MASK (0x1U) +#define ENET_ECR_RESET_SHIFT (0U) +#define ENET_ECR_RESET(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_RESET_SHIFT)) & ENET_ECR_RESET_MASK) +#define ENET_ECR_ETHEREN_MASK (0x2U) +#define ENET_ECR_ETHEREN_SHIFT (1U) +#define ENET_ECR_ETHEREN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_ETHEREN_SHIFT)) & ENET_ECR_ETHEREN_MASK) +#define ENET_ECR_MAGICEN_MASK (0x4U) +#define ENET_ECR_MAGICEN_SHIFT (2U) +#define ENET_ECR_MAGICEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_MAGICEN_SHIFT)) & ENET_ECR_MAGICEN_MASK) +#define ENET_ECR_SLEEP_MASK (0x8U) +#define ENET_ECR_SLEEP_SHIFT (3U) +#define ENET_ECR_SLEEP(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_SLEEP_SHIFT)) & ENET_ECR_SLEEP_MASK) +#define ENET_ECR_EN1588_MASK (0x10U) +#define ENET_ECR_EN1588_SHIFT (4U) +#define ENET_ECR_EN1588(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_EN1588_SHIFT)) & ENET_ECR_EN1588_MASK) +#define ENET_ECR_DBGEN_MASK (0x40U) +#define ENET_ECR_DBGEN_SHIFT (6U) +#define ENET_ECR_DBGEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_DBGEN_SHIFT)) & ENET_ECR_DBGEN_MASK) +#define ENET_ECR_STOPEN_MASK (0x80U) +#define ENET_ECR_STOPEN_SHIFT (7U) +#define ENET_ECR_STOPEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_STOPEN_SHIFT)) & ENET_ECR_STOPEN_MASK) +#define ENET_ECR_DBSWP_MASK (0x100U) +#define ENET_ECR_DBSWP_SHIFT (8U) +#define ENET_ECR_DBSWP(x) (((uint32_t)(((uint32_t)(x)) << ENET_ECR_DBSWP_SHIFT)) & ENET_ECR_DBSWP_MASK) + +/*! @name MMFR - MII Management Frame Register */ +#define ENET_MMFR_DATA_MASK (0xFFFFU) +#define ENET_MMFR_DATA_SHIFT (0U) +#define ENET_MMFR_DATA(x) (((uint32_t)(((uint32_t)(x)) << ENET_MMFR_DATA_SHIFT)) & ENET_MMFR_DATA_MASK) +#define ENET_MMFR_TA_MASK (0x30000U) +#define ENET_MMFR_TA_SHIFT (16U) +#define ENET_MMFR_TA(x) (((uint32_t)(((uint32_t)(x)) << ENET_MMFR_TA_SHIFT)) & ENET_MMFR_TA_MASK) +#define ENET_MMFR_RA_MASK (0x7C0000U) +#define ENET_MMFR_RA_SHIFT (18U) +#define ENET_MMFR_RA(x) (((uint32_t)(((uint32_t)(x)) << ENET_MMFR_RA_SHIFT)) & ENET_MMFR_RA_MASK) +#define ENET_MMFR_PA_MASK (0xF800000U) +#define ENET_MMFR_PA_SHIFT (23U) +#define ENET_MMFR_PA(x) (((uint32_t)(((uint32_t)(x)) << ENET_MMFR_PA_SHIFT)) & ENET_MMFR_PA_MASK) +#define ENET_MMFR_OP_MASK (0x30000000U) +#define ENET_MMFR_OP_SHIFT (28U) +#define ENET_MMFR_OP(x) (((uint32_t)(((uint32_t)(x)) << ENET_MMFR_OP_SHIFT)) & ENET_MMFR_OP_MASK) +#define ENET_MMFR_ST_MASK (0xC0000000U) +#define ENET_MMFR_ST_SHIFT (30U) +#define ENET_MMFR_ST(x) (((uint32_t)(((uint32_t)(x)) << ENET_MMFR_ST_SHIFT)) & ENET_MMFR_ST_MASK) + +/*! @name MSCR - MII Speed Control Register */ +#define ENET_MSCR_MII_SPEED_MASK (0x7EU) +#define ENET_MSCR_MII_SPEED_SHIFT (1U) +#define ENET_MSCR_MII_SPEED(x) (((uint32_t)(((uint32_t)(x)) << ENET_MSCR_MII_SPEED_SHIFT)) & ENET_MSCR_MII_SPEED_MASK) +#define ENET_MSCR_DIS_PRE_MASK (0x80U) +#define ENET_MSCR_DIS_PRE_SHIFT (7U) +#define ENET_MSCR_DIS_PRE(x) (((uint32_t)(((uint32_t)(x)) << ENET_MSCR_DIS_PRE_SHIFT)) & ENET_MSCR_DIS_PRE_MASK) +#define ENET_MSCR_HOLDTIME_MASK (0x700U) +#define ENET_MSCR_HOLDTIME_SHIFT (8U) +#define ENET_MSCR_HOLDTIME(x) (((uint32_t)(((uint32_t)(x)) << ENET_MSCR_HOLDTIME_SHIFT)) & ENET_MSCR_HOLDTIME_MASK) + +/*! @name MIBC - MIB Control Register */ +#define ENET_MIBC_MIB_CLEAR_MASK (0x20000000U) +#define ENET_MIBC_MIB_CLEAR_SHIFT (29U) +#define ENET_MIBC_MIB_CLEAR(x) (((uint32_t)(((uint32_t)(x)) << ENET_MIBC_MIB_CLEAR_SHIFT)) & ENET_MIBC_MIB_CLEAR_MASK) +#define ENET_MIBC_MIB_IDLE_MASK (0x40000000U) +#define ENET_MIBC_MIB_IDLE_SHIFT (30U) +#define ENET_MIBC_MIB_IDLE(x) (((uint32_t)(((uint32_t)(x)) << ENET_MIBC_MIB_IDLE_SHIFT)) & ENET_MIBC_MIB_IDLE_MASK) +#define ENET_MIBC_MIB_DIS_MASK (0x80000000U) +#define ENET_MIBC_MIB_DIS_SHIFT (31U) +#define ENET_MIBC_MIB_DIS(x) (((uint32_t)(((uint32_t)(x)) << ENET_MIBC_MIB_DIS_SHIFT)) & ENET_MIBC_MIB_DIS_MASK) + +/*! @name RCR - Receive Control Register */ +#define ENET_RCR_LOOP_MASK (0x1U) +#define ENET_RCR_LOOP_SHIFT (0U) +#define ENET_RCR_LOOP(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_LOOP_SHIFT)) & ENET_RCR_LOOP_MASK) +#define ENET_RCR_DRT_MASK (0x2U) +#define ENET_RCR_DRT_SHIFT (1U) +#define ENET_RCR_DRT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_DRT_SHIFT)) & ENET_RCR_DRT_MASK) +#define ENET_RCR_MII_MODE_MASK (0x4U) +#define ENET_RCR_MII_MODE_SHIFT (2U) +#define ENET_RCR_MII_MODE(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_MII_MODE_SHIFT)) & ENET_RCR_MII_MODE_MASK) +#define ENET_RCR_PROM_MASK (0x8U) +#define ENET_RCR_PROM_SHIFT (3U) +#define ENET_RCR_PROM(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_PROM_SHIFT)) & ENET_RCR_PROM_MASK) +#define ENET_RCR_BC_REJ_MASK (0x10U) +#define ENET_RCR_BC_REJ_SHIFT (4U) +#define ENET_RCR_BC_REJ(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_BC_REJ_SHIFT)) & ENET_RCR_BC_REJ_MASK) +#define ENET_RCR_FCE_MASK (0x20U) +#define ENET_RCR_FCE_SHIFT (5U) +#define ENET_RCR_FCE(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_FCE_SHIFT)) & ENET_RCR_FCE_MASK) +#define ENET_RCR_RMII_MODE_MASK (0x100U) +#define ENET_RCR_RMII_MODE_SHIFT (8U) +#define ENET_RCR_RMII_MODE(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_RMII_MODE_SHIFT)) & ENET_RCR_RMII_MODE_MASK) +#define ENET_RCR_RMII_10T_MASK (0x200U) +#define ENET_RCR_RMII_10T_SHIFT (9U) +#define ENET_RCR_RMII_10T(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_RMII_10T_SHIFT)) & ENET_RCR_RMII_10T_MASK) +#define ENET_RCR_PADEN_MASK (0x1000U) +#define ENET_RCR_PADEN_SHIFT (12U) +#define ENET_RCR_PADEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_PADEN_SHIFT)) & ENET_RCR_PADEN_MASK) +#define ENET_RCR_PAUFWD_MASK (0x2000U) +#define ENET_RCR_PAUFWD_SHIFT (13U) +#define ENET_RCR_PAUFWD(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_PAUFWD_SHIFT)) & ENET_RCR_PAUFWD_MASK) +#define ENET_RCR_CRCFWD_MASK (0x4000U) +#define ENET_RCR_CRCFWD_SHIFT (14U) +#define ENET_RCR_CRCFWD(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_CRCFWD_SHIFT)) & ENET_RCR_CRCFWD_MASK) +#define ENET_RCR_CFEN_MASK (0x8000U) +#define ENET_RCR_CFEN_SHIFT (15U) +#define ENET_RCR_CFEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_CFEN_SHIFT)) & ENET_RCR_CFEN_MASK) +#define ENET_RCR_MAX_FL_MASK (0x3FFF0000U) +#define ENET_RCR_MAX_FL_SHIFT (16U) +#define ENET_RCR_MAX_FL(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_MAX_FL_SHIFT)) & ENET_RCR_MAX_FL_MASK) +#define ENET_RCR_NLC_MASK (0x40000000U) +#define ENET_RCR_NLC_SHIFT (30U) +#define ENET_RCR_NLC(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_NLC_SHIFT)) & ENET_RCR_NLC_MASK) +#define ENET_RCR_GRS_MASK (0x80000000U) +#define ENET_RCR_GRS_SHIFT (31U) +#define ENET_RCR_GRS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RCR_GRS_SHIFT)) & ENET_RCR_GRS_MASK) + +/*! @name TCR - Transmit Control Register */ +#define ENET_TCR_GTS_MASK (0x1U) +#define ENET_TCR_GTS_SHIFT (0U) +#define ENET_TCR_GTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_GTS_SHIFT)) & ENET_TCR_GTS_MASK) +#define ENET_TCR_FDEN_MASK (0x4U) +#define ENET_TCR_FDEN_SHIFT (2U) +#define ENET_TCR_FDEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_FDEN_SHIFT)) & ENET_TCR_FDEN_MASK) +#define ENET_TCR_TFC_PAUSE_MASK (0x8U) +#define ENET_TCR_TFC_PAUSE_SHIFT (3U) +#define ENET_TCR_TFC_PAUSE(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_TFC_PAUSE_SHIFT)) & ENET_TCR_TFC_PAUSE_MASK) +#define ENET_TCR_RFC_PAUSE_MASK (0x10U) +#define ENET_TCR_RFC_PAUSE_SHIFT (4U) +#define ENET_TCR_RFC_PAUSE(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_RFC_PAUSE_SHIFT)) & ENET_TCR_RFC_PAUSE_MASK) +#define ENET_TCR_ADDSEL_MASK (0xE0U) +#define ENET_TCR_ADDSEL_SHIFT (5U) +#define ENET_TCR_ADDSEL(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_ADDSEL_SHIFT)) & ENET_TCR_ADDSEL_MASK) +#define ENET_TCR_ADDINS_MASK (0x100U) +#define ENET_TCR_ADDINS_SHIFT (8U) +#define ENET_TCR_ADDINS(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_ADDINS_SHIFT)) & ENET_TCR_ADDINS_MASK) +#define ENET_TCR_CRCFWD_MASK (0x200U) +#define ENET_TCR_CRCFWD_SHIFT (9U) +#define ENET_TCR_CRCFWD(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCR_CRCFWD_SHIFT)) & ENET_TCR_CRCFWD_MASK) + +/*! @name PALR - Physical Address Lower Register */ +#define ENET_PALR_PADDR1_MASK (0xFFFFFFFFU) +#define ENET_PALR_PADDR1_SHIFT (0U) +#define ENET_PALR_PADDR1(x) (((uint32_t)(((uint32_t)(x)) << ENET_PALR_PADDR1_SHIFT)) & ENET_PALR_PADDR1_MASK) + +/*! @name PAUR - Physical Address Upper Register */ +#define ENET_PAUR_TYPE_MASK (0xFFFFU) +#define ENET_PAUR_TYPE_SHIFT (0U) +#define ENET_PAUR_TYPE(x) (((uint32_t)(((uint32_t)(x)) << ENET_PAUR_TYPE_SHIFT)) & ENET_PAUR_TYPE_MASK) +#define ENET_PAUR_PADDR2_MASK (0xFFFF0000U) +#define ENET_PAUR_PADDR2_SHIFT (16U) +#define ENET_PAUR_PADDR2(x) (((uint32_t)(((uint32_t)(x)) << ENET_PAUR_PADDR2_SHIFT)) & ENET_PAUR_PADDR2_MASK) + +/*! @name OPD - Opcode/Pause Duration Register */ +#define ENET_OPD_PAUSE_DUR_MASK (0xFFFFU) +#define ENET_OPD_PAUSE_DUR_SHIFT (0U) +#define ENET_OPD_PAUSE_DUR(x) (((uint32_t)(((uint32_t)(x)) << ENET_OPD_PAUSE_DUR_SHIFT)) & ENET_OPD_PAUSE_DUR_MASK) +#define ENET_OPD_OPCODE_MASK (0xFFFF0000U) +#define ENET_OPD_OPCODE_SHIFT (16U) +#define ENET_OPD_OPCODE(x) (((uint32_t)(((uint32_t)(x)) << ENET_OPD_OPCODE_SHIFT)) & ENET_OPD_OPCODE_MASK) + +/*! @name IAUR - Descriptor Individual Upper Address Register */ +#define ENET_IAUR_IADDR1_MASK (0xFFFFFFFFU) +#define ENET_IAUR_IADDR1_SHIFT (0U) +#define ENET_IAUR_IADDR1(x) (((uint32_t)(((uint32_t)(x)) << ENET_IAUR_IADDR1_SHIFT)) & ENET_IAUR_IADDR1_MASK) + +/*! @name IALR - Descriptor Individual Lower Address Register */ +#define ENET_IALR_IADDR2_MASK (0xFFFFFFFFU) +#define ENET_IALR_IADDR2_SHIFT (0U) +#define ENET_IALR_IADDR2(x) (((uint32_t)(((uint32_t)(x)) << ENET_IALR_IADDR2_SHIFT)) & ENET_IALR_IADDR2_MASK) + +/*! @name GAUR - Descriptor Group Upper Address Register */ +#define ENET_GAUR_GADDR1_MASK (0xFFFFFFFFU) +#define ENET_GAUR_GADDR1_SHIFT (0U) +#define ENET_GAUR_GADDR1(x) (((uint32_t)(((uint32_t)(x)) << ENET_GAUR_GADDR1_SHIFT)) & ENET_GAUR_GADDR1_MASK) + +/*! @name GALR - Descriptor Group Lower Address Register */ +#define ENET_GALR_GADDR2_MASK (0xFFFFFFFFU) +#define ENET_GALR_GADDR2_SHIFT (0U) +#define ENET_GALR_GADDR2(x) (((uint32_t)(((uint32_t)(x)) << ENET_GALR_GADDR2_SHIFT)) & ENET_GALR_GADDR2_MASK) + +/*! @name TFWR - Transmit FIFO Watermark Register */ +#define ENET_TFWR_TFWR_MASK (0x3FU) +#define ENET_TFWR_TFWR_SHIFT (0U) +#define ENET_TFWR_TFWR(x) (((uint32_t)(((uint32_t)(x)) << ENET_TFWR_TFWR_SHIFT)) & ENET_TFWR_TFWR_MASK) +#define ENET_TFWR_STRFWD_MASK (0x100U) +#define ENET_TFWR_STRFWD_SHIFT (8U) +#define ENET_TFWR_STRFWD(x) (((uint32_t)(((uint32_t)(x)) << ENET_TFWR_STRFWD_SHIFT)) & ENET_TFWR_STRFWD_MASK) + +/*! @name RDSR - Receive Descriptor Ring Start Register */ +#define ENET_RDSR_R_DES_START_MASK (0xFFFFFFF8U) +#define ENET_RDSR_R_DES_START_SHIFT (3U) +#define ENET_RDSR_R_DES_START(x) (((uint32_t)(((uint32_t)(x)) << ENET_RDSR_R_DES_START_SHIFT)) & ENET_RDSR_R_DES_START_MASK) + +/*! @name TDSR - Transmit Buffer Descriptor Ring Start Register */ +#define ENET_TDSR_X_DES_START_MASK (0xFFFFFFF8U) +#define ENET_TDSR_X_DES_START_SHIFT (3U) +#define ENET_TDSR_X_DES_START(x) (((uint32_t)(((uint32_t)(x)) << ENET_TDSR_X_DES_START_SHIFT)) & ENET_TDSR_X_DES_START_MASK) + +/*! @name MRBR - Maximum Receive Buffer Size Register */ +#define ENET_MRBR_R_BUF_SIZE_MASK (0x3FF0U) +#define ENET_MRBR_R_BUF_SIZE_SHIFT (4U) +#define ENET_MRBR_R_BUF_SIZE(x) (((uint32_t)(((uint32_t)(x)) << ENET_MRBR_R_BUF_SIZE_SHIFT)) & ENET_MRBR_R_BUF_SIZE_MASK) + +/*! @name RSFL - Receive FIFO Section Full Threshold */ +#define ENET_RSFL_RX_SECTION_FULL_MASK (0xFFU) +#define ENET_RSFL_RX_SECTION_FULL_SHIFT (0U) +#define ENET_RSFL_RX_SECTION_FULL(x) (((uint32_t)(((uint32_t)(x)) << ENET_RSFL_RX_SECTION_FULL_SHIFT)) & ENET_RSFL_RX_SECTION_FULL_MASK) + +/*! @name RSEM - Receive FIFO Section Empty Threshold */ +#define ENET_RSEM_RX_SECTION_EMPTY_MASK (0xFFU) +#define ENET_RSEM_RX_SECTION_EMPTY_SHIFT (0U) +#define ENET_RSEM_RX_SECTION_EMPTY(x) (((uint32_t)(((uint32_t)(x)) << ENET_RSEM_RX_SECTION_EMPTY_SHIFT)) & ENET_RSEM_RX_SECTION_EMPTY_MASK) +#define ENET_RSEM_STAT_SECTION_EMPTY_MASK (0x1F0000U) +#define ENET_RSEM_STAT_SECTION_EMPTY_SHIFT (16U) +#define ENET_RSEM_STAT_SECTION_EMPTY(x) (((uint32_t)(((uint32_t)(x)) << ENET_RSEM_STAT_SECTION_EMPTY_SHIFT)) & ENET_RSEM_STAT_SECTION_EMPTY_MASK) + +/*! @name RAEM - Receive FIFO Almost Empty Threshold */ +#define ENET_RAEM_RX_ALMOST_EMPTY_MASK (0xFFU) +#define ENET_RAEM_RX_ALMOST_EMPTY_SHIFT (0U) +#define ENET_RAEM_RX_ALMOST_EMPTY(x) (((uint32_t)(((uint32_t)(x)) << ENET_RAEM_RX_ALMOST_EMPTY_SHIFT)) & ENET_RAEM_RX_ALMOST_EMPTY_MASK) + +/*! @name RAFL - Receive FIFO Almost Full Threshold */ +#define ENET_RAFL_RX_ALMOST_FULL_MASK (0xFFU) +#define ENET_RAFL_RX_ALMOST_FULL_SHIFT (0U) +#define ENET_RAFL_RX_ALMOST_FULL(x) (((uint32_t)(((uint32_t)(x)) << ENET_RAFL_RX_ALMOST_FULL_SHIFT)) & ENET_RAFL_RX_ALMOST_FULL_MASK) + +/*! @name TSEM - Transmit FIFO Section Empty Threshold */ +#define ENET_TSEM_TX_SECTION_EMPTY_MASK (0xFFU) +#define ENET_TSEM_TX_SECTION_EMPTY_SHIFT (0U) +#define ENET_TSEM_TX_SECTION_EMPTY(x) (((uint32_t)(((uint32_t)(x)) << ENET_TSEM_TX_SECTION_EMPTY_SHIFT)) & ENET_TSEM_TX_SECTION_EMPTY_MASK) + +/*! @name TAEM - Transmit FIFO Almost Empty Threshold */ +#define ENET_TAEM_TX_ALMOST_EMPTY_MASK (0xFFU) +#define ENET_TAEM_TX_ALMOST_EMPTY_SHIFT (0U) +#define ENET_TAEM_TX_ALMOST_EMPTY(x) (((uint32_t)(((uint32_t)(x)) << ENET_TAEM_TX_ALMOST_EMPTY_SHIFT)) & ENET_TAEM_TX_ALMOST_EMPTY_MASK) + +/*! @name TAFL - Transmit FIFO Almost Full Threshold */ +#define ENET_TAFL_TX_ALMOST_FULL_MASK (0xFFU) +#define ENET_TAFL_TX_ALMOST_FULL_SHIFT (0U) +#define ENET_TAFL_TX_ALMOST_FULL(x) (((uint32_t)(((uint32_t)(x)) << ENET_TAFL_TX_ALMOST_FULL_SHIFT)) & ENET_TAFL_TX_ALMOST_FULL_MASK) + +/*! @name TIPG - Transmit Inter-Packet Gap */ +#define ENET_TIPG_IPG_MASK (0x1FU) +#define ENET_TIPG_IPG_SHIFT (0U) +#define ENET_TIPG_IPG(x) (((uint32_t)(((uint32_t)(x)) << ENET_TIPG_IPG_SHIFT)) & ENET_TIPG_IPG_MASK) + +/*! @name FTRL - Frame Truncation Length */ +#define ENET_FTRL_TRUNC_FL_MASK (0x3FFFU) +#define ENET_FTRL_TRUNC_FL_SHIFT (0U) +#define ENET_FTRL_TRUNC_FL(x) (((uint32_t)(((uint32_t)(x)) << ENET_FTRL_TRUNC_FL_SHIFT)) & ENET_FTRL_TRUNC_FL_MASK) + +/*! @name TACC - Transmit Accelerator Function Configuration */ +#define ENET_TACC_SHIFT16_MASK (0x1U) +#define ENET_TACC_SHIFT16_SHIFT (0U) +#define ENET_TACC_SHIFT16(x) (((uint32_t)(((uint32_t)(x)) << ENET_TACC_SHIFT16_SHIFT)) & ENET_TACC_SHIFT16_MASK) +#define ENET_TACC_IPCHK_MASK (0x8U) +#define ENET_TACC_IPCHK_SHIFT (3U) +#define ENET_TACC_IPCHK(x) (((uint32_t)(((uint32_t)(x)) << ENET_TACC_IPCHK_SHIFT)) & ENET_TACC_IPCHK_MASK) +#define ENET_TACC_PROCHK_MASK (0x10U) +#define ENET_TACC_PROCHK_SHIFT (4U) +#define ENET_TACC_PROCHK(x) (((uint32_t)(((uint32_t)(x)) << ENET_TACC_PROCHK_SHIFT)) & ENET_TACC_PROCHK_MASK) + +/*! @name RACC - Receive Accelerator Function Configuration */ +#define ENET_RACC_PADREM_MASK (0x1U) +#define ENET_RACC_PADREM_SHIFT (0U) +#define ENET_RACC_PADREM(x) (((uint32_t)(((uint32_t)(x)) << ENET_RACC_PADREM_SHIFT)) & ENET_RACC_PADREM_MASK) +#define ENET_RACC_IPDIS_MASK (0x2U) +#define ENET_RACC_IPDIS_SHIFT (1U) +#define ENET_RACC_IPDIS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RACC_IPDIS_SHIFT)) & ENET_RACC_IPDIS_MASK) +#define ENET_RACC_PRODIS_MASK (0x4U) +#define ENET_RACC_PRODIS_SHIFT (2U) +#define ENET_RACC_PRODIS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RACC_PRODIS_SHIFT)) & ENET_RACC_PRODIS_MASK) +#define ENET_RACC_LINEDIS_MASK (0x40U) +#define ENET_RACC_LINEDIS_SHIFT (6U) +#define ENET_RACC_LINEDIS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RACC_LINEDIS_SHIFT)) & ENET_RACC_LINEDIS_MASK) +#define ENET_RACC_SHIFT16_MASK (0x80U) +#define ENET_RACC_SHIFT16_SHIFT (7U) +#define ENET_RACC_SHIFT16(x) (((uint32_t)(((uint32_t)(x)) << ENET_RACC_SHIFT16_SHIFT)) & ENET_RACC_SHIFT16_MASK) + +/*! @name RMON_T_PACKETS - Tx Packet Count Statistic Register */ +#define ENET_RMON_T_PACKETS_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_PACKETS_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_PACKETS_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_PACKETS_TXPKTS_SHIFT)) & ENET_RMON_T_PACKETS_TXPKTS_MASK) + +/*! @name RMON_T_BC_PKT - Tx Broadcast Packets Statistic Register */ +#define ENET_RMON_T_BC_PKT_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_BC_PKT_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_BC_PKT_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_BC_PKT_TXPKTS_SHIFT)) & ENET_RMON_T_BC_PKT_TXPKTS_MASK) + +/*! @name RMON_T_MC_PKT - Tx Multicast Packets Statistic Register */ +#define ENET_RMON_T_MC_PKT_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_MC_PKT_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_MC_PKT_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_MC_PKT_TXPKTS_SHIFT)) & ENET_RMON_T_MC_PKT_TXPKTS_MASK) + +/*! @name RMON_T_CRC_ALIGN - Tx Packets with CRC/Align Error Statistic Register */ +#define ENET_RMON_T_CRC_ALIGN_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_CRC_ALIGN_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_CRC_ALIGN_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_CRC_ALIGN_TXPKTS_SHIFT)) & ENET_RMON_T_CRC_ALIGN_TXPKTS_MASK) + +/*! @name RMON_T_UNDERSIZE - Tx Packets Less Than Bytes and Good CRC Statistic Register */ +#define ENET_RMON_T_UNDERSIZE_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_UNDERSIZE_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_UNDERSIZE_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_UNDERSIZE_TXPKTS_SHIFT)) & ENET_RMON_T_UNDERSIZE_TXPKTS_MASK) + +/*! @name RMON_T_OVERSIZE - Tx Packets GT MAX_FL bytes and Good CRC Statistic Register */ +#define ENET_RMON_T_OVERSIZE_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_OVERSIZE_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_OVERSIZE_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_OVERSIZE_TXPKTS_SHIFT)) & ENET_RMON_T_OVERSIZE_TXPKTS_MASK) + +/*! @name RMON_T_FRAG - Tx Packets Less Than 64 Bytes and Bad CRC Statistic Register */ +#define ENET_RMON_T_FRAG_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_FRAG_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_FRAG_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_FRAG_TXPKTS_SHIFT)) & ENET_RMON_T_FRAG_TXPKTS_MASK) + +/*! @name RMON_T_JAB - Tx Packets Greater Than MAX_FL bytes and Bad CRC Statistic Register */ +#define ENET_RMON_T_JAB_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_JAB_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_JAB_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_JAB_TXPKTS_SHIFT)) & ENET_RMON_T_JAB_TXPKTS_MASK) + +/*! @name RMON_T_COL - Tx Collision Count Statistic Register */ +#define ENET_RMON_T_COL_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_COL_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_COL_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_COL_TXPKTS_SHIFT)) & ENET_RMON_T_COL_TXPKTS_MASK) + +/*! @name RMON_T_P64 - Tx 64-Byte Packets Statistic Register */ +#define ENET_RMON_T_P64_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P64_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P64_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P64_TXPKTS_SHIFT)) & ENET_RMON_T_P64_TXPKTS_MASK) + +/*! @name RMON_T_P65TO127 - Tx 65- to 127-byte Packets Statistic Register */ +#define ENET_RMON_T_P65TO127_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P65TO127_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P65TO127_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P65TO127_TXPKTS_SHIFT)) & ENET_RMON_T_P65TO127_TXPKTS_MASK) + +/*! @name RMON_T_P128TO255 - Tx 128- to 255-byte Packets Statistic Register */ +#define ENET_RMON_T_P128TO255_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P128TO255_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P128TO255_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P128TO255_TXPKTS_SHIFT)) & ENET_RMON_T_P128TO255_TXPKTS_MASK) + +/*! @name RMON_T_P256TO511 - Tx 256- to 511-byte Packets Statistic Register */ +#define ENET_RMON_T_P256TO511_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P256TO511_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P256TO511_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P256TO511_TXPKTS_SHIFT)) & ENET_RMON_T_P256TO511_TXPKTS_MASK) + +/*! @name RMON_T_P512TO1023 - Tx 512- to 1023-byte Packets Statistic Register */ +#define ENET_RMON_T_P512TO1023_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P512TO1023_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P512TO1023_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P512TO1023_TXPKTS_SHIFT)) & ENET_RMON_T_P512TO1023_TXPKTS_MASK) + +/*! @name RMON_T_P1024TO2047 - Tx 1024- to 2047-byte Packets Statistic Register */ +#define ENET_RMON_T_P1024TO2047_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P1024TO2047_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P1024TO2047_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P1024TO2047_TXPKTS_SHIFT)) & ENET_RMON_T_P1024TO2047_TXPKTS_MASK) + +/*! @name RMON_T_P_GTE2048 - Tx Packets Greater Than 2048 Bytes Statistic Register */ +#define ENET_RMON_T_P_GTE2048_TXPKTS_MASK (0xFFFFU) +#define ENET_RMON_T_P_GTE2048_TXPKTS_SHIFT (0U) +#define ENET_RMON_T_P_GTE2048_TXPKTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_P_GTE2048_TXPKTS_SHIFT)) & ENET_RMON_T_P_GTE2048_TXPKTS_MASK) + +/*! @name RMON_T_OCTETS - Tx Octets Statistic Register */ +#define ENET_RMON_T_OCTETS_TXOCTS_MASK (0xFFFFFFFFU) +#define ENET_RMON_T_OCTETS_TXOCTS_SHIFT (0U) +#define ENET_RMON_T_OCTETS_TXOCTS(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_T_OCTETS_TXOCTS_SHIFT)) & ENET_RMON_T_OCTETS_TXOCTS_MASK) + +/*! @name IEEE_T_FRAME_OK - Frames Transmitted OK Statistic Register */ +#define ENET_IEEE_T_FRAME_OK_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_FRAME_OK_COUNT_SHIFT (0U) +#define ENET_IEEE_T_FRAME_OK_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_FRAME_OK_COUNT_SHIFT)) & ENET_IEEE_T_FRAME_OK_COUNT_MASK) + +/*! @name IEEE_T_1COL - Frames Transmitted with Single Collision Statistic Register */ +#define ENET_IEEE_T_1COL_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_1COL_COUNT_SHIFT (0U) +#define ENET_IEEE_T_1COL_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_1COL_COUNT_SHIFT)) & ENET_IEEE_T_1COL_COUNT_MASK) + +/*! @name IEEE_T_MCOL - Frames Transmitted with Multiple Collisions Statistic Register */ +#define ENET_IEEE_T_MCOL_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_MCOL_COUNT_SHIFT (0U) +#define ENET_IEEE_T_MCOL_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_MCOL_COUNT_SHIFT)) & ENET_IEEE_T_MCOL_COUNT_MASK) + +/*! @name IEEE_T_DEF - Frames Transmitted after Deferral Delay Statistic Register */ +#define ENET_IEEE_T_DEF_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_DEF_COUNT_SHIFT (0U) +#define ENET_IEEE_T_DEF_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_DEF_COUNT_SHIFT)) & ENET_IEEE_T_DEF_COUNT_MASK) + +/*! @name IEEE_T_LCOL - Frames Transmitted with Late Collision Statistic Register */ +#define ENET_IEEE_T_LCOL_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_LCOL_COUNT_SHIFT (0U) +#define ENET_IEEE_T_LCOL_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_LCOL_COUNT_SHIFT)) & ENET_IEEE_T_LCOL_COUNT_MASK) + +/*! @name IEEE_T_EXCOL - Frames Transmitted with Excessive Collisions Statistic Register */ +#define ENET_IEEE_T_EXCOL_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_EXCOL_COUNT_SHIFT (0U) +#define ENET_IEEE_T_EXCOL_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_EXCOL_COUNT_SHIFT)) & ENET_IEEE_T_EXCOL_COUNT_MASK) + +/*! @name IEEE_T_MACERR - Frames Transmitted with Tx FIFO Underrun Statistic Register */ +#define ENET_IEEE_T_MACERR_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_MACERR_COUNT_SHIFT (0U) +#define ENET_IEEE_T_MACERR_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_MACERR_COUNT_SHIFT)) & ENET_IEEE_T_MACERR_COUNT_MASK) + +/*! @name IEEE_T_CSERR - Frames Transmitted with Carrier Sense Error Statistic Register */ +#define ENET_IEEE_T_CSERR_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_CSERR_COUNT_SHIFT (0U) +#define ENET_IEEE_T_CSERR_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_CSERR_COUNT_SHIFT)) & ENET_IEEE_T_CSERR_COUNT_MASK) + +/*! @name IEEE_T_FDXFC - Flow Control Pause Frames Transmitted Statistic Register */ +#define ENET_IEEE_T_FDXFC_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_T_FDXFC_COUNT_SHIFT (0U) +#define ENET_IEEE_T_FDXFC_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_FDXFC_COUNT_SHIFT)) & ENET_IEEE_T_FDXFC_COUNT_MASK) + +/*! @name IEEE_T_OCTETS_OK - Octet Count for Frames Transmitted w/o Error Statistic Register */ +#define ENET_IEEE_T_OCTETS_OK_COUNT_MASK (0xFFFFFFFFU) +#define ENET_IEEE_T_OCTETS_OK_COUNT_SHIFT (0U) +#define ENET_IEEE_T_OCTETS_OK_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_T_OCTETS_OK_COUNT_SHIFT)) & ENET_IEEE_T_OCTETS_OK_COUNT_MASK) + +/*! @name RMON_R_PACKETS - Rx Packet Count Statistic Register */ +#define ENET_RMON_R_PACKETS_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_PACKETS_COUNT_SHIFT (0U) +#define ENET_RMON_R_PACKETS_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_PACKETS_COUNT_SHIFT)) & ENET_RMON_R_PACKETS_COUNT_MASK) + +/*! @name RMON_R_BC_PKT - Rx Broadcast Packets Statistic Register */ +#define ENET_RMON_R_BC_PKT_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_BC_PKT_COUNT_SHIFT (0U) +#define ENET_RMON_R_BC_PKT_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_BC_PKT_COUNT_SHIFT)) & ENET_RMON_R_BC_PKT_COUNT_MASK) + +/*! @name RMON_R_MC_PKT - Rx Multicast Packets Statistic Register */ +#define ENET_RMON_R_MC_PKT_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_MC_PKT_COUNT_SHIFT (0U) +#define ENET_RMON_R_MC_PKT_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_MC_PKT_COUNT_SHIFT)) & ENET_RMON_R_MC_PKT_COUNT_MASK) + +/*! @name RMON_R_CRC_ALIGN - Rx Packets with CRC/Align Error Statistic Register */ +#define ENET_RMON_R_CRC_ALIGN_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_CRC_ALIGN_COUNT_SHIFT (0U) +#define ENET_RMON_R_CRC_ALIGN_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_CRC_ALIGN_COUNT_SHIFT)) & ENET_RMON_R_CRC_ALIGN_COUNT_MASK) + +/*! @name RMON_R_UNDERSIZE - Rx Packets with Less Than 64 Bytes and Good CRC Statistic Register */ +#define ENET_RMON_R_UNDERSIZE_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_UNDERSIZE_COUNT_SHIFT (0U) +#define ENET_RMON_R_UNDERSIZE_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_UNDERSIZE_COUNT_SHIFT)) & ENET_RMON_R_UNDERSIZE_COUNT_MASK) + +/*! @name RMON_R_OVERSIZE - Rx Packets Greater Than MAX_FL and Good CRC Statistic Register */ +#define ENET_RMON_R_OVERSIZE_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_OVERSIZE_COUNT_SHIFT (0U) +#define ENET_RMON_R_OVERSIZE_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_OVERSIZE_COUNT_SHIFT)) & ENET_RMON_R_OVERSIZE_COUNT_MASK) + +/*! @name RMON_R_FRAG - Rx Packets Less Than 64 Bytes and Bad CRC Statistic Register */ +#define ENET_RMON_R_FRAG_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_FRAG_COUNT_SHIFT (0U) +#define ENET_RMON_R_FRAG_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_FRAG_COUNT_SHIFT)) & ENET_RMON_R_FRAG_COUNT_MASK) + +/*! @name RMON_R_JAB - Rx Packets Greater Than MAX_FL Bytes and Bad CRC Statistic Register */ +#define ENET_RMON_R_JAB_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_JAB_COUNT_SHIFT (0U) +#define ENET_RMON_R_JAB_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_JAB_COUNT_SHIFT)) & ENET_RMON_R_JAB_COUNT_MASK) + +/*! @name RMON_R_P64 - Rx 64-Byte Packets Statistic Register */ +#define ENET_RMON_R_P64_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P64_COUNT_SHIFT (0U) +#define ENET_RMON_R_P64_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P64_COUNT_SHIFT)) & ENET_RMON_R_P64_COUNT_MASK) + +/*! @name RMON_R_P65TO127 - Rx 65- to 127-Byte Packets Statistic Register */ +#define ENET_RMON_R_P65TO127_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P65TO127_COUNT_SHIFT (0U) +#define ENET_RMON_R_P65TO127_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P65TO127_COUNT_SHIFT)) & ENET_RMON_R_P65TO127_COUNT_MASK) + +/*! @name RMON_R_P128TO255 - Rx 128- to 255-Byte Packets Statistic Register */ +#define ENET_RMON_R_P128TO255_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P128TO255_COUNT_SHIFT (0U) +#define ENET_RMON_R_P128TO255_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P128TO255_COUNT_SHIFT)) & ENET_RMON_R_P128TO255_COUNT_MASK) + +/*! @name RMON_R_P256TO511 - Rx 256- to 511-Byte Packets Statistic Register */ +#define ENET_RMON_R_P256TO511_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P256TO511_COUNT_SHIFT (0U) +#define ENET_RMON_R_P256TO511_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P256TO511_COUNT_SHIFT)) & ENET_RMON_R_P256TO511_COUNT_MASK) + +/*! @name RMON_R_P512TO1023 - Rx 512- to 1023-Byte Packets Statistic Register */ +#define ENET_RMON_R_P512TO1023_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P512TO1023_COUNT_SHIFT (0U) +#define ENET_RMON_R_P512TO1023_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P512TO1023_COUNT_SHIFT)) & ENET_RMON_R_P512TO1023_COUNT_MASK) + +/*! @name RMON_R_P1024TO2047 - Rx 1024- to 2047-Byte Packets Statistic Register */ +#define ENET_RMON_R_P1024TO2047_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P1024TO2047_COUNT_SHIFT (0U) +#define ENET_RMON_R_P1024TO2047_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P1024TO2047_COUNT_SHIFT)) & ENET_RMON_R_P1024TO2047_COUNT_MASK) + +/*! @name RMON_R_P_GTE2048 - Rx Packets Greater than 2048 Bytes Statistic Register */ +#define ENET_RMON_R_P_GTE2048_COUNT_MASK (0xFFFFU) +#define ENET_RMON_R_P_GTE2048_COUNT_SHIFT (0U) +#define ENET_RMON_R_P_GTE2048_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_P_GTE2048_COUNT_SHIFT)) & ENET_RMON_R_P_GTE2048_COUNT_MASK) + +/*! @name RMON_R_OCTETS - Rx Octets Statistic Register */ +#define ENET_RMON_R_OCTETS_COUNT_MASK (0xFFFFFFFFU) +#define ENET_RMON_R_OCTETS_COUNT_SHIFT (0U) +#define ENET_RMON_R_OCTETS_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_RMON_R_OCTETS_COUNT_SHIFT)) & ENET_RMON_R_OCTETS_COUNT_MASK) + +/*! @name IEEE_R_DROP - Frames not Counted Correctly Statistic Register */ +#define ENET_IEEE_R_DROP_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_R_DROP_COUNT_SHIFT (0U) +#define ENET_IEEE_R_DROP_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_DROP_COUNT_SHIFT)) & ENET_IEEE_R_DROP_COUNT_MASK) + +/*! @name IEEE_R_FRAME_OK - Frames Received OK Statistic Register */ +#define ENET_IEEE_R_FRAME_OK_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_R_FRAME_OK_COUNT_SHIFT (0U) +#define ENET_IEEE_R_FRAME_OK_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_FRAME_OK_COUNT_SHIFT)) & ENET_IEEE_R_FRAME_OK_COUNT_MASK) + +/*! @name IEEE_R_CRC - Frames Received with CRC Error Statistic Register */ +#define ENET_IEEE_R_CRC_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_R_CRC_COUNT_SHIFT (0U) +#define ENET_IEEE_R_CRC_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_CRC_COUNT_SHIFT)) & ENET_IEEE_R_CRC_COUNT_MASK) + +/*! @name IEEE_R_ALIGN - Frames Received with Alignment Error Statistic Register */ +#define ENET_IEEE_R_ALIGN_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_R_ALIGN_COUNT_SHIFT (0U) +#define ENET_IEEE_R_ALIGN_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_ALIGN_COUNT_SHIFT)) & ENET_IEEE_R_ALIGN_COUNT_MASK) + +/*! @name IEEE_R_MACERR - Receive FIFO Overflow Count Statistic Register */ +#define ENET_IEEE_R_MACERR_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_R_MACERR_COUNT_SHIFT (0U) +#define ENET_IEEE_R_MACERR_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_MACERR_COUNT_SHIFT)) & ENET_IEEE_R_MACERR_COUNT_MASK) + +/*! @name IEEE_R_FDXFC - Flow Control Pause Frames Received Statistic Register */ +#define ENET_IEEE_R_FDXFC_COUNT_MASK (0xFFFFU) +#define ENET_IEEE_R_FDXFC_COUNT_SHIFT (0U) +#define ENET_IEEE_R_FDXFC_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_FDXFC_COUNT_SHIFT)) & ENET_IEEE_R_FDXFC_COUNT_MASK) + +/*! @name IEEE_R_OCTETS_OK - Octet Count for Frames Received without Error Statistic Register */ +#define ENET_IEEE_R_OCTETS_OK_COUNT_MASK (0xFFFFFFFFU) +#define ENET_IEEE_R_OCTETS_OK_COUNT_SHIFT (0U) +#define ENET_IEEE_R_OCTETS_OK_COUNT(x) (((uint32_t)(((uint32_t)(x)) << ENET_IEEE_R_OCTETS_OK_COUNT_SHIFT)) & ENET_IEEE_R_OCTETS_OK_COUNT_MASK) + +/*! @name ATCR - Adjustable Timer Control Register */ +#define ENET_ATCR_EN_MASK (0x1U) +#define ENET_ATCR_EN_SHIFT (0U) +#define ENET_ATCR_EN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_EN_SHIFT)) & ENET_ATCR_EN_MASK) +#define ENET_ATCR_OFFEN_MASK (0x4U) +#define ENET_ATCR_OFFEN_SHIFT (2U) +#define ENET_ATCR_OFFEN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_OFFEN_SHIFT)) & ENET_ATCR_OFFEN_MASK) +#define ENET_ATCR_OFFRST_MASK (0x8U) +#define ENET_ATCR_OFFRST_SHIFT (3U) +#define ENET_ATCR_OFFRST(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_OFFRST_SHIFT)) & ENET_ATCR_OFFRST_MASK) +#define ENET_ATCR_PEREN_MASK (0x10U) +#define ENET_ATCR_PEREN_SHIFT (4U) +#define ENET_ATCR_PEREN(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_PEREN_SHIFT)) & ENET_ATCR_PEREN_MASK) +#define ENET_ATCR_PINPER_MASK (0x80U) +#define ENET_ATCR_PINPER_SHIFT (7U) +#define ENET_ATCR_PINPER(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_PINPER_SHIFT)) & ENET_ATCR_PINPER_MASK) +#define ENET_ATCR_RESTART_MASK (0x200U) +#define ENET_ATCR_RESTART_SHIFT (9U) +#define ENET_ATCR_RESTART(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_RESTART_SHIFT)) & ENET_ATCR_RESTART_MASK) +#define ENET_ATCR_CAPTURE_MASK (0x800U) +#define ENET_ATCR_CAPTURE_SHIFT (11U) +#define ENET_ATCR_CAPTURE(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_CAPTURE_SHIFT)) & ENET_ATCR_CAPTURE_MASK) +#define ENET_ATCR_SLAVE_MASK (0x2000U) +#define ENET_ATCR_SLAVE_SHIFT (13U) +#define ENET_ATCR_SLAVE(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCR_SLAVE_SHIFT)) & ENET_ATCR_SLAVE_MASK) + +/*! @name ATVR - Timer Value Register */ +#define ENET_ATVR_ATIME_MASK (0xFFFFFFFFU) +#define ENET_ATVR_ATIME_SHIFT (0U) +#define ENET_ATVR_ATIME(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATVR_ATIME_SHIFT)) & ENET_ATVR_ATIME_MASK) + +/*! @name ATOFF - Timer Offset Register */ +#define ENET_ATOFF_OFFSET_MASK (0xFFFFFFFFU) +#define ENET_ATOFF_OFFSET_SHIFT (0U) +#define ENET_ATOFF_OFFSET(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATOFF_OFFSET_SHIFT)) & ENET_ATOFF_OFFSET_MASK) + +/*! @name ATPER - Timer Period Register */ +#define ENET_ATPER_PERIOD_MASK (0xFFFFFFFFU) +#define ENET_ATPER_PERIOD_SHIFT (0U) +#define ENET_ATPER_PERIOD(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATPER_PERIOD_SHIFT)) & ENET_ATPER_PERIOD_MASK) + +/*! @name ATCOR - Timer Correction Register */ +#define ENET_ATCOR_COR_MASK (0x7FFFFFFFU) +#define ENET_ATCOR_COR_SHIFT (0U) +#define ENET_ATCOR_COR(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATCOR_COR_SHIFT)) & ENET_ATCOR_COR_MASK) + +/*! @name ATINC - Time-Stamping Clock Period Register */ +#define ENET_ATINC_INC_MASK (0x7FU) +#define ENET_ATINC_INC_SHIFT (0U) +#define ENET_ATINC_INC(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATINC_INC_SHIFT)) & ENET_ATINC_INC_MASK) +#define ENET_ATINC_INC_CORR_MASK (0x7F00U) +#define ENET_ATINC_INC_CORR_SHIFT (8U) +#define ENET_ATINC_INC_CORR(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATINC_INC_CORR_SHIFT)) & ENET_ATINC_INC_CORR_MASK) + +/*! @name ATSTMP - Timestamp of Last Transmitted Frame */ +#define ENET_ATSTMP_TIMESTAMP_MASK (0xFFFFFFFFU) +#define ENET_ATSTMP_TIMESTAMP_SHIFT (0U) +#define ENET_ATSTMP_TIMESTAMP(x) (((uint32_t)(((uint32_t)(x)) << ENET_ATSTMP_TIMESTAMP_SHIFT)) & ENET_ATSTMP_TIMESTAMP_MASK) + +/*! @name TGSR - Timer Global Status Register */ +#define ENET_TGSR_TF0_MASK (0x1U) +#define ENET_TGSR_TF0_SHIFT (0U) +#define ENET_TGSR_TF0(x) (((uint32_t)(((uint32_t)(x)) << ENET_TGSR_TF0_SHIFT)) & ENET_TGSR_TF0_MASK) +#define ENET_TGSR_TF1_MASK (0x2U) +#define ENET_TGSR_TF1_SHIFT (1U) +#define ENET_TGSR_TF1(x) (((uint32_t)(((uint32_t)(x)) << ENET_TGSR_TF1_SHIFT)) & ENET_TGSR_TF1_MASK) +#define ENET_TGSR_TF2_MASK (0x4U) +#define ENET_TGSR_TF2_SHIFT (2U) +#define ENET_TGSR_TF2(x) (((uint32_t)(((uint32_t)(x)) << ENET_TGSR_TF2_SHIFT)) & ENET_TGSR_TF2_MASK) +#define ENET_TGSR_TF3_MASK (0x8U) +#define ENET_TGSR_TF3_SHIFT (3U) +#define ENET_TGSR_TF3(x) (((uint32_t)(((uint32_t)(x)) << ENET_TGSR_TF3_SHIFT)) & ENET_TGSR_TF3_MASK) + +/*! @name TCSR - Timer Control Status Register */ +#define ENET_TCSR_TDRE_MASK (0x1U) +#define ENET_TCSR_TDRE_SHIFT (0U) +#define ENET_TCSR_TDRE(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCSR_TDRE_SHIFT)) & ENET_TCSR_TDRE_MASK) +#define ENET_TCSR_TMODE_MASK (0x3CU) +#define ENET_TCSR_TMODE_SHIFT (2U) +#define ENET_TCSR_TMODE(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCSR_TMODE_SHIFT)) & ENET_TCSR_TMODE_MASK) +#define ENET_TCSR_TIE_MASK (0x40U) +#define ENET_TCSR_TIE_SHIFT (6U) +#define ENET_TCSR_TIE(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCSR_TIE_SHIFT)) & ENET_TCSR_TIE_MASK) +#define ENET_TCSR_TF_MASK (0x80U) +#define ENET_TCSR_TF_SHIFT (7U) +#define ENET_TCSR_TF(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCSR_TF_SHIFT)) & ENET_TCSR_TF_MASK) + +/* The count of ENET_TCSR */ +#define ENET_TCSR_COUNT (4U) + +/*! @name TCCR - Timer Compare Capture Register */ +#define ENET_TCCR_TCC_MASK (0xFFFFFFFFU) +#define ENET_TCCR_TCC_SHIFT (0U) +#define ENET_TCCR_TCC(x) (((uint32_t)(((uint32_t)(x)) << ENET_TCCR_TCC_SHIFT)) & ENET_TCCR_TCC_MASK) + +/* The count of ENET_TCCR */ +#define ENET_TCCR_COUNT (4U) + + +/*! + * @} + */ /* end of group ENET_Register_Masks */ + + +/* ENET - Peripheral instance base addresses */ +/** Peripheral ENET base address */ +#define ENET_BASE (0x400C0000u) +/** Peripheral ENET base pointer */ +#define ENET ((ENET_Type *)ENET_BASE) +/** Array initializer of ENET peripheral base addresses */ +#define ENET_BASE_ADDRS { ENET_BASE } +/** Array initializer of ENET peripheral base pointers */ +#define ENET_BASE_PTRS { ENET } +/** Interrupt vectors for the ENET peripheral type */ +#define ENET_Transmit_IRQS { ENET_Transmit_IRQn } +#define ENET_Receive_IRQS { ENET_Receive_IRQn } +#define ENET_Error_IRQS { ENET_Error_IRQn } +#define ENET_1588_Timer_IRQS { ENET_1588_Timer_IRQn } + +/*! + * @} + */ /* end of group ENET_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- EWM Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup EWM_Peripheral_Access_Layer EWM Peripheral Access Layer + * @{ + */ + +/** EWM - Register Layout Typedef */ +typedef struct { + __IO uint8_t CTRL; /**< Control Register, offset: 0x0 */ + __O uint8_t SERV; /**< Service Register, offset: 0x1 */ + __IO uint8_t CMPL; /**< Compare Low Register, offset: 0x2 */ + __IO uint8_t CMPH; /**< Compare High Register, offset: 0x3 */ +} EWM_Type; + +/* ---------------------------------------------------------------------------- + -- EWM Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup EWM_Register_Masks EWM Register Masks + * @{ + */ + +/*! @name CTRL - Control Register */ +#define EWM_CTRL_EWMEN_MASK (0x1U) +#define EWM_CTRL_EWMEN_SHIFT (0U) +#define EWM_CTRL_EWMEN(x) (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_EWMEN_SHIFT)) & EWM_CTRL_EWMEN_MASK) +#define EWM_CTRL_ASSIN_MASK (0x2U) +#define EWM_CTRL_ASSIN_SHIFT (1U) +#define EWM_CTRL_ASSIN(x) (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_ASSIN_SHIFT)) & EWM_CTRL_ASSIN_MASK) +#define EWM_CTRL_INEN_MASK (0x4U) +#define EWM_CTRL_INEN_SHIFT (2U) +#define EWM_CTRL_INEN(x) (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_INEN_SHIFT)) & EWM_CTRL_INEN_MASK) +#define EWM_CTRL_INTEN_MASK (0x8U) +#define EWM_CTRL_INTEN_SHIFT (3U) +#define EWM_CTRL_INTEN(x) (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_INTEN_SHIFT)) & EWM_CTRL_INTEN_MASK) + +/*! @name SERV - Service Register */ +#define EWM_SERV_SERVICE_MASK (0xFFU) +#define EWM_SERV_SERVICE_SHIFT (0U) +#define EWM_SERV_SERVICE(x) (((uint8_t)(((uint8_t)(x)) << EWM_SERV_SERVICE_SHIFT)) & EWM_SERV_SERVICE_MASK) + +/*! @name CMPL - Compare Low Register */ +#define EWM_CMPL_COMPAREL_MASK (0xFFU) +#define EWM_CMPL_COMPAREL_SHIFT (0U) +#define EWM_CMPL_COMPAREL(x) (((uint8_t)(((uint8_t)(x)) << EWM_CMPL_COMPAREL_SHIFT)) & EWM_CMPL_COMPAREL_MASK) + +/*! @name CMPH - Compare High Register */ +#define EWM_CMPH_COMPAREH_MASK (0xFFU) +#define EWM_CMPH_COMPAREH_SHIFT (0U) +#define EWM_CMPH_COMPAREH(x) (((uint8_t)(((uint8_t)(x)) << EWM_CMPH_COMPAREH_SHIFT)) & EWM_CMPH_COMPAREH_MASK) + + +/*! + * @} + */ /* end of group EWM_Register_Masks */ + + +/* EWM - Peripheral instance base addresses */ +/** Peripheral EWM base address */ +#define EWM_BASE (0x40061000u) +/** Peripheral EWM base pointer */ +#define EWM ((EWM_Type *)EWM_BASE) +/** Array initializer of EWM peripheral base addresses */ +#define EWM_BASE_ADDRS { EWM_BASE } +/** Array initializer of EWM peripheral base pointers */ +#define EWM_BASE_PTRS { EWM } +/** Interrupt vectors for the EWM peripheral type */ +#define EWM_IRQS { WDOG_EWM_IRQn } + +/*! + * @} + */ /* end of group EWM_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- FB Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FB_Peripheral_Access_Layer FB Peripheral Access Layer + * @{ + */ + +/** FB - Register Layout Typedef */ +typedef struct { + struct { /* offset: 0x0, array step: 0xC */ + __IO uint32_t CSAR; /**< Chip Select Address Register, array offset: 0x0, array step: 0xC */ + __IO uint32_t CSMR; /**< Chip Select Mask Register, array offset: 0x4, array step: 0xC */ + __IO uint32_t CSCR; /**< Chip Select Control Register, array offset: 0x8, array step: 0xC */ + } CS[6]; + uint8_t RESERVED_0[24]; + __IO uint32_t CSPMCR; /**< Chip Select port Multiplexing Control Register, offset: 0x60 */ +} FB_Type; + +/* ---------------------------------------------------------------------------- + -- FB Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FB_Register_Masks FB Register Masks + * @{ + */ + +/*! @name CSAR - Chip Select Address Register */ +#define FB_CSAR_BA_MASK (0xFFFF0000U) +#define FB_CSAR_BA_SHIFT (16U) +#define FB_CSAR_BA(x) (((uint32_t)(((uint32_t)(x)) << FB_CSAR_BA_SHIFT)) & FB_CSAR_BA_MASK) + +/* The count of FB_CSAR */ +#define FB_CSAR_COUNT (6U) + +/*! @name CSMR - Chip Select Mask Register */ +#define FB_CSMR_V_MASK (0x1U) +#define FB_CSMR_V_SHIFT (0U) +#define FB_CSMR_V(x) (((uint32_t)(((uint32_t)(x)) << FB_CSMR_V_SHIFT)) & FB_CSMR_V_MASK) +#define FB_CSMR_WP_MASK (0x100U) +#define FB_CSMR_WP_SHIFT (8U) +#define FB_CSMR_WP(x) (((uint32_t)(((uint32_t)(x)) << FB_CSMR_WP_SHIFT)) & FB_CSMR_WP_MASK) +#define FB_CSMR_BAM_MASK (0xFFFF0000U) +#define FB_CSMR_BAM_SHIFT (16U) +#define FB_CSMR_BAM(x) (((uint32_t)(((uint32_t)(x)) << FB_CSMR_BAM_SHIFT)) & FB_CSMR_BAM_MASK) + +/* The count of FB_CSMR */ +#define FB_CSMR_COUNT (6U) + +/*! @name CSCR - Chip Select Control Register */ +#define FB_CSCR_BSTW_MASK (0x8U) +#define FB_CSCR_BSTW_SHIFT (3U) +#define FB_CSCR_BSTW(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BSTW_SHIFT)) & FB_CSCR_BSTW_MASK) +#define FB_CSCR_BSTR_MASK (0x10U) +#define FB_CSCR_BSTR_SHIFT (4U) +#define FB_CSCR_BSTR(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BSTR_SHIFT)) & FB_CSCR_BSTR_MASK) +#define FB_CSCR_BEM_MASK (0x20U) +#define FB_CSCR_BEM_SHIFT (5U) +#define FB_CSCR_BEM(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BEM_SHIFT)) & FB_CSCR_BEM_MASK) +#define FB_CSCR_PS_MASK (0xC0U) +#define FB_CSCR_PS_SHIFT (6U) +#define FB_CSCR_PS(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_PS_SHIFT)) & FB_CSCR_PS_MASK) +#define FB_CSCR_AA_MASK (0x100U) +#define FB_CSCR_AA_SHIFT (8U) +#define FB_CSCR_AA(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_AA_SHIFT)) & FB_CSCR_AA_MASK) +#define FB_CSCR_BLS_MASK (0x200U) +#define FB_CSCR_BLS_SHIFT (9U) +#define FB_CSCR_BLS(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BLS_SHIFT)) & FB_CSCR_BLS_MASK) +#define FB_CSCR_WS_MASK (0xFC00U) +#define FB_CSCR_WS_SHIFT (10U) +#define FB_CSCR_WS(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_WS_SHIFT)) & FB_CSCR_WS_MASK) +#define FB_CSCR_WRAH_MASK (0x30000U) +#define FB_CSCR_WRAH_SHIFT (16U) +#define FB_CSCR_WRAH(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_WRAH_SHIFT)) & FB_CSCR_WRAH_MASK) +#define FB_CSCR_RDAH_MASK (0xC0000U) +#define FB_CSCR_RDAH_SHIFT (18U) +#define FB_CSCR_RDAH(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_RDAH_SHIFT)) & FB_CSCR_RDAH_MASK) +#define FB_CSCR_ASET_MASK (0x300000U) +#define FB_CSCR_ASET_SHIFT (20U) +#define FB_CSCR_ASET(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_ASET_SHIFT)) & FB_CSCR_ASET_MASK) +#define FB_CSCR_EXTS_MASK (0x400000U) +#define FB_CSCR_EXTS_SHIFT (22U) +#define FB_CSCR_EXTS(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_EXTS_SHIFT)) & FB_CSCR_EXTS_MASK) +#define FB_CSCR_SWSEN_MASK (0x800000U) +#define FB_CSCR_SWSEN_SHIFT (23U) +#define FB_CSCR_SWSEN(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_SWSEN_SHIFT)) & FB_CSCR_SWSEN_MASK) +#define FB_CSCR_SWS_MASK (0xFC000000U) +#define FB_CSCR_SWS_SHIFT (26U) +#define FB_CSCR_SWS(x) (((uint32_t)(((uint32_t)(x)) << FB_CSCR_SWS_SHIFT)) & FB_CSCR_SWS_MASK) + +/* The count of FB_CSCR */ +#define FB_CSCR_COUNT (6U) + +/*! @name CSPMCR - Chip Select port Multiplexing Control Register */ +#define FB_CSPMCR_GROUP5_MASK (0xF000U) +#define FB_CSPMCR_GROUP5_SHIFT (12U) +#define FB_CSPMCR_GROUP5(x) (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP5_SHIFT)) & FB_CSPMCR_GROUP5_MASK) +#define FB_CSPMCR_GROUP4_MASK (0xF0000U) +#define FB_CSPMCR_GROUP4_SHIFT (16U) +#define FB_CSPMCR_GROUP4(x) (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP4_SHIFT)) & FB_CSPMCR_GROUP4_MASK) +#define FB_CSPMCR_GROUP3_MASK (0xF00000U) +#define FB_CSPMCR_GROUP3_SHIFT (20U) +#define FB_CSPMCR_GROUP3(x) (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP3_SHIFT)) & FB_CSPMCR_GROUP3_MASK) +#define FB_CSPMCR_GROUP2_MASK (0xF000000U) +#define FB_CSPMCR_GROUP2_SHIFT (24U) +#define FB_CSPMCR_GROUP2(x) (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP2_SHIFT)) & FB_CSPMCR_GROUP2_MASK) +#define FB_CSPMCR_GROUP1_MASK (0xF0000000U) +#define FB_CSPMCR_GROUP1_SHIFT (28U) +#define FB_CSPMCR_GROUP1(x) (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP1_SHIFT)) & FB_CSPMCR_GROUP1_MASK) + + +/*! + * @} + */ /* end of group FB_Register_Masks */ + + +/* FB - Peripheral instance base addresses */ +/** Peripheral FB base address */ +#define FB_BASE (0x4000C000u) +/** Peripheral FB base pointer */ +#define FB ((FB_Type *)FB_BASE) +/** Array initializer of FB peripheral base addresses */ +#define FB_BASE_ADDRS { FB_BASE } +/** Array initializer of FB peripheral base pointers */ +#define FB_BASE_PTRS { FB } + +/*! + * @} + */ /* end of group FB_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- FMC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FMC_Peripheral_Access_Layer FMC Peripheral Access Layer + * @{ + */ + +/** FMC - Register Layout Typedef */ +typedef struct { + __IO uint32_t PFAPR; /**< Flash Access Protection Register, offset: 0x0 */ + __IO uint32_t PFB0CR; /**< Flash Bank 0 Control Register, offset: 0x4 */ + __IO uint32_t PFB1CR; /**< Flash Bank 1 Control Register, offset: 0x8 */ + uint8_t RESERVED_0[244]; + __IO uint32_t TAGVDW0S[4]; /**< Cache Tag Storage, array offset: 0x100, array step: 0x4 */ + __IO uint32_t TAGVDW1S[4]; /**< Cache Tag Storage, array offset: 0x110, array step: 0x4 */ + __IO uint32_t TAGVDW2S[4]; /**< Cache Tag Storage, array offset: 0x120, array step: 0x4 */ + __IO uint32_t TAGVDW3S[4]; /**< Cache Tag Storage, array offset: 0x130, array step: 0x4 */ + uint8_t RESERVED_1[192]; + struct { /* offset: 0x200, array step: index*0x20, index2*0x8 */ + __IO uint32_t DATA_U; /**< Cache Data Storage (upper word), array offset: 0x200, array step: index*0x20, index2*0x8 */ + __IO uint32_t DATA_L; /**< Cache Data Storage (lower word), array offset: 0x204, array step: index*0x20, index2*0x8 */ + } SET[4][4]; +} FMC_Type; + +/* ---------------------------------------------------------------------------- + -- FMC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FMC_Register_Masks FMC Register Masks + * @{ + */ + +/*! @name PFAPR - Flash Access Protection Register */ +#define FMC_PFAPR_M0AP_MASK (0x3U) +#define FMC_PFAPR_M0AP_SHIFT (0U) +#define FMC_PFAPR_M0AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M0AP_SHIFT)) & FMC_PFAPR_M0AP_MASK) +#define FMC_PFAPR_M1AP_MASK (0xCU) +#define FMC_PFAPR_M1AP_SHIFT (2U) +#define FMC_PFAPR_M1AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M1AP_SHIFT)) & FMC_PFAPR_M1AP_MASK) +#define FMC_PFAPR_M2AP_MASK (0x30U) +#define FMC_PFAPR_M2AP_SHIFT (4U) +#define FMC_PFAPR_M2AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M2AP_SHIFT)) & FMC_PFAPR_M2AP_MASK) +#define FMC_PFAPR_M3AP_MASK (0xC0U) +#define FMC_PFAPR_M3AP_SHIFT (6U) +#define FMC_PFAPR_M3AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M3AP_SHIFT)) & FMC_PFAPR_M3AP_MASK) +#define FMC_PFAPR_M4AP_MASK (0x300U) +#define FMC_PFAPR_M4AP_SHIFT (8U) +#define FMC_PFAPR_M4AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M4AP_SHIFT)) & FMC_PFAPR_M4AP_MASK) +#define FMC_PFAPR_M5AP_MASK (0xC00U) +#define FMC_PFAPR_M5AP_SHIFT (10U) +#define FMC_PFAPR_M5AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M5AP_SHIFT)) & FMC_PFAPR_M5AP_MASK) +#define FMC_PFAPR_M6AP_MASK (0x3000U) +#define FMC_PFAPR_M6AP_SHIFT (12U) +#define FMC_PFAPR_M6AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M6AP_SHIFT)) & FMC_PFAPR_M6AP_MASK) +#define FMC_PFAPR_M7AP_MASK (0xC000U) +#define FMC_PFAPR_M7AP_SHIFT (14U) +#define FMC_PFAPR_M7AP(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M7AP_SHIFT)) & FMC_PFAPR_M7AP_MASK) +#define FMC_PFAPR_M0PFD_MASK (0x10000U) +#define FMC_PFAPR_M0PFD_SHIFT (16U) +#define FMC_PFAPR_M0PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M0PFD_SHIFT)) & FMC_PFAPR_M0PFD_MASK) +#define FMC_PFAPR_M1PFD_MASK (0x20000U) +#define FMC_PFAPR_M1PFD_SHIFT (17U) +#define FMC_PFAPR_M1PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M1PFD_SHIFT)) & FMC_PFAPR_M1PFD_MASK) +#define FMC_PFAPR_M2PFD_MASK (0x40000U) +#define FMC_PFAPR_M2PFD_SHIFT (18U) +#define FMC_PFAPR_M2PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M2PFD_SHIFT)) & FMC_PFAPR_M2PFD_MASK) +#define FMC_PFAPR_M3PFD_MASK (0x80000U) +#define FMC_PFAPR_M3PFD_SHIFT (19U) +#define FMC_PFAPR_M3PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M3PFD_SHIFT)) & FMC_PFAPR_M3PFD_MASK) +#define FMC_PFAPR_M4PFD_MASK (0x100000U) +#define FMC_PFAPR_M4PFD_SHIFT (20U) +#define FMC_PFAPR_M4PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M4PFD_SHIFT)) & FMC_PFAPR_M4PFD_MASK) +#define FMC_PFAPR_M5PFD_MASK (0x200000U) +#define FMC_PFAPR_M5PFD_SHIFT (21U) +#define FMC_PFAPR_M5PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M5PFD_SHIFT)) & FMC_PFAPR_M5PFD_MASK) +#define FMC_PFAPR_M6PFD_MASK (0x400000U) +#define FMC_PFAPR_M6PFD_SHIFT (22U) +#define FMC_PFAPR_M6PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M6PFD_SHIFT)) & FMC_PFAPR_M6PFD_MASK) +#define FMC_PFAPR_M7PFD_MASK (0x800000U) +#define FMC_PFAPR_M7PFD_SHIFT (23U) +#define FMC_PFAPR_M7PFD(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFAPR_M7PFD_SHIFT)) & FMC_PFAPR_M7PFD_MASK) + +/*! @name PFB0CR - Flash Bank 0 Control Register */ +#define FMC_PFB0CR_B0SEBE_MASK (0x1U) +#define FMC_PFB0CR_B0SEBE_SHIFT (0U) +#define FMC_PFB0CR_B0SEBE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0SEBE_SHIFT)) & FMC_PFB0CR_B0SEBE_MASK) +#define FMC_PFB0CR_B0IPE_MASK (0x2U) +#define FMC_PFB0CR_B0IPE_SHIFT (1U) +#define FMC_PFB0CR_B0IPE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0IPE_SHIFT)) & FMC_PFB0CR_B0IPE_MASK) +#define FMC_PFB0CR_B0DPE_MASK (0x4U) +#define FMC_PFB0CR_B0DPE_SHIFT (2U) +#define FMC_PFB0CR_B0DPE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0DPE_SHIFT)) & FMC_PFB0CR_B0DPE_MASK) +#define FMC_PFB0CR_B0ICE_MASK (0x8U) +#define FMC_PFB0CR_B0ICE_SHIFT (3U) +#define FMC_PFB0CR_B0ICE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0ICE_SHIFT)) & FMC_PFB0CR_B0ICE_MASK) +#define FMC_PFB0CR_B0DCE_MASK (0x10U) +#define FMC_PFB0CR_B0DCE_SHIFT (4U) +#define FMC_PFB0CR_B0DCE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0DCE_SHIFT)) & FMC_PFB0CR_B0DCE_MASK) +#define FMC_PFB0CR_CRC_MASK (0xE0U) +#define FMC_PFB0CR_CRC_SHIFT (5U) +#define FMC_PFB0CR_CRC(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_CRC_SHIFT)) & FMC_PFB0CR_CRC_MASK) +#define FMC_PFB0CR_B0MW_MASK (0x60000U) +#define FMC_PFB0CR_B0MW_SHIFT (17U) +#define FMC_PFB0CR_B0MW(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0MW_SHIFT)) & FMC_PFB0CR_B0MW_MASK) +#define FMC_PFB0CR_S_B_INV_MASK (0x80000U) +#define FMC_PFB0CR_S_B_INV_SHIFT (19U) +#define FMC_PFB0CR_S_B_INV(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_S_B_INV_SHIFT)) & FMC_PFB0CR_S_B_INV_MASK) +#define FMC_PFB0CR_CINV_WAY_MASK (0xF00000U) +#define FMC_PFB0CR_CINV_WAY_SHIFT (20U) +#define FMC_PFB0CR_CINV_WAY(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_CINV_WAY_SHIFT)) & FMC_PFB0CR_CINV_WAY_MASK) +#define FMC_PFB0CR_CLCK_WAY_MASK (0xF000000U) +#define FMC_PFB0CR_CLCK_WAY_SHIFT (24U) +#define FMC_PFB0CR_CLCK_WAY(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_CLCK_WAY_SHIFT)) & FMC_PFB0CR_CLCK_WAY_MASK) +#define FMC_PFB0CR_B0RWSC_MASK (0xF0000000U) +#define FMC_PFB0CR_B0RWSC_SHIFT (28U) +#define FMC_PFB0CR_B0RWSC(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB0CR_B0RWSC_SHIFT)) & FMC_PFB0CR_B0RWSC_MASK) + +/*! @name PFB1CR - Flash Bank 1 Control Register */ +#define FMC_PFB1CR_B1SEBE_MASK (0x1U) +#define FMC_PFB1CR_B1SEBE_SHIFT (0U) +#define FMC_PFB1CR_B1SEBE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1SEBE_SHIFT)) & FMC_PFB1CR_B1SEBE_MASK) +#define FMC_PFB1CR_B1IPE_MASK (0x2U) +#define FMC_PFB1CR_B1IPE_SHIFT (1U) +#define FMC_PFB1CR_B1IPE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1IPE_SHIFT)) & FMC_PFB1CR_B1IPE_MASK) +#define FMC_PFB1CR_B1DPE_MASK (0x4U) +#define FMC_PFB1CR_B1DPE_SHIFT (2U) +#define FMC_PFB1CR_B1DPE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1DPE_SHIFT)) & FMC_PFB1CR_B1DPE_MASK) +#define FMC_PFB1CR_B1ICE_MASK (0x8U) +#define FMC_PFB1CR_B1ICE_SHIFT (3U) +#define FMC_PFB1CR_B1ICE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1ICE_SHIFT)) & FMC_PFB1CR_B1ICE_MASK) +#define FMC_PFB1CR_B1DCE_MASK (0x10U) +#define FMC_PFB1CR_B1DCE_SHIFT (4U) +#define FMC_PFB1CR_B1DCE(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1DCE_SHIFT)) & FMC_PFB1CR_B1DCE_MASK) +#define FMC_PFB1CR_B1MW_MASK (0x60000U) +#define FMC_PFB1CR_B1MW_SHIFT (17U) +#define FMC_PFB1CR_B1MW(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1MW_SHIFT)) & FMC_PFB1CR_B1MW_MASK) +#define FMC_PFB1CR_B1RWSC_MASK (0xF0000000U) +#define FMC_PFB1CR_B1RWSC_SHIFT (28U) +#define FMC_PFB1CR_B1RWSC(x) (((uint32_t)(((uint32_t)(x)) << FMC_PFB1CR_B1RWSC_SHIFT)) & FMC_PFB1CR_B1RWSC_MASK) + +/*! @name TAGVDW0S - Cache Tag Storage */ +#define FMC_TAGVDW0S_valid_MASK (0x1U) +#define FMC_TAGVDW0S_valid_SHIFT (0U) +#define FMC_TAGVDW0S_valid(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW0S_valid_SHIFT)) & FMC_TAGVDW0S_valid_MASK) +#define FMC_TAGVDW0S_tag_MASK (0x7FFE0U) +#define FMC_TAGVDW0S_tag_SHIFT (5U) +#define FMC_TAGVDW0S_tag(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW0S_tag_SHIFT)) & FMC_TAGVDW0S_tag_MASK) + +/* The count of FMC_TAGVDW0S */ +#define FMC_TAGVDW0S_COUNT (4U) + +/*! @name TAGVDW1S - Cache Tag Storage */ +#define FMC_TAGVDW1S_valid_MASK (0x1U) +#define FMC_TAGVDW1S_valid_SHIFT (0U) +#define FMC_TAGVDW1S_valid(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW1S_valid_SHIFT)) & FMC_TAGVDW1S_valid_MASK) +#define FMC_TAGVDW1S_tag_MASK (0x7FFE0U) +#define FMC_TAGVDW1S_tag_SHIFT (5U) +#define FMC_TAGVDW1S_tag(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW1S_tag_SHIFT)) & FMC_TAGVDW1S_tag_MASK) + +/* The count of FMC_TAGVDW1S */ +#define FMC_TAGVDW1S_COUNT (4U) + +/*! @name TAGVDW2S - Cache Tag Storage */ +#define FMC_TAGVDW2S_valid_MASK (0x1U) +#define FMC_TAGVDW2S_valid_SHIFT (0U) +#define FMC_TAGVDW2S_valid(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW2S_valid_SHIFT)) & FMC_TAGVDW2S_valid_MASK) +#define FMC_TAGVDW2S_tag_MASK (0x7FFE0U) +#define FMC_TAGVDW2S_tag_SHIFT (5U) +#define FMC_TAGVDW2S_tag(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW2S_tag_SHIFT)) & FMC_TAGVDW2S_tag_MASK) + +/* The count of FMC_TAGVDW2S */ +#define FMC_TAGVDW2S_COUNT (4U) + +/*! @name TAGVDW3S - Cache Tag Storage */ +#define FMC_TAGVDW3S_valid_MASK (0x1U) +#define FMC_TAGVDW3S_valid_SHIFT (0U) +#define FMC_TAGVDW3S_valid(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW3S_valid_SHIFT)) & FMC_TAGVDW3S_valid_MASK) +#define FMC_TAGVDW3S_tag_MASK (0x7FFE0U) +#define FMC_TAGVDW3S_tag_SHIFT (5U) +#define FMC_TAGVDW3S_tag(x) (((uint32_t)(((uint32_t)(x)) << FMC_TAGVDW3S_tag_SHIFT)) & FMC_TAGVDW3S_tag_MASK) + +/* The count of FMC_TAGVDW3S */ +#define FMC_TAGVDW3S_COUNT (4U) + +/*! @name DATA_U - Cache Data Storage (upper word) */ +#define FMC_DATA_U_data_MASK (0xFFFFFFFFU) +#define FMC_DATA_U_data_SHIFT (0U) +#define FMC_DATA_U_data(x) (((uint32_t)(((uint32_t)(x)) << FMC_DATA_U_data_SHIFT)) & FMC_DATA_U_data_MASK) + +/* The count of FMC_DATA_U */ +#define FMC_DATA_U_COUNT (4U) + +/* The count of FMC_DATA_U */ +#define FMC_DATA_U_COUNT2 (4U) + +/*! @name DATA_L - Cache Data Storage (lower word) */ +#define FMC_DATA_L_data_MASK (0xFFFFFFFFU) +#define FMC_DATA_L_data_SHIFT (0U) +#define FMC_DATA_L_data(x) (((uint32_t)(((uint32_t)(x)) << FMC_DATA_L_data_SHIFT)) & FMC_DATA_L_data_MASK) + +/* The count of FMC_DATA_L */ +#define FMC_DATA_L_COUNT (4U) + +/* The count of FMC_DATA_L */ +#define FMC_DATA_L_COUNT2 (4U) + + +/*! + * @} + */ /* end of group FMC_Register_Masks */ + + +/* FMC - Peripheral instance base addresses */ +/** Peripheral FMC base address */ +#define FMC_BASE (0x4001F000u) +/** Peripheral FMC base pointer */ +#define FMC ((FMC_Type *)FMC_BASE) +/** Array initializer of FMC peripheral base addresses */ +#define FMC_BASE_ADDRS { FMC_BASE } +/** Array initializer of FMC peripheral base pointers */ +#define FMC_BASE_PTRS { FMC } + +/*! + * @} + */ /* end of group FMC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- FTFE Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FTFE_Peripheral_Access_Layer FTFE Peripheral Access Layer + * @{ + */ + +/** FTFE - Register Layout Typedef */ +typedef struct { + __IO uint8_t FSTAT; /**< Flash Status Register, offset: 0x0 */ + __IO uint8_t FCNFG; /**< Flash Configuration Register, offset: 0x1 */ + __I uint8_t FSEC; /**< Flash Security Register, offset: 0x2 */ + __I uint8_t FOPT; /**< Flash Option Register, offset: 0x3 */ + __IO uint8_t FCCOB3; /**< Flash Common Command Object Registers, offset: 0x4 */ + __IO uint8_t FCCOB2; /**< Flash Common Command Object Registers, offset: 0x5 */ + __IO uint8_t FCCOB1; /**< Flash Common Command Object Registers, offset: 0x6 */ + __IO uint8_t FCCOB0; /**< Flash Common Command Object Registers, offset: 0x7 */ + __IO uint8_t FCCOB7; /**< Flash Common Command Object Registers, offset: 0x8 */ + __IO uint8_t FCCOB6; /**< Flash Common Command Object Registers, offset: 0x9 */ + __IO uint8_t FCCOB5; /**< Flash Common Command Object Registers, offset: 0xA */ + __IO uint8_t FCCOB4; /**< Flash Common Command Object Registers, offset: 0xB */ + __IO uint8_t FCCOBB; /**< Flash Common Command Object Registers, offset: 0xC */ + __IO uint8_t FCCOBA; /**< Flash Common Command Object Registers, offset: 0xD */ + __IO uint8_t FCCOB9; /**< Flash Common Command Object Registers, offset: 0xE */ + __IO uint8_t FCCOB8; /**< Flash Common Command Object Registers, offset: 0xF */ + __IO uint8_t FPROT3; /**< Program Flash Protection Registers, offset: 0x10 */ + __IO uint8_t FPROT2; /**< Program Flash Protection Registers, offset: 0x11 */ + __IO uint8_t FPROT1; /**< Program Flash Protection Registers, offset: 0x12 */ + __IO uint8_t FPROT0; /**< Program Flash Protection Registers, offset: 0x13 */ + uint8_t RESERVED_0[2]; + __IO uint8_t FEPROT; /**< EEPROM Protection Register, offset: 0x16 */ + __IO uint8_t FDPROT; /**< Data Flash Protection Register, offset: 0x17 */ +} FTFE_Type; + +/* ---------------------------------------------------------------------------- + -- FTFE Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FTFE_Register_Masks FTFE Register Masks + * @{ + */ + +/*! @name FSTAT - Flash Status Register */ +#define FTFE_FSTAT_MGSTAT0_MASK (0x1U) +#define FTFE_FSTAT_MGSTAT0_SHIFT (0U) +#define FTFE_FSTAT_MGSTAT0(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_MGSTAT0_SHIFT)) & FTFE_FSTAT_MGSTAT0_MASK) +#define FTFE_FSTAT_FPVIOL_MASK (0x10U) +#define FTFE_FSTAT_FPVIOL_SHIFT (4U) +#define FTFE_FSTAT_FPVIOL(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_FPVIOL_SHIFT)) & FTFE_FSTAT_FPVIOL_MASK) +#define FTFE_FSTAT_ACCERR_MASK (0x20U) +#define FTFE_FSTAT_ACCERR_SHIFT (5U) +#define FTFE_FSTAT_ACCERR(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_ACCERR_SHIFT)) & FTFE_FSTAT_ACCERR_MASK) +#define FTFE_FSTAT_RDCOLERR_MASK (0x40U) +#define FTFE_FSTAT_RDCOLERR_SHIFT (6U) +#define FTFE_FSTAT_RDCOLERR(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_RDCOLERR_SHIFT)) & FTFE_FSTAT_RDCOLERR_MASK) +#define FTFE_FSTAT_CCIF_MASK (0x80U) +#define FTFE_FSTAT_CCIF_SHIFT (7U) +#define FTFE_FSTAT_CCIF(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_CCIF_SHIFT)) & FTFE_FSTAT_CCIF_MASK) + +/*! @name FCNFG - Flash Configuration Register */ +#define FTFE_FCNFG_EEERDY_MASK (0x1U) +#define FTFE_FCNFG_EEERDY_SHIFT (0U) +#define FTFE_FCNFG_EEERDY(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_EEERDY_SHIFT)) & FTFE_FCNFG_EEERDY_MASK) +#define FTFE_FCNFG_RAMRDY_MASK (0x2U) +#define FTFE_FCNFG_RAMRDY_SHIFT (1U) +#define FTFE_FCNFG_RAMRDY(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_RAMRDY_SHIFT)) & FTFE_FCNFG_RAMRDY_MASK) +#define FTFE_FCNFG_PFLSH_MASK (0x4U) +#define FTFE_FCNFG_PFLSH_SHIFT (2U) +#define FTFE_FCNFG_PFLSH(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_PFLSH_SHIFT)) & FTFE_FCNFG_PFLSH_MASK) +#define FTFE_FCNFG_SWAP_MASK (0x8U) +#define FTFE_FCNFG_SWAP_SHIFT (3U) +#define FTFE_FCNFG_SWAP(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_SWAP_SHIFT)) & FTFE_FCNFG_SWAP_MASK) +#define FTFE_FCNFG_ERSSUSP_MASK (0x10U) +#define FTFE_FCNFG_ERSSUSP_SHIFT (4U) +#define FTFE_FCNFG_ERSSUSP(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_ERSSUSP_SHIFT)) & FTFE_FCNFG_ERSSUSP_MASK) +#define FTFE_FCNFG_ERSAREQ_MASK (0x20U) +#define FTFE_FCNFG_ERSAREQ_SHIFT (5U) +#define FTFE_FCNFG_ERSAREQ(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_ERSAREQ_SHIFT)) & FTFE_FCNFG_ERSAREQ_MASK) +#define FTFE_FCNFG_RDCOLLIE_MASK (0x40U) +#define FTFE_FCNFG_RDCOLLIE_SHIFT (6U) +#define FTFE_FCNFG_RDCOLLIE(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_RDCOLLIE_SHIFT)) & FTFE_FCNFG_RDCOLLIE_MASK) +#define FTFE_FCNFG_CCIE_MASK (0x80U) +#define FTFE_FCNFG_CCIE_SHIFT (7U) +#define FTFE_FCNFG_CCIE(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_CCIE_SHIFT)) & FTFE_FCNFG_CCIE_MASK) + +/*! @name FSEC - Flash Security Register */ +#define FTFE_FSEC_SEC_MASK (0x3U) +#define FTFE_FSEC_SEC_SHIFT (0U) +#define FTFE_FSEC_SEC(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_SEC_SHIFT)) & FTFE_FSEC_SEC_MASK) +#define FTFE_FSEC_FSLACC_MASK (0xCU) +#define FTFE_FSEC_FSLACC_SHIFT (2U) +#define FTFE_FSEC_FSLACC(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_FSLACC_SHIFT)) & FTFE_FSEC_FSLACC_MASK) +#define FTFE_FSEC_MEEN_MASK (0x30U) +#define FTFE_FSEC_MEEN_SHIFT (4U) +#define FTFE_FSEC_MEEN(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_MEEN_SHIFT)) & FTFE_FSEC_MEEN_MASK) +#define FTFE_FSEC_KEYEN_MASK (0xC0U) +#define FTFE_FSEC_KEYEN_SHIFT (6U) +#define FTFE_FSEC_KEYEN(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_KEYEN_SHIFT)) & FTFE_FSEC_KEYEN_MASK) + +/*! @name FOPT - Flash Option Register */ +#define FTFE_FOPT_OPT_MASK (0xFFU) +#define FTFE_FOPT_OPT_SHIFT (0U) +#define FTFE_FOPT_OPT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT_OPT_SHIFT)) & FTFE_FOPT_OPT_MASK) + +/*! @name FCCOB3 - Flash Common Command Object Registers */ +#define FTFE_FCCOB3_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB3_CCOBn_SHIFT (0U) +#define FTFE_FCCOB3_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB3_CCOBn_SHIFT)) & FTFE_FCCOB3_CCOBn_MASK) + +/*! @name FCCOB2 - Flash Common Command Object Registers */ +#define FTFE_FCCOB2_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB2_CCOBn_SHIFT (0U) +#define FTFE_FCCOB2_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB2_CCOBn_SHIFT)) & FTFE_FCCOB2_CCOBn_MASK) + +/*! @name FCCOB1 - Flash Common Command Object Registers */ +#define FTFE_FCCOB1_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB1_CCOBn_SHIFT (0U) +#define FTFE_FCCOB1_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB1_CCOBn_SHIFT)) & FTFE_FCCOB1_CCOBn_MASK) + +/*! @name FCCOB0 - Flash Common Command Object Registers */ +#define FTFE_FCCOB0_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB0_CCOBn_SHIFT (0U) +#define FTFE_FCCOB0_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB0_CCOBn_SHIFT)) & FTFE_FCCOB0_CCOBn_MASK) + +/*! @name FCCOB7 - Flash Common Command Object Registers */ +#define FTFE_FCCOB7_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB7_CCOBn_SHIFT (0U) +#define FTFE_FCCOB7_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB7_CCOBn_SHIFT)) & FTFE_FCCOB7_CCOBn_MASK) + +/*! @name FCCOB6 - Flash Common Command Object Registers */ +#define FTFE_FCCOB6_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB6_CCOBn_SHIFT (0U) +#define FTFE_FCCOB6_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB6_CCOBn_SHIFT)) & FTFE_FCCOB6_CCOBn_MASK) + +/*! @name FCCOB5 - Flash Common Command Object Registers */ +#define FTFE_FCCOB5_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB5_CCOBn_SHIFT (0U) +#define FTFE_FCCOB5_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB5_CCOBn_SHIFT)) & FTFE_FCCOB5_CCOBn_MASK) + +/*! @name FCCOB4 - Flash Common Command Object Registers */ +#define FTFE_FCCOB4_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB4_CCOBn_SHIFT (0U) +#define FTFE_FCCOB4_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB4_CCOBn_SHIFT)) & FTFE_FCCOB4_CCOBn_MASK) + +/*! @name FCCOBB - Flash Common Command Object Registers */ +#define FTFE_FCCOBB_CCOBn_MASK (0xFFU) +#define FTFE_FCCOBB_CCOBn_SHIFT (0U) +#define FTFE_FCCOBB_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOBB_CCOBn_SHIFT)) & FTFE_FCCOBB_CCOBn_MASK) + +/*! @name FCCOBA - Flash Common Command Object Registers */ +#define FTFE_FCCOBA_CCOBn_MASK (0xFFU) +#define FTFE_FCCOBA_CCOBn_SHIFT (0U) +#define FTFE_FCCOBA_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOBA_CCOBn_SHIFT)) & FTFE_FCCOBA_CCOBn_MASK) + +/*! @name FCCOB9 - Flash Common Command Object Registers */ +#define FTFE_FCCOB9_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB9_CCOBn_SHIFT (0U) +#define FTFE_FCCOB9_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB9_CCOBn_SHIFT)) & FTFE_FCCOB9_CCOBn_MASK) + +/*! @name FCCOB8 - Flash Common Command Object Registers */ +#define FTFE_FCCOB8_CCOBn_MASK (0xFFU) +#define FTFE_FCCOB8_CCOBn_SHIFT (0U) +#define FTFE_FCCOB8_CCOBn(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB8_CCOBn_SHIFT)) & FTFE_FCCOB8_CCOBn_MASK) + +/*! @name FPROT3 - Program Flash Protection Registers */ +#define FTFE_FPROT3_PROT_MASK (0xFFU) +#define FTFE_FPROT3_PROT_SHIFT (0U) +#define FTFE_FPROT3_PROT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FPROT3_PROT_SHIFT)) & FTFE_FPROT3_PROT_MASK) + +/*! @name FPROT2 - Program Flash Protection Registers */ +#define FTFE_FPROT2_PROT_MASK (0xFFU) +#define FTFE_FPROT2_PROT_SHIFT (0U) +#define FTFE_FPROT2_PROT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FPROT2_PROT_SHIFT)) & FTFE_FPROT2_PROT_MASK) + +/*! @name FPROT1 - Program Flash Protection Registers */ +#define FTFE_FPROT1_PROT_MASK (0xFFU) +#define FTFE_FPROT1_PROT_SHIFT (0U) +#define FTFE_FPROT1_PROT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FPROT1_PROT_SHIFT)) & FTFE_FPROT1_PROT_MASK) + +/*! @name FPROT0 - Program Flash Protection Registers */ +#define FTFE_FPROT0_PROT_MASK (0xFFU) +#define FTFE_FPROT0_PROT_SHIFT (0U) +#define FTFE_FPROT0_PROT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FPROT0_PROT_SHIFT)) & FTFE_FPROT0_PROT_MASK) + +/*! @name FEPROT - EEPROM Protection Register */ +#define FTFE_FEPROT_EPROT_MASK (0xFFU) +#define FTFE_FEPROT_EPROT_SHIFT (0U) +#define FTFE_FEPROT_EPROT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FEPROT_EPROT_SHIFT)) & FTFE_FEPROT_EPROT_MASK) + +/*! @name FDPROT - Data Flash Protection Register */ +#define FTFE_FDPROT_DPROT_MASK (0xFFU) +#define FTFE_FDPROT_DPROT_SHIFT (0U) +#define FTFE_FDPROT_DPROT(x) (((uint8_t)(((uint8_t)(x)) << FTFE_FDPROT_DPROT_SHIFT)) & FTFE_FDPROT_DPROT_MASK) + + +/*! + * @} + */ /* end of group FTFE_Register_Masks */ + + +/* FTFE - Peripheral instance base addresses */ +/** Peripheral FTFE base address */ +#define FTFE_BASE (0x40020000u) +/** Peripheral FTFE base pointer */ +#define FTFE ((FTFE_Type *)FTFE_BASE) +/** Array initializer of FTFE peripheral base addresses */ +#define FTFE_BASE_ADDRS { FTFE_BASE } +/** Array initializer of FTFE peripheral base pointers */ +#define FTFE_BASE_PTRS { FTFE } +/** Interrupt vectors for the FTFE peripheral type */ +#define FTFE_COMMAND_COMPLETE_IRQS { FTFE_IRQn } +#define FTFE_READ_COLLISION_IRQS { Read_Collision_IRQn } + +/*! + * @} + */ /* end of group FTFE_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- FTM Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FTM_Peripheral_Access_Layer FTM Peripheral Access Layer + * @{ + */ + +/** FTM - Register Layout Typedef */ +typedef struct { + __IO uint32_t SC; /**< Status And Control, offset: 0x0 */ + __IO uint32_t CNT; /**< Counter, offset: 0x4 */ + __IO uint32_t MOD; /**< Modulo, offset: 0x8 */ + struct { /* offset: 0xC, array step: 0x8 */ + __IO uint32_t CnSC; /**< Channel (n) Status And Control, array offset: 0xC, array step: 0x8 */ + __IO uint32_t CnV; /**< Channel (n) Value, array offset: 0x10, array step: 0x8 */ + } CONTROLS[8]; + __IO uint32_t CNTIN; /**< Counter Initial Value, offset: 0x4C */ + __IO uint32_t STATUS; /**< Capture And Compare Status, offset: 0x50 */ + __IO uint32_t MODE; /**< Features Mode Selection, offset: 0x54 */ + __IO uint32_t SYNC; /**< Synchronization, offset: 0x58 */ + __IO uint32_t OUTINIT; /**< Initial State For Channels Output, offset: 0x5C */ + __IO uint32_t OUTMASK; /**< Output Mask, offset: 0x60 */ + __IO uint32_t COMBINE; /**< Function For Linked Channels, offset: 0x64 */ + __IO uint32_t DEADTIME; /**< Deadtime Insertion Control, offset: 0x68 */ + __IO uint32_t EXTTRIG; /**< FTM External Trigger, offset: 0x6C */ + __IO uint32_t POL; /**< Channels Polarity, offset: 0x70 */ + __IO uint32_t FMS; /**< Fault Mode Status, offset: 0x74 */ + __IO uint32_t FILTER; /**< Input Capture Filter Control, offset: 0x78 */ + __IO uint32_t FLTCTRL; /**< Fault Control, offset: 0x7C */ + __IO uint32_t QDCTRL; /**< Quadrature Decoder Control And Status, offset: 0x80 */ + __IO uint32_t CONF; /**< Configuration, offset: 0x84 */ + __IO uint32_t FLTPOL; /**< FTM Fault Input Polarity, offset: 0x88 */ + __IO uint32_t SYNCONF; /**< Synchronization Configuration, offset: 0x8C */ + __IO uint32_t INVCTRL; /**< FTM Inverting Control, offset: 0x90 */ + __IO uint32_t SWOCTRL; /**< FTM Software Output Control, offset: 0x94 */ + __IO uint32_t PWMLOAD; /**< FTM PWM Load, offset: 0x98 */ +} FTM_Type; + +/* ---------------------------------------------------------------------------- + -- FTM Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup FTM_Register_Masks FTM Register Masks + * @{ + */ + +/*! @name SC - Status And Control */ +#define FTM_SC_PS_MASK (0x7U) +#define FTM_SC_PS_SHIFT (0U) +#define FTM_SC_PS(x) (((uint32_t)(((uint32_t)(x)) << FTM_SC_PS_SHIFT)) & FTM_SC_PS_MASK) +#define FTM_SC_CLKS_MASK (0x18U) +#define FTM_SC_CLKS_SHIFT (3U) +#define FTM_SC_CLKS(x) (((uint32_t)(((uint32_t)(x)) << FTM_SC_CLKS_SHIFT)) & FTM_SC_CLKS_MASK) +#define FTM_SC_CPWMS_MASK (0x20U) +#define FTM_SC_CPWMS_SHIFT (5U) +#define FTM_SC_CPWMS(x) (((uint32_t)(((uint32_t)(x)) << FTM_SC_CPWMS_SHIFT)) & FTM_SC_CPWMS_MASK) +#define FTM_SC_TOIE_MASK (0x40U) +#define FTM_SC_TOIE_SHIFT (6U) +#define FTM_SC_TOIE(x) (((uint32_t)(((uint32_t)(x)) << FTM_SC_TOIE_SHIFT)) & FTM_SC_TOIE_MASK) +#define FTM_SC_TOF_MASK (0x80U) +#define FTM_SC_TOF_SHIFT (7U) +#define FTM_SC_TOF(x) (((uint32_t)(((uint32_t)(x)) << FTM_SC_TOF_SHIFT)) & FTM_SC_TOF_MASK) + +/*! @name CNT - Counter */ +#define FTM_CNT_COUNT_MASK (0xFFFFU) +#define FTM_CNT_COUNT_SHIFT (0U) +#define FTM_CNT_COUNT(x) (((uint32_t)(((uint32_t)(x)) << FTM_CNT_COUNT_SHIFT)) & FTM_CNT_COUNT_MASK) + +/*! @name MOD - Modulo */ +#define FTM_MOD_MOD_MASK (0xFFFFU) +#define FTM_MOD_MOD_SHIFT (0U) +#define FTM_MOD_MOD(x) (((uint32_t)(((uint32_t)(x)) << FTM_MOD_MOD_SHIFT)) & FTM_MOD_MOD_MASK) + +/*! @name CnSC - Channel (n) Status And Control */ +#define FTM_CnSC_DMA_MASK (0x1U) +#define FTM_CnSC_DMA_SHIFT (0U) +#define FTM_CnSC_DMA(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_DMA_SHIFT)) & FTM_CnSC_DMA_MASK) +#define FTM_CnSC_ELSA_MASK (0x4U) +#define FTM_CnSC_ELSA_SHIFT (2U) +#define FTM_CnSC_ELSA(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_ELSA_SHIFT)) & FTM_CnSC_ELSA_MASK) +#define FTM_CnSC_ELSB_MASK (0x8U) +#define FTM_CnSC_ELSB_SHIFT (3U) +#define FTM_CnSC_ELSB(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_ELSB_SHIFT)) & FTM_CnSC_ELSB_MASK) +#define FTM_CnSC_MSA_MASK (0x10U) +#define FTM_CnSC_MSA_SHIFT (4U) +#define FTM_CnSC_MSA(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_MSA_SHIFT)) & FTM_CnSC_MSA_MASK) +#define FTM_CnSC_MSB_MASK (0x20U) +#define FTM_CnSC_MSB_SHIFT (5U) +#define FTM_CnSC_MSB(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_MSB_SHIFT)) & FTM_CnSC_MSB_MASK) +#define FTM_CnSC_CHIE_MASK (0x40U) +#define FTM_CnSC_CHIE_SHIFT (6U) +#define FTM_CnSC_CHIE(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_CHIE_SHIFT)) & FTM_CnSC_CHIE_MASK) +#define FTM_CnSC_CHF_MASK (0x80U) +#define FTM_CnSC_CHF_SHIFT (7U) +#define FTM_CnSC_CHF(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnSC_CHF_SHIFT)) & FTM_CnSC_CHF_MASK) + +/* The count of FTM_CnSC */ +#define FTM_CnSC_COUNT (8U) + +/*! @name CnV - Channel (n) Value */ +#define FTM_CnV_VAL_MASK (0xFFFFU) +#define FTM_CnV_VAL_SHIFT (0U) +#define FTM_CnV_VAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_CnV_VAL_SHIFT)) & FTM_CnV_VAL_MASK) + +/* The count of FTM_CnV */ +#define FTM_CnV_COUNT (8U) + +/*! @name CNTIN - Counter Initial Value */ +#define FTM_CNTIN_INIT_MASK (0xFFFFU) +#define FTM_CNTIN_INIT_SHIFT (0U) +#define FTM_CNTIN_INIT(x) (((uint32_t)(((uint32_t)(x)) << FTM_CNTIN_INIT_SHIFT)) & FTM_CNTIN_INIT_MASK) + +/*! @name STATUS - Capture And Compare Status */ +#define FTM_STATUS_CH0F_MASK (0x1U) +#define FTM_STATUS_CH0F_SHIFT (0U) +#define FTM_STATUS_CH0F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH0F_SHIFT)) & FTM_STATUS_CH0F_MASK) +#define FTM_STATUS_CH1F_MASK (0x2U) +#define FTM_STATUS_CH1F_SHIFT (1U) +#define FTM_STATUS_CH1F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH1F_SHIFT)) & FTM_STATUS_CH1F_MASK) +#define FTM_STATUS_CH2F_MASK (0x4U) +#define FTM_STATUS_CH2F_SHIFT (2U) +#define FTM_STATUS_CH2F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH2F_SHIFT)) & FTM_STATUS_CH2F_MASK) +#define FTM_STATUS_CH3F_MASK (0x8U) +#define FTM_STATUS_CH3F_SHIFT (3U) +#define FTM_STATUS_CH3F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH3F_SHIFT)) & FTM_STATUS_CH3F_MASK) +#define FTM_STATUS_CH4F_MASK (0x10U) +#define FTM_STATUS_CH4F_SHIFT (4U) +#define FTM_STATUS_CH4F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH4F_SHIFT)) & FTM_STATUS_CH4F_MASK) +#define FTM_STATUS_CH5F_MASK (0x20U) +#define FTM_STATUS_CH5F_SHIFT (5U) +#define FTM_STATUS_CH5F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH5F_SHIFT)) & FTM_STATUS_CH5F_MASK) +#define FTM_STATUS_CH6F_MASK (0x40U) +#define FTM_STATUS_CH6F_SHIFT (6U) +#define FTM_STATUS_CH6F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH6F_SHIFT)) & FTM_STATUS_CH6F_MASK) +#define FTM_STATUS_CH7F_MASK (0x80U) +#define FTM_STATUS_CH7F_SHIFT (7U) +#define FTM_STATUS_CH7F(x) (((uint32_t)(((uint32_t)(x)) << FTM_STATUS_CH7F_SHIFT)) & FTM_STATUS_CH7F_MASK) + +/*! @name MODE - Features Mode Selection */ +#define FTM_MODE_FTMEN_MASK (0x1U) +#define FTM_MODE_FTMEN_SHIFT (0U) +#define FTM_MODE_FTMEN(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_FTMEN_SHIFT)) & FTM_MODE_FTMEN_MASK) +#define FTM_MODE_INIT_MASK (0x2U) +#define FTM_MODE_INIT_SHIFT (1U) +#define FTM_MODE_INIT(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_INIT_SHIFT)) & FTM_MODE_INIT_MASK) +#define FTM_MODE_WPDIS_MASK (0x4U) +#define FTM_MODE_WPDIS_SHIFT (2U) +#define FTM_MODE_WPDIS(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_WPDIS_SHIFT)) & FTM_MODE_WPDIS_MASK) +#define FTM_MODE_PWMSYNC_MASK (0x8U) +#define FTM_MODE_PWMSYNC_SHIFT (3U) +#define FTM_MODE_PWMSYNC(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_PWMSYNC_SHIFT)) & FTM_MODE_PWMSYNC_MASK) +#define FTM_MODE_CAPTEST_MASK (0x10U) +#define FTM_MODE_CAPTEST_SHIFT (4U) +#define FTM_MODE_CAPTEST(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_CAPTEST_SHIFT)) & FTM_MODE_CAPTEST_MASK) +#define FTM_MODE_FAULTM_MASK (0x60U) +#define FTM_MODE_FAULTM_SHIFT (5U) +#define FTM_MODE_FAULTM(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_FAULTM_SHIFT)) & FTM_MODE_FAULTM_MASK) +#define FTM_MODE_FAULTIE_MASK (0x80U) +#define FTM_MODE_FAULTIE_SHIFT (7U) +#define FTM_MODE_FAULTIE(x) (((uint32_t)(((uint32_t)(x)) << FTM_MODE_FAULTIE_SHIFT)) & FTM_MODE_FAULTIE_MASK) + +/*! @name SYNC - Synchronization */ +#define FTM_SYNC_CNTMIN_MASK (0x1U) +#define FTM_SYNC_CNTMIN_SHIFT (0U) +#define FTM_SYNC_CNTMIN(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_CNTMIN_SHIFT)) & FTM_SYNC_CNTMIN_MASK) +#define FTM_SYNC_CNTMAX_MASK (0x2U) +#define FTM_SYNC_CNTMAX_SHIFT (1U) +#define FTM_SYNC_CNTMAX(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_CNTMAX_SHIFT)) & FTM_SYNC_CNTMAX_MASK) +#define FTM_SYNC_REINIT_MASK (0x4U) +#define FTM_SYNC_REINIT_SHIFT (2U) +#define FTM_SYNC_REINIT(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_REINIT_SHIFT)) & FTM_SYNC_REINIT_MASK) +#define FTM_SYNC_SYNCHOM_MASK (0x8U) +#define FTM_SYNC_SYNCHOM_SHIFT (3U) +#define FTM_SYNC_SYNCHOM(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_SYNCHOM_SHIFT)) & FTM_SYNC_SYNCHOM_MASK) +#define FTM_SYNC_TRIG0_MASK (0x10U) +#define FTM_SYNC_TRIG0_SHIFT (4U) +#define FTM_SYNC_TRIG0(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_TRIG0_SHIFT)) & FTM_SYNC_TRIG0_MASK) +#define FTM_SYNC_TRIG1_MASK (0x20U) +#define FTM_SYNC_TRIG1_SHIFT (5U) +#define FTM_SYNC_TRIG1(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_TRIG1_SHIFT)) & FTM_SYNC_TRIG1_MASK) +#define FTM_SYNC_TRIG2_MASK (0x40U) +#define FTM_SYNC_TRIG2_SHIFT (6U) +#define FTM_SYNC_TRIG2(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_TRIG2_SHIFT)) & FTM_SYNC_TRIG2_MASK) +#define FTM_SYNC_SWSYNC_MASK (0x80U) +#define FTM_SYNC_SWSYNC_SHIFT (7U) +#define FTM_SYNC_SWSYNC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNC_SWSYNC_SHIFT)) & FTM_SYNC_SWSYNC_MASK) + +/*! @name OUTINIT - Initial State For Channels Output */ +#define FTM_OUTINIT_CH0OI_MASK (0x1U) +#define FTM_OUTINIT_CH0OI_SHIFT (0U) +#define FTM_OUTINIT_CH0OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH0OI_SHIFT)) & FTM_OUTINIT_CH0OI_MASK) +#define FTM_OUTINIT_CH1OI_MASK (0x2U) +#define FTM_OUTINIT_CH1OI_SHIFT (1U) +#define FTM_OUTINIT_CH1OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH1OI_SHIFT)) & FTM_OUTINIT_CH1OI_MASK) +#define FTM_OUTINIT_CH2OI_MASK (0x4U) +#define FTM_OUTINIT_CH2OI_SHIFT (2U) +#define FTM_OUTINIT_CH2OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH2OI_SHIFT)) & FTM_OUTINIT_CH2OI_MASK) +#define FTM_OUTINIT_CH3OI_MASK (0x8U) +#define FTM_OUTINIT_CH3OI_SHIFT (3U) +#define FTM_OUTINIT_CH3OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH3OI_SHIFT)) & FTM_OUTINIT_CH3OI_MASK) +#define FTM_OUTINIT_CH4OI_MASK (0x10U) +#define FTM_OUTINIT_CH4OI_SHIFT (4U) +#define FTM_OUTINIT_CH4OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH4OI_SHIFT)) & FTM_OUTINIT_CH4OI_MASK) +#define FTM_OUTINIT_CH5OI_MASK (0x20U) +#define FTM_OUTINIT_CH5OI_SHIFT (5U) +#define FTM_OUTINIT_CH5OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH5OI_SHIFT)) & FTM_OUTINIT_CH5OI_MASK) +#define FTM_OUTINIT_CH6OI_MASK (0x40U) +#define FTM_OUTINIT_CH6OI_SHIFT (6U) +#define FTM_OUTINIT_CH6OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH6OI_SHIFT)) & FTM_OUTINIT_CH6OI_MASK) +#define FTM_OUTINIT_CH7OI_MASK (0x80U) +#define FTM_OUTINIT_CH7OI_SHIFT (7U) +#define FTM_OUTINIT_CH7OI(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTINIT_CH7OI_SHIFT)) & FTM_OUTINIT_CH7OI_MASK) + +/*! @name OUTMASK - Output Mask */ +#define FTM_OUTMASK_CH0OM_MASK (0x1U) +#define FTM_OUTMASK_CH0OM_SHIFT (0U) +#define FTM_OUTMASK_CH0OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH0OM_SHIFT)) & FTM_OUTMASK_CH0OM_MASK) +#define FTM_OUTMASK_CH1OM_MASK (0x2U) +#define FTM_OUTMASK_CH1OM_SHIFT (1U) +#define FTM_OUTMASK_CH1OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH1OM_SHIFT)) & FTM_OUTMASK_CH1OM_MASK) +#define FTM_OUTMASK_CH2OM_MASK (0x4U) +#define FTM_OUTMASK_CH2OM_SHIFT (2U) +#define FTM_OUTMASK_CH2OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH2OM_SHIFT)) & FTM_OUTMASK_CH2OM_MASK) +#define FTM_OUTMASK_CH3OM_MASK (0x8U) +#define FTM_OUTMASK_CH3OM_SHIFT (3U) +#define FTM_OUTMASK_CH3OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH3OM_SHIFT)) & FTM_OUTMASK_CH3OM_MASK) +#define FTM_OUTMASK_CH4OM_MASK (0x10U) +#define FTM_OUTMASK_CH4OM_SHIFT (4U) +#define FTM_OUTMASK_CH4OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH4OM_SHIFT)) & FTM_OUTMASK_CH4OM_MASK) +#define FTM_OUTMASK_CH5OM_MASK (0x20U) +#define FTM_OUTMASK_CH5OM_SHIFT (5U) +#define FTM_OUTMASK_CH5OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH5OM_SHIFT)) & FTM_OUTMASK_CH5OM_MASK) +#define FTM_OUTMASK_CH6OM_MASK (0x40U) +#define FTM_OUTMASK_CH6OM_SHIFT (6U) +#define FTM_OUTMASK_CH6OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH6OM_SHIFT)) & FTM_OUTMASK_CH6OM_MASK) +#define FTM_OUTMASK_CH7OM_MASK (0x80U) +#define FTM_OUTMASK_CH7OM_SHIFT (7U) +#define FTM_OUTMASK_CH7OM(x) (((uint32_t)(((uint32_t)(x)) << FTM_OUTMASK_CH7OM_SHIFT)) & FTM_OUTMASK_CH7OM_MASK) + +/*! @name COMBINE - Function For Linked Channels */ +#define FTM_COMBINE_COMBINE0_MASK (0x1U) +#define FTM_COMBINE_COMBINE0_SHIFT (0U) +#define FTM_COMBINE_COMBINE0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMBINE0_SHIFT)) & FTM_COMBINE_COMBINE0_MASK) +#define FTM_COMBINE_COMP0_MASK (0x2U) +#define FTM_COMBINE_COMP0_SHIFT (1U) +#define FTM_COMBINE_COMP0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMP0_SHIFT)) & FTM_COMBINE_COMP0_MASK) +#define FTM_COMBINE_DECAPEN0_MASK (0x4U) +#define FTM_COMBINE_DECAPEN0_SHIFT (2U) +#define FTM_COMBINE_DECAPEN0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAPEN0_SHIFT)) & FTM_COMBINE_DECAPEN0_MASK) +#define FTM_COMBINE_DECAP0_MASK (0x8U) +#define FTM_COMBINE_DECAP0_SHIFT (3U) +#define FTM_COMBINE_DECAP0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAP0_SHIFT)) & FTM_COMBINE_DECAP0_MASK) +#define FTM_COMBINE_DTEN0_MASK (0x10U) +#define FTM_COMBINE_DTEN0_SHIFT (4U) +#define FTM_COMBINE_DTEN0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DTEN0_SHIFT)) & FTM_COMBINE_DTEN0_MASK) +#define FTM_COMBINE_SYNCEN0_MASK (0x20U) +#define FTM_COMBINE_SYNCEN0_SHIFT (5U) +#define FTM_COMBINE_SYNCEN0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_SYNCEN0_SHIFT)) & FTM_COMBINE_SYNCEN0_MASK) +#define FTM_COMBINE_FAULTEN0_MASK (0x40U) +#define FTM_COMBINE_FAULTEN0_SHIFT (6U) +#define FTM_COMBINE_FAULTEN0(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_FAULTEN0_SHIFT)) & FTM_COMBINE_FAULTEN0_MASK) +#define FTM_COMBINE_COMBINE1_MASK (0x100U) +#define FTM_COMBINE_COMBINE1_SHIFT (8U) +#define FTM_COMBINE_COMBINE1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMBINE1_SHIFT)) & FTM_COMBINE_COMBINE1_MASK) +#define FTM_COMBINE_COMP1_MASK (0x200U) +#define FTM_COMBINE_COMP1_SHIFT (9U) +#define FTM_COMBINE_COMP1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMP1_SHIFT)) & FTM_COMBINE_COMP1_MASK) +#define FTM_COMBINE_DECAPEN1_MASK (0x400U) +#define FTM_COMBINE_DECAPEN1_SHIFT (10U) +#define FTM_COMBINE_DECAPEN1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAPEN1_SHIFT)) & FTM_COMBINE_DECAPEN1_MASK) +#define FTM_COMBINE_DECAP1_MASK (0x800U) +#define FTM_COMBINE_DECAP1_SHIFT (11U) +#define FTM_COMBINE_DECAP1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAP1_SHIFT)) & FTM_COMBINE_DECAP1_MASK) +#define FTM_COMBINE_DTEN1_MASK (0x1000U) +#define FTM_COMBINE_DTEN1_SHIFT (12U) +#define FTM_COMBINE_DTEN1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DTEN1_SHIFT)) & FTM_COMBINE_DTEN1_MASK) +#define FTM_COMBINE_SYNCEN1_MASK (0x2000U) +#define FTM_COMBINE_SYNCEN1_SHIFT (13U) +#define FTM_COMBINE_SYNCEN1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_SYNCEN1_SHIFT)) & FTM_COMBINE_SYNCEN1_MASK) +#define FTM_COMBINE_FAULTEN1_MASK (0x4000U) +#define FTM_COMBINE_FAULTEN1_SHIFT (14U) +#define FTM_COMBINE_FAULTEN1(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_FAULTEN1_SHIFT)) & FTM_COMBINE_FAULTEN1_MASK) +#define FTM_COMBINE_COMBINE2_MASK (0x10000U) +#define FTM_COMBINE_COMBINE2_SHIFT (16U) +#define FTM_COMBINE_COMBINE2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMBINE2_SHIFT)) & FTM_COMBINE_COMBINE2_MASK) +#define FTM_COMBINE_COMP2_MASK (0x20000U) +#define FTM_COMBINE_COMP2_SHIFT (17U) +#define FTM_COMBINE_COMP2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMP2_SHIFT)) & FTM_COMBINE_COMP2_MASK) +#define FTM_COMBINE_DECAPEN2_MASK (0x40000U) +#define FTM_COMBINE_DECAPEN2_SHIFT (18U) +#define FTM_COMBINE_DECAPEN2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAPEN2_SHIFT)) & FTM_COMBINE_DECAPEN2_MASK) +#define FTM_COMBINE_DECAP2_MASK (0x80000U) +#define FTM_COMBINE_DECAP2_SHIFT (19U) +#define FTM_COMBINE_DECAP2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAP2_SHIFT)) & FTM_COMBINE_DECAP2_MASK) +#define FTM_COMBINE_DTEN2_MASK (0x100000U) +#define FTM_COMBINE_DTEN2_SHIFT (20U) +#define FTM_COMBINE_DTEN2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DTEN2_SHIFT)) & FTM_COMBINE_DTEN2_MASK) +#define FTM_COMBINE_SYNCEN2_MASK (0x200000U) +#define FTM_COMBINE_SYNCEN2_SHIFT (21U) +#define FTM_COMBINE_SYNCEN2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_SYNCEN2_SHIFT)) & FTM_COMBINE_SYNCEN2_MASK) +#define FTM_COMBINE_FAULTEN2_MASK (0x400000U) +#define FTM_COMBINE_FAULTEN2_SHIFT (22U) +#define FTM_COMBINE_FAULTEN2(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_FAULTEN2_SHIFT)) & FTM_COMBINE_FAULTEN2_MASK) +#define FTM_COMBINE_COMBINE3_MASK (0x1000000U) +#define FTM_COMBINE_COMBINE3_SHIFT (24U) +#define FTM_COMBINE_COMBINE3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMBINE3_SHIFT)) & FTM_COMBINE_COMBINE3_MASK) +#define FTM_COMBINE_COMP3_MASK (0x2000000U) +#define FTM_COMBINE_COMP3_SHIFT (25U) +#define FTM_COMBINE_COMP3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_COMP3_SHIFT)) & FTM_COMBINE_COMP3_MASK) +#define FTM_COMBINE_DECAPEN3_MASK (0x4000000U) +#define FTM_COMBINE_DECAPEN3_SHIFT (26U) +#define FTM_COMBINE_DECAPEN3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAPEN3_SHIFT)) & FTM_COMBINE_DECAPEN3_MASK) +#define FTM_COMBINE_DECAP3_MASK (0x8000000U) +#define FTM_COMBINE_DECAP3_SHIFT (27U) +#define FTM_COMBINE_DECAP3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DECAP3_SHIFT)) & FTM_COMBINE_DECAP3_MASK) +#define FTM_COMBINE_DTEN3_MASK (0x10000000U) +#define FTM_COMBINE_DTEN3_SHIFT (28U) +#define FTM_COMBINE_DTEN3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_DTEN3_SHIFT)) & FTM_COMBINE_DTEN3_MASK) +#define FTM_COMBINE_SYNCEN3_MASK (0x20000000U) +#define FTM_COMBINE_SYNCEN3_SHIFT (29U) +#define FTM_COMBINE_SYNCEN3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_SYNCEN3_SHIFT)) & FTM_COMBINE_SYNCEN3_MASK) +#define FTM_COMBINE_FAULTEN3_MASK (0x40000000U) +#define FTM_COMBINE_FAULTEN3_SHIFT (30U) +#define FTM_COMBINE_FAULTEN3(x) (((uint32_t)(((uint32_t)(x)) << FTM_COMBINE_FAULTEN3_SHIFT)) & FTM_COMBINE_FAULTEN3_MASK) + +/*! @name DEADTIME - Deadtime Insertion Control */ +#define FTM_DEADTIME_DTVAL_MASK (0x3FU) +#define FTM_DEADTIME_DTVAL_SHIFT (0U) +#define FTM_DEADTIME_DTVAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_DEADTIME_DTVAL_SHIFT)) & FTM_DEADTIME_DTVAL_MASK) +#define FTM_DEADTIME_DTPS_MASK (0xC0U) +#define FTM_DEADTIME_DTPS_SHIFT (6U) +#define FTM_DEADTIME_DTPS(x) (((uint32_t)(((uint32_t)(x)) << FTM_DEADTIME_DTPS_SHIFT)) & FTM_DEADTIME_DTPS_MASK) + +/*! @name EXTTRIG - FTM External Trigger */ +#define FTM_EXTTRIG_CH2TRIG_MASK (0x1U) +#define FTM_EXTTRIG_CH2TRIG_SHIFT (0U) +#define FTM_EXTTRIG_CH2TRIG(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_CH2TRIG_SHIFT)) & FTM_EXTTRIG_CH2TRIG_MASK) +#define FTM_EXTTRIG_CH3TRIG_MASK (0x2U) +#define FTM_EXTTRIG_CH3TRIG_SHIFT (1U) +#define FTM_EXTTRIG_CH3TRIG(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_CH3TRIG_SHIFT)) & FTM_EXTTRIG_CH3TRIG_MASK) +#define FTM_EXTTRIG_CH4TRIG_MASK (0x4U) +#define FTM_EXTTRIG_CH4TRIG_SHIFT (2U) +#define FTM_EXTTRIG_CH4TRIG(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_CH4TRIG_SHIFT)) & FTM_EXTTRIG_CH4TRIG_MASK) +#define FTM_EXTTRIG_CH5TRIG_MASK (0x8U) +#define FTM_EXTTRIG_CH5TRIG_SHIFT (3U) +#define FTM_EXTTRIG_CH5TRIG(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_CH5TRIG_SHIFT)) & FTM_EXTTRIG_CH5TRIG_MASK) +#define FTM_EXTTRIG_CH0TRIG_MASK (0x10U) +#define FTM_EXTTRIG_CH0TRIG_SHIFT (4U) +#define FTM_EXTTRIG_CH0TRIG(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_CH0TRIG_SHIFT)) & FTM_EXTTRIG_CH0TRIG_MASK) +#define FTM_EXTTRIG_CH1TRIG_MASK (0x20U) +#define FTM_EXTTRIG_CH1TRIG_SHIFT (5U) +#define FTM_EXTTRIG_CH1TRIG(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_CH1TRIG_SHIFT)) & FTM_EXTTRIG_CH1TRIG_MASK) +#define FTM_EXTTRIG_INITTRIGEN_MASK (0x40U) +#define FTM_EXTTRIG_INITTRIGEN_SHIFT (6U) +#define FTM_EXTTRIG_INITTRIGEN(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_INITTRIGEN_SHIFT)) & FTM_EXTTRIG_INITTRIGEN_MASK) +#define FTM_EXTTRIG_TRIGF_MASK (0x80U) +#define FTM_EXTTRIG_TRIGF_SHIFT (7U) +#define FTM_EXTTRIG_TRIGF(x) (((uint32_t)(((uint32_t)(x)) << FTM_EXTTRIG_TRIGF_SHIFT)) & FTM_EXTTRIG_TRIGF_MASK) + +/*! @name POL - Channels Polarity */ +#define FTM_POL_POL0_MASK (0x1U) +#define FTM_POL_POL0_SHIFT (0U) +#define FTM_POL_POL0(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL0_SHIFT)) & FTM_POL_POL0_MASK) +#define FTM_POL_POL1_MASK (0x2U) +#define FTM_POL_POL1_SHIFT (1U) +#define FTM_POL_POL1(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL1_SHIFT)) & FTM_POL_POL1_MASK) +#define FTM_POL_POL2_MASK (0x4U) +#define FTM_POL_POL2_SHIFT (2U) +#define FTM_POL_POL2(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL2_SHIFT)) & FTM_POL_POL2_MASK) +#define FTM_POL_POL3_MASK (0x8U) +#define FTM_POL_POL3_SHIFT (3U) +#define FTM_POL_POL3(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL3_SHIFT)) & FTM_POL_POL3_MASK) +#define FTM_POL_POL4_MASK (0x10U) +#define FTM_POL_POL4_SHIFT (4U) +#define FTM_POL_POL4(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL4_SHIFT)) & FTM_POL_POL4_MASK) +#define FTM_POL_POL5_MASK (0x20U) +#define FTM_POL_POL5_SHIFT (5U) +#define FTM_POL_POL5(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL5_SHIFT)) & FTM_POL_POL5_MASK) +#define FTM_POL_POL6_MASK (0x40U) +#define FTM_POL_POL6_SHIFT (6U) +#define FTM_POL_POL6(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL6_SHIFT)) & FTM_POL_POL6_MASK) +#define FTM_POL_POL7_MASK (0x80U) +#define FTM_POL_POL7_SHIFT (7U) +#define FTM_POL_POL7(x) (((uint32_t)(((uint32_t)(x)) << FTM_POL_POL7_SHIFT)) & FTM_POL_POL7_MASK) + +/*! @name FMS - Fault Mode Status */ +#define FTM_FMS_FAULTF0_MASK (0x1U) +#define FTM_FMS_FAULTF0_SHIFT (0U) +#define FTM_FMS_FAULTF0(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_FAULTF0_SHIFT)) & FTM_FMS_FAULTF0_MASK) +#define FTM_FMS_FAULTF1_MASK (0x2U) +#define FTM_FMS_FAULTF1_SHIFT (1U) +#define FTM_FMS_FAULTF1(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_FAULTF1_SHIFT)) & FTM_FMS_FAULTF1_MASK) +#define FTM_FMS_FAULTF2_MASK (0x4U) +#define FTM_FMS_FAULTF2_SHIFT (2U) +#define FTM_FMS_FAULTF2(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_FAULTF2_SHIFT)) & FTM_FMS_FAULTF2_MASK) +#define FTM_FMS_FAULTF3_MASK (0x8U) +#define FTM_FMS_FAULTF3_SHIFT (3U) +#define FTM_FMS_FAULTF3(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_FAULTF3_SHIFT)) & FTM_FMS_FAULTF3_MASK) +#define FTM_FMS_FAULTIN_MASK (0x20U) +#define FTM_FMS_FAULTIN_SHIFT (5U) +#define FTM_FMS_FAULTIN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_FAULTIN_SHIFT)) & FTM_FMS_FAULTIN_MASK) +#define FTM_FMS_WPEN_MASK (0x40U) +#define FTM_FMS_WPEN_SHIFT (6U) +#define FTM_FMS_WPEN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_WPEN_SHIFT)) & FTM_FMS_WPEN_MASK) +#define FTM_FMS_FAULTF_MASK (0x80U) +#define FTM_FMS_FAULTF_SHIFT (7U) +#define FTM_FMS_FAULTF(x) (((uint32_t)(((uint32_t)(x)) << FTM_FMS_FAULTF_SHIFT)) & FTM_FMS_FAULTF_MASK) + +/*! @name FILTER - Input Capture Filter Control */ +#define FTM_FILTER_CH0FVAL_MASK (0xFU) +#define FTM_FILTER_CH0FVAL_SHIFT (0U) +#define FTM_FILTER_CH0FVAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FILTER_CH0FVAL_SHIFT)) & FTM_FILTER_CH0FVAL_MASK) +#define FTM_FILTER_CH1FVAL_MASK (0xF0U) +#define FTM_FILTER_CH1FVAL_SHIFT (4U) +#define FTM_FILTER_CH1FVAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FILTER_CH1FVAL_SHIFT)) & FTM_FILTER_CH1FVAL_MASK) +#define FTM_FILTER_CH2FVAL_MASK (0xF00U) +#define FTM_FILTER_CH2FVAL_SHIFT (8U) +#define FTM_FILTER_CH2FVAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FILTER_CH2FVAL_SHIFT)) & FTM_FILTER_CH2FVAL_MASK) +#define FTM_FILTER_CH3FVAL_MASK (0xF000U) +#define FTM_FILTER_CH3FVAL_SHIFT (12U) +#define FTM_FILTER_CH3FVAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FILTER_CH3FVAL_SHIFT)) & FTM_FILTER_CH3FVAL_MASK) + +/*! @name FLTCTRL - Fault Control */ +#define FTM_FLTCTRL_FAULT0EN_MASK (0x1U) +#define FTM_FLTCTRL_FAULT0EN_SHIFT (0U) +#define FTM_FLTCTRL_FAULT0EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FAULT0EN_SHIFT)) & FTM_FLTCTRL_FAULT0EN_MASK) +#define FTM_FLTCTRL_FAULT1EN_MASK (0x2U) +#define FTM_FLTCTRL_FAULT1EN_SHIFT (1U) +#define FTM_FLTCTRL_FAULT1EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FAULT1EN_SHIFT)) & FTM_FLTCTRL_FAULT1EN_MASK) +#define FTM_FLTCTRL_FAULT2EN_MASK (0x4U) +#define FTM_FLTCTRL_FAULT2EN_SHIFT (2U) +#define FTM_FLTCTRL_FAULT2EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FAULT2EN_SHIFT)) & FTM_FLTCTRL_FAULT2EN_MASK) +#define FTM_FLTCTRL_FAULT3EN_MASK (0x8U) +#define FTM_FLTCTRL_FAULT3EN_SHIFT (3U) +#define FTM_FLTCTRL_FAULT3EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FAULT3EN_SHIFT)) & FTM_FLTCTRL_FAULT3EN_MASK) +#define FTM_FLTCTRL_FFLTR0EN_MASK (0x10U) +#define FTM_FLTCTRL_FFLTR0EN_SHIFT (4U) +#define FTM_FLTCTRL_FFLTR0EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FFLTR0EN_SHIFT)) & FTM_FLTCTRL_FFLTR0EN_MASK) +#define FTM_FLTCTRL_FFLTR1EN_MASK (0x20U) +#define FTM_FLTCTRL_FFLTR1EN_SHIFT (5U) +#define FTM_FLTCTRL_FFLTR1EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FFLTR1EN_SHIFT)) & FTM_FLTCTRL_FFLTR1EN_MASK) +#define FTM_FLTCTRL_FFLTR2EN_MASK (0x40U) +#define FTM_FLTCTRL_FFLTR2EN_SHIFT (6U) +#define FTM_FLTCTRL_FFLTR2EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FFLTR2EN_SHIFT)) & FTM_FLTCTRL_FFLTR2EN_MASK) +#define FTM_FLTCTRL_FFLTR3EN_MASK (0x80U) +#define FTM_FLTCTRL_FFLTR3EN_SHIFT (7U) +#define FTM_FLTCTRL_FFLTR3EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FFLTR3EN_SHIFT)) & FTM_FLTCTRL_FFLTR3EN_MASK) +#define FTM_FLTCTRL_FFVAL_MASK (0xF00U) +#define FTM_FLTCTRL_FFVAL_SHIFT (8U) +#define FTM_FLTCTRL_FFVAL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTCTRL_FFVAL_SHIFT)) & FTM_FLTCTRL_FFVAL_MASK) + +/*! @name QDCTRL - Quadrature Decoder Control And Status */ +#define FTM_QDCTRL_QUADEN_MASK (0x1U) +#define FTM_QDCTRL_QUADEN_SHIFT (0U) +#define FTM_QDCTRL_QUADEN(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_QUADEN_SHIFT)) & FTM_QDCTRL_QUADEN_MASK) +#define FTM_QDCTRL_TOFDIR_MASK (0x2U) +#define FTM_QDCTRL_TOFDIR_SHIFT (1U) +#define FTM_QDCTRL_TOFDIR(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_TOFDIR_SHIFT)) & FTM_QDCTRL_TOFDIR_MASK) +#define FTM_QDCTRL_QUADIR_MASK (0x4U) +#define FTM_QDCTRL_QUADIR_SHIFT (2U) +#define FTM_QDCTRL_QUADIR(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_QUADIR_SHIFT)) & FTM_QDCTRL_QUADIR_MASK) +#define FTM_QDCTRL_QUADMODE_MASK (0x8U) +#define FTM_QDCTRL_QUADMODE_SHIFT (3U) +#define FTM_QDCTRL_QUADMODE(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_QUADMODE_SHIFT)) & FTM_QDCTRL_QUADMODE_MASK) +#define FTM_QDCTRL_PHBPOL_MASK (0x10U) +#define FTM_QDCTRL_PHBPOL_SHIFT (4U) +#define FTM_QDCTRL_PHBPOL(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_PHBPOL_SHIFT)) & FTM_QDCTRL_PHBPOL_MASK) +#define FTM_QDCTRL_PHAPOL_MASK (0x20U) +#define FTM_QDCTRL_PHAPOL_SHIFT (5U) +#define FTM_QDCTRL_PHAPOL(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_PHAPOL_SHIFT)) & FTM_QDCTRL_PHAPOL_MASK) +#define FTM_QDCTRL_PHBFLTREN_MASK (0x40U) +#define FTM_QDCTRL_PHBFLTREN_SHIFT (6U) +#define FTM_QDCTRL_PHBFLTREN(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_PHBFLTREN_SHIFT)) & FTM_QDCTRL_PHBFLTREN_MASK) +#define FTM_QDCTRL_PHAFLTREN_MASK (0x80U) +#define FTM_QDCTRL_PHAFLTREN_SHIFT (7U) +#define FTM_QDCTRL_PHAFLTREN(x) (((uint32_t)(((uint32_t)(x)) << FTM_QDCTRL_PHAFLTREN_SHIFT)) & FTM_QDCTRL_PHAFLTREN_MASK) + +/*! @name CONF - Configuration */ +#define FTM_CONF_NUMTOF_MASK (0x1FU) +#define FTM_CONF_NUMTOF_SHIFT (0U) +#define FTM_CONF_NUMTOF(x) (((uint32_t)(((uint32_t)(x)) << FTM_CONF_NUMTOF_SHIFT)) & FTM_CONF_NUMTOF_MASK) +#define FTM_CONF_BDMMODE_MASK (0xC0U) +#define FTM_CONF_BDMMODE_SHIFT (6U) +#define FTM_CONF_BDMMODE(x) (((uint32_t)(((uint32_t)(x)) << FTM_CONF_BDMMODE_SHIFT)) & FTM_CONF_BDMMODE_MASK) +#define FTM_CONF_GTBEEN_MASK (0x200U) +#define FTM_CONF_GTBEEN_SHIFT (9U) +#define FTM_CONF_GTBEEN(x) (((uint32_t)(((uint32_t)(x)) << FTM_CONF_GTBEEN_SHIFT)) & FTM_CONF_GTBEEN_MASK) +#define FTM_CONF_GTBEOUT_MASK (0x400U) +#define FTM_CONF_GTBEOUT_SHIFT (10U) +#define FTM_CONF_GTBEOUT(x) (((uint32_t)(((uint32_t)(x)) << FTM_CONF_GTBEOUT_SHIFT)) & FTM_CONF_GTBEOUT_MASK) + +/*! @name FLTPOL - FTM Fault Input Polarity */ +#define FTM_FLTPOL_FLT0POL_MASK (0x1U) +#define FTM_FLTPOL_FLT0POL_SHIFT (0U) +#define FTM_FLTPOL_FLT0POL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTPOL_FLT0POL_SHIFT)) & FTM_FLTPOL_FLT0POL_MASK) +#define FTM_FLTPOL_FLT1POL_MASK (0x2U) +#define FTM_FLTPOL_FLT1POL_SHIFT (1U) +#define FTM_FLTPOL_FLT1POL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTPOL_FLT1POL_SHIFT)) & FTM_FLTPOL_FLT1POL_MASK) +#define FTM_FLTPOL_FLT2POL_MASK (0x4U) +#define FTM_FLTPOL_FLT2POL_SHIFT (2U) +#define FTM_FLTPOL_FLT2POL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTPOL_FLT2POL_SHIFT)) & FTM_FLTPOL_FLT2POL_MASK) +#define FTM_FLTPOL_FLT3POL_MASK (0x8U) +#define FTM_FLTPOL_FLT3POL_SHIFT (3U) +#define FTM_FLTPOL_FLT3POL(x) (((uint32_t)(((uint32_t)(x)) << FTM_FLTPOL_FLT3POL_SHIFT)) & FTM_FLTPOL_FLT3POL_MASK) + +/*! @name SYNCONF - Synchronization Configuration */ +#define FTM_SYNCONF_HWTRIGMODE_MASK (0x1U) +#define FTM_SYNCONF_HWTRIGMODE_SHIFT (0U) +#define FTM_SYNCONF_HWTRIGMODE(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_HWTRIGMODE_SHIFT)) & FTM_SYNCONF_HWTRIGMODE_MASK) +#define FTM_SYNCONF_CNTINC_MASK (0x4U) +#define FTM_SYNCONF_CNTINC_SHIFT (2U) +#define FTM_SYNCONF_CNTINC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_CNTINC_SHIFT)) & FTM_SYNCONF_CNTINC_MASK) +#define FTM_SYNCONF_INVC_MASK (0x10U) +#define FTM_SYNCONF_INVC_SHIFT (4U) +#define FTM_SYNCONF_INVC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_INVC_SHIFT)) & FTM_SYNCONF_INVC_MASK) +#define FTM_SYNCONF_SWOC_MASK (0x20U) +#define FTM_SYNCONF_SWOC_SHIFT (5U) +#define FTM_SYNCONF_SWOC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SWOC_SHIFT)) & FTM_SYNCONF_SWOC_MASK) +#define FTM_SYNCONF_SYNCMODE_MASK (0x80U) +#define FTM_SYNCONF_SYNCMODE_SHIFT (7U) +#define FTM_SYNCONF_SYNCMODE(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SYNCMODE_SHIFT)) & FTM_SYNCONF_SYNCMODE_MASK) +#define FTM_SYNCONF_SWRSTCNT_MASK (0x100U) +#define FTM_SYNCONF_SWRSTCNT_SHIFT (8U) +#define FTM_SYNCONF_SWRSTCNT(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SWRSTCNT_SHIFT)) & FTM_SYNCONF_SWRSTCNT_MASK) +#define FTM_SYNCONF_SWWRBUF_MASK (0x200U) +#define FTM_SYNCONF_SWWRBUF_SHIFT (9U) +#define FTM_SYNCONF_SWWRBUF(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SWWRBUF_SHIFT)) & FTM_SYNCONF_SWWRBUF_MASK) +#define FTM_SYNCONF_SWOM_MASK (0x400U) +#define FTM_SYNCONF_SWOM_SHIFT (10U) +#define FTM_SYNCONF_SWOM(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SWOM_SHIFT)) & FTM_SYNCONF_SWOM_MASK) +#define FTM_SYNCONF_SWINVC_MASK (0x800U) +#define FTM_SYNCONF_SWINVC_SHIFT (11U) +#define FTM_SYNCONF_SWINVC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SWINVC_SHIFT)) & FTM_SYNCONF_SWINVC_MASK) +#define FTM_SYNCONF_SWSOC_MASK (0x1000U) +#define FTM_SYNCONF_SWSOC_SHIFT (12U) +#define FTM_SYNCONF_SWSOC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_SWSOC_SHIFT)) & FTM_SYNCONF_SWSOC_MASK) +#define FTM_SYNCONF_HWRSTCNT_MASK (0x10000U) +#define FTM_SYNCONF_HWRSTCNT_SHIFT (16U) +#define FTM_SYNCONF_HWRSTCNT(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_HWRSTCNT_SHIFT)) & FTM_SYNCONF_HWRSTCNT_MASK) +#define FTM_SYNCONF_HWWRBUF_MASK (0x20000U) +#define FTM_SYNCONF_HWWRBUF_SHIFT (17U) +#define FTM_SYNCONF_HWWRBUF(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_HWWRBUF_SHIFT)) & FTM_SYNCONF_HWWRBUF_MASK) +#define FTM_SYNCONF_HWOM_MASK (0x40000U) +#define FTM_SYNCONF_HWOM_SHIFT (18U) +#define FTM_SYNCONF_HWOM(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_HWOM_SHIFT)) & FTM_SYNCONF_HWOM_MASK) +#define FTM_SYNCONF_HWINVC_MASK (0x80000U) +#define FTM_SYNCONF_HWINVC_SHIFT (19U) +#define FTM_SYNCONF_HWINVC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_HWINVC_SHIFT)) & FTM_SYNCONF_HWINVC_MASK) +#define FTM_SYNCONF_HWSOC_MASK (0x100000U) +#define FTM_SYNCONF_HWSOC_SHIFT (20U) +#define FTM_SYNCONF_HWSOC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SYNCONF_HWSOC_SHIFT)) & FTM_SYNCONF_HWSOC_MASK) + +/*! @name INVCTRL - FTM Inverting Control */ +#define FTM_INVCTRL_INV0EN_MASK (0x1U) +#define FTM_INVCTRL_INV0EN_SHIFT (0U) +#define FTM_INVCTRL_INV0EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_INVCTRL_INV0EN_SHIFT)) & FTM_INVCTRL_INV0EN_MASK) +#define FTM_INVCTRL_INV1EN_MASK (0x2U) +#define FTM_INVCTRL_INV1EN_SHIFT (1U) +#define FTM_INVCTRL_INV1EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_INVCTRL_INV1EN_SHIFT)) & FTM_INVCTRL_INV1EN_MASK) +#define FTM_INVCTRL_INV2EN_MASK (0x4U) +#define FTM_INVCTRL_INV2EN_SHIFT (2U) +#define FTM_INVCTRL_INV2EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_INVCTRL_INV2EN_SHIFT)) & FTM_INVCTRL_INV2EN_MASK) +#define FTM_INVCTRL_INV3EN_MASK (0x8U) +#define FTM_INVCTRL_INV3EN_SHIFT (3U) +#define FTM_INVCTRL_INV3EN(x) (((uint32_t)(((uint32_t)(x)) << FTM_INVCTRL_INV3EN_SHIFT)) & FTM_INVCTRL_INV3EN_MASK) + +/*! @name SWOCTRL - FTM Software Output Control */ +#define FTM_SWOCTRL_CH0OC_MASK (0x1U) +#define FTM_SWOCTRL_CH0OC_SHIFT (0U) +#define FTM_SWOCTRL_CH0OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH0OC_SHIFT)) & FTM_SWOCTRL_CH0OC_MASK) +#define FTM_SWOCTRL_CH1OC_MASK (0x2U) +#define FTM_SWOCTRL_CH1OC_SHIFT (1U) +#define FTM_SWOCTRL_CH1OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH1OC_SHIFT)) & FTM_SWOCTRL_CH1OC_MASK) +#define FTM_SWOCTRL_CH2OC_MASK (0x4U) +#define FTM_SWOCTRL_CH2OC_SHIFT (2U) +#define FTM_SWOCTRL_CH2OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH2OC_SHIFT)) & FTM_SWOCTRL_CH2OC_MASK) +#define FTM_SWOCTRL_CH3OC_MASK (0x8U) +#define FTM_SWOCTRL_CH3OC_SHIFT (3U) +#define FTM_SWOCTRL_CH3OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH3OC_SHIFT)) & FTM_SWOCTRL_CH3OC_MASK) +#define FTM_SWOCTRL_CH4OC_MASK (0x10U) +#define FTM_SWOCTRL_CH4OC_SHIFT (4U) +#define FTM_SWOCTRL_CH4OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH4OC_SHIFT)) & FTM_SWOCTRL_CH4OC_MASK) +#define FTM_SWOCTRL_CH5OC_MASK (0x20U) +#define FTM_SWOCTRL_CH5OC_SHIFT (5U) +#define FTM_SWOCTRL_CH5OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH5OC_SHIFT)) & FTM_SWOCTRL_CH5OC_MASK) +#define FTM_SWOCTRL_CH6OC_MASK (0x40U) +#define FTM_SWOCTRL_CH6OC_SHIFT (6U) +#define FTM_SWOCTRL_CH6OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH6OC_SHIFT)) & FTM_SWOCTRL_CH6OC_MASK) +#define FTM_SWOCTRL_CH7OC_MASK (0x80U) +#define FTM_SWOCTRL_CH7OC_SHIFT (7U) +#define FTM_SWOCTRL_CH7OC(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH7OC_SHIFT)) & FTM_SWOCTRL_CH7OC_MASK) +#define FTM_SWOCTRL_CH0OCV_MASK (0x100U) +#define FTM_SWOCTRL_CH0OCV_SHIFT (8U) +#define FTM_SWOCTRL_CH0OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH0OCV_SHIFT)) & FTM_SWOCTRL_CH0OCV_MASK) +#define FTM_SWOCTRL_CH1OCV_MASK (0x200U) +#define FTM_SWOCTRL_CH1OCV_SHIFT (9U) +#define FTM_SWOCTRL_CH1OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH1OCV_SHIFT)) & FTM_SWOCTRL_CH1OCV_MASK) +#define FTM_SWOCTRL_CH2OCV_MASK (0x400U) +#define FTM_SWOCTRL_CH2OCV_SHIFT (10U) +#define FTM_SWOCTRL_CH2OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH2OCV_SHIFT)) & FTM_SWOCTRL_CH2OCV_MASK) +#define FTM_SWOCTRL_CH3OCV_MASK (0x800U) +#define FTM_SWOCTRL_CH3OCV_SHIFT (11U) +#define FTM_SWOCTRL_CH3OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH3OCV_SHIFT)) & FTM_SWOCTRL_CH3OCV_MASK) +#define FTM_SWOCTRL_CH4OCV_MASK (0x1000U) +#define FTM_SWOCTRL_CH4OCV_SHIFT (12U) +#define FTM_SWOCTRL_CH4OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH4OCV_SHIFT)) & FTM_SWOCTRL_CH4OCV_MASK) +#define FTM_SWOCTRL_CH5OCV_MASK (0x2000U) +#define FTM_SWOCTRL_CH5OCV_SHIFT (13U) +#define FTM_SWOCTRL_CH5OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH5OCV_SHIFT)) & FTM_SWOCTRL_CH5OCV_MASK) +#define FTM_SWOCTRL_CH6OCV_MASK (0x4000U) +#define FTM_SWOCTRL_CH6OCV_SHIFT (14U) +#define FTM_SWOCTRL_CH6OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH6OCV_SHIFT)) & FTM_SWOCTRL_CH6OCV_MASK) +#define FTM_SWOCTRL_CH7OCV_MASK (0x8000U) +#define FTM_SWOCTRL_CH7OCV_SHIFT (15U) +#define FTM_SWOCTRL_CH7OCV(x) (((uint32_t)(((uint32_t)(x)) << FTM_SWOCTRL_CH7OCV_SHIFT)) & FTM_SWOCTRL_CH7OCV_MASK) + +/*! @name PWMLOAD - FTM PWM Load */ +#define FTM_PWMLOAD_CH0SEL_MASK (0x1U) +#define FTM_PWMLOAD_CH0SEL_SHIFT (0U) +#define FTM_PWMLOAD_CH0SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH0SEL_SHIFT)) & FTM_PWMLOAD_CH0SEL_MASK) +#define FTM_PWMLOAD_CH1SEL_MASK (0x2U) +#define FTM_PWMLOAD_CH1SEL_SHIFT (1U) +#define FTM_PWMLOAD_CH1SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH1SEL_SHIFT)) & FTM_PWMLOAD_CH1SEL_MASK) +#define FTM_PWMLOAD_CH2SEL_MASK (0x4U) +#define FTM_PWMLOAD_CH2SEL_SHIFT (2U) +#define FTM_PWMLOAD_CH2SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH2SEL_SHIFT)) & FTM_PWMLOAD_CH2SEL_MASK) +#define FTM_PWMLOAD_CH3SEL_MASK (0x8U) +#define FTM_PWMLOAD_CH3SEL_SHIFT (3U) +#define FTM_PWMLOAD_CH3SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH3SEL_SHIFT)) & FTM_PWMLOAD_CH3SEL_MASK) +#define FTM_PWMLOAD_CH4SEL_MASK (0x10U) +#define FTM_PWMLOAD_CH4SEL_SHIFT (4U) +#define FTM_PWMLOAD_CH4SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH4SEL_SHIFT)) & FTM_PWMLOAD_CH4SEL_MASK) +#define FTM_PWMLOAD_CH5SEL_MASK (0x20U) +#define FTM_PWMLOAD_CH5SEL_SHIFT (5U) +#define FTM_PWMLOAD_CH5SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH5SEL_SHIFT)) & FTM_PWMLOAD_CH5SEL_MASK) +#define FTM_PWMLOAD_CH6SEL_MASK (0x40U) +#define FTM_PWMLOAD_CH6SEL_SHIFT (6U) +#define FTM_PWMLOAD_CH6SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH6SEL_SHIFT)) & FTM_PWMLOAD_CH6SEL_MASK) +#define FTM_PWMLOAD_CH7SEL_MASK (0x80U) +#define FTM_PWMLOAD_CH7SEL_SHIFT (7U) +#define FTM_PWMLOAD_CH7SEL(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_CH7SEL_SHIFT)) & FTM_PWMLOAD_CH7SEL_MASK) +#define FTM_PWMLOAD_LDOK_MASK (0x200U) +#define FTM_PWMLOAD_LDOK_SHIFT (9U) +#define FTM_PWMLOAD_LDOK(x) (((uint32_t)(((uint32_t)(x)) << FTM_PWMLOAD_LDOK_SHIFT)) & FTM_PWMLOAD_LDOK_MASK) + + +/*! + * @} + */ /* end of group FTM_Register_Masks */ + + +/* FTM - Peripheral instance base addresses */ +/** Peripheral FTM0 base address */ +#define FTM0_BASE (0x40038000u) +/** Peripheral FTM0 base pointer */ +#define FTM0 ((FTM_Type *)FTM0_BASE) +/** Peripheral FTM1 base address */ +#define FTM1_BASE (0x40039000u) +/** Peripheral FTM1 base pointer */ +#define FTM1 ((FTM_Type *)FTM1_BASE) +/** Peripheral FTM2 base address */ +#define FTM2_BASE (0x4003A000u) +/** Peripheral FTM2 base pointer */ +#define FTM2 ((FTM_Type *)FTM2_BASE) +/** Peripheral FTM3 base address */ +#define FTM3_BASE (0x400B9000u) +/** Peripheral FTM3 base pointer */ +#define FTM3 ((FTM_Type *)FTM3_BASE) +/** Array initializer of FTM peripheral base addresses */ +#define FTM_BASE_ADDRS { FTM0_BASE, FTM1_BASE, FTM2_BASE, FTM3_BASE } +/** Array initializer of FTM peripheral base pointers */ +#define FTM_BASE_PTRS { FTM0, FTM1, FTM2, FTM3 } +/** Interrupt vectors for the FTM peripheral type */ +#define FTM_IRQS { FTM0_IRQn, FTM1_IRQn, FTM2_IRQn, FTM3_IRQn } + +/*! + * @} + */ /* end of group FTM_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- GPIO Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup GPIO_Peripheral_Access_Layer GPIO Peripheral Access Layer + * @{ + */ + +/** GPIO - Register Layout Typedef */ +typedef struct { + __IO uint32_t PDOR; /**< Port Data Output Register, offset: 0x0 */ + __O uint32_t PSOR; /**< Port Set Output Register, offset: 0x4 */ + __O uint32_t PCOR; /**< Port Clear Output Register, offset: 0x8 */ + __O uint32_t PTOR; /**< Port Toggle Output Register, offset: 0xC */ + __I uint32_t PDIR; /**< Port Data Input Register, offset: 0x10 */ + __IO uint32_t PDDR; /**< Port Data Direction Register, offset: 0x14 */ +} GPIO_Type; + +/* ---------------------------------------------------------------------------- + -- GPIO Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup GPIO_Register_Masks GPIO Register Masks + * @{ + */ + +/*! @name PDOR - Port Data Output Register */ +#define GPIO_PDOR_PDO_MASK (0xFFFFFFFFU) +#define GPIO_PDOR_PDO_SHIFT (0U) +#define GPIO_PDOR_PDO(x) (((uint32_t)(((uint32_t)(x)) << GPIO_PDOR_PDO_SHIFT)) & GPIO_PDOR_PDO_MASK) + +/*! @name PSOR - Port Set Output Register */ +#define GPIO_PSOR_PTSO_MASK (0xFFFFFFFFU) +#define GPIO_PSOR_PTSO_SHIFT (0U) +#define GPIO_PSOR_PTSO(x) (((uint32_t)(((uint32_t)(x)) << GPIO_PSOR_PTSO_SHIFT)) & GPIO_PSOR_PTSO_MASK) + +/*! @name PCOR - Port Clear Output Register */ +#define GPIO_PCOR_PTCO_MASK (0xFFFFFFFFU) +#define GPIO_PCOR_PTCO_SHIFT (0U) +#define GPIO_PCOR_PTCO(x) (((uint32_t)(((uint32_t)(x)) << GPIO_PCOR_PTCO_SHIFT)) & GPIO_PCOR_PTCO_MASK) + +/*! @name PTOR - Port Toggle Output Register */ +#define GPIO_PTOR_PTTO_MASK (0xFFFFFFFFU) +#define GPIO_PTOR_PTTO_SHIFT (0U) +#define GPIO_PTOR_PTTO(x) (((uint32_t)(((uint32_t)(x)) << GPIO_PTOR_PTTO_SHIFT)) & GPIO_PTOR_PTTO_MASK) + +/*! @name PDIR - Port Data Input Register */ +#define GPIO_PDIR_PDI_MASK (0xFFFFFFFFU) +#define GPIO_PDIR_PDI_SHIFT (0U) +#define GPIO_PDIR_PDI(x) (((uint32_t)(((uint32_t)(x)) << GPIO_PDIR_PDI_SHIFT)) & GPIO_PDIR_PDI_MASK) + +/*! @name PDDR - Port Data Direction Register */ +#define GPIO_PDDR_PDD_MASK (0xFFFFFFFFU) +#define GPIO_PDDR_PDD_SHIFT (0U) +#define GPIO_PDDR_PDD(x) (((uint32_t)(((uint32_t)(x)) << GPIO_PDDR_PDD_SHIFT)) & GPIO_PDDR_PDD_MASK) + + +/*! + * @} + */ /* end of group GPIO_Register_Masks */ + + +/* GPIO - Peripheral instance base addresses */ +/** Peripheral GPIOA base address */ +#define GPIOA_BASE (0x400FF000u) +/** Peripheral GPIOA base pointer */ +#define GPIOA ((GPIO_Type *)GPIOA_BASE) +/** Peripheral GPIOB base address */ +#define GPIOB_BASE (0x400FF040u) +/** Peripheral GPIOB base pointer */ +#define GPIOB ((GPIO_Type *)GPIOB_BASE) +/** Peripheral GPIOC base address */ +#define GPIOC_BASE (0x400FF080u) +/** Peripheral GPIOC base pointer */ +#define GPIOC ((GPIO_Type *)GPIOC_BASE) +/** Peripheral GPIOD base address */ +#define GPIOD_BASE (0x400FF0C0u) +/** Peripheral GPIOD base pointer */ +#define GPIOD ((GPIO_Type *)GPIOD_BASE) +/** Peripheral GPIOE base address */ +#define GPIOE_BASE (0x400FF100u) +/** Peripheral GPIOE base pointer */ +#define GPIOE ((GPIO_Type *)GPIOE_BASE) +/** Array initializer of GPIO peripheral base addresses */ +#define GPIO_BASE_ADDRS { GPIOA_BASE, GPIOB_BASE, GPIOC_BASE, GPIOD_BASE, GPIOE_BASE } +/** Array initializer of GPIO peripheral base pointers */ +#define GPIO_BASE_PTRS { GPIOA, GPIOB, GPIOC, GPIOD, GPIOE } + +/*! + * @} + */ /* end of group GPIO_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- I2C Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup I2C_Peripheral_Access_Layer I2C Peripheral Access Layer + * @{ + */ + +/** I2C - Register Layout Typedef */ +typedef struct { + __IO uint8_t A1; /**< I2C Address Register 1, offset: 0x0 */ + __IO uint8_t F; /**< I2C Frequency Divider register, offset: 0x1 */ + __IO uint8_t C1; /**< I2C Control Register 1, offset: 0x2 */ + __IO uint8_t S; /**< I2C Status register, offset: 0x3 */ + __IO uint8_t D; /**< I2C Data I/O register, offset: 0x4 */ + __IO uint8_t C2; /**< I2C Control Register 2, offset: 0x5 */ + __IO uint8_t FLT; /**< I2C Programmable Input Glitch Filter register, offset: 0x6 */ + __IO uint8_t RA; /**< I2C Range Address register, offset: 0x7 */ + __IO uint8_t SMB; /**< I2C SMBus Control and Status register, offset: 0x8 */ + __IO uint8_t A2; /**< I2C Address Register 2, offset: 0x9 */ + __IO uint8_t SLTH; /**< I2C SCL Low Timeout Register High, offset: 0xA */ + __IO uint8_t SLTL; /**< I2C SCL Low Timeout Register Low, offset: 0xB */ +} I2C_Type; + +/* ---------------------------------------------------------------------------- + -- I2C Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup I2C_Register_Masks I2C Register Masks + * @{ + */ + +/*! @name A1 - I2C Address Register 1 */ +#define I2C_A1_AD_MASK (0xFEU) +#define I2C_A1_AD_SHIFT (1U) +#define I2C_A1_AD(x) (((uint8_t)(((uint8_t)(x)) << I2C_A1_AD_SHIFT)) & I2C_A1_AD_MASK) + +/*! @name F - I2C Frequency Divider register */ +#define I2C_F_ICR_MASK (0x3FU) +#define I2C_F_ICR_SHIFT (0U) +#define I2C_F_ICR(x) (((uint8_t)(((uint8_t)(x)) << I2C_F_ICR_SHIFT)) & I2C_F_ICR_MASK) +#define I2C_F_MULT_MASK (0xC0U) +#define I2C_F_MULT_SHIFT (6U) +#define I2C_F_MULT(x) (((uint8_t)(((uint8_t)(x)) << I2C_F_MULT_SHIFT)) & I2C_F_MULT_MASK) + +/*! @name C1 - I2C Control Register 1 */ +#define I2C_C1_DMAEN_MASK (0x1U) +#define I2C_C1_DMAEN_SHIFT (0U) +#define I2C_C1_DMAEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_DMAEN_SHIFT)) & I2C_C1_DMAEN_MASK) +#define I2C_C1_WUEN_MASK (0x2U) +#define I2C_C1_WUEN_SHIFT (1U) +#define I2C_C1_WUEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_WUEN_SHIFT)) & I2C_C1_WUEN_MASK) +#define I2C_C1_RSTA_MASK (0x4U) +#define I2C_C1_RSTA_SHIFT (2U) +#define I2C_C1_RSTA(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_RSTA_SHIFT)) & I2C_C1_RSTA_MASK) +#define I2C_C1_TXAK_MASK (0x8U) +#define I2C_C1_TXAK_SHIFT (3U) +#define I2C_C1_TXAK(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_TXAK_SHIFT)) & I2C_C1_TXAK_MASK) +#define I2C_C1_TX_MASK (0x10U) +#define I2C_C1_TX_SHIFT (4U) +#define I2C_C1_TX(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_TX_SHIFT)) & I2C_C1_TX_MASK) +#define I2C_C1_MST_MASK (0x20U) +#define I2C_C1_MST_SHIFT (5U) +#define I2C_C1_MST(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_MST_SHIFT)) & I2C_C1_MST_MASK) +#define I2C_C1_IICIE_MASK (0x40U) +#define I2C_C1_IICIE_SHIFT (6U) +#define I2C_C1_IICIE(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_IICIE_SHIFT)) & I2C_C1_IICIE_MASK) +#define I2C_C1_IICEN_MASK (0x80U) +#define I2C_C1_IICEN_SHIFT (7U) +#define I2C_C1_IICEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_C1_IICEN_SHIFT)) & I2C_C1_IICEN_MASK) + +/*! @name S - I2C Status register */ +#define I2C_S_RXAK_MASK (0x1U) +#define I2C_S_RXAK_SHIFT (0U) +#define I2C_S_RXAK(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_RXAK_SHIFT)) & I2C_S_RXAK_MASK) +#define I2C_S_IICIF_MASK (0x2U) +#define I2C_S_IICIF_SHIFT (1U) +#define I2C_S_IICIF(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_IICIF_SHIFT)) & I2C_S_IICIF_MASK) +#define I2C_S_SRW_MASK (0x4U) +#define I2C_S_SRW_SHIFT (2U) +#define I2C_S_SRW(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_SRW_SHIFT)) & I2C_S_SRW_MASK) +#define I2C_S_RAM_MASK (0x8U) +#define I2C_S_RAM_SHIFT (3U) +#define I2C_S_RAM(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_RAM_SHIFT)) & I2C_S_RAM_MASK) +#define I2C_S_ARBL_MASK (0x10U) +#define I2C_S_ARBL_SHIFT (4U) +#define I2C_S_ARBL(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_ARBL_SHIFT)) & I2C_S_ARBL_MASK) +#define I2C_S_BUSY_MASK (0x20U) +#define I2C_S_BUSY_SHIFT (5U) +#define I2C_S_BUSY(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_BUSY_SHIFT)) & I2C_S_BUSY_MASK) +#define I2C_S_IAAS_MASK (0x40U) +#define I2C_S_IAAS_SHIFT (6U) +#define I2C_S_IAAS(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_IAAS_SHIFT)) & I2C_S_IAAS_MASK) +#define I2C_S_TCF_MASK (0x80U) +#define I2C_S_TCF_SHIFT (7U) +#define I2C_S_TCF(x) (((uint8_t)(((uint8_t)(x)) << I2C_S_TCF_SHIFT)) & I2C_S_TCF_MASK) + +/*! @name D - I2C Data I/O register */ +#define I2C_D_DATA_MASK (0xFFU) +#define I2C_D_DATA_SHIFT (0U) +#define I2C_D_DATA(x) (((uint8_t)(((uint8_t)(x)) << I2C_D_DATA_SHIFT)) & I2C_D_DATA_MASK) + +/*! @name C2 - I2C Control Register 2 */ +#define I2C_C2_AD_MASK (0x7U) +#define I2C_C2_AD_SHIFT (0U) +#define I2C_C2_AD(x) (((uint8_t)(((uint8_t)(x)) << I2C_C2_AD_SHIFT)) & I2C_C2_AD_MASK) +#define I2C_C2_RMEN_MASK (0x8U) +#define I2C_C2_RMEN_SHIFT (3U) +#define I2C_C2_RMEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_C2_RMEN_SHIFT)) & I2C_C2_RMEN_MASK) +#define I2C_C2_SBRC_MASK (0x10U) +#define I2C_C2_SBRC_SHIFT (4U) +#define I2C_C2_SBRC(x) (((uint8_t)(((uint8_t)(x)) << I2C_C2_SBRC_SHIFT)) & I2C_C2_SBRC_MASK) +#define I2C_C2_HDRS_MASK (0x20U) +#define I2C_C2_HDRS_SHIFT (5U) +#define I2C_C2_HDRS(x) (((uint8_t)(((uint8_t)(x)) << I2C_C2_HDRS_SHIFT)) & I2C_C2_HDRS_MASK) +#define I2C_C2_ADEXT_MASK (0x40U) +#define I2C_C2_ADEXT_SHIFT (6U) +#define I2C_C2_ADEXT(x) (((uint8_t)(((uint8_t)(x)) << I2C_C2_ADEXT_SHIFT)) & I2C_C2_ADEXT_MASK) +#define I2C_C2_GCAEN_MASK (0x80U) +#define I2C_C2_GCAEN_SHIFT (7U) +#define I2C_C2_GCAEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_C2_GCAEN_SHIFT)) & I2C_C2_GCAEN_MASK) + +/*! @name FLT - I2C Programmable Input Glitch Filter register */ +#define I2C_FLT_FLT_MASK (0xFU) +#define I2C_FLT_FLT_SHIFT (0U) +#define I2C_FLT_FLT(x) (((uint8_t)(((uint8_t)(x)) << I2C_FLT_FLT_SHIFT)) & I2C_FLT_FLT_MASK) +#define I2C_FLT_STARTF_MASK (0x10U) +#define I2C_FLT_STARTF_SHIFT (4U) +#define I2C_FLT_STARTF(x) (((uint8_t)(((uint8_t)(x)) << I2C_FLT_STARTF_SHIFT)) & I2C_FLT_STARTF_MASK) +#define I2C_FLT_SSIE_MASK (0x20U) +#define I2C_FLT_SSIE_SHIFT (5U) +#define I2C_FLT_SSIE(x) (((uint8_t)(((uint8_t)(x)) << I2C_FLT_SSIE_SHIFT)) & I2C_FLT_SSIE_MASK) +#define I2C_FLT_STOPF_MASK (0x40U) +#define I2C_FLT_STOPF_SHIFT (6U) +#define I2C_FLT_STOPF(x) (((uint8_t)(((uint8_t)(x)) << I2C_FLT_STOPF_SHIFT)) & I2C_FLT_STOPF_MASK) +#define I2C_FLT_SHEN_MASK (0x80U) +#define I2C_FLT_SHEN_SHIFT (7U) +#define I2C_FLT_SHEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_FLT_SHEN_SHIFT)) & I2C_FLT_SHEN_MASK) + +/*! @name RA - I2C Range Address register */ +#define I2C_RA_RAD_MASK (0xFEU) +#define I2C_RA_RAD_SHIFT (1U) +#define I2C_RA_RAD(x) (((uint8_t)(((uint8_t)(x)) << I2C_RA_RAD_SHIFT)) & I2C_RA_RAD_MASK) + +/*! @name SMB - I2C SMBus Control and Status register */ +#define I2C_SMB_SHTF2IE_MASK (0x1U) +#define I2C_SMB_SHTF2IE_SHIFT (0U) +#define I2C_SMB_SHTF2IE(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_SHTF2IE_SHIFT)) & I2C_SMB_SHTF2IE_MASK) +#define I2C_SMB_SHTF2_MASK (0x2U) +#define I2C_SMB_SHTF2_SHIFT (1U) +#define I2C_SMB_SHTF2(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_SHTF2_SHIFT)) & I2C_SMB_SHTF2_MASK) +#define I2C_SMB_SHTF1_MASK (0x4U) +#define I2C_SMB_SHTF1_SHIFT (2U) +#define I2C_SMB_SHTF1(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_SHTF1_SHIFT)) & I2C_SMB_SHTF1_MASK) +#define I2C_SMB_SLTF_MASK (0x8U) +#define I2C_SMB_SLTF_SHIFT (3U) +#define I2C_SMB_SLTF(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_SLTF_SHIFT)) & I2C_SMB_SLTF_MASK) +#define I2C_SMB_TCKSEL_MASK (0x10U) +#define I2C_SMB_TCKSEL_SHIFT (4U) +#define I2C_SMB_TCKSEL(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_TCKSEL_SHIFT)) & I2C_SMB_TCKSEL_MASK) +#define I2C_SMB_SIICAEN_MASK (0x20U) +#define I2C_SMB_SIICAEN_SHIFT (5U) +#define I2C_SMB_SIICAEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_SIICAEN_SHIFT)) & I2C_SMB_SIICAEN_MASK) +#define I2C_SMB_ALERTEN_MASK (0x40U) +#define I2C_SMB_ALERTEN_SHIFT (6U) +#define I2C_SMB_ALERTEN(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_ALERTEN_SHIFT)) & I2C_SMB_ALERTEN_MASK) +#define I2C_SMB_FACK_MASK (0x80U) +#define I2C_SMB_FACK_SHIFT (7U) +#define I2C_SMB_FACK(x) (((uint8_t)(((uint8_t)(x)) << I2C_SMB_FACK_SHIFT)) & I2C_SMB_FACK_MASK) + +/*! @name A2 - I2C Address Register 2 */ +#define I2C_A2_SAD_MASK (0xFEU) +#define I2C_A2_SAD_SHIFT (1U) +#define I2C_A2_SAD(x) (((uint8_t)(((uint8_t)(x)) << I2C_A2_SAD_SHIFT)) & I2C_A2_SAD_MASK) + +/*! @name SLTH - I2C SCL Low Timeout Register High */ +#define I2C_SLTH_SSLT_MASK (0xFFU) +#define I2C_SLTH_SSLT_SHIFT (0U) +#define I2C_SLTH_SSLT(x) (((uint8_t)(((uint8_t)(x)) << I2C_SLTH_SSLT_SHIFT)) & I2C_SLTH_SSLT_MASK) + +/*! @name SLTL - I2C SCL Low Timeout Register Low */ +#define I2C_SLTL_SSLT_MASK (0xFFU) +#define I2C_SLTL_SSLT_SHIFT (0U) +#define I2C_SLTL_SSLT(x) (((uint8_t)(((uint8_t)(x)) << I2C_SLTL_SSLT_SHIFT)) & I2C_SLTL_SSLT_MASK) + + +/*! + * @} + */ /* end of group I2C_Register_Masks */ + + +/* I2C - Peripheral instance base addresses */ +/** Peripheral I2C0 base address */ +#define I2C0_BASE (0x40066000u) +/** Peripheral I2C0 base pointer */ +#define I2C0 ((I2C_Type *)I2C0_BASE) +/** Peripheral I2C1 base address */ +#define I2C1_BASE (0x40067000u) +/** Peripheral I2C1 base pointer */ +#define I2C1 ((I2C_Type *)I2C1_BASE) +/** Peripheral I2C2 base address */ +#define I2C2_BASE (0x400E6000u) +/** Peripheral I2C2 base pointer */ +#define I2C2 ((I2C_Type *)I2C2_BASE) +/** Array initializer of I2C peripheral base addresses */ +#define I2C_BASE_ADDRS { I2C0_BASE, I2C1_BASE, I2C2_BASE } +/** Array initializer of I2C peripheral base pointers */ +#define I2C_BASE_PTRS { I2C0, I2C1, I2C2 } +/** Interrupt vectors for the I2C peripheral type */ +#define I2C_IRQS { I2C0_IRQn, I2C1_IRQn, I2C2_IRQn } + +/*! + * @} + */ /* end of group I2C_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- I2S Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup I2S_Peripheral_Access_Layer I2S Peripheral Access Layer + * @{ + */ + +/** I2S - Register Layout Typedef */ +typedef struct { + __IO uint32_t TCSR; /**< SAI Transmit Control Register, offset: 0x0 */ + __IO uint32_t TCR1; /**< SAI Transmit Configuration 1 Register, offset: 0x4 */ + __IO uint32_t TCR2; /**< SAI Transmit Configuration 2 Register, offset: 0x8 */ + __IO uint32_t TCR3; /**< SAI Transmit Configuration 3 Register, offset: 0xC */ + __IO uint32_t TCR4; /**< SAI Transmit Configuration 4 Register, offset: 0x10 */ + __IO uint32_t TCR5; /**< SAI Transmit Configuration 5 Register, offset: 0x14 */ + uint8_t RESERVED_0[8]; + __O uint32_t TDR[2]; /**< SAI Transmit Data Register, array offset: 0x20, array step: 0x4 */ + uint8_t RESERVED_1[24]; + __I uint32_t TFR[2]; /**< SAI Transmit FIFO Register, array offset: 0x40, array step: 0x4 */ + uint8_t RESERVED_2[24]; + __IO uint32_t TMR; /**< SAI Transmit Mask Register, offset: 0x60 */ + uint8_t RESERVED_3[28]; + __IO uint32_t RCSR; /**< SAI Receive Control Register, offset: 0x80 */ + __IO uint32_t RCR1; /**< SAI Receive Configuration 1 Register, offset: 0x84 */ + __IO uint32_t RCR2; /**< SAI Receive Configuration 2 Register, offset: 0x88 */ + __IO uint32_t RCR3; /**< SAI Receive Configuration 3 Register, offset: 0x8C */ + __IO uint32_t RCR4; /**< SAI Receive Configuration 4 Register, offset: 0x90 */ + __IO uint32_t RCR5; /**< SAI Receive Configuration 5 Register, offset: 0x94 */ + uint8_t RESERVED_4[8]; + __I uint32_t RDR[2]; /**< SAI Receive Data Register, array offset: 0xA0, array step: 0x4 */ + uint8_t RESERVED_5[24]; + __I uint32_t RFR[2]; /**< SAI Receive FIFO Register, array offset: 0xC0, array step: 0x4 */ + uint8_t RESERVED_6[24]; + __IO uint32_t RMR; /**< SAI Receive Mask Register, offset: 0xE0 */ + uint8_t RESERVED_7[28]; + __IO uint32_t MCR; /**< SAI MCLK Control Register, offset: 0x100 */ + __IO uint32_t MDR; /**< SAI MCLK Divide Register, offset: 0x104 */ +} I2S_Type; + +/* ---------------------------------------------------------------------------- + -- I2S Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup I2S_Register_Masks I2S Register Masks + * @{ + */ + +/*! @name TCSR - SAI Transmit Control Register */ +#define I2S_TCSR_FRDE_MASK (0x1U) +#define I2S_TCSR_FRDE_SHIFT (0U) +#define I2S_TCSR_FRDE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRDE_SHIFT)) & I2S_TCSR_FRDE_MASK) +#define I2S_TCSR_FWDE_MASK (0x2U) +#define I2S_TCSR_FWDE_SHIFT (1U) +#define I2S_TCSR_FWDE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWDE_SHIFT)) & I2S_TCSR_FWDE_MASK) +#define I2S_TCSR_FRIE_MASK (0x100U) +#define I2S_TCSR_FRIE_SHIFT (8U) +#define I2S_TCSR_FRIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRIE_SHIFT)) & I2S_TCSR_FRIE_MASK) +#define I2S_TCSR_FWIE_MASK (0x200U) +#define I2S_TCSR_FWIE_SHIFT (9U) +#define I2S_TCSR_FWIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWIE_SHIFT)) & I2S_TCSR_FWIE_MASK) +#define I2S_TCSR_FEIE_MASK (0x400U) +#define I2S_TCSR_FEIE_SHIFT (10U) +#define I2S_TCSR_FEIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FEIE_SHIFT)) & I2S_TCSR_FEIE_MASK) +#define I2S_TCSR_SEIE_MASK (0x800U) +#define I2S_TCSR_SEIE_SHIFT (11U) +#define I2S_TCSR_SEIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SEIE_SHIFT)) & I2S_TCSR_SEIE_MASK) +#define I2S_TCSR_WSIE_MASK (0x1000U) +#define I2S_TCSR_WSIE_SHIFT (12U) +#define I2S_TCSR_WSIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_WSIE_SHIFT)) & I2S_TCSR_WSIE_MASK) +#define I2S_TCSR_FRF_MASK (0x10000U) +#define I2S_TCSR_FRF_SHIFT (16U) +#define I2S_TCSR_FRF(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRF_SHIFT)) & I2S_TCSR_FRF_MASK) +#define I2S_TCSR_FWF_MASK (0x20000U) +#define I2S_TCSR_FWF_SHIFT (17U) +#define I2S_TCSR_FWF(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWF_SHIFT)) & I2S_TCSR_FWF_MASK) +#define I2S_TCSR_FEF_MASK (0x40000U) +#define I2S_TCSR_FEF_SHIFT (18U) +#define I2S_TCSR_FEF(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FEF_SHIFT)) & I2S_TCSR_FEF_MASK) +#define I2S_TCSR_SEF_MASK (0x80000U) +#define I2S_TCSR_SEF_SHIFT (19U) +#define I2S_TCSR_SEF(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SEF_SHIFT)) & I2S_TCSR_SEF_MASK) +#define I2S_TCSR_WSF_MASK (0x100000U) +#define I2S_TCSR_WSF_SHIFT (20U) +#define I2S_TCSR_WSF(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_WSF_SHIFT)) & I2S_TCSR_WSF_MASK) +#define I2S_TCSR_SR_MASK (0x1000000U) +#define I2S_TCSR_SR_SHIFT (24U) +#define I2S_TCSR_SR(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SR_SHIFT)) & I2S_TCSR_SR_MASK) +#define I2S_TCSR_FR_MASK (0x2000000U) +#define I2S_TCSR_FR_SHIFT (25U) +#define I2S_TCSR_FR(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FR_SHIFT)) & I2S_TCSR_FR_MASK) +#define I2S_TCSR_BCE_MASK (0x10000000U) +#define I2S_TCSR_BCE_SHIFT (28U) +#define I2S_TCSR_BCE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_BCE_SHIFT)) & I2S_TCSR_BCE_MASK) +#define I2S_TCSR_DBGE_MASK (0x20000000U) +#define I2S_TCSR_DBGE_SHIFT (29U) +#define I2S_TCSR_DBGE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_DBGE_SHIFT)) & I2S_TCSR_DBGE_MASK) +#define I2S_TCSR_STOPE_MASK (0x40000000U) +#define I2S_TCSR_STOPE_SHIFT (30U) +#define I2S_TCSR_STOPE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_STOPE_SHIFT)) & I2S_TCSR_STOPE_MASK) +#define I2S_TCSR_TE_MASK (0x80000000U) +#define I2S_TCSR_TE_SHIFT (31U) +#define I2S_TCSR_TE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_TE_SHIFT)) & I2S_TCSR_TE_MASK) + +/*! @name TCR1 - SAI Transmit Configuration 1 Register */ +#define I2S_TCR1_TFW_MASK (0x7U) +#define I2S_TCR1_TFW_SHIFT (0U) +#define I2S_TCR1_TFW(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR1_TFW_SHIFT)) & I2S_TCR1_TFW_MASK) + +/*! @name TCR2 - SAI Transmit Configuration 2 Register */ +#define I2S_TCR2_DIV_MASK (0xFFU) +#define I2S_TCR2_DIV_SHIFT (0U) +#define I2S_TCR2_DIV(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_DIV_SHIFT)) & I2S_TCR2_DIV_MASK) +#define I2S_TCR2_BCD_MASK (0x1000000U) +#define I2S_TCR2_BCD_SHIFT (24U) +#define I2S_TCR2_BCD(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCD_SHIFT)) & I2S_TCR2_BCD_MASK) +#define I2S_TCR2_BCP_MASK (0x2000000U) +#define I2S_TCR2_BCP_SHIFT (25U) +#define I2S_TCR2_BCP(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCP_SHIFT)) & I2S_TCR2_BCP_MASK) +#define I2S_TCR2_MSEL_MASK (0xC000000U) +#define I2S_TCR2_MSEL_SHIFT (26U) +#define I2S_TCR2_MSEL(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_MSEL_SHIFT)) & I2S_TCR2_MSEL_MASK) +#define I2S_TCR2_BCI_MASK (0x10000000U) +#define I2S_TCR2_BCI_SHIFT (28U) +#define I2S_TCR2_BCI(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCI_SHIFT)) & I2S_TCR2_BCI_MASK) +#define I2S_TCR2_BCS_MASK (0x20000000U) +#define I2S_TCR2_BCS_SHIFT (29U) +#define I2S_TCR2_BCS(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCS_SHIFT)) & I2S_TCR2_BCS_MASK) +#define I2S_TCR2_SYNC_MASK (0xC0000000U) +#define I2S_TCR2_SYNC_SHIFT (30U) +#define I2S_TCR2_SYNC(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_SYNC_SHIFT)) & I2S_TCR2_SYNC_MASK) + +/*! @name TCR3 - SAI Transmit Configuration 3 Register */ +#define I2S_TCR3_WDFL_MASK (0x1FU) +#define I2S_TCR3_WDFL_SHIFT (0U) +#define I2S_TCR3_WDFL(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_WDFL_SHIFT)) & I2S_TCR3_WDFL_MASK) +#define I2S_TCR3_TCE_MASK (0x30000U) +#define I2S_TCR3_TCE_SHIFT (16U) +#define I2S_TCR3_TCE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_TCE_SHIFT)) & I2S_TCR3_TCE_MASK) + +/*! @name TCR4 - SAI Transmit Configuration 4 Register */ +#define I2S_TCR4_FSD_MASK (0x1U) +#define I2S_TCR4_FSD_SHIFT (0U) +#define I2S_TCR4_FSD(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSD_SHIFT)) & I2S_TCR4_FSD_MASK) +#define I2S_TCR4_FSP_MASK (0x2U) +#define I2S_TCR4_FSP_SHIFT (1U) +#define I2S_TCR4_FSP(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSP_SHIFT)) & I2S_TCR4_FSP_MASK) +#define I2S_TCR4_FSE_MASK (0x8U) +#define I2S_TCR4_FSE_SHIFT (3U) +#define I2S_TCR4_FSE(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSE_SHIFT)) & I2S_TCR4_FSE_MASK) +#define I2S_TCR4_MF_MASK (0x10U) +#define I2S_TCR4_MF_SHIFT (4U) +#define I2S_TCR4_MF(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_MF_SHIFT)) & I2S_TCR4_MF_MASK) +#define I2S_TCR4_SYWD_MASK (0x1F00U) +#define I2S_TCR4_SYWD_SHIFT (8U) +#define I2S_TCR4_SYWD(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_SYWD_SHIFT)) & I2S_TCR4_SYWD_MASK) +#define I2S_TCR4_FRSZ_MASK (0x1F0000U) +#define I2S_TCR4_FRSZ_SHIFT (16U) +#define I2S_TCR4_FRSZ(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FRSZ_SHIFT)) & I2S_TCR4_FRSZ_MASK) + +/*! @name TCR5 - SAI Transmit Configuration 5 Register */ +#define I2S_TCR5_FBT_MASK (0x1F00U) +#define I2S_TCR5_FBT_SHIFT (8U) +#define I2S_TCR5_FBT(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_FBT_SHIFT)) & I2S_TCR5_FBT_MASK) +#define I2S_TCR5_W0W_MASK (0x1F0000U) +#define I2S_TCR5_W0W_SHIFT (16U) +#define I2S_TCR5_W0W(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_W0W_SHIFT)) & I2S_TCR5_W0W_MASK) +#define I2S_TCR5_WNW_MASK (0x1F000000U) +#define I2S_TCR5_WNW_SHIFT (24U) +#define I2S_TCR5_WNW(x) (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_WNW_SHIFT)) & I2S_TCR5_WNW_MASK) + +/*! @name TDR - SAI Transmit Data Register */ +#define I2S_TDR_TDR_MASK (0xFFFFFFFFU) +#define I2S_TDR_TDR_SHIFT (0U) +#define I2S_TDR_TDR(x) (((uint32_t)(((uint32_t)(x)) << I2S_TDR_TDR_SHIFT)) & I2S_TDR_TDR_MASK) + +/* The count of I2S_TDR */ +#define I2S_TDR_COUNT (2U) + +/*! @name TFR - SAI Transmit FIFO Register */ +#define I2S_TFR_RFP_MASK (0xFU) +#define I2S_TFR_RFP_SHIFT (0U) +#define I2S_TFR_RFP(x) (((uint32_t)(((uint32_t)(x)) << I2S_TFR_RFP_SHIFT)) & I2S_TFR_RFP_MASK) +#define I2S_TFR_WFP_MASK (0xF0000U) +#define I2S_TFR_WFP_SHIFT (16U) +#define I2S_TFR_WFP(x) (((uint32_t)(((uint32_t)(x)) << I2S_TFR_WFP_SHIFT)) & I2S_TFR_WFP_MASK) + +/* The count of I2S_TFR */ +#define I2S_TFR_COUNT (2U) + +/*! @name TMR - SAI Transmit Mask Register */ +#define I2S_TMR_TWM_MASK (0xFFFFFFFFU) +#define I2S_TMR_TWM_SHIFT (0U) +#define I2S_TMR_TWM(x) (((uint32_t)(((uint32_t)(x)) << I2S_TMR_TWM_SHIFT)) & I2S_TMR_TWM_MASK) + +/*! @name RCSR - SAI Receive Control Register */ +#define I2S_RCSR_FRDE_MASK (0x1U) +#define I2S_RCSR_FRDE_SHIFT (0U) +#define I2S_RCSR_FRDE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRDE_SHIFT)) & I2S_RCSR_FRDE_MASK) +#define I2S_RCSR_FWDE_MASK (0x2U) +#define I2S_RCSR_FWDE_SHIFT (1U) +#define I2S_RCSR_FWDE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWDE_SHIFT)) & I2S_RCSR_FWDE_MASK) +#define I2S_RCSR_FRIE_MASK (0x100U) +#define I2S_RCSR_FRIE_SHIFT (8U) +#define I2S_RCSR_FRIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRIE_SHIFT)) & I2S_RCSR_FRIE_MASK) +#define I2S_RCSR_FWIE_MASK (0x200U) +#define I2S_RCSR_FWIE_SHIFT (9U) +#define I2S_RCSR_FWIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWIE_SHIFT)) & I2S_RCSR_FWIE_MASK) +#define I2S_RCSR_FEIE_MASK (0x400U) +#define I2S_RCSR_FEIE_SHIFT (10U) +#define I2S_RCSR_FEIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FEIE_SHIFT)) & I2S_RCSR_FEIE_MASK) +#define I2S_RCSR_SEIE_MASK (0x800U) +#define I2S_RCSR_SEIE_SHIFT (11U) +#define I2S_RCSR_SEIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SEIE_SHIFT)) & I2S_RCSR_SEIE_MASK) +#define I2S_RCSR_WSIE_MASK (0x1000U) +#define I2S_RCSR_WSIE_SHIFT (12U) +#define I2S_RCSR_WSIE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_WSIE_SHIFT)) & I2S_RCSR_WSIE_MASK) +#define I2S_RCSR_FRF_MASK (0x10000U) +#define I2S_RCSR_FRF_SHIFT (16U) +#define I2S_RCSR_FRF(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRF_SHIFT)) & I2S_RCSR_FRF_MASK) +#define I2S_RCSR_FWF_MASK (0x20000U) +#define I2S_RCSR_FWF_SHIFT (17U) +#define I2S_RCSR_FWF(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWF_SHIFT)) & I2S_RCSR_FWF_MASK) +#define I2S_RCSR_FEF_MASK (0x40000U) +#define I2S_RCSR_FEF_SHIFT (18U) +#define I2S_RCSR_FEF(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FEF_SHIFT)) & I2S_RCSR_FEF_MASK) +#define I2S_RCSR_SEF_MASK (0x80000U) +#define I2S_RCSR_SEF_SHIFT (19U) +#define I2S_RCSR_SEF(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SEF_SHIFT)) & I2S_RCSR_SEF_MASK) +#define I2S_RCSR_WSF_MASK (0x100000U) +#define I2S_RCSR_WSF_SHIFT (20U) +#define I2S_RCSR_WSF(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_WSF_SHIFT)) & I2S_RCSR_WSF_MASK) +#define I2S_RCSR_SR_MASK (0x1000000U) +#define I2S_RCSR_SR_SHIFT (24U) +#define I2S_RCSR_SR(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SR_SHIFT)) & I2S_RCSR_SR_MASK) +#define I2S_RCSR_FR_MASK (0x2000000U) +#define I2S_RCSR_FR_SHIFT (25U) +#define I2S_RCSR_FR(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FR_SHIFT)) & I2S_RCSR_FR_MASK) +#define I2S_RCSR_BCE_MASK (0x10000000U) +#define I2S_RCSR_BCE_SHIFT (28U) +#define I2S_RCSR_BCE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_BCE_SHIFT)) & I2S_RCSR_BCE_MASK) +#define I2S_RCSR_DBGE_MASK (0x20000000U) +#define I2S_RCSR_DBGE_SHIFT (29U) +#define I2S_RCSR_DBGE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_DBGE_SHIFT)) & I2S_RCSR_DBGE_MASK) +#define I2S_RCSR_STOPE_MASK (0x40000000U) +#define I2S_RCSR_STOPE_SHIFT (30U) +#define I2S_RCSR_STOPE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_STOPE_SHIFT)) & I2S_RCSR_STOPE_MASK) +#define I2S_RCSR_RE_MASK (0x80000000U) +#define I2S_RCSR_RE_SHIFT (31U) +#define I2S_RCSR_RE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_RE_SHIFT)) & I2S_RCSR_RE_MASK) + +/*! @name RCR1 - SAI Receive Configuration 1 Register */ +#define I2S_RCR1_RFW_MASK (0x7U) +#define I2S_RCR1_RFW_SHIFT (0U) +#define I2S_RCR1_RFW(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR1_RFW_SHIFT)) & I2S_RCR1_RFW_MASK) + +/*! @name RCR2 - SAI Receive Configuration 2 Register */ +#define I2S_RCR2_DIV_MASK (0xFFU) +#define I2S_RCR2_DIV_SHIFT (0U) +#define I2S_RCR2_DIV(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_DIV_SHIFT)) & I2S_RCR2_DIV_MASK) +#define I2S_RCR2_BCD_MASK (0x1000000U) +#define I2S_RCR2_BCD_SHIFT (24U) +#define I2S_RCR2_BCD(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCD_SHIFT)) & I2S_RCR2_BCD_MASK) +#define I2S_RCR2_BCP_MASK (0x2000000U) +#define I2S_RCR2_BCP_SHIFT (25U) +#define I2S_RCR2_BCP(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCP_SHIFT)) & I2S_RCR2_BCP_MASK) +#define I2S_RCR2_MSEL_MASK (0xC000000U) +#define I2S_RCR2_MSEL_SHIFT (26U) +#define I2S_RCR2_MSEL(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_MSEL_SHIFT)) & I2S_RCR2_MSEL_MASK) +#define I2S_RCR2_BCI_MASK (0x10000000U) +#define I2S_RCR2_BCI_SHIFT (28U) +#define I2S_RCR2_BCI(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCI_SHIFT)) & I2S_RCR2_BCI_MASK) +#define I2S_RCR2_BCS_MASK (0x20000000U) +#define I2S_RCR2_BCS_SHIFT (29U) +#define I2S_RCR2_BCS(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCS_SHIFT)) & I2S_RCR2_BCS_MASK) +#define I2S_RCR2_SYNC_MASK (0xC0000000U) +#define I2S_RCR2_SYNC_SHIFT (30U) +#define I2S_RCR2_SYNC(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_SYNC_SHIFT)) & I2S_RCR2_SYNC_MASK) + +/*! @name RCR3 - SAI Receive Configuration 3 Register */ +#define I2S_RCR3_WDFL_MASK (0x1FU) +#define I2S_RCR3_WDFL_SHIFT (0U) +#define I2S_RCR3_WDFL(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_WDFL_SHIFT)) & I2S_RCR3_WDFL_MASK) +#define I2S_RCR3_RCE_MASK (0x30000U) +#define I2S_RCR3_RCE_SHIFT (16U) +#define I2S_RCR3_RCE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_RCE_SHIFT)) & I2S_RCR3_RCE_MASK) + +/*! @name RCR4 - SAI Receive Configuration 4 Register */ +#define I2S_RCR4_FSD_MASK (0x1U) +#define I2S_RCR4_FSD_SHIFT (0U) +#define I2S_RCR4_FSD(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSD_SHIFT)) & I2S_RCR4_FSD_MASK) +#define I2S_RCR4_FSP_MASK (0x2U) +#define I2S_RCR4_FSP_SHIFT (1U) +#define I2S_RCR4_FSP(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSP_SHIFT)) & I2S_RCR4_FSP_MASK) +#define I2S_RCR4_FSE_MASK (0x8U) +#define I2S_RCR4_FSE_SHIFT (3U) +#define I2S_RCR4_FSE(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSE_SHIFT)) & I2S_RCR4_FSE_MASK) +#define I2S_RCR4_MF_MASK (0x10U) +#define I2S_RCR4_MF_SHIFT (4U) +#define I2S_RCR4_MF(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_MF_SHIFT)) & I2S_RCR4_MF_MASK) +#define I2S_RCR4_SYWD_MASK (0x1F00U) +#define I2S_RCR4_SYWD_SHIFT (8U) +#define I2S_RCR4_SYWD(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_SYWD_SHIFT)) & I2S_RCR4_SYWD_MASK) +#define I2S_RCR4_FRSZ_MASK (0x1F0000U) +#define I2S_RCR4_FRSZ_SHIFT (16U) +#define I2S_RCR4_FRSZ(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FRSZ_SHIFT)) & I2S_RCR4_FRSZ_MASK) + +/*! @name RCR5 - SAI Receive Configuration 5 Register */ +#define I2S_RCR5_FBT_MASK (0x1F00U) +#define I2S_RCR5_FBT_SHIFT (8U) +#define I2S_RCR5_FBT(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_FBT_SHIFT)) & I2S_RCR5_FBT_MASK) +#define I2S_RCR5_W0W_MASK (0x1F0000U) +#define I2S_RCR5_W0W_SHIFT (16U) +#define I2S_RCR5_W0W(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_W0W_SHIFT)) & I2S_RCR5_W0W_MASK) +#define I2S_RCR5_WNW_MASK (0x1F000000U) +#define I2S_RCR5_WNW_SHIFT (24U) +#define I2S_RCR5_WNW(x) (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_WNW_SHIFT)) & I2S_RCR5_WNW_MASK) + +/*! @name RDR - SAI Receive Data Register */ +#define I2S_RDR_RDR_MASK (0xFFFFFFFFU) +#define I2S_RDR_RDR_SHIFT (0U) +#define I2S_RDR_RDR(x) (((uint32_t)(((uint32_t)(x)) << I2S_RDR_RDR_SHIFT)) & I2S_RDR_RDR_MASK) + +/* The count of I2S_RDR */ +#define I2S_RDR_COUNT (2U) + +/*! @name RFR - SAI Receive FIFO Register */ +#define I2S_RFR_RFP_MASK (0xFU) +#define I2S_RFR_RFP_SHIFT (0U) +#define I2S_RFR_RFP(x) (((uint32_t)(((uint32_t)(x)) << I2S_RFR_RFP_SHIFT)) & I2S_RFR_RFP_MASK) +#define I2S_RFR_WFP_MASK (0xF0000U) +#define I2S_RFR_WFP_SHIFT (16U) +#define I2S_RFR_WFP(x) (((uint32_t)(((uint32_t)(x)) << I2S_RFR_WFP_SHIFT)) & I2S_RFR_WFP_MASK) + +/* The count of I2S_RFR */ +#define I2S_RFR_COUNT (2U) + +/*! @name RMR - SAI Receive Mask Register */ +#define I2S_RMR_RWM_MASK (0xFFFFFFFFU) +#define I2S_RMR_RWM_SHIFT (0U) +#define I2S_RMR_RWM(x) (((uint32_t)(((uint32_t)(x)) << I2S_RMR_RWM_SHIFT)) & I2S_RMR_RWM_MASK) + +/*! @name MCR - SAI MCLK Control Register */ +#define I2S_MCR_MICS_MASK (0x3000000U) +#define I2S_MCR_MICS_SHIFT (24U) +#define I2S_MCR_MICS(x) (((uint32_t)(((uint32_t)(x)) << I2S_MCR_MICS_SHIFT)) & I2S_MCR_MICS_MASK) +#define I2S_MCR_MOE_MASK (0x40000000U) +#define I2S_MCR_MOE_SHIFT (30U) +#define I2S_MCR_MOE(x) (((uint32_t)(((uint32_t)(x)) << I2S_MCR_MOE_SHIFT)) & I2S_MCR_MOE_MASK) +#define I2S_MCR_DUF_MASK (0x80000000U) +#define I2S_MCR_DUF_SHIFT (31U) +#define I2S_MCR_DUF(x) (((uint32_t)(((uint32_t)(x)) << I2S_MCR_DUF_SHIFT)) & I2S_MCR_DUF_MASK) + +/*! @name MDR - SAI MCLK Divide Register */ +#define I2S_MDR_DIVIDE_MASK (0xFFFU) +#define I2S_MDR_DIVIDE_SHIFT (0U) +#define I2S_MDR_DIVIDE(x) (((uint32_t)(((uint32_t)(x)) << I2S_MDR_DIVIDE_SHIFT)) & I2S_MDR_DIVIDE_MASK) +#define I2S_MDR_FRACT_MASK (0xFF000U) +#define I2S_MDR_FRACT_SHIFT (12U) +#define I2S_MDR_FRACT(x) (((uint32_t)(((uint32_t)(x)) << I2S_MDR_FRACT_SHIFT)) & I2S_MDR_FRACT_MASK) + + +/*! + * @} + */ /* end of group I2S_Register_Masks */ + + +/* I2S - Peripheral instance base addresses */ +/** Peripheral I2S0 base address */ +#define I2S0_BASE (0x4002F000u) +/** Peripheral I2S0 base pointer */ +#define I2S0 ((I2S_Type *)I2S0_BASE) +/** Array initializer of I2S peripheral base addresses */ +#define I2S_BASE_ADDRS { I2S0_BASE } +/** Array initializer of I2S peripheral base pointers */ +#define I2S_BASE_PTRS { I2S0 } +/** Interrupt vectors for the I2S peripheral type */ +#define I2S_RX_IRQS { I2S0_Rx_IRQn } +#define I2S_TX_IRQS { I2S0_Tx_IRQn } + +/*! + * @} + */ /* end of group I2S_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- LLWU Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup LLWU_Peripheral_Access_Layer LLWU Peripheral Access Layer + * @{ + */ + +/** LLWU - Register Layout Typedef */ +typedef struct { + __IO uint8_t PE1; /**< LLWU Pin Enable 1 register, offset: 0x0 */ + __IO uint8_t PE2; /**< LLWU Pin Enable 2 register, offset: 0x1 */ + __IO uint8_t PE3; /**< LLWU Pin Enable 3 register, offset: 0x2 */ + __IO uint8_t PE4; /**< LLWU Pin Enable 4 register, offset: 0x3 */ + __IO uint8_t ME; /**< LLWU Module Enable register, offset: 0x4 */ + __IO uint8_t F1; /**< LLWU Flag 1 register, offset: 0x5 */ + __IO uint8_t F2; /**< LLWU Flag 2 register, offset: 0x6 */ + __I uint8_t F3; /**< LLWU Flag 3 register, offset: 0x7 */ + __IO uint8_t FILT1; /**< LLWU Pin Filter 1 register, offset: 0x8 */ + __IO uint8_t FILT2; /**< LLWU Pin Filter 2 register, offset: 0x9 */ + __IO uint8_t RST; /**< LLWU Reset Enable register, offset: 0xA */ +} LLWU_Type; + +/* ---------------------------------------------------------------------------- + -- LLWU Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup LLWU_Register_Masks LLWU Register Masks + * @{ + */ + +/*! @name PE1 - LLWU Pin Enable 1 register */ +#define LLWU_PE1_WUPE0_MASK (0x3U) +#define LLWU_PE1_WUPE0_SHIFT (0U) +#define LLWU_PE1_WUPE0(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE1_WUPE0_SHIFT)) & LLWU_PE1_WUPE0_MASK) +#define LLWU_PE1_WUPE1_MASK (0xCU) +#define LLWU_PE1_WUPE1_SHIFT (2U) +#define LLWU_PE1_WUPE1(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE1_WUPE1_SHIFT)) & LLWU_PE1_WUPE1_MASK) +#define LLWU_PE1_WUPE2_MASK (0x30U) +#define LLWU_PE1_WUPE2_SHIFT (4U) +#define LLWU_PE1_WUPE2(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE1_WUPE2_SHIFT)) & LLWU_PE1_WUPE2_MASK) +#define LLWU_PE1_WUPE3_MASK (0xC0U) +#define LLWU_PE1_WUPE3_SHIFT (6U) +#define LLWU_PE1_WUPE3(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE1_WUPE3_SHIFT)) & LLWU_PE1_WUPE3_MASK) + +/*! @name PE2 - LLWU Pin Enable 2 register */ +#define LLWU_PE2_WUPE4_MASK (0x3U) +#define LLWU_PE2_WUPE4_SHIFT (0U) +#define LLWU_PE2_WUPE4(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE2_WUPE4_SHIFT)) & LLWU_PE2_WUPE4_MASK) +#define LLWU_PE2_WUPE5_MASK (0xCU) +#define LLWU_PE2_WUPE5_SHIFT (2U) +#define LLWU_PE2_WUPE5(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE2_WUPE5_SHIFT)) & LLWU_PE2_WUPE5_MASK) +#define LLWU_PE2_WUPE6_MASK (0x30U) +#define LLWU_PE2_WUPE6_SHIFT (4U) +#define LLWU_PE2_WUPE6(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE2_WUPE6_SHIFT)) & LLWU_PE2_WUPE6_MASK) +#define LLWU_PE2_WUPE7_MASK (0xC0U) +#define LLWU_PE2_WUPE7_SHIFT (6U) +#define LLWU_PE2_WUPE7(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE2_WUPE7_SHIFT)) & LLWU_PE2_WUPE7_MASK) + +/*! @name PE3 - LLWU Pin Enable 3 register */ +#define LLWU_PE3_WUPE8_MASK (0x3U) +#define LLWU_PE3_WUPE8_SHIFT (0U) +#define LLWU_PE3_WUPE8(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE3_WUPE8_SHIFT)) & LLWU_PE3_WUPE8_MASK) +#define LLWU_PE3_WUPE9_MASK (0xCU) +#define LLWU_PE3_WUPE9_SHIFT (2U) +#define LLWU_PE3_WUPE9(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE3_WUPE9_SHIFT)) & LLWU_PE3_WUPE9_MASK) +#define LLWU_PE3_WUPE10_MASK (0x30U) +#define LLWU_PE3_WUPE10_SHIFT (4U) +#define LLWU_PE3_WUPE10(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE3_WUPE10_SHIFT)) & LLWU_PE3_WUPE10_MASK) +#define LLWU_PE3_WUPE11_MASK (0xC0U) +#define LLWU_PE3_WUPE11_SHIFT (6U) +#define LLWU_PE3_WUPE11(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE3_WUPE11_SHIFT)) & LLWU_PE3_WUPE11_MASK) + +/*! @name PE4 - LLWU Pin Enable 4 register */ +#define LLWU_PE4_WUPE12_MASK (0x3U) +#define LLWU_PE4_WUPE12_SHIFT (0U) +#define LLWU_PE4_WUPE12(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE4_WUPE12_SHIFT)) & LLWU_PE4_WUPE12_MASK) +#define LLWU_PE4_WUPE13_MASK (0xCU) +#define LLWU_PE4_WUPE13_SHIFT (2U) +#define LLWU_PE4_WUPE13(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE4_WUPE13_SHIFT)) & LLWU_PE4_WUPE13_MASK) +#define LLWU_PE4_WUPE14_MASK (0x30U) +#define LLWU_PE4_WUPE14_SHIFT (4U) +#define LLWU_PE4_WUPE14(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE4_WUPE14_SHIFT)) & LLWU_PE4_WUPE14_MASK) +#define LLWU_PE4_WUPE15_MASK (0xC0U) +#define LLWU_PE4_WUPE15_SHIFT (6U) +#define LLWU_PE4_WUPE15(x) (((uint8_t)(((uint8_t)(x)) << LLWU_PE4_WUPE15_SHIFT)) & LLWU_PE4_WUPE15_MASK) + +/*! @name ME - LLWU Module Enable register */ +#define LLWU_ME_WUME0_MASK (0x1U) +#define LLWU_ME_WUME0_SHIFT (0U) +#define LLWU_ME_WUME0(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME0_SHIFT)) & LLWU_ME_WUME0_MASK) +#define LLWU_ME_WUME1_MASK (0x2U) +#define LLWU_ME_WUME1_SHIFT (1U) +#define LLWU_ME_WUME1(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME1_SHIFT)) & LLWU_ME_WUME1_MASK) +#define LLWU_ME_WUME2_MASK (0x4U) +#define LLWU_ME_WUME2_SHIFT (2U) +#define LLWU_ME_WUME2(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME2_SHIFT)) & LLWU_ME_WUME2_MASK) +#define LLWU_ME_WUME3_MASK (0x8U) +#define LLWU_ME_WUME3_SHIFT (3U) +#define LLWU_ME_WUME3(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME3_SHIFT)) & LLWU_ME_WUME3_MASK) +#define LLWU_ME_WUME4_MASK (0x10U) +#define LLWU_ME_WUME4_SHIFT (4U) +#define LLWU_ME_WUME4(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME4_SHIFT)) & LLWU_ME_WUME4_MASK) +#define LLWU_ME_WUME5_MASK (0x20U) +#define LLWU_ME_WUME5_SHIFT (5U) +#define LLWU_ME_WUME5(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME5_SHIFT)) & LLWU_ME_WUME5_MASK) +#define LLWU_ME_WUME6_MASK (0x40U) +#define LLWU_ME_WUME6_SHIFT (6U) +#define LLWU_ME_WUME6(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME6_SHIFT)) & LLWU_ME_WUME6_MASK) +#define LLWU_ME_WUME7_MASK (0x80U) +#define LLWU_ME_WUME7_SHIFT (7U) +#define LLWU_ME_WUME7(x) (((uint8_t)(((uint8_t)(x)) << LLWU_ME_WUME7_SHIFT)) & LLWU_ME_WUME7_MASK) + +/*! @name F1 - LLWU Flag 1 register */ +#define LLWU_F1_WUF0_MASK (0x1U) +#define LLWU_F1_WUF0_SHIFT (0U) +#define LLWU_F1_WUF0(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF0_SHIFT)) & LLWU_F1_WUF0_MASK) +#define LLWU_F1_WUF1_MASK (0x2U) +#define LLWU_F1_WUF1_SHIFT (1U) +#define LLWU_F1_WUF1(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF1_SHIFT)) & LLWU_F1_WUF1_MASK) +#define LLWU_F1_WUF2_MASK (0x4U) +#define LLWU_F1_WUF2_SHIFT (2U) +#define LLWU_F1_WUF2(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF2_SHIFT)) & LLWU_F1_WUF2_MASK) +#define LLWU_F1_WUF3_MASK (0x8U) +#define LLWU_F1_WUF3_SHIFT (3U) +#define LLWU_F1_WUF3(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF3_SHIFT)) & LLWU_F1_WUF3_MASK) +#define LLWU_F1_WUF4_MASK (0x10U) +#define LLWU_F1_WUF4_SHIFT (4U) +#define LLWU_F1_WUF4(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF4_SHIFT)) & LLWU_F1_WUF4_MASK) +#define LLWU_F1_WUF5_MASK (0x20U) +#define LLWU_F1_WUF5_SHIFT (5U) +#define LLWU_F1_WUF5(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF5_SHIFT)) & LLWU_F1_WUF5_MASK) +#define LLWU_F1_WUF6_MASK (0x40U) +#define LLWU_F1_WUF6_SHIFT (6U) +#define LLWU_F1_WUF6(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF6_SHIFT)) & LLWU_F1_WUF6_MASK) +#define LLWU_F1_WUF7_MASK (0x80U) +#define LLWU_F1_WUF7_SHIFT (7U) +#define LLWU_F1_WUF7(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F1_WUF7_SHIFT)) & LLWU_F1_WUF7_MASK) + +/*! @name F2 - LLWU Flag 2 register */ +#define LLWU_F2_WUF8_MASK (0x1U) +#define LLWU_F2_WUF8_SHIFT (0U) +#define LLWU_F2_WUF8(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF8_SHIFT)) & LLWU_F2_WUF8_MASK) +#define LLWU_F2_WUF9_MASK (0x2U) +#define LLWU_F2_WUF9_SHIFT (1U) +#define LLWU_F2_WUF9(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF9_SHIFT)) & LLWU_F2_WUF9_MASK) +#define LLWU_F2_WUF10_MASK (0x4U) +#define LLWU_F2_WUF10_SHIFT (2U) +#define LLWU_F2_WUF10(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF10_SHIFT)) & LLWU_F2_WUF10_MASK) +#define LLWU_F2_WUF11_MASK (0x8U) +#define LLWU_F2_WUF11_SHIFT (3U) +#define LLWU_F2_WUF11(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF11_SHIFT)) & LLWU_F2_WUF11_MASK) +#define LLWU_F2_WUF12_MASK (0x10U) +#define LLWU_F2_WUF12_SHIFT (4U) +#define LLWU_F2_WUF12(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF12_SHIFT)) & LLWU_F2_WUF12_MASK) +#define LLWU_F2_WUF13_MASK (0x20U) +#define LLWU_F2_WUF13_SHIFT (5U) +#define LLWU_F2_WUF13(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF13_SHIFT)) & LLWU_F2_WUF13_MASK) +#define LLWU_F2_WUF14_MASK (0x40U) +#define LLWU_F2_WUF14_SHIFT (6U) +#define LLWU_F2_WUF14(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF14_SHIFT)) & LLWU_F2_WUF14_MASK) +#define LLWU_F2_WUF15_MASK (0x80U) +#define LLWU_F2_WUF15_SHIFT (7U) +#define LLWU_F2_WUF15(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F2_WUF15_SHIFT)) & LLWU_F2_WUF15_MASK) + +/*! @name F3 - LLWU Flag 3 register */ +#define LLWU_F3_MWUF0_MASK (0x1U) +#define LLWU_F3_MWUF0_SHIFT (0U) +#define LLWU_F3_MWUF0(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF0_SHIFT)) & LLWU_F3_MWUF0_MASK) +#define LLWU_F3_MWUF1_MASK (0x2U) +#define LLWU_F3_MWUF1_SHIFT (1U) +#define LLWU_F3_MWUF1(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF1_SHIFT)) & LLWU_F3_MWUF1_MASK) +#define LLWU_F3_MWUF2_MASK (0x4U) +#define LLWU_F3_MWUF2_SHIFT (2U) +#define LLWU_F3_MWUF2(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF2_SHIFT)) & LLWU_F3_MWUF2_MASK) +#define LLWU_F3_MWUF3_MASK (0x8U) +#define LLWU_F3_MWUF3_SHIFT (3U) +#define LLWU_F3_MWUF3(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF3_SHIFT)) & LLWU_F3_MWUF3_MASK) +#define LLWU_F3_MWUF4_MASK (0x10U) +#define LLWU_F3_MWUF4_SHIFT (4U) +#define LLWU_F3_MWUF4(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF4_SHIFT)) & LLWU_F3_MWUF4_MASK) +#define LLWU_F3_MWUF5_MASK (0x20U) +#define LLWU_F3_MWUF5_SHIFT (5U) +#define LLWU_F3_MWUF5(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF5_SHIFT)) & LLWU_F3_MWUF5_MASK) +#define LLWU_F3_MWUF6_MASK (0x40U) +#define LLWU_F3_MWUF6_SHIFT (6U) +#define LLWU_F3_MWUF6(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF6_SHIFT)) & LLWU_F3_MWUF6_MASK) +#define LLWU_F3_MWUF7_MASK (0x80U) +#define LLWU_F3_MWUF7_SHIFT (7U) +#define LLWU_F3_MWUF7(x) (((uint8_t)(((uint8_t)(x)) << LLWU_F3_MWUF7_SHIFT)) & LLWU_F3_MWUF7_MASK) + +/*! @name FILT1 - LLWU Pin Filter 1 register */ +#define LLWU_FILT1_FILTSEL_MASK (0xFU) +#define LLWU_FILT1_FILTSEL_SHIFT (0U) +#define LLWU_FILT1_FILTSEL(x) (((uint8_t)(((uint8_t)(x)) << LLWU_FILT1_FILTSEL_SHIFT)) & LLWU_FILT1_FILTSEL_MASK) +#define LLWU_FILT1_FILTE_MASK (0x60U) +#define LLWU_FILT1_FILTE_SHIFT (5U) +#define LLWU_FILT1_FILTE(x) (((uint8_t)(((uint8_t)(x)) << LLWU_FILT1_FILTE_SHIFT)) & LLWU_FILT1_FILTE_MASK) +#define LLWU_FILT1_FILTF_MASK (0x80U) +#define LLWU_FILT1_FILTF_SHIFT (7U) +#define LLWU_FILT1_FILTF(x) (((uint8_t)(((uint8_t)(x)) << LLWU_FILT1_FILTF_SHIFT)) & LLWU_FILT1_FILTF_MASK) + +/*! @name FILT2 - LLWU Pin Filter 2 register */ +#define LLWU_FILT2_FILTSEL_MASK (0xFU) +#define LLWU_FILT2_FILTSEL_SHIFT (0U) +#define LLWU_FILT2_FILTSEL(x) (((uint8_t)(((uint8_t)(x)) << LLWU_FILT2_FILTSEL_SHIFT)) & LLWU_FILT2_FILTSEL_MASK) +#define LLWU_FILT2_FILTE_MASK (0x60U) +#define LLWU_FILT2_FILTE_SHIFT (5U) +#define LLWU_FILT2_FILTE(x) (((uint8_t)(((uint8_t)(x)) << LLWU_FILT2_FILTE_SHIFT)) & LLWU_FILT2_FILTE_MASK) +#define LLWU_FILT2_FILTF_MASK (0x80U) +#define LLWU_FILT2_FILTF_SHIFT (7U) +#define LLWU_FILT2_FILTF(x) (((uint8_t)(((uint8_t)(x)) << LLWU_FILT2_FILTF_SHIFT)) & LLWU_FILT2_FILTF_MASK) + +/*! @name RST - LLWU Reset Enable register */ +#define LLWU_RST_RSTFILT_MASK (0x1U) +#define LLWU_RST_RSTFILT_SHIFT (0U) +#define LLWU_RST_RSTFILT(x) (((uint8_t)(((uint8_t)(x)) << LLWU_RST_RSTFILT_SHIFT)) & LLWU_RST_RSTFILT_MASK) +#define LLWU_RST_LLRSTE_MASK (0x2U) +#define LLWU_RST_LLRSTE_SHIFT (1U) +#define LLWU_RST_LLRSTE(x) (((uint8_t)(((uint8_t)(x)) << LLWU_RST_LLRSTE_SHIFT)) & LLWU_RST_LLRSTE_MASK) + + +/*! + * @} + */ /* end of group LLWU_Register_Masks */ + + +/* LLWU - Peripheral instance base addresses */ +/** Peripheral LLWU base address */ +#define LLWU_BASE (0x4007C000u) +/** Peripheral LLWU base pointer */ +#define LLWU ((LLWU_Type *)LLWU_BASE) +/** Array initializer of LLWU peripheral base addresses */ +#define LLWU_BASE_ADDRS { LLWU_BASE } +/** Array initializer of LLWU peripheral base pointers */ +#define LLWU_BASE_PTRS { LLWU } +/** Interrupt vectors for the LLWU peripheral type */ +#define LLWU_IRQS { LLWU_IRQn } + +/*! + * @} + */ /* end of group LLWU_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- LPTMR Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup LPTMR_Peripheral_Access_Layer LPTMR Peripheral Access Layer + * @{ + */ + +/** LPTMR - Register Layout Typedef */ +typedef struct { + __IO uint32_t CSR; /**< Low Power Timer Control Status Register, offset: 0x0 */ + __IO uint32_t PSR; /**< Low Power Timer Prescale Register, offset: 0x4 */ + __IO uint32_t CMR; /**< Low Power Timer Compare Register, offset: 0x8 */ + __IO uint32_t CNR; /**< Low Power Timer Counter Register, offset: 0xC */ +} LPTMR_Type; + +/* ---------------------------------------------------------------------------- + -- LPTMR Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup LPTMR_Register_Masks LPTMR Register Masks + * @{ + */ + +/*! @name CSR - Low Power Timer Control Status Register */ +#define LPTMR_CSR_TEN_MASK (0x1U) +#define LPTMR_CSR_TEN_SHIFT (0U) +#define LPTMR_CSR_TEN(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TEN_SHIFT)) & LPTMR_CSR_TEN_MASK) +#define LPTMR_CSR_TMS_MASK (0x2U) +#define LPTMR_CSR_TMS_SHIFT (1U) +#define LPTMR_CSR_TMS(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TMS_SHIFT)) & LPTMR_CSR_TMS_MASK) +#define LPTMR_CSR_TFC_MASK (0x4U) +#define LPTMR_CSR_TFC_SHIFT (2U) +#define LPTMR_CSR_TFC(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TFC_SHIFT)) & LPTMR_CSR_TFC_MASK) +#define LPTMR_CSR_TPP_MASK (0x8U) +#define LPTMR_CSR_TPP_SHIFT (3U) +#define LPTMR_CSR_TPP(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TPP_SHIFT)) & LPTMR_CSR_TPP_MASK) +#define LPTMR_CSR_TPS_MASK (0x30U) +#define LPTMR_CSR_TPS_SHIFT (4U) +#define LPTMR_CSR_TPS(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TPS_SHIFT)) & LPTMR_CSR_TPS_MASK) +#define LPTMR_CSR_TIE_MASK (0x40U) +#define LPTMR_CSR_TIE_SHIFT (6U) +#define LPTMR_CSR_TIE(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TIE_SHIFT)) & LPTMR_CSR_TIE_MASK) +#define LPTMR_CSR_TCF_MASK (0x80U) +#define LPTMR_CSR_TCF_SHIFT (7U) +#define LPTMR_CSR_TCF(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TCF_SHIFT)) & LPTMR_CSR_TCF_MASK) + +/*! @name PSR - Low Power Timer Prescale Register */ +#define LPTMR_PSR_PCS_MASK (0x3U) +#define LPTMR_PSR_PCS_SHIFT (0U) +#define LPTMR_PSR_PCS(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PCS_SHIFT)) & LPTMR_PSR_PCS_MASK) +#define LPTMR_PSR_PBYP_MASK (0x4U) +#define LPTMR_PSR_PBYP_SHIFT (2U) +#define LPTMR_PSR_PBYP(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PBYP_SHIFT)) & LPTMR_PSR_PBYP_MASK) +#define LPTMR_PSR_PRESCALE_MASK (0x78U) +#define LPTMR_PSR_PRESCALE_SHIFT (3U) +#define LPTMR_PSR_PRESCALE(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PRESCALE_SHIFT)) & LPTMR_PSR_PRESCALE_MASK) + +/*! @name CMR - Low Power Timer Compare Register */ +#define LPTMR_CMR_COMPARE_MASK (0xFFFFU) +#define LPTMR_CMR_COMPARE_SHIFT (0U) +#define LPTMR_CMR_COMPARE(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CMR_COMPARE_SHIFT)) & LPTMR_CMR_COMPARE_MASK) + +/*! @name CNR - Low Power Timer Counter Register */ +#define LPTMR_CNR_COUNTER_MASK (0xFFFFU) +#define LPTMR_CNR_COUNTER_SHIFT (0U) +#define LPTMR_CNR_COUNTER(x) (((uint32_t)(((uint32_t)(x)) << LPTMR_CNR_COUNTER_SHIFT)) & LPTMR_CNR_COUNTER_MASK) + + +/*! + * @} + */ /* end of group LPTMR_Register_Masks */ + + +/* LPTMR - Peripheral instance base addresses */ +/** Peripheral LPTMR0 base address */ +#define LPTMR0_BASE (0x40040000u) +/** Peripheral LPTMR0 base pointer */ +#define LPTMR0 ((LPTMR_Type *)LPTMR0_BASE) +/** Array initializer of LPTMR peripheral base addresses */ +#define LPTMR_BASE_ADDRS { LPTMR0_BASE } +/** Array initializer of LPTMR peripheral base pointers */ +#define LPTMR_BASE_PTRS { LPTMR0 } +/** Interrupt vectors for the LPTMR peripheral type */ +#define LPTMR_IRQS { LPTMR0_IRQn } + +/*! + * @} + */ /* end of group LPTMR_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- MCG Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MCG_Peripheral_Access_Layer MCG Peripheral Access Layer + * @{ + */ + +/** MCG - Register Layout Typedef */ +typedef struct { + __IO uint8_t C1; /**< MCG Control 1 Register, offset: 0x0 */ + __IO uint8_t C2; /**< MCG Control 2 Register, offset: 0x1 */ + __IO uint8_t C3; /**< MCG Control 3 Register, offset: 0x2 */ + __IO uint8_t C4; /**< MCG Control 4 Register, offset: 0x3 */ + __IO uint8_t C5; /**< MCG Control 5 Register, offset: 0x4 */ + __IO uint8_t C6; /**< MCG Control 6 Register, offset: 0x5 */ + __IO uint8_t S; /**< MCG Status Register, offset: 0x6 */ + uint8_t RESERVED_0[1]; + __IO uint8_t SC; /**< MCG Status and Control Register, offset: 0x8 */ + uint8_t RESERVED_1[1]; + __IO uint8_t ATCVH; /**< MCG Auto Trim Compare Value High Register, offset: 0xA */ + __IO uint8_t ATCVL; /**< MCG Auto Trim Compare Value Low Register, offset: 0xB */ + __IO uint8_t C7; /**< MCG Control 7 Register, offset: 0xC */ + __IO uint8_t C8; /**< MCG Control 8 Register, offset: 0xD */ +} MCG_Type; + +/* ---------------------------------------------------------------------------- + -- MCG Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MCG_Register_Masks MCG Register Masks + * @{ + */ + +/*! @name C1 - MCG Control 1 Register */ +#define MCG_C1_IREFSTEN_MASK (0x1U) +#define MCG_C1_IREFSTEN_SHIFT (0U) +#define MCG_C1_IREFSTEN(x) (((uint8_t)(((uint8_t)(x)) << MCG_C1_IREFSTEN_SHIFT)) & MCG_C1_IREFSTEN_MASK) +#define MCG_C1_IRCLKEN_MASK (0x2U) +#define MCG_C1_IRCLKEN_SHIFT (1U) +#define MCG_C1_IRCLKEN(x) (((uint8_t)(((uint8_t)(x)) << MCG_C1_IRCLKEN_SHIFT)) & MCG_C1_IRCLKEN_MASK) +#define MCG_C1_IREFS_MASK (0x4U) +#define MCG_C1_IREFS_SHIFT (2U) +#define MCG_C1_IREFS(x) (((uint8_t)(((uint8_t)(x)) << MCG_C1_IREFS_SHIFT)) & MCG_C1_IREFS_MASK) +#define MCG_C1_FRDIV_MASK (0x38U) +#define MCG_C1_FRDIV_SHIFT (3U) +#define MCG_C1_FRDIV(x) (((uint8_t)(((uint8_t)(x)) << MCG_C1_FRDIV_SHIFT)) & MCG_C1_FRDIV_MASK) +#define MCG_C1_CLKS_MASK (0xC0U) +#define MCG_C1_CLKS_SHIFT (6U) +#define MCG_C1_CLKS(x) (((uint8_t)(((uint8_t)(x)) << MCG_C1_CLKS_SHIFT)) & MCG_C1_CLKS_MASK) + +/*! @name C2 - MCG Control 2 Register */ +#define MCG_C2_IRCS_MASK (0x1U) +#define MCG_C2_IRCS_SHIFT (0U) +#define MCG_C2_IRCS(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_IRCS_SHIFT)) & MCG_C2_IRCS_MASK) +#define MCG_C2_LP_MASK (0x2U) +#define MCG_C2_LP_SHIFT (1U) +#define MCG_C2_LP(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_LP_SHIFT)) & MCG_C2_LP_MASK) +#define MCG_C2_EREFS_MASK (0x4U) +#define MCG_C2_EREFS_SHIFT (2U) +#define MCG_C2_EREFS(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_EREFS_SHIFT)) & MCG_C2_EREFS_MASK) +#define MCG_C2_HGO_MASK (0x8U) +#define MCG_C2_HGO_SHIFT (3U) +#define MCG_C2_HGO(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_HGO_SHIFT)) & MCG_C2_HGO_MASK) +#define MCG_C2_RANGE_MASK (0x30U) +#define MCG_C2_RANGE_SHIFT (4U) +#define MCG_C2_RANGE(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_RANGE_SHIFT)) & MCG_C2_RANGE_MASK) +#define MCG_C2_FCFTRIM_MASK (0x40U) +#define MCG_C2_FCFTRIM_SHIFT (6U) +#define MCG_C2_FCFTRIM(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_FCFTRIM_SHIFT)) & MCG_C2_FCFTRIM_MASK) +#define MCG_C2_LOCRE0_MASK (0x80U) +#define MCG_C2_LOCRE0_SHIFT (7U) +#define MCG_C2_LOCRE0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C2_LOCRE0_SHIFT)) & MCG_C2_LOCRE0_MASK) + +/*! @name C3 - MCG Control 3 Register */ +#define MCG_C3_SCTRIM_MASK (0xFFU) +#define MCG_C3_SCTRIM_SHIFT (0U) +#define MCG_C3_SCTRIM(x) (((uint8_t)(((uint8_t)(x)) << MCG_C3_SCTRIM_SHIFT)) & MCG_C3_SCTRIM_MASK) + +/*! @name C4 - MCG Control 4 Register */ +#define MCG_C4_SCFTRIM_MASK (0x1U) +#define MCG_C4_SCFTRIM_SHIFT (0U) +#define MCG_C4_SCFTRIM(x) (((uint8_t)(((uint8_t)(x)) << MCG_C4_SCFTRIM_SHIFT)) & MCG_C4_SCFTRIM_MASK) +#define MCG_C4_FCTRIM_MASK (0x1EU) +#define MCG_C4_FCTRIM_SHIFT (1U) +#define MCG_C4_FCTRIM(x) (((uint8_t)(((uint8_t)(x)) << MCG_C4_FCTRIM_SHIFT)) & MCG_C4_FCTRIM_MASK) +#define MCG_C4_DRST_DRS_MASK (0x60U) +#define MCG_C4_DRST_DRS_SHIFT (5U) +#define MCG_C4_DRST_DRS(x) (((uint8_t)(((uint8_t)(x)) << MCG_C4_DRST_DRS_SHIFT)) & MCG_C4_DRST_DRS_MASK) +#define MCG_C4_DMX32_MASK (0x80U) +#define MCG_C4_DMX32_SHIFT (7U) +#define MCG_C4_DMX32(x) (((uint8_t)(((uint8_t)(x)) << MCG_C4_DMX32_SHIFT)) & MCG_C4_DMX32_MASK) + +/*! @name C5 - MCG Control 5 Register */ +#define MCG_C5_PRDIV0_MASK (0x1FU) +#define MCG_C5_PRDIV0_SHIFT (0U) +#define MCG_C5_PRDIV0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C5_PRDIV0_SHIFT)) & MCG_C5_PRDIV0_MASK) +#define MCG_C5_PLLSTEN0_MASK (0x20U) +#define MCG_C5_PLLSTEN0_SHIFT (5U) +#define MCG_C5_PLLSTEN0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C5_PLLSTEN0_SHIFT)) & MCG_C5_PLLSTEN0_MASK) +#define MCG_C5_PLLCLKEN0_MASK (0x40U) +#define MCG_C5_PLLCLKEN0_SHIFT (6U) +#define MCG_C5_PLLCLKEN0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C5_PLLCLKEN0_SHIFT)) & MCG_C5_PLLCLKEN0_MASK) + +/*! @name C6 - MCG Control 6 Register */ +#define MCG_C6_VDIV0_MASK (0x1FU) +#define MCG_C6_VDIV0_SHIFT (0U) +#define MCG_C6_VDIV0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C6_VDIV0_SHIFT)) & MCG_C6_VDIV0_MASK) +#define MCG_C6_CME0_MASK (0x20U) +#define MCG_C6_CME0_SHIFT (5U) +#define MCG_C6_CME0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C6_CME0_SHIFT)) & MCG_C6_CME0_MASK) +#define MCG_C6_PLLS_MASK (0x40U) +#define MCG_C6_PLLS_SHIFT (6U) +#define MCG_C6_PLLS(x) (((uint8_t)(((uint8_t)(x)) << MCG_C6_PLLS_SHIFT)) & MCG_C6_PLLS_MASK) +#define MCG_C6_LOLIE0_MASK (0x80U) +#define MCG_C6_LOLIE0_SHIFT (7U) +#define MCG_C6_LOLIE0(x) (((uint8_t)(((uint8_t)(x)) << MCG_C6_LOLIE0_SHIFT)) & MCG_C6_LOLIE0_MASK) + +/*! @name S - MCG Status Register */ +#define MCG_S_IRCST_MASK (0x1U) +#define MCG_S_IRCST_SHIFT (0U) +#define MCG_S_IRCST(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_IRCST_SHIFT)) & MCG_S_IRCST_MASK) +#define MCG_S_OSCINIT0_MASK (0x2U) +#define MCG_S_OSCINIT0_SHIFT (1U) +#define MCG_S_OSCINIT0(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_OSCINIT0_SHIFT)) & MCG_S_OSCINIT0_MASK) +#define MCG_S_CLKST_MASK (0xCU) +#define MCG_S_CLKST_SHIFT (2U) +#define MCG_S_CLKST(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_CLKST_SHIFT)) & MCG_S_CLKST_MASK) +#define MCG_S_IREFST_MASK (0x10U) +#define MCG_S_IREFST_SHIFT (4U) +#define MCG_S_IREFST(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_IREFST_SHIFT)) & MCG_S_IREFST_MASK) +#define MCG_S_PLLST_MASK (0x20U) +#define MCG_S_PLLST_SHIFT (5U) +#define MCG_S_PLLST(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_PLLST_SHIFT)) & MCG_S_PLLST_MASK) +#define MCG_S_LOCK0_MASK (0x40U) +#define MCG_S_LOCK0_SHIFT (6U) +#define MCG_S_LOCK0(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_LOCK0_SHIFT)) & MCG_S_LOCK0_MASK) +#define MCG_S_LOLS0_MASK (0x80U) +#define MCG_S_LOLS0_SHIFT (7U) +#define MCG_S_LOLS0(x) (((uint8_t)(((uint8_t)(x)) << MCG_S_LOLS0_SHIFT)) & MCG_S_LOLS0_MASK) + +/*! @name SC - MCG Status and Control Register */ +#define MCG_SC_LOCS0_MASK (0x1U) +#define MCG_SC_LOCS0_SHIFT (0U) +#define MCG_SC_LOCS0(x) (((uint8_t)(((uint8_t)(x)) << MCG_SC_LOCS0_SHIFT)) & MCG_SC_LOCS0_MASK) +#define MCG_SC_FCRDIV_MASK (0xEU) +#define MCG_SC_FCRDIV_SHIFT (1U) +#define MCG_SC_FCRDIV(x) (((uint8_t)(((uint8_t)(x)) << MCG_SC_FCRDIV_SHIFT)) & MCG_SC_FCRDIV_MASK) +#define MCG_SC_FLTPRSRV_MASK (0x10U) +#define MCG_SC_FLTPRSRV_SHIFT (4U) +#define MCG_SC_FLTPRSRV(x) (((uint8_t)(((uint8_t)(x)) << MCG_SC_FLTPRSRV_SHIFT)) & MCG_SC_FLTPRSRV_MASK) +#define MCG_SC_ATMF_MASK (0x20U) +#define MCG_SC_ATMF_SHIFT (5U) +#define MCG_SC_ATMF(x) (((uint8_t)(((uint8_t)(x)) << MCG_SC_ATMF_SHIFT)) & MCG_SC_ATMF_MASK) +#define MCG_SC_ATMS_MASK (0x40U) +#define MCG_SC_ATMS_SHIFT (6U) +#define MCG_SC_ATMS(x) (((uint8_t)(((uint8_t)(x)) << MCG_SC_ATMS_SHIFT)) & MCG_SC_ATMS_MASK) +#define MCG_SC_ATME_MASK (0x80U) +#define MCG_SC_ATME_SHIFT (7U) +#define MCG_SC_ATME(x) (((uint8_t)(((uint8_t)(x)) << MCG_SC_ATME_SHIFT)) & MCG_SC_ATME_MASK) + +/*! @name ATCVH - MCG Auto Trim Compare Value High Register */ +#define MCG_ATCVH_ATCVH_MASK (0xFFU) +#define MCG_ATCVH_ATCVH_SHIFT (0U) +#define MCG_ATCVH_ATCVH(x) (((uint8_t)(((uint8_t)(x)) << MCG_ATCVH_ATCVH_SHIFT)) & MCG_ATCVH_ATCVH_MASK) + +/*! @name ATCVL - MCG Auto Trim Compare Value Low Register */ +#define MCG_ATCVL_ATCVL_MASK (0xFFU) +#define MCG_ATCVL_ATCVL_SHIFT (0U) +#define MCG_ATCVL_ATCVL(x) (((uint8_t)(((uint8_t)(x)) << MCG_ATCVL_ATCVL_SHIFT)) & MCG_ATCVL_ATCVL_MASK) + +/*! @name C7 - MCG Control 7 Register */ +#define MCG_C7_OSCSEL_MASK (0x3U) +#define MCG_C7_OSCSEL_SHIFT (0U) +#define MCG_C7_OSCSEL(x) (((uint8_t)(((uint8_t)(x)) << MCG_C7_OSCSEL_SHIFT)) & MCG_C7_OSCSEL_MASK) + +/*! @name C8 - MCG Control 8 Register */ +#define MCG_C8_LOCS1_MASK (0x1U) +#define MCG_C8_LOCS1_SHIFT (0U) +#define MCG_C8_LOCS1(x) (((uint8_t)(((uint8_t)(x)) << MCG_C8_LOCS1_SHIFT)) & MCG_C8_LOCS1_MASK) +#define MCG_C8_CME1_MASK (0x20U) +#define MCG_C8_CME1_SHIFT (5U) +#define MCG_C8_CME1(x) (((uint8_t)(((uint8_t)(x)) << MCG_C8_CME1_SHIFT)) & MCG_C8_CME1_MASK) +#define MCG_C8_LOLRE_MASK (0x40U) +#define MCG_C8_LOLRE_SHIFT (6U) +#define MCG_C8_LOLRE(x) (((uint8_t)(((uint8_t)(x)) << MCG_C8_LOLRE_SHIFT)) & MCG_C8_LOLRE_MASK) +#define MCG_C8_LOCRE1_MASK (0x80U) +#define MCG_C8_LOCRE1_SHIFT (7U) +#define MCG_C8_LOCRE1(x) (((uint8_t)(((uint8_t)(x)) << MCG_C8_LOCRE1_SHIFT)) & MCG_C8_LOCRE1_MASK) + + +/*! + * @} + */ /* end of group MCG_Register_Masks */ + + +/* MCG - Peripheral instance base addresses */ +/** Peripheral MCG base address */ +#define MCG_BASE (0x40064000u) +/** Peripheral MCG base pointer */ +#define MCG ((MCG_Type *)MCG_BASE) +/** Array initializer of MCG peripheral base addresses */ +#define MCG_BASE_ADDRS { MCG_BASE } +/** Array initializer of MCG peripheral base pointers */ +#define MCG_BASE_PTRS { MCG } + +/*! + * @} + */ /* end of group MCG_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- MCM Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MCM_Peripheral_Access_Layer MCM Peripheral Access Layer + * @{ + */ + +/** MCM - Register Layout Typedef */ +typedef struct { + uint8_t RESERVED_0[8]; + __I uint16_t PLASC; /**< Crossbar Switch (AXBS) Slave Configuration, offset: 0x8 */ + __I uint16_t PLAMC; /**< Crossbar Switch (AXBS) Master Configuration, offset: 0xA */ + __IO uint32_t CR; /**< Control Register, offset: 0xC */ + __IO uint32_t ISCR; /**< Interrupt Status Register, offset: 0x10 */ + __IO uint32_t ETBCC; /**< ETB Counter Control register, offset: 0x14 */ + __IO uint32_t ETBRL; /**< ETB Reload register, offset: 0x18 */ + __I uint32_t ETBCNT; /**< ETB Counter Value register, offset: 0x1C */ + uint8_t RESERVED_1[16]; + __IO uint32_t PID; /**< Process ID register, offset: 0x30 */ +} MCM_Type; + +/* ---------------------------------------------------------------------------- + -- MCM Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MCM_Register_Masks MCM Register Masks + * @{ + */ + +/*! @name PLASC - Crossbar Switch (AXBS) Slave Configuration */ +#define MCM_PLASC_ASC_MASK (0xFFU) +#define MCM_PLASC_ASC_SHIFT (0U) +#define MCM_PLASC_ASC(x) (((uint16_t)(((uint16_t)(x)) << MCM_PLASC_ASC_SHIFT)) & MCM_PLASC_ASC_MASK) + +/*! @name PLAMC - Crossbar Switch (AXBS) Master Configuration */ +#define MCM_PLAMC_AMC_MASK (0xFFU) +#define MCM_PLAMC_AMC_SHIFT (0U) +#define MCM_PLAMC_AMC(x) (((uint16_t)(((uint16_t)(x)) << MCM_PLAMC_AMC_SHIFT)) & MCM_PLAMC_AMC_MASK) + +/*! @name CR - Control Register */ +#define MCM_CR_SRAMUAP_MASK (0x3000000U) +#define MCM_CR_SRAMUAP_SHIFT (24U) +#define MCM_CR_SRAMUAP(x) (((uint32_t)(((uint32_t)(x)) << MCM_CR_SRAMUAP_SHIFT)) & MCM_CR_SRAMUAP_MASK) +#define MCM_CR_SRAMUWP_MASK (0x4000000U) +#define MCM_CR_SRAMUWP_SHIFT (26U) +#define MCM_CR_SRAMUWP(x) (((uint32_t)(((uint32_t)(x)) << MCM_CR_SRAMUWP_SHIFT)) & MCM_CR_SRAMUWP_MASK) +#define MCM_CR_SRAMLAP_MASK (0x30000000U) +#define MCM_CR_SRAMLAP_SHIFT (28U) +#define MCM_CR_SRAMLAP(x) (((uint32_t)(((uint32_t)(x)) << MCM_CR_SRAMLAP_SHIFT)) & MCM_CR_SRAMLAP_MASK) +#define MCM_CR_SRAMLWP_MASK (0x40000000U) +#define MCM_CR_SRAMLWP_SHIFT (30U) +#define MCM_CR_SRAMLWP(x) (((uint32_t)(((uint32_t)(x)) << MCM_CR_SRAMLWP_SHIFT)) & MCM_CR_SRAMLWP_MASK) + +/*! @name ISCR - Interrupt Status Register */ +#define MCM_ISCR_IRQ_MASK (0x2U) +#define MCM_ISCR_IRQ_SHIFT (1U) +#define MCM_ISCR_IRQ(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_IRQ_SHIFT)) & MCM_ISCR_IRQ_MASK) +#define MCM_ISCR_NMI_MASK (0x4U) +#define MCM_ISCR_NMI_SHIFT (2U) +#define MCM_ISCR_NMI(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_NMI_SHIFT)) & MCM_ISCR_NMI_MASK) +#define MCM_ISCR_DHREQ_MASK (0x8U) +#define MCM_ISCR_DHREQ_SHIFT (3U) +#define MCM_ISCR_DHREQ(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_DHREQ_SHIFT)) & MCM_ISCR_DHREQ_MASK) +#define MCM_ISCR_FIOC_MASK (0x100U) +#define MCM_ISCR_FIOC_SHIFT (8U) +#define MCM_ISCR_FIOC(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIOC_SHIFT)) & MCM_ISCR_FIOC_MASK) +#define MCM_ISCR_FDZC_MASK (0x200U) +#define MCM_ISCR_FDZC_SHIFT (9U) +#define MCM_ISCR_FDZC(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FDZC_SHIFT)) & MCM_ISCR_FDZC_MASK) +#define MCM_ISCR_FOFC_MASK (0x400U) +#define MCM_ISCR_FOFC_SHIFT (10U) +#define MCM_ISCR_FOFC(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FOFC_SHIFT)) & MCM_ISCR_FOFC_MASK) +#define MCM_ISCR_FUFC_MASK (0x800U) +#define MCM_ISCR_FUFC_SHIFT (11U) +#define MCM_ISCR_FUFC(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FUFC_SHIFT)) & MCM_ISCR_FUFC_MASK) +#define MCM_ISCR_FIXC_MASK (0x1000U) +#define MCM_ISCR_FIXC_SHIFT (12U) +#define MCM_ISCR_FIXC(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIXC_SHIFT)) & MCM_ISCR_FIXC_MASK) +#define MCM_ISCR_FIDC_MASK (0x8000U) +#define MCM_ISCR_FIDC_SHIFT (15U) +#define MCM_ISCR_FIDC(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIDC_SHIFT)) & MCM_ISCR_FIDC_MASK) +#define MCM_ISCR_FIOCE_MASK (0x1000000U) +#define MCM_ISCR_FIOCE_SHIFT (24U) +#define MCM_ISCR_FIOCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIOCE_SHIFT)) & MCM_ISCR_FIOCE_MASK) +#define MCM_ISCR_FDZCE_MASK (0x2000000U) +#define MCM_ISCR_FDZCE_SHIFT (25U) +#define MCM_ISCR_FDZCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FDZCE_SHIFT)) & MCM_ISCR_FDZCE_MASK) +#define MCM_ISCR_FOFCE_MASK (0x4000000U) +#define MCM_ISCR_FOFCE_SHIFT (26U) +#define MCM_ISCR_FOFCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FOFCE_SHIFT)) & MCM_ISCR_FOFCE_MASK) +#define MCM_ISCR_FUFCE_MASK (0x8000000U) +#define MCM_ISCR_FUFCE_SHIFT (27U) +#define MCM_ISCR_FUFCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FUFCE_SHIFT)) & MCM_ISCR_FUFCE_MASK) +#define MCM_ISCR_FIXCE_MASK (0x10000000U) +#define MCM_ISCR_FIXCE_SHIFT (28U) +#define MCM_ISCR_FIXCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIXCE_SHIFT)) & MCM_ISCR_FIXCE_MASK) +#define MCM_ISCR_FIDCE_MASK (0x80000000U) +#define MCM_ISCR_FIDCE_SHIFT (31U) +#define MCM_ISCR_FIDCE(x) (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIDCE_SHIFT)) & MCM_ISCR_FIDCE_MASK) + +/*! @name ETBCC - ETB Counter Control register */ +#define MCM_ETBCC_CNTEN_MASK (0x1U) +#define MCM_ETBCC_CNTEN_SHIFT (0U) +#define MCM_ETBCC_CNTEN(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBCC_CNTEN_SHIFT)) & MCM_ETBCC_CNTEN_MASK) +#define MCM_ETBCC_RSPT_MASK (0x6U) +#define MCM_ETBCC_RSPT_SHIFT (1U) +#define MCM_ETBCC_RSPT(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBCC_RSPT_SHIFT)) & MCM_ETBCC_RSPT_MASK) +#define MCM_ETBCC_RLRQ_MASK (0x8U) +#define MCM_ETBCC_RLRQ_SHIFT (3U) +#define MCM_ETBCC_RLRQ(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBCC_RLRQ_SHIFT)) & MCM_ETBCC_RLRQ_MASK) +#define MCM_ETBCC_ETDIS_MASK (0x10U) +#define MCM_ETBCC_ETDIS_SHIFT (4U) +#define MCM_ETBCC_ETDIS(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBCC_ETDIS_SHIFT)) & MCM_ETBCC_ETDIS_MASK) +#define MCM_ETBCC_ITDIS_MASK (0x20U) +#define MCM_ETBCC_ITDIS_SHIFT (5U) +#define MCM_ETBCC_ITDIS(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBCC_ITDIS_SHIFT)) & MCM_ETBCC_ITDIS_MASK) + +/*! @name ETBRL - ETB Reload register */ +#define MCM_ETBRL_RELOAD_MASK (0x7FFU) +#define MCM_ETBRL_RELOAD_SHIFT (0U) +#define MCM_ETBRL_RELOAD(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBRL_RELOAD_SHIFT)) & MCM_ETBRL_RELOAD_MASK) + +/*! @name ETBCNT - ETB Counter Value register */ +#define MCM_ETBCNT_COUNTER_MASK (0x7FFU) +#define MCM_ETBCNT_COUNTER_SHIFT (0U) +#define MCM_ETBCNT_COUNTER(x) (((uint32_t)(((uint32_t)(x)) << MCM_ETBCNT_COUNTER_SHIFT)) & MCM_ETBCNT_COUNTER_MASK) + +/*! @name PID - Process ID register */ +#define MCM_PID_PID_MASK (0xFFU) +#define MCM_PID_PID_SHIFT (0U) +#define MCM_PID_PID(x) (((uint32_t)(((uint32_t)(x)) << MCM_PID_PID_SHIFT)) & MCM_PID_PID_MASK) + + +/*! + * @} + */ /* end of group MCM_Register_Masks */ + + +/* MCM - Peripheral instance base addresses */ +/** Peripheral MCM base address */ +#define MCM_BASE (0xE0080000u) +/** Peripheral MCM base pointer */ +#define MCM ((MCM_Type *)MCM_BASE) +/** Array initializer of MCM peripheral base addresses */ +#define MCM_BASE_ADDRS { MCM_BASE } +/** Array initializer of MCM peripheral base pointers */ +#define MCM_BASE_PTRS { MCM } +/** Interrupt vectors for the MCM peripheral type */ +#define MCM_IRQS { MCM_IRQn } + +/*! + * @} + */ /* end of group MCM_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- MPU Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MPU_Peripheral_Access_Layer MPU Peripheral Access Layer + * @{ + */ + +/** MPU - Register Layout Typedef */ +typedef struct { + __IO uint32_t CESR; /**< Control/Error Status Register, offset: 0x0 */ + uint8_t RESERVED_0[12]; + struct { /* offset: 0x10, array step: 0x8 */ + __I uint32_t EAR; /**< Error Address Register, slave port n, array offset: 0x10, array step: 0x8 */ + __I uint32_t EDR; /**< Error Detail Register, slave port n, array offset: 0x14, array step: 0x8 */ + } SP[5]; + uint8_t RESERVED_1[968]; + __IO uint32_t WORD[12][4]; /**< Region Descriptor n, Word 0..Region Descriptor n, Word 3, array offset: 0x400, array step: index*0x10, index2*0x4 */ + uint8_t RESERVED_2[832]; + __IO uint32_t RGDAAC[12]; /**< Region Descriptor Alternate Access Control n, array offset: 0x800, array step: 0x4 */ +} MPU_Type; + +/* ---------------------------------------------------------------------------- + -- MPU Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MPU_Register_Masks MPU Register Masks + * @{ + */ + +/*! @name CESR - Control/Error Status Register */ +#define MPU_CESR_VLD_MASK (0x1U) +#define MPU_CESR_VLD_SHIFT (0U) +#define MPU_CESR_VLD(x) (((uint32_t)(((uint32_t)(x)) << MPU_CESR_VLD_SHIFT)) & MPU_CESR_VLD_MASK) +#define MPU_CESR_NRGD_MASK (0xF00U) +#define MPU_CESR_NRGD_SHIFT (8U) +#define MPU_CESR_NRGD(x) (((uint32_t)(((uint32_t)(x)) << MPU_CESR_NRGD_SHIFT)) & MPU_CESR_NRGD_MASK) +#define MPU_CESR_NSP_MASK (0xF000U) +#define MPU_CESR_NSP_SHIFT (12U) +#define MPU_CESR_NSP(x) (((uint32_t)(((uint32_t)(x)) << MPU_CESR_NSP_SHIFT)) & MPU_CESR_NSP_MASK) +#define MPU_CESR_HRL_MASK (0xF0000U) +#define MPU_CESR_HRL_SHIFT (16U) +#define MPU_CESR_HRL(x) (((uint32_t)(((uint32_t)(x)) << MPU_CESR_HRL_SHIFT)) & MPU_CESR_HRL_MASK) +#define MPU_CESR_SPERR_MASK (0xF8000000U) +#define MPU_CESR_SPERR_SHIFT (27U) +#define MPU_CESR_SPERR(x) (((uint32_t)(((uint32_t)(x)) << MPU_CESR_SPERR_SHIFT)) & MPU_CESR_SPERR_MASK) + +/*! @name EAR - Error Address Register, slave port n */ +#define MPU_EAR_EADDR_MASK (0xFFFFFFFFU) +#define MPU_EAR_EADDR_SHIFT (0U) +#define MPU_EAR_EADDR(x) (((uint32_t)(((uint32_t)(x)) << MPU_EAR_EADDR_SHIFT)) & MPU_EAR_EADDR_MASK) + +/* The count of MPU_EAR */ +#define MPU_EAR_COUNT (5U) + +/*! @name EDR - Error Detail Register, slave port n */ +#define MPU_EDR_ERW_MASK (0x1U) +#define MPU_EDR_ERW_SHIFT (0U) +#define MPU_EDR_ERW(x) (((uint32_t)(((uint32_t)(x)) << MPU_EDR_ERW_SHIFT)) & MPU_EDR_ERW_MASK) +#define MPU_EDR_EATTR_MASK (0xEU) +#define MPU_EDR_EATTR_SHIFT (1U) +#define MPU_EDR_EATTR(x) (((uint32_t)(((uint32_t)(x)) << MPU_EDR_EATTR_SHIFT)) & MPU_EDR_EATTR_MASK) +#define MPU_EDR_EMN_MASK (0xF0U) +#define MPU_EDR_EMN_SHIFT (4U) +#define MPU_EDR_EMN(x) (((uint32_t)(((uint32_t)(x)) << MPU_EDR_EMN_SHIFT)) & MPU_EDR_EMN_MASK) +#define MPU_EDR_EPID_MASK (0xFF00U) +#define MPU_EDR_EPID_SHIFT (8U) +#define MPU_EDR_EPID(x) (((uint32_t)(((uint32_t)(x)) << MPU_EDR_EPID_SHIFT)) & MPU_EDR_EPID_MASK) +#define MPU_EDR_EACD_MASK (0xFFFF0000U) +#define MPU_EDR_EACD_SHIFT (16U) +#define MPU_EDR_EACD(x) (((uint32_t)(((uint32_t)(x)) << MPU_EDR_EACD_SHIFT)) & MPU_EDR_EACD_MASK) + +/* The count of MPU_EDR */ +#define MPU_EDR_COUNT (5U) + +/*! @name WORD - Region Descriptor n, Word 0..Region Descriptor n, Word 3 */ +#define MPU_WORD_VLD_MASK (0x1U) +#define MPU_WORD_VLD_SHIFT (0U) +#define MPU_WORD_VLD(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_VLD_SHIFT)) & MPU_WORD_VLD_MASK) +#define MPU_WORD_M0UM_MASK (0x7U) +#define MPU_WORD_M0UM_SHIFT (0U) +#define MPU_WORD_M0UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M0UM_SHIFT)) & MPU_WORD_M0UM_MASK) +#define MPU_WORD_M0SM_MASK (0x18U) +#define MPU_WORD_M0SM_SHIFT (3U) +#define MPU_WORD_M0SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M0SM_SHIFT)) & MPU_WORD_M0SM_MASK) +#define MPU_WORD_M0PE_MASK (0x20U) +#define MPU_WORD_M0PE_SHIFT (5U) +#define MPU_WORD_M0PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M0PE_SHIFT)) & MPU_WORD_M0PE_MASK) +#define MPU_WORD_ENDADDR_MASK (0xFFFFFFE0U) +#define MPU_WORD_ENDADDR_SHIFT (5U) +#define MPU_WORD_ENDADDR(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_ENDADDR_SHIFT)) & MPU_WORD_ENDADDR_MASK) +#define MPU_WORD_SRTADDR_MASK (0xFFFFFFE0U) +#define MPU_WORD_SRTADDR_SHIFT (5U) +#define MPU_WORD_SRTADDR(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_SRTADDR_SHIFT)) & MPU_WORD_SRTADDR_MASK) +#define MPU_WORD_M1UM_MASK (0x1C0U) +#define MPU_WORD_M1UM_SHIFT (6U) +#define MPU_WORD_M1UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M1UM_SHIFT)) & MPU_WORD_M1UM_MASK) +#define MPU_WORD_M1SM_MASK (0x600U) +#define MPU_WORD_M1SM_SHIFT (9U) +#define MPU_WORD_M1SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M1SM_SHIFT)) & MPU_WORD_M1SM_MASK) +#define MPU_WORD_M1PE_MASK (0x800U) +#define MPU_WORD_M1PE_SHIFT (11U) +#define MPU_WORD_M1PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M1PE_SHIFT)) & MPU_WORD_M1PE_MASK) +#define MPU_WORD_M2UM_MASK (0x7000U) +#define MPU_WORD_M2UM_SHIFT (12U) +#define MPU_WORD_M2UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M2UM_SHIFT)) & MPU_WORD_M2UM_MASK) +#define MPU_WORD_M2SM_MASK (0x18000U) +#define MPU_WORD_M2SM_SHIFT (15U) +#define MPU_WORD_M2SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M2SM_SHIFT)) & MPU_WORD_M2SM_MASK) +#define MPU_WORD_PIDMASK_MASK (0xFF0000U) +#define MPU_WORD_PIDMASK_SHIFT (16U) +#define MPU_WORD_PIDMASK(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_PIDMASK_SHIFT)) & MPU_WORD_PIDMASK_MASK) +#define MPU_WORD_M2PE_MASK (0x20000U) +#define MPU_WORD_M2PE_SHIFT (17U) +#define MPU_WORD_M2PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M2PE_SHIFT)) & MPU_WORD_M2PE_MASK) +#define MPU_WORD_M3UM_MASK (0x1C0000U) +#define MPU_WORD_M3UM_SHIFT (18U) +#define MPU_WORD_M3UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M3UM_SHIFT)) & MPU_WORD_M3UM_MASK) +#define MPU_WORD_M3SM_MASK (0x600000U) +#define MPU_WORD_M3SM_SHIFT (21U) +#define MPU_WORD_M3SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M3SM_SHIFT)) & MPU_WORD_M3SM_MASK) +#define MPU_WORD_M3PE_MASK (0x800000U) +#define MPU_WORD_M3PE_SHIFT (23U) +#define MPU_WORD_M3PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M3PE_SHIFT)) & MPU_WORD_M3PE_MASK) +#define MPU_WORD_PID_MASK (0xFF000000U) +#define MPU_WORD_PID_SHIFT (24U) +#define MPU_WORD_PID(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_PID_SHIFT)) & MPU_WORD_PID_MASK) +#define MPU_WORD_M4WE_MASK (0x1000000U) +#define MPU_WORD_M4WE_SHIFT (24U) +#define MPU_WORD_M4WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M4WE_SHIFT)) & MPU_WORD_M4WE_MASK) +#define MPU_WORD_M4RE_MASK (0x2000000U) +#define MPU_WORD_M4RE_SHIFT (25U) +#define MPU_WORD_M4RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M4RE_SHIFT)) & MPU_WORD_M4RE_MASK) +#define MPU_WORD_M5WE_MASK (0x4000000U) +#define MPU_WORD_M5WE_SHIFT (26U) +#define MPU_WORD_M5WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M5WE_SHIFT)) & MPU_WORD_M5WE_MASK) +#define MPU_WORD_M5RE_MASK (0x8000000U) +#define MPU_WORD_M5RE_SHIFT (27U) +#define MPU_WORD_M5RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M5RE_SHIFT)) & MPU_WORD_M5RE_MASK) +#define MPU_WORD_M6WE_MASK (0x10000000U) +#define MPU_WORD_M6WE_SHIFT (28U) +#define MPU_WORD_M6WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M6WE_SHIFT)) & MPU_WORD_M6WE_MASK) +#define MPU_WORD_M6RE_MASK (0x20000000U) +#define MPU_WORD_M6RE_SHIFT (29U) +#define MPU_WORD_M6RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M6RE_SHIFT)) & MPU_WORD_M6RE_MASK) +#define MPU_WORD_M7WE_MASK (0x40000000U) +#define MPU_WORD_M7WE_SHIFT (30U) +#define MPU_WORD_M7WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M7WE_SHIFT)) & MPU_WORD_M7WE_MASK) +#define MPU_WORD_M7RE_MASK (0x80000000U) +#define MPU_WORD_M7RE_SHIFT (31U) +#define MPU_WORD_M7RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_WORD_M7RE_SHIFT)) & MPU_WORD_M7RE_MASK) + +/* The count of MPU_WORD */ +#define MPU_WORD_COUNT (12U) + +/* The count of MPU_WORD */ +#define MPU_WORD_COUNT2 (4U) + +/*! @name RGDAAC - Region Descriptor Alternate Access Control n */ +#define MPU_RGDAAC_M0UM_MASK (0x7U) +#define MPU_RGDAAC_M0UM_SHIFT (0U) +#define MPU_RGDAAC_M0UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M0UM_SHIFT)) & MPU_RGDAAC_M0UM_MASK) +#define MPU_RGDAAC_M0SM_MASK (0x18U) +#define MPU_RGDAAC_M0SM_SHIFT (3U) +#define MPU_RGDAAC_M0SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M0SM_SHIFT)) & MPU_RGDAAC_M0SM_MASK) +#define MPU_RGDAAC_M0PE_MASK (0x20U) +#define MPU_RGDAAC_M0PE_SHIFT (5U) +#define MPU_RGDAAC_M0PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M0PE_SHIFT)) & MPU_RGDAAC_M0PE_MASK) +#define MPU_RGDAAC_M1UM_MASK (0x1C0U) +#define MPU_RGDAAC_M1UM_SHIFT (6U) +#define MPU_RGDAAC_M1UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M1UM_SHIFT)) & MPU_RGDAAC_M1UM_MASK) +#define MPU_RGDAAC_M1SM_MASK (0x600U) +#define MPU_RGDAAC_M1SM_SHIFT (9U) +#define MPU_RGDAAC_M1SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M1SM_SHIFT)) & MPU_RGDAAC_M1SM_MASK) +#define MPU_RGDAAC_M1PE_MASK (0x800U) +#define MPU_RGDAAC_M1PE_SHIFT (11U) +#define MPU_RGDAAC_M1PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M1PE_SHIFT)) & MPU_RGDAAC_M1PE_MASK) +#define MPU_RGDAAC_M2UM_MASK (0x7000U) +#define MPU_RGDAAC_M2UM_SHIFT (12U) +#define MPU_RGDAAC_M2UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M2UM_SHIFT)) & MPU_RGDAAC_M2UM_MASK) +#define MPU_RGDAAC_M2SM_MASK (0x18000U) +#define MPU_RGDAAC_M2SM_SHIFT (15U) +#define MPU_RGDAAC_M2SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M2SM_SHIFT)) & MPU_RGDAAC_M2SM_MASK) +#define MPU_RGDAAC_M2PE_MASK (0x20000U) +#define MPU_RGDAAC_M2PE_SHIFT (17U) +#define MPU_RGDAAC_M2PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M2PE_SHIFT)) & MPU_RGDAAC_M2PE_MASK) +#define MPU_RGDAAC_M3UM_MASK (0x1C0000U) +#define MPU_RGDAAC_M3UM_SHIFT (18U) +#define MPU_RGDAAC_M3UM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M3UM_SHIFT)) & MPU_RGDAAC_M3UM_MASK) +#define MPU_RGDAAC_M3SM_MASK (0x600000U) +#define MPU_RGDAAC_M3SM_SHIFT (21U) +#define MPU_RGDAAC_M3SM(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M3SM_SHIFT)) & MPU_RGDAAC_M3SM_MASK) +#define MPU_RGDAAC_M3PE_MASK (0x800000U) +#define MPU_RGDAAC_M3PE_SHIFT (23U) +#define MPU_RGDAAC_M3PE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M3PE_SHIFT)) & MPU_RGDAAC_M3PE_MASK) +#define MPU_RGDAAC_M4WE_MASK (0x1000000U) +#define MPU_RGDAAC_M4WE_SHIFT (24U) +#define MPU_RGDAAC_M4WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M4WE_SHIFT)) & MPU_RGDAAC_M4WE_MASK) +#define MPU_RGDAAC_M4RE_MASK (0x2000000U) +#define MPU_RGDAAC_M4RE_SHIFT (25U) +#define MPU_RGDAAC_M4RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M4RE_SHIFT)) & MPU_RGDAAC_M4RE_MASK) +#define MPU_RGDAAC_M5WE_MASK (0x4000000U) +#define MPU_RGDAAC_M5WE_SHIFT (26U) +#define MPU_RGDAAC_M5WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M5WE_SHIFT)) & MPU_RGDAAC_M5WE_MASK) +#define MPU_RGDAAC_M5RE_MASK (0x8000000U) +#define MPU_RGDAAC_M5RE_SHIFT (27U) +#define MPU_RGDAAC_M5RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M5RE_SHIFT)) & MPU_RGDAAC_M5RE_MASK) +#define MPU_RGDAAC_M6WE_MASK (0x10000000U) +#define MPU_RGDAAC_M6WE_SHIFT (28U) +#define MPU_RGDAAC_M6WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M6WE_SHIFT)) & MPU_RGDAAC_M6WE_MASK) +#define MPU_RGDAAC_M6RE_MASK (0x20000000U) +#define MPU_RGDAAC_M6RE_SHIFT (29U) +#define MPU_RGDAAC_M6RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M6RE_SHIFT)) & MPU_RGDAAC_M6RE_MASK) +#define MPU_RGDAAC_M7WE_MASK (0x40000000U) +#define MPU_RGDAAC_M7WE_SHIFT (30U) +#define MPU_RGDAAC_M7WE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M7WE_SHIFT)) & MPU_RGDAAC_M7WE_MASK) +#define MPU_RGDAAC_M7RE_MASK (0x80000000U) +#define MPU_RGDAAC_M7RE_SHIFT (31U) +#define MPU_RGDAAC_M7RE(x) (((uint32_t)(((uint32_t)(x)) << MPU_RGDAAC_M7RE_SHIFT)) & MPU_RGDAAC_M7RE_MASK) + +/* The count of MPU_RGDAAC */ +#define MPU_RGDAAC_COUNT (12U) + + +/*! + * @} + */ /* end of group MPU_Register_Masks */ + + +/* MPU - Peripheral instance base addresses */ +/** Peripheral MPU base address */ +#define MPU_BASE (0x4000D000u) +/** Peripheral MPU base pointer */ +#define MPU ((MPU_Type *)MPU_BASE) +/** Array initializer of MPU peripheral base addresses */ +#define MPU_BASE_ADDRS { MPU_BASE } +/** Array initializer of MPU peripheral base pointers */ +#define MPU_BASE_PTRS { MPU } + +/*! + * @} + */ /* end of group MPU_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- NV Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup NV_Peripheral_Access_Layer NV Peripheral Access Layer + * @{ + */ + +/** NV - Register Layout Typedef */ +typedef struct { + __I uint8_t BACKKEY3; /**< Backdoor Comparison Key 3., offset: 0x0 */ + __I uint8_t BACKKEY2; /**< Backdoor Comparison Key 2., offset: 0x1 */ + __I uint8_t BACKKEY1; /**< Backdoor Comparison Key 1., offset: 0x2 */ + __I uint8_t BACKKEY0; /**< Backdoor Comparison Key 0., offset: 0x3 */ + __I uint8_t BACKKEY7; /**< Backdoor Comparison Key 7., offset: 0x4 */ + __I uint8_t BACKKEY6; /**< Backdoor Comparison Key 6., offset: 0x5 */ + __I uint8_t BACKKEY5; /**< Backdoor Comparison Key 5., offset: 0x6 */ + __I uint8_t BACKKEY4; /**< Backdoor Comparison Key 4., offset: 0x7 */ + __I uint8_t FPROT3; /**< Non-volatile P-Flash Protection 1 - Low Register, offset: 0x8 */ + __I uint8_t FPROT2; /**< Non-volatile P-Flash Protection 1 - High Register, offset: 0x9 */ + __I uint8_t FPROT1; /**< Non-volatile P-Flash Protection 0 - Low Register, offset: 0xA */ + __I uint8_t FPROT0; /**< Non-volatile P-Flash Protection 0 - High Register, offset: 0xB */ + __I uint8_t FSEC; /**< Non-volatile Flash Security Register, offset: 0xC */ + __I uint8_t FOPT; /**< Non-volatile Flash Option Register, offset: 0xD */ + __I uint8_t FEPROT; /**< Non-volatile EERAM Protection Register, offset: 0xE */ + __I uint8_t FDPROT; /**< Non-volatile D-Flash Protection Register, offset: 0xF */ +} NV_Type; + +/* ---------------------------------------------------------------------------- + -- NV Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup NV_Register_Masks NV Register Masks + * @{ + */ + +/*! @name BACKKEY3 - Backdoor Comparison Key 3. */ +#define NV_BACKKEY3_KEY_MASK (0xFFU) +#define NV_BACKKEY3_KEY_SHIFT (0U) +#define NV_BACKKEY3_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY3_KEY_SHIFT)) & NV_BACKKEY3_KEY_MASK) + +/*! @name BACKKEY2 - Backdoor Comparison Key 2. */ +#define NV_BACKKEY2_KEY_MASK (0xFFU) +#define NV_BACKKEY2_KEY_SHIFT (0U) +#define NV_BACKKEY2_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY2_KEY_SHIFT)) & NV_BACKKEY2_KEY_MASK) + +/*! @name BACKKEY1 - Backdoor Comparison Key 1. */ +#define NV_BACKKEY1_KEY_MASK (0xFFU) +#define NV_BACKKEY1_KEY_SHIFT (0U) +#define NV_BACKKEY1_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY1_KEY_SHIFT)) & NV_BACKKEY1_KEY_MASK) + +/*! @name BACKKEY0 - Backdoor Comparison Key 0. */ +#define NV_BACKKEY0_KEY_MASK (0xFFU) +#define NV_BACKKEY0_KEY_SHIFT (0U) +#define NV_BACKKEY0_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY0_KEY_SHIFT)) & NV_BACKKEY0_KEY_MASK) + +/*! @name BACKKEY7 - Backdoor Comparison Key 7. */ +#define NV_BACKKEY7_KEY_MASK (0xFFU) +#define NV_BACKKEY7_KEY_SHIFT (0U) +#define NV_BACKKEY7_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY7_KEY_SHIFT)) & NV_BACKKEY7_KEY_MASK) + +/*! @name BACKKEY6 - Backdoor Comparison Key 6. */ +#define NV_BACKKEY6_KEY_MASK (0xFFU) +#define NV_BACKKEY6_KEY_SHIFT (0U) +#define NV_BACKKEY6_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY6_KEY_SHIFT)) & NV_BACKKEY6_KEY_MASK) + +/*! @name BACKKEY5 - Backdoor Comparison Key 5. */ +#define NV_BACKKEY5_KEY_MASK (0xFFU) +#define NV_BACKKEY5_KEY_SHIFT (0U) +#define NV_BACKKEY5_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY5_KEY_SHIFT)) & NV_BACKKEY5_KEY_MASK) + +/*! @name BACKKEY4 - Backdoor Comparison Key 4. */ +#define NV_BACKKEY4_KEY_MASK (0xFFU) +#define NV_BACKKEY4_KEY_SHIFT (0U) +#define NV_BACKKEY4_KEY(x) (((uint8_t)(((uint8_t)(x)) << NV_BACKKEY4_KEY_SHIFT)) & NV_BACKKEY4_KEY_MASK) + +/*! @name FPROT3 - Non-volatile P-Flash Protection 1 - Low Register */ +#define NV_FPROT3_PROT_MASK (0xFFU) +#define NV_FPROT3_PROT_SHIFT (0U) +#define NV_FPROT3_PROT(x) (((uint8_t)(((uint8_t)(x)) << NV_FPROT3_PROT_SHIFT)) & NV_FPROT3_PROT_MASK) + +/*! @name FPROT2 - Non-volatile P-Flash Protection 1 - High Register */ +#define NV_FPROT2_PROT_MASK (0xFFU) +#define NV_FPROT2_PROT_SHIFT (0U) +#define NV_FPROT2_PROT(x) (((uint8_t)(((uint8_t)(x)) << NV_FPROT2_PROT_SHIFT)) & NV_FPROT2_PROT_MASK) + +/*! @name FPROT1 - Non-volatile P-Flash Protection 0 - Low Register */ +#define NV_FPROT1_PROT_MASK (0xFFU) +#define NV_FPROT1_PROT_SHIFT (0U) +#define NV_FPROT1_PROT(x) (((uint8_t)(((uint8_t)(x)) << NV_FPROT1_PROT_SHIFT)) & NV_FPROT1_PROT_MASK) + +/*! @name FPROT0 - Non-volatile P-Flash Protection 0 - High Register */ +#define NV_FPROT0_PROT_MASK (0xFFU) +#define NV_FPROT0_PROT_SHIFT (0U) +#define NV_FPROT0_PROT(x) (((uint8_t)(((uint8_t)(x)) << NV_FPROT0_PROT_SHIFT)) & NV_FPROT0_PROT_MASK) + +/*! @name FSEC - Non-volatile Flash Security Register */ +#define NV_FSEC_SEC_MASK (0x3U) +#define NV_FSEC_SEC_SHIFT (0U) +#define NV_FSEC_SEC(x) (((uint8_t)(((uint8_t)(x)) << NV_FSEC_SEC_SHIFT)) & NV_FSEC_SEC_MASK) +#define NV_FSEC_FSLACC_MASK (0xCU) +#define NV_FSEC_FSLACC_SHIFT (2U) +#define NV_FSEC_FSLACC(x) (((uint8_t)(((uint8_t)(x)) << NV_FSEC_FSLACC_SHIFT)) & NV_FSEC_FSLACC_MASK) +#define NV_FSEC_MEEN_MASK (0x30U) +#define NV_FSEC_MEEN_SHIFT (4U) +#define NV_FSEC_MEEN(x) (((uint8_t)(((uint8_t)(x)) << NV_FSEC_MEEN_SHIFT)) & NV_FSEC_MEEN_MASK) +#define NV_FSEC_KEYEN_MASK (0xC0U) +#define NV_FSEC_KEYEN_SHIFT (6U) +#define NV_FSEC_KEYEN(x) (((uint8_t)(((uint8_t)(x)) << NV_FSEC_KEYEN_SHIFT)) & NV_FSEC_KEYEN_MASK) + +/*! @name FOPT - Non-volatile Flash Option Register */ +#define NV_FOPT_LPBOOT_MASK (0x1U) +#define NV_FOPT_LPBOOT_SHIFT (0U) +#define NV_FOPT_LPBOOT(x) (((uint8_t)(((uint8_t)(x)) << NV_FOPT_LPBOOT_SHIFT)) & NV_FOPT_LPBOOT_MASK) +#define NV_FOPT_EZPORT_DIS_MASK (0x2U) +#define NV_FOPT_EZPORT_DIS_SHIFT (1U) +#define NV_FOPT_EZPORT_DIS(x) (((uint8_t)(((uint8_t)(x)) << NV_FOPT_EZPORT_DIS_SHIFT)) & NV_FOPT_EZPORT_DIS_MASK) + +/*! @name FEPROT - Non-volatile EERAM Protection Register */ +#define NV_FEPROT_EPROT_MASK (0xFFU) +#define NV_FEPROT_EPROT_SHIFT (0U) +#define NV_FEPROT_EPROT(x) (((uint8_t)(((uint8_t)(x)) << NV_FEPROT_EPROT_SHIFT)) & NV_FEPROT_EPROT_MASK) + +/*! @name FDPROT - Non-volatile D-Flash Protection Register */ +#define NV_FDPROT_DPROT_MASK (0xFFU) +#define NV_FDPROT_DPROT_SHIFT (0U) +#define NV_FDPROT_DPROT(x) (((uint8_t)(((uint8_t)(x)) << NV_FDPROT_DPROT_SHIFT)) & NV_FDPROT_DPROT_MASK) + + +/*! + * @} + */ /* end of group NV_Register_Masks */ + + +/* NV - Peripheral instance base addresses */ +/** Peripheral FTFE_FlashConfig base address */ +#define FTFE_FlashConfig_BASE (0x400u) +/** Peripheral FTFE_FlashConfig base pointer */ +#define FTFE_FlashConfig ((NV_Type *)FTFE_FlashConfig_BASE) +/** Array initializer of NV peripheral base addresses */ +#define NV_BASE_ADDRS { FTFE_FlashConfig_BASE } +/** Array initializer of NV peripheral base pointers */ +#define NV_BASE_PTRS { FTFE_FlashConfig } + +/*! + * @} + */ /* end of group NV_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- OSC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup OSC_Peripheral_Access_Layer OSC Peripheral Access Layer + * @{ + */ + +/** OSC - Register Layout Typedef */ +typedef struct { + __IO uint8_t CR; /**< OSC Control Register, offset: 0x0 */ +} OSC_Type; + +/* ---------------------------------------------------------------------------- + -- OSC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup OSC_Register_Masks OSC Register Masks + * @{ + */ + +/*! @name CR - OSC Control Register */ +#define OSC_CR_SC16P_MASK (0x1U) +#define OSC_CR_SC16P_SHIFT (0U) +#define OSC_CR_SC16P(x) (((uint8_t)(((uint8_t)(x)) << OSC_CR_SC16P_SHIFT)) & OSC_CR_SC16P_MASK) +#define OSC_CR_SC8P_MASK (0x2U) +#define OSC_CR_SC8P_SHIFT (1U) +#define OSC_CR_SC8P(x) (((uint8_t)(((uint8_t)(x)) << OSC_CR_SC8P_SHIFT)) & OSC_CR_SC8P_MASK) +#define OSC_CR_SC4P_MASK (0x4U) +#define OSC_CR_SC4P_SHIFT (2U) +#define OSC_CR_SC4P(x) (((uint8_t)(((uint8_t)(x)) << OSC_CR_SC4P_SHIFT)) & OSC_CR_SC4P_MASK) +#define OSC_CR_SC2P_MASK (0x8U) +#define OSC_CR_SC2P_SHIFT (3U) +#define OSC_CR_SC2P(x) (((uint8_t)(((uint8_t)(x)) << OSC_CR_SC2P_SHIFT)) & OSC_CR_SC2P_MASK) +#define OSC_CR_EREFSTEN_MASK (0x20U) +#define OSC_CR_EREFSTEN_SHIFT (5U) +#define OSC_CR_EREFSTEN(x) (((uint8_t)(((uint8_t)(x)) << OSC_CR_EREFSTEN_SHIFT)) & OSC_CR_EREFSTEN_MASK) +#define OSC_CR_ERCLKEN_MASK (0x80U) +#define OSC_CR_ERCLKEN_SHIFT (7U) +#define OSC_CR_ERCLKEN(x) (((uint8_t)(((uint8_t)(x)) << OSC_CR_ERCLKEN_SHIFT)) & OSC_CR_ERCLKEN_MASK) + + +/*! + * @} + */ /* end of group OSC_Register_Masks */ + + +/* OSC - Peripheral instance base addresses */ +/** Peripheral OSC base address */ +#define OSC_BASE (0x40065000u) +/** Peripheral OSC base pointer */ +#define OSC ((OSC_Type *)OSC_BASE) +/** Array initializer of OSC peripheral base addresses */ +#define OSC_BASE_ADDRS { OSC_BASE } +/** Array initializer of OSC peripheral base pointers */ +#define OSC_BASE_PTRS { OSC } + +/*! + * @} + */ /* end of group OSC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- PDB Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PDB_Peripheral_Access_Layer PDB Peripheral Access Layer + * @{ + */ + +/** PDB - Register Layout Typedef */ +typedef struct { + __IO uint32_t SC; /**< Status and Control register, offset: 0x0 */ + __IO uint32_t MOD; /**< Modulus register, offset: 0x4 */ + __I uint32_t CNT; /**< Counter register, offset: 0x8 */ + __IO uint32_t IDLY; /**< Interrupt Delay register, offset: 0xC */ + struct { /* offset: 0x10, array step: 0x28 */ + __IO uint32_t C1; /**< Channel n Control register 1, array offset: 0x10, array step: 0x28 */ + __IO uint32_t S; /**< Channel n Status register, array offset: 0x14, array step: 0x28 */ + __IO uint32_t DLY[2]; /**< Channel n Delay 0 register..Channel n Delay 1 register, array offset: 0x18, array step: index*0x28, index2*0x4 */ + uint8_t RESERVED_0[24]; + } CH[2]; + uint8_t RESERVED_0[240]; + struct { /* offset: 0x150, array step: 0x8 */ + __IO uint32_t INTC; /**< DAC Interval Trigger n Control register, array offset: 0x150, array step: 0x8 */ + __IO uint32_t INT; /**< DAC Interval n register, array offset: 0x154, array step: 0x8 */ + } DAC[2]; + uint8_t RESERVED_1[48]; + __IO uint32_t POEN; /**< Pulse-Out n Enable register, offset: 0x190 */ + __IO uint32_t PODLY[3]; /**< Pulse-Out n Delay register, array offset: 0x194, array step: 0x4 */ +} PDB_Type; + +/* ---------------------------------------------------------------------------- + -- PDB Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PDB_Register_Masks PDB Register Masks + * @{ + */ + +/*! @name SC - Status and Control register */ +#define PDB_SC_LDOK_MASK (0x1U) +#define PDB_SC_LDOK_SHIFT (0U) +#define PDB_SC_LDOK(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_LDOK_SHIFT)) & PDB_SC_LDOK_MASK) +#define PDB_SC_CONT_MASK (0x2U) +#define PDB_SC_CONT_SHIFT (1U) +#define PDB_SC_CONT(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_CONT_SHIFT)) & PDB_SC_CONT_MASK) +#define PDB_SC_MULT_MASK (0xCU) +#define PDB_SC_MULT_SHIFT (2U) +#define PDB_SC_MULT(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_MULT_SHIFT)) & PDB_SC_MULT_MASK) +#define PDB_SC_PDBIE_MASK (0x20U) +#define PDB_SC_PDBIE_SHIFT (5U) +#define PDB_SC_PDBIE(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_PDBIE_SHIFT)) & PDB_SC_PDBIE_MASK) +#define PDB_SC_PDBIF_MASK (0x40U) +#define PDB_SC_PDBIF_SHIFT (6U) +#define PDB_SC_PDBIF(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_PDBIF_SHIFT)) & PDB_SC_PDBIF_MASK) +#define PDB_SC_PDBEN_MASK (0x80U) +#define PDB_SC_PDBEN_SHIFT (7U) +#define PDB_SC_PDBEN(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_PDBEN_SHIFT)) & PDB_SC_PDBEN_MASK) +#define PDB_SC_TRGSEL_MASK (0xF00U) +#define PDB_SC_TRGSEL_SHIFT (8U) +#define PDB_SC_TRGSEL(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_TRGSEL_SHIFT)) & PDB_SC_TRGSEL_MASK) +#define PDB_SC_PRESCALER_MASK (0x7000U) +#define PDB_SC_PRESCALER_SHIFT (12U) +#define PDB_SC_PRESCALER(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_PRESCALER_SHIFT)) & PDB_SC_PRESCALER_MASK) +#define PDB_SC_DMAEN_MASK (0x8000U) +#define PDB_SC_DMAEN_SHIFT (15U) +#define PDB_SC_DMAEN(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_DMAEN_SHIFT)) & PDB_SC_DMAEN_MASK) +#define PDB_SC_SWTRIG_MASK (0x10000U) +#define PDB_SC_SWTRIG_SHIFT (16U) +#define PDB_SC_SWTRIG(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_SWTRIG_SHIFT)) & PDB_SC_SWTRIG_MASK) +#define PDB_SC_PDBEIE_MASK (0x20000U) +#define PDB_SC_PDBEIE_SHIFT (17U) +#define PDB_SC_PDBEIE(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_PDBEIE_SHIFT)) & PDB_SC_PDBEIE_MASK) +#define PDB_SC_LDMOD_MASK (0xC0000U) +#define PDB_SC_LDMOD_SHIFT (18U) +#define PDB_SC_LDMOD(x) (((uint32_t)(((uint32_t)(x)) << PDB_SC_LDMOD_SHIFT)) & PDB_SC_LDMOD_MASK) + +/*! @name MOD - Modulus register */ +#define PDB_MOD_MOD_MASK (0xFFFFU) +#define PDB_MOD_MOD_SHIFT (0U) +#define PDB_MOD_MOD(x) (((uint32_t)(((uint32_t)(x)) << PDB_MOD_MOD_SHIFT)) & PDB_MOD_MOD_MASK) + +/*! @name CNT - Counter register */ +#define PDB_CNT_CNT_MASK (0xFFFFU) +#define PDB_CNT_CNT_SHIFT (0U) +#define PDB_CNT_CNT(x) (((uint32_t)(((uint32_t)(x)) << PDB_CNT_CNT_SHIFT)) & PDB_CNT_CNT_MASK) + +/*! @name IDLY - Interrupt Delay register */ +#define PDB_IDLY_IDLY_MASK (0xFFFFU) +#define PDB_IDLY_IDLY_SHIFT (0U) +#define PDB_IDLY_IDLY(x) (((uint32_t)(((uint32_t)(x)) << PDB_IDLY_IDLY_SHIFT)) & PDB_IDLY_IDLY_MASK) + +/*! @name C1 - Channel n Control register 1 */ +#define PDB_C1_EN_MASK (0xFFU) +#define PDB_C1_EN_SHIFT (0U) +#define PDB_C1_EN(x) (((uint32_t)(((uint32_t)(x)) << PDB_C1_EN_SHIFT)) & PDB_C1_EN_MASK) +#define PDB_C1_TOS_MASK (0xFF00U) +#define PDB_C1_TOS_SHIFT (8U) +#define PDB_C1_TOS(x) (((uint32_t)(((uint32_t)(x)) << PDB_C1_TOS_SHIFT)) & PDB_C1_TOS_MASK) +#define PDB_C1_BB_MASK (0xFF0000U) +#define PDB_C1_BB_SHIFT (16U) +#define PDB_C1_BB(x) (((uint32_t)(((uint32_t)(x)) << PDB_C1_BB_SHIFT)) & PDB_C1_BB_MASK) + +/* The count of PDB_C1 */ +#define PDB_C1_COUNT (2U) + +/*! @name S - Channel n Status register */ +#define PDB_S_ERR_MASK (0xFFU) +#define PDB_S_ERR_SHIFT (0U) +#define PDB_S_ERR(x) (((uint32_t)(((uint32_t)(x)) << PDB_S_ERR_SHIFT)) & PDB_S_ERR_MASK) +#define PDB_S_CF_MASK (0xFF0000U) +#define PDB_S_CF_SHIFT (16U) +#define PDB_S_CF(x) (((uint32_t)(((uint32_t)(x)) << PDB_S_CF_SHIFT)) & PDB_S_CF_MASK) + +/* The count of PDB_S */ +#define PDB_S_COUNT (2U) + +/*! @name DLY - Channel n Delay 0 register..Channel n Delay 1 register */ +#define PDB_DLY_DLY_MASK (0xFFFFU) +#define PDB_DLY_DLY_SHIFT (0U) +#define PDB_DLY_DLY(x) (((uint32_t)(((uint32_t)(x)) << PDB_DLY_DLY_SHIFT)) & PDB_DLY_DLY_MASK) + +/* The count of PDB_DLY */ +#define PDB_DLY_COUNT (2U) + +/* The count of PDB_DLY */ +#define PDB_DLY_COUNT2 (2U) + +/*! @name INTC - DAC Interval Trigger n Control register */ +#define PDB_INTC_TOE_MASK (0x1U) +#define PDB_INTC_TOE_SHIFT (0U) +#define PDB_INTC_TOE(x) (((uint32_t)(((uint32_t)(x)) << PDB_INTC_TOE_SHIFT)) & PDB_INTC_TOE_MASK) +#define PDB_INTC_EXT_MASK (0x2U) +#define PDB_INTC_EXT_SHIFT (1U) +#define PDB_INTC_EXT(x) (((uint32_t)(((uint32_t)(x)) << PDB_INTC_EXT_SHIFT)) & PDB_INTC_EXT_MASK) + +/* The count of PDB_INTC */ +#define PDB_INTC_COUNT (2U) + +/*! @name INT - DAC Interval n register */ +#define PDB_INT_INT_MASK (0xFFFFU) +#define PDB_INT_INT_SHIFT (0U) +#define PDB_INT_INT(x) (((uint32_t)(((uint32_t)(x)) << PDB_INT_INT_SHIFT)) & PDB_INT_INT_MASK) + +/* The count of PDB_INT */ +#define PDB_INT_COUNT (2U) + +/*! @name POEN - Pulse-Out n Enable register */ +#define PDB_POEN_POEN_MASK (0xFFU) +#define PDB_POEN_POEN_SHIFT (0U) +#define PDB_POEN_POEN(x) (((uint32_t)(((uint32_t)(x)) << PDB_POEN_POEN_SHIFT)) & PDB_POEN_POEN_MASK) + +/*! @name PODLY - Pulse-Out n Delay register */ +#define PDB_PODLY_DLY2_MASK (0xFFFFU) +#define PDB_PODLY_DLY2_SHIFT (0U) +#define PDB_PODLY_DLY2(x) (((uint32_t)(((uint32_t)(x)) << PDB_PODLY_DLY2_SHIFT)) & PDB_PODLY_DLY2_MASK) +#define PDB_PODLY_DLY1_MASK (0xFFFF0000U) +#define PDB_PODLY_DLY1_SHIFT (16U) +#define PDB_PODLY_DLY1(x) (((uint32_t)(((uint32_t)(x)) << PDB_PODLY_DLY1_SHIFT)) & PDB_PODLY_DLY1_MASK) + +/* The count of PDB_PODLY */ +#define PDB_PODLY_COUNT (3U) + + +/*! + * @} + */ /* end of group PDB_Register_Masks */ + + +/* PDB - Peripheral instance base addresses */ +/** Peripheral PDB0 base address */ +#define PDB0_BASE (0x40036000u) +/** Peripheral PDB0 base pointer */ +#define PDB0 ((PDB_Type *)PDB0_BASE) +/** Array initializer of PDB peripheral base addresses */ +#define PDB_BASE_ADDRS { PDB0_BASE } +/** Array initializer of PDB peripheral base pointers */ +#define PDB_BASE_PTRS { PDB0 } +/** Interrupt vectors for the PDB peripheral type */ +#define PDB_IRQS { PDB0_IRQn } + +/*! + * @} + */ /* end of group PDB_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- PIT Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PIT_Peripheral_Access_Layer PIT Peripheral Access Layer + * @{ + */ + +/** PIT - Register Layout Typedef */ +typedef struct { + __IO uint32_t MCR; /**< PIT Module Control Register, offset: 0x0 */ + uint8_t RESERVED_0[252]; + struct { /* offset: 0x100, array step: 0x10 */ + __IO uint32_t LDVAL; /**< Timer Load Value Register, array offset: 0x100, array step: 0x10 */ + __I uint32_t CVAL; /**< Current Timer Value Register, array offset: 0x104, array step: 0x10 */ + __IO uint32_t TCTRL; /**< Timer Control Register, array offset: 0x108, array step: 0x10 */ + __IO uint32_t TFLG; /**< Timer Flag Register, array offset: 0x10C, array step: 0x10 */ + } CHANNEL[4]; +} PIT_Type; + +/* ---------------------------------------------------------------------------- + -- PIT Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PIT_Register_Masks PIT Register Masks + * @{ + */ + +/*! @name MCR - PIT Module Control Register */ +#define PIT_MCR_FRZ_MASK (0x1U) +#define PIT_MCR_FRZ_SHIFT (0U) +#define PIT_MCR_FRZ(x) (((uint32_t)(((uint32_t)(x)) << PIT_MCR_FRZ_SHIFT)) & PIT_MCR_FRZ_MASK) +#define PIT_MCR_MDIS_MASK (0x2U) +#define PIT_MCR_MDIS_SHIFT (1U) +#define PIT_MCR_MDIS(x) (((uint32_t)(((uint32_t)(x)) << PIT_MCR_MDIS_SHIFT)) & PIT_MCR_MDIS_MASK) + +/*! @name LDVAL - Timer Load Value Register */ +#define PIT_LDVAL_TSV_MASK (0xFFFFFFFFU) +#define PIT_LDVAL_TSV_SHIFT (0U) +#define PIT_LDVAL_TSV(x) (((uint32_t)(((uint32_t)(x)) << PIT_LDVAL_TSV_SHIFT)) & PIT_LDVAL_TSV_MASK) + +/* The count of PIT_LDVAL */ +#define PIT_LDVAL_COUNT (4U) + +/*! @name CVAL - Current Timer Value Register */ +#define PIT_CVAL_TVL_MASK (0xFFFFFFFFU) +#define PIT_CVAL_TVL_SHIFT (0U) +#define PIT_CVAL_TVL(x) (((uint32_t)(((uint32_t)(x)) << PIT_CVAL_TVL_SHIFT)) & PIT_CVAL_TVL_MASK) + +/* The count of PIT_CVAL */ +#define PIT_CVAL_COUNT (4U) + +/*! @name TCTRL - Timer Control Register */ +#define PIT_TCTRL_TEN_MASK (0x1U) +#define PIT_TCTRL_TEN_SHIFT (0U) +#define PIT_TCTRL_TEN(x) (((uint32_t)(((uint32_t)(x)) << PIT_TCTRL_TEN_SHIFT)) & PIT_TCTRL_TEN_MASK) +#define PIT_TCTRL_TIE_MASK (0x2U) +#define PIT_TCTRL_TIE_SHIFT (1U) +#define PIT_TCTRL_TIE(x) (((uint32_t)(((uint32_t)(x)) << PIT_TCTRL_TIE_SHIFT)) & PIT_TCTRL_TIE_MASK) +#define PIT_TCTRL_CHN_MASK (0x4U) +#define PIT_TCTRL_CHN_SHIFT (2U) +#define PIT_TCTRL_CHN(x) (((uint32_t)(((uint32_t)(x)) << PIT_TCTRL_CHN_SHIFT)) & PIT_TCTRL_CHN_MASK) + +/* The count of PIT_TCTRL */ +#define PIT_TCTRL_COUNT (4U) + +/*! @name TFLG - Timer Flag Register */ +#define PIT_TFLG_TIF_MASK (0x1U) +#define PIT_TFLG_TIF_SHIFT (0U) +#define PIT_TFLG_TIF(x) (((uint32_t)(((uint32_t)(x)) << PIT_TFLG_TIF_SHIFT)) & PIT_TFLG_TIF_MASK) + +/* The count of PIT_TFLG */ +#define PIT_TFLG_COUNT (4U) + + +/*! + * @} + */ /* end of group PIT_Register_Masks */ + + +/* PIT - Peripheral instance base addresses */ +/** Peripheral PIT base address */ +#define PIT_BASE (0x40037000u) +/** Peripheral PIT base pointer */ +#define PIT ((PIT_Type *)PIT_BASE) +/** Array initializer of PIT peripheral base addresses */ +#define PIT_BASE_ADDRS { PIT_BASE } +/** Array initializer of PIT peripheral base pointers */ +#define PIT_BASE_PTRS { PIT } +/** Interrupt vectors for the PIT peripheral type */ +#define PIT_IRQS { PIT0_IRQn, PIT1_IRQn, PIT2_IRQn, PIT3_IRQn } + +/*! + * @} + */ /* end of group PIT_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- PMC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PMC_Peripheral_Access_Layer PMC Peripheral Access Layer + * @{ + */ + +/** PMC - Register Layout Typedef */ +typedef struct { + __IO uint8_t LVDSC1; /**< Low Voltage Detect Status And Control 1 register, offset: 0x0 */ + __IO uint8_t LVDSC2; /**< Low Voltage Detect Status And Control 2 register, offset: 0x1 */ + __IO uint8_t REGSC; /**< Regulator Status And Control register, offset: 0x2 */ +} PMC_Type; + +/* ---------------------------------------------------------------------------- + -- PMC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PMC_Register_Masks PMC Register Masks + * @{ + */ + +/*! @name LVDSC1 - Low Voltage Detect Status And Control 1 register */ +#define PMC_LVDSC1_LVDV_MASK (0x3U) +#define PMC_LVDSC1_LVDV_SHIFT (0U) +#define PMC_LVDSC1_LVDV(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC1_LVDV_SHIFT)) & PMC_LVDSC1_LVDV_MASK) +#define PMC_LVDSC1_LVDRE_MASK (0x10U) +#define PMC_LVDSC1_LVDRE_SHIFT (4U) +#define PMC_LVDSC1_LVDRE(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC1_LVDRE_SHIFT)) & PMC_LVDSC1_LVDRE_MASK) +#define PMC_LVDSC1_LVDIE_MASK (0x20U) +#define PMC_LVDSC1_LVDIE_SHIFT (5U) +#define PMC_LVDSC1_LVDIE(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC1_LVDIE_SHIFT)) & PMC_LVDSC1_LVDIE_MASK) +#define PMC_LVDSC1_LVDACK_MASK (0x40U) +#define PMC_LVDSC1_LVDACK_SHIFT (6U) +#define PMC_LVDSC1_LVDACK(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC1_LVDACK_SHIFT)) & PMC_LVDSC1_LVDACK_MASK) +#define PMC_LVDSC1_LVDF_MASK (0x80U) +#define PMC_LVDSC1_LVDF_SHIFT (7U) +#define PMC_LVDSC1_LVDF(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC1_LVDF_SHIFT)) & PMC_LVDSC1_LVDF_MASK) + +/*! @name LVDSC2 - Low Voltage Detect Status And Control 2 register */ +#define PMC_LVDSC2_LVWV_MASK (0x3U) +#define PMC_LVDSC2_LVWV_SHIFT (0U) +#define PMC_LVDSC2_LVWV(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC2_LVWV_SHIFT)) & PMC_LVDSC2_LVWV_MASK) +#define PMC_LVDSC2_LVWIE_MASK (0x20U) +#define PMC_LVDSC2_LVWIE_SHIFT (5U) +#define PMC_LVDSC2_LVWIE(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC2_LVWIE_SHIFT)) & PMC_LVDSC2_LVWIE_MASK) +#define PMC_LVDSC2_LVWACK_MASK (0x40U) +#define PMC_LVDSC2_LVWACK_SHIFT (6U) +#define PMC_LVDSC2_LVWACK(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC2_LVWACK_SHIFT)) & PMC_LVDSC2_LVWACK_MASK) +#define PMC_LVDSC2_LVWF_MASK (0x80U) +#define PMC_LVDSC2_LVWF_SHIFT (7U) +#define PMC_LVDSC2_LVWF(x) (((uint8_t)(((uint8_t)(x)) << PMC_LVDSC2_LVWF_SHIFT)) & PMC_LVDSC2_LVWF_MASK) + +/*! @name REGSC - Regulator Status And Control register */ +#define PMC_REGSC_BGBE_MASK (0x1U) +#define PMC_REGSC_BGBE_SHIFT (0U) +#define PMC_REGSC_BGBE(x) (((uint8_t)(((uint8_t)(x)) << PMC_REGSC_BGBE_SHIFT)) & PMC_REGSC_BGBE_MASK) +#define PMC_REGSC_REGONS_MASK (0x4U) +#define PMC_REGSC_REGONS_SHIFT (2U) +#define PMC_REGSC_REGONS(x) (((uint8_t)(((uint8_t)(x)) << PMC_REGSC_REGONS_SHIFT)) & PMC_REGSC_REGONS_MASK) +#define PMC_REGSC_ACKISO_MASK (0x8U) +#define PMC_REGSC_ACKISO_SHIFT (3U) +#define PMC_REGSC_ACKISO(x) (((uint8_t)(((uint8_t)(x)) << PMC_REGSC_ACKISO_SHIFT)) & PMC_REGSC_ACKISO_MASK) +#define PMC_REGSC_BGEN_MASK (0x10U) +#define PMC_REGSC_BGEN_SHIFT (4U) +#define PMC_REGSC_BGEN(x) (((uint8_t)(((uint8_t)(x)) << PMC_REGSC_BGEN_SHIFT)) & PMC_REGSC_BGEN_MASK) + + +/*! + * @} + */ /* end of group PMC_Register_Masks */ + + +/* PMC - Peripheral instance base addresses */ +/** Peripheral PMC base address */ +#define PMC_BASE (0x4007D000u) +/** Peripheral PMC base pointer */ +#define PMC ((PMC_Type *)PMC_BASE) +/** Array initializer of PMC peripheral base addresses */ +#define PMC_BASE_ADDRS { PMC_BASE } +/** Array initializer of PMC peripheral base pointers */ +#define PMC_BASE_PTRS { PMC } +/** Interrupt vectors for the PMC peripheral type */ +#define PMC_IRQS { LVD_LVW_IRQn } + +/*! + * @} + */ /* end of group PMC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- PORT Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PORT_Peripheral_Access_Layer PORT Peripheral Access Layer + * @{ + */ + +/** PORT - Register Layout Typedef */ +typedef struct { + __IO uint32_t PCR[32]; /**< Pin Control Register n, array offset: 0x0, array step: 0x4 */ + __O uint32_t GPCLR; /**< Global Pin Control Low Register, offset: 0x80 */ + __O uint32_t GPCHR; /**< Global Pin Control High Register, offset: 0x84 */ + uint8_t RESERVED_0[24]; + __IO uint32_t ISFR; /**< Interrupt Status Flag Register, offset: 0xA0 */ + uint8_t RESERVED_1[28]; + __IO uint32_t DFER; /**< Digital Filter Enable Register, offset: 0xC0 */ + __IO uint32_t DFCR; /**< Digital Filter Clock Register, offset: 0xC4 */ + __IO uint32_t DFWR; /**< Digital Filter Width Register, offset: 0xC8 */ +} PORT_Type; + +/* ---------------------------------------------------------------------------- + -- PORT Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup PORT_Register_Masks PORT Register Masks + * @{ + */ + +/*! @name PCR - Pin Control Register n */ +#define PORT_PCR_PS_MASK (0x1U) +#define PORT_PCR_PS_SHIFT (0U) +#define PORT_PCR_PS(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PS_SHIFT)) & PORT_PCR_PS_MASK) +#define PORT_PCR_PE_MASK (0x2U) +#define PORT_PCR_PE_SHIFT (1U) +#define PORT_PCR_PE(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PE_SHIFT)) & PORT_PCR_PE_MASK) +#define PORT_PCR_SRE_MASK (0x4U) +#define PORT_PCR_SRE_SHIFT (2U) +#define PORT_PCR_SRE(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_SRE_SHIFT)) & PORT_PCR_SRE_MASK) +#define PORT_PCR_PFE_MASK (0x10U) +#define PORT_PCR_PFE_SHIFT (4U) +#define PORT_PCR_PFE(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PFE_SHIFT)) & PORT_PCR_PFE_MASK) +#define PORT_PCR_ODE_MASK (0x20U) +#define PORT_PCR_ODE_SHIFT (5U) +#define PORT_PCR_ODE(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_ODE_SHIFT)) & PORT_PCR_ODE_MASK) +#define PORT_PCR_DSE_MASK (0x40U) +#define PORT_PCR_DSE_SHIFT (6U) +#define PORT_PCR_DSE(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_DSE_SHIFT)) & PORT_PCR_DSE_MASK) +#define PORT_PCR_MUX_MASK (0x700U) +#define PORT_PCR_MUX_SHIFT (8U) +#define PORT_PCR_MUX(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_MUX_SHIFT)) & PORT_PCR_MUX_MASK) +#define PORT_PCR_LK_MASK (0x8000U) +#define PORT_PCR_LK_SHIFT (15U) +#define PORT_PCR_LK(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_LK_SHIFT)) & PORT_PCR_LK_MASK) +#define PORT_PCR_IRQC_MASK (0xF0000U) +#define PORT_PCR_IRQC_SHIFT (16U) +#define PORT_PCR_IRQC(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_IRQC_SHIFT)) & PORT_PCR_IRQC_MASK) +#define PORT_PCR_ISF_MASK (0x1000000U) +#define PORT_PCR_ISF_SHIFT (24U) +#define PORT_PCR_ISF(x) (((uint32_t)(((uint32_t)(x)) << PORT_PCR_ISF_SHIFT)) & PORT_PCR_ISF_MASK) + +/* The count of PORT_PCR */ +#define PORT_PCR_COUNT (32U) + +/*! @name GPCLR - Global Pin Control Low Register */ +#define PORT_GPCLR_GPWD_MASK (0xFFFFU) +#define PORT_GPCLR_GPWD_SHIFT (0U) +#define PORT_GPCLR_GPWD(x) (((uint32_t)(((uint32_t)(x)) << PORT_GPCLR_GPWD_SHIFT)) & PORT_GPCLR_GPWD_MASK) +#define PORT_GPCLR_GPWE_MASK (0xFFFF0000U) +#define PORT_GPCLR_GPWE_SHIFT (16U) +#define PORT_GPCLR_GPWE(x) (((uint32_t)(((uint32_t)(x)) << PORT_GPCLR_GPWE_SHIFT)) & PORT_GPCLR_GPWE_MASK) + +/*! @name GPCHR - Global Pin Control High Register */ +#define PORT_GPCHR_GPWD_MASK (0xFFFFU) +#define PORT_GPCHR_GPWD_SHIFT (0U) +#define PORT_GPCHR_GPWD(x) (((uint32_t)(((uint32_t)(x)) << PORT_GPCHR_GPWD_SHIFT)) & PORT_GPCHR_GPWD_MASK) +#define PORT_GPCHR_GPWE_MASK (0xFFFF0000U) +#define PORT_GPCHR_GPWE_SHIFT (16U) +#define PORT_GPCHR_GPWE(x) (((uint32_t)(((uint32_t)(x)) << PORT_GPCHR_GPWE_SHIFT)) & PORT_GPCHR_GPWE_MASK) + +/*! @name ISFR - Interrupt Status Flag Register */ +#define PORT_ISFR_ISF_MASK (0xFFFFFFFFU) +#define PORT_ISFR_ISF_SHIFT (0U) +#define PORT_ISFR_ISF(x) (((uint32_t)(((uint32_t)(x)) << PORT_ISFR_ISF_SHIFT)) & PORT_ISFR_ISF_MASK) + +/*! @name DFER - Digital Filter Enable Register */ +#define PORT_DFER_DFE_MASK (0xFFFFFFFFU) +#define PORT_DFER_DFE_SHIFT (0U) +#define PORT_DFER_DFE(x) (((uint32_t)(((uint32_t)(x)) << PORT_DFER_DFE_SHIFT)) & PORT_DFER_DFE_MASK) + +/*! @name DFCR - Digital Filter Clock Register */ +#define PORT_DFCR_CS_MASK (0x1U) +#define PORT_DFCR_CS_SHIFT (0U) +#define PORT_DFCR_CS(x) (((uint32_t)(((uint32_t)(x)) << PORT_DFCR_CS_SHIFT)) & PORT_DFCR_CS_MASK) + +/*! @name DFWR - Digital Filter Width Register */ +#define PORT_DFWR_FILT_MASK (0x1FU) +#define PORT_DFWR_FILT_SHIFT (0U) +#define PORT_DFWR_FILT(x) (((uint32_t)(((uint32_t)(x)) << PORT_DFWR_FILT_SHIFT)) & PORT_DFWR_FILT_MASK) + + +/*! + * @} + */ /* end of group PORT_Register_Masks */ + + +/* PORT - Peripheral instance base addresses */ +/** Peripheral PORTA base address */ +#define PORTA_BASE (0x40049000u) +/** Peripheral PORTA base pointer */ +#define PORTA ((PORT_Type *)PORTA_BASE) +/** Peripheral PORTB base address */ +#define PORTB_BASE (0x4004A000u) +/** Peripheral PORTB base pointer */ +#define PORTB ((PORT_Type *)PORTB_BASE) +/** Peripheral PORTC base address */ +#define PORTC_BASE (0x4004B000u) +/** Peripheral PORTC base pointer */ +#define PORTC ((PORT_Type *)PORTC_BASE) +/** Peripheral PORTD base address */ +#define PORTD_BASE (0x4004C000u) +/** Peripheral PORTD base pointer */ +#define PORTD ((PORT_Type *)PORTD_BASE) +/** Peripheral PORTE base address */ +#define PORTE_BASE (0x4004D000u) +/** Peripheral PORTE base pointer */ +#define PORTE ((PORT_Type *)PORTE_BASE) +/** Array initializer of PORT peripheral base addresses */ +#define PORT_BASE_ADDRS { PORTA_BASE, PORTB_BASE, PORTC_BASE, PORTD_BASE, PORTE_BASE } +/** Array initializer of PORT peripheral base pointers */ +#define PORT_BASE_PTRS { PORTA, PORTB, PORTC, PORTD, PORTE } +/** Interrupt vectors for the PORT peripheral type */ +#define PORT_IRQS { PORTA_IRQn, PORTB_IRQn, PORTC_IRQn, PORTD_IRQn, PORTE_IRQn } + +/*! + * @} + */ /* end of group PORT_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- RCM Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RCM_Peripheral_Access_Layer RCM Peripheral Access Layer + * @{ + */ + +/** RCM - Register Layout Typedef */ +typedef struct { + __I uint8_t SRS0; /**< System Reset Status Register 0, offset: 0x0 */ + __I uint8_t SRS1; /**< System Reset Status Register 1, offset: 0x1 */ + uint8_t RESERVED_0[2]; + __IO uint8_t RPFC; /**< Reset Pin Filter Control register, offset: 0x4 */ + __IO uint8_t RPFW; /**< Reset Pin Filter Width register, offset: 0x5 */ + uint8_t RESERVED_1[1]; + __I uint8_t MR; /**< Mode Register, offset: 0x7 */ +} RCM_Type; + +/* ---------------------------------------------------------------------------- + -- RCM Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RCM_Register_Masks RCM Register Masks + * @{ + */ + +/*! @name SRS0 - System Reset Status Register 0 */ +#define RCM_SRS0_WAKEUP_MASK (0x1U) +#define RCM_SRS0_WAKEUP_SHIFT (0U) +#define RCM_SRS0_WAKEUP(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_WAKEUP_SHIFT)) & RCM_SRS0_WAKEUP_MASK) +#define RCM_SRS0_LVD_MASK (0x2U) +#define RCM_SRS0_LVD_SHIFT (1U) +#define RCM_SRS0_LVD(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_LVD_SHIFT)) & RCM_SRS0_LVD_MASK) +#define RCM_SRS0_LOC_MASK (0x4U) +#define RCM_SRS0_LOC_SHIFT (2U) +#define RCM_SRS0_LOC(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_LOC_SHIFT)) & RCM_SRS0_LOC_MASK) +#define RCM_SRS0_LOL_MASK (0x8U) +#define RCM_SRS0_LOL_SHIFT (3U) +#define RCM_SRS0_LOL(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_LOL_SHIFT)) & RCM_SRS0_LOL_MASK) +#define RCM_SRS0_WDOG_MASK (0x20U) +#define RCM_SRS0_WDOG_SHIFT (5U) +#define RCM_SRS0_WDOG(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_WDOG_SHIFT)) & RCM_SRS0_WDOG_MASK) +#define RCM_SRS0_PIN_MASK (0x40U) +#define RCM_SRS0_PIN_SHIFT (6U) +#define RCM_SRS0_PIN(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_PIN_SHIFT)) & RCM_SRS0_PIN_MASK) +#define RCM_SRS0_POR_MASK (0x80U) +#define RCM_SRS0_POR_SHIFT (7U) +#define RCM_SRS0_POR(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS0_POR_SHIFT)) & RCM_SRS0_POR_MASK) + +/*! @name SRS1 - System Reset Status Register 1 */ +#define RCM_SRS1_JTAG_MASK (0x1U) +#define RCM_SRS1_JTAG_SHIFT (0U) +#define RCM_SRS1_JTAG(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS1_JTAG_SHIFT)) & RCM_SRS1_JTAG_MASK) +#define RCM_SRS1_LOCKUP_MASK (0x2U) +#define RCM_SRS1_LOCKUP_SHIFT (1U) +#define RCM_SRS1_LOCKUP(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS1_LOCKUP_SHIFT)) & RCM_SRS1_LOCKUP_MASK) +#define RCM_SRS1_SW_MASK (0x4U) +#define RCM_SRS1_SW_SHIFT (2U) +#define RCM_SRS1_SW(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS1_SW_SHIFT)) & RCM_SRS1_SW_MASK) +#define RCM_SRS1_MDM_AP_MASK (0x8U) +#define RCM_SRS1_MDM_AP_SHIFT (3U) +#define RCM_SRS1_MDM_AP(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS1_MDM_AP_SHIFT)) & RCM_SRS1_MDM_AP_MASK) +#define RCM_SRS1_EZPT_MASK (0x10U) +#define RCM_SRS1_EZPT_SHIFT (4U) +#define RCM_SRS1_EZPT(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS1_EZPT_SHIFT)) & RCM_SRS1_EZPT_MASK) +#define RCM_SRS1_SACKERR_MASK (0x20U) +#define RCM_SRS1_SACKERR_SHIFT (5U) +#define RCM_SRS1_SACKERR(x) (((uint8_t)(((uint8_t)(x)) << RCM_SRS1_SACKERR_SHIFT)) & RCM_SRS1_SACKERR_MASK) + +/*! @name RPFC - Reset Pin Filter Control register */ +#define RCM_RPFC_RSTFLTSRW_MASK (0x3U) +#define RCM_RPFC_RSTFLTSRW_SHIFT (0U) +#define RCM_RPFC_RSTFLTSRW(x) (((uint8_t)(((uint8_t)(x)) << RCM_RPFC_RSTFLTSRW_SHIFT)) & RCM_RPFC_RSTFLTSRW_MASK) +#define RCM_RPFC_RSTFLTSS_MASK (0x4U) +#define RCM_RPFC_RSTFLTSS_SHIFT (2U) +#define RCM_RPFC_RSTFLTSS(x) (((uint8_t)(((uint8_t)(x)) << RCM_RPFC_RSTFLTSS_SHIFT)) & RCM_RPFC_RSTFLTSS_MASK) + +/*! @name RPFW - Reset Pin Filter Width register */ +#define RCM_RPFW_RSTFLTSEL_MASK (0x1FU) +#define RCM_RPFW_RSTFLTSEL_SHIFT (0U) +#define RCM_RPFW_RSTFLTSEL(x) (((uint8_t)(((uint8_t)(x)) << RCM_RPFW_RSTFLTSEL_SHIFT)) & RCM_RPFW_RSTFLTSEL_MASK) + +/*! @name MR - Mode Register */ +#define RCM_MR_EZP_MS_MASK (0x2U) +#define RCM_MR_EZP_MS_SHIFT (1U) +#define RCM_MR_EZP_MS(x) (((uint8_t)(((uint8_t)(x)) << RCM_MR_EZP_MS_SHIFT)) & RCM_MR_EZP_MS_MASK) + + +/*! + * @} + */ /* end of group RCM_Register_Masks */ + + +/* RCM - Peripheral instance base addresses */ +/** Peripheral RCM base address */ +#define RCM_BASE (0x4007F000u) +/** Peripheral RCM base pointer */ +#define RCM ((RCM_Type *)RCM_BASE) +/** Array initializer of RCM peripheral base addresses */ +#define RCM_BASE_ADDRS { RCM_BASE } +/** Array initializer of RCM peripheral base pointers */ +#define RCM_BASE_PTRS { RCM } + +/*! + * @} + */ /* end of group RCM_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- RFSYS Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RFSYS_Peripheral_Access_Layer RFSYS Peripheral Access Layer + * @{ + */ + +/** RFSYS - Register Layout Typedef */ +typedef struct { + __IO uint32_t REG[8]; /**< Register file register, array offset: 0x0, array step: 0x4 */ +} RFSYS_Type; + +/* ---------------------------------------------------------------------------- + -- RFSYS Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RFSYS_Register_Masks RFSYS Register Masks + * @{ + */ + +/*! @name REG - Register file register */ +#define RFSYS_REG_LL_MASK (0xFFU) +#define RFSYS_REG_LL_SHIFT (0U) +#define RFSYS_REG_LL(x) (((uint32_t)(((uint32_t)(x)) << RFSYS_REG_LL_SHIFT)) & RFSYS_REG_LL_MASK) +#define RFSYS_REG_LH_MASK (0xFF00U) +#define RFSYS_REG_LH_SHIFT (8U) +#define RFSYS_REG_LH(x) (((uint32_t)(((uint32_t)(x)) << RFSYS_REG_LH_SHIFT)) & RFSYS_REG_LH_MASK) +#define RFSYS_REG_HL_MASK (0xFF0000U) +#define RFSYS_REG_HL_SHIFT (16U) +#define RFSYS_REG_HL(x) (((uint32_t)(((uint32_t)(x)) << RFSYS_REG_HL_SHIFT)) & RFSYS_REG_HL_MASK) +#define RFSYS_REG_HH_MASK (0xFF000000U) +#define RFSYS_REG_HH_SHIFT (24U) +#define RFSYS_REG_HH(x) (((uint32_t)(((uint32_t)(x)) << RFSYS_REG_HH_SHIFT)) & RFSYS_REG_HH_MASK) + +/* The count of RFSYS_REG */ +#define RFSYS_REG_COUNT (8U) + + +/*! + * @} + */ /* end of group RFSYS_Register_Masks */ + + +/* RFSYS - Peripheral instance base addresses */ +/** Peripheral RFSYS base address */ +#define RFSYS_BASE (0x40041000u) +/** Peripheral RFSYS base pointer */ +#define RFSYS ((RFSYS_Type *)RFSYS_BASE) +/** Array initializer of RFSYS peripheral base addresses */ +#define RFSYS_BASE_ADDRS { RFSYS_BASE } +/** Array initializer of RFSYS peripheral base pointers */ +#define RFSYS_BASE_PTRS { RFSYS } + +/*! + * @} + */ /* end of group RFSYS_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- RFVBAT Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RFVBAT_Peripheral_Access_Layer RFVBAT Peripheral Access Layer + * @{ + */ + +/** RFVBAT - Register Layout Typedef */ +typedef struct { + __IO uint32_t REG[8]; /**< VBAT register file register, array offset: 0x0, array step: 0x4 */ +} RFVBAT_Type; + +/* ---------------------------------------------------------------------------- + -- RFVBAT Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RFVBAT_Register_Masks RFVBAT Register Masks + * @{ + */ + +/*! @name REG - VBAT register file register */ +#define RFVBAT_REG_LL_MASK (0xFFU) +#define RFVBAT_REG_LL_SHIFT (0U) +#define RFVBAT_REG_LL(x) (((uint32_t)(((uint32_t)(x)) << RFVBAT_REG_LL_SHIFT)) & RFVBAT_REG_LL_MASK) +#define RFVBAT_REG_LH_MASK (0xFF00U) +#define RFVBAT_REG_LH_SHIFT (8U) +#define RFVBAT_REG_LH(x) (((uint32_t)(((uint32_t)(x)) << RFVBAT_REG_LH_SHIFT)) & RFVBAT_REG_LH_MASK) +#define RFVBAT_REG_HL_MASK (0xFF0000U) +#define RFVBAT_REG_HL_SHIFT (16U) +#define RFVBAT_REG_HL(x) (((uint32_t)(((uint32_t)(x)) << RFVBAT_REG_HL_SHIFT)) & RFVBAT_REG_HL_MASK) +#define RFVBAT_REG_HH_MASK (0xFF000000U) +#define RFVBAT_REG_HH_SHIFT (24U) +#define RFVBAT_REG_HH(x) (((uint32_t)(((uint32_t)(x)) << RFVBAT_REG_HH_SHIFT)) & RFVBAT_REG_HH_MASK) + +/* The count of RFVBAT_REG */ +#define RFVBAT_REG_COUNT (8U) + + +/*! + * @} + */ /* end of group RFVBAT_Register_Masks */ + + +/* RFVBAT - Peripheral instance base addresses */ +/** Peripheral RFVBAT base address */ +#define RFVBAT_BASE (0x4003E000u) +/** Peripheral RFVBAT base pointer */ +#define RFVBAT ((RFVBAT_Type *)RFVBAT_BASE) +/** Array initializer of RFVBAT peripheral base addresses */ +#define RFVBAT_BASE_ADDRS { RFVBAT_BASE } +/** Array initializer of RFVBAT peripheral base pointers */ +#define RFVBAT_BASE_PTRS { RFVBAT } + +/*! + * @} + */ /* end of group RFVBAT_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- RNG Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RNG_Peripheral_Access_Layer RNG Peripheral Access Layer + * @{ + */ + +/** RNG - Register Layout Typedef */ +typedef struct { + __IO uint32_t CR; /**< RNGA Control Register, offset: 0x0 */ + __I uint32_t SR; /**< RNGA Status Register, offset: 0x4 */ + __O uint32_t ER; /**< RNGA Entropy Register, offset: 0x8 */ + __I uint32_t OR; /**< RNGA Output Register, offset: 0xC */ +} RNG_Type; + +/* ---------------------------------------------------------------------------- + -- RNG Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RNG_Register_Masks RNG Register Masks + * @{ + */ + +/*! @name CR - RNGA Control Register */ +#define RNG_CR_GO_MASK (0x1U) +#define RNG_CR_GO_SHIFT (0U) +#define RNG_CR_GO(x) (((uint32_t)(((uint32_t)(x)) << RNG_CR_GO_SHIFT)) & RNG_CR_GO_MASK) +#define RNG_CR_HA_MASK (0x2U) +#define RNG_CR_HA_SHIFT (1U) +#define RNG_CR_HA(x) (((uint32_t)(((uint32_t)(x)) << RNG_CR_HA_SHIFT)) & RNG_CR_HA_MASK) +#define RNG_CR_INTM_MASK (0x4U) +#define RNG_CR_INTM_SHIFT (2U) +#define RNG_CR_INTM(x) (((uint32_t)(((uint32_t)(x)) << RNG_CR_INTM_SHIFT)) & RNG_CR_INTM_MASK) +#define RNG_CR_CLRI_MASK (0x8U) +#define RNG_CR_CLRI_SHIFT (3U) +#define RNG_CR_CLRI(x) (((uint32_t)(((uint32_t)(x)) << RNG_CR_CLRI_SHIFT)) & RNG_CR_CLRI_MASK) +#define RNG_CR_SLP_MASK (0x10U) +#define RNG_CR_SLP_SHIFT (4U) +#define RNG_CR_SLP(x) (((uint32_t)(((uint32_t)(x)) << RNG_CR_SLP_SHIFT)) & RNG_CR_SLP_MASK) + +/*! @name SR - RNGA Status Register */ +#define RNG_SR_SECV_MASK (0x1U) +#define RNG_SR_SECV_SHIFT (0U) +#define RNG_SR_SECV(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_SECV_SHIFT)) & RNG_SR_SECV_MASK) +#define RNG_SR_LRS_MASK (0x2U) +#define RNG_SR_LRS_SHIFT (1U) +#define RNG_SR_LRS(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_LRS_SHIFT)) & RNG_SR_LRS_MASK) +#define RNG_SR_ORU_MASK (0x4U) +#define RNG_SR_ORU_SHIFT (2U) +#define RNG_SR_ORU(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_ORU_SHIFT)) & RNG_SR_ORU_MASK) +#define RNG_SR_ERRI_MASK (0x8U) +#define RNG_SR_ERRI_SHIFT (3U) +#define RNG_SR_ERRI(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_ERRI_SHIFT)) & RNG_SR_ERRI_MASK) +#define RNG_SR_SLP_MASK (0x10U) +#define RNG_SR_SLP_SHIFT (4U) +#define RNG_SR_SLP(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_SLP_SHIFT)) & RNG_SR_SLP_MASK) +#define RNG_SR_OREG_LVL_MASK (0xFF00U) +#define RNG_SR_OREG_LVL_SHIFT (8U) +#define RNG_SR_OREG_LVL(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_OREG_LVL_SHIFT)) & RNG_SR_OREG_LVL_MASK) +#define RNG_SR_OREG_SIZE_MASK (0xFF0000U) +#define RNG_SR_OREG_SIZE_SHIFT (16U) +#define RNG_SR_OREG_SIZE(x) (((uint32_t)(((uint32_t)(x)) << RNG_SR_OREG_SIZE_SHIFT)) & RNG_SR_OREG_SIZE_MASK) + +/*! @name ER - RNGA Entropy Register */ +#define RNG_ER_EXT_ENT_MASK (0xFFFFFFFFU) +#define RNG_ER_EXT_ENT_SHIFT (0U) +#define RNG_ER_EXT_ENT(x) (((uint32_t)(((uint32_t)(x)) << RNG_ER_EXT_ENT_SHIFT)) & RNG_ER_EXT_ENT_MASK) + +/*! @name OR - RNGA Output Register */ +#define RNG_OR_RANDOUT_MASK (0xFFFFFFFFU) +#define RNG_OR_RANDOUT_SHIFT (0U) +#define RNG_OR_RANDOUT(x) (((uint32_t)(((uint32_t)(x)) << RNG_OR_RANDOUT_SHIFT)) & RNG_OR_RANDOUT_MASK) + + +/*! + * @} + */ /* end of group RNG_Register_Masks */ + + +/* RNG - Peripheral instance base addresses */ +/** Peripheral RNG base address */ +#define RNG_BASE (0x40029000u) +/** Peripheral RNG base pointer */ +#define RNG ((RNG_Type *)RNG_BASE) +/** Array initializer of RNG peripheral base addresses */ +#define RNG_BASE_ADDRS { RNG_BASE } +/** Array initializer of RNG peripheral base pointers */ +#define RNG_BASE_PTRS { RNG } +/** Interrupt vectors for the RNG peripheral type */ +#define RNG_IRQS { RNG_IRQn } + +/*! + * @} + */ /* end of group RNG_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- RTC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RTC_Peripheral_Access_Layer RTC Peripheral Access Layer + * @{ + */ + +/** RTC - Register Layout Typedef */ +typedef struct { + __IO uint32_t TSR; /**< RTC Time Seconds Register, offset: 0x0 */ + __IO uint32_t TPR; /**< RTC Time Prescaler Register, offset: 0x4 */ + __IO uint32_t TAR; /**< RTC Time Alarm Register, offset: 0x8 */ + __IO uint32_t TCR; /**< RTC Time Compensation Register, offset: 0xC */ + __IO uint32_t CR; /**< RTC Control Register, offset: 0x10 */ + __IO uint32_t SR; /**< RTC Status Register, offset: 0x14 */ + __IO uint32_t LR; /**< RTC Lock Register, offset: 0x18 */ + __IO uint32_t IER; /**< RTC Interrupt Enable Register, offset: 0x1C */ + uint8_t RESERVED_0[2016]; + __IO uint32_t WAR; /**< RTC Write Access Register, offset: 0x800 */ + __IO uint32_t RAR; /**< RTC Read Access Register, offset: 0x804 */ +} RTC_Type; + +/* ---------------------------------------------------------------------------- + -- RTC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup RTC_Register_Masks RTC Register Masks + * @{ + */ + +/*! @name TSR - RTC Time Seconds Register */ +#define RTC_TSR_TSR_MASK (0xFFFFFFFFU) +#define RTC_TSR_TSR_SHIFT (0U) +#define RTC_TSR_TSR(x) (((uint32_t)(((uint32_t)(x)) << RTC_TSR_TSR_SHIFT)) & RTC_TSR_TSR_MASK) + +/*! @name TPR - RTC Time Prescaler Register */ +#define RTC_TPR_TPR_MASK (0xFFFFU) +#define RTC_TPR_TPR_SHIFT (0U) +#define RTC_TPR_TPR(x) (((uint32_t)(((uint32_t)(x)) << RTC_TPR_TPR_SHIFT)) & RTC_TPR_TPR_MASK) + +/*! @name TAR - RTC Time Alarm Register */ +#define RTC_TAR_TAR_MASK (0xFFFFFFFFU) +#define RTC_TAR_TAR_SHIFT (0U) +#define RTC_TAR_TAR(x) (((uint32_t)(((uint32_t)(x)) << RTC_TAR_TAR_SHIFT)) & RTC_TAR_TAR_MASK) + +/*! @name TCR - RTC Time Compensation Register */ +#define RTC_TCR_TCR_MASK (0xFFU) +#define RTC_TCR_TCR_SHIFT (0U) +#define RTC_TCR_TCR(x) (((uint32_t)(((uint32_t)(x)) << RTC_TCR_TCR_SHIFT)) & RTC_TCR_TCR_MASK) +#define RTC_TCR_CIR_MASK (0xFF00U) +#define RTC_TCR_CIR_SHIFT (8U) +#define RTC_TCR_CIR(x) (((uint32_t)(((uint32_t)(x)) << RTC_TCR_CIR_SHIFT)) & RTC_TCR_CIR_MASK) +#define RTC_TCR_TCV_MASK (0xFF0000U) +#define RTC_TCR_TCV_SHIFT (16U) +#define RTC_TCR_TCV(x) (((uint32_t)(((uint32_t)(x)) << RTC_TCR_TCV_SHIFT)) & RTC_TCR_TCV_MASK) +#define RTC_TCR_CIC_MASK (0xFF000000U) +#define RTC_TCR_CIC_SHIFT (24U) +#define RTC_TCR_CIC(x) (((uint32_t)(((uint32_t)(x)) << RTC_TCR_CIC_SHIFT)) & RTC_TCR_CIC_MASK) + +/*! @name CR - RTC Control Register */ +#define RTC_CR_SWR_MASK (0x1U) +#define RTC_CR_SWR_SHIFT (0U) +#define RTC_CR_SWR(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_SWR_SHIFT)) & RTC_CR_SWR_MASK) +#define RTC_CR_WPE_MASK (0x2U) +#define RTC_CR_WPE_SHIFT (1U) +#define RTC_CR_WPE(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_WPE_SHIFT)) & RTC_CR_WPE_MASK) +#define RTC_CR_SUP_MASK (0x4U) +#define RTC_CR_SUP_SHIFT (2U) +#define RTC_CR_SUP(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_SUP_SHIFT)) & RTC_CR_SUP_MASK) +#define RTC_CR_UM_MASK (0x8U) +#define RTC_CR_UM_SHIFT (3U) +#define RTC_CR_UM(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_UM_SHIFT)) & RTC_CR_UM_MASK) +#define RTC_CR_WPS_MASK (0x10U) +#define RTC_CR_WPS_SHIFT (4U) +#define RTC_CR_WPS(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_WPS_SHIFT)) & RTC_CR_WPS_MASK) +#define RTC_CR_OSCE_MASK (0x100U) +#define RTC_CR_OSCE_SHIFT (8U) +#define RTC_CR_OSCE(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_OSCE_SHIFT)) & RTC_CR_OSCE_MASK) +#define RTC_CR_CLKO_MASK (0x200U) +#define RTC_CR_CLKO_SHIFT (9U) +#define RTC_CR_CLKO(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_CLKO_SHIFT)) & RTC_CR_CLKO_MASK) +#define RTC_CR_SC16P_MASK (0x400U) +#define RTC_CR_SC16P_SHIFT (10U) +#define RTC_CR_SC16P(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC16P_SHIFT)) & RTC_CR_SC16P_MASK) +#define RTC_CR_SC8P_MASK (0x800U) +#define RTC_CR_SC8P_SHIFT (11U) +#define RTC_CR_SC8P(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC8P_SHIFT)) & RTC_CR_SC8P_MASK) +#define RTC_CR_SC4P_MASK (0x1000U) +#define RTC_CR_SC4P_SHIFT (12U) +#define RTC_CR_SC4P(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC4P_SHIFT)) & RTC_CR_SC4P_MASK) +#define RTC_CR_SC2P_MASK (0x2000U) +#define RTC_CR_SC2P_SHIFT (13U) +#define RTC_CR_SC2P(x) (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC2P_SHIFT)) & RTC_CR_SC2P_MASK) + +/*! @name SR - RTC Status Register */ +#define RTC_SR_TIF_MASK (0x1U) +#define RTC_SR_TIF_SHIFT (0U) +#define RTC_SR_TIF(x) (((uint32_t)(((uint32_t)(x)) << RTC_SR_TIF_SHIFT)) & RTC_SR_TIF_MASK) +#define RTC_SR_TOF_MASK (0x2U) +#define RTC_SR_TOF_SHIFT (1U) +#define RTC_SR_TOF(x) (((uint32_t)(((uint32_t)(x)) << RTC_SR_TOF_SHIFT)) & RTC_SR_TOF_MASK) +#define RTC_SR_TAF_MASK (0x4U) +#define RTC_SR_TAF_SHIFT (2U) +#define RTC_SR_TAF(x) (((uint32_t)(((uint32_t)(x)) << RTC_SR_TAF_SHIFT)) & RTC_SR_TAF_MASK) +#define RTC_SR_TCE_MASK (0x10U) +#define RTC_SR_TCE_SHIFT (4U) +#define RTC_SR_TCE(x) (((uint32_t)(((uint32_t)(x)) << RTC_SR_TCE_SHIFT)) & RTC_SR_TCE_MASK) + +/*! @name LR - RTC Lock Register */ +#define RTC_LR_TCL_MASK (0x8U) +#define RTC_LR_TCL_SHIFT (3U) +#define RTC_LR_TCL(x) (((uint32_t)(((uint32_t)(x)) << RTC_LR_TCL_SHIFT)) & RTC_LR_TCL_MASK) +#define RTC_LR_CRL_MASK (0x10U) +#define RTC_LR_CRL_SHIFT (4U) +#define RTC_LR_CRL(x) (((uint32_t)(((uint32_t)(x)) << RTC_LR_CRL_SHIFT)) & RTC_LR_CRL_MASK) +#define RTC_LR_SRL_MASK (0x20U) +#define RTC_LR_SRL_SHIFT (5U) +#define RTC_LR_SRL(x) (((uint32_t)(((uint32_t)(x)) << RTC_LR_SRL_SHIFT)) & RTC_LR_SRL_MASK) +#define RTC_LR_LRL_MASK (0x40U) +#define RTC_LR_LRL_SHIFT (6U) +#define RTC_LR_LRL(x) (((uint32_t)(((uint32_t)(x)) << RTC_LR_LRL_SHIFT)) & RTC_LR_LRL_MASK) + +/*! @name IER - RTC Interrupt Enable Register */ +#define RTC_IER_TIIE_MASK (0x1U) +#define RTC_IER_TIIE_SHIFT (0U) +#define RTC_IER_TIIE(x) (((uint32_t)(((uint32_t)(x)) << RTC_IER_TIIE_SHIFT)) & RTC_IER_TIIE_MASK) +#define RTC_IER_TOIE_MASK (0x2U) +#define RTC_IER_TOIE_SHIFT (1U) +#define RTC_IER_TOIE(x) (((uint32_t)(((uint32_t)(x)) << RTC_IER_TOIE_SHIFT)) & RTC_IER_TOIE_MASK) +#define RTC_IER_TAIE_MASK (0x4U) +#define RTC_IER_TAIE_SHIFT (2U) +#define RTC_IER_TAIE(x) (((uint32_t)(((uint32_t)(x)) << RTC_IER_TAIE_SHIFT)) & RTC_IER_TAIE_MASK) +#define RTC_IER_TSIE_MASK (0x10U) +#define RTC_IER_TSIE_SHIFT (4U) +#define RTC_IER_TSIE(x) (((uint32_t)(((uint32_t)(x)) << RTC_IER_TSIE_SHIFT)) & RTC_IER_TSIE_MASK) +#define RTC_IER_WPON_MASK (0x80U) +#define RTC_IER_WPON_SHIFT (7U) +#define RTC_IER_WPON(x) (((uint32_t)(((uint32_t)(x)) << RTC_IER_WPON_SHIFT)) & RTC_IER_WPON_MASK) + +/*! @name WAR - RTC Write Access Register */ +#define RTC_WAR_TSRW_MASK (0x1U) +#define RTC_WAR_TSRW_SHIFT (0U) +#define RTC_WAR_TSRW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TSRW_SHIFT)) & RTC_WAR_TSRW_MASK) +#define RTC_WAR_TPRW_MASK (0x2U) +#define RTC_WAR_TPRW_SHIFT (1U) +#define RTC_WAR_TPRW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TPRW_SHIFT)) & RTC_WAR_TPRW_MASK) +#define RTC_WAR_TARW_MASK (0x4U) +#define RTC_WAR_TARW_SHIFT (2U) +#define RTC_WAR_TARW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TARW_SHIFT)) & RTC_WAR_TARW_MASK) +#define RTC_WAR_TCRW_MASK (0x8U) +#define RTC_WAR_TCRW_SHIFT (3U) +#define RTC_WAR_TCRW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TCRW_SHIFT)) & RTC_WAR_TCRW_MASK) +#define RTC_WAR_CRW_MASK (0x10U) +#define RTC_WAR_CRW_SHIFT (4U) +#define RTC_WAR_CRW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_CRW_SHIFT)) & RTC_WAR_CRW_MASK) +#define RTC_WAR_SRW_MASK (0x20U) +#define RTC_WAR_SRW_SHIFT (5U) +#define RTC_WAR_SRW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_SRW_SHIFT)) & RTC_WAR_SRW_MASK) +#define RTC_WAR_LRW_MASK (0x40U) +#define RTC_WAR_LRW_SHIFT (6U) +#define RTC_WAR_LRW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_LRW_SHIFT)) & RTC_WAR_LRW_MASK) +#define RTC_WAR_IERW_MASK (0x80U) +#define RTC_WAR_IERW_SHIFT (7U) +#define RTC_WAR_IERW(x) (((uint32_t)(((uint32_t)(x)) << RTC_WAR_IERW_SHIFT)) & RTC_WAR_IERW_MASK) + +/*! @name RAR - RTC Read Access Register */ +#define RTC_RAR_TSRR_MASK (0x1U) +#define RTC_RAR_TSRR_SHIFT (0U) +#define RTC_RAR_TSRR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TSRR_SHIFT)) & RTC_RAR_TSRR_MASK) +#define RTC_RAR_TPRR_MASK (0x2U) +#define RTC_RAR_TPRR_SHIFT (1U) +#define RTC_RAR_TPRR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TPRR_SHIFT)) & RTC_RAR_TPRR_MASK) +#define RTC_RAR_TARR_MASK (0x4U) +#define RTC_RAR_TARR_SHIFT (2U) +#define RTC_RAR_TARR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TARR_SHIFT)) & RTC_RAR_TARR_MASK) +#define RTC_RAR_TCRR_MASK (0x8U) +#define RTC_RAR_TCRR_SHIFT (3U) +#define RTC_RAR_TCRR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TCRR_SHIFT)) & RTC_RAR_TCRR_MASK) +#define RTC_RAR_CRR_MASK (0x10U) +#define RTC_RAR_CRR_SHIFT (4U) +#define RTC_RAR_CRR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_CRR_SHIFT)) & RTC_RAR_CRR_MASK) +#define RTC_RAR_SRR_MASK (0x20U) +#define RTC_RAR_SRR_SHIFT (5U) +#define RTC_RAR_SRR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_SRR_SHIFT)) & RTC_RAR_SRR_MASK) +#define RTC_RAR_LRR_MASK (0x40U) +#define RTC_RAR_LRR_SHIFT (6U) +#define RTC_RAR_LRR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_LRR_SHIFT)) & RTC_RAR_LRR_MASK) +#define RTC_RAR_IERR_MASK (0x80U) +#define RTC_RAR_IERR_SHIFT (7U) +#define RTC_RAR_IERR(x) (((uint32_t)(((uint32_t)(x)) << RTC_RAR_IERR_SHIFT)) & RTC_RAR_IERR_MASK) + + +/*! + * @} + */ /* end of group RTC_Register_Masks */ + + +/* RTC - Peripheral instance base addresses */ +/** Peripheral RTC base address */ +#define RTC_BASE (0x4003D000u) +/** Peripheral RTC base pointer */ +#define RTC ((RTC_Type *)RTC_BASE) +/** Array initializer of RTC peripheral base addresses */ +#define RTC_BASE_ADDRS { RTC_BASE } +/** Array initializer of RTC peripheral base pointers */ +#define RTC_BASE_PTRS { RTC } +/** Interrupt vectors for the RTC peripheral type */ +#define RTC_IRQS { RTC_IRQn } +#define RTC_SECONDS_IRQS { RTC_Seconds_IRQn } + +/*! + * @} + */ /* end of group RTC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- SDHC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SDHC_Peripheral_Access_Layer SDHC Peripheral Access Layer + * @{ + */ + +/** SDHC - Register Layout Typedef */ +typedef struct { + __IO uint32_t DSADDR; /**< DMA System Address register, offset: 0x0 */ + __IO uint32_t BLKATTR; /**< Block Attributes register, offset: 0x4 */ + __IO uint32_t CMDARG; /**< Command Argument register, offset: 0x8 */ + __IO uint32_t XFERTYP; /**< Transfer Type register, offset: 0xC */ + __I uint32_t CMDRSP[4]; /**< Command Response 0..Command Response 3, array offset: 0x10, array step: 0x4 */ + __IO uint32_t DATPORT; /**< Buffer Data Port register, offset: 0x20 */ + __I uint32_t PRSSTAT; /**< Present State register, offset: 0x24 */ + __IO uint32_t PROCTL; /**< Protocol Control register, offset: 0x28 */ + __IO uint32_t SYSCTL; /**< System Control register, offset: 0x2C */ + __IO uint32_t IRQSTAT; /**< Interrupt Status register, offset: 0x30 */ + __IO uint32_t IRQSTATEN; /**< Interrupt Status Enable register, offset: 0x34 */ + __IO uint32_t IRQSIGEN; /**< Interrupt Signal Enable register, offset: 0x38 */ + __I uint32_t AC12ERR; /**< Auto CMD12 Error Status Register, offset: 0x3C */ + __I uint32_t HTCAPBLT; /**< Host Controller Capabilities, offset: 0x40 */ + __IO uint32_t WML; /**< Watermark Level Register, offset: 0x44 */ + uint8_t RESERVED_0[8]; + __O uint32_t FEVT; /**< Force Event register, offset: 0x50 */ + __I uint32_t ADMAES; /**< ADMA Error Status register, offset: 0x54 */ + __IO uint32_t ADSADDR; /**< ADMA System Addressregister, offset: 0x58 */ + uint8_t RESERVED_1[100]; + __IO uint32_t VENDOR; /**< Vendor Specific register, offset: 0xC0 */ + __IO uint32_t MMCBOOT; /**< MMC Boot register, offset: 0xC4 */ + uint8_t RESERVED_2[52]; + __I uint32_t HOSTVER; /**< Host Controller Version, offset: 0xFC */ +} SDHC_Type; + +/* ---------------------------------------------------------------------------- + -- SDHC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SDHC_Register_Masks SDHC Register Masks + * @{ + */ + +/*! @name DSADDR - DMA System Address register */ +#define SDHC_DSADDR_DSADDR_MASK (0xFFFFFFFCU) +#define SDHC_DSADDR_DSADDR_SHIFT (2U) +#define SDHC_DSADDR_DSADDR(x) (((uint32_t)(((uint32_t)(x)) << SDHC_DSADDR_DSADDR_SHIFT)) & SDHC_DSADDR_DSADDR_MASK) + +/*! @name BLKATTR - Block Attributes register */ +#define SDHC_BLKATTR_BLKSIZE_MASK (0x1FFFU) +#define SDHC_BLKATTR_BLKSIZE_SHIFT (0U) +#define SDHC_BLKATTR_BLKSIZE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_BLKATTR_BLKSIZE_SHIFT)) & SDHC_BLKATTR_BLKSIZE_MASK) +#define SDHC_BLKATTR_BLKCNT_MASK (0xFFFF0000U) +#define SDHC_BLKATTR_BLKCNT_SHIFT (16U) +#define SDHC_BLKATTR_BLKCNT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_BLKATTR_BLKCNT_SHIFT)) & SDHC_BLKATTR_BLKCNT_MASK) + +/*! @name CMDARG - Command Argument register */ +#define SDHC_CMDARG_CMDARG_MASK (0xFFFFFFFFU) +#define SDHC_CMDARG_CMDARG_SHIFT (0U) +#define SDHC_CMDARG_CMDARG(x) (((uint32_t)(((uint32_t)(x)) << SDHC_CMDARG_CMDARG_SHIFT)) & SDHC_CMDARG_CMDARG_MASK) + +/*! @name XFERTYP - Transfer Type register */ +#define SDHC_XFERTYP_DMAEN_MASK (0x1U) +#define SDHC_XFERTYP_DMAEN_SHIFT (0U) +#define SDHC_XFERTYP_DMAEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_DMAEN_SHIFT)) & SDHC_XFERTYP_DMAEN_MASK) +#define SDHC_XFERTYP_BCEN_MASK (0x2U) +#define SDHC_XFERTYP_BCEN_SHIFT (1U) +#define SDHC_XFERTYP_BCEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_BCEN_SHIFT)) & SDHC_XFERTYP_BCEN_MASK) +#define SDHC_XFERTYP_AC12EN_MASK (0x4U) +#define SDHC_XFERTYP_AC12EN_SHIFT (2U) +#define SDHC_XFERTYP_AC12EN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_AC12EN_SHIFT)) & SDHC_XFERTYP_AC12EN_MASK) +#define SDHC_XFERTYP_DTDSEL_MASK (0x10U) +#define SDHC_XFERTYP_DTDSEL_SHIFT (4U) +#define SDHC_XFERTYP_DTDSEL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_DTDSEL_SHIFT)) & SDHC_XFERTYP_DTDSEL_MASK) +#define SDHC_XFERTYP_MSBSEL_MASK (0x20U) +#define SDHC_XFERTYP_MSBSEL_SHIFT (5U) +#define SDHC_XFERTYP_MSBSEL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_MSBSEL_SHIFT)) & SDHC_XFERTYP_MSBSEL_MASK) +#define SDHC_XFERTYP_RSPTYP_MASK (0x30000U) +#define SDHC_XFERTYP_RSPTYP_SHIFT (16U) +#define SDHC_XFERTYP_RSPTYP(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_RSPTYP_SHIFT)) & SDHC_XFERTYP_RSPTYP_MASK) +#define SDHC_XFERTYP_CCCEN_MASK (0x80000U) +#define SDHC_XFERTYP_CCCEN_SHIFT (19U) +#define SDHC_XFERTYP_CCCEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_CCCEN_SHIFT)) & SDHC_XFERTYP_CCCEN_MASK) +#define SDHC_XFERTYP_CICEN_MASK (0x100000U) +#define SDHC_XFERTYP_CICEN_SHIFT (20U) +#define SDHC_XFERTYP_CICEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_CICEN_SHIFT)) & SDHC_XFERTYP_CICEN_MASK) +#define SDHC_XFERTYP_DPSEL_MASK (0x200000U) +#define SDHC_XFERTYP_DPSEL_SHIFT (21U) +#define SDHC_XFERTYP_DPSEL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_DPSEL_SHIFT)) & SDHC_XFERTYP_DPSEL_MASK) +#define SDHC_XFERTYP_CMDTYP_MASK (0xC00000U) +#define SDHC_XFERTYP_CMDTYP_SHIFT (22U) +#define SDHC_XFERTYP_CMDTYP(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_CMDTYP_SHIFT)) & SDHC_XFERTYP_CMDTYP_MASK) +#define SDHC_XFERTYP_CMDINX_MASK (0x3F000000U) +#define SDHC_XFERTYP_CMDINX_SHIFT (24U) +#define SDHC_XFERTYP_CMDINX(x) (((uint32_t)(((uint32_t)(x)) << SDHC_XFERTYP_CMDINX_SHIFT)) & SDHC_XFERTYP_CMDINX_MASK) + +/*! @name CMDRSP - Command Response 0..Command Response 3 */ +#define SDHC_CMDRSP_CMDRSP0_MASK (0xFFFFFFFFU) +#define SDHC_CMDRSP_CMDRSP0_SHIFT (0U) +#define SDHC_CMDRSP_CMDRSP0(x) (((uint32_t)(((uint32_t)(x)) << SDHC_CMDRSP_CMDRSP0_SHIFT)) & SDHC_CMDRSP_CMDRSP0_MASK) +#define SDHC_CMDRSP_CMDRSP1_MASK (0xFFFFFFFFU) +#define SDHC_CMDRSP_CMDRSP1_SHIFT (0U) +#define SDHC_CMDRSP_CMDRSP1(x) (((uint32_t)(((uint32_t)(x)) << SDHC_CMDRSP_CMDRSP1_SHIFT)) & SDHC_CMDRSP_CMDRSP1_MASK) +#define SDHC_CMDRSP_CMDRSP2_MASK (0xFFFFFFFFU) +#define SDHC_CMDRSP_CMDRSP2_SHIFT (0U) +#define SDHC_CMDRSP_CMDRSP2(x) (((uint32_t)(((uint32_t)(x)) << SDHC_CMDRSP_CMDRSP2_SHIFT)) & SDHC_CMDRSP_CMDRSP2_MASK) +#define SDHC_CMDRSP_CMDRSP3_MASK (0xFFFFFFFFU) +#define SDHC_CMDRSP_CMDRSP3_SHIFT (0U) +#define SDHC_CMDRSP_CMDRSP3(x) (((uint32_t)(((uint32_t)(x)) << SDHC_CMDRSP_CMDRSP3_SHIFT)) & SDHC_CMDRSP_CMDRSP3_MASK) + +/* The count of SDHC_CMDRSP */ +#define SDHC_CMDRSP_COUNT (4U) + +/*! @name DATPORT - Buffer Data Port register */ +#define SDHC_DATPORT_DATCONT_MASK (0xFFFFFFFFU) +#define SDHC_DATPORT_DATCONT_SHIFT (0U) +#define SDHC_DATPORT_DATCONT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_DATPORT_DATCONT_SHIFT)) & SDHC_DATPORT_DATCONT_MASK) + +/*! @name PRSSTAT - Present State register */ +#define SDHC_PRSSTAT_CIHB_MASK (0x1U) +#define SDHC_PRSSTAT_CIHB_SHIFT (0U) +#define SDHC_PRSSTAT_CIHB(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_CIHB_SHIFT)) & SDHC_PRSSTAT_CIHB_MASK) +#define SDHC_PRSSTAT_CDIHB_MASK (0x2U) +#define SDHC_PRSSTAT_CDIHB_SHIFT (1U) +#define SDHC_PRSSTAT_CDIHB(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_CDIHB_SHIFT)) & SDHC_PRSSTAT_CDIHB_MASK) +#define SDHC_PRSSTAT_DLA_MASK (0x4U) +#define SDHC_PRSSTAT_DLA_SHIFT (2U) +#define SDHC_PRSSTAT_DLA(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_DLA_SHIFT)) & SDHC_PRSSTAT_DLA_MASK) +#define SDHC_PRSSTAT_SDSTB_MASK (0x8U) +#define SDHC_PRSSTAT_SDSTB_SHIFT (3U) +#define SDHC_PRSSTAT_SDSTB(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_SDSTB_SHIFT)) & SDHC_PRSSTAT_SDSTB_MASK) +#define SDHC_PRSSTAT_IPGOFF_MASK (0x10U) +#define SDHC_PRSSTAT_IPGOFF_SHIFT (4U) +#define SDHC_PRSSTAT_IPGOFF(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_IPGOFF_SHIFT)) & SDHC_PRSSTAT_IPGOFF_MASK) +#define SDHC_PRSSTAT_HCKOFF_MASK (0x20U) +#define SDHC_PRSSTAT_HCKOFF_SHIFT (5U) +#define SDHC_PRSSTAT_HCKOFF(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_HCKOFF_SHIFT)) & SDHC_PRSSTAT_HCKOFF_MASK) +#define SDHC_PRSSTAT_PEROFF_MASK (0x40U) +#define SDHC_PRSSTAT_PEROFF_SHIFT (6U) +#define SDHC_PRSSTAT_PEROFF(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_PEROFF_SHIFT)) & SDHC_PRSSTAT_PEROFF_MASK) +#define SDHC_PRSSTAT_SDOFF_MASK (0x80U) +#define SDHC_PRSSTAT_SDOFF_SHIFT (7U) +#define SDHC_PRSSTAT_SDOFF(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_SDOFF_SHIFT)) & SDHC_PRSSTAT_SDOFF_MASK) +#define SDHC_PRSSTAT_WTA_MASK (0x100U) +#define SDHC_PRSSTAT_WTA_SHIFT (8U) +#define SDHC_PRSSTAT_WTA(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_WTA_SHIFT)) & SDHC_PRSSTAT_WTA_MASK) +#define SDHC_PRSSTAT_RTA_MASK (0x200U) +#define SDHC_PRSSTAT_RTA_SHIFT (9U) +#define SDHC_PRSSTAT_RTA(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_RTA_SHIFT)) & SDHC_PRSSTAT_RTA_MASK) +#define SDHC_PRSSTAT_BWEN_MASK (0x400U) +#define SDHC_PRSSTAT_BWEN_SHIFT (10U) +#define SDHC_PRSSTAT_BWEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_BWEN_SHIFT)) & SDHC_PRSSTAT_BWEN_MASK) +#define SDHC_PRSSTAT_BREN_MASK (0x800U) +#define SDHC_PRSSTAT_BREN_SHIFT (11U) +#define SDHC_PRSSTAT_BREN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_BREN_SHIFT)) & SDHC_PRSSTAT_BREN_MASK) +#define SDHC_PRSSTAT_CINS_MASK (0x10000U) +#define SDHC_PRSSTAT_CINS_SHIFT (16U) +#define SDHC_PRSSTAT_CINS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_CINS_SHIFT)) & SDHC_PRSSTAT_CINS_MASK) +#define SDHC_PRSSTAT_CLSL_MASK (0x800000U) +#define SDHC_PRSSTAT_CLSL_SHIFT (23U) +#define SDHC_PRSSTAT_CLSL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_CLSL_SHIFT)) & SDHC_PRSSTAT_CLSL_MASK) +#define SDHC_PRSSTAT_DLSL_MASK (0xFF000000U) +#define SDHC_PRSSTAT_DLSL_SHIFT (24U) +#define SDHC_PRSSTAT_DLSL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PRSSTAT_DLSL_SHIFT)) & SDHC_PRSSTAT_DLSL_MASK) + +/*! @name PROCTL - Protocol Control register */ +#define SDHC_PROCTL_LCTL_MASK (0x1U) +#define SDHC_PROCTL_LCTL_SHIFT (0U) +#define SDHC_PROCTL_LCTL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_LCTL_SHIFT)) & SDHC_PROCTL_LCTL_MASK) +#define SDHC_PROCTL_DTW_MASK (0x6U) +#define SDHC_PROCTL_DTW_SHIFT (1U) +#define SDHC_PROCTL_DTW(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_DTW_SHIFT)) & SDHC_PROCTL_DTW_MASK) +#define SDHC_PROCTL_D3CD_MASK (0x8U) +#define SDHC_PROCTL_D3CD_SHIFT (3U) +#define SDHC_PROCTL_D3CD(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_D3CD_SHIFT)) & SDHC_PROCTL_D3CD_MASK) +#define SDHC_PROCTL_EMODE_MASK (0x30U) +#define SDHC_PROCTL_EMODE_SHIFT (4U) +#define SDHC_PROCTL_EMODE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_EMODE_SHIFT)) & SDHC_PROCTL_EMODE_MASK) +#define SDHC_PROCTL_CDTL_MASK (0x40U) +#define SDHC_PROCTL_CDTL_SHIFT (6U) +#define SDHC_PROCTL_CDTL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_CDTL_SHIFT)) & SDHC_PROCTL_CDTL_MASK) +#define SDHC_PROCTL_CDSS_MASK (0x80U) +#define SDHC_PROCTL_CDSS_SHIFT (7U) +#define SDHC_PROCTL_CDSS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_CDSS_SHIFT)) & SDHC_PROCTL_CDSS_MASK) +#define SDHC_PROCTL_DMAS_MASK (0x300U) +#define SDHC_PROCTL_DMAS_SHIFT (8U) +#define SDHC_PROCTL_DMAS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_DMAS_SHIFT)) & SDHC_PROCTL_DMAS_MASK) +#define SDHC_PROCTL_SABGREQ_MASK (0x10000U) +#define SDHC_PROCTL_SABGREQ_SHIFT (16U) +#define SDHC_PROCTL_SABGREQ(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_SABGREQ_SHIFT)) & SDHC_PROCTL_SABGREQ_MASK) +#define SDHC_PROCTL_CREQ_MASK (0x20000U) +#define SDHC_PROCTL_CREQ_SHIFT (17U) +#define SDHC_PROCTL_CREQ(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_CREQ_SHIFT)) & SDHC_PROCTL_CREQ_MASK) +#define SDHC_PROCTL_RWCTL_MASK (0x40000U) +#define SDHC_PROCTL_RWCTL_SHIFT (18U) +#define SDHC_PROCTL_RWCTL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_RWCTL_SHIFT)) & SDHC_PROCTL_RWCTL_MASK) +#define SDHC_PROCTL_IABG_MASK (0x80000U) +#define SDHC_PROCTL_IABG_SHIFT (19U) +#define SDHC_PROCTL_IABG(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_IABG_SHIFT)) & SDHC_PROCTL_IABG_MASK) +#define SDHC_PROCTL_WECINT_MASK (0x1000000U) +#define SDHC_PROCTL_WECINT_SHIFT (24U) +#define SDHC_PROCTL_WECINT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_WECINT_SHIFT)) & SDHC_PROCTL_WECINT_MASK) +#define SDHC_PROCTL_WECINS_MASK (0x2000000U) +#define SDHC_PROCTL_WECINS_SHIFT (25U) +#define SDHC_PROCTL_WECINS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_WECINS_SHIFT)) & SDHC_PROCTL_WECINS_MASK) +#define SDHC_PROCTL_WECRM_MASK (0x4000000U) +#define SDHC_PROCTL_WECRM_SHIFT (26U) +#define SDHC_PROCTL_WECRM(x) (((uint32_t)(((uint32_t)(x)) << SDHC_PROCTL_WECRM_SHIFT)) & SDHC_PROCTL_WECRM_MASK) + +/*! @name SYSCTL - System Control register */ +#define SDHC_SYSCTL_IPGEN_MASK (0x1U) +#define SDHC_SYSCTL_IPGEN_SHIFT (0U) +#define SDHC_SYSCTL_IPGEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_IPGEN_SHIFT)) & SDHC_SYSCTL_IPGEN_MASK) +#define SDHC_SYSCTL_HCKEN_MASK (0x2U) +#define SDHC_SYSCTL_HCKEN_SHIFT (1U) +#define SDHC_SYSCTL_HCKEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_HCKEN_SHIFT)) & SDHC_SYSCTL_HCKEN_MASK) +#define SDHC_SYSCTL_PEREN_MASK (0x4U) +#define SDHC_SYSCTL_PEREN_SHIFT (2U) +#define SDHC_SYSCTL_PEREN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_PEREN_SHIFT)) & SDHC_SYSCTL_PEREN_MASK) +#define SDHC_SYSCTL_SDCLKEN_MASK (0x8U) +#define SDHC_SYSCTL_SDCLKEN_SHIFT (3U) +#define SDHC_SYSCTL_SDCLKEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_SDCLKEN_SHIFT)) & SDHC_SYSCTL_SDCLKEN_MASK) +#define SDHC_SYSCTL_DVS_MASK (0xF0U) +#define SDHC_SYSCTL_DVS_SHIFT (4U) +#define SDHC_SYSCTL_DVS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_DVS_SHIFT)) & SDHC_SYSCTL_DVS_MASK) +#define SDHC_SYSCTL_SDCLKFS_MASK (0xFF00U) +#define SDHC_SYSCTL_SDCLKFS_SHIFT (8U) +#define SDHC_SYSCTL_SDCLKFS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_SDCLKFS_SHIFT)) & SDHC_SYSCTL_SDCLKFS_MASK) +#define SDHC_SYSCTL_DTOCV_MASK (0xF0000U) +#define SDHC_SYSCTL_DTOCV_SHIFT (16U) +#define SDHC_SYSCTL_DTOCV(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_DTOCV_SHIFT)) & SDHC_SYSCTL_DTOCV_MASK) +#define SDHC_SYSCTL_RSTA_MASK (0x1000000U) +#define SDHC_SYSCTL_RSTA_SHIFT (24U) +#define SDHC_SYSCTL_RSTA(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_RSTA_SHIFT)) & SDHC_SYSCTL_RSTA_MASK) +#define SDHC_SYSCTL_RSTC_MASK (0x2000000U) +#define SDHC_SYSCTL_RSTC_SHIFT (25U) +#define SDHC_SYSCTL_RSTC(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_RSTC_SHIFT)) & SDHC_SYSCTL_RSTC_MASK) +#define SDHC_SYSCTL_RSTD_MASK (0x4000000U) +#define SDHC_SYSCTL_RSTD_SHIFT (26U) +#define SDHC_SYSCTL_RSTD(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_RSTD_SHIFT)) & SDHC_SYSCTL_RSTD_MASK) +#define SDHC_SYSCTL_INITA_MASK (0x8000000U) +#define SDHC_SYSCTL_INITA_SHIFT (27U) +#define SDHC_SYSCTL_INITA(x) (((uint32_t)(((uint32_t)(x)) << SDHC_SYSCTL_INITA_SHIFT)) & SDHC_SYSCTL_INITA_MASK) + +/*! @name IRQSTAT - Interrupt Status register */ +#define SDHC_IRQSTAT_CC_MASK (0x1U) +#define SDHC_IRQSTAT_CC_SHIFT (0U) +#define SDHC_IRQSTAT_CC(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CC_SHIFT)) & SDHC_IRQSTAT_CC_MASK) +#define SDHC_IRQSTAT_TC_MASK (0x2U) +#define SDHC_IRQSTAT_TC_SHIFT (1U) +#define SDHC_IRQSTAT_TC(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_TC_SHIFT)) & SDHC_IRQSTAT_TC_MASK) +#define SDHC_IRQSTAT_BGE_MASK (0x4U) +#define SDHC_IRQSTAT_BGE_SHIFT (2U) +#define SDHC_IRQSTAT_BGE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_BGE_SHIFT)) & SDHC_IRQSTAT_BGE_MASK) +#define SDHC_IRQSTAT_DINT_MASK (0x8U) +#define SDHC_IRQSTAT_DINT_SHIFT (3U) +#define SDHC_IRQSTAT_DINT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_DINT_SHIFT)) & SDHC_IRQSTAT_DINT_MASK) +#define SDHC_IRQSTAT_BWR_MASK (0x10U) +#define SDHC_IRQSTAT_BWR_SHIFT (4U) +#define SDHC_IRQSTAT_BWR(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_BWR_SHIFT)) & SDHC_IRQSTAT_BWR_MASK) +#define SDHC_IRQSTAT_BRR_MASK (0x20U) +#define SDHC_IRQSTAT_BRR_SHIFT (5U) +#define SDHC_IRQSTAT_BRR(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_BRR_SHIFT)) & SDHC_IRQSTAT_BRR_MASK) +#define SDHC_IRQSTAT_CINS_MASK (0x40U) +#define SDHC_IRQSTAT_CINS_SHIFT (6U) +#define SDHC_IRQSTAT_CINS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CINS_SHIFT)) & SDHC_IRQSTAT_CINS_MASK) +#define SDHC_IRQSTAT_CRM_MASK (0x80U) +#define SDHC_IRQSTAT_CRM_SHIFT (7U) +#define SDHC_IRQSTAT_CRM(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CRM_SHIFT)) & SDHC_IRQSTAT_CRM_MASK) +#define SDHC_IRQSTAT_CINT_MASK (0x100U) +#define SDHC_IRQSTAT_CINT_SHIFT (8U) +#define SDHC_IRQSTAT_CINT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CINT_SHIFT)) & SDHC_IRQSTAT_CINT_MASK) +#define SDHC_IRQSTAT_CTOE_MASK (0x10000U) +#define SDHC_IRQSTAT_CTOE_SHIFT (16U) +#define SDHC_IRQSTAT_CTOE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CTOE_SHIFT)) & SDHC_IRQSTAT_CTOE_MASK) +#define SDHC_IRQSTAT_CCE_MASK (0x20000U) +#define SDHC_IRQSTAT_CCE_SHIFT (17U) +#define SDHC_IRQSTAT_CCE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CCE_SHIFT)) & SDHC_IRQSTAT_CCE_MASK) +#define SDHC_IRQSTAT_CEBE_MASK (0x40000U) +#define SDHC_IRQSTAT_CEBE_SHIFT (18U) +#define SDHC_IRQSTAT_CEBE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CEBE_SHIFT)) & SDHC_IRQSTAT_CEBE_MASK) +#define SDHC_IRQSTAT_CIE_MASK (0x80000U) +#define SDHC_IRQSTAT_CIE_SHIFT (19U) +#define SDHC_IRQSTAT_CIE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_CIE_SHIFT)) & SDHC_IRQSTAT_CIE_MASK) +#define SDHC_IRQSTAT_DTOE_MASK (0x100000U) +#define SDHC_IRQSTAT_DTOE_SHIFT (20U) +#define SDHC_IRQSTAT_DTOE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_DTOE_SHIFT)) & SDHC_IRQSTAT_DTOE_MASK) +#define SDHC_IRQSTAT_DCE_MASK (0x200000U) +#define SDHC_IRQSTAT_DCE_SHIFT (21U) +#define SDHC_IRQSTAT_DCE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_DCE_SHIFT)) & SDHC_IRQSTAT_DCE_MASK) +#define SDHC_IRQSTAT_DEBE_MASK (0x400000U) +#define SDHC_IRQSTAT_DEBE_SHIFT (22U) +#define SDHC_IRQSTAT_DEBE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_DEBE_SHIFT)) & SDHC_IRQSTAT_DEBE_MASK) +#define SDHC_IRQSTAT_AC12E_MASK (0x1000000U) +#define SDHC_IRQSTAT_AC12E_SHIFT (24U) +#define SDHC_IRQSTAT_AC12E(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_AC12E_SHIFT)) & SDHC_IRQSTAT_AC12E_MASK) +#define SDHC_IRQSTAT_DMAE_MASK (0x10000000U) +#define SDHC_IRQSTAT_DMAE_SHIFT (28U) +#define SDHC_IRQSTAT_DMAE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTAT_DMAE_SHIFT)) & SDHC_IRQSTAT_DMAE_MASK) + +/*! @name IRQSTATEN - Interrupt Status Enable register */ +#define SDHC_IRQSTATEN_CCSEN_MASK (0x1U) +#define SDHC_IRQSTATEN_CCSEN_SHIFT (0U) +#define SDHC_IRQSTATEN_CCSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CCSEN_SHIFT)) & SDHC_IRQSTATEN_CCSEN_MASK) +#define SDHC_IRQSTATEN_TCSEN_MASK (0x2U) +#define SDHC_IRQSTATEN_TCSEN_SHIFT (1U) +#define SDHC_IRQSTATEN_TCSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_TCSEN_SHIFT)) & SDHC_IRQSTATEN_TCSEN_MASK) +#define SDHC_IRQSTATEN_BGESEN_MASK (0x4U) +#define SDHC_IRQSTATEN_BGESEN_SHIFT (2U) +#define SDHC_IRQSTATEN_BGESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_BGESEN_SHIFT)) & SDHC_IRQSTATEN_BGESEN_MASK) +#define SDHC_IRQSTATEN_DINTSEN_MASK (0x8U) +#define SDHC_IRQSTATEN_DINTSEN_SHIFT (3U) +#define SDHC_IRQSTATEN_DINTSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_DINTSEN_SHIFT)) & SDHC_IRQSTATEN_DINTSEN_MASK) +#define SDHC_IRQSTATEN_BWRSEN_MASK (0x10U) +#define SDHC_IRQSTATEN_BWRSEN_SHIFT (4U) +#define SDHC_IRQSTATEN_BWRSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_BWRSEN_SHIFT)) & SDHC_IRQSTATEN_BWRSEN_MASK) +#define SDHC_IRQSTATEN_BRRSEN_MASK (0x20U) +#define SDHC_IRQSTATEN_BRRSEN_SHIFT (5U) +#define SDHC_IRQSTATEN_BRRSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_BRRSEN_SHIFT)) & SDHC_IRQSTATEN_BRRSEN_MASK) +#define SDHC_IRQSTATEN_CINSEN_MASK (0x40U) +#define SDHC_IRQSTATEN_CINSEN_SHIFT (6U) +#define SDHC_IRQSTATEN_CINSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CINSEN_SHIFT)) & SDHC_IRQSTATEN_CINSEN_MASK) +#define SDHC_IRQSTATEN_CRMSEN_MASK (0x80U) +#define SDHC_IRQSTATEN_CRMSEN_SHIFT (7U) +#define SDHC_IRQSTATEN_CRMSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CRMSEN_SHIFT)) & SDHC_IRQSTATEN_CRMSEN_MASK) +#define SDHC_IRQSTATEN_CINTSEN_MASK (0x100U) +#define SDHC_IRQSTATEN_CINTSEN_SHIFT (8U) +#define SDHC_IRQSTATEN_CINTSEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CINTSEN_SHIFT)) & SDHC_IRQSTATEN_CINTSEN_MASK) +#define SDHC_IRQSTATEN_CTOESEN_MASK (0x10000U) +#define SDHC_IRQSTATEN_CTOESEN_SHIFT (16U) +#define SDHC_IRQSTATEN_CTOESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CTOESEN_SHIFT)) & SDHC_IRQSTATEN_CTOESEN_MASK) +#define SDHC_IRQSTATEN_CCESEN_MASK (0x20000U) +#define SDHC_IRQSTATEN_CCESEN_SHIFT (17U) +#define SDHC_IRQSTATEN_CCESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CCESEN_SHIFT)) & SDHC_IRQSTATEN_CCESEN_MASK) +#define SDHC_IRQSTATEN_CEBESEN_MASK (0x40000U) +#define SDHC_IRQSTATEN_CEBESEN_SHIFT (18U) +#define SDHC_IRQSTATEN_CEBESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CEBESEN_SHIFT)) & SDHC_IRQSTATEN_CEBESEN_MASK) +#define SDHC_IRQSTATEN_CIESEN_MASK (0x80000U) +#define SDHC_IRQSTATEN_CIESEN_SHIFT (19U) +#define SDHC_IRQSTATEN_CIESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_CIESEN_SHIFT)) & SDHC_IRQSTATEN_CIESEN_MASK) +#define SDHC_IRQSTATEN_DTOESEN_MASK (0x100000U) +#define SDHC_IRQSTATEN_DTOESEN_SHIFT (20U) +#define SDHC_IRQSTATEN_DTOESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_DTOESEN_SHIFT)) & SDHC_IRQSTATEN_DTOESEN_MASK) +#define SDHC_IRQSTATEN_DCESEN_MASK (0x200000U) +#define SDHC_IRQSTATEN_DCESEN_SHIFT (21U) +#define SDHC_IRQSTATEN_DCESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_DCESEN_SHIFT)) & SDHC_IRQSTATEN_DCESEN_MASK) +#define SDHC_IRQSTATEN_DEBESEN_MASK (0x400000U) +#define SDHC_IRQSTATEN_DEBESEN_SHIFT (22U) +#define SDHC_IRQSTATEN_DEBESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_DEBESEN_SHIFT)) & SDHC_IRQSTATEN_DEBESEN_MASK) +#define SDHC_IRQSTATEN_AC12ESEN_MASK (0x1000000U) +#define SDHC_IRQSTATEN_AC12ESEN_SHIFT (24U) +#define SDHC_IRQSTATEN_AC12ESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_AC12ESEN_SHIFT)) & SDHC_IRQSTATEN_AC12ESEN_MASK) +#define SDHC_IRQSTATEN_DMAESEN_MASK (0x10000000U) +#define SDHC_IRQSTATEN_DMAESEN_SHIFT (28U) +#define SDHC_IRQSTATEN_DMAESEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSTATEN_DMAESEN_SHIFT)) & SDHC_IRQSTATEN_DMAESEN_MASK) + +/*! @name IRQSIGEN - Interrupt Signal Enable register */ +#define SDHC_IRQSIGEN_CCIEN_MASK (0x1U) +#define SDHC_IRQSIGEN_CCIEN_SHIFT (0U) +#define SDHC_IRQSIGEN_CCIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CCIEN_SHIFT)) & SDHC_IRQSIGEN_CCIEN_MASK) +#define SDHC_IRQSIGEN_TCIEN_MASK (0x2U) +#define SDHC_IRQSIGEN_TCIEN_SHIFT (1U) +#define SDHC_IRQSIGEN_TCIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_TCIEN_SHIFT)) & SDHC_IRQSIGEN_TCIEN_MASK) +#define SDHC_IRQSIGEN_BGEIEN_MASK (0x4U) +#define SDHC_IRQSIGEN_BGEIEN_SHIFT (2U) +#define SDHC_IRQSIGEN_BGEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_BGEIEN_SHIFT)) & SDHC_IRQSIGEN_BGEIEN_MASK) +#define SDHC_IRQSIGEN_DINTIEN_MASK (0x8U) +#define SDHC_IRQSIGEN_DINTIEN_SHIFT (3U) +#define SDHC_IRQSIGEN_DINTIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_DINTIEN_SHIFT)) & SDHC_IRQSIGEN_DINTIEN_MASK) +#define SDHC_IRQSIGEN_BWRIEN_MASK (0x10U) +#define SDHC_IRQSIGEN_BWRIEN_SHIFT (4U) +#define SDHC_IRQSIGEN_BWRIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_BWRIEN_SHIFT)) & SDHC_IRQSIGEN_BWRIEN_MASK) +#define SDHC_IRQSIGEN_BRRIEN_MASK (0x20U) +#define SDHC_IRQSIGEN_BRRIEN_SHIFT (5U) +#define SDHC_IRQSIGEN_BRRIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_BRRIEN_SHIFT)) & SDHC_IRQSIGEN_BRRIEN_MASK) +#define SDHC_IRQSIGEN_CINSIEN_MASK (0x40U) +#define SDHC_IRQSIGEN_CINSIEN_SHIFT (6U) +#define SDHC_IRQSIGEN_CINSIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CINSIEN_SHIFT)) & SDHC_IRQSIGEN_CINSIEN_MASK) +#define SDHC_IRQSIGEN_CRMIEN_MASK (0x80U) +#define SDHC_IRQSIGEN_CRMIEN_SHIFT (7U) +#define SDHC_IRQSIGEN_CRMIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CRMIEN_SHIFT)) & SDHC_IRQSIGEN_CRMIEN_MASK) +#define SDHC_IRQSIGEN_CINTIEN_MASK (0x100U) +#define SDHC_IRQSIGEN_CINTIEN_SHIFT (8U) +#define SDHC_IRQSIGEN_CINTIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CINTIEN_SHIFT)) & SDHC_IRQSIGEN_CINTIEN_MASK) +#define SDHC_IRQSIGEN_CTOEIEN_MASK (0x10000U) +#define SDHC_IRQSIGEN_CTOEIEN_SHIFT (16U) +#define SDHC_IRQSIGEN_CTOEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CTOEIEN_SHIFT)) & SDHC_IRQSIGEN_CTOEIEN_MASK) +#define SDHC_IRQSIGEN_CCEIEN_MASK (0x20000U) +#define SDHC_IRQSIGEN_CCEIEN_SHIFT (17U) +#define SDHC_IRQSIGEN_CCEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CCEIEN_SHIFT)) & SDHC_IRQSIGEN_CCEIEN_MASK) +#define SDHC_IRQSIGEN_CEBEIEN_MASK (0x40000U) +#define SDHC_IRQSIGEN_CEBEIEN_SHIFT (18U) +#define SDHC_IRQSIGEN_CEBEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CEBEIEN_SHIFT)) & SDHC_IRQSIGEN_CEBEIEN_MASK) +#define SDHC_IRQSIGEN_CIEIEN_MASK (0x80000U) +#define SDHC_IRQSIGEN_CIEIEN_SHIFT (19U) +#define SDHC_IRQSIGEN_CIEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_CIEIEN_SHIFT)) & SDHC_IRQSIGEN_CIEIEN_MASK) +#define SDHC_IRQSIGEN_DTOEIEN_MASK (0x100000U) +#define SDHC_IRQSIGEN_DTOEIEN_SHIFT (20U) +#define SDHC_IRQSIGEN_DTOEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_DTOEIEN_SHIFT)) & SDHC_IRQSIGEN_DTOEIEN_MASK) +#define SDHC_IRQSIGEN_DCEIEN_MASK (0x200000U) +#define SDHC_IRQSIGEN_DCEIEN_SHIFT (21U) +#define SDHC_IRQSIGEN_DCEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_DCEIEN_SHIFT)) & SDHC_IRQSIGEN_DCEIEN_MASK) +#define SDHC_IRQSIGEN_DEBEIEN_MASK (0x400000U) +#define SDHC_IRQSIGEN_DEBEIEN_SHIFT (22U) +#define SDHC_IRQSIGEN_DEBEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_DEBEIEN_SHIFT)) & SDHC_IRQSIGEN_DEBEIEN_MASK) +#define SDHC_IRQSIGEN_AC12EIEN_MASK (0x1000000U) +#define SDHC_IRQSIGEN_AC12EIEN_SHIFT (24U) +#define SDHC_IRQSIGEN_AC12EIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_AC12EIEN_SHIFT)) & SDHC_IRQSIGEN_AC12EIEN_MASK) +#define SDHC_IRQSIGEN_DMAEIEN_MASK (0x10000000U) +#define SDHC_IRQSIGEN_DMAEIEN_SHIFT (28U) +#define SDHC_IRQSIGEN_DMAEIEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_IRQSIGEN_DMAEIEN_SHIFT)) & SDHC_IRQSIGEN_DMAEIEN_MASK) + +/*! @name AC12ERR - Auto CMD12 Error Status Register */ +#define SDHC_AC12ERR_AC12NE_MASK (0x1U) +#define SDHC_AC12ERR_AC12NE_SHIFT (0U) +#define SDHC_AC12ERR_AC12NE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_AC12ERR_AC12NE_SHIFT)) & SDHC_AC12ERR_AC12NE_MASK) +#define SDHC_AC12ERR_AC12TOE_MASK (0x2U) +#define SDHC_AC12ERR_AC12TOE_SHIFT (1U) +#define SDHC_AC12ERR_AC12TOE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_AC12ERR_AC12TOE_SHIFT)) & SDHC_AC12ERR_AC12TOE_MASK) +#define SDHC_AC12ERR_AC12EBE_MASK (0x4U) +#define SDHC_AC12ERR_AC12EBE_SHIFT (2U) +#define SDHC_AC12ERR_AC12EBE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_AC12ERR_AC12EBE_SHIFT)) & SDHC_AC12ERR_AC12EBE_MASK) +#define SDHC_AC12ERR_AC12CE_MASK (0x8U) +#define SDHC_AC12ERR_AC12CE_SHIFT (3U) +#define SDHC_AC12ERR_AC12CE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_AC12ERR_AC12CE_SHIFT)) & SDHC_AC12ERR_AC12CE_MASK) +#define SDHC_AC12ERR_AC12IE_MASK (0x10U) +#define SDHC_AC12ERR_AC12IE_SHIFT (4U) +#define SDHC_AC12ERR_AC12IE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_AC12ERR_AC12IE_SHIFT)) & SDHC_AC12ERR_AC12IE_MASK) +#define SDHC_AC12ERR_CNIBAC12E_MASK (0x80U) +#define SDHC_AC12ERR_CNIBAC12E_SHIFT (7U) +#define SDHC_AC12ERR_CNIBAC12E(x) (((uint32_t)(((uint32_t)(x)) << SDHC_AC12ERR_CNIBAC12E_SHIFT)) & SDHC_AC12ERR_CNIBAC12E_MASK) + +/*! @name HTCAPBLT - Host Controller Capabilities */ +#define SDHC_HTCAPBLT_MBL_MASK (0x70000U) +#define SDHC_HTCAPBLT_MBL_SHIFT (16U) +#define SDHC_HTCAPBLT_MBL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HTCAPBLT_MBL_SHIFT)) & SDHC_HTCAPBLT_MBL_MASK) +#define SDHC_HTCAPBLT_ADMAS_MASK (0x100000U) +#define SDHC_HTCAPBLT_ADMAS_SHIFT (20U) +#define SDHC_HTCAPBLT_ADMAS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HTCAPBLT_ADMAS_SHIFT)) & SDHC_HTCAPBLT_ADMAS_MASK) +#define SDHC_HTCAPBLT_HSS_MASK (0x200000U) +#define SDHC_HTCAPBLT_HSS_SHIFT (21U) +#define SDHC_HTCAPBLT_HSS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HTCAPBLT_HSS_SHIFT)) & SDHC_HTCAPBLT_HSS_MASK) +#define SDHC_HTCAPBLT_DMAS_MASK (0x400000U) +#define SDHC_HTCAPBLT_DMAS_SHIFT (22U) +#define SDHC_HTCAPBLT_DMAS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HTCAPBLT_DMAS_SHIFT)) & SDHC_HTCAPBLT_DMAS_MASK) +#define SDHC_HTCAPBLT_SRS_MASK (0x800000U) +#define SDHC_HTCAPBLT_SRS_SHIFT (23U) +#define SDHC_HTCAPBLT_SRS(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HTCAPBLT_SRS_SHIFT)) & SDHC_HTCAPBLT_SRS_MASK) +#define SDHC_HTCAPBLT_VS33_MASK (0x1000000U) +#define SDHC_HTCAPBLT_VS33_SHIFT (24U) +#define SDHC_HTCAPBLT_VS33(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HTCAPBLT_VS33_SHIFT)) & SDHC_HTCAPBLT_VS33_MASK) + +/*! @name WML - Watermark Level Register */ +#define SDHC_WML_RDWML_MASK (0xFFU) +#define SDHC_WML_RDWML_SHIFT (0U) +#define SDHC_WML_RDWML(x) (((uint32_t)(((uint32_t)(x)) << SDHC_WML_RDWML_SHIFT)) & SDHC_WML_RDWML_MASK) +#define SDHC_WML_WRWML_MASK (0xFF0000U) +#define SDHC_WML_WRWML_SHIFT (16U) +#define SDHC_WML_WRWML(x) (((uint32_t)(((uint32_t)(x)) << SDHC_WML_WRWML_SHIFT)) & SDHC_WML_WRWML_MASK) + +/*! @name FEVT - Force Event register */ +#define SDHC_FEVT_AC12NE_MASK (0x1U) +#define SDHC_FEVT_AC12NE_SHIFT (0U) +#define SDHC_FEVT_AC12NE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_AC12NE_SHIFT)) & SDHC_FEVT_AC12NE_MASK) +#define SDHC_FEVT_AC12TOE_MASK (0x2U) +#define SDHC_FEVT_AC12TOE_SHIFT (1U) +#define SDHC_FEVT_AC12TOE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_AC12TOE_SHIFT)) & SDHC_FEVT_AC12TOE_MASK) +#define SDHC_FEVT_AC12CE_MASK (0x4U) +#define SDHC_FEVT_AC12CE_SHIFT (2U) +#define SDHC_FEVT_AC12CE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_AC12CE_SHIFT)) & SDHC_FEVT_AC12CE_MASK) +#define SDHC_FEVT_AC12EBE_MASK (0x8U) +#define SDHC_FEVT_AC12EBE_SHIFT (3U) +#define SDHC_FEVT_AC12EBE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_AC12EBE_SHIFT)) & SDHC_FEVT_AC12EBE_MASK) +#define SDHC_FEVT_AC12IE_MASK (0x10U) +#define SDHC_FEVT_AC12IE_SHIFT (4U) +#define SDHC_FEVT_AC12IE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_AC12IE_SHIFT)) & SDHC_FEVT_AC12IE_MASK) +#define SDHC_FEVT_CNIBAC12E_MASK (0x80U) +#define SDHC_FEVT_CNIBAC12E_SHIFT (7U) +#define SDHC_FEVT_CNIBAC12E(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_CNIBAC12E_SHIFT)) & SDHC_FEVT_CNIBAC12E_MASK) +#define SDHC_FEVT_CTOE_MASK (0x10000U) +#define SDHC_FEVT_CTOE_SHIFT (16U) +#define SDHC_FEVT_CTOE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_CTOE_SHIFT)) & SDHC_FEVT_CTOE_MASK) +#define SDHC_FEVT_CCE_MASK (0x20000U) +#define SDHC_FEVT_CCE_SHIFT (17U) +#define SDHC_FEVT_CCE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_CCE_SHIFT)) & SDHC_FEVT_CCE_MASK) +#define SDHC_FEVT_CEBE_MASK (0x40000U) +#define SDHC_FEVT_CEBE_SHIFT (18U) +#define SDHC_FEVT_CEBE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_CEBE_SHIFT)) & SDHC_FEVT_CEBE_MASK) +#define SDHC_FEVT_CIE_MASK (0x80000U) +#define SDHC_FEVT_CIE_SHIFT (19U) +#define SDHC_FEVT_CIE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_CIE_SHIFT)) & SDHC_FEVT_CIE_MASK) +#define SDHC_FEVT_DTOE_MASK (0x100000U) +#define SDHC_FEVT_DTOE_SHIFT (20U) +#define SDHC_FEVT_DTOE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_DTOE_SHIFT)) & SDHC_FEVT_DTOE_MASK) +#define SDHC_FEVT_DCE_MASK (0x200000U) +#define SDHC_FEVT_DCE_SHIFT (21U) +#define SDHC_FEVT_DCE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_DCE_SHIFT)) & SDHC_FEVT_DCE_MASK) +#define SDHC_FEVT_DEBE_MASK (0x400000U) +#define SDHC_FEVT_DEBE_SHIFT (22U) +#define SDHC_FEVT_DEBE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_DEBE_SHIFT)) & SDHC_FEVT_DEBE_MASK) +#define SDHC_FEVT_AC12E_MASK (0x1000000U) +#define SDHC_FEVT_AC12E_SHIFT (24U) +#define SDHC_FEVT_AC12E(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_AC12E_SHIFT)) & SDHC_FEVT_AC12E_MASK) +#define SDHC_FEVT_DMAE_MASK (0x10000000U) +#define SDHC_FEVT_DMAE_SHIFT (28U) +#define SDHC_FEVT_DMAE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_DMAE_SHIFT)) & SDHC_FEVT_DMAE_MASK) +#define SDHC_FEVT_CINT_MASK (0x80000000U) +#define SDHC_FEVT_CINT_SHIFT (31U) +#define SDHC_FEVT_CINT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_FEVT_CINT_SHIFT)) & SDHC_FEVT_CINT_MASK) + +/*! @name ADMAES - ADMA Error Status register */ +#define SDHC_ADMAES_ADMAES_MASK (0x3U) +#define SDHC_ADMAES_ADMAES_SHIFT (0U) +#define SDHC_ADMAES_ADMAES(x) (((uint32_t)(((uint32_t)(x)) << SDHC_ADMAES_ADMAES_SHIFT)) & SDHC_ADMAES_ADMAES_MASK) +#define SDHC_ADMAES_ADMALME_MASK (0x4U) +#define SDHC_ADMAES_ADMALME_SHIFT (2U) +#define SDHC_ADMAES_ADMALME(x) (((uint32_t)(((uint32_t)(x)) << SDHC_ADMAES_ADMALME_SHIFT)) & SDHC_ADMAES_ADMALME_MASK) +#define SDHC_ADMAES_ADMADCE_MASK (0x8U) +#define SDHC_ADMAES_ADMADCE_SHIFT (3U) +#define SDHC_ADMAES_ADMADCE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_ADMAES_ADMADCE_SHIFT)) & SDHC_ADMAES_ADMADCE_MASK) + +/*! @name ADSADDR - ADMA System Addressregister */ +#define SDHC_ADSADDR_ADSADDR_MASK (0xFFFFFFFCU) +#define SDHC_ADSADDR_ADSADDR_SHIFT (2U) +#define SDHC_ADSADDR_ADSADDR(x) (((uint32_t)(((uint32_t)(x)) << SDHC_ADSADDR_ADSADDR_SHIFT)) & SDHC_ADSADDR_ADSADDR_MASK) + +/*! @name VENDOR - Vendor Specific register */ +#define SDHC_VENDOR_EXTDMAEN_MASK (0x1U) +#define SDHC_VENDOR_EXTDMAEN_SHIFT (0U) +#define SDHC_VENDOR_EXTDMAEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_VENDOR_EXTDMAEN_SHIFT)) & SDHC_VENDOR_EXTDMAEN_MASK) +#define SDHC_VENDOR_EXBLKNU_MASK (0x2U) +#define SDHC_VENDOR_EXBLKNU_SHIFT (1U) +#define SDHC_VENDOR_EXBLKNU(x) (((uint32_t)(((uint32_t)(x)) << SDHC_VENDOR_EXBLKNU_SHIFT)) & SDHC_VENDOR_EXBLKNU_MASK) +#define SDHC_VENDOR_INTSTVAL_MASK (0xFF0000U) +#define SDHC_VENDOR_INTSTVAL_SHIFT (16U) +#define SDHC_VENDOR_INTSTVAL(x) (((uint32_t)(((uint32_t)(x)) << SDHC_VENDOR_INTSTVAL_SHIFT)) & SDHC_VENDOR_INTSTVAL_MASK) + +/*! @name MMCBOOT - MMC Boot register */ +#define SDHC_MMCBOOT_DTOCVACK_MASK (0xFU) +#define SDHC_MMCBOOT_DTOCVACK_SHIFT (0U) +#define SDHC_MMCBOOT_DTOCVACK(x) (((uint32_t)(((uint32_t)(x)) << SDHC_MMCBOOT_DTOCVACK_SHIFT)) & SDHC_MMCBOOT_DTOCVACK_MASK) +#define SDHC_MMCBOOT_BOOTACK_MASK (0x10U) +#define SDHC_MMCBOOT_BOOTACK_SHIFT (4U) +#define SDHC_MMCBOOT_BOOTACK(x) (((uint32_t)(((uint32_t)(x)) << SDHC_MMCBOOT_BOOTACK_SHIFT)) & SDHC_MMCBOOT_BOOTACK_MASK) +#define SDHC_MMCBOOT_BOOTMODE_MASK (0x20U) +#define SDHC_MMCBOOT_BOOTMODE_SHIFT (5U) +#define SDHC_MMCBOOT_BOOTMODE(x) (((uint32_t)(((uint32_t)(x)) << SDHC_MMCBOOT_BOOTMODE_SHIFT)) & SDHC_MMCBOOT_BOOTMODE_MASK) +#define SDHC_MMCBOOT_BOOTEN_MASK (0x40U) +#define SDHC_MMCBOOT_BOOTEN_SHIFT (6U) +#define SDHC_MMCBOOT_BOOTEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_MMCBOOT_BOOTEN_SHIFT)) & SDHC_MMCBOOT_BOOTEN_MASK) +#define SDHC_MMCBOOT_AUTOSABGEN_MASK (0x80U) +#define SDHC_MMCBOOT_AUTOSABGEN_SHIFT (7U) +#define SDHC_MMCBOOT_AUTOSABGEN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_MMCBOOT_AUTOSABGEN_SHIFT)) & SDHC_MMCBOOT_AUTOSABGEN_MASK) +#define SDHC_MMCBOOT_BOOTBLKCNT_MASK (0xFFFF0000U) +#define SDHC_MMCBOOT_BOOTBLKCNT_SHIFT (16U) +#define SDHC_MMCBOOT_BOOTBLKCNT(x) (((uint32_t)(((uint32_t)(x)) << SDHC_MMCBOOT_BOOTBLKCNT_SHIFT)) & SDHC_MMCBOOT_BOOTBLKCNT_MASK) + +/*! @name HOSTVER - Host Controller Version */ +#define SDHC_HOSTVER_SVN_MASK (0xFFU) +#define SDHC_HOSTVER_SVN_SHIFT (0U) +#define SDHC_HOSTVER_SVN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HOSTVER_SVN_SHIFT)) & SDHC_HOSTVER_SVN_MASK) +#define SDHC_HOSTVER_VVN_MASK (0xFF00U) +#define SDHC_HOSTVER_VVN_SHIFT (8U) +#define SDHC_HOSTVER_VVN(x) (((uint32_t)(((uint32_t)(x)) << SDHC_HOSTVER_VVN_SHIFT)) & SDHC_HOSTVER_VVN_MASK) + + +/*! + * @} + */ /* end of group SDHC_Register_Masks */ + + +/* SDHC - Peripheral instance base addresses */ +/** Peripheral SDHC base address */ +#define SDHC_BASE (0x400B1000u) +/** Peripheral SDHC base pointer */ +#define SDHC ((SDHC_Type *)SDHC_BASE) +/** Array initializer of SDHC peripheral base addresses */ +#define SDHC_BASE_ADDRS { SDHC_BASE } +/** Array initializer of SDHC peripheral base pointers */ +#define SDHC_BASE_PTRS { SDHC } +/** Interrupt vectors for the SDHC peripheral type */ +#define SDHC_IRQS { SDHC_IRQn } + +/*! + * @} + */ /* end of group SDHC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- SIM Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SIM_Peripheral_Access_Layer SIM Peripheral Access Layer + * @{ + */ + +/** SIM - Register Layout Typedef */ +typedef struct { + __IO uint32_t SOPT1; /**< System Options Register 1, offset: 0x0 */ + __IO uint32_t SOPT1CFG; /**< SOPT1 Configuration Register, offset: 0x4 */ + uint8_t RESERVED_0[4092]; + __IO uint32_t SOPT2; /**< System Options Register 2, offset: 0x1004 */ + uint8_t RESERVED_1[4]; + __IO uint32_t SOPT4; /**< System Options Register 4, offset: 0x100C */ + __IO uint32_t SOPT5; /**< System Options Register 5, offset: 0x1010 */ + uint8_t RESERVED_2[4]; + __IO uint32_t SOPT7; /**< System Options Register 7, offset: 0x1018 */ + uint8_t RESERVED_3[8]; + __I uint32_t SDID; /**< System Device Identification Register, offset: 0x1024 */ + __IO uint32_t SCGC1; /**< System Clock Gating Control Register 1, offset: 0x1028 */ + __IO uint32_t SCGC2; /**< System Clock Gating Control Register 2, offset: 0x102C */ + __IO uint32_t SCGC3; /**< System Clock Gating Control Register 3, offset: 0x1030 */ + __IO uint32_t SCGC4; /**< System Clock Gating Control Register 4, offset: 0x1034 */ + __IO uint32_t SCGC5; /**< System Clock Gating Control Register 5, offset: 0x1038 */ + __IO uint32_t SCGC6; /**< System Clock Gating Control Register 6, offset: 0x103C */ + __IO uint32_t SCGC7; /**< System Clock Gating Control Register 7, offset: 0x1040 */ + __IO uint32_t CLKDIV1; /**< System Clock Divider Register 1, offset: 0x1044 */ + __IO uint32_t CLKDIV2; /**< System Clock Divider Register 2, offset: 0x1048 */ + __IO uint32_t FCFG1; /**< Flash Configuration Register 1, offset: 0x104C */ + __I uint32_t FCFG2; /**< Flash Configuration Register 2, offset: 0x1050 */ + __I uint32_t UIDH; /**< Unique Identification Register High, offset: 0x1054 */ + __I uint32_t UIDMH; /**< Unique Identification Register Mid-High, offset: 0x1058 */ + __I uint32_t UIDML; /**< Unique Identification Register Mid Low, offset: 0x105C */ + __I uint32_t UIDL; /**< Unique Identification Register Low, offset: 0x1060 */ +} SIM_Type; + +/* ---------------------------------------------------------------------------- + -- SIM Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SIM_Register_Masks SIM Register Masks + * @{ + */ + +/*! @name SOPT1 - System Options Register 1 */ +#define SIM_SOPT1_RAMSIZE_MASK (0xF000U) +#define SIM_SOPT1_RAMSIZE_SHIFT (12U) +#define SIM_SOPT1_RAMSIZE(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1_RAMSIZE_SHIFT)) & SIM_SOPT1_RAMSIZE_MASK) +#define SIM_SOPT1_OSC32KSEL_MASK (0xC0000U) +#define SIM_SOPT1_OSC32KSEL_SHIFT (18U) +#define SIM_SOPT1_OSC32KSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1_OSC32KSEL_SHIFT)) & SIM_SOPT1_OSC32KSEL_MASK) +#define SIM_SOPT1_USBVSTBY_MASK (0x20000000U) +#define SIM_SOPT1_USBVSTBY_SHIFT (29U) +#define SIM_SOPT1_USBVSTBY(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1_USBVSTBY_SHIFT)) & SIM_SOPT1_USBVSTBY_MASK) +#define SIM_SOPT1_USBSSTBY_MASK (0x40000000U) +#define SIM_SOPT1_USBSSTBY_SHIFT (30U) +#define SIM_SOPT1_USBSSTBY(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1_USBSSTBY_SHIFT)) & SIM_SOPT1_USBSSTBY_MASK) +#define SIM_SOPT1_USBREGEN_MASK (0x80000000U) +#define SIM_SOPT1_USBREGEN_SHIFT (31U) +#define SIM_SOPT1_USBREGEN(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1_USBREGEN_SHIFT)) & SIM_SOPT1_USBREGEN_MASK) + +/*! @name SOPT1CFG - SOPT1 Configuration Register */ +#define SIM_SOPT1CFG_URWE_MASK (0x1000000U) +#define SIM_SOPT1CFG_URWE_SHIFT (24U) +#define SIM_SOPT1CFG_URWE(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1CFG_URWE_SHIFT)) & SIM_SOPT1CFG_URWE_MASK) +#define SIM_SOPT1CFG_UVSWE_MASK (0x2000000U) +#define SIM_SOPT1CFG_UVSWE_SHIFT (25U) +#define SIM_SOPT1CFG_UVSWE(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1CFG_UVSWE_SHIFT)) & SIM_SOPT1CFG_UVSWE_MASK) +#define SIM_SOPT1CFG_USSWE_MASK (0x4000000U) +#define SIM_SOPT1CFG_USSWE_SHIFT (26U) +#define SIM_SOPT1CFG_USSWE(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT1CFG_USSWE_SHIFT)) & SIM_SOPT1CFG_USSWE_MASK) + +/*! @name SOPT2 - System Options Register 2 */ +#define SIM_SOPT2_RTCCLKOUTSEL_MASK (0x10U) +#define SIM_SOPT2_RTCCLKOUTSEL_SHIFT (4U) +#define SIM_SOPT2_RTCCLKOUTSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_RTCCLKOUTSEL_SHIFT)) & SIM_SOPT2_RTCCLKOUTSEL_MASK) +#define SIM_SOPT2_CLKOUTSEL_MASK (0xE0U) +#define SIM_SOPT2_CLKOUTSEL_SHIFT (5U) +#define SIM_SOPT2_CLKOUTSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_CLKOUTSEL_SHIFT)) & SIM_SOPT2_CLKOUTSEL_MASK) +#define SIM_SOPT2_FBSL_MASK (0x300U) +#define SIM_SOPT2_FBSL_SHIFT (8U) +#define SIM_SOPT2_FBSL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_FBSL_SHIFT)) & SIM_SOPT2_FBSL_MASK) +#define SIM_SOPT2_PTD7PAD_MASK (0x800U) +#define SIM_SOPT2_PTD7PAD_SHIFT (11U) +#define SIM_SOPT2_PTD7PAD(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_PTD7PAD_SHIFT)) & SIM_SOPT2_PTD7PAD_MASK) +#define SIM_SOPT2_TRACECLKSEL_MASK (0x1000U) +#define SIM_SOPT2_TRACECLKSEL_SHIFT (12U) +#define SIM_SOPT2_TRACECLKSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_TRACECLKSEL_SHIFT)) & SIM_SOPT2_TRACECLKSEL_MASK) +#define SIM_SOPT2_PLLFLLSEL_MASK (0x30000U) +#define SIM_SOPT2_PLLFLLSEL_SHIFT (16U) +#define SIM_SOPT2_PLLFLLSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_PLLFLLSEL_SHIFT)) & SIM_SOPT2_PLLFLLSEL_MASK) +#define SIM_SOPT2_USBSRC_MASK (0x40000U) +#define SIM_SOPT2_USBSRC_SHIFT (18U) +#define SIM_SOPT2_USBSRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_USBSRC_SHIFT)) & SIM_SOPT2_USBSRC_MASK) +#define SIM_SOPT2_RMIISRC_MASK (0x80000U) +#define SIM_SOPT2_RMIISRC_SHIFT (19U) +#define SIM_SOPT2_RMIISRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_RMIISRC_SHIFT)) & SIM_SOPT2_RMIISRC_MASK) +#define SIM_SOPT2_TIMESRC_MASK (0x300000U) +#define SIM_SOPT2_TIMESRC_SHIFT (20U) +#define SIM_SOPT2_TIMESRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_TIMESRC_SHIFT)) & SIM_SOPT2_TIMESRC_MASK) +#define SIM_SOPT2_SDHCSRC_MASK (0x30000000U) +#define SIM_SOPT2_SDHCSRC_SHIFT (28U) +#define SIM_SOPT2_SDHCSRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT2_SDHCSRC_SHIFT)) & SIM_SOPT2_SDHCSRC_MASK) + +/*! @name SOPT4 - System Options Register 4 */ +#define SIM_SOPT4_FTM0FLT0_MASK (0x1U) +#define SIM_SOPT4_FTM0FLT0_SHIFT (0U) +#define SIM_SOPT4_FTM0FLT0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM0FLT0_SHIFT)) & SIM_SOPT4_FTM0FLT0_MASK) +#define SIM_SOPT4_FTM0FLT1_MASK (0x2U) +#define SIM_SOPT4_FTM0FLT1_SHIFT (1U) +#define SIM_SOPT4_FTM0FLT1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM0FLT1_SHIFT)) & SIM_SOPT4_FTM0FLT1_MASK) +#define SIM_SOPT4_FTM0FLT2_MASK (0x4U) +#define SIM_SOPT4_FTM0FLT2_SHIFT (2U) +#define SIM_SOPT4_FTM0FLT2(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM0FLT2_SHIFT)) & SIM_SOPT4_FTM0FLT2_MASK) +#define SIM_SOPT4_FTM1FLT0_MASK (0x10U) +#define SIM_SOPT4_FTM1FLT0_SHIFT (4U) +#define SIM_SOPT4_FTM1FLT0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM1FLT0_SHIFT)) & SIM_SOPT4_FTM1FLT0_MASK) +#define SIM_SOPT4_FTM2FLT0_MASK (0x100U) +#define SIM_SOPT4_FTM2FLT0_SHIFT (8U) +#define SIM_SOPT4_FTM2FLT0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM2FLT0_SHIFT)) & SIM_SOPT4_FTM2FLT0_MASK) +#define SIM_SOPT4_FTM3FLT0_MASK (0x1000U) +#define SIM_SOPT4_FTM3FLT0_SHIFT (12U) +#define SIM_SOPT4_FTM3FLT0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM3FLT0_SHIFT)) & SIM_SOPT4_FTM3FLT0_MASK) +#define SIM_SOPT4_FTM1CH0SRC_MASK (0xC0000U) +#define SIM_SOPT4_FTM1CH0SRC_SHIFT (18U) +#define SIM_SOPT4_FTM1CH0SRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM1CH0SRC_SHIFT)) & SIM_SOPT4_FTM1CH0SRC_MASK) +#define SIM_SOPT4_FTM2CH0SRC_MASK (0x300000U) +#define SIM_SOPT4_FTM2CH0SRC_SHIFT (20U) +#define SIM_SOPT4_FTM2CH0SRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM2CH0SRC_SHIFT)) & SIM_SOPT4_FTM2CH0SRC_MASK) +#define SIM_SOPT4_FTM0CLKSEL_MASK (0x1000000U) +#define SIM_SOPT4_FTM0CLKSEL_SHIFT (24U) +#define SIM_SOPT4_FTM0CLKSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM0CLKSEL_SHIFT)) & SIM_SOPT4_FTM0CLKSEL_MASK) +#define SIM_SOPT4_FTM1CLKSEL_MASK (0x2000000U) +#define SIM_SOPT4_FTM1CLKSEL_SHIFT (25U) +#define SIM_SOPT4_FTM1CLKSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM1CLKSEL_SHIFT)) & SIM_SOPT4_FTM1CLKSEL_MASK) +#define SIM_SOPT4_FTM2CLKSEL_MASK (0x4000000U) +#define SIM_SOPT4_FTM2CLKSEL_SHIFT (26U) +#define SIM_SOPT4_FTM2CLKSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM2CLKSEL_SHIFT)) & SIM_SOPT4_FTM2CLKSEL_MASK) +#define SIM_SOPT4_FTM3CLKSEL_MASK (0x8000000U) +#define SIM_SOPT4_FTM3CLKSEL_SHIFT (27U) +#define SIM_SOPT4_FTM3CLKSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM3CLKSEL_SHIFT)) & SIM_SOPT4_FTM3CLKSEL_MASK) +#define SIM_SOPT4_FTM0TRG0SRC_MASK (0x10000000U) +#define SIM_SOPT4_FTM0TRG0SRC_SHIFT (28U) +#define SIM_SOPT4_FTM0TRG0SRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM0TRG0SRC_SHIFT)) & SIM_SOPT4_FTM0TRG0SRC_MASK) +#define SIM_SOPT4_FTM0TRG1SRC_MASK (0x20000000U) +#define SIM_SOPT4_FTM0TRG1SRC_SHIFT (29U) +#define SIM_SOPT4_FTM0TRG1SRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM0TRG1SRC_SHIFT)) & SIM_SOPT4_FTM0TRG1SRC_MASK) +#define SIM_SOPT4_FTM3TRG0SRC_MASK (0x40000000U) +#define SIM_SOPT4_FTM3TRG0SRC_SHIFT (30U) +#define SIM_SOPT4_FTM3TRG0SRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM3TRG0SRC_SHIFT)) & SIM_SOPT4_FTM3TRG0SRC_MASK) +#define SIM_SOPT4_FTM3TRG1SRC_MASK (0x80000000U) +#define SIM_SOPT4_FTM3TRG1SRC_SHIFT (31U) +#define SIM_SOPT4_FTM3TRG1SRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT4_FTM3TRG1SRC_SHIFT)) & SIM_SOPT4_FTM3TRG1SRC_MASK) + +/*! @name SOPT5 - System Options Register 5 */ +#define SIM_SOPT5_UART0TXSRC_MASK (0x3U) +#define SIM_SOPT5_UART0TXSRC_SHIFT (0U) +#define SIM_SOPT5_UART0TXSRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT5_UART0TXSRC_SHIFT)) & SIM_SOPT5_UART0TXSRC_MASK) +#define SIM_SOPT5_UART0RXSRC_MASK (0xCU) +#define SIM_SOPT5_UART0RXSRC_SHIFT (2U) +#define SIM_SOPT5_UART0RXSRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT5_UART0RXSRC_SHIFT)) & SIM_SOPT5_UART0RXSRC_MASK) +#define SIM_SOPT5_UART1TXSRC_MASK (0x30U) +#define SIM_SOPT5_UART1TXSRC_SHIFT (4U) +#define SIM_SOPT5_UART1TXSRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT5_UART1TXSRC_SHIFT)) & SIM_SOPT5_UART1TXSRC_MASK) +#define SIM_SOPT5_UART1RXSRC_MASK (0xC0U) +#define SIM_SOPT5_UART1RXSRC_SHIFT (6U) +#define SIM_SOPT5_UART1RXSRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT5_UART1RXSRC_SHIFT)) & SIM_SOPT5_UART1RXSRC_MASK) + +/*! @name SOPT7 - System Options Register 7 */ +#define SIM_SOPT7_ADC0TRGSEL_MASK (0xFU) +#define SIM_SOPT7_ADC0TRGSEL_SHIFT (0U) +#define SIM_SOPT7_ADC0TRGSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT7_ADC0TRGSEL_SHIFT)) & SIM_SOPT7_ADC0TRGSEL_MASK) +#define SIM_SOPT7_ADC0PRETRGSEL_MASK (0x10U) +#define SIM_SOPT7_ADC0PRETRGSEL_SHIFT (4U) +#define SIM_SOPT7_ADC0PRETRGSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT7_ADC0PRETRGSEL_SHIFT)) & SIM_SOPT7_ADC0PRETRGSEL_MASK) +#define SIM_SOPT7_ADC0ALTTRGEN_MASK (0x80U) +#define SIM_SOPT7_ADC0ALTTRGEN_SHIFT (7U) +#define SIM_SOPT7_ADC0ALTTRGEN(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT7_ADC0ALTTRGEN_SHIFT)) & SIM_SOPT7_ADC0ALTTRGEN_MASK) +#define SIM_SOPT7_ADC1TRGSEL_MASK (0xF00U) +#define SIM_SOPT7_ADC1TRGSEL_SHIFT (8U) +#define SIM_SOPT7_ADC1TRGSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT7_ADC1TRGSEL_SHIFT)) & SIM_SOPT7_ADC1TRGSEL_MASK) +#define SIM_SOPT7_ADC1PRETRGSEL_MASK (0x1000U) +#define SIM_SOPT7_ADC1PRETRGSEL_SHIFT (12U) +#define SIM_SOPT7_ADC1PRETRGSEL(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT7_ADC1PRETRGSEL_SHIFT)) & SIM_SOPT7_ADC1PRETRGSEL_MASK) +#define SIM_SOPT7_ADC1ALTTRGEN_MASK (0x8000U) +#define SIM_SOPT7_ADC1ALTTRGEN_SHIFT (15U) +#define SIM_SOPT7_ADC1ALTTRGEN(x) (((uint32_t)(((uint32_t)(x)) << SIM_SOPT7_ADC1ALTTRGEN_SHIFT)) & SIM_SOPT7_ADC1ALTTRGEN_MASK) + +/*! @name SDID - System Device Identification Register */ +#define SIM_SDID_PINID_MASK (0xFU) +#define SIM_SDID_PINID_SHIFT (0U) +#define SIM_SDID_PINID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_PINID_SHIFT)) & SIM_SDID_PINID_MASK) +#define SIM_SDID_FAMID_MASK (0x70U) +#define SIM_SDID_FAMID_SHIFT (4U) +#define SIM_SDID_FAMID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_FAMID_SHIFT)) & SIM_SDID_FAMID_MASK) +#define SIM_SDID_DIEID_MASK (0xF80U) +#define SIM_SDID_DIEID_SHIFT (7U) +#define SIM_SDID_DIEID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_DIEID_SHIFT)) & SIM_SDID_DIEID_MASK) +#define SIM_SDID_REVID_MASK (0xF000U) +#define SIM_SDID_REVID_SHIFT (12U) +#define SIM_SDID_REVID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_REVID_SHIFT)) & SIM_SDID_REVID_MASK) +#define SIM_SDID_SERIESID_MASK (0xF00000U) +#define SIM_SDID_SERIESID_SHIFT (20U) +#define SIM_SDID_SERIESID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_SERIESID_SHIFT)) & SIM_SDID_SERIESID_MASK) +#define SIM_SDID_SUBFAMID_MASK (0xF000000U) +#define SIM_SDID_SUBFAMID_SHIFT (24U) +#define SIM_SDID_SUBFAMID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_SUBFAMID_SHIFT)) & SIM_SDID_SUBFAMID_MASK) +#define SIM_SDID_FAMILYID_MASK (0xF0000000U) +#define SIM_SDID_FAMILYID_SHIFT (28U) +#define SIM_SDID_FAMILYID(x) (((uint32_t)(((uint32_t)(x)) << SIM_SDID_FAMILYID_SHIFT)) & SIM_SDID_FAMILYID_MASK) + +/*! @name SCGC1 - System Clock Gating Control Register 1 */ +#define SIM_SCGC1_I2C2_MASK (0x40U) +#define SIM_SCGC1_I2C2_SHIFT (6U) +#define SIM_SCGC1_I2C2(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC1_I2C2_SHIFT)) & SIM_SCGC1_I2C2_MASK) +#define SIM_SCGC1_UART4_MASK (0x400U) +#define SIM_SCGC1_UART4_SHIFT (10U) +#define SIM_SCGC1_UART4(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC1_UART4_SHIFT)) & SIM_SCGC1_UART4_MASK) +#define SIM_SCGC1_UART5_MASK (0x800U) +#define SIM_SCGC1_UART5_SHIFT (11U) +#define SIM_SCGC1_UART5(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC1_UART5_SHIFT)) & SIM_SCGC1_UART5_MASK) + +/*! @name SCGC2 - System Clock Gating Control Register 2 */ +#define SIM_SCGC2_ENET_MASK (0x1U) +#define SIM_SCGC2_ENET_SHIFT (0U) +#define SIM_SCGC2_ENET(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC2_ENET_SHIFT)) & SIM_SCGC2_ENET_MASK) +#define SIM_SCGC2_DAC0_MASK (0x1000U) +#define SIM_SCGC2_DAC0_SHIFT (12U) +#define SIM_SCGC2_DAC0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC2_DAC0_SHIFT)) & SIM_SCGC2_DAC0_MASK) +#define SIM_SCGC2_DAC1_MASK (0x2000U) +#define SIM_SCGC2_DAC1_SHIFT (13U) +#define SIM_SCGC2_DAC1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC2_DAC1_SHIFT)) & SIM_SCGC2_DAC1_MASK) + +/*! @name SCGC3 - System Clock Gating Control Register 3 */ +#define SIM_SCGC3_RNGA_MASK (0x1U) +#define SIM_SCGC3_RNGA_SHIFT (0U) +#define SIM_SCGC3_RNGA(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC3_RNGA_SHIFT)) & SIM_SCGC3_RNGA_MASK) +#define SIM_SCGC3_SPI2_MASK (0x1000U) +#define SIM_SCGC3_SPI2_SHIFT (12U) +#define SIM_SCGC3_SPI2(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC3_SPI2_SHIFT)) & SIM_SCGC3_SPI2_MASK) +#define SIM_SCGC3_SDHC_MASK (0x20000U) +#define SIM_SCGC3_SDHC_SHIFT (17U) +#define SIM_SCGC3_SDHC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC3_SDHC_SHIFT)) & SIM_SCGC3_SDHC_MASK) +#define SIM_SCGC3_FTM2_MASK (0x1000000U) +#define SIM_SCGC3_FTM2_SHIFT (24U) +#define SIM_SCGC3_FTM2(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC3_FTM2_SHIFT)) & SIM_SCGC3_FTM2_MASK) +#define SIM_SCGC3_FTM3_MASK (0x2000000U) +#define SIM_SCGC3_FTM3_SHIFT (25U) +#define SIM_SCGC3_FTM3(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC3_FTM3_SHIFT)) & SIM_SCGC3_FTM3_MASK) +#define SIM_SCGC3_ADC1_MASK (0x8000000U) +#define SIM_SCGC3_ADC1_SHIFT (27U) +#define SIM_SCGC3_ADC1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC3_ADC1_SHIFT)) & SIM_SCGC3_ADC1_MASK) + +/*! @name SCGC4 - System Clock Gating Control Register 4 */ +#define SIM_SCGC4_EWM_MASK (0x2U) +#define SIM_SCGC4_EWM_SHIFT (1U) +#define SIM_SCGC4_EWM(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_EWM_SHIFT)) & SIM_SCGC4_EWM_MASK) +#define SIM_SCGC4_CMT_MASK (0x4U) +#define SIM_SCGC4_CMT_SHIFT (2U) +#define SIM_SCGC4_CMT(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_CMT_SHIFT)) & SIM_SCGC4_CMT_MASK) +#define SIM_SCGC4_I2C0_MASK (0x40U) +#define SIM_SCGC4_I2C0_SHIFT (6U) +#define SIM_SCGC4_I2C0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_I2C0_SHIFT)) & SIM_SCGC4_I2C0_MASK) +#define SIM_SCGC4_I2C1_MASK (0x80U) +#define SIM_SCGC4_I2C1_SHIFT (7U) +#define SIM_SCGC4_I2C1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_I2C1_SHIFT)) & SIM_SCGC4_I2C1_MASK) +#define SIM_SCGC4_UART0_MASK (0x400U) +#define SIM_SCGC4_UART0_SHIFT (10U) +#define SIM_SCGC4_UART0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_UART0_SHIFT)) & SIM_SCGC4_UART0_MASK) +#define SIM_SCGC4_UART1_MASK (0x800U) +#define SIM_SCGC4_UART1_SHIFT (11U) +#define SIM_SCGC4_UART1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_UART1_SHIFT)) & SIM_SCGC4_UART1_MASK) +#define SIM_SCGC4_UART2_MASK (0x1000U) +#define SIM_SCGC4_UART2_SHIFT (12U) +#define SIM_SCGC4_UART2(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_UART2_SHIFT)) & SIM_SCGC4_UART2_MASK) +#define SIM_SCGC4_UART3_MASK (0x2000U) +#define SIM_SCGC4_UART3_SHIFT (13U) +#define SIM_SCGC4_UART3(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_UART3_SHIFT)) & SIM_SCGC4_UART3_MASK) +#define SIM_SCGC4_USBOTG_MASK (0x40000U) +#define SIM_SCGC4_USBOTG_SHIFT (18U) +#define SIM_SCGC4_USBOTG(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_USBOTG_SHIFT)) & SIM_SCGC4_USBOTG_MASK) +#define SIM_SCGC4_CMP_MASK (0x80000U) +#define SIM_SCGC4_CMP_SHIFT (19U) +#define SIM_SCGC4_CMP(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_CMP_SHIFT)) & SIM_SCGC4_CMP_MASK) +#define SIM_SCGC4_VREF_MASK (0x100000U) +#define SIM_SCGC4_VREF_SHIFT (20U) +#define SIM_SCGC4_VREF(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC4_VREF_SHIFT)) & SIM_SCGC4_VREF_MASK) + +/*! @name SCGC5 - System Clock Gating Control Register 5 */ +#define SIM_SCGC5_LPTMR_MASK (0x1U) +#define SIM_SCGC5_LPTMR_SHIFT (0U) +#define SIM_SCGC5_LPTMR(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC5_LPTMR_SHIFT)) & SIM_SCGC5_LPTMR_MASK) +#define SIM_SCGC5_PORTA_MASK (0x200U) +#define SIM_SCGC5_PORTA_SHIFT (9U) +#define SIM_SCGC5_PORTA(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC5_PORTA_SHIFT)) & SIM_SCGC5_PORTA_MASK) +#define SIM_SCGC5_PORTB_MASK (0x400U) +#define SIM_SCGC5_PORTB_SHIFT (10U) +#define SIM_SCGC5_PORTB(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC5_PORTB_SHIFT)) & SIM_SCGC5_PORTB_MASK) +#define SIM_SCGC5_PORTC_MASK (0x800U) +#define SIM_SCGC5_PORTC_SHIFT (11U) +#define SIM_SCGC5_PORTC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC5_PORTC_SHIFT)) & SIM_SCGC5_PORTC_MASK) +#define SIM_SCGC5_PORTD_MASK (0x1000U) +#define SIM_SCGC5_PORTD_SHIFT (12U) +#define SIM_SCGC5_PORTD(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC5_PORTD_SHIFT)) & SIM_SCGC5_PORTD_MASK) +#define SIM_SCGC5_PORTE_MASK (0x2000U) +#define SIM_SCGC5_PORTE_SHIFT (13U) +#define SIM_SCGC5_PORTE(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC5_PORTE_SHIFT)) & SIM_SCGC5_PORTE_MASK) + +/*! @name SCGC6 - System Clock Gating Control Register 6 */ +#define SIM_SCGC6_FTF_MASK (0x1U) +#define SIM_SCGC6_FTF_SHIFT (0U) +#define SIM_SCGC6_FTF(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_FTF_SHIFT)) & SIM_SCGC6_FTF_MASK) +#define SIM_SCGC6_DMAMUX_MASK (0x2U) +#define SIM_SCGC6_DMAMUX_SHIFT (1U) +#define SIM_SCGC6_DMAMUX(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_DMAMUX_SHIFT)) & SIM_SCGC6_DMAMUX_MASK) +#define SIM_SCGC6_FLEXCAN0_MASK (0x10U) +#define SIM_SCGC6_FLEXCAN0_SHIFT (4U) +#define SIM_SCGC6_FLEXCAN0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_FLEXCAN0_SHIFT)) & SIM_SCGC6_FLEXCAN0_MASK) +#define SIM_SCGC6_RNGA_MASK (0x200U) +#define SIM_SCGC6_RNGA_SHIFT (9U) +#define SIM_SCGC6_RNGA(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_RNGA_SHIFT)) & SIM_SCGC6_RNGA_MASK) +#define SIM_SCGC6_SPI0_MASK (0x1000U) +#define SIM_SCGC6_SPI0_SHIFT (12U) +#define SIM_SCGC6_SPI0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_SPI0_SHIFT)) & SIM_SCGC6_SPI0_MASK) +#define SIM_SCGC6_SPI1_MASK (0x2000U) +#define SIM_SCGC6_SPI1_SHIFT (13U) +#define SIM_SCGC6_SPI1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_SPI1_SHIFT)) & SIM_SCGC6_SPI1_MASK) +#define SIM_SCGC6_I2S_MASK (0x8000U) +#define SIM_SCGC6_I2S_SHIFT (15U) +#define SIM_SCGC6_I2S(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_I2S_SHIFT)) & SIM_SCGC6_I2S_MASK) +#define SIM_SCGC6_CRC_MASK (0x40000U) +#define SIM_SCGC6_CRC_SHIFT (18U) +#define SIM_SCGC6_CRC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_CRC_SHIFT)) & SIM_SCGC6_CRC_MASK) +#define SIM_SCGC6_USBDCD_MASK (0x200000U) +#define SIM_SCGC6_USBDCD_SHIFT (21U) +#define SIM_SCGC6_USBDCD(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_USBDCD_SHIFT)) & SIM_SCGC6_USBDCD_MASK) +#define SIM_SCGC6_PDB_MASK (0x400000U) +#define SIM_SCGC6_PDB_SHIFT (22U) +#define SIM_SCGC6_PDB(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_PDB_SHIFT)) & SIM_SCGC6_PDB_MASK) +#define SIM_SCGC6_PIT_MASK (0x800000U) +#define SIM_SCGC6_PIT_SHIFT (23U) +#define SIM_SCGC6_PIT(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_PIT_SHIFT)) & SIM_SCGC6_PIT_MASK) +#define SIM_SCGC6_FTM0_MASK (0x1000000U) +#define SIM_SCGC6_FTM0_SHIFT (24U) +#define SIM_SCGC6_FTM0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_FTM0_SHIFT)) & SIM_SCGC6_FTM0_MASK) +#define SIM_SCGC6_FTM1_MASK (0x2000000U) +#define SIM_SCGC6_FTM1_SHIFT (25U) +#define SIM_SCGC6_FTM1(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_FTM1_SHIFT)) & SIM_SCGC6_FTM1_MASK) +#define SIM_SCGC6_FTM2_MASK (0x4000000U) +#define SIM_SCGC6_FTM2_SHIFT (26U) +#define SIM_SCGC6_FTM2(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_FTM2_SHIFT)) & SIM_SCGC6_FTM2_MASK) +#define SIM_SCGC6_ADC0_MASK (0x8000000U) +#define SIM_SCGC6_ADC0_SHIFT (27U) +#define SIM_SCGC6_ADC0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_ADC0_SHIFT)) & SIM_SCGC6_ADC0_MASK) +#define SIM_SCGC6_RTC_MASK (0x20000000U) +#define SIM_SCGC6_RTC_SHIFT (29U) +#define SIM_SCGC6_RTC(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_RTC_SHIFT)) & SIM_SCGC6_RTC_MASK) +#define SIM_SCGC6_DAC0_MASK (0x80000000U) +#define SIM_SCGC6_DAC0_SHIFT (31U) +#define SIM_SCGC6_DAC0(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC6_DAC0_SHIFT)) & SIM_SCGC6_DAC0_MASK) + +/*! @name SCGC7 - System Clock Gating Control Register 7 */ +#define SIM_SCGC7_FLEXBUS_MASK (0x1U) +#define SIM_SCGC7_FLEXBUS_SHIFT (0U) +#define SIM_SCGC7_FLEXBUS(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC7_FLEXBUS_SHIFT)) & SIM_SCGC7_FLEXBUS_MASK) +#define SIM_SCGC7_DMA_MASK (0x2U) +#define SIM_SCGC7_DMA_SHIFT (1U) +#define SIM_SCGC7_DMA(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC7_DMA_SHIFT)) & SIM_SCGC7_DMA_MASK) +#define SIM_SCGC7_MPU_MASK (0x4U) +#define SIM_SCGC7_MPU_SHIFT (2U) +#define SIM_SCGC7_MPU(x) (((uint32_t)(((uint32_t)(x)) << SIM_SCGC7_MPU_SHIFT)) & SIM_SCGC7_MPU_MASK) + +/*! @name CLKDIV1 - System Clock Divider Register 1 */ +#define SIM_CLKDIV1_OUTDIV4_MASK (0xF0000U) +#define SIM_CLKDIV1_OUTDIV4_SHIFT (16U) +#define SIM_CLKDIV1_OUTDIV4(x) (((uint32_t)(((uint32_t)(x)) << SIM_CLKDIV1_OUTDIV4_SHIFT)) & SIM_CLKDIV1_OUTDIV4_MASK) +#define SIM_CLKDIV1_OUTDIV3_MASK (0xF00000U) +#define SIM_CLKDIV1_OUTDIV3_SHIFT (20U) +#define SIM_CLKDIV1_OUTDIV3(x) (((uint32_t)(((uint32_t)(x)) << SIM_CLKDIV1_OUTDIV3_SHIFT)) & SIM_CLKDIV1_OUTDIV3_MASK) +#define SIM_CLKDIV1_OUTDIV2_MASK (0xF000000U) +#define SIM_CLKDIV1_OUTDIV2_SHIFT (24U) +#define SIM_CLKDIV1_OUTDIV2(x) (((uint32_t)(((uint32_t)(x)) << SIM_CLKDIV1_OUTDIV2_SHIFT)) & SIM_CLKDIV1_OUTDIV2_MASK) +#define SIM_CLKDIV1_OUTDIV1_MASK (0xF0000000U) +#define SIM_CLKDIV1_OUTDIV1_SHIFT (28U) +#define SIM_CLKDIV1_OUTDIV1(x) (((uint32_t)(((uint32_t)(x)) << SIM_CLKDIV1_OUTDIV1_SHIFT)) & SIM_CLKDIV1_OUTDIV1_MASK) + +/*! @name CLKDIV2 - System Clock Divider Register 2 */ +#define SIM_CLKDIV2_USBFRAC_MASK (0x1U) +#define SIM_CLKDIV2_USBFRAC_SHIFT (0U) +#define SIM_CLKDIV2_USBFRAC(x) (((uint32_t)(((uint32_t)(x)) << SIM_CLKDIV2_USBFRAC_SHIFT)) & SIM_CLKDIV2_USBFRAC_MASK) +#define SIM_CLKDIV2_USBDIV_MASK (0xEU) +#define SIM_CLKDIV2_USBDIV_SHIFT (1U) +#define SIM_CLKDIV2_USBDIV(x) (((uint32_t)(((uint32_t)(x)) << SIM_CLKDIV2_USBDIV_SHIFT)) & SIM_CLKDIV2_USBDIV_MASK) + +/*! @name FCFG1 - Flash Configuration Register 1 */ +#define SIM_FCFG1_FLASHDIS_MASK (0x1U) +#define SIM_FCFG1_FLASHDIS_SHIFT (0U) +#define SIM_FCFG1_FLASHDIS(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLASHDIS_SHIFT)) & SIM_FCFG1_FLASHDIS_MASK) +#define SIM_FCFG1_FLASHDOZE_MASK (0x2U) +#define SIM_FCFG1_FLASHDOZE_SHIFT (1U) +#define SIM_FCFG1_FLASHDOZE(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLASHDOZE_SHIFT)) & SIM_FCFG1_FLASHDOZE_MASK) +#define SIM_FCFG1_DEPART_MASK (0xF00U) +#define SIM_FCFG1_DEPART_SHIFT (8U) +#define SIM_FCFG1_DEPART(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_DEPART_SHIFT)) & SIM_FCFG1_DEPART_MASK) +#define SIM_FCFG1_EESIZE_MASK (0xF0000U) +#define SIM_FCFG1_EESIZE_SHIFT (16U) +#define SIM_FCFG1_EESIZE(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_EESIZE_SHIFT)) & SIM_FCFG1_EESIZE_MASK) +#define SIM_FCFG1_PFSIZE_MASK (0xF000000U) +#define SIM_FCFG1_PFSIZE_SHIFT (24U) +#define SIM_FCFG1_PFSIZE(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_PFSIZE_SHIFT)) & SIM_FCFG1_PFSIZE_MASK) +#define SIM_FCFG1_NVMSIZE_MASK (0xF0000000U) +#define SIM_FCFG1_NVMSIZE_SHIFT (28U) +#define SIM_FCFG1_NVMSIZE(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_NVMSIZE_SHIFT)) & SIM_FCFG1_NVMSIZE_MASK) + +/*! @name FCFG2 - Flash Configuration Register 2 */ +#define SIM_FCFG2_MAXADDR1_MASK (0x7F0000U) +#define SIM_FCFG2_MAXADDR1_SHIFT (16U) +#define SIM_FCFG2_MAXADDR1(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_MAXADDR1_SHIFT)) & SIM_FCFG2_MAXADDR1_MASK) +#define SIM_FCFG2_PFLSH_MASK (0x800000U) +#define SIM_FCFG2_PFLSH_SHIFT (23U) +#define SIM_FCFG2_PFLSH(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_PFLSH_SHIFT)) & SIM_FCFG2_PFLSH_MASK) +#define SIM_FCFG2_MAXADDR0_MASK (0x7F000000U) +#define SIM_FCFG2_MAXADDR0_SHIFT (24U) +#define SIM_FCFG2_MAXADDR0(x) (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_MAXADDR0_SHIFT)) & SIM_FCFG2_MAXADDR0_MASK) + +/*! @name UIDH - Unique Identification Register High */ +#define SIM_UIDH_UID_MASK (0xFFFFFFFFU) +#define SIM_UIDH_UID_SHIFT (0U) +#define SIM_UIDH_UID(x) (((uint32_t)(((uint32_t)(x)) << SIM_UIDH_UID_SHIFT)) & SIM_UIDH_UID_MASK) + +/*! @name UIDMH - Unique Identification Register Mid-High */ +#define SIM_UIDMH_UID_MASK (0xFFFFFFFFU) +#define SIM_UIDMH_UID_SHIFT (0U) +#define SIM_UIDMH_UID(x) (((uint32_t)(((uint32_t)(x)) << SIM_UIDMH_UID_SHIFT)) & SIM_UIDMH_UID_MASK) + +/*! @name UIDML - Unique Identification Register Mid Low */ +#define SIM_UIDML_UID_MASK (0xFFFFFFFFU) +#define SIM_UIDML_UID_SHIFT (0U) +#define SIM_UIDML_UID(x) (((uint32_t)(((uint32_t)(x)) << SIM_UIDML_UID_SHIFT)) & SIM_UIDML_UID_MASK) + +/*! @name UIDL - Unique Identification Register Low */ +#define SIM_UIDL_UID_MASK (0xFFFFFFFFU) +#define SIM_UIDL_UID_SHIFT (0U) +#define SIM_UIDL_UID(x) (((uint32_t)(((uint32_t)(x)) << SIM_UIDL_UID_SHIFT)) & SIM_UIDL_UID_MASK) + + +/*! + * @} + */ /* end of group SIM_Register_Masks */ + + +/* SIM - Peripheral instance base addresses */ +/** Peripheral SIM base address */ +#define SIM_BASE (0x40047000u) +/** Peripheral SIM base pointer */ +#define SIM ((SIM_Type *)SIM_BASE) +/** Array initializer of SIM peripheral base addresses */ +#define SIM_BASE_ADDRS { SIM_BASE } +/** Array initializer of SIM peripheral base pointers */ +#define SIM_BASE_PTRS { SIM } + +/*! + * @} + */ /* end of group SIM_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- SMC Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SMC_Peripheral_Access_Layer SMC Peripheral Access Layer + * @{ + */ + +/** SMC - Register Layout Typedef */ +typedef struct { + __IO uint8_t PMPROT; /**< Power Mode Protection register, offset: 0x0 */ + __IO uint8_t PMCTRL; /**< Power Mode Control register, offset: 0x1 */ + __IO uint8_t VLLSCTRL; /**< VLLS Control register, offset: 0x2 */ + __I uint8_t PMSTAT; /**< Power Mode Status register, offset: 0x3 */ +} SMC_Type; + +/* ---------------------------------------------------------------------------- + -- SMC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SMC_Register_Masks SMC Register Masks + * @{ + */ + +/*! @name PMPROT - Power Mode Protection register */ +#define SMC_PMPROT_AVLLS_MASK (0x2U) +#define SMC_PMPROT_AVLLS_SHIFT (1U) +#define SMC_PMPROT_AVLLS(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMPROT_AVLLS_SHIFT)) & SMC_PMPROT_AVLLS_MASK) +#define SMC_PMPROT_ALLS_MASK (0x8U) +#define SMC_PMPROT_ALLS_SHIFT (3U) +#define SMC_PMPROT_ALLS(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMPROT_ALLS_SHIFT)) & SMC_PMPROT_ALLS_MASK) +#define SMC_PMPROT_AVLP_MASK (0x20U) +#define SMC_PMPROT_AVLP_SHIFT (5U) +#define SMC_PMPROT_AVLP(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMPROT_AVLP_SHIFT)) & SMC_PMPROT_AVLP_MASK) + +/*! @name PMCTRL - Power Mode Control register */ +#define SMC_PMCTRL_STOPM_MASK (0x7U) +#define SMC_PMCTRL_STOPM_SHIFT (0U) +#define SMC_PMCTRL_STOPM(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMCTRL_STOPM_SHIFT)) & SMC_PMCTRL_STOPM_MASK) +#define SMC_PMCTRL_STOPA_MASK (0x8U) +#define SMC_PMCTRL_STOPA_SHIFT (3U) +#define SMC_PMCTRL_STOPA(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMCTRL_STOPA_SHIFT)) & SMC_PMCTRL_STOPA_MASK) +#define SMC_PMCTRL_RUNM_MASK (0x60U) +#define SMC_PMCTRL_RUNM_SHIFT (5U) +#define SMC_PMCTRL_RUNM(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMCTRL_RUNM_SHIFT)) & SMC_PMCTRL_RUNM_MASK) +#define SMC_PMCTRL_LPWUI_MASK (0x80U) +#define SMC_PMCTRL_LPWUI_SHIFT (7U) +#define SMC_PMCTRL_LPWUI(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMCTRL_LPWUI_SHIFT)) & SMC_PMCTRL_LPWUI_MASK) + +/*! @name VLLSCTRL - VLLS Control register */ +#define SMC_VLLSCTRL_VLLSM_MASK (0x7U) +#define SMC_VLLSCTRL_VLLSM_SHIFT (0U) +#define SMC_VLLSCTRL_VLLSM(x) (((uint8_t)(((uint8_t)(x)) << SMC_VLLSCTRL_VLLSM_SHIFT)) & SMC_VLLSCTRL_VLLSM_MASK) +#define SMC_VLLSCTRL_PORPO_MASK (0x20U) +#define SMC_VLLSCTRL_PORPO_SHIFT (5U) +#define SMC_VLLSCTRL_PORPO(x) (((uint8_t)(((uint8_t)(x)) << SMC_VLLSCTRL_PORPO_SHIFT)) & SMC_VLLSCTRL_PORPO_MASK) + +/*! @name PMSTAT - Power Mode Status register */ +#define SMC_PMSTAT_PMSTAT_MASK (0x7FU) +#define SMC_PMSTAT_PMSTAT_SHIFT (0U) +#define SMC_PMSTAT_PMSTAT(x) (((uint8_t)(((uint8_t)(x)) << SMC_PMSTAT_PMSTAT_SHIFT)) & SMC_PMSTAT_PMSTAT_MASK) + + +/*! + * @} + */ /* end of group SMC_Register_Masks */ + + +/* SMC - Peripheral instance base addresses */ +/** Peripheral SMC base address */ +#define SMC_BASE (0x4007E000u) +/** Peripheral SMC base pointer */ +#define SMC ((SMC_Type *)SMC_BASE) +/** Array initializer of SMC peripheral base addresses */ +#define SMC_BASE_ADDRS { SMC_BASE } +/** Array initializer of SMC peripheral base pointers */ +#define SMC_BASE_PTRS { SMC } + +/*! + * @} + */ /* end of group SMC_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- SPI Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SPI_Peripheral_Access_Layer SPI Peripheral Access Layer + * @{ + */ + +/** SPI - Register Layout Typedef */ +typedef struct { + __IO uint32_t MCR; /**< Module Configuration Register, offset: 0x0 */ + uint8_t RESERVED_0[4]; + __IO uint32_t TCR; /**< Transfer Count Register, offset: 0x8 */ + union { /* offset: 0xC */ + __IO uint32_t CTAR[2]; /**< Clock and Transfer Attributes Register (In Master Mode), array offset: 0xC, array step: 0x4 */ + __IO uint32_t CTAR_SLAVE[1]; /**< Clock and Transfer Attributes Register (In Slave Mode), array offset: 0xC, array step: 0x4 */ + }; + uint8_t RESERVED_1[24]; + __IO uint32_t SR; /**< Status Register, offset: 0x2C */ + __IO uint32_t RSER; /**< DMA/Interrupt Request Select and Enable Register, offset: 0x30 */ + union { /* offset: 0x34 */ + __IO uint32_t PUSHR; /**< PUSH TX FIFO Register In Master Mode, offset: 0x34 */ + __IO uint32_t PUSHR_SLAVE; /**< PUSH TX FIFO Register In Slave Mode, offset: 0x34 */ + }; + __I uint32_t POPR; /**< POP RX FIFO Register, offset: 0x38 */ + __I uint32_t TXFR0; /**< Transmit FIFO Registers, offset: 0x3C */ + __I uint32_t TXFR1; /**< Transmit FIFO Registers, offset: 0x40 */ + __I uint32_t TXFR2; /**< Transmit FIFO Registers, offset: 0x44 */ + __I uint32_t TXFR3; /**< Transmit FIFO Registers, offset: 0x48 */ + uint8_t RESERVED_2[48]; + __I uint32_t RXFR0; /**< Receive FIFO Registers, offset: 0x7C */ + __I uint32_t RXFR1; /**< Receive FIFO Registers, offset: 0x80 */ + __I uint32_t RXFR2; /**< Receive FIFO Registers, offset: 0x84 */ + __I uint32_t RXFR3; /**< Receive FIFO Registers, offset: 0x88 */ +} SPI_Type; + +/* ---------------------------------------------------------------------------- + -- SPI Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SPI_Register_Masks SPI Register Masks + * @{ + */ + +/*! @name MCR - Module Configuration Register */ +#define SPI_MCR_HALT_MASK (0x1U) +#define SPI_MCR_HALT_SHIFT (0U) +#define SPI_MCR_HALT(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_HALT_SHIFT)) & SPI_MCR_HALT_MASK) +#define SPI_MCR_SMPL_PT_MASK (0x300U) +#define SPI_MCR_SMPL_PT_SHIFT (8U) +#define SPI_MCR_SMPL_PT(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_SMPL_PT_SHIFT)) & SPI_MCR_SMPL_PT_MASK) +#define SPI_MCR_CLR_RXF_MASK (0x400U) +#define SPI_MCR_CLR_RXF_SHIFT (10U) +#define SPI_MCR_CLR_RXF(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_CLR_RXF_SHIFT)) & SPI_MCR_CLR_RXF_MASK) +#define SPI_MCR_CLR_TXF_MASK (0x800U) +#define SPI_MCR_CLR_TXF_SHIFT (11U) +#define SPI_MCR_CLR_TXF(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_CLR_TXF_SHIFT)) & SPI_MCR_CLR_TXF_MASK) +#define SPI_MCR_DIS_RXF_MASK (0x1000U) +#define SPI_MCR_DIS_RXF_SHIFT (12U) +#define SPI_MCR_DIS_RXF(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_DIS_RXF_SHIFT)) & SPI_MCR_DIS_RXF_MASK) +#define SPI_MCR_DIS_TXF_MASK (0x2000U) +#define SPI_MCR_DIS_TXF_SHIFT (13U) +#define SPI_MCR_DIS_TXF(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_DIS_TXF_SHIFT)) & SPI_MCR_DIS_TXF_MASK) +#define SPI_MCR_MDIS_MASK (0x4000U) +#define SPI_MCR_MDIS_SHIFT (14U) +#define SPI_MCR_MDIS(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_MDIS_SHIFT)) & SPI_MCR_MDIS_MASK) +#define SPI_MCR_DOZE_MASK (0x8000U) +#define SPI_MCR_DOZE_SHIFT (15U) +#define SPI_MCR_DOZE(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_DOZE_SHIFT)) & SPI_MCR_DOZE_MASK) +#define SPI_MCR_PCSIS_MASK (0x3F0000U) +#define SPI_MCR_PCSIS_SHIFT (16U) +#define SPI_MCR_PCSIS(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_PCSIS_SHIFT)) & SPI_MCR_PCSIS_MASK) +#define SPI_MCR_ROOE_MASK (0x1000000U) +#define SPI_MCR_ROOE_SHIFT (24U) +#define SPI_MCR_ROOE(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_ROOE_SHIFT)) & SPI_MCR_ROOE_MASK) +#define SPI_MCR_PCSSE_MASK (0x2000000U) +#define SPI_MCR_PCSSE_SHIFT (25U) +#define SPI_MCR_PCSSE(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_PCSSE_SHIFT)) & SPI_MCR_PCSSE_MASK) +#define SPI_MCR_MTFE_MASK (0x4000000U) +#define SPI_MCR_MTFE_SHIFT (26U) +#define SPI_MCR_MTFE(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_MTFE_SHIFT)) & SPI_MCR_MTFE_MASK) +#define SPI_MCR_FRZ_MASK (0x8000000U) +#define SPI_MCR_FRZ_SHIFT (27U) +#define SPI_MCR_FRZ(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_FRZ_SHIFT)) & SPI_MCR_FRZ_MASK) +#define SPI_MCR_DCONF_MASK (0x30000000U) +#define SPI_MCR_DCONF_SHIFT (28U) +#define SPI_MCR_DCONF(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_DCONF_SHIFT)) & SPI_MCR_DCONF_MASK) +#define SPI_MCR_CONT_SCKE_MASK (0x40000000U) +#define SPI_MCR_CONT_SCKE_SHIFT (30U) +#define SPI_MCR_CONT_SCKE(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_CONT_SCKE_SHIFT)) & SPI_MCR_CONT_SCKE_MASK) +#define SPI_MCR_MSTR_MASK (0x80000000U) +#define SPI_MCR_MSTR_SHIFT (31U) +#define SPI_MCR_MSTR(x) (((uint32_t)(((uint32_t)(x)) << SPI_MCR_MSTR_SHIFT)) & SPI_MCR_MSTR_MASK) + +/*! @name TCR - Transfer Count Register */ +#define SPI_TCR_SPI_TCNT_MASK (0xFFFF0000U) +#define SPI_TCR_SPI_TCNT_SHIFT (16U) +#define SPI_TCR_SPI_TCNT(x) (((uint32_t)(((uint32_t)(x)) << SPI_TCR_SPI_TCNT_SHIFT)) & SPI_TCR_SPI_TCNT_MASK) + +/*! @name CTAR - Clock and Transfer Attributes Register (In Master Mode) */ +#define SPI_CTAR_BR_MASK (0xFU) +#define SPI_CTAR_BR_SHIFT (0U) +#define SPI_CTAR_BR(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_BR_SHIFT)) & SPI_CTAR_BR_MASK) +#define SPI_CTAR_DT_MASK (0xF0U) +#define SPI_CTAR_DT_SHIFT (4U) +#define SPI_CTAR_DT(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_DT_SHIFT)) & SPI_CTAR_DT_MASK) +#define SPI_CTAR_ASC_MASK (0xF00U) +#define SPI_CTAR_ASC_SHIFT (8U) +#define SPI_CTAR_ASC(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_ASC_SHIFT)) & SPI_CTAR_ASC_MASK) +#define SPI_CTAR_CSSCK_MASK (0xF000U) +#define SPI_CTAR_CSSCK_SHIFT (12U) +#define SPI_CTAR_CSSCK(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_CSSCK_SHIFT)) & SPI_CTAR_CSSCK_MASK) +#define SPI_CTAR_PBR_MASK (0x30000U) +#define SPI_CTAR_PBR_SHIFT (16U) +#define SPI_CTAR_PBR(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_PBR_SHIFT)) & SPI_CTAR_PBR_MASK) +#define SPI_CTAR_PDT_MASK (0xC0000U) +#define SPI_CTAR_PDT_SHIFT (18U) +#define SPI_CTAR_PDT(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_PDT_SHIFT)) & SPI_CTAR_PDT_MASK) +#define SPI_CTAR_PASC_MASK (0x300000U) +#define SPI_CTAR_PASC_SHIFT (20U) +#define SPI_CTAR_PASC(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_PASC_SHIFT)) & SPI_CTAR_PASC_MASK) +#define SPI_CTAR_PCSSCK_MASK (0xC00000U) +#define SPI_CTAR_PCSSCK_SHIFT (22U) +#define SPI_CTAR_PCSSCK(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_PCSSCK_SHIFT)) & SPI_CTAR_PCSSCK_MASK) +#define SPI_CTAR_LSBFE_MASK (0x1000000U) +#define SPI_CTAR_LSBFE_SHIFT (24U) +#define SPI_CTAR_LSBFE(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_LSBFE_SHIFT)) & SPI_CTAR_LSBFE_MASK) +#define SPI_CTAR_CPHA_MASK (0x2000000U) +#define SPI_CTAR_CPHA_SHIFT (25U) +#define SPI_CTAR_CPHA(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_CPHA_SHIFT)) & SPI_CTAR_CPHA_MASK) +#define SPI_CTAR_CPOL_MASK (0x4000000U) +#define SPI_CTAR_CPOL_SHIFT (26U) +#define SPI_CTAR_CPOL(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_CPOL_SHIFT)) & SPI_CTAR_CPOL_MASK) +#define SPI_CTAR_FMSZ_MASK (0x78000000U) +#define SPI_CTAR_FMSZ_SHIFT (27U) +#define SPI_CTAR_FMSZ(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_FMSZ_SHIFT)) & SPI_CTAR_FMSZ_MASK) +#define SPI_CTAR_DBR_MASK (0x80000000U) +#define SPI_CTAR_DBR_SHIFT (31U) +#define SPI_CTAR_DBR(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_DBR_SHIFT)) & SPI_CTAR_DBR_MASK) + +/* The count of SPI_CTAR */ +#define SPI_CTAR_COUNT (2U) + +/*! @name CTAR_SLAVE - Clock and Transfer Attributes Register (In Slave Mode) */ +#define SPI_CTAR_SLAVE_CPHA_MASK (0x2000000U) +#define SPI_CTAR_SLAVE_CPHA_SHIFT (25U) +#define SPI_CTAR_SLAVE_CPHA(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_SLAVE_CPHA_SHIFT)) & SPI_CTAR_SLAVE_CPHA_MASK) +#define SPI_CTAR_SLAVE_CPOL_MASK (0x4000000U) +#define SPI_CTAR_SLAVE_CPOL_SHIFT (26U) +#define SPI_CTAR_SLAVE_CPOL(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_SLAVE_CPOL_SHIFT)) & SPI_CTAR_SLAVE_CPOL_MASK) +#define SPI_CTAR_SLAVE_FMSZ_MASK (0xF8000000U) +#define SPI_CTAR_SLAVE_FMSZ_SHIFT (27U) +#define SPI_CTAR_SLAVE_FMSZ(x) (((uint32_t)(((uint32_t)(x)) << SPI_CTAR_SLAVE_FMSZ_SHIFT)) & SPI_CTAR_SLAVE_FMSZ_MASK) + +/* The count of SPI_CTAR_SLAVE */ +#define SPI_CTAR_SLAVE_COUNT (1U) + +/*! @name SR - Status Register */ +#define SPI_SR_POPNXTPTR_MASK (0xFU) +#define SPI_SR_POPNXTPTR_SHIFT (0U) +#define SPI_SR_POPNXTPTR(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_POPNXTPTR_SHIFT)) & SPI_SR_POPNXTPTR_MASK) +#define SPI_SR_RXCTR_MASK (0xF0U) +#define SPI_SR_RXCTR_SHIFT (4U) +#define SPI_SR_RXCTR(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_RXCTR_SHIFT)) & SPI_SR_RXCTR_MASK) +#define SPI_SR_TXNXTPTR_MASK (0xF00U) +#define SPI_SR_TXNXTPTR_SHIFT (8U) +#define SPI_SR_TXNXTPTR(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_TXNXTPTR_SHIFT)) & SPI_SR_TXNXTPTR_MASK) +#define SPI_SR_TXCTR_MASK (0xF000U) +#define SPI_SR_TXCTR_SHIFT (12U) +#define SPI_SR_TXCTR(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_TXCTR_SHIFT)) & SPI_SR_TXCTR_MASK) +#define SPI_SR_RFDF_MASK (0x20000U) +#define SPI_SR_RFDF_SHIFT (17U) +#define SPI_SR_RFDF(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_RFDF_SHIFT)) & SPI_SR_RFDF_MASK) +#define SPI_SR_RFOF_MASK (0x80000U) +#define SPI_SR_RFOF_SHIFT (19U) +#define SPI_SR_RFOF(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_RFOF_SHIFT)) & SPI_SR_RFOF_MASK) +#define SPI_SR_TFFF_MASK (0x2000000U) +#define SPI_SR_TFFF_SHIFT (25U) +#define SPI_SR_TFFF(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_TFFF_SHIFT)) & SPI_SR_TFFF_MASK) +#define SPI_SR_TFUF_MASK (0x8000000U) +#define SPI_SR_TFUF_SHIFT (27U) +#define SPI_SR_TFUF(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_TFUF_SHIFT)) & SPI_SR_TFUF_MASK) +#define SPI_SR_EOQF_MASK (0x10000000U) +#define SPI_SR_EOQF_SHIFT (28U) +#define SPI_SR_EOQF(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_EOQF_SHIFT)) & SPI_SR_EOQF_MASK) +#define SPI_SR_TXRXS_MASK (0x40000000U) +#define SPI_SR_TXRXS_SHIFT (30U) +#define SPI_SR_TXRXS(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_TXRXS_SHIFT)) & SPI_SR_TXRXS_MASK) +#define SPI_SR_TCF_MASK (0x80000000U) +#define SPI_SR_TCF_SHIFT (31U) +#define SPI_SR_TCF(x) (((uint32_t)(((uint32_t)(x)) << SPI_SR_TCF_SHIFT)) & SPI_SR_TCF_MASK) + +/*! @name RSER - DMA/Interrupt Request Select and Enable Register */ +#define SPI_RSER_RFDF_DIRS_MASK (0x10000U) +#define SPI_RSER_RFDF_DIRS_SHIFT (16U) +#define SPI_RSER_RFDF_DIRS(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_RFDF_DIRS_SHIFT)) & SPI_RSER_RFDF_DIRS_MASK) +#define SPI_RSER_RFDF_RE_MASK (0x20000U) +#define SPI_RSER_RFDF_RE_SHIFT (17U) +#define SPI_RSER_RFDF_RE(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_RFDF_RE_SHIFT)) & SPI_RSER_RFDF_RE_MASK) +#define SPI_RSER_RFOF_RE_MASK (0x80000U) +#define SPI_RSER_RFOF_RE_SHIFT (19U) +#define SPI_RSER_RFOF_RE(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_RFOF_RE_SHIFT)) & SPI_RSER_RFOF_RE_MASK) +#define SPI_RSER_TFFF_DIRS_MASK (0x1000000U) +#define SPI_RSER_TFFF_DIRS_SHIFT (24U) +#define SPI_RSER_TFFF_DIRS(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_TFFF_DIRS_SHIFT)) & SPI_RSER_TFFF_DIRS_MASK) +#define SPI_RSER_TFFF_RE_MASK (0x2000000U) +#define SPI_RSER_TFFF_RE_SHIFT (25U) +#define SPI_RSER_TFFF_RE(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_TFFF_RE_SHIFT)) & SPI_RSER_TFFF_RE_MASK) +#define SPI_RSER_TFUF_RE_MASK (0x8000000U) +#define SPI_RSER_TFUF_RE_SHIFT (27U) +#define SPI_RSER_TFUF_RE(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_TFUF_RE_SHIFT)) & SPI_RSER_TFUF_RE_MASK) +#define SPI_RSER_EOQF_RE_MASK (0x10000000U) +#define SPI_RSER_EOQF_RE_SHIFT (28U) +#define SPI_RSER_EOQF_RE(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_EOQF_RE_SHIFT)) & SPI_RSER_EOQF_RE_MASK) +#define SPI_RSER_TCF_RE_MASK (0x80000000U) +#define SPI_RSER_TCF_RE_SHIFT (31U) +#define SPI_RSER_TCF_RE(x) (((uint32_t)(((uint32_t)(x)) << SPI_RSER_TCF_RE_SHIFT)) & SPI_RSER_TCF_RE_MASK) + +/*! @name PUSHR - PUSH TX FIFO Register In Master Mode */ +#define SPI_PUSHR_TXDATA_MASK (0xFFFFU) +#define SPI_PUSHR_TXDATA_SHIFT (0U) +#define SPI_PUSHR_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_TXDATA_SHIFT)) & SPI_PUSHR_TXDATA_MASK) +#define SPI_PUSHR_PCS_MASK (0x3F0000U) +#define SPI_PUSHR_PCS_SHIFT (16U) +#define SPI_PUSHR_PCS(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_PCS_SHIFT)) & SPI_PUSHR_PCS_MASK) +#define SPI_PUSHR_CTCNT_MASK (0x4000000U) +#define SPI_PUSHR_CTCNT_SHIFT (26U) +#define SPI_PUSHR_CTCNT(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_CTCNT_SHIFT)) & SPI_PUSHR_CTCNT_MASK) +#define SPI_PUSHR_EOQ_MASK (0x8000000U) +#define SPI_PUSHR_EOQ_SHIFT (27U) +#define SPI_PUSHR_EOQ(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_EOQ_SHIFT)) & SPI_PUSHR_EOQ_MASK) +#define SPI_PUSHR_CTAS_MASK (0x70000000U) +#define SPI_PUSHR_CTAS_SHIFT (28U) +#define SPI_PUSHR_CTAS(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_CTAS_SHIFT)) & SPI_PUSHR_CTAS_MASK) +#define SPI_PUSHR_CONT_MASK (0x80000000U) +#define SPI_PUSHR_CONT_SHIFT (31U) +#define SPI_PUSHR_CONT(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_CONT_SHIFT)) & SPI_PUSHR_CONT_MASK) + +/*! @name PUSHR_SLAVE - PUSH TX FIFO Register In Slave Mode */ +#define SPI_PUSHR_SLAVE_TXDATA_MASK (0xFFFFFFFFU) +#define SPI_PUSHR_SLAVE_TXDATA_SHIFT (0U) +#define SPI_PUSHR_SLAVE_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_PUSHR_SLAVE_TXDATA_SHIFT)) & SPI_PUSHR_SLAVE_TXDATA_MASK) + +/*! @name POPR - POP RX FIFO Register */ +#define SPI_POPR_RXDATA_MASK (0xFFFFFFFFU) +#define SPI_POPR_RXDATA_SHIFT (0U) +#define SPI_POPR_RXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_POPR_RXDATA_SHIFT)) & SPI_POPR_RXDATA_MASK) + +/*! @name TXFR0 - Transmit FIFO Registers */ +#define SPI_TXFR0_TXDATA_MASK (0xFFFFU) +#define SPI_TXFR0_TXDATA_SHIFT (0U) +#define SPI_TXFR0_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR0_TXDATA_SHIFT)) & SPI_TXFR0_TXDATA_MASK) +#define SPI_TXFR0_TXCMD_TXDATA_MASK (0xFFFF0000U) +#define SPI_TXFR0_TXCMD_TXDATA_SHIFT (16U) +#define SPI_TXFR0_TXCMD_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR0_TXCMD_TXDATA_SHIFT)) & SPI_TXFR0_TXCMD_TXDATA_MASK) + +/*! @name TXFR1 - Transmit FIFO Registers */ +#define SPI_TXFR1_TXDATA_MASK (0xFFFFU) +#define SPI_TXFR1_TXDATA_SHIFT (0U) +#define SPI_TXFR1_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR1_TXDATA_SHIFT)) & SPI_TXFR1_TXDATA_MASK) +#define SPI_TXFR1_TXCMD_TXDATA_MASK (0xFFFF0000U) +#define SPI_TXFR1_TXCMD_TXDATA_SHIFT (16U) +#define SPI_TXFR1_TXCMD_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR1_TXCMD_TXDATA_SHIFT)) & SPI_TXFR1_TXCMD_TXDATA_MASK) + +/*! @name TXFR2 - Transmit FIFO Registers */ +#define SPI_TXFR2_TXDATA_MASK (0xFFFFU) +#define SPI_TXFR2_TXDATA_SHIFT (0U) +#define SPI_TXFR2_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR2_TXDATA_SHIFT)) & SPI_TXFR2_TXDATA_MASK) +#define SPI_TXFR2_TXCMD_TXDATA_MASK (0xFFFF0000U) +#define SPI_TXFR2_TXCMD_TXDATA_SHIFT (16U) +#define SPI_TXFR2_TXCMD_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR2_TXCMD_TXDATA_SHIFT)) & SPI_TXFR2_TXCMD_TXDATA_MASK) + +/*! @name TXFR3 - Transmit FIFO Registers */ +#define SPI_TXFR3_TXDATA_MASK (0xFFFFU) +#define SPI_TXFR3_TXDATA_SHIFT (0U) +#define SPI_TXFR3_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR3_TXDATA_SHIFT)) & SPI_TXFR3_TXDATA_MASK) +#define SPI_TXFR3_TXCMD_TXDATA_MASK (0xFFFF0000U) +#define SPI_TXFR3_TXCMD_TXDATA_SHIFT (16U) +#define SPI_TXFR3_TXCMD_TXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_TXFR3_TXCMD_TXDATA_SHIFT)) & SPI_TXFR3_TXCMD_TXDATA_MASK) + +/*! @name RXFR0 - Receive FIFO Registers */ +#define SPI_RXFR0_RXDATA_MASK (0xFFFFFFFFU) +#define SPI_RXFR0_RXDATA_SHIFT (0U) +#define SPI_RXFR0_RXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_RXFR0_RXDATA_SHIFT)) & SPI_RXFR0_RXDATA_MASK) + +/*! @name RXFR1 - Receive FIFO Registers */ +#define SPI_RXFR1_RXDATA_MASK (0xFFFFFFFFU) +#define SPI_RXFR1_RXDATA_SHIFT (0U) +#define SPI_RXFR1_RXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_RXFR1_RXDATA_SHIFT)) & SPI_RXFR1_RXDATA_MASK) + +/*! @name RXFR2 - Receive FIFO Registers */ +#define SPI_RXFR2_RXDATA_MASK (0xFFFFFFFFU) +#define SPI_RXFR2_RXDATA_SHIFT (0U) +#define SPI_RXFR2_RXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_RXFR2_RXDATA_SHIFT)) & SPI_RXFR2_RXDATA_MASK) + +/*! @name RXFR3 - Receive FIFO Registers */ +#define SPI_RXFR3_RXDATA_MASK (0xFFFFFFFFU) +#define SPI_RXFR3_RXDATA_SHIFT (0U) +#define SPI_RXFR3_RXDATA(x) (((uint32_t)(((uint32_t)(x)) << SPI_RXFR3_RXDATA_SHIFT)) & SPI_RXFR3_RXDATA_MASK) + + +/*! + * @} + */ /* end of group SPI_Register_Masks */ + + +/* SPI - Peripheral instance base addresses */ +/** Peripheral SPI0 base address */ +#define SPI0_BASE (0x4002C000u) +/** Peripheral SPI0 base pointer */ +#define SPI0 ((SPI_Type *)SPI0_BASE) +/** Peripheral SPI1 base address */ +#define SPI1_BASE (0x4002D000u) +/** Peripheral SPI1 base pointer */ +#define SPI1 ((SPI_Type *)SPI1_BASE) +/** Peripheral SPI2 base address */ +#define SPI2_BASE (0x400AC000u) +/** Peripheral SPI2 base pointer */ +#define SPI2 ((SPI_Type *)SPI2_BASE) +/** Array initializer of SPI peripheral base addresses */ +#define SPI_BASE_ADDRS { SPI0_BASE, SPI1_BASE, SPI2_BASE } +/** Array initializer of SPI peripheral base pointers */ +#define SPI_BASE_PTRS { SPI0, SPI1, SPI2 } +/** Interrupt vectors for the SPI peripheral type */ +#define SPI_IRQS { SPI0_IRQn, SPI1_IRQn, SPI2_IRQn } + +/*! + * @} + */ /* end of group SPI_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- UART Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup UART_Peripheral_Access_Layer UART Peripheral Access Layer + * @{ + */ + +/** UART - Register Layout Typedef */ +typedef struct { + __IO uint8_t BDH; /**< UART Baud Rate Registers: High, offset: 0x0 */ + __IO uint8_t BDL; /**< UART Baud Rate Registers: Low, offset: 0x1 */ + __IO uint8_t C1; /**< UART Control Register 1, offset: 0x2 */ + __IO uint8_t C2; /**< UART Control Register 2, offset: 0x3 */ + __I uint8_t S1; /**< UART Status Register 1, offset: 0x4 */ + __IO uint8_t S2; /**< UART Status Register 2, offset: 0x5 */ + __IO uint8_t C3; /**< UART Control Register 3, offset: 0x6 */ + __IO uint8_t D; /**< UART Data Register, offset: 0x7 */ + __IO uint8_t MA1; /**< UART Match Address Registers 1, offset: 0x8 */ + __IO uint8_t MA2; /**< UART Match Address Registers 2, offset: 0x9 */ + __IO uint8_t C4; /**< UART Control Register 4, offset: 0xA */ + __IO uint8_t C5; /**< UART Control Register 5, offset: 0xB */ + __I uint8_t ED; /**< UART Extended Data Register, offset: 0xC */ + __IO uint8_t MODEM; /**< UART Modem Register, offset: 0xD */ + __IO uint8_t IR; /**< UART Infrared Register, offset: 0xE */ + uint8_t RESERVED_0[1]; + __IO uint8_t PFIFO; /**< UART FIFO Parameters, offset: 0x10 */ + __IO uint8_t CFIFO; /**< UART FIFO Control Register, offset: 0x11 */ + __IO uint8_t SFIFO; /**< UART FIFO Status Register, offset: 0x12 */ + __IO uint8_t TWFIFO; /**< UART FIFO Transmit Watermark, offset: 0x13 */ + __I uint8_t TCFIFO; /**< UART FIFO Transmit Count, offset: 0x14 */ + __IO uint8_t RWFIFO; /**< UART FIFO Receive Watermark, offset: 0x15 */ + __I uint8_t RCFIFO; /**< UART FIFO Receive Count, offset: 0x16 */ + uint8_t RESERVED_1[1]; + __IO uint8_t C7816; /**< UART 7816 Control Register, offset: 0x18 */ + __IO uint8_t IE7816; /**< UART 7816 Interrupt Enable Register, offset: 0x19 */ + __IO uint8_t IS7816; /**< UART 7816 Interrupt Status Register, offset: 0x1A */ + union { /* offset: 0x1B */ + __IO uint8_t WP7816T0; /**< UART 7816 Wait Parameter Register, offset: 0x1B */ + __IO uint8_t WP7816T1; /**< UART 7816 Wait Parameter Register, offset: 0x1B */ + }; + __IO uint8_t WN7816; /**< UART 7816 Wait N Register, offset: 0x1C */ + __IO uint8_t WF7816; /**< UART 7816 Wait FD Register, offset: 0x1D */ + __IO uint8_t ET7816; /**< UART 7816 Error Threshold Register, offset: 0x1E */ + __IO uint8_t TL7816; /**< UART 7816 Transmit Length Register, offset: 0x1F */ +} UART_Type; + +/* ---------------------------------------------------------------------------- + -- UART Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup UART_Register_Masks UART Register Masks + * @{ + */ + +/*! @name BDH - UART Baud Rate Registers: High */ +#define UART_BDH_SBR_MASK (0x1FU) +#define UART_BDH_SBR_SHIFT (0U) +#define UART_BDH_SBR(x) (((uint8_t)(((uint8_t)(x)) << UART_BDH_SBR_SHIFT)) & UART_BDH_SBR_MASK) +#define UART_BDH_SBNS_MASK (0x20U) +#define UART_BDH_SBNS_SHIFT (5U) +#define UART_BDH_SBNS(x) (((uint8_t)(((uint8_t)(x)) << UART_BDH_SBNS_SHIFT)) & UART_BDH_SBNS_MASK) +#define UART_BDH_RXEDGIE_MASK (0x40U) +#define UART_BDH_RXEDGIE_SHIFT (6U) +#define UART_BDH_RXEDGIE(x) (((uint8_t)(((uint8_t)(x)) << UART_BDH_RXEDGIE_SHIFT)) & UART_BDH_RXEDGIE_MASK) +#define UART_BDH_LBKDIE_MASK (0x80U) +#define UART_BDH_LBKDIE_SHIFT (7U) +#define UART_BDH_LBKDIE(x) (((uint8_t)(((uint8_t)(x)) << UART_BDH_LBKDIE_SHIFT)) & UART_BDH_LBKDIE_MASK) + +/*! @name BDL - UART Baud Rate Registers: Low */ +#define UART_BDL_SBR_MASK (0xFFU) +#define UART_BDL_SBR_SHIFT (0U) +#define UART_BDL_SBR(x) (((uint8_t)(((uint8_t)(x)) << UART_BDL_SBR_SHIFT)) & UART_BDL_SBR_MASK) + +/*! @name C1 - UART Control Register 1 */ +#define UART_C1_PT_MASK (0x1U) +#define UART_C1_PT_SHIFT (0U) +#define UART_C1_PT(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_PT_SHIFT)) & UART_C1_PT_MASK) +#define UART_C1_PE_MASK (0x2U) +#define UART_C1_PE_SHIFT (1U) +#define UART_C1_PE(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_PE_SHIFT)) & UART_C1_PE_MASK) +#define UART_C1_ILT_MASK (0x4U) +#define UART_C1_ILT_SHIFT (2U) +#define UART_C1_ILT(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_ILT_SHIFT)) & UART_C1_ILT_MASK) +#define UART_C1_WAKE_MASK (0x8U) +#define UART_C1_WAKE_SHIFT (3U) +#define UART_C1_WAKE(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_WAKE_SHIFT)) & UART_C1_WAKE_MASK) +#define UART_C1_M_MASK (0x10U) +#define UART_C1_M_SHIFT (4U) +#define UART_C1_M(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_M_SHIFT)) & UART_C1_M_MASK) +#define UART_C1_RSRC_MASK (0x20U) +#define UART_C1_RSRC_SHIFT (5U) +#define UART_C1_RSRC(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_RSRC_SHIFT)) & UART_C1_RSRC_MASK) +#define UART_C1_UARTSWAI_MASK (0x40U) +#define UART_C1_UARTSWAI_SHIFT (6U) +#define UART_C1_UARTSWAI(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_UARTSWAI_SHIFT)) & UART_C1_UARTSWAI_MASK) +#define UART_C1_LOOPS_MASK (0x80U) +#define UART_C1_LOOPS_SHIFT (7U) +#define UART_C1_LOOPS(x) (((uint8_t)(((uint8_t)(x)) << UART_C1_LOOPS_SHIFT)) & UART_C1_LOOPS_MASK) + +/*! @name C2 - UART Control Register 2 */ +#define UART_C2_SBK_MASK (0x1U) +#define UART_C2_SBK_SHIFT (0U) +#define UART_C2_SBK(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_SBK_SHIFT)) & UART_C2_SBK_MASK) +#define UART_C2_RWU_MASK (0x2U) +#define UART_C2_RWU_SHIFT (1U) +#define UART_C2_RWU(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_RWU_SHIFT)) & UART_C2_RWU_MASK) +#define UART_C2_RE_MASK (0x4U) +#define UART_C2_RE_SHIFT (2U) +#define UART_C2_RE(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_RE_SHIFT)) & UART_C2_RE_MASK) +#define UART_C2_TE_MASK (0x8U) +#define UART_C2_TE_SHIFT (3U) +#define UART_C2_TE(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_TE_SHIFT)) & UART_C2_TE_MASK) +#define UART_C2_ILIE_MASK (0x10U) +#define UART_C2_ILIE_SHIFT (4U) +#define UART_C2_ILIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_ILIE_SHIFT)) & UART_C2_ILIE_MASK) +#define UART_C2_RIE_MASK (0x20U) +#define UART_C2_RIE_SHIFT (5U) +#define UART_C2_RIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_RIE_SHIFT)) & UART_C2_RIE_MASK) +#define UART_C2_TCIE_MASK (0x40U) +#define UART_C2_TCIE_SHIFT (6U) +#define UART_C2_TCIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_TCIE_SHIFT)) & UART_C2_TCIE_MASK) +#define UART_C2_TIE_MASK (0x80U) +#define UART_C2_TIE_SHIFT (7U) +#define UART_C2_TIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C2_TIE_SHIFT)) & UART_C2_TIE_MASK) + +/*! @name S1 - UART Status Register 1 */ +#define UART_S1_PF_MASK (0x1U) +#define UART_S1_PF_SHIFT (0U) +#define UART_S1_PF(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_PF_SHIFT)) & UART_S1_PF_MASK) +#define UART_S1_FE_MASK (0x2U) +#define UART_S1_FE_SHIFT (1U) +#define UART_S1_FE(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_FE_SHIFT)) & UART_S1_FE_MASK) +#define UART_S1_NF_MASK (0x4U) +#define UART_S1_NF_SHIFT (2U) +#define UART_S1_NF(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_NF_SHIFT)) & UART_S1_NF_MASK) +#define UART_S1_OR_MASK (0x8U) +#define UART_S1_OR_SHIFT (3U) +#define UART_S1_OR(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_OR_SHIFT)) & UART_S1_OR_MASK) +#define UART_S1_IDLE_MASK (0x10U) +#define UART_S1_IDLE_SHIFT (4U) +#define UART_S1_IDLE(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_IDLE_SHIFT)) & UART_S1_IDLE_MASK) +#define UART_S1_RDRF_MASK (0x20U) +#define UART_S1_RDRF_SHIFT (5U) +#define UART_S1_RDRF(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_RDRF_SHIFT)) & UART_S1_RDRF_MASK) +#define UART_S1_TC_MASK (0x40U) +#define UART_S1_TC_SHIFT (6U) +#define UART_S1_TC(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_TC_SHIFT)) & UART_S1_TC_MASK) +#define UART_S1_TDRE_MASK (0x80U) +#define UART_S1_TDRE_SHIFT (7U) +#define UART_S1_TDRE(x) (((uint8_t)(((uint8_t)(x)) << UART_S1_TDRE_SHIFT)) & UART_S1_TDRE_MASK) + +/*! @name S2 - UART Status Register 2 */ +#define UART_S2_RAF_MASK (0x1U) +#define UART_S2_RAF_SHIFT (0U) +#define UART_S2_RAF(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_RAF_SHIFT)) & UART_S2_RAF_MASK) +#define UART_S2_LBKDE_MASK (0x2U) +#define UART_S2_LBKDE_SHIFT (1U) +#define UART_S2_LBKDE(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_LBKDE_SHIFT)) & UART_S2_LBKDE_MASK) +#define UART_S2_BRK13_MASK (0x4U) +#define UART_S2_BRK13_SHIFT (2U) +#define UART_S2_BRK13(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_BRK13_SHIFT)) & UART_S2_BRK13_MASK) +#define UART_S2_RWUID_MASK (0x8U) +#define UART_S2_RWUID_SHIFT (3U) +#define UART_S2_RWUID(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_RWUID_SHIFT)) & UART_S2_RWUID_MASK) +#define UART_S2_RXINV_MASK (0x10U) +#define UART_S2_RXINV_SHIFT (4U) +#define UART_S2_RXINV(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_RXINV_SHIFT)) & UART_S2_RXINV_MASK) +#define UART_S2_MSBF_MASK (0x20U) +#define UART_S2_MSBF_SHIFT (5U) +#define UART_S2_MSBF(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_MSBF_SHIFT)) & UART_S2_MSBF_MASK) +#define UART_S2_RXEDGIF_MASK (0x40U) +#define UART_S2_RXEDGIF_SHIFT (6U) +#define UART_S2_RXEDGIF(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_RXEDGIF_SHIFT)) & UART_S2_RXEDGIF_MASK) +#define UART_S2_LBKDIF_MASK (0x80U) +#define UART_S2_LBKDIF_SHIFT (7U) +#define UART_S2_LBKDIF(x) (((uint8_t)(((uint8_t)(x)) << UART_S2_LBKDIF_SHIFT)) & UART_S2_LBKDIF_MASK) + +/*! @name C3 - UART Control Register 3 */ +#define UART_C3_PEIE_MASK (0x1U) +#define UART_C3_PEIE_SHIFT (0U) +#define UART_C3_PEIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_PEIE_SHIFT)) & UART_C3_PEIE_MASK) +#define UART_C3_FEIE_MASK (0x2U) +#define UART_C3_FEIE_SHIFT (1U) +#define UART_C3_FEIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_FEIE_SHIFT)) & UART_C3_FEIE_MASK) +#define UART_C3_NEIE_MASK (0x4U) +#define UART_C3_NEIE_SHIFT (2U) +#define UART_C3_NEIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_NEIE_SHIFT)) & UART_C3_NEIE_MASK) +#define UART_C3_ORIE_MASK (0x8U) +#define UART_C3_ORIE_SHIFT (3U) +#define UART_C3_ORIE(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_ORIE_SHIFT)) & UART_C3_ORIE_MASK) +#define UART_C3_TXINV_MASK (0x10U) +#define UART_C3_TXINV_SHIFT (4U) +#define UART_C3_TXINV(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_TXINV_SHIFT)) & UART_C3_TXINV_MASK) +#define UART_C3_TXDIR_MASK (0x20U) +#define UART_C3_TXDIR_SHIFT (5U) +#define UART_C3_TXDIR(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_TXDIR_SHIFT)) & UART_C3_TXDIR_MASK) +#define UART_C3_T8_MASK (0x40U) +#define UART_C3_T8_SHIFT (6U) +#define UART_C3_T8(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_T8_SHIFT)) & UART_C3_T8_MASK) +#define UART_C3_R8_MASK (0x80U) +#define UART_C3_R8_SHIFT (7U) +#define UART_C3_R8(x) (((uint8_t)(((uint8_t)(x)) << UART_C3_R8_SHIFT)) & UART_C3_R8_MASK) + +/*! @name D - UART Data Register */ +#define UART_D_RT_MASK (0xFFU) +#define UART_D_RT_SHIFT (0U) +#define UART_D_RT(x) (((uint8_t)(((uint8_t)(x)) << UART_D_RT_SHIFT)) & UART_D_RT_MASK) + +/*! @name MA1 - UART Match Address Registers 1 */ +#define UART_MA1_MA_MASK (0xFFU) +#define UART_MA1_MA_SHIFT (0U) +#define UART_MA1_MA(x) (((uint8_t)(((uint8_t)(x)) << UART_MA1_MA_SHIFT)) & UART_MA1_MA_MASK) + +/*! @name MA2 - UART Match Address Registers 2 */ +#define UART_MA2_MA_MASK (0xFFU) +#define UART_MA2_MA_SHIFT (0U) +#define UART_MA2_MA(x) (((uint8_t)(((uint8_t)(x)) << UART_MA2_MA_SHIFT)) & UART_MA2_MA_MASK) + +/*! @name C4 - UART Control Register 4 */ +#define UART_C4_BRFA_MASK (0x1FU) +#define UART_C4_BRFA_SHIFT (0U) +#define UART_C4_BRFA(x) (((uint8_t)(((uint8_t)(x)) << UART_C4_BRFA_SHIFT)) & UART_C4_BRFA_MASK) +#define UART_C4_M10_MASK (0x20U) +#define UART_C4_M10_SHIFT (5U) +#define UART_C4_M10(x) (((uint8_t)(((uint8_t)(x)) << UART_C4_M10_SHIFT)) & UART_C4_M10_MASK) +#define UART_C4_MAEN2_MASK (0x40U) +#define UART_C4_MAEN2_SHIFT (6U) +#define UART_C4_MAEN2(x) (((uint8_t)(((uint8_t)(x)) << UART_C4_MAEN2_SHIFT)) & UART_C4_MAEN2_MASK) +#define UART_C4_MAEN1_MASK (0x80U) +#define UART_C4_MAEN1_SHIFT (7U) +#define UART_C4_MAEN1(x) (((uint8_t)(((uint8_t)(x)) << UART_C4_MAEN1_SHIFT)) & UART_C4_MAEN1_MASK) + +/*! @name C5 - UART Control Register 5 */ +#define UART_C5_LBKDDMAS_MASK (0x8U) +#define UART_C5_LBKDDMAS_SHIFT (3U) +#define UART_C5_LBKDDMAS(x) (((uint8_t)(((uint8_t)(x)) << UART_C5_LBKDDMAS_SHIFT)) & UART_C5_LBKDDMAS_MASK) +#define UART_C5_ILDMAS_MASK (0x10U) +#define UART_C5_ILDMAS_SHIFT (4U) +#define UART_C5_ILDMAS(x) (((uint8_t)(((uint8_t)(x)) << UART_C5_ILDMAS_SHIFT)) & UART_C5_ILDMAS_MASK) +#define UART_C5_RDMAS_MASK (0x20U) +#define UART_C5_RDMAS_SHIFT (5U) +#define UART_C5_RDMAS(x) (((uint8_t)(((uint8_t)(x)) << UART_C5_RDMAS_SHIFT)) & UART_C5_RDMAS_MASK) +#define UART_C5_TCDMAS_MASK (0x40U) +#define UART_C5_TCDMAS_SHIFT (6U) +#define UART_C5_TCDMAS(x) (((uint8_t)(((uint8_t)(x)) << UART_C5_TCDMAS_SHIFT)) & UART_C5_TCDMAS_MASK) +#define UART_C5_TDMAS_MASK (0x80U) +#define UART_C5_TDMAS_SHIFT (7U) +#define UART_C5_TDMAS(x) (((uint8_t)(((uint8_t)(x)) << UART_C5_TDMAS_SHIFT)) & UART_C5_TDMAS_MASK) + +/*! @name ED - UART Extended Data Register */ +#define UART_ED_PARITYE_MASK (0x40U) +#define UART_ED_PARITYE_SHIFT (6U) +#define UART_ED_PARITYE(x) (((uint8_t)(((uint8_t)(x)) << UART_ED_PARITYE_SHIFT)) & UART_ED_PARITYE_MASK) +#define UART_ED_NOISY_MASK (0x80U) +#define UART_ED_NOISY_SHIFT (7U) +#define UART_ED_NOISY(x) (((uint8_t)(((uint8_t)(x)) << UART_ED_NOISY_SHIFT)) & UART_ED_NOISY_MASK) + +/*! @name MODEM - UART Modem Register */ +#define UART_MODEM_TXCTSE_MASK (0x1U) +#define UART_MODEM_TXCTSE_SHIFT (0U) +#define UART_MODEM_TXCTSE(x) (((uint8_t)(((uint8_t)(x)) << UART_MODEM_TXCTSE_SHIFT)) & UART_MODEM_TXCTSE_MASK) +#define UART_MODEM_TXRTSE_MASK (0x2U) +#define UART_MODEM_TXRTSE_SHIFT (1U) +#define UART_MODEM_TXRTSE(x) (((uint8_t)(((uint8_t)(x)) << UART_MODEM_TXRTSE_SHIFT)) & UART_MODEM_TXRTSE_MASK) +#define UART_MODEM_TXRTSPOL_MASK (0x4U) +#define UART_MODEM_TXRTSPOL_SHIFT (2U) +#define UART_MODEM_TXRTSPOL(x) (((uint8_t)(((uint8_t)(x)) << UART_MODEM_TXRTSPOL_SHIFT)) & UART_MODEM_TXRTSPOL_MASK) +#define UART_MODEM_RXRTSE_MASK (0x8U) +#define UART_MODEM_RXRTSE_SHIFT (3U) +#define UART_MODEM_RXRTSE(x) (((uint8_t)(((uint8_t)(x)) << UART_MODEM_RXRTSE_SHIFT)) & UART_MODEM_RXRTSE_MASK) + +/*! @name IR - UART Infrared Register */ +#define UART_IR_TNP_MASK (0x3U) +#define UART_IR_TNP_SHIFT (0U) +#define UART_IR_TNP(x) (((uint8_t)(((uint8_t)(x)) << UART_IR_TNP_SHIFT)) & UART_IR_TNP_MASK) +#define UART_IR_IREN_MASK (0x4U) +#define UART_IR_IREN_SHIFT (2U) +#define UART_IR_IREN(x) (((uint8_t)(((uint8_t)(x)) << UART_IR_IREN_SHIFT)) & UART_IR_IREN_MASK) + +/*! @name PFIFO - UART FIFO Parameters */ +#define UART_PFIFO_RXFIFOSIZE_MASK (0x7U) +#define UART_PFIFO_RXFIFOSIZE_SHIFT (0U) +#define UART_PFIFO_RXFIFOSIZE(x) (((uint8_t)(((uint8_t)(x)) << UART_PFIFO_RXFIFOSIZE_SHIFT)) & UART_PFIFO_RXFIFOSIZE_MASK) +#define UART_PFIFO_RXFE_MASK (0x8U) +#define UART_PFIFO_RXFE_SHIFT (3U) +#define UART_PFIFO_RXFE(x) (((uint8_t)(((uint8_t)(x)) << UART_PFIFO_RXFE_SHIFT)) & UART_PFIFO_RXFE_MASK) +#define UART_PFIFO_TXFIFOSIZE_MASK (0x70U) +#define UART_PFIFO_TXFIFOSIZE_SHIFT (4U) +#define UART_PFIFO_TXFIFOSIZE(x) (((uint8_t)(((uint8_t)(x)) << UART_PFIFO_TXFIFOSIZE_SHIFT)) & UART_PFIFO_TXFIFOSIZE_MASK) +#define UART_PFIFO_TXFE_MASK (0x80U) +#define UART_PFIFO_TXFE_SHIFT (7U) +#define UART_PFIFO_TXFE(x) (((uint8_t)(((uint8_t)(x)) << UART_PFIFO_TXFE_SHIFT)) & UART_PFIFO_TXFE_MASK) + +/*! @name CFIFO - UART FIFO Control Register */ +#define UART_CFIFO_RXUFE_MASK (0x1U) +#define UART_CFIFO_RXUFE_SHIFT (0U) +#define UART_CFIFO_RXUFE(x) (((uint8_t)(((uint8_t)(x)) << UART_CFIFO_RXUFE_SHIFT)) & UART_CFIFO_RXUFE_MASK) +#define UART_CFIFO_TXOFE_MASK (0x2U) +#define UART_CFIFO_TXOFE_SHIFT (1U) +#define UART_CFIFO_TXOFE(x) (((uint8_t)(((uint8_t)(x)) << UART_CFIFO_TXOFE_SHIFT)) & UART_CFIFO_TXOFE_MASK) +#define UART_CFIFO_RXOFE_MASK (0x4U) +#define UART_CFIFO_RXOFE_SHIFT (2U) +#define UART_CFIFO_RXOFE(x) (((uint8_t)(((uint8_t)(x)) << UART_CFIFO_RXOFE_SHIFT)) & UART_CFIFO_RXOFE_MASK) +#define UART_CFIFO_RXFLUSH_MASK (0x40U) +#define UART_CFIFO_RXFLUSH_SHIFT (6U) +#define UART_CFIFO_RXFLUSH(x) (((uint8_t)(((uint8_t)(x)) << UART_CFIFO_RXFLUSH_SHIFT)) & UART_CFIFO_RXFLUSH_MASK) +#define UART_CFIFO_TXFLUSH_MASK (0x80U) +#define UART_CFIFO_TXFLUSH_SHIFT (7U) +#define UART_CFIFO_TXFLUSH(x) (((uint8_t)(((uint8_t)(x)) << UART_CFIFO_TXFLUSH_SHIFT)) & UART_CFIFO_TXFLUSH_MASK) + +/*! @name SFIFO - UART FIFO Status Register */ +#define UART_SFIFO_RXUF_MASK (0x1U) +#define UART_SFIFO_RXUF_SHIFT (0U) +#define UART_SFIFO_RXUF(x) (((uint8_t)(((uint8_t)(x)) << UART_SFIFO_RXUF_SHIFT)) & UART_SFIFO_RXUF_MASK) +#define UART_SFIFO_TXOF_MASK (0x2U) +#define UART_SFIFO_TXOF_SHIFT (1U) +#define UART_SFIFO_TXOF(x) (((uint8_t)(((uint8_t)(x)) << UART_SFIFO_TXOF_SHIFT)) & UART_SFIFO_TXOF_MASK) +#define UART_SFIFO_RXOF_MASK (0x4U) +#define UART_SFIFO_RXOF_SHIFT (2U) +#define UART_SFIFO_RXOF(x) (((uint8_t)(((uint8_t)(x)) << UART_SFIFO_RXOF_SHIFT)) & UART_SFIFO_RXOF_MASK) +#define UART_SFIFO_RXEMPT_MASK (0x40U) +#define UART_SFIFO_RXEMPT_SHIFT (6U) +#define UART_SFIFO_RXEMPT(x) (((uint8_t)(((uint8_t)(x)) << UART_SFIFO_RXEMPT_SHIFT)) & UART_SFIFO_RXEMPT_MASK) +#define UART_SFIFO_TXEMPT_MASK (0x80U) +#define UART_SFIFO_TXEMPT_SHIFT (7U) +#define UART_SFIFO_TXEMPT(x) (((uint8_t)(((uint8_t)(x)) << UART_SFIFO_TXEMPT_SHIFT)) & UART_SFIFO_TXEMPT_MASK) + +/*! @name TWFIFO - UART FIFO Transmit Watermark */ +#define UART_TWFIFO_TXWATER_MASK (0xFFU) +#define UART_TWFIFO_TXWATER_SHIFT (0U) +#define UART_TWFIFO_TXWATER(x) (((uint8_t)(((uint8_t)(x)) << UART_TWFIFO_TXWATER_SHIFT)) & UART_TWFIFO_TXWATER_MASK) + +/*! @name TCFIFO - UART FIFO Transmit Count */ +#define UART_TCFIFO_TXCOUNT_MASK (0xFFU) +#define UART_TCFIFO_TXCOUNT_SHIFT (0U) +#define UART_TCFIFO_TXCOUNT(x) (((uint8_t)(((uint8_t)(x)) << UART_TCFIFO_TXCOUNT_SHIFT)) & UART_TCFIFO_TXCOUNT_MASK) + +/*! @name RWFIFO - UART FIFO Receive Watermark */ +#define UART_RWFIFO_RXWATER_MASK (0xFFU) +#define UART_RWFIFO_RXWATER_SHIFT (0U) +#define UART_RWFIFO_RXWATER(x) (((uint8_t)(((uint8_t)(x)) << UART_RWFIFO_RXWATER_SHIFT)) & UART_RWFIFO_RXWATER_MASK) + +/*! @name RCFIFO - UART FIFO Receive Count */ +#define UART_RCFIFO_RXCOUNT_MASK (0xFFU) +#define UART_RCFIFO_RXCOUNT_SHIFT (0U) +#define UART_RCFIFO_RXCOUNT(x) (((uint8_t)(((uint8_t)(x)) << UART_RCFIFO_RXCOUNT_SHIFT)) & UART_RCFIFO_RXCOUNT_MASK) + +/*! @name C7816 - UART 7816 Control Register */ +#define UART_C7816_ISO_7816E_MASK (0x1U) +#define UART_C7816_ISO_7816E_SHIFT (0U) +#define UART_C7816_ISO_7816E(x) (((uint8_t)(((uint8_t)(x)) << UART_C7816_ISO_7816E_SHIFT)) & UART_C7816_ISO_7816E_MASK) +#define UART_C7816_TTYPE_MASK (0x2U) +#define UART_C7816_TTYPE_SHIFT (1U) +#define UART_C7816_TTYPE(x) (((uint8_t)(((uint8_t)(x)) << UART_C7816_TTYPE_SHIFT)) & UART_C7816_TTYPE_MASK) +#define UART_C7816_INIT_MASK (0x4U) +#define UART_C7816_INIT_SHIFT (2U) +#define UART_C7816_INIT(x) (((uint8_t)(((uint8_t)(x)) << UART_C7816_INIT_SHIFT)) & UART_C7816_INIT_MASK) +#define UART_C7816_ANACK_MASK (0x8U) +#define UART_C7816_ANACK_SHIFT (3U) +#define UART_C7816_ANACK(x) (((uint8_t)(((uint8_t)(x)) << UART_C7816_ANACK_SHIFT)) & UART_C7816_ANACK_MASK) +#define UART_C7816_ONACK_MASK (0x10U) +#define UART_C7816_ONACK_SHIFT (4U) +#define UART_C7816_ONACK(x) (((uint8_t)(((uint8_t)(x)) << UART_C7816_ONACK_SHIFT)) & UART_C7816_ONACK_MASK) + +/*! @name IE7816 - UART 7816 Interrupt Enable Register */ +#define UART_IE7816_RXTE_MASK (0x1U) +#define UART_IE7816_RXTE_SHIFT (0U) +#define UART_IE7816_RXTE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_RXTE_SHIFT)) & UART_IE7816_RXTE_MASK) +#define UART_IE7816_TXTE_MASK (0x2U) +#define UART_IE7816_TXTE_SHIFT (1U) +#define UART_IE7816_TXTE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_TXTE_SHIFT)) & UART_IE7816_TXTE_MASK) +#define UART_IE7816_GTVE_MASK (0x4U) +#define UART_IE7816_GTVE_SHIFT (2U) +#define UART_IE7816_GTVE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_GTVE_SHIFT)) & UART_IE7816_GTVE_MASK) +#define UART_IE7816_INITDE_MASK (0x10U) +#define UART_IE7816_INITDE_SHIFT (4U) +#define UART_IE7816_INITDE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_INITDE_SHIFT)) & UART_IE7816_INITDE_MASK) +#define UART_IE7816_BWTE_MASK (0x20U) +#define UART_IE7816_BWTE_SHIFT (5U) +#define UART_IE7816_BWTE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_BWTE_SHIFT)) & UART_IE7816_BWTE_MASK) +#define UART_IE7816_CWTE_MASK (0x40U) +#define UART_IE7816_CWTE_SHIFT (6U) +#define UART_IE7816_CWTE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_CWTE_SHIFT)) & UART_IE7816_CWTE_MASK) +#define UART_IE7816_WTE_MASK (0x80U) +#define UART_IE7816_WTE_SHIFT (7U) +#define UART_IE7816_WTE(x) (((uint8_t)(((uint8_t)(x)) << UART_IE7816_WTE_SHIFT)) & UART_IE7816_WTE_MASK) + +/*! @name IS7816 - UART 7816 Interrupt Status Register */ +#define UART_IS7816_RXT_MASK (0x1U) +#define UART_IS7816_RXT_SHIFT (0U) +#define UART_IS7816_RXT(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_RXT_SHIFT)) & UART_IS7816_RXT_MASK) +#define UART_IS7816_TXT_MASK (0x2U) +#define UART_IS7816_TXT_SHIFT (1U) +#define UART_IS7816_TXT(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_TXT_SHIFT)) & UART_IS7816_TXT_MASK) +#define UART_IS7816_GTV_MASK (0x4U) +#define UART_IS7816_GTV_SHIFT (2U) +#define UART_IS7816_GTV(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_GTV_SHIFT)) & UART_IS7816_GTV_MASK) +#define UART_IS7816_INITD_MASK (0x10U) +#define UART_IS7816_INITD_SHIFT (4U) +#define UART_IS7816_INITD(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_INITD_SHIFT)) & UART_IS7816_INITD_MASK) +#define UART_IS7816_BWT_MASK (0x20U) +#define UART_IS7816_BWT_SHIFT (5U) +#define UART_IS7816_BWT(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_BWT_SHIFT)) & UART_IS7816_BWT_MASK) +#define UART_IS7816_CWT_MASK (0x40U) +#define UART_IS7816_CWT_SHIFT (6U) +#define UART_IS7816_CWT(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_CWT_SHIFT)) & UART_IS7816_CWT_MASK) +#define UART_IS7816_WT_MASK (0x80U) +#define UART_IS7816_WT_SHIFT (7U) +#define UART_IS7816_WT(x) (((uint8_t)(((uint8_t)(x)) << UART_IS7816_WT_SHIFT)) & UART_IS7816_WT_MASK) + +/*! @name WP7816T0 - UART 7816 Wait Parameter Register */ +#define UART_WP7816T0_WI_MASK (0xFFU) +#define UART_WP7816T0_WI_SHIFT (0U) +#define UART_WP7816T0_WI(x) (((uint8_t)(((uint8_t)(x)) << UART_WP7816T0_WI_SHIFT)) & UART_WP7816T0_WI_MASK) + +/*! @name WP7816T1 - UART 7816 Wait Parameter Register */ +#define UART_WP7816T1_BWI_MASK (0xFU) +#define UART_WP7816T1_BWI_SHIFT (0U) +#define UART_WP7816T1_BWI(x) (((uint8_t)(((uint8_t)(x)) << UART_WP7816T1_BWI_SHIFT)) & UART_WP7816T1_BWI_MASK) +#define UART_WP7816T1_CWI_MASK (0xF0U) +#define UART_WP7816T1_CWI_SHIFT (4U) +#define UART_WP7816T1_CWI(x) (((uint8_t)(((uint8_t)(x)) << UART_WP7816T1_CWI_SHIFT)) & UART_WP7816T1_CWI_MASK) + +/*! @name WN7816 - UART 7816 Wait N Register */ +#define UART_WN7816_GTN_MASK (0xFFU) +#define UART_WN7816_GTN_SHIFT (0U) +#define UART_WN7816_GTN(x) (((uint8_t)(((uint8_t)(x)) << UART_WN7816_GTN_SHIFT)) & UART_WN7816_GTN_MASK) + +/*! @name WF7816 - UART 7816 Wait FD Register */ +#define UART_WF7816_GTFD_MASK (0xFFU) +#define UART_WF7816_GTFD_SHIFT (0U) +#define UART_WF7816_GTFD(x) (((uint8_t)(((uint8_t)(x)) << UART_WF7816_GTFD_SHIFT)) & UART_WF7816_GTFD_MASK) + +/*! @name ET7816 - UART 7816 Error Threshold Register */ +#define UART_ET7816_RXTHRESHOLD_MASK (0xFU) +#define UART_ET7816_RXTHRESHOLD_SHIFT (0U) +#define UART_ET7816_RXTHRESHOLD(x) (((uint8_t)(((uint8_t)(x)) << UART_ET7816_RXTHRESHOLD_SHIFT)) & UART_ET7816_RXTHRESHOLD_MASK) +#define UART_ET7816_TXTHRESHOLD_MASK (0xF0U) +#define UART_ET7816_TXTHRESHOLD_SHIFT (4U) +#define UART_ET7816_TXTHRESHOLD(x) (((uint8_t)(((uint8_t)(x)) << UART_ET7816_TXTHRESHOLD_SHIFT)) & UART_ET7816_TXTHRESHOLD_MASK) + +/*! @name TL7816 - UART 7816 Transmit Length Register */ +#define UART_TL7816_TLEN_MASK (0xFFU) +#define UART_TL7816_TLEN_SHIFT (0U) +#define UART_TL7816_TLEN(x) (((uint8_t)(((uint8_t)(x)) << UART_TL7816_TLEN_SHIFT)) & UART_TL7816_TLEN_MASK) + + +/*! + * @} + */ /* end of group UART_Register_Masks */ + + +/* UART - Peripheral instance base addresses */ +/** Peripheral UART0 base address */ +#define UART0_BASE (0x4006A000u) +/** Peripheral UART0 base pointer */ +#define UART0 ((UART_Type *)UART0_BASE) +/** Peripheral UART1 base address */ +#define UART1_BASE (0x4006B000u) +/** Peripheral UART1 base pointer */ +#define UART1 ((UART_Type *)UART1_BASE) +/** Peripheral UART2 base address */ +#define UART2_BASE (0x4006C000u) +/** Peripheral UART2 base pointer */ +#define UART2 ((UART_Type *)UART2_BASE) +/** Peripheral UART3 base address */ +#define UART3_BASE (0x4006D000u) +/** Peripheral UART3 base pointer */ +#define UART3 ((UART_Type *)UART3_BASE) +/** Peripheral UART4 base address */ +#define UART4_BASE (0x400EA000u) +/** Peripheral UART4 base pointer */ +#define UART4 ((UART_Type *)UART4_BASE) +/** Peripheral UART5 base address */ +#define UART5_BASE (0x400EB000u) +/** Peripheral UART5 base pointer */ +#define UART5 ((UART_Type *)UART5_BASE) +/** Array initializer of UART peripheral base addresses */ +#define UART_BASE_ADDRS { UART0_BASE, UART1_BASE, UART2_BASE, UART3_BASE, UART4_BASE, UART5_BASE } +/** Array initializer of UART peripheral base pointers */ +#define UART_BASE_PTRS { UART0, UART1, UART2, UART3, UART4, UART5 } +/** Interrupt vectors for the UART peripheral type */ +#define UART_RX_TX_IRQS { UART0_RX_TX_IRQn, UART1_RX_TX_IRQn, UART2_RX_TX_IRQn, UART3_RX_TX_IRQn, UART4_RX_TX_IRQn, UART5_RX_TX_IRQn } +#define UART_ERR_IRQS { UART0_ERR_IRQn, UART1_ERR_IRQn, UART2_ERR_IRQn, UART3_ERR_IRQn, UART4_ERR_IRQn, UART5_ERR_IRQn } +#define UART_LON_IRQS { UART0_LON_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn } + +/*! + * @} + */ /* end of group UART_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- USB Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup USB_Peripheral_Access_Layer USB Peripheral Access Layer + * @{ + */ + +/** USB - Register Layout Typedef */ +typedef struct { + __I uint8_t PERID; /**< Peripheral ID register, offset: 0x0 */ + uint8_t RESERVED_0[3]; + __I uint8_t IDCOMP; /**< Peripheral ID Complement register, offset: 0x4 */ + uint8_t RESERVED_1[3]; + __I uint8_t REV; /**< Peripheral Revision register, offset: 0x8 */ + uint8_t RESERVED_2[3]; + __I uint8_t ADDINFO; /**< Peripheral Additional Info register, offset: 0xC */ + uint8_t RESERVED_3[3]; + __IO uint8_t OTGISTAT; /**< OTG Interrupt Status register, offset: 0x10 */ + uint8_t RESERVED_4[3]; + __IO uint8_t OTGICR; /**< OTG Interrupt Control register, offset: 0x14 */ + uint8_t RESERVED_5[3]; + __IO uint8_t OTGSTAT; /**< OTG Status register, offset: 0x18 */ + uint8_t RESERVED_6[3]; + __IO uint8_t OTGCTL; /**< OTG Control register, offset: 0x1C */ + uint8_t RESERVED_7[99]; + __IO uint8_t ISTAT; /**< Interrupt Status register, offset: 0x80 */ + uint8_t RESERVED_8[3]; + __IO uint8_t INTEN; /**< Interrupt Enable register, offset: 0x84 */ + uint8_t RESERVED_9[3]; + __IO uint8_t ERRSTAT; /**< Error Interrupt Status register, offset: 0x88 */ + uint8_t RESERVED_10[3]; + __IO uint8_t ERREN; /**< Error Interrupt Enable register, offset: 0x8C */ + uint8_t RESERVED_11[3]; + __I uint8_t STAT; /**< Status register, offset: 0x90 */ + uint8_t RESERVED_12[3]; + __IO uint8_t CTL; /**< Control register, offset: 0x94 */ + uint8_t RESERVED_13[3]; + __IO uint8_t ADDR; /**< Address register, offset: 0x98 */ + uint8_t RESERVED_14[3]; + __IO uint8_t BDTPAGE1; /**< BDT Page register 1, offset: 0x9C */ + uint8_t RESERVED_15[3]; + __IO uint8_t FRMNUML; /**< Frame Number register Low, offset: 0xA0 */ + uint8_t RESERVED_16[3]; + __IO uint8_t FRMNUMH; /**< Frame Number register High, offset: 0xA4 */ + uint8_t RESERVED_17[3]; + __IO uint8_t TOKEN; /**< Token register, offset: 0xA8 */ + uint8_t RESERVED_18[3]; + __IO uint8_t SOFTHLD; /**< SOF Threshold register, offset: 0xAC */ + uint8_t RESERVED_19[3]; + __IO uint8_t BDTPAGE2; /**< BDT Page Register 2, offset: 0xB0 */ + uint8_t RESERVED_20[3]; + __IO uint8_t BDTPAGE3; /**< BDT Page Register 3, offset: 0xB4 */ + uint8_t RESERVED_21[11]; + struct { /* offset: 0xC0, array step: 0x4 */ + __IO uint8_t ENDPT; /**< Endpoint Control register, array offset: 0xC0, array step: 0x4 */ + uint8_t RESERVED_0[3]; + } ENDPOINT[16]; + __IO uint8_t USBCTRL; /**< USB Control register, offset: 0x100 */ + uint8_t RESERVED_22[3]; + __I uint8_t OBSERVE; /**< USB OTG Observe register, offset: 0x104 */ + uint8_t RESERVED_23[3]; + __IO uint8_t CONTROL; /**< USB OTG Control register, offset: 0x108 */ + uint8_t RESERVED_24[3]; + __IO uint8_t USBTRC0; /**< USB Transceiver Control register 0, offset: 0x10C */ + uint8_t RESERVED_25[7]; + __IO uint8_t USBFRMADJUST; /**< Frame Adjust Register, offset: 0x114 */ + uint8_t RESERVED_26[43]; + __IO uint8_t CLK_RECOVER_CTRL; /**< USB Clock recovery control, offset: 0x140 */ + uint8_t RESERVED_27[3]; + __IO uint8_t CLK_RECOVER_IRC_EN; /**< IRC48M oscillator enable register, offset: 0x144 */ + uint8_t RESERVED_28[23]; + __IO uint8_t CLK_RECOVER_INT_STATUS; /**< Clock recovery separated interrupt status, offset: 0x15C */ +} USB_Type; + +/* ---------------------------------------------------------------------------- + -- USB Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup USB_Register_Masks USB Register Masks + * @{ + */ + +/*! @name PERID - Peripheral ID register */ +#define USB_PERID_ID_MASK (0x3FU) +#define USB_PERID_ID_SHIFT (0U) +#define USB_PERID_ID(x) (((uint8_t)(((uint8_t)(x)) << USB_PERID_ID_SHIFT)) & USB_PERID_ID_MASK) + +/*! @name IDCOMP - Peripheral ID Complement register */ +#define USB_IDCOMP_NID_MASK (0x3FU) +#define USB_IDCOMP_NID_SHIFT (0U) +#define USB_IDCOMP_NID(x) (((uint8_t)(((uint8_t)(x)) << USB_IDCOMP_NID_SHIFT)) & USB_IDCOMP_NID_MASK) + +/*! @name REV - Peripheral Revision register */ +#define USB_REV_REV_MASK (0xFFU) +#define USB_REV_REV_SHIFT (0U) +#define USB_REV_REV(x) (((uint8_t)(((uint8_t)(x)) << USB_REV_REV_SHIFT)) & USB_REV_REV_MASK) + +/*! @name ADDINFO - Peripheral Additional Info register */ +#define USB_ADDINFO_IEHOST_MASK (0x1U) +#define USB_ADDINFO_IEHOST_SHIFT (0U) +#define USB_ADDINFO_IEHOST(x) (((uint8_t)(((uint8_t)(x)) << USB_ADDINFO_IEHOST_SHIFT)) & USB_ADDINFO_IEHOST_MASK) +#define USB_ADDINFO_IRQNUM_MASK (0xF8U) +#define USB_ADDINFO_IRQNUM_SHIFT (3U) +#define USB_ADDINFO_IRQNUM(x) (((uint8_t)(((uint8_t)(x)) << USB_ADDINFO_IRQNUM_SHIFT)) & USB_ADDINFO_IRQNUM_MASK) + +/*! @name OTGISTAT - OTG Interrupt Status register */ +#define USB_OTGISTAT_AVBUSCHG_MASK (0x1U) +#define USB_OTGISTAT_AVBUSCHG_SHIFT (0U) +#define USB_OTGISTAT_AVBUSCHG(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGISTAT_AVBUSCHG_SHIFT)) & USB_OTGISTAT_AVBUSCHG_MASK) +#define USB_OTGISTAT_B_SESS_CHG_MASK (0x4U) +#define USB_OTGISTAT_B_SESS_CHG_SHIFT (2U) +#define USB_OTGISTAT_B_SESS_CHG(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGISTAT_B_SESS_CHG_SHIFT)) & USB_OTGISTAT_B_SESS_CHG_MASK) +#define USB_OTGISTAT_SESSVLDCHG_MASK (0x8U) +#define USB_OTGISTAT_SESSVLDCHG_SHIFT (3U) +#define USB_OTGISTAT_SESSVLDCHG(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGISTAT_SESSVLDCHG_SHIFT)) & USB_OTGISTAT_SESSVLDCHG_MASK) +#define USB_OTGISTAT_LINE_STATE_CHG_MASK (0x20U) +#define USB_OTGISTAT_LINE_STATE_CHG_SHIFT (5U) +#define USB_OTGISTAT_LINE_STATE_CHG(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGISTAT_LINE_STATE_CHG_SHIFT)) & USB_OTGISTAT_LINE_STATE_CHG_MASK) +#define USB_OTGISTAT_ONEMSEC_MASK (0x40U) +#define USB_OTGISTAT_ONEMSEC_SHIFT (6U) +#define USB_OTGISTAT_ONEMSEC(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGISTAT_ONEMSEC_SHIFT)) & USB_OTGISTAT_ONEMSEC_MASK) +#define USB_OTGISTAT_IDCHG_MASK (0x80U) +#define USB_OTGISTAT_IDCHG_SHIFT (7U) +#define USB_OTGISTAT_IDCHG(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGISTAT_IDCHG_SHIFT)) & USB_OTGISTAT_IDCHG_MASK) + +/*! @name OTGICR - OTG Interrupt Control register */ +#define USB_OTGICR_AVBUSEN_MASK (0x1U) +#define USB_OTGICR_AVBUSEN_SHIFT (0U) +#define USB_OTGICR_AVBUSEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGICR_AVBUSEN_SHIFT)) & USB_OTGICR_AVBUSEN_MASK) +#define USB_OTGICR_BSESSEN_MASK (0x4U) +#define USB_OTGICR_BSESSEN_SHIFT (2U) +#define USB_OTGICR_BSESSEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGICR_BSESSEN_SHIFT)) & USB_OTGICR_BSESSEN_MASK) +#define USB_OTGICR_SESSVLDEN_MASK (0x8U) +#define USB_OTGICR_SESSVLDEN_SHIFT (3U) +#define USB_OTGICR_SESSVLDEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGICR_SESSVLDEN_SHIFT)) & USB_OTGICR_SESSVLDEN_MASK) +#define USB_OTGICR_LINESTATEEN_MASK (0x20U) +#define USB_OTGICR_LINESTATEEN_SHIFT (5U) +#define USB_OTGICR_LINESTATEEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGICR_LINESTATEEN_SHIFT)) & USB_OTGICR_LINESTATEEN_MASK) +#define USB_OTGICR_ONEMSECEN_MASK (0x40U) +#define USB_OTGICR_ONEMSECEN_SHIFT (6U) +#define USB_OTGICR_ONEMSECEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGICR_ONEMSECEN_SHIFT)) & USB_OTGICR_ONEMSECEN_MASK) +#define USB_OTGICR_IDEN_MASK (0x80U) +#define USB_OTGICR_IDEN_SHIFT (7U) +#define USB_OTGICR_IDEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGICR_IDEN_SHIFT)) & USB_OTGICR_IDEN_MASK) + +/*! @name OTGSTAT - OTG Status register */ +#define USB_OTGSTAT_AVBUSVLD_MASK (0x1U) +#define USB_OTGSTAT_AVBUSVLD_SHIFT (0U) +#define USB_OTGSTAT_AVBUSVLD(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGSTAT_AVBUSVLD_SHIFT)) & USB_OTGSTAT_AVBUSVLD_MASK) +#define USB_OTGSTAT_BSESSEND_MASK (0x4U) +#define USB_OTGSTAT_BSESSEND_SHIFT (2U) +#define USB_OTGSTAT_BSESSEND(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGSTAT_BSESSEND_SHIFT)) & USB_OTGSTAT_BSESSEND_MASK) +#define USB_OTGSTAT_SESS_VLD_MASK (0x8U) +#define USB_OTGSTAT_SESS_VLD_SHIFT (3U) +#define USB_OTGSTAT_SESS_VLD(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGSTAT_SESS_VLD_SHIFT)) & USB_OTGSTAT_SESS_VLD_MASK) +#define USB_OTGSTAT_LINESTATESTABLE_MASK (0x20U) +#define USB_OTGSTAT_LINESTATESTABLE_SHIFT (5U) +#define USB_OTGSTAT_LINESTATESTABLE(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGSTAT_LINESTATESTABLE_SHIFT)) & USB_OTGSTAT_LINESTATESTABLE_MASK) +#define USB_OTGSTAT_ONEMSECEN_MASK (0x40U) +#define USB_OTGSTAT_ONEMSECEN_SHIFT (6U) +#define USB_OTGSTAT_ONEMSECEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGSTAT_ONEMSECEN_SHIFT)) & USB_OTGSTAT_ONEMSECEN_MASK) +#define USB_OTGSTAT_ID_MASK (0x80U) +#define USB_OTGSTAT_ID_SHIFT (7U) +#define USB_OTGSTAT_ID(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGSTAT_ID_SHIFT)) & USB_OTGSTAT_ID_MASK) + +/*! @name OTGCTL - OTG Control register */ +#define USB_OTGCTL_OTGEN_MASK (0x4U) +#define USB_OTGCTL_OTGEN_SHIFT (2U) +#define USB_OTGCTL_OTGEN(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGCTL_OTGEN_SHIFT)) & USB_OTGCTL_OTGEN_MASK) +#define USB_OTGCTL_DMLOW_MASK (0x10U) +#define USB_OTGCTL_DMLOW_SHIFT (4U) +#define USB_OTGCTL_DMLOW(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGCTL_DMLOW_SHIFT)) & USB_OTGCTL_DMLOW_MASK) +#define USB_OTGCTL_DPLOW_MASK (0x20U) +#define USB_OTGCTL_DPLOW_SHIFT (5U) +#define USB_OTGCTL_DPLOW(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGCTL_DPLOW_SHIFT)) & USB_OTGCTL_DPLOW_MASK) +#define USB_OTGCTL_DPHIGH_MASK (0x80U) +#define USB_OTGCTL_DPHIGH_SHIFT (7U) +#define USB_OTGCTL_DPHIGH(x) (((uint8_t)(((uint8_t)(x)) << USB_OTGCTL_DPHIGH_SHIFT)) & USB_OTGCTL_DPHIGH_MASK) + +/*! @name ISTAT - Interrupt Status register */ +#define USB_ISTAT_USBRST_MASK (0x1U) +#define USB_ISTAT_USBRST_SHIFT (0U) +#define USB_ISTAT_USBRST(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_USBRST_SHIFT)) & USB_ISTAT_USBRST_MASK) +#define USB_ISTAT_ERROR_MASK (0x2U) +#define USB_ISTAT_ERROR_SHIFT (1U) +#define USB_ISTAT_ERROR(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_ERROR_SHIFT)) & USB_ISTAT_ERROR_MASK) +#define USB_ISTAT_SOFTOK_MASK (0x4U) +#define USB_ISTAT_SOFTOK_SHIFT (2U) +#define USB_ISTAT_SOFTOK(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_SOFTOK_SHIFT)) & USB_ISTAT_SOFTOK_MASK) +#define USB_ISTAT_TOKDNE_MASK (0x8U) +#define USB_ISTAT_TOKDNE_SHIFT (3U) +#define USB_ISTAT_TOKDNE(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_TOKDNE_SHIFT)) & USB_ISTAT_TOKDNE_MASK) +#define USB_ISTAT_SLEEP_MASK (0x10U) +#define USB_ISTAT_SLEEP_SHIFT (4U) +#define USB_ISTAT_SLEEP(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_SLEEP_SHIFT)) & USB_ISTAT_SLEEP_MASK) +#define USB_ISTAT_RESUME_MASK (0x20U) +#define USB_ISTAT_RESUME_SHIFT (5U) +#define USB_ISTAT_RESUME(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_RESUME_SHIFT)) & USB_ISTAT_RESUME_MASK) +#define USB_ISTAT_ATTACH_MASK (0x40U) +#define USB_ISTAT_ATTACH_SHIFT (6U) +#define USB_ISTAT_ATTACH(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_ATTACH_SHIFT)) & USB_ISTAT_ATTACH_MASK) +#define USB_ISTAT_STALL_MASK (0x80U) +#define USB_ISTAT_STALL_SHIFT (7U) +#define USB_ISTAT_STALL(x) (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_STALL_SHIFT)) & USB_ISTAT_STALL_MASK) + +/*! @name INTEN - Interrupt Enable register */ +#define USB_INTEN_USBRSTEN_MASK (0x1U) +#define USB_INTEN_USBRSTEN_SHIFT (0U) +#define USB_INTEN_USBRSTEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_USBRSTEN_SHIFT)) & USB_INTEN_USBRSTEN_MASK) +#define USB_INTEN_ERROREN_MASK (0x2U) +#define USB_INTEN_ERROREN_SHIFT (1U) +#define USB_INTEN_ERROREN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_ERROREN_SHIFT)) & USB_INTEN_ERROREN_MASK) +#define USB_INTEN_SOFTOKEN_MASK (0x4U) +#define USB_INTEN_SOFTOKEN_SHIFT (2U) +#define USB_INTEN_SOFTOKEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_SOFTOKEN_SHIFT)) & USB_INTEN_SOFTOKEN_MASK) +#define USB_INTEN_TOKDNEEN_MASK (0x8U) +#define USB_INTEN_TOKDNEEN_SHIFT (3U) +#define USB_INTEN_TOKDNEEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_TOKDNEEN_SHIFT)) & USB_INTEN_TOKDNEEN_MASK) +#define USB_INTEN_SLEEPEN_MASK (0x10U) +#define USB_INTEN_SLEEPEN_SHIFT (4U) +#define USB_INTEN_SLEEPEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_SLEEPEN_SHIFT)) & USB_INTEN_SLEEPEN_MASK) +#define USB_INTEN_RESUMEEN_MASK (0x20U) +#define USB_INTEN_RESUMEEN_SHIFT (5U) +#define USB_INTEN_RESUMEEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_RESUMEEN_SHIFT)) & USB_INTEN_RESUMEEN_MASK) +#define USB_INTEN_ATTACHEN_MASK (0x40U) +#define USB_INTEN_ATTACHEN_SHIFT (6U) +#define USB_INTEN_ATTACHEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_ATTACHEN_SHIFT)) & USB_INTEN_ATTACHEN_MASK) +#define USB_INTEN_STALLEN_MASK (0x80U) +#define USB_INTEN_STALLEN_SHIFT (7U) +#define USB_INTEN_STALLEN(x) (((uint8_t)(((uint8_t)(x)) << USB_INTEN_STALLEN_SHIFT)) & USB_INTEN_STALLEN_MASK) + +/*! @name ERRSTAT - Error Interrupt Status register */ +#define USB_ERRSTAT_PIDERR_MASK (0x1U) +#define USB_ERRSTAT_PIDERR_SHIFT (0U) +#define USB_ERRSTAT_PIDERR(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_PIDERR_SHIFT)) & USB_ERRSTAT_PIDERR_MASK) +#define USB_ERRSTAT_CRC5EOF_MASK (0x2U) +#define USB_ERRSTAT_CRC5EOF_SHIFT (1U) +#define USB_ERRSTAT_CRC5EOF(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_CRC5EOF_SHIFT)) & USB_ERRSTAT_CRC5EOF_MASK) +#define USB_ERRSTAT_CRC16_MASK (0x4U) +#define USB_ERRSTAT_CRC16_SHIFT (2U) +#define USB_ERRSTAT_CRC16(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_CRC16_SHIFT)) & USB_ERRSTAT_CRC16_MASK) +#define USB_ERRSTAT_DFN8_MASK (0x8U) +#define USB_ERRSTAT_DFN8_SHIFT (3U) +#define USB_ERRSTAT_DFN8(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_DFN8_SHIFT)) & USB_ERRSTAT_DFN8_MASK) +#define USB_ERRSTAT_BTOERR_MASK (0x10U) +#define USB_ERRSTAT_BTOERR_SHIFT (4U) +#define USB_ERRSTAT_BTOERR(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_BTOERR_SHIFT)) & USB_ERRSTAT_BTOERR_MASK) +#define USB_ERRSTAT_DMAERR_MASK (0x20U) +#define USB_ERRSTAT_DMAERR_SHIFT (5U) +#define USB_ERRSTAT_DMAERR(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_DMAERR_SHIFT)) & USB_ERRSTAT_DMAERR_MASK) +#define USB_ERRSTAT_BTSERR_MASK (0x80U) +#define USB_ERRSTAT_BTSERR_SHIFT (7U) +#define USB_ERRSTAT_BTSERR(x) (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_BTSERR_SHIFT)) & USB_ERRSTAT_BTSERR_MASK) + +/*! @name ERREN - Error Interrupt Enable register */ +#define USB_ERREN_PIDERREN_MASK (0x1U) +#define USB_ERREN_PIDERREN_SHIFT (0U) +#define USB_ERREN_PIDERREN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_PIDERREN_SHIFT)) & USB_ERREN_PIDERREN_MASK) +#define USB_ERREN_CRC5EOFEN_MASK (0x2U) +#define USB_ERREN_CRC5EOFEN_SHIFT (1U) +#define USB_ERREN_CRC5EOFEN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_CRC5EOFEN_SHIFT)) & USB_ERREN_CRC5EOFEN_MASK) +#define USB_ERREN_CRC16EN_MASK (0x4U) +#define USB_ERREN_CRC16EN_SHIFT (2U) +#define USB_ERREN_CRC16EN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_CRC16EN_SHIFT)) & USB_ERREN_CRC16EN_MASK) +#define USB_ERREN_DFN8EN_MASK (0x8U) +#define USB_ERREN_DFN8EN_SHIFT (3U) +#define USB_ERREN_DFN8EN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_DFN8EN_SHIFT)) & USB_ERREN_DFN8EN_MASK) +#define USB_ERREN_BTOERREN_MASK (0x10U) +#define USB_ERREN_BTOERREN_SHIFT (4U) +#define USB_ERREN_BTOERREN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_BTOERREN_SHIFT)) & USB_ERREN_BTOERREN_MASK) +#define USB_ERREN_DMAERREN_MASK (0x20U) +#define USB_ERREN_DMAERREN_SHIFT (5U) +#define USB_ERREN_DMAERREN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_DMAERREN_SHIFT)) & USB_ERREN_DMAERREN_MASK) +#define USB_ERREN_BTSERREN_MASK (0x80U) +#define USB_ERREN_BTSERREN_SHIFT (7U) +#define USB_ERREN_BTSERREN(x) (((uint8_t)(((uint8_t)(x)) << USB_ERREN_BTSERREN_SHIFT)) & USB_ERREN_BTSERREN_MASK) + +/*! @name STAT - Status register */ +#define USB_STAT_ODD_MASK (0x4U) +#define USB_STAT_ODD_SHIFT (2U) +#define USB_STAT_ODD(x) (((uint8_t)(((uint8_t)(x)) << USB_STAT_ODD_SHIFT)) & USB_STAT_ODD_MASK) +#define USB_STAT_TX_MASK (0x8U) +#define USB_STAT_TX_SHIFT (3U) +#define USB_STAT_TX(x) (((uint8_t)(((uint8_t)(x)) << USB_STAT_TX_SHIFT)) & USB_STAT_TX_MASK) +#define USB_STAT_ENDP_MASK (0xF0U) +#define USB_STAT_ENDP_SHIFT (4U) +#define USB_STAT_ENDP(x) (((uint8_t)(((uint8_t)(x)) << USB_STAT_ENDP_SHIFT)) & USB_STAT_ENDP_MASK) + +/*! @name CTL - Control register */ +#define USB_CTL_USBENSOFEN_MASK (0x1U) +#define USB_CTL_USBENSOFEN_SHIFT (0U) +#define USB_CTL_USBENSOFEN(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_USBENSOFEN_SHIFT)) & USB_CTL_USBENSOFEN_MASK) +#define USB_CTL_ODDRST_MASK (0x2U) +#define USB_CTL_ODDRST_SHIFT (1U) +#define USB_CTL_ODDRST(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_ODDRST_SHIFT)) & USB_CTL_ODDRST_MASK) +#define USB_CTL_RESUME_MASK (0x4U) +#define USB_CTL_RESUME_SHIFT (2U) +#define USB_CTL_RESUME(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_RESUME_SHIFT)) & USB_CTL_RESUME_MASK) +#define USB_CTL_HOSTMODEEN_MASK (0x8U) +#define USB_CTL_HOSTMODEEN_SHIFT (3U) +#define USB_CTL_HOSTMODEEN(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_HOSTMODEEN_SHIFT)) & USB_CTL_HOSTMODEEN_MASK) +#define USB_CTL_RESET_MASK (0x10U) +#define USB_CTL_RESET_SHIFT (4U) +#define USB_CTL_RESET(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_RESET_SHIFT)) & USB_CTL_RESET_MASK) +#define USB_CTL_TXSUSPENDTOKENBUSY_MASK (0x20U) +#define USB_CTL_TXSUSPENDTOKENBUSY_SHIFT (5U) +#define USB_CTL_TXSUSPENDTOKENBUSY(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_TXSUSPENDTOKENBUSY_SHIFT)) & USB_CTL_TXSUSPENDTOKENBUSY_MASK) +#define USB_CTL_SE0_MASK (0x40U) +#define USB_CTL_SE0_SHIFT (6U) +#define USB_CTL_SE0(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_SE0_SHIFT)) & USB_CTL_SE0_MASK) +#define USB_CTL_JSTATE_MASK (0x80U) +#define USB_CTL_JSTATE_SHIFT (7U) +#define USB_CTL_JSTATE(x) (((uint8_t)(((uint8_t)(x)) << USB_CTL_JSTATE_SHIFT)) & USB_CTL_JSTATE_MASK) + +/*! @name ADDR - Address register */ +#define USB_ADDR_ADDR_MASK (0x7FU) +#define USB_ADDR_ADDR_SHIFT (0U) +#define USB_ADDR_ADDR(x) (((uint8_t)(((uint8_t)(x)) << USB_ADDR_ADDR_SHIFT)) & USB_ADDR_ADDR_MASK) +#define USB_ADDR_LSEN_MASK (0x80U) +#define USB_ADDR_LSEN_SHIFT (7U) +#define USB_ADDR_LSEN(x) (((uint8_t)(((uint8_t)(x)) << USB_ADDR_LSEN_SHIFT)) & USB_ADDR_LSEN_MASK) + +/*! @name BDTPAGE1 - BDT Page register 1 */ +#define USB_BDTPAGE1_BDTBA_MASK (0xFEU) +#define USB_BDTPAGE1_BDTBA_SHIFT (1U) +#define USB_BDTPAGE1_BDTBA(x) (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE1_BDTBA_SHIFT)) & USB_BDTPAGE1_BDTBA_MASK) + +/*! @name FRMNUML - Frame Number register Low */ +#define USB_FRMNUML_FRM_MASK (0xFFU) +#define USB_FRMNUML_FRM_SHIFT (0U) +#define USB_FRMNUML_FRM(x) (((uint8_t)(((uint8_t)(x)) << USB_FRMNUML_FRM_SHIFT)) & USB_FRMNUML_FRM_MASK) + +/*! @name FRMNUMH - Frame Number register High */ +#define USB_FRMNUMH_FRM_MASK (0x7U) +#define USB_FRMNUMH_FRM_SHIFT (0U) +#define USB_FRMNUMH_FRM(x) (((uint8_t)(((uint8_t)(x)) << USB_FRMNUMH_FRM_SHIFT)) & USB_FRMNUMH_FRM_MASK) + +/*! @name TOKEN - Token register */ +#define USB_TOKEN_TOKENENDPT_MASK (0xFU) +#define USB_TOKEN_TOKENENDPT_SHIFT (0U) +#define USB_TOKEN_TOKENENDPT(x) (((uint8_t)(((uint8_t)(x)) << USB_TOKEN_TOKENENDPT_SHIFT)) & USB_TOKEN_TOKENENDPT_MASK) +#define USB_TOKEN_TOKENPID_MASK (0xF0U) +#define USB_TOKEN_TOKENPID_SHIFT (4U) +#define USB_TOKEN_TOKENPID(x) (((uint8_t)(((uint8_t)(x)) << USB_TOKEN_TOKENPID_SHIFT)) & USB_TOKEN_TOKENPID_MASK) + +/*! @name SOFTHLD - SOF Threshold register */ +#define USB_SOFTHLD_CNT_MASK (0xFFU) +#define USB_SOFTHLD_CNT_SHIFT (0U) +#define USB_SOFTHLD_CNT(x) (((uint8_t)(((uint8_t)(x)) << USB_SOFTHLD_CNT_SHIFT)) & USB_SOFTHLD_CNT_MASK) + +/*! @name BDTPAGE2 - BDT Page Register 2 */ +#define USB_BDTPAGE2_BDTBA_MASK (0xFFU) +#define USB_BDTPAGE2_BDTBA_SHIFT (0U) +#define USB_BDTPAGE2_BDTBA(x) (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE2_BDTBA_SHIFT)) & USB_BDTPAGE2_BDTBA_MASK) + +/*! @name BDTPAGE3 - BDT Page Register 3 */ +#define USB_BDTPAGE3_BDTBA_MASK (0xFFU) +#define USB_BDTPAGE3_BDTBA_SHIFT (0U) +#define USB_BDTPAGE3_BDTBA(x) (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE3_BDTBA_SHIFT)) & USB_BDTPAGE3_BDTBA_MASK) + +/*! @name ENDPT - Endpoint Control register */ +#define USB_ENDPT_EPHSHK_MASK (0x1U) +#define USB_ENDPT_EPHSHK_SHIFT (0U) +#define USB_ENDPT_EPHSHK(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPHSHK_SHIFT)) & USB_ENDPT_EPHSHK_MASK) +#define USB_ENDPT_EPSTALL_MASK (0x2U) +#define USB_ENDPT_EPSTALL_SHIFT (1U) +#define USB_ENDPT_EPSTALL(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPSTALL_SHIFT)) & USB_ENDPT_EPSTALL_MASK) +#define USB_ENDPT_EPTXEN_MASK (0x4U) +#define USB_ENDPT_EPTXEN_SHIFT (2U) +#define USB_ENDPT_EPTXEN(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPTXEN_SHIFT)) & USB_ENDPT_EPTXEN_MASK) +#define USB_ENDPT_EPRXEN_MASK (0x8U) +#define USB_ENDPT_EPRXEN_SHIFT (3U) +#define USB_ENDPT_EPRXEN(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPRXEN_SHIFT)) & USB_ENDPT_EPRXEN_MASK) +#define USB_ENDPT_EPCTLDIS_MASK (0x10U) +#define USB_ENDPT_EPCTLDIS_SHIFT (4U) +#define USB_ENDPT_EPCTLDIS(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPCTLDIS_SHIFT)) & USB_ENDPT_EPCTLDIS_MASK) +#define USB_ENDPT_RETRYDIS_MASK (0x40U) +#define USB_ENDPT_RETRYDIS_SHIFT (6U) +#define USB_ENDPT_RETRYDIS(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_RETRYDIS_SHIFT)) & USB_ENDPT_RETRYDIS_MASK) +#define USB_ENDPT_HOSTWOHUB_MASK (0x80U) +#define USB_ENDPT_HOSTWOHUB_SHIFT (7U) +#define USB_ENDPT_HOSTWOHUB(x) (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_HOSTWOHUB_SHIFT)) & USB_ENDPT_HOSTWOHUB_MASK) + +/* The count of USB_ENDPT */ +#define USB_ENDPT_COUNT (16U) + +/*! @name USBCTRL - USB Control register */ +#define USB_USBCTRL_PDE_MASK (0x40U) +#define USB_USBCTRL_PDE_SHIFT (6U) +#define USB_USBCTRL_PDE(x) (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_PDE_SHIFT)) & USB_USBCTRL_PDE_MASK) +#define USB_USBCTRL_SUSP_MASK (0x80U) +#define USB_USBCTRL_SUSP_SHIFT (7U) +#define USB_USBCTRL_SUSP(x) (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_SUSP_SHIFT)) & USB_USBCTRL_SUSP_MASK) + +/*! @name OBSERVE - USB OTG Observe register */ +#define USB_OBSERVE_DMPD_MASK (0x10U) +#define USB_OBSERVE_DMPD_SHIFT (4U) +#define USB_OBSERVE_DMPD(x) (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DMPD_SHIFT)) & USB_OBSERVE_DMPD_MASK) +#define USB_OBSERVE_DPPD_MASK (0x40U) +#define USB_OBSERVE_DPPD_SHIFT (6U) +#define USB_OBSERVE_DPPD(x) (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DPPD_SHIFT)) & USB_OBSERVE_DPPD_MASK) +#define USB_OBSERVE_DPPU_MASK (0x80U) +#define USB_OBSERVE_DPPU_SHIFT (7U) +#define USB_OBSERVE_DPPU(x) (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DPPU_SHIFT)) & USB_OBSERVE_DPPU_MASK) + +/*! @name CONTROL - USB OTG Control register */ +#define USB_CONTROL_DPPULLUPNONOTG_MASK (0x10U) +#define USB_CONTROL_DPPULLUPNONOTG_SHIFT (4U) +#define USB_CONTROL_DPPULLUPNONOTG(x) (((uint8_t)(((uint8_t)(x)) << USB_CONTROL_DPPULLUPNONOTG_SHIFT)) & USB_CONTROL_DPPULLUPNONOTG_MASK) + +/*! @name USBTRC0 - USB Transceiver Control register 0 */ +#define USB_USBTRC0_USB_RESUME_INT_MASK (0x1U) +#define USB_USBTRC0_USB_RESUME_INT_SHIFT (0U) +#define USB_USBTRC0_USB_RESUME_INT(x) (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USB_RESUME_INT_SHIFT)) & USB_USBTRC0_USB_RESUME_INT_MASK) +#define USB_USBTRC0_SYNC_DET_MASK (0x2U) +#define USB_USBTRC0_SYNC_DET_SHIFT (1U) +#define USB_USBTRC0_SYNC_DET(x) (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_SYNC_DET_SHIFT)) & USB_USBTRC0_SYNC_DET_MASK) +#define USB_USBTRC0_USB_CLK_RECOVERY_INT_MASK (0x4U) +#define USB_USBTRC0_USB_CLK_RECOVERY_INT_SHIFT (2U) +#define USB_USBTRC0_USB_CLK_RECOVERY_INT(x) (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USB_CLK_RECOVERY_INT_SHIFT)) & USB_USBTRC0_USB_CLK_RECOVERY_INT_MASK) +#define USB_USBTRC0_USBRESMEN_MASK (0x20U) +#define USB_USBTRC0_USBRESMEN_SHIFT (5U) +#define USB_USBTRC0_USBRESMEN(x) (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USBRESMEN_SHIFT)) & USB_USBTRC0_USBRESMEN_MASK) +#define USB_USBTRC0_USBRESET_MASK (0x80U) +#define USB_USBTRC0_USBRESET_SHIFT (7U) +#define USB_USBTRC0_USBRESET(x) (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USBRESET_SHIFT)) & USB_USBTRC0_USBRESET_MASK) + +/*! @name USBFRMADJUST - Frame Adjust Register */ +#define USB_USBFRMADJUST_ADJ_MASK (0xFFU) +#define USB_USBFRMADJUST_ADJ_SHIFT (0U) +#define USB_USBFRMADJUST_ADJ(x) (((uint8_t)(((uint8_t)(x)) << USB_USBFRMADJUST_ADJ_SHIFT)) & USB_USBFRMADJUST_ADJ_MASK) + +/*! @name CLK_RECOVER_CTRL - USB Clock recovery control */ +#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_MASK (0x20U) +#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_SHIFT (5U) +#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_MASK) +#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_MASK (0x40U) +#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_SHIFT (6U) +#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_MASK) +#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK (0x80U) +#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_SHIFT (7U) +#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK) + +/*! @name CLK_RECOVER_IRC_EN - IRC48M oscillator enable register */ +#define USB_CLK_RECOVER_IRC_EN_REG_EN_MASK (0x1U) +#define USB_CLK_RECOVER_IRC_EN_REG_EN_SHIFT (0U) +#define USB_CLK_RECOVER_IRC_EN_REG_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_IRC_EN_REG_EN_SHIFT)) & USB_CLK_RECOVER_IRC_EN_REG_EN_MASK) +#define USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK (0x2U) +#define USB_CLK_RECOVER_IRC_EN_IRC_EN_SHIFT (1U) +#define USB_CLK_RECOVER_IRC_EN_IRC_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_IRC_EN_IRC_EN_SHIFT)) & USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK) + +/*! @name CLK_RECOVER_INT_STATUS - Clock recovery separated interrupt status */ +#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_MASK (0x10U) +#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_SHIFT (4U) +#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_SHIFT)) & USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_MASK) + + +/*! + * @} + */ /* end of group USB_Register_Masks */ + + +/* USB - Peripheral instance base addresses */ +/** Peripheral USB0 base address */ +#define USB0_BASE (0x40072000u) +/** Peripheral USB0 base pointer */ +#define USB0 ((USB_Type *)USB0_BASE) +/** Array initializer of USB peripheral base addresses */ +#define USB_BASE_ADDRS { USB0_BASE } +/** Array initializer of USB peripheral base pointers */ +#define USB_BASE_PTRS { USB0 } +/** Interrupt vectors for the USB peripheral type */ +#define USB_IRQS { USB0_IRQn } + +/*! + * @} + */ /* end of group USB_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- USBDCD Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup USBDCD_Peripheral_Access_Layer USBDCD Peripheral Access Layer + * @{ + */ + +/** USBDCD - Register Layout Typedef */ +typedef struct { + __IO uint32_t CONTROL; /**< Control register, offset: 0x0 */ + __IO uint32_t CLOCK; /**< Clock register, offset: 0x4 */ + __I uint32_t STATUS; /**< Status register, offset: 0x8 */ + uint8_t RESERVED_0[4]; + __IO uint32_t TIMER0; /**< TIMER0 register, offset: 0x10 */ + __IO uint32_t TIMER1; /**< TIMER1 register, offset: 0x14 */ + union { /* offset: 0x18 */ + __IO uint32_t TIMER2_BC11; /**< TIMER2_BC11 register, offset: 0x18 */ + __IO uint32_t TIMER2_BC12; /**< TIMER2_BC12 register, offset: 0x18 */ + }; +} USBDCD_Type; + +/* ---------------------------------------------------------------------------- + -- USBDCD Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup USBDCD_Register_Masks USBDCD Register Masks + * @{ + */ + +/*! @name CONTROL - Control register */ +#define USBDCD_CONTROL_IACK_MASK (0x1U) +#define USBDCD_CONTROL_IACK_SHIFT (0U) +#define USBDCD_CONTROL_IACK(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CONTROL_IACK_SHIFT)) & USBDCD_CONTROL_IACK_MASK) +#define USBDCD_CONTROL_IF_MASK (0x100U) +#define USBDCD_CONTROL_IF_SHIFT (8U) +#define USBDCD_CONTROL_IF(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CONTROL_IF_SHIFT)) & USBDCD_CONTROL_IF_MASK) +#define USBDCD_CONTROL_IE_MASK (0x10000U) +#define USBDCD_CONTROL_IE_SHIFT (16U) +#define USBDCD_CONTROL_IE(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CONTROL_IE_SHIFT)) & USBDCD_CONTROL_IE_MASK) +#define USBDCD_CONTROL_BC12_MASK (0x20000U) +#define USBDCD_CONTROL_BC12_SHIFT (17U) +#define USBDCD_CONTROL_BC12(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CONTROL_BC12_SHIFT)) & USBDCD_CONTROL_BC12_MASK) +#define USBDCD_CONTROL_START_MASK (0x1000000U) +#define USBDCD_CONTROL_START_SHIFT (24U) +#define USBDCD_CONTROL_START(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CONTROL_START_SHIFT)) & USBDCD_CONTROL_START_MASK) +#define USBDCD_CONTROL_SR_MASK (0x2000000U) +#define USBDCD_CONTROL_SR_SHIFT (25U) +#define USBDCD_CONTROL_SR(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CONTROL_SR_SHIFT)) & USBDCD_CONTROL_SR_MASK) + +/*! @name CLOCK - Clock register */ +#define USBDCD_CLOCK_CLOCK_UNIT_MASK (0x1U) +#define USBDCD_CLOCK_CLOCK_UNIT_SHIFT (0U) +#define USBDCD_CLOCK_CLOCK_UNIT(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CLOCK_CLOCK_UNIT_SHIFT)) & USBDCD_CLOCK_CLOCK_UNIT_MASK) +#define USBDCD_CLOCK_CLOCK_SPEED_MASK (0xFFCU) +#define USBDCD_CLOCK_CLOCK_SPEED_SHIFT (2U) +#define USBDCD_CLOCK_CLOCK_SPEED(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_CLOCK_CLOCK_SPEED_SHIFT)) & USBDCD_CLOCK_CLOCK_SPEED_MASK) + +/*! @name STATUS - Status register */ +#define USBDCD_STATUS_SEQ_RES_MASK (0x30000U) +#define USBDCD_STATUS_SEQ_RES_SHIFT (16U) +#define USBDCD_STATUS_SEQ_RES(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_STATUS_SEQ_RES_SHIFT)) & USBDCD_STATUS_SEQ_RES_MASK) +#define USBDCD_STATUS_SEQ_STAT_MASK (0xC0000U) +#define USBDCD_STATUS_SEQ_STAT_SHIFT (18U) +#define USBDCD_STATUS_SEQ_STAT(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_STATUS_SEQ_STAT_SHIFT)) & USBDCD_STATUS_SEQ_STAT_MASK) +#define USBDCD_STATUS_ERR_MASK (0x100000U) +#define USBDCD_STATUS_ERR_SHIFT (20U) +#define USBDCD_STATUS_ERR(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_STATUS_ERR_SHIFT)) & USBDCD_STATUS_ERR_MASK) +#define USBDCD_STATUS_TO_MASK (0x200000U) +#define USBDCD_STATUS_TO_SHIFT (21U) +#define USBDCD_STATUS_TO(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_STATUS_TO_SHIFT)) & USBDCD_STATUS_TO_MASK) +#define USBDCD_STATUS_ACTIVE_MASK (0x400000U) +#define USBDCD_STATUS_ACTIVE_SHIFT (22U) +#define USBDCD_STATUS_ACTIVE(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_STATUS_ACTIVE_SHIFT)) & USBDCD_STATUS_ACTIVE_MASK) + +/*! @name TIMER0 - TIMER0 register */ +#define USBDCD_TIMER0_TUNITCON_MASK (0xFFFU) +#define USBDCD_TIMER0_TUNITCON_SHIFT (0U) +#define USBDCD_TIMER0_TUNITCON(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER0_TUNITCON_SHIFT)) & USBDCD_TIMER0_TUNITCON_MASK) +#define USBDCD_TIMER0_TSEQ_INIT_MASK (0x3FF0000U) +#define USBDCD_TIMER0_TSEQ_INIT_SHIFT (16U) +#define USBDCD_TIMER0_TSEQ_INIT(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER0_TSEQ_INIT_SHIFT)) & USBDCD_TIMER0_TSEQ_INIT_MASK) + +/*! @name TIMER1 - TIMER1 register */ +#define USBDCD_TIMER1_TVDPSRC_ON_MASK (0x3FFU) +#define USBDCD_TIMER1_TVDPSRC_ON_SHIFT (0U) +#define USBDCD_TIMER1_TVDPSRC_ON(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER1_TVDPSRC_ON_SHIFT)) & USBDCD_TIMER1_TVDPSRC_ON_MASK) +#define USBDCD_TIMER1_TDCD_DBNC_MASK (0x3FF0000U) +#define USBDCD_TIMER1_TDCD_DBNC_SHIFT (16U) +#define USBDCD_TIMER1_TDCD_DBNC(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER1_TDCD_DBNC_SHIFT)) & USBDCD_TIMER1_TDCD_DBNC_MASK) + +/*! @name TIMER2_BC11 - TIMER2_BC11 register */ +#define USBDCD_TIMER2_BC11_CHECK_DM_MASK (0xFU) +#define USBDCD_TIMER2_BC11_CHECK_DM_SHIFT (0U) +#define USBDCD_TIMER2_BC11_CHECK_DM(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER2_BC11_CHECK_DM_SHIFT)) & USBDCD_TIMER2_BC11_CHECK_DM_MASK) +#define USBDCD_TIMER2_BC11_TVDPSRC_CON_MASK (0x3FF0000U) +#define USBDCD_TIMER2_BC11_TVDPSRC_CON_SHIFT (16U) +#define USBDCD_TIMER2_BC11_TVDPSRC_CON(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER2_BC11_TVDPSRC_CON_SHIFT)) & USBDCD_TIMER2_BC11_TVDPSRC_CON_MASK) + +/*! @name TIMER2_BC12 - TIMER2_BC12 register */ +#define USBDCD_TIMER2_BC12_TVDMSRC_ON_MASK (0x3FFU) +#define USBDCD_TIMER2_BC12_TVDMSRC_ON_SHIFT (0U) +#define USBDCD_TIMER2_BC12_TVDMSRC_ON(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER2_BC12_TVDMSRC_ON_SHIFT)) & USBDCD_TIMER2_BC12_TVDMSRC_ON_MASK) +#define USBDCD_TIMER2_BC12_TWAIT_AFTER_PRD_MASK (0x3FF0000U) +#define USBDCD_TIMER2_BC12_TWAIT_AFTER_PRD_SHIFT (16U) +#define USBDCD_TIMER2_BC12_TWAIT_AFTER_PRD(x) (((uint32_t)(((uint32_t)(x)) << USBDCD_TIMER2_BC12_TWAIT_AFTER_PRD_SHIFT)) & USBDCD_TIMER2_BC12_TWAIT_AFTER_PRD_MASK) + + +/*! + * @} + */ /* end of group USBDCD_Register_Masks */ + + +/* USBDCD - Peripheral instance base addresses */ +/** Peripheral USBDCD base address */ +#define USBDCD_BASE (0x40035000u) +/** Peripheral USBDCD base pointer */ +#define USBDCD ((USBDCD_Type *)USBDCD_BASE) +/** Array initializer of USBDCD peripheral base addresses */ +#define USBDCD_BASE_ADDRS { USBDCD_BASE } +/** Array initializer of USBDCD peripheral base pointers */ +#define USBDCD_BASE_PTRS { USBDCD } +/** Interrupt vectors for the USBDCD peripheral type */ +#define USBDCD_IRQS { USBDCD_IRQn } + +/*! + * @} + */ /* end of group USBDCD_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- VREF Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup VREF_Peripheral_Access_Layer VREF Peripheral Access Layer + * @{ + */ + +/** VREF - Register Layout Typedef */ +typedef struct { + __IO uint8_t TRM; /**< VREF Trim Register, offset: 0x0 */ + __IO uint8_t SC; /**< VREF Status and Control Register, offset: 0x1 */ +} VREF_Type; + +/* ---------------------------------------------------------------------------- + -- VREF Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup VREF_Register_Masks VREF Register Masks + * @{ + */ + +/*! @name TRM - VREF Trim Register */ +#define VREF_TRM_TRIM_MASK (0x3FU) +#define VREF_TRM_TRIM_SHIFT (0U) +#define VREF_TRM_TRIM(x) (((uint8_t)(((uint8_t)(x)) << VREF_TRM_TRIM_SHIFT)) & VREF_TRM_TRIM_MASK) +#define VREF_TRM_CHOPEN_MASK (0x40U) +#define VREF_TRM_CHOPEN_SHIFT (6U) +#define VREF_TRM_CHOPEN(x) (((uint8_t)(((uint8_t)(x)) << VREF_TRM_CHOPEN_SHIFT)) & VREF_TRM_CHOPEN_MASK) + +/*! @name SC - VREF Status and Control Register */ +#define VREF_SC_MODE_LV_MASK (0x3U) +#define VREF_SC_MODE_LV_SHIFT (0U) +#define VREF_SC_MODE_LV(x) (((uint8_t)(((uint8_t)(x)) << VREF_SC_MODE_LV_SHIFT)) & VREF_SC_MODE_LV_MASK) +#define VREF_SC_VREFST_MASK (0x4U) +#define VREF_SC_VREFST_SHIFT (2U) +#define VREF_SC_VREFST(x) (((uint8_t)(((uint8_t)(x)) << VREF_SC_VREFST_SHIFT)) & VREF_SC_VREFST_MASK) +#define VREF_SC_ICOMPEN_MASK (0x20U) +#define VREF_SC_ICOMPEN_SHIFT (5U) +#define VREF_SC_ICOMPEN(x) (((uint8_t)(((uint8_t)(x)) << VREF_SC_ICOMPEN_SHIFT)) & VREF_SC_ICOMPEN_MASK) +#define VREF_SC_REGEN_MASK (0x40U) +#define VREF_SC_REGEN_SHIFT (6U) +#define VREF_SC_REGEN(x) (((uint8_t)(((uint8_t)(x)) << VREF_SC_REGEN_SHIFT)) & VREF_SC_REGEN_MASK) +#define VREF_SC_VREFEN_MASK (0x80U) +#define VREF_SC_VREFEN_SHIFT (7U) +#define VREF_SC_VREFEN(x) (((uint8_t)(((uint8_t)(x)) << VREF_SC_VREFEN_SHIFT)) & VREF_SC_VREFEN_MASK) + + +/*! + * @} + */ /* end of group VREF_Register_Masks */ + + +/* VREF - Peripheral instance base addresses */ +/** Peripheral VREF base address */ +#define VREF_BASE (0x40074000u) +/** Peripheral VREF base pointer */ +#define VREF ((VREF_Type *)VREF_BASE) +/** Array initializer of VREF peripheral base addresses */ +#define VREF_BASE_ADDRS { VREF_BASE } +/** Array initializer of VREF peripheral base pointers */ +#define VREF_BASE_PTRS { VREF } + +/*! + * @} + */ /* end of group VREF_Peripheral_Access_Layer */ + + +/* ---------------------------------------------------------------------------- + -- WDOG Peripheral Access Layer + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup WDOG_Peripheral_Access_Layer WDOG Peripheral Access Layer + * @{ + */ + +/** WDOG - Register Layout Typedef */ +typedef struct { + __IO uint16_t STCTRLH; /**< Watchdog Status and Control Register High, offset: 0x0 */ + __IO uint16_t STCTRLL; /**< Watchdog Status and Control Register Low, offset: 0x2 */ + __IO uint16_t TOVALH; /**< Watchdog Time-out Value Register High, offset: 0x4 */ + __IO uint16_t TOVALL; /**< Watchdog Time-out Value Register Low, offset: 0x6 */ + __IO uint16_t WINH; /**< Watchdog Window Register High, offset: 0x8 */ + __IO uint16_t WINL; /**< Watchdog Window Register Low, offset: 0xA */ + __IO uint16_t REFRESH; /**< Watchdog Refresh register, offset: 0xC */ + __IO uint16_t UNLOCK; /**< Watchdog Unlock register, offset: 0xE */ + __IO uint16_t TMROUTH; /**< Watchdog Timer Output Register High, offset: 0x10 */ + __IO uint16_t TMROUTL; /**< Watchdog Timer Output Register Low, offset: 0x12 */ + __IO uint16_t RSTCNT; /**< Watchdog Reset Count register, offset: 0x14 */ + __IO uint16_t PRESC; /**< Watchdog Prescaler register, offset: 0x16 */ +} WDOG_Type; + +/* ---------------------------------------------------------------------------- + -- WDOG Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup WDOG_Register_Masks WDOG Register Masks + * @{ + */ + +/*! @name STCTRLH - Watchdog Status and Control Register High */ +#define WDOG_STCTRLH_WDOGEN_MASK (0x1U) +#define WDOG_STCTRLH_WDOGEN_SHIFT (0U) +#define WDOG_STCTRLH_WDOGEN(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_WDOGEN_SHIFT)) & WDOG_STCTRLH_WDOGEN_MASK) +#define WDOG_STCTRLH_CLKSRC_MASK (0x2U) +#define WDOG_STCTRLH_CLKSRC_SHIFT (1U) +#define WDOG_STCTRLH_CLKSRC(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_CLKSRC_SHIFT)) & WDOG_STCTRLH_CLKSRC_MASK) +#define WDOG_STCTRLH_IRQRSTEN_MASK (0x4U) +#define WDOG_STCTRLH_IRQRSTEN_SHIFT (2U) +#define WDOG_STCTRLH_IRQRSTEN(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_IRQRSTEN_SHIFT)) & WDOG_STCTRLH_IRQRSTEN_MASK) +#define WDOG_STCTRLH_WINEN_MASK (0x8U) +#define WDOG_STCTRLH_WINEN_SHIFT (3U) +#define WDOG_STCTRLH_WINEN(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_WINEN_SHIFT)) & WDOG_STCTRLH_WINEN_MASK) +#define WDOG_STCTRLH_ALLOWUPDATE_MASK (0x10U) +#define WDOG_STCTRLH_ALLOWUPDATE_SHIFT (4U) +#define WDOG_STCTRLH_ALLOWUPDATE(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_ALLOWUPDATE_SHIFT)) & WDOG_STCTRLH_ALLOWUPDATE_MASK) +#define WDOG_STCTRLH_DBGEN_MASK (0x20U) +#define WDOG_STCTRLH_DBGEN_SHIFT (5U) +#define WDOG_STCTRLH_DBGEN(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_DBGEN_SHIFT)) & WDOG_STCTRLH_DBGEN_MASK) +#define WDOG_STCTRLH_STOPEN_MASK (0x40U) +#define WDOG_STCTRLH_STOPEN_SHIFT (6U) +#define WDOG_STCTRLH_STOPEN(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_STOPEN_SHIFT)) & WDOG_STCTRLH_STOPEN_MASK) +#define WDOG_STCTRLH_WAITEN_MASK (0x80U) +#define WDOG_STCTRLH_WAITEN_SHIFT (7U) +#define WDOG_STCTRLH_WAITEN(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_WAITEN_SHIFT)) & WDOG_STCTRLH_WAITEN_MASK) +#define WDOG_STCTRLH_TESTWDOG_MASK (0x400U) +#define WDOG_STCTRLH_TESTWDOG_SHIFT (10U) +#define WDOG_STCTRLH_TESTWDOG(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_TESTWDOG_SHIFT)) & WDOG_STCTRLH_TESTWDOG_MASK) +#define WDOG_STCTRLH_TESTSEL_MASK (0x800U) +#define WDOG_STCTRLH_TESTSEL_SHIFT (11U) +#define WDOG_STCTRLH_TESTSEL(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_TESTSEL_SHIFT)) & WDOG_STCTRLH_TESTSEL_MASK) +#define WDOG_STCTRLH_BYTESEL_MASK (0x3000U) +#define WDOG_STCTRLH_BYTESEL_SHIFT (12U) +#define WDOG_STCTRLH_BYTESEL(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_BYTESEL_SHIFT)) & WDOG_STCTRLH_BYTESEL_MASK) +#define WDOG_STCTRLH_DISTESTWDOG_MASK (0x4000U) +#define WDOG_STCTRLH_DISTESTWDOG_SHIFT (14U) +#define WDOG_STCTRLH_DISTESTWDOG(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLH_DISTESTWDOG_SHIFT)) & WDOG_STCTRLH_DISTESTWDOG_MASK) + +/*! @name STCTRLL - Watchdog Status and Control Register Low */ +#define WDOG_STCTRLL_INTFLG_MASK (0x8000U) +#define WDOG_STCTRLL_INTFLG_SHIFT (15U) +#define WDOG_STCTRLL_INTFLG(x) (((uint16_t)(((uint16_t)(x)) << WDOG_STCTRLL_INTFLG_SHIFT)) & WDOG_STCTRLL_INTFLG_MASK) + +/*! @name TOVALH - Watchdog Time-out Value Register High */ +#define WDOG_TOVALH_TOVALHIGH_MASK (0xFFFFU) +#define WDOG_TOVALH_TOVALHIGH_SHIFT (0U) +#define WDOG_TOVALH_TOVALHIGH(x) (((uint16_t)(((uint16_t)(x)) << WDOG_TOVALH_TOVALHIGH_SHIFT)) & WDOG_TOVALH_TOVALHIGH_MASK) + +/*! @name TOVALL - Watchdog Time-out Value Register Low */ +#define WDOG_TOVALL_TOVALLOW_MASK (0xFFFFU) +#define WDOG_TOVALL_TOVALLOW_SHIFT (0U) +#define WDOG_TOVALL_TOVALLOW(x) (((uint16_t)(((uint16_t)(x)) << WDOG_TOVALL_TOVALLOW_SHIFT)) & WDOG_TOVALL_TOVALLOW_MASK) + +/*! @name WINH - Watchdog Window Register High */ +#define WDOG_WINH_WINHIGH_MASK (0xFFFFU) +#define WDOG_WINH_WINHIGH_SHIFT (0U) +#define WDOG_WINH_WINHIGH(x) (((uint16_t)(((uint16_t)(x)) << WDOG_WINH_WINHIGH_SHIFT)) & WDOG_WINH_WINHIGH_MASK) + +/*! @name WINL - Watchdog Window Register Low */ +#define WDOG_WINL_WINLOW_MASK (0xFFFFU) +#define WDOG_WINL_WINLOW_SHIFT (0U) +#define WDOG_WINL_WINLOW(x) (((uint16_t)(((uint16_t)(x)) << WDOG_WINL_WINLOW_SHIFT)) & WDOG_WINL_WINLOW_MASK) + +/*! @name REFRESH - Watchdog Refresh register */ +#define WDOG_REFRESH_WDOGREFRESH_MASK (0xFFFFU) +#define WDOG_REFRESH_WDOGREFRESH_SHIFT (0U) +#define WDOG_REFRESH_WDOGREFRESH(x) (((uint16_t)(((uint16_t)(x)) << WDOG_REFRESH_WDOGREFRESH_SHIFT)) & WDOG_REFRESH_WDOGREFRESH_MASK) + +/*! @name UNLOCK - Watchdog Unlock register */ +#define WDOG_UNLOCK_WDOGUNLOCK_MASK (0xFFFFU) +#define WDOG_UNLOCK_WDOGUNLOCK_SHIFT (0U) +#define WDOG_UNLOCK_WDOGUNLOCK(x) (((uint16_t)(((uint16_t)(x)) << WDOG_UNLOCK_WDOGUNLOCK_SHIFT)) & WDOG_UNLOCK_WDOGUNLOCK_MASK) + +/*! @name TMROUTH - Watchdog Timer Output Register High */ +#define WDOG_TMROUTH_TIMEROUTHIGH_MASK (0xFFFFU) +#define WDOG_TMROUTH_TIMEROUTHIGH_SHIFT (0U) +#define WDOG_TMROUTH_TIMEROUTHIGH(x) (((uint16_t)(((uint16_t)(x)) << WDOG_TMROUTH_TIMEROUTHIGH_SHIFT)) & WDOG_TMROUTH_TIMEROUTHIGH_MASK) + +/*! @name TMROUTL - Watchdog Timer Output Register Low */ +#define WDOG_TMROUTL_TIMEROUTLOW_MASK (0xFFFFU) +#define WDOG_TMROUTL_TIMEROUTLOW_SHIFT (0U) +#define WDOG_TMROUTL_TIMEROUTLOW(x) (((uint16_t)(((uint16_t)(x)) << WDOG_TMROUTL_TIMEROUTLOW_SHIFT)) & WDOG_TMROUTL_TIMEROUTLOW_MASK) + +/*! @name RSTCNT - Watchdog Reset Count register */ +#define WDOG_RSTCNT_RSTCNT_MASK (0xFFFFU) +#define WDOG_RSTCNT_RSTCNT_SHIFT (0U) +#define WDOG_RSTCNT_RSTCNT(x) (((uint16_t)(((uint16_t)(x)) << WDOG_RSTCNT_RSTCNT_SHIFT)) & WDOG_RSTCNT_RSTCNT_MASK) + +/*! @name PRESC - Watchdog Prescaler register */ +#define WDOG_PRESC_PRESCVAL_MASK (0x700U) +#define WDOG_PRESC_PRESCVAL_SHIFT (8U) +#define WDOG_PRESC_PRESCVAL(x) (((uint16_t)(((uint16_t)(x)) << WDOG_PRESC_PRESCVAL_SHIFT)) & WDOG_PRESC_PRESCVAL_MASK) + + +/*! + * @} + */ /* end of group WDOG_Register_Masks */ + + +/* WDOG - Peripheral instance base addresses */ +/** Peripheral WDOG base address */ +#define WDOG_BASE (0x40052000u) +/** Peripheral WDOG base pointer */ +#define WDOG ((WDOG_Type *)WDOG_BASE) +/** Array initializer of WDOG peripheral base addresses */ +#define WDOG_BASE_ADDRS { WDOG_BASE } +/** Array initializer of WDOG peripheral base pointers */ +#define WDOG_BASE_PTRS { WDOG } +/** Interrupt vectors for the WDOG peripheral type */ +#define WDOG_IRQS { WDOG_EWM_IRQn } + +/*! + * @} + */ /* end of group WDOG_Peripheral_Access_Layer */ + + +/* +** End of section using anonymous unions +*/ + +#if defined(__ARMCC_VERSION) + #pragma pop +#elif defined(__CWCC__) + #pragma pop +#elif defined(__GNUC__) + /* leave anonymous unions enabled */ +#elif defined(__IAR_SYSTEMS_ICC__) + #pragma language=default +#else + #error Not supported compiler type +#endif + +/*! + * @} + */ /* end of group Peripheral_access_layer */ + + +/* ---------------------------------------------------------------------------- + -- SDK Compatibility + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SDK_Compatibility_Symbols SDK Compatibility + * @{ + */ + +#define ENET_RMON_R_DROP_REG(base) ENET_IEEE_R_DROP_REG(base) +#define ENET_RMON_R_FRAME_OK_REG(base) ENET_IEEE_R_FRAME_OK_REG(base) +#define MCG_C2_EREFS0_MASK MCG_C2_EREFS_MASK +#define MCG_C2_EREFS0_SHIFT MCG_C2_EREFS_SHIFT +#define MCG_C2_HGO0_MASK MCG_C2_HGO_MASK +#define MCG_C2_HGO0_SHIFT MCG_C2_HGO_SHIFT +#define MCG_C2_RANGE0_MASK MCG_C2_RANGE_MASK +#define MCG_C2_RANGE0_SHIFT MCG_C2_RANGE_SHIFT +#define MCG_C2_RANGE0(x) MCG_C2_RANGE(x) +#define MCM_ISR_REG(base) MCM_ISCR_REG(base) +#define MCM_ISR_FIOC_MASK MCM_ISCR_FIOC_MASK +#define MCM_ISR_FIOC_SHIFT MCM_ISCR_FIOC_SHIFT +#define MCM_ISR_FDZC_MASK MCM_ISCR_FDZC_MASK +#define MCM_ISR_FDZC_SHIFT MCM_ISCR_FDZC_SHIFT +#define MCM_ISR_FOFC_MASK MCM_ISCR_FOFC_MASK +#define MCM_ISR_FOFC_SHIFT MCM_ISCR_FOFC_SHIFT +#define MCM_ISR_FUFC_MASK MCM_ISCR_FUFC_MASK +#define MCM_ISR_FUFC_SHIFT MCM_ISCR_FUFC_SHIFT +#define MCM_ISR_FIXC_MASK MCM_ISCR_FIXC_MASK +#define MCM_ISR_FIXC_SHIFT MCM_ISCR_FIXC_SHIFT +#define MCM_ISR_FIDC_MASK MCM_ISCR_FIDC_MASK +#define MCM_ISR_FIDC_SHIFT MCM_ISCR_FIDC_SHIFT +#define MCM_ISR_FIOCE_MASK MCM_ISCR_FIOCE_MASK +#define MCM_ISR_FIOCE_SHIFT MCM_ISCR_FIOCE_SHIFT +#define MCM_ISR_FDZCE_MASK MCM_ISCR_FDZCE_MASK +#define MCM_ISR_FDZCE_SHIFT MCM_ISCR_FDZCE_SHIFT +#define MCM_ISR_FOFCE_MASK MCM_ISCR_FOFCE_MASK +#define MCM_ISR_FOFCE_SHIFT MCM_ISCR_FOFCE_SHIFT +#define MCM_ISR_FUFCE_MASK MCM_ISCR_FUFCE_MASK +#define MCM_ISR_FUFCE_SHIFT MCM_ISCR_FUFCE_SHIFT +#define MCM_ISR_FIXCE_MASK MCM_ISCR_FIXCE_MASK +#define MCM_ISR_FIXCE_SHIFT MCM_ISCR_FIXCE_SHIFT +#define MCM_ISR_FIDCE_MASK MCM_ISCR_FIDCE_MASK +#define MCM_ISR_FIDCE_SHIFT MCM_ISCR_FIDCE_SHIFT +#define DSPI0 SPI0 +#define DSPI1 SPI1 +#define DSPI2 SPI2 +#define FLEXCAN0 CAN0 +#define PTA_BASE GPIOA_BASE +#define PTA GPIOA +#define PTB_BASE GPIOB_BASE +#define PTB GPIOB +#define PTC_BASE GPIOC_BASE +#define PTC GPIOC +#define PTD_BASE GPIOD_BASE +#define PTD GPIOD +#define PTE_BASE GPIOE_BASE +#define PTE GPIOE +#define UART_WP7816_T_TYPE0_REG(base) UART_WP7816T0_REG(base) +#define UART_WP7816_T_TYPE1_REG(base) UART_WP7816T1_REG(base) +#define UART_WP7816_T_TYPE0_WI_MASK UART_WP7816T0_WI_MASK +#define UART_WP7816_T_TYPE0_WI_SHIFT UART_WP7816T0_WI_SHIFT +#define UART_WP7816_T_TYPE0_WI(x) UART_WP7816T0_WI(x) +#define UART_WP7816_T_TYPE1_BWI_MASK UART_WP7816T1_BWI_MASK +#define UART_WP7816_T_TYPE1_BWI_SHIFT UART_WP7816T1_BWI_SHIFT +#define UART_WP7816_T_TYPE1_BWI(x) UART_WP7816T1_BWI(x) +#define UART_WP7816_T_TYPE1_CWI_MASK UART_WP7816T1_CWI_MASK +#define UART_WP7816_T_TYPE1_CWI_SHIFT UART_WP7816T1_CWI_SHIFT +#define UART_WP7816_T_TYPE1_CWI(x) UART_WP7816T1_CWI(x) +#define Watchdog_IRQn WDOG_EWM_IRQn +#define Watchdog_IRQHandler WDOG_EWM_IRQHandler +#define LPTimer_IRQn LPTMR0_IRQn +#define LPTimer_IRQHandler LPTMR0_IRQHandler +#define LLW_IRQn LLWU_IRQn +#define LLW_IRQHandler LLWU_IRQHandler +#define DMAMUX0 DMAMUX +#define WDOG0 WDOG +#define MCM0 MCM +#define RTC0 RTC + +/*! + * @} + */ /* end of group SDK_Compatibility_Symbols */ + + +#endif /* _MK64F12_H_ */ + diff --git a/ext/hal/ksdk/devices/MK64F12/MK64F12.svd b/ext/hal/ksdk/devices/MK64F12/MK64F12.svd new file mode 100644 index 00000000000..c2f9035ab9d --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/MK64F12.svd @@ -0,0 +1,136687 @@ + + + Freescale Semiconductor, Inc. + Freescale + Kinetis_K + MK64F12 + 1.6 + MK64F12 Freescale Microcontroller + Redistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n o Redistributions of source code must retain the above copyright notice, this list\n of conditions and the following disclaimer.\n o Redistributions in binary form must reproduce the above copyright notice, this\n list of conditions and the following disclaimer in the documentation and/or\n other materials provided with the distribution.\n o Neither the name of Freescale Semiconductor, Inc. nor the names of its\n contributors may be used to endorse or promote products derived from this\n software without specific prior written permission.\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + CM4 + r0p1 + little + true + false + true + 4 + false + + 8 + 32 + + + FTFE_FlashConfig + Flash configuration field + NV_ + 0x400 + + 0 + 0x10 + registers + + + + BACKKEY3 + Backdoor Comparison Key 3. + 0 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY2 + Backdoor Comparison Key 2. + 0x1 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY1 + Backdoor Comparison Key 1. + 0x2 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY0 + Backdoor Comparison Key 0. + 0x3 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY7 + Backdoor Comparison Key 7. + 0x4 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY6 + Backdoor Comparison Key 6. + 0x5 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY5 + Backdoor Comparison Key 5. + 0x6 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + BACKKEY4 + Backdoor Comparison Key 4. + 0x7 + 8 + read-only + 0xFF + 0xFF + + + KEY + Backdoor Comparison Key. + 0 + 8 + read-only + + + + + FPROT3 + Non-volatile P-Flash Protection 1 - Low Register + 0x8 + 8 + read-only + 0xFF + 0xFF + + + PROT + P-Flash Region Protect + 0 + 8 + read-only + + + + + FPROT2 + Non-volatile P-Flash Protection 1 - High Register + 0x9 + 8 + read-only + 0xFF + 0xFF + + + PROT + P-Flash Region Protect + 0 + 8 + read-only + + + + + FPROT1 + Non-volatile P-Flash Protection 0 - Low Register + 0xA + 8 + read-only + 0xFF + 0xFF + + + PROT + P-Flash Region Protect + 0 + 8 + read-only + + + + + FPROT0 + Non-volatile P-Flash Protection 0 - High Register + 0xB + 8 + read-only + 0xFF + 0xFF + + + PROT + P-Flash Region Protect + 0 + 8 + read-only + + + + + FSEC + Non-volatile Flash Security Register + 0xC + 8 + read-only + 0xFF + 0xFF + + + SEC + Flash Security + 0 + 2 + read-only + + + 10 + MCU security status is unsecure + #10 + + + 11 + MCU security status is secure + #11 + + + + + FSLACC + Freescale Failure Analysis Access Code + 2 + 2 + read-only + + + 10 + Freescale factory access denied + #10 + + + 11 + Freescale factory access granted + #11 + + + + + MEEN + no description available + 4 + 2 + read-only + + + 10 + Mass erase is disabled + #10 + + + 11 + Mass erase is enabled + #11 + + + + + KEYEN + Backdoor Key Security Enable + 6 + 2 + read-only + + + 10 + Backdoor key access enabled + #10 + + + 11 + Backdoor key access disabled + #11 + + + + + + + FOPT + Non-volatile Flash Option Register + 0xD + 8 + read-only + 0xFF + 0xFF + + + LPBOOT + no description available + 0 + 1 + read-only + + + 00 + Low-power boot + #0 + + + 01 + Normal boot + #1 + + + + + EZPORT_DIS + no description available + 1 + 1 + read-only + + + 00 + EzPort operation is disabled + #0 + + + 01 + EzPort operation is enabled + #1 + + + + + + + FEPROT + Non-volatile EERAM Protection Register + 0xE + 8 + read-only + 0xFF + 0xFF + + + EPROT + no description available + 0 + 8 + read-only + + + + + FDPROT + Non-volatile D-Flash Protection Register + 0xF + 8 + read-only + 0xFF + 0xFF + + + DPROT + D-Flash Region Protect + 0 + 8 + read-only + + + + + + + AIPS0 + AIPS-Lite Bridge + AIPS + AIPS0_ + 0x40000000 + + 0 + 0x84 + registers + + + + MPRA + Master Privilege Register A + 0 + 32 + read-write + 0x77700000 + 0xFFFFFFFF + + + MPL5 + Master 5 Privilege Level + 8 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW5 + Master 5 Trusted For Writes + 9 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR5 + Master 5 Trusted For Read + 10 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL4 + Master 4 Privilege Level + 12 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW4 + Master 4 Trusted For Writes + 13 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR4 + Master 4 Trusted For Read + 14 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL3 + Master 3 Privilege Level + 16 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW3 + Master 3 Trusted For Writes + 17 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR3 + Master 3 Trusted For Read + 18 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL2 + Master 2 Privilege Level + 20 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW2 + Master 2 Trusted For Writes + 21 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR2 + Master 2 Trusted For Read + 22 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL1 + Master 1 Privilege Level + 24 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW1 + Master 1 Trusted for Writes + 25 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR1 + Master 1 Trusted for Read + 26 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL0 + Master 0 Privilege Level + 28 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW0 + Master 0 Trusted For Writes + 29 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR0 + Master 0 Trusted For Read + 30 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + + + PACRA + Peripheral Access Control Register + 0x20 + 32 + read-write + 0x50004000 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRB + Peripheral Access Control Register + 0x24 + 32 + read-write + 0x44004400 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRC + Peripheral Access Control Register + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRD + Peripheral Access Control Register + 0x2C + 32 + read-write + 0x4 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRE + Peripheral Access Control Register + 0x40 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRF + Peripheral Access Control Register + 0x44 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRG + Peripheral Access Control Register + 0x48 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRH + Peripheral Access Control Register + 0x4C + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRI + Peripheral Access Control Register + 0x50 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRJ + Peripheral Access Control Register + 0x54 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRK + Peripheral Access Control Register + 0x58 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRL + Peripheral Access Control Register + 0x5C + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRM + Peripheral Access Control Register + 0x60 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRN + Peripheral Access Control Register + 0x64 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRO + Peripheral Access Control Register + 0x68 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRP + Peripheral Access Control Register + 0x6C + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRU + Peripheral Access Control Register + 0x80 + 32 + read-write + 0x44000000 + 0xFFFFFFFF + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + + + AIPS1 + AIPS-Lite Bridge + AIPS + AIPS1_ + 0x40080000 + + 0 + 0x84 + registers + + + + MPRA + Master Privilege Register A + 0 + 32 + read-write + 0x77700000 + 0xFFFFFFFF + + + MPL5 + Master 5 Privilege Level + 8 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW5 + Master 5 Trusted For Writes + 9 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR5 + Master 5 Trusted For Read + 10 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL4 + Master 4 Privilege Level + 12 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW4 + Master 4 Trusted For Writes + 13 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR4 + Master 4 Trusted For Read + 14 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL3 + Master 3 Privilege Level + 16 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW3 + Master 3 Trusted For Writes + 17 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR3 + Master 3 Trusted For Read + 18 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL2 + Master 2 Privilege Level + 20 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW2 + Master 2 Trusted For Writes + 21 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR2 + Master 2 Trusted For Read + 22 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL1 + Master 1 Privilege Level + 24 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW1 + Master 1 Trusted for Writes + 25 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR1 + Master 1 Trusted for Read + 26 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + MPL0 + Master 0 Privilege Level + 28 + 1 + read-write + + + 0 + Accesses from this master are forced to user-mode. + #0 + + + 1 + Accesses from this master are not forced to user-mode. + #1 + + + + + MTW0 + Master 0 Trusted For Writes + 29 + 1 + read-write + + + 0 + This master is not trusted for write accesses. + #0 + + + 1 + This master is trusted for write accesses. + #1 + + + + + MTR0 + Master 0 Trusted For Read + 30 + 1 + read-write + + + 0 + This master is not trusted for read accesses. + #0 + + + 1 + This master is trusted for read accesses. + #1 + + + + + + + PACRA + Peripheral Access Control Register + 0x20 + 32 + read-write + 0x50000000 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRB + Peripheral Access Control Register + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRC + Peripheral Access Control Register + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRD + Peripheral Access Control Register + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRE + Peripheral Access Control Register + 0x40 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRF + Peripheral Access Control Register + 0x44 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRG + Peripheral Access Control Register + 0x48 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRH + Peripheral Access Control Register + 0x4C + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRI + Peripheral Access Control Register + 0x50 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRJ + Peripheral Access Control Register + 0x54 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRK + Peripheral Access Control Register + 0x58 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRL + Peripheral Access Control Register + 0x5C + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRM + Peripheral Access Control Register + 0x60 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRN + Peripheral Access Control Register + 0x64 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRO + Peripheral Access Control Register + 0x68 + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRP + Peripheral Access Control Register + 0x6C + 32 + read-write + 0x44444444 + 0xFFFFFFFF + + + TP7 + Trusted Protect + 0 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP7 + Write Protect + 1 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP7 + Supervisor Protect + 2 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP6 + Trusted Protect + 4 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP6 + Write Protect + 5 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP6 + Supervisor Protect + 6 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP5 + Trusted Protect + 8 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP5 + Write Protect + 9 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP5 + Supervisor Protect + 10 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP4 + Trusted Protect + 12 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP4 + Write Protect + 13 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP4 + Supervisor Protect + 14 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP3 + Trusted Protect + 16 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP3 + Write Protect + 17 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP3 + Supervisor Protect + 18 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP2 + Trusted Protect + 20 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP2 + Write Protect + 21 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP2 + Supervisor Protect + 22 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + PACRU + Peripheral Access Control Register + 0x80 + 32 + read-write + 0x44000000 + 0xFFFFFFFF + + + TP1 + Trusted Protect + 24 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP1 + Write Protect + 25 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP1 + Supervisor Protect + 26 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + TP0 + Trusted Protect + 28 + 1 + read-write + + + 0 + Accesses from an untrusted master are allowed. + #0 + + + 1 + Accesses from an untrusted master are not allowed. + #1 + + + + + WP0 + Write Protect + 29 + 1 + read-write + + + 0 + This peripheral allows write accesses. + #0 + + + 1 + This peripheral is write protected. + #1 + + + + + SP0 + Supervisor Protect + 30 + 1 + read-write + + + 0 + This peripheral does not require supervisor privilege level for accesses. + #0 + + + 1 + This peripheral requires supervisor privilege level for accesses. + #1 + + + + + + + + + AXBS + Crossbar switch + AXBS_ + 0x40004000 + + 0 + 0xD04 + registers + + + + 5 + 0x100 + 0,1,2,3,4 + PRS%s + Priority Registers Slave + 0 + 32 + read-write + 0x543210 + 0xFFFFFFFF + + + M0 + Master 0 Priority. Sets the arbitration priority for this port on the associated slave port. + 0 + 3 + read-write + + + 000 + This master has level 1, or highest, priority when accessing the slave port. + #000 + + + 001 + This master has level 2 priority when accessing the slave port. + #001 + + + 010 + This master has level 3 priority when accessing the slave port. + #010 + + + 011 + This master has level 4 priority when accessing the slave port. + #011 + + + 100 + This master has level 5 priority when accessing the slave port. + #100 + + + 101 + This master has level 6 priority when accessing the slave port. + #101 + + + 110 + This master has level 7 priority when accessing the slave port. + #110 + + + 111 + This master has level 8, or lowest, priority when accessing the slave port. + #111 + + + + + M1 + Master 1 Priority. Sets the arbitration priority for this port on the associated slave port. + 4 + 3 + read-write + + + 000 + This master has level 1, or highest, priority when accessing the slave port. + #000 + + + 001 + This master has level 2 priority when accessing the slave port. + #001 + + + 010 + This master has level 3 priority when accessing the slave port. + #010 + + + 011 + This master has level 4 priority when accessing the slave port. + #011 + + + 100 + This master has level 5 priority when accessing the slave port. + #100 + + + 101 + This master has level 6 priority when accessing the slave port. + #101 + + + 110 + This master has level 7 priority when accessing the slave port. + #110 + + + 111 + This master has level 8, or lowest, priority when accessing the slave port. + #111 + + + + + M2 + Master 2 Priority. Sets the arbitration priority for this port on the associated slave port. + 8 + 3 + read-write + + + 000 + This master has level 1, or highest, priority when accessing the slave port. + #000 + + + 001 + This master has level 2 priority when accessing the slave port. + #001 + + + 010 + This master has level 3 priority when accessing the slave port. + #010 + + + 011 + This master has level 4 priority when accessing the slave port. + #011 + + + 100 + This master has level 5 priority when accessing the slave port. + #100 + + + 101 + This master has level 6 priority when accessing the slave port. + #101 + + + 110 + This master has level 7 priority when accessing the slave port. + #110 + + + 111 + This master has level 8, or lowest, priority when accessing the slave port. + #111 + + + + + M3 + Master 3 Priority. Sets the arbitration priority for this port on the associated slave port. + 12 + 3 + read-write + + + 000 + This master has level 1, or highest, priority when accessing the slave port. + #000 + + + 001 + This master has level 2 priority when accessing the slave port. + #001 + + + 010 + This master has level 3 priority when accessing the slave port. + #010 + + + 011 + This master has level 4 priority when accessing the slave port. + #011 + + + 100 + This master has level 5 priority when accessing the slave port. + #100 + + + 101 + This master has level 6 priority when accessing the slave port. + #101 + + + 110 + This master has level 7 priority when accessing the slave port. + #110 + + + 111 + This master has level 8, or lowest, priority when accessing the slave port. + #111 + + + + + M4 + Master 4 Priority. Sets the arbitration priority for this port on the associated slave port. + 16 + 3 + read-write + + + 000 + This master has level 1, or highest, priority when accessing the slave port. + #000 + + + 001 + This master has level 2 priority when accessing the slave port. + #001 + + + 010 + This master has level 3 priority when accessing the slave port. + #010 + + + 011 + This master has level 4 priority when accessing the slave port. + #011 + + + 100 + This master has level 5 priority when accessing the slave port. + #100 + + + 101 + This master has level 6 priority when accessing the slave port. + #101 + + + 110 + This master has level 7 priority when accessing the slave port. + #110 + + + 111 + This master has level 8, or lowest, priority when accessing the slave port. + #111 + + + + + M5 + Master 5 Priority. Sets the arbitration priority for this port on the associated slave port. + 20 + 3 + read-write + + + 000 + This master has level 1, or highest, priority when accessing the slave port. + #000 + + + 001 + This master has level 2 priority when accessing the slave port. + #001 + + + 010 + This master has level 3 priority when accessing the slave port. + #010 + + + 011 + This master has level 4 priority when accessing the slave port. + #011 + + + 100 + This master has level 5 priority when accessing the slave port. + #100 + + + 101 + This master has level 6 priority when accessing the slave port. + #101 + + + 110 + This master has level 7 priority when accessing the slave port. + #110 + + + 111 + This master has level 8, or lowest, priority when accessing the slave port. + #111 + + + + + + + 5 + 0x100 + 0,1,2,3,4 + CRS%s + Control Register + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + PARK + Park + 0 + 3 + read-write + + + 000 + Park on master port M0 + #000 + + + 001 + Park on master port M1 + #001 + + + 010 + Park on master port M2 + #010 + + + 011 + Park on master port M3 + #011 + + + 100 + Park on master port M4 + #100 + + + 101 + Park on master port M5 + #101 + + + 110 + Park on master port M6 + #110 + + + 111 + Park on master port M7 + #111 + + + + + PCTL + Parking Control + 4 + 2 + read-write + + + 00 + When no master makes a request, the arbiter parks the slave port on the master port defined by the PARK field + #00 + + + 01 + When no master makes a request, the arbiter parks the slave port on the last master to be in control of the slave port + #01 + + + 10 + When no master makes a request, the slave port is not parked on a master and the arbiter drives all outputs to a constant safe state + #10 + + + + + ARB + Arbitration Mode + 8 + 2 + read-write + + + 00 + Fixed priority + #00 + + + 01 + Round-robin, or rotating, priority + #01 + + + + + HLP + Halt Low Priority + 30 + 1 + read-write + + + 0 + The low power mode request has the highest priority for arbitration on this slave port + #0 + + + 1 + The low power mode request has the lowest initial priority for arbitration on this slave port + #1 + + + + + RO + Read Only + 31 + 1 + read-write + + + 0 + The slave port's registers are writeable + #0 + + + 1 + The slave port's registers are read-only and cannot be written. Attempted writes have no effect on the registers and result in a bus error response. + #1 + + + + + + + 6 + 0x100 + 0,1,2,3,4,5 + MGPCR%s + Master General Purpose Control Register + 0x800 + 32 + read-write + 0 + 0xFFFFFFFF + + + AULB + Arbitrates On Undefined Length Bursts + 0 + 3 + read-write + + + 000 + No arbitration is allowed during an undefined length burst + #000 + + + 001 + Arbitration is allowed at any time during an undefined length burst + #001 + + + 010 + Arbitration is allowed after four beats of an undefined length burst + #010 + + + 011 + Arbitration is allowed after eight beats of an undefined length burst + #011 + + + 100 + Arbitration is allowed after 16 beats of an undefined length burst + #100 + + + + + + + + + DMA + Enhanced direct memory access controller + DMA_ + 0x40008000 + + 0 + 0x1200 + registers + + + DMA0 + 0 + + + DMA1 + 1 + + + DMA2 + 2 + + + DMA3 + 3 + + + DMA4 + 4 + + + DMA5 + 5 + + + DMA6 + 6 + + + DMA7 + 7 + + + DMA8 + 8 + + + DMA9 + 9 + + + DMA10 + 10 + + + DMA11 + 11 + + + DMA12 + 12 + + + DMA13 + 13 + + + DMA14 + 14 + + + DMA15 + 15 + + + DMA_Error + 16 + + + + CR + Control Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + EDBG + Enable Debug + 1 + 1 + read-write + + + 0 + When in debug mode, the DMA continues to operate. + #0 + + + 1 + When in debug mode, the DMA stalls the start of a new channel. Executing channels are allowed to complete. Channel execution resumes when the system exits debug mode or the EDBG bit is cleared. + #1 + + + + + ERCA + Enable Round Robin Channel Arbitration + 2 + 1 + read-write + + + 0 + Fixed priority arbitration is used for channel selection . + #0 + + + 1 + Round robin arbitration is used for channel selection . + #1 + + + + + HOE + Halt On Error + 4 + 1 + read-write + + + 0 + Normal operation + #0 + + + 1 + Any error causes the HALT bit to set. Subsequently, all service requests are ignored until the HALT bit is cleared. + #1 + + + + + HALT + Halt DMA Operations + 5 + 1 + read-write + + + 0 + Normal operation + #0 + + + 1 + Stall the start of any new channels. Executing channels are allowed to complete. Channel execution resumes when this bit is cleared. + #1 + + + + + CLM + Continuous Link Mode + 6 + 1 + read-write + + + 0 + A minor loop channel link made to itself goes through channel arbitration before being activated again. + #0 + + + 1 + A minor loop channel link made to itself does not go through channel arbitration before being activated again. Upon minor loop completion, the channel activates again if that channel has a minor loop channel link enabled and the link channel is itself. This effectively applies the minor loop offsets and restarts the next minor loop. + #1 + + + + + EMLM + Enable Minor Loop Mapping + 7 + 1 + read-write + + + 0 + Disabled. TCDn.word2 is defined as a 32-bit NBYTES field. + #0 + + + 1 + Enabled. TCDn.word2 is redefined to include individual enable fields, an offset field, and the NBYTES field. The individual enable fields allow the minor loop offset to be applied to the source address, the destination address, or both. The NBYTES field is reduced when either offset is enabled. + #1 + + + + + ECX + Error Cancel Transfer + 16 + 1 + read-write + + + 0 + Normal operation + #0 + + + 1 + Cancel the remaining data transfer in the same fashion as the CX bit. Stop the executing channel and force the minor loop to finish. The cancel takes effect after the last write of the current read/write sequence. The ECX bit clears itself after the cancel is honored. In addition to cancelling the transfer, ECX treats the cancel as an error condition, thus updating the Error Status register (DMAx_ES) and generating an optional error interrupt. + #1 + + + + + CX + Cancel Transfer + 17 + 1 + read-write + + + 0 + Normal operation + #0 + + + 1 + Cancel the remaining data transfer. Stop the executing channel and force the minor loop to finish. The cancel takes effect after the last write of the current read/write sequence. The CX bit clears itself after the cancel has been honored. This cancel retires the channel normally as if the minor loop was completed. + #1 + + + + + + + ES + Error Status Register + 0x4 + 32 + read-only + 0 + 0xFFFFFFFF + + + DBE + Destination Bus Error + 0 + 1 + read-only + + + 0 + No destination bus error + #0 + + + 1 + The last recorded error was a bus error on a destination write + #1 + + + + + SBE + Source Bus Error + 1 + 1 + read-only + + + 0 + No source bus error + #0 + + + 1 + The last recorded error was a bus error on a source read + #1 + + + + + SGE + Scatter/Gather Configuration Error + 2 + 1 + read-only + + + 0 + No scatter/gather configuration error + #0 + + + 1 + The last recorded error was a configuration error detected in the TCDn_DLASTSGA field. This field is checked at the beginning of a scatter/gather operation after major loop completion if TCDn_CSR[ESG] is enabled. TCDn_DLASTSGA is not on a 32 byte boundary. + #1 + + + + + NCE + NBYTES/CITER Configuration Error + 3 + 1 + read-only + + + 0 + No NBYTES/CITER configuration error + #0 + + + 1 + The last recorded error was a configuration error detected in the TCDn_NBYTES or TCDn_CITER fields. TCDn_NBYTES is not a multiple of TCDn_ATTR[SSIZE] and TCDn_ATTR[DSIZE], or TCDn_CITER[CITER] is equal to zero, or TCDn_CITER[ELINK] is not equal to TCDn_BITER[ELINK] + #1 + + + + + DOE + Destination Offset Error + 4 + 1 + read-only + + + 0 + No destination offset configuration error + #0 + + + 1 + The last recorded error was a configuration error detected in the TCDn_DOFF field. TCDn_DOFF is inconsistent with TCDn_ATTR[DSIZE]. + #1 + + + + + DAE + Destination Address Error + 5 + 1 + read-only + + + 0 + No destination address configuration error + #0 + + + 1 + The last recorded error was a configuration error detected in the TCDn_DADDR field. TCDn_DADDR is inconsistent with TCDn_ATTR[DSIZE]. + #1 + + + + + SOE + Source Offset Error + 6 + 1 + read-only + + + 0 + No source offset configuration error + #0 + + + 1 + The last recorded error was a configuration error detected in the TCDn_SOFF field. TCDn_SOFF is inconsistent with TCDn_ATTR[SSIZE]. + #1 + + + + + SAE + Source Address Error + 7 + 1 + read-only + + + 0 + No source address configuration error. + #0 + + + 1 + The last recorded error was a configuration error detected in the TCDn_SADDR field. TCDn_SADDR is inconsistent with TCDn_ATTR[SSIZE]. + #1 + + + + + ERRCHN + Error Channel Number or Canceled Channel Number + 8 + 4 + read-only + + + CPE + Channel Priority Error + 14 + 1 + read-only + + + 0 + No channel priority error + #0 + + + 1 + The last recorded error was a configuration error in the channel priorities . Channel priorities are not unique. + #1 + + + + + ECX + Transfer Canceled + 16 + 1 + read-only + + + 0 + No canceled transfers + #0 + + + 1 + The last recorded entry was a canceled transfer by the error cancel transfer input + #1 + + + + + VLD + Logical OR of all ERR status bits + 31 + 1 + read-only + + + 0 + No ERR bits are set + #0 + + + 1 + At least one ERR bit is set indicating a valid error exists that has not been cleared + #1 + + + + + + + ERQ + Enable Request Register + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + ERQ0 + Enable DMA Request 0 + 0 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ1 + Enable DMA Request 1 + 1 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ2 + Enable DMA Request 2 + 2 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ3 + Enable DMA Request 3 + 3 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ4 + Enable DMA Request 4 + 4 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ5 + Enable DMA Request 5 + 5 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ6 + Enable DMA Request 6 + 6 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ7 + Enable DMA Request 7 + 7 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ8 + Enable DMA Request 8 + 8 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ9 + Enable DMA Request 9 + 9 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ10 + Enable DMA Request 10 + 10 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ11 + Enable DMA Request 11 + 11 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ12 + Enable DMA Request 12 + 12 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ13 + Enable DMA Request 13 + 13 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ14 + Enable DMA Request 14 + 14 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + ERQ15 + Enable DMA Request 15 + 15 + 1 + read-write + + + 0 + The DMA request signal for the corresponding channel is disabled + #0 + + + 1 + The DMA request signal for the corresponding channel is enabled + #1 + + + + + + + EEI + Enable Error Interrupt Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + EEI0 + Enable Error Interrupt 0 + 0 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI1 + Enable Error Interrupt 1 + 1 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI2 + Enable Error Interrupt 2 + 2 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI3 + Enable Error Interrupt 3 + 3 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI4 + Enable Error Interrupt 4 + 4 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI5 + Enable Error Interrupt 5 + 5 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI6 + Enable Error Interrupt 6 + 6 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI7 + Enable Error Interrupt 7 + 7 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI8 + Enable Error Interrupt 8 + 8 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI9 + Enable Error Interrupt 9 + 9 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI10 + Enable Error Interrupt 10 + 10 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI11 + Enable Error Interrupt 11 + 11 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI12 + Enable Error Interrupt 12 + 12 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI13 + Enable Error Interrupt 13 + 13 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI14 + Enable Error Interrupt 14 + 14 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + EEI15 + Enable Error Interrupt 15 + 15 + 1 + read-write + + + 0 + The error signal for corresponding channel does not generate an error interrupt + #0 + + + 1 + The assertion of the error signal for corresponding channel generates an error interrupt request + #1 + + + + + + + CEEI + Clear Enable Error Interrupt Register + 0x18 + 8 + write-only + 0 + 0xFF + + + CEEI + Clear Enable Error Interrupt + 0 + 4 + write-only + + + CAEE + Clear All Enable Error Interrupts + 6 + 1 + write-only + + + 0 + Clear only the EEI bit specified in the CEEI field + #0 + + + 1 + Clear all bits in EEI + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + SEEI + Set Enable Error Interrupt Register + 0x19 + 8 + write-only + 0 + 0xFF + + + SEEI + Set Enable Error Interrupt + 0 + 4 + write-only + + + SAEE + Sets All Enable Error Interrupts + 6 + 1 + write-only + + + 0 + Set only the EEI bit specified in the SEEI field. + #0 + + + 1 + Sets all bits in EEI + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + CERQ + Clear Enable Request Register + 0x1A + 8 + write-only + 0 + 0xFF + + + CERQ + Clear Enable Request + 0 + 4 + write-only + + + CAER + Clear All Enable Requests + 6 + 1 + write-only + + + 0 + Clear only the ERQ bit specified in the CERQ field + #0 + + + 1 + Clear all bits in ERQ + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + SERQ + Set Enable Request Register + 0x1B + 8 + write-only + 0 + 0xFF + + + SERQ + Set enable request + 0 + 4 + write-only + + + SAER + Set All Enable Requests + 6 + 1 + write-only + + + 0 + Set only the ERQ bit specified in the SERQ field + #0 + + + 1 + Set all bits in ERQ + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + CDNE + Clear DONE Status Bit Register + 0x1C + 8 + write-only + 0 + 0xFF + + + CDNE + Clear DONE Bit + 0 + 4 + write-only + + + CADN + Clears All DONE Bits + 6 + 1 + write-only + + + 0 + Clears only the TCDn_CSR[DONE] bit specified in the CDNE field + #0 + + + 1 + Clears all bits in TCDn_CSR[DONE] + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + SSRT + Set START Bit Register + 0x1D + 8 + write-only + 0 + 0xFF + + + SSRT + Set START Bit + 0 + 4 + write-only + + + SAST + Set All START Bits (activates all channels) + 6 + 1 + write-only + + + 0 + Set only the TCDn_CSR[START] bit specified in the SSRT field + #0 + + + 1 + Set all bits in TCDn_CSR[START] + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + CERR + Clear Error Register + 0x1E + 8 + write-only + 0 + 0xFF + + + CERR + Clear Error Indicator + 0 + 4 + write-only + + + CAEI + Clear All Error Indicators + 6 + 1 + write-only + + + 0 + Clear only the ERR bit specified in the CERR field + #0 + + + 1 + Clear all bits in ERR + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + CINT + Clear Interrupt Request Register + 0x1F + 8 + write-only + 0 + 0xFF + + + CINT + Clear Interrupt Request + 0 + 4 + write-only + + + CAIR + Clear All Interrupt Requests + 6 + 1 + write-only + + + 0 + Clear only the INT bit specified in the CINT field + #0 + + + 1 + Clear all bits in INT + #1 + + + + + NOP + No Op enable + 7 + 1 + write-only + + + 0 + Normal operation + #0 + + + 1 + No operation, ignore the other bits in this register + #1 + + + + + + + INT + Interrupt Request Register + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + INT0 + Interrupt Request 0 + 0 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT1 + Interrupt Request 1 + 1 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT2 + Interrupt Request 2 + 2 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT3 + Interrupt Request 3 + 3 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT4 + Interrupt Request 4 + 4 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT5 + Interrupt Request 5 + 5 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT6 + Interrupt Request 6 + 6 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT7 + Interrupt Request 7 + 7 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT8 + Interrupt Request 8 + 8 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT9 + Interrupt Request 9 + 9 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT10 + Interrupt Request 10 + 10 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT11 + Interrupt Request 11 + 11 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT12 + Interrupt Request 12 + 12 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT13 + Interrupt Request 13 + 13 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT14 + Interrupt Request 14 + 14 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + INT15 + Interrupt Request 15 + 15 + 1 + read-write + + + 0 + The interrupt request for corresponding channel is cleared + #0 + + + 1 + The interrupt request for corresponding channel is active + #1 + + + + + + + ERR + Error Register + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + ERR0 + Error In Channel 0 + 0 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR1 + Error In Channel 1 + 1 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR2 + Error In Channel 2 + 2 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR3 + Error In Channel 3 + 3 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR4 + Error In Channel 4 + 4 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR5 + Error In Channel 5 + 5 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR6 + Error In Channel 6 + 6 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR7 + Error In Channel 7 + 7 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR8 + Error In Channel 8 + 8 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR9 + Error In Channel 9 + 9 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR10 + Error In Channel 10 + 10 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR11 + Error In Channel 11 + 11 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR12 + Error In Channel 12 + 12 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR13 + Error In Channel 13 + 13 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR14 + Error In Channel 14 + 14 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + ERR15 + Error In Channel 15 + 15 + 1 + read-write + + + 0 + An error in the corresponding channel has not occurred + #0 + + + 1 + An error in the corresponding channel has occurred + #1 + + + + + + + HRS + Hardware Request Status Register + 0x34 + 32 + read-only + 0 + 0xFFFFFFFF + + + HRS0 + Hardware Request Status Channel 0 + 0 + 1 + read-only + + + 0 + A hardware service request for channel 0 is not present + #0 + + + 1 + A hardware service request for channel 0 is present + #1 + + + + + HRS1 + Hardware Request Status Channel 1 + 1 + 1 + read-only + + + 0 + A hardware service request for channel 1 is not present + #0 + + + 1 + A hardware service request for channel 1 is present + #1 + + + + + HRS2 + Hardware Request Status Channel 2 + 2 + 1 + read-only + + + 0 + A hardware service request for channel 2 is not present + #0 + + + 1 + A hardware service request for channel 2 is present + #1 + + + + + HRS3 + Hardware Request Status Channel 3 + 3 + 1 + read-only + + + 0 + A hardware service request for channel 3 is not present + #0 + + + 1 + A hardware service request for channel 3 is present + #1 + + + + + HRS4 + Hardware Request Status Channel 4 + 4 + 1 + read-only + + + 0 + A hardware service request for channel 4 is not present + #0 + + + 1 + A hardware service request for channel 4 is present + #1 + + + + + HRS5 + Hardware Request Status Channel 5 + 5 + 1 + read-only + + + 0 + A hardware service request for channel 5 is not present + #0 + + + 1 + A hardware service request for channel 5 is present + #1 + + + + + HRS6 + Hardware Request Status Channel 6 + 6 + 1 + read-only + + + 0 + A hardware service request for channel 6 is not present + #0 + + + 1 + A hardware service request for channel 6 is present + #1 + + + + + HRS7 + Hardware Request Status Channel 7 + 7 + 1 + read-only + + + 0 + A hardware service request for channel 7 is not present + #0 + + + 1 + A hardware service request for channel 7 is present + #1 + + + + + HRS8 + Hardware Request Status Channel 8 + 8 + 1 + read-only + + + 0 + A hardware service request for channel 8 is not present + #0 + + + 1 + A hardware service request for channel 8 is present + #1 + + + + + HRS9 + Hardware Request Status Channel 9 + 9 + 1 + read-only + + + 0 + A hardware service request for channel 9 is not present + #0 + + + 1 + A hardware service request for channel 9 is present + #1 + + + + + HRS10 + Hardware Request Status Channel 10 + 10 + 1 + read-only + + + 0 + A hardware service request for channel 10 is not present + #0 + + + 1 + A hardware service request for channel 10 is present + #1 + + + + + HRS11 + Hardware Request Status Channel 11 + 11 + 1 + read-only + + + 0 + A hardware service request for channel 11 is not present + #0 + + + 1 + A hardware service request for channel 11 is present + #1 + + + + + HRS12 + Hardware Request Status Channel 12 + 12 + 1 + read-only + + + 0 + A hardware service request for channel 12 is not present + #0 + + + 1 + A hardware service request for channel 12 is present + #1 + + + + + HRS13 + Hardware Request Status Channel 13 + 13 + 1 + read-only + + + 0 + A hardware service request for channel 13 is not present + #0 + + + 1 + A hardware service request for channel 13 is present + #1 + + + + + HRS14 + Hardware Request Status Channel 14 + 14 + 1 + read-only + + + 0 + A hardware service request for channel 14 is not present + #0 + + + 1 + A hardware service request for channel 14 is present + #1 + + + + + HRS15 + Hardware Request Status Channel 15 + 15 + 1 + read-only + + + 0 + A hardware service request for channel 15 is not present + #0 + + + 1 + A hardware service request for channel 15 is present + #1 + + + + + + + 16 + 0x1 + 3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12 + DCHPRI%s + Channel n Priority Register + 0x100 + 8 + read-write + 0 + 0xFF + + + CHPRI + Channel n Arbitration Priority + 0 + 4 + read-write + + + DPA + Disable Preempt Ability + 6 + 1 + read-write + + + 0 + Channel n can suspend a lower priority channel + #0 + + + 1 + Channel n cannot suspend any channel, regardless of channel priority + #1 + + + + + ECP + Enable Channel Preemption + 7 + 1 + read-write + + + 0 + Channel n cannot be suspended by a higher priority channel's service request + #0 + + + 1 + Channel n can be temporarily suspended by the service request of a higher priority channel + #1 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_SADDR + TCD Source Address + 0x1000 + 32 + read-write + 0 + 0 + + + SADDR + Source Address + 0 + 32 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_SOFF + TCD Signed Source Address Offset + 0x1004 + 16 + read-write + 0 + 0 + + + SOFF + Source address signed offset + 0 + 16 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_ATTR + TCD Transfer Attributes + 0x1006 + 16 + read-write + 0 + 0 + + + DSIZE + Destination Data Transfer Size + 0 + 3 + read-write + + + DMOD + Destination Address Modulo + 3 + 5 + read-write + + + SSIZE + Source data transfer size + 8 + 3 + read-write + + + 000 + 8-bit + #000 + + + 001 + 16-bit + #001 + + + 010 + 32-bit + #010 + + + 100 + 16-byte + #100 + + + 101 + 32-byte + #101 + + + + + SMOD + Source Address Modulo. + 11 + 5 + read-write + + + 0 + Source address modulo feature is disabled + #00000 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_NBYTES_MLNO + TCD Minor Byte Count (Minor Loop Disabled) + DMA + 0x1008 + 32 + read-write + 0 + 0 + + + NBYTES + Minor Byte Transfer Count + 0 + 32 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_NBYTES_MLOFFNO + TCD Signed Minor Loop Offset (Minor Loop Enabled and Offset Disabled) + DMA + 0x1008 + 32 + read-write + 0 + 0 + + + NBYTES + Minor Byte Transfer Count + 0 + 30 + read-write + + + DMLOE + Destination Minor Loop Offset enable + 30 + 1 + read-write + + + 0 + The minor loop offset is not applied to the DADDR + #0 + + + 1 + The minor loop offset is applied to the DADDR + #1 + + + + + SMLOE + Source Minor Loop Offset Enable + 31 + 1 + read-write + + + 0 + The minor loop offset is not applied to the SADDR + #0 + + + 1 + The minor loop offset is applied to the SADDR + #1 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_NBYTES_MLOFFYES + TCD Signed Minor Loop Offset (Minor Loop and Offset Enabled) + DMA + 0x1008 + 32 + read-write + 0 + 0 + + + NBYTES + Minor Byte Transfer Count + 0 + 10 + read-write + + + MLOFF + If SMLOE or DMLOE is set, this field represents a sign-extended offset applied to the source or destination address to form the next-state value after the minor loop completes. + 10 + 20 + read-write + + + DMLOE + Destination Minor Loop Offset enable + 30 + 1 + read-write + + + 0 + The minor loop offset is not applied to the DADDR + #0 + + + 1 + The minor loop offset is applied to the DADDR + #1 + + + + + SMLOE + Source Minor Loop Offset Enable + 31 + 1 + read-write + + + 0 + The minor loop offset is not applied to the SADDR + #0 + + + 1 + The minor loop offset is applied to the SADDR + #1 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_SLAST + TCD Last Source Address Adjustment + 0x100C + 32 + read-write + 0 + 0 + + + SLAST + Last source Address Adjustment + 0 + 32 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_DADDR + TCD Destination Address + 0x1010 + 32 + read-write + 0 + 0 + + + DADDR + Destination Address + 0 + 32 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_DOFF + TCD Signed Destination Address Offset + 0x1014 + 16 + read-write + 0 + 0 + + + DOFF + Destination Address Signed offset + 0 + 16 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_CITER_ELINKNO + TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled) + DMA + 0x1016 + 16 + read-write + 0 + 0 + + + CITER + Current Major Iteration Count + 0 + 15 + read-write + + + ELINK + Enable channel-to-channel linking on minor-loop complete + 15 + 1 + read-write + + + 0 + The channel-to-channel linking is disabled + #0 + + + 1 + The channel-to-channel linking is enabled + #1 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_CITER_ELINKYES + TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled) + DMA + 0x1016 + 16 + read-write + 0 + 0 + + + CITER + Current Major Iteration Count + 0 + 9 + read-write + + + LINKCH + Link Channel Number + 9 + 4 + read-write + + + ELINK + Enable channel-to-channel linking on minor-loop complete + 15 + 1 + read-write + + + 0 + The channel-to-channel linking is disabled + #0 + + + 1 + The channel-to-channel linking is enabled + #1 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_DLASTSGA + TCD Last Destination Address Adjustment/Scatter Gather Address + 0x1018 + 32 + read-write + 0 + 0 + + + DLASTSGA + Destination last address adjustment or the memory address for the next transfer control descriptor to be loaded into this channel (scatter/gather) + 0 + 32 + read-write + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_CSR + TCD Control and Status + 0x101C + 16 + read-write + 0 + 0xC1 + + + START + Channel Start + 0 + 1 + read-write + + + 0 + The channel is not explicitly started + #0 + + + 1 + The channel is explicitly started via a software initiated service request + #1 + + + + + INTMAJOR + Enable an interrupt when major iteration count completes + 1 + 1 + read-write + + + 0 + The end-of-major loop interrupt is disabled + #0 + + + 1 + The end-of-major loop interrupt is enabled + #1 + + + + + INTHALF + Enable an interrupt when major counter is half complete. + 2 + 1 + read-write + + + 0 + The half-point interrupt is disabled + #0 + + + 1 + The half-point interrupt is enabled + #1 + + + + + DREQ + Disable Request + 3 + 1 + read-write + + + 0 + The channel's ERQ bit is not affected + #0 + + + 1 + The channel's ERQ bit is cleared when the major loop is complete + #1 + + + + + ESG + Enable Scatter/Gather Processing + 4 + 1 + read-write + + + 0 + The current channel's TCD is normal format. + #0 + + + 1 + The current channel's TCD specifies a scatter gather format. The DLASTSGA field provides a memory pointer to the next TCD to be loaded into this channel after the major loop completes its execution. + #1 + + + + + MAJORELINK + Enable channel-to-channel linking on major loop complete + 5 + 1 + read-write + + + 0 + The channel-to-channel linking is disabled + #0 + + + 1 + The channel-to-channel linking is enabled + #1 + + + + + ACTIVE + Channel Active + 6 + 1 + read-write + + + DONE + Channel Done + 7 + 1 + read-write + + + MAJORLINKCH + Link Channel Number + 8 + 4 + read-write + + + BWC + Bandwidth Control + 14 + 2 + read-write + + + 00 + No eDMA engine stalls + #00 + + + 10 + eDMA engine stalls for 4 cycles after each r/w + #10 + + + 11 + eDMA engine stalls for 8 cycles after each r/w + #11 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_BITER_ELINKNO + TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled) + DMA + 0x101E + 16 + read-write + 0 + 0 + + + BITER + Starting Major Iteration Count + 0 + 15 + read-write + + + ELINK + Enables channel-to-channel linking on minor loop complete + 15 + 1 + read-write + + + 0 + The channel-to-channel linking is disabled + #0 + + + 1 + The channel-to-channel linking is enabled + #1 + + + + + + + 16 + 0x20 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + TCD%s_BITER_ELINKYES + TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled) + DMA + 0x101E + 16 + read-write + 0 + 0 + + + BITER + Starting Major Iteration Count + 0 + 9 + read-write + + + LINKCH + Link Channel Number + 9 + 4 + read-write + + + ELINK + Enables channel-to-channel linking on minor loop complete + 15 + 1 + read-write + + + 0 + The channel-to-channel linking is disabled + #0 + + + 1 + The channel-to-channel linking is enabled + #1 + + + + + + + + + FB + FlexBus external bus interface + FB_ + 0x4000C000 + + 0 + 0x64 + registers + + + + 6 + 0xC + 0,1,2,3,4,5 + CSAR%s + Chip Select Address Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + BA + Base Address + 16 + 16 + read-write + + + + + 6 + 0xC + 0,1,2,3,4,5 + CSMR%s + Chip Select Mask Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + V + Valid + 0 + 1 + read-write + + + 0 + Chip-select is invalid. + #0 + + + 1 + Chip-select is valid. + #1 + + + + + WP + Write Protect + 8 + 1 + read-write + + + 0 + Write accesses are allowed. + #0 + + + 1 + Write accesses are not allowed. Attempting to write to the range of addresses for which the WP bit is set results in a bus error termination of the internal cycle and no external cycle. + #1 + + + + + BAM + Base Address Mask + 16 + 16 + read-write + + + 0 + The corresponding address bit in CSAR is used in the chip-select decode. + #0 + + + 1 + The corresponding address bit in CSAR is a don't care in the chip-select decode. + #1 + + + + + + + 6 + 0xC + 0,1,2,3,4,5 + CSCR%s + Chip Select Control Register + 0x8 + 32 + read-write + 0x3FFC00 + 0xFFFFFFFF + + + BSTW + Burst-Write Enable + 3 + 1 + read-write + + + 0 + Disabled. Data exceeding the specified port size is broken into individual, port-sized, non-burst writes. For example, a 32-bit write to an 8-bit port takes four byte writes. + #0 + + + 1 + Enabled. Enables burst write of data larger than the specified port size, including 32-bit writes to 8- and 16-bit ports, 16-bit writes to 8-bit ports, and line writes to 8-, 16-, and 32-bit ports. + #1 + + + + + BSTR + Burst-Read Enable + 4 + 1 + read-write + + + 0 + Disabled. Data exceeding the specified port size is broken into individual, port-sized, non-burst reads. For example, a 32-bit read from an 8-bit port is broken into four 8-bit reads. + #0 + + + 1 + Enabled. Enables data burst reads larger than the specified port size, including 32-bit reads from 8- and 16-bit ports, 16-bit reads from 8-bit ports, and line reads from 8-, 16-, and 32-bit ports. + #1 + + + + + BEM + Byte-Enable Mode + 5 + 1 + read-write + + + 0 + FB_BE is asserted for data write only. + #0 + + + 1 + FB_BE is asserted for data read and write accesses. + #1 + + + + + PS + Port Size + 6 + 2 + read-write + + + 00 + 32-bit port size. Valid data is sampled and driven on FB_D[31:0]. + #00 + + + 01 + 8-bit port size. Valid data is sampled and driven on FB_D[31:24] when BLS is 0b, or FB_D[7:0] when BLS is 1b. + #01 + + + 1X + 16-bit port size. Valid data is sampled and driven on FB_D[31:16] when BLS is 0b, or FB_D[15:0] when BLS is 1b. + #1x + + + + + AA + Auto-Acknowledge Enable + 8 + 1 + read-write + + + 0 + Disabled. No internal transfer acknowledge is asserted and the cycle is terminated externally. + #0 + + + 1 + Enabled. Internal transfer acknowledge is asserted as specified by WS. + #1 + + + + + BLS + Byte-Lane Shift + 9 + 1 + read-write + + + 0 + Not shifted. Data is left-aligned on FB_AD. + #0 + + + 1 + Shifted. Data is right-aligned on FB_AD. + #1 + + + + + WS + Wait States + 10 + 6 + read-write + + + WRAH + Write Address Hold or Deselect + 16 + 2 + read-write + + + 00 + 1 cycle (default for all but FB_CS0 ) + #00 + + + 01 + 2 cycles + #01 + + + 10 + 3 cycles + #10 + + + 11 + 4 cycles (default for FB_CS0 ) + #11 + + + + + RDAH + Read Address Hold or Deselect + 18 + 2 + read-write + + + 00 + When AA is 0b, 1 cycle. When AA is 1b, 0 cycles. + #00 + + + 01 + When AA is 0b, 2 cycles. When AA is 1b, 1 cycle. + #01 + + + 10 + When AA is 0b, 3 cycles. When AA is 1b, 2 cycles. + #10 + + + 11 + When AA is 0b, 4 cycles. When AA is 1b, 3 cycles. + #11 + + + + + ASET + Address Setup + 20 + 2 + read-write + + + 00 + Assert FB_CSn on the first rising clock edge after the address is asserted (default for all but FB_CS0 ). + #00 + + + 01 + Assert FB_CSn on the second rising clock edge after the address is asserted. + #01 + + + 10 + Assert FB_CSn on the third rising clock edge after the address is asserted. + #10 + + + 11 + Assert FB_CSn on the fourth rising clock edge after the address is asserted (default for FB_CS0 ). + #11 + + + + + EXTS + Extended Transfer Start/Extended Address Latch Enable Controls how long FB_TS /FB_ALE is asserted. + 22 + 1 + read-write + + + 0 + Disabled. FB_TS /FB_ALE asserts for one bus clock cycle. + #0 + + + 1 + Enabled. FB_TS /FB_ALE remains asserted until the first positive clock edge after FB_CSn asserts. + #1 + + + + + SWSEN + Secondary Wait State Enable + 23 + 1 + read-write + + + 0 + Disabled. A number of wait states (specified by WS) are inserted before an internal transfer acknowledge is generated for all transfers. + #0 + + + 1 + Enabled. A number of wait states (specified by SWS) are inserted before an internal transfer acknowledge is generated for burst transfer secondary terminations. + #1 + + + + + SWS + Secondary Wait States + 26 + 6 + read-write + + + + + CSPMCR + Chip Select port Multiplexing Control Register + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + GROUP5 + FlexBus Signal Group 5 Multiplex control + 12 + 4 + read-write + + + 0000 + FB_TA + #0000 + + + 0001 + FB_CS3 . You must also write 1b to CSCR[AA]. + #0001 + + + 0010 + FB_BE_7_0 . You must also write 1b to CSCR[AA]. + #0010 + + + + + GROUP4 + FlexBus Signal Group 4 Multiplex control + 16 + 4 + read-write + + + 0000 + FB_TBST + #0000 + + + 0001 + FB_CS2 + #0001 + + + 0010 + FB_BE_15_8 + #0010 + + + + + GROUP3 + FlexBus Signal Group 3 Multiplex control + 20 + 4 + read-write + + + 0000 + FB_CS5 + #0000 + + + 0001 + FB_TSIZ1 + #0001 + + + 0010 + FB_BE_23_16 + #0010 + + + + + GROUP2 + FlexBus Signal Group 2 Multiplex control + 24 + 4 + read-write + + + 0000 + FB_CS4 + #0000 + + + 0001 + FB_TSIZ0 + #0001 + + + 0010 + FB_BE_31_24 + #0010 + + + + + GROUP1 + FlexBus Signal Group 1 Multiplex control + 28 + 4 + read-write + + + 0000 + FB_ALE + #0000 + + + 0001 + FB_CS1 + #0001 + + + 0010 + FB_TS + #0010 + + + + + + + + + MPU + Memory protection unit + MPU_ + 0x4000D000 + + 0 + 0x830 + registers + + + + CESR + Control/Error Status Register + 0 + 32 + read-write + 0x815101 + 0xFFFFFFFF + + + VLD + Valid + 0 + 1 + read-write + + + 0 + MPU is disabled. All accesses from all bus masters are allowed. + #0 + + + 1 + MPU is enabled + #1 + + + + + NRGD + Number Of Region Descriptors + 8 + 4 + read-only + + + 0000 + 8 region descriptors + #0000 + + + 0001 + 12 region descriptors + #0001 + + + 0010 + 16 region descriptors + #0010 + + + + + NSP + Number Of Slave Ports + 12 + 4 + read-only + + + HRL + Hardware Revision Level + 16 + 4 + read-only + + + SPERR + Slave Port n Error + 27 + 5 + read-write + + + 0 + No error has occurred for slave port n. + #00000 + + + 1 + An error has occurred for slave port n. + #00001 + + + + + + + 5 + 0x8 + 0,1,2,3,4 + EAR%s + Error Address Register, slave port n + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + EADDR + Error Address + 0 + 32 + read-only + + + + + 5 + 0x8 + 0,1,2,3,4 + EDR%s + Error Detail Register, slave port n + 0x14 + 32 + read-only + 0 + 0xFFFFFFFF + + + ERW + Error Read/Write + 0 + 1 + read-only + + + 0 + Read + #0 + + + 1 + Write + #1 + + + + + EATTR + Error Attributes + 1 + 3 + read-only + + + 000 + User mode, instruction access + #000 + + + 001 + User mode, data access + #001 + + + 010 + Supervisor mode, instruction access + #010 + + + 011 + Supervisor mode, data access + #011 + + + + + EMN + Error Master Number + 4 + 4 + read-only + + + EPID + Error Process Identification + 8 + 8 + read-only + + + EACD + Error Access Control Detail + 16 + 16 + read-only + + + + + 12 + 0x10 + 0,1,2,3,4,5,6,7,8,9,10,11 + RGD%s_WORD0 + Region Descriptor n, Word 0 + 0x400 + 32 + read-write + 0 + 0xFFFFFFFF + + + SRTADDR + Start Address + 5 + 27 + read-write + + + + + 12 + 0x10 + 0,1,2,3,4,5,6,7,8,9,10,11 + RGD%s_WORD1 + Region Descriptor n, Word 1 + 0x404 + 32 + read-write + 0xFFFFFFFF + 0xFFFFFFFF + + + ENDADDR + End Address + 5 + 27 + read-write + + + + + 12 + 0x10 + 0,1,2,3,4,5,6,7,8,9,10,11 + RGD%s_WORD2 + Region Descriptor n, Word 2 + 0x408 + 32 + read-write + 0x61F7DF + 0xFFFFFFFF + + + M0UM + Bus Master 0 User Mode Access Control + 0 + 3 + read-write + + + M0SM + Bus Master 0 Supervisor Mode Access Control + 3 + 2 + read-write + + + M0PE + Bus Master 0 Process Identifier enable + 5 + 1 + read-write + + + M1UM + Bus Master 1 User Mode Access Control + 6 + 3 + read-write + + + M1SM + Bus Master 1 Supervisor Mode Access Control + 9 + 2 + read-write + + + M1PE + Bus Master 1 Process Identifier enable + 11 + 1 + read-write + + + M2UM + Bus Master 2 User Mode Access control + 12 + 3 + read-write + + + M2SM + Bus Master 2 Supervisor Mode Access Control + 15 + 2 + read-write + + + M2PE + Bus Master 2 Process Identifier Enable + 17 + 1 + read-write + + + M3UM + Bus Master 3 User Mode Access Control + 18 + 3 + read-write + + + 0 + An attempted access of that mode may be terminated with an access error (if not allowed by another descriptor) and the access not performed. + #000 + + + 1 + Allows the given access type to occur + #001 + + + + + M3SM + Bus Master 3 Supervisor Mode Access Control + 21 + 2 + read-write + + + 00 + r/w/x; read, write and execute allowed + #00 + + + 01 + r/x; read and execute allowed, but no write + #01 + + + 10 + r/w; read and write allowed, but no execute + #10 + + + 11 + Same as User mode defined in M3UM + #11 + + + + + M3PE + Bus Master 3 Process Identifier Enable + 23 + 1 + read-write + + + 0 + Do not include the process identifier in the evaluation + #0 + + + 1 + Include the process identifier and mask (RGDn_WORD3) in the region hit evaluation + #1 + + + + + M4WE + Bus Master 4 Write Enable + 24 + 1 + read-write + + + 0 + Bus master 4 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 4 writes allowed + #1 + + + + + M4RE + Bus Master 4 Read Enable + 25 + 1 + read-write + + + 0 + Bus master 4 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 4 reads allowed + #1 + + + + + M5WE + Bus Master 5 Write Enable + 26 + 1 + read-write + + + 0 + Bus master 5 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 5 writes allowed + #1 + + + + + M5RE + Bus Master 5 Read Enable + 27 + 1 + read-write + + + 0 + Bus master 5 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 5 reads allowed + #1 + + + + + M6WE + Bus Master 6 Write Enable + 28 + 1 + read-write + + + 0 + Bus master 6 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 6 writes allowed + #1 + + + + + M6RE + Bus Master 6 Read Enable + 29 + 1 + read-write + + + 0 + Bus master 6 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 6 reads allowed + #1 + + + + + M7WE + Bus Master 7 Write Enable + 30 + 1 + read-write + + + 0 + Bus master 7 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 7 writes allowed + #1 + + + + + M7RE + Bus Master 7 Read Enable + 31 + 1 + read-write + + + 0 + Bus master 7 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 7 reads allowed + #1 + + + + + + + 12 + 0x10 + 0,1,2,3,4,5,6,7,8,9,10,11 + RGD%s_WORD3 + Region Descriptor n, Word 3 + 0x40C + 32 + read-write + 0x1 + 0xFFFFFFFF + + + VLD + Valid + 0 + 1 + read-write + + + 0 + Region descriptor is invalid + #0 + + + 1 + Region descriptor is valid + #1 + + + + + PIDMASK + Process Identifier Mask + 16 + 8 + read-write + + + PID + Process Identifier + 24 + 8 + read-write + + + + + 12 + 0x4 + 0,1,2,3,4,5,6,7,8,9,10,11 + RGDAAC%s + Region Descriptor Alternate Access Control n + 0x800 + 32 + read-write + 0x61F7DF + 0xFFFFFFFF + + + M0UM + Bus Master 0 User Mode Access Control + 0 + 3 + read-write + + + M0SM + Bus Master 0 Supervisor Mode Access Control + 3 + 2 + read-write + + + M0PE + Bus Master 0 Process Identifier Enable + 5 + 1 + read-write + + + M1UM + Bus Master 1 User Mode Access Control + 6 + 3 + read-write + + + M1SM + Bus Master 1 Supervisor Mode Access Control + 9 + 2 + read-write + + + M1PE + Bus Master 1 Process Identifier Enable + 11 + 1 + read-write + + + M2UM + Bus Master 2 User Mode Access Control + 12 + 3 + read-write + + + M2SM + Bus Master 2 Supervisor Mode Access Control + 15 + 2 + read-write + + + M2PE + Bus Master 2 Process Identifier Enable + 17 + 1 + read-write + + + M3UM + Bus Master 3 User Mode Access Control + 18 + 3 + read-write + + + 0 + An attempted access of that mode may be terminated with an access error (if not allowed by another descriptor) and the access not performed. + #000 + + + 1 + Allows the given access type to occur + #001 + + + + + M3SM + Bus Master 3 Supervisor Mode Access Control + 21 + 2 + read-write + + + 00 + r/w/x; read, write and execute allowed + #00 + + + 01 + r/x; read and execute allowed, but no write + #01 + + + 10 + r/w; read and write allowed, but no execute + #10 + + + 11 + Same as User mode defined in M3UM + #11 + + + + + M3PE + Bus Master 3 Process Identifier Enable + 23 + 1 + read-write + + + 0 + Do not include the process identifier in the evaluation + #0 + + + 1 + Include the process identifier and mask (RGDn.RGDAAC) in the region hit evaluation + #1 + + + + + M4WE + Bus Master 4 Write Enable + 24 + 1 + read-write + + + 0 + Bus master 4 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 4 writes allowed + #1 + + + + + M4RE + Bus Master 4 Read Enable + 25 + 1 + read-write + + + 0 + Bus master 4 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 4 reads allowed + #1 + + + + + M5WE + Bus Master 5 Write Enable + 26 + 1 + read-write + + + 0 + Bus master 5 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 5 writes allowed + #1 + + + + + M5RE + Bus Master 5 Read Enable + 27 + 1 + read-write + + + 0 + Bus master 5 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 5 reads allowed + #1 + + + + + M6WE + Bus Master 6 Write Enable + 28 + 1 + read-write + + + 0 + Bus master 6 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 6 writes allowed + #1 + + + + + M6RE + Bus Master 6 Read Enable + 29 + 1 + read-write + + + 0 + Bus master 6 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 6 reads allowed + #1 + + + + + M7WE + Bus Master 7 Write Enable + 30 + 1 + read-write + + + 0 + Bus master 7 writes terminate with an access error and the write is not performed + #0 + + + 1 + Bus master 7 writes allowed + #1 + + + + + M7RE + Bus Master 7 Read Enable + 31 + 1 + read-write + + + 0 + Bus master 7 reads terminate with an access error and the read is not performed + #0 + + + 1 + Bus master 7 reads allowed + #1 + + + + + + + + + FMC + Flash Memory Controller + FMC_ + 0x4001F000 + + 0 + 0x280 + registers + + + + PFAPR + Flash Access Protection Register + 0 + 32 + read-write + 0xF8003F + 0xFFFFFFFF + + + M0AP + Master 0 Access Protection + 0 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M1AP + Master 1 Access Protection + 2 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M2AP + Master 2 Access Protection + 4 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M3AP + Master 3 Access Protection + 6 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M4AP + Master 4 Access Protection + 8 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M5AP + Master 5 Access Protection + 10 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M6AP + Master 6 Access Protection + 12 + 2 + read-write + + + 00 + No access may be performed by this master + #00 + + + 01 + Only read accesses may be performed by this master + #01 + + + 10 + Only write accesses may be performed by this master + #10 + + + 11 + Both read and write accesses may be performed by this master + #11 + + + + + M7AP + Master 7 Access Protection + 14 + 2 + read-write + + + 00 + No access may be performed by this master. + #00 + + + 01 + Only read accesses may be performed by this master. + #01 + + + 10 + Only write accesses may be performed by this master. + #10 + + + 11 + Both read and write accesses may be performed by this master. + #11 + + + + + M0PFD + Master 0 Prefetch Disable + 16 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M1PFD + Master 1 Prefetch Disable + 17 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M2PFD + Master 2 Prefetch Disable + 18 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M3PFD + Master 3 Prefetch Disable + 19 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M4PFD + Master 4 Prefetch Disable + 20 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M5PFD + Master 5 Prefetch Disable + 21 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M6PFD + Master 6 Prefetch Disable + 22 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + M7PFD + Master 7 Prefetch Disable + 23 + 1 + read-write + + + 0 + Prefetching for this master is enabled. + #0 + + + 1 + Prefetching for this master is disabled. + #1 + + + + + + + PFB0CR + Flash Bank 0 Control Register + 0x4 + 32 + read-write + 0x3004001F + 0xFFFFFFFF + + + B0SEBE + Bank 0 Single Entry Buffer Enable + 0 + 1 + read-write + + + 0 + Single entry buffer is disabled. + #0 + + + 1 + Single entry buffer is enabled. + #1 + + + + + B0IPE + Bank 0 Instruction Prefetch Enable + 1 + 1 + read-write + + + 0 + Do not prefetch in response to instruction fetches. + #0 + + + 1 + Enable prefetches in response to instruction fetches. + #1 + + + + + B0DPE + Bank 0 Data Prefetch Enable + 2 + 1 + read-write + + + 0 + Do not prefetch in response to data references. + #0 + + + 1 + Enable prefetches in response to data references. + #1 + + + + + B0ICE + Bank 0 Instruction Cache Enable + 3 + 1 + read-write + + + 0 + Do not cache instruction fetches. + #0 + + + 1 + Cache instruction fetches. + #1 + + + + + B0DCE + Bank 0 Data Cache Enable + 4 + 1 + read-write + + + 0 + Do not cache data references. + #0 + + + 1 + Cache data references. + #1 + + + + + CRC + Cache Replacement Control + 5 + 3 + read-write + + + 000 + LRU replacement algorithm per set across all four ways + #000 + + + 010 + Independent LRU with ways [0-1] for ifetches, [2-3] for data + #010 + + + 011 + Independent LRU with ways [0-2] for ifetches, [3] for data + #011 + + + + + B0MW + Bank 0 Memory Width + 17 + 2 + read-only + + + 00 + 32 bits + #00 + + + 01 + 64 bits + #01 + + + 10 + 128 bits + #10 + + + + + S_B_INV + Invalidate Prefetch Speculation Buffer + 19 + 1 + write-only + + + 0 + Speculation buffer and single entry buffer are not affected. + #0 + + + 1 + Invalidate (clear) speculation buffer and single entry buffer. + #1 + + + + + CINV_WAY + Cache Invalidate Way x + 20 + 4 + write-only + + + 0 + No cache way invalidation for the corresponding cache + #0000 + + + 1 + Invalidate cache way for the corresponding cache: clear the tag, data, and vld bits of ways selected + #0001 + + + + + CLCK_WAY + Cache Lock Way x + 24 + 4 + read-write + + + 0 + Cache way is unlocked and may be displaced + #0000 + + + 1 + Cache way is locked and its contents are not displaced + #0001 + + + + + B0RWSC + Bank 0 Read Wait State Control + 28 + 4 + read-only + + + + + PFB1CR + Flash Bank 1 Control Register + 0x8 + 32 + read-write + 0x3004001F + 0xFFFFFFFF + + + B1SEBE + Bank 1 Single Entry Buffer Enable + 0 + 1 + read-write + + + 0 + Single entry buffer is disabled. + #0 + + + 1 + Single entry buffer is enabled. + #1 + + + + + B1IPE + Bank 1 Instruction Prefetch Enable + 1 + 1 + read-write + + + 0 + Do not prefetch in response to instruction fetches. + #0 + + + 1 + Enable prefetches in response to instruction fetches. + #1 + + + + + B1DPE + Bank 1 Data Prefetch Enable + 2 + 1 + read-write + + + 0 + Do not prefetch in response to data references. + #0 + + + 1 + Enable prefetches in response to data references. + #1 + + + + + B1ICE + Bank 1 Instruction Cache Enable + 3 + 1 + read-write + + + 0 + Do not cache instruction fetches. + #0 + + + 1 + Cache instruction fetches. + #1 + + + + + B1DCE + Bank 1 Data Cache Enable + 4 + 1 + read-write + + + 0 + Do not cache data references. + #0 + + + 1 + Cache data references. + #1 + + + + + B1MW + Bank 1 Memory Width + 17 + 2 + read-only + + + 00 + 32 bits + #00 + + + 01 + 64 bits + #01 + + + 10 + 128 bits + #10 + + + + + B1RWSC + Bank 1 Read Wait State Control + 28 + 4 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + TAGVDW0S%s + Cache Tag Storage + 0x100 + 32 + read-write + 0 + 0xFFFFFFFF + + + valid + 1-bit valid for cache entry + 0 + 1 + read-write + + + tag + 14-bit tag for cache entry + 5 + 14 + read-write + + + + + 4 + 0x4 + 0,1,2,3 + TAGVDW1S%s + Cache Tag Storage + 0x110 + 32 + read-write + 0 + 0xFFFFFFFF + + + valid + 1-bit valid for cache entry + 0 + 1 + read-write + + + tag + 14-bit tag for cache entry + 5 + 14 + read-write + + + + + 4 + 0x4 + 0,1,2,3 + TAGVDW2S%s + Cache Tag Storage + 0x120 + 32 + read-write + 0 + 0xFFFFFFFF + + + valid + 1-bit valid for cache entry + 0 + 1 + read-write + + + tag + 14-bit tag for cache entry + 5 + 14 + read-write + + + + + 4 + 0x4 + 0,1,2,3 + TAGVDW3S%s + Cache Tag Storage + 0x130 + 32 + read-write + 0 + 0xFFFFFFFF + + + valid + 1-bit valid for cache entry + 0 + 1 + read-write + + + tag + 14-bit tag for cache entry + 5 + 14 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW0S%sU + Cache Data Storage (upper word) + 0x200 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [63:32] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW0S%sL + Cache Data Storage (lower word) + 0x204 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [31:0] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW1S%sU + Cache Data Storage (upper word) + 0x220 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [63:32] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW1S%sL + Cache Data Storage (lower word) + 0x224 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [31:0] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW2S%sU + Cache Data Storage (upper word) + 0x240 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [63:32] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW2S%sL + Cache Data Storage (lower word) + 0x244 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [31:0] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW3S%sU + Cache Data Storage (upper word) + 0x260 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [63:32] of data entry + 0 + 32 + read-write + + + + + 4 + 0x8 + 0,1,2,3 + DATAW3S%sL + Cache Data Storage (lower word) + 0x264 + 32 + read-write + 0 + 0xFFFFFFFF + + + data + Bits [31:0] of data entry + 0 + 32 + read-write + + + + + + + FTFE + Flash Memory Interface + FTFE_ + 0x40020000 + + 0 + 0x18 + registers + + + FTFE + 18 + + + Read_Collision + 19 + + + + FSTAT + Flash Status Register + 0 + 8 + read-write + 0 + 0xFF + + + MGSTAT0 + Memory Controller Command Completion Status Flag + 0 + 1 + read-only + + + FPVIOL + Flash Protection Violation Flag + 4 + 1 + read-write + + + 0 + No protection violation detected + #0 + + + 1 + Protection violation detected + #1 + + + + + ACCERR + Flash Access Error Flag + 5 + 1 + read-write + + + 0 + No access error detected + #0 + + + 1 + Access error detected + #1 + + + + + RDCOLERR + FTFE Read Collision Error Flag + 6 + 1 + read-write + + + 0 + No collision error detected + #0 + + + 1 + Collision error detected + #1 + + + + + CCIF + Command Complete Interrupt Flag + 7 + 1 + read-write + + + 0 + FTFE command or EEPROM file system operation in progress + #0 + + + 1 + FTFE command or EEPROM file system operation has completed + #1 + + + + + + + FCNFG + Flash Configuration Register + 0x1 + 8 + read-write + 0 + 0xFF + + + EEERDY + For devices with FlexNVM: This flag indicates if the EEPROM backup data has been copied to the FlexRAM and is therefore available for read access + 0 + 1 + read-only + + + 0 + For devices with FlexNVM: FlexRAM is not available for EEPROM operation. + #0 + + + 1 + For devices with FlexNVM: FlexRAM is available for EEPROM operations where: reads from the FlexRAM return data previously written to the FlexRAM in EEPROM mode and writes launch an EEPROM operation to store the written data in the FlexRAM and EEPROM backup. + #1 + + + + + RAMRDY + RAM Ready + 1 + 1 + read-only + + + 0 + For devices with FlexNVM: FlexRAM is not available for traditional RAM access. For devices without FlexNVM: Programming acceleration RAM is not available. + #0 + + + 1 + For devices with FlexNVM: FlexRAM is available as traditional RAM only; writes to the FlexRAM do not trigger EEPROM operations. For devices without FlexNVM: Programming acceleration RAM is available. + #1 + + + + + PFLSH + FTFE configuration + 2 + 1 + read-only + + + 0 + For devices with FlexNVM: FTFE configuration supports two program flash blocks and two FlexNVM blocks For devices with program flash only: Reserved + #0 + + + 1 + For devices with FlexNVM: Reserved For devices with program flash only: FTFE configuration supports four program flash blocks + #1 + + + + + SWAP + Swap + 3 + 1 + read-only + + + 0 + For devices with FlexNVM: Program flash 0 block is located at relative address 0x0000 For devices with program flash only: Program flash 0 block is located at relative address 0x0000 + #0 + + + 1 + For devices with FlexNVM: Reserved For devices with program flash only: Program flash 1 block is located at relative address 0x0000 + #1 + + + + + ERSSUSP + Erase Suspend + 4 + 1 + read-write + + + 0 + No suspend requested + #0 + + + 1 + Suspend the current Erase Flash Sector command execution. + #1 + + + + + ERSAREQ + Erase All Request + 5 + 1 + read-only + + + 0 + No request or request complete + #0 + + + 1 + Request to: run the Erase All Blocks command, verify the erased state, program the security byte in the Flash Configuration Field to the unsecure state, and release MCU security by setting the FSEC[SEC] field to the unsecure state. + #1 + + + + + RDCOLLIE + Read Collision Error Interrupt Enable + 6 + 1 + read-write + + + 0 + Read collision error interrupt disabled + #0 + + + 1 + Read collision error interrupt enabled. An interrupt request is generated whenever an FTFE read collision error is detected (see the description of FSTAT[RDCOLERR]). + #1 + + + + + CCIE + Command Complete Interrupt Enable + 7 + 1 + read-write + + + 0 + Command complete interrupt disabled + #0 + + + 1 + Command complete interrupt enabled. An interrupt request is generated whenever the FSTAT[CCIF] flag is set. + #1 + + + + + + + FSEC + Flash Security Register + 0x2 + 8 + read-only + 0 + 0 + + + SEC + Flash Security + 0 + 2 + read-only + + + 00 + MCU security status is secure + #00 + + + 01 + MCU security status is secure + #01 + + + 10 + MCU security status is unsecure (The standard shipping condition of the FTFE is unsecure.) + #10 + + + 11 + MCU security status is secure + #11 + + + + + FSLACC + Freescale Failure Analysis Access Code + 2 + 2 + read-only + + + 00 + Freescale factory access granted + #00 + + + 01 + Freescale factory access denied + #01 + + + 10 + Freescale factory access denied + #10 + + + 11 + Freescale factory access granted + #11 + + + + + MEEN + Mass Erase Enable Bits + 4 + 2 + read-only + + + 00 + Mass erase is enabled + #00 + + + 01 + Mass erase is enabled + #01 + + + 10 + Mass erase is disabled + #10 + + + 11 + Mass erase is enabled + #11 + + + + + KEYEN + Backdoor Key Security Enable + 6 + 2 + read-only + + + 00 + Backdoor key access disabled + #00 + + + 01 + Backdoor key access disabled (preferred KEYEN state to disable backdoor key access) + #01 + + + 10 + Backdoor key access enabled + #10 + + + 11 + Backdoor key access disabled + #11 + + + + + + + FOPT + Flash Option Register + 0x3 + 8 + read-only + 0 + 0 + + + OPT + Nonvolatile Option + 0 + 8 + read-only + + + + + 12 + 0x1 + 3,2,1,0,7,6,5,4,B,A,9,8 + FCCOB%s + Flash Common Command Object Registers + 0x4 + 8 + read-write + 0 + 0xFF + + + CCOBn + The FCCOB register provides a command code and relevant parameters to the memory controller + 0 + 8 + read-write + + + + + 4 + 0x1 + 3,2,1,0 + FPROT%s + Program Flash Protection Registers + 0x10 + 8 + read-write + 0 + 0 + + + PROT + Program Flash Region Protect + 0 + 8 + read-write + + + 0 + Program flash region is protected. + #0 + + + 1 + Program flash region is not protected + #1 + + + + + + + FEPROT + EEPROM Protection Register + 0x16 + 8 + read-write + 0 + 0 + + + EPROT + EEPROM Region Protect + 0 + 8 + read-write + + + 0 + For devices with program flash only: Reserved For devices with FlexNVM: EEPROM region is protected + #0 + + + 1 + For devices with program flash only: Reserved For devices with FlexNVM: EEPROM region is not protected + #1 + + + + + + + FDPROT + Data Flash Protection Register + 0x17 + 8 + read-write + 0 + 0 + + + DPROT + Data Flash Region Protect + 0 + 8 + read-write + + + 0 + Data Flash region is protected + #0 + + + 1 + Data Flash region is not protected + #1 + + + + + + + + + DMAMUX + DMA channel multiplexor + DMAMUX_ + 0x40021000 + + 0 + 0x10 + registers + + + + 16 + 0x1 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + CHCFG%s + Channel Configuration register + 0 + 8 + read-write + 0 + 0xFF + + + SOURCE + DMA Channel Source (Slot) + 0 + 6 + read-write + + + 0 + Disable_Signal + #0 + + + 2 + UART0_Rx_Signal + #10 + + + 3 + UART0_Tx_Signal + #11 + + + 4 + UART1_Rx_Signal + #100 + + + 5 + UART1_Tx_Signal + #101 + + + 6 + UART2_Rx_Signal + #110 + + + 7 + UART2_Tx_Signal + #111 + + + 8 + UART3_Rx_Signal + #1000 + + + 9 + UART3_Tx_Signal + #1001 + + + 10 + UART4_Signal + #1010 + + + 11 + UART5_Signal + #1011 + + + 12 + I2S0_Rx_Signal + #1100 + + + 13 + I2S0_Tx_Signal + #1101 + + + 14 + SPI0_Rx_Signal + #1110 + + + 15 + SPI0_Tx_Signal + #1111 + + + 16 + SPI1_Signal + #10000 + + + 17 + SPI2_Signal + #10001 + + + 18 + I2C0_Signal + #10010 + + + 19 + I2C1_I2C2_Signal + #10011 + + + 20 + FTM0_Channel0_Signal + #10100 + + + 21 + FTM0_Channel1_Signal + #10101 + + + 22 + FTM0_Channel2_Signal + #10110 + + + 23 + FTM0_Channel3_Signal + #10111 + + + 24 + FTM0_Channel4_Signal + #11000 + + + 25 + FTM0_Channel5_Signal + #11001 + + + 26 + FTM0_Channel6_Signal + #11010 + + + 27 + FTM0_Channel7_Signal + #11011 + + + 28 + FTM1_Channel0_Signal + #11100 + + + 29 + FTM1_Channel1_Signal + #11101 + + + 30 + FTM2_Channel0_Signal + #11110 + + + 31 + FTM2_Channel1_Signal + #11111 + + + 32 + FTM3_Channel0_Signal + #100000 + + + 33 + FTM3_Channel1_Signal + #100001 + + + 34 + FTM3_Channel2_Signal + #100010 + + + 35 + FTM3_Channel3_Signal + #100011 + + + 36 + FTM3_Channel4_Signal + #100100 + + + 37 + FTM3_Channel5_Signal + #100101 + + + 38 + FTM3_Channel6_Signal + #100110 + + + 39 + FTM3_Channel7_Signal + #100111 + + + 40 + ADC0_Signal + #101000 + + + 41 + ADC1_Signal + #101001 + + + 42 + CMP0_Signal + #101010 + + + 43 + CMP1_Signal + #101011 + + + 44 + CMP2_Signal + #101100 + + + 45 + DAC0_Signal + #101101 + + + 46 + DAC1_Signal + #101110 + + + 47 + CMT_Signal + #101111 + + + 48 + PDB_Signal + #110000 + + + 49 + PortA_Signal + #110001 + + + 50 + PortB_Signal + #110010 + + + 51 + PortC_Signal + #110011 + + + 52 + PortD_Signal + #110100 + + + 53 + PortE_Signal + #110101 + + + 54 + IEEE1588Timer0_Signal + #110110 + + + 55 + IEEE1588Timer1_Signal + #110111 + + + 56 + IEEE1588Timer2_Signal + #111000 + + + 57 + IEEE1588Timer3_Signal + #111001 + + + 58 + AlwaysOn58_Signal + #111010 + + + 59 + AlwaysOn59_Signal + #111011 + + + 60 + AlwaysOn60_Signal + #111100 + + + 61 + AlwaysOn61_Signal + #111101 + + + 62 + AlwaysOn62_Signal + #111110 + + + 63 + AlwaysOn63_Signal + #111111 + + + + + TRIG + DMA Channel Trigger Enable + 6 + 1 + read-write + + + 0 + Triggering is disabled. If triggering is disabled and ENBL is set, the DMA Channel will simply route the specified source to the DMA channel. (Normal mode) + #0 + + + 1 + Triggering is enabled. If triggering is enabled and ENBL is set, the DMAMUX is in Periodic Trigger mode. + #1 + + + + + ENBL + DMA Channel Enable + 7 + 1 + read-write + + + 0 + DMA channel is disabled. This mode is primarily used during configuration of the DMAMux. The DMA has separate channel enables/disables, which should be used to disable or reconfigure a DMA channel. + #0 + + + 1 + DMA channel is enabled + #1 + + + + + + + + + CAN0 + Flex Controller Area Network module + CAN0_ + 0x40024000 + + 0 + 0x8C0 + registers + + + CAN0_ORed_Message_buffer + 75 + + + CAN0_Bus_Off + 76 + + + CAN0_Error + 77 + + + CAN0_Tx_Warning + 78 + + + CAN0_Rx_Warning + 79 + + + CAN0_Wake_Up + 80 + + + + MCR + Module Configuration Register + 0 + 32 + read-write + 0xD890000F + 0xFFFFFFFF + + + MAXMB + Number Of The Last Message Buffer + 0 + 7 + read-write + + + IDAM + ID Acceptance Mode + 8 + 2 + read-write + + + 00 + Format A: One full ID (standard and extended) per ID Filter Table element. + #00 + + + 01 + Format B: Two full standard IDs or two partial 14-bit (standard and extended) IDs per ID Filter Table element. + #01 + + + 10 + Format C: Four partial 8-bit Standard IDs per ID Filter Table element. + #10 + + + 11 + Format D: All frames rejected. + #11 + + + + + AEN + Abort Enable + 12 + 1 + read-write + + + 0 + Abort disabled. + #0 + + + 1 + Abort enabled. + #1 + + + + + LPRIOEN + Local Priority Enable + 13 + 1 + read-write + + + 0 + Local Priority disabled. + #0 + + + 1 + Local Priority enabled. + #1 + + + + + IRMQ + Individual Rx Masking And Queue Enable + 16 + 1 + read-write + + + 0 + Individual Rx masking and queue feature are disabled. For backward compatibility with legacy applications, the reading of C/S word locks the MB even if it is EMPTY. + #0 + + + 1 + Individual Rx masking and queue feature are enabled. + #1 + + + + + SRXDIS + Self Reception Disable + 17 + 1 + read-write + + + 0 + Self reception enabled. + #0 + + + 1 + Self reception disabled. + #1 + + + + + WAKSRC + Wake Up Source + 19 + 1 + read-write + + + 0 + FlexCAN uses the unfiltered Rx input to detect recessive to dominant edges on the CAN bus. + #0 + + + 1 + FlexCAN uses the filtered Rx input to detect recessive to dominant edges on the CAN bus. + #1 + + + + + LPMACK + Low-Power Mode Acknowledge + 20 + 1 + read-only + + + 0 + FlexCAN is not in a low-power mode. + #0 + + + 1 + FlexCAN is in a low-power mode. + #1 + + + + + WRNEN + Warning Interrupt Enable + 21 + 1 + read-write + + + 0 + TWRNINT and RWRNINT bits are zero, independent of the values in the error counters. + #0 + + + 1 + TWRNINT and RWRNINT bits are set when the respective error counter transitions from less than 96 to greater than or equal to 96. + #1 + + + + + SLFWAK + Self Wake Up + 22 + 1 + read-write + + + 0 + FlexCAN Self Wake Up feature is disabled. + #0 + + + 1 + FlexCAN Self Wake Up feature is enabled. + #1 + + + + + SUPV + Supervisor Mode + 23 + 1 + read-write + + + 0 + FlexCAN is in User mode. Affected registers allow both Supervisor and Unrestricted accesses . + #0 + + + 1 + FlexCAN is in Supervisor mode. Affected registers allow only Supervisor access. Unrestricted access behaves as though the access was done to an unimplemented register location . + #1 + + + + + FRZACK + Freeze Mode Acknowledge + 24 + 1 + read-only + + + 0 + FlexCAN not in Freeze mode, prescaler running. + #0 + + + 1 + FlexCAN in Freeze mode, prescaler stopped. + #1 + + + + + SOFTRST + Soft Reset + 25 + 1 + read-write + + + 0 + No reset request. + #0 + + + 1 + Resets the registers affected by soft reset. + #1 + + + + + WAKMSK + Wake Up Interrupt Mask + 26 + 1 + read-write + + + 0 + Wake Up Interrupt is disabled. + #0 + + + 1 + Wake Up Interrupt is enabled. + #1 + + + + + NOTRDY + FlexCAN Not Ready + 27 + 1 + read-only + + + 0 + FlexCAN module is either in Normal mode, Listen-Only mode or Loop-Back mode. + #0 + + + 1 + FlexCAN module is either in Disable mode , Stop mode or Freeze mode. + #1 + + + + + HALT + Halt FlexCAN + 28 + 1 + read-write + + + 0 + No Freeze mode request. + #0 + + + 1 + Enters Freeze mode if the FRZ bit is asserted. + #1 + + + + + RFEN + Rx FIFO Enable + 29 + 1 + read-write + + + 0 + Rx FIFO not enabled. + #0 + + + 1 + Rx FIFO enabled. + #1 + + + + + FRZ + Freeze Enable + 30 + 1 + read-write + + + 0 + Not enabled to enter Freeze mode. + #0 + + + 1 + Enabled to enter Freeze mode. + #1 + + + + + MDIS + Module Disable + 31 + 1 + read-write + + + 0 + Enable the FlexCAN module. + #0 + + + 1 + Disable the FlexCAN module. + #1 + + + + + + + CTRL1 + Control 1 register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PROPSEG + Propagation Segment + 0 + 3 + read-write + + + LOM + Listen-Only Mode + 3 + 1 + read-write + + + 0 + Listen-Only mode is deactivated. + #0 + + + 1 + FlexCAN module operates in Listen-Only mode. + #1 + + + + + LBUF + Lowest Buffer Transmitted First + 4 + 1 + read-write + + + 0 + Buffer with highest priority is transmitted first. + #0 + + + 1 + Lowest number buffer is transmitted first. + #1 + + + + + TSYN + Timer Sync + 5 + 1 + read-write + + + 0 + Timer Sync feature disabled + #0 + + + 1 + Timer Sync feature enabled + #1 + + + + + BOFFREC + Bus Off Recovery + 6 + 1 + read-write + + + 0 + Automatic recovering from Bus Off state enabled, according to CAN Spec 2.0 part B. + #0 + + + 1 + Automatic recovering from Bus Off state disabled. + #1 + + + + + SMP + CAN Bit Sampling + 7 + 1 + read-write + + + 0 + Just one sample is used to determine the bit value. + #0 + + + 1 + Three samples are used to determine the value of the received bit: the regular one (sample point) and 2 preceding samples; a majority rule is used. + #1 + + + + + RWRNMSK + Rx Warning Interrupt Mask + 10 + 1 + read-write + + + 0 + Rx Warning Interrupt disabled. + #0 + + + 1 + Rx Warning Interrupt enabled. + #1 + + + + + TWRNMSK + Tx Warning Interrupt Mask + 11 + 1 + read-write + + + 0 + Tx Warning Interrupt disabled. + #0 + + + 1 + Tx Warning Interrupt enabled. + #1 + + + + + LPB + Loop Back Mode + 12 + 1 + read-write + + + 0 + Loop Back disabled. + #0 + + + 1 + Loop Back enabled. + #1 + + + + + CLKSRC + CAN Engine Clock Source + 13 + 1 + read-write + + + 0 + The CAN engine clock source is the oscillator clock. Under this condition, the oscillator clock frequency must be lower than the bus clock. + #0 + + + 1 + The CAN engine clock source is the peripheral clock. + #1 + + + + + ERRMSK + Error Mask + 14 + 1 + read-write + + + 0 + Error interrupt disabled. + #0 + + + 1 + Error interrupt enabled. + #1 + + + + + BOFFMSK + Bus Off Mask + 15 + 1 + read-write + + + 0 + Bus Off interrupt disabled. + #0 + + + 1 + Bus Off interrupt enabled. + #1 + + + + + PSEG2 + Phase Segment 2 + 16 + 3 + read-write + + + PSEG1 + Phase Segment 1 + 19 + 3 + read-write + + + RJW + Resync Jump Width + 22 + 2 + read-write + + + PRESDIV + Prescaler Division Factor + 24 + 8 + read-write + + + + + TIMER + Free Running Timer + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIMER + Timer Value + 0 + 16 + read-write + + + + + RXMGMASK + Rx Mailboxes Global Mask Register + 0x10 + 32 + read-write + 0xFFFFFFFF + 0xFFFFFFFF + + + MG + Rx Mailboxes Global Mask Bits + 0 + 32 + read-write + + + 0 + The corresponding bit in the filter is "don't care." + #0 + + + 1 + The corresponding bit in the filter is checked. + #1 + + + + + + + RX14MASK + Rx 14 Mask register + 0x14 + 32 + read-write + 0xFFFFFFFF + 0xFFFFFFFF + + + RX14M + Rx Buffer 14 Mask Bits + 0 + 32 + read-write + + + 0 + The corresponding bit in the filter is "don't care." + #0 + + + 1 + The corresponding bit in the filter is checked. + #1 + + + + + + + RX15MASK + Rx 15 Mask register + 0x18 + 32 + read-write + 0xFFFFFFFF + 0xFFFFFFFF + + + RX15M + Rx Buffer 15 Mask Bits + 0 + 32 + read-write + + + 0 + The corresponding bit in the filter is "don't care." + #0 + + + 1 + The corresponding bit in the filter is checked. + #1 + + + + + + + ECR + Error Counter + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + TXERRCNT + Transmit Error Counter + 0 + 8 + read-write + + + RXERRCNT + Receive Error Counter + 8 + 8 + read-write + + + + + ESR1 + Error and Status 1 register + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + WAKINT + Wake-Up Interrupt + 0 + 1 + read-write + + + 0 + No such occurrence. + #0 + + + 1 + Indicates a recessive to dominant transition was received on the CAN bus. + #1 + + + + + ERRINT + Error Interrupt + 1 + 1 + read-write + + + 0 + No such occurrence. + #0 + + + 1 + Indicates setting of any Error Bit in the Error and Status Register. + #1 + + + + + BOFFINT + Bus Off Interrupt + 2 + 1 + read-write + + + 0 + No such occurrence. + #0 + + + 1 + FlexCAN module entered Bus Off state. + #1 + + + + + RX + FlexCAN In Reception + 3 + 1 + read-only + + + 0 + FlexCAN is not receiving a message. + #0 + + + 1 + FlexCAN is receiving a message. + #1 + + + + + FLTCONF + Fault Confinement State + 4 + 2 + read-only + + + 00 + Error Active + #00 + + + 01 + Error Passive + #01 + + + 1x + Bus Off + #1x + + + + + TX + FlexCAN In Transmission + 6 + 1 + read-only + + + 0 + FlexCAN is not transmitting a message. + #0 + + + 1 + FlexCAN is transmitting a message. + #1 + + + + + IDLE + This bit indicates when CAN bus is in IDLE state + 7 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + CAN bus is now IDLE. + #1 + + + + + RXWRN + Rx Error Warning + 8 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + RXERRCNT is greater than or equal to 96. + #1 + + + + + TXWRN + TX Error Warning + 9 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + TXERRCNT is greater than or equal to 96. + #1 + + + + + STFERR + Stuffing Error + 10 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + A Stuffing Error occurred since last read of this register. + #1 + + + + + FRMERR + Form Error + 11 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + A Form Error occurred since last read of this register. + #1 + + + + + CRCERR + Cyclic Redundancy Check Error + 12 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + A CRC error occurred since last read of this register. + #1 + + + + + ACKERR + Acknowledge Error + 13 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + An ACK error occurred since last read of this register. + #1 + + + + + BIT0ERR + Bit0 Error + 14 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + At least one bit sent as dominant is received as recessive. + #1 + + + + + BIT1ERR + Bit1 Error + 15 + 1 + read-only + + + 0 + No such occurrence. + #0 + + + 1 + At least one bit sent as recessive is received as dominant. + #1 + + + + + RWRNINT + Rx Warning Interrupt Flag + 16 + 1 + read-write + + + 0 + No such occurrence. + #0 + + + 1 + The Rx error counter transitioned from less than 96 to greater than or equal to 96. + #1 + + + + + TWRNINT + Tx Warning Interrupt Flag + 17 + 1 + read-write + + + 0 + No such occurrence. + #0 + + + 1 + The Tx error counter transitioned from less than 96 to greater than or equal to 96. + #1 + + + + + SYNCH + CAN Synchronization Status + 18 + 1 + read-only + + + 0 + FlexCAN is not synchronized to the CAN bus. + #0 + + + 1 + FlexCAN is synchronized to the CAN bus. + #1 + + + + + + + IMASK1 + Interrupt Masks 1 register + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + BUFLM + Buffer MB i Mask + 0 + 32 + read-write + + + 0 + The corresponding buffer Interrupt is disabled. + #0 + + + 1 + The corresponding buffer Interrupt is enabled. + #1 + + + + + + + IFLAG1 + Interrupt Flags 1 register + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + BUF0I + Buffer MB0 Interrupt Or "reserved" + 0 + 1 + read-write + + + 0 + The corresponding buffer has no occurrence of successfully completed transmission or reception when MCR[RFEN]=0. + #0 + + + 1 + The corresponding buffer has successfully completed transmission or reception when MCR[RFEN]=0. + #1 + + + + + BUF4TO1I + Buffer MB i Interrupt Or "reserved" + 1 + 4 + read-write + + + 0 + The corresponding buffer has no occurrence of successfully completed transmission or reception when MCR[RFEN]=0. + #0000 + + + 1 + The corresponding buffer has successfully completed transmission or reception when MCR[RFEN]=0. + #0001 + + + + + BUF5I + Buffer MB5 Interrupt Or "Frames available in Rx FIFO" + 5 + 1 + read-write + + + 0 + No occurrence of MB5 completing transmission/reception when MCR[RFEN]=0, or of frame(s) available in the FIFO, when MCR[RFEN]=1 + #0 + + + 1 + MB5 completed transmission/reception when MCR[RFEN]=0, or frame(s) available in the Rx FIFO when MCR[RFEN]=1 + #1 + + + + + BUF6I + Buffer MB6 Interrupt Or "Rx FIFO Warning" + 6 + 1 + read-write + + + 0 + No occurrence of MB6 completing transmission/reception when MCR[RFEN]=0, or of Rx FIFO almost full when MCR[RFEN]=1 + #0 + + + 1 + MB6 completed transmission/reception when MCR[RFEN]=0, or Rx FIFO almost full when MCR[RFEN]=1 + #1 + + + + + BUF7I + Buffer MB7 Interrupt Or "Rx FIFO Overflow" + 7 + 1 + read-write + + + 0 + No occurrence of MB7 completing transmission/reception when MCR[RFEN]=0, or of Rx FIFO overflow when MCR[RFEN]=1 + #0 + + + 1 + MB7 completed transmission/reception when MCR[RFEN]=0, or Rx FIFO overflow when MCR[RFEN]=1 + #1 + + + + + BUF31TO8I + Buffer MBi Interrupt + 8 + 24 + read-write + + + 0 + The corresponding buffer has no occurrence of successfully completed transmission or reception. + #0 + + + 1 + The corresponding buffer has successfully completed transmission or reception. + #1 + + + + + + + CTRL2 + Control 2 register + 0x34 + 32 + read-write + 0xB00000 + 0xFFFFFFFF + + + EACEN + Entire Frame Arbitration Field Comparison Enable For Rx Mailboxes + 16 + 1 + read-write + + + 0 + Rx Mailbox filter's IDE bit is always compared and RTR is never compared despite mask bits. + #0 + + + 1 + Enables the comparison of both Rx Mailbox filter's IDE and RTR bit with their corresponding bits within the incoming frame. Mask bits do apply. + #1 + + + + + RRS + Remote Request Storing + 17 + 1 + read-write + + + 0 + Remote Response Frame is generated. + #0 + + + 1 + Remote Request Frame is stored. + #1 + + + + + MRP + Mailboxes Reception Priority + 18 + 1 + read-write + + + 0 + Matching starts from Rx FIFO and continues on Mailboxes. + #0 + + + 1 + Matching starts from Mailboxes and continues on Rx FIFO. + #1 + + + + + TASD + Tx Arbitration Start Delay + 19 + 5 + read-write + + + RFFN + Number Of Rx FIFO Filters + 24 + 4 + read-write + + + WRMFRZ + Write-Access To Memory In Freeze Mode + 28 + 1 + read-write + + + 0 + Maintain the write access restrictions. + #0 + + + 1 + Enable unrestricted write access to FlexCAN memory. + #1 + + + + + + + ESR2 + Error and Status 2 register + 0x38 + 32 + read-only + 0 + 0xFFFFFFFF + + + IMB + Inactive Mailbox + 13 + 1 + read-only + + + 0 + If ESR2[VPS] is asserted, the ESR2[LPTM] is not an inactive Mailbox. + #0 + + + 1 + If ESR2[VPS] is asserted, there is at least one inactive Mailbox. LPTM content is the number of the first one. + #1 + + + + + VPS + Valid Priority Status + 14 + 1 + read-only + + + 0 + Contents of IMB and LPTM are invalid. + #0 + + + 1 + Contents of IMB and LPTM are valid. + #1 + + + + + LPTM + Lowest Priority Tx Mailbox + 16 + 7 + read-only + + + + + CRCR + CRC Register + 0x44 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXCRC + CRC Transmitted + 0 + 15 + read-only + + + MBCRC + CRC Mailbox + 16 + 7 + read-only + + + + + RXFGMASK + Rx FIFO Global Mask register + 0x48 + 32 + read-write + 0xFFFFFFFF + 0xFFFFFFFF + + + FGM + Rx FIFO Global Mask Bits + 0 + 32 + read-write + + + 0 + The corresponding bit in the filter is "don't care." + #0 + + + 1 + The corresponding bit in the filter is checked. + #1 + + + + + + + RXFIR + Rx FIFO Information Register + 0x4C + 32 + read-only + 0 + 0 + + + IDHIT + Identifier Acceptance Filter Hit Indicator + 0 + 9 + read-only + + + + + CS0 + Message Buffer 0 CS Register + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID0 + Message Buffer 0 ID Register + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD00 + Message Buffer 0 WORD0 Register + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD10 + Message Buffer 0 WORD1 Register + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS1 + Message Buffer 1 CS Register + 0x90 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID1 + Message Buffer 1 ID Register + 0x94 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD01 + Message Buffer 1 WORD0 Register + 0x98 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD11 + Message Buffer 1 WORD1 Register + 0x9C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS2 + Message Buffer 2 CS Register + 0xA0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID2 + Message Buffer 2 ID Register + 0xA4 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD02 + Message Buffer 2 WORD0 Register + 0xA8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD12 + Message Buffer 2 WORD1 Register + 0xAC + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS3 + Message Buffer 3 CS Register + 0xB0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID3 + Message Buffer 3 ID Register + 0xB4 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD03 + Message Buffer 3 WORD0 Register + 0xB8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD13 + Message Buffer 3 WORD1 Register + 0xBC + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS4 + Message Buffer 4 CS Register + 0xC0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID4 + Message Buffer 4 ID Register + 0xC4 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD04 + Message Buffer 4 WORD0 Register + 0xC8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD14 + Message Buffer 4 WORD1 Register + 0xCC + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS5 + Message Buffer 5 CS Register + 0xD0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID5 + Message Buffer 5 ID Register + 0xD4 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD05 + Message Buffer 5 WORD0 Register + 0xD8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD15 + Message Buffer 5 WORD1 Register + 0xDC + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS6 + Message Buffer 6 CS Register + 0xE0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID6 + Message Buffer 6 ID Register + 0xE4 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD06 + Message Buffer 6 WORD0 Register + 0xE8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD16 + Message Buffer 6 WORD1 Register + 0xEC + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS7 + Message Buffer 7 CS Register + 0xF0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID7 + Message Buffer 7 ID Register + 0xF4 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD07 + Message Buffer 7 WORD0 Register + 0xF8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD17 + Message Buffer 7 WORD1 Register + 0xFC + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS8 + Message Buffer 8 CS Register + 0x100 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID8 + Message Buffer 8 ID Register + 0x104 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD08 + Message Buffer 8 WORD0 Register + 0x108 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD18 + Message Buffer 8 WORD1 Register + 0x10C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS9 + Message Buffer 9 CS Register + 0x110 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID9 + Message Buffer 9 ID Register + 0x114 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD09 + Message Buffer 9 WORD0 Register + 0x118 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD19 + Message Buffer 9 WORD1 Register + 0x11C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS10 + Message Buffer 10 CS Register + 0x120 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID10 + Message Buffer 10 ID Register + 0x124 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD010 + Message Buffer 10 WORD0 Register + 0x128 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD110 + Message Buffer 10 WORD1 Register + 0x12C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS11 + Message Buffer 11 CS Register + 0x130 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID11 + Message Buffer 11 ID Register + 0x134 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD011 + Message Buffer 11 WORD0 Register + 0x138 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD111 + Message Buffer 11 WORD1 Register + 0x13C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS12 + Message Buffer 12 CS Register + 0x140 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID12 + Message Buffer 12 ID Register + 0x144 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD012 + Message Buffer 12 WORD0 Register + 0x148 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD112 + Message Buffer 12 WORD1 Register + 0x14C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS13 + Message Buffer 13 CS Register + 0x150 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID13 + Message Buffer 13 ID Register + 0x154 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD013 + Message Buffer 13 WORD0 Register + 0x158 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD113 + Message Buffer 13 WORD1 Register + 0x15C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS14 + Message Buffer 14 CS Register + 0x160 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID14 + Message Buffer 14 ID Register + 0x164 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD014 + Message Buffer 14 WORD0 Register + 0x168 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD114 + Message Buffer 14 WORD1 Register + 0x16C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + CS15 + Message Buffer 15 CS Register + 0x170 + 32 + read-write + 0 + 0xFFFFFFFF + + + TIME_STAMP + Free-Running Counter Time stamp. This 16-bit field is a copy of the Free-Running Timer, captured for Tx and Rx frames at the time when the beginning of the Identifier field appears on the CAN bus. + 0 + 16 + read-write + + + DLC + Length of the data to be stored/transmitted. + 16 + 4 + read-write + + + RTR + Remote Transmission Request. One/zero for remote/data frame. + 20 + 1 + read-write + + + IDE + ID Extended. One/zero for extended/standard format frame. + 21 + 1 + read-write + + + SRR + Substitute Remote Request. Contains a fixed recessive bit. + 22 + 1 + read-write + + + CODE + Reserved + 24 + 4 + read-write + + + + + ID15 + Message Buffer 15 ID Register + 0x174 + 32 + read-write + 0 + 0xFFFFFFFF + + + EXT + Contains extended (LOW word) identifier of message buffer. + 0 + 18 + read-write + + + STD + Contains standard/extended (HIGH word) identifier of message buffer. + 18 + 11 + read-write + + + PRIO + Local priority. This 3-bit fieldis only used when LPRIO_EN bit is set in MCR and it only makes sense for Tx buffers. These bits are not transmitted. They are appended to the regular ID to define the transmission priority. + 29 + 3 + read-write + + + + + WORD015 + Message Buffer 15 WORD0 Register + 0x178 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_3 + Data byte 3 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_2 + Data byte 2 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_1 + Data byte 1 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_0 + Data byte 0 of Rx/Tx frame. + 24 + 8 + read-write + + + + + WORD115 + Message Buffer 15 WORD1 Register + 0x17C + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA_BYTE_7 + Data byte 7 of Rx/Tx frame. + 0 + 8 + read-write + + + DATA_BYTE_6 + Data byte 6 of Rx/Tx frame. + 8 + 8 + read-write + + + DATA_BYTE_5 + Data byte 5 of Rx/Tx frame. + 16 + 8 + read-write + + + DATA_BYTE_4 + Data byte 4 of Rx/Tx frame. + 24 + 8 + read-write + + + + + 16 + 0x4 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + RXIMR%s + Rx Individual Mask Registers + 0x880 + 32 + read-write + 0 + 0 + + + MI + Individual Mask Bits + 0 + 32 + read-write + + + 0 + The corresponding bit in the filter is "don't care." + #0 + + + 1 + The corresponding bit in the filter is checked. + #1 + + + + + + + + + RNG + Random Number Generator Accelerator + RNG_ + 0x40029000 + + 0 + 0x10 + registers + + + RNG + 23 + + + + CR + RNGA Control Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + GO + Go + 0 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + HA + High Assurance + 1 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + INTM + Interrupt Mask + 2 + 1 + read-write + + + 0 + Not masked + #0 + + + 1 + Masked + #1 + + + + + CLRI + Clear Interrupt + 3 + 1 + write-only + + + 0 + Do not clear the interrupt. + #0 + + + 1 + Clear the interrupt. When you write 1 to this field, RNGA then resets the error-interrupt indicator (SR[ERRI]). This bit always reads as 0. + #1 + + + + + SLP + Sleep + 4 + 1 + read-write + + + 0 + Normal mode + #0 + + + 1 + Sleep (low-power) mode + #1 + + + + + + + SR + RNGA Status Register + 0x4 + 32 + read-only + 0x10000 + 0xFFFFFFFF + + + SECV + Security Violation + 0 + 1 + read-only + + + 0 + No security violation + #0 + + + 1 + Security violation + #1 + + + + + LRS + Last Read Status + 1 + 1 + read-only + + + 0 + No underflow + #0 + + + 1 + Underflow + #1 + + + + + ORU + Output Register Underflow + 2 + 1 + read-only + + + 0 + No underflow + #0 + + + 1 + Underflow + #1 + + + + + ERRI + Error Interrupt + 3 + 1 + read-only + + + 0 + No underflow + #0 + + + 1 + Underflow + #1 + + + + + SLP + Sleep + 4 + 1 + read-only + + + 0 + Normal mode + #0 + + + 1 + Sleep (low-power) mode + #1 + + + + + OREG_LVL + Output Register Level + 8 + 8 + read-only + + + 0 + No words (empty) + #0 + + + 1 + One word (valid) + #1 + + + + + OREG_SIZE + Output Register Size + 16 + 8 + read-only + + + 1 + One word (this value is fixed) + #1 + + + + + + + ER + RNGA Entropy Register + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + EXT_ENT + External Entropy + 0 + 32 + write-only + + + + + OR + RNGA Output Register + 0xC + 32 + read-only + 0 + 0xFFFFFFFF + + + RANDOUT + Random Output + 0 + 32 + read-only + + + 0 + Invalid data (if you read this field when it is 0 and SR[OREG_LVL] is 0, RNGA then writes 1 to SR[ERRI], SR[ORU], and SR[LRS]; when the error interrupt is not masked (CR[INTM]=0), RNGA also asserts an error interrupt request to the interrupt controller). + #0 + + + + + + + + + SPI0 + Serial Peripheral Interface + SPI + SPI0_ + 0x4002C000 + + 0 + 0x8C + registers + + + SPI0 + 26 + + + + MCR + Module Configuration Register + 0 + 32 + read-write + 0x4001 + 0xFFFFFFFF + + + HALT + Halt + 0 + 1 + read-write + + + 0 + Start transfers. + #0 + + + 1 + Stop transfers. + #1 + + + + + SMPL_PT + Sample Point + 8 + 2 + read-write + + + 00 + 0 protocol clock cycles between SCK edge and SIN sample + #00 + + + 01 + 1 protocol clock cycle between SCK edge and SIN sample + #01 + + + 10 + 2 protocol clock cycles between SCK edge and SIN sample + #10 + + + + + CLR_RXF + Flushes the RX FIFO + 10 + 1 + write-only + + + 0 + Do not clear the RX FIFO counter. + #0 + + + 1 + Clear the RX FIFO counter. + #1 + + + + + CLR_TXF + Clear TX FIFO + 11 + 1 + write-only + + + 0 + Do not clear the TX FIFO counter. + #0 + + + 1 + Clear the TX FIFO counter. + #1 + + + + + DIS_RXF + Disable Receive FIFO + 12 + 1 + read-write + + + 0 + RX FIFO is enabled. + #0 + + + 1 + RX FIFO is disabled. + #1 + + + + + DIS_TXF + Disable Transmit FIFO + 13 + 1 + read-write + + + 0 + TX FIFO is enabled. + #0 + + + 1 + TX FIFO is disabled. + #1 + + + + + MDIS + Module Disable + 14 + 1 + read-write + + + 0 + Enables the module clocks. + #0 + + + 1 + Allows external logic to disable the module clocks. + #1 + + + + + DOZE + Doze Enable + 15 + 1 + read-write + + + 0 + Doze mode has no effect on the module. + #0 + + + 1 + Doze mode disables the module. + #1 + + + + + PCSIS + Peripheral Chip Select x Inactive State + 16 + 6 + read-write + + + 0 + The inactive state of PCSx is low. + #0 + + + 1 + The inactive state of PCSx is high. + #1 + + + + + ROOE + Receive FIFO Overflow Overwrite Enable + 24 + 1 + read-write + + + 0 + Incoming data is ignored. + #0 + + + 1 + Incoming data is shifted into the shift register. + #1 + + + + + PCSSE + Peripheral Chip Select Strobe Enable + 25 + 1 + read-write + + + 0 + PCS5/ PCSS is used as the Peripheral Chip Select[5] signal. + #0 + + + 1 + PCS5/ PCSS is used as an active-low PCS Strobe signal. + #1 + + + + + MTFE + Modified Timing Format Enable + 26 + 1 + read-write + + + 0 + Modified SPI transfer format disabled. + #0 + + + 1 + Modified SPI transfer format enabled. + #1 + + + + + FRZ + Freeze + 27 + 1 + read-write + + + 0 + Do not halt serial transfers in Debug mode. + #0 + + + 1 + Halt serial transfers in Debug mode. + #1 + + + + + DCONF + SPI Configuration. + 28 + 2 + read-only + + + 00 + SPI + #00 + + + + + CONT_SCKE + Continuous SCK Enable + 30 + 1 + read-write + + + 0 + Continuous SCK disabled. + #0 + + + 1 + Continuous SCK enabled. + #1 + + + + + MSTR + Master/Slave Mode Select + 31 + 1 + read-write + + + 0 + Enables Slave mode + #0 + + + 1 + Enables Master mode + #1 + + + + + + + TCR + Transfer Count Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + SPI_TCNT + SPI Transfer Counter + 16 + 16 + read-write + + + + + 2 + 0x4 + 0,1 + CTAR%s + Clock and Transfer Attributes Register (In Master Mode) + SPI0 + 0xC + 32 + read-write + 0x78000000 + 0xFFFFFFFF + + + BR + Baud Rate Scaler + 0 + 4 + read-write + + + DT + Delay After Transfer Scaler + 4 + 4 + read-write + + + ASC + After SCK Delay Scaler + 8 + 4 + read-write + + + CSSCK + PCS to SCK Delay Scaler + 12 + 4 + read-write + + + PBR + Baud Rate Prescaler + 16 + 2 + read-write + + + 00 + Baud Rate Prescaler value is 2. + #00 + + + 01 + Baud Rate Prescaler value is 3. + #01 + + + 10 + Baud Rate Prescaler value is 5. + #10 + + + 11 + Baud Rate Prescaler value is 7. + #11 + + + + + PDT + Delay after Transfer Prescaler + 18 + 2 + read-write + + + 00 + Delay after Transfer Prescaler value is 1. + #00 + + + 01 + Delay after Transfer Prescaler value is 3. + #01 + + + 10 + Delay after Transfer Prescaler value is 5. + #10 + + + 11 + Delay after Transfer Prescaler value is 7. + #11 + + + + + PASC + After SCK Delay Prescaler + 20 + 2 + read-write + + + 00 + Delay after Transfer Prescaler value is 1. + #00 + + + 01 + Delay after Transfer Prescaler value is 3. + #01 + + + 10 + Delay after Transfer Prescaler value is 5. + #10 + + + 11 + Delay after Transfer Prescaler value is 7. + #11 + + + + + PCSSCK + PCS to SCK Delay Prescaler + 22 + 2 + read-write + + + 00 + PCS to SCK Prescaler value is 1. + #00 + + + 01 + PCS to SCK Prescaler value is 3. + #01 + + + 10 + PCS to SCK Prescaler value is 5. + #10 + + + 11 + PCS to SCK Prescaler value is 7. + #11 + + + + + LSBFE + LSB First + 24 + 1 + read-write + + + 0 + Data is transferred MSB first. + #0 + + + 1 + Data is transferred LSB first. + #1 + + + + + CPHA + Clock Phase + 25 + 1 + read-write + + + 0 + Data is captured on the leading edge of SCK and changed on the following edge. + #0 + + + 1 + Data is changed on the leading edge of SCK and captured on the following edge. + #1 + + + + + CPOL + Clock Polarity + 26 + 1 + read-write + + + 0 + The inactive state value of SCK is low. + #0 + + + 1 + The inactive state value of SCK is high. + #1 + + + + + FMSZ + Frame Size + 27 + 4 + read-write + + + DBR + Double Baud Rate + 31 + 1 + read-write + + + 0 + The baud rate is computed normally with a 50/50 duty cycle. + #0 + + + 1 + The baud rate is doubled with the duty cycle depending on the Baud Rate Prescaler. + #1 + + + + + + + CTAR_SLAVE + Clock and Transfer Attributes Register (In Slave Mode) + SPI0 + 0xC + 32 + read-write + 0x78000000 + 0xFFFFFFFF + + + CPHA + Clock Phase + 25 + 1 + read-write + + + 0 + Data is captured on the leading edge of SCK and changed on the following edge. + #0 + + + 1 + Data is changed on the leading edge of SCK and captured on the following edge. + #1 + + + + + CPOL + Clock Polarity + 26 + 1 + read-write + + + 0 + The inactive state value of SCK is low. + #0 + + + 1 + The inactive state value of SCK is high. + #1 + + + + + FMSZ + Frame Size + 27 + 5 + read-write + + + + + SR + Status Register + 0x2C + 32 + read-write + 0x2000000 + 0xFFFFFFFF + + + POPNXTPTR + Pop Next Pointer + 0 + 4 + read-only + + + RXCTR + RX FIFO Counter + 4 + 4 + read-only + + + TXNXTPTR + Transmit Next Pointer + 8 + 4 + read-only + + + TXCTR + TX FIFO Counter + 12 + 4 + read-only + + + RFDF + Receive FIFO Drain Flag + 17 + 1 + read-write + + + 0 + RX FIFO is empty. + #0 + + + 1 + RX FIFO is not empty. + #1 + + + + + RFOF + Receive FIFO Overflow Flag + 19 + 1 + read-write + + + 0 + No Rx FIFO overflow. + #0 + + + 1 + Rx FIFO overflow has occurred. + #1 + + + + + TFFF + Transmit FIFO Fill Flag + 25 + 1 + read-write + + + 0 + TX FIFO is full. + #0 + + + 1 + TX FIFO is not full. + #1 + + + + + TFUF + Transmit FIFO Underflow Flag + 27 + 1 + read-write + + + 0 + No TX FIFO underflow. + #0 + + + 1 + TX FIFO underflow has occurred. + #1 + + + + + EOQF + End of Queue Flag + 28 + 1 + read-write + + + 0 + EOQ is not set in the executing command. + #0 + + + 1 + EOQ is set in the executing SPI command. + #1 + + + + + TXRXS + TX and RX Status + 30 + 1 + read-write + + + 0 + Transmit and receive operations are disabled (The module is in Stopped state). + #0 + + + 1 + Transmit and receive operations are enabled (The module is in Running state). + #1 + + + + + TCF + Transfer Complete Flag + 31 + 1 + read-write + + + 0 + Transfer not complete. + #0 + + + 1 + Transfer complete. + #1 + + + + + + + RSER + DMA/Interrupt Request Select and Enable Register + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + RFDF_DIRS + Receive FIFO Drain DMA or Interrupt Request Select + 16 + 1 + read-write + + + 0 + Interrupt request. + #0 + + + 1 + DMA request. + #1 + + + + + RFDF_RE + Receive FIFO Drain Request Enable + 17 + 1 + read-write + + + 0 + RFDF interrupt or DMA requests are disabled. + #0 + + + 1 + RFDF interrupt or DMA requests are enabled. + #1 + + + + + RFOF_RE + Receive FIFO Overflow Request Enable + 19 + 1 + read-write + + + 0 + RFOF interrupt requests are disabled. + #0 + + + 1 + RFOF interrupt requests are enabled. + #1 + + + + + TFFF_DIRS + Transmit FIFO Fill DMA or Interrupt Request Select + 24 + 1 + read-write + + + 0 + TFFF flag generates interrupt requests. + #0 + + + 1 + TFFF flag generates DMA requests. + #1 + + + + + TFFF_RE + Transmit FIFO Fill Request Enable + 25 + 1 + read-write + + + 0 + TFFF interrupts or DMA requests are disabled. + #0 + + + 1 + TFFF interrupts or DMA requests are enabled. + #1 + + + + + TFUF_RE + Transmit FIFO Underflow Request Enable + 27 + 1 + read-write + + + 0 + TFUF interrupt requests are disabled. + #0 + + + 1 + TFUF interrupt requests are enabled. + #1 + + + + + EOQF_RE + Finished Request Enable + 28 + 1 + read-write + + + 0 + EOQF interrupt requests are disabled. + #0 + + + 1 + EOQF interrupt requests are enabled. + #1 + + + + + TCF_RE + Transmission Complete Request Enable + 31 + 1 + read-write + + + 0 + TCF interrupt requests are disabled. + #0 + + + 1 + TCF interrupt requests are enabled. + #1 + + + + + + + PUSHR + PUSH TX FIFO Register In Master Mode + SPI0 + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 16 + read-write + + + PCS + Select which PCS signals are to be asserted for the transfer + 16 + 6 + read-write + + + 0 + Negate the PCS[x] signal. + #0 + + + 1 + Assert the PCS[x] signal. + #1 + + + + + CTCNT + Clear Transfer Counter + 26 + 1 + read-write + + + 0 + Do not clear the TCR[TCNT] field. + #0 + + + 1 + Clear the TCR[TCNT] field. + #1 + + + + + EOQ + End Of Queue + 27 + 1 + read-write + + + 0 + The SPI data is not the last data to transfer. + #0 + + + 1 + The SPI data is the last data to transfer. + #1 + + + + + CTAS + Clock and Transfer Attributes Select + 28 + 3 + read-write + + + 000 + CTAR0 + #000 + + + 001 + CTAR1 + #001 + + + + + CONT + Continuous Peripheral Chip Select Enable + 31 + 1 + read-write + + + 0 + Return PCSn signals to their inactive state between transfers. + #0 + + + 1 + Keep PCSn signals asserted between transfers. + #1 + + + + + + + PUSHR_SLAVE + PUSH TX FIFO Register In Slave Mode + SPI0 + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 32 + read-write + + + + + POPR + POP RX FIFO Register + 0x38 + 32 + read-only + 0 + 0xFFFFFFFF + + + RXDATA + Received Data + 0 + 32 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + TXFR%s + Transmit FIFO Registers + 0x3C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 16 + read-only + + + TXCMD_TXDATA + Transmit Command or Transmit Data + 16 + 16 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + RXFR%s + Receive FIFO Registers + 0x7C + 32 + read-only + 0 + 0xFFFFFFFF + + + RXDATA + Receive Data + 0 + 32 + read-only + + + + + + + SPI1 + Serial Peripheral Interface + SPI + SPI1_ + 0x4002D000 + + 0 + 0x8C + registers + + + SPI1 + 27 + + + + MCR + Module Configuration Register + 0 + 32 + read-write + 0x4001 + 0xFFFFFFFF + + + HALT + Halt + 0 + 1 + read-write + + + 0 + Start transfers. + #0 + + + 1 + Stop transfers. + #1 + + + + + SMPL_PT + Sample Point + 8 + 2 + read-write + + + 00 + 0 protocol clock cycles between SCK edge and SIN sample + #00 + + + 01 + 1 protocol clock cycle between SCK edge and SIN sample + #01 + + + 10 + 2 protocol clock cycles between SCK edge and SIN sample + #10 + + + + + CLR_RXF + Flushes the RX FIFO + 10 + 1 + write-only + + + 0 + Do not clear the RX FIFO counter. + #0 + + + 1 + Clear the RX FIFO counter. + #1 + + + + + CLR_TXF + Clear TX FIFO + 11 + 1 + write-only + + + 0 + Do not clear the TX FIFO counter. + #0 + + + 1 + Clear the TX FIFO counter. + #1 + + + + + DIS_RXF + Disable Receive FIFO + 12 + 1 + read-write + + + 0 + RX FIFO is enabled. + #0 + + + 1 + RX FIFO is disabled. + #1 + + + + + DIS_TXF + Disable Transmit FIFO + 13 + 1 + read-write + + + 0 + TX FIFO is enabled. + #0 + + + 1 + TX FIFO is disabled. + #1 + + + + + MDIS + Module Disable + 14 + 1 + read-write + + + 0 + Enables the module clocks. + #0 + + + 1 + Allows external logic to disable the module clocks. + #1 + + + + + DOZE + Doze Enable + 15 + 1 + read-write + + + 0 + Doze mode has no effect on the module. + #0 + + + 1 + Doze mode disables the module. + #1 + + + + + PCSIS + Peripheral Chip Select x Inactive State + 16 + 6 + read-write + + + 0 + The inactive state of PCSx is low. + #0 + + + 1 + The inactive state of PCSx is high. + #1 + + + + + ROOE + Receive FIFO Overflow Overwrite Enable + 24 + 1 + read-write + + + 0 + Incoming data is ignored. + #0 + + + 1 + Incoming data is shifted into the shift register. + #1 + + + + + PCSSE + Peripheral Chip Select Strobe Enable + 25 + 1 + read-write + + + 0 + PCS5/ PCSS is used as the Peripheral Chip Select[5] signal. + #0 + + + 1 + PCS5/ PCSS is used as an active-low PCS Strobe signal. + #1 + + + + + MTFE + Modified Timing Format Enable + 26 + 1 + read-write + + + 0 + Modified SPI transfer format disabled. + #0 + + + 1 + Modified SPI transfer format enabled. + #1 + + + + + FRZ + Freeze + 27 + 1 + read-write + + + 0 + Do not halt serial transfers in Debug mode. + #0 + + + 1 + Halt serial transfers in Debug mode. + #1 + + + + + DCONF + SPI Configuration. + 28 + 2 + read-only + + + 00 + SPI + #00 + + + + + CONT_SCKE + Continuous SCK Enable + 30 + 1 + read-write + + + 0 + Continuous SCK disabled. + #0 + + + 1 + Continuous SCK enabled. + #1 + + + + + MSTR + Master/Slave Mode Select + 31 + 1 + read-write + + + 0 + Enables Slave mode + #0 + + + 1 + Enables Master mode + #1 + + + + + + + TCR + Transfer Count Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + SPI_TCNT + SPI Transfer Counter + 16 + 16 + read-write + + + + + 2 + 0x4 + 0,1 + CTAR%s + Clock and Transfer Attributes Register (In Master Mode) + SPI1 + 0xC + 32 + read-write + 0x78000000 + 0xFFFFFFFF + + + BR + Baud Rate Scaler + 0 + 4 + read-write + + + DT + Delay After Transfer Scaler + 4 + 4 + read-write + + + ASC + After SCK Delay Scaler + 8 + 4 + read-write + + + CSSCK + PCS to SCK Delay Scaler + 12 + 4 + read-write + + + PBR + Baud Rate Prescaler + 16 + 2 + read-write + + + 00 + Baud Rate Prescaler value is 2. + #00 + + + 01 + Baud Rate Prescaler value is 3. + #01 + + + 10 + Baud Rate Prescaler value is 5. + #10 + + + 11 + Baud Rate Prescaler value is 7. + #11 + + + + + PDT + Delay after Transfer Prescaler + 18 + 2 + read-write + + + 00 + Delay after Transfer Prescaler value is 1. + #00 + + + 01 + Delay after Transfer Prescaler value is 3. + #01 + + + 10 + Delay after Transfer Prescaler value is 5. + #10 + + + 11 + Delay after Transfer Prescaler value is 7. + #11 + + + + + PASC + After SCK Delay Prescaler + 20 + 2 + read-write + + + 00 + Delay after Transfer Prescaler value is 1. + #00 + + + 01 + Delay after Transfer Prescaler value is 3. + #01 + + + 10 + Delay after Transfer Prescaler value is 5. + #10 + + + 11 + Delay after Transfer Prescaler value is 7. + #11 + + + + + PCSSCK + PCS to SCK Delay Prescaler + 22 + 2 + read-write + + + 00 + PCS to SCK Prescaler value is 1. + #00 + + + 01 + PCS to SCK Prescaler value is 3. + #01 + + + 10 + PCS to SCK Prescaler value is 5. + #10 + + + 11 + PCS to SCK Prescaler value is 7. + #11 + + + + + LSBFE + LSB First + 24 + 1 + read-write + + + 0 + Data is transferred MSB first. + #0 + + + 1 + Data is transferred LSB first. + #1 + + + + + CPHA + Clock Phase + 25 + 1 + read-write + + + 0 + Data is captured on the leading edge of SCK and changed on the following edge. + #0 + + + 1 + Data is changed on the leading edge of SCK and captured on the following edge. + #1 + + + + + CPOL + Clock Polarity + 26 + 1 + read-write + + + 0 + The inactive state value of SCK is low. + #0 + + + 1 + The inactive state value of SCK is high. + #1 + + + + + FMSZ + Frame Size + 27 + 4 + read-write + + + DBR + Double Baud Rate + 31 + 1 + read-write + + + 0 + The baud rate is computed normally with a 50/50 duty cycle. + #0 + + + 1 + The baud rate is doubled with the duty cycle depending on the Baud Rate Prescaler. + #1 + + + + + + + CTAR_SLAVE + Clock and Transfer Attributes Register (In Slave Mode) + SPI1 + 0xC + 32 + read-write + 0x78000000 + 0xFFFFFFFF + + + CPHA + Clock Phase + 25 + 1 + read-write + + + 0 + Data is captured on the leading edge of SCK and changed on the following edge. + #0 + + + 1 + Data is changed on the leading edge of SCK and captured on the following edge. + #1 + + + + + CPOL + Clock Polarity + 26 + 1 + read-write + + + 0 + The inactive state value of SCK is low. + #0 + + + 1 + The inactive state value of SCK is high. + #1 + + + + + FMSZ + Frame Size + 27 + 5 + read-write + + + + + SR + Status Register + 0x2C + 32 + read-write + 0x2000000 + 0xFFFFFFFF + + + POPNXTPTR + Pop Next Pointer + 0 + 4 + read-only + + + RXCTR + RX FIFO Counter + 4 + 4 + read-only + + + TXNXTPTR + Transmit Next Pointer + 8 + 4 + read-only + + + TXCTR + TX FIFO Counter + 12 + 4 + read-only + + + RFDF + Receive FIFO Drain Flag + 17 + 1 + read-write + + + 0 + RX FIFO is empty. + #0 + + + 1 + RX FIFO is not empty. + #1 + + + + + RFOF + Receive FIFO Overflow Flag + 19 + 1 + read-write + + + 0 + No Rx FIFO overflow. + #0 + + + 1 + Rx FIFO overflow has occurred. + #1 + + + + + TFFF + Transmit FIFO Fill Flag + 25 + 1 + read-write + + + 0 + TX FIFO is full. + #0 + + + 1 + TX FIFO is not full. + #1 + + + + + TFUF + Transmit FIFO Underflow Flag + 27 + 1 + read-write + + + 0 + No TX FIFO underflow. + #0 + + + 1 + TX FIFO underflow has occurred. + #1 + + + + + EOQF + End of Queue Flag + 28 + 1 + read-write + + + 0 + EOQ is not set in the executing command. + #0 + + + 1 + EOQ is set in the executing SPI command. + #1 + + + + + TXRXS + TX and RX Status + 30 + 1 + read-write + + + 0 + Transmit and receive operations are disabled (The module is in Stopped state). + #0 + + + 1 + Transmit and receive operations are enabled (The module is in Running state). + #1 + + + + + TCF + Transfer Complete Flag + 31 + 1 + read-write + + + 0 + Transfer not complete. + #0 + + + 1 + Transfer complete. + #1 + + + + + + + RSER + DMA/Interrupt Request Select and Enable Register + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + RFDF_DIRS + Receive FIFO Drain DMA or Interrupt Request Select + 16 + 1 + read-write + + + 0 + Interrupt request. + #0 + + + 1 + DMA request. + #1 + + + + + RFDF_RE + Receive FIFO Drain Request Enable + 17 + 1 + read-write + + + 0 + RFDF interrupt or DMA requests are disabled. + #0 + + + 1 + RFDF interrupt or DMA requests are enabled. + #1 + + + + + RFOF_RE + Receive FIFO Overflow Request Enable + 19 + 1 + read-write + + + 0 + RFOF interrupt requests are disabled. + #0 + + + 1 + RFOF interrupt requests are enabled. + #1 + + + + + TFFF_DIRS + Transmit FIFO Fill DMA or Interrupt Request Select + 24 + 1 + read-write + + + 0 + TFFF flag generates interrupt requests. + #0 + + + 1 + TFFF flag generates DMA requests. + #1 + + + + + TFFF_RE + Transmit FIFO Fill Request Enable + 25 + 1 + read-write + + + 0 + TFFF interrupts or DMA requests are disabled. + #0 + + + 1 + TFFF interrupts or DMA requests are enabled. + #1 + + + + + TFUF_RE + Transmit FIFO Underflow Request Enable + 27 + 1 + read-write + + + 0 + TFUF interrupt requests are disabled. + #0 + + + 1 + TFUF interrupt requests are enabled. + #1 + + + + + EOQF_RE + Finished Request Enable + 28 + 1 + read-write + + + 0 + EOQF interrupt requests are disabled. + #0 + + + 1 + EOQF interrupt requests are enabled. + #1 + + + + + TCF_RE + Transmission Complete Request Enable + 31 + 1 + read-write + + + 0 + TCF interrupt requests are disabled. + #0 + + + 1 + TCF interrupt requests are enabled. + #1 + + + + + + + PUSHR + PUSH TX FIFO Register In Master Mode + SPI1 + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 16 + read-write + + + PCS + Select which PCS signals are to be asserted for the transfer + 16 + 6 + read-write + + + 0 + Negate the PCS[x] signal. + #0 + + + 1 + Assert the PCS[x] signal. + #1 + + + + + CTCNT + Clear Transfer Counter + 26 + 1 + read-write + + + 0 + Do not clear the TCR[TCNT] field. + #0 + + + 1 + Clear the TCR[TCNT] field. + #1 + + + + + EOQ + End Of Queue + 27 + 1 + read-write + + + 0 + The SPI data is not the last data to transfer. + #0 + + + 1 + The SPI data is the last data to transfer. + #1 + + + + + CTAS + Clock and Transfer Attributes Select + 28 + 3 + read-write + + + 000 + CTAR0 + #000 + + + 001 + CTAR1 + #001 + + + + + CONT + Continuous Peripheral Chip Select Enable + 31 + 1 + read-write + + + 0 + Return PCSn signals to their inactive state between transfers. + #0 + + + 1 + Keep PCSn signals asserted between transfers. + #1 + + + + + + + PUSHR_SLAVE + PUSH TX FIFO Register In Slave Mode + SPI1 + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 32 + read-write + + + + + POPR + POP RX FIFO Register + 0x38 + 32 + read-only + 0 + 0xFFFFFFFF + + + RXDATA + Received Data + 0 + 32 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + TXFR%s + Transmit FIFO Registers + 0x3C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 16 + read-only + + + TXCMD_TXDATA + Transmit Command or Transmit Data + 16 + 16 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + RXFR%s + Receive FIFO Registers + 0x7C + 32 + read-only + 0 + 0xFFFFFFFF + + + RXDATA + Receive Data + 0 + 32 + read-only + + + + + + + SPI2 + Serial Peripheral Interface + SPI + SPI2_ + 0x400AC000 + + 0 + 0x8C + registers + + + SPI2 + 65 + + + + MCR + Module Configuration Register + 0 + 32 + read-write + 0x4001 + 0xFFFFFFFF + + + HALT + Halt + 0 + 1 + read-write + + + 0 + Start transfers. + #0 + + + 1 + Stop transfers. + #1 + + + + + SMPL_PT + Sample Point + 8 + 2 + read-write + + + 00 + 0 protocol clock cycles between SCK edge and SIN sample + #00 + + + 01 + 1 protocol clock cycle between SCK edge and SIN sample + #01 + + + 10 + 2 protocol clock cycles between SCK edge and SIN sample + #10 + + + + + CLR_RXF + Flushes the RX FIFO + 10 + 1 + write-only + + + 0 + Do not clear the RX FIFO counter. + #0 + + + 1 + Clear the RX FIFO counter. + #1 + + + + + CLR_TXF + Clear TX FIFO + 11 + 1 + write-only + + + 0 + Do not clear the TX FIFO counter. + #0 + + + 1 + Clear the TX FIFO counter. + #1 + + + + + DIS_RXF + Disable Receive FIFO + 12 + 1 + read-write + + + 0 + RX FIFO is enabled. + #0 + + + 1 + RX FIFO is disabled. + #1 + + + + + DIS_TXF + Disable Transmit FIFO + 13 + 1 + read-write + + + 0 + TX FIFO is enabled. + #0 + + + 1 + TX FIFO is disabled. + #1 + + + + + MDIS + Module Disable + 14 + 1 + read-write + + + 0 + Enables the module clocks. + #0 + + + 1 + Allows external logic to disable the module clocks. + #1 + + + + + DOZE + Doze Enable + 15 + 1 + read-write + + + 0 + Doze mode has no effect on the module. + #0 + + + 1 + Doze mode disables the module. + #1 + + + + + PCSIS + Peripheral Chip Select x Inactive State + 16 + 6 + read-write + + + 0 + The inactive state of PCSx is low. + #0 + + + 1 + The inactive state of PCSx is high. + #1 + + + + + ROOE + Receive FIFO Overflow Overwrite Enable + 24 + 1 + read-write + + + 0 + Incoming data is ignored. + #0 + + + 1 + Incoming data is shifted into the shift register. + #1 + + + + + PCSSE + Peripheral Chip Select Strobe Enable + 25 + 1 + read-write + + + 0 + PCS5/ PCSS is used as the Peripheral Chip Select[5] signal. + #0 + + + 1 + PCS5/ PCSS is used as an active-low PCS Strobe signal. + #1 + + + + + MTFE + Modified Timing Format Enable + 26 + 1 + read-write + + + 0 + Modified SPI transfer format disabled. + #0 + + + 1 + Modified SPI transfer format enabled. + #1 + + + + + FRZ + Freeze + 27 + 1 + read-write + + + 0 + Do not halt serial transfers in Debug mode. + #0 + + + 1 + Halt serial transfers in Debug mode. + #1 + + + + + DCONF + SPI Configuration. + 28 + 2 + read-only + + + 00 + SPI + #00 + + + + + CONT_SCKE + Continuous SCK Enable + 30 + 1 + read-write + + + 0 + Continuous SCK disabled. + #0 + + + 1 + Continuous SCK enabled. + #1 + + + + + MSTR + Master/Slave Mode Select + 31 + 1 + read-write + + + 0 + Enables Slave mode + #0 + + + 1 + Enables Master mode + #1 + + + + + + + TCR + Transfer Count Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + SPI_TCNT + SPI Transfer Counter + 16 + 16 + read-write + + + + + 2 + 0x4 + 0,1 + CTAR%s + Clock and Transfer Attributes Register (In Master Mode) + SPI2 + 0xC + 32 + read-write + 0x78000000 + 0xFFFFFFFF + + + BR + Baud Rate Scaler + 0 + 4 + read-write + + + DT + Delay After Transfer Scaler + 4 + 4 + read-write + + + ASC + After SCK Delay Scaler + 8 + 4 + read-write + + + CSSCK + PCS to SCK Delay Scaler + 12 + 4 + read-write + + + PBR + Baud Rate Prescaler + 16 + 2 + read-write + + + 00 + Baud Rate Prescaler value is 2. + #00 + + + 01 + Baud Rate Prescaler value is 3. + #01 + + + 10 + Baud Rate Prescaler value is 5. + #10 + + + 11 + Baud Rate Prescaler value is 7. + #11 + + + + + PDT + Delay after Transfer Prescaler + 18 + 2 + read-write + + + 00 + Delay after Transfer Prescaler value is 1. + #00 + + + 01 + Delay after Transfer Prescaler value is 3. + #01 + + + 10 + Delay after Transfer Prescaler value is 5. + #10 + + + 11 + Delay after Transfer Prescaler value is 7. + #11 + + + + + PASC + After SCK Delay Prescaler + 20 + 2 + read-write + + + 00 + Delay after Transfer Prescaler value is 1. + #00 + + + 01 + Delay after Transfer Prescaler value is 3. + #01 + + + 10 + Delay after Transfer Prescaler value is 5. + #10 + + + 11 + Delay after Transfer Prescaler value is 7. + #11 + + + + + PCSSCK + PCS to SCK Delay Prescaler + 22 + 2 + read-write + + + 00 + PCS to SCK Prescaler value is 1. + #00 + + + 01 + PCS to SCK Prescaler value is 3. + #01 + + + 10 + PCS to SCK Prescaler value is 5. + #10 + + + 11 + PCS to SCK Prescaler value is 7. + #11 + + + + + LSBFE + LSB First + 24 + 1 + read-write + + + 0 + Data is transferred MSB first. + #0 + + + 1 + Data is transferred LSB first. + #1 + + + + + CPHA + Clock Phase + 25 + 1 + read-write + + + 0 + Data is captured on the leading edge of SCK and changed on the following edge. + #0 + + + 1 + Data is changed on the leading edge of SCK and captured on the following edge. + #1 + + + + + CPOL + Clock Polarity + 26 + 1 + read-write + + + 0 + The inactive state value of SCK is low. + #0 + + + 1 + The inactive state value of SCK is high. + #1 + + + + + FMSZ + Frame Size + 27 + 4 + read-write + + + DBR + Double Baud Rate + 31 + 1 + read-write + + + 0 + The baud rate is computed normally with a 50/50 duty cycle. + #0 + + + 1 + The baud rate is doubled with the duty cycle depending on the Baud Rate Prescaler. + #1 + + + + + + + CTAR_SLAVE + Clock and Transfer Attributes Register (In Slave Mode) + SPI2 + 0xC + 32 + read-write + 0x78000000 + 0xFFFFFFFF + + + CPHA + Clock Phase + 25 + 1 + read-write + + + 0 + Data is captured on the leading edge of SCK and changed on the following edge. + #0 + + + 1 + Data is changed on the leading edge of SCK and captured on the following edge. + #1 + + + + + CPOL + Clock Polarity + 26 + 1 + read-write + + + 0 + The inactive state value of SCK is low. + #0 + + + 1 + The inactive state value of SCK is high. + #1 + + + + + FMSZ + Frame Size + 27 + 5 + read-write + + + + + SR + Status Register + 0x2C + 32 + read-write + 0x2000000 + 0xFFFFFFFF + + + POPNXTPTR + Pop Next Pointer + 0 + 4 + read-only + + + RXCTR + RX FIFO Counter + 4 + 4 + read-only + + + TXNXTPTR + Transmit Next Pointer + 8 + 4 + read-only + + + TXCTR + TX FIFO Counter + 12 + 4 + read-only + + + RFDF + Receive FIFO Drain Flag + 17 + 1 + read-write + + + 0 + RX FIFO is empty. + #0 + + + 1 + RX FIFO is not empty. + #1 + + + + + RFOF + Receive FIFO Overflow Flag + 19 + 1 + read-write + + + 0 + No Rx FIFO overflow. + #0 + + + 1 + Rx FIFO overflow has occurred. + #1 + + + + + TFFF + Transmit FIFO Fill Flag + 25 + 1 + read-write + + + 0 + TX FIFO is full. + #0 + + + 1 + TX FIFO is not full. + #1 + + + + + TFUF + Transmit FIFO Underflow Flag + 27 + 1 + read-write + + + 0 + No TX FIFO underflow. + #0 + + + 1 + TX FIFO underflow has occurred. + #1 + + + + + EOQF + End of Queue Flag + 28 + 1 + read-write + + + 0 + EOQ is not set in the executing command. + #0 + + + 1 + EOQ is set in the executing SPI command. + #1 + + + + + TXRXS + TX and RX Status + 30 + 1 + read-write + + + 0 + Transmit and receive operations are disabled (The module is in Stopped state). + #0 + + + 1 + Transmit and receive operations are enabled (The module is in Running state). + #1 + + + + + TCF + Transfer Complete Flag + 31 + 1 + read-write + + + 0 + Transfer not complete. + #0 + + + 1 + Transfer complete. + #1 + + + + + + + RSER + DMA/Interrupt Request Select and Enable Register + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + RFDF_DIRS + Receive FIFO Drain DMA or Interrupt Request Select + 16 + 1 + read-write + + + 0 + Interrupt request. + #0 + + + 1 + DMA request. + #1 + + + + + RFDF_RE + Receive FIFO Drain Request Enable + 17 + 1 + read-write + + + 0 + RFDF interrupt or DMA requests are disabled. + #0 + + + 1 + RFDF interrupt or DMA requests are enabled. + #1 + + + + + RFOF_RE + Receive FIFO Overflow Request Enable + 19 + 1 + read-write + + + 0 + RFOF interrupt requests are disabled. + #0 + + + 1 + RFOF interrupt requests are enabled. + #1 + + + + + TFFF_DIRS + Transmit FIFO Fill DMA or Interrupt Request Select + 24 + 1 + read-write + + + 0 + TFFF flag generates interrupt requests. + #0 + + + 1 + TFFF flag generates DMA requests. + #1 + + + + + TFFF_RE + Transmit FIFO Fill Request Enable + 25 + 1 + read-write + + + 0 + TFFF interrupts or DMA requests are disabled. + #0 + + + 1 + TFFF interrupts or DMA requests are enabled. + #1 + + + + + TFUF_RE + Transmit FIFO Underflow Request Enable + 27 + 1 + read-write + + + 0 + TFUF interrupt requests are disabled. + #0 + + + 1 + TFUF interrupt requests are enabled. + #1 + + + + + EOQF_RE + Finished Request Enable + 28 + 1 + read-write + + + 0 + EOQF interrupt requests are disabled. + #0 + + + 1 + EOQF interrupt requests are enabled. + #1 + + + + + TCF_RE + Transmission Complete Request Enable + 31 + 1 + read-write + + + 0 + TCF interrupt requests are disabled. + #0 + + + 1 + TCF interrupt requests are enabled. + #1 + + + + + + + PUSHR + PUSH TX FIFO Register In Master Mode + SPI2 + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 16 + read-write + + + PCS + Select which PCS signals are to be asserted for the transfer + 16 + 6 + read-write + + + 0 + Negate the PCS[x] signal. + #0 + + + 1 + Assert the PCS[x] signal. + #1 + + + + + CTCNT + Clear Transfer Counter + 26 + 1 + read-write + + + 0 + Do not clear the TCR[TCNT] field. + #0 + + + 1 + Clear the TCR[TCNT] field. + #1 + + + + + EOQ + End Of Queue + 27 + 1 + read-write + + + 0 + The SPI data is not the last data to transfer. + #0 + + + 1 + The SPI data is the last data to transfer. + #1 + + + + + CTAS + Clock and Transfer Attributes Select + 28 + 3 + read-write + + + 000 + CTAR0 + #000 + + + 001 + CTAR1 + #001 + + + + + CONT + Continuous Peripheral Chip Select Enable + 31 + 1 + read-write + + + 0 + Return PCSn signals to their inactive state between transfers. + #0 + + + 1 + Keep PCSn signals asserted between transfers. + #1 + + + + + + + PUSHR_SLAVE + PUSH TX FIFO Register In Slave Mode + SPI2 + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 32 + read-write + + + + + POPR + POP RX FIFO Register + 0x38 + 32 + read-only + 0 + 0xFFFFFFFF + + + RXDATA + Received Data + 0 + 32 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + TXFR%s + Transmit FIFO Registers + 0x3C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXDATA + Transmit Data + 0 + 16 + read-only + + + TXCMD_TXDATA + Transmit Command or Transmit Data + 16 + 16 + read-only + + + + + 4 + 0x4 + 0,1,2,3 + RXFR%s + Receive FIFO Registers + 0x7C + 32 + read-only + 0 + 0xFFFFFFFF + + + RXDATA + Receive Data + 0 + 32 + read-only + + + + + + + I2S0 + Inter-IC Sound / Synchronous Audio Interface + I2S0_ + 0x4002F000 + + 0 + 0x108 + registers + + + I2S0_Tx + 28 + + + I2S0_Rx + 29 + + + + TCSR + SAI Transmit Control Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + FRDE + FIFO Request DMA Enable + 0 + 1 + read-write + + + 0 + Disables the DMA request. + #0 + + + 1 + Enables the DMA request. + #1 + + + + + FWDE + FIFO Warning DMA Enable + 1 + 1 + read-write + + + 0 + Disables the DMA request. + #0 + + + 1 + Enables the DMA request. + #1 + + + + + FRIE + FIFO Request Interrupt Enable + 8 + 1 + read-write + + + 0 + Disables the interrupt. + #0 + + + 1 + Enables the interrupt. + #1 + + + + + FWIE + FIFO Warning Interrupt Enable + 9 + 1 + read-write + + + 0 + Disables the interrupt. + #0 + + + 1 + Enables the interrupt. + #1 + + + + + FEIE + FIFO Error Interrupt Enable + 10 + 1 + read-write + + + 0 + Disables the interrupt. + #0 + + + 1 + Enables the interrupt. + #1 + + + + + SEIE + Sync Error Interrupt Enable + 11 + 1 + read-write + + + 0 + Disables interrupt. + #0 + + + 1 + Enables interrupt. + #1 + + + + + WSIE + Word Start Interrupt Enable + 12 + 1 + read-write + + + 0 + Disables interrupt. + #0 + + + 1 + Enables interrupt. + #1 + + + + + FRF + FIFO Request Flag + 16 + 1 + read-only + + + 0 + Transmit FIFO watermark has not been reached. + #0 + + + 1 + Transmit FIFO watermark has been reached. + #1 + + + + + FWF + FIFO Warning Flag + 17 + 1 + read-only + + + 0 + No enabled transmit FIFO is empty. + #0 + + + 1 + Enabled transmit FIFO is empty. + #1 + + + + + FEF + FIFO Error Flag + 18 + 1 + read-write + + + 0 + Transmit underrun not detected. + #0 + + + 1 + Transmit underrun detected. + #1 + + + + + SEF + Sync Error Flag + 19 + 1 + read-write + + + 0 + Sync error not detected. + #0 + + + 1 + Frame sync error detected. + #1 + + + + + WSF + Word Start Flag + 20 + 1 + read-write + + + 0 + Start of word not detected. + #0 + + + 1 + Start of word detected. + #1 + + + + + SR + Software Reset + 24 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + Software reset. + #1 + + + + + FR + FIFO Reset + 25 + 1 + write-only + + + 0 + No effect. + #0 + + + 1 + FIFO reset. + #1 + + + + + BCE + Bit Clock Enable + 28 + 1 + read-write + + + 0 + Transmit bit clock is disabled. + #0 + + + 1 + Transmit bit clock is enabled. + #1 + + + + + DBGE + Debug Enable + 29 + 1 + read-write + + + 0 + Transmitter is disabled in Debug mode, after completing the current frame. + #0 + + + 1 + Transmitter is enabled in Debug mode. + #1 + + + + + STOPE + Stop Enable + 30 + 1 + read-write + + + 0 + Transmitter disabled in Stop mode. + #0 + + + 1 + Transmitter enabled in Stop mode. + #1 + + + + + TE + Transmitter Enable + 31 + 1 + read-write + + + 0 + Transmitter is disabled. + #0 + + + 1 + Transmitter is enabled, or transmitter has been disabled and has not yet reached end of frame. + #1 + + + + + + + TCR1 + SAI Transmit Configuration 1 Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + TFW + Transmit FIFO Watermark + 0 + 3 + read-write + + + + + TCR2 + SAI Transmit Configuration 2 Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DIV + Bit Clock Divide + 0 + 8 + read-write + + + BCD + Bit Clock Direction + 24 + 1 + read-write + + + 0 + Bit clock is generated externally in Slave mode. + #0 + + + 1 + Bit clock is generated internally in Master mode. + #1 + + + + + BCP + Bit Clock Polarity + 25 + 1 + read-write + + + 0 + Bit clock is active high with drive outputs on rising edge and sample inputs on falling edge. + #0 + + + 1 + Bit clock is active low with drive outputs on falling edge and sample inputs on rising edge. + #1 + + + + + MSEL + MCLK Select + 26 + 2 + read-write + + + 00 + Bus Clock selected. + #00 + + + 01 + Master Clock (MCLK) 1 option selected. + #01 + + + 10 + Master Clock (MCLK) 2 option selected. + #10 + + + 11 + Master Clock (MCLK) 3 option selected. + #11 + + + + + BCI + Bit Clock Input + 28 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + Internal logic is clocked as if bit clock was externally generated. + #1 + + + + + BCS + Bit Clock Swap + 29 + 1 + read-write + + + 0 + Use the normal bit clock source. + #0 + + + 1 + Swap the bit clock source. + #1 + + + + + SYNC + Synchronous Mode + 30 + 2 + read-write + + + 00 + Asynchronous mode. + #00 + + + 01 + Synchronous with receiver. + #01 + + + 10 + Synchronous with another SAI transmitter. + #10 + + + 11 + Synchronous with another SAI receiver. + #11 + + + + + + + TCR3 + SAI Transmit Configuration 3 Register + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + WDFL + Word Flag Configuration + 0 + 5 + read-write + + + TCE + Transmit Channel Enable + 16 + 2 + read-write + + + 0 + Transmit data channel N is disabled. + #00 + + + 1 + Transmit data channel N is enabled. + #01 + + + + + + + TCR4 + SAI Transmit Configuration 4 Register + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + FSD + Frame Sync Direction + 0 + 1 + read-write + + + 0 + Frame sync is generated externally in Slave mode. + #0 + + + 1 + Frame sync is generated internally in Master mode. + #1 + + + + + FSP + Frame Sync Polarity + 1 + 1 + read-write + + + 0 + Frame sync is active high. + #0 + + + 1 + Frame sync is active low. + #1 + + + + + FSE + Frame Sync Early + 3 + 1 + read-write + + + 0 + Frame sync asserts with the first bit of the frame. + #0 + + + 1 + Frame sync asserts one bit before the first bit of the frame. + #1 + + + + + MF + MSB First + 4 + 1 + read-write + + + 0 + LSB is transmitted first. + #0 + + + 1 + MSB is transmitted first. + #1 + + + + + SYWD + Sync Width + 8 + 5 + read-write + + + FRSZ + Frame size + 16 + 5 + read-write + + + + + TCR5 + SAI Transmit Configuration 5 Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + FBT + First Bit Shifted + 8 + 5 + read-write + + + W0W + Word 0 Width + 16 + 5 + read-write + + + WNW + Word N Width + 24 + 5 + read-write + + + + + 2 + 0x4 + 0,1 + TDR%s + SAI Transmit Data Register + 0x20 + 32 + write-only + 0 + 0xFFFFFFFF + + + TDR + Transmit Data Register + 0 + 32 + write-only + + + + + 2 + 0x4 + 0,1 + TFR%s + SAI Transmit FIFO Register + 0x40 + 32 + read-only + 0 + 0xFFFFFFFF + + + RFP + Read FIFO Pointer + 0 + 4 + read-only + + + WFP + Write FIFO Pointer + 16 + 4 + read-only + + + + + TMR + SAI Transmit Mask Register + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + TWM + Transmit Word Mask + 0 + 32 + read-write + + + 0 + Word N is enabled. + #0 + + + 1 + Word N is masked. The transmit data pins are tri-stated when masked. + #1 + + + + + + + RCSR + SAI Receive Control Register + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + FRDE + FIFO Request DMA Enable + 0 + 1 + read-write + + + 0 + Disables the DMA request. + #0 + + + 1 + Enables the DMA request. + #1 + + + + + FWDE + FIFO Warning DMA Enable + 1 + 1 + read-write + + + 0 + Disables the DMA request. + #0 + + + 1 + Enables the DMA request. + #1 + + + + + FRIE + FIFO Request Interrupt Enable + 8 + 1 + read-write + + + 0 + Disables the interrupt. + #0 + + + 1 + Enables the interrupt. + #1 + + + + + FWIE + FIFO Warning Interrupt Enable + 9 + 1 + read-write + + + 0 + Disables the interrupt. + #0 + + + 1 + Enables the interrupt. + #1 + + + + + FEIE + FIFO Error Interrupt Enable + 10 + 1 + read-write + + + 0 + Disables the interrupt. + #0 + + + 1 + Enables the interrupt. + #1 + + + + + SEIE + Sync Error Interrupt Enable + 11 + 1 + read-write + + + 0 + Disables interrupt. + #0 + + + 1 + Enables interrupt. + #1 + + + + + WSIE + Word Start Interrupt Enable + 12 + 1 + read-write + + + 0 + Disables interrupt. + #0 + + + 1 + Enables interrupt. + #1 + + + + + FRF + FIFO Request Flag + 16 + 1 + read-only + + + 0 + Receive FIFO watermark not reached. + #0 + + + 1 + Receive FIFO watermark has been reached. + #1 + + + + + FWF + FIFO Warning Flag + 17 + 1 + read-only + + + 0 + No enabled receive FIFO is full. + #0 + + + 1 + Enabled receive FIFO is full. + #1 + + + + + FEF + FIFO Error Flag + 18 + 1 + read-write + + + 0 + Receive overflow not detected. + #0 + + + 1 + Receive overflow detected. + #1 + + + + + SEF + Sync Error Flag + 19 + 1 + read-write + + + 0 + Sync error not detected. + #0 + + + 1 + Frame sync error detected. + #1 + + + + + WSF + Word Start Flag + 20 + 1 + read-write + + + 0 + Start of word not detected. + #0 + + + 1 + Start of word detected. + #1 + + + + + SR + Software Reset + 24 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + Software reset. + #1 + + + + + FR + FIFO Reset + 25 + 1 + write-only + + + 0 + No effect. + #0 + + + 1 + FIFO reset. + #1 + + + + + BCE + Bit Clock Enable + 28 + 1 + read-write + + + 0 + Receive bit clock is disabled. + #0 + + + 1 + Receive bit clock is enabled. + #1 + + + + + DBGE + Debug Enable + 29 + 1 + read-write + + + 0 + Receiver is disabled in Debug mode, after completing the current frame. + #0 + + + 1 + Receiver is enabled in Debug mode. + #1 + + + + + STOPE + Stop Enable + 30 + 1 + read-write + + + 0 + Receiver disabled in Stop mode. + #0 + + + 1 + Receiver enabled in Stop mode. + #1 + + + + + RE + Receiver Enable + 31 + 1 + read-write + + + 0 + Receiver is disabled. + #0 + + + 1 + Receiver is enabled, or receiver has been disabled and has not yet reached end of frame. + #1 + + + + + + + RCR1 + SAI Receive Configuration 1 Register + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + RFW + Receive FIFO Watermark + 0 + 3 + read-write + + + + + RCR2 + SAI Receive Configuration 2 Register + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + DIV + Bit Clock Divide + 0 + 8 + read-write + + + BCD + Bit Clock Direction + 24 + 1 + read-write + + + 0 + Bit clock is generated externally in Slave mode. + #0 + + + 1 + Bit clock is generated internally in Master mode. + #1 + + + + + BCP + Bit Clock Polarity + 25 + 1 + read-write + + + 0 + Bit Clock is active high with drive outputs on rising edge and sample inputs on falling edge. + #0 + + + 1 + Bit Clock is active low with drive outputs on falling edge and sample inputs on rising edge. + #1 + + + + + MSEL + MCLK Select + 26 + 2 + read-write + + + 00 + Bus Clock selected. + #00 + + + 01 + Master Clock (MCLK) 1 option selected. + #01 + + + 10 + Master Clock (MCLK) 2 option selected. + #10 + + + 11 + Master Clock (MCLK) 3 option selected. + #11 + + + + + BCI + Bit Clock Input + 28 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + Internal logic is clocked as if bit clock was externally generated. + #1 + + + + + BCS + Bit Clock Swap + 29 + 1 + read-write + + + 0 + Use the normal bit clock source. + #0 + + + 1 + Swap the bit clock source. + #1 + + + + + SYNC + Synchronous Mode + 30 + 2 + read-write + + + 00 + Asynchronous mode. + #00 + + + 01 + Synchronous with transmitter. + #01 + + + 10 + Synchronous with another SAI receiver. + #10 + + + 11 + Synchronous with another SAI transmitter. + #11 + + + + + + + RCR3 + SAI Receive Configuration 3 Register + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + WDFL + Word Flag Configuration + 0 + 5 + read-write + + + RCE + Receive Channel Enable + 16 + 2 + read-write + + + 0 + Receive data channel N is disabled. + #00 + + + 1 + Receive data channel N is enabled. + #01 + + + + + + + RCR4 + SAI Receive Configuration 4 Register + 0x90 + 32 + read-write + 0 + 0xFFFFFFFF + + + FSD + Frame Sync Direction + 0 + 1 + read-write + + + 0 + Frame Sync is generated externally in Slave mode. + #0 + + + 1 + Frame Sync is generated internally in Master mode. + #1 + + + + + FSP + Frame Sync Polarity + 1 + 1 + read-write + + + 0 + Frame sync is active high. + #0 + + + 1 + Frame sync is active low. + #1 + + + + + FSE + Frame Sync Early + 3 + 1 + read-write + + + 0 + Frame sync asserts with the first bit of the frame. + #0 + + + 1 + Frame sync asserts one bit before the first bit of the frame. + #1 + + + + + MF + MSB First + 4 + 1 + read-write + + + 0 + LSB is received first. + #0 + + + 1 + MSB is received first. + #1 + + + + + SYWD + Sync Width + 8 + 5 + read-write + + + FRSZ + Frame Size + 16 + 5 + read-write + + + + + RCR5 + SAI Receive Configuration 5 Register + 0x94 + 32 + read-write + 0 + 0xFFFFFFFF + + + FBT + First Bit Shifted + 8 + 5 + read-write + + + W0W + Word 0 Width + 16 + 5 + read-write + + + WNW + Word N Width + 24 + 5 + read-write + + + + + 2 + 0x4 + 0,1 + RDR%s + SAI Receive Data Register + 0xA0 + 32 + read-only + 0 + 0xFFFFFFFF + + + RDR + Receive Data Register + 0 + 32 + read-only + + + + + 2 + 0x4 + 0,1 + RFR%s + SAI Receive FIFO Register + 0xC0 + 32 + read-only + 0 + 0xFFFFFFFF + + + RFP + Read FIFO Pointer + 0 + 4 + read-only + + + WFP + Write FIFO Pointer + 16 + 4 + read-only + + + + + RMR + SAI Receive Mask Register + 0xE0 + 32 + read-write + 0 + 0xFFFFFFFF + + + RWM + Receive Word Mask + 0 + 32 + read-write + + + 0 + Word N is enabled. + #0 + + + 1 + Word N is masked. + #1 + + + + + + + MCR + SAI MCLK Control Register + 0x100 + 32 + read-write + 0 + 0xFFFFFFFF + + + MICS + MCLK Input Clock Select + 24 + 2 + read-write + + + 00 + MCLK divider input clock 0 selected. + #00 + + + 01 + MCLK divider input clock 1 selected. + #01 + + + 10 + MCLK divider input clock 2 selected. + #10 + + + 11 + MCLK divider input clock 3 selected. + #11 + + + + + MOE + MCLK Output Enable + 30 + 1 + read-write + + + 0 + MCLK signal pin is configured as an input that bypasses the MCLK divider. + #0 + + + 1 + MCLK signal pin is configured as an output from the MCLK divider and the MCLK divider is enabled. + #1 + + + + + DUF + Divider Update Flag + 31 + 1 + read-only + + + 0 + MCLK divider ratio is not being updated currently. + #0 + + + 1 + MCLK divider ratio is updating on-the-fly. Further updates to the MCLK divider ratio are blocked while this flag remains set. + #1 + + + + + + + MDR + SAI MCLK Divide Register + 0x104 + 32 + read-write + 0 + 0xFFFFFFFF + + + DIVIDE + MCLK Divide + 0 + 12 + read-write + + + FRACT + MCLK Fraction + 12 + 8 + read-write + + + + + + + CRC + Cyclic Redundancy Check + CRC_ + 0x40032000 + + 0 + 0xC + registers + + + + DATA + CRC Data register + CRC + 0 + 32 + read-write + 0xFFFFFFFF + 0xFFFFFFFF + + + LL + CRC Low Lower Byte + 0 + 8 + read-write + + + LU + CRC Low Upper Byte + 8 + 8 + read-write + + + HL + CRC High Lower Byte + 16 + 8 + read-write + + + HU + CRC High Upper Byte + 24 + 8 + read-write + + + + + DATAL + CRC_DATAL register. + CRC + 0 + 16 + read-write + 0xFFFF + 0xFFFF + + + DATAL + DATAL stores the lower 16 bits of the 16/32 bit CRC + 0 + 16 + read-write + + + + + DATALL + CRC_DATALL register. + CRC + 0 + 8 + read-write + 0xFF + 0xFF + + + DATALL + CRCLL stores the first 8 bits of the 32 bit DATA + 0 + 8 + read-write + + + + + DATALU + CRC_DATALU register. + 0x1 + 8 + read-write + 0xFF + 0xFF + + + DATALU + DATALL stores the second 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + DATAH + CRC_DATAH register. + CRC + 0x2 + 16 + read-write + 0xFFFF + 0xFFFF + + + DATAH + DATAH stores the high 16 bits of the 16/32 bit CRC + 0 + 16 + read-write + + + + + DATAHL + CRC_DATAHL register. + CRC + 0x2 + 8 + read-write + 0xFF + 0xFF + + + DATAHL + DATAHL stores the third 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + DATAHU + CRC_DATAHU register. + 0x3 + 8 + read-write + 0xFF + 0xFF + + + DATAHU + DATAHU stores the fourth 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + GPOLY + CRC Polynomial register + CRC + 0x4 + 32 + read-write + 0x1021 + 0xFFFFFFFF + + + LOW + Low Polynominal Half-word + 0 + 16 + read-write + + + HIGH + High Polynominal Half-word + 16 + 16 + read-write + + + + + GPOLYL + CRC_GPOLYL register. + CRC + 0x4 + 16 + read-write + 0xFFFF + 0xFFFF + + + GPOLYL + POLYL stores the lower 16 bits of the 16/32 bit CRC polynomial value + 0 + 16 + read-write + + + + + GPOLYLL + CRC_GPOLYLL register. + CRC + 0x4 + 8 + read-write + 0xFF + 0xFF + + + GPOLYLL + POLYLL stores the first 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + GPOLYLU + CRC_GPOLYLU register. + 0x5 + 8 + read-write + 0xFF + 0xFF + + + GPOLYLU + POLYLL stores the second 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + GPOLYH + CRC_GPOLYH register. + CRC + 0x6 + 16 + read-write + 0xFFFF + 0xFFFF + + + GPOLYH + POLYH stores the high 16 bits of the 16/32 bit CRC polynomial value + 0 + 16 + read-write + + + + + GPOLYHL + CRC_GPOLYHL register. + CRC + 0x6 + 8 + read-write + 0xFF + 0xFF + + + GPOLYHL + POLYHL stores the third 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + GPOLYHU + CRC_GPOLYHU register. + 0x7 + 8 + read-write + 0xFF + 0xFF + + + GPOLYHU + POLYHU stores the fourth 8 bits of the 32 bit CRC + 0 + 8 + read-write + + + + + CTRL + CRC Control register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + TCRC + Width of CRC protocol. + 24 + 1 + read-write + + + 0 + 16-bit CRC protocol. + #0 + + + 1 + 32-bit CRC protocol. + #1 + + + + + WAS + Write CRC Data Register As Seed + 25 + 1 + read-write + + + 0 + Writes to the CRC data register are data values. + #0 + + + 1 + Writes to the CRC data register are seed values. + #1 + + + + + FXOR + Complement Read Of CRC Data Register + 26 + 1 + read-write + + + 0 + No XOR on reading. + #0 + + + 1 + Invert or complement the read value of the CRC Data register. + #1 + + + + + TOTR + Type Of Transpose For Read + 28 + 2 + read-write + + + 00 + No transposition. + #00 + + + 01 + Bits in bytes are transposed; bytes are not transposed. + #01 + + + 10 + Both bits in bytes and bytes are transposed. + #10 + + + 11 + Only bytes are transposed; no bits in a byte are transposed. + #11 + + + + + TOT + Type Of Transpose For Writes + 30 + 2 + read-write + + + 00 + No transposition. + #00 + + + 01 + Bits in bytes are transposed; bytes are not transposed. + #01 + + + 10 + Both bits in bytes and bytes are transposed. + #10 + + + 11 + Only bytes are transposed; no bits in a byte are transposed. + #11 + + + + + + + CTRLHU + CRC_CTRLHU register. + 0xB + 8 + read-write + 0 + 0xFF + + + TCRC + no description available + 0 + 1 + read-write + + + 0 + 16-bit CRC protocol. + #0 + + + 1 + 32-bit CRC protocol. + #1 + + + + + WAS + no description available + 1 + 1 + read-write + + + 0 + Writes to CRC data register are data values. + #0 + + + 1 + Writes to CRC data reguster are seed values. + #1 + + + + + FXOR + no description available + 2 + 1 + read-write + + + 0 + No XOR on reading. + #0 + + + 1 + Invert or complement the read value of CRC data register. + #1 + + + + + TOTR + no description available + 4 + 2 + read-write + + + 00 + No Transposition. + #00 + + + 01 + Bits in bytes are transposed, bytes are not transposed. + #01 + + + 10 + Both bits in bytes and bytes are transposed. + #10 + + + 11 + Only bytes are transposed; no bits in a byte are transposed. + #11 + + + + + TOT + no description available + 6 + 2 + read-write + + + 00 + No Transposition. + #00 + + + 01 + Bits in bytes are transposed, bytes are not transposed. + #01 + + + 10 + Both bits in bytes and bytes are transposed. + #10 + + + 11 + Only bytes are transposed; no bits in a byte are transposed. + #11 + + + + + + + + + USBDCD + USB Device Charger Detection module + USBDCD_ + 0x40035000 + + 0 + 0x1C + registers + + + USBDCD + 54 + + + + CONTROL + Control register + 0 + 32 + read-write + 0x10000 + 0xFFFFFFFF + + + IACK + Interrupt Acknowledge + 0 + 1 + write-only + + + 0 + Do not clear the interrupt. + #0 + + + 1 + Clear the IF bit (interrupt flag). + #1 + + + + + IF + Interrupt Flag + 8 + 1 + read-only + + + 0 + No interrupt is pending. + #0 + + + 1 + An interrupt is pending. + #1 + + + + + IE + Interrupt Enable + 16 + 1 + read-write + + + 0 + Disable interrupts to the system. + #0 + + + 1 + Enable interrupts to the system. + #1 + + + + + BC12 + BC1.2 compatibility. This bit cannot be changed after start detection. + 17 + 1 + read-write + + + 0 + Compatible with BC1.1 (default) + #0 + + + 1 + Compatible with BC1.2 + #1 + + + + + START + Start Change Detection Sequence + 24 + 1 + write-only + + + 0 + Do not start the sequence. Writes of this value have no effect. + #0 + + + 1 + Initiate the charger detection sequence. If the sequence is already running, writes of this value have no effect. + #1 + + + + + SR + Software Reset + 25 + 1 + write-only + + + 0 + Do not perform a software reset. + #0 + + + 1 + Perform a software reset. + #1 + + + + + + + CLOCK + Clock register + 0x4 + 32 + read-write + 0xC1 + 0xFFFFFFFF + + + CLOCK_UNIT + Unit of Measurement Encoding for Clock Speed + 0 + 1 + read-write + + + 0 + kHz Speed (between 1 kHz and 1023 kHz) + #0 + + + 1 + MHz Speed (between 1 MHz and 1023 MHz) + #1 + + + + + CLOCK_SPEED + Numerical Value of Clock Speed in Binary + 2 + 10 + read-write + + + + + STATUS + Status register + 0x8 + 32 + read-only + 0 + 0xFFFFFFFF + + + SEQ_RES + Charger Detection Sequence Results + 16 + 2 + read-only + + + 00 + No results to report. + #00 + + + 01 + Attached to a standard host. Must comply with USB 2.0 by drawing only 2.5 mA (max) until connected. + #01 + + + 10 + Attached to a charging port. The exact meaning depends on bit 18: 0: Attached to either a charging host or a dedicated charger. The charger type detection has not completed. 1: Attached to a charging host. The charger type detection has completed. + #10 + + + 11 + Attached to a dedicated charger. + #11 + + + + + SEQ_STAT + Charger Detection Sequence Status + 18 + 2 + read-only + + + 00 + The module is either not enabled, or the module is enabled but the data pins have not yet been detected. + #00 + + + 01 + Data pin contact detection is complete. + #01 + + + 10 + Charging port detection is complete. + #10 + + + 11 + Charger type detection is complete. + #11 + + + + + ERR + Error Flag + 20 + 1 + read-only + + + 0 + No sequence errors. + #0 + + + 1 + Error in the detection sequence. See the SEQ_STAT field to determine the phase in which the error occurred. + #1 + + + + + TO + Timeout Flag + 21 + 1 + read-only + + + 0 + The detection sequence has not been running for over 1 s. + #0 + + + 1 + It has been over 1 s since the data pin contact was detected and debounced. + #1 + + + + + ACTIVE + Active Status Indicator + 22 + 1 + read-only + + + 0 + The sequence is not running. + #0 + + + 1 + The sequence is running. + #1 + + + + + + + TIMER0 + TIMER0 register + 0x10 + 32 + read-write + 0x100000 + 0xFFFFFFFF + + + TUNITCON + Unit Connection Timer Elapse (in ms) + 0 + 12 + read-only + + + TSEQ_INIT + Sequence Initiation Time + 16 + 10 + read-write + + + + + TIMER1 + TIMER1 register + 0x14 + 32 + read-write + 0xA0028 + 0xFFFFFFFF + + + TVDPSRC_ON + Time Period Comparator Enabled + 0 + 10 + read-write + + + TDCD_DBNC + Time Period to Debounce D+ Signal + 16 + 10 + read-write + + + + + TIMER2_BC11 + TIMER2_BC11 register + USBDCD + 0x18 + 32 + read-write + 0x280001 + 0xFFFFFFFF + + + CHECK_DM + Time Before Check of D- Line + 0 + 4 + read-write + + + TVDPSRC_CON + Time Period Before Enabling D+ Pullup + 16 + 10 + read-write + + + + + TIMER2_BC12 + TIMER2_BC12 register + USBDCD + 0x18 + 32 + read-write + 0x10028 + 0xFFFFFFFF + + + TVDMSRC_ON + Sets the amount of time (in ms) that the module enables the VDM_SRC. Valid values are 0-40ms. + 0 + 10 + read-write + + + TWAIT_AFTER_PRD + Sets the amount of time (in ms) that the module waits after primary detection before start to secondary detection + 16 + 10 + read-write + + + + + + + PDB0 + Programmable Delay Block + PDB0_ + 0x40036000 + + 0 + 0x1A0 + registers + + + PDB0 + 52 + + + + SC + Status and Control register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + LDOK + Load OK + 0 + 1 + read-write + + + CONT + Continuous Mode Enable + 1 + 1 + read-write + + + 0 + PDB operation in One-Shot mode + #0 + + + 1 + PDB operation in Continuous mode + #1 + + + + + MULT + Multiplication Factor Select for Prescaler + 2 + 2 + read-write + + + 00 + Multiplication factor is 1. + #00 + + + 01 + Multiplication factor is 10. + #01 + + + 10 + Multiplication factor is 20. + #10 + + + 11 + Multiplication factor is 40. + #11 + + + + + PDBIE + PDB Interrupt Enable + 5 + 1 + read-write + + + 0 + PDB interrupt disabled. + #0 + + + 1 + PDB interrupt enabled. + #1 + + + + + PDBIF + PDB Interrupt Flag + 6 + 1 + read-write + + + PDBEN + PDB Enable + 7 + 1 + read-write + + + 0 + PDB disabled. Counter is off. + #0 + + + 1 + PDB enabled. + #1 + + + + + TRGSEL + Trigger Input Source Select + 8 + 4 + read-write + + + 0000 + Trigger-In 0 is selected. + #0000 + + + 0001 + Trigger-In 1 is selected. + #0001 + + + 0010 + Trigger-In 2 is selected. + #0010 + + + 0011 + Trigger-In 3 is selected. + #0011 + + + 0100 + Trigger-In 4 is selected. + #0100 + + + 0101 + Trigger-In 5 is selected. + #0101 + + + 0110 + Trigger-In 6 is selected. + #0110 + + + 0111 + Trigger-In 7 is selected. + #0111 + + + 1000 + Trigger-In 8 is selected. + #1000 + + + 1001 + Trigger-In 9 is selected. + #1001 + + + 1010 + Trigger-In 10 is selected. + #1010 + + + 1011 + Trigger-In 11 is selected. + #1011 + + + 1100 + Trigger-In 12 is selected. + #1100 + + + 1101 + Trigger-In 13 is selected. + #1101 + + + 1110 + Trigger-In 14 is selected. + #1110 + + + 1111 + Software trigger is selected. + #1111 + + + + + PRESCALER + Prescaler Divider Select + 12 + 3 + read-write + + + 000 + Counting uses the peripheral clock divided by multiplication factor selected by MULT. + #000 + + + 001 + Counting uses the peripheral clock divided by twice of the multiplication factor selected by MULT. + #001 + + + 010 + Counting uses the peripheral clock divided by four times of the multiplication factor selected by MULT. + #010 + + + 011 + Counting uses the peripheral clock divided by eight times of the multiplication factor selected by MULT. + #011 + + + 100 + Counting uses the peripheral clock divided by 16 times of the multiplication factor selected by MULT. + #100 + + + 101 + Counting uses the peripheral clock divided by 32 times of the multiplication factor selected by MULT. + #101 + + + 110 + Counting uses the peripheral clock divided by 64 times of the multiplication factor selected by MULT. + #110 + + + 111 + Counting uses the peripheral clock divided by 128 times of the multiplication factor selected by MULT. + #111 + + + + + DMAEN + DMA Enable + 15 + 1 + read-write + + + 0 + DMA disabled. + #0 + + + 1 + DMA enabled. + #1 + + + + + SWTRIG + Software Trigger + 16 + 1 + write-only + + + PDBEIE + PDB Sequence Error Interrupt Enable + 17 + 1 + read-write + + + 0 + PDB sequence error interrupt disabled. + #0 + + + 1 + PDB sequence error interrupt enabled. + #1 + + + + + LDMOD + Load Mode Select + 18 + 2 + read-write + + + 00 + The internal registers are loaded with the values from their buffers immediately after 1 is written to LDOK. + #00 + + + 01 + The internal registers are loaded with the values from their buffers when the PDB counter reaches the MOD register value after 1 is written to LDOK. + #01 + + + 10 + The internal registers are loaded with the values from their buffers when a trigger input event is detected after 1 is written to LDOK. + #10 + + + 11 + The internal registers are loaded with the values from their buffers when either the PDB counter reaches the MOD register value or a trigger input event is detected, after 1 is written to LDOK. + #11 + + + + + + + MOD + Modulus register + 0x4 + 32 + read-write + 0xFFFF + 0xFFFFFFFF + + + MOD + PDB Modulus + 0 + 16 + read-write + + + + + CNT + Counter register + 0x8 + 32 + read-only + 0 + 0xFFFFFFFF + + + CNT + PDB Counter + 0 + 16 + read-only + + + + + IDLY + Interrupt Delay register + 0xC + 32 + read-write + 0xFFFF + 0xFFFFFFFF + + + IDLY + PDB Interrupt Delay + 0 + 16 + read-write + + + + + 2 + 0x28 + 0,1 + CH%sC1 + Channel n Control register 1 + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + EN + PDB Channel Pre-Trigger Enable + 0 + 8 + read-write + + + 0 + PDB channel's corresponding pre-trigger disabled. + #0 + + + 1 + PDB channel's corresponding pre-trigger enabled. + #1 + + + + + TOS + PDB Channel Pre-Trigger Output Select + 8 + 8 + read-write + + + 0 + PDB channel's corresponding pre-trigger is in bypassed mode. The pre-trigger asserts one peripheral clock cycle after a rising edge is detected on selected trigger input source or software trigger is selected and SWTRIG is written with 1. + #0 + + + 1 + PDB channel's corresponding pre-trigger asserts when the counter reaches the channel delay register and one peripheral clock cycle after a rising edge is detected on selected trigger input source or software trigger is selected and SETRIG is written with 1. + #1 + + + + + BB + PDB Channel Pre-Trigger Back-to-Back Operation Enable + 16 + 8 + read-write + + + 0 + PDB channel's corresponding pre-trigger back-to-back operation disabled. + #0 + + + 1 + PDB channel's corresponding pre-trigger back-to-back operation enabled. + #1 + + + + + + + 2 + 0x28 + 0,1 + CH%sS + Channel n Status register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + ERR + PDB Channel Sequence Error Flags + 0 + 8 + read-write + + + 0 + Sequence error not detected on PDB channel's corresponding pre-trigger. + #0 + + + 1 + Sequence error detected on PDB channel's corresponding pre-trigger. ADCn block can be triggered for a conversion by one pre-trigger from PDB channel n. When one conversion, which is triggered by one of the pre-triggers from PDB channel n, is in progress, new trigger from PDB channel's corresponding pre-trigger m cannot be accepted by ADCn, and ERR[m] is set. Writing 0's to clear the sequence error flags. + #1 + + + + + CF + PDB Channel Flags + 16 + 8 + read-write + + + + + 2 + 0x28 + 0,1 + CH%sDLY0 + Channel n Delay 0 register + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + DLY + PDB Channel Delay + 0 + 16 + read-write + + + + + 2 + 0x28 + 0,1 + CH%sDLY1 + Channel n Delay 1 register + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + DLY + PDB Channel Delay + 0 + 16 + read-write + + + + + 2 + 0x8 + 0,1 + DACINTC%s + DAC Interval Trigger n Control register + 0x150 + 32 + read-write + 0 + 0xFFFFFFFF + + + TOE + DAC Interval Trigger Enable + 0 + 1 + read-write + + + 0 + DAC interval trigger disabled. + #0 + + + 1 + DAC interval trigger enabled. + #1 + + + + + EXT + DAC External Trigger Input Enable + 1 + 1 + read-write + + + 0 + DAC external trigger input disabled. DAC interval counter is reset and counting starts when a rising edge is detected on selected trigger input source or software trigger is selected and SWTRIG is written with 1. + #0 + + + 1 + DAC external trigger input enabled. DAC interval counter is bypassed and DAC external trigger input triggers the DAC interval trigger. + #1 + + + + + + + 2 + 0x8 + 0,1 + DACINT%s + DAC Interval n register + 0x154 + 32 + read-write + 0 + 0xFFFFFFFF + + + INT + DAC Interval + 0 + 16 + read-write + + + + + POEN + Pulse-Out n Enable register + 0x190 + 32 + read-write + 0 + 0xFFFFFFFF + + + POEN + PDB Pulse-Out Enable + 0 + 8 + read-write + + + 0 + PDB Pulse-Out disabled + #0 + + + 1 + PDB Pulse-Out enabled + #1 + + + + + + + 3 + 0x4 + 0,1,2 + PO%sDLY + Pulse-Out n Delay register + 0x194 + 32 + read-write + 0 + 0xFFFFFFFF + + + DLY2 + PDB Pulse-Out Delay 2 + 0 + 16 + read-write + + + DLY1 + PDB Pulse-Out Delay 1 + 16 + 16 + read-write + + + + + + + PIT + Periodic Interrupt Timer + PIT_ + 0x40037000 + + 0 + 0x140 + registers + + + PIT0 + 48 + + + PIT1 + 49 + + + PIT2 + 50 + + + PIT3 + 51 + + + + MCR + PIT Module Control Register + 0 + 32 + read-write + 0x6 + 0xFFFFFFFF + + + FRZ + Freeze + 0 + 1 + read-write + + + 0 + Timers continue to run in Debug mode. + #0 + + + 1 + Timers are stopped in Debug mode. + #1 + + + + + MDIS + Module Disable - (PIT section) + 1 + 1 + read-write + + + 0 + Clock for standard PIT timers is enabled. + #0 + + + 1 + Clock for standard PIT timers is disabled. + #1 + + + + + + + 4 + 0x10 + 0,1,2,3 + LDVAL%s + Timer Load Value Register + 0x100 + 32 + read-write + 0 + 0xFFFFFFFF + + + TSV + Timer Start Value + 0 + 32 + read-write + + + + + 4 + 0x10 + 0,1,2,3 + CVAL%s + Current Timer Value Register + 0x104 + 32 + read-only + 0 + 0xFFFFFFFF + + + TVL + Current Timer Value + 0 + 32 + read-only + + + + + 4 + 0x10 + 0,1,2,3 + TCTRL%s + Timer Control Register + 0x108 + 32 + read-write + 0 + 0xFFFFFFFF + + + TEN + Timer Enable + 0 + 1 + read-write + + + 0 + Timer n is disabled. + #0 + + + 1 + Timer n is enabled. + #1 + + + + + TIE + Timer Interrupt Enable + 1 + 1 + read-write + + + 0 + Interrupt requests from Timer n are disabled. + #0 + + + 1 + Interrupt will be requested whenever TIF is set. + #1 + + + + + CHN + Chain Mode + 2 + 1 + read-write + + + 0 + Timer is not chained. + #0 + + + 1 + Timer is chained to previous timer. For example, for Channel 2, if this field is set, Timer 2 is chained to Timer 1. + #1 + + + + + + + 4 + 0x10 + 0,1,2,3 + TFLG%s + Timer Flag Register + 0x10C + 32 + read-write + 0 + 0xFFFFFFFF + + + TIF + Timer Interrupt Flag + 0 + 1 + read-write + + + 0 + Timeout has not yet occurred. + #0 + + + 1 + Timeout has occurred. + #1 + + + + + + + + + FTM0 + FlexTimer Module + FTM + FTM0_ + 0x40038000 + + 0 + 0x9C + registers + + + FTM0 + 42 + + + + SC + Status And Control + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Prescale Factor Selection + 0 + 3 + read-write + + + 000 + Divide by 1 + #000 + + + 001 + Divide by 2 + #001 + + + 010 + Divide by 4 + #010 + + + 011 + Divide by 8 + #011 + + + 100 + Divide by 16 + #100 + + + 101 + Divide by 32 + #101 + + + 110 + Divide by 64 + #110 + + + 111 + Divide by 128 + #111 + + + + + CLKS + Clock Source Selection + 3 + 2 + read-write + + + 00 + No clock selected. This in effect disables the FTM counter. + #00 + + + 01 + System clock + #01 + + + 10 + Fixed frequency clock + #10 + + + 11 + External clock + #11 + + + + + CPWMS + Center-Aligned PWM Select + 5 + 1 + read-write + + + 0 + FTM counter operates in Up Counting mode. + #0 + + + 1 + FTM counter operates in Up-Down Counting mode. + #1 + + + + + TOIE + Timer Overflow Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable TOF interrupts. Use software polling. + #0 + + + 1 + Enable TOF interrupts. An interrupt is generated when TOF equals one. + #1 + + + + + TOF + Timer Overflow Flag + 7 + 1 + read-only + + + 0 + FTM counter has not overflowed. + #0 + + + 1 + FTM counter has overflowed. + #1 + + + + + + + CNT + Counter + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + COUNT + Counter Value + 0 + 16 + read-write + + + + + MOD + Modulo + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + MOD + Modulo Value + 0 + 16 + read-write + + + + + 8 + 0x8 + 0,1,2,3,4,5,6,7 + C%sSC + Channel (n) Status And Control + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + DMA + DMA Enable + 0 + 1 + read-write + + + 0 + Disable DMA transfers. + #0 + + + 1 + Enable DMA transfers. + #1 + + + + + ELSA + Edge or Level Select + 2 + 1 + read-write + + + ELSB + Edge or Level Select + 3 + 1 + read-write + + + MSA + Channel Mode Select + 4 + 1 + read-write + + + MSB + Channel Mode Select + 5 + 1 + read-write + + + CHIE + Channel Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable channel interrupts. Use software polling. + #0 + + + 1 + Enable channel interrupts. + #1 + + + + + CHF + Channel Flag + 7 + 1 + read-only + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + 8 + 0x8 + 0,1,2,3,4,5,6,7 + C%sV + Channel (n) Value + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + VAL + Channel Value + 0 + 16 + read-write + + + + + CNTIN + Counter Initial Value + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + INIT + Initial Value Of The FTM Counter + 0 + 16 + read-write + + + + + STATUS + Capture And Compare Status + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0F + Channel 0 Flag + 0 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH1F + Channel 1 Flag + 1 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH2F + Channel 2 Flag + 2 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH3F + Channel 3 Flag + 3 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH4F + Channel 4 Flag + 4 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH5F + Channel 5 Flag + 5 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH6F + Channel 6 Flag + 6 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH7F + Channel 7 Flag + 7 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + MODE + Features Mode Selection + 0x54 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + FTMEN + FTM Enable + 0 + 1 + read-write + + + 0 + Only the TPM-compatible registers (first set of registers) can be used without any restriction. Do not use the FTM-specific registers. + #0 + + + 1 + All registers including the FTM-specific registers (second set of registers) are available for use with no restrictions. + #1 + + + + + INIT + Initialize The Channels Output + 1 + 1 + read-write + + + WPDIS + Write Protection Disable + 2 + 1 + read-write + + + 0 + Write protection is enabled. + #0 + + + 1 + Write protection is disabled. + #1 + + + + + PWMSYNC + PWM Synchronization Mode + 3 + 1 + read-write + + + 0 + No restrictions. Software and hardware triggers can be used by MOD, CnV, OUTMASK, and FTM counter synchronization. + #0 + + + 1 + Software trigger can only be used by MOD and CnV synchronization, and hardware triggers can only be used by OUTMASK and FTM counter synchronization. + #1 + + + + + CAPTEST + Capture Test Mode Enable + 4 + 1 + read-write + + + 0 + Capture test mode is disabled. + #0 + + + 1 + Capture test mode is enabled. + #1 + + + + + FAULTM + Fault Control Mode + 5 + 2 + read-write + + + 00 + Fault control is disabled for all channels. + #00 + + + 01 + Fault control is enabled for even channels only (channels 0, 2, 4, and 6), and the selected mode is the manual fault clearing. + #01 + + + 10 + Fault control is enabled for all channels, and the selected mode is the manual fault clearing. + #10 + + + 11 + Fault control is enabled for all channels, and the selected mode is the automatic fault clearing. + #11 + + + + + FAULTIE + Fault Interrupt Enable + 7 + 1 + read-write + + + 0 + Fault control interrupt is disabled. + #0 + + + 1 + Fault control interrupt is enabled. + #1 + + + + + + + SYNC + Synchronization + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + CNTMIN + Minimum Loading Point Enable + 0 + 1 + read-write + + + 0 + The minimum loading point is disabled. + #0 + + + 1 + The minimum loading point is enabled. + #1 + + + + + CNTMAX + Maximum Loading Point Enable + 1 + 1 + read-write + + + 0 + The maximum loading point is disabled. + #0 + + + 1 + The maximum loading point is enabled. + #1 + + + + + REINIT + FTM Counter Reinitialization By Synchronization (FTM counter synchronization) + 2 + 1 + read-write + + + 0 + FTM counter continues to count normally. + #0 + + + 1 + FTM counter is updated with its initial value when the selected trigger is detected. + #1 + + + + + SYNCHOM + Output Mask Synchronization + 3 + 1 + read-write + + + 0 + OUTMASK register is updated with the value of its buffer in all rising edges of the system clock. + #0 + + + 1 + OUTMASK register is updated with the value of its buffer only by the PWM synchronization. + #1 + + + + + TRIG0 + PWM Synchronization Hardware Trigger 0 + 4 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG1 + PWM Synchronization Hardware Trigger 1 + 5 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG2 + PWM Synchronization Hardware Trigger 2 + 6 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + SWSYNC + PWM Synchronization Software Trigger + 7 + 1 + read-write + + + 0 + Software trigger is not selected. + #0 + + + 1 + Software trigger is selected. + #1 + + + + + + + OUTINIT + Initial State For Channels Output + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OI + Channel 0 Output Initialization Value + 0 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH1OI + Channel 1 Output Initialization Value + 1 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH2OI + Channel 2 Output Initialization Value + 2 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH3OI + Channel 3 Output Initialization Value + 3 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH4OI + Channel 4 Output Initialization Value + 4 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH5OI + Channel 5 Output Initialization Value + 5 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH6OI + Channel 6 Output Initialization Value + 6 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH7OI + Channel 7 Output Initialization Value + 7 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + + + OUTMASK + Output Mask + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OM + Channel 0 Output Mask + 0 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH1OM + Channel 1 Output Mask + 1 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH2OM + Channel 2 Output Mask + 2 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH3OM + Channel 3 Output Mask + 3 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH4OM + Channel 4 Output Mask + 4 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH5OM + Channel 5 Output Mask + 5 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH6OM + Channel 6 Output Mask + 6 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH7OM + Channel 7 Output Mask + 7 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + + + COMBINE + Function For Linked Channels + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + COMBINE0 + Combine Channels For n = 0 + 0 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP0 + Complement Of Channel (n) For n = 0 + 1 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN0 + Dual Edge Capture Mode Enable For n = 0 + 2 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP0 + Dual Edge Capture Mode Captures For n = 0 + 3 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN0 + Deadtime Enable For n = 0 + 4 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN0 + Synchronization Enable For n = 0 + 5 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN0 + Fault Control Enable For n = 0 + 6 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE1 + Combine Channels For n = 2 + 8 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP1 + Complement Of Channel (n) For n = 2 + 9 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN1 + Dual Edge Capture Mode Enable For n = 2 + 10 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP1 + Dual Edge Capture Mode Captures For n = 2 + 11 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN1 + Deadtime Enable For n = 2 + 12 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN1 + Synchronization Enable For n = 2 + 13 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN1 + Fault Control Enable For n = 2 + 14 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE2 + Combine Channels For n = 4 + 16 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP2 + Complement Of Channel (n) For n = 4 + 17 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN2 + Dual Edge Capture Mode Enable For n = 4 + 18 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP2 + Dual Edge Capture Mode Captures For n = 4 + 19 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN2 + Deadtime Enable For n = 4 + 20 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN2 + Synchronization Enable For n = 4 + 21 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN2 + Fault Control Enable For n = 4 + 22 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE3 + Combine Channels For n = 6 + 24 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP3 + Complement Of Channel (n) for n = 6 + 25 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN3 + Dual Edge Capture Mode Enable For n = 6 + 26 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP3 + Dual Edge Capture Mode Captures For n = 6 + 27 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN3 + Deadtime Enable For n = 6 + 28 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN3 + Synchronization Enable For n = 6 + 29 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN3 + Fault Control Enable For n = 6 + 30 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + + + DEADTIME + Deadtime Insertion Control + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + DTVAL + Deadtime Value + 0 + 6 + read-write + + + DTPS + Deadtime Prescaler Value + 6 + 2 + read-write + + + 0x + Divide the system clock by 1. + #0x + + + 10 + Divide the system clock by 4. + #10 + + + 11 + Divide the system clock by 16. + #11 + + + + + + + EXTTRIG + FTM External Trigger + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH2TRIG + Channel 2 Trigger Enable + 0 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH3TRIG + Channel 3 Trigger Enable + 1 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH4TRIG + Channel 4 Trigger Enable + 2 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH5TRIG + Channel 5 Trigger Enable + 3 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH0TRIG + Channel 0 Trigger Enable + 4 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH1TRIG + Channel 1 Trigger Enable + 5 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + INITTRIGEN + Initialization Trigger Enable + 6 + 1 + read-write + + + 0 + The generation of initialization trigger is disabled. + #0 + + + 1 + The generation of initialization trigger is enabled. + #1 + + + + + TRIGF + Channel Trigger Flag + 7 + 1 + read-only + + + 0 + No channel trigger was generated. + #0 + + + 1 + A channel trigger was generated. + #1 + + + + + + + POL + Channels Polarity + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + POL0 + Channel 0 Polarity + 0 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL1 + Channel 1 Polarity + 1 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL2 + Channel 2 Polarity + 2 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL3 + Channel 3 Polarity + 3 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL4 + Channel 4 Polarity + 4 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL5 + Channel 5 Polarity + 5 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL6 + Channel 6 Polarity + 6 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL7 + Channel 7 Polarity + 7 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + + + FMS + Fault Mode Status + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULTF0 + Fault Detection Flag 0 + 0 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF1 + Fault Detection Flag 1 + 1 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF2 + Fault Detection Flag 2 + 2 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF3 + Fault Detection Flag 3 + 3 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTIN + Fault Inputs + 5 + 1 + read-only + + + 0 + The logic OR of the enabled fault inputs is 0. + #0 + + + 1 + The logic OR of the enabled fault inputs is 1. + #1 + + + + + WPEN + Write Protection Enable + 6 + 1 + read-write + + + 0 + Write protection is disabled. Write protected bits can be written. + #0 + + + 1 + Write protection is enabled. Write protected bits cannot be written. + #1 + + + + + FAULTF + Fault Detection Flag + 7 + 1 + read-only + + + 0 + No fault condition was detected. + #0 + + + 1 + A fault condition was detected. + #1 + + + + + + + FILTER + Input Capture Filter Control + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0FVAL + Channel 0 Input Filter + 0 + 4 + read-write + + + CH1FVAL + Channel 1 Input Filter + 4 + 4 + read-write + + + CH2FVAL + Channel 2 Input Filter + 8 + 4 + read-write + + + CH3FVAL + Channel 3 Input Filter + 12 + 4 + read-write + + + + + FLTCTRL + Fault Control + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULT0EN + Fault Input 0 Enable + 0 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT1EN + Fault Input 1 Enable + 1 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT2EN + Fault Input 2 Enable + 2 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT3EN + Fault Input 3 Enable + 3 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FFLTR0EN + Fault Input 0 Filter Enable + 4 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR1EN + Fault Input 1 Filter Enable + 5 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR2EN + Fault Input 2 Filter Enable + 6 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR3EN + Fault Input 3 Filter Enable + 7 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFVAL + Fault Input Filter + 8 + 4 + read-write + + + + + QDCTRL + Quadrature Decoder Control And Status + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + QUADEN + Quadrature Decoder Mode Enable + 0 + 1 + read-write + + + 0 + Quadrature Decoder mode is disabled. + #0 + + + 1 + Quadrature Decoder mode is enabled. + #1 + + + + + TOFDIR + Timer Overflow Direction In Quadrature Decoder Mode + 1 + 1 + read-only + + + 0 + TOF bit was set on the bottom of counting. There was an FTM counter decrement and FTM counter changes from its minimum value (CNTIN register) to its maximum value (MOD register). + #0 + + + 1 + TOF bit was set on the top of counting. There was an FTM counter increment and FTM counter changes from its maximum value (MOD register) to its minimum value (CNTIN register). + #1 + + + + + QUADIR + FTM Counter Direction In Quadrature Decoder Mode + 2 + 1 + read-only + + + 0 + Counting direction is decreasing (FTM counter decrement). + #0 + + + 1 + Counting direction is increasing (FTM counter increment). + #1 + + + + + QUADMODE + Quadrature Decoder Mode + 3 + 1 + read-write + + + 0 + Phase A and phase B encoding mode. + #0 + + + 1 + Count and direction encoding mode. + #1 + + + + + PHBPOL + Phase B Input Polarity + 4 + 1 + read-write + + + 0 + Normal polarity. Phase B input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase B input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHAPOL + Phase A Input Polarity + 5 + 1 + read-write + + + 0 + Normal polarity. Phase A input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase A input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHBFLTREN + Phase B Input Filter Enable + 6 + 1 + read-write + + + 0 + Phase B input filter is disabled. + #0 + + + 1 + Phase B input filter is enabled. + #1 + + + + + PHAFLTREN + Phase A Input Filter Enable + 7 + 1 + read-write + + + 0 + Phase A input filter is disabled. + #0 + + + 1 + Phase A input filter is enabled. + #1 + + + + + + + CONF + Configuration + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + NUMTOF + TOF Frequency + 0 + 5 + read-write + + + BDMMODE + BDM Mode + 6 + 2 + read-write + + + GTBEEN + Global Time Base Enable + 9 + 1 + read-write + + + 0 + Use of an external global time base is disabled. + #0 + + + 1 + Use of an external global time base is enabled. + #1 + + + + + GTBEOUT + Global Time Base Output + 10 + 1 + read-write + + + 0 + A global time base signal generation is disabled. + #0 + + + 1 + A global time base signal generation is enabled. + #1 + + + + + + + FLTPOL + FTM Fault Input Polarity + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + FLT0POL + Fault Input 0 Polarity + 0 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT1POL + Fault Input 1 Polarity + 1 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT2POL + Fault Input 2 Polarity + 2 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT3POL + Fault Input 3 Polarity + 3 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + + + SYNCONF + Synchronization Configuration + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + HWTRIGMODE + Hardware Trigger Mode + 0 + 1 + read-write + + + 0 + FTM clears the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #0 + + + 1 + FTM does not clear the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #1 + + + + + CNTINC + CNTIN Register Synchronization + 2 + 1 + read-write + + + 0 + CNTIN register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + CNTIN register is updated with its buffer value by the PWM synchronization. + #1 + + + + + INVC + INVCTRL Register Synchronization + 4 + 1 + read-write + + + 0 + INVCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + INVCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SWOC + SWOCTRL Register Synchronization + 5 + 1 + read-write + + + 0 + SWOCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + SWOCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SYNCMODE + Synchronization Mode + 7 + 1 + read-write + + + 0 + Legacy PWM synchronization is selected. + #0 + + + 1 + Enhanced PWM synchronization is selected. + #1 + + + + + SWRSTCNT + FTM counter synchronization is activated by the software trigger. + 8 + 1 + read-write + + + 0 + The software trigger does not activate the FTM counter synchronization. + #0 + + + 1 + The software trigger activates the FTM counter synchronization. + #1 + + + + + SWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by the software trigger. + 9 + 1 + read-write + + + 0 + The software trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + The software trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + SWOM + Output mask synchronization is activated by the software trigger. + 10 + 1 + read-write + + + 0 + The software trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + The software trigger activates the OUTMASK register synchronization. + #1 + + + + + SWINVC + Inverting control synchronization is activated by the software trigger. + 11 + 1 + read-write + + + 0 + The software trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + The software trigger activates the INVCTRL register synchronization. + #1 + + + + + SWSOC + Software output control synchronization is activated by the software trigger. + 12 + 1 + read-write + + + 0 + The software trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + The software trigger activates the SWOCTRL register synchronization. + #1 + + + + + HWRSTCNT + FTM counter synchronization is activated by a hardware trigger. + 16 + 1 + read-write + + + 0 + A hardware trigger does not activate the FTM counter synchronization. + #0 + + + 1 + A hardware trigger activates the FTM counter synchronization. + #1 + + + + + HWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by a hardware trigger. + 17 + 1 + read-write + + + 0 + A hardware trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + A hardware trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + HWOM + Output mask synchronization is activated by a hardware trigger. + 18 + 1 + read-write + + + 0 + A hardware trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + A hardware trigger activates the OUTMASK register synchronization. + #1 + + + + + HWINVC + Inverting control synchronization is activated by a hardware trigger. + 19 + 1 + read-write + + + 0 + A hardware trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the INVCTRL register synchronization. + #1 + + + + + HWSOC + Software output control synchronization is activated by a hardware trigger. + 20 + 1 + read-write + + + 0 + A hardware trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the SWOCTRL register synchronization. + #1 + + + + + + + INVCTRL + FTM Inverting Control + 0x90 + 32 + read-write + 0 + 0xFFFFFFFF + + + INV0EN + Pair Channels 0 Inverting Enable + 0 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV1EN + Pair Channels 1 Inverting Enable + 1 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV2EN + Pair Channels 2 Inverting Enable + 2 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV3EN + Pair Channels 3 Inverting Enable + 3 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + + + SWOCTRL + FTM Software Output Control + 0x94 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OC + Channel 0 Software Output Control Enable + 0 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH1OC + Channel 1 Software Output Control Enable + 1 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH2OC + Channel 2 Software Output Control Enable + 2 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH3OC + Channel 3 Software Output Control Enable + 3 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH4OC + Channel 4 Software Output Control Enable + 4 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH5OC + Channel 5 Software Output Control Enable + 5 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH6OC + Channel 6 Software Output Control Enable + 6 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH7OC + Channel 7 Software Output Control Enable + 7 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH0OCV + Channel 0 Software Output Control Value + 8 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH1OCV + Channel 1 Software Output Control Value + 9 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH2OCV + Channel 2 Software Output Control Value + 10 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH3OCV + Channel 3 Software Output Control Value + 11 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH4OCV + Channel 4 Software Output Control Value + 12 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH5OCV + Channel 5 Software Output Control Value + 13 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH6OCV + Channel 6 Software Output Control Value + 14 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH7OCV + Channel 7 Software Output Control Value + 15 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + + + PWMLOAD + FTM PWM Load + 0x98 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0SEL + Channel 0 Select + 0 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH1SEL + Channel 1 Select + 1 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH2SEL + Channel 2 Select + 2 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH3SEL + Channel 3 Select + 3 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH4SEL + Channel 4 Select + 4 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH5SEL + Channel 5 Select + 5 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH6SEL + Channel 6 Select + 6 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH7SEL + Channel 7 Select + 7 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + LDOK + Load Enable + 9 + 1 + read-write + + + 0 + Loading updated values is disabled. + #0 + + + 1 + Loading updated values is enabled. + #1 + + + + + + + + + FTM1 + FlexTimer Module + FTM + FTM1_ + 0x40039000 + + 0 + 0x9C + registers + + + FTM1 + 43 + + + + SC + Status And Control + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Prescale Factor Selection + 0 + 3 + read-write + + + 000 + Divide by 1 + #000 + + + 001 + Divide by 2 + #001 + + + 010 + Divide by 4 + #010 + + + 011 + Divide by 8 + #011 + + + 100 + Divide by 16 + #100 + + + 101 + Divide by 32 + #101 + + + 110 + Divide by 64 + #110 + + + 111 + Divide by 128 + #111 + + + + + CLKS + Clock Source Selection + 3 + 2 + read-write + + + 00 + No clock selected. This in effect disables the FTM counter. + #00 + + + 01 + System clock + #01 + + + 10 + Fixed frequency clock + #10 + + + 11 + External clock + #11 + + + + + CPWMS + Center-Aligned PWM Select + 5 + 1 + read-write + + + 0 + FTM counter operates in Up Counting mode. + #0 + + + 1 + FTM counter operates in Up-Down Counting mode. + #1 + + + + + TOIE + Timer Overflow Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable TOF interrupts. Use software polling. + #0 + + + 1 + Enable TOF interrupts. An interrupt is generated when TOF equals one. + #1 + + + + + TOF + Timer Overflow Flag + 7 + 1 + read-only + + + 0 + FTM counter has not overflowed. + #0 + + + 1 + FTM counter has overflowed. + #1 + + + + + + + CNT + Counter + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + COUNT + Counter Value + 0 + 16 + read-write + + + + + MOD + Modulo + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + MOD + Modulo Value + 0 + 16 + read-write + + + + + 2 + 0x8 + 0,1 + C%sSC + Channel (n) Status And Control + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + DMA + DMA Enable + 0 + 1 + read-write + + + 0 + Disable DMA transfers. + #0 + + + 1 + Enable DMA transfers. + #1 + + + + + ELSA + Edge or Level Select + 2 + 1 + read-write + + + ELSB + Edge or Level Select + 3 + 1 + read-write + + + MSA + Channel Mode Select + 4 + 1 + read-write + + + MSB + Channel Mode Select + 5 + 1 + read-write + + + CHIE + Channel Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable channel interrupts. Use software polling. + #0 + + + 1 + Enable channel interrupts. + #1 + + + + + CHF + Channel Flag + 7 + 1 + read-only + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + 2 + 0x8 + 0,1 + C%sV + Channel (n) Value + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + VAL + Channel Value + 0 + 16 + read-write + + + + + CNTIN + Counter Initial Value + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + INIT + Initial Value Of The FTM Counter + 0 + 16 + read-write + + + + + STATUS + Capture And Compare Status + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0F + Channel 0 Flag + 0 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH1F + Channel 1 Flag + 1 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH2F + Channel 2 Flag + 2 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH3F + Channel 3 Flag + 3 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH4F + Channel 4 Flag + 4 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH5F + Channel 5 Flag + 5 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH6F + Channel 6 Flag + 6 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH7F + Channel 7 Flag + 7 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + MODE + Features Mode Selection + 0x54 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + FTMEN + FTM Enable + 0 + 1 + read-write + + + 0 + Only the TPM-compatible registers (first set of registers) can be used without any restriction. Do not use the FTM-specific registers. + #0 + + + 1 + All registers including the FTM-specific registers (second set of registers) are available for use with no restrictions. + #1 + + + + + INIT + Initialize The Channels Output + 1 + 1 + read-write + + + WPDIS + Write Protection Disable + 2 + 1 + read-write + + + 0 + Write protection is enabled. + #0 + + + 1 + Write protection is disabled. + #1 + + + + + PWMSYNC + PWM Synchronization Mode + 3 + 1 + read-write + + + 0 + No restrictions. Software and hardware triggers can be used by MOD, CnV, OUTMASK, and FTM counter synchronization. + #0 + + + 1 + Software trigger can only be used by MOD and CnV synchronization, and hardware triggers can only be used by OUTMASK and FTM counter synchronization. + #1 + + + + + CAPTEST + Capture Test Mode Enable + 4 + 1 + read-write + + + 0 + Capture test mode is disabled. + #0 + + + 1 + Capture test mode is enabled. + #1 + + + + + FAULTM + Fault Control Mode + 5 + 2 + read-write + + + 00 + Fault control is disabled for all channels. + #00 + + + 01 + Fault control is enabled for even channels only (channels 0, 2, 4, and 6), and the selected mode is the manual fault clearing. + #01 + + + 10 + Fault control is enabled for all channels, and the selected mode is the manual fault clearing. + #10 + + + 11 + Fault control is enabled for all channels, and the selected mode is the automatic fault clearing. + #11 + + + + + FAULTIE + Fault Interrupt Enable + 7 + 1 + read-write + + + 0 + Fault control interrupt is disabled. + #0 + + + 1 + Fault control interrupt is enabled. + #1 + + + + + + + SYNC + Synchronization + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + CNTMIN + Minimum Loading Point Enable + 0 + 1 + read-write + + + 0 + The minimum loading point is disabled. + #0 + + + 1 + The minimum loading point is enabled. + #1 + + + + + CNTMAX + Maximum Loading Point Enable + 1 + 1 + read-write + + + 0 + The maximum loading point is disabled. + #0 + + + 1 + The maximum loading point is enabled. + #1 + + + + + REINIT + FTM Counter Reinitialization By Synchronization (FTM counter synchronization) + 2 + 1 + read-write + + + 0 + FTM counter continues to count normally. + #0 + + + 1 + FTM counter is updated with its initial value when the selected trigger is detected. + #1 + + + + + SYNCHOM + Output Mask Synchronization + 3 + 1 + read-write + + + 0 + OUTMASK register is updated with the value of its buffer in all rising edges of the system clock. + #0 + + + 1 + OUTMASK register is updated with the value of its buffer only by the PWM synchronization. + #1 + + + + + TRIG0 + PWM Synchronization Hardware Trigger 0 + 4 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG1 + PWM Synchronization Hardware Trigger 1 + 5 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG2 + PWM Synchronization Hardware Trigger 2 + 6 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + SWSYNC + PWM Synchronization Software Trigger + 7 + 1 + read-write + + + 0 + Software trigger is not selected. + #0 + + + 1 + Software trigger is selected. + #1 + + + + + + + OUTINIT + Initial State For Channels Output + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OI + Channel 0 Output Initialization Value + 0 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH1OI + Channel 1 Output Initialization Value + 1 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH2OI + Channel 2 Output Initialization Value + 2 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH3OI + Channel 3 Output Initialization Value + 3 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH4OI + Channel 4 Output Initialization Value + 4 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH5OI + Channel 5 Output Initialization Value + 5 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH6OI + Channel 6 Output Initialization Value + 6 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH7OI + Channel 7 Output Initialization Value + 7 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + + + OUTMASK + Output Mask + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OM + Channel 0 Output Mask + 0 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH1OM + Channel 1 Output Mask + 1 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH2OM + Channel 2 Output Mask + 2 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH3OM + Channel 3 Output Mask + 3 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH4OM + Channel 4 Output Mask + 4 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH5OM + Channel 5 Output Mask + 5 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH6OM + Channel 6 Output Mask + 6 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH7OM + Channel 7 Output Mask + 7 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + + + COMBINE + Function For Linked Channels + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + COMBINE0 + Combine Channels For n = 0 + 0 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP0 + Complement Of Channel (n) For n = 0 + 1 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN0 + Dual Edge Capture Mode Enable For n = 0 + 2 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP0 + Dual Edge Capture Mode Captures For n = 0 + 3 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN0 + Deadtime Enable For n = 0 + 4 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN0 + Synchronization Enable For n = 0 + 5 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN0 + Fault Control Enable For n = 0 + 6 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE1 + Combine Channels For n = 2 + 8 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP1 + Complement Of Channel (n) For n = 2 + 9 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN1 + Dual Edge Capture Mode Enable For n = 2 + 10 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP1 + Dual Edge Capture Mode Captures For n = 2 + 11 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN1 + Deadtime Enable For n = 2 + 12 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN1 + Synchronization Enable For n = 2 + 13 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN1 + Fault Control Enable For n = 2 + 14 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE2 + Combine Channels For n = 4 + 16 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP2 + Complement Of Channel (n) For n = 4 + 17 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN2 + Dual Edge Capture Mode Enable For n = 4 + 18 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP2 + Dual Edge Capture Mode Captures For n = 4 + 19 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN2 + Deadtime Enable For n = 4 + 20 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN2 + Synchronization Enable For n = 4 + 21 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN2 + Fault Control Enable For n = 4 + 22 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE3 + Combine Channels For n = 6 + 24 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP3 + Complement Of Channel (n) for n = 6 + 25 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN3 + Dual Edge Capture Mode Enable For n = 6 + 26 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP3 + Dual Edge Capture Mode Captures For n = 6 + 27 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN3 + Deadtime Enable For n = 6 + 28 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN3 + Synchronization Enable For n = 6 + 29 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN3 + Fault Control Enable For n = 6 + 30 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + + + DEADTIME + Deadtime Insertion Control + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + DTVAL + Deadtime Value + 0 + 6 + read-write + + + DTPS + Deadtime Prescaler Value + 6 + 2 + read-write + + + 0x + Divide the system clock by 1. + #0x + + + 10 + Divide the system clock by 4. + #10 + + + 11 + Divide the system clock by 16. + #11 + + + + + + + EXTTRIG + FTM External Trigger + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH2TRIG + Channel 2 Trigger Enable + 0 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH3TRIG + Channel 3 Trigger Enable + 1 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH4TRIG + Channel 4 Trigger Enable + 2 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH5TRIG + Channel 5 Trigger Enable + 3 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH0TRIG + Channel 0 Trigger Enable + 4 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH1TRIG + Channel 1 Trigger Enable + 5 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + INITTRIGEN + Initialization Trigger Enable + 6 + 1 + read-write + + + 0 + The generation of initialization trigger is disabled. + #0 + + + 1 + The generation of initialization trigger is enabled. + #1 + + + + + TRIGF + Channel Trigger Flag + 7 + 1 + read-only + + + 0 + No channel trigger was generated. + #0 + + + 1 + A channel trigger was generated. + #1 + + + + + + + POL + Channels Polarity + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + POL0 + Channel 0 Polarity + 0 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL1 + Channel 1 Polarity + 1 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL2 + Channel 2 Polarity + 2 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL3 + Channel 3 Polarity + 3 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL4 + Channel 4 Polarity + 4 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL5 + Channel 5 Polarity + 5 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL6 + Channel 6 Polarity + 6 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL7 + Channel 7 Polarity + 7 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + + + FMS + Fault Mode Status + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULTF0 + Fault Detection Flag 0 + 0 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF1 + Fault Detection Flag 1 + 1 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF2 + Fault Detection Flag 2 + 2 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF3 + Fault Detection Flag 3 + 3 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTIN + Fault Inputs + 5 + 1 + read-only + + + 0 + The logic OR of the enabled fault inputs is 0. + #0 + + + 1 + The logic OR of the enabled fault inputs is 1. + #1 + + + + + WPEN + Write Protection Enable + 6 + 1 + read-write + + + 0 + Write protection is disabled. Write protected bits can be written. + #0 + + + 1 + Write protection is enabled. Write protected bits cannot be written. + #1 + + + + + FAULTF + Fault Detection Flag + 7 + 1 + read-only + + + 0 + No fault condition was detected. + #0 + + + 1 + A fault condition was detected. + #1 + + + + + + + FILTER + Input Capture Filter Control + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0FVAL + Channel 0 Input Filter + 0 + 4 + read-write + + + CH1FVAL + Channel 1 Input Filter + 4 + 4 + read-write + + + CH2FVAL + Channel 2 Input Filter + 8 + 4 + read-write + + + CH3FVAL + Channel 3 Input Filter + 12 + 4 + read-write + + + + + FLTCTRL + Fault Control + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULT0EN + Fault Input 0 Enable + 0 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT1EN + Fault Input 1 Enable + 1 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT2EN + Fault Input 2 Enable + 2 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT3EN + Fault Input 3 Enable + 3 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FFLTR0EN + Fault Input 0 Filter Enable + 4 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR1EN + Fault Input 1 Filter Enable + 5 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR2EN + Fault Input 2 Filter Enable + 6 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR3EN + Fault Input 3 Filter Enable + 7 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFVAL + Fault Input Filter + 8 + 4 + read-write + + + + + QDCTRL + Quadrature Decoder Control And Status + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + QUADEN + Quadrature Decoder Mode Enable + 0 + 1 + read-write + + + 0 + Quadrature Decoder mode is disabled. + #0 + + + 1 + Quadrature Decoder mode is enabled. + #1 + + + + + TOFDIR + Timer Overflow Direction In Quadrature Decoder Mode + 1 + 1 + read-only + + + 0 + TOF bit was set on the bottom of counting. There was an FTM counter decrement and FTM counter changes from its minimum value (CNTIN register) to its maximum value (MOD register). + #0 + + + 1 + TOF bit was set on the top of counting. There was an FTM counter increment and FTM counter changes from its maximum value (MOD register) to its minimum value (CNTIN register). + #1 + + + + + QUADIR + FTM Counter Direction In Quadrature Decoder Mode + 2 + 1 + read-only + + + 0 + Counting direction is decreasing (FTM counter decrement). + #0 + + + 1 + Counting direction is increasing (FTM counter increment). + #1 + + + + + QUADMODE + Quadrature Decoder Mode + 3 + 1 + read-write + + + 0 + Phase A and phase B encoding mode. + #0 + + + 1 + Count and direction encoding mode. + #1 + + + + + PHBPOL + Phase B Input Polarity + 4 + 1 + read-write + + + 0 + Normal polarity. Phase B input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase B input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHAPOL + Phase A Input Polarity + 5 + 1 + read-write + + + 0 + Normal polarity. Phase A input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase A input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHBFLTREN + Phase B Input Filter Enable + 6 + 1 + read-write + + + 0 + Phase B input filter is disabled. + #0 + + + 1 + Phase B input filter is enabled. + #1 + + + + + PHAFLTREN + Phase A Input Filter Enable + 7 + 1 + read-write + + + 0 + Phase A input filter is disabled. + #0 + + + 1 + Phase A input filter is enabled. + #1 + + + + + + + CONF + Configuration + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + NUMTOF + TOF Frequency + 0 + 5 + read-write + + + BDMMODE + BDM Mode + 6 + 2 + read-write + + + GTBEEN + Global Time Base Enable + 9 + 1 + read-write + + + 0 + Use of an external global time base is disabled. + #0 + + + 1 + Use of an external global time base is enabled. + #1 + + + + + GTBEOUT + Global Time Base Output + 10 + 1 + read-write + + + 0 + A global time base signal generation is disabled. + #0 + + + 1 + A global time base signal generation is enabled. + #1 + + + + + + + FLTPOL + FTM Fault Input Polarity + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + FLT0POL + Fault Input 0 Polarity + 0 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT1POL + Fault Input 1 Polarity + 1 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT2POL + Fault Input 2 Polarity + 2 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT3POL + Fault Input 3 Polarity + 3 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + + + SYNCONF + Synchronization Configuration + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + HWTRIGMODE + Hardware Trigger Mode + 0 + 1 + read-write + + + 0 + FTM clears the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #0 + + + 1 + FTM does not clear the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #1 + + + + + CNTINC + CNTIN Register Synchronization + 2 + 1 + read-write + + + 0 + CNTIN register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + CNTIN register is updated with its buffer value by the PWM synchronization. + #1 + + + + + INVC + INVCTRL Register Synchronization + 4 + 1 + read-write + + + 0 + INVCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + INVCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SWOC + SWOCTRL Register Synchronization + 5 + 1 + read-write + + + 0 + SWOCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + SWOCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SYNCMODE + Synchronization Mode + 7 + 1 + read-write + + + 0 + Legacy PWM synchronization is selected. + #0 + + + 1 + Enhanced PWM synchronization is selected. + #1 + + + + + SWRSTCNT + FTM counter synchronization is activated by the software trigger. + 8 + 1 + read-write + + + 0 + The software trigger does not activate the FTM counter synchronization. + #0 + + + 1 + The software trigger activates the FTM counter synchronization. + #1 + + + + + SWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by the software trigger. + 9 + 1 + read-write + + + 0 + The software trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + The software trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + SWOM + Output mask synchronization is activated by the software trigger. + 10 + 1 + read-write + + + 0 + The software trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + The software trigger activates the OUTMASK register synchronization. + #1 + + + + + SWINVC + Inverting control synchronization is activated by the software trigger. + 11 + 1 + read-write + + + 0 + The software trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + The software trigger activates the INVCTRL register synchronization. + #1 + + + + + SWSOC + Software output control synchronization is activated by the software trigger. + 12 + 1 + read-write + + + 0 + The software trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + The software trigger activates the SWOCTRL register synchronization. + #1 + + + + + HWRSTCNT + FTM counter synchronization is activated by a hardware trigger. + 16 + 1 + read-write + + + 0 + A hardware trigger does not activate the FTM counter synchronization. + #0 + + + 1 + A hardware trigger activates the FTM counter synchronization. + #1 + + + + + HWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by a hardware trigger. + 17 + 1 + read-write + + + 0 + A hardware trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + A hardware trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + HWOM + Output mask synchronization is activated by a hardware trigger. + 18 + 1 + read-write + + + 0 + A hardware trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + A hardware trigger activates the OUTMASK register synchronization. + #1 + + + + + HWINVC + Inverting control synchronization is activated by a hardware trigger. + 19 + 1 + read-write + + + 0 + A hardware trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the INVCTRL register synchronization. + #1 + + + + + HWSOC + Software output control synchronization is activated by a hardware trigger. + 20 + 1 + read-write + + + 0 + A hardware trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the SWOCTRL register synchronization. + #1 + + + + + + + INVCTRL + FTM Inverting Control + 0x90 + 32 + read-write + 0 + 0xFFFFFFFF + + + INV0EN + Pair Channels 0 Inverting Enable + 0 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV1EN + Pair Channels 1 Inverting Enable + 1 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV2EN + Pair Channels 2 Inverting Enable + 2 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV3EN + Pair Channels 3 Inverting Enable + 3 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + + + SWOCTRL + FTM Software Output Control + 0x94 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OC + Channel 0 Software Output Control Enable + 0 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH1OC + Channel 1 Software Output Control Enable + 1 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH2OC + Channel 2 Software Output Control Enable + 2 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH3OC + Channel 3 Software Output Control Enable + 3 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH4OC + Channel 4 Software Output Control Enable + 4 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH5OC + Channel 5 Software Output Control Enable + 5 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH6OC + Channel 6 Software Output Control Enable + 6 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH7OC + Channel 7 Software Output Control Enable + 7 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH0OCV + Channel 0 Software Output Control Value + 8 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH1OCV + Channel 1 Software Output Control Value + 9 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH2OCV + Channel 2 Software Output Control Value + 10 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH3OCV + Channel 3 Software Output Control Value + 11 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH4OCV + Channel 4 Software Output Control Value + 12 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH5OCV + Channel 5 Software Output Control Value + 13 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH6OCV + Channel 6 Software Output Control Value + 14 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH7OCV + Channel 7 Software Output Control Value + 15 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + + + PWMLOAD + FTM PWM Load + 0x98 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0SEL + Channel 0 Select + 0 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH1SEL + Channel 1 Select + 1 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH2SEL + Channel 2 Select + 2 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH3SEL + Channel 3 Select + 3 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH4SEL + Channel 4 Select + 4 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH5SEL + Channel 5 Select + 5 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH6SEL + Channel 6 Select + 6 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH7SEL + Channel 7 Select + 7 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + LDOK + Load Enable + 9 + 1 + read-write + + + 0 + Loading updated values is disabled. + #0 + + + 1 + Loading updated values is enabled. + #1 + + + + + + + + + FTM2 + FlexTimer Module + FTM + FTM2_ + 0x4003A000 + + 0 + 0x9C + registers + + + FTM2 + 44 + + + + SC + Status And Control + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Prescale Factor Selection + 0 + 3 + read-write + + + 000 + Divide by 1 + #000 + + + 001 + Divide by 2 + #001 + + + 010 + Divide by 4 + #010 + + + 011 + Divide by 8 + #011 + + + 100 + Divide by 16 + #100 + + + 101 + Divide by 32 + #101 + + + 110 + Divide by 64 + #110 + + + 111 + Divide by 128 + #111 + + + + + CLKS + Clock Source Selection + 3 + 2 + read-write + + + 00 + No clock selected. This in effect disables the FTM counter. + #00 + + + 01 + System clock + #01 + + + 10 + Fixed frequency clock + #10 + + + 11 + External clock + #11 + + + + + CPWMS + Center-Aligned PWM Select + 5 + 1 + read-write + + + 0 + FTM counter operates in Up Counting mode. + #0 + + + 1 + FTM counter operates in Up-Down Counting mode. + #1 + + + + + TOIE + Timer Overflow Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable TOF interrupts. Use software polling. + #0 + + + 1 + Enable TOF interrupts. An interrupt is generated when TOF equals one. + #1 + + + + + TOF + Timer Overflow Flag + 7 + 1 + read-only + + + 0 + FTM counter has not overflowed. + #0 + + + 1 + FTM counter has overflowed. + #1 + + + + + + + CNT + Counter + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + COUNT + Counter Value + 0 + 16 + read-write + + + + + MOD + Modulo + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + MOD + Modulo Value + 0 + 16 + read-write + + + + + 2 + 0x8 + 0,1 + C%sSC + Channel (n) Status And Control + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + DMA + DMA Enable + 0 + 1 + read-write + + + 0 + Disable DMA transfers. + #0 + + + 1 + Enable DMA transfers. + #1 + + + + + ELSA + Edge or Level Select + 2 + 1 + read-write + + + ELSB + Edge or Level Select + 3 + 1 + read-write + + + MSA + Channel Mode Select + 4 + 1 + read-write + + + MSB + Channel Mode Select + 5 + 1 + read-write + + + CHIE + Channel Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable channel interrupts. Use software polling. + #0 + + + 1 + Enable channel interrupts. + #1 + + + + + CHF + Channel Flag + 7 + 1 + read-only + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + 2 + 0x8 + 0,1 + C%sV + Channel (n) Value + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + VAL + Channel Value + 0 + 16 + read-write + + + + + CNTIN + Counter Initial Value + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + INIT + Initial Value Of The FTM Counter + 0 + 16 + read-write + + + + + STATUS + Capture And Compare Status + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0F + Channel 0 Flag + 0 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH1F + Channel 1 Flag + 1 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH2F + Channel 2 Flag + 2 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH3F + Channel 3 Flag + 3 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH4F + Channel 4 Flag + 4 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH5F + Channel 5 Flag + 5 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH6F + Channel 6 Flag + 6 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH7F + Channel 7 Flag + 7 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + MODE + Features Mode Selection + 0x54 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + FTMEN + FTM Enable + 0 + 1 + read-write + + + 0 + Only the TPM-compatible registers (first set of registers) can be used without any restriction. Do not use the FTM-specific registers. + #0 + + + 1 + All registers including the FTM-specific registers (second set of registers) are available for use with no restrictions. + #1 + + + + + INIT + Initialize The Channels Output + 1 + 1 + read-write + + + WPDIS + Write Protection Disable + 2 + 1 + read-write + + + 0 + Write protection is enabled. + #0 + + + 1 + Write protection is disabled. + #1 + + + + + PWMSYNC + PWM Synchronization Mode + 3 + 1 + read-write + + + 0 + No restrictions. Software and hardware triggers can be used by MOD, CnV, OUTMASK, and FTM counter synchronization. + #0 + + + 1 + Software trigger can only be used by MOD and CnV synchronization, and hardware triggers can only be used by OUTMASK and FTM counter synchronization. + #1 + + + + + CAPTEST + Capture Test Mode Enable + 4 + 1 + read-write + + + 0 + Capture test mode is disabled. + #0 + + + 1 + Capture test mode is enabled. + #1 + + + + + FAULTM + Fault Control Mode + 5 + 2 + read-write + + + 00 + Fault control is disabled for all channels. + #00 + + + 01 + Fault control is enabled for even channels only (channels 0, 2, 4, and 6), and the selected mode is the manual fault clearing. + #01 + + + 10 + Fault control is enabled for all channels, and the selected mode is the manual fault clearing. + #10 + + + 11 + Fault control is enabled for all channels, and the selected mode is the automatic fault clearing. + #11 + + + + + FAULTIE + Fault Interrupt Enable + 7 + 1 + read-write + + + 0 + Fault control interrupt is disabled. + #0 + + + 1 + Fault control interrupt is enabled. + #1 + + + + + + + SYNC + Synchronization + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + CNTMIN + Minimum Loading Point Enable + 0 + 1 + read-write + + + 0 + The minimum loading point is disabled. + #0 + + + 1 + The minimum loading point is enabled. + #1 + + + + + CNTMAX + Maximum Loading Point Enable + 1 + 1 + read-write + + + 0 + The maximum loading point is disabled. + #0 + + + 1 + The maximum loading point is enabled. + #1 + + + + + REINIT + FTM Counter Reinitialization By Synchronization (FTM counter synchronization) + 2 + 1 + read-write + + + 0 + FTM counter continues to count normally. + #0 + + + 1 + FTM counter is updated with its initial value when the selected trigger is detected. + #1 + + + + + SYNCHOM + Output Mask Synchronization + 3 + 1 + read-write + + + 0 + OUTMASK register is updated with the value of its buffer in all rising edges of the system clock. + #0 + + + 1 + OUTMASK register is updated with the value of its buffer only by the PWM synchronization. + #1 + + + + + TRIG0 + PWM Synchronization Hardware Trigger 0 + 4 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG1 + PWM Synchronization Hardware Trigger 1 + 5 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG2 + PWM Synchronization Hardware Trigger 2 + 6 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + SWSYNC + PWM Synchronization Software Trigger + 7 + 1 + read-write + + + 0 + Software trigger is not selected. + #0 + + + 1 + Software trigger is selected. + #1 + + + + + + + OUTINIT + Initial State For Channels Output + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OI + Channel 0 Output Initialization Value + 0 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH1OI + Channel 1 Output Initialization Value + 1 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH2OI + Channel 2 Output Initialization Value + 2 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH3OI + Channel 3 Output Initialization Value + 3 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH4OI + Channel 4 Output Initialization Value + 4 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH5OI + Channel 5 Output Initialization Value + 5 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH6OI + Channel 6 Output Initialization Value + 6 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH7OI + Channel 7 Output Initialization Value + 7 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + + + OUTMASK + Output Mask + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OM + Channel 0 Output Mask + 0 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH1OM + Channel 1 Output Mask + 1 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH2OM + Channel 2 Output Mask + 2 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH3OM + Channel 3 Output Mask + 3 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH4OM + Channel 4 Output Mask + 4 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH5OM + Channel 5 Output Mask + 5 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH6OM + Channel 6 Output Mask + 6 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH7OM + Channel 7 Output Mask + 7 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + + + COMBINE + Function For Linked Channels + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + COMBINE0 + Combine Channels For n = 0 + 0 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP0 + Complement Of Channel (n) For n = 0 + 1 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN0 + Dual Edge Capture Mode Enable For n = 0 + 2 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP0 + Dual Edge Capture Mode Captures For n = 0 + 3 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN0 + Deadtime Enable For n = 0 + 4 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN0 + Synchronization Enable For n = 0 + 5 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN0 + Fault Control Enable For n = 0 + 6 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE1 + Combine Channels For n = 2 + 8 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP1 + Complement Of Channel (n) For n = 2 + 9 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN1 + Dual Edge Capture Mode Enable For n = 2 + 10 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP1 + Dual Edge Capture Mode Captures For n = 2 + 11 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN1 + Deadtime Enable For n = 2 + 12 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN1 + Synchronization Enable For n = 2 + 13 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN1 + Fault Control Enable For n = 2 + 14 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE2 + Combine Channels For n = 4 + 16 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP2 + Complement Of Channel (n) For n = 4 + 17 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN2 + Dual Edge Capture Mode Enable For n = 4 + 18 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP2 + Dual Edge Capture Mode Captures For n = 4 + 19 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN2 + Deadtime Enable For n = 4 + 20 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN2 + Synchronization Enable For n = 4 + 21 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN2 + Fault Control Enable For n = 4 + 22 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE3 + Combine Channels For n = 6 + 24 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP3 + Complement Of Channel (n) for n = 6 + 25 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN3 + Dual Edge Capture Mode Enable For n = 6 + 26 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP3 + Dual Edge Capture Mode Captures For n = 6 + 27 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN3 + Deadtime Enable For n = 6 + 28 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN3 + Synchronization Enable For n = 6 + 29 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN3 + Fault Control Enable For n = 6 + 30 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + + + DEADTIME + Deadtime Insertion Control + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + DTVAL + Deadtime Value + 0 + 6 + read-write + + + DTPS + Deadtime Prescaler Value + 6 + 2 + read-write + + + 0x + Divide the system clock by 1. + #0x + + + 10 + Divide the system clock by 4. + #10 + + + 11 + Divide the system clock by 16. + #11 + + + + + + + EXTTRIG + FTM External Trigger + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH2TRIG + Channel 2 Trigger Enable + 0 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH3TRIG + Channel 3 Trigger Enable + 1 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH4TRIG + Channel 4 Trigger Enable + 2 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH5TRIG + Channel 5 Trigger Enable + 3 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH0TRIG + Channel 0 Trigger Enable + 4 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH1TRIG + Channel 1 Trigger Enable + 5 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + INITTRIGEN + Initialization Trigger Enable + 6 + 1 + read-write + + + 0 + The generation of initialization trigger is disabled. + #0 + + + 1 + The generation of initialization trigger is enabled. + #1 + + + + + TRIGF + Channel Trigger Flag + 7 + 1 + read-only + + + 0 + No channel trigger was generated. + #0 + + + 1 + A channel trigger was generated. + #1 + + + + + + + POL + Channels Polarity + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + POL0 + Channel 0 Polarity + 0 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL1 + Channel 1 Polarity + 1 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL2 + Channel 2 Polarity + 2 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL3 + Channel 3 Polarity + 3 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL4 + Channel 4 Polarity + 4 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL5 + Channel 5 Polarity + 5 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL6 + Channel 6 Polarity + 6 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL7 + Channel 7 Polarity + 7 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + + + FMS + Fault Mode Status + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULTF0 + Fault Detection Flag 0 + 0 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF1 + Fault Detection Flag 1 + 1 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF2 + Fault Detection Flag 2 + 2 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF3 + Fault Detection Flag 3 + 3 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTIN + Fault Inputs + 5 + 1 + read-only + + + 0 + The logic OR of the enabled fault inputs is 0. + #0 + + + 1 + The logic OR of the enabled fault inputs is 1. + #1 + + + + + WPEN + Write Protection Enable + 6 + 1 + read-write + + + 0 + Write protection is disabled. Write protected bits can be written. + #0 + + + 1 + Write protection is enabled. Write protected bits cannot be written. + #1 + + + + + FAULTF + Fault Detection Flag + 7 + 1 + read-only + + + 0 + No fault condition was detected. + #0 + + + 1 + A fault condition was detected. + #1 + + + + + + + FILTER + Input Capture Filter Control + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0FVAL + Channel 0 Input Filter + 0 + 4 + read-write + + + CH1FVAL + Channel 1 Input Filter + 4 + 4 + read-write + + + CH2FVAL + Channel 2 Input Filter + 8 + 4 + read-write + + + CH3FVAL + Channel 3 Input Filter + 12 + 4 + read-write + + + + + FLTCTRL + Fault Control + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULT0EN + Fault Input 0 Enable + 0 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT1EN + Fault Input 1 Enable + 1 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT2EN + Fault Input 2 Enable + 2 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT3EN + Fault Input 3 Enable + 3 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FFLTR0EN + Fault Input 0 Filter Enable + 4 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR1EN + Fault Input 1 Filter Enable + 5 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR2EN + Fault Input 2 Filter Enable + 6 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR3EN + Fault Input 3 Filter Enable + 7 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFVAL + Fault Input Filter + 8 + 4 + read-write + + + + + QDCTRL + Quadrature Decoder Control And Status + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + QUADEN + Quadrature Decoder Mode Enable + 0 + 1 + read-write + + + 0 + Quadrature Decoder mode is disabled. + #0 + + + 1 + Quadrature Decoder mode is enabled. + #1 + + + + + TOFDIR + Timer Overflow Direction In Quadrature Decoder Mode + 1 + 1 + read-only + + + 0 + TOF bit was set on the bottom of counting. There was an FTM counter decrement and FTM counter changes from its minimum value (CNTIN register) to its maximum value (MOD register). + #0 + + + 1 + TOF bit was set on the top of counting. There was an FTM counter increment and FTM counter changes from its maximum value (MOD register) to its minimum value (CNTIN register). + #1 + + + + + QUADIR + FTM Counter Direction In Quadrature Decoder Mode + 2 + 1 + read-only + + + 0 + Counting direction is decreasing (FTM counter decrement). + #0 + + + 1 + Counting direction is increasing (FTM counter increment). + #1 + + + + + QUADMODE + Quadrature Decoder Mode + 3 + 1 + read-write + + + 0 + Phase A and phase B encoding mode. + #0 + + + 1 + Count and direction encoding mode. + #1 + + + + + PHBPOL + Phase B Input Polarity + 4 + 1 + read-write + + + 0 + Normal polarity. Phase B input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase B input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHAPOL + Phase A Input Polarity + 5 + 1 + read-write + + + 0 + Normal polarity. Phase A input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase A input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHBFLTREN + Phase B Input Filter Enable + 6 + 1 + read-write + + + 0 + Phase B input filter is disabled. + #0 + + + 1 + Phase B input filter is enabled. + #1 + + + + + PHAFLTREN + Phase A Input Filter Enable + 7 + 1 + read-write + + + 0 + Phase A input filter is disabled. + #0 + + + 1 + Phase A input filter is enabled. + #1 + + + + + + + CONF + Configuration + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + NUMTOF + TOF Frequency + 0 + 5 + read-write + + + BDMMODE + BDM Mode + 6 + 2 + read-write + + + GTBEEN + Global Time Base Enable + 9 + 1 + read-write + + + 0 + Use of an external global time base is disabled. + #0 + + + 1 + Use of an external global time base is enabled. + #1 + + + + + GTBEOUT + Global Time Base Output + 10 + 1 + read-write + + + 0 + A global time base signal generation is disabled. + #0 + + + 1 + A global time base signal generation is enabled. + #1 + + + + + + + FLTPOL + FTM Fault Input Polarity + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + FLT0POL + Fault Input 0 Polarity + 0 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT1POL + Fault Input 1 Polarity + 1 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT2POL + Fault Input 2 Polarity + 2 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT3POL + Fault Input 3 Polarity + 3 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + + + SYNCONF + Synchronization Configuration + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + HWTRIGMODE + Hardware Trigger Mode + 0 + 1 + read-write + + + 0 + FTM clears the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #0 + + + 1 + FTM does not clear the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #1 + + + + + CNTINC + CNTIN Register Synchronization + 2 + 1 + read-write + + + 0 + CNTIN register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + CNTIN register is updated with its buffer value by the PWM synchronization. + #1 + + + + + INVC + INVCTRL Register Synchronization + 4 + 1 + read-write + + + 0 + INVCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + INVCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SWOC + SWOCTRL Register Synchronization + 5 + 1 + read-write + + + 0 + SWOCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + SWOCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SYNCMODE + Synchronization Mode + 7 + 1 + read-write + + + 0 + Legacy PWM synchronization is selected. + #0 + + + 1 + Enhanced PWM synchronization is selected. + #1 + + + + + SWRSTCNT + FTM counter synchronization is activated by the software trigger. + 8 + 1 + read-write + + + 0 + The software trigger does not activate the FTM counter synchronization. + #0 + + + 1 + The software trigger activates the FTM counter synchronization. + #1 + + + + + SWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by the software trigger. + 9 + 1 + read-write + + + 0 + The software trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + The software trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + SWOM + Output mask synchronization is activated by the software trigger. + 10 + 1 + read-write + + + 0 + The software trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + The software trigger activates the OUTMASK register synchronization. + #1 + + + + + SWINVC + Inverting control synchronization is activated by the software trigger. + 11 + 1 + read-write + + + 0 + The software trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + The software trigger activates the INVCTRL register synchronization. + #1 + + + + + SWSOC + Software output control synchronization is activated by the software trigger. + 12 + 1 + read-write + + + 0 + The software trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + The software trigger activates the SWOCTRL register synchronization. + #1 + + + + + HWRSTCNT + FTM counter synchronization is activated by a hardware trigger. + 16 + 1 + read-write + + + 0 + A hardware trigger does not activate the FTM counter synchronization. + #0 + + + 1 + A hardware trigger activates the FTM counter synchronization. + #1 + + + + + HWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by a hardware trigger. + 17 + 1 + read-write + + + 0 + A hardware trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + A hardware trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + HWOM + Output mask synchronization is activated by a hardware trigger. + 18 + 1 + read-write + + + 0 + A hardware trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + A hardware trigger activates the OUTMASK register synchronization. + #1 + + + + + HWINVC + Inverting control synchronization is activated by a hardware trigger. + 19 + 1 + read-write + + + 0 + A hardware trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the INVCTRL register synchronization. + #1 + + + + + HWSOC + Software output control synchronization is activated by a hardware trigger. + 20 + 1 + read-write + + + 0 + A hardware trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the SWOCTRL register synchronization. + #1 + + + + + + + INVCTRL + FTM Inverting Control + 0x90 + 32 + read-write + 0 + 0xFFFFFFFF + + + INV0EN + Pair Channels 0 Inverting Enable + 0 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV1EN + Pair Channels 1 Inverting Enable + 1 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV2EN + Pair Channels 2 Inverting Enable + 2 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV3EN + Pair Channels 3 Inverting Enable + 3 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + + + SWOCTRL + FTM Software Output Control + 0x94 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OC + Channel 0 Software Output Control Enable + 0 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH1OC + Channel 1 Software Output Control Enable + 1 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH2OC + Channel 2 Software Output Control Enable + 2 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH3OC + Channel 3 Software Output Control Enable + 3 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH4OC + Channel 4 Software Output Control Enable + 4 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH5OC + Channel 5 Software Output Control Enable + 5 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH6OC + Channel 6 Software Output Control Enable + 6 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH7OC + Channel 7 Software Output Control Enable + 7 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH0OCV + Channel 0 Software Output Control Value + 8 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH1OCV + Channel 1 Software Output Control Value + 9 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH2OCV + Channel 2 Software Output Control Value + 10 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH3OCV + Channel 3 Software Output Control Value + 11 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH4OCV + Channel 4 Software Output Control Value + 12 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH5OCV + Channel 5 Software Output Control Value + 13 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH6OCV + Channel 6 Software Output Control Value + 14 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH7OCV + Channel 7 Software Output Control Value + 15 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + + + PWMLOAD + FTM PWM Load + 0x98 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0SEL + Channel 0 Select + 0 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH1SEL + Channel 1 Select + 1 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH2SEL + Channel 2 Select + 2 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH3SEL + Channel 3 Select + 3 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH4SEL + Channel 4 Select + 4 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH5SEL + Channel 5 Select + 5 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH6SEL + Channel 6 Select + 6 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH7SEL + Channel 7 Select + 7 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + LDOK + Load Enable + 9 + 1 + read-write + + + 0 + Loading updated values is disabled. + #0 + + + 1 + Loading updated values is enabled. + #1 + + + + + + + + + FTM3 + FlexTimer Module + FTM + FTM3_ + 0x400B9000 + + 0 + 0x9C + registers + + + FTM3 + 71 + + + + SC + Status And Control + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Prescale Factor Selection + 0 + 3 + read-write + + + 000 + Divide by 1 + #000 + + + 001 + Divide by 2 + #001 + + + 010 + Divide by 4 + #010 + + + 011 + Divide by 8 + #011 + + + 100 + Divide by 16 + #100 + + + 101 + Divide by 32 + #101 + + + 110 + Divide by 64 + #110 + + + 111 + Divide by 128 + #111 + + + + + CLKS + Clock Source Selection + 3 + 2 + read-write + + + 00 + No clock selected. This in effect disables the FTM counter. + #00 + + + 01 + System clock + #01 + + + 10 + Fixed frequency clock + #10 + + + 11 + External clock + #11 + + + + + CPWMS + Center-Aligned PWM Select + 5 + 1 + read-write + + + 0 + FTM counter operates in Up Counting mode. + #0 + + + 1 + FTM counter operates in Up-Down Counting mode. + #1 + + + + + TOIE + Timer Overflow Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable TOF interrupts. Use software polling. + #0 + + + 1 + Enable TOF interrupts. An interrupt is generated when TOF equals one. + #1 + + + + + TOF + Timer Overflow Flag + 7 + 1 + read-only + + + 0 + FTM counter has not overflowed. + #0 + + + 1 + FTM counter has overflowed. + #1 + + + + + + + CNT + Counter + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + COUNT + Counter Value + 0 + 16 + read-write + + + + + MOD + Modulo + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + MOD + Modulo Value + 0 + 16 + read-write + + + + + 8 + 0x8 + 0,1,2,3,4,5,6,7 + C%sSC + Channel (n) Status And Control + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + DMA + DMA Enable + 0 + 1 + read-write + + + 0 + Disable DMA transfers. + #0 + + + 1 + Enable DMA transfers. + #1 + + + + + ELSA + Edge or Level Select + 2 + 1 + read-write + + + ELSB + Edge or Level Select + 3 + 1 + read-write + + + MSA + Channel Mode Select + 4 + 1 + read-write + + + MSB + Channel Mode Select + 5 + 1 + read-write + + + CHIE + Channel Interrupt Enable + 6 + 1 + read-write + + + 0 + Disable channel interrupts. Use software polling. + #0 + + + 1 + Enable channel interrupts. + #1 + + + + + CHF + Channel Flag + 7 + 1 + read-only + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + 8 + 0x8 + 0,1,2,3,4,5,6,7 + C%sV + Channel (n) Value + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + VAL + Channel Value + 0 + 16 + read-write + + + + + CNTIN + Counter Initial Value + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + INIT + Initial Value Of The FTM Counter + 0 + 16 + read-write + + + + + STATUS + Capture And Compare Status + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0F + Channel 0 Flag + 0 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH1F + Channel 1 Flag + 1 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH2F + Channel 2 Flag + 2 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH3F + Channel 3 Flag + 3 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH4F + Channel 4 Flag + 4 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH5F + Channel 5 Flag + 5 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH6F + Channel 6 Flag + 6 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + CH7F + Channel 7 Flag + 7 + 1 + read-write + + + 0 + No channel event has occurred. + #0 + + + 1 + A channel event has occurred. + #1 + + + + + + + MODE + Features Mode Selection + 0x54 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + FTMEN + FTM Enable + 0 + 1 + read-write + + + 0 + Only the TPM-compatible registers (first set of registers) can be used without any restriction. Do not use the FTM-specific registers. + #0 + + + 1 + All registers including the FTM-specific registers (second set of registers) are available for use with no restrictions. + #1 + + + + + INIT + Initialize The Channels Output + 1 + 1 + read-write + + + WPDIS + Write Protection Disable + 2 + 1 + read-write + + + 0 + Write protection is enabled. + #0 + + + 1 + Write protection is disabled. + #1 + + + + + PWMSYNC + PWM Synchronization Mode + 3 + 1 + read-write + + + 0 + No restrictions. Software and hardware triggers can be used by MOD, CnV, OUTMASK, and FTM counter synchronization. + #0 + + + 1 + Software trigger can only be used by MOD and CnV synchronization, and hardware triggers can only be used by OUTMASK and FTM counter synchronization. + #1 + + + + + CAPTEST + Capture Test Mode Enable + 4 + 1 + read-write + + + 0 + Capture test mode is disabled. + #0 + + + 1 + Capture test mode is enabled. + #1 + + + + + FAULTM + Fault Control Mode + 5 + 2 + read-write + + + 00 + Fault control is disabled for all channels. + #00 + + + 01 + Fault control is enabled for even channels only (channels 0, 2, 4, and 6), and the selected mode is the manual fault clearing. + #01 + + + 10 + Fault control is enabled for all channels, and the selected mode is the manual fault clearing. + #10 + + + 11 + Fault control is enabled for all channels, and the selected mode is the automatic fault clearing. + #11 + + + + + FAULTIE + Fault Interrupt Enable + 7 + 1 + read-write + + + 0 + Fault control interrupt is disabled. + #0 + + + 1 + Fault control interrupt is enabled. + #1 + + + + + + + SYNC + Synchronization + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + CNTMIN + Minimum Loading Point Enable + 0 + 1 + read-write + + + 0 + The minimum loading point is disabled. + #0 + + + 1 + The minimum loading point is enabled. + #1 + + + + + CNTMAX + Maximum Loading Point Enable + 1 + 1 + read-write + + + 0 + The maximum loading point is disabled. + #0 + + + 1 + The maximum loading point is enabled. + #1 + + + + + REINIT + FTM Counter Reinitialization By Synchronization (FTM counter synchronization) + 2 + 1 + read-write + + + 0 + FTM counter continues to count normally. + #0 + + + 1 + FTM counter is updated with its initial value when the selected trigger is detected. + #1 + + + + + SYNCHOM + Output Mask Synchronization + 3 + 1 + read-write + + + 0 + OUTMASK register is updated with the value of its buffer in all rising edges of the system clock. + #0 + + + 1 + OUTMASK register is updated with the value of its buffer only by the PWM synchronization. + #1 + + + + + TRIG0 + PWM Synchronization Hardware Trigger 0 + 4 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG1 + PWM Synchronization Hardware Trigger 1 + 5 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + TRIG2 + PWM Synchronization Hardware Trigger 2 + 6 + 1 + read-write + + + 0 + Trigger is disabled. + #0 + + + 1 + Trigger is enabled. + #1 + + + + + SWSYNC + PWM Synchronization Software Trigger + 7 + 1 + read-write + + + 0 + Software trigger is not selected. + #0 + + + 1 + Software trigger is selected. + #1 + + + + + + + OUTINIT + Initial State For Channels Output + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OI + Channel 0 Output Initialization Value + 0 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH1OI + Channel 1 Output Initialization Value + 1 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH2OI + Channel 2 Output Initialization Value + 2 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH3OI + Channel 3 Output Initialization Value + 3 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH4OI + Channel 4 Output Initialization Value + 4 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH5OI + Channel 5 Output Initialization Value + 5 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH6OI + Channel 6 Output Initialization Value + 6 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + CH7OI + Channel 7 Output Initialization Value + 7 + 1 + read-write + + + 0 + The initialization value is 0. + #0 + + + 1 + The initialization value is 1. + #1 + + + + + + + OUTMASK + Output Mask + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OM + Channel 0 Output Mask + 0 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH1OM + Channel 1 Output Mask + 1 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH2OM + Channel 2 Output Mask + 2 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH3OM + Channel 3 Output Mask + 3 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH4OM + Channel 4 Output Mask + 4 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH5OM + Channel 5 Output Mask + 5 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH6OM + Channel 6 Output Mask + 6 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + CH7OM + Channel 7 Output Mask + 7 + 1 + read-write + + + 0 + Channel output is not masked. It continues to operate normally. + #0 + + + 1 + Channel output is masked. It is forced to its inactive state. + #1 + + + + + + + COMBINE + Function For Linked Channels + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + COMBINE0 + Combine Channels For n = 0 + 0 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP0 + Complement Of Channel (n) For n = 0 + 1 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN0 + Dual Edge Capture Mode Enable For n = 0 + 2 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP0 + Dual Edge Capture Mode Captures For n = 0 + 3 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN0 + Deadtime Enable For n = 0 + 4 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN0 + Synchronization Enable For n = 0 + 5 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN0 + Fault Control Enable For n = 0 + 6 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE1 + Combine Channels For n = 2 + 8 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP1 + Complement Of Channel (n) For n = 2 + 9 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN1 + Dual Edge Capture Mode Enable For n = 2 + 10 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP1 + Dual Edge Capture Mode Captures For n = 2 + 11 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN1 + Deadtime Enable For n = 2 + 12 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN1 + Synchronization Enable For n = 2 + 13 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN1 + Fault Control Enable For n = 2 + 14 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE2 + Combine Channels For n = 4 + 16 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP2 + Complement Of Channel (n) For n = 4 + 17 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN2 + Dual Edge Capture Mode Enable For n = 4 + 18 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP2 + Dual Edge Capture Mode Captures For n = 4 + 19 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN2 + Deadtime Enable For n = 4 + 20 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN2 + Synchronization Enable For n = 4 + 21 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN2 + Fault Control Enable For n = 4 + 22 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + COMBINE3 + Combine Channels For n = 6 + 24 + 1 + read-write + + + 0 + Channels (n) and (n+1) are independent. + #0 + + + 1 + Channels (n) and (n+1) are combined. + #1 + + + + + COMP3 + Complement Of Channel (n) for n = 6 + 25 + 1 + read-write + + + 0 + The channel (n+1) output is the same as the channel (n) output. + #0 + + + 1 + The channel (n+1) output is the complement of the channel (n) output. + #1 + + + + + DECAPEN3 + Dual Edge Capture Mode Enable For n = 6 + 26 + 1 + read-write + + + 0 + The Dual Edge Capture mode in this pair of channels is disabled. + #0 + + + 1 + The Dual Edge Capture mode in this pair of channels is enabled. + #1 + + + + + DECAP3 + Dual Edge Capture Mode Captures For n = 6 + 27 + 1 + read-write + + + 0 + The dual edge captures are inactive. + #0 + + + 1 + The dual edge captures are active. + #1 + + + + + DTEN3 + Deadtime Enable For n = 6 + 28 + 1 + read-write + + + 0 + The deadtime insertion in this pair of channels is disabled. + #0 + + + 1 + The deadtime insertion in this pair of channels is enabled. + #1 + + + + + SYNCEN3 + Synchronization Enable For n = 6 + 29 + 1 + read-write + + + 0 + The PWM synchronization in this pair of channels is disabled. + #0 + + + 1 + The PWM synchronization in this pair of channels is enabled. + #1 + + + + + FAULTEN3 + Fault Control Enable For n = 6 + 30 + 1 + read-write + + + 0 + The fault control in this pair of channels is disabled. + #0 + + + 1 + The fault control in this pair of channels is enabled. + #1 + + + + + + + DEADTIME + Deadtime Insertion Control + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + DTVAL + Deadtime Value + 0 + 6 + read-write + + + DTPS + Deadtime Prescaler Value + 6 + 2 + read-write + + + 0x + Divide the system clock by 1. + #0x + + + 10 + Divide the system clock by 4. + #10 + + + 11 + Divide the system clock by 16. + #11 + + + + + + + EXTTRIG + FTM External Trigger + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + CH2TRIG + Channel 2 Trigger Enable + 0 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH3TRIG + Channel 3 Trigger Enable + 1 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH4TRIG + Channel 4 Trigger Enable + 2 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH5TRIG + Channel 5 Trigger Enable + 3 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH0TRIG + Channel 0 Trigger Enable + 4 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + CH1TRIG + Channel 1 Trigger Enable + 5 + 1 + read-write + + + 0 + The generation of the channel trigger is disabled. + #0 + + + 1 + The generation of the channel trigger is enabled. + #1 + + + + + INITTRIGEN + Initialization Trigger Enable + 6 + 1 + read-write + + + 0 + The generation of initialization trigger is disabled. + #0 + + + 1 + The generation of initialization trigger is enabled. + #1 + + + + + TRIGF + Channel Trigger Flag + 7 + 1 + read-only + + + 0 + No channel trigger was generated. + #0 + + + 1 + A channel trigger was generated. + #1 + + + + + + + POL + Channels Polarity + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + POL0 + Channel 0 Polarity + 0 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL1 + Channel 1 Polarity + 1 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL2 + Channel 2 Polarity + 2 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL3 + Channel 3 Polarity + 3 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL4 + Channel 4 Polarity + 4 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL5 + Channel 5 Polarity + 5 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL6 + Channel 6 Polarity + 6 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + POL7 + Channel 7 Polarity + 7 + 1 + read-write + + + 0 + The channel polarity is active high. + #0 + + + 1 + The channel polarity is active low. + #1 + + + + + + + FMS + Fault Mode Status + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULTF0 + Fault Detection Flag 0 + 0 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF1 + Fault Detection Flag 1 + 1 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF2 + Fault Detection Flag 2 + 2 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTF3 + Fault Detection Flag 3 + 3 + 1 + read-only + + + 0 + No fault condition was detected at the fault input. + #0 + + + 1 + A fault condition was detected at the fault input. + #1 + + + + + FAULTIN + Fault Inputs + 5 + 1 + read-only + + + 0 + The logic OR of the enabled fault inputs is 0. + #0 + + + 1 + The logic OR of the enabled fault inputs is 1. + #1 + + + + + WPEN + Write Protection Enable + 6 + 1 + read-write + + + 0 + Write protection is disabled. Write protected bits can be written. + #0 + + + 1 + Write protection is enabled. Write protected bits cannot be written. + #1 + + + + + FAULTF + Fault Detection Flag + 7 + 1 + read-only + + + 0 + No fault condition was detected. + #0 + + + 1 + A fault condition was detected. + #1 + + + + + + + FILTER + Input Capture Filter Control + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0FVAL + Channel 0 Input Filter + 0 + 4 + read-write + + + CH1FVAL + Channel 1 Input Filter + 4 + 4 + read-write + + + CH2FVAL + Channel 2 Input Filter + 8 + 4 + read-write + + + CH3FVAL + Channel 3 Input Filter + 12 + 4 + read-write + + + + + FLTCTRL + Fault Control + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + FAULT0EN + Fault Input 0 Enable + 0 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT1EN + Fault Input 1 Enable + 1 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT2EN + Fault Input 2 Enable + 2 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FAULT3EN + Fault Input 3 Enable + 3 + 1 + read-write + + + 0 + Fault input is disabled. + #0 + + + 1 + Fault input is enabled. + #1 + + + + + FFLTR0EN + Fault Input 0 Filter Enable + 4 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR1EN + Fault Input 1 Filter Enable + 5 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR2EN + Fault Input 2 Filter Enable + 6 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFLTR3EN + Fault Input 3 Filter Enable + 7 + 1 + read-write + + + 0 + Fault input filter is disabled. + #0 + + + 1 + Fault input filter is enabled. + #1 + + + + + FFVAL + Fault Input Filter + 8 + 4 + read-write + + + + + QDCTRL + Quadrature Decoder Control And Status + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + QUADEN + Quadrature Decoder Mode Enable + 0 + 1 + read-write + + + 0 + Quadrature Decoder mode is disabled. + #0 + + + 1 + Quadrature Decoder mode is enabled. + #1 + + + + + TOFDIR + Timer Overflow Direction In Quadrature Decoder Mode + 1 + 1 + read-only + + + 0 + TOF bit was set on the bottom of counting. There was an FTM counter decrement and FTM counter changes from its minimum value (CNTIN register) to its maximum value (MOD register). + #0 + + + 1 + TOF bit was set on the top of counting. There was an FTM counter increment and FTM counter changes from its maximum value (MOD register) to its minimum value (CNTIN register). + #1 + + + + + QUADIR + FTM Counter Direction In Quadrature Decoder Mode + 2 + 1 + read-only + + + 0 + Counting direction is decreasing (FTM counter decrement). + #0 + + + 1 + Counting direction is increasing (FTM counter increment). + #1 + + + + + QUADMODE + Quadrature Decoder Mode + 3 + 1 + read-write + + + 0 + Phase A and phase B encoding mode. + #0 + + + 1 + Count and direction encoding mode. + #1 + + + + + PHBPOL + Phase B Input Polarity + 4 + 1 + read-write + + + 0 + Normal polarity. Phase B input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase B input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHAPOL + Phase A Input Polarity + 5 + 1 + read-write + + + 0 + Normal polarity. Phase A input signal is not inverted before identifying the rising and falling edges of this signal. + #0 + + + 1 + Inverted polarity. Phase A input signal is inverted before identifying the rising and falling edges of this signal. + #1 + + + + + PHBFLTREN + Phase B Input Filter Enable + 6 + 1 + read-write + + + 0 + Phase B input filter is disabled. + #0 + + + 1 + Phase B input filter is enabled. + #1 + + + + + PHAFLTREN + Phase A Input Filter Enable + 7 + 1 + read-write + + + 0 + Phase A input filter is disabled. + #0 + + + 1 + Phase A input filter is enabled. + #1 + + + + + + + CONF + Configuration + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + NUMTOF + TOF Frequency + 0 + 5 + read-write + + + BDMMODE + BDM Mode + 6 + 2 + read-write + + + GTBEEN + Global Time Base Enable + 9 + 1 + read-write + + + 0 + Use of an external global time base is disabled. + #0 + + + 1 + Use of an external global time base is enabled. + #1 + + + + + GTBEOUT + Global Time Base Output + 10 + 1 + read-write + + + 0 + A global time base signal generation is disabled. + #0 + + + 1 + A global time base signal generation is enabled. + #1 + + + + + + + FLTPOL + FTM Fault Input Polarity + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + FLT0POL + Fault Input 0 Polarity + 0 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT1POL + Fault Input 1 Polarity + 1 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT2POL + Fault Input 2 Polarity + 2 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + FLT3POL + Fault Input 3 Polarity + 3 + 1 + read-write + + + 0 + The fault input polarity is active high. A 1 at the fault input indicates a fault. + #0 + + + 1 + The fault input polarity is active low. A 0 at the fault input indicates a fault. + #1 + + + + + + + SYNCONF + Synchronization Configuration + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + HWTRIGMODE + Hardware Trigger Mode + 0 + 1 + read-write + + + 0 + FTM clears the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #0 + + + 1 + FTM does not clear the TRIGj bit when the hardware trigger j is detected, where j = 0, 1,2. + #1 + + + + + CNTINC + CNTIN Register Synchronization + 2 + 1 + read-write + + + 0 + CNTIN register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + CNTIN register is updated with its buffer value by the PWM synchronization. + #1 + + + + + INVC + INVCTRL Register Synchronization + 4 + 1 + read-write + + + 0 + INVCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + INVCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SWOC + SWOCTRL Register Synchronization + 5 + 1 + read-write + + + 0 + SWOCTRL register is updated with its buffer value at all rising edges of system clock. + #0 + + + 1 + SWOCTRL register is updated with its buffer value by the PWM synchronization. + #1 + + + + + SYNCMODE + Synchronization Mode + 7 + 1 + read-write + + + 0 + Legacy PWM synchronization is selected. + #0 + + + 1 + Enhanced PWM synchronization is selected. + #1 + + + + + SWRSTCNT + FTM counter synchronization is activated by the software trigger. + 8 + 1 + read-write + + + 0 + The software trigger does not activate the FTM counter synchronization. + #0 + + + 1 + The software trigger activates the FTM counter synchronization. + #1 + + + + + SWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by the software trigger. + 9 + 1 + read-write + + + 0 + The software trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + The software trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + SWOM + Output mask synchronization is activated by the software trigger. + 10 + 1 + read-write + + + 0 + The software trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + The software trigger activates the OUTMASK register synchronization. + #1 + + + + + SWINVC + Inverting control synchronization is activated by the software trigger. + 11 + 1 + read-write + + + 0 + The software trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + The software trigger activates the INVCTRL register synchronization. + #1 + + + + + SWSOC + Software output control synchronization is activated by the software trigger. + 12 + 1 + read-write + + + 0 + The software trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + The software trigger activates the SWOCTRL register synchronization. + #1 + + + + + HWRSTCNT + FTM counter synchronization is activated by a hardware trigger. + 16 + 1 + read-write + + + 0 + A hardware trigger does not activate the FTM counter synchronization. + #0 + + + 1 + A hardware trigger activates the FTM counter synchronization. + #1 + + + + + HWWRBUF + MOD, CNTIN, and CV registers synchronization is activated by a hardware trigger. + 17 + 1 + read-write + + + 0 + A hardware trigger does not activate MOD, CNTIN, and CV registers synchronization. + #0 + + + 1 + A hardware trigger activates MOD, CNTIN, and CV registers synchronization. + #1 + + + + + HWOM + Output mask synchronization is activated by a hardware trigger. + 18 + 1 + read-write + + + 0 + A hardware trigger does not activate the OUTMASK register synchronization. + #0 + + + 1 + A hardware trigger activates the OUTMASK register synchronization. + #1 + + + + + HWINVC + Inverting control synchronization is activated by a hardware trigger. + 19 + 1 + read-write + + + 0 + A hardware trigger does not activate the INVCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the INVCTRL register synchronization. + #1 + + + + + HWSOC + Software output control synchronization is activated by a hardware trigger. + 20 + 1 + read-write + + + 0 + A hardware trigger does not activate the SWOCTRL register synchronization. + #0 + + + 1 + A hardware trigger activates the SWOCTRL register synchronization. + #1 + + + + + + + INVCTRL + FTM Inverting Control + 0x90 + 32 + read-write + 0 + 0xFFFFFFFF + + + INV0EN + Pair Channels 0 Inverting Enable + 0 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV1EN + Pair Channels 1 Inverting Enable + 1 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV2EN + Pair Channels 2 Inverting Enable + 2 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + INV3EN + Pair Channels 3 Inverting Enable + 3 + 1 + read-write + + + 0 + Inverting is disabled. + #0 + + + 1 + Inverting is enabled. + #1 + + + + + + + SWOCTRL + FTM Software Output Control + 0x94 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0OC + Channel 0 Software Output Control Enable + 0 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH1OC + Channel 1 Software Output Control Enable + 1 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH2OC + Channel 2 Software Output Control Enable + 2 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH3OC + Channel 3 Software Output Control Enable + 3 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH4OC + Channel 4 Software Output Control Enable + 4 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH5OC + Channel 5 Software Output Control Enable + 5 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH6OC + Channel 6 Software Output Control Enable + 6 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH7OC + Channel 7 Software Output Control Enable + 7 + 1 + read-write + + + 0 + The channel output is not affected by software output control. + #0 + + + 1 + The channel output is affected by software output control. + #1 + + + + + CH0OCV + Channel 0 Software Output Control Value + 8 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH1OCV + Channel 1 Software Output Control Value + 9 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH2OCV + Channel 2 Software Output Control Value + 10 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH3OCV + Channel 3 Software Output Control Value + 11 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH4OCV + Channel 4 Software Output Control Value + 12 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH5OCV + Channel 5 Software Output Control Value + 13 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH6OCV + Channel 6 Software Output Control Value + 14 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + CH7OCV + Channel 7 Software Output Control Value + 15 + 1 + read-write + + + 0 + The software output control forces 0 to the channel output. + #0 + + + 1 + The software output control forces 1 to the channel output. + #1 + + + + + + + PWMLOAD + FTM PWM Load + 0x98 + 32 + read-write + 0 + 0xFFFFFFFF + + + CH0SEL + Channel 0 Select + 0 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH1SEL + Channel 1 Select + 1 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH2SEL + Channel 2 Select + 2 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH3SEL + Channel 3 Select + 3 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH4SEL + Channel 4 Select + 4 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH5SEL + Channel 5 Select + 5 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH6SEL + Channel 6 Select + 6 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + CH7SEL + Channel 7 Select + 7 + 1 + read-write + + + 0 + Do not include the channel in the matching process. + #0 + + + 1 + Include the channel in the matching process. + #1 + + + + + LDOK + Load Enable + 9 + 1 + read-write + + + 0 + Loading updated values is disabled. + #0 + + + 1 + Loading updated values is enabled. + #1 + + + + + + + + + ADC0 + Analog-to-Digital Converter + ADC + ADC0_ + 0x4003B000 + + 0 + 0x70 + registers + + + ADC0 + 39 + + + + 2 + 0x4 + A,B + SC1%s + ADC Status and Control Registers 1 + 0 + 32 + read-write + 0x1F + 0xFFFFFFFF + + + ADCH + Input channel select + 0 + 5 + read-write + + + 00000 + When DIFF=0, DADP0 is selected as input; when DIFF=1, DAD0 is selected as input. + #00000 + + + 00001 + When DIFF=0, DADP1 is selected as input; when DIFF=1, DAD1 is selected as input. + #00001 + + + 00010 + When DIFF=0, DADP2 is selected as input; when DIFF=1, DAD2 is selected as input. + #00010 + + + 00011 + When DIFF=0, DADP3 is selected as input; when DIFF=1, DAD3 is selected as input. + #00011 + + + 00100 + When DIFF=0, AD4 is selected as input; when DIFF=1, it is reserved. + #00100 + + + 00101 + When DIFF=0, AD5 is selected as input; when DIFF=1, it is reserved. + #00101 + + + 00110 + When DIFF=0, AD6 is selected as input; when DIFF=1, it is reserved. + #00110 + + + 00111 + When DIFF=0, AD7 is selected as input; when DIFF=1, it is reserved. + #00111 + + + 01000 + When DIFF=0, AD8 is selected as input; when DIFF=1, it is reserved. + #01000 + + + 01001 + When DIFF=0, AD9 is selected as input; when DIFF=1, it is reserved. + #01001 + + + 01010 + When DIFF=0, AD10 is selected as input; when DIFF=1, it is reserved. + #01010 + + + 01011 + When DIFF=0, AD11 is selected as input; when DIFF=1, it is reserved. + #01011 + + + 01100 + When DIFF=0, AD12 is selected as input; when DIFF=1, it is reserved. + #01100 + + + 01101 + When DIFF=0, AD13 is selected as input; when DIFF=1, it is reserved. + #01101 + + + 01110 + When DIFF=0, AD14 is selected as input; when DIFF=1, it is reserved. + #01110 + + + 01111 + When DIFF=0, AD15 is selected as input; when DIFF=1, it is reserved. + #01111 + + + 10000 + When DIFF=0, AD16 is selected as input; when DIFF=1, it is reserved. + #10000 + + + 10001 + When DIFF=0, AD17 is selected as input; when DIFF=1, it is reserved. + #10001 + + + 10010 + When DIFF=0, AD18 is selected as input; when DIFF=1, it is reserved. + #10010 + + + 10011 + When DIFF=0, AD19 is selected as input; when DIFF=1, it is reserved. + #10011 + + + 10100 + When DIFF=0, AD20 is selected as input; when DIFF=1, it is reserved. + #10100 + + + 10101 + When DIFF=0, AD21 is selected as input; when DIFF=1, it is reserved. + #10101 + + + 10110 + When DIFF=0, AD22 is selected as input; when DIFF=1, it is reserved. + #10110 + + + 10111 + When DIFF=0, AD23 is selected as input; when DIFF=1, it is reserved. + #10111 + + + 11010 + When DIFF=0, Temp Sensor (single-ended) is selected as input; when DIFF=1, Temp Sensor (differential) is selected as input. + #11010 + + + 11011 + When DIFF=0, Bandgap (single-ended) is selected as input; when DIFF=1, Bandgap (differential) is selected as input. + #11011 + + + 11101 + When DIFF=0,VREFSH is selected as input; when DIFF=1, -VREFSH (differential) is selected as input. Voltage reference selected is determined by SC2[REFSEL]. + #11101 + + + 11110 + When DIFF=0,VREFSL is selected as input; when DIFF=1, it is reserved. Voltage reference selected is determined by SC2[REFSEL]. + #11110 + + + 11111 + Module is disabled. + #11111 + + + + + DIFF + Differential Mode Enable + 5 + 1 + read-write + + + 0 + Single-ended conversions and input channels are selected. + #0 + + + 1 + Differential conversions and input channels are selected. + #1 + + + + + AIEN + Interrupt Enable + 6 + 1 + read-write + + + 0 + Conversion complete interrupt is disabled. + #0 + + + 1 + Conversion complete interrupt is enabled. + #1 + + + + + COCO + Conversion Complete Flag + 7 + 1 + read-only + + + 0 + Conversion is not completed. + #0 + + + 1 + Conversion is completed. + #1 + + + + + + + CFG1 + ADC Configuration Register 1 + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + ADICLK + Input Clock Select + 0 + 2 + read-write + + + 00 + Bus clock + #00 + + + 01 + Alternate clock 2 (ALTCLK2) + #01 + + + 10 + Alternate clock (ALTCLK) + #10 + + + 11 + Asynchronous clock (ADACK) + #11 + + + + + MODE + Conversion mode selection + 2 + 2 + read-write + + + 00 + When DIFF=0:It is single-ended 8-bit conversion; when DIFF=1, it is differential 9-bit conversion with 2's complement output. + #00 + + + 01 + When DIFF=0:It is single-ended 12-bit conversion ; when DIFF=1, it is differential 13-bit conversion with 2's complement output. + #01 + + + 10 + When DIFF=0:It is single-ended 10-bit conversion. ; when DIFF=1, it is differential 11-bit conversion with 2's complement output + #10 + + + 11 + When DIFF=0:It is single-ended 16-bit conversion..; when DIFF=1, it is differential 16-bit conversion with 2's complement output + #11 + + + + + ADLSMP + Sample Time Configuration + 4 + 1 + read-write + + + 0 + Short sample time. + #0 + + + 1 + Long sample time. + #1 + + + + + ADIV + Clock Divide Select + 5 + 2 + read-write + + + 00 + The divide ratio is 1 and the clock rate is input clock. + #00 + + + 01 + The divide ratio is 2 and the clock rate is (input clock)/2. + #01 + + + 10 + The divide ratio is 4 and the clock rate is (input clock)/4. + #10 + + + 11 + The divide ratio is 8 and the clock rate is (input clock)/8. + #11 + + + + + ADLPC + Low-Power Configuration + 7 + 1 + read-write + + + 0 + Normal power configuration. + #0 + + + 1 + Low-power configuration. The power is reduced at the expense of maximum clock speed. + #1 + + + + + + + CFG2 + ADC Configuration Register 2 + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + ADLSTS + Long Sample Time Select + 0 + 2 + read-write + + + 00 + Default longest sample time; 20 extra ADCK cycles; 24 ADCK cycles total. + #00 + + + 01 + 12 extra ADCK cycles; 16 ADCK cycles total sample time. + #01 + + + 10 + 6 extra ADCK cycles; 10 ADCK cycles total sample time. + #10 + + + 11 + 2 extra ADCK cycles; 6 ADCK cycles total sample time. + #11 + + + + + ADHSC + High-Speed Configuration + 2 + 1 + read-write + + + 0 + Normal conversion sequence selected. + #0 + + + 1 + High-speed conversion sequence selected with 2 additional ADCK cycles to total conversion time. + #1 + + + + + ADACKEN + Asynchronous Clock Output Enable + 3 + 1 + read-write + + + 0 + Asynchronous clock output disabled; Asynchronous clock is enabled only if selected by ADICLK and a conversion is active. + #0 + + + 1 + Asynchronous clock and clock output is enabled regardless of the state of the ADC. + #1 + + + + + MUXSEL + ADC Mux Select + 4 + 1 + read-write + + + 0 + ADxxa channels are selected. + #0 + + + 1 + ADxxb channels are selected. + #1 + + + + + + + 2 + 0x4 + A,B + R%s + ADC Data Result Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + D + Data result + 0 + 16 + read-only + + + + + 2 + 0x4 + 1,2 + CV%s + Compare Value Registers + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + CV + Compare Value. + 0 + 16 + read-write + + + + + SC2 + Status and Control Register 2 + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + REFSEL + Voltage Reference Selection + 0 + 2 + read-write + + + 00 + Default voltage reference pin pair, that is, external pins VREFH and VREFL + #00 + + + 01 + Alternate reference pair, that is, VALTH and VALTL . This pair may be additional external pins or internal sources depending on the MCU configuration. See the chip configuration information for details specific to this MCU + #01 + + + + + DMAEN + DMA Enable + 2 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled and will assert the ADC DMA request during an ADC conversion complete event noted when any of the SC1n[COCO] flags is asserted. + #1 + + + + + ACREN + Compare Function Range Enable + 3 + 1 + read-write + + + 0 + Range function disabled. Only CV1 is compared. + #0 + + + 1 + Range function enabled. Both CV1 and CV2 are compared. + #1 + + + + + ACFGT + Compare Function Greater Than Enable + 4 + 1 + read-write + + + 0 + Configures less than threshold, outside range not inclusive and inside range not inclusive; functionality based on the values placed in CV1 and CV2. + #0 + + + 1 + Configures greater than or equal to threshold, outside and inside ranges inclusive; functionality based on the values placed in CV1 and CV2. + #1 + + + + + ACFE + Compare Function Enable + 5 + 1 + read-write + + + 0 + Compare function disabled. + #0 + + + 1 + Compare function enabled. + #1 + + + + + ADTRG + Conversion Trigger Select + 6 + 1 + read-write + + + 0 + Software trigger selected. + #0 + + + 1 + Hardware trigger selected. + #1 + + + + + ADACT + Conversion Active + 7 + 1 + read-only + + + 0 + Conversion not in progress. + #0 + + + 1 + Conversion in progress. + #1 + + + + + + + SC3 + Status and Control Register 3 + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + AVGS + Hardware Average Select + 0 + 2 + read-write + + + 00 + 4 samples averaged. + #00 + + + 01 + 8 samples averaged. + #01 + + + 10 + 16 samples averaged. + #10 + + + 11 + 32 samples averaged. + #11 + + + + + AVGE + Hardware Average Enable + 2 + 1 + read-write + + + 0 + Hardware average function disabled. + #0 + + + 1 + Hardware average function enabled. + #1 + + + + + ADCO + Continuous Conversion Enable + 3 + 1 + read-write + + + 0 + One conversion or one set of conversions if the hardware average function is enabled, that is, AVGE=1, after initiating a conversion. + #0 + + + 1 + Continuous conversions or sets of conversions if the hardware average function is enabled, that is, AVGE=1, after initiating a conversion. + #1 + + + + + CALF + Calibration Failed Flag + 6 + 1 + read-write + + + 0 + Calibration completed normally. + #0 + + + 1 + Calibration failed. ADC accuracy specifications are not guaranteed. + #1 + + + + + CAL + Calibration + 7 + 1 + read-write + + + + + OFS + ADC Offset Correction Register + 0x28 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + OFS + Offset Error Correction Value + 0 + 16 + read-write + + + + + PG + ADC Plus-Side Gain Register + 0x2C + 32 + read-write + 0x8200 + 0xFFFFFFFF + + + PG + Plus-Side Gain + 0 + 16 + read-write + + + + + MG + ADC Minus-Side Gain Register + 0x30 + 32 + read-write + 0x8200 + 0xFFFFFFFF + + + MG + Minus-Side Gain + 0 + 16 + read-write + + + + + CLPD + ADC Plus-Side General Calibration Value Register + 0x34 + 32 + read-write + 0xA + 0xFFFFFFFF + + + CLPD + Calibration Value + 0 + 6 + read-write + + + + + CLPS + ADC Plus-Side General Calibration Value Register + 0x38 + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLPS + Calibration Value + 0 + 6 + read-write + + + + + CLP4 + ADC Plus-Side General Calibration Value Register + 0x3C + 32 + read-write + 0x200 + 0xFFFFFFFF + + + CLP4 + Calibration Value + 0 + 10 + read-write + + + + + CLP3 + ADC Plus-Side General Calibration Value Register + 0x40 + 32 + read-write + 0x100 + 0xFFFFFFFF + + + CLP3 + Calibration Value + 0 + 9 + read-write + + + + + CLP2 + ADC Plus-Side General Calibration Value Register + 0x44 + 32 + read-write + 0x80 + 0xFFFFFFFF + + + CLP2 + Calibration Value + 0 + 8 + read-write + + + + + CLP1 + ADC Plus-Side General Calibration Value Register + 0x48 + 32 + read-write + 0x40 + 0xFFFFFFFF + + + CLP1 + Calibration Value + 0 + 7 + read-write + + + + + CLP0 + ADC Plus-Side General Calibration Value Register + 0x4C + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLP0 + Calibration Value + 0 + 6 + read-write + + + + + CLMD + ADC Minus-Side General Calibration Value Register + 0x54 + 32 + read-write + 0xA + 0xFFFFFFFF + + + CLMD + Calibration Value + 0 + 6 + read-write + + + + + CLMS + ADC Minus-Side General Calibration Value Register + 0x58 + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLMS + Calibration Value + 0 + 6 + read-write + + + + + CLM4 + ADC Minus-Side General Calibration Value Register + 0x5C + 32 + read-write + 0x200 + 0xFFFFFFFF + + + CLM4 + Calibration Value + 0 + 10 + read-write + + + + + CLM3 + ADC Minus-Side General Calibration Value Register + 0x60 + 32 + read-write + 0x100 + 0xFFFFFFFF + + + CLM3 + Calibration Value + 0 + 9 + read-write + + + + + CLM2 + ADC Minus-Side General Calibration Value Register + 0x64 + 32 + read-write + 0x80 + 0xFFFFFFFF + + + CLM2 + Calibration Value + 0 + 8 + read-write + + + + + CLM1 + ADC Minus-Side General Calibration Value Register + 0x68 + 32 + read-write + 0x40 + 0xFFFFFFFF + + + CLM1 + Calibration Value + 0 + 7 + read-write + + + + + CLM0 + ADC Minus-Side General Calibration Value Register + 0x6C + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLM0 + Calibration Value + 0 + 6 + read-write + + + + + + + ADC1 + Analog-to-Digital Converter + ADC + ADC1_ + 0x400BB000 + + 0 + 0x70 + registers + + + ADC1 + 73 + + + + 2 + 0x4 + A,B + SC1%s + ADC Status and Control Registers 1 + 0 + 32 + read-write + 0x1F + 0xFFFFFFFF + + + ADCH + Input channel select + 0 + 5 + read-write + + + 00000 + When DIFF=0, DADP0 is selected as input; when DIFF=1, DAD0 is selected as input. + #00000 + + + 00001 + When DIFF=0, DADP1 is selected as input; when DIFF=1, DAD1 is selected as input. + #00001 + + + 00010 + When DIFF=0, DADP2 is selected as input; when DIFF=1, DAD2 is selected as input. + #00010 + + + 00011 + When DIFF=0, DADP3 is selected as input; when DIFF=1, DAD3 is selected as input. + #00011 + + + 00100 + When DIFF=0, AD4 is selected as input; when DIFF=1, it is reserved. + #00100 + + + 00101 + When DIFF=0, AD5 is selected as input; when DIFF=1, it is reserved. + #00101 + + + 00110 + When DIFF=0, AD6 is selected as input; when DIFF=1, it is reserved. + #00110 + + + 00111 + When DIFF=0, AD7 is selected as input; when DIFF=1, it is reserved. + #00111 + + + 01000 + When DIFF=0, AD8 is selected as input; when DIFF=1, it is reserved. + #01000 + + + 01001 + When DIFF=0, AD9 is selected as input; when DIFF=1, it is reserved. + #01001 + + + 01010 + When DIFF=0, AD10 is selected as input; when DIFF=1, it is reserved. + #01010 + + + 01011 + When DIFF=0, AD11 is selected as input; when DIFF=1, it is reserved. + #01011 + + + 01100 + When DIFF=0, AD12 is selected as input; when DIFF=1, it is reserved. + #01100 + + + 01101 + When DIFF=0, AD13 is selected as input; when DIFF=1, it is reserved. + #01101 + + + 01110 + When DIFF=0, AD14 is selected as input; when DIFF=1, it is reserved. + #01110 + + + 01111 + When DIFF=0, AD15 is selected as input; when DIFF=1, it is reserved. + #01111 + + + 10000 + When DIFF=0, AD16 is selected as input; when DIFF=1, it is reserved. + #10000 + + + 10001 + When DIFF=0, AD17 is selected as input; when DIFF=1, it is reserved. + #10001 + + + 10010 + When DIFF=0, AD18 is selected as input; when DIFF=1, it is reserved. + #10010 + + + 10011 + When DIFF=0, AD19 is selected as input; when DIFF=1, it is reserved. + #10011 + + + 10100 + When DIFF=0, AD20 is selected as input; when DIFF=1, it is reserved. + #10100 + + + 10101 + When DIFF=0, AD21 is selected as input; when DIFF=1, it is reserved. + #10101 + + + 10110 + When DIFF=0, AD22 is selected as input; when DIFF=1, it is reserved. + #10110 + + + 10111 + When DIFF=0, AD23 is selected as input; when DIFF=1, it is reserved. + #10111 + + + 11010 + When DIFF=0, Temp Sensor (single-ended) is selected as input; when DIFF=1, Temp Sensor (differential) is selected as input. + #11010 + + + 11011 + When DIFF=0, Bandgap (single-ended) is selected as input; when DIFF=1, Bandgap (differential) is selected as input. + #11011 + + + 11101 + When DIFF=0,VREFSH is selected as input; when DIFF=1, -VREFSH (differential) is selected as input. Voltage reference selected is determined by SC2[REFSEL]. + #11101 + + + 11110 + When DIFF=0,VREFSL is selected as input; when DIFF=1, it is reserved. Voltage reference selected is determined by SC2[REFSEL]. + #11110 + + + 11111 + Module is disabled. + #11111 + + + + + DIFF + Differential Mode Enable + 5 + 1 + read-write + + + 0 + Single-ended conversions and input channels are selected. + #0 + + + 1 + Differential conversions and input channels are selected. + #1 + + + + + AIEN + Interrupt Enable + 6 + 1 + read-write + + + 0 + Conversion complete interrupt is disabled. + #0 + + + 1 + Conversion complete interrupt is enabled. + #1 + + + + + COCO + Conversion Complete Flag + 7 + 1 + read-only + + + 0 + Conversion is not completed. + #0 + + + 1 + Conversion is completed. + #1 + + + + + + + CFG1 + ADC Configuration Register 1 + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + ADICLK + Input Clock Select + 0 + 2 + read-write + + + 00 + Bus clock + #00 + + + 01 + Alternate clock 2 (ALTCLK2) + #01 + + + 10 + Alternate clock (ALTCLK) + #10 + + + 11 + Asynchronous clock (ADACK) + #11 + + + + + MODE + Conversion mode selection + 2 + 2 + read-write + + + 00 + When DIFF=0:It is single-ended 8-bit conversion; when DIFF=1, it is differential 9-bit conversion with 2's complement output. + #00 + + + 01 + When DIFF=0:It is single-ended 12-bit conversion ; when DIFF=1, it is differential 13-bit conversion with 2's complement output. + #01 + + + 10 + When DIFF=0:It is single-ended 10-bit conversion. ; when DIFF=1, it is differential 11-bit conversion with 2's complement output + #10 + + + 11 + When DIFF=0:It is single-ended 16-bit conversion..; when DIFF=1, it is differential 16-bit conversion with 2's complement output + #11 + + + + + ADLSMP + Sample Time Configuration + 4 + 1 + read-write + + + 0 + Short sample time. + #0 + + + 1 + Long sample time. + #1 + + + + + ADIV + Clock Divide Select + 5 + 2 + read-write + + + 00 + The divide ratio is 1 and the clock rate is input clock. + #00 + + + 01 + The divide ratio is 2 and the clock rate is (input clock)/2. + #01 + + + 10 + The divide ratio is 4 and the clock rate is (input clock)/4. + #10 + + + 11 + The divide ratio is 8 and the clock rate is (input clock)/8. + #11 + + + + + ADLPC + Low-Power Configuration + 7 + 1 + read-write + + + 0 + Normal power configuration. + #0 + + + 1 + Low-power configuration. The power is reduced at the expense of maximum clock speed. + #1 + + + + + + + CFG2 + ADC Configuration Register 2 + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + ADLSTS + Long Sample Time Select + 0 + 2 + read-write + + + 00 + Default longest sample time; 20 extra ADCK cycles; 24 ADCK cycles total. + #00 + + + 01 + 12 extra ADCK cycles; 16 ADCK cycles total sample time. + #01 + + + 10 + 6 extra ADCK cycles; 10 ADCK cycles total sample time. + #10 + + + 11 + 2 extra ADCK cycles; 6 ADCK cycles total sample time. + #11 + + + + + ADHSC + High-Speed Configuration + 2 + 1 + read-write + + + 0 + Normal conversion sequence selected. + #0 + + + 1 + High-speed conversion sequence selected with 2 additional ADCK cycles to total conversion time. + #1 + + + + + ADACKEN + Asynchronous Clock Output Enable + 3 + 1 + read-write + + + 0 + Asynchronous clock output disabled; Asynchronous clock is enabled only if selected by ADICLK and a conversion is active. + #0 + + + 1 + Asynchronous clock and clock output is enabled regardless of the state of the ADC. + #1 + + + + + MUXSEL + ADC Mux Select + 4 + 1 + read-write + + + 0 + ADxxa channels are selected. + #0 + + + 1 + ADxxb channels are selected. + #1 + + + + + + + 2 + 0x4 + A,B + R%s + ADC Data Result Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + D + Data result + 0 + 16 + read-only + + + + + 2 + 0x4 + 1,2 + CV%s + Compare Value Registers + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + CV + Compare Value. + 0 + 16 + read-write + + + + + SC2 + Status and Control Register 2 + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + REFSEL + Voltage Reference Selection + 0 + 2 + read-write + + + 00 + Default voltage reference pin pair, that is, external pins VREFH and VREFL + #00 + + + 01 + Alternate reference pair, that is, VALTH and VALTL . This pair may be additional external pins or internal sources depending on the MCU configuration. See the chip configuration information for details specific to this MCU + #01 + + + + + DMAEN + DMA Enable + 2 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled and will assert the ADC DMA request during an ADC conversion complete event noted when any of the SC1n[COCO] flags is asserted. + #1 + + + + + ACREN + Compare Function Range Enable + 3 + 1 + read-write + + + 0 + Range function disabled. Only CV1 is compared. + #0 + + + 1 + Range function enabled. Both CV1 and CV2 are compared. + #1 + + + + + ACFGT + Compare Function Greater Than Enable + 4 + 1 + read-write + + + 0 + Configures less than threshold, outside range not inclusive and inside range not inclusive; functionality based on the values placed in CV1 and CV2. + #0 + + + 1 + Configures greater than or equal to threshold, outside and inside ranges inclusive; functionality based on the values placed in CV1 and CV2. + #1 + + + + + ACFE + Compare Function Enable + 5 + 1 + read-write + + + 0 + Compare function disabled. + #0 + + + 1 + Compare function enabled. + #1 + + + + + ADTRG + Conversion Trigger Select + 6 + 1 + read-write + + + 0 + Software trigger selected. + #0 + + + 1 + Hardware trigger selected. + #1 + + + + + ADACT + Conversion Active + 7 + 1 + read-only + + + 0 + Conversion not in progress. + #0 + + + 1 + Conversion in progress. + #1 + + + + + + + SC3 + Status and Control Register 3 + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + AVGS + Hardware Average Select + 0 + 2 + read-write + + + 00 + 4 samples averaged. + #00 + + + 01 + 8 samples averaged. + #01 + + + 10 + 16 samples averaged. + #10 + + + 11 + 32 samples averaged. + #11 + + + + + AVGE + Hardware Average Enable + 2 + 1 + read-write + + + 0 + Hardware average function disabled. + #0 + + + 1 + Hardware average function enabled. + #1 + + + + + ADCO + Continuous Conversion Enable + 3 + 1 + read-write + + + 0 + One conversion or one set of conversions if the hardware average function is enabled, that is, AVGE=1, after initiating a conversion. + #0 + + + 1 + Continuous conversions or sets of conversions if the hardware average function is enabled, that is, AVGE=1, after initiating a conversion. + #1 + + + + + CALF + Calibration Failed Flag + 6 + 1 + read-write + + + 0 + Calibration completed normally. + #0 + + + 1 + Calibration failed. ADC accuracy specifications are not guaranteed. + #1 + + + + + CAL + Calibration + 7 + 1 + read-write + + + + + OFS + ADC Offset Correction Register + 0x28 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + OFS + Offset Error Correction Value + 0 + 16 + read-write + + + + + PG + ADC Plus-Side Gain Register + 0x2C + 32 + read-write + 0x8200 + 0xFFFFFFFF + + + PG + Plus-Side Gain + 0 + 16 + read-write + + + + + MG + ADC Minus-Side Gain Register + 0x30 + 32 + read-write + 0x8200 + 0xFFFFFFFF + + + MG + Minus-Side Gain + 0 + 16 + read-write + + + + + CLPD + ADC Plus-Side General Calibration Value Register + 0x34 + 32 + read-write + 0xA + 0xFFFFFFFF + + + CLPD + Calibration Value + 0 + 6 + read-write + + + + + CLPS + ADC Plus-Side General Calibration Value Register + 0x38 + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLPS + Calibration Value + 0 + 6 + read-write + + + + + CLP4 + ADC Plus-Side General Calibration Value Register + 0x3C + 32 + read-write + 0x200 + 0xFFFFFFFF + + + CLP4 + Calibration Value + 0 + 10 + read-write + + + + + CLP3 + ADC Plus-Side General Calibration Value Register + 0x40 + 32 + read-write + 0x100 + 0xFFFFFFFF + + + CLP3 + Calibration Value + 0 + 9 + read-write + + + + + CLP2 + ADC Plus-Side General Calibration Value Register + 0x44 + 32 + read-write + 0x80 + 0xFFFFFFFF + + + CLP2 + Calibration Value + 0 + 8 + read-write + + + + + CLP1 + ADC Plus-Side General Calibration Value Register + 0x48 + 32 + read-write + 0x40 + 0xFFFFFFFF + + + CLP1 + Calibration Value + 0 + 7 + read-write + + + + + CLP0 + ADC Plus-Side General Calibration Value Register + 0x4C + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLP0 + Calibration Value + 0 + 6 + read-write + + + + + CLMD + ADC Minus-Side General Calibration Value Register + 0x54 + 32 + read-write + 0xA + 0xFFFFFFFF + + + CLMD + Calibration Value + 0 + 6 + read-write + + + + + CLMS + ADC Minus-Side General Calibration Value Register + 0x58 + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLMS + Calibration Value + 0 + 6 + read-write + + + + + CLM4 + ADC Minus-Side General Calibration Value Register + 0x5C + 32 + read-write + 0x200 + 0xFFFFFFFF + + + CLM4 + Calibration Value + 0 + 10 + read-write + + + + + CLM3 + ADC Minus-Side General Calibration Value Register + 0x60 + 32 + read-write + 0x100 + 0xFFFFFFFF + + + CLM3 + Calibration Value + 0 + 9 + read-write + + + + + CLM2 + ADC Minus-Side General Calibration Value Register + 0x64 + 32 + read-write + 0x80 + 0xFFFFFFFF + + + CLM2 + Calibration Value + 0 + 8 + read-write + + + + + CLM1 + ADC Minus-Side General Calibration Value Register + 0x68 + 32 + read-write + 0x40 + 0xFFFFFFFF + + + CLM1 + Calibration Value + 0 + 7 + read-write + + + + + CLM0 + ADC Minus-Side General Calibration Value Register + 0x6C + 32 + read-write + 0x20 + 0xFFFFFFFF + + + CLM0 + Calibration Value + 0 + 6 + read-write + + + + + + + RTC + Secure Real Time Clock + RTC_ + 0x4003D000 + + 0 + 0x808 + registers + + + RTC + 46 + + + RTC_Seconds + 47 + + + + TSR + RTC Time Seconds Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TSR + Time Seconds Register + 0 + 32 + read-write + + + + + TPR + RTC Time Prescaler Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + TPR + Time Prescaler Register + 0 + 16 + read-write + + + + + TAR + RTC Time Alarm Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + TAR + Time Alarm Register + 0 + 32 + read-write + + + + + TCR + RTC Time Compensation Register + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + TCR + Time Compensation Register + 0 + 8 + read-write + + + 10000000 + Time Prescaler Register overflows every 32896 clock cycles. + #10000000 + + + 11111111 + Time Prescaler Register overflows every 32769 clock cycles. + #11111111 + + + 0 + Time Prescaler Register overflows every 32768 clock cycles. + #0 + + + 1 + Time Prescaler Register overflows every 32767 clock cycles. + #1 + + + 1111111 + Time Prescaler Register overflows every 32641 clock cycles. + #1111111 + + + + + CIR + Compensation Interval Register + 8 + 8 + read-write + + + TCV + Time Compensation Value + 16 + 8 + read-only + + + CIC + Compensation Interval Counter + 24 + 8 + read-only + + + + + CR + RTC Control Register + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + SWR + Software Reset + 0 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + Resets all RTC registers except for the SWR bit and the RTC_WAR and RTC_RAR registers . The SWR bit is cleared by VBAT POR and by software explicitly clearing it. + #1 + + + + + WPE + Wakeup Pin Enable + 1 + 1 + read-write + + + 0 + Wakeup pin is disabled. + #0 + + + 1 + Wakeup pin is enabled and wakeup pin asserts if the RTC interrupt asserts or the wakeup pin is turned on. + #1 + + + + + SUP + Supervisor Access + 2 + 1 + read-write + + + 0 + Non-supervisor mode write accesses are not supported and generate a bus error. + #0 + + + 1 + Non-supervisor mode write accesses are supported. + #1 + + + + + UM + Update Mode + 3 + 1 + read-write + + + 0 + Registers cannot be written when locked. + #0 + + + 1 + Registers can be written when locked under limited conditions. + #1 + + + + + WPS + Wakeup Pin Select + 4 + 1 + read-write + + + 0 + Wakeup pin asserts (active low, open drain) if the RTC interrupt asserts or the wakeup pin is turned on. + #0 + + + 1 + Wakeup pin instead outputs the RTC 32kHz clock, provided the wakeup pin is turned on and the 32kHz clock is output to other peripherals. + #1 + + + + + OSCE + Oscillator Enable + 8 + 1 + read-write + + + 0 + 32.768 kHz oscillator is disabled. + #0 + + + 1 + 32.768 kHz oscillator is enabled. After setting this bit, wait the oscillator startup time before enabling the time counter to allow the 32.768 kHz clock time to stabilize. + #1 + + + + + CLKO + Clock Output + 9 + 1 + read-write + + + 0 + The 32 kHz clock is output to other peripherals. + #0 + + + 1 + The 32 kHz clock is not output to other peripherals. + #1 + + + + + SC16P + Oscillator 16pF Load Configure + 10 + 1 + read-write + + + 0 + Disable the load. + #0 + + + 1 + Enable the additional load. + #1 + + + + + SC8P + Oscillator 8pF Load Configure + 11 + 1 + read-write + + + 0 + Disable the load. + #0 + + + 1 + Enable the additional load. + #1 + + + + + SC4P + Oscillator 4pF Load Configure + 12 + 1 + read-write + + + 0 + Disable the load. + #0 + + + 1 + Enable the additional load. + #1 + + + + + SC2P + Oscillator 2pF Load Configure + 13 + 1 + read-write + + + 0 + Disable the load. + #0 + + + 1 + Enable the additional load. + #1 + + + + + + + SR + RTC Status Register + 0x14 + 32 + read-write + 0x1 + 0xFFFFFFFF + + + TIF + Time Invalid Flag + 0 + 1 + read-only + + + 0 + Time is valid. + #0 + + + 1 + Time is invalid and time counter is read as zero. + #1 + + + + + TOF + Time Overflow Flag + 1 + 1 + read-only + + + 0 + Time overflow has not occurred. + #0 + + + 1 + Time overflow has occurred and time counter is read as zero. + #1 + + + + + TAF + Time Alarm Flag + 2 + 1 + read-only + + + 0 + Time alarm has not occurred. + #0 + + + 1 + Time alarm has occurred. + #1 + + + + + TCE + Time Counter Enable + 4 + 1 + read-write + + + 0 + Time counter is disabled. + #0 + + + 1 + Time counter is enabled. + #1 + + + + + + + LR + RTC Lock Register + 0x18 + 32 + read-write + 0xFF + 0xFFFFFFFF + + + TCL + Time Compensation Lock + 3 + 1 + read-write + + + 0 + Time Compensation Register is locked and writes are ignored. + #0 + + + 1 + Time Compensation Register is not locked and writes complete as normal. + #1 + + + + + CRL + Control Register Lock + 4 + 1 + read-write + + + 0 + Control Register is locked and writes are ignored. + #0 + + + 1 + Control Register is not locked and writes complete as normal. + #1 + + + + + SRL + Status Register Lock + 5 + 1 + read-write + + + 0 + Status Register is locked and writes are ignored. + #0 + + + 1 + Status Register is not locked and writes complete as normal. + #1 + + + + + LRL + Lock Register Lock + 6 + 1 + read-write + + + 0 + Lock Register is locked and writes are ignored. + #0 + + + 1 + Lock Register is not locked and writes complete as normal. + #1 + + + + + + + IER + RTC Interrupt Enable Register + 0x1C + 32 + read-write + 0x7 + 0xFFFFFFFF + + + TIIE + Time Invalid Interrupt Enable + 0 + 1 + read-write + + + 0 + Time invalid flag does not generate an interrupt. + #0 + + + 1 + Time invalid flag does generate an interrupt. + #1 + + + + + TOIE + Time Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + Time overflow flag does not generate an interrupt. + #0 + + + 1 + Time overflow flag does generate an interrupt. + #1 + + + + + TAIE + Time Alarm Interrupt Enable + 2 + 1 + read-write + + + 0 + Time alarm flag does not generate an interrupt. + #0 + + + 1 + Time alarm flag does generate an interrupt. + #1 + + + + + TSIE + Time Seconds Interrupt Enable + 4 + 1 + read-write + + + 0 + Seconds interrupt is disabled. + #0 + + + 1 + Seconds interrupt is enabled. + #1 + + + + + WPON + Wakeup Pin On + 7 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + If the wakeup pin is enabled, then the wakeup pin will assert. + #1 + + + + + + + WAR + RTC Write Access Register + 0x800 + 32 + read-write + 0xFF + 0xFFFFFFFF + + + TSRW + Time Seconds Register Write + 0 + 1 + read-write + + + 0 + Writes to the Time Seconds Register are ignored. + #0 + + + 1 + Writes to the Time Seconds Register complete as normal. + #1 + + + + + TPRW + Time Prescaler Register Write + 1 + 1 + read-write + + + 0 + Writes to the Time Prescaler Register are ignored. + #0 + + + 1 + Writes to the Time Prescaler Register complete as normal. + #1 + + + + + TARW + Time Alarm Register Write + 2 + 1 + read-write + + + 0 + Writes to the Time Alarm Register are ignored. + #0 + + + 1 + Writes to the Time Alarm Register complete as normal. + #1 + + + + + TCRW + Time Compensation Register Write + 3 + 1 + read-write + + + 0 + Writes to the Time Compensation Register are ignored. + #0 + + + 1 + Writes to the Time Compensation Register complete as normal. + #1 + + + + + CRW + Control Register Write + 4 + 1 + read-write + + + 0 + Writes to the Control Register are ignored. + #0 + + + 1 + Writes to the Control Register complete as normal. + #1 + + + + + SRW + Status Register Write + 5 + 1 + read-write + + + 0 + Writes to the Status Register are ignored. + #0 + + + 1 + Writes to the Status Register complete as normal. + #1 + + + + + LRW + Lock Register Write + 6 + 1 + read-write + + + 0 + Writes to the Lock Register are ignored. + #0 + + + 1 + Writes to the Lock Register complete as normal. + #1 + + + + + IERW + Interrupt Enable Register Write + 7 + 1 + read-write + + + 0 + Writes to the Interupt Enable Register are ignored. + #0 + + + 1 + Writes to the Interrupt Enable Register complete as normal. + #1 + + + + + + + RAR + RTC Read Access Register + 0x804 + 32 + read-write + 0xFF + 0xFFFFFFFF + + + TSRR + Time Seconds Register Read + 0 + 1 + read-write + + + 0 + Reads to the Time Seconds Register are ignored. + #0 + + + 1 + Reads to the Time Seconds Register complete as normal. + #1 + + + + + TPRR + Time Prescaler Register Read + 1 + 1 + read-write + + + 0 + Reads to the Time Pprescaler Register are ignored. + #0 + + + 1 + Reads to the Time Prescaler Register complete as normal. + #1 + + + + + TARR + Time Alarm Register Read + 2 + 1 + read-write + + + 0 + Reads to the Time Alarm Register are ignored. + #0 + + + 1 + Reads to the Time Alarm Register complete as normal. + #1 + + + + + TCRR + Time Compensation Register Read + 3 + 1 + read-write + + + 0 + Reads to the Time Compensation Register are ignored. + #0 + + + 1 + Reads to the Time Compensation Register complete as normal. + #1 + + + + + CRR + Control Register Read + 4 + 1 + read-write + + + 0 + Reads to the Control Register are ignored. + #0 + + + 1 + Reads to the Control Register complete as normal. + #1 + + + + + SRR + Status Register Read + 5 + 1 + read-write + + + 0 + Reads to the Status Register are ignored. + #0 + + + 1 + Reads to the Status Register complete as normal. + #1 + + + + + LRR + Lock Register Read + 6 + 1 + read-write + + + 0 + Reads to the Lock Register are ignored. + #0 + + + 1 + Reads to the Lock Register complete as normal. + #1 + + + + + IERR + Interrupt Enable Register Read + 7 + 1 + read-write + + + 0 + Reads to the Interrupt Enable Register are ignored. + #0 + + + 1 + Reads to the Interrupt Enable Register complete as normal. + #1 + + + + + + + + + RFVBAT + VBAT register file + RFVBAT_ + 0x4003E000 + + 0 + 0x20 + registers + + + + 8 + 0x4 + 0,1,2,3,4,5,6,7 + REG%s + VBAT register file register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + LL + Low lower byte + 0 + 8 + read-write + + + LH + Low higher byte + 8 + 8 + read-write + + + HL + High lower byte + 16 + 8 + read-write + + + HH + High higher byte + 24 + 8 + read-write + + + + + + + LPTMR0 + Low Power Timer + LPTMR0_ + 0x40040000 + + 0 + 0x10 + registers + + + LPTMR0 + 58 + + + + CSR + Low Power Timer Control Status Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TEN + Timer Enable + 0 + 1 + read-write + + + 0 + LPTMR is disabled and internal logic is reset. + #0 + + + 1 + LPTMR is enabled. + #1 + + + + + TMS + Timer Mode Select + 1 + 1 + read-write + + + 0 + Time Counter mode. + #0 + + + 1 + Pulse Counter mode. + #1 + + + + + TFC + Timer Free-Running Counter + 2 + 1 + read-write + + + 0 + CNR is reset whenever TCF is set. + #0 + + + 1 + CNR is reset on overflow. + #1 + + + + + TPP + Timer Pin Polarity + 3 + 1 + read-write + + + 0 + Pulse Counter input source is active-high, and the CNR will increment on the rising-edge. + #0 + + + 1 + Pulse Counter input source is active-low, and the CNR will increment on the falling-edge. + #1 + + + + + TPS + Timer Pin Select + 4 + 2 + read-write + + + 00 + Pulse counter input 0 is selected. + #00 + + + 01 + Pulse counter input 1 is selected. + #01 + + + 10 + Pulse counter input 2 is selected. + #10 + + + 11 + Pulse counter input 3 is selected. + #11 + + + + + TIE + Timer Interrupt Enable + 6 + 1 + read-write + + + 0 + Timer interrupt disabled. + #0 + + + 1 + Timer interrupt enabled. + #1 + + + + + TCF + Timer Compare Flag + 7 + 1 + read-write + + + 0 + The value of CNR is not equal to CMR and increments. + #0 + + + 1 + The value of CNR is equal to CMR and increments. + #1 + + + + + + + PSR + Low Power Timer Prescale Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PCS + Prescaler Clock Select + 0 + 2 + read-write + + + 00 + Prescaler/glitch filter clock 0 selected. + #00 + + + 01 + Prescaler/glitch filter clock 1 selected. + #01 + + + 10 + Prescaler/glitch filter clock 2 selected. + #10 + + + 11 + Prescaler/glitch filter clock 3 selected. + #11 + + + + + PBYP + Prescaler Bypass + 2 + 1 + read-write + + + 0 + Prescaler/glitch filter is enabled. + #0 + + + 1 + Prescaler/glitch filter is bypassed. + #1 + + + + + PRESCALE + Prescale Value + 3 + 4 + read-write + + + 0000 + Prescaler divides the prescaler clock by 2; glitch filter does not support this configuration. + #0000 + + + 0001 + Prescaler divides the prescaler clock by 4; glitch filter recognizes change on input pin after 2 rising clock edges. + #0001 + + + 0010 + Prescaler divides the prescaler clock by 8; glitch filter recognizes change on input pin after 4 rising clock edges. + #0010 + + + 0011 + Prescaler divides the prescaler clock by 16; glitch filter recognizes change on input pin after 8 rising clock edges. + #0011 + + + 0100 + Prescaler divides the prescaler clock by 32; glitch filter recognizes change on input pin after 16 rising clock edges. + #0100 + + + 0101 + Prescaler divides the prescaler clock by 64; glitch filter recognizes change on input pin after 32 rising clock edges. + #0101 + + + 0110 + Prescaler divides the prescaler clock by 128; glitch filter recognizes change on input pin after 64 rising clock edges. + #0110 + + + 0111 + Prescaler divides the prescaler clock by 256; glitch filter recognizes change on input pin after 128 rising clock edges. + #0111 + + + 1000 + Prescaler divides the prescaler clock by 512; glitch filter recognizes change on input pin after 256 rising clock edges. + #1000 + + + 1001 + Prescaler divides the prescaler clock by 1024; glitch filter recognizes change on input pin after 512 rising clock edges. + #1001 + + + 1010 + Prescaler divides the prescaler clock by 2048; glitch filter recognizes change on input pin after 1024 rising clock edges. + #1010 + + + 1011 + Prescaler divides the prescaler clock by 4096; glitch filter recognizes change on input pin after 2048 rising clock edges. + #1011 + + + 1100 + Prescaler divides the prescaler clock by 8192; glitch filter recognizes change on input pin after 4096 rising clock edges. + #1100 + + + 1101 + Prescaler divides the prescaler clock by 16,384; glitch filter recognizes change on input pin after 8192 rising clock edges. + #1101 + + + 1110 + Prescaler divides the prescaler clock by 32,768; glitch filter recognizes change on input pin after 16,384 rising clock edges. + #1110 + + + 1111 + Prescaler divides the prescaler clock by 65,536; glitch filter recognizes change on input pin after 32,768 rising clock edges. + #1111 + + + + + + + CMR + Low Power Timer Compare Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + COMPARE + Compare Value + 0 + 16 + read-write + + + + + CNR + Low Power Timer Counter Register + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + COUNTER + Counter Value + 0 + 16 + read-write + + + + + + + RFSYS + System register file + RFSYS_ + 0x40041000 + + 0 + 0x20 + registers + + + + 8 + 0x4 + 0,1,2,3,4,5,6,7 + REG%s + Register file register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + LL + Low lower byte + 0 + 8 + read-write + + + LH + Low higher byte + 8 + 8 + read-write + + + HL + High lower byte + 16 + 8 + read-write + + + HH + High higher byte + 24 + 8 + read-write + + + + + + + SIM + System Integration Module + SIM_ + 0x40047000 + + 0 + 0x1064 + registers + + + + SOPT1 + System Options Register 1 + 0 + 32 + read-write + 0x80000000 + 0xFFFF0FC0 + + + RAMSIZE + RAM size + 12 + 4 + read-only + + + 0001 + 8 KB + #0001 + + + 0011 + 16 KB + #0011 + + + 0100 + 24 KB + #0100 + + + 0101 + 32 KB + #0101 + + + 0110 + 48 KB + #0110 + + + 0111 + 64 KB + #0111 + + + 1000 + 96 KB + #1000 + + + 1001 + 128 KB + #1001 + + + 1011 + 256 KB + #1011 + + + + + OSC32KSEL + 32K oscillator clock select + 18 + 2 + read-write + + + 00 + System oscillator (OSC32KCLK) + #00 + + + 10 + RTC 32.768kHz oscillator + #10 + + + 11 + LPO 1 kHz + #11 + + + + + USBVSTBY + USB voltage regulator in standby mode during VLPR and VLPW modes + 29 + 1 + read-write + + + 0 + USB voltage regulator not in standby during VLPR and VLPW modes. + #0 + + + 1 + USB voltage regulator in standby during VLPR and VLPW modes. + #1 + + + + + USBSSTBY + USB voltage regulator in standby mode during Stop, VLPS, LLS and VLLS modes. + 30 + 1 + read-write + + + 0 + USB voltage regulator not in standby during Stop, VLPS, LLS and VLLS modes. + #0 + + + 1 + USB voltage regulator in standby during Stop, VLPS, LLS and VLLS modes. + #1 + + + + + USBREGEN + USB voltage regulator enable + 31 + 1 + read-write + + + 0 + USB voltage regulator is disabled. + #0 + + + 1 + USB voltage regulator is enabled. + #1 + + + + + + + SOPT1CFG + SOPT1 Configuration Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + URWE + USB voltage regulator enable write enable + 24 + 1 + read-write + + + 0 + SOPT1 USBREGEN cannot be written. + #0 + + + 1 + SOPT1 USBREGEN can be written. + #1 + + + + + UVSWE + USB voltage regulator VLP standby write enable + 25 + 1 + read-write + + + 0 + SOPT1 USBVSTBY cannot be written. + #0 + + + 1 + SOPT1 USBVSTBY can be written. + #1 + + + + + USSWE + USB voltage regulator stop standby write enable + 26 + 1 + read-write + + + 0 + SOPT1 USBSSTBY cannot be written. + #0 + + + 1 + SOPT1 USBSSTBY can be written. + #1 + + + + + + + SOPT2 + System Options Register 2 + 0x1004 + 32 + read-write + 0x1000 + 0xFFFFFFFF + + + RTCCLKOUTSEL + RTC clock out select + 4 + 1 + read-write + + + 0 + RTC 1 Hz clock is output on the RTC_CLKOUT pin. + #0 + + + 1 + RTC 32.768kHz clock is output on the RTC_CLKOUT pin. + #1 + + + + + CLKOUTSEL + CLKOUT select + 5 + 3 + read-write + + + 000 + FlexBus CLKOUT + #000 + + + 010 + Flash clock + #010 + + + 011 + LPO clock (1 kHz) + #011 + + + 100 + MCGIRCLK + #100 + + + 101 + RTC 32.768kHz clock + #101 + + + 110 + OSCERCLK0 + #110 + + + 111 + IRC 48 MHz clock + #111 + + + + + FBSL + FlexBus security level + 8 + 2 + read-write + + + 00 + All off-chip accesses (instruction and data) via the FlexBus are disallowed. + #00 + + + 01 + All off-chip accesses (instruction and data) via the FlexBus are disallowed. + #01 + + + 10 + Off-chip instruction accesses are disallowed. Data accesses are allowed. + #10 + + + 11 + Off-chip instruction accesses and data accesses are allowed. + #11 + + + + + PTD7PAD + PTD7 pad drive strength + 11 + 1 + read-write + + + 0 + Single-pad drive strength for PTD7. + #0 + + + 1 + Double pad drive strength for PTD7. + #1 + + + + + TRACECLKSEL + Debug trace clock select + 12 + 1 + read-write + + + 0 + MCGOUTCLK + #0 + + + 1 + Core/system clock + #1 + + + + + PLLFLLSEL + PLL/FLL clock select + 16 + 2 + read-write + + + 00 + MCGFLLCLK clock + #00 + + + 01 + MCGPLLCLK clock + #01 + + + 11 + IRC48 MHz clock + #11 + + + + + USBSRC + USB clock source select + 18 + 1 + read-write + + + 0 + External bypass clock (USB_CLKIN). + #0 + + + 1 + MCGFLLCLK , or MCGPLLCLK , or IRC48M clock as selected by SOPT2[PLLFLLSEL], and then divided by the USB fractional divider as configured by SIM_CLKDIV2[USBFRAC, USBDIV]. + #1 + + + + + RMIISRC + RMII clock source select + 19 + 1 + read-write + + + 0 + EXTAL clock + #0 + + + 1 + External bypass clock (ENET_1588_CLKIN). + #1 + + + + + TIMESRC + IEEE 1588 timestamp clock source select + 20 + 2 + read-write + + + 00 + Core/system clock. + #00 + + + 01 + MCGFLLCLK , or MCGPLLCLK , or IRC48M clock as selected by SOPT2[PLLFLLSEL]. + #01 + + + 10 + OSCERCLK clock + #10 + + + 11 + External bypass clock (ENET_1588_CLKIN). + #11 + + + + + SDHCSRC + SDHC clock source select + 28 + 2 + read-write + + + 00 + Core/system clock. + #00 + + + 01 + MCGFLLCLK, or MCGPLLCLK , or IRC48M clock as selected by SOPT2[PLLFLLSEL]. + #01 + + + 10 + OSCERCLK clock + #10 + + + 11 + External bypass clock (SDHC0_CLKIN) + #11 + + + + + + + SOPT4 + System Options Register 4 + 0x100C + 32 + read-write + 0 + 0xFFFFFFFF + + + FTM0FLT0 + FTM0 Fault 0 Select + 0 + 1 + read-write + + + 0 + FTM0_FLT0 pin + #0 + + + 1 + CMP0 out + #1 + + + + + FTM0FLT1 + FTM0 Fault 1 Select + 1 + 1 + read-write + + + 0 + FTM0_FLT1 pin + #0 + + + 1 + CMP1 out + #1 + + + + + FTM0FLT2 + FTM0 Fault 2 Select + 2 + 1 + read-write + + + 0 + FTM0_FLT2 pin + #0 + + + 1 + CMP2 out + #1 + + + + + FTM1FLT0 + FTM1 Fault 0 Select + 4 + 1 + read-write + + + 0 + FTM1_FLT0 pin + #0 + + + 1 + CMP0 out + #1 + + + + + FTM2FLT0 + FTM2 Fault 0 Select + 8 + 1 + read-write + + + 0 + FTM2_FLT0 pin + #0 + + + 1 + CMP0 out + #1 + + + + + FTM3FLT0 + FTM3 Fault 0 Select + 12 + 1 + read-write + + + 0 + FTM3_FLT0 pin + #0 + + + 1 + CMP0 out + #1 + + + + + FTM1CH0SRC + FTM1 channel 0 input capture source select + 18 + 2 + read-write + + + 00 + FTM1_CH0 signal + #00 + + + 01 + CMP0 output + #01 + + + 10 + CMP1 output + #10 + + + 11 + USB start of frame pulse + #11 + + + + + FTM2CH0SRC + FTM2 channel 0 input capture source select + 20 + 2 + read-write + + + 00 + FTM2_CH0 signal + #00 + + + 01 + CMP0 output + #01 + + + 10 + CMP1 output + #10 + + + + + FTM0CLKSEL + FlexTimer 0 External Clock Pin Select + 24 + 1 + read-write + + + 0 + FTM_CLK0 pin + #0 + + + 1 + FTM_CLK1 pin + #1 + + + + + FTM1CLKSEL + FTM1 External Clock Pin Select + 25 + 1 + read-write + + + 0 + FTM_CLK0 pin + #0 + + + 1 + FTM_CLK1 pin + #1 + + + + + FTM2CLKSEL + FlexTimer 2 External Clock Pin Select + 26 + 1 + read-write + + + 0 + FTM2 external clock driven by FTM_CLK0 pin. + #0 + + + 1 + FTM2 external clock driven by FTM_CLK1 pin. + #1 + + + + + FTM3CLKSEL + FlexTimer 3 External Clock Pin Select + 27 + 1 + read-write + + + 0 + FTM3 external clock driven by FTM_CLK0 pin. + #0 + + + 1 + FTM3 external clock driven by FTM_CLK1 pin. + #1 + + + + + FTM0TRG0SRC + FlexTimer 0 Hardware Trigger 0 Source Select + 28 + 1 + read-write + + + 0 + HSCMP0 output drives FTM0 hardware trigger 0 + #0 + + + 1 + FTM1 channel match drives FTM0 hardware trigger 0 + #1 + + + + + FTM0TRG1SRC + FlexTimer 0 Hardware Trigger 1 Source Select + 29 + 1 + read-write + + + 0 + PDB output trigger 1 drives FTM0 hardware trigger 1 + #0 + + + 1 + FTM2 channel match drives FTM0 hardware trigger 1 + #1 + + + + + FTM3TRG0SRC + FlexTimer 3 Hardware Trigger 0 Source Select + 30 + 1 + read-write + + + 1 + FTM1 channel match drives FTM3 hardware trigger 0 + #1 + + + + + FTM3TRG1SRC + FlexTimer 3 Hardware Trigger 1 Source Select + 31 + 1 + read-write + + + 1 + FTM2 channel match drives FTM3 hardware trigger 1 + #1 + + + + + + + SOPT5 + System Options Register 5 + 0x1010 + 32 + read-write + 0 + 0xFFFFFFFF + + + UART0TXSRC + UART 0 transmit data source select + 0 + 2 + read-write + + + 00 + UART0_TX pin + #00 + + + 01 + UART0_TX pin modulated with FTM1 channel 0 output + #01 + + + 10 + UART0_TX pin modulated with FTM2 channel 0 output + #10 + + + + + UART0RXSRC + UART 0 receive data source select + 2 + 2 + read-write + + + 00 + UART0_RX pin + #00 + + + 01 + CMP0 + #01 + + + 10 + CMP1 + #10 + + + + + UART1TXSRC + UART 1 transmit data source select + 4 + 2 + read-write + + + 00 + UART1_TX pin + #00 + + + 01 + UART1_TX pin modulated with FTM1 channel 0 output + #01 + + + 10 + UART1_TX pin modulated with FTM2 channel 0 output + #10 + + + + + UART1RXSRC + UART 1 receive data source select + 6 + 2 + read-write + + + 00 + UART1_RX pin + #00 + + + 01 + CMP0 + #01 + + + 10 + CMP1 + #10 + + + + + + + SOPT7 + System Options Register 7 + 0x1018 + 32 + read-write + 0 + 0xFFFFFFFF + + + ADC0TRGSEL + ADC0 trigger select + 0 + 4 + read-write + + + 0000 + PDB external trigger pin input (PDB0_EXTRG) + #0000 + + + 0001 + High speed comparator 0 output + #0001 + + + 0010 + High speed comparator 1 output + #0010 + + + 0011 + High speed comparator 2 output + #0011 + + + 0100 + PIT trigger 0 + #0100 + + + 0101 + PIT trigger 1 + #0101 + + + 0110 + PIT trigger 2 + #0110 + + + 0111 + PIT trigger 3 + #0111 + + + 1000 + FTM0 trigger + #1000 + + + 1001 + FTM1 trigger + #1001 + + + 1010 + FTM2 trigger + #1010 + + + 1011 + FTM3 trigger + #1011 + + + 1100 + RTC alarm + #1100 + + + 1101 + RTC seconds + #1101 + + + 1110 + Low-power timer (LPTMR) trigger + #1110 + + + + + ADC0PRETRGSEL + ADC0 pretrigger select + 4 + 1 + read-write + + + 0 + Pre-trigger A + #0 + + + 1 + Pre-trigger B + #1 + + + + + ADC0ALTTRGEN + ADC0 alternate trigger enable + 7 + 1 + read-write + + + 0 + PDB trigger selected for ADC0. + #0 + + + 1 + Alternate trigger selected for ADC0. + #1 + + + + + ADC1TRGSEL + ADC1 trigger select + 8 + 4 + read-write + + + 0000 + PDB external trigger pin input (PDB0_EXTRG) + #0000 + + + 0001 + High speed comparator 0 output + #0001 + + + 0010 + High speed comparator 1 output + #0010 + + + 0011 + High speed comparator 2 output + #0011 + + + 0100 + PIT trigger 0 + #0100 + + + 0101 + PIT trigger 1 + #0101 + + + 0110 + PIT trigger 2 + #0110 + + + 0111 + PIT trigger 3 + #0111 + + + 1000 + FTM0 trigger + #1000 + + + 1001 + FTM1 trigger + #1001 + + + 1010 + FTM2 trigger + #1010 + + + 1011 + FTM3 trigger + #1011 + + + 1100 + RTC alarm + #1100 + + + 1101 + RTC seconds + #1101 + + + 1110 + Low-power timer (LPTMR) trigger + #1110 + + + + + ADC1PRETRGSEL + ADC1 pre-trigger select + 12 + 1 + read-write + + + 0 + Pre-trigger A selected for ADC1. + #0 + + + 1 + Pre-trigger B selected for ADC1. + #1 + + + + + ADC1ALTTRGEN + ADC1 alternate trigger enable + 15 + 1 + read-write + + + 0 + PDB trigger selected for ADC1 + #0 + + + 1 + Alternate trigger selected for ADC1 as defined by ADC1TRGSEL. + #1 + + + + + + + SDID + System Device Identification Register + 0x1024 + 32 + read-only + 0x380 + 0xF0F80 + + + PINID + Pincount identification + 0 + 4 + read-only + + + 0010 + 32-pin + #0010 + + + 0100 + 48-pin + #0100 + + + 0101 + 64-pin + #0101 + + + 0110 + 80-pin + #0110 + + + 0111 + 81-pin or 121-pin + #0111 + + + 1000 + 100-pin + #1000 + + + 1001 + 121-pin + #1001 + + + 1010 + 144-pin + #1010 + + + 1011 + Custom pinout (WLCSP) + #1011 + + + 1100 + 169-pin + #1100 + + + 1110 + 256-pin + #1110 + + + + + FAMID + Kinetis family identification + 4 + 3 + read-only + + + 000 + K1x Family (without tamper) + #000 + + + 001 + K2x Family (without tamper) + #001 + + + 010 + K3x Family or K1x/K6x Family (with tamper) + #010 + + + 011 + K4x Family or K2x Family (with tamper) + #011 + + + 100 + K6x Family (without tamper) + #100 + + + 101 + K7x Family + #101 + + + + + DIEID + Device Die ID + 7 + 5 + read-only + + + REVID + Device revision number + 12 + 4 + read-only + + + SERIESID + Kinetis Series ID + 20 + 4 + read-only + + + 0000 + Kinetis K series + #0000 + + + 0001 + Kinetis L series + #0001 + + + 0101 + Kinetis W series + #0101 + + + 0110 + Kinetis V series + #0110 + + + + + SUBFAMID + Kinetis Sub-Family ID + 24 + 4 + read-only + + + 0000 + Kx0 Subfamily + #0000 + + + 0001 + Kx1 Subfamily (tamper detect) + #0001 + + + 0010 + Kx2 Subfamily + #0010 + + + 0011 + Kx3 Subfamily (tamper detect) + #0011 + + + 0100 + Kx4 Subfamily + #0100 + + + 0101 + Kx5 Subfamily (tamper detect) + #0101 + + + 0110 + Kx6 Subfamily + #0110 + + + + + FAMILYID + Kinetis Family ID + 28 + 4 + read-only + + + 0001 + K1x Family + #0001 + + + 0010 + K2x Family + #0010 + + + 0011 + K3x Family + #0011 + + + 0100 + K4x Family + #0100 + + + 0110 + K6x Family + #0110 + + + 0111 + K7x Family + #0111 + + + + + + + SCGC1 + System Clock Gating Control Register 1 + 0x1028 + 32 + read-write + 0 + 0xFFFFFFFF + + + I2C2 + I2C2 Clock Gate Control + 6 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + UART4 + UART4 Clock Gate Control + 10 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + UART5 + UART5 Clock Gate Control + 11 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + SCGC2 + System Clock Gating Control Register 2 + 0x102C + 32 + read-write + 0 + 0xFFFFFFFF + + + ENET + ENET Clock Gate Control + 0 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + DAC0 + DAC0 Clock Gate Control + 12 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + DAC1 + DAC1 Clock Gate Control + 13 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + SCGC3 + System Clock Gating Control Register 3 + 0x1030 + 32 + read-write + 0 + 0xFFFFFFFF + + + RNGA + RNGA Clock Gate Control + 0 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + SPI2 + SPI2 Clock Gate Control + 12 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + SDHC + SDHC Clock Gate Control + 17 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + FTM2 + FTM2 Clock Gate Control + 24 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + FTM3 + FTM3 Clock Gate Control + 25 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + ADC1 + ADC1 Clock Gate Control + 27 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + SCGC4 + System Clock Gating Control Register 4 + 0x1034 + 32 + read-write + 0xF0100030 + 0xFFFFFFFF + + + EWM + EWM Clock Gate Control + 1 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + CMT + CMT Clock Gate Control + 2 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + I2C0 + I2C0 Clock Gate Control + 6 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + I2C1 + I2C1 Clock Gate Control + 7 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + UART0 + UART0 Clock Gate Control + 10 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + UART1 + UART1 Clock Gate Control + 11 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + UART2 + UART2 Clock Gate Control + 12 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + UART3 + UART3 Clock Gate Control + 13 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + USBOTG + USB Clock Gate Control + 18 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + CMP + Comparator Clock Gate Control + 19 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + VREF + VREF Clock Gate Control + 20 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + SCGC5 + System Clock Gating Control Register 5 + 0x1038 + 32 + read-write + 0x40182 + 0xFFFFFFFF + + + LPTMR + Low Power Timer Access Control + 0 + 1 + read-write + + + 0 + Access disabled + #0 + + + 1 + Access enabled + #1 + + + + + PORTA + Port A Clock Gate Control + 9 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + PORTB + Port B Clock Gate Control + 10 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + PORTC + Port C Clock Gate Control + 11 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + PORTD + Port D Clock Gate Control + 12 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + PORTE + Port E Clock Gate Control + 13 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + SCGC6 + System Clock Gating Control Register 6 + 0x103C + 32 + read-write + 0x40000001 + 0xFFFFFFFF + + + FTF + Flash Memory Clock Gate Control + 0 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + DMAMUX + DMA Mux Clock Gate Control + 1 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + FLEXCAN0 + FlexCAN0 Clock Gate Control + 4 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + RNGA + RNGA Clock Gate Control + 9 + 1 + read-write + + + SPI0 + SPI0 Clock Gate Control + 12 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + SPI1 + SPI1 Clock Gate Control + 13 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + I2S + I2S Clock Gate Control + 15 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + CRC + CRC Clock Gate Control + 18 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + USBDCD + USB DCD Clock Gate Control + 21 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + PDB + PDB Clock Gate Control + 22 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + PIT + PIT Clock Gate Control + 23 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + FTM0 + FTM0 Clock Gate Control + 24 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + FTM1 + FTM1 Clock Gate Control + 25 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + FTM2 + FTM2 Clock Gate Control + 26 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + ADC0 + ADC0 Clock Gate Control + 27 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + RTC + RTC Access Control + 29 + 1 + read-write + + + 0 + Access and interrupts disabled + #0 + + + 1 + Access and interrupts enabled + #1 + + + + + DAC0 + DAC0 Clock Gate Control + 31 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + SCGC7 + System Clock Gating Control Register 7 + 0x1040 + 32 + read-write + 0x6 + 0xFFFFFFFF + + + FLEXBUS + FlexBus Clock Gate Control + 0 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + DMA + DMA Clock Gate Control + 1 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + MPU + MPU Clock Gate Control + 2 + 1 + read-write + + + 0 + Clock disabled + #0 + + + 1 + Clock enabled + #1 + + + + + + + CLKDIV1 + System Clock Divider Register 1 + 0x1044 + 32 + read-write + 0x10000 + 0xFFFFFFFF + + + OUTDIV4 + Clock 4 output divider value + 16 + 4 + read-write + + + 0000 + Divide-by-1. + #0000 + + + 0001 + Divide-by-2. + #0001 + + + 0010 + Divide-by-3. + #0010 + + + 0011 + Divide-by-4. + #0011 + + + 0100 + Divide-by-5. + #0100 + + + 0101 + Divide-by-6. + #0101 + + + 0110 + Divide-by-7. + #0110 + + + 0111 + Divide-by-8. + #0111 + + + 1000 + Divide-by-9. + #1000 + + + 1001 + Divide-by-10. + #1001 + + + 1010 + Divide-by-11. + #1010 + + + 1011 + Divide-by-12. + #1011 + + + 1100 + Divide-by-13. + #1100 + + + 1101 + Divide-by-14. + #1101 + + + 1110 + Divide-by-15. + #1110 + + + 1111 + Divide-by-16. + #1111 + + + + + OUTDIV3 + Clock 3 output divider value + 20 + 4 + read-write + + + 0000 + Divide-by-1. + #0000 + + + 0001 + Divide-by-2. + #0001 + + + 0010 + Divide-by-3. + #0010 + + + 0011 + Divide-by-4. + #0011 + + + 0100 + Divide-by-5. + #0100 + + + 0101 + Divide-by-6. + #0101 + + + 0110 + Divide-by-7. + #0110 + + + 0111 + Divide-by-8. + #0111 + + + 1000 + Divide-by-9. + #1000 + + + 1001 + Divide-by-10. + #1001 + + + 1010 + Divide-by-11. + #1010 + + + 1011 + Divide-by-12. + #1011 + + + 1100 + Divide-by-13. + #1100 + + + 1101 + Divide-by-14. + #1101 + + + 1110 + Divide-by-15. + #1110 + + + 1111 + Divide-by-16. + #1111 + + + + + OUTDIV2 + Clock 2 output divider value + 24 + 4 + read-write + + + 0000 + Divide-by-1. + #0000 + + + 0001 + Divide-by-2. + #0001 + + + 0010 + Divide-by-3. + #0010 + + + 0011 + Divide-by-4. + #0011 + + + 0100 + Divide-by-5. + #0100 + + + 0101 + Divide-by-6. + #0101 + + + 0110 + Divide-by-7. + #0110 + + + 0111 + Divide-by-8. + #0111 + + + 1000 + Divide-by-9. + #1000 + + + 1001 + Divide-by-10. + #1001 + + + 1010 + Divide-by-11. + #1010 + + + 1011 + Divide-by-12. + #1011 + + + 1100 + Divide-by-13. + #1100 + + + 1101 + Divide-by-14. + #1101 + + + 1110 + Divide-by-15. + #1110 + + + 1111 + Divide-by-16. + #1111 + + + + + OUTDIV1 + Clock 1 output divider value + 28 + 4 + read-write + + + 0000 + Divide-by-1. + #0000 + + + 0001 + Divide-by-2. + #0001 + + + 0010 + Divide-by-3. + #0010 + + + 0011 + Divide-by-4. + #0011 + + + 0100 + Divide-by-5. + #0100 + + + 0101 + Divide-by-6. + #0101 + + + 0110 + Divide-by-7. + #0110 + + + 0111 + Divide-by-8. + #0111 + + + 1000 + Divide-by-9. + #1000 + + + 1001 + Divide-by-10. + #1001 + + + 1010 + Divide-by-11. + #1010 + + + 1011 + Divide-by-12. + #1011 + + + 1100 + Divide-by-13. + #1100 + + + 1101 + Divide-by-14. + #1101 + + + 1110 + Divide-by-15. + #1110 + + + 1111 + Divide-by-16. + #1111 + + + + + + + CLKDIV2 + System Clock Divider Register 2 + 0x1048 + 32 + read-write + 0 + 0xFFFFFFFF + + + USBFRAC + USB clock divider fraction + 0 + 1 + read-write + + + USBDIV + USB clock divider divisor + 1 + 3 + read-write + + + + + FCFG1 + Flash Configuration Register 1 + 0x104C + 32 + read-write + 0xFF0F0F00 + 0xFFFFFFFF + + + FLASHDIS + Flash Disable + 0 + 1 + read-write + + + 0 + Flash is enabled + #0 + + + 1 + Flash is disabled + #1 + + + + + FLASHDOZE + Flash Doze + 1 + 1 + read-write + + + 0 + Flash remains enabled during Wait mode + #0 + + + 1 + Flash is disabled for the duration of Wait mode + #1 + + + + + DEPART + FlexNVM partition + 8 + 4 + read-only + + + EESIZE + EEPROM size + 16 + 4 + read-only + + + 0000 + 16 KB + #0000 + + + 0001 + 8 KB + #0001 + + + 0010 + 4 KB + #0010 + + + 0011 + 2 KB + #0011 + + + 0100 + 1 KB + #0100 + + + 0101 + 512 Bytes + #0101 + + + 0110 + 256 Bytes + #0110 + + + 0111 + 128 Bytes + #0111 + + + 1000 + 64 Bytes + #1000 + + + 1001 + 32 Bytes + #1001 + + + 1111 + 0 Bytes + #1111 + + + + + PFSIZE + Program flash size + 24 + 4 + read-only + + + 0011 + 32 KB of program flash memory + #0011 + + + 0101 + 64 KB of program flash memory + #0101 + + + 0111 + 128 KB of program flash memory + #0111 + + + 1001 + 256 KB of program flash memory + #1001 + + + 1011 + 512 KB of program flash memory + #1011 + + + 1101 + 1024 KB of program flash memory + #1101 + + + 1111 + 1024 KB of program flash memory + #1111 + + + + + NVMSIZE + FlexNVM size + 28 + 4 + read-only + + + 0000 + 0 KB of FlexNVM + #0000 + + + 0011 + 32 KB of FlexNVM + #0011 + + + 0101 + 64 KB of FlexNVM + #0101 + + + 0111 + 128 KB of FlexNVM + #0111 + + + 1001 + 256 KB of FlexNVM + #1001 + + + 1011 + 512 KB of FlexNVM + #1011 + + + 1111 + 512 KB of FlexNVM + #1111 + + + + + + + FCFG2 + Flash Configuration Register 2 + 0x1050 + 32 + read-only + 0x7F7F0000 + 0xFFFFFFFF + + + MAXADDR1 + Max address block 1 + 16 + 7 + read-only + + + PFLSH + Program flash only + 23 + 1 + read-only + + + 0 + Device supports FlexNVM + #0 + + + 1 + Program Flash only, device does not support FlexNVM + #1 + + + + + MAXADDR0 + Max address block 0 + 24 + 7 + read-only + + + + + UIDH + Unique Identification Register High + 0x1054 + 32 + read-only + 0 + 0xFFFFFFFF + + + UID + Unique Identification + 0 + 32 + read-only + + + + + UIDMH + Unique Identification Register Mid-High + 0x1058 + 32 + read-only + 0 + 0xFFFFFFFF + + + UID + Unique Identification + 0 + 32 + read-only + + + + + UIDML + Unique Identification Register Mid Low + 0x105C + 32 + read-only + 0 + 0xFFFFFFFF + + + UID + Unique Identification + 0 + 32 + read-only + + + + + UIDL + Unique Identification Register Low + 0x1060 + 32 + read-only + 0 + 0xFFFFFFFF + + + UID + Unique Identification + 0 + 32 + read-only + + + + + + + PORTA + Pin Control and Interrupts + PORT + PORTA_ + 0x40049000 + + 0 + 0xA4 + registers + + + PORTA + 59 + + + + PCR0 + Pin Control Register n + 0 + 32 + read-write + 0x742 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR1 + Pin Control Register n + 0x4 + 32 + read-write + 0x743 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR2 + Pin Control Register n + 0x8 + 32 + read-write + 0x743 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR3 + Pin Control Register n + 0xC + 32 + read-write + 0x743 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR4 + Pin Control Register n + 0x10 + 32 + read-write + 0x743 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR5 + Pin Control Register n + 0x14 + 32 + read-write + 0x41 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR6 + Pin Control Register n + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR7 + Pin Control Register n + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR8 + Pin Control Register n + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR9 + Pin Control Register n + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR10 + Pin Control Register n + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR11 + Pin Control Register n + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR12 + Pin Control Register n + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR13 + Pin Control Register n + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR14 + Pin Control Register n + 0x38 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR15 + Pin Control Register n + 0x3C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR16 + Pin Control Register n + 0x40 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR17 + Pin Control Register n + 0x44 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR18 + Pin Control Register n + 0x48 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR19 + Pin Control Register n + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR20 + Pin Control Register n + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR21 + Pin Control Register n + 0x54 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR22 + Pin Control Register n + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR23 + Pin Control Register n + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR24 + Pin Control Register n + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR25 + Pin Control Register n + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR26 + Pin Control Register n + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR27 + Pin Control Register n + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR28 + Pin Control Register n + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR29 + Pin Control Register n + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR30 + Pin Control Register n + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR31 + Pin Control Register n + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + GPCLR + Global Pin Control Low Register + 0x80 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + GPCHR + Global Pin Control High Register + 0x84 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + ISFR + Interrupt Status Flag Register + 0xA0 + 32 + read-write + 0 + 0xFFFFFFFF + + + ISF + Interrupt Status Flag + 0 + 32 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + + + PORTB + Pin Control and Interrupts + PORT + PORTB_ + 0x4004A000 + + 0 + 0xA4 + registers + + + PORTB + 60 + + + + PCR0 + Pin Control Register n + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR1 + Pin Control Register n + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR2 + Pin Control Register n + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR3 + Pin Control Register n + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR4 + Pin Control Register n + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR5 + Pin Control Register n + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR6 + Pin Control Register n + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR7 + Pin Control Register n + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR8 + Pin Control Register n + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR9 + Pin Control Register n + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR10 + Pin Control Register n + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR11 + Pin Control Register n + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR12 + Pin Control Register n + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR13 + Pin Control Register n + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR14 + Pin Control Register n + 0x38 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR15 + Pin Control Register n + 0x3C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR16 + Pin Control Register n + 0x40 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR17 + Pin Control Register n + 0x44 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR18 + Pin Control Register n + 0x48 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR19 + Pin Control Register n + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR20 + Pin Control Register n + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR21 + Pin Control Register n + 0x54 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR22 + Pin Control Register n + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR23 + Pin Control Register n + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR24 + Pin Control Register n + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR25 + Pin Control Register n + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR26 + Pin Control Register n + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR27 + Pin Control Register n + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR28 + Pin Control Register n + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR29 + Pin Control Register n + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR30 + Pin Control Register n + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR31 + Pin Control Register n + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + GPCLR + Global Pin Control Low Register + 0x80 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + GPCHR + Global Pin Control High Register + 0x84 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + ISFR + Interrupt Status Flag Register + 0xA0 + 32 + read-write + 0 + 0xFFFFFFFF + + + ISF + Interrupt Status Flag + 0 + 32 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + + + PORTC + Pin Control and Interrupts + PORT + PORTC_ + 0x4004B000 + + 0 + 0xA4 + registers + + + PORTC + 61 + + + + PCR0 + Pin Control Register n + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR1 + Pin Control Register n + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR2 + Pin Control Register n + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR3 + Pin Control Register n + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR4 + Pin Control Register n + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR5 + Pin Control Register n + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR6 + Pin Control Register n + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR7 + Pin Control Register n + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR8 + Pin Control Register n + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR9 + Pin Control Register n + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR10 + Pin Control Register n + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR11 + Pin Control Register n + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR12 + Pin Control Register n + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR13 + Pin Control Register n + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR14 + Pin Control Register n + 0x38 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR15 + Pin Control Register n + 0x3C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR16 + Pin Control Register n + 0x40 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR17 + Pin Control Register n + 0x44 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR18 + Pin Control Register n + 0x48 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR19 + Pin Control Register n + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR20 + Pin Control Register n + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR21 + Pin Control Register n + 0x54 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR22 + Pin Control Register n + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR23 + Pin Control Register n + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR24 + Pin Control Register n + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR25 + Pin Control Register n + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR26 + Pin Control Register n + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR27 + Pin Control Register n + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR28 + Pin Control Register n + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR29 + Pin Control Register n + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR30 + Pin Control Register n + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR31 + Pin Control Register n + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + GPCLR + Global Pin Control Low Register + 0x80 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + GPCHR + Global Pin Control High Register + 0x84 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + ISFR + Interrupt Status Flag Register + 0xA0 + 32 + read-write + 0 + 0xFFFFFFFF + + + ISF + Interrupt Status Flag + 0 + 32 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + + + PORTD + Pin Control and Interrupts + PORT + PORTD_ + 0x4004C000 + + 0 + 0xCC + registers + + + PORTD + 62 + + + + PCR0 + Pin Control Register n + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR1 + Pin Control Register n + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR2 + Pin Control Register n + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR3 + Pin Control Register n + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR4 + Pin Control Register n + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR5 + Pin Control Register n + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR6 + Pin Control Register n + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR7 + Pin Control Register n + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR8 + Pin Control Register n + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR9 + Pin Control Register n + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR10 + Pin Control Register n + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR11 + Pin Control Register n + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR12 + Pin Control Register n + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR13 + Pin Control Register n + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR14 + Pin Control Register n + 0x38 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR15 + Pin Control Register n + 0x3C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR16 + Pin Control Register n + 0x40 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR17 + Pin Control Register n + 0x44 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR18 + Pin Control Register n + 0x48 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR19 + Pin Control Register n + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR20 + Pin Control Register n + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR21 + Pin Control Register n + 0x54 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR22 + Pin Control Register n + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR23 + Pin Control Register n + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR24 + Pin Control Register n + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR25 + Pin Control Register n + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR26 + Pin Control Register n + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR27 + Pin Control Register n + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR28 + Pin Control Register n + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR29 + Pin Control Register n + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR30 + Pin Control Register n + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR31 + Pin Control Register n + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + GPCLR + Global Pin Control Low Register + 0x80 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + GPCHR + Global Pin Control High Register + 0x84 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + ISFR + Interrupt Status Flag Register + 0xA0 + 32 + read-write + 0 + 0xFFFFFFFF + + + ISF + Interrupt Status Flag + 0 + 32 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + DFER + Digital Filter Enable Register + 0xC0 + 32 + read-write + 0 + 0xFFFFFFFF + + + DFE + Digital Filter Enable + 0 + 32 + read-write + + + 0 + Digital filter is disabled on the corresponding pin and output of the digital filter is reset to zero. + #0 + + + 1 + Digital filter is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + + + DFCR + Digital Filter Clock Register + 0xC4 + 32 + read-write + 0 + 0xFFFFFFFF + + + CS + Clock Source + 0 + 1 + read-write + + + 0 + Digital filters are clocked by the bus clock. + #0 + + + 1 + Digital filters are clocked by the 1 kHz LPO clock. + #1 + + + + + + + DFWR + Digital Filter Width Register + 0xC8 + 32 + read-write + 0 + 0xFFFFFFFF + + + FILT + Filter Length + 0 + 5 + read-write + + + + + + + PORTE + Pin Control and Interrupts + PORT + PORTE_ + 0x4004D000 + + 0 + 0xA4 + registers + + + PORTE + 63 + + + + PCR0 + Pin Control Register n + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR1 + Pin Control Register n + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR2 + Pin Control Register n + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR3 + Pin Control Register n + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR4 + Pin Control Register n + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR5 + Pin Control Register n + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR6 + Pin Control Register n + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR7 + Pin Control Register n + 0x1C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR8 + Pin Control Register n + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR9 + Pin Control Register n + 0x24 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR10 + Pin Control Register n + 0x28 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR11 + Pin Control Register n + 0x2C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR12 + Pin Control Register n + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR13 + Pin Control Register n + 0x34 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR14 + Pin Control Register n + 0x38 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR15 + Pin Control Register n + 0x3C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR16 + Pin Control Register n + 0x40 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR17 + Pin Control Register n + 0x44 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR18 + Pin Control Register n + 0x48 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR19 + Pin Control Register n + 0x4C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR20 + Pin Control Register n + 0x50 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR21 + Pin Control Register n + 0x54 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR22 + Pin Control Register n + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR23 + Pin Control Register n + 0x5C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR24 + Pin Control Register n + 0x60 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR25 + Pin Control Register n + 0x64 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR26 + Pin Control Register n + 0x68 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR27 + Pin Control Register n + 0x6C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR28 + Pin Control Register n + 0x70 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-write + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-write + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-write + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-write + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-write + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-write + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR29 + Pin Control Register n + 0x74 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR30 + Pin Control Register n + 0x78 + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + PCR31 + Pin Control Register n + 0x7C + 32 + read-write + 0 + 0xFFFFFFFF + + + PS + Pull Select + 0 + 1 + read-only + + + 0 + Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #0 + + + 1 + Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set. + #1 + + + + + PE + Pull Enable + 1 + 1 + read-only + + + 0 + Internal pullup or pulldown resistor is not enabled on the corresponding pin. + #0 + + + 1 + Internal pullup or pulldown resistor is enabled on the corresponding pin, if the pin is configured as a digital input. + #1 + + + + + SRE + Slew Rate Enable + 2 + 1 + read-only + + + 0 + Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #0 + + + 1 + Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + PFE + Passive Filter Enable + 4 + 1 + read-only + + + 0 + Passive input filter is disabled on the corresponding pin. + #0 + + + 1 + Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics. + #1 + + + + + ODE + Open Drain Enable + 5 + 1 + read-only + + + 0 + Open drain output is disabled on the corresponding pin. + #0 + + + 1 + Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output. + #1 + + + + + DSE + Drive Strength Enable + 6 + 1 + read-only + + + 0 + Low drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #0 + + + 1 + High drive strength is configured on the corresponding pin, if pin is configured as a digital output. + #1 + + + + + MUX + Pin Mux Control + 8 + 3 + read-write + + + 000 + Pin disabled (analog). + #000 + + + 001 + Alternative 1 (GPIO). + #001 + + + 010 + Alternative 2 (chip-specific). + #010 + + + 011 + Alternative 3 (chip-specific). + #011 + + + 100 + Alternative 4 (chip-specific). + #100 + + + 101 + Alternative 5 (chip-specific). + #101 + + + 110 + Alternative 6 (chip-specific). + #110 + + + 111 + Alternative 7 (chip-specific). + #111 + + + + + LK + Lock Register + 15 + 1 + read-write + + + 0 + Pin Control Register fields [15:0] are not locked. + #0 + + + 1 + Pin Control Register fields [15:0] are locked and cannot be updated until the next system reset. + #1 + + + + + IRQC + Interrupt Configuration + 16 + 4 + read-write + + + 0000 + Interrupt/DMA request disabled. + #0000 + + + 0001 + DMA request on rising edge. + #0001 + + + 0010 + DMA request on falling edge. + #0010 + + + 0011 + DMA request on either edge. + #0011 + + + 1000 + Interrupt when logic 0. + #1000 + + + 1001 + Interrupt on rising-edge. + #1001 + + + 1010 + Interrupt on falling-edge. + #1010 + + + 1011 + Interrupt on either edge. + #1011 + + + 1100 + Interrupt when logic 1. + #1100 + + + + + ISF + Interrupt Status Flag + 24 + 1 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + GPCLR + Global Pin Control Low Register + 0x80 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + GPCHR + Global Pin Control High Register + 0x84 + 32 + write-only + 0 + 0xFFFFFFFF + + + GPWD + Global Pin Write Data + 0 + 16 + write-only + + + GPWE + Global Pin Write Enable + 16 + 16 + write-only + + + 0 + Corresponding Pin Control Register is not updated with the value in GPWD. + #0 + + + 1 + Corresponding Pin Control Register is updated with the value in GPWD. + #1 + + + + + + + ISFR + Interrupt Status Flag Register + 0xA0 + 32 + read-write + 0 + 0xFFFFFFFF + + + ISF + Interrupt Status Flag + 0 + 32 + read-write + + + 0 + Configured interrupt is not detected. + #0 + + + 1 + Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared. + #1 + + + + + + + + + WDOG + Generation 2008 Watchdog Timer + WDOG_ + 0x40052000 + + 0 + 0x18 + registers + + + WDOG_EWM + 22 + + + + STCTRLH + Watchdog Status and Control Register High + 0 + 16 + read-write + 0x1D3 + 0xFFFF + + + WDOGEN + Enables or disables the WDOG's operation + 0 + 1 + read-write + + + 0 + WDOG is disabled. + #0 + + + 1 + WDOG is enabled. + #1 + + + + + CLKSRC + Selects clock source for the WDOG timer and other internal timing operations. + 1 + 1 + read-write + + + 0 + WDOG clock sourced from LPO . + #0 + + + 1 + WDOG clock sourced from alternate clock source. + #1 + + + + + IRQRSTEN + Used to enable the debug breadcrumbs feature + 2 + 1 + read-write + + + 0 + WDOG time-out generates reset only. + #0 + + + 1 + WDOG time-out initially generates an interrupt. After WCT, it generates a reset. + #1 + + + + + WINEN + Enables Windowing mode. + 3 + 1 + read-write + + + 0 + Windowing mode is disabled. + #0 + + + 1 + Windowing mode is enabled. + #1 + + + + + ALLOWUPDATE + Enables updates to watchdog write-once registers, after the reset-triggered initial configuration window (WCT) closes, through unlock sequence + 4 + 1 + read-write + + + 0 + No further updates allowed to WDOG write-once registers. + #0 + + + 1 + WDOG write-once registers can be unlocked for updating. + #1 + + + + + DBGEN + Enables or disables WDOG in Debug mode. + 5 + 1 + read-write + + + 0 + WDOG is disabled in CPU Debug mode. + #0 + + + 1 + WDOG is enabled in CPU Debug mode. + #1 + + + + + STOPEN + Enables or disables WDOG in Stop mode. + 6 + 1 + read-write + + + 0 + WDOG is disabled in CPU Stop mode. + #0 + + + 1 + WDOG is enabled in CPU Stop mode. + #1 + + + + + WAITEN + Enables or disables WDOG in Wait mode. + 7 + 1 + read-write + + + 0 + WDOG is disabled in CPU Wait mode. + #0 + + + 1 + WDOG is enabled in CPU Wait mode. + #1 + + + + + TESTWDOG + Puts the watchdog in the functional test mode + 10 + 1 + read-write + + + TESTSEL + Effective only if TESTWDOG is set. Selects the test to be run on the watchdog timer. + 11 + 1 + read-write + + + 0 + Quick test. The timer runs in normal operation. You can load a small time-out value to do a quick test. + #0 + + + 1 + Byte test. Puts the timer in the byte test mode where individual bytes of the timer are enabled for operation and are compared for time-out against the corresponding byte of the programmed time-out value. Select the byte through BYTESEL[1:0] for testing. + #1 + + + + + BYTESEL + This 2-bit field selects the byte to be tested when the watchdog is in the byte test mode. + 12 + 2 + read-write + + + 00 + Byte 0 selected + #00 + + + 01 + Byte 1 selected + #01 + + + 10 + Byte 2 selected + #10 + + + 11 + Byte 3 selected + #11 + + + + + DISTESTWDOG + Allows the WDOG's functional test mode to be disabled permanently + 14 + 1 + read-write + + + 0 + WDOG functional test mode is not disabled. + #0 + + + 1 + WDOG functional test mode is disabled permanently until reset. + #1 + + + + + + + STCTRLL + Watchdog Status and Control Register Low + 0x2 + 16 + read-write + 0x1 + 0xFFFF + + + INTFLG + Interrupt flag + 15 + 1 + read-write + + + + + TOVALH + Watchdog Time-out Value Register High + 0x4 + 16 + read-write + 0x4C + 0xFFFF + + + TOVALHIGH + Defines the upper 16 bits of the 32-bit time-out value for the watchdog timer + 0 + 16 + read-write + + + + + TOVALL + Watchdog Time-out Value Register Low + 0x6 + 16 + read-write + 0x4B4C + 0xFFFF + + + TOVALLOW + Defines the lower 16 bits of the 32-bit time-out value for the watchdog timer + 0 + 16 + read-write + + + + + WINH + Watchdog Window Register High + 0x8 + 16 + read-write + 0 + 0xFFFF + + + WINHIGH + Defines the upper 16 bits of the 32-bit window for the windowed mode of operation of the watchdog + 0 + 16 + read-write + + + + + WINL + Watchdog Window Register Low + 0xA + 16 + read-write + 0x10 + 0xFFFF + + + WINLOW + Defines the lower 16 bits of the 32-bit window for the windowed mode of operation of the watchdog + 0 + 16 + read-write + + + + + REFRESH + Watchdog Refresh register + 0xC + 16 + read-write + 0xB480 + 0xFFFF + + + WDOGREFRESH + Watchdog refresh register + 0 + 16 + read-write + + + + + UNLOCK + Watchdog Unlock register + 0xE + 16 + read-write + 0xD928 + 0xFFFF + + + WDOGUNLOCK + Writing the unlock sequence values to this register to makes the watchdog write-once registers writable again + 0 + 16 + read-write + + + + + TMROUTH + Watchdog Timer Output Register High + 0x10 + 16 + read-write + 0 + 0xFFFF + + + TIMEROUTHIGH + Shows the value of the upper 16 bits of the watchdog timer. + 0 + 16 + read-write + + + + + TMROUTL + Watchdog Timer Output Register Low + 0x12 + 16 + read-write + 0 + 0xFFFF + + + TIMEROUTLOW + Shows the value of the lower 16 bits of the watchdog timer. + 0 + 16 + read-write + + + + + RSTCNT + Watchdog Reset Count register + 0x14 + 16 + read-write + 0 + 0xFFFF + + + RSTCNT + Counts the number of times the watchdog resets the system + 0 + 16 + read-write + + + + + PRESC + Watchdog Prescaler register + 0x16 + 16 + read-write + 0x400 + 0xFFFF + + + PRESCVAL + 3-bit prescaler for the watchdog clock source + 8 + 3 + read-write + + + + + + + EWM + External Watchdog Monitor + EWM_ + 0x40061000 + + 0 + 0x4 + registers + + + WDOG_EWM + 22 + + + + CTRL + Control Register + 0 + 8 + read-write + 0 + 0xFF + + + EWMEN + EWM enable. + 0 + 1 + read-write + + + ASSIN + EWM_in's Assertion State Select. + 1 + 1 + read-write + + + INEN + Input Enable. + 2 + 1 + read-write + + + INTEN + Interrupt Enable. + 3 + 1 + read-write + + + + + SERV + Service Register + 0x1 + 8 + write-only + 0 + 0xFF + + + SERVICE + The EWM service mechanism requires the CPU to write two values to the SERV register: a first data byte of 0xB4, followed by a second data byte of 0x2C + 0 + 8 + write-only + + + + + CMPL + Compare Low Register + 0x2 + 8 + read-write + 0 + 0xFF + + + COMPAREL + To prevent runaway code from changing this field, software should write to this field after a CPU reset even if the (default) minimum service time is required + 0 + 8 + read-write + + + + + CMPH + Compare High Register + 0x3 + 8 + read-write + 0xFF + 0xFF + + + COMPAREH + To prevent runaway code from changing this field, software should write to this field after a CPU reset even if the (default) maximum service time is required + 0 + 8 + read-write + + + + + + + CMT + Carrier Modulator Transmitter + CMT_ + 0x40062000 + + 0 + 0xC + registers + + + CMT + 45 + + + + CGH1 + CMT Carrier Generator High Data Register 1 + 0 + 8 + read-write + 0 + 0 + + + PH + Primary Carrier High Time Data Value + 0 + 8 + read-write + + + + + CGL1 + CMT Carrier Generator Low Data Register 1 + 0x1 + 8 + read-write + 0 + 0 + + + PL + Primary Carrier Low Time Data Value + 0 + 8 + read-write + + + + + CGH2 + CMT Carrier Generator High Data Register 2 + 0x2 + 8 + read-write + 0 + 0 + + + SH + Secondary Carrier High Time Data Value + 0 + 8 + read-write + + + + + CGL2 + CMT Carrier Generator Low Data Register 2 + 0x3 + 8 + read-write + 0 + 0 + + + SL + Secondary Carrier Low Time Data Value + 0 + 8 + read-write + + + + + OC + CMT Output Control Register + 0x4 + 8 + read-write + 0 + 0xFF + + + IROPEN + IRO Pin Enable + 5 + 1 + read-write + + + 0 + The IRO signal is disabled. + #0 + + + 1 + The IRO signal is enabled as output. + #1 + + + + + CMTPOL + CMT Output Polarity + 6 + 1 + read-write + + + 0 + The IRO signal is active-low. + #0 + + + 1 + The IRO signal is active-high. + #1 + + + + + IROL + IRO Latch Control + 7 + 1 + read-write + + + + + MSC + CMT Modulator Status and Control Register + 0x5 + 8 + read-write + 0 + 0xFF + + + MCGEN + Modulator and Carrier Generator Enable + 0 + 1 + read-write + + + 0 + Modulator and carrier generator disabled + #0 + + + 1 + Modulator and carrier generator enabled + #1 + + + + + EOCIE + End of Cycle Interrupt Enable + 1 + 1 + read-write + + + 0 + CPU interrupt is disabled. + #0 + + + 1 + CPU interrupt is enabled. + #1 + + + + + FSK + FSK Mode Select + 2 + 1 + read-write + + + 0 + The CMT operates in Time or Baseband mode. + #0 + + + 1 + The CMT operates in FSK mode. + #1 + + + + + BASE + Baseband Enable + 3 + 1 + read-write + + + 0 + Baseband mode is disabled. + #0 + + + 1 + Baseband mode is enabled. + #1 + + + + + EXSPC + Extended Space Enable + 4 + 1 + read-write + + + 0 + Extended space is disabled. + #0 + + + 1 + Extended space is enabled. + #1 + + + + + CMTDIV + CMT Clock Divide Prescaler + 5 + 2 + read-write + + + 00 + IF * 1 + #00 + + + 01 + IF * 2 + #01 + + + 10 + IF * 4 + #10 + + + 11 + IF * 8 + #11 + + + + + EOCF + End Of Cycle Status Flag + 7 + 1 + read-only + + + 0 + End of modulation cycle has not occured since the flag last cleared. + #0 + + + 1 + End of modulator cycle has occurred. + #1 + + + + + + + CMD1 + CMT Modulator Data Register Mark High + 0x6 + 8 + read-write + 0 + 0 + + + MB + Controls the upper mark periods of the modulator for all modes. + 0 + 8 + read-write + + + + + CMD2 + CMT Modulator Data Register Mark Low + 0x7 + 8 + read-write + 0 + 0 + + + MB + Controls the lower mark periods of the modulator for all modes. + 0 + 8 + read-write + + + + + CMD3 + CMT Modulator Data Register Space High + 0x8 + 8 + read-write + 0 + 0 + + + SB + Controls the upper space periods of the modulator for all modes. + 0 + 8 + read-write + + + + + CMD4 + CMT Modulator Data Register Space Low + 0x9 + 8 + read-write + 0 + 0 + + + SB + Controls the lower space periods of the modulator for all modes. + 0 + 8 + read-write + + + + + PPS + CMT Primary Prescaler Register + 0xA + 8 + read-write + 0 + 0xFF + + + PPSDIV + Primary Prescaler Divider + 0 + 4 + read-write + + + 0000 + Bus clock * 1 + #0000 + + + 0001 + Bus clock * 2 + #0001 + + + 0010 + Bus clock * 3 + #0010 + + + 0011 + Bus clock * 4 + #0011 + + + 0100 + Bus clock * 5 + #0100 + + + 0101 + Bus clock * 6 + #0101 + + + 0110 + Bus clock * 7 + #0110 + + + 0111 + Bus clock * 8 + #0111 + + + 1000 + Bus clock * 9 + #1000 + + + 1001 + Bus clock * 10 + #1001 + + + 1010 + Bus clock * 11 + #1010 + + + 1011 + Bus clock * 12 + #1011 + + + 1100 + Bus clock * 13 + #1100 + + + 1101 + Bus clock * 14 + #1101 + + + 1110 + Bus clock * 15 + #1110 + + + 1111 + Bus clock * 16 + #1111 + + + + + + + DMA + CMT Direct Memory Access Register + 0xB + 8 + read-write + 0 + 0xFF + + + DMA + DMA Enable + 0 + 1 + read-write + + + 0 + DMA transfer request and done are disabled. + #0 + + + 1 + DMA transfer request and done are enabled. + #1 + + + + + + + + + MCG + Multipurpose Clock Generator module + MCG_ + 0x40064000 + + 0 + 0xE + registers + + + + C1 + MCG Control 1 Register + 0 + 8 + read-write + 0x4 + 0xFF + + + IREFSTEN + Internal Reference Stop Enable + 0 + 1 + read-write + + + 0 + Internal reference clock is disabled in Stop mode. + #0 + + + 1 + Internal reference clock is enabled in Stop mode if IRCLKEN is set or if MCG is in FEI, FBI, or BLPI modes before entering Stop mode. + #1 + + + + + IRCLKEN + Internal Reference Clock Enable + 1 + 1 + read-write + + + 0 + MCGIRCLK inactive. + #0 + + + 1 + MCGIRCLK active. + #1 + + + + + IREFS + Internal Reference Select + 2 + 1 + read-write + + + 0 + External reference clock is selected. + #0 + + + 1 + The slow internal reference clock is selected. + #1 + + + + + FRDIV + FLL External Reference Divider + 3 + 3 + read-write + + + 000 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 1; for all other RANGE values, Divide Factor is 32. + #000 + + + 001 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 2; for all other RANGE values, Divide Factor is 64. + #001 + + + 010 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 4; for all other RANGE values, Divide Factor is 128. + #010 + + + 011 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 8; for all other RANGE values, Divide Factor is 256. + #011 + + + 100 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 16; for all other RANGE values, Divide Factor is 512. + #100 + + + 101 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 32; for all other RANGE values, Divide Factor is 1024. + #101 + + + 110 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 64; for all other RANGE values, Divide Factor is 1280 . + #110 + + + 111 + If RANGE = 0 or OSCSEL=1 , Divide Factor is 128; for all other RANGE values, Divide Factor is 1536 . + #111 + + + + + CLKS + Clock Source Select + 6 + 2 + read-write + + + 00 + Encoding 0 - Output of FLL or PLL is selected (depends on PLLS control bit). + #00 + + + 01 + Encoding 1 - Internal reference clock is selected. + #01 + + + 10 + Encoding 2 - External reference clock is selected. + #10 + + + 11 + Encoding 3 - Reserved. + #11 + + + + + + + C2 + MCG Control 2 Register + 0x1 + 8 + read-write + 0x80 + 0xFF + + + IRCS + Internal Reference Clock Select + 0 + 1 + read-write + + + 0 + Slow internal reference clock selected. + #0 + + + 1 + Fast internal reference clock selected. + #1 + + + + + LP + Low Power Select + 1 + 1 + read-write + + + 0 + FLL or PLL is not disabled in bypass modes. + #0 + + + 1 + FLL or PLL is disabled in bypass modes (lower power) + #1 + + + + + EREFS + External Reference Select + 2 + 1 + read-write + + + 0 + External reference clock requested. + #0 + + + 1 + Oscillator requested. + #1 + + + + + HGO + High Gain Oscillator Select + 3 + 1 + read-write + + + 0 + Configure crystal oscillator for low-power operation. + #0 + + + 1 + Configure crystal oscillator for high-gain operation. + #1 + + + + + RANGE + Frequency Range Select + 4 + 2 + read-write + + + 00 + Encoding 0 - Low frequency range selected for the crystal oscillator . + #00 + + + 01 + Encoding 1 - High frequency range selected for the crystal oscillator . + #01 + + + 1X + Encoding 2 - Very high frequency range selected for the crystal oscillator . + #1x + + + + + FCFTRIM + Fast Internal Reference Clock Fine Trim + 6 + 1 + read-write + + + LOCRE0 + Loss of Clock Reset Enable + 7 + 1 + read-write + + + 0 + Interrupt request is generated on a loss of OSC0 external reference clock. + #0 + + + 1 + Generate a reset request on a loss of OSC0 external reference clock. + #1 + + + + + + + C3 + MCG Control 3 Register + 0x2 + 8 + read-write + 0 + 0 + + + SCTRIM + Slow Internal Reference Clock Trim Setting + 0 + 8 + read-write + + + + + C4 + MCG Control 4 Register + 0x3 + 8 + read-write + 0 + 0xE0 + + + SCFTRIM + Slow Internal Reference Clock Fine Trim + 0 + 1 + read-write + + + FCTRIM + Fast Internal Reference Clock Trim Setting + 1 + 4 + read-write + + + DRST_DRS + DCO Range Select + 5 + 2 + read-write + + + 00 + Encoding 0 - Low range (reset default). + #00 + + + 01 + Encoding 1 - Mid range. + #01 + + + 10 + Encoding 2 - Mid-high range. + #10 + + + 11 + Encoding 3 - High range. + #11 + + + + + DMX32 + DCO Maximum Frequency with 32.768 kHz Reference + 7 + 1 + read-write + + + 0 + DCO has a default range of 25%. + #0 + + + 1 + DCO is fine-tuned for maximum frequency with 32.768 kHz reference. + #1 + + + + + + + C5 + MCG Control 5 Register + 0x4 + 8 + read-write + 0 + 0xFF + + + PRDIV0 + PLL External Reference Divider + 0 + 5 + read-write + + + 0 + Divide Factor is 1 + #00000 + + + 1 + Divide Factor is 2 + #00001 + + + 2 + Divide Factor is 3 + #00010 + + + 3 + Divide Factor is 4 + #00011 + + + 4 + Divide Factor is 5 + #00100 + + + 5 + Divide Factor is 6 + #00101 + + + 6 + Divide Factor is 7 + #00110 + + + 7 + Divide Factor is 8 + #00111 + + + 8 + Divide Factor is 9 + #01000 + + + 9 + Divide Factor is 10 + #01001 + + + 10 + Divide Factor is 11 + #01010 + + + 11 + Divide Factor is 12 + #01011 + + + 12 + Divide Factor is 13 + #01100 + + + 13 + Divide Factor is 14 + #01101 + + + 14 + Divide Factor is 15 + #01110 + + + 15 + Divide Factor is 16 + #01111 + + + 16 + Divide Factor is 17 + #10000 + + + 17 + Divide Factor is 18 + #10001 + + + 18 + Divide Factor is 19 + #10010 + + + 19 + Divide Factor is 20 + #10011 + + + 20 + Divide Factor is 21 + #10100 + + + 21 + Divide Factor is 22 + #10101 + + + 22 + Divide Factor is 23 + #10110 + + + 23 + Divide Factor is 24 + #10111 + + + 24 + Divide Factor is 25 + #11000 + + + 25 + Divide Factor is 26 + #11001 + + + 26 + Divide Factor is 27 + #11010 + + + 27 + Divide Factor is 28 + #11011 + + + 28 + Divide Factor is 29 + #11100 + + + 29 + Divide Factor is 30 + #11101 + + + 30 + Divide Factor is 31 + #11110 + + + 31 + Divide Factor is 32 + #11111 + + + + + PLLSTEN0 + PLL Stop Enable + 5 + 1 + read-write + + + 0 + MCGPLLCLK is disabled in any of the Stop modes. + #0 + + + 1 + MCGPLLCLK is enabled if system is in Normal Stop mode. + #1 + + + + + PLLCLKEN0 + PLL Clock Enable + 6 + 1 + read-write + + + 0 + MCGPLLCLK is inactive. + #0 + + + 1 + MCGPLLCLK is active. + #1 + + + + + + + C6 + MCG Control 6 Register + 0x5 + 8 + read-write + 0 + 0xFF + + + VDIV0 + VCO 0 Divider + 0 + 5 + read-write + + + 0 + Multiply Factor is 24 + #00000 + + + 1 + Multiply Factor is 25 + #00001 + + + 2 + Multiply Factor is 26 + #00010 + + + 3 + Multiply Factor is 27 + #00011 + + + 4 + Multiply Factor is 28 + #00100 + + + 5 + Multiply Factor is 29 + #00101 + + + 6 + Multiply Factor is 30 + #00110 + + + 7 + Multiply Factor is 31 + #00111 + + + 8 + Multiply Factor is 32 + #01000 + + + 9 + Multiply Factor is 33 + #01001 + + + 10 + Multiply Factor is 34 + #01010 + + + 11 + Multiply Factor is 35 + #01011 + + + 12 + Multiply Factor is 36 + #01100 + + + 13 + Multiply Factor is 37 + #01101 + + + 14 + Multiply Factor is 38 + #01110 + + + 15 + Multiply Factor is 39 + #01111 + + + 16 + Multiply Factor is 40 + #10000 + + + 17 + Multiply Factor is 41 + #10001 + + + 18 + Multiply Factor is 42 + #10010 + + + 19 + Multiply Factor is 43 + #10011 + + + 20 + Multiply Factor is 44 + #10100 + + + 21 + Multiply Factor is 45 + #10101 + + + 22 + Multiply Factor is 46 + #10110 + + + 23 + Multiply Factor is 47 + #10111 + + + 24 + Multiply Factor is 48 + #11000 + + + 25 + Multiply Factor is 49 + #11001 + + + 26 + Multiply Factor is 50 + #11010 + + + 27 + Multiply Factor is 51 + #11011 + + + 28 + Multiply Factor is 52 + #11100 + + + 29 + Multiply Factor is 53 + #11101 + + + 30 + Multiply Factor is 54 + #11110 + + + 31 + Multiply Factor is 55 + #11111 + + + + + CME0 + Clock Monitor Enable + 5 + 1 + read-write + + + 0 + External clock monitor is disabled for OSC0. + #0 + + + 1 + External clock monitor is enabled for OSC0. + #1 + + + + + PLLS + PLL Select + 6 + 1 + read-write + + + 0 + FLL is selected. + #0 + + + 1 + PLL is selected (PRDIV 0 need to be programmed to the correct divider to generate a PLL reference clock in the range of 2-4 MHz prior to setting the PLLS bit). + #1 + + + + + LOLIE0 + Loss of Lock Interrrupt Enable + 7 + 1 + read-write + + + 0 + No interrupt request is generated on loss of lock. + #0 + + + 1 + Generate an interrupt request on loss of lock. + #1 + + + + + + + S + MCG Status Register + 0x6 + 8 + read-write + 0x10 + 0xFF + + + IRCST + Internal Reference Clock Status + 0 + 1 + read-only + + + 0 + Source of internal reference clock is the slow clock (32 kHz IRC). + #0 + + + 1 + Source of internal reference clock is the fast clock (4 MHz IRC). + #1 + + + + + OSCINIT0 + OSC Initialization + 1 + 1 + read-only + + + CLKST + Clock Mode Status + 2 + 2 + read-only + + + 00 + Encoding 0 - Output of the FLL is selected (reset default). + #00 + + + 01 + Encoding 1 - Internal reference clock is selected. + #01 + + + 10 + Encoding 2 - External reference clock is selected. + #10 + + + 11 + Encoding 3 - Output of the PLL is selected. + #11 + + + + + IREFST + Internal Reference Status + 4 + 1 + read-only + + + 0 + Source of FLL reference clock is the external reference clock. + #0 + + + 1 + Source of FLL reference clock is the internal reference clock. + #1 + + + + + PLLST + PLL Select Status + 5 + 1 + read-only + + + 0 + Source of PLLS clock is FLL clock. + #0 + + + 1 + Source of PLLS clock is PLL output clock. + #1 + + + + + LOCK0 + Lock Status + 6 + 1 + read-only + + + 0 + PLL is currently unlocked. + #0 + + + 1 + PLL is currently locked. + #1 + + + + + LOLS0 + Loss of Lock Status + 7 + 1 + read-write + + + 0 + PLL has not lost lock since LOLS 0 was last cleared. + #0 + + + 1 + PLL has lost lock since LOLS 0 was last cleared. + #1 + + + + + + + SC + MCG Status and Control Register + 0x8 + 8 + read-write + 0x2 + 0xFF + + + LOCS0 + OSC0 Loss of Clock Status + 0 + 1 + read-write + + + 0 + Loss of OSC0 has not occurred. + #0 + + + 1 + Loss of OSC0 has occurred. + #1 + + + + + FCRDIV + Fast Clock Internal Reference Divider + 1 + 3 + read-write + + + 000 + Divide Factor is 1 + #000 + + + 001 + Divide Factor is 2. + #001 + + + 010 + Divide Factor is 4. + #010 + + + 011 + Divide Factor is 8. + #011 + + + 100 + Divide Factor is 16 + #100 + + + 101 + Divide Factor is 32 + #101 + + + 110 + Divide Factor is 64 + #110 + + + 111 + Divide Factor is 128. + #111 + + + + + FLTPRSRV + FLL Filter Preserve Enable + 4 + 1 + read-write + + + 0 + FLL filter and FLL frequency will reset on changes to currect clock mode. + #0 + + + 1 + Fll filter and FLL frequency retain their previous values during new clock mode change. + #1 + + + + + ATMF + Automatic Trim Machine Fail Flag + 5 + 1 + read-write + + + 0 + Automatic Trim Machine completed normally. + #0 + + + 1 + Automatic Trim Machine failed. + #1 + + + + + ATMS + Automatic Trim Machine Select + 6 + 1 + read-write + + + 0 + 32 kHz Internal Reference Clock selected. + #0 + + + 1 + 4 MHz Internal Reference Clock selected. + #1 + + + + + ATME + Automatic Trim Machine Enable + 7 + 1 + read-write + + + 0 + Auto Trim Machine disabled. + #0 + + + 1 + Auto Trim Machine enabled. + #1 + + + + + + + ATCVH + MCG Auto Trim Compare Value High Register + 0xA + 8 + read-write + 0 + 0xFF + + + ATCVH + ATM Compare Value High + 0 + 8 + read-write + + + + + ATCVL + MCG Auto Trim Compare Value Low Register + 0xB + 8 + read-write + 0 + 0xFF + + + ATCVL + ATM Compare Value Low + 0 + 8 + read-write + + + + + C7 + MCG Control 7 Register + 0xC + 8 + read-write + 0 + 0xFF + + + OSCSEL + MCG OSC Clock Select + 0 + 2 + read-write + + + 00 + Selects Oscillator (OSCCLK0). + #00 + + + 01 + Selects 32 kHz RTC Oscillator. + #01 + + + 10 + Selects Oscillator (OSCCLK1). + #10 + + + + + + + C8 + MCG Control 8 Register + 0xD + 8 + read-write + 0x80 + 0xFF + + + LOCS1 + RTC Loss of Clock Status + 0 + 1 + read-write + + + 0 + Loss of RTC has not occur. + #0 + + + 1 + Loss of RTC has occur + #1 + + + + + CME1 + Clock Monitor Enable1 + 5 + 1 + read-write + + + 0 + External clock monitor is disabled for RTC clock. + #0 + + + 1 + External clock monitor is enabled for RTC clock. + #1 + + + + + LOLRE + PLL Loss of Lock Reset Enable + 6 + 1 + read-write + + + 0 + Interrupt request is generated on a PLL loss of lock indication. The PLL loss of lock interrupt enable bit must also be set to generate the interrupt request. + #0 + + + 1 + Generate a reset request on a PLL loss of lock indication. + #1 + + + + + LOCRE1 + Loss of Clock Reset Enable + 7 + 1 + read-write + + + 0 + Interrupt request is generated on a loss of RTC external reference clock. + #0 + + + 1 + Generate a reset request on a loss of RTC external reference clock + #1 + + + + + + + + + OSC + Oscillator + OSC_ + 0x40065000 + + 0 + 0x1 + registers + + + + CR + OSC Control Register + 0 + 8 + read-write + 0 + 0xFF + + + SC16P + Oscillator 16 pF Capacitor Load Configure + 0 + 1 + read-write + + + 0 + Disable the selection. + #0 + + + 1 + Add 16 pF capacitor to the oscillator load. + #1 + + + + + SC8P + Oscillator 8 pF Capacitor Load Configure + 1 + 1 + read-write + + + 0 + Disable the selection. + #0 + + + 1 + Add 8 pF capacitor to the oscillator load. + #1 + + + + + SC4P + Oscillator 4 pF Capacitor Load Configure + 2 + 1 + read-write + + + 0 + Disable the selection. + #0 + + + 1 + Add 4 pF capacitor to the oscillator load. + #1 + + + + + SC2P + Oscillator 2 pF Capacitor Load Configure + 3 + 1 + read-write + + + 0 + Disable the selection. + #0 + + + 1 + Add 2 pF capacitor to the oscillator load. + #1 + + + + + EREFSTEN + External Reference Stop Enable + 5 + 1 + read-write + + + 0 + External reference clock is disabled in Stop mode. + #0 + + + 1 + External reference clock stays enabled in Stop mode if ERCLKEN is set before entering Stop mode. + #1 + + + + + ERCLKEN + External Reference Enable + 7 + 1 + read-write + + + 0 + External reference clock is inactive. + #0 + + + 1 + External reference clock is enabled. + #1 + + + + + + + + + I2C0 + Inter-Integrated Circuit + I2C + I2C0_ + 0x40066000 + + 0 + 0xC + registers + + + I2C0 + 24 + + + + A1 + I2C Address Register 1 + 0 + 8 + read-write + 0 + 0xFF + + + AD + Address + 1 + 7 + read-write + + + + + F + I2C Frequency Divider register + 0x1 + 8 + read-write + 0 + 0xFF + + + ICR + ClockRate + 0 + 6 + read-write + + + MULT + Multiplier Factor + 6 + 2 + read-write + + + 00 + mul = 1 + #00 + + + 01 + mul = 2 + #01 + + + 10 + mul = 4 + #10 + + + + + + + C1 + I2C Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + DMAEN + DMA Enable + 0 + 1 + read-write + + + 0 + All DMA signalling disabled. + #0 + + + 1 + DMA transfer is enabled. While SMB[FACK] = 0, the following conditions trigger the DMA request: a data byte is received, and either address or data is transmitted. (ACK/NACK is automatic) the first byte received matches the A1 register or is a general call address. If any address matching occurs, S[IAAS] and S[TCF] are set. If the direction of transfer is known from master to slave, then it is not required to check S[SRW]. With this assumption, DMA can also be used in this case. In other cases, if the master reads data from the slave, then it is required to rewrite the C1 register operation. With this assumption, DMA cannot be used. When FACK = 1, an address or a data byte is transmitted. + #1 + + + + + WUEN + Wakeup Enable + 1 + 1 + read-write + + + 0 + Normal operation. No interrupt generated when address matching in low power mode. + #0 + + + 1 + Enables the wakeup function in low power mode. + #1 + + + + + RSTA + Repeat START + 2 + 1 + write-only + + + TXAK + Transmit Acknowledge Enable + 3 + 1 + read-write + + + 0 + An acknowledge signal is sent to the bus on the following receiving byte (if FACK is cleared) or the current receiving byte (if FACK is set). + #0 + + + 1 + No acknowledge signal is sent to the bus on the following receiving data byte (if FACK is cleared) or the current receiving data byte (if FACK is set). + #1 + + + + + TX + Transmit Mode Select + 4 + 1 + read-write + + + 0 + Receive + #0 + + + 1 + Transmit + #1 + + + + + MST + Master Mode Select + 5 + 1 + read-write + + + 0 + Slave mode + #0 + + + 1 + Master mode + #1 + + + + + IICIE + I2C Interrupt Enable + 6 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + IICEN + I2C Enable + 7 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + S + I2C Status register + 0x3 + 8 + read-write + 0x80 + 0xFF + + + RXAK + Receive Acknowledge + 0 + 1 + read-only + + + 0 + Acknowledge signal was received after the completion of one byte of data transmission on the bus + #0 + + + 1 + No acknowledge signal detected + #1 + + + + + IICIF + Interrupt Flag + 1 + 1 + read-write + + + 0 + No interrupt pending + #0 + + + 1 + Interrupt pending + #1 + + + + + SRW + Slave Read/Write + 2 + 1 + read-only + + + 0 + Slave receive, master writing to slave + #0 + + + 1 + Slave transmit, master reading from slave + #1 + + + + + RAM + Range Address Match + 3 + 1 + read-write + + + 0 + Not addressed + #0 + + + 1 + Addressed as a slave + #1 + + + + + ARBL + Arbitration Lost + 4 + 1 + read-write + + + 0 + Standard bus operation. + #0 + + + 1 + Loss of arbitration. + #1 + + + + + BUSY + Bus Busy + 5 + 1 + read-only + + + 0 + Bus is idle + #0 + + + 1 + Bus is busy + #1 + + + + + IAAS + Addressed As A Slave + 6 + 1 + read-write + + + 0 + Not addressed + #0 + + + 1 + Addressed as a slave + #1 + + + + + TCF + Transfer Complete Flag + 7 + 1 + read-only + + + 0 + Transfer in progress + #0 + + + 1 + Transfer complete + #1 + + + + + + + D + I2C Data I/O register + 0x4 + 8 + read-write + 0 + 0xFF + + + DATA + Data + 0 + 8 + read-write + + + + + C2 + I2C Control Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + AD + Slave Address + 0 + 3 + read-write + + + RMEN + Range Address Matching Enable + 3 + 1 + read-write + + + 0 + Range mode disabled. No address matching occurs for an address within the range of values of the A1 and RA registers. + #0 + + + 1 + Range mode enabled. Address matching occurs when a slave receives an address within the range of values of the A1 and RA registers. + #1 + + + + + SBRC + Slave Baud Rate Control + 4 + 1 + read-write + + + 0 + The slave baud rate follows the master baud rate and clock stretching may occur + #0 + + + 1 + Slave baud rate is independent of the master baud rate + #1 + + + + + HDRS + High Drive Select + 5 + 1 + read-write + + + 0 + Normal drive mode + #0 + + + 1 + High drive mode + #1 + + + + + ADEXT + Address Extension + 6 + 1 + read-write + + + 0 + 7-bit address scheme + #0 + + + 1 + 10-bit address scheme + #1 + + + + + GCAEN + General Call Address Enable + 7 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + FLT + I2C Programmable Input Glitch Filter register + 0x6 + 8 + read-write + 0 + 0xFF + + + FLT + I2C Programmable Filter Factor + 0 + 4 + read-write + + + 0 + No filter/bypass + #0000 + + + + + STARTF + I2C Bus Start Detect Flag + 4 + 1 + read-write + + + 0 + No start happens on I2C bus + #0 + + + 1 + Start detected on I2C bus + #1 + + + + + SSIE + I2C Bus Stop or Start Interrupt Enable + 5 + 1 + read-write + + + 0 + Stop or start detection interrupt is disabled + #0 + + + 1 + Stop or start detection interrupt is enabled + #1 + + + + + STOPF + I2C Bus Stop Detect Flag + 6 + 1 + read-write + + + 0 + No stop happens on I2C bus + #0 + + + 1 + Stop detected on I2C bus + #1 + + + + + SHEN + Stop Hold Enable + 7 + 1 + read-write + + + 0 + Stop holdoff is disabled. The MCU's entry to stop mode is not gated. + #0 + + + 1 + Stop holdoff is enabled. + #1 + + + + + + + RA + I2C Range Address register + 0x7 + 8 + read-write + 0 + 0xFF + + + RAD + Range Slave Address + 1 + 7 + read-write + + + + + SMB + I2C SMBus Control and Status register + 0x8 + 8 + read-write + 0 + 0xFF + + + SHTF2IE + SHTF2 Interrupt Enable + 0 + 1 + read-write + + + 0 + SHTF2 interrupt is disabled + #0 + + + 1 + SHTF2 interrupt is enabled + #1 + + + + + SHTF2 + SCL High Timeout Flag 2 + 1 + 1 + read-write + + + 0 + No SCL high and SDA low timeout occurs + #0 + + + 1 + SCL high and SDA low timeout occurs + #1 + + + + + SHTF1 + SCL High Timeout Flag 1 + 2 + 1 + read-only + + + 0 + No SCL high and SDA high timeout occurs + #0 + + + 1 + SCL high and SDA high timeout occurs + #1 + + + + + SLTF + SCL Low Timeout Flag + 3 + 1 + read-write + + + 0 + No low timeout occurs + #0 + + + 1 + Low timeout occurs + #1 + + + + + TCKSEL + Timeout Counter Clock Select + 4 + 1 + read-write + + + 0 + Timeout counter counts at the frequency of the I2C module clock / 64 + #0 + + + 1 + Timeout counter counts at the frequency of the I2C module clock + #1 + + + + + SIICAEN + Second I2C Address Enable + 5 + 1 + read-write + + + 0 + I2C address register 2 matching is disabled + #0 + + + 1 + I2C address register 2 matching is enabled + #1 + + + + + ALERTEN + SMBus Alert Response Address Enable + 6 + 1 + read-write + + + 0 + SMBus alert response address matching is disabled + #0 + + + 1 + SMBus alert response address matching is enabled + #1 + + + + + FACK + Fast NACK/ACK Enable + 7 + 1 + read-write + + + 0 + An ACK or NACK is sent on the following receiving data byte + #0 + + + 1 + Writing 0 to TXAK after receiving a data byte generates an ACK. Writing 1 to TXAK after receiving a data byte generates a NACK. + #1 + + + + + + + A2 + I2C Address Register 2 + 0x9 + 8 + read-write + 0xC2 + 0xFF + + + SAD + SMBus Address + 1 + 7 + read-write + + + + + SLTH + I2C SCL Low Timeout Register High + 0xA + 8 + read-write + 0 + 0xFF + + + SSLT + Most significant byte of SCL low timeout value that determines the timeout period of SCL low. + 0 + 8 + read-write + + + + + SLTL + I2C SCL Low Timeout Register Low + 0xB + 8 + read-write + 0 + 0xFF + + + SSLT + Least significant byte of SCL low timeout value that determines the timeout period of SCL low. + 0 + 8 + read-write + + + + + + + I2C1 + Inter-Integrated Circuit + I2C + I2C1_ + 0x40067000 + + 0 + 0xC + registers + + + I2C1 + 25 + + + + A1 + I2C Address Register 1 + 0 + 8 + read-write + 0 + 0xFF + + + AD + Address + 1 + 7 + read-write + + + + + F + I2C Frequency Divider register + 0x1 + 8 + read-write + 0 + 0xFF + + + ICR + ClockRate + 0 + 6 + read-write + + + MULT + Multiplier Factor + 6 + 2 + read-write + + + 00 + mul = 1 + #00 + + + 01 + mul = 2 + #01 + + + 10 + mul = 4 + #10 + + + + + + + C1 + I2C Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + DMAEN + DMA Enable + 0 + 1 + read-write + + + 0 + All DMA signalling disabled. + #0 + + + 1 + DMA transfer is enabled. While SMB[FACK] = 0, the following conditions trigger the DMA request: a data byte is received, and either address or data is transmitted. (ACK/NACK is automatic) the first byte received matches the A1 register or is a general call address. If any address matching occurs, S[IAAS] and S[TCF] are set. If the direction of transfer is known from master to slave, then it is not required to check S[SRW]. With this assumption, DMA can also be used in this case. In other cases, if the master reads data from the slave, then it is required to rewrite the C1 register operation. With this assumption, DMA cannot be used. When FACK = 1, an address or a data byte is transmitted. + #1 + + + + + WUEN + Wakeup Enable + 1 + 1 + read-write + + + 0 + Normal operation. No interrupt generated when address matching in low power mode. + #0 + + + 1 + Enables the wakeup function in low power mode. + #1 + + + + + RSTA + Repeat START + 2 + 1 + write-only + + + TXAK + Transmit Acknowledge Enable + 3 + 1 + read-write + + + 0 + An acknowledge signal is sent to the bus on the following receiving byte (if FACK is cleared) or the current receiving byte (if FACK is set). + #0 + + + 1 + No acknowledge signal is sent to the bus on the following receiving data byte (if FACK is cleared) or the current receiving data byte (if FACK is set). + #1 + + + + + TX + Transmit Mode Select + 4 + 1 + read-write + + + 0 + Receive + #0 + + + 1 + Transmit + #1 + + + + + MST + Master Mode Select + 5 + 1 + read-write + + + 0 + Slave mode + #0 + + + 1 + Master mode + #1 + + + + + IICIE + I2C Interrupt Enable + 6 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + IICEN + I2C Enable + 7 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + S + I2C Status register + 0x3 + 8 + read-write + 0x80 + 0xFF + + + RXAK + Receive Acknowledge + 0 + 1 + read-only + + + 0 + Acknowledge signal was received after the completion of one byte of data transmission on the bus + #0 + + + 1 + No acknowledge signal detected + #1 + + + + + IICIF + Interrupt Flag + 1 + 1 + read-write + + + 0 + No interrupt pending + #0 + + + 1 + Interrupt pending + #1 + + + + + SRW + Slave Read/Write + 2 + 1 + read-only + + + 0 + Slave receive, master writing to slave + #0 + + + 1 + Slave transmit, master reading from slave + #1 + + + + + RAM + Range Address Match + 3 + 1 + read-write + + + 0 + Not addressed + #0 + + + 1 + Addressed as a slave + #1 + + + + + ARBL + Arbitration Lost + 4 + 1 + read-write + + + 0 + Standard bus operation. + #0 + + + 1 + Loss of arbitration. + #1 + + + + + BUSY + Bus Busy + 5 + 1 + read-only + + + 0 + Bus is idle + #0 + + + 1 + Bus is busy + #1 + + + + + IAAS + Addressed As A Slave + 6 + 1 + read-write + + + 0 + Not addressed + #0 + + + 1 + Addressed as a slave + #1 + + + + + TCF + Transfer Complete Flag + 7 + 1 + read-only + + + 0 + Transfer in progress + #0 + + + 1 + Transfer complete + #1 + + + + + + + D + I2C Data I/O register + 0x4 + 8 + read-write + 0 + 0xFF + + + DATA + Data + 0 + 8 + read-write + + + + + C2 + I2C Control Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + AD + Slave Address + 0 + 3 + read-write + + + RMEN + Range Address Matching Enable + 3 + 1 + read-write + + + 0 + Range mode disabled. No address matching occurs for an address within the range of values of the A1 and RA registers. + #0 + + + 1 + Range mode enabled. Address matching occurs when a slave receives an address within the range of values of the A1 and RA registers. + #1 + + + + + SBRC + Slave Baud Rate Control + 4 + 1 + read-write + + + 0 + The slave baud rate follows the master baud rate and clock stretching may occur + #0 + + + 1 + Slave baud rate is independent of the master baud rate + #1 + + + + + HDRS + High Drive Select + 5 + 1 + read-write + + + 0 + Normal drive mode + #0 + + + 1 + High drive mode + #1 + + + + + ADEXT + Address Extension + 6 + 1 + read-write + + + 0 + 7-bit address scheme + #0 + + + 1 + 10-bit address scheme + #1 + + + + + GCAEN + General Call Address Enable + 7 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + FLT + I2C Programmable Input Glitch Filter register + 0x6 + 8 + read-write + 0 + 0xFF + + + FLT + I2C Programmable Filter Factor + 0 + 4 + read-write + + + 0 + No filter/bypass + #0000 + + + + + STARTF + I2C Bus Start Detect Flag + 4 + 1 + read-write + + + 0 + No start happens on I2C bus + #0 + + + 1 + Start detected on I2C bus + #1 + + + + + SSIE + I2C Bus Stop or Start Interrupt Enable + 5 + 1 + read-write + + + 0 + Stop or start detection interrupt is disabled + #0 + + + 1 + Stop or start detection interrupt is enabled + #1 + + + + + STOPF + I2C Bus Stop Detect Flag + 6 + 1 + read-write + + + 0 + No stop happens on I2C bus + #0 + + + 1 + Stop detected on I2C bus + #1 + + + + + SHEN + Stop Hold Enable + 7 + 1 + read-write + + + 0 + Stop holdoff is disabled. The MCU's entry to stop mode is not gated. + #0 + + + 1 + Stop holdoff is enabled. + #1 + + + + + + + RA + I2C Range Address register + 0x7 + 8 + read-write + 0 + 0xFF + + + RAD + Range Slave Address + 1 + 7 + read-write + + + + + SMB + I2C SMBus Control and Status register + 0x8 + 8 + read-write + 0 + 0xFF + + + SHTF2IE + SHTF2 Interrupt Enable + 0 + 1 + read-write + + + 0 + SHTF2 interrupt is disabled + #0 + + + 1 + SHTF2 interrupt is enabled + #1 + + + + + SHTF2 + SCL High Timeout Flag 2 + 1 + 1 + read-write + + + 0 + No SCL high and SDA low timeout occurs + #0 + + + 1 + SCL high and SDA low timeout occurs + #1 + + + + + SHTF1 + SCL High Timeout Flag 1 + 2 + 1 + read-only + + + 0 + No SCL high and SDA high timeout occurs + #0 + + + 1 + SCL high and SDA high timeout occurs + #1 + + + + + SLTF + SCL Low Timeout Flag + 3 + 1 + read-write + + + 0 + No low timeout occurs + #0 + + + 1 + Low timeout occurs + #1 + + + + + TCKSEL + Timeout Counter Clock Select + 4 + 1 + read-write + + + 0 + Timeout counter counts at the frequency of the I2C module clock / 64 + #0 + + + 1 + Timeout counter counts at the frequency of the I2C module clock + #1 + + + + + SIICAEN + Second I2C Address Enable + 5 + 1 + read-write + + + 0 + I2C address register 2 matching is disabled + #0 + + + 1 + I2C address register 2 matching is enabled + #1 + + + + + ALERTEN + SMBus Alert Response Address Enable + 6 + 1 + read-write + + + 0 + SMBus alert response address matching is disabled + #0 + + + 1 + SMBus alert response address matching is enabled + #1 + + + + + FACK + Fast NACK/ACK Enable + 7 + 1 + read-write + + + 0 + An ACK or NACK is sent on the following receiving data byte + #0 + + + 1 + Writing 0 to TXAK after receiving a data byte generates an ACK. Writing 1 to TXAK after receiving a data byte generates a NACK. + #1 + + + + + + + A2 + I2C Address Register 2 + 0x9 + 8 + read-write + 0xC2 + 0xFF + + + SAD + SMBus Address + 1 + 7 + read-write + + + + + SLTH + I2C SCL Low Timeout Register High + 0xA + 8 + read-write + 0 + 0xFF + + + SSLT + Most significant byte of SCL low timeout value that determines the timeout period of SCL low. + 0 + 8 + read-write + + + + + SLTL + I2C SCL Low Timeout Register Low + 0xB + 8 + read-write + 0 + 0xFF + + + SSLT + Least significant byte of SCL low timeout value that determines the timeout period of SCL low. + 0 + 8 + read-write + + + + + + + I2C2 + Inter-Integrated Circuit + I2C + I2C2_ + 0x400E6000 + + 0 + 0xC + registers + + + I2C2 + 74 + + + + A1 + I2C Address Register 1 + 0 + 8 + read-write + 0 + 0xFF + + + AD + Address + 1 + 7 + read-write + + + + + F + I2C Frequency Divider register + 0x1 + 8 + read-write + 0 + 0xFF + + + ICR + ClockRate + 0 + 6 + read-write + + + MULT + Multiplier Factor + 6 + 2 + read-write + + + 00 + mul = 1 + #00 + + + 01 + mul = 2 + #01 + + + 10 + mul = 4 + #10 + + + + + + + C1 + I2C Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + DMAEN + DMA Enable + 0 + 1 + read-write + + + 0 + All DMA signalling disabled. + #0 + + + 1 + DMA transfer is enabled. While SMB[FACK] = 0, the following conditions trigger the DMA request: a data byte is received, and either address or data is transmitted. (ACK/NACK is automatic) the first byte received matches the A1 register or is a general call address. If any address matching occurs, S[IAAS] and S[TCF] are set. If the direction of transfer is known from master to slave, then it is not required to check S[SRW]. With this assumption, DMA can also be used in this case. In other cases, if the master reads data from the slave, then it is required to rewrite the C1 register operation. With this assumption, DMA cannot be used. When FACK = 1, an address or a data byte is transmitted. + #1 + + + + + WUEN + Wakeup Enable + 1 + 1 + read-write + + + 0 + Normal operation. No interrupt generated when address matching in low power mode. + #0 + + + 1 + Enables the wakeup function in low power mode. + #1 + + + + + RSTA + Repeat START + 2 + 1 + write-only + + + TXAK + Transmit Acknowledge Enable + 3 + 1 + read-write + + + 0 + An acknowledge signal is sent to the bus on the following receiving byte (if FACK is cleared) or the current receiving byte (if FACK is set). + #0 + + + 1 + No acknowledge signal is sent to the bus on the following receiving data byte (if FACK is cleared) or the current receiving data byte (if FACK is set). + #1 + + + + + TX + Transmit Mode Select + 4 + 1 + read-write + + + 0 + Receive + #0 + + + 1 + Transmit + #1 + + + + + MST + Master Mode Select + 5 + 1 + read-write + + + 0 + Slave mode + #0 + + + 1 + Master mode + #1 + + + + + IICIE + I2C Interrupt Enable + 6 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + IICEN + I2C Enable + 7 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + S + I2C Status register + 0x3 + 8 + read-write + 0x80 + 0xFF + + + RXAK + Receive Acknowledge + 0 + 1 + read-only + + + 0 + Acknowledge signal was received after the completion of one byte of data transmission on the bus + #0 + + + 1 + No acknowledge signal detected + #1 + + + + + IICIF + Interrupt Flag + 1 + 1 + read-write + + + 0 + No interrupt pending + #0 + + + 1 + Interrupt pending + #1 + + + + + SRW + Slave Read/Write + 2 + 1 + read-only + + + 0 + Slave receive, master writing to slave + #0 + + + 1 + Slave transmit, master reading from slave + #1 + + + + + RAM + Range Address Match + 3 + 1 + read-write + + + 0 + Not addressed + #0 + + + 1 + Addressed as a slave + #1 + + + + + ARBL + Arbitration Lost + 4 + 1 + read-write + + + 0 + Standard bus operation. + #0 + + + 1 + Loss of arbitration. + #1 + + + + + BUSY + Bus Busy + 5 + 1 + read-only + + + 0 + Bus is idle + #0 + + + 1 + Bus is busy + #1 + + + + + IAAS + Addressed As A Slave + 6 + 1 + read-write + + + 0 + Not addressed + #0 + + + 1 + Addressed as a slave + #1 + + + + + TCF + Transfer Complete Flag + 7 + 1 + read-only + + + 0 + Transfer in progress + #0 + + + 1 + Transfer complete + #1 + + + + + + + D + I2C Data I/O register + 0x4 + 8 + read-write + 0 + 0xFF + + + DATA + Data + 0 + 8 + read-write + + + + + C2 + I2C Control Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + AD + Slave Address + 0 + 3 + read-write + + + RMEN + Range Address Matching Enable + 3 + 1 + read-write + + + 0 + Range mode disabled. No address matching occurs for an address within the range of values of the A1 and RA registers. + #0 + + + 1 + Range mode enabled. Address matching occurs when a slave receives an address within the range of values of the A1 and RA registers. + #1 + + + + + SBRC + Slave Baud Rate Control + 4 + 1 + read-write + + + 0 + The slave baud rate follows the master baud rate and clock stretching may occur + #0 + + + 1 + Slave baud rate is independent of the master baud rate + #1 + + + + + HDRS + High Drive Select + 5 + 1 + read-write + + + 0 + Normal drive mode + #0 + + + 1 + High drive mode + #1 + + + + + ADEXT + Address Extension + 6 + 1 + read-write + + + 0 + 7-bit address scheme + #0 + + + 1 + 10-bit address scheme + #1 + + + + + GCAEN + General Call Address Enable + 7 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + FLT + I2C Programmable Input Glitch Filter register + 0x6 + 8 + read-write + 0 + 0xFF + + + FLT + I2C Programmable Filter Factor + 0 + 4 + read-write + + + 0 + No filter/bypass + #0000 + + + + + STARTF + I2C Bus Start Detect Flag + 4 + 1 + read-write + + + 0 + No start happens on I2C bus + #0 + + + 1 + Start detected on I2C bus + #1 + + + + + SSIE + I2C Bus Stop or Start Interrupt Enable + 5 + 1 + read-write + + + 0 + Stop or start detection interrupt is disabled + #0 + + + 1 + Stop or start detection interrupt is enabled + #1 + + + + + STOPF + I2C Bus Stop Detect Flag + 6 + 1 + read-write + + + 0 + No stop happens on I2C bus + #0 + + + 1 + Stop detected on I2C bus + #1 + + + + + SHEN + Stop Hold Enable + 7 + 1 + read-write + + + 0 + Stop holdoff is disabled. The MCU's entry to stop mode is not gated. + #0 + + + 1 + Stop holdoff is enabled. + #1 + + + + + + + RA + I2C Range Address register + 0x7 + 8 + read-write + 0 + 0xFF + + + RAD + Range Slave Address + 1 + 7 + read-write + + + + + SMB + I2C SMBus Control and Status register + 0x8 + 8 + read-write + 0 + 0xFF + + + SHTF2IE + SHTF2 Interrupt Enable + 0 + 1 + read-write + + + 0 + SHTF2 interrupt is disabled + #0 + + + 1 + SHTF2 interrupt is enabled + #1 + + + + + SHTF2 + SCL High Timeout Flag 2 + 1 + 1 + read-write + + + 0 + No SCL high and SDA low timeout occurs + #0 + + + 1 + SCL high and SDA low timeout occurs + #1 + + + + + SHTF1 + SCL High Timeout Flag 1 + 2 + 1 + read-only + + + 0 + No SCL high and SDA high timeout occurs + #0 + + + 1 + SCL high and SDA high timeout occurs + #1 + + + + + SLTF + SCL Low Timeout Flag + 3 + 1 + read-write + + + 0 + No low timeout occurs + #0 + + + 1 + Low timeout occurs + #1 + + + + + TCKSEL + Timeout Counter Clock Select + 4 + 1 + read-write + + + 0 + Timeout counter counts at the frequency of the I2C module clock / 64 + #0 + + + 1 + Timeout counter counts at the frequency of the I2C module clock + #1 + + + + + SIICAEN + Second I2C Address Enable + 5 + 1 + read-write + + + 0 + I2C address register 2 matching is disabled + #0 + + + 1 + I2C address register 2 matching is enabled + #1 + + + + + ALERTEN + SMBus Alert Response Address Enable + 6 + 1 + read-write + + + 0 + SMBus alert response address matching is disabled + #0 + + + 1 + SMBus alert response address matching is enabled + #1 + + + + + FACK + Fast NACK/ACK Enable + 7 + 1 + read-write + + + 0 + An ACK or NACK is sent on the following receiving data byte + #0 + + + 1 + Writing 0 to TXAK after receiving a data byte generates an ACK. Writing 1 to TXAK after receiving a data byte generates a NACK. + #1 + + + + + + + A2 + I2C Address Register 2 + 0x9 + 8 + read-write + 0xC2 + 0xFF + + + SAD + SMBus Address + 1 + 7 + read-write + + + + + SLTH + I2C SCL Low Timeout Register High + 0xA + 8 + read-write + 0 + 0xFF + + + SSLT + Most significant byte of SCL low timeout value that determines the timeout period of SCL low. + 0 + 8 + read-write + + + + + SLTL + I2C SCL Low Timeout Register Low + 0xB + 8 + read-write + 0 + 0xFF + + + SSLT + Least significant byte of SCL low timeout value that determines the timeout period of SCL low. + 0 + 8 + read-write + + + + + + + UART0 + Serial Communication Interface + UART + UART0_ + 0x4006A000 + + 0 + 0x20 + registers + + + UART0_LON + 30 + + + UART0_RX_TX + 31 + + + UART0_ERR + 32 + + + + BDH + UART Baud Rate Registers: High + 0 + 8 + read-write + 0 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 5 + read-write + + + SBNS + Stop Bit Number Select + 5 + 1 + read-write + + + 0 + Data frame consists of a single stop bit. + #0 + + + 1 + Data frame consists of two stop bits. + #1 + + + + + RXEDGIE + RxD Input Active Edge Interrupt Enable + 6 + 1 + read-write + + + 0 + Hardware interrupts from RXEDGIF disabled using polling. + #0 + + + 1 + RXEDGIF interrupt request enabled. + #1 + + + + + LBKDIE + LIN Break Detect Interrupt or DMA Request Enable + 7 + 1 + read-write + + + 0 + LBKDIF interrupt and DMA transfer requests disabled. + #0 + + + 1 + LBKDIF interrupt or DMA transfer requests enabled. + #1 + + + + + + + BDL + UART Baud Rate Registers: Low + 0x1 + 8 + read-write + 0x4 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 8 + read-write + + + + + C1 + UART Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + PT + Parity Type + 0 + 1 + read-write + + + 0 + Even parity. + #0 + + + 1 + Odd parity. + #1 + + + + + PE + Parity Enable + 1 + 1 + read-write + + + 0 + Parity function disabled. + #0 + + + 1 + Parity function enabled. + #1 + + + + + ILT + Idle Line Type Select + 2 + 1 + read-write + + + 0 + Idle character bit count starts after start bit. + #0 + + + 1 + Idle character bit count starts after stop bit. + #1 + + + + + WAKE + Receiver Wakeup Method Select + 3 + 1 + read-write + + + 0 + Idle line wakeup. + #0 + + + 1 + Address mark wakeup. + #1 + + + + + M + 9-bit or 8-bit Mode Select + 4 + 1 + read-write + + + 0 + Normal-start + 8 data bits (MSB/LSB first as determined by MSBF) + stop. + #0 + + + 1 + Use-start + 9 data bits (MSB/LSB first as determined by MSBF) + stop. + #1 + + + + + RSRC + Receiver Source Select + 5 + 1 + read-write + + + 0 + Selects internal loop back mode. The receiver input is internally connected to transmitter output. + #0 + + + 1 + Single wire UART mode where the receiver input is connected to the transmit pin input signal. + #1 + + + + + UARTSWAI + UART Stops in Wait Mode + 6 + 1 + read-write + + + 0 + UART clock continues to run in Wait mode. + #0 + + + 1 + UART clock freezes while CPU is in Wait mode. + #1 + + + + + LOOPS + Loop Mode Select + 7 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + Loop mode where transmitter output is internally connected to receiver input. The receiver input is determined by RSRC. + #1 + + + + + + + C2 + UART Control Register 2 + 0x3 + 8 + read-write + 0 + 0xFF + + + SBK + Send Break + 0 + 1 + read-write + + + 0 + Normal transmitter operation. + #0 + + + 1 + Queue break characters to be sent. + #1 + + + + + RWU + Receiver Wakeup Control + 1 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes the receiver by automatically clearing RWU. + #1 + + + + + RE + Receiver Enable + 2 + 1 + read-write + + + 0 + Receiver off. + #0 + + + 1 + Receiver on. + #1 + + + + + TE + Transmitter Enable + 3 + 1 + read-write + + + 0 + Transmitter off. + #0 + + + 1 + Transmitter on. + #1 + + + + + ILIE + Idle Line Interrupt DMA Transfer Enable + 4 + 1 + read-write + + + 0 + IDLE interrupt requests disabled. and DMA transfer + #0 + + + 1 + IDLE interrupt requests enabled. or DMA transfer + #1 + + + + + RIE + Receiver Full Interrupt or DMA Transfer Enable + 5 + 1 + read-write + + + 0 + RDRF interrupt and DMA transfer requests disabled. + #0 + + + 1 + RDRF interrupt or DMA transfer requests enabled. + #1 + + + + + TCIE + Transmission Complete Interrupt or DMA Transfer Enable + 6 + 1 + read-write + + + 0 + TC interrupt and DMA transfer requests disabled. + #0 + + + 1 + TC interrupt or DMA transfer requests enabled. + #1 + + + + + TIE + Transmitter Interrupt or DMA Transfer Enable. + 7 + 1 + read-write + + + 0 + TDRE interrupt and DMA transfer requests disabled. + #0 + + + 1 + TDRE interrupt or DMA transfer requests enabled. + #1 + + + + + + + S1 + UART Status Register 1 + 0x4 + 8 + read-only + 0xC0 + 0xFF + + + PF + Parity Error Flag + 0 + 1 + read-only + + + 0 + No parity error detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1, then there may be data in the receive buffer what was received with a parity error. + #0 + + + 1 + At least one dataword was received with a parity error since the last time this flag was cleared. + #1 + + + + + FE + Framing Error Flag + 1 + 1 + read-only + + + 0 + No framing error detected. + #0 + + + 1 + Framing error. + #1 + + + + + NF + Noise Flag + 2 + 1 + read-only + + + 0 + No noise detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1 then there may be data in the receiver buffer that was received with noise. + #0 + + + 1 + At least one dataword was received with noise detected since the last time the flag was cleared. + #1 + + + + + OR + Receiver Overrun Flag + 3 + 1 + read-only + + + 0 + No overrun has occurred since the last time the flag was cleared. + #0 + + + 1 + Overrun has occurred or the overrun flag has not been cleared since the last overrun occured. + #1 + + + + + IDLE + Idle Line Flag + 4 + 1 + read-only + + + 0 + Receiver input is either active now or has never become active since the IDLE flag was last cleared. + #0 + + + 1 + Receiver input has become idle or the flag has not been cleared since it last asserted. + #1 + + + + + RDRF + Receive Data Register Full Flag + 5 + 1 + read-only + + + 0 + The number of datawords in the receive buffer is less than the number indicated by RXWATER. + #0 + + + 1 + The number of datawords in the receive buffer is equal to or greater than the number indicated by RXWATER at some point in time since this flag was last cleared. + #1 + + + + + TC + Transmit Complete Flag + 6 + 1 + read-only + + + 0 + Transmitter active (sending data, a preamble, or a break). + #0 + + + 1 + Transmitter idle (transmission activity complete). + #1 + + + + + TDRE + Transmit Data Register Empty Flag + 7 + 1 + read-only + + + 0 + The amount of data in the transmit buffer is greater than the value indicated by TWFIFO[TXWATER]. + #0 + + + 1 + The amount of data in the transmit buffer is less than or equal to the value indicated by TWFIFO[TXWATER] at some point in time since the flag has been cleared. + #1 + + + + + + + S2 + UART Status Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + RAF + Receiver Active Flag + 0 + 1 + read-only + + + 0 + UART receiver idle/inactive waiting for a start bit. + #0 + + + 1 + UART receiver active, RxD input not idle. + #1 + + + + + LBKDE + LIN Break Detection Enable + 1 + 1 + read-write + + + 0 + Break character detection is disabled. + #0 + + + 1 + Break character is detected at length of 11 bit times if C1[M] = 0 or 12 bits time if C1[M] = 1. + #1 + + + + + BRK13 + Break Transmit Character Length + 2 + 1 + read-write + + + 0 + Break character is 10, 11, or 12 bits long. + #0 + + + 1 + Break character is 13 or 14 bits long. + #1 + + + + + RWUID + Receive Wakeup Idle Detect + 3 + 1 + read-write + + + 0 + S1[IDLE] is not set upon detection of an idle character. + #0 + + + 1 + S1[IDLE] is set upon detection of an idle character. + #1 + + + + + RXINV + Receive Data Inversion + 4 + 1 + read-write + + + 0 + Receive data is not inverted. + #0 + + + 1 + Receive data is inverted. + #1 + + + + + MSBF + Most Significant Bit First + 5 + 1 + read-write + + + 0 + LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0. + #0 + + + 1 + MSB (bit8, bit7 or bit6) is the first bit that is transmitted following the start bit, depending on the setting of C1[M] and C1[PE]. Further, the first bit received after the start bit is identified as bit8, bit7, or bit6, depending on the setting of C1[M] and C1[PE]. + #1 + + + + + RXEDGIF + RxD Pin Active Edge Interrupt Flag + 6 + 1 + read-write + + + 0 + No active edge on the receive pin has occurred. + #0 + + + 1 + An active edge on the receive pin has occurred. + #1 + + + + + LBKDIF + LIN Break Detect Interrupt Flag + 7 + 1 + read-write + + + 0 + No LIN break character detected. + #0 + + + 1 + LIN break character detected. + #1 + + + + + + + C3 + UART Control Register 3 + 0x6 + 8 + read-write + 0 + 0xFF + + + PEIE + Parity Error Interrupt Enable + 0 + 1 + read-write + + + 0 + PF interrupt requests are disabled. + #0 + + + 1 + PF interrupt requests are enabled. + #1 + + + + + FEIE + Framing Error Interrupt Enable + 1 + 1 + read-write + + + 0 + FE interrupt requests are disabled. + #0 + + + 1 + FE interrupt requests are enabled. + #1 + + + + + NEIE + Noise Error Interrupt Enable + 2 + 1 + read-write + + + 0 + NF interrupt requests are disabled. + #0 + + + 1 + NF interrupt requests are enabled. + #1 + + + + + ORIE + Overrun Error Interrupt Enable + 3 + 1 + read-write + + + 0 + OR interrupts are disabled. + #0 + + + 1 + OR interrupt requests are enabled. + #1 + + + + + TXINV + Transmit Data Inversion. + 4 + 1 + read-write + + + 0 + Transmit data is not inverted. + #0 + + + 1 + Transmit data is inverted. + #1 + + + + + TXDIR + Transmitter Pin Data Direction in Single-Wire mode + 5 + 1 + read-write + + + 0 + TXD pin is an input in single wire mode. + #0 + + + 1 + TXD pin is an output in single wire mode. + #1 + + + + + T8 + Transmit Bit 8 + 6 + 1 + read-write + + + R8 + Received Bit 8 + 7 + 1 + read-only + + + + + D + UART Data Register + 0x7 + 8 + read-write + 0 + 0xFF + + + RT + Reads return the contents of the read-only receive data register and writes go to the write-only transmit data register + 0 + 8 + read-write + + + + + MA1 + UART Match Address Registers 1 + 0x8 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + MA2 + UART Match Address Registers 2 + 0x9 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + C4 + UART Control Register 4 + 0xA + 8 + read-write + 0 + 0xFF + + + BRFA + Baud Rate Fine Adjust + 0 + 5 + read-write + + + M10 + 10-bit Mode select + 5 + 1 + read-write + + + 0 + The parity bit is the ninth bit in the serial transmission. + #0 + + + 1 + The parity bit is the tenth bit in the serial transmission. + #1 + + + + + MAEN2 + Match Address Mode Enable 2 + 6 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN1 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA2 register. If no match occurs, the data is discarded. If a match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + MAEN1 + Match Address Mode Enable 1 + 7 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN2 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA1 register. If no match occurs, the data is discarded. If match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + + + C5 + UART Control Register 5 + 0xB + 8 + read-write + 0 + 0xFF + + + LBKDDMAS + LIN Break Detect DMA Select Bit + 3 + 1 + read-write + + + 0 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF interrupt signal is asserted to request an interrupt service. + #0 + + + 1 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + ILDMAS + Idle Line DMA Select + 4 + 1 + read-write + + + 0 + If C2[ILIE] and S1[IDLE] are set, the IDLE interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[ILIE] and S1[IDLE] are set, the IDLE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + RDMAS + Receiver Full DMA Select + 5 + 1 + read-write + + + 0 + If C2[RIE] and S1[RDRF] are set, the RDFR interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[RIE] and S1[RDRF] are set, the RDRF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TCDMAS + Transmission Complete DMA Select + 6 + 1 + read-write + + + 0 + If C2[TCIE] is set and the S1[TC] flag is set, the TC interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[TCIE] is set and the S1[TC] flag is set, the TC DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TDMAS + Transmitter DMA Select + 7 + 1 + read-write + + + 0 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE interrupt request signal is asserted to request interrupt service. + #0 + + + 1 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + + + ED + UART Extended Data Register + 0xC + 8 + read-only + 0 + 0xFF + + + PARITYE + The current received dataword contained in D and C3[R8] was received with a parity error. + 6 + 1 + read-only + + + 0 + The dataword was received without a parity error. + #0 + + + 1 + The dataword was received with a parity error. + #1 + + + + + NOISY + The current received dataword contained in D and C3[R8] was received with noise. + 7 + 1 + read-only + + + 0 + The dataword was received without noise. + #0 + + + 1 + The data was received with noise. + #1 + + + + + + + MODEM + UART Modem Register + 0xD + 8 + read-write + 0 + 0xFF + + + TXCTSE + Transmitter clear-to-send enable + 0 + 1 + read-write + + + 0 + CTS has no effect on the transmitter. + #0 + + + 1 + Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission. + #1 + + + + + TXRTSE + Transmitter request-to-send enable + 1 + 1 + read-write + + + 0 + The transmitter has no effect on RTS. + #0 + + + 1 + When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit. (FIFO) (FIFO) + #1 + + + + + TXRTSPOL + Transmitter request-to-send polarity + 2 + 1 + read-write + + + 0 + Transmitter RTS is active low. + #0 + + + 1 + Transmitter RTS is active high. + #1 + + + + + RXRTSE + Receiver request-to-send enable + 3 + 1 + read-write + + + 0 + The receiver has no effect on RTS. + #0 + + + 1 + RTS is deasserted if the number of characters in the receiver data register (FIFO) is equal to or greater than RWFIFO[RXWATER]. RTS is asserted when the number of characters in the receiver data register (FIFO) is less than RWFIFO[RXWATER]. + #1 + + + + + + + IR + UART Infrared Register + 0xE + 8 + read-write + 0 + 0xFF + + + TNP + Transmitter narrow pulse + 0 + 2 + read-write + + + 00 + 3/16. + #00 + + + 01 + 1/16. + #01 + + + 10 + 1/32. + #10 + + + 11 + 1/4. + #11 + + + + + IREN + Infrared enable + 2 + 1 + read-write + + + 0 + IR disabled. + #0 + + + 1 + IR enabled. + #1 + + + + + + + PFIFO + UART FIFO Parameters + 0x10 + 8 + read-write + 0 + 0xFF + + + RXFIFOSIZE + Receive FIFO. Buffer Depth + 0 + 3 + read-only + + + 000 + Receive FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Receive FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Receive FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Receive FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Receive FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Receive FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Receive FIFO/Buffer depth = 128 datawords. + #110 + + + + + RXFE + Receive FIFO Enable + 3 + 1 + read-write + + + 0 + Receive FIFO is not enabled. Buffer is depth 1. (Legacy support) + #0 + + + 1 + Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE. + #1 + + + + + TXFIFOSIZE + Transmit FIFO. Buffer Depth + 4 + 3 + read-only + + + 000 + Transmit FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Transmit FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Transmit FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Transmit FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Transmit FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Transmit FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Transmit FIFO/Buffer depth = 128 datawords. + #110 + + + + + TXFE + Transmit FIFO Enable + 7 + 1 + read-write + + + 0 + Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support). + #0 + + + 1 + Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE. + #1 + + + + + + + CFIFO + UART FIFO Control Register + 0x11 + 8 + read-write + 0 + 0xFF + + + RXUFE + Receive FIFO Underflow Interrupt Enable + 0 + 1 + read-write + + + 0 + RXUF flag does not generate an interrupt to the host. + #0 + + + 1 + RXUF flag generates an interrupt to the host. + #1 + + + + + TXOFE + Transmit FIFO Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + TXOF flag does not generate an interrupt to the host. + #0 + + + 1 + TXOF flag generates an interrupt to the host. + #1 + + + + + RXOFE + Receive FIFO Overflow Interrupt Enable + 2 + 1 + read-write + + + 0 + RXOF flag does not generate an interrupt to the host. + #0 + + + 1 + RXOF flag generates an interrupt to the host. + #1 + + + + + RXFLUSH + Receive FIFO/Buffer Flush + 6 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the receive FIFO/buffer is cleared out. + #1 + + + + + TXFLUSH + Transmit FIFO/Buffer Flush + 7 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the transmit FIFO/Buffer is cleared out. + #1 + + + + + + + SFIFO + UART FIFO Status Register + 0x12 + 8 + read-write + 0xC0 + 0xFF + + + RXUF + Receiver Buffer Underflow Flag + 0 + 1 + read-write + + + 0 + No receive buffer underflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer underflow has occurred since the last time the flag was cleared. + #1 + + + + + TXOF + Transmitter Buffer Overflow Flag + 1 + 1 + read-write + + + 0 + No transmit buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one transmit buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXOF + Receiver Buffer Overflow Flag + 2 + 1 + read-write + + + 0 + No receive buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXEMPT + Receive Buffer/FIFO Empty + 6 + 1 + read-only + + + 0 + Receive buffer is not empty. + #0 + + + 1 + Receive buffer is empty. + #1 + + + + + TXEMPT + Transmit Buffer/FIFO Empty + 7 + 1 + read-only + + + 0 + Transmit buffer is not empty. + #0 + + + 1 + Transmit buffer is empty. + #1 + + + + + + + TWFIFO + UART FIFO Transmit Watermark + 0x13 + 8 + read-write + 0 + 0xFF + + + TXWATER + Transmit Watermark + 0 + 8 + read-write + + + + + TCFIFO + UART FIFO Transmit Count + 0x14 + 8 + read-only + 0 + 0xFF + + + TXCOUNT + Transmit Counter + 0 + 8 + read-only + + + + + RWFIFO + UART FIFO Receive Watermark + 0x15 + 8 + read-write + 0x1 + 0xFF + + + RXWATER + Receive Watermark + 0 + 8 + read-write + + + + + RCFIFO + UART FIFO Receive Count + 0x16 + 8 + read-only + 0 + 0xFF + + + RXCOUNT + Receive Counter + 0 + 8 + read-only + + + + + C7816 + UART 7816 Control Register + 0x18 + 8 + read-write + 0 + 0xFF + + + ISO_7816E + ISO-7816 Functionality Enabled + 0 + 1 + read-write + + + 0 + ISO-7816 functionality is turned off/not enabled. + #0 + + + 1 + ISO-7816 functionality is turned on/enabled. + #1 + + + + + TTYPE + Transfer Type + 1 + 1 + read-write + + + 0 + T = 0 per the ISO-7816 specification. + #0 + + + 1 + T = 1 per the ISO-7816 specification. + #1 + + + + + INIT + Detect Initial Character + 2 + 1 + read-write + + + 0 + Normal operating mode. Receiver does not seek to identify initial character. + #0 + + + 1 + Receiver searches for initial character. + #1 + + + + + ANACK + Generate NACK on Error + 3 + 1 + read-write + + + 0 + No NACK is automatically generated. + #0 + + + 1 + A NACK is automatically generated if a parity error is detected or if an invalid initial character is detected. + #1 + + + + + ONACK + Generate NACK on Overflow + 4 + 1 + read-write + + + 0 + The received data does not generate a NACK when the receipt of the data results in an overflow event. + #0 + + + 1 + If the receiver buffer overflows, a NACK is automatically sent on a received character. + #1 + + + + + + + IE7816 + UART 7816 Interrupt Enable Register + 0x19 + 8 + read-write + 0 + 0xFF + + + RXTE + Receive Threshold Exceeded Interrupt Enable + 0 + 1 + read-write + + + 0 + The assertion of IS7816[RXT] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[RXT] results in the generation of an interrupt. + #1 + + + + + TXTE + Transmit Threshold Exceeded Interrupt Enable + 1 + 1 + read-write + + + 0 + The assertion of IS7816[TXT] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[TXT] results in the generation of an interrupt. + #1 + + + + + GTVE + Guard Timer Violated Interrupt Enable + 2 + 1 + read-write + + + 0 + The assertion of IS7816[GTV] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[GTV] results in the generation of an interrupt. + #1 + + + + + INITDE + Initial Character Detected Interrupt Enable + 4 + 1 + read-write + + + 0 + The assertion of IS7816[INITD] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[INITD] results in the generation of an interrupt. + #1 + + + + + BWTE + Block Wait Timer Interrupt Enable + 5 + 1 + read-write + + + 0 + The assertion of IS7816[BWT] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[BWT] results in the generation of an interrupt. + #1 + + + + + CWTE + Character Wait Timer Interrupt Enable + 6 + 1 + read-write + + + 0 + The assertion of IS7816[CWT] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[CWT] results in the generation of an interrupt. + #1 + + + + + WTE + Wait Timer Interrupt Enable + 7 + 1 + read-write + + + 0 + The assertion of IS7816[WT] does not result in the generation of an interrupt. + #0 + + + 1 + The assertion of IS7816[WT] results in the generation of an interrupt. + #1 + + + + + + + IS7816 + UART 7816 Interrupt Status Register + 0x1A + 8 + read-write + 0 + 0xFF + + + RXT + Receive Threshold Exceeded Interrupt + 0 + 1 + read-write + + + 0 + The number of consecutive NACKS generated as a result of parity errors and buffer overruns is less than or equal to the value in ET7816[RXTHRESHOLD]. + #0 + + + 1 + The number of consecutive NACKS generated as a result of parity errors and buffer overruns is greater than the value in ET7816[RXTHRESHOLD]. + #1 + + + + + TXT + Transmit Threshold Exceeded Interrupt + 1 + 1 + read-write + + + 0 + The number of retries and corresponding NACKS does not exceed the value in ET7816[TXTHRESHOLD]. + #0 + + + 1 + The number of retries and corresponding NACKS exceeds the value in ET7816[TXTHRESHOLD]. + #1 + + + + + GTV + Guard Timer Violated Interrupt + 2 + 1 + read-write + + + 0 + A guard time (GT, CGT, or BGT) has not been violated. + #0 + + + 1 + A guard time (GT, CGT, or BGT) has been violated. + #1 + + + + + INITD + Initial Character Detected Interrupt + 4 + 1 + read-write + + + 0 + A valid initial character has not been received. + #0 + + + 1 + A valid initial character has been received. + #1 + + + + + BWT + Block Wait Timer Interrupt + 5 + 1 + read-write + + + 0 + Block wait time (BWT) has not been violated. + #0 + + + 1 + Block wait time (BWT) has been violated. + #1 + + + + + CWT + Character Wait Timer Interrupt + 6 + 1 + read-write + + + 0 + Character wait time (CWT) has not been violated. + #0 + + + 1 + Character wait time (CWT) has been violated. + #1 + + + + + WT + Wait Timer Interrupt + 7 + 1 + read-write + + + 0 + Wait time (WT) has not been violated. + #0 + + + 1 + Wait time (WT) has been violated. + #1 + + + + + + + WP7816T0 + UART 7816 Wait Parameter Register + UART0 + 0x1B + 8 + read-write + 0xA + 0xFF + + + WI + Wait Time Integer (C7816[TTYPE] = 0) + 0 + 8 + read-write + + + + + WP7816T1 + UART 7816 Wait Parameter Register + UART0 + 0x1B + 8 + read-write + 0xA + 0xFF + + + BWI + Block Wait Time Integer(C7816[TTYPE] = 1) + 0 + 4 + read-write + + + CWI + Character Wait Time Integer (C7816[TTYPE] = 1) + 4 + 4 + read-write + + + + + WN7816 + UART 7816 Wait N Register + 0x1C + 8 + read-write + 0 + 0xFF + + + GTN + Guard Band N + 0 + 8 + read-write + + + + + WF7816 + UART 7816 Wait FD Register + 0x1D + 8 + read-write + 0x1 + 0xFF + + + GTFD + FD Multiplier + 0 + 8 + read-write + + + + + ET7816 + UART 7816 Error Threshold Register + 0x1E + 8 + read-write + 0 + 0xFF + + + RXTHRESHOLD + Receive NACK Threshold + 0 + 4 + read-write + + + TXTHRESHOLD + Transmit NACK Threshold + 4 + 4 + read-write + + + 0 + TXT asserts on the first NACK that is received. + #0000 + + + 1 + TXT asserts on the second NACK that is received. + #0001 + + + + + + + TL7816 + UART 7816 Transmit Length Register + 0x1F + 8 + read-write + 0 + 0xFF + + + TLEN + Transmit Length + 0 + 8 + read-write + + + + + + + UART1 + Serial Communication Interface + UART + UART1_ + 0x4006B000 + + 0 + 0x17 + registers + + + UART1_RX_TX + 33 + + + UART1_ERR + 34 + + + + BDH + UART Baud Rate Registers: High + 0 + 8 + read-write + 0 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 5 + read-write + + + SBNS + Stop Bit Number Select + 5 + 1 + read-write + + + 0 + Data frame consists of a single stop bit. + #0 + + + 1 + Data frame consists of two stop bits. + #1 + + + + + RXEDGIE + RxD Input Active Edge Interrupt Enable + 6 + 1 + read-write + + + 0 + Hardware interrupts from RXEDGIF disabled using polling. + #0 + + + 1 + RXEDGIF interrupt request enabled. + #1 + + + + + LBKDIE + LIN Break Detect Interrupt or DMA Request Enable + 7 + 1 + read-write + + + 0 + LBKDIF interrupt and DMA transfer requests disabled. + #0 + + + 1 + LBKDIF interrupt or DMA transfer requests enabled. + #1 + + + + + + + BDL + UART Baud Rate Registers: Low + 0x1 + 8 + read-write + 0x4 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 8 + read-write + + + + + C1 + UART Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + PT + Parity Type + 0 + 1 + read-write + + + 0 + Even parity. + #0 + + + 1 + Odd parity. + #1 + + + + + PE + Parity Enable + 1 + 1 + read-write + + + 0 + Parity function disabled. + #0 + + + 1 + Parity function enabled. + #1 + + + + + ILT + Idle Line Type Select + 2 + 1 + read-write + + + 0 + Idle character bit count starts after start bit. + #0 + + + 1 + Idle character bit count starts after stop bit. + #1 + + + + + WAKE + Receiver Wakeup Method Select + 3 + 1 + read-write + + + 0 + Idle line wakeup. + #0 + + + 1 + Address mark wakeup. + #1 + + + + + M + 9-bit or 8-bit Mode Select + 4 + 1 + read-write + + + 0 + Normal-start + 8 data bits (MSB/LSB first as determined by MSBF) + stop. + #0 + + + 1 + Use-start + 9 data bits (MSB/LSB first as determined by MSBF) + stop. + #1 + + + + + RSRC + Receiver Source Select + 5 + 1 + read-write + + + 0 + Selects internal loop back mode. The receiver input is internally connected to transmitter output. + #0 + + + 1 + Single wire UART mode where the receiver input is connected to the transmit pin input signal. + #1 + + + + + UARTSWAI + UART Stops in Wait Mode + 6 + 1 + read-write + + + 0 + UART clock continues to run in Wait mode. + #0 + + + 1 + UART clock freezes while CPU is in Wait mode. + #1 + + + + + LOOPS + Loop Mode Select + 7 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + Loop mode where transmitter output is internally connected to receiver input. The receiver input is determined by RSRC. + #1 + + + + + + + C2 + UART Control Register 2 + 0x3 + 8 + read-write + 0 + 0xFF + + + SBK + Send Break + 0 + 1 + read-write + + + 0 + Normal transmitter operation. + #0 + + + 1 + Queue break characters to be sent. + #1 + + + + + RWU + Receiver Wakeup Control + 1 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes the receiver by automatically clearing RWU. + #1 + + + + + RE + Receiver Enable + 2 + 1 + read-write + + + 0 + Receiver off. + #0 + + + 1 + Receiver on. + #1 + + + + + TE + Transmitter Enable + 3 + 1 + read-write + + + 0 + Transmitter off. + #0 + + + 1 + Transmitter on. + #1 + + + + + ILIE + Idle Line Interrupt DMA Transfer Enable + 4 + 1 + read-write + + + 0 + IDLE interrupt requests disabled. and DMA transfer + #0 + + + 1 + IDLE interrupt requests enabled. or DMA transfer + #1 + + + + + RIE + Receiver Full Interrupt or DMA Transfer Enable + 5 + 1 + read-write + + + 0 + RDRF interrupt and DMA transfer requests disabled. + #0 + + + 1 + RDRF interrupt or DMA transfer requests enabled. + #1 + + + + + TCIE + Transmission Complete Interrupt or DMA Transfer Enable + 6 + 1 + read-write + + + 0 + TC interrupt and DMA transfer requests disabled. + #0 + + + 1 + TC interrupt or DMA transfer requests enabled. + #1 + + + + + TIE + Transmitter Interrupt or DMA Transfer Enable. + 7 + 1 + read-write + + + 0 + TDRE interrupt and DMA transfer requests disabled. + #0 + + + 1 + TDRE interrupt or DMA transfer requests enabled. + #1 + + + + + + + S1 + UART Status Register 1 + 0x4 + 8 + read-only + 0xC0 + 0xFF + + + PF + Parity Error Flag + 0 + 1 + read-only + + + 0 + No parity error detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1, then there may be data in the receive buffer what was received with a parity error. + #0 + + + 1 + At least one dataword was received with a parity error since the last time this flag was cleared. + #1 + + + + + FE + Framing Error Flag + 1 + 1 + read-only + + + 0 + No framing error detected. + #0 + + + 1 + Framing error. + #1 + + + + + NF + Noise Flag + 2 + 1 + read-only + + + 0 + No noise detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1 then there may be data in the receiver buffer that was received with noise. + #0 + + + 1 + At least one dataword was received with noise detected since the last time the flag was cleared. + #1 + + + + + OR + Receiver Overrun Flag + 3 + 1 + read-only + + + 0 + No overrun has occurred since the last time the flag was cleared. + #0 + + + 1 + Overrun has occurred or the overrun flag has not been cleared since the last overrun occured. + #1 + + + + + IDLE + Idle Line Flag + 4 + 1 + read-only + + + 0 + Receiver input is either active now or has never become active since the IDLE flag was last cleared. + #0 + + + 1 + Receiver input has become idle or the flag has not been cleared since it last asserted. + #1 + + + + + RDRF + Receive Data Register Full Flag + 5 + 1 + read-only + + + 0 + The number of datawords in the receive buffer is less than the number indicated by RXWATER. + #0 + + + 1 + The number of datawords in the receive buffer is equal to or greater than the number indicated by RXWATER at some point in time since this flag was last cleared. + #1 + + + + + TC + Transmit Complete Flag + 6 + 1 + read-only + + + 0 + Transmitter active (sending data, a preamble, or a break). + #0 + + + 1 + Transmitter idle (transmission activity complete). + #1 + + + + + TDRE + Transmit Data Register Empty Flag + 7 + 1 + read-only + + + 0 + The amount of data in the transmit buffer is greater than the value indicated by TWFIFO[TXWATER]. + #0 + + + 1 + The amount of data in the transmit buffer is less than or equal to the value indicated by TWFIFO[TXWATER] at some point in time since the flag has been cleared. + #1 + + + + + + + S2 + UART Status Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + RAF + Receiver Active Flag + 0 + 1 + read-only + + + 0 + UART receiver idle/inactive waiting for a start bit. + #0 + + + 1 + UART receiver active, RxD input not idle. + #1 + + + + + LBKDE + LIN Break Detection Enable + 1 + 1 + read-write + + + 0 + Break character detection is disabled. + #0 + + + 1 + Break character is detected at length of 11 bit times if C1[M] = 0 or 12 bits time if C1[M] = 1. + #1 + + + + + BRK13 + Break Transmit Character Length + 2 + 1 + read-write + + + 0 + Break character is 10, 11, or 12 bits long. + #0 + + + 1 + Break character is 13 or 14 bits long. + #1 + + + + + RWUID + Receive Wakeup Idle Detect + 3 + 1 + read-write + + + 0 + S1[IDLE] is not set upon detection of an idle character. + #0 + + + 1 + S1[IDLE] is set upon detection of an idle character. + #1 + + + + + RXINV + Receive Data Inversion + 4 + 1 + read-write + + + 0 + Receive data is not inverted. + #0 + + + 1 + Receive data is inverted. + #1 + + + + + MSBF + Most Significant Bit First + 5 + 1 + read-write + + + 0 + LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0. + #0 + + + 1 + MSB (bit8, bit7 or bit6) is the first bit that is transmitted following the start bit, depending on the setting of C1[M] and C1[PE]. Further, the first bit received after the start bit is identified as bit8, bit7, or bit6, depending on the setting of C1[M] and C1[PE]. + #1 + + + + + RXEDGIF + RxD Pin Active Edge Interrupt Flag + 6 + 1 + read-write + + + 0 + No active edge on the receive pin has occurred. + #0 + + + 1 + An active edge on the receive pin has occurred. + #1 + + + + + LBKDIF + LIN Break Detect Interrupt Flag + 7 + 1 + read-write + + + 0 + No LIN break character detected. + #0 + + + 1 + LIN break character detected. + #1 + + + + + + + C3 + UART Control Register 3 + 0x6 + 8 + read-write + 0 + 0xFF + + + PEIE + Parity Error Interrupt Enable + 0 + 1 + read-write + + + 0 + PF interrupt requests are disabled. + #0 + + + 1 + PF interrupt requests are enabled. + #1 + + + + + FEIE + Framing Error Interrupt Enable + 1 + 1 + read-write + + + 0 + FE interrupt requests are disabled. + #0 + + + 1 + FE interrupt requests are enabled. + #1 + + + + + NEIE + Noise Error Interrupt Enable + 2 + 1 + read-write + + + 0 + NF interrupt requests are disabled. + #0 + + + 1 + NF interrupt requests are enabled. + #1 + + + + + ORIE + Overrun Error Interrupt Enable + 3 + 1 + read-write + + + 0 + OR interrupts are disabled. + #0 + + + 1 + OR interrupt requests are enabled. + #1 + + + + + TXINV + Transmit Data Inversion. + 4 + 1 + read-write + + + 0 + Transmit data is not inverted. + #0 + + + 1 + Transmit data is inverted. + #1 + + + + + TXDIR + Transmitter Pin Data Direction in Single-Wire mode + 5 + 1 + read-write + + + 0 + TXD pin is an input in single wire mode. + #0 + + + 1 + TXD pin is an output in single wire mode. + #1 + + + + + T8 + Transmit Bit 8 + 6 + 1 + read-write + + + R8 + Received Bit 8 + 7 + 1 + read-only + + + + + D + UART Data Register + 0x7 + 8 + read-write + 0 + 0xFF + + + RT + Reads return the contents of the read-only receive data register and writes go to the write-only transmit data register + 0 + 8 + read-write + + + + + MA1 + UART Match Address Registers 1 + 0x8 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + MA2 + UART Match Address Registers 2 + 0x9 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + C4 + UART Control Register 4 + 0xA + 8 + read-write + 0 + 0xFF + + + BRFA + Baud Rate Fine Adjust + 0 + 5 + read-write + + + M10 + 10-bit Mode select + 5 + 1 + read-write + + + 0 + The parity bit is the ninth bit in the serial transmission. + #0 + + + 1 + The parity bit is the tenth bit in the serial transmission. + #1 + + + + + MAEN2 + Match Address Mode Enable 2 + 6 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN1 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA2 register. If no match occurs, the data is discarded. If a match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + MAEN1 + Match Address Mode Enable 1 + 7 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN2 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA1 register. If no match occurs, the data is discarded. If match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + + + C5 + UART Control Register 5 + 0xB + 8 + read-write + 0 + 0xFF + + + LBKDDMAS + LIN Break Detect DMA Select Bit + 3 + 1 + read-write + + + 0 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF interrupt signal is asserted to request an interrupt service. + #0 + + + 1 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + ILDMAS + Idle Line DMA Select + 4 + 1 + read-write + + + 0 + If C2[ILIE] and S1[IDLE] are set, the IDLE interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[ILIE] and S1[IDLE] are set, the IDLE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + RDMAS + Receiver Full DMA Select + 5 + 1 + read-write + + + 0 + If C2[RIE] and S1[RDRF] are set, the RDFR interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[RIE] and S1[RDRF] are set, the RDRF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TCDMAS + Transmission Complete DMA Select + 6 + 1 + read-write + + + 0 + If C2[TCIE] is set and the S1[TC] flag is set, the TC interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[TCIE] is set and the S1[TC] flag is set, the TC DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TDMAS + Transmitter DMA Select + 7 + 1 + read-write + + + 0 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE interrupt request signal is asserted to request interrupt service. + #0 + + + 1 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + + + ED + UART Extended Data Register + 0xC + 8 + read-only + 0 + 0xFF + + + PARITYE + The current received dataword contained in D and C3[R8] was received with a parity error. + 6 + 1 + read-only + + + 0 + The dataword was received without a parity error. + #0 + + + 1 + The dataword was received with a parity error. + #1 + + + + + NOISY + The current received dataword contained in D and C3[R8] was received with noise. + 7 + 1 + read-only + + + 0 + The dataword was received without noise. + #0 + + + 1 + The data was received with noise. + #1 + + + + + + + MODEM + UART Modem Register + 0xD + 8 + read-write + 0 + 0xFF + + + TXCTSE + Transmitter clear-to-send enable + 0 + 1 + read-write + + + 0 + CTS has no effect on the transmitter. + #0 + + + 1 + Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission. + #1 + + + + + TXRTSE + Transmitter request-to-send enable + 1 + 1 + read-write + + + 0 + The transmitter has no effect on RTS. + #0 + + + 1 + When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit. (FIFO) (FIFO) + #1 + + + + + TXRTSPOL + Transmitter request-to-send polarity + 2 + 1 + read-write + + + 0 + Transmitter RTS is active low. + #0 + + + 1 + Transmitter RTS is active high. + #1 + + + + + RXRTSE + Receiver request-to-send enable + 3 + 1 + read-write + + + 0 + The receiver has no effect on RTS. + #0 + + + 1 + RTS is deasserted if the number of characters in the receiver data register (FIFO) is equal to or greater than RWFIFO[RXWATER]. RTS is asserted when the number of characters in the receiver data register (FIFO) is less than RWFIFO[RXWATER]. + #1 + + + + + + + IR + UART Infrared Register + 0xE + 8 + read-write + 0 + 0xFF + + + TNP + Transmitter narrow pulse + 0 + 2 + read-write + + + 00 + 3/16. + #00 + + + 01 + 1/16. + #01 + + + 10 + 1/32. + #10 + + + 11 + 1/4. + #11 + + + + + IREN + Infrared enable + 2 + 1 + read-write + + + 0 + IR disabled. + #0 + + + 1 + IR enabled. + #1 + + + + + + + PFIFO + UART FIFO Parameters + 0x10 + 8 + read-write + 0 + 0xFF + + + RXFIFOSIZE + Receive FIFO. Buffer Depth + 0 + 3 + read-only + + + 000 + Receive FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Receive FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Receive FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Receive FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Receive FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Receive FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Receive FIFO/Buffer depth = 128 datawords. + #110 + + + + + RXFE + Receive FIFO Enable + 3 + 1 + read-write + + + 0 + Receive FIFO is not enabled. Buffer is depth 1. (Legacy support) + #0 + + + 1 + Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE. + #1 + + + + + TXFIFOSIZE + Transmit FIFO. Buffer Depth + 4 + 3 + read-only + + + 000 + Transmit FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Transmit FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Transmit FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Transmit FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Transmit FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Transmit FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Transmit FIFO/Buffer depth = 128 datawords. + #110 + + + + + TXFE + Transmit FIFO Enable + 7 + 1 + read-write + + + 0 + Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support). + #0 + + + 1 + Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE. + #1 + + + + + + + CFIFO + UART FIFO Control Register + 0x11 + 8 + read-write + 0 + 0xFF + + + RXUFE + Receive FIFO Underflow Interrupt Enable + 0 + 1 + read-write + + + 0 + RXUF flag does not generate an interrupt to the host. + #0 + + + 1 + RXUF flag generates an interrupt to the host. + #1 + + + + + TXOFE + Transmit FIFO Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + TXOF flag does not generate an interrupt to the host. + #0 + + + 1 + TXOF flag generates an interrupt to the host. + #1 + + + + + RXOFE + Receive FIFO Overflow Interrupt Enable + 2 + 1 + read-write + + + 0 + RXOF flag does not generate an interrupt to the host. + #0 + + + 1 + RXOF flag generates an interrupt to the host. + #1 + + + + + RXFLUSH + Receive FIFO/Buffer Flush + 6 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the receive FIFO/buffer is cleared out. + #1 + + + + + TXFLUSH + Transmit FIFO/Buffer Flush + 7 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the transmit FIFO/Buffer is cleared out. + #1 + + + + + + + SFIFO + UART FIFO Status Register + 0x12 + 8 + read-write + 0xC0 + 0xFF + + + RXUF + Receiver Buffer Underflow Flag + 0 + 1 + read-write + + + 0 + No receive buffer underflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer underflow has occurred since the last time the flag was cleared. + #1 + + + + + TXOF + Transmitter Buffer Overflow Flag + 1 + 1 + read-write + + + 0 + No transmit buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one transmit buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXOF + Receiver Buffer Overflow Flag + 2 + 1 + read-write + + + 0 + No receive buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXEMPT + Receive Buffer/FIFO Empty + 6 + 1 + read-only + + + 0 + Receive buffer is not empty. + #0 + + + 1 + Receive buffer is empty. + #1 + + + + + TXEMPT + Transmit Buffer/FIFO Empty + 7 + 1 + read-only + + + 0 + Transmit buffer is not empty. + #0 + + + 1 + Transmit buffer is empty. + #1 + + + + + + + TWFIFO + UART FIFO Transmit Watermark + 0x13 + 8 + read-write + 0 + 0xFF + + + TXWATER + Transmit Watermark + 0 + 8 + read-write + + + + + TCFIFO + UART FIFO Transmit Count + 0x14 + 8 + read-only + 0 + 0xFF + + + TXCOUNT + Transmit Counter + 0 + 8 + read-only + + + + + RWFIFO + UART FIFO Receive Watermark + 0x15 + 8 + read-write + 0x1 + 0xFF + + + RXWATER + Receive Watermark + 0 + 8 + read-write + + + + + RCFIFO + UART FIFO Receive Count + 0x16 + 8 + read-only + 0 + 0xFF + + + RXCOUNT + Receive Counter + 0 + 8 + read-only + + + + + + + UART2 + Serial Communication Interface + UART + UART2_ + 0x4006C000 + + 0 + 0x17 + registers + + + UART2_RX_TX + 35 + + + UART2_ERR + 36 + + + + BDH + UART Baud Rate Registers: High + 0 + 8 + read-write + 0 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 5 + read-write + + + SBNS + Stop Bit Number Select + 5 + 1 + read-write + + + 0 + Data frame consists of a single stop bit. + #0 + + + 1 + Data frame consists of two stop bits. + #1 + + + + + RXEDGIE + RxD Input Active Edge Interrupt Enable + 6 + 1 + read-write + + + 0 + Hardware interrupts from RXEDGIF disabled using polling. + #0 + + + 1 + RXEDGIF interrupt request enabled. + #1 + + + + + LBKDIE + LIN Break Detect Interrupt or DMA Request Enable + 7 + 1 + read-write + + + 0 + LBKDIF interrupt and DMA transfer requests disabled. + #0 + + + 1 + LBKDIF interrupt or DMA transfer requests enabled. + #1 + + + + + + + BDL + UART Baud Rate Registers: Low + 0x1 + 8 + read-write + 0x4 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 8 + read-write + + + + + C1 + UART Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + PT + Parity Type + 0 + 1 + read-write + + + 0 + Even parity. + #0 + + + 1 + Odd parity. + #1 + + + + + PE + Parity Enable + 1 + 1 + read-write + + + 0 + Parity function disabled. + #0 + + + 1 + Parity function enabled. + #1 + + + + + ILT + Idle Line Type Select + 2 + 1 + read-write + + + 0 + Idle character bit count starts after start bit. + #0 + + + 1 + Idle character bit count starts after stop bit. + #1 + + + + + WAKE + Receiver Wakeup Method Select + 3 + 1 + read-write + + + 0 + Idle line wakeup. + #0 + + + 1 + Address mark wakeup. + #1 + + + + + M + 9-bit or 8-bit Mode Select + 4 + 1 + read-write + + + 0 + Normal-start + 8 data bits (MSB/LSB first as determined by MSBF) + stop. + #0 + + + 1 + Use-start + 9 data bits (MSB/LSB first as determined by MSBF) + stop. + #1 + + + + + RSRC + Receiver Source Select + 5 + 1 + read-write + + + 0 + Selects internal loop back mode. The receiver input is internally connected to transmitter output. + #0 + + + 1 + Single wire UART mode where the receiver input is connected to the transmit pin input signal. + #1 + + + + + UARTSWAI + UART Stops in Wait Mode + 6 + 1 + read-write + + + 0 + UART clock continues to run in Wait mode. + #0 + + + 1 + UART clock freezes while CPU is in Wait mode. + #1 + + + + + LOOPS + Loop Mode Select + 7 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + Loop mode where transmitter output is internally connected to receiver input. The receiver input is determined by RSRC. + #1 + + + + + + + C2 + UART Control Register 2 + 0x3 + 8 + read-write + 0 + 0xFF + + + SBK + Send Break + 0 + 1 + read-write + + + 0 + Normal transmitter operation. + #0 + + + 1 + Queue break characters to be sent. + #1 + + + + + RWU + Receiver Wakeup Control + 1 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes the receiver by automatically clearing RWU. + #1 + + + + + RE + Receiver Enable + 2 + 1 + read-write + + + 0 + Receiver off. + #0 + + + 1 + Receiver on. + #1 + + + + + TE + Transmitter Enable + 3 + 1 + read-write + + + 0 + Transmitter off. + #0 + + + 1 + Transmitter on. + #1 + + + + + ILIE + Idle Line Interrupt DMA Transfer Enable + 4 + 1 + read-write + + + 0 + IDLE interrupt requests disabled. and DMA transfer + #0 + + + 1 + IDLE interrupt requests enabled. or DMA transfer + #1 + + + + + RIE + Receiver Full Interrupt or DMA Transfer Enable + 5 + 1 + read-write + + + 0 + RDRF interrupt and DMA transfer requests disabled. + #0 + + + 1 + RDRF interrupt or DMA transfer requests enabled. + #1 + + + + + TCIE + Transmission Complete Interrupt or DMA Transfer Enable + 6 + 1 + read-write + + + 0 + TC interrupt and DMA transfer requests disabled. + #0 + + + 1 + TC interrupt or DMA transfer requests enabled. + #1 + + + + + TIE + Transmitter Interrupt or DMA Transfer Enable. + 7 + 1 + read-write + + + 0 + TDRE interrupt and DMA transfer requests disabled. + #0 + + + 1 + TDRE interrupt or DMA transfer requests enabled. + #1 + + + + + + + S1 + UART Status Register 1 + 0x4 + 8 + read-only + 0xC0 + 0xFF + + + PF + Parity Error Flag + 0 + 1 + read-only + + + 0 + No parity error detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1, then there may be data in the receive buffer what was received with a parity error. + #0 + + + 1 + At least one dataword was received with a parity error since the last time this flag was cleared. + #1 + + + + + FE + Framing Error Flag + 1 + 1 + read-only + + + 0 + No framing error detected. + #0 + + + 1 + Framing error. + #1 + + + + + NF + Noise Flag + 2 + 1 + read-only + + + 0 + No noise detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1 then there may be data in the receiver buffer that was received with noise. + #0 + + + 1 + At least one dataword was received with noise detected since the last time the flag was cleared. + #1 + + + + + OR + Receiver Overrun Flag + 3 + 1 + read-only + + + 0 + No overrun has occurred since the last time the flag was cleared. + #0 + + + 1 + Overrun has occurred or the overrun flag has not been cleared since the last overrun occured. + #1 + + + + + IDLE + Idle Line Flag + 4 + 1 + read-only + + + 0 + Receiver input is either active now or has never become active since the IDLE flag was last cleared. + #0 + + + 1 + Receiver input has become idle or the flag has not been cleared since it last asserted. + #1 + + + + + RDRF + Receive Data Register Full Flag + 5 + 1 + read-only + + + 0 + The number of datawords in the receive buffer is less than the number indicated by RXWATER. + #0 + + + 1 + The number of datawords in the receive buffer is equal to or greater than the number indicated by RXWATER at some point in time since this flag was last cleared. + #1 + + + + + TC + Transmit Complete Flag + 6 + 1 + read-only + + + 0 + Transmitter active (sending data, a preamble, or a break). + #0 + + + 1 + Transmitter idle (transmission activity complete). + #1 + + + + + TDRE + Transmit Data Register Empty Flag + 7 + 1 + read-only + + + 0 + The amount of data in the transmit buffer is greater than the value indicated by TWFIFO[TXWATER]. + #0 + + + 1 + The amount of data in the transmit buffer is less than or equal to the value indicated by TWFIFO[TXWATER] at some point in time since the flag has been cleared. + #1 + + + + + + + S2 + UART Status Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + RAF + Receiver Active Flag + 0 + 1 + read-only + + + 0 + UART receiver idle/inactive waiting for a start bit. + #0 + + + 1 + UART receiver active, RxD input not idle. + #1 + + + + + LBKDE + LIN Break Detection Enable + 1 + 1 + read-write + + + 0 + Break character detection is disabled. + #0 + + + 1 + Break character is detected at length of 11 bit times if C1[M] = 0 or 12 bits time if C1[M] = 1. + #1 + + + + + BRK13 + Break Transmit Character Length + 2 + 1 + read-write + + + 0 + Break character is 10, 11, or 12 bits long. + #0 + + + 1 + Break character is 13 or 14 bits long. + #1 + + + + + RWUID + Receive Wakeup Idle Detect + 3 + 1 + read-write + + + 0 + S1[IDLE] is not set upon detection of an idle character. + #0 + + + 1 + S1[IDLE] is set upon detection of an idle character. + #1 + + + + + RXINV + Receive Data Inversion + 4 + 1 + read-write + + + 0 + Receive data is not inverted. + #0 + + + 1 + Receive data is inverted. + #1 + + + + + MSBF + Most Significant Bit First + 5 + 1 + read-write + + + 0 + LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0. + #0 + + + 1 + MSB (bit8, bit7 or bit6) is the first bit that is transmitted following the start bit, depending on the setting of C1[M] and C1[PE]. Further, the first bit received after the start bit is identified as bit8, bit7, or bit6, depending on the setting of C1[M] and C1[PE]. + #1 + + + + + RXEDGIF + RxD Pin Active Edge Interrupt Flag + 6 + 1 + read-write + + + 0 + No active edge on the receive pin has occurred. + #0 + + + 1 + An active edge on the receive pin has occurred. + #1 + + + + + LBKDIF + LIN Break Detect Interrupt Flag + 7 + 1 + read-write + + + 0 + No LIN break character detected. + #0 + + + 1 + LIN break character detected. + #1 + + + + + + + C3 + UART Control Register 3 + 0x6 + 8 + read-write + 0 + 0xFF + + + PEIE + Parity Error Interrupt Enable + 0 + 1 + read-write + + + 0 + PF interrupt requests are disabled. + #0 + + + 1 + PF interrupt requests are enabled. + #1 + + + + + FEIE + Framing Error Interrupt Enable + 1 + 1 + read-write + + + 0 + FE interrupt requests are disabled. + #0 + + + 1 + FE interrupt requests are enabled. + #1 + + + + + NEIE + Noise Error Interrupt Enable + 2 + 1 + read-write + + + 0 + NF interrupt requests are disabled. + #0 + + + 1 + NF interrupt requests are enabled. + #1 + + + + + ORIE + Overrun Error Interrupt Enable + 3 + 1 + read-write + + + 0 + OR interrupts are disabled. + #0 + + + 1 + OR interrupt requests are enabled. + #1 + + + + + TXINV + Transmit Data Inversion. + 4 + 1 + read-write + + + 0 + Transmit data is not inverted. + #0 + + + 1 + Transmit data is inverted. + #1 + + + + + TXDIR + Transmitter Pin Data Direction in Single-Wire mode + 5 + 1 + read-write + + + 0 + TXD pin is an input in single wire mode. + #0 + + + 1 + TXD pin is an output in single wire mode. + #1 + + + + + T8 + Transmit Bit 8 + 6 + 1 + read-write + + + R8 + Received Bit 8 + 7 + 1 + read-only + + + + + D + UART Data Register + 0x7 + 8 + read-write + 0 + 0xFF + + + RT + Reads return the contents of the read-only receive data register and writes go to the write-only transmit data register + 0 + 8 + read-write + + + + + MA1 + UART Match Address Registers 1 + 0x8 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + MA2 + UART Match Address Registers 2 + 0x9 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + C4 + UART Control Register 4 + 0xA + 8 + read-write + 0 + 0xFF + + + BRFA + Baud Rate Fine Adjust + 0 + 5 + read-write + + + M10 + 10-bit Mode select + 5 + 1 + read-write + + + 0 + The parity bit is the ninth bit in the serial transmission. + #0 + + + 1 + The parity bit is the tenth bit in the serial transmission. + #1 + + + + + MAEN2 + Match Address Mode Enable 2 + 6 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN1 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA2 register. If no match occurs, the data is discarded. If a match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + MAEN1 + Match Address Mode Enable 1 + 7 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN2 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA1 register. If no match occurs, the data is discarded. If match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + + + C5 + UART Control Register 5 + 0xB + 8 + read-write + 0 + 0xFF + + + LBKDDMAS + LIN Break Detect DMA Select Bit + 3 + 1 + read-write + + + 0 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF interrupt signal is asserted to request an interrupt service. + #0 + + + 1 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + ILDMAS + Idle Line DMA Select + 4 + 1 + read-write + + + 0 + If C2[ILIE] and S1[IDLE] are set, the IDLE interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[ILIE] and S1[IDLE] are set, the IDLE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + RDMAS + Receiver Full DMA Select + 5 + 1 + read-write + + + 0 + If C2[RIE] and S1[RDRF] are set, the RDFR interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[RIE] and S1[RDRF] are set, the RDRF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TCDMAS + Transmission Complete DMA Select + 6 + 1 + read-write + + + 0 + If C2[TCIE] is set and the S1[TC] flag is set, the TC interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[TCIE] is set and the S1[TC] flag is set, the TC DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TDMAS + Transmitter DMA Select + 7 + 1 + read-write + + + 0 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE interrupt request signal is asserted to request interrupt service. + #0 + + + 1 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + + + ED + UART Extended Data Register + 0xC + 8 + read-only + 0 + 0xFF + + + PARITYE + The current received dataword contained in D and C3[R8] was received with a parity error. + 6 + 1 + read-only + + + 0 + The dataword was received without a parity error. + #0 + + + 1 + The dataword was received with a parity error. + #1 + + + + + NOISY + The current received dataword contained in D and C3[R8] was received with noise. + 7 + 1 + read-only + + + 0 + The dataword was received without noise. + #0 + + + 1 + The data was received with noise. + #1 + + + + + + + MODEM + UART Modem Register + 0xD + 8 + read-write + 0 + 0xFF + + + TXCTSE + Transmitter clear-to-send enable + 0 + 1 + read-write + + + 0 + CTS has no effect on the transmitter. + #0 + + + 1 + Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission. + #1 + + + + + TXRTSE + Transmitter request-to-send enable + 1 + 1 + read-write + + + 0 + The transmitter has no effect on RTS. + #0 + + + 1 + When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit. (FIFO) (FIFO) + #1 + + + + + TXRTSPOL + Transmitter request-to-send polarity + 2 + 1 + read-write + + + 0 + Transmitter RTS is active low. + #0 + + + 1 + Transmitter RTS is active high. + #1 + + + + + RXRTSE + Receiver request-to-send enable + 3 + 1 + read-write + + + 0 + The receiver has no effect on RTS. + #0 + + + 1 + RTS is deasserted if the number of characters in the receiver data register (FIFO) is equal to or greater than RWFIFO[RXWATER]. RTS is asserted when the number of characters in the receiver data register (FIFO) is less than RWFIFO[RXWATER]. + #1 + + + + + + + IR + UART Infrared Register + 0xE + 8 + read-write + 0 + 0xFF + + + TNP + Transmitter narrow pulse + 0 + 2 + read-write + + + 00 + 3/16. + #00 + + + 01 + 1/16. + #01 + + + 10 + 1/32. + #10 + + + 11 + 1/4. + #11 + + + + + IREN + Infrared enable + 2 + 1 + read-write + + + 0 + IR disabled. + #0 + + + 1 + IR enabled. + #1 + + + + + + + PFIFO + UART FIFO Parameters + 0x10 + 8 + read-write + 0 + 0xFF + + + RXFIFOSIZE + Receive FIFO. Buffer Depth + 0 + 3 + read-only + + + 000 + Receive FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Receive FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Receive FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Receive FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Receive FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Receive FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Receive FIFO/Buffer depth = 128 datawords. + #110 + + + + + RXFE + Receive FIFO Enable + 3 + 1 + read-write + + + 0 + Receive FIFO is not enabled. Buffer is depth 1. (Legacy support) + #0 + + + 1 + Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE. + #1 + + + + + TXFIFOSIZE + Transmit FIFO. Buffer Depth + 4 + 3 + read-only + + + 000 + Transmit FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Transmit FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Transmit FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Transmit FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Transmit FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Transmit FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Transmit FIFO/Buffer depth = 128 datawords. + #110 + + + + + TXFE + Transmit FIFO Enable + 7 + 1 + read-write + + + 0 + Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support). + #0 + + + 1 + Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE. + #1 + + + + + + + CFIFO + UART FIFO Control Register + 0x11 + 8 + read-write + 0 + 0xFF + + + RXUFE + Receive FIFO Underflow Interrupt Enable + 0 + 1 + read-write + + + 0 + RXUF flag does not generate an interrupt to the host. + #0 + + + 1 + RXUF flag generates an interrupt to the host. + #1 + + + + + TXOFE + Transmit FIFO Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + TXOF flag does not generate an interrupt to the host. + #0 + + + 1 + TXOF flag generates an interrupt to the host. + #1 + + + + + RXOFE + Receive FIFO Overflow Interrupt Enable + 2 + 1 + read-write + + + 0 + RXOF flag does not generate an interrupt to the host. + #0 + + + 1 + RXOF flag generates an interrupt to the host. + #1 + + + + + RXFLUSH + Receive FIFO/Buffer Flush + 6 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the receive FIFO/buffer is cleared out. + #1 + + + + + TXFLUSH + Transmit FIFO/Buffer Flush + 7 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the transmit FIFO/Buffer is cleared out. + #1 + + + + + + + SFIFO + UART FIFO Status Register + 0x12 + 8 + read-write + 0xC0 + 0xFF + + + RXUF + Receiver Buffer Underflow Flag + 0 + 1 + read-write + + + 0 + No receive buffer underflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer underflow has occurred since the last time the flag was cleared. + #1 + + + + + TXOF + Transmitter Buffer Overflow Flag + 1 + 1 + read-write + + + 0 + No transmit buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one transmit buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXOF + Receiver Buffer Overflow Flag + 2 + 1 + read-write + + + 0 + No receive buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXEMPT + Receive Buffer/FIFO Empty + 6 + 1 + read-only + + + 0 + Receive buffer is not empty. + #0 + + + 1 + Receive buffer is empty. + #1 + + + + + TXEMPT + Transmit Buffer/FIFO Empty + 7 + 1 + read-only + + + 0 + Transmit buffer is not empty. + #0 + + + 1 + Transmit buffer is empty. + #1 + + + + + + + TWFIFO + UART FIFO Transmit Watermark + 0x13 + 8 + read-write + 0 + 0xFF + + + TXWATER + Transmit Watermark + 0 + 8 + read-write + + + + + TCFIFO + UART FIFO Transmit Count + 0x14 + 8 + read-only + 0 + 0xFF + + + TXCOUNT + Transmit Counter + 0 + 8 + read-only + + + + + RWFIFO + UART FIFO Receive Watermark + 0x15 + 8 + read-write + 0x1 + 0xFF + + + RXWATER + Receive Watermark + 0 + 8 + read-write + + + + + RCFIFO + UART FIFO Receive Count + 0x16 + 8 + read-only + 0 + 0xFF + + + RXCOUNT + Receive Counter + 0 + 8 + read-only + + + + + + + UART3 + Serial Communication Interface + UART + UART3_ + 0x4006D000 + + 0 + 0x17 + registers + + + UART3_RX_TX + 37 + + + UART3_ERR + 38 + + + + BDH + UART Baud Rate Registers: High + 0 + 8 + read-write + 0 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 5 + read-write + + + SBNS + Stop Bit Number Select + 5 + 1 + read-write + + + 0 + Data frame consists of a single stop bit. + #0 + + + 1 + Data frame consists of two stop bits. + #1 + + + + + RXEDGIE + RxD Input Active Edge Interrupt Enable + 6 + 1 + read-write + + + 0 + Hardware interrupts from RXEDGIF disabled using polling. + #0 + + + 1 + RXEDGIF interrupt request enabled. + #1 + + + + + LBKDIE + LIN Break Detect Interrupt or DMA Request Enable + 7 + 1 + read-write + + + 0 + LBKDIF interrupt and DMA transfer requests disabled. + #0 + + + 1 + LBKDIF interrupt or DMA transfer requests enabled. + #1 + + + + + + + BDL + UART Baud Rate Registers: Low + 0x1 + 8 + read-write + 0x4 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 8 + read-write + + + + + C1 + UART Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + PT + Parity Type + 0 + 1 + read-write + + + 0 + Even parity. + #0 + + + 1 + Odd parity. + #1 + + + + + PE + Parity Enable + 1 + 1 + read-write + + + 0 + Parity function disabled. + #0 + + + 1 + Parity function enabled. + #1 + + + + + ILT + Idle Line Type Select + 2 + 1 + read-write + + + 0 + Idle character bit count starts after start bit. + #0 + + + 1 + Idle character bit count starts after stop bit. + #1 + + + + + WAKE + Receiver Wakeup Method Select + 3 + 1 + read-write + + + 0 + Idle line wakeup. + #0 + + + 1 + Address mark wakeup. + #1 + + + + + M + 9-bit or 8-bit Mode Select + 4 + 1 + read-write + + + 0 + Normal-start + 8 data bits (MSB/LSB first as determined by MSBF) + stop. + #0 + + + 1 + Use-start + 9 data bits (MSB/LSB first as determined by MSBF) + stop. + #1 + + + + + RSRC + Receiver Source Select + 5 + 1 + read-write + + + 0 + Selects internal loop back mode. The receiver input is internally connected to transmitter output. + #0 + + + 1 + Single wire UART mode where the receiver input is connected to the transmit pin input signal. + #1 + + + + + UARTSWAI + UART Stops in Wait Mode + 6 + 1 + read-write + + + 0 + UART clock continues to run in Wait mode. + #0 + + + 1 + UART clock freezes while CPU is in Wait mode. + #1 + + + + + LOOPS + Loop Mode Select + 7 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + Loop mode where transmitter output is internally connected to receiver input. The receiver input is determined by RSRC. + #1 + + + + + + + C2 + UART Control Register 2 + 0x3 + 8 + read-write + 0 + 0xFF + + + SBK + Send Break + 0 + 1 + read-write + + + 0 + Normal transmitter operation. + #0 + + + 1 + Queue break characters to be sent. + #1 + + + + + RWU + Receiver Wakeup Control + 1 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes the receiver by automatically clearing RWU. + #1 + + + + + RE + Receiver Enable + 2 + 1 + read-write + + + 0 + Receiver off. + #0 + + + 1 + Receiver on. + #1 + + + + + TE + Transmitter Enable + 3 + 1 + read-write + + + 0 + Transmitter off. + #0 + + + 1 + Transmitter on. + #1 + + + + + ILIE + Idle Line Interrupt DMA Transfer Enable + 4 + 1 + read-write + + + 0 + IDLE interrupt requests disabled. and DMA transfer + #0 + + + 1 + IDLE interrupt requests enabled. or DMA transfer + #1 + + + + + RIE + Receiver Full Interrupt or DMA Transfer Enable + 5 + 1 + read-write + + + 0 + RDRF interrupt and DMA transfer requests disabled. + #0 + + + 1 + RDRF interrupt or DMA transfer requests enabled. + #1 + + + + + TCIE + Transmission Complete Interrupt or DMA Transfer Enable + 6 + 1 + read-write + + + 0 + TC interrupt and DMA transfer requests disabled. + #0 + + + 1 + TC interrupt or DMA transfer requests enabled. + #1 + + + + + TIE + Transmitter Interrupt or DMA Transfer Enable. + 7 + 1 + read-write + + + 0 + TDRE interrupt and DMA transfer requests disabled. + #0 + + + 1 + TDRE interrupt or DMA transfer requests enabled. + #1 + + + + + + + S1 + UART Status Register 1 + 0x4 + 8 + read-only + 0xC0 + 0xFF + + + PF + Parity Error Flag + 0 + 1 + read-only + + + 0 + No parity error detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1, then there may be data in the receive buffer what was received with a parity error. + #0 + + + 1 + At least one dataword was received with a parity error since the last time this flag was cleared. + #1 + + + + + FE + Framing Error Flag + 1 + 1 + read-only + + + 0 + No framing error detected. + #0 + + + 1 + Framing error. + #1 + + + + + NF + Noise Flag + 2 + 1 + read-only + + + 0 + No noise detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1 then there may be data in the receiver buffer that was received with noise. + #0 + + + 1 + At least one dataword was received with noise detected since the last time the flag was cleared. + #1 + + + + + OR + Receiver Overrun Flag + 3 + 1 + read-only + + + 0 + No overrun has occurred since the last time the flag was cleared. + #0 + + + 1 + Overrun has occurred or the overrun flag has not been cleared since the last overrun occured. + #1 + + + + + IDLE + Idle Line Flag + 4 + 1 + read-only + + + 0 + Receiver input is either active now or has never become active since the IDLE flag was last cleared. + #0 + + + 1 + Receiver input has become idle or the flag has not been cleared since it last asserted. + #1 + + + + + RDRF + Receive Data Register Full Flag + 5 + 1 + read-only + + + 0 + The number of datawords in the receive buffer is less than the number indicated by RXWATER. + #0 + + + 1 + The number of datawords in the receive buffer is equal to or greater than the number indicated by RXWATER at some point in time since this flag was last cleared. + #1 + + + + + TC + Transmit Complete Flag + 6 + 1 + read-only + + + 0 + Transmitter active (sending data, a preamble, or a break). + #0 + + + 1 + Transmitter idle (transmission activity complete). + #1 + + + + + TDRE + Transmit Data Register Empty Flag + 7 + 1 + read-only + + + 0 + The amount of data in the transmit buffer is greater than the value indicated by TWFIFO[TXWATER]. + #0 + + + 1 + The amount of data in the transmit buffer is less than or equal to the value indicated by TWFIFO[TXWATER] at some point in time since the flag has been cleared. + #1 + + + + + + + S2 + UART Status Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + RAF + Receiver Active Flag + 0 + 1 + read-only + + + 0 + UART receiver idle/inactive waiting for a start bit. + #0 + + + 1 + UART receiver active, RxD input not idle. + #1 + + + + + LBKDE + LIN Break Detection Enable + 1 + 1 + read-write + + + 0 + Break character detection is disabled. + #0 + + + 1 + Break character is detected at length of 11 bit times if C1[M] = 0 or 12 bits time if C1[M] = 1. + #1 + + + + + BRK13 + Break Transmit Character Length + 2 + 1 + read-write + + + 0 + Break character is 10, 11, or 12 bits long. + #0 + + + 1 + Break character is 13 or 14 bits long. + #1 + + + + + RWUID + Receive Wakeup Idle Detect + 3 + 1 + read-write + + + 0 + S1[IDLE] is not set upon detection of an idle character. + #0 + + + 1 + S1[IDLE] is set upon detection of an idle character. + #1 + + + + + RXINV + Receive Data Inversion + 4 + 1 + read-write + + + 0 + Receive data is not inverted. + #0 + + + 1 + Receive data is inverted. + #1 + + + + + MSBF + Most Significant Bit First + 5 + 1 + read-write + + + 0 + LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0. + #0 + + + 1 + MSB (bit8, bit7 or bit6) is the first bit that is transmitted following the start bit, depending on the setting of C1[M] and C1[PE]. Further, the first bit received after the start bit is identified as bit8, bit7, or bit6, depending on the setting of C1[M] and C1[PE]. + #1 + + + + + RXEDGIF + RxD Pin Active Edge Interrupt Flag + 6 + 1 + read-write + + + 0 + No active edge on the receive pin has occurred. + #0 + + + 1 + An active edge on the receive pin has occurred. + #1 + + + + + LBKDIF + LIN Break Detect Interrupt Flag + 7 + 1 + read-write + + + 0 + No LIN break character detected. + #0 + + + 1 + LIN break character detected. + #1 + + + + + + + C3 + UART Control Register 3 + 0x6 + 8 + read-write + 0 + 0xFF + + + PEIE + Parity Error Interrupt Enable + 0 + 1 + read-write + + + 0 + PF interrupt requests are disabled. + #0 + + + 1 + PF interrupt requests are enabled. + #1 + + + + + FEIE + Framing Error Interrupt Enable + 1 + 1 + read-write + + + 0 + FE interrupt requests are disabled. + #0 + + + 1 + FE interrupt requests are enabled. + #1 + + + + + NEIE + Noise Error Interrupt Enable + 2 + 1 + read-write + + + 0 + NF interrupt requests are disabled. + #0 + + + 1 + NF interrupt requests are enabled. + #1 + + + + + ORIE + Overrun Error Interrupt Enable + 3 + 1 + read-write + + + 0 + OR interrupts are disabled. + #0 + + + 1 + OR interrupt requests are enabled. + #1 + + + + + TXINV + Transmit Data Inversion. + 4 + 1 + read-write + + + 0 + Transmit data is not inverted. + #0 + + + 1 + Transmit data is inverted. + #1 + + + + + TXDIR + Transmitter Pin Data Direction in Single-Wire mode + 5 + 1 + read-write + + + 0 + TXD pin is an input in single wire mode. + #0 + + + 1 + TXD pin is an output in single wire mode. + #1 + + + + + T8 + Transmit Bit 8 + 6 + 1 + read-write + + + R8 + Received Bit 8 + 7 + 1 + read-only + + + + + D + UART Data Register + 0x7 + 8 + read-write + 0 + 0xFF + + + RT + Reads return the contents of the read-only receive data register and writes go to the write-only transmit data register + 0 + 8 + read-write + + + + + MA1 + UART Match Address Registers 1 + 0x8 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + MA2 + UART Match Address Registers 2 + 0x9 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + C4 + UART Control Register 4 + 0xA + 8 + read-write + 0 + 0xFF + + + BRFA + Baud Rate Fine Adjust + 0 + 5 + read-write + + + M10 + 10-bit Mode select + 5 + 1 + read-write + + + 0 + The parity bit is the ninth bit in the serial transmission. + #0 + + + 1 + The parity bit is the tenth bit in the serial transmission. + #1 + + + + + MAEN2 + Match Address Mode Enable 2 + 6 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN1 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA2 register. If no match occurs, the data is discarded. If a match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + MAEN1 + Match Address Mode Enable 1 + 7 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN2 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA1 register. If no match occurs, the data is discarded. If match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + + + C5 + UART Control Register 5 + 0xB + 8 + read-write + 0 + 0xFF + + + LBKDDMAS + LIN Break Detect DMA Select Bit + 3 + 1 + read-write + + + 0 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF interrupt signal is asserted to request an interrupt service. + #0 + + + 1 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + ILDMAS + Idle Line DMA Select + 4 + 1 + read-write + + + 0 + If C2[ILIE] and S1[IDLE] are set, the IDLE interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[ILIE] and S1[IDLE] are set, the IDLE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + RDMAS + Receiver Full DMA Select + 5 + 1 + read-write + + + 0 + If C2[RIE] and S1[RDRF] are set, the RDFR interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[RIE] and S1[RDRF] are set, the RDRF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TCDMAS + Transmission Complete DMA Select + 6 + 1 + read-write + + + 0 + If C2[TCIE] is set and the S1[TC] flag is set, the TC interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[TCIE] is set and the S1[TC] flag is set, the TC DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TDMAS + Transmitter DMA Select + 7 + 1 + read-write + + + 0 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE interrupt request signal is asserted to request interrupt service. + #0 + + + 1 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + + + ED + UART Extended Data Register + 0xC + 8 + read-only + 0 + 0xFF + + + PARITYE + The current received dataword contained in D and C3[R8] was received with a parity error. + 6 + 1 + read-only + + + 0 + The dataword was received without a parity error. + #0 + + + 1 + The dataword was received with a parity error. + #1 + + + + + NOISY + The current received dataword contained in D and C3[R8] was received with noise. + 7 + 1 + read-only + + + 0 + The dataword was received without noise. + #0 + + + 1 + The data was received with noise. + #1 + + + + + + + MODEM + UART Modem Register + 0xD + 8 + read-write + 0 + 0xFF + + + TXCTSE + Transmitter clear-to-send enable + 0 + 1 + read-write + + + 0 + CTS has no effect on the transmitter. + #0 + + + 1 + Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission. + #1 + + + + + TXRTSE + Transmitter request-to-send enable + 1 + 1 + read-write + + + 0 + The transmitter has no effect on RTS. + #0 + + + 1 + When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit. (FIFO) (FIFO) + #1 + + + + + TXRTSPOL + Transmitter request-to-send polarity + 2 + 1 + read-write + + + 0 + Transmitter RTS is active low. + #0 + + + 1 + Transmitter RTS is active high. + #1 + + + + + RXRTSE + Receiver request-to-send enable + 3 + 1 + read-write + + + 0 + The receiver has no effect on RTS. + #0 + + + 1 + RTS is deasserted if the number of characters in the receiver data register (FIFO) is equal to or greater than RWFIFO[RXWATER]. RTS is asserted when the number of characters in the receiver data register (FIFO) is less than RWFIFO[RXWATER]. + #1 + + + + + + + IR + UART Infrared Register + 0xE + 8 + read-write + 0 + 0xFF + + + TNP + Transmitter narrow pulse + 0 + 2 + read-write + + + 00 + 3/16. + #00 + + + 01 + 1/16. + #01 + + + 10 + 1/32. + #10 + + + 11 + 1/4. + #11 + + + + + IREN + Infrared enable + 2 + 1 + read-write + + + 0 + IR disabled. + #0 + + + 1 + IR enabled. + #1 + + + + + + + PFIFO + UART FIFO Parameters + 0x10 + 8 + read-write + 0 + 0xFF + + + RXFIFOSIZE + Receive FIFO. Buffer Depth + 0 + 3 + read-only + + + 000 + Receive FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Receive FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Receive FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Receive FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Receive FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Receive FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Receive FIFO/Buffer depth = 128 datawords. + #110 + + + + + RXFE + Receive FIFO Enable + 3 + 1 + read-write + + + 0 + Receive FIFO is not enabled. Buffer is depth 1. (Legacy support) + #0 + + + 1 + Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE. + #1 + + + + + TXFIFOSIZE + Transmit FIFO. Buffer Depth + 4 + 3 + read-only + + + 000 + Transmit FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Transmit FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Transmit FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Transmit FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Transmit FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Transmit FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Transmit FIFO/Buffer depth = 128 datawords. + #110 + + + + + TXFE + Transmit FIFO Enable + 7 + 1 + read-write + + + 0 + Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support). + #0 + + + 1 + Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE. + #1 + + + + + + + CFIFO + UART FIFO Control Register + 0x11 + 8 + read-write + 0 + 0xFF + + + RXUFE + Receive FIFO Underflow Interrupt Enable + 0 + 1 + read-write + + + 0 + RXUF flag does not generate an interrupt to the host. + #0 + + + 1 + RXUF flag generates an interrupt to the host. + #1 + + + + + TXOFE + Transmit FIFO Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + TXOF flag does not generate an interrupt to the host. + #0 + + + 1 + TXOF flag generates an interrupt to the host. + #1 + + + + + RXOFE + Receive FIFO Overflow Interrupt Enable + 2 + 1 + read-write + + + 0 + RXOF flag does not generate an interrupt to the host. + #0 + + + 1 + RXOF flag generates an interrupt to the host. + #1 + + + + + RXFLUSH + Receive FIFO/Buffer Flush + 6 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the receive FIFO/buffer is cleared out. + #1 + + + + + TXFLUSH + Transmit FIFO/Buffer Flush + 7 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the transmit FIFO/Buffer is cleared out. + #1 + + + + + + + SFIFO + UART FIFO Status Register + 0x12 + 8 + read-write + 0xC0 + 0xFF + + + RXUF + Receiver Buffer Underflow Flag + 0 + 1 + read-write + + + 0 + No receive buffer underflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer underflow has occurred since the last time the flag was cleared. + #1 + + + + + TXOF + Transmitter Buffer Overflow Flag + 1 + 1 + read-write + + + 0 + No transmit buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one transmit buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXOF + Receiver Buffer Overflow Flag + 2 + 1 + read-write + + + 0 + No receive buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXEMPT + Receive Buffer/FIFO Empty + 6 + 1 + read-only + + + 0 + Receive buffer is not empty. + #0 + + + 1 + Receive buffer is empty. + #1 + + + + + TXEMPT + Transmit Buffer/FIFO Empty + 7 + 1 + read-only + + + 0 + Transmit buffer is not empty. + #0 + + + 1 + Transmit buffer is empty. + #1 + + + + + + + TWFIFO + UART FIFO Transmit Watermark + 0x13 + 8 + read-write + 0 + 0xFF + + + TXWATER + Transmit Watermark + 0 + 8 + read-write + + + + + TCFIFO + UART FIFO Transmit Count + 0x14 + 8 + read-only + 0 + 0xFF + + + TXCOUNT + Transmit Counter + 0 + 8 + read-only + + + + + RWFIFO + UART FIFO Receive Watermark + 0x15 + 8 + read-write + 0x1 + 0xFF + + + RXWATER + Receive Watermark + 0 + 8 + read-write + + + + + RCFIFO + UART FIFO Receive Count + 0x16 + 8 + read-only + 0 + 0xFF + + + RXCOUNT + Receive Counter + 0 + 8 + read-only + + + + + + + UART4 + Serial Communication Interface + UART + UART4_ + 0x400EA000 + + 0 + 0x17 + registers + + + UART4_RX_TX + 66 + + + UART4_ERR + 67 + + + + BDH + UART Baud Rate Registers: High + 0 + 8 + read-write + 0 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 5 + read-write + + + SBNS + Stop Bit Number Select + 5 + 1 + read-write + + + 0 + Data frame consists of a single stop bit. + #0 + + + 1 + Data frame consists of two stop bits. + #1 + + + + + RXEDGIE + RxD Input Active Edge Interrupt Enable + 6 + 1 + read-write + + + 0 + Hardware interrupts from RXEDGIF disabled using polling. + #0 + + + 1 + RXEDGIF interrupt request enabled. + #1 + + + + + LBKDIE + LIN Break Detect Interrupt or DMA Request Enable + 7 + 1 + read-write + + + 0 + LBKDIF interrupt and DMA transfer requests disabled. + #0 + + + 1 + LBKDIF interrupt or DMA transfer requests enabled. + #1 + + + + + + + BDL + UART Baud Rate Registers: Low + 0x1 + 8 + read-write + 0x4 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 8 + read-write + + + + + C1 + UART Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + PT + Parity Type + 0 + 1 + read-write + + + 0 + Even parity. + #0 + + + 1 + Odd parity. + #1 + + + + + PE + Parity Enable + 1 + 1 + read-write + + + 0 + Parity function disabled. + #0 + + + 1 + Parity function enabled. + #1 + + + + + ILT + Idle Line Type Select + 2 + 1 + read-write + + + 0 + Idle character bit count starts after start bit. + #0 + + + 1 + Idle character bit count starts after stop bit. + #1 + + + + + WAKE + Receiver Wakeup Method Select + 3 + 1 + read-write + + + 0 + Idle line wakeup. + #0 + + + 1 + Address mark wakeup. + #1 + + + + + M + 9-bit or 8-bit Mode Select + 4 + 1 + read-write + + + 0 + Normal-start + 8 data bits (MSB/LSB first as determined by MSBF) + stop. + #0 + + + 1 + Use-start + 9 data bits (MSB/LSB first as determined by MSBF) + stop. + #1 + + + + + RSRC + Receiver Source Select + 5 + 1 + read-write + + + 0 + Selects internal loop back mode. The receiver input is internally connected to transmitter output. + #0 + + + 1 + Single wire UART mode where the receiver input is connected to the transmit pin input signal. + #1 + + + + + UARTSWAI + UART Stops in Wait Mode + 6 + 1 + read-write + + + 0 + UART clock continues to run in Wait mode. + #0 + + + 1 + UART clock freezes while CPU is in Wait mode. + #1 + + + + + LOOPS + Loop Mode Select + 7 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + Loop mode where transmitter output is internally connected to receiver input. The receiver input is determined by RSRC. + #1 + + + + + + + C2 + UART Control Register 2 + 0x3 + 8 + read-write + 0 + 0xFF + + + SBK + Send Break + 0 + 1 + read-write + + + 0 + Normal transmitter operation. + #0 + + + 1 + Queue break characters to be sent. + #1 + + + + + RWU + Receiver Wakeup Control + 1 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes the receiver by automatically clearing RWU. + #1 + + + + + RE + Receiver Enable + 2 + 1 + read-write + + + 0 + Receiver off. + #0 + + + 1 + Receiver on. + #1 + + + + + TE + Transmitter Enable + 3 + 1 + read-write + + + 0 + Transmitter off. + #0 + + + 1 + Transmitter on. + #1 + + + + + ILIE + Idle Line Interrupt DMA Transfer Enable + 4 + 1 + read-write + + + 0 + IDLE interrupt requests disabled. and DMA transfer + #0 + + + 1 + IDLE interrupt requests enabled. or DMA transfer + #1 + + + + + RIE + Receiver Full Interrupt or DMA Transfer Enable + 5 + 1 + read-write + + + 0 + RDRF interrupt and DMA transfer requests disabled. + #0 + + + 1 + RDRF interrupt or DMA transfer requests enabled. + #1 + + + + + TCIE + Transmission Complete Interrupt or DMA Transfer Enable + 6 + 1 + read-write + + + 0 + TC interrupt and DMA transfer requests disabled. + #0 + + + 1 + TC interrupt or DMA transfer requests enabled. + #1 + + + + + TIE + Transmitter Interrupt or DMA Transfer Enable. + 7 + 1 + read-write + + + 0 + TDRE interrupt and DMA transfer requests disabled. + #0 + + + 1 + TDRE interrupt or DMA transfer requests enabled. + #1 + + + + + + + S1 + UART Status Register 1 + 0x4 + 8 + read-only + 0xC0 + 0xFF + + + PF + Parity Error Flag + 0 + 1 + read-only + + + 0 + No parity error detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1, then there may be data in the receive buffer what was received with a parity error. + #0 + + + 1 + At least one dataword was received with a parity error since the last time this flag was cleared. + #1 + + + + + FE + Framing Error Flag + 1 + 1 + read-only + + + 0 + No framing error detected. + #0 + + + 1 + Framing error. + #1 + + + + + NF + Noise Flag + 2 + 1 + read-only + + + 0 + No noise detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1 then there may be data in the receiver buffer that was received with noise. + #0 + + + 1 + At least one dataword was received with noise detected since the last time the flag was cleared. + #1 + + + + + OR + Receiver Overrun Flag + 3 + 1 + read-only + + + 0 + No overrun has occurred since the last time the flag was cleared. + #0 + + + 1 + Overrun has occurred or the overrun flag has not been cleared since the last overrun occured. + #1 + + + + + IDLE + Idle Line Flag + 4 + 1 + read-only + + + 0 + Receiver input is either active now or has never become active since the IDLE flag was last cleared. + #0 + + + 1 + Receiver input has become idle or the flag has not been cleared since it last asserted. + #1 + + + + + RDRF + Receive Data Register Full Flag + 5 + 1 + read-only + + + 0 + The number of datawords in the receive buffer is less than the number indicated by RXWATER. + #0 + + + 1 + The number of datawords in the receive buffer is equal to or greater than the number indicated by RXWATER at some point in time since this flag was last cleared. + #1 + + + + + TC + Transmit Complete Flag + 6 + 1 + read-only + + + 0 + Transmitter active (sending data, a preamble, or a break). + #0 + + + 1 + Transmitter idle (transmission activity complete). + #1 + + + + + TDRE + Transmit Data Register Empty Flag + 7 + 1 + read-only + + + 0 + The amount of data in the transmit buffer is greater than the value indicated by TWFIFO[TXWATER]. + #0 + + + 1 + The amount of data in the transmit buffer is less than or equal to the value indicated by TWFIFO[TXWATER] at some point in time since the flag has been cleared. + #1 + + + + + + + S2 + UART Status Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + RAF + Receiver Active Flag + 0 + 1 + read-only + + + 0 + UART receiver idle/inactive waiting for a start bit. + #0 + + + 1 + UART receiver active, RxD input not idle. + #1 + + + + + LBKDE + LIN Break Detection Enable + 1 + 1 + read-write + + + 0 + Break character detection is disabled. + #0 + + + 1 + Break character is detected at length of 11 bit times if C1[M] = 0 or 12 bits time if C1[M] = 1. + #1 + + + + + BRK13 + Break Transmit Character Length + 2 + 1 + read-write + + + 0 + Break character is 10, 11, or 12 bits long. + #0 + + + 1 + Break character is 13 or 14 bits long. + #1 + + + + + RWUID + Receive Wakeup Idle Detect + 3 + 1 + read-write + + + 0 + S1[IDLE] is not set upon detection of an idle character. + #0 + + + 1 + S1[IDLE] is set upon detection of an idle character. + #1 + + + + + RXINV + Receive Data Inversion + 4 + 1 + read-write + + + 0 + Receive data is not inverted. + #0 + + + 1 + Receive data is inverted. + #1 + + + + + MSBF + Most Significant Bit First + 5 + 1 + read-write + + + 0 + LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0. + #0 + + + 1 + MSB (bit8, bit7 or bit6) is the first bit that is transmitted following the start bit, depending on the setting of C1[M] and C1[PE]. Further, the first bit received after the start bit is identified as bit8, bit7, or bit6, depending on the setting of C1[M] and C1[PE]. + #1 + + + + + RXEDGIF + RxD Pin Active Edge Interrupt Flag + 6 + 1 + read-write + + + 0 + No active edge on the receive pin has occurred. + #0 + + + 1 + An active edge on the receive pin has occurred. + #1 + + + + + LBKDIF + LIN Break Detect Interrupt Flag + 7 + 1 + read-write + + + 0 + No LIN break character detected. + #0 + + + 1 + LIN break character detected. + #1 + + + + + + + C3 + UART Control Register 3 + 0x6 + 8 + read-write + 0 + 0xFF + + + PEIE + Parity Error Interrupt Enable + 0 + 1 + read-write + + + 0 + PF interrupt requests are disabled. + #0 + + + 1 + PF interrupt requests are enabled. + #1 + + + + + FEIE + Framing Error Interrupt Enable + 1 + 1 + read-write + + + 0 + FE interrupt requests are disabled. + #0 + + + 1 + FE interrupt requests are enabled. + #1 + + + + + NEIE + Noise Error Interrupt Enable + 2 + 1 + read-write + + + 0 + NF interrupt requests are disabled. + #0 + + + 1 + NF interrupt requests are enabled. + #1 + + + + + ORIE + Overrun Error Interrupt Enable + 3 + 1 + read-write + + + 0 + OR interrupts are disabled. + #0 + + + 1 + OR interrupt requests are enabled. + #1 + + + + + TXINV + Transmit Data Inversion. + 4 + 1 + read-write + + + 0 + Transmit data is not inverted. + #0 + + + 1 + Transmit data is inverted. + #1 + + + + + TXDIR + Transmitter Pin Data Direction in Single-Wire mode + 5 + 1 + read-write + + + 0 + TXD pin is an input in single wire mode. + #0 + + + 1 + TXD pin is an output in single wire mode. + #1 + + + + + T8 + Transmit Bit 8 + 6 + 1 + read-write + + + R8 + Received Bit 8 + 7 + 1 + read-only + + + + + D + UART Data Register + 0x7 + 8 + read-write + 0 + 0xFF + + + RT + Reads return the contents of the read-only receive data register and writes go to the write-only transmit data register + 0 + 8 + read-write + + + + + MA1 + UART Match Address Registers 1 + 0x8 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + MA2 + UART Match Address Registers 2 + 0x9 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + C4 + UART Control Register 4 + 0xA + 8 + read-write + 0 + 0xFF + + + BRFA + Baud Rate Fine Adjust + 0 + 5 + read-write + + + M10 + 10-bit Mode select + 5 + 1 + read-write + + + 0 + The parity bit is the ninth bit in the serial transmission. + #0 + + + 1 + The parity bit is the tenth bit in the serial transmission. + #1 + + + + + MAEN2 + Match Address Mode Enable 2 + 6 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN1 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA2 register. If no match occurs, the data is discarded. If a match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + MAEN1 + Match Address Mode Enable 1 + 7 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN2 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA1 register. If no match occurs, the data is discarded. If match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + + + C5 + UART Control Register 5 + 0xB + 8 + read-write + 0 + 0xFF + + + LBKDDMAS + LIN Break Detect DMA Select Bit + 3 + 1 + read-write + + + 0 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF interrupt signal is asserted to request an interrupt service. + #0 + + + 1 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + ILDMAS + Idle Line DMA Select + 4 + 1 + read-write + + + 0 + If C2[ILIE] and S1[IDLE] are set, the IDLE interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[ILIE] and S1[IDLE] are set, the IDLE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + RDMAS + Receiver Full DMA Select + 5 + 1 + read-write + + + 0 + If C2[RIE] and S1[RDRF] are set, the RDFR interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[RIE] and S1[RDRF] are set, the RDRF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TCDMAS + Transmission Complete DMA Select + 6 + 1 + read-write + + + 0 + If C2[TCIE] is set and the S1[TC] flag is set, the TC interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[TCIE] is set and the S1[TC] flag is set, the TC DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TDMAS + Transmitter DMA Select + 7 + 1 + read-write + + + 0 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE interrupt request signal is asserted to request interrupt service. + #0 + + + 1 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + + + ED + UART Extended Data Register + 0xC + 8 + read-only + 0 + 0xFF + + + PARITYE + The current received dataword contained in D and C3[R8] was received with a parity error. + 6 + 1 + read-only + + + 0 + The dataword was received without a parity error. + #0 + + + 1 + The dataword was received with a parity error. + #1 + + + + + NOISY + The current received dataword contained in D and C3[R8] was received with noise. + 7 + 1 + read-only + + + 0 + The dataword was received without noise. + #0 + + + 1 + The data was received with noise. + #1 + + + + + + + MODEM + UART Modem Register + 0xD + 8 + read-write + 0 + 0xFF + + + TXCTSE + Transmitter clear-to-send enable + 0 + 1 + read-write + + + 0 + CTS has no effect on the transmitter. + #0 + + + 1 + Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission. + #1 + + + + + TXRTSE + Transmitter request-to-send enable + 1 + 1 + read-write + + + 0 + The transmitter has no effect on RTS. + #0 + + + 1 + When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit. (FIFO) (FIFO) + #1 + + + + + TXRTSPOL + Transmitter request-to-send polarity + 2 + 1 + read-write + + + 0 + Transmitter RTS is active low. + #0 + + + 1 + Transmitter RTS is active high. + #1 + + + + + RXRTSE + Receiver request-to-send enable + 3 + 1 + read-write + + + 0 + The receiver has no effect on RTS. + #0 + + + 1 + RTS is deasserted if the number of characters in the receiver data register (FIFO) is equal to or greater than RWFIFO[RXWATER]. RTS is asserted when the number of characters in the receiver data register (FIFO) is less than RWFIFO[RXWATER]. + #1 + + + + + + + IR + UART Infrared Register + 0xE + 8 + read-write + 0 + 0xFF + + + TNP + Transmitter narrow pulse + 0 + 2 + read-write + + + 00 + 3/16. + #00 + + + 01 + 1/16. + #01 + + + 10 + 1/32. + #10 + + + 11 + 1/4. + #11 + + + + + IREN + Infrared enable + 2 + 1 + read-write + + + 0 + IR disabled. + #0 + + + 1 + IR enabled. + #1 + + + + + + + PFIFO + UART FIFO Parameters + 0x10 + 8 + read-write + 0 + 0xFF + + + RXFIFOSIZE + Receive FIFO. Buffer Depth + 0 + 3 + read-only + + + 000 + Receive FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Receive FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Receive FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Receive FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Receive FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Receive FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Receive FIFO/Buffer depth = 128 datawords. + #110 + + + + + RXFE + Receive FIFO Enable + 3 + 1 + read-write + + + 0 + Receive FIFO is not enabled. Buffer is depth 1. (Legacy support) + #0 + + + 1 + Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE. + #1 + + + + + TXFIFOSIZE + Transmit FIFO. Buffer Depth + 4 + 3 + read-only + + + 000 + Transmit FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Transmit FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Transmit FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Transmit FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Transmit FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Transmit FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Transmit FIFO/Buffer depth = 128 datawords. + #110 + + + + + TXFE + Transmit FIFO Enable + 7 + 1 + read-write + + + 0 + Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support). + #0 + + + 1 + Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE. + #1 + + + + + + + CFIFO + UART FIFO Control Register + 0x11 + 8 + read-write + 0 + 0xFF + + + RXUFE + Receive FIFO Underflow Interrupt Enable + 0 + 1 + read-write + + + 0 + RXUF flag does not generate an interrupt to the host. + #0 + + + 1 + RXUF flag generates an interrupt to the host. + #1 + + + + + TXOFE + Transmit FIFO Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + TXOF flag does not generate an interrupt to the host. + #0 + + + 1 + TXOF flag generates an interrupt to the host. + #1 + + + + + RXOFE + Receive FIFO Overflow Interrupt Enable + 2 + 1 + read-write + + + 0 + RXOF flag does not generate an interrupt to the host. + #0 + + + 1 + RXOF flag generates an interrupt to the host. + #1 + + + + + RXFLUSH + Receive FIFO/Buffer Flush + 6 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the receive FIFO/buffer is cleared out. + #1 + + + + + TXFLUSH + Transmit FIFO/Buffer Flush + 7 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the transmit FIFO/Buffer is cleared out. + #1 + + + + + + + SFIFO + UART FIFO Status Register + 0x12 + 8 + read-write + 0xC0 + 0xFF + + + RXUF + Receiver Buffer Underflow Flag + 0 + 1 + read-write + + + 0 + No receive buffer underflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer underflow has occurred since the last time the flag was cleared. + #1 + + + + + TXOF + Transmitter Buffer Overflow Flag + 1 + 1 + read-write + + + 0 + No transmit buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one transmit buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXOF + Receiver Buffer Overflow Flag + 2 + 1 + read-write + + + 0 + No receive buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXEMPT + Receive Buffer/FIFO Empty + 6 + 1 + read-only + + + 0 + Receive buffer is not empty. + #0 + + + 1 + Receive buffer is empty. + #1 + + + + + TXEMPT + Transmit Buffer/FIFO Empty + 7 + 1 + read-only + + + 0 + Transmit buffer is not empty. + #0 + + + 1 + Transmit buffer is empty. + #1 + + + + + + + TWFIFO + UART FIFO Transmit Watermark + 0x13 + 8 + read-write + 0 + 0xFF + + + TXWATER + Transmit Watermark + 0 + 8 + read-write + + + + + TCFIFO + UART FIFO Transmit Count + 0x14 + 8 + read-only + 0 + 0xFF + + + TXCOUNT + Transmit Counter + 0 + 8 + read-only + + + + + RWFIFO + UART FIFO Receive Watermark + 0x15 + 8 + read-write + 0x1 + 0xFF + + + RXWATER + Receive Watermark + 0 + 8 + read-write + + + + + RCFIFO + UART FIFO Receive Count + 0x16 + 8 + read-only + 0 + 0xFF + + + RXCOUNT + Receive Counter + 0 + 8 + read-only + + + + + + + UART5 + Serial Communication Interface + UART + UART5_ + 0x400EB000 + + 0 + 0x17 + registers + + + UART5_RX_TX + 68 + + + UART5_ERR + 69 + + + + BDH + UART Baud Rate Registers: High + 0 + 8 + read-write + 0 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 5 + read-write + + + SBNS + Stop Bit Number Select + 5 + 1 + read-write + + + 0 + Data frame consists of a single stop bit. + #0 + + + 1 + Data frame consists of two stop bits. + #1 + + + + + RXEDGIE + RxD Input Active Edge Interrupt Enable + 6 + 1 + read-write + + + 0 + Hardware interrupts from RXEDGIF disabled using polling. + #0 + + + 1 + RXEDGIF interrupt request enabled. + #1 + + + + + LBKDIE + LIN Break Detect Interrupt or DMA Request Enable + 7 + 1 + read-write + + + 0 + LBKDIF interrupt and DMA transfer requests disabled. + #0 + + + 1 + LBKDIF interrupt or DMA transfer requests enabled. + #1 + + + + + + + BDL + UART Baud Rate Registers: Low + 0x1 + 8 + read-write + 0x4 + 0xFF + + + SBR + UART Baud Rate Bits + 0 + 8 + read-write + + + + + C1 + UART Control Register 1 + 0x2 + 8 + read-write + 0 + 0xFF + + + PT + Parity Type + 0 + 1 + read-write + + + 0 + Even parity. + #0 + + + 1 + Odd parity. + #1 + + + + + PE + Parity Enable + 1 + 1 + read-write + + + 0 + Parity function disabled. + #0 + + + 1 + Parity function enabled. + #1 + + + + + ILT + Idle Line Type Select + 2 + 1 + read-write + + + 0 + Idle character bit count starts after start bit. + #0 + + + 1 + Idle character bit count starts after stop bit. + #1 + + + + + WAKE + Receiver Wakeup Method Select + 3 + 1 + read-write + + + 0 + Idle line wakeup. + #0 + + + 1 + Address mark wakeup. + #1 + + + + + M + 9-bit or 8-bit Mode Select + 4 + 1 + read-write + + + 0 + Normal-start + 8 data bits (MSB/LSB first as determined by MSBF) + stop. + #0 + + + 1 + Use-start + 9 data bits (MSB/LSB first as determined by MSBF) + stop. + #1 + + + + + RSRC + Receiver Source Select + 5 + 1 + read-write + + + 0 + Selects internal loop back mode. The receiver input is internally connected to transmitter output. + #0 + + + 1 + Single wire UART mode where the receiver input is connected to the transmit pin input signal. + #1 + + + + + UARTSWAI + UART Stops in Wait Mode + 6 + 1 + read-write + + + 0 + UART clock continues to run in Wait mode. + #0 + + + 1 + UART clock freezes while CPU is in Wait mode. + #1 + + + + + LOOPS + Loop Mode Select + 7 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + Loop mode where transmitter output is internally connected to receiver input. The receiver input is determined by RSRC. + #1 + + + + + + + C2 + UART Control Register 2 + 0x3 + 8 + read-write + 0 + 0xFF + + + SBK + Send Break + 0 + 1 + read-write + + + 0 + Normal transmitter operation. + #0 + + + 1 + Queue break characters to be sent. + #1 + + + + + RWU + Receiver Wakeup Control + 1 + 1 + read-write + + + 0 + Normal operation. + #0 + + + 1 + RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes the receiver by automatically clearing RWU. + #1 + + + + + RE + Receiver Enable + 2 + 1 + read-write + + + 0 + Receiver off. + #0 + + + 1 + Receiver on. + #1 + + + + + TE + Transmitter Enable + 3 + 1 + read-write + + + 0 + Transmitter off. + #0 + + + 1 + Transmitter on. + #1 + + + + + ILIE + Idle Line Interrupt DMA Transfer Enable + 4 + 1 + read-write + + + 0 + IDLE interrupt requests disabled. and DMA transfer + #0 + + + 1 + IDLE interrupt requests enabled. or DMA transfer + #1 + + + + + RIE + Receiver Full Interrupt or DMA Transfer Enable + 5 + 1 + read-write + + + 0 + RDRF interrupt and DMA transfer requests disabled. + #0 + + + 1 + RDRF interrupt or DMA transfer requests enabled. + #1 + + + + + TCIE + Transmission Complete Interrupt or DMA Transfer Enable + 6 + 1 + read-write + + + 0 + TC interrupt and DMA transfer requests disabled. + #0 + + + 1 + TC interrupt or DMA transfer requests enabled. + #1 + + + + + TIE + Transmitter Interrupt or DMA Transfer Enable. + 7 + 1 + read-write + + + 0 + TDRE interrupt and DMA transfer requests disabled. + #0 + + + 1 + TDRE interrupt or DMA transfer requests enabled. + #1 + + + + + + + S1 + UART Status Register 1 + 0x4 + 8 + read-only + 0xC0 + 0xFF + + + PF + Parity Error Flag + 0 + 1 + read-only + + + 0 + No parity error detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1, then there may be data in the receive buffer what was received with a parity error. + #0 + + + 1 + At least one dataword was received with a parity error since the last time this flag was cleared. + #1 + + + + + FE + Framing Error Flag + 1 + 1 + read-only + + + 0 + No framing error detected. + #0 + + + 1 + Framing error. + #1 + + + + + NF + Noise Flag + 2 + 1 + read-only + + + 0 + No noise detected since the last time this flag was cleared. If the receive buffer has a depth greater than 1 then there may be data in the receiver buffer that was received with noise. + #0 + + + 1 + At least one dataword was received with noise detected since the last time the flag was cleared. + #1 + + + + + OR + Receiver Overrun Flag + 3 + 1 + read-only + + + 0 + No overrun has occurred since the last time the flag was cleared. + #0 + + + 1 + Overrun has occurred or the overrun flag has not been cleared since the last overrun occured. + #1 + + + + + IDLE + Idle Line Flag + 4 + 1 + read-only + + + 0 + Receiver input is either active now or has never become active since the IDLE flag was last cleared. + #0 + + + 1 + Receiver input has become idle or the flag has not been cleared since it last asserted. + #1 + + + + + RDRF + Receive Data Register Full Flag + 5 + 1 + read-only + + + 0 + The number of datawords in the receive buffer is less than the number indicated by RXWATER. + #0 + + + 1 + The number of datawords in the receive buffer is equal to or greater than the number indicated by RXWATER at some point in time since this flag was last cleared. + #1 + + + + + TC + Transmit Complete Flag + 6 + 1 + read-only + + + 0 + Transmitter active (sending data, a preamble, or a break). + #0 + + + 1 + Transmitter idle (transmission activity complete). + #1 + + + + + TDRE + Transmit Data Register Empty Flag + 7 + 1 + read-only + + + 0 + The amount of data in the transmit buffer is greater than the value indicated by TWFIFO[TXWATER]. + #0 + + + 1 + The amount of data in the transmit buffer is less than or equal to the value indicated by TWFIFO[TXWATER] at some point in time since the flag has been cleared. + #1 + + + + + + + S2 + UART Status Register 2 + 0x5 + 8 + read-write + 0 + 0xFF + + + RAF + Receiver Active Flag + 0 + 1 + read-only + + + 0 + UART receiver idle/inactive waiting for a start bit. + #0 + + + 1 + UART receiver active, RxD input not idle. + #1 + + + + + LBKDE + LIN Break Detection Enable + 1 + 1 + read-write + + + 0 + Break character detection is disabled. + #0 + + + 1 + Break character is detected at length of 11 bit times if C1[M] = 0 or 12 bits time if C1[M] = 1. + #1 + + + + + BRK13 + Break Transmit Character Length + 2 + 1 + read-write + + + 0 + Break character is 10, 11, or 12 bits long. + #0 + + + 1 + Break character is 13 or 14 bits long. + #1 + + + + + RWUID + Receive Wakeup Idle Detect + 3 + 1 + read-write + + + 0 + S1[IDLE] is not set upon detection of an idle character. + #0 + + + 1 + S1[IDLE] is set upon detection of an idle character. + #1 + + + + + RXINV + Receive Data Inversion + 4 + 1 + read-write + + + 0 + Receive data is not inverted. + #0 + + + 1 + Receive data is inverted. + #1 + + + + + MSBF + Most Significant Bit First + 5 + 1 + read-write + + + 0 + LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0. + #0 + + + 1 + MSB (bit8, bit7 or bit6) is the first bit that is transmitted following the start bit, depending on the setting of C1[M] and C1[PE]. Further, the first bit received after the start bit is identified as bit8, bit7, or bit6, depending on the setting of C1[M] and C1[PE]. + #1 + + + + + RXEDGIF + RxD Pin Active Edge Interrupt Flag + 6 + 1 + read-write + + + 0 + No active edge on the receive pin has occurred. + #0 + + + 1 + An active edge on the receive pin has occurred. + #1 + + + + + LBKDIF + LIN Break Detect Interrupt Flag + 7 + 1 + read-write + + + 0 + No LIN break character detected. + #0 + + + 1 + LIN break character detected. + #1 + + + + + + + C3 + UART Control Register 3 + 0x6 + 8 + read-write + 0 + 0xFF + + + PEIE + Parity Error Interrupt Enable + 0 + 1 + read-write + + + 0 + PF interrupt requests are disabled. + #0 + + + 1 + PF interrupt requests are enabled. + #1 + + + + + FEIE + Framing Error Interrupt Enable + 1 + 1 + read-write + + + 0 + FE interrupt requests are disabled. + #0 + + + 1 + FE interrupt requests are enabled. + #1 + + + + + NEIE + Noise Error Interrupt Enable + 2 + 1 + read-write + + + 0 + NF interrupt requests are disabled. + #0 + + + 1 + NF interrupt requests are enabled. + #1 + + + + + ORIE + Overrun Error Interrupt Enable + 3 + 1 + read-write + + + 0 + OR interrupts are disabled. + #0 + + + 1 + OR interrupt requests are enabled. + #1 + + + + + TXINV + Transmit Data Inversion. + 4 + 1 + read-write + + + 0 + Transmit data is not inverted. + #0 + + + 1 + Transmit data is inverted. + #1 + + + + + TXDIR + Transmitter Pin Data Direction in Single-Wire mode + 5 + 1 + read-write + + + 0 + TXD pin is an input in single wire mode. + #0 + + + 1 + TXD pin is an output in single wire mode. + #1 + + + + + T8 + Transmit Bit 8 + 6 + 1 + read-write + + + R8 + Received Bit 8 + 7 + 1 + read-only + + + + + D + UART Data Register + 0x7 + 8 + read-write + 0 + 0xFF + + + RT + Reads return the contents of the read-only receive data register and writes go to the write-only transmit data register + 0 + 8 + read-write + + + + + MA1 + UART Match Address Registers 1 + 0x8 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + MA2 + UART Match Address Registers 2 + 0x9 + 8 + read-write + 0 + 0xFF + + + MA + Match Address + 0 + 8 + read-write + + + + + C4 + UART Control Register 4 + 0xA + 8 + read-write + 0 + 0xFF + + + BRFA + Baud Rate Fine Adjust + 0 + 5 + read-write + + + M10 + 10-bit Mode select + 5 + 1 + read-write + + + 0 + The parity bit is the ninth bit in the serial transmission. + #0 + + + 1 + The parity bit is the tenth bit in the serial transmission. + #1 + + + + + MAEN2 + Match Address Mode Enable 2 + 6 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN1 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA2 register. If no match occurs, the data is discarded. If a match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + MAEN1 + Match Address Mode Enable 1 + 7 + 1 + read-write + + + 0 + All data received is transferred to the data buffer if MAEN2 is cleared. + #0 + + + 1 + All data received with the most significant bit cleared, is discarded. All data received with the most significant bit set, is compared with contents of MA1 register. If no match occurs, the data is discarded. If match occurs, data is transferred to the data buffer. This field must be cleared when C7816[ISO7816E] is set/enabled. + #1 + + + + + + + C5 + UART Control Register 5 + 0xB + 8 + read-write + 0 + 0xFF + + + LBKDDMAS + LIN Break Detect DMA Select Bit + 3 + 1 + read-write + + + 0 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF interrupt signal is asserted to request an interrupt service. + #0 + + + 1 + If BDH[LBKDIE] and S2[LBKDIF] are set, the LBKDIF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + ILDMAS + Idle Line DMA Select + 4 + 1 + read-write + + + 0 + If C2[ILIE] and S1[IDLE] are set, the IDLE interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[ILIE] and S1[IDLE] are set, the IDLE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + RDMAS + Receiver Full DMA Select + 5 + 1 + read-write + + + 0 + If C2[RIE] and S1[RDRF] are set, the RDFR interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[RIE] and S1[RDRF] are set, the RDRF DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TCDMAS + Transmission Complete DMA Select + 6 + 1 + read-write + + + 0 + If C2[TCIE] is set and the S1[TC] flag is set, the TC interrupt request signal is asserted to request an interrupt service. + #0 + + + 1 + If C2[TCIE] is set and the S1[TC] flag is set, the TC DMA request signal is asserted to request a DMA transfer. + #1 + + + + + TDMAS + Transmitter DMA Select + 7 + 1 + read-write + + + 0 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE interrupt request signal is asserted to request interrupt service. + #0 + + + 1 + If C2[TIE] is set and the S1[TDRE] flag is set, the TDRE DMA request signal is asserted to request a DMA transfer. + #1 + + + + + + + ED + UART Extended Data Register + 0xC + 8 + read-only + 0 + 0xFF + + + PARITYE + The current received dataword contained in D and C3[R8] was received with a parity error. + 6 + 1 + read-only + + + 0 + The dataword was received without a parity error. + #0 + + + 1 + The dataword was received with a parity error. + #1 + + + + + NOISY + The current received dataword contained in D and C3[R8] was received with noise. + 7 + 1 + read-only + + + 0 + The dataword was received without noise. + #0 + + + 1 + The data was received with noise. + #1 + + + + + + + MODEM + UART Modem Register + 0xD + 8 + read-write + 0 + 0xFF + + + TXCTSE + Transmitter clear-to-send enable + 0 + 1 + read-write + + + 0 + CTS has no effect on the transmitter. + #0 + + + 1 + Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission. + #1 + + + + + TXRTSE + Transmitter request-to-send enable + 1 + 1 + read-write + + + 0 + The transmitter has no effect on RTS. + #0 + + + 1 + When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit. (FIFO) (FIFO) + #1 + + + + + TXRTSPOL + Transmitter request-to-send polarity + 2 + 1 + read-write + + + 0 + Transmitter RTS is active low. + #0 + + + 1 + Transmitter RTS is active high. + #1 + + + + + RXRTSE + Receiver request-to-send enable + 3 + 1 + read-write + + + 0 + The receiver has no effect on RTS. + #0 + + + 1 + RTS is deasserted if the number of characters in the receiver data register (FIFO) is equal to or greater than RWFIFO[RXWATER]. RTS is asserted when the number of characters in the receiver data register (FIFO) is less than RWFIFO[RXWATER]. + #1 + + + + + + + IR + UART Infrared Register + 0xE + 8 + read-write + 0 + 0xFF + + + TNP + Transmitter narrow pulse + 0 + 2 + read-write + + + 00 + 3/16. + #00 + + + 01 + 1/16. + #01 + + + 10 + 1/32. + #10 + + + 11 + 1/4. + #11 + + + + + IREN + Infrared enable + 2 + 1 + read-write + + + 0 + IR disabled. + #0 + + + 1 + IR enabled. + #1 + + + + + + + PFIFO + UART FIFO Parameters + 0x10 + 8 + read-write + 0 + 0xFF + + + RXFIFOSIZE + Receive FIFO. Buffer Depth + 0 + 3 + read-only + + + 000 + Receive FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Receive FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Receive FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Receive FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Receive FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Receive FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Receive FIFO/Buffer depth = 128 datawords. + #110 + + + + + RXFE + Receive FIFO Enable + 3 + 1 + read-write + + + 0 + Receive FIFO is not enabled. Buffer is depth 1. (Legacy support) + #0 + + + 1 + Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE. + #1 + + + + + TXFIFOSIZE + Transmit FIFO. Buffer Depth + 4 + 3 + read-only + + + 000 + Transmit FIFO/Buffer depth = 1 dataword. + #000 + + + 001 + Transmit FIFO/Buffer depth = 4 datawords. + #001 + + + 010 + Transmit FIFO/Buffer depth = 8 datawords. + #010 + + + 011 + Transmit FIFO/Buffer depth = 16 datawords. + #011 + + + 100 + Transmit FIFO/Buffer depth = 32 datawords. + #100 + + + 101 + Transmit FIFO/Buffer depth = 64 datawords. + #101 + + + 110 + Transmit FIFO/Buffer depth = 128 datawords. + #110 + + + + + TXFE + Transmit FIFO Enable + 7 + 1 + read-write + + + 0 + Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support). + #0 + + + 1 + Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE. + #1 + + + + + + + CFIFO + UART FIFO Control Register + 0x11 + 8 + read-write + 0 + 0xFF + + + RXUFE + Receive FIFO Underflow Interrupt Enable + 0 + 1 + read-write + + + 0 + RXUF flag does not generate an interrupt to the host. + #0 + + + 1 + RXUF flag generates an interrupt to the host. + #1 + + + + + TXOFE + Transmit FIFO Overflow Interrupt Enable + 1 + 1 + read-write + + + 0 + TXOF flag does not generate an interrupt to the host. + #0 + + + 1 + TXOF flag generates an interrupt to the host. + #1 + + + + + RXOFE + Receive FIFO Overflow Interrupt Enable + 2 + 1 + read-write + + + 0 + RXOF flag does not generate an interrupt to the host. + #0 + + + 1 + RXOF flag generates an interrupt to the host. + #1 + + + + + RXFLUSH + Receive FIFO/Buffer Flush + 6 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the receive FIFO/buffer is cleared out. + #1 + + + + + TXFLUSH + Transmit FIFO/Buffer Flush + 7 + 1 + write-only + + + 0 + No flush operation occurs. + #0 + + + 1 + All data in the transmit FIFO/Buffer is cleared out. + #1 + + + + + + + SFIFO + UART FIFO Status Register + 0x12 + 8 + read-write + 0xC0 + 0xFF + + + RXUF + Receiver Buffer Underflow Flag + 0 + 1 + read-write + + + 0 + No receive buffer underflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer underflow has occurred since the last time the flag was cleared. + #1 + + + + + TXOF + Transmitter Buffer Overflow Flag + 1 + 1 + read-write + + + 0 + No transmit buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one transmit buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXOF + Receiver Buffer Overflow Flag + 2 + 1 + read-write + + + 0 + No receive buffer overflow has occurred since the last time the flag was cleared. + #0 + + + 1 + At least one receive buffer overflow has occurred since the last time the flag was cleared. + #1 + + + + + RXEMPT + Receive Buffer/FIFO Empty + 6 + 1 + read-only + + + 0 + Receive buffer is not empty. + #0 + + + 1 + Receive buffer is empty. + #1 + + + + + TXEMPT + Transmit Buffer/FIFO Empty + 7 + 1 + read-only + + + 0 + Transmit buffer is not empty. + #0 + + + 1 + Transmit buffer is empty. + #1 + + + + + + + TWFIFO + UART FIFO Transmit Watermark + 0x13 + 8 + read-write + 0 + 0xFF + + + TXWATER + Transmit Watermark + 0 + 8 + read-write + + + + + TCFIFO + UART FIFO Transmit Count + 0x14 + 8 + read-only + 0 + 0xFF + + + TXCOUNT + Transmit Counter + 0 + 8 + read-only + + + + + RWFIFO + UART FIFO Receive Watermark + 0x15 + 8 + read-write + 0x1 + 0xFF + + + RXWATER + Receive Watermark + 0 + 8 + read-write + + + + + RCFIFO + UART FIFO Receive Count + 0x16 + 8 + read-only + 0 + 0xFF + + + RXCOUNT + Receive Counter + 0 + 8 + read-only + + + + + + + USB0 + Universal Serial Bus, OTG Capable Controller + USB0_ + 0x40072000 + + 0 + 0x15D + registers + + + USB0 + 53 + + + + PERID + Peripheral ID register + 0 + 8 + read-only + 0x4 + 0xFF + + + ID + Peripheral Identification + 0 + 6 + read-only + + + + + IDCOMP + Peripheral ID Complement register + 0x4 + 8 + read-only + 0xFB + 0xFF + + + NID + Ones' complement of PERID[ID]. bits. + 0 + 6 + read-only + + + + + REV + Peripheral Revision register + 0x8 + 8 + read-only + 0x33 + 0xFF + + + REV + Revision + 0 + 8 + read-only + + + + + ADDINFO + Peripheral Additional Info register + 0xC + 8 + read-only + 0x1 + 0xFF + + + IEHOST + This bit is set if host mode is enabled. + 0 + 1 + read-only + + + IRQNUM + Assigned Interrupt Request Number + 3 + 5 + read-only + + + + + OTGISTAT + OTG Interrupt Status register + 0x10 + 8 + read-write + 0 + 0xFF + + + AVBUSCHG + This bit is set when a change in VBUS is detected on an A device. + 0 + 1 + read-write + + + B_SESS_CHG + This bit is set when a change in VBUS is detected on a B device. + 2 + 1 + read-write + + + SESSVLDCHG + This bit is set when a change in VBUS is detected indicating a session valid or a session no longer valid + 3 + 1 + read-write + + + LINE_STATE_CHG + This interrupt is set when the USB line state (CTL[SE0] and CTL[JSTATE] bits) are stable without change for 1 millisecond, and the value of the line state is different from the last time when the line state was stable + 5 + 1 + read-write + + + ONEMSEC + This bit is set when the 1 millisecond timer expires + 6 + 1 + read-write + + + IDCHG + This bit is set when a change in the ID Signal from the USB connector is sensed. + 7 + 1 + read-write + + + + + OTGICR + OTG Interrupt Control register + 0x14 + 8 + read-write + 0 + 0xFF + + + AVBUSEN + A VBUS Valid Interrupt Enable + 0 + 1 + read-write + + + 0 + Disables the AVBUSCHG interrupt. + #0 + + + 1 + Enables the AVBUSCHG interrupt. + #1 + + + + + BSESSEN + B Session END Interrupt Enable + 2 + 1 + read-write + + + 0 + Disables the B_SESS_CHG interrupt. + #0 + + + 1 + Enables the B_SESS_CHG interrupt. + #1 + + + + + SESSVLDEN + Session Valid Interrupt Enable + 3 + 1 + read-write + + + 0 + Disables the SESSVLDCHG interrupt. + #0 + + + 1 + Enables the SESSVLDCHG interrupt. + #1 + + + + + LINESTATEEN + Line State Change Interrupt Enable + 5 + 1 + read-write + + + 0 + Disables the LINE_STAT_CHG interrupt. + #0 + + + 1 + Enables the LINE_STAT_CHG interrupt. + #1 + + + + + ONEMSECEN + One Millisecond Interrupt Enable + 6 + 1 + read-write + + + 0 + Diables the 1ms timer interrupt. + #0 + + + 1 + Enables the 1ms timer interrupt. + #1 + + + + + IDEN + ID Interrupt Enable + 7 + 1 + read-write + + + 0 + The ID interrupt is disabled + #0 + + + 1 + The ID interrupt is enabled + #1 + + + + + + + OTGSTAT + OTG Status register + 0x18 + 8 + read-write + 0 + 0xFF + + + AVBUSVLD + A VBUS Valid + 0 + 1 + read-write + + + 0 + The VBUS voltage is below the A VBUS Valid threshold. + #0 + + + 1 + The VBUS voltage is above the A VBUS Valid threshold. + #1 + + + + + BSESSEND + B Session End + 2 + 1 + read-write + + + 0 + The VBUS voltage is above the B session end threshold. + #0 + + + 1 + The VBUS voltage is below the B session end threshold. + #1 + + + + + SESS_VLD + Session Valid + 3 + 1 + read-write + + + 0 + The VBUS voltage is below the B session valid threshold + #0 + + + 1 + The VBUS voltage is above the B session valid threshold. + #1 + + + + + LINESTATESTABLE + Indicates that the internal signals that control the LINE_STATE_CHG field of OTGISTAT are stable for at least 1 millisecond + 5 + 1 + read-write + + + 0 + The LINE_STAT_CHG bit is not yet stable. + #0 + + + 1 + The LINE_STAT_CHG bit has been debounced and is stable. + #1 + + + + + ONEMSECEN + This bit is reserved for the 1ms count, but it is not useful to software. + 6 + 1 + read-write + + + ID + Indicates the current state of the ID pin on the USB connector + 7 + 1 + read-write + + + 0 + Indicates a Type A cable is plugged into the USB connector. + #0 + + + 1 + Indicates no cable is attached or a Type B cable is plugged into the USB connector. + #1 + + + + + + + OTGCTL + OTG Control register + 0x1C + 8 + read-write + 0 + 0xFF + + + OTGEN + On-The-Go pullup/pulldown resistor enable + 2 + 1 + read-write + + + 0 + If USB_EN is 1 and HOST_MODE is 0 in the Control Register (CTL), then the D+ Data Line pull-up resistors are enabled. If HOST_MODE is 1 the D+ and D- Data Line pull-down resistors are engaged. + #0 + + + 1 + The pull-up and pull-down controls in this register are used. + #1 + + + + + DMLOW + D- Data Line pull-down resistor enable + 4 + 1 + read-write + + + 0 + D- pulldown resistor is not enabled. + #0 + + + 1 + D- pulldown resistor is enabled. + #1 + + + + + DPLOW + D+ Data Line pull-down resistor enable + 5 + 1 + read-write + + + 0 + D+ pulldown resistor is not enabled. + #0 + + + 1 + D+ pulldown resistor is enabled. + #1 + + + + + DPHIGH + D+ Data Line pullup resistor enable + 7 + 1 + read-write + + + 0 + D+ pullup resistor is not enabled + #0 + + + 1 + D+ pullup resistor is enabled + #1 + + + + + + + ISTAT + Interrupt Status register + 0x80 + 8 + read-write + 0 + 0xFF + + + USBRST + This bit is set when the USB Module has decoded a valid USB reset + 0 + 1 + read-write + + + ERROR + This bit is set when any of the error conditions within Error Interrupt Status (ERRSTAT) register occur + 1 + 1 + read-write + + + SOFTOK + This bit is set when the USB Module receives a Start Of Frame (SOF) token + 2 + 1 + read-write + + + TOKDNE + This bit is set when the current token being processed has completed + 3 + 1 + read-write + + + SLEEP + This bit is set when the USB Module detects a constant idle on the USB bus for 3 ms + 4 + 1 + read-write + + + RESUME + This bit is set when a K-state is observed on the DP/DM signals for 2 + 5 + 1 + read-write + + + ATTACH + Attach Interrupt + 6 + 1 + read-write + + + STALL + Stall Interrupt + 7 + 1 + read-write + + + + + INTEN + Interrupt Enable register + 0x84 + 8 + read-write + 0 + 0xFF + + + USBRSTEN + USBRST Interrupt Enable + 0 + 1 + read-write + + + 0 + Disables the USBRST interrupt. + #0 + + + 1 + Enables the USBRST interrupt. + #1 + + + + + ERROREN + ERROR Interrupt Enable + 1 + 1 + read-write + + + 0 + Disables the ERROR interrupt. + #0 + + + 1 + Enables the ERROR interrupt. + #1 + + + + + SOFTOKEN + SOFTOK Interrupt Enable + 2 + 1 + read-write + + + 0 + Disbles the SOFTOK interrupt. + #0 + + + 1 + Enables the SOFTOK interrupt. + #1 + + + + + TOKDNEEN + TOKDNE Interrupt Enable + 3 + 1 + read-write + + + 0 + Disables the TOKDNE interrupt. + #0 + + + 1 + Enables the TOKDNE interrupt. + #1 + + + + + SLEEPEN + SLEEP Interrupt Enable + 4 + 1 + read-write + + + 0 + Disables the SLEEP interrupt. + #0 + + + 1 + Enables the SLEEP interrupt. + #1 + + + + + RESUMEEN + RESUME Interrupt Enable + 5 + 1 + read-write + + + 0 + Disables the RESUME interrupt. + #0 + + + 1 + Enables the RESUME interrupt. + #1 + + + + + ATTACHEN + ATTACH Interrupt Enable + 6 + 1 + read-write + + + 0 + Disables the ATTACH interrupt. + #0 + + + 1 + Enables the ATTACH interrupt. + #1 + + + + + STALLEN + STALL Interrupt Enable + 7 + 1 + read-write + + + 0 + Diasbles the STALL interrupt. + #0 + + + 1 + Enables the STALL interrupt. + #1 + + + + + + + ERRSTAT + Error Interrupt Status register + 0x88 + 8 + read-write + 0 + 0xFF + + + PIDERR + This bit is set when the PID check field fails. + 0 + 1 + read-write + + + CRC5EOF + This error interrupt has two functions + 1 + 1 + read-write + + + CRC16 + This bit is set when a data packet is rejected due to a CRC16 error. + 2 + 1 + read-write + + + DFN8 + This bit is set if the data field received was not 8 bits in length + 3 + 1 + read-write + + + BTOERR + This bit is set when a bus turnaround timeout error occurs + 4 + 1 + read-write + + + DMAERR + This bit is set if the USB Module has requested a DMA access to read a new BDT but has not been given the bus before it needs to receive or transmit data + 5 + 1 + read-write + + + BTSERR + This bit is set when a bit stuff error is detected + 7 + 1 + read-write + + + + + ERREN + Error Interrupt Enable register + 0x8C + 8 + read-write + 0 + 0xFF + + + PIDERREN + PIDERR Interrupt Enable + 0 + 1 + read-write + + + 0 + Disables the PIDERR interrupt. + #0 + + + 1 + Enters the PIDERR interrupt. + #1 + + + + + CRC5EOFEN + CRC5/EOF Interrupt Enable + 1 + 1 + read-write + + + 0 + Disables the CRC5/EOF interrupt. + #0 + + + 1 + Enables the CRC5/EOF interrupt. + #1 + + + + + CRC16EN + CRC16 Interrupt Enable + 2 + 1 + read-write + + + 0 + Disables the CRC16 interrupt. + #0 + + + 1 + Enables the CRC16 interrupt. + #1 + + + + + DFN8EN + DFN8 Interrupt Enable + 3 + 1 + read-write + + + 0 + Disables the DFN8 interrupt. + #0 + + + 1 + Enables the DFN8 interrupt. + #1 + + + + + BTOERREN + BTOERR Interrupt Enable + 4 + 1 + read-write + + + 0 + Disables the BTOERR interrupt. + #0 + + + 1 + Enables the BTOERR interrupt. + #1 + + + + + DMAERREN + DMAERR Interrupt Enable + 5 + 1 + read-write + + + 0 + Disables the DMAERR interrupt. + #0 + + + 1 + Enables the DMAERR interrupt. + #1 + + + + + BTSERREN + BTSERR Interrupt Enable + 7 + 1 + read-write + + + 0 + Disables the BTSERR interrupt. + #0 + + + 1 + Enables the BTSERR interrupt. + #1 + + + + + + + STAT + Status register + 0x90 + 8 + read-only + 0 + 0xFF + + + ODD + This bit is set if the last buffer descriptor updated was in the odd bank of the BDT. + 2 + 1 + read-only + + + TX + Transmit Indicator + 3 + 1 + read-only + + + 0 + The most recent transaction was a receive operation. + #0 + + + 1 + The most recent transaction was a transmit operation. + #1 + + + + + ENDP + This four-bit field encodes the endpoint address that received or transmitted the previous token + 4 + 4 + read-only + + + + + CTL + Control register + 0x94 + 8 + read-write + 0 + 0xFF + + + USBENSOFEN + USB Enable + 0 + 1 + read-write + + + 0 + Disables the USB Module. + #0 + + + 1 + Enables the USB Module. + #1 + + + + + ODDRST + Setting this bit to 1 resets all the BDT ODD ping/pong fields to 0, which then specifies the EVEN BDT bank + 1 + 1 + read-write + + + RESUME + When set to 1 this bit enables the USB Module to execute resume signaling + 2 + 1 + read-write + + + HOSTMODEEN + When set to 1, this bit enables the USB Module to operate in Host mode + 3 + 1 + read-write + + + RESET + Setting this bit enables the USB Module to generate USB reset signaling + 4 + 1 + read-write + + + TXSUSPENDTOKENBUSY + In Host mode, TOKEN_BUSY is set when the USB module is busy executing a USB token + 5 + 1 + read-write + + + SE0 + Live USB Single Ended Zero signal + 6 + 1 + read-write + + + JSTATE + Live USB differential receiver JSTATE signal + 7 + 1 + read-write + + + + + ADDR + Address register + 0x98 + 8 + read-write + 0 + 0xFF + + + ADDR + USB Address + 0 + 7 + read-write + + + LSEN + Low Speed Enable bit + 7 + 1 + read-write + + + + + BDTPAGE1 + BDT Page register 1 + 0x9C + 8 + read-write + 0 + 0xFF + + + BDTBA + Provides address bits 15 through 9 of the BDT base address. + 1 + 7 + read-write + + + + + FRMNUML + Frame Number register Low + 0xA0 + 8 + read-write + 0 + 0xFF + + + FRM + This 8-bit field and the 3-bit field in the Frame Number Register High are used to compute the address where the current Buffer Descriptor Table (BDT) resides in system memory + 0 + 8 + read-write + + + + + FRMNUMH + Frame Number register High + 0xA4 + 8 + read-write + 0 + 0xFF + + + FRM + This 3-bit field and the 8-bit field in the Frame Number Register Low are used to compute the address where the current Buffer Descriptor Table (BDT) resides in system memory + 0 + 3 + read-write + + + + + TOKEN + Token register + 0xA8 + 8 + read-write + 0 + 0xFF + + + TOKENENDPT + Holds the Endpoint address for the token command + 0 + 4 + read-write + + + TOKENPID + Contains the token type executed by the USB module. + 4 + 4 + read-write + + + 0001 + OUT Token. USB Module performs an OUT (TX) transaction. + #0001 + + + 1001 + IN Token. USB Module performs an In (RX) transaction. + #1001 + + + 1101 + SETUP Token. USB Module performs a SETUP (TX) transaction + #1101 + + + + + + + SOFTHLD + SOF Threshold register + 0xAC + 8 + read-write + 0 + 0xFF + + + CNT + Represents the SOF count threshold in byte times. + 0 + 8 + read-write + + + + + BDTPAGE2 + BDT Page Register 2 + 0xB0 + 8 + read-write + 0 + 0xFF + + + BDTBA + Provides address bits 23 through 16 of the BDT base address that defines the location of Buffer Descriptor Table resides in system memory + 0 + 8 + read-write + + + + + BDTPAGE3 + BDT Page Register 3 + 0xB4 + 8 + read-write + 0 + 0xFF + + + BDTBA + Provides address bits 31 through 24 of the BDT base address that defines the location of Buffer Descriptor Table resides in system memory + 0 + 8 + read-write + + + + + 16 + 0x4 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + ENDPT%s + Endpoint Control register + 0xC0 + 8 + read-write + 0 + 0xFF + + + EPHSHK + When set this bit enables an endpoint to perform handshaking during a transaction to this endpoint + 0 + 1 + read-write + + + EPSTALL + When set this bit indicates that the endpoint is called + 1 + 1 + read-write + + + EPTXEN + This bit, when set, enables the endpoint for TX transfers. + 2 + 1 + read-write + + + EPRXEN + This bit, when set, enables the endpoint for RX transfers. + 3 + 1 + read-write + + + EPCTLDIS + This bit, when set, disables control (SETUP) transfers + 4 + 1 + read-write + + + RETRYDIS + This is a Host mode only bit and is present in the control register for endpoint 0 (ENDPT0) only + 6 + 1 + read-write + + + HOSTWOHUB + This is a Host mode only field and is present in the control register for endpoint 0 (ENDPT0) only + 7 + 1 + read-write + + + + + USBCTRL + USB Control register + 0x100 + 8 + read-write + 0xC0 + 0xFF + + + PDE + Enables the weak pulldowns on the USB transceiver. + 6 + 1 + read-write + + + 0 + Weak pulldowns are disabled on D+ and D-. + #0 + + + 1 + Weak pulldowns are enabled on D+ and D-. + #1 + + + + + SUSP + Places the USB transceiver into the suspend state. + 7 + 1 + read-write + + + 0 + USB transceiver is not in suspend state. + #0 + + + 1 + USB transceiver is in suspend state. + #1 + + + + + + + OBSERVE + USB OTG Observe register + 0x104 + 8 + read-only + 0x50 + 0xFF + + + DMPD + Provides observability of the D- Pulldown enable at the USB transceiver. + 4 + 1 + read-only + + + 0 + D- pulldown disabled. + #0 + + + 1 + D- pulldown enabled. + #1 + + + + + DPPD + Provides observability of the D+ Pulldown enable at the USB transceiver. + 6 + 1 + read-only + + + 0 + D+ pulldown disabled. + #0 + + + 1 + D+ pulldown enabled. + #1 + + + + + DPPU + Provides observability of the D+ Pullup enable at the USB transceiver. + 7 + 1 + read-only + + + 0 + D+ pullup disabled. + #0 + + + 1 + D+ pullup enabled. + #1 + + + + + + + CONTROL + USB OTG Control register + 0x108 + 8 + read-write + 0 + 0xFF + + + DPPULLUPNONOTG + Provides control of the DP Pullup in USBOTG, if USB is configured in non-OTG device mode. + 4 + 1 + read-write + + + 0 + DP Pullup in non-OTG device mode is not enabled. + #0 + + + 1 + DP Pullup in non-OTG device mode is enabled. + #1 + + + + + + + USBTRC0 + USB Transceiver Control register 0 + 0x10C + 8 + read-write + 0 + 0xFF + + + USB_RESUME_INT + USB Asynchronous Interrupt + 0 + 1 + read-only + + + 0 + No interrupt was generated. + #0 + + + 1 + Interrupt was generated because of the USB asynchronous interrupt. + #1 + + + + + SYNC_DET + Synchronous USB Interrupt Detect + 1 + 1 + read-only + + + 0 + Synchronous interrupt has not been detected. + #0 + + + 1 + Synchronous interrupt has been detected. + #1 + + + + + USB_CLK_RECOVERY_INT + Combined USB Clock Recovery interrupt status + 2 + 1 + read-only + + + USBRESMEN + Asynchronous Resume Interrupt Enable + 5 + 1 + read-write + + + 0 + USB asynchronous wakeup from suspend mode disabled. + #0 + + + 1 + USB asynchronous wakeup from suspend mode enabled. The asynchronous resume interrupt differs from the synchronous resume interrupt in that it asynchronously detects K-state using the unfiltered state of the D+ and D- pins. This interrupt should only be enabled when the Transceiver is suspended. + #1 + + + + + USBRESET + USB Reset + 7 + 1 + write-only + + + 0 + Normal USB module operation. + #0 + + + 1 + Returns the USB module to its reset state. + #1 + + + + + + + USBFRMADJUST + Frame Adjust Register + 0x114 + 8 + read-write + 0 + 0xFF + + + ADJ + Frame Adjustment + 0 + 8 + read-write + + + + + CLK_RECOVER_CTRL + USB Clock recovery control + 0x140 + 8 + read-write + 0 + 0xFF + + + RESTART_IFRTRIM_EN + Restart from IFR trim value + 5 + 1 + read-write + + + 0 + Trim fine adjustment always works based on the previous updated trim fine value (default) + #0 + + + 1 + Trim fine restarts from the IFR trim value whenever bus_reset/bus_resume is detected or module enable is desasserted + #1 + + + + + RESET_RESUME_ROUGH_EN + Reset/resume to rough phase enable + 6 + 1 + read-write + + + 0 + Always works in tracking phase after the 1st time rough to track transition (default) + #0 + + + 1 + Go back to rough stage whenever bus reset or bus resume occurs + #1 + + + + + CLOCK_RECOVER_EN + Crystal-less USB enable + 7 + 1 + read-write + + + 0 + Disable clock recovery block (default) + #0 + + + 1 + Enable clock recovery block + #1 + + + + + + + CLK_RECOVER_IRC_EN + IRC48M oscillator enable register + 0x144 + 8 + read-write + 0x1 + 0xFF + + + REG_EN + IRC48M regulator enable + 0 + 1 + read-write + + + 0 + IRC48M local regulator is disabled + #0 + + + 1 + IRC48M local regulator is enabled (default) + #1 + + + + + IRC_EN + IRC48M enable + 1 + 1 + read-write + + + 0 + Disable the IRC48M module (default) + #0 + + + 1 + Enable the IRC48M module + #1 + + + + + + + CLK_RECOVER_INT_STATUS + Clock recovery separated interrupt status + 0x15C + 8 + read-write + 0 + 0xFF + + + OVF_ERROR + Indicates that the USB clock recovery algorithm has detected that the frequency trim adjustment needed for the IRC48M output clock is outside the available TRIM_FINE adjustment range for the IRC48M module + 4 + 1 + read-write + + + 0 + No interrupt is reported + #0 + + + 1 + Unmasked interrupt has been generated + #1 + + + + + + + + + CMP0 + High-Speed Comparator (CMP), Voltage Reference (VREF) Digital-to-Analog Converter (DAC), and Analog Mux (ANMUX) + CMP + CMP0_ + 0x40073000 + + 0 + 0x6 + registers + + + CMP0 + 40 + + + + CR0 + CMP Control Register 0 + 0 + 8 + read-write + 0 + 0xFF + + + HYSTCTR + Comparator hard block hysteresis control + 0 + 2 + read-write + + + 00 + Level 0 + #00 + + + 01 + Level 1 + #01 + + + 10 + Level 2 + #10 + + + 11 + Level 3 + #11 + + + + + FILTER_CNT + Filter Sample Count + 4 + 3 + read-write + + + 000 + Filter is disabled. If SE = 1, then COUT is a logic 0. This is not a legal state, and is not recommended. If SE = 0, COUT = COUTA. + #000 + + + 001 + One sample must agree. The comparator output is simply sampled. + #001 + + + 010 + 2 consecutive samples must agree. + #010 + + + 011 + 3 consecutive samples must agree. + #011 + + + 100 + 4 consecutive samples must agree. + #100 + + + 101 + 5 consecutive samples must agree. + #101 + + + 110 + 6 consecutive samples must agree. + #110 + + + 111 + 7 consecutive samples must agree. + #111 + + + + + + + CR1 + CMP Control Register 1 + 0x1 + 8 + read-write + 0 + 0xFF + + + EN + Comparator Module Enable + 0 + 1 + read-write + + + 0 + Analog Comparator is disabled. + #0 + + + 1 + Analog Comparator is enabled. + #1 + + + + + OPE + Comparator Output Pin Enable + 1 + 1 + read-write + + + 0 + CMPO is not available on the associated CMPO output pin. If the comparator does not own the pin, this field has no effect. + #0 + + + 1 + CMPO is available on the associated CMPO output pin. The comparator output (CMPO) is driven out on the associated CMPO output pin if the comparator owns the pin. If the comparator does not own the field, this bit has no effect. + #1 + + + + + COS + Comparator Output Select + 2 + 1 + read-write + + + 0 + Set the filtered comparator output (CMPO) to equal COUT. + #0 + + + 1 + Set the unfiltered comparator output (CMPO) to equal COUTA. + #1 + + + + + INV + Comparator INVERT + 3 + 1 + read-write + + + 0 + Does not invert the comparator output. + #0 + + + 1 + Inverts the comparator output. + #1 + + + + + PMODE + Power Mode Select + 4 + 1 + read-write + + + 0 + Low-Speed (LS) Comparison mode selected. In this mode, CMP has slower output propagation delay and lower current consumption. + #0 + + + 1 + High-Speed (HS) Comparison mode selected. In this mode, CMP has faster output propagation delay and higher current consumption. + #1 + + + + + WE + Windowing Enable + 6 + 1 + read-write + + + 0 + Windowing mode is not selected. + #0 + + + 1 + Windowing mode is selected. + #1 + + + + + SE + Sample Enable + 7 + 1 + read-write + + + 0 + Sampling mode is not selected. + #0 + + + 1 + Sampling mode is selected. + #1 + + + + + + + FPR + CMP Filter Period Register + 0x2 + 8 + read-write + 0 + 0xFF + + + FILT_PER + Filter Sample Period + 0 + 8 + read-write + + + + + SCR + CMP Status and Control Register + 0x3 + 8 + read-write + 0 + 0xFF + + + COUT + Analog Comparator Output + 0 + 1 + read-only + + + CFF + Analog Comparator Flag Falling + 1 + 1 + read-write + + + 0 + Falling-edge on COUT has not been detected. + #0 + + + 1 + Falling-edge on COUT has occurred. + #1 + + + + + CFR + Analog Comparator Flag Rising + 2 + 1 + read-write + + + 0 + Rising-edge on COUT has not been detected. + #0 + + + 1 + Rising-edge on COUT has occurred. + #1 + + + + + IEF + Comparator Interrupt Enable Falling + 3 + 1 + read-write + + + 0 + Interrupt is disabled. + #0 + + + 1 + Interrupt is enabled. + #1 + + + + + IER + Comparator Interrupt Enable Rising + 4 + 1 + read-write + + + 0 + Interrupt is disabled. + #0 + + + 1 + Interrupt is enabled. + #1 + + + + + DMAEN + DMA Enable Control + 6 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled. + #1 + + + + + + + DACCR + DAC Control Register + 0x4 + 8 + read-write + 0 + 0xFF + + + VOSEL + DAC Output Voltage Select + 0 + 6 + read-write + + + VRSEL + Supply Voltage Reference Source Select + 6 + 1 + read-write + + + 0 + V is selected as resistor ladder network supply reference V. in1 in + #0 + + + 1 + V is selected as resistor ladder network supply reference V. in2 in + #1 + + + + + DACEN + DAC Enable + 7 + 1 + read-write + + + 0 + DAC is disabled. + #0 + + + 1 + DAC is enabled. + #1 + + + + + + + MUXCR + MUX Control Register + 0x5 + 8 + read-write + 0 + 0xFF + + + MSEL + Minus Input Mux Control + 0 + 3 + read-write + + + 000 + IN0 + #000 + + + 001 + IN1 + #001 + + + 010 + IN2 + #010 + + + 011 + IN3 + #011 + + + 100 + IN4 + #100 + + + 101 + IN5 + #101 + + + 110 + IN6 + #110 + + + 111 + IN7 + #111 + + + + + PSEL + Plus Input Mux Control + 3 + 3 + read-write + + + 000 + IN0 + #000 + + + 001 + IN1 + #001 + + + 010 + IN2 + #010 + + + 011 + IN3 + #011 + + + 100 + IN4 + #100 + + + 101 + IN5 + #101 + + + 110 + IN6 + #110 + + + 111 + IN7 + #111 + + + + + PSTM + Pass Through Mode Enable + 7 + 1 + read-write + + + 0 + Pass Through Mode is disabled. + #0 + + + 1 + Pass Through Mode is enabled. + #1 + + + + + + + + + CMP1 + High-Speed Comparator (CMP), Voltage Reference (VREF) Digital-to-Analog Converter (DAC), and Analog Mux (ANMUX) + CMP + CMP1_ + 0x40073008 + + 0 + 0x6 + registers + + + CMP1 + 41 + + + + CR0 + CMP Control Register 0 + 0 + 8 + read-write + 0 + 0xFF + + + HYSTCTR + Comparator hard block hysteresis control + 0 + 2 + read-write + + + 00 + Level 0 + #00 + + + 01 + Level 1 + #01 + + + 10 + Level 2 + #10 + + + 11 + Level 3 + #11 + + + + + FILTER_CNT + Filter Sample Count + 4 + 3 + read-write + + + 000 + Filter is disabled. If SE = 1, then COUT is a logic 0. This is not a legal state, and is not recommended. If SE = 0, COUT = COUTA. + #000 + + + 001 + One sample must agree. The comparator output is simply sampled. + #001 + + + 010 + 2 consecutive samples must agree. + #010 + + + 011 + 3 consecutive samples must agree. + #011 + + + 100 + 4 consecutive samples must agree. + #100 + + + 101 + 5 consecutive samples must agree. + #101 + + + 110 + 6 consecutive samples must agree. + #110 + + + 111 + 7 consecutive samples must agree. + #111 + + + + + + + CR1 + CMP Control Register 1 + 0x1 + 8 + read-write + 0 + 0xFF + + + EN + Comparator Module Enable + 0 + 1 + read-write + + + 0 + Analog Comparator is disabled. + #0 + + + 1 + Analog Comparator is enabled. + #1 + + + + + OPE + Comparator Output Pin Enable + 1 + 1 + read-write + + + 0 + CMPO is not available on the associated CMPO output pin. If the comparator does not own the pin, this field has no effect. + #0 + + + 1 + CMPO is available on the associated CMPO output pin. The comparator output (CMPO) is driven out on the associated CMPO output pin if the comparator owns the pin. If the comparator does not own the field, this bit has no effect. + #1 + + + + + COS + Comparator Output Select + 2 + 1 + read-write + + + 0 + Set the filtered comparator output (CMPO) to equal COUT. + #0 + + + 1 + Set the unfiltered comparator output (CMPO) to equal COUTA. + #1 + + + + + INV + Comparator INVERT + 3 + 1 + read-write + + + 0 + Does not invert the comparator output. + #0 + + + 1 + Inverts the comparator output. + #1 + + + + + PMODE + Power Mode Select + 4 + 1 + read-write + + + 0 + Low-Speed (LS) Comparison mode selected. In this mode, CMP has slower output propagation delay and lower current consumption. + #0 + + + 1 + High-Speed (HS) Comparison mode selected. In this mode, CMP has faster output propagation delay and higher current consumption. + #1 + + + + + WE + Windowing Enable + 6 + 1 + read-write + + + 0 + Windowing mode is not selected. + #0 + + + 1 + Windowing mode is selected. + #1 + + + + + SE + Sample Enable + 7 + 1 + read-write + + + 0 + Sampling mode is not selected. + #0 + + + 1 + Sampling mode is selected. + #1 + + + + + + + FPR + CMP Filter Period Register + 0x2 + 8 + read-write + 0 + 0xFF + + + FILT_PER + Filter Sample Period + 0 + 8 + read-write + + + + + SCR + CMP Status and Control Register + 0x3 + 8 + read-write + 0 + 0xFF + + + COUT + Analog Comparator Output + 0 + 1 + read-only + + + CFF + Analog Comparator Flag Falling + 1 + 1 + read-write + + + 0 + Falling-edge on COUT has not been detected. + #0 + + + 1 + Falling-edge on COUT has occurred. + #1 + + + + + CFR + Analog Comparator Flag Rising + 2 + 1 + read-write + + + 0 + Rising-edge on COUT has not been detected. + #0 + + + 1 + Rising-edge on COUT has occurred. + #1 + + + + + IEF + Comparator Interrupt Enable Falling + 3 + 1 + read-write + + + 0 + Interrupt is disabled. + #0 + + + 1 + Interrupt is enabled. + #1 + + + + + IER + Comparator Interrupt Enable Rising + 4 + 1 + read-write + + + 0 + Interrupt is disabled. + #0 + + + 1 + Interrupt is enabled. + #1 + + + + + DMAEN + DMA Enable Control + 6 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled. + #1 + + + + + + + DACCR + DAC Control Register + 0x4 + 8 + read-write + 0 + 0xFF + + + VOSEL + DAC Output Voltage Select + 0 + 6 + read-write + + + VRSEL + Supply Voltage Reference Source Select + 6 + 1 + read-write + + + 0 + V is selected as resistor ladder network supply reference V. in1 in + #0 + + + 1 + V is selected as resistor ladder network supply reference V. in2 in + #1 + + + + + DACEN + DAC Enable + 7 + 1 + read-write + + + 0 + DAC is disabled. + #0 + + + 1 + DAC is enabled. + #1 + + + + + + + MUXCR + MUX Control Register + 0x5 + 8 + read-write + 0 + 0xFF + + + MSEL + Minus Input Mux Control + 0 + 3 + read-write + + + 000 + IN0 + #000 + + + 001 + IN1 + #001 + + + 010 + IN2 + #010 + + + 011 + IN3 + #011 + + + 100 + IN4 + #100 + + + 101 + IN5 + #101 + + + 110 + IN6 + #110 + + + 111 + IN7 + #111 + + + + + PSEL + Plus Input Mux Control + 3 + 3 + read-write + + + 000 + IN0 + #000 + + + 001 + IN1 + #001 + + + 010 + IN2 + #010 + + + 011 + IN3 + #011 + + + 100 + IN4 + #100 + + + 101 + IN5 + #101 + + + 110 + IN6 + #110 + + + 111 + IN7 + #111 + + + + + PSTM + Pass Through Mode Enable + 7 + 1 + read-write + + + 0 + Pass Through Mode is disabled. + #0 + + + 1 + Pass Through Mode is enabled. + #1 + + + + + + + + + CMP2 + High-Speed Comparator (CMP), Voltage Reference (VREF) Digital-to-Analog Converter (DAC), and Analog Mux (ANMUX) + CMP + CMP2_ + 0x40073010 + + 0 + 0x6 + registers + + + CMP2 + 70 + + + + CR0 + CMP Control Register 0 + 0 + 8 + read-write + 0 + 0xFF + + + HYSTCTR + Comparator hard block hysteresis control + 0 + 2 + read-write + + + 00 + Level 0 + #00 + + + 01 + Level 1 + #01 + + + 10 + Level 2 + #10 + + + 11 + Level 3 + #11 + + + + + FILTER_CNT + Filter Sample Count + 4 + 3 + read-write + + + 000 + Filter is disabled. If SE = 1, then COUT is a logic 0. This is not a legal state, and is not recommended. If SE = 0, COUT = COUTA. + #000 + + + 001 + One sample must agree. The comparator output is simply sampled. + #001 + + + 010 + 2 consecutive samples must agree. + #010 + + + 011 + 3 consecutive samples must agree. + #011 + + + 100 + 4 consecutive samples must agree. + #100 + + + 101 + 5 consecutive samples must agree. + #101 + + + 110 + 6 consecutive samples must agree. + #110 + + + 111 + 7 consecutive samples must agree. + #111 + + + + + + + CR1 + CMP Control Register 1 + 0x1 + 8 + read-write + 0 + 0xFF + + + EN + Comparator Module Enable + 0 + 1 + read-write + + + 0 + Analog Comparator is disabled. + #0 + + + 1 + Analog Comparator is enabled. + #1 + + + + + OPE + Comparator Output Pin Enable + 1 + 1 + read-write + + + 0 + CMPO is not available on the associated CMPO output pin. If the comparator does not own the pin, this field has no effect. + #0 + + + 1 + CMPO is available on the associated CMPO output pin. The comparator output (CMPO) is driven out on the associated CMPO output pin if the comparator owns the pin. If the comparator does not own the field, this bit has no effect. + #1 + + + + + COS + Comparator Output Select + 2 + 1 + read-write + + + 0 + Set the filtered comparator output (CMPO) to equal COUT. + #0 + + + 1 + Set the unfiltered comparator output (CMPO) to equal COUTA. + #1 + + + + + INV + Comparator INVERT + 3 + 1 + read-write + + + 0 + Does not invert the comparator output. + #0 + + + 1 + Inverts the comparator output. + #1 + + + + + PMODE + Power Mode Select + 4 + 1 + read-write + + + 0 + Low-Speed (LS) Comparison mode selected. In this mode, CMP has slower output propagation delay and lower current consumption. + #0 + + + 1 + High-Speed (HS) Comparison mode selected. In this mode, CMP has faster output propagation delay and higher current consumption. + #1 + + + + + WE + Windowing Enable + 6 + 1 + read-write + + + 0 + Windowing mode is not selected. + #0 + + + 1 + Windowing mode is selected. + #1 + + + + + SE + Sample Enable + 7 + 1 + read-write + + + 0 + Sampling mode is not selected. + #0 + + + 1 + Sampling mode is selected. + #1 + + + + + + + FPR + CMP Filter Period Register + 0x2 + 8 + read-write + 0 + 0xFF + + + FILT_PER + Filter Sample Period + 0 + 8 + read-write + + + + + SCR + CMP Status and Control Register + 0x3 + 8 + read-write + 0 + 0xFF + + + COUT + Analog Comparator Output + 0 + 1 + read-only + + + CFF + Analog Comparator Flag Falling + 1 + 1 + read-write + + + 0 + Falling-edge on COUT has not been detected. + #0 + + + 1 + Falling-edge on COUT has occurred. + #1 + + + + + CFR + Analog Comparator Flag Rising + 2 + 1 + read-write + + + 0 + Rising-edge on COUT has not been detected. + #0 + + + 1 + Rising-edge on COUT has occurred. + #1 + + + + + IEF + Comparator Interrupt Enable Falling + 3 + 1 + read-write + + + 0 + Interrupt is disabled. + #0 + + + 1 + Interrupt is enabled. + #1 + + + + + IER + Comparator Interrupt Enable Rising + 4 + 1 + read-write + + + 0 + Interrupt is disabled. + #0 + + + 1 + Interrupt is enabled. + #1 + + + + + DMAEN + DMA Enable Control + 6 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled. + #1 + + + + + + + DACCR + DAC Control Register + 0x4 + 8 + read-write + 0 + 0xFF + + + VOSEL + DAC Output Voltage Select + 0 + 6 + read-write + + + VRSEL + Supply Voltage Reference Source Select + 6 + 1 + read-write + + + 0 + V is selected as resistor ladder network supply reference V. in1 in + #0 + + + 1 + V is selected as resistor ladder network supply reference V. in2 in + #1 + + + + + DACEN + DAC Enable + 7 + 1 + read-write + + + 0 + DAC is disabled. + #0 + + + 1 + DAC is enabled. + #1 + + + + + + + MUXCR + MUX Control Register + 0x5 + 8 + read-write + 0 + 0xFF + + + MSEL + Minus Input Mux Control + 0 + 3 + read-write + + + 000 + IN0 + #000 + + + 001 + IN1 + #001 + + + 010 + IN2 + #010 + + + 011 + IN3 + #011 + + + 100 + IN4 + #100 + + + 101 + IN5 + #101 + + + 110 + IN6 + #110 + + + 111 + IN7 + #111 + + + + + PSEL + Plus Input Mux Control + 3 + 3 + read-write + + + 000 + IN0 + #000 + + + 001 + IN1 + #001 + + + 010 + IN2 + #010 + + + 011 + IN3 + #011 + + + 100 + IN4 + #100 + + + 101 + IN5 + #101 + + + 110 + IN6 + #110 + + + 111 + IN7 + #111 + + + + + PSTM + Pass Through Mode Enable + 7 + 1 + read-write + + + 0 + Pass Through Mode is disabled. + #0 + + + 1 + Pass Through Mode is enabled. + #1 + + + + + + + + + VREF + Voltage Reference + VREF_ + 0x40074000 + + 0 + 0x2 + registers + + + + TRM + VREF Trim Register + 0 + 8 + read-write + 0 + 0x40 + + + TRIM + Trim bits + 0 + 6 + read-write + + + 000000 + Min + #0 + + + 111111 + Max + #111111 + + + + + CHOPEN + Chop oscillator enable. When set, internal chopping operation is enabled and the internal analog offset will be minimized. + 6 + 1 + read-write + + + 0 + Chop oscillator is disabled. + #0 + + + 1 + Chop oscillator is enabled. + #1 + + + + + + + SC + VREF Status and Control Register + 0x1 + 8 + read-write + 0 + 0xFF + + + MODE_LV + Buffer Mode selection + 0 + 2 + read-write + + + 00 + Bandgap on only, for stabilization and startup + #00 + + + 01 + High power buffer mode enabled + #01 + + + 10 + Low-power buffer mode enabled + #10 + + + + + VREFST + Internal Voltage Reference stable + 2 + 1 + read-only + + + 0 + The module is disabled or not stable. + #0 + + + 1 + The module is stable. + #1 + + + + + ICOMPEN + Second order curvature compensation enable + 5 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + REGEN + Regulator enable + 6 + 1 + read-write + + + 0 + Internal 1.75 V regulator is disabled. + #0 + + + 1 + Internal 1.75 V regulator is enabled. + #1 + + + + + VREFEN + Internal Voltage Reference enable + 7 + 1 + read-write + + + 0 + The module is disabled. + #0 + + + 1 + The module is enabled. + #1 + + + + + + + + + LLWU + Low leakage wakeup unit + LLWU_ + 0x4007C000 + + 0 + 0xB + registers + + + LLWU + 21 + + + + PE1 + LLWU Pin Enable 1 register + 0 + 8 + read-write + 0 + 0xFF + + + WUPE0 + Wakeup Pin Enable For LLWU_P0 + 0 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE1 + Wakeup Pin Enable For LLWU_P1 + 2 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE2 + Wakeup Pin Enable For LLWU_P2 + 4 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE3 + Wakeup Pin Enable For LLWU_P3 + 6 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + + + PE2 + LLWU Pin Enable 2 register + 0x1 + 8 + read-write + 0 + 0xFF + + + WUPE4 + Wakeup Pin Enable For LLWU_P4 + 0 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE5 + Wakeup Pin Enable For LLWU_P5 + 2 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE6 + Wakeup Pin Enable For LLWU_P6 + 4 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE7 + Wakeup Pin Enable For LLWU_P7 + 6 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + + + PE3 + LLWU Pin Enable 3 register + 0x2 + 8 + read-write + 0 + 0xFF + + + WUPE8 + Wakeup Pin Enable For LLWU_P8 + 0 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE9 + Wakeup Pin Enable For LLWU_P9 + 2 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE10 + Wakeup Pin Enable For LLWU_P10 + 4 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE11 + Wakeup Pin Enable For LLWU_P11 + 6 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + + + PE4 + LLWU Pin Enable 4 register + 0x3 + 8 + read-write + 0 + 0xFF + + + WUPE12 + Wakeup Pin Enable For LLWU_P12 + 0 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE13 + Wakeup Pin Enable For LLWU_P13 + 2 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE14 + Wakeup Pin Enable For LLWU_P14 + 4 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + WUPE15 + Wakeup Pin Enable For LLWU_P15 + 6 + 2 + read-write + + + 00 + External input pin disabled as wakeup input + #00 + + + 01 + External input pin enabled with rising edge detection + #01 + + + 10 + External input pin enabled with falling edge detection + #10 + + + 11 + External input pin enabled with any change detection + #11 + + + + + + + ME + LLWU Module Enable register + 0x4 + 8 + read-write + 0 + 0xFF + + + WUME0 + Wakeup Module Enable For Module 0 + 0 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME1 + Wakeup Module Enable for Module 1 + 1 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME2 + Wakeup Module Enable For Module 2 + 2 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME3 + Wakeup Module Enable For Module 3 + 3 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME4 + Wakeup Module Enable For Module 4 + 4 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME5 + Wakeup Module Enable For Module 5 + 5 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME6 + Wakeup Module Enable For Module 6 + 6 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + WUME7 + Wakeup Module Enable For Module 7 + 7 + 1 + read-write + + + 0 + Internal module flag not used as wakeup source + #0 + + + 1 + Internal module flag used as wakeup source + #1 + + + + + + + F1 + LLWU Flag 1 register + 0x5 + 8 + read-write + 0 + 0xFF + + + WUF0 + Wakeup Flag For LLWU_P0 + 0 + 1 + read-write + + + 0 + LLWU_P0 input was not a wakeup source + #0 + + + 1 + LLWU_P0 input was a wakeup source + #1 + + + + + WUF1 + Wakeup Flag For LLWU_P1 + 1 + 1 + read-write + + + 0 + LLWU_P1 input was not a wakeup source + #0 + + + 1 + LLWU_P1 input was a wakeup source + #1 + + + + + WUF2 + Wakeup Flag For LLWU_P2 + 2 + 1 + read-write + + + 0 + LLWU_P2 input was not a wakeup source + #0 + + + 1 + LLWU_P2 input was a wakeup source + #1 + + + + + WUF3 + Wakeup Flag For LLWU_P3 + 3 + 1 + read-write + + + 0 + LLWU_P3 input was not a wake-up source + #0 + + + 1 + LLWU_P3 input was a wake-up source + #1 + + + + + WUF4 + Wakeup Flag For LLWU_P4 + 4 + 1 + read-write + + + 0 + LLWU_P4 input was not a wakeup source + #0 + + + 1 + LLWU_P4 input was a wakeup source + #1 + + + + + WUF5 + Wakeup Flag For LLWU_P5 + 5 + 1 + read-write + + + 0 + LLWU_P5 input was not a wakeup source + #0 + + + 1 + LLWU_P5 input was a wakeup source + #1 + + + + + WUF6 + Wakeup Flag For LLWU_P6 + 6 + 1 + read-write + + + 0 + LLWU_P6 input was not a wakeup source + #0 + + + 1 + LLWU_P6 input was a wakeup source + #1 + + + + + WUF7 + Wakeup Flag For LLWU_P7 + 7 + 1 + read-write + + + 0 + LLWU_P7 input was not a wakeup source + #0 + + + 1 + LLWU_P7 input was a wakeup source + #1 + + + + + + + F2 + LLWU Flag 2 register + 0x6 + 8 + read-write + 0 + 0xFF + + + WUF8 + Wakeup Flag For LLWU_P8 + 0 + 1 + read-write + + + 0 + LLWU_P8 input was not a wakeup source + #0 + + + 1 + LLWU_P8 input was a wakeup source + #1 + + + + + WUF9 + Wakeup Flag For LLWU_P9 + 1 + 1 + read-write + + + 0 + LLWU_P9 input was not a wakeup source + #0 + + + 1 + LLWU_P9 input was a wakeup source + #1 + + + + + WUF10 + Wakeup Flag For LLWU_P10 + 2 + 1 + read-write + + + 0 + LLWU_P10 input was not a wakeup source + #0 + + + 1 + LLWU_P10 input was a wakeup source + #1 + + + + + WUF11 + Wakeup Flag For LLWU_P11 + 3 + 1 + read-write + + + 0 + LLWU_P11 input was not a wakeup source + #0 + + + 1 + LLWU_P11 input was a wakeup source + #1 + + + + + WUF12 + Wakeup Flag For LLWU_P12 + 4 + 1 + read-write + + + 0 + LLWU_P12 input was not a wakeup source + #0 + + + 1 + LLWU_P12 input was a wakeup source + #1 + + + + + WUF13 + Wakeup Flag For LLWU_P13 + 5 + 1 + read-write + + + 0 + LLWU_P13 input was not a wakeup source + #0 + + + 1 + LLWU_P13 input was a wakeup source + #1 + + + + + WUF14 + Wakeup Flag For LLWU_P14 + 6 + 1 + read-write + + + 0 + LLWU_P14 input was not a wakeup source + #0 + + + 1 + LLWU_P14 input was a wakeup source + #1 + + + + + WUF15 + Wakeup Flag For LLWU_P15 + 7 + 1 + read-write + + + 0 + LLWU_P15 input was not a wakeup source + #0 + + + 1 + LLWU_P15 input was a wakeup source + #1 + + + + + + + F3 + LLWU Flag 3 register + 0x7 + 8 + read-only + 0 + 0xFF + + + MWUF0 + Wakeup flag For module 0 + 0 + 1 + read-only + + + 0 + Module 0 input was not a wakeup source + #0 + + + 1 + Module 0 input was a wakeup source + #1 + + + + + MWUF1 + Wakeup flag For module 1 + 1 + 1 + read-only + + + 0 + Module 1 input was not a wakeup source + #0 + + + 1 + Module 1 input was a wakeup source + #1 + + + + + MWUF2 + Wakeup flag For module 2 + 2 + 1 + read-only + + + 0 + Module 2 input was not a wakeup source + #0 + + + 1 + Module 2 input was a wakeup source + #1 + + + + + MWUF3 + Wakeup flag For module 3 + 3 + 1 + read-only + + + 0 + Module 3 input was not a wakeup source + #0 + + + 1 + Module 3 input was a wakeup source + #1 + + + + + MWUF4 + Wakeup flag For module 4 + 4 + 1 + read-only + + + 0 + Module 4 input was not a wakeup source + #0 + + + 1 + Module 4 input was a wakeup source + #1 + + + + + MWUF5 + Wakeup flag For module 5 + 5 + 1 + read-only + + + 0 + Module 5 input was not a wakeup source + #0 + + + 1 + Module 5 input was a wakeup source + #1 + + + + + MWUF6 + Wakeup flag For module 6 + 6 + 1 + read-only + + + 0 + Module 6 input was not a wakeup source + #0 + + + 1 + Module 6 input was a wakeup source + #1 + + + + + MWUF7 + Wakeup flag For module 7 + 7 + 1 + read-only + + + 0 + Module 7 input was not a wakeup source + #0 + + + 1 + Module 7 input was a wakeup source + #1 + + + + + + + FILT1 + LLWU Pin Filter 1 register + 0x8 + 8 + read-write + 0 + 0xFF + + + FILTSEL + Filter Pin Select + 0 + 4 + read-write + + + 0000 + Select LLWU_P0 for filter + #0000 + + + 1111 + Select LLWU_P15 for filter + #1111 + + + + + FILTE + Digital Filter On External Pin + 5 + 2 + read-write + + + 00 + Filter disabled + #00 + + + 01 + Filter posedge detect enabled + #01 + + + 10 + Filter negedge detect enabled + #10 + + + 11 + Filter any edge detect enabled + #11 + + + + + FILTF + Filter Detect Flag + 7 + 1 + read-write + + + 0 + Pin Filter 1 was not a wakeup source + #0 + + + 1 + Pin Filter 1 was a wakeup source + #1 + + + + + + + FILT2 + LLWU Pin Filter 2 register + 0x9 + 8 + read-write + 0 + 0xFF + + + FILTSEL + Filter Pin Select + 0 + 4 + read-write + + + 0000 + Select LLWU_P0 for filter + #0000 + + + 1111 + Select LLWU_P15 for filter + #1111 + + + + + FILTE + Digital Filter On External Pin + 5 + 2 + read-write + + + 00 + Filter disabled + #00 + + + 01 + Filter posedge detect enabled + #01 + + + 10 + Filter negedge detect enabled + #10 + + + 11 + Filter any edge detect enabled + #11 + + + + + FILTF + Filter Detect Flag + 7 + 1 + read-write + + + 0 + Pin Filter 2 was not a wakeup source + #0 + + + 1 + Pin Filter 2 was a wakeup source + #1 + + + + + + + RST + LLWU Reset Enable register + 0xA + 8 + read-write + 0x2 + 0xFF + + + RSTFILT + Digital Filter On RESET Pin + 0 + 1 + read-write + + + 0 + Filter not enabled + #0 + + + 1 + Filter enabled + #1 + + + + + LLRSTE + Low-Leakage Mode RESET Enable + 1 + 1 + read-write + + + 0 + RESET pin not enabled as a leakage mode exit source + #0 + + + 1 + RESET pin enabled as a low leakage mode exit source + #1 + + + + + + + + + PMC + Power Management Controller + PMC_ + 0x4007D000 + + 0 + 0x3 + registers + + + LVD_LVW + 20 + + + + LVDSC1 + Low Voltage Detect Status And Control 1 register + 0 + 8 + read-write + 0x10 + 0xFF + + + LVDV + Low-Voltage Detect Voltage Select + 0 + 2 + read-write + + + 00 + Low trip point selected (V LVD = V LVDL ) + #00 + + + 01 + High trip point selected (V LVD = V LVDH ) + #01 + + + + + LVDRE + Low-Voltage Detect Reset Enable + 4 + 1 + read-write + + + 0 + LVDF does not generate hardware resets + #0 + + + 1 + Force an MCU reset when LVDF = 1 + #1 + + + + + LVDIE + Low-Voltage Detect Interrupt Enable + 5 + 1 + read-write + + + 0 + Hardware interrupt disabled (use polling) + #0 + + + 1 + Request a hardware interrupt when LVDF = 1 + #1 + + + + + LVDACK + Low-Voltage Detect Acknowledge + 6 + 1 + write-only + + + LVDF + Low-Voltage Detect Flag + 7 + 1 + read-only + + + 0 + Low-voltage event not detected + #0 + + + 1 + Low-voltage event detected + #1 + + + + + + + LVDSC2 + Low Voltage Detect Status And Control 2 register + 0x1 + 8 + read-write + 0 + 0xFF + + + LVWV + Low-Voltage Warning Voltage Select + 0 + 2 + read-write + + + 00 + Low trip point selected (VLVW = VLVW1) + #00 + + + 01 + Mid 1 trip point selected (VLVW = VLVW2) + #01 + + + 10 + Mid 2 trip point selected (VLVW = VLVW3) + #10 + + + 11 + High trip point selected (VLVW = VLVW4) + #11 + + + + + LVWIE + Low-Voltage Warning Interrupt Enable + 5 + 1 + read-write + + + 0 + Hardware interrupt disabled (use polling) + #0 + + + 1 + Request a hardware interrupt when LVWF = 1 + #1 + + + + + LVWACK + Low-Voltage Warning Acknowledge + 6 + 1 + write-only + + + LVWF + Low-Voltage Warning Flag + 7 + 1 + read-only + + + 0 + Low-voltage warning event not detected + #0 + + + 1 + Low-voltage warning event detected + #1 + + + + + + + REGSC + Regulator Status And Control register + 0x2 + 8 + read-write + 0x4 + 0xFF + + + BGBE + Bandgap Buffer Enable + 0 + 1 + read-write + + + 0 + Bandgap buffer not enabled + #0 + + + 1 + Bandgap buffer enabled + #1 + + + + + REGONS + Regulator In Run Regulation Status + 2 + 1 + read-only + + + 0 + Regulator is in stop regulation or in transition to/from it + #0 + + + 1 + Regulator is in run regulation + #1 + + + + + ACKISO + Acknowledge Isolation + 3 + 1 + read-write + + + 0 + Peripherals and I/O pads are in normal run state. + #0 + + + 1 + Certain peripherals and I/O pads are in an isolated and latched state. + #1 + + + + + BGEN + Bandgap Enable In VLPx Operation + 4 + 1 + read-write + + + 0 + Bandgap voltage reference is disabled in VLPx , LLS , and VLLSx modes. + #0 + + + 1 + Bandgap voltage reference is enabled in VLPx , LLS , and VLLSx modes. + #1 + + + + + + + + + SMC + System Mode Controller + SMC_ + 0x4007E000 + + 0 + 0x4 + registers + + + + PMPROT + Power Mode Protection register + 0 + 8 + read-write + 0 + 0xFF + + + AVLLS + Allow Very-Low-Leakage Stop Mode + 1 + 1 + read-write + + + 0 + Any VLLSx mode is not allowed + #0 + + + 1 + Any VLLSx mode is allowed + #1 + + + + + ALLS + Allow Low-Leakage Stop Mode + 3 + 1 + read-write + + + 0 + LLS is not allowed + #0 + + + 1 + LLS is allowed + #1 + + + + + AVLP + Allow Very-Low-Power Modes + 5 + 1 + read-write + + + 0 + VLPR, VLPW, and VLPS are not allowed. + #0 + + + 1 + VLPR, VLPW, and VLPS are allowed. + #1 + + + + + + + PMCTRL + Power Mode Control register + 0x1 + 8 + read-write + 0 + 0xFF + + + STOPM + Stop Mode Control + 0 + 3 + read-write + + + 000 + Normal Stop (STOP) + #000 + + + 010 + Very-Low-Power Stop (VLPS) + #010 + + + 011 + Low-Leakage Stop (LLS) + #011 + + + 100 + Very-Low-Leakage Stop (VLLSx) + #100 + + + 110 + Reseved + #110 + + + + + STOPA + Stop Aborted + 3 + 1 + read-only + + + 0 + The previous stop mode entry was successsful. + #0 + + + 1 + The previous stop mode entry was aborted. + #1 + + + + + RUNM + Run Mode Control + 5 + 2 + read-write + + + 00 + Normal Run mode (RUN) + #00 + + + 10 + Very-Low-Power Run mode (VLPR) + #10 + + + + + LPWUI + Low-Power Wake Up On Interrupt + 7 + 1 + read-write + + + 0 + The system remains in a VLP mode on an interrupt + #0 + + + 1 + The system exits to Normal RUN mode on an interrupt + #1 + + + + + + + VLLSCTRL + VLLS Control register + 0x2 + 8 + read-write + 0x3 + 0xFF + + + VLLSM + VLLS Mode Control + 0 + 3 + read-write + + + 000 + VLLS0 + #000 + + + 001 + VLLS1 + #001 + + + 010 + VLLS2 + #010 + + + 011 + VLLS3 + #011 + + + + + PORPO + POR Power Option + 5 + 1 + read-write + + + 0 + POR detect circuit is enabled in VLLS0. + #0 + + + 1 + POR detect circuit is disabled in VLLS0. + #1 + + + + + + + PMSTAT + Power Mode Status register + 0x3 + 8 + read-only + 0x1 + 0xFF + + + PMSTAT + When debug is enabled, the PMSTAT will not update to STOP or VLPS + 0 + 7 + read-only + + + + + + + RCM + Reset Control Module + RCM_ + 0x4007F000 + + 0 + 0x8 + registers + + + + SRS0 + System Reset Status Register 0 + 0 + 8 + read-only + 0x82 + 0xFF + + + WAKEUP + Low Leakage Wakeup Reset + 0 + 1 + read-only + + + 0 + Reset not caused by LLWU module wakeup source + #0 + + + 1 + Reset caused by LLWU module wakeup source + #1 + + + + + LVD + Low-Voltage Detect Reset + 1 + 1 + read-only + + + 0 + Reset not caused by LVD trip or POR + #0 + + + 1 + Reset caused by LVD trip or POR + #1 + + + + + LOC + Loss-of-Clock Reset + 2 + 1 + read-only + + + 0 + Reset not caused by a loss of external clock. + #0 + + + 1 + Reset caused by a loss of external clock. + #1 + + + + + LOL + Loss-of-Lock Reset + 3 + 1 + read-only + + + 0 + Reset not caused by a loss of lock in the PLL + #0 + + + 1 + Reset caused by a loss of lock in the PLL + #1 + + + + + WDOG + Watchdog + 5 + 1 + read-only + + + 0 + Reset not caused by watchdog timeout + #0 + + + 1 + Reset caused by watchdog timeout + #1 + + + + + PIN + External Reset Pin + 6 + 1 + read-only + + + 0 + Reset not caused by external reset pin + #0 + + + 1 + Reset caused by external reset pin + #1 + + + + + POR + Power-On Reset + 7 + 1 + read-only + + + 0 + Reset not caused by POR + #0 + + + 1 + Reset caused by POR + #1 + + + + + + + SRS1 + System Reset Status Register 1 + 0x1 + 8 + read-only + 0 + 0xFF + + + JTAG + JTAG Generated Reset + 0 + 1 + read-only + + + 0 + Reset not caused by JTAG + #0 + + + 1 + Reset caused by JTAG + #1 + + + + + LOCKUP + Core Lockup + 1 + 1 + read-only + + + 0 + Reset not caused by core LOCKUP event + #0 + + + 1 + Reset caused by core LOCKUP event + #1 + + + + + SW + Software + 2 + 1 + read-only + + + 0 + Reset not caused by software setting of SYSRESETREQ bit + #0 + + + 1 + Reset caused by software setting of SYSRESETREQ bit + #1 + + + + + MDM_AP + MDM-AP System Reset Request + 3 + 1 + read-only + + + 0 + Reset not caused by host debugger system setting of the System Reset Request bit + #0 + + + 1 + Reset caused by host debugger system setting of the System Reset Request bit + #1 + + + + + EZPT + EzPort Reset + 4 + 1 + read-only + + + 0 + Reset not caused by EzPort receiving the RESET command while the device is in EzPort mode + #0 + + + 1 + Reset caused by EzPort receiving the RESET command while the device is in EzPort mode + #1 + + + + + SACKERR + Stop Mode Acknowledge Error Reset + 5 + 1 + read-only + + + 0 + Reset not caused by peripheral failure to acknowledge attempt to enter stop mode + #0 + + + 1 + Reset caused by peripheral failure to acknowledge attempt to enter stop mode + #1 + + + + + + + RPFC + Reset Pin Filter Control register + 0x4 + 8 + read-write + 0 + 0xFF + + + RSTFLTSRW + Reset Pin Filter Select in Run and Wait Modes + 0 + 2 + read-write + + + 00 + All filtering disabled + #00 + + + 01 + Bus clock filter enabled for normal operation + #01 + + + 10 + LPO clock filter enabled for normal operation + #10 + + + + + RSTFLTSS + Reset Pin Filter Select in Stop Mode + 2 + 1 + read-write + + + 0 + All filtering disabled + #0 + + + 1 + LPO clock filter enabled + #1 + + + + + + + RPFW + Reset Pin Filter Width register + 0x5 + 8 + read-write + 0 + 0xFF + + + RSTFLTSEL + Reset Pin Filter Bus Clock Select + 0 + 5 + read-write + + + 00000 + Bus clock filter count is 1 + #00000 + + + 00001 + Bus clock filter count is 2 + #00001 + + + 00010 + Bus clock filter count is 3 + #00010 + + + 00011 + Bus clock filter count is 4 + #00011 + + + 00100 + Bus clock filter count is 5 + #00100 + + + 00101 + Bus clock filter count is 6 + #00101 + + + 00110 + Bus clock filter count is 7 + #00110 + + + 00111 + Bus clock filter count is 8 + #00111 + + + 01000 + Bus clock filter count is 9 + #01000 + + + 01001 + Bus clock filter count is 10 + #01001 + + + 01010 + Bus clock filter count is 11 + #01010 + + + 01011 + Bus clock filter count is 12 + #01011 + + + 01100 + Bus clock filter count is 13 + #01100 + + + 01101 + Bus clock filter count is 14 + #01101 + + + 01110 + Bus clock filter count is 15 + #01110 + + + 01111 + Bus clock filter count is 16 + #01111 + + + 10000 + Bus clock filter count is 17 + #10000 + + + 10001 + Bus clock filter count is 18 + #10001 + + + 10010 + Bus clock filter count is 19 + #10010 + + + 10011 + Bus clock filter count is 20 + #10011 + + + 10100 + Bus clock filter count is 21 + #10100 + + + 10101 + Bus clock filter count is 22 + #10101 + + + 10110 + Bus clock filter count is 23 + #10110 + + + 10111 + Bus clock filter count is 24 + #10111 + + + 11000 + Bus clock filter count is 25 + #11000 + + + 11001 + Bus clock filter count is 26 + #11001 + + + 11010 + Bus clock filter count is 27 + #11010 + + + 11011 + Bus clock filter count is 28 + #11011 + + + 11100 + Bus clock filter count is 29 + #11100 + + + 11101 + Bus clock filter count is 30 + #11101 + + + 11110 + Bus clock filter count is 31 + #11110 + + + 11111 + Bus clock filter count is 32 + #11111 + + + + + + + MR + Mode Register + 0x7 + 8 + read-only + 0 + 0xFF + + + EZP_MS + EZP_MS_B pin state + 1 + 1 + read-only + + + 0 + Pin deasserted (logic 1) + #0 + + + 1 + Pin asserted (logic 0) + #1 + + + + + + + + + SDHC + Secured Digital Host Controller + SDHC_ + 0x400B1000 + + 0 + 0x100 + registers + + + SDHC + 81 + + + + DSADDR + DMA System Address register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + DSADDR + DMA System Address + 2 + 30 + read-write + + + + + BLKATTR + Block Attributes register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + BLKSIZE + Transfer Block Size + 0 + 13 + read-write + + + 0 + No data transfer. + #0 + + + 1 + 1 Byte + #1 + + + 10 + 2 Bytes + #10 + + + 11 + 3 Bytes + #11 + + + 100 + 4 Bytes + #100 + + + 111111111 + 511 Bytes + #111111111 + + + 1000000000 + 512 Bytes + #1000000000 + + + 100000000000 + 2048 Bytes + #100000000000 + + + 1000000000000 + 4096 Bytes + #1000000000000 + + + + + BLKCNT + Blocks Count For Current Transfer + 16 + 16 + read-write + + + 0 + Stop count. + #0 + + + 1 + 1 block + #1 + + + 10 + 2 blocks + #10 + + + 1111111111111111 + 65535 blocks + #1111111111111111 + + + + + + + CMDARG + Command Argument register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + CMDARG + Command Argument + 0 + 32 + read-write + + + + + XFERTYP + Transfer Type register + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + DMAEN + DMA Enable + 0 + 1 + read-write + + + 0 + Disable + #0 + + + 1 + Enable + #1 + + + + + BCEN + Block Count Enable + 1 + 1 + read-write + + + 0 + Disable + #0 + + + 1 + Enable + #1 + + + + + AC12EN + Auto CMD12 Enable + 2 + 1 + read-write + + + 0 + Disable + #0 + + + 1 + Enable + #1 + + + + + DTDSEL + Data Transfer Direction Select + 4 + 1 + read-write + + + 0 + Write host to card. + #0 + + + 1 + Read card to host. + #1 + + + + + MSBSEL + Multi/Single Block Select + 5 + 1 + read-write + + + 0 + Single block. + #0 + + + 1 + Multiple blocks. + #1 + + + + + RSPTYP + Response Type Select + 16 + 2 + read-write + + + 00 + No response. + #00 + + + 01 + Response length 136. + #01 + + + 10 + Response length 48. + #10 + + + 11 + Response length 48, check busy after response. + #11 + + + + + CCCEN + Command CRC Check Enable + 19 + 1 + read-write + + + 0 + Disable + #0 + + + 1 + Enable + #1 + + + + + CICEN + Command Index Check Enable + 20 + 1 + read-write + + + 0 + Disable + #0 + + + 1 + Enable + #1 + + + + + DPSEL + Data Present Select + 21 + 1 + read-write + + + 0 + No data present. + #0 + + + 1 + Data present. + #1 + + + + + CMDTYP + Command Type + 22 + 2 + read-write + + + 00 + Normal other commands. + #00 + + + 01 + Suspend CMD52 for writing bus suspend in CCCR. + #01 + + + 10 + Resume CMD52 for writing function select in CCCR. + #10 + + + 11 + Abort CMD12, CMD52 for writing I/O abort in CCCR. + #11 + + + + + CMDINX + Command Index + 24 + 6 + read-write + + + + + CMDRSP0 + Command Response 0 + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + CMDRSP0 + Command Response 0 + 0 + 32 + read-only + + + + + CMDRSP1 + Command Response 1 + 0x14 + 32 + read-only + 0 + 0xFFFFFFFF + + + CMDRSP1 + Command Response 1 + 0 + 32 + read-only + + + + + CMDRSP2 + Command Response 2 + 0x18 + 32 + read-only + 0 + 0xFFFFFFFF + + + CMDRSP2 + Command Response 2 + 0 + 32 + read-only + + + + + CMDRSP3 + Command Response 3 + 0x1C + 32 + read-only + 0 + 0xFFFFFFFF + + + CMDRSP3 + Command Response 3 + 0 + 32 + read-only + + + + + DATPORT + Buffer Data Port register + 0x20 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATCONT + Data Content + 0 + 32 + read-write + + + + + PRSSTAT + Present State register + 0x24 + 32 + read-only + 0 + 0xFFFFFFFF + + + CIHB + Command Inhibit (CMD) + 0 + 1 + read-only + + + 0 + Can issue command using only CMD line. + #0 + + + 1 + Cannot issue command. + #1 + + + + + CDIHB + Command Inhibit (DAT) + 1 + 1 + read-only + + + 0 + Can issue command which uses the DAT line. + #0 + + + 1 + Cannot issue command which uses the DAT line. + #1 + + + + + DLA + Data Line Active + 2 + 1 + read-only + + + 0 + DAT line inactive. + #0 + + + 1 + DAT line active. + #1 + + + + + SDSTB + SD Clock Stable + 3 + 1 + read-only + + + 0 + Clock is changing frequency and not stable. + #0 + + + 1 + Clock is stable. + #1 + + + + + IPGOFF + Bus Clock Gated Off Internally + 4 + 1 + read-only + + + 0 + Bus clock is active. + #0 + + + 1 + Bus clock is gated off. + #1 + + + + + HCKOFF + System Clock Gated Off Internally + 5 + 1 + read-only + + + 0 + System clock is active. + #0 + + + 1 + System clock is gated off. + #1 + + + + + PEROFF + SDHC clock Gated Off Internally + 6 + 1 + read-only + + + 0 + SDHC clock is active. + #0 + + + 1 + SDHC clock is gated off. + #1 + + + + + SDOFF + SD Clock Gated Off Internally + 7 + 1 + read-only + + + 0 + SD clock is active. + #0 + + + 1 + SD clock is gated off. + #1 + + + + + WTA + Write Transfer Active + 8 + 1 + read-only + + + 0 + No valid data. + #0 + + + 1 + Transferring data. + #1 + + + + + RTA + Read Transfer Active + 9 + 1 + read-only + + + 0 + No valid data. + #0 + + + 1 + Transferring data. + #1 + + + + + BWEN + Buffer Write Enable + 10 + 1 + read-only + + + 0 + Write disable, the buffer can hold valid data less than the write watermark level. + #0 + + + 1 + Write enable, the buffer can hold valid data greater than the write watermark level. + #1 + + + + + BREN + Buffer Read Enable + 11 + 1 + read-only + + + 0 + Read disable, valid data less than the watermark level exist in the buffer. + #0 + + + 1 + Read enable, valid data greater than the watermark level exist in the buffer. + #1 + + + + + CINS + Card Inserted + 16 + 1 + read-only + + + 0 + Power on reset or no card. + #0 + + + 1 + Card inserted. + #1 + + + + + CLSL + CMD Line Signal Level + 23 + 1 + read-only + + + DLSL + DAT Line Signal Level + 24 + 8 + read-only + + + + + PROCTL + Protocol Control register + 0x28 + 32 + read-write + 0x20 + 0xFFFFFFFF + + + LCTL + LED Control + 0 + 1 + read-write + + + 0 + LED off. + #0 + + + 1 + LED on. + #1 + + + + + DTW + Data Transfer Width + 1 + 2 + read-write + + + 00 + 1-bit mode + #00 + + + 01 + 4-bit mode + #01 + + + 10 + 8-bit mode + #10 + + + + + D3CD + DAT3 As Card Detection Pin + 3 + 1 + read-write + + + 0 + DAT3 does not monitor card Insertion. + #0 + + + 1 + DAT3 as card detection pin. + #1 + + + + + EMODE + Endian Mode + 4 + 2 + read-write + + + 00 + Big endian mode + #00 + + + 01 + Half word big endian mode + #01 + + + 10 + Little endian mode + #10 + + + + + CDTL + Card Detect Test Level + 6 + 1 + read-write + + + 0 + Card detect test level is 0, no card inserted. + #0 + + + 1 + Card detect test level is 1, card inserted. + #1 + + + + + CDSS + Card Detect Signal Selection + 7 + 1 + read-write + + + 0 + Card detection level is selected for normal purpose. + #0 + + + 1 + Card detection test level is selected for test purpose. + #1 + + + + + DMAS + DMA Select + 8 + 2 + read-write + + + 00 + No DMA or simple DMA is selected. + #00 + + + 01 + ADMA1 is selected. + #01 + + + 10 + ADMA2 is selected. + #10 + + + + + SABGREQ + Stop At Block Gap Request + 16 + 1 + read-write + + + 0 + Transfer + #0 + + + 1 + Stop + #1 + + + + + CREQ + Continue Request + 17 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + Restart + #1 + + + + + RWCTL + Read Wait Control + 18 + 1 + read-write + + + 0 + Disable read wait control, and stop SD clock at block gap when SABGREQ is set. + #0 + + + 1 + Enable read wait control, and assert read wait without stopping SD clock at block gap when SABGREQ bit is set. + #1 + + + + + IABG + Interrupt At Block Gap + 19 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + WECINT + Wakeup Event Enable On Card Interrupt + 24 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + WECINS + Wakeup Event Enable On SD Card Insertion + 25 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + WECRM + Wakeup Event Enable On SD Card Removal + 26 + 1 + read-write + + + 0 + Disabled + #0 + + + 1 + Enabled + #1 + + + + + + + SYSCTL + System Control register + 0x2C + 32 + read-write + 0x8008 + 0xFFFFFFFF + + + IPGEN + IPG Clock Enable + 0 + 1 + read-write + + + 0 + Bus clock will be internally gated off. + #0 + + + 1 + Bus clock will not be automatically gated off. + #1 + + + + + HCKEN + System Clock Enable + 1 + 1 + read-write + + + 0 + System clock will be internally gated off. + #0 + + + 1 + System clock will not be automatically gated off. + #1 + + + + + PEREN + Peripheral Clock Enable + 2 + 1 + read-write + + + 0 + SDHC clock will be internally gated off. + #0 + + + 1 + SDHC clock will not be automatically gated off. + #1 + + + + + SDCLKEN + SD Clock Enable + 3 + 1 + read-write + + + DVS + Divisor + 4 + 4 + read-write + + + 0 + Divisor by 1. + #0000 + + + 1 + Divisor by 2. + #0001 + + + 1110 + Divisor by 15. + #1110 + + + 1111 + Divisor by 16. + #1111 + + + + + SDCLKFS + SDCLK Frequency Select + 8 + 8 + read-write + + + 1 + Base clock divided by 2. + #1 + + + 10 + Base clock divided by 4. + #10 + + + 100 + Base clock divided by 8. + #100 + + + 1000 + Base clock divided by 16. + #1000 + + + 10000 + Base clock divided by 32. + #10000 + + + 100000 + Base clock divided by 64. + #100000 + + + 1000000 + Base clock divided by 128. + #1000000 + + + 10000000 + Base clock divided by 256. + #10000000 + + + + + DTOCV + Data Timeout Counter Value + 16 + 4 + read-write + + + 0000 + SDCLK x 2 13 + #0000 + + + 0001 + SDCLK x 2 14 + #0001 + + + 1110 + SDCLK x 2 27 + #1110 + + + + + RSTA + Software Reset For ALL + 24 + 1 + write-only + + + 0 + No reset. + #0 + + + 1 + Reset. + #1 + + + + + RSTC + Software Reset For CMD Line + 25 + 1 + write-only + + + 0 + No reset. + #0 + + + 1 + Reset. + #1 + + + + + RSTD + Software Reset For DAT Line + 26 + 1 + write-only + + + 0 + No reset. + #0 + + + 1 + Reset. + #1 + + + + + INITA + Initialization Active + 27 + 1 + read-write + + + + + IRQSTAT + Interrupt Status register + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + CC + Command Complete + 0 + 1 + read-write + + + 0 + Command not complete. + #0 + + + 1 + Command complete. + #1 + + + + + TC + Transfer Complete + 1 + 1 + read-write + + + 0 + Transfer not complete. + #0 + + + 1 + Transfer complete. + #1 + + + + + BGE + Block Gap Event + 2 + 1 + read-write + + + 0 + No block gap event. + #0 + + + 1 + Transaction stopped at block gap. + #1 + + + + + DINT + DMA Interrupt + 3 + 1 + read-write + + + 0 + No DMA Interrupt. + #0 + + + 1 + DMA Interrupt is generated. + #1 + + + + + BWR + Buffer Write Ready + 4 + 1 + read-write + + + 0 + Not ready to write buffer. + #0 + + + 1 + Ready to write buffer. + #1 + + + + + BRR + Buffer Read Ready + 5 + 1 + read-write + + + 0 + Not ready to read buffer. + #0 + + + 1 + Ready to read buffer. + #1 + + + + + CINS + Card Insertion + 6 + 1 + read-write + + + 0 + Card state unstable or removed. + #0 + + + 1 + Card inserted. + #1 + + + + + CRM + Card Removal + 7 + 1 + read-write + + + 0 + Card state unstable or inserted. + #0 + + + 1 + Card removed. + #1 + + + + + CINT + Card Interrupt + 8 + 1 + read-write + + + 0 + No Card Interrupt. + #0 + + + 1 + Generate Card Interrupt. + #1 + + + + + CTOE + Command Timeout Error + 16 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Time out. + #1 + + + + + CCE + Command CRC Error + 17 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + CRC Error generated. + #1 + + + + + CEBE + Command End Bit Error + 18 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + End Bit Error generated. + #1 + + + + + CIE + Command Index Error + 19 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + DTOE + Data Timeout Error + 20 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Time out. + #1 + + + + + DCE + Data CRC Error + 21 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + DEBE + Data End Bit Error + 22 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + AC12E + Auto CMD12 Error + 24 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + DMAE + DMA Error + 28 + 1 + read-write + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + + + IRQSTATEN + Interrupt Status Enable register + 0x34 + 32 + read-write + 0x117F013F + 0xFFFFFFFF + + + CCSEN + Command Complete Status Enable + 0 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + TCSEN + Transfer Complete Status Enable + 1 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + BGESEN + Block Gap Event Status Enable + 2 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DINTSEN + DMA Interrupt Status Enable + 3 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + BWRSEN + Buffer Write Ready Status Enable + 4 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + BRRSEN + Buffer Read Ready Status Enable + 5 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CINSEN + Card Insertion Status Enable + 6 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CRMSEN + Card Removal Status Enable + 7 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CINTSEN + Card Interrupt Status Enable + 8 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CTOESEN + Command Timeout Error Status Enable + 16 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CCESEN + Command CRC Error Status Enable + 17 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CEBESEN + Command End Bit Error Status Enable + 18 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CIESEN + Command Index Error Status Enable + 19 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DTOESEN + Data Timeout Error Status Enable + 20 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DCESEN + Data CRC Error Status Enable + 21 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DEBESEN + Data End Bit Error Status Enable + 22 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + AC12ESEN + Auto CMD12 Error Status Enable + 24 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DMAESEN + DMA Error Status Enable + 28 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + + + IRQSIGEN + Interrupt Signal Enable register + 0x38 + 32 + read-write + 0 + 0xFFFFFFFF + + + CCIEN + Command Complete Interrupt Enable + 0 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + TCIEN + Transfer Complete Interrupt Enable + 1 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + BGEIEN + Block Gap Event Interrupt Enable + 2 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DINTIEN + DMA Interrupt Enable + 3 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + BWRIEN + Buffer Write Ready Interrupt Enable + 4 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + BRRIEN + Buffer Read Ready Interrupt Enable + 5 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CINSIEN + Card Insertion Interrupt Enable + 6 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CRMIEN + Card Removal Interrupt Enable + 7 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CINTIEN + Card Interrupt Enable + 8 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CTOEIEN + Command Timeout Error Interrupt Enable + 16 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CCEIEN + Command CRC Error Interrupt Enable + 17 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CEBEIEN + Command End Bit Error Interrupt Enable + 18 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + CIEIEN + Command Index Error Interrupt Enable + 19 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DTOEIEN + Data Timeout Error Interrupt Enable + 20 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DCEIEN + Data CRC Error Interrupt Enable + 21 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DEBEIEN + Data End Bit Error Interrupt Enable + 22 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + AC12EIEN + Auto CMD12 Error Interrupt Enable + 24 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + DMAEIEN + DMA Error Interrupt Enable + 28 + 1 + read-write + + + 0 + Masked + #0 + + + 1 + Enabled + #1 + + + + + + + AC12ERR + Auto CMD12 Error Status Register + 0x3C + 32 + read-only + 0 + 0xFFFFFFFF + + + AC12NE + Auto CMD12 Not Executed + 0 + 1 + read-only + + + 0 + Executed. + #0 + + + 1 + Not executed. + #1 + + + + + AC12TOE + Auto CMD12 Timeout Error + 1 + 1 + read-only + + + 0 + No error. + #0 + + + 1 + Time out. + #1 + + + + + AC12EBE + Auto CMD12 End Bit Error + 2 + 1 + read-only + + + 0 + No error. + #0 + + + 1 + End bit error generated. + #1 + + + + + AC12CE + Auto CMD12 CRC Error + 3 + 1 + read-only + + + 0 + No CRC error. + #0 + + + 1 + CRC error met in Auto CMD12 response. + #1 + + + + + AC12IE + Auto CMD12 Index Error + 4 + 1 + read-only + + + 0 + No error. + #0 + + + 1 + Error, the CMD index in response is not CMD12. + #1 + + + + + CNIBAC12E + Command Not Issued By Auto CMD12 Error + 7 + 1 + read-only + + + 0 + No error. + #0 + + + 1 + Not issued. + #1 + + + + + + + HTCAPBLT + Host Controller Capabilities + 0x40 + 32 + read-only + 0x7F30000 + 0xFFFFFFFF + + + MBL + Max Block Length + 16 + 3 + read-only + + + 000 + 512 bytes + #000 + + + 001 + 1024 bytes + #001 + + + 010 + 2048 bytes + #010 + + + 011 + 4096 bytes + #011 + + + + + ADMAS + ADMA Support + 20 + 1 + read-only + + + 0 + Advanced DMA not supported. + #0 + + + 1 + Advanced DMA supported. + #1 + + + + + HSS + High Speed Support + 21 + 1 + read-only + + + 0 + High speed not supported. + #0 + + + 1 + High speed supported. + #1 + + + + + DMAS + DMA Support + 22 + 1 + read-only + + + 0 + DMA not supported. + #0 + + + 1 + DMA supported. + #1 + + + + + SRS + Suspend/Resume Support + 23 + 1 + read-only + + + 0 + Not supported. + #0 + + + 1 + Supported. + #1 + + + + + VS33 + Voltage Support 3.3 V + 24 + 1 + read-only + + + 0 + 3.3 V not supported. + #0 + + + 1 + 3.3 V supported. + #1 + + + + + + + WML + Watermark Level Register + 0x44 + 32 + read-write + 0x100010 + 0xFFFFFFFF + + + RDWML + Read Watermark Level + 0 + 8 + read-write + + + WRWML + Write Watermark Level + 16 + 8 + read-write + + + + + FEVT + Force Event register + 0x50 + 32 + write-only + 0 + 0xFFFFFFFF + + + AC12NE + Force Event Auto Command 12 Not Executed + 0 + 1 + write-only + + + AC12TOE + Force Event Auto Command 12 Time Out Error + 1 + 1 + write-only + + + AC12CE + Force Event Auto Command 12 CRC Error + 2 + 1 + write-only + + + AC12EBE + Force Event Auto Command 12 End Bit Error + 3 + 1 + write-only + + + AC12IE + Force Event Auto Command 12 Index Error + 4 + 1 + write-only + + + CNIBAC12E + Force Event Command Not Executed By Auto Command 12 Error + 7 + 1 + write-only + + + CTOE + Force Event Command Time Out Error + 16 + 1 + write-only + + + CCE + Force Event Command CRC Error + 17 + 1 + write-only + + + CEBE + Force Event Command End Bit Error + 18 + 1 + write-only + + + CIE + Force Event Command Index Error + 19 + 1 + write-only + + + DTOE + Force Event Data Time Out Error + 20 + 1 + write-only + + + DCE + Force Event Data CRC Error + 21 + 1 + write-only + + + DEBE + Force Event Data End Bit Error + 22 + 1 + write-only + + + AC12E + Force Event Auto Command 12 Error + 24 + 1 + write-only + + + DMAE + Force Event DMA Error + 28 + 1 + write-only + + + CINT + Force Event Card Interrupt + 31 + 1 + write-only + + + + + ADMAES + ADMA Error Status register + 0x54 + 32 + read-only + 0 + 0xFFFFFFFF + + + ADMAES + ADMA Error State (When ADMA Error Is Occurred.) + 0 + 2 + read-only + + + ADMALME + ADMA Length Mismatch Error + 2 + 1 + read-only + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + ADMADCE + ADMA Descriptor Error + 3 + 1 + read-only + + + 0 + No error. + #0 + + + 1 + Error. + #1 + + + + + + + ADSADDR + ADMA System Addressregister + 0x58 + 32 + read-write + 0 + 0xFFFFFFFF + + + ADSADDR + ADMA System Address + 2 + 30 + read-write + + + + + VENDOR + Vendor Specific register + 0xC0 + 32 + read-write + 0x1 + 0xFFFFFFFF + + + EXTDMAEN + External DMA Request Enable + 0 + 1 + read-write + + + 0 + In any scenario, SDHC does not send out the external DMA request. + #0 + + + 1 + When internal DMA is not active, the external DMA request will be sent out. + #1 + + + + + EXBLKNU + Exact Block Number Block Read Enable For SDIO CMD53 + 1 + 1 + read-write + + + 0 + None exact block read. + #0 + + + 1 + Exact block read for SDIO CMD53. + #1 + + + + + INTSTVAL + Internal State Value + 16 + 8 + read-only + + + + + MMCBOOT + MMC Boot register + 0xC4 + 32 + read-write + 0 + 0xFFFFFFFF + + + DTOCVACK + Boot ACK Time Out Counter Value + 0 + 4 + read-write + + + 0000 + SDCLK x 2^8 + #0000 + + + 0001 + SDCLK x 2^9 + #0001 + + + 0010 + SDCLK x 2^10 + #0010 + + + 0011 + SDCLK x 2^11 + #0011 + + + 0100 + SDCLK x 2^12 + #0100 + + + 0101 + SDCLK x 2^13 + #0101 + + + 0110 + SDCLK x 2^14 + #0110 + + + 0111 + SDCLK x 2^15 + #0111 + + + 1110 + SDCLK x 2^22 + #1110 + + + + + BOOTACK + Boot Ack Mode Select + 4 + 1 + read-write + + + 0 + No ack. + #0 + + + 1 + Ack. + #1 + + + + + BOOTMODE + Boot Mode Select + 5 + 1 + read-write + + + 0 + Normal boot. + #0 + + + 1 + Alternative boot. + #1 + + + + + BOOTEN + Boot Mode Enable + 6 + 1 + read-write + + + 0 + Fast boot disable. + #0 + + + 1 + Fast boot enable. + #1 + + + + + AUTOSABGEN + When boot, enable auto stop at block gap function + 7 + 1 + read-write + + + BOOTBLKCNT + Defines the stop at block gap value of automatic mode + 16 + 16 + read-write + + + + + HOSTVER + Host Controller Version + 0xFC + 32 + read-only + 0x1201 + 0xFFFFFFFF + + + SVN + Specification Version Number + 0 + 8 + read-only + + + 1 + SD host specification version 2.0, supports test event register and ADMA. + #1 + + + + + VVN + Vendor Version Number + 8 + 8 + read-only + + + 0 + Freescale SDHC version 1.0 + #0 + + + 10000 + Freescale SDHC version 2.0 + #10000 + + + 10001 + Freescale SDHC version 2.1 + #10001 + + + 10010 + Freescale SDHC version 2.2 + #10010 + + + + + + + + + ENET + Ethernet MAC-NET Core + ENET_ + 0x400C0000 + + 0x4 + 0x624 + registers + + + ENET_1588_Timer + 82 + + + ENET_Transmit + 83 + + + ENET_Receive + 84 + + + ENET_Error + 85 + + + + EIR + Interrupt Event Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + TS_TIMER + Timestamp Timer + 15 + 1 + read-write + + + TS_AVAIL + Transmit Timestamp Available + 16 + 1 + read-write + + + WAKEUP + Node Wakeup Request Indication + 17 + 1 + read-write + + + PLR + Payload Receive Error + 18 + 1 + read-write + + + UN + Transmit FIFO Underrun + 19 + 1 + read-write + + + RL + Collision Retry Limit + 20 + 1 + read-write + + + LC + Late Collision + 21 + 1 + read-write + + + EBERR + Ethernet Bus Error + 22 + 1 + read-write + + + MII + MII Interrupt. + 23 + 1 + read-write + + + RXB + Receive Buffer Interrupt + 24 + 1 + read-write + + + RXF + Receive Frame Interrupt + 25 + 1 + read-write + + + TXB + Transmit Buffer Interrupt + 26 + 1 + read-write + + + TXF + Transmit Frame Interrupt + 27 + 1 + read-write + + + GRA + Graceful Stop Complete + 28 + 1 + read-write + + + BABT + Babbling Transmit Error + 29 + 1 + read-write + + + BABR + Babbling Receive Error + 30 + 1 + read-write + + + + + EIMR + Interrupt Mask Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + TS_TIMER + TS_TIMER Interrupt Mask + 15 + 1 + read-write + + + TS_AVAIL + TS_AVAIL Interrupt Mask + 16 + 1 + read-write + + + WAKEUP + WAKEUP Interrupt Mask + 17 + 1 + read-write + + + PLR + PLR Interrupt Mask + 18 + 1 + read-write + + + UN + UN Interrupt Mask + 19 + 1 + read-write + + + RL + RL Interrupt Mask + 20 + 1 + read-write + + + LC + LC Interrupt Mask + 21 + 1 + read-write + + + EBERR + EBERR Interrupt Mask + 22 + 1 + read-write + + + MII + MII Interrupt Mask + 23 + 1 + read-write + + + RXB + RXB Interrupt Mask + 24 + 1 + read-write + + + RXF + RXF Interrupt Mask + 25 + 1 + read-write + + + TXB + TXB Interrupt Mask + 26 + 1 + read-write + + + 0 + The corresponding interrupt source is masked. + #0 + + + 1 + The corresponding interrupt source is not masked. + #1 + + + + + TXF + TXF Interrupt Mask + 27 + 1 + read-write + + + 0 + The corresponding interrupt source is masked. + #0 + + + 1 + The corresponding interrupt source is not masked. + #1 + + + + + GRA + GRA Interrupt Mask + 28 + 1 + read-write + + + 0 + The corresponding interrupt source is masked. + #0 + + + 1 + The corresponding interrupt source is not masked. + #1 + + + + + BABT + BABT Interrupt Mask + 29 + 1 + read-write + + + 0 + The corresponding interrupt source is masked. + #0 + + + 1 + The corresponding interrupt source is not masked. + #1 + + + + + BABR + BABR Interrupt Mask + 30 + 1 + read-write + + + 0 + The corresponding interrupt source is masked. + #0 + + + 1 + The corresponding interrupt source is not masked. + #1 + + + + + + + RDAR + Receive Descriptor Active Register + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + RDAR + Receive Descriptor Active + 24 + 1 + read-write + + + + + TDAR + Transmit Descriptor Active Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + TDAR + Transmit Descriptor Active + 24 + 1 + read-write + + + + + ECR + Ethernet Control Register + 0x24 + 32 + read-write + 0xF0000000 + 0xFFFFFFFF + + + RESET + Ethernet MAC Reset + 0 + 1 + read-write + + + ETHEREN + Ethernet Enable + 1 + 1 + read-write + + + 0 + Reception immediately stops and transmission stops after a bad CRC is appended to any currently transmitted frame. + #0 + + + 1 + MAC is enabled, and reception and transmission are possible. + #1 + + + + + MAGICEN + Magic Packet Detection Enable + 2 + 1 + read-write + + + 0 + Magic detection logic disabled. + #0 + + + 1 + The MAC core detects magic packets and asserts EIR[WAKEUP] when a frame is detected. + #1 + + + + + SLEEP + Sleep Mode Enable + 3 + 1 + read-write + + + 0 + Normal operating mode. + #0 + + + 1 + Sleep mode. + #1 + + + + + EN1588 + EN1588 Enable + 4 + 1 + read-write + + + 0 + Legacy FEC buffer descriptors and functions enabled. + #0 + + + 1 + Enhanced frame time-stamping functions enabled. + #1 + + + + + DBGEN + Debug Enable + 6 + 1 + read-write + + + 0 + MAC continues operation in debug mode. + #0 + + + 1 + MAC enters hardware freeze mode when the processor is in debug mode. + #1 + + + + + STOPEN + STOPEN Signal Control + 7 + 1 + read-write + + + DBSWP + Descriptor Byte Swapping Enable + 8 + 1 + read-write + + + 0 + The buffer descriptor bytes are not swapped to support big-endian devices. + #0 + + + 1 + The buffer descriptor bytes are swapped to support little-endian devices. + #1 + + + + + + + MMFR + MII Management Frame Register + 0x40 + 32 + read-write + 0 + 0xFFFFFFFF + + + DATA + Management Frame Data + 0 + 16 + read-write + + + TA + Turn Around + 16 + 2 + read-write + + + RA + Register Address + 18 + 5 + read-write + + + PA + PHY Address + 23 + 5 + read-write + + + OP + Operation Code + 28 + 2 + read-write + + + 00 + Write frame operation, but not MII compliant. + #00 + + + 01 + Write frame operation for a valid MII management frame. + #01 + + + 10 + Read frame operation for a valid MII management frame. + #10 + + + 11 + Read frame operation, but not MII compliant. + #11 + + + + + ST + Start Of Frame Delimiter + 30 + 2 + read-write + + + + + MSCR + MII Speed Control Register + 0x44 + 32 + read-write + 0 + 0xFFFFFFFF + + + MII_SPEED + MII Speed + 1 + 6 + read-write + + + DIS_PRE + Disable Preamble + 7 + 1 + read-write + + + 0 + Preamble enabled. + #0 + + + 1 + Preamble (32 ones) is not prepended to the MII management frame. + #1 + + + + + HOLDTIME + Hold time On MDIO Output + 8 + 3 + read-write + + + 000 + 1 internal module clock cycle + #000 + + + 001 + 2 internal module clock cycles + #001 + + + 010 + 3 internal module clock cycles + #010 + + + 111 + 8 internal module clock cycles + #111 + + + + + + + MIBC + MIB Control Register + 0x64 + 32 + read-write + 0xC0000000 + 0xFFFFFFFF + + + MIB_CLEAR + MIB Clear + 29 + 1 + read-write + + + MIB_IDLE + MIB Idle + 30 + 1 + read-only + + + MIB_DIS + Disable MIB Logic + 31 + 1 + read-write + + + + + RCR + Receive Control Register + 0x84 + 32 + read-write + 0x5EE0001 + 0xFFFFFFFF + + + LOOP + Internal Loopback + 0 + 1 + read-write + + + 0 + Loopback disabled. + #0 + + + 1 + Transmitted frames are looped back internal to the device and transmit MII output signals are not asserted. DRT must be cleared. + #1 + + + + + DRT + Disable Receive On Transmit + 1 + 1 + read-write + + + 0 + Receive path operates independently of transmit. Used for full-duplex or to monitor transmit activity in half-duplex mode. + #0 + + + 1 + Disable reception of frames while transmitting. Normally used for half-duplex mode. + #1 + + + + + MII_MODE + Media Independent Interface Mode + 2 + 1 + read-write + + + 1 + MII or RMII mode, as indicated by the RMII_MODE field. + #1 + + + + + PROM + Promiscuous Mode + 3 + 1 + read-write + + + 0 + Disabled. + #0 + + + 1 + Enabled. + #1 + + + + + BC_REJ + Broadcast Frame Reject + 4 + 1 + read-write + + + FCE + Flow Control Enable + 5 + 1 + read-write + + + RMII_MODE + RMII Mode Enable + 8 + 1 + read-write + + + 0 + MAC configured for MII mode. + #0 + + + 1 + MAC configured for RMII operation. + #1 + + + + + RMII_10T + Enables 10-Mbps mode of the RMII . + 9 + 1 + read-write + + + 0 + 100 Mbps operation. + #0 + + + 1 + 10 Mbps operation. + #1 + + + + + PADEN + Enable Frame Padding Remove On Receive + 12 + 1 + read-write + + + 0 + No padding is removed on receive by the MAC. + #0 + + + 1 + Padding is removed from received frames. + #1 + + + + + PAUFWD + Terminate/Forward Pause Frames + 13 + 1 + read-write + + + 0 + Pause frames are terminated and discarded in the MAC. + #0 + + + 1 + Pause frames are forwarded to the user application. + #1 + + + + + CRCFWD + Terminate/Forward Received CRC + 14 + 1 + read-write + + + 0 + The CRC field of received frames is transmitted to the user application. + #0 + + + 1 + The CRC field is stripped from the frame. + #1 + + + + + CFEN + MAC Control Frame Enable + 15 + 1 + read-write + + + 0 + MAC control frames with any opcode other than 0x0001 (pause frame) are accepted and forwarded to the client interface. + #0 + + + 1 + MAC control frames with any opcode other than 0x0001 (pause frame) are silently discarded. + #1 + + + + + MAX_FL + Maximum Frame Length + 16 + 14 + read-write + + + NLC + Payload Length Check Disable + 30 + 1 + read-write + + + 0 + The payload length check is disabled. + #0 + + + 1 + The core checks the frame's payload length with the frame length/type field. Errors are indicated in the EIR[PLC] field. + #1 + + + + + GRS + Graceful Receive Stopped + 31 + 1 + read-only + + + + + TCR + Transmit Control Register + 0xC4 + 32 + read-write + 0 + 0xFFFFFFFF + + + GTS + Graceful Transmit Stop + 0 + 1 + read-write + + + FDEN + Full-Duplex Enable + 2 + 1 + read-write + + + TFC_PAUSE + Transmit Frame Control Pause + 3 + 1 + read-write + + + 0 + No PAUSE frame transmitted. + #0 + + + 1 + The MAC stops transmission of data frames after the current transmission is complete. + #1 + + + + + RFC_PAUSE + Receive Frame Control Pause + 4 + 1 + read-only + + + ADDSEL + Source MAC Address Select On Transmit + 5 + 3 + read-write + + + 000 + Node MAC address programmed on PADDR1/2 registers. + #000 + + + + + ADDINS + Set MAC Address On Transmit + 8 + 1 + read-write + + + 0 + The source MAC address is not modified by the MAC. + #0 + + + 1 + The MAC overwrites the source MAC address with the programmed MAC address according to ADDSEL. + #1 + + + + + CRCFWD + Forward Frame From Application With CRC + 9 + 1 + read-write + + + 0 + TxBD[TC] controls whether the frame has a CRC from the application. + #0 + + + 1 + The transmitter does not append any CRC to transmitted frames, as it is expecting a frame with CRC from the application. + #1 + + + + + + + PALR + Physical Address Lower Register + 0xE4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PADDR1 + Pause Address + 0 + 32 + read-write + + + + + PAUR + Physical Address Upper Register + 0xE8 + 32 + read-write + 0x8808 + 0xFFFFFFFF + + + TYPE + Type Field In PAUSE Frames + 0 + 16 + read-only + + + PADDR2 + Bytes 4 (bits 31:24) and 5 (bits 23:16) of the 6-byte individual address used for exact match, and the source address field in PAUSE frames + 16 + 16 + read-write + + + + + OPD + Opcode/Pause Duration Register + 0xEC + 32 + read-write + 0x10000 + 0xFFFFFFFF + + + PAUSE_DUR + Pause Duration + 0 + 16 + read-write + + + OPCODE + Opcode Field In PAUSE Frames + 16 + 16 + read-only + + + + + IAUR + Descriptor Individual Upper Address Register + 0x118 + 32 + read-write + 0 + 0xFFFFFFFF + + + IADDR1 + Contains the upper 32 bits of the 64-bit hash table used in the address recognition process for receive frames with a unicast address + 0 + 32 + read-write + + + + + IALR + Descriptor Individual Lower Address Register + 0x11C + 32 + read-write + 0 + 0xFFFFFFFF + + + IADDR2 + Contains the lower 32 bits of the 64-bit hash table used in the address recognition process for receive frames with a unicast address + 0 + 32 + read-write + + + + + GAUR + Descriptor Group Upper Address Register + 0x120 + 32 + read-write + 0 + 0xFFFFFFFF + + + GADDR1 + Contains the upper 32 bits of the 64-bit hash table used in the address recognition process for receive frames with a multicast address + 0 + 32 + read-write + + + + + GALR + Descriptor Group Lower Address Register + 0x124 + 32 + read-write + 0 + 0xFFFFFFFF + + + GADDR2 + Contains the lower 32 bits of the 64-bit hash table used in the address recognition process for receive frames with a multicast address + 0 + 32 + read-write + + + + + TFWR + Transmit FIFO Watermark Register + 0x144 + 32 + read-write + 0 + 0xFFFFFFFF + + + TFWR + Transmit FIFO Write + 0 + 6 + read-write + + + 000000 + 64 bytes written. + #0 + + + 000001 + 64 bytes written. + #1 + + + 000010 + 128 bytes written. + #10 + + + 000011 + 192 bytes written. + #11 + + + 111110 + 3968 bytes written. + #111110 + + + 111111 + 4032 bytes written. + #111111 + + + + + STRFWD + Store And Forward Enable + 8 + 1 + read-write + + + 0 + Reset. The transmission start threshold is programmed in TFWR[TFWR]. + #0 + + + 1 + Enabled. + #1 + + + + + + + RDSR + Receive Descriptor Ring Start Register + 0x180 + 32 + read-write + 0 + 0xFFFFFFFF + + + R_DES_START + Pointer to the beginning of the receive buffer descriptor queue. + 3 + 29 + read-write + + + + + TDSR + Transmit Buffer Descriptor Ring Start Register + 0x184 + 32 + read-write + 0 + 0xFFFFFFFF + + + X_DES_START + Pointer to the beginning of the transmit buffer descriptor queue. + 3 + 29 + read-write + + + + + MRBR + Maximum Receive Buffer Size Register + 0x188 + 32 + read-write + 0 + 0xFFFFFFFF + + + R_BUF_SIZE + Receive buffer size in bytes. + 4 + 10 + read-write + + + + + RSFL + Receive FIFO Section Full Threshold + 0x190 + 32 + read-write + 0 + 0xFFFFFFFF + + + RX_SECTION_FULL + Value Of Receive FIFO Section Full Threshold + 0 + 8 + read-write + + + + + RSEM + Receive FIFO Section Empty Threshold + 0x194 + 32 + read-write + 0 + 0xFFFFFFFF + + + RX_SECTION_EMPTY + Value Of The Receive FIFO Section Empty Threshold + 0 + 8 + read-write + + + STAT_SECTION_EMPTY + RX Status FIFO Section Empty Threshold + 16 + 5 + read-write + + + + + RAEM + Receive FIFO Almost Empty Threshold + 0x198 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + RX_ALMOST_EMPTY + Value Of The Receive FIFO Almost Empty Threshold + 0 + 8 + read-write + + + + + RAFL + Receive FIFO Almost Full Threshold + 0x19C + 32 + read-write + 0x4 + 0xFFFFFFFF + + + RX_ALMOST_FULL + Value Of The Receive FIFO Almost Full Threshold + 0 + 8 + read-write + + + + + TSEM + Transmit FIFO Section Empty Threshold + 0x1A0 + 32 + read-write + 0 + 0xFFFFFFFF + + + TX_SECTION_EMPTY + Value Of The Transmit FIFO Section Empty Threshold + 0 + 8 + read-write + + + + + TAEM + Transmit FIFO Almost Empty Threshold + 0x1A4 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + TX_ALMOST_EMPTY + Value of Transmit FIFO Almost Empty Threshold + 0 + 8 + read-write + + + + + TAFL + Transmit FIFO Almost Full Threshold + 0x1A8 + 32 + read-write + 0x8 + 0xFFFFFFFF + + + TX_ALMOST_FULL + Value Of The Transmit FIFO Almost Full Threshold + 0 + 8 + read-write + + + + + TIPG + Transmit Inter-Packet Gap + 0x1AC + 32 + read-write + 0xC + 0xFFFFFFFF + + + IPG + Transmit Inter-Packet Gap + 0 + 5 + read-write + + + + + FTRL + Frame Truncation Length + 0x1B0 + 32 + read-write + 0x7FF + 0xFFFFFFFF + + + TRUNC_FL + Frame Truncation Length + 0 + 14 + read-write + + + + + TACC + Transmit Accelerator Function Configuration + 0x1C0 + 32 + read-write + 0 + 0xFFFFFFFF + + + SHIFT16 + TX FIFO Shift-16 + 0 + 1 + read-write + + + 0 + Disabled. + #0 + + + 1 + Indicates to the transmit data FIFO that the written frames contain two additional octets before the frame data. This means the actual frame begins at bit 16 of the first word written into the FIFO. This function allows putting the frame payload on a 32-bit boundary in memory, as the 14-byte Ethernet header is extended to a 16-byte header. + #1 + + + + + IPCHK + Enables insertion of IP header checksum. + 3 + 1 + read-write + + + 0 + Checksum is not inserted. + #0 + + + 1 + If an IP frame is transmitted, the checksum is inserted automatically. The IP header checksum field must be cleared. If a non-IP frame is transmitted the frame is not modified. + #1 + + + + + PROCHK + Enables insertion of protocol checksum. + 4 + 1 + read-write + + + 0 + Checksum not inserted. + #0 + + + 1 + If an IP frame with a known protocol is transmitted, the checksum is inserted automatically into the frame. The checksum field must be cleared. The other frames are not modified. + #1 + + + + + + + RACC + Receive Accelerator Function Configuration + 0x1C4 + 32 + read-write + 0 + 0xFFFFFFFF + + + PADREM + Enable Padding Removal For Short IP Frames + 0 + 1 + read-write + + + 0 + Padding not removed. + #0 + + + 1 + Any bytes following the IP payload section of the frame are removed from the frame. + #1 + + + + + IPDIS + Enable Discard Of Frames With Wrong IPv4 Header Checksum + 1 + 1 + read-write + + + 0 + Frames with wrong IPv4 header checksum are not discarded. + #0 + + + 1 + If an IPv4 frame is received with a mismatching header checksum, the frame is discarded. IPv6 has no header checksum and is not affected by this setting. Discarding is only available when the RX FIFO operates in store and forward mode (RSFL cleared). + #1 + + + + + PRODIS + Enable Discard Of Frames With Wrong Protocol Checksum + 2 + 1 + read-write + + + 0 + Frames with wrong checksum are not discarded. + #0 + + + 1 + If a TCP/IP, UDP/IP, or ICMP/IP frame is received that has a wrong TCP, UDP, or ICMP checksum, the frame is discarded. Discarding is only available when the RX FIFO operates in store and forward mode (RSFL cleared). + #1 + + + + + LINEDIS + Enable Discard Of Frames With MAC Layer Errors + 6 + 1 + read-write + + + 0 + Frames with errors are not discarded. + #0 + + + 1 + Any frame received with a CRC, length, or PHY error is automatically discarded and not forwarded to the user application interface. + #1 + + + + + SHIFT16 + RX FIFO Shift-16 + 7 + 1 + read-write + + + 0 + Disabled. + #0 + + + 1 + Instructs the MAC to write two additional bytes in front of each frame received into the RX FIFO. + #1 + + + + + + + RMON_T_PACKETS + Tx Packet Count Statistic Register + 0x204 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_BC_PKT + Tx Broadcast Packets Statistic Register + 0x208 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Broadcast packets + 0 + 16 + read-only + + + + + RMON_T_MC_PKT + Tx Multicast Packets Statistic Register + 0x20C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Multicast packets + 0 + 16 + read-only + + + + + RMON_T_CRC_ALIGN + Tx Packets with CRC/Align Error Statistic Register + 0x210 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packets with CRC/align error + 0 + 16 + read-only + + + + + RMON_T_UNDERSIZE + Tx Packets Less Than Bytes and Good CRC Statistic Register + 0x214 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_OVERSIZE + Tx Packets GT MAX_FL bytes and Good CRC Statistic Register + 0x218 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_FRAG + Tx Packets Less Than 64 Bytes and Bad CRC Statistic Register + 0x21C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_JAB + Tx Packets Greater Than MAX_FL bytes and Bad CRC Statistic Register + 0x220 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_COL + Tx Collision Count Statistic Register + 0x224 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P64 + Tx 64-Byte Packets Statistic Register + 0x228 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P65TO127 + Tx 65- to 127-byte Packets Statistic Register + 0x22C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P128TO255 + Tx 128- to 255-byte Packets Statistic Register + 0x230 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P256TO511 + Tx 256- to 511-byte Packets Statistic Register + 0x234 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P512TO1023 + Tx 512- to 1023-byte Packets Statistic Register + 0x238 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P1024TO2047 + Tx 1024- to 2047-byte Packets Statistic Register + 0x23C + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_P_GTE2048 + Tx Packets Greater Than 2048 Bytes Statistic Register + 0x240 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXPKTS + Packet count + 0 + 16 + read-only + + + + + RMON_T_OCTETS + Tx Octets Statistic Register + 0x244 + 32 + read-only + 0 + 0xFFFFFFFF + + + TXOCTS + Octet count + 0 + 32 + read-only + + + + + IEEE_T_FRAME_OK + Frames Transmitted OK Statistic Register + 0x24C + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_1COL + Frames Transmitted with Single Collision Statistic Register + 0x250 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_MCOL + Frames Transmitted with Multiple Collisions Statistic Register + 0x254 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_DEF + Frames Transmitted after Deferral Delay Statistic Register + 0x258 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_LCOL + Frames Transmitted with Late Collision Statistic Register + 0x25C + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_EXCOL + Frames Transmitted with Excessive Collisions Statistic Register + 0x260 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_MACERR + Frames Transmitted with Tx FIFO Underrun Statistic Register + 0x264 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_CSERR + Frames Transmitted with Carrier Sense Error Statistic Register + 0x268 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_FDXFC + Flow Control Pause Frames Transmitted Statistic Register + 0x270 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_T_OCTETS_OK + Octet Count for Frames Transmitted w/o Error Statistic Register + 0x274 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Octet count + 0 + 32 + read-only + + + + + RMON_R_PACKETS + Rx Packet Count Statistic Register + 0x284 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_BC_PKT + Rx Broadcast Packets Statistic Register + 0x288 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_MC_PKT + Rx Multicast Packets Statistic Register + 0x28C + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_CRC_ALIGN + Rx Packets with CRC/Align Error Statistic Register + 0x290 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_UNDERSIZE + Rx Packets with Less Than 64 Bytes and Good CRC Statistic Register + 0x294 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_OVERSIZE + Rx Packets Greater Than MAX_FL and Good CRC Statistic Register + 0x298 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_FRAG + Rx Packets Less Than 64 Bytes and Bad CRC Statistic Register + 0x29C + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_JAB + Rx Packets Greater Than MAX_FL Bytes and Bad CRC Statistic Register + 0x2A0 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P64 + Rx 64-Byte Packets Statistic Register + 0x2A8 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P65TO127 + Rx 65- to 127-Byte Packets Statistic Register + 0x2AC + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P128TO255 + Rx 128- to 255-Byte Packets Statistic Register + 0x2B0 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P256TO511 + Rx 256- to 511-Byte Packets Statistic Register + 0x2B4 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P512TO1023 + Rx 512- to 1023-Byte Packets Statistic Register + 0x2B8 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P1024TO2047 + Rx 1024- to 2047-Byte Packets Statistic Register + 0x2BC + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_P_GTE2048 + Rx Packets Greater than 2048 Bytes Statistic Register + 0x2C0 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Packet count + 0 + 16 + read-only + + + + + RMON_R_OCTETS + Rx Octets Statistic Register + 0x2C4 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Octet count + 0 + 32 + read-only + + + + + IEEE_R_DROP + Frames not Counted Correctly Statistic Register + 0x2C8 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_R_FRAME_OK + Frames Received OK Statistic Register + 0x2CC + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_R_CRC + Frames Received with CRC Error Statistic Register + 0x2D0 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_R_ALIGN + Frames Received with Alignment Error Statistic Register + 0x2D4 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Frame count + 0 + 16 + read-only + + + + + IEEE_R_MACERR + Receive FIFO Overflow Count Statistic Register + 0x2D8 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Count + 0 + 16 + read-only + + + + + IEEE_R_FDXFC + Flow Control Pause Frames Received Statistic Register + 0x2DC + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Pause frame count + 0 + 16 + read-only + + + + + IEEE_R_OCTETS_OK + Octet Count for Frames Received without Error Statistic Register + 0x2E0 + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNT + Octet count + 0 + 32 + read-only + + + + + ATCR + Adjustable Timer Control Register + 0x400 + 32 + read-write + 0 + 0xFFFFFFFF + + + EN + Enable Timer + 0 + 1 + read-write + + + 0 + The timer stops at the current value. + #0 + + + 1 + The timer starts incrementing. + #1 + + + + + OFFEN + Enable One-Shot Offset Event + 2 + 1 + read-write + + + 0 + Disable. + #0 + + + 1 + The timer can be reset to zero when the given offset time is reached (offset event). The field is cleared when the offset event is reached, so no further event occurs until the field is set again. The timer offset value must be set before setting this field. + #1 + + + + + OFFRST + Reset Timer On Offset Event + 3 + 1 + read-write + + + 0 + The timer is not affected and no action occurs, besides clearing OFFEN, when the offset is reached. + #0 + + + 1 + If OFFEN is set, the timer resets to zero when the offset setting is reached. The offset event does not cause a timer interrupt. + #1 + + + + + PEREN + Enable Periodical Event + 4 + 1 + read-write + + + 0 + Disable. + #0 + + + 1 + A period event interrupt can be generated (EIR[TS_TIMER]) and the event signal output is asserted when the timer wraps around according to the periodic setting ATPER. The timer period value must be set before setting this bit. Not all devices contain the event signal output. See the chip configuration details. + #1 + + + + + PINPER + Enables event signal output assertion on period event + 7 + 1 + read-write + + + 0 + Disable. + #0 + + + 1 + Enable. + #1 + + + + + RESTART + Reset Timer + 9 + 1 + read-write + + + CAPTURE + Capture Timer Value + 11 + 1 + read-write + + + 0 + No effect. + #0 + + + 1 + The current time is captured and can be read from the ATVR register. + #1 + + + + + SLAVE + Enable Timer Slave Mode + 13 + 1 + read-write + + + 0 + The timer is active and all configuration fields in this register are relevant. + #0 + + + 1 + The internal timer is disabled and the externally provided timer value is used. All other fields, except CAPTURE, in this register have no effect. CAPTURE can still be used to capture the current timer value. + #1 + + + + + + + ATVR + Timer Value Register + 0x404 + 32 + read-write + 0 + 0xFFFFFFFF + + + ATIME + A write sets the timer + 0 + 32 + read-write + + + + + ATOFF + Timer Offset Register + 0x408 + 32 + read-write + 0 + 0xFFFFFFFF + + + OFFSET + Offset value for one-shot event generation + 0 + 32 + read-write + + + + + ATPER + Timer Period Register + 0x40C + 32 + read-write + 0x3B9ACA00 + 0xFFFFFFFF + + + PERIOD + Value for generating periodic events + 0 + 32 + read-write + + + + + ATCOR + Timer Correction Register + 0x410 + 32 + read-write + 0 + 0xFFFFFFFF + + + COR + Correction Counter Wrap-Around Value + 0 + 31 + read-write + + + + + ATINC + Time-Stamping Clock Period Register + 0x414 + 32 + read-write + 0 + 0xFFFFFFFF + + + INC + Clock Period Of The Timestamping Clock (ts_clk) In Nanoseconds + 0 + 7 + read-write + + + INC_CORR + Correction Increment Value + 8 + 7 + read-write + + + + + ATSTMP + Timestamp of Last Transmitted Frame + 0x418 + 32 + read-only + 0 + 0xFFFFFFFF + + + TIMESTAMP + Timestamp of the last frame transmitted by the core that had TxBD[TS] set + 0 + 32 + read-only + + + + + TGSR + Timer Global Status Register + 0x604 + 32 + read-write + 0 + 0xFFFFFFFF + + + TF0 + Copy Of Timer Flag For Channel 0 + 0 + 1 + read-write + + + 0 + Timer Flag for Channel 0 is clear + #0 + + + 1 + Timer Flag for Channel 0 is set + #1 + + + + + TF1 + Copy Of Timer Flag For Channel 1 + 1 + 1 + read-write + + + 0 + Timer Flag for Channel 1 is clear + #0 + + + 1 + Timer Flag for Channel 1 is set + #1 + + + + + TF2 + Copy Of Timer Flag For Channel 2 + 2 + 1 + read-write + + + 0 + Timer Flag for Channel 2 is clear + #0 + + + 1 + Timer Flag for Channel 2 is set + #1 + + + + + TF3 + Copy Of Timer Flag For Channel 3 + 3 + 1 + read-write + + + 0 + Timer Flag for Channel 3 is clear + #0 + + + 1 + Timer Flag for Channel 3 is set + #1 + + + + + + + 4 + 0x8 + 0,1,2,3 + TCSR%s + Timer Control Status Register + 0x608 + 32 + read-write + 0 + 0xFFFFFFFF + + + TDRE + Timer DMA Request Enable + 0 + 1 + read-write + + + 0 + DMA request is disabled + #0 + + + 1 + DMA request is enabled + #1 + + + + + TMODE + Timer Mode + 2 + 4 + read-write + + + 0000 + Timer Channel is disabled. + #0000 + + + 0001 + Timer Channel is configured for Input Capture on rising edge + #0001 + + + 0010 + Timer Channel is configured for Input Capture on falling edge + #0010 + + + 0011 + Timer Channel is configured for Input Capture on both edges + #0011 + + + 0100 + Timer Channel is configured for Output Compare - software only + #0100 + + + 0101 + Timer Channel is configured for Output Compare - toggle output on compare + #0101 + + + 0110 + Timer Channel is configured for Output Compare - clear output on compare + #0110 + + + 0111 + Timer Channel is configured for Output Compare - set output on compare + #0111 + + + 1010 + Timer Channel is configured for Output Compare - clear output on compare, set output on overflow + #1010 + + + 10x1 + Timer Channel is configured for Output Compare - set output on compare, clear output on overflow + #10x1 + + + 1110 + Timer Channel is configured for Output Compare - pulse output low on compare for one 1588 clock cycle + #1110 + + + 1111 + Timer Channel is configured for Output Compare - pulse output high on compare for one 1588 clock cycle + #1111 + + + + + TIE + Timer Interrupt Enable + 6 + 1 + read-write + + + 0 + Interrupt is disabled + #0 + + + 1 + Interrupt is enabled + #1 + + + + + TF + Timer Flag + 7 + 1 + read-write + + + 0 + Input Capture or Output Compare has not occurred + #0 + + + 1 + Input Capture or Output Compare has occurred + #1 + + + + + + + 4 + 0x8 + 0,1,2,3 + TCCR%s + Timer Compare Capture Register + 0x60C + 32 + read-write + 0 + 0xFFFFFFFF + + + TCC + Timer Capture Compare + 0 + 32 + read-write + + + + + + + DAC0 + 12-Bit Digital-to-Analog Converter + DAC + DAC0_ + 0x400CC000 + + 0 + 0x24 + registers + + + DAC0 + 56 + + + + 16 + 0x2 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + DAT%sL + DAC Data Low Register + 0 + 8 + read-write + 0 + 0xFF + + + DATA0 + When the DAC buffer is not enabled, DATA[11:0] controls the output voltage based on the following formula: V out = V in * (1 + DACDAT0[11:0])/4096 When the DAC buffer is enabled, DATA is mapped to the 16-word buffer + 0 + 8 + read-write + + + + + 16 + 0x2 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + DAT%sH + DAC Data High Register + 0x1 + 8 + read-write + 0 + 0xFF + + + DATA1 + When the DAC Buffer is not enabled, DATA[11:0] controls the output voltage based on the following formula + 0 + 4 + read-write + + + + + SR + DAC Status Register + 0x20 + 8 + read-write + 0x2 + 0xFF + + + DACBFRPBF + DAC Buffer Read Pointer Bottom Position Flag + 0 + 1 + read-write + + + 0 + The DAC buffer read pointer is not equal to C2[DACBFUP]. + #0 + + + 1 + The DAC buffer read pointer is equal to C2[DACBFUP]. + #1 + + + + + DACBFRPTF + DAC Buffer Read Pointer Top Position Flag + 1 + 1 + read-write + + + 0 + The DAC buffer read pointer is not zero. + #0 + + + 1 + The DAC buffer read pointer is zero. + #1 + + + + + DACBFWMF + DAC Buffer Watermark Flag + 2 + 1 + read-write + + + 0 + The DAC buffer read pointer has not reached the watermark level. + #0 + + + 1 + The DAC buffer read pointer has reached the watermark level. + #1 + + + + + + + C0 + DAC Control Register + 0x21 + 8 + read-write + 0 + 0xFF + + + DACBBIEN + DAC Buffer Read Pointer Bottom Flag Interrupt Enable + 0 + 1 + read-write + + + 0 + The DAC buffer read pointer bottom flag interrupt is disabled. + #0 + + + 1 + The DAC buffer read pointer bottom flag interrupt is enabled. + #1 + + + + + DACBTIEN + DAC Buffer Read Pointer Top Flag Interrupt Enable + 1 + 1 + read-write + + + 0 + The DAC buffer read pointer top flag interrupt is disabled. + #0 + + + 1 + The DAC buffer read pointer top flag interrupt is enabled. + #1 + + + + + DACBWIEN + DAC Buffer Watermark Interrupt Enable + 2 + 1 + read-write + + + 0 + The DAC buffer watermark interrupt is disabled. + #0 + + + 1 + The DAC buffer watermark interrupt is enabled. + #1 + + + + + LPEN + DAC Low Power Control + 3 + 1 + read-write + + + 0 + High-Power mode + #0 + + + 1 + Low-Power mode + #1 + + + + + DACSWTRG + DAC Software Trigger + 4 + 1 + write-only + + + 0 + The DAC soft trigger is not valid. + #0 + + + 1 + The DAC soft trigger is valid. + #1 + + + + + DACTRGSEL + DAC Trigger Select + 5 + 1 + read-write + + + 0 + The DAC hardware trigger is selected. + #0 + + + 1 + The DAC software trigger is selected. + #1 + + + + + DACRFS + DAC Reference Select + 6 + 1 + read-write + + + 0 + The DAC selects DACREF_1 as the reference voltage. + #0 + + + 1 + The DAC selects DACREF_2 as the reference voltage. + #1 + + + + + DACEN + DAC Enable + 7 + 1 + read-write + + + 0 + The DAC system is disabled. + #0 + + + 1 + The DAC system is enabled. + #1 + + + + + + + C1 + DAC Control Register 1 + 0x22 + 8 + read-write + 0 + 0xFF + + + DACBFEN + DAC Buffer Enable + 0 + 1 + read-write + + + 0 + Buffer read pointer is disabled. The converted data is always the first word of the buffer. + #0 + + + 1 + Buffer read pointer is enabled. The converted data is the word that the read pointer points to. It means converted data can be from any word of the buffer. + #1 + + + + + DACBFMD + DAC Buffer Work Mode Select + 1 + 2 + read-write + + + 00 + Normal mode + #00 + + + 01 + Swing mode + #01 + + + 10 + One-Time Scan mode + #10 + + + + + DACBFWM + DAC Buffer Watermark Select + 3 + 2 + read-write + + + 00 + 1 word + #00 + + + 01 + 2 words + #01 + + + 10 + 3 words + #10 + + + 11 + 4 words + #11 + + + + + DMAEN + DMA Enable Select + 7 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled. When DMA is enabled, the DMA request will be generated by original interrupts. The interrupts will not be presented on this module at the same time. + #1 + + + + + + + C2 + DAC Control Register 2 + 0x23 + 8 + read-write + 0xF + 0xFF + + + DACBFUP + DAC Buffer Upper Limit + 0 + 4 + read-write + + + DACBFRP + DAC Buffer Read Pointer + 4 + 4 + read-write + + + + + + + DAC1 + 12-Bit Digital-to-Analog Converter + DAC + DAC1_ + 0x400CD000 + + 0 + 0x24 + registers + + + DAC1 + 72 + + + + 16 + 0x2 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + DAT%sL + DAC Data Low Register + 0 + 8 + read-write + 0 + 0xFF + + + DATA0 + When the DAC buffer is not enabled, DATA[11:0] controls the output voltage based on the following formula: V out = V in * (1 + DACDAT0[11:0])/4096 When the DAC buffer is enabled, DATA is mapped to the 16-word buffer + 0 + 8 + read-write + + + + + 16 + 0x2 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + DAT%sH + DAC Data High Register + 0x1 + 8 + read-write + 0 + 0xFF + + + DATA1 + When the DAC Buffer is not enabled, DATA[11:0] controls the output voltage based on the following formula + 0 + 4 + read-write + + + + + SR + DAC Status Register + 0x20 + 8 + read-write + 0x2 + 0xFF + + + DACBFRPBF + DAC Buffer Read Pointer Bottom Position Flag + 0 + 1 + read-write + + + 0 + The DAC buffer read pointer is not equal to C2[DACBFUP]. + #0 + + + 1 + The DAC buffer read pointer is equal to C2[DACBFUP]. + #1 + + + + + DACBFRPTF + DAC Buffer Read Pointer Top Position Flag + 1 + 1 + read-write + + + 0 + The DAC buffer read pointer is not zero. + #0 + + + 1 + The DAC buffer read pointer is zero. + #1 + + + + + DACBFWMF + DAC Buffer Watermark Flag + 2 + 1 + read-write + + + 0 + The DAC buffer read pointer has not reached the watermark level. + #0 + + + 1 + The DAC buffer read pointer has reached the watermark level. + #1 + + + + + + + C0 + DAC Control Register + 0x21 + 8 + read-write + 0 + 0xFF + + + DACBBIEN + DAC Buffer Read Pointer Bottom Flag Interrupt Enable + 0 + 1 + read-write + + + 0 + The DAC buffer read pointer bottom flag interrupt is disabled. + #0 + + + 1 + The DAC buffer read pointer bottom flag interrupt is enabled. + #1 + + + + + DACBTIEN + DAC Buffer Read Pointer Top Flag Interrupt Enable + 1 + 1 + read-write + + + 0 + The DAC buffer read pointer top flag interrupt is disabled. + #0 + + + 1 + The DAC buffer read pointer top flag interrupt is enabled. + #1 + + + + + DACBWIEN + DAC Buffer Watermark Interrupt Enable + 2 + 1 + read-write + + + 0 + The DAC buffer watermark interrupt is disabled. + #0 + + + 1 + The DAC buffer watermark interrupt is enabled. + #1 + + + + + LPEN + DAC Low Power Control + 3 + 1 + read-write + + + 0 + High-Power mode + #0 + + + 1 + Low-Power mode + #1 + + + + + DACSWTRG + DAC Software Trigger + 4 + 1 + write-only + + + 0 + The DAC soft trigger is not valid. + #0 + + + 1 + The DAC soft trigger is valid. + #1 + + + + + DACTRGSEL + DAC Trigger Select + 5 + 1 + read-write + + + 0 + The DAC hardware trigger is selected. + #0 + + + 1 + The DAC software trigger is selected. + #1 + + + + + DACRFS + DAC Reference Select + 6 + 1 + read-write + + + 0 + The DAC selects DACREF_1 as the reference voltage. + #0 + + + 1 + The DAC selects DACREF_2 as the reference voltage. + #1 + + + + + DACEN + DAC Enable + 7 + 1 + read-write + + + 0 + The DAC system is disabled. + #0 + + + 1 + The DAC system is enabled. + #1 + + + + + + + C1 + DAC Control Register 1 + 0x22 + 8 + read-write + 0 + 0xFF + + + DACBFEN + DAC Buffer Enable + 0 + 1 + read-write + + + 0 + Buffer read pointer is disabled. The converted data is always the first word of the buffer. + #0 + + + 1 + Buffer read pointer is enabled. The converted data is the word that the read pointer points to. It means converted data can be from any word of the buffer. + #1 + + + + + DACBFMD + DAC Buffer Work Mode Select + 1 + 2 + read-write + + + 00 + Normal mode + #00 + + + 01 + Swing mode + #01 + + + 10 + One-Time Scan mode + #10 + + + + + DACBFWM + DAC Buffer Watermark Select + 3 + 2 + read-write + + + 00 + 1 word + #00 + + + 01 + 2 words + #01 + + + 10 + 3 words + #10 + + + 11 + 4 words + #11 + + + + + DMAEN + DMA Enable Select + 7 + 1 + read-write + + + 0 + DMA is disabled. + #0 + + + 1 + DMA is enabled. When DMA is enabled, the DMA request will be generated by original interrupts. The interrupts will not be presented on this module at the same time. + #1 + + + + + + + C2 + DAC Control Register 2 + 0x23 + 8 + read-write + 0xF + 0xFF + + + DACBFUP + DAC Buffer Upper Limit + 0 + 4 + read-write + + + DACBFRP + DAC Buffer Read Pointer + 4 + 4 + read-write + + + + + + + GPIOA + General Purpose Input/Output + GPIO + GPIOA_ + 0x400FF000 + + 0 + 0x18 + registers + + + PORTA + 59 + + + + PDOR + Port Data Output Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDO + Port Data Output + 0 + 32 + read-write + + + 0 + Logic level 0 is driven on pin, provided pin is configured for general-purpose output. + #0 + + + 1 + Logic level 1 is driven on pin, provided pin is configured for general-purpose output. + #1 + + + + + + + PSOR + Port Set Output Register + 0x4 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTSO + Port Set Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to logic 1. + #1 + + + + + + + PCOR + Port Clear Output Register + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTCO + Port Clear Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is cleared to logic 0. + #1 + + + + + + + PTOR + Port Toggle Output Register + 0xC + 32 + write-only + 0 + 0xFFFFFFFF + + + PTTO + Port Toggle Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to the inverse of its existing logic state. + #1 + + + + + + + PDIR + Port Data Input Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + PDI + Port Data Input + 0 + 32 + read-only + + + 0 + Pin logic level is logic 0, or is not configured for use by digital function. + #0 + + + 1 + Pin logic level is logic 1. + #1 + + + + + + + PDDR + Port Data Direction Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDD + Port Data Direction + 0 + 32 + read-write + + + 0 + Pin is configured as general-purpose input, for the GPIO function. + #0 + + + 1 + Pin is configured as general-purpose output, for the GPIO function. + #1 + + + + + + + + + GPIOB + General Purpose Input/Output + GPIO + GPIOB_ + 0x400FF040 + + 0 + 0x18 + registers + + + PORTB + 60 + + + + PDOR + Port Data Output Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDO + Port Data Output + 0 + 32 + read-write + + + 0 + Logic level 0 is driven on pin, provided pin is configured for general-purpose output. + #0 + + + 1 + Logic level 1 is driven on pin, provided pin is configured for general-purpose output. + #1 + + + + + + + PSOR + Port Set Output Register + 0x4 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTSO + Port Set Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to logic 1. + #1 + + + + + + + PCOR + Port Clear Output Register + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTCO + Port Clear Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is cleared to logic 0. + #1 + + + + + + + PTOR + Port Toggle Output Register + 0xC + 32 + write-only + 0 + 0xFFFFFFFF + + + PTTO + Port Toggle Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to the inverse of its existing logic state. + #1 + + + + + + + PDIR + Port Data Input Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + PDI + Port Data Input + 0 + 32 + read-only + + + 0 + Pin logic level is logic 0, or is not configured for use by digital function. + #0 + + + 1 + Pin logic level is logic 1. + #1 + + + + + + + PDDR + Port Data Direction Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDD + Port Data Direction + 0 + 32 + read-write + + + 0 + Pin is configured as general-purpose input, for the GPIO function. + #0 + + + 1 + Pin is configured as general-purpose output, for the GPIO function. + #1 + + + + + + + + + GPIOC + General Purpose Input/Output + GPIO + GPIOC_ + 0x400FF080 + + 0 + 0x18 + registers + + + PORTC + 61 + + + + PDOR + Port Data Output Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDO + Port Data Output + 0 + 32 + read-write + + + 0 + Logic level 0 is driven on pin, provided pin is configured for general-purpose output. + #0 + + + 1 + Logic level 1 is driven on pin, provided pin is configured for general-purpose output. + #1 + + + + + + + PSOR + Port Set Output Register + 0x4 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTSO + Port Set Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to logic 1. + #1 + + + + + + + PCOR + Port Clear Output Register + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTCO + Port Clear Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is cleared to logic 0. + #1 + + + + + + + PTOR + Port Toggle Output Register + 0xC + 32 + write-only + 0 + 0xFFFFFFFF + + + PTTO + Port Toggle Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to the inverse of its existing logic state. + #1 + + + + + + + PDIR + Port Data Input Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + PDI + Port Data Input + 0 + 32 + read-only + + + 0 + Pin logic level is logic 0, or is not configured for use by digital function. + #0 + + + 1 + Pin logic level is logic 1. + #1 + + + + + + + PDDR + Port Data Direction Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDD + Port Data Direction + 0 + 32 + read-write + + + 0 + Pin is configured as general-purpose input, for the GPIO function. + #0 + + + 1 + Pin is configured as general-purpose output, for the GPIO function. + #1 + + + + + + + + + GPIOD + General Purpose Input/Output + GPIO + GPIOD_ + 0x400FF0C0 + + 0 + 0x18 + registers + + + PORTD + 62 + + + + PDOR + Port Data Output Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDO + Port Data Output + 0 + 32 + read-write + + + 0 + Logic level 0 is driven on pin, provided pin is configured for general-purpose output. + #0 + + + 1 + Logic level 1 is driven on pin, provided pin is configured for general-purpose output. + #1 + + + + + + + PSOR + Port Set Output Register + 0x4 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTSO + Port Set Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to logic 1. + #1 + + + + + + + PCOR + Port Clear Output Register + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTCO + Port Clear Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is cleared to logic 0. + #1 + + + + + + + PTOR + Port Toggle Output Register + 0xC + 32 + write-only + 0 + 0xFFFFFFFF + + + PTTO + Port Toggle Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to the inverse of its existing logic state. + #1 + + + + + + + PDIR + Port Data Input Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + PDI + Port Data Input + 0 + 32 + read-only + + + 0 + Pin logic level is logic 0, or is not configured for use by digital function. + #0 + + + 1 + Pin logic level is logic 1. + #1 + + + + + + + PDDR + Port Data Direction Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDD + Port Data Direction + 0 + 32 + read-write + + + 0 + Pin is configured as general-purpose input, for the GPIO function. + #0 + + + 1 + Pin is configured as general-purpose output, for the GPIO function. + #1 + + + + + + + + + GPIOE + General Purpose Input/Output + GPIO + GPIOE_ + 0x400FF100 + + 0 + 0x18 + registers + + + PORTE + 63 + + + + PDOR + Port Data Output Register + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDO + Port Data Output + 0 + 32 + read-write + + + 0 + Logic level 0 is driven on pin, provided pin is configured for general-purpose output. + #0 + + + 1 + Logic level 1 is driven on pin, provided pin is configured for general-purpose output. + #1 + + + + + + + PSOR + Port Set Output Register + 0x4 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTSO + Port Set Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to logic 1. + #1 + + + + + + + PCOR + Port Clear Output Register + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + PTCO + Port Clear Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is cleared to logic 0. + #1 + + + + + + + PTOR + Port Toggle Output Register + 0xC + 32 + write-only + 0 + 0xFFFFFFFF + + + PTTO + Port Toggle Output + 0 + 32 + write-only + + + 0 + Corresponding bit in PDORn does not change. + #0 + + + 1 + Corresponding bit in PDORn is set to the inverse of its existing logic state. + #1 + + + + + + + PDIR + Port Data Input Register + 0x10 + 32 + read-only + 0 + 0xFFFFFFFF + + + PDI + Port Data Input + 0 + 32 + read-only + + + 0 + Pin logic level is logic 0, or is not configured for use by digital function. + #0 + + + 1 + Pin logic level is logic 1. + #1 + + + + + + + PDDR + Port Data Direction Register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + PDD + Port Data Direction + 0 + 32 + read-write + + + 0 + Pin is configured as general-purpose input, for the GPIO function. + #0 + + + 1 + Pin is configured as general-purpose output, for the GPIO function. + #1 + + + + + + + + + SystemControl + System Control Block + SCB_ + 0xE000E000 + + 0x8 + 0xF38 + registers + + + + ACTLR + Auxiliary Control Register, + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + DISMCYCINT + Disables interruption of multi-cycle instructions. + 0 + 1 + read-write + + + DISDEFWBUF + Disables write buffer use during default memory map accesses. + 1 + 1 + read-write + + + DISFOLD + Disables folding of IT instructions. + 2 + 1 + read-write + + + + + CPUID + CPUID Base Register + 0xD00 + 32 + read-only + 0x410FC240 + 0xFFFFFFFF + + + REVISION + Indicates patch release: 0x0 = Patch 0 + 0 + 4 + read-only + + + PARTNO + Indicates part number + 4 + 12 + read-only + + + VARIANT + Indicates processor revision: 0x2 = Revision 2 + 20 + 4 + read-only + + + IMPLEMENTER + Implementer code + 24 + 8 + read-only + + + + + ICSR + Interrupt Control and State Register + 0xD04 + 32 + read-write + 0 + 0xFFFFFFFF + + + VECTACTIVE + Active exception number + 0 + 9 + read-only + + + RETTOBASE + no description available + 11 + 1 + read-only + + + 0 + there are preempted active exceptions to execute + #0 + + + 1 + there are no active exceptions, or the currently-executing exception is the only active exception + #1 + + + + + VECTPENDING + Exception number of the highest priority pending enabled exception + 12 + 6 + read-only + + + ISRPENDING + no description available + 22 + 1 + read-only + + + ISRPREEMPT + no description available + 23 + 1 + read-only + + + 0 + Will not service + #0 + + + 1 + Will service a pending exception + #1 + + + + + PENDSTCLR + no description available + 25 + 1 + write-only + + + 0 + no effect + #0 + + + 1 + removes the pending state from the SysTick exception + #1 + + + + + PENDSTSET + no description available + 26 + 1 + read-write + + + 0 + write: no effect; read: SysTick exception is not pending + #0 + + + 1 + write: changes SysTick exception state to pending; read: SysTick exception is pending + #1 + + + + + PENDSVCLR + no description available + 27 + 1 + write-only + + + 0 + no effect + #0 + + + 1 + removes the pending state from the PendSV exception + #1 + + + + + PENDSVSET + no description available + 28 + 1 + read-write + + + 0 + write: no effect; read: PendSV exception is not pending + #0 + + + 1 + write: changes PendSV exception state to pending; read: PendSV exception is pending + #1 + + + + + NMIPENDSET + no description available + 31 + 1 + read-write + + + 0 + write: no effect; read: NMI exception is not pending + #0 + + + 1 + write: changes NMI exception state to pending; read: NMI exception is pending + #1 + + + + + + + VTOR + Vector Table Offset Register + 0xD08 + 32 + read-write + 0 + 0xFFFFFFFF + + + TBLOFF + Vector table base offset + 7 + 25 + read-write + + + + + AIRCR + Application Interrupt and Reset Control Register + 0xD0C + 32 + read-write + 0xFA050000 + 0xFFFFFFFF + + + VECTRESET + no description available + 0 + 1 + write-only + + + VECTCLRACTIVE + no description available + 1 + 1 + write-only + + + SYSRESETREQ + no description available + 2 + 1 + write-only + + + 0 + no system reset request + #0 + + + 1 + asserts a signal to the outer system that requests a reset + #1 + + + + + PRIGROUP + Interrupt priority grouping field. This field determines the split of group priority from subpriority. + 8 + 3 + read-write + + + ENDIANNESS + no description available + 15 + 1 + read-only + + + 0 + Little-endian + #0 + + + 1 + Big-endian + #1 + + + + + VECTKEY + Register key + 16 + 16 + read-write + + + + + SCR + System Control Register + 0xD10 + 32 + read-write + 0 + 0xFFFFFFFF + + + SLEEPONEXIT + no description available + 1 + 1 + read-write + + + 0 + o not sleep when returning to Thread mode + #0 + + + 1 + enter sleep, or deep sleep, on return from an ISR + #1 + + + + + SLEEPDEEP + no description available + 2 + 1 + read-write + + + 0 + sleep + #0 + + + 1 + deep sleep + #1 + + + + + SEVONPEND + no description available + 4 + 1 + read-write + + + 0 + only enabled interrupts or events can wakeup the processor, disabled interrupts are excluded + #0 + + + 1 + enabled events and all interrupts, including disabled interrupts, can wakeup the processor + #1 + + + + + + + CCR + Configuration and Control Register + 0xD14 + 32 + read-write + 0 + 0xFFFFFFFF + + + NONBASETHRDENA + no description available + 0 + 1 + read-write + + + 0 + processor can enter Thread mode only when no exception is active + #0 + + + 1 + processor can enter Thread mode from any level under the control of an EXC_RETURN value + #1 + + + + + USERSETMPEND + Enables unprivileged software access to the STIR + 1 + 1 + read-write + + + 0 + disable + #0 + + + 1 + enable + #1 + + + + + UNALIGN_TRP + Enables unaligned access traps + 3 + 1 + read-write + + + 0 + do not trap unaligned halfword and word accesses + #0 + + + 1 + trap unaligned halfword and word accesses + #1 + + + + + DIV_0_TRP + Enables faulting or halting when the processor executes an SDIV or UDIV instruction with a divisor of 0 + 4 + 1 + read-write + + + 0 + do not trap divide by 0 + #0 + + + 1 + trap divide by 0 + #1 + + + + + BFHFNMIGN + Enables handlers with priority -1 or -2 to ignore data BusFaults caused by load and store instructions. + 8 + 1 + read-write + + + 0 + data bus faults caused by load and store instructions cause a lock-up + #0 + + + 1 + handlers running at priority -1 and -2 ignore data bus faults caused by load and store instructions + #1 + + + + + STKALIGN + Indicates stack alignment on exception entry + 9 + 1 + read-write + + + 0 + 4-byte aligned + #0 + + + 1 + 8-byte aligned + #1 + + + + + + + SHPR1 + System Handler Priority Register 1 + 0xD18 + 32 + read-write + 0 + 0xFFFFFFFF + + + PRI_4 + Priority of system handler 4, MemManage + 0 + 8 + read-write + + + PRI_5 + Priority of system handler 5, BusFault + 8 + 8 + read-write + + + PRI_6 + Priority of system handler 6, UsageFault + 16 + 8 + read-write + + + + + SHPR2 + System Handler Priority Register 2 + 0xD1C + 32 + read-write + 0 + 0xFFFFFFFF + + + PRI_11 + Priority of system handler 11, SVCall + 24 + 8 + read-write + + + + + SHPR3 + System Handler Priority Register 3 + 0xD20 + 32 + read-write + 0 + 0xFFFFFFFF + + + PRI_14 + Priority of system handler 14, PendSV + 16 + 8 + read-write + + + PRI_15 + Priority of system handler 15, SysTick exception + 24 + 8 + read-write + + + + + SHCSR + System Handler Control and State Register + 0xD24 + 32 + read-write + 0 + 0xFFFFFFFF + + + MEMFAULTACT + no description available + 0 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + BUSFAULTACT + no description available + 1 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + USGFAULTACT + no description available + 3 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + SVCALLACT + no description available + 7 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + MONITORACT + no description available + 8 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + PENDSVACT + no description available + 10 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + SYSTICKACT + no description available + 11 + 1 + read-write + + + 0 + exception is not active + #0 + + + 1 + exception is active + #1 + + + + + USGFAULTPENDED + no description available + 12 + 1 + read-write + + + 0 + exception is not pending + #0 + + + 1 + exception is pending + #1 + + + + + MEMFAULTPENDED + no description available + 13 + 1 + read-write + + + 0 + exception is not pending + #0 + + + 1 + exception is pending + #1 + + + + + BUSFAULTPENDED + no description available + 14 + 1 + read-write + + + 0 + exception is not pending + #0 + + + 1 + exception is pending + #1 + + + + + SVCALLPENDED + no description available + 15 + 1 + read-write + + + 0 + exception is not pending + #0 + + + 1 + exception is pending + #1 + + + + + MEMFAULTENA + no description available + 16 + 1 + read-write + + + 0 + disable the exception + #0 + + + 1 + enable the exception + #1 + + + + + BUSFAULTENA + no description available + 17 + 1 + read-write + + + 0 + disable the exception + #0 + + + 1 + enable the exception + #1 + + + + + USGFAULTENA + no description available + 18 + 1 + read-write + + + 0 + disable the exception + #0 + + + 1 + enable the exception + #1 + + + + + + + CFSR + Configurable Fault Status Registers + 0xD28 + 32 + read-write + 0 + 0xFFFFFFFF + + + IACCVIOL + no description available + 0 + 1 + read-write + + + 0 + no instruction access violation fault + #0 + + + 1 + the processor attempted an instruction fetch from a location that does not permit execution + #1 + + + + + DACCVIOL + no description available + 1 + 1 + read-write + + + 0 + no data access violation fault + #0 + + + 1 + the processor attempted a load or store at a location that does not permit the operation + #1 + + + + + MUNSTKERR + no description available + 3 + 1 + read-write + + + 0 + no unstacking fault + #0 + + + 1 + unstack for an exception return has caused one or more access violations + #1 + + + + + MSTKERR + no description available + 4 + 1 + read-write + + + 0 + no stacking fault + #0 + + + 1 + stacking for an exception entry has caused one or more access violations + #1 + + + + + MLSPERR + no description available + 5 + 1 + read-write + + + 0 + No MemManage fault occurred during floating-point lazy state preservation + #0 + + + 1 + A MemManage fault occurred during floating-point lazy state preservation + #1 + + + + + MMARVALID + no description available + 7 + 1 + read-write + + + 0 + value in MMAR is not a valid fault address + #0 + + + 1 + MMAR holds a valid fault address + #1 + + + + + IBUSERR + no description available + 8 + 1 + read-write + + + 0 + no instruction bus error + #0 + + + 1 + instruction bus error + #1 + + + + + PRECISERR + no description available + 9 + 1 + read-write + + + 0 + no precise data bus error + #0 + + + 1 + a data bus error has occurred, and the PC value stacked for the exception return points to the instruction that caused the fault + #1 + + + + + IMPRECISERR + no description available + 10 + 1 + read-write + + + 0 + no imprecise data bus error + #0 + + + 1 + a data bus error has occurred, but the return address in the stack frame is not related to the instruction that caused the error + #1 + + + + + UNSTKERR + no description available + 11 + 1 + read-write + + + 0 + no unstacking fault + #0 + + + 1 + unstack for an exception return has caused one or more BusFaults + #1 + + + + + STKERR + no description available + 12 + 1 + read-write + + + 0 + no stacking fault + #0 + + + 1 + stacking for an exception entry has caused one or more BusFaults + #1 + + + + + LSPERR + no description available + 13 + 1 + read-write + + + 0 + No bus fault occurred during floating-point lazy state preservation + #0 + + + 1 + A bus fault occurred during floating-point lazy state preservation + #1 + + + + + BFARVALID + no description available + 15 + 1 + read-write + + + 0 + value in BFAR is not a valid fault address + #0 + + + 1 + BFAR holds a valid fault address + #1 + + + + + UNDEFINSTR + no description available + 16 + 1 + read-write + + + 0 + no undefined instruction UsageFault + #0 + + + 1 + the processor has attempted to execute an undefined instruction + #1 + + + + + INVSTATE + no description available + 17 + 1 + read-write + + + 0 + no invalid state UsageFault + #0 + + + 1 + the processor has attempted to execute an instruction that makes illegal use of the EPSR + #1 + + + + + INVPC + no description available + 18 + 1 + read-write + + + 0 + no invalid PC load UsageFault + #0 + + + 1 + the processor has attempted an illegal load of EXC_RETURN to the PC + #1 + + + + + NOCP + no description available + 19 + 1 + read-write + + + 0 + no UsageFault caused by attempting to access a coprocessor + #0 + + + 1 + the processor has attempted to access a coprocessor + #1 + + + + + UNALIGNED + no description available + 24 + 1 + read-write + + + 0 + no unaligned access fault, or unaligned access trapping not enabled + #0 + + + 1 + the processor has made an unaligned memory access + #1 + + + + + DIVBYZERO + no description available + 25 + 1 + read-write + + + 0 + no divide by zero fault, or divide by zero trapping not enabled + #0 + + + 1 + the processor has executed an SDIV or UDIV instruction with a divisor of 0 + #1 + + + + + + + HFSR + HardFault Status register + 0xD2C + 32 + read-write + 0 + 0xFFFFFFFF + + + VECTTBL + no description available + 1 + 1 + read-write + + + 0 + no BusFault on vector table read + #0 + + + 1 + BusFault on vector table read + #1 + + + + + FORCED + no description available + 30 + 1 + read-write + + + 0 + no forced HardFault + #0 + + + 1 + forced HardFault + #1 + + + + + DEBUGEVT + no description available + 31 + 1 + read-write + + + + + DFSR + Debug Fault Status Register + 0xD30 + 32 + read-write + 0 + 0xFFFFFFFF + + + HALTED + no description available + 0 + 1 + read-write + + + 0 + No active halt request debug event + #0 + + + 1 + Halt request debug event active + #1 + + + + + BKPT + no description available + 1 + 1 + read-write + + + 0 + No current breakpoint debug event + #0 + + + 1 + At least one current breakpoint debug event + #1 + + + + + DWTTRAP + no description available + 2 + 1 + read-write + + + 0 + No current debug events generated by the DWT + #0 + + + 1 + At least one current debug event generated by the DWT + #1 + + + + + VCATCH + no description available + 3 + 1 + read-write + + + 0 + No Vector catch triggered + #0 + + + 1 + Vector catch triggered + #1 + + + + + EXTERNAL + no description available + 4 + 1 + read-write + + + 0 + No EDBGRQ debug event + #0 + + + 1 + EDBGRQ debug event + #1 + + + + + + + MMFAR + MemManage Address Register + 0xD34 + 32 + read-write + 0 + 0xFFFFFFFF + + + ADDRESS + Address of MemManage fault location + 0 + 32 + read-write + + + + + BFAR + BusFault Address Register + 0xD38 + 32 + read-write + 0 + 0xFFFFFFFF + + + ADDRESS + Address of the BusFault location + 0 + 32 + read-write + + + + + AFSR + Auxiliary Fault Status Register + 0xD3C + 32 + read-write + 0 + 0xFFFFFFFF + + + AUXFAULT + Latched version of the AUXFAULT inputs + 0 + 32 + read-write + + + + + CPACR + Coprocessor Access Control Register + 0xD88 + 32 + read-write + 0 + 0xFFFFFFFF + + + CP10 + Access privileges for coprocessor 10. + 20 + 2 + read-write + + + 00 + Access denied. Any attempted access generates a NOCP UsageFault + #00 + + + 01 + Privileged access only. An unprivileged access generates a NOCP fault. + #01 + + + 10 + Reserved. The result of any access is UNPREDICTABLE. + #10 + + + 11 + Full access. + #11 + + + + + CP11 + Access privileges for coprocessor 11. + 22 + 2 + read-write + + + 00 + Access denied. Any attempted access generates a NOCP UsageFault + #00 + + + 01 + Privileged access only. An unprivileged access generates a NOCP fault. + #01 + + + 10 + Reserved. The result of any access is UNPREDICTABLE. + #10 + + + 11 + Full access. + #11 + + + + + + + FPCCR + Floating-point Context Control Register + 0xF34 + 32 + read-write + 0xC0000000 + 0xFFFFFFFF + + + LSPACT + Lazy state preservation. + 0 + 1 + read-write + + + 0 + Lazy state preservation is not active. + #0 + + + 1 + Lazy state preservation is active. floating-point stack frame has been allocated but saving state to it has been deferred. + #1 + + + + + USER + Privilege level when the floating-point stack frame was allocated. + 1 + 1 + read-write + + + 0 + Privilege level was not user when the floating-point stack frame was allocated. + #0 + + + 1 + Privilege level was user when the floating-point stack frame was allocated. + #1 + + + + + THREAD + Mode when the floating-point stack frame was allocated. + 3 + 1 + read-write + + + 0 + Mode was not Thread Mode when the floating-point stack frame was allocated. + #0 + + + 1 + Mode was Thread Mode when the floating-point stack frame was allocated. + #1 + + + + + HFRDY + Permission to set the HardFault handler to the pending state when the floating-point stack frame was allocated. + 4 + 1 + read-write + + + 0 + Priority did not permit setting the HardFault handler to the pending state when the floating-point stack frame was allocated. + #0 + + + 1 + Priority permitted setting the HardFault handler to the pending state when the floating-point stack frame was allocated. + #1 + + + + + MMRDY + Permission to set the MemManage handler to the pending state when the floating-point stack frame was allocated. + 5 + 1 + read-write + + + 0 + MemManage is disabled or priority did not permit setting the MemManage handler to the pending state when the floating-point stack frame was allocated. + #0 + + + 1 + MemManage is enabled and priority permitted setting the MemManage handler to the pending state when the floating-point stack frame was allocated. + #1 + + + + + BFRDY + Permission to set the BusFault handler to the pending state when the floating-point stack frame was allocated. + 6 + 1 + read-write + + + 0 + BusFault is disabled or priority did not permit setting the BusFault handler to the pending state when the floating-point stack frame was allocated. + #0 + + + 1 + BusFault is disabled or priority did not permit setting the BusFault handler to the pending state when the floating-point stack frame was allocated. + #1 + + + + + MONRDY + Permission to set the MON_PEND when the floating-point stack frame was allocated. + 8 + 1 + read-write + + + 0 + DebugMonitor is disabled or priority did not permit setting MON_PEND when the floating-point stack frame was allocated. + #0 + + + 1 + DebugMonitor is enabled and priority permits setting MON_PEND when the floating-point stack frame was allocated. + #1 + + + + + LSPEN + Lazy state preservation for floating-point context. + 30 + 1 + read-write + + + 0 + Disable automatic lazy state preservation for floating-point context. + #0 + + + 1 + Enable automatic lazy state preservation for floating-point context. + #1 + + + + + ASPEN + Enables CONTROL2 setting on execution of a floating-point instruction. This results in automatic hardware state preservation and restoration, for floating-point context, on exception entry and exit. + 31 + 1 + read-write + + + 0 + Disable CONTROL2 setting on execution of a floating-point instruction. + #0 + + + 1 + Enable CONTROL2 setting on execution of a floating-point instruction. + #1 + + + + + + + FPCAR + Floating-point Context Address Register + 0xF38 + 32 + read-write + 0 + 0 + + + ADDRESS + The location of the unpopulated floating-point register space allocated on an exception stack frame. + 3 + 29 + read-write + + + + + FPDSCR + Floating-point Default Status Control Register + 0xF3C + 32 + read-write + 0 + 0xFFFFFFFF + + + RMode + Default value for FPSCR.RMode (Rounding Mode control field). + 22 + 2 + read-write + + + 00 + Round to Nearest (RN) mode + #00 + + + 01 + Round towards Plus Infinity (RP) mode. + #01 + + + 10 + Round towards Minus Infinity (RM) mode. + #10 + + + 11 + Round towards Zero (RZ) mode. + #11 + + + + + FZ + Default value for FPSCR.FZ (Flush-to-zero mode control bit). + 24 + 1 + read-write + + + 0 + Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant with the IEEE 754 standard. + #0 + + + 1 + Flush-to-zero mode enabled. + #1 + + + + + DN + Default value for FPSCR.DN (Default NaN mode control bit). + 25 + 1 + read-write + + + 0 + NaN operands propagate through to the output of a floating-point operation. + #0 + + + 1 + Any operation involving one or more NaNs returns the Default NaN. + #1 + + + + + AHP + Default value for FPSCR.AHP (Alternative half-precision control bit). + 26 + 1 + read-write + + + 0 + IEEE half-precision format selected. + #0 + + + 1 + Alternative half-precision format selected. + #1 + + + + + + + + + SysTick + System timer + SYST_ + 0xE000E010 + + 0 + 0x10 + registers + + + + CSR + SysTick Control and Status Register + 0 + 32 + read-write + 0x4 + 0xFFFFFFFF + + + ENABLE + no description available + 0 + 1 + read-write + + + 0 + counter disabled + #0 + + + 1 + counter enabled + #1 + + + + + TICKINT + no description available + 1 + 1 + read-write + + + 0 + counting down to 0 does not assert the SysTick exception request + #0 + + + 1 + counting down to 0 asserts the SysTick exception request + #1 + + + + + CLKSOURCE + no description available + 2 + 1 + read-write + + + 0 + external clock + #0 + + + 1 + processor clock + #1 + + + + + COUNTFLAG + no description available + 16 + 1 + read-write + + + + + RVR + SysTick Reload Value Register + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + RELOAD + Value to load into the SysTick Current Value Register when the counter reaches 0 + 0 + 24 + read-write + + + + + CVR + SysTick Current Value Register + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + CURRENT + Current value at the time the register is accessed + 0 + 24 + read-write + + + + + CALIB + SysTick Calibration Value Register + 0xC + 32 + read-only + 0x80000000 + 0xFFFFFFFF + + + TENMS + Reload value to use for 10ms timing + 0 + 24 + read-only + + + SKEW + no description available + 30 + 1 + read-only + + + 0 + 10ms calibration value is exact + #0 + + + 1 + 10ms calibration value is inexact, because of the clock frequency + #1 + + + + + NOREF + no description available + 31 + 1 + read-only + + + 0 + The reference clock is provided + #0 + + + 1 + The reference clock is not provided + #1 + + + + + + + + + NVIC + Nested Vectored Interrupt Controller + 0xE000E100 + + 0 + 0xE04 + registers + + + + NVICISER0 + Interrupt Set Enable Register n + 0 + 32 + read-write + 0 + 0xFFFFFFFF + + + SETENA + Interrupt set enable bits + 0 + 32 + read-write + + + + + NVICISER1 + Interrupt Set Enable Register n + 0x4 + 32 + read-write + 0 + 0xFFFFFFFF + + + SETENA + Interrupt set enable bits + 0 + 32 + read-write + + + + + NVICISER2 + Interrupt Set Enable Register n + 0x8 + 32 + read-write + 0 + 0xFFFFFFFF + + + SETENA + Interrupt set enable bits + 0 + 32 + read-write + + + + + NVICISER3 + Interrupt Set Enable Register n + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + SETENA + Interrupt set enable bits + 0 + 32 + read-write + + + + + NVICICER0 + Interrupt Clear Enable Register n + 0x80 + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRENA + Interrupt clear-enable bits + 0 + 32 + read-write + + + + + NVICICER1 + Interrupt Clear Enable Register n + 0x84 + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRENA + Interrupt clear-enable bits + 0 + 32 + read-write + + + + + NVICICER2 + Interrupt Clear Enable Register n + 0x88 + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRENA + Interrupt clear-enable bits + 0 + 32 + read-write + + + + + NVICICER3 + Interrupt Clear Enable Register n + 0x8C + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRENA + Interrupt clear-enable bits + 0 + 32 + read-write + + + + + NVICISPR0 + Interrupt Set Pending Register n + 0x100 + 32 + read-write + 0 + 0xFFFFFFFF + + + SETPEND + Interrupt set-pending bits + 0 + 32 + read-write + + + + + NVICISPR1 + Interrupt Set Pending Register n + 0x104 + 32 + read-write + 0 + 0xFFFFFFFF + + + SETPEND + Interrupt set-pending bits + 0 + 32 + read-write + + + + + NVICISPR2 + Interrupt Set Pending Register n + 0x108 + 32 + read-write + 0 + 0xFFFFFFFF + + + SETPEND + Interrupt set-pending bits + 0 + 32 + read-write + + + + + NVICISPR3 + Interrupt Set Pending Register n + 0x10C + 32 + read-write + 0 + 0xFFFFFFFF + + + SETPEND + Interrupt set-pending bits + 0 + 32 + read-write + + + + + NVICICPR0 + Interrupt Clear Pending Register n + 0x180 + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRPEND + Interrupt clear-pending bits + 0 + 32 + read-write + + + + + NVICICPR1 + Interrupt Clear Pending Register n + 0x184 + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRPEND + Interrupt clear-pending bits + 0 + 32 + read-write + + + + + NVICICPR2 + Interrupt Clear Pending Register n + 0x188 + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRPEND + Interrupt clear-pending bits + 0 + 32 + read-write + + + + + NVICICPR3 + Interrupt Clear Pending Register n + 0x18C + 32 + read-write + 0 + 0xFFFFFFFF + + + CLRPEND + Interrupt clear-pending bits + 0 + 32 + read-write + + + + + NVICIABR0 + Interrupt Active bit Register n + 0x200 + 32 + read-write + 0 + 0xFFFFFFFF + + + ACTIVE + Interrupt active flags + 0 + 32 + read-write + + + + + NVICIABR1 + Interrupt Active bit Register n + 0x204 + 32 + read-write + 0 + 0xFFFFFFFF + + + ACTIVE + Interrupt active flags + 0 + 32 + read-write + + + + + NVICIABR2 + Interrupt Active bit Register n + 0x208 + 32 + read-write + 0 + 0xFFFFFFFF + + + ACTIVE + Interrupt active flags + 0 + 32 + read-write + + + + + NVICIABR3 + Interrupt Active bit Register n + 0x20C + 32 + read-write + 0 + 0xFFFFFFFF + + + ACTIVE + Interrupt active flags + 0 + 32 + read-write + + + + + NVICIP0 + Interrupt Priority Register n + 0x300 + 8 + read-write + 0 + 0xFF + + + PRI0 + Priority of interrupt 0 + 0 + 8 + read-write + + + + + NVICIP1 + Interrupt Priority Register n + 0x301 + 8 + read-write + 0 + 0xFF + + + PRI1 + Priority of interrupt 1 + 0 + 8 + read-write + + + + + NVICIP2 + Interrupt Priority Register n + 0x302 + 8 + read-write + 0 + 0xFF + + + PRI2 + Priority of interrupt 2 + 0 + 8 + read-write + + + + + NVICIP3 + Interrupt Priority Register n + 0x303 + 8 + read-write + 0 + 0xFF + + + PRI3 + Priority of interrupt 3 + 0 + 8 + read-write + + + + + NVICIP4 + Interrupt Priority Register n + 0x304 + 8 + read-write + 0 + 0xFF + + + PRI4 + Priority of interrupt 4 + 0 + 8 + read-write + + + + + NVICIP5 + Interrupt Priority Register n + 0x305 + 8 + read-write + 0 + 0xFF + + + PRI5 + Priority of interrupt 5 + 0 + 8 + read-write + + + + + NVICIP6 + Interrupt Priority Register n + 0x306 + 8 + read-write + 0 + 0xFF + + + PRI6 + Priority of interrupt 6 + 0 + 8 + read-write + + + + + NVICIP7 + Interrupt Priority Register n + 0x307 + 8 + read-write + 0 + 0xFF + + + PRI7 + Priority of interrupt 7 + 0 + 8 + read-write + + + + + NVICIP8 + Interrupt Priority Register n + 0x308 + 8 + read-write + 0 + 0xFF + + + PRI8 + Priority of interrupt 8 + 0 + 8 + read-write + + + + + NVICIP9 + Interrupt Priority Register n + 0x309 + 8 + read-write + 0 + 0xFF + + + PRI9 + Priority of interrupt 9 + 0 + 8 + read-write + + + + + NVICIP10 + Interrupt Priority Register n + 0x30A + 8 + read-write + 0 + 0xFF + + + PRI10 + Priority of interrupt 10 + 0 + 8 + read-write + + + + + NVICIP11 + Interrupt Priority Register n + 0x30B + 8 + read-write + 0 + 0xFF + + + PRI11 + Priority of interrupt 11 + 0 + 8 + read-write + + + + + NVICIP12 + Interrupt Priority Register n + 0x30C + 8 + read-write + 0 + 0xFF + + + PRI12 + Priority of interrupt 12 + 0 + 8 + read-write + + + + + NVICIP13 + Interrupt Priority Register n + 0x30D + 8 + read-write + 0 + 0xFF + + + PRI13 + Priority of interrupt 13 + 0 + 8 + read-write + + + + + NVICIP14 + Interrupt Priority Register n + 0x30E + 8 + read-write + 0 + 0xFF + + + PRI14 + Priority of interrupt 14 + 0 + 8 + read-write + + + + + NVICIP15 + Interrupt Priority Register n + 0x30F + 8 + read-write + 0 + 0xFF + + + PRI15 + Priority of interrupt 15 + 0 + 8 + read-write + + + + + NVICIP16 + Interrupt Priority Register n + 0x310 + 8 + read-write + 0 + 0xFF + + + PRI16 + Priority of interrupt 16 + 0 + 8 + read-write + + + + + NVICIP17 + Interrupt Priority Register n + 0x311 + 8 + read-write + 0 + 0xFF + + + PRI17 + Priority of interrupt 17 + 0 + 8 + read-write + + + + + NVICIP18 + Interrupt Priority Register n + 0x312 + 8 + read-write + 0 + 0xFF + + + PRI18 + Priority of interrupt 18 + 0 + 8 + read-write + + + + + NVICIP19 + Interrupt Priority Register n + 0x313 + 8 + read-write + 0 + 0xFF + + + PRI19 + Priority of interrupt 19 + 0 + 8 + read-write + + + + + NVICIP20 + Interrupt Priority Register n + 0x314 + 8 + read-write + 0 + 0xFF + + + PRI20 + Priority of interrupt 20 + 0 + 8 + read-write + + + + + NVICIP21 + Interrupt Priority Register n + 0x315 + 8 + read-write + 0 + 0xFF + + + PRI21 + Priority of interrupt 21 + 0 + 8 + read-write + + + + + NVICIP22 + Interrupt Priority Register n + 0x316 + 8 + read-write + 0 + 0xFF + + + PRI22 + Priority of interrupt 22 + 0 + 8 + read-write + + + + + NVICIP23 + Interrupt Priority Register n + 0x317 + 8 + read-write + 0 + 0xFF + + + PRI23 + Priority of interrupt 23 + 0 + 8 + read-write + + + + + NVICIP24 + Interrupt Priority Register n + 0x318 + 8 + read-write + 0 + 0xFF + + + PRI24 + Priority of interrupt 24 + 0 + 8 + read-write + + + + + NVICIP25 + Interrupt Priority Register n + 0x319 + 8 + read-write + 0 + 0xFF + + + PRI25 + Priority of interrupt 25 + 0 + 8 + read-write + + + + + NVICIP26 + Interrupt Priority Register n + 0x31A + 8 + read-write + 0 + 0xFF + + + PRI26 + Priority of interrupt 26 + 0 + 8 + read-write + + + + + NVICIP27 + Interrupt Priority Register n + 0x31B + 8 + read-write + 0 + 0xFF + + + PRI27 + Priority of interrupt 27 + 0 + 8 + read-write + + + + + NVICIP28 + Interrupt Priority Register n + 0x31C + 8 + read-write + 0 + 0xFF + + + PRI28 + Priority of interrupt 28 + 0 + 8 + read-write + + + + + NVICIP29 + Interrupt Priority Register n + 0x31D + 8 + read-write + 0 + 0xFF + + + PRI29 + Priority of interrupt 29 + 0 + 8 + read-write + + + + + NVICIP30 + Interrupt Priority Register n + 0x31E + 8 + read-write + 0 + 0xFF + + + PRI30 + Priority of interrupt 30 + 0 + 8 + read-write + + + + + NVICIP31 + Interrupt Priority Register n + 0x31F + 8 + read-write + 0 + 0xFF + + + PRI31 + Priority of interrupt 31 + 0 + 8 + read-write + + + + + NVICIP32 + Interrupt Priority Register n + 0x320 + 8 + read-write + 0 + 0xFF + + + PRI32 + Priority of interrupt 32 + 0 + 8 + read-write + + + + + NVICIP33 + Interrupt Priority Register n + 0x321 + 8 + read-write + 0 + 0xFF + + + PRI33 + Priority of interrupt 33 + 0 + 8 + read-write + + + + + NVICIP34 + Interrupt Priority Register n + 0x322 + 8 + read-write + 0 + 0xFF + + + PRI34 + Priority of interrupt 34 + 0 + 8 + read-write + + + + + NVICIP35 + Interrupt Priority Register n + 0x323 + 8 + read-write + 0 + 0xFF + + + PRI35 + Priority of interrupt 35 + 0 + 8 + read-write + + + + + NVICIP36 + Interrupt Priority Register n + 0x324 + 8 + read-write + 0 + 0xFF + + + PRI36 + Priority of interrupt 36 + 0 + 8 + read-write + + + + + NVICIP37 + Interrupt Priority Register n + 0x325 + 8 + read-write + 0 + 0xFF + + + PRI37 + Priority of interrupt 37 + 0 + 8 + read-write + + + + + NVICIP38 + Interrupt Priority Register n + 0x326 + 8 + read-write + 0 + 0xFF + + + PRI38 + Priority of interrupt 38 + 0 + 8 + read-write + + + + + NVICIP39 + Interrupt Priority Register n + 0x327 + 8 + read-write + 0 + 0xFF + + + PRI39 + Priority of interrupt 39 + 0 + 8 + read-write + + + + + NVICIP40 + Interrupt Priority Register n + 0x328 + 8 + read-write + 0 + 0xFF + + + PRI40 + Priority of interrupt 40 + 0 + 8 + read-write + + + + + NVICIP41 + Interrupt Priority Register n + 0x329 + 8 + read-write + 0 + 0xFF + + + PRI41 + Priority of interrupt 41 + 0 + 8 + read-write + + + + + NVICIP42 + Interrupt Priority Register n + 0x32A + 8 + read-write + 0 + 0xFF + + + PRI42 + Priority of interrupt 42 + 0 + 8 + read-write + + + + + NVICIP43 + Interrupt Priority Register n + 0x32B + 8 + read-write + 0 + 0xFF + + + PRI43 + Priority of interrupt 43 + 0 + 8 + read-write + + + + + NVICIP44 + Interrupt Priority Register n + 0x32C + 8 + read-write + 0 + 0xFF + + + PRI44 + Priority of interrupt 44 + 0 + 8 + read-write + + + + + NVICIP45 + Interrupt Priority Register n + 0x32D + 8 + read-write + 0 + 0xFF + + + PRI45 + Priority of interrupt 45 + 0 + 8 + read-write + + + + + NVICIP46 + Interrupt Priority Register n + 0x32E + 8 + read-write + 0 + 0xFF + + + PRI46 + Priority of interrupt 46 + 0 + 8 + read-write + + + + + NVICIP47 + Interrupt Priority Register n + 0x32F + 8 + read-write + 0 + 0xFF + + + PRI47 + Priority of interrupt 47 + 0 + 8 + read-write + + + + + NVICIP48 + Interrupt Priority Register n + 0x330 + 8 + read-write + 0 + 0xFF + + + PRI48 + Priority of interrupt 48 + 0 + 8 + read-write + + + + + NVICIP49 + Interrupt Priority Register n + 0x331 + 8 + read-write + 0 + 0xFF + + + PRI49 + Priority of interrupt 49 + 0 + 8 + read-write + + + + + NVICIP50 + Interrupt Priority Register n + 0x332 + 8 + read-write + 0 + 0xFF + + + PRI50 + Priority of interrupt 50 + 0 + 8 + read-write + + + + + NVICIP51 + Interrupt Priority Register n + 0x333 + 8 + read-write + 0 + 0xFF + + + PRI51 + Priority of interrupt 51 + 0 + 8 + read-write + + + + + NVICIP52 + Interrupt Priority Register n + 0x334 + 8 + read-write + 0 + 0xFF + + + PRI52 + Priority of interrupt 52 + 0 + 8 + read-write + + + + + NVICIP53 + Interrupt Priority Register n + 0x335 + 8 + read-write + 0 + 0xFF + + + PRI53 + Priority of interrupt 53 + 0 + 8 + read-write + + + + + NVICIP54 + Interrupt Priority Register n + 0x336 + 8 + read-write + 0 + 0xFF + + + PRI54 + Priority of interrupt 54 + 0 + 8 + read-write + + + + + NVICIP55 + Interrupt Priority Register n + 0x337 + 8 + read-write + 0 + 0xFF + + + PRI55 + Priority of interrupt 55 + 0 + 8 + read-write + + + + + NVICIP56 + Interrupt Priority Register n + 0x338 + 8 + read-write + 0 + 0xFF + + + PRI56 + Priority of interrupt 56 + 0 + 8 + read-write + + + + + NVICIP57 + Interrupt Priority Register n + 0x339 + 8 + read-write + 0 + 0xFF + + + PRI57 + Priority of interrupt 57 + 0 + 8 + read-write + + + + + NVICIP58 + Interrupt Priority Register n + 0x33A + 8 + read-write + 0 + 0xFF + + + PRI58 + Priority of interrupt 58 + 0 + 8 + read-write + + + + + NVICIP59 + Interrupt Priority Register n + 0x33B + 8 + read-write + 0 + 0xFF + + + PRI59 + Priority of interrupt 59 + 0 + 8 + read-write + + + + + NVICIP60 + Interrupt Priority Register n + 0x33C + 8 + read-write + 0 + 0xFF + + + PRI60 + Priority of interrupt 60 + 0 + 8 + read-write + + + + + NVICIP61 + Interrupt Priority Register n + 0x33D + 8 + read-write + 0 + 0xFF + + + PRI61 + Priority of interrupt 61 + 0 + 8 + read-write + + + + + NVICIP62 + Interrupt Priority Register n + 0x33E + 8 + read-write + 0 + 0xFF + + + PRI62 + Priority of interrupt 62 + 0 + 8 + read-write + + + + + NVICIP63 + Interrupt Priority Register n + 0x33F + 8 + read-write + 0 + 0xFF + + + PRI63 + Priority of interrupt 63 + 0 + 8 + read-write + + + + + NVICIP64 + Interrupt Priority Register n + 0x340 + 8 + read-write + 0 + 0xFF + + + PRI64 + Priority of interrupt 64 + 0 + 8 + read-write + + + + + NVICIP65 + Interrupt Priority Register n + 0x341 + 8 + read-write + 0 + 0xFF + + + PRI65 + Priority of interrupt 65 + 0 + 8 + read-write + + + + + NVICIP66 + Interrupt Priority Register n + 0x342 + 8 + read-write + 0 + 0xFF + + + PRI66 + Priority of interrupt 66 + 0 + 8 + read-write + + + + + NVICIP67 + Interrupt Priority Register n + 0x343 + 8 + read-write + 0 + 0xFF + + + PRI67 + Priority of interrupt 67 + 0 + 8 + read-write + + + + + NVICIP68 + Interrupt Priority Register n + 0x344 + 8 + read-write + 0 + 0xFF + + + PRI68 + Priority of interrupt 68 + 0 + 8 + read-write + + + + + NVICIP69 + Interrupt Priority Register n + 0x345 + 8 + read-write + 0 + 0xFF + + + PRI69 + Priority of interrupt 69 + 0 + 8 + read-write + + + + + NVICIP70 + Interrupt Priority Register n + 0x346 + 8 + read-write + 0 + 0xFF + + + PRI70 + Priority of interrupt 70 + 0 + 8 + read-write + + + + + NVICIP71 + Interrupt Priority Register n + 0x347 + 8 + read-write + 0 + 0xFF + + + PRI71 + Priority of interrupt 71 + 0 + 8 + read-write + + + + + NVICIP72 + Interrupt Priority Register n + 0x348 + 8 + read-write + 0 + 0xFF + + + PRI72 + Priority of interrupt 72 + 0 + 8 + read-write + + + + + NVICIP73 + Interrupt Priority Register n + 0x349 + 8 + read-write + 0 + 0xFF + + + PRI73 + Priority of interrupt 73 + 0 + 8 + read-write + + + + + NVICIP74 + Interrupt Priority Register n + 0x34A + 8 + read-write + 0 + 0xFF + + + PRI74 + Priority of interrupt 74 + 0 + 8 + read-write + + + + + NVICIP75 + Interrupt Priority Register n + 0x34B + 8 + read-write + 0 + 0xFF + + + PRI75 + Priority of interrupt 75 + 0 + 8 + read-write + + + + + NVICIP76 + Interrupt Priority Register n + 0x34C + 8 + read-write + 0 + 0xFF + + + PRI76 + Priority of interrupt 76 + 0 + 8 + read-write + + + + + NVICIP77 + Interrupt Priority Register n + 0x34D + 8 + read-write + 0 + 0xFF + + + PRI77 + Priority of interrupt 77 + 0 + 8 + read-write + + + + + NVICIP78 + Interrupt Priority Register n + 0x34E + 8 + read-write + 0 + 0xFF + + + PRI78 + Priority of interrupt 78 + 0 + 8 + read-write + + + + + NVICIP79 + Interrupt Priority Register n + 0x34F + 8 + read-write + 0 + 0xFF + + + PRI79 + Priority of interrupt 79 + 0 + 8 + read-write + + + + + NVICIP80 + Interrupt Priority Register n + 0x350 + 8 + read-write + 0 + 0xFF + + + PRI80 + Priority of interrupt 80 + 0 + 8 + read-write + + + + + NVICIP81 + Interrupt Priority Register n + 0x351 + 8 + read-write + 0 + 0xFF + + + PRI81 + Priority of interrupt 81 + 0 + 8 + read-write + + + + + NVICIP82 + Interrupt Priority Register n + 0x352 + 8 + read-write + 0 + 0xFF + + + PRI82 + Priority of interrupt 82 + 0 + 8 + read-write + + + + + NVICIP83 + Interrupt Priority Register n + 0x353 + 8 + read-write + 0 + 0xFF + + + PRI83 + Priority of interrupt 83 + 0 + 8 + read-write + + + + + NVICIP84 + Interrupt Priority Register n + 0x354 + 8 + read-write + 0 + 0xFF + + + PRI84 + Priority of interrupt 84 + 0 + 8 + read-write + + + + + NVICIP85 + Interrupt Priority Register n + 0x355 + 8 + read-write + 0 + 0xFF + + + PRI85 + Priority of interrupt 85 + 0 + 8 + read-write + + + + + NVICIP86 + Interrupt Priority Register n + 0x356 + 8 + read-write + 0 + 0xFF + + + PRI86 + Priority of interrupt 86 + 0 + 8 + read-write + + + + + NVICIP87 + Interrupt Priority Register n + 0x357 + 8 + read-write + 0 + 0xFF + + + PRI87 + Priority of interrupt 87 + 0 + 8 + read-write + + + + + NVICIP88 + Interrupt Priority Register n + 0x358 + 8 + read-write + 0 + 0xFF + + + PRI88 + Priority of interrupt 88 + 0 + 8 + read-write + + + + + NVICIP89 + Interrupt Priority Register n + 0x359 + 8 + read-write + 0 + 0xFF + + + PRI89 + Priority of interrupt 89 + 0 + 8 + read-write + + + + + NVICIP90 + Interrupt Priority Register n + 0x35A + 8 + read-write + 0 + 0xFF + + + PRI90 + Priority of interrupt 90 + 0 + 8 + read-write + + + + + NVICIP91 + Interrupt Priority Register n + 0x35B + 8 + read-write + 0 + 0xFF + + + PRI91 + Priority of interrupt 91 + 0 + 8 + read-write + + + + + NVICIP92 + Interrupt Priority Register n + 0x35C + 8 + read-write + 0 + 0xFF + + + PRI92 + Priority of interrupt 92 + 0 + 8 + read-write + + + + + NVICIP93 + Interrupt Priority Register n + 0x35D + 8 + read-write + 0 + 0xFF + + + PRI93 + Priority of interrupt 93 + 0 + 8 + read-write + + + + + NVICIP94 + Interrupt Priority Register n + 0x35E + 8 + read-write + 0 + 0xFF + + + PRI94 + Priority of interrupt 94 + 0 + 8 + read-write + + + + + NVICIP95 + Interrupt Priority Register n + 0x35F + 8 + read-write + 0 + 0xFF + + + PRI95 + Priority of interrupt 95 + 0 + 8 + read-write + + + + + NVICIP96 + Interrupt Priority Register n + 0x360 + 8 + read-write + 0 + 0xFF + + + PRI96 + Priority of interrupt 96 + 0 + 8 + read-write + + + + + NVICIP97 + Interrupt Priority Register n + 0x361 + 8 + read-write + 0 + 0xFF + + + PRI97 + Priority of interrupt 97 + 0 + 8 + read-write + + + + + NVICIP98 + Interrupt Priority Register n + 0x362 + 8 + read-write + 0 + 0xFF + + + PRI98 + Priority of interrupt 98 + 0 + 8 + read-write + + + + + NVICIP99 + Interrupt Priority Register n + 0x363 + 8 + read-write + 0 + 0xFF + + + PRI99 + Priority of interrupt 99 + 0 + 8 + read-write + + + + + NVICIP100 + Interrupt Priority Register n + 0x364 + 8 + read-write + 0 + 0xFF + + + PRI100 + Priority of interrupt 100 + 0 + 8 + read-write + + + + + NVICIP101 + Interrupt Priority Register n + 0x365 + 8 + read-write + 0 + 0xFF + + + PRI101 + Priority of interrupt 101 + 0 + 8 + read-write + + + + + NVICIP102 + Interrupt Priority Register n + 0x366 + 8 + read-write + 0 + 0xFF + + + PRI102 + Priority of interrupt 102 + 0 + 8 + read-write + + + + + NVICIP103 + Interrupt Priority Register n + 0x367 + 8 + read-write + 0 + 0xFF + + + PRI103 + Priority of interrupt 103 + 0 + 8 + read-write + + + + + NVICIP104 + Interrupt Priority Register n + 0x368 + 8 + read-write + 0 + 0xFF + + + PRI104 + Priority of interrupt 104 + 0 + 8 + read-write + + + + + NVICIP105 + Interrupt Priority Register n + 0x369 + 8 + read-write + 0 + 0xFF + + + PRI105 + Priority of interrupt 105 + 0 + 8 + read-write + + + + + NVICSTIR + Software Trigger Interrupt Register + 0xE00 + 32 + read-write + 0 + 0xFFFFFFFF + + + INTID + Interrupt ID of the interrupt to trigger, in the range 0-239. For example, a value of 0x03 specifies interrupt IRQ3. + 0 + 9 + read-write + + + + + + + MCM + Core Platform Miscellaneous Control Module + MCM_ + 0xE0080000 + + 0x8 + 0x2C + registers + + + MCM + 17 + + + + PLASC + Crossbar Switch (AXBS) Slave Configuration + 0x8 + 16 + read-only + 0x1F + 0xFFFF + + + ASC + Each bit in the ASC field indicates whether there is a corresponding connection to the crossbar switch's slave input port. + 0 + 8 + read-only + + + 0 + A bus slave connection to AXBS input port n is absent + #0 + + + 1 + A bus slave connection to AXBS input port n is present + #1 + + + + + + + PLAMC + Crossbar Switch (AXBS) Master Configuration + 0xA + 16 + read-only + 0x37 + 0xFFFF + + + AMC + Each bit in the AMC field indicates whether there is a corresponding connection to the AXBS master input port. + 0 + 8 + read-only + + + 0 + A bus master connection to AXBS input port n is absent + #0 + + + 1 + A bus master connection to AXBS input port n is present + #1 + + + + + + + CR + Control Register + 0xC + 32 + read-write + 0 + 0xFFFFFFFF + + + SRAMUAP + SRAM_U arbitration priority + 24 + 2 + read-write + + + 00 + Round robin + #00 + + + 01 + Special round robin (favors SRAM backoor accesses over the processor) + #01 + + + 10 + Fixed priority. Processor has highest, backdoor has lowest + #10 + + + 11 + Fixed priority. Backdoor has highest, processor has lowest + #11 + + + + + SRAMUWP + SRAM_U write protect + 26 + 1 + read-write + + + SRAMLAP + SRAM_L arbitration priority + 28 + 2 + read-write + + + 00 + Round robin + #00 + + + 01 + Special round robin (favors SRAM backoor accesses over the processor) + #01 + + + 10 + Fixed priority. Processor has highest, backdoor has lowest + #10 + + + 11 + Fixed priority. Backdoor has highest, processor has lowest + #11 + + + + + SRAMLWP + SRAM_L Write Protect + 30 + 1 + read-write + + + + + ISCR + Interrupt Status Register + 0x10 + 32 + read-write + 0 + 0xFFFFFFFF + + + IRQ + Normal Interrupt Pending + 1 + 1 + read-write + + + 0 + No pending interrupt + #0 + + + 1 + Due to the ETB counter expiring, a normal interrupt is pending + #1 + + + + + NMI + Non-maskable Interrupt Pending + 2 + 1 + read-write + + + 0 + No pending NMI + #0 + + + 1 + Due to the ETB counter expiring, an NMI is pending + #1 + + + + + DHREQ + Debug Halt Request Indicator + 3 + 1 + read-only + + + 0 + No debug halt request + #0 + + + 1 + Debug halt request initiated + #1 + + + + + FIOC + FPU invalid operation interrupt status + 8 + 1 + read-only + + + 0 + No interrupt + #0 + + + 1 + Interrupt occurred + #1 + + + + + FDZC + FPU divide-by-zero interrupt status + 9 + 1 + read-only + + + 0 + No interrupt + #0 + + + 1 + Interrupt occurred + #1 + + + + + FOFC + FPU overflow interrupt status + 10 + 1 + read-only + + + 0 + No interrupt + #0 + + + 1 + Interrupt occurred + #1 + + + + + FUFC + FPU underflow interrupt status + 11 + 1 + read-only + + + 0 + No interrupt + #0 + + + 1 + Interrupt occurred + #1 + + + + + FIXC + FPU inexact interrupt status + 12 + 1 + read-only + + + 0 + No interrupt + #0 + + + 1 + Interrupt occurred + #1 + + + + + FIDC + FPU input denormal interrupt status + 15 + 1 + read-only + + + 0 + No interrupt + #0 + + + 1 + Interrupt occurred + #1 + + + + + FIOCE + FPU invalid operation interrupt enable + 24 + 1 + read-write + + + 0 + Disable interrupt + #0 + + + 1 + Enable interrupt + #1 + + + + + FDZCE + FPU divide-by-zero interrupt enable + 25 + 1 + read-write + + + 0 + Disable interrupt + #0 + + + 1 + Enable interrupt + #1 + + + + + FOFCE + FPU overflow interrupt enable + 26 + 1 + read-write + + + 0 + Disable interrupt + #0 + + + 1 + Enable interrupt + #1 + + + + + FUFCE + FPU underflow interrupt enable + 27 + 1 + read-write + + + 0 + Disable interrupt + #0 + + + 1 + Enable interrupt + #1 + + + + + FIXCE + FPU inexact interrupt enable + 28 + 1 + read-write + + + 0 + Disable interrupt + #0 + + + 1 + Enable interrupt + #1 + + + + + FIDCE + FPU input denormal interrupt enable + 31 + 1 + read-write + + + 0 + Disable interrupt + #0 + + + 1 + Enable interrupt + #1 + + + + + + + ETBCC + ETB Counter Control register + 0x14 + 32 + read-write + 0 + 0xFFFFFFFF + + + CNTEN + Counter Enable + 0 + 1 + read-write + + + 0 + ETB counter disabled + #0 + + + 1 + ETB counter enabled + #1 + + + + + RSPT + Response Type + 1 + 2 + read-write + + + 00 + No response when the ETB count expires + #00 + + + 01 + Generate a normal interrupt when the ETB count expires + #01 + + + 10 + Generate an NMI when the ETB count expires + #10 + + + 11 + Generate a debug halt when the ETB count expires + #11 + + + + + RLRQ + Reload Request + 3 + 1 + read-write + + + 0 + No effect + #0 + + + 1 + Clears pending debug halt, NMI, or IRQ interrupt requests + #1 + + + + + ETDIS + ETM-To-TPIU Disable + 4 + 1 + read-write + + + 0 + ETM-to-TPIU trace path enabled + #0 + + + 1 + ETM-to-TPIU trace path disabled + #1 + + + + + ITDIS + ITM-To-TPIU Disable + 5 + 1 + read-write + + + 0 + ITM-to-TPIU trace path enabled + #0 + + + 1 + ITM-to-TPIU trace path disabled + #1 + + + + + + + ETBRL + ETB Reload register + 0x18 + 32 + read-write + 0 + 0xFFFFFFFF + + + RELOAD + Byte Count Reload Value + 0 + 11 + read-write + + + + + ETBCNT + ETB Counter Value register + 0x1C + 32 + read-only + 0 + 0xFFFFFFFF + + + COUNTER + Byte Count Counter Value + 0 + 11 + read-only + + + + + PID + Process ID register + 0x30 + 32 + read-write + 0 + 0xFFFFFFFF + + + PID + M0_PID And M1_PID For MPU + 0 + 8 + read-write + + + + + + + CAU + Memory Mapped Cryptographic Acceleration Unit (MMCAU) + 0xE0081000 + + 0 + 0xB6C + registers + + + + CAU_DIRECT0 + Direct access register 0 + 0 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT0 + Direct register 0 + 0 + 32 + write-only + + + + + CAU_DIRECT1 + Direct access register 1 + 0x4 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT1 + Direct register 1 + 0 + 32 + write-only + + + + + CAU_DIRECT2 + Direct access register 2 + 0x8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT2 + Direct register 2 + 0 + 32 + write-only + + + + + CAU_DIRECT3 + Direct access register 3 + 0xC + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT3 + Direct register 3 + 0 + 32 + write-only + + + + + CAU_DIRECT4 + Direct access register 4 + 0x10 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT4 + Direct register 4 + 0 + 32 + write-only + + + + + CAU_DIRECT5 + Direct access register 5 + 0x14 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT5 + Direct register 5 + 0 + 32 + write-only + + + + + CAU_DIRECT6 + Direct access register 6 + 0x18 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT6 + Direct register 6 + 0 + 32 + write-only + + + + + CAU_DIRECT7 + Direct access register 7 + 0x1C + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT7 + Direct register 7 + 0 + 32 + write-only + + + + + CAU_DIRECT8 + Direct access register 8 + 0x20 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT8 + Direct register 8 + 0 + 32 + write-only + + + + + CAU_DIRECT9 + Direct access register 9 + 0x24 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT9 + Direct register 9 + 0 + 32 + write-only + + + + + CAU_DIRECT10 + Direct access register 10 + 0x28 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT10 + Direct register 10 + 0 + 32 + write-only + + + + + CAU_DIRECT11 + Direct access register 11 + 0x2C + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT11 + Direct register 11 + 0 + 32 + write-only + + + + + CAU_DIRECT12 + Direct access register 12 + 0x30 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT12 + Direct register 12 + 0 + 32 + write-only + + + + + CAU_DIRECT13 + Direct access register 13 + 0x34 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT13 + Direct register 13 + 0 + 32 + write-only + + + + + CAU_DIRECT14 + Direct access register 14 + 0x38 + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT14 + Direct register 14 + 0 + 32 + write-only + + + + + CAU_DIRECT15 + Direct access register 15 + 0x3C + 32 + write-only + 0 + 0xFFFFFFFF + + + CAU_DIRECT15 + Direct register 15 + 0 + 32 + write-only + + + + + CAU_LDR_CASR + Status register - Load Register command + 0x840 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_LDR_CAA + Accumulator register - Load Register command + 0x844 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_LDR_CA0 + General Purpose Register 0 - Load Register command + 0x848 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_LDR_CA1 + General Purpose Register 1 - Load Register command + 0x84C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_LDR_CA2 + General Purpose Register 2 - Load Register command + 0x850 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_LDR_CA3 + General Purpose Register 3 - Load Register command + 0x854 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_LDR_CA4 + General Purpose Register 4 - Load Register command + 0x858 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_LDR_CA5 + General Purpose Register 5 - Load Register command + 0x85C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_LDR_CA6 + General Purpose Register 6 - Load Register command + 0x860 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_LDR_CA7 + General Purpose Register 7 - Load Register command + 0x864 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_LDR_CA8 + General Purpose Register 8 - Load Register command + 0x868 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + CAU_STR_CASR + Status register - Store Register command + 0x880 + 32 + read-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + read-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + read-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + read-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_STR_CAA + Accumulator register - Store Register command + 0x884 + 32 + read-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + read-only + + + + + CAU_STR_CA0 + General Purpose Register 0 - Store Register command + 0x888 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + read-only + + + + + CAU_STR_CA1 + General Purpose Register 1 - Store Register command + 0x88C + 32 + read-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + read-only + + + + + CAU_STR_CA2 + General Purpose Register 2 - Store Register command + 0x890 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + read-only + + + + + CAU_STR_CA3 + General Purpose Register 3 - Store Register command + 0x894 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + read-only + + + + + CAU_STR_CA4 + General Purpose Register 4 - Store Register command + 0x898 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + read-only + + + + + CAU_STR_CA5 + General Purpose Register 5 - Store Register command + 0x89C + 32 + read-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + read-only + + + + + CAU_STR_CA6 + General Purpose Register 6 - Store Register command + 0x8A0 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + read-only + + + + + CAU_STR_CA7 + General Purpose Register 7 - Store Register command + 0x8A4 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + read-only + + + + + CAU_STR_CA8 + General Purpose Register 8 - Store Register command + 0x8A8 + 32 + read-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + read-only + + + + + CAU_ADR_CASR + Status register - Add Register command + 0x8C0 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_ADR_CAA + Accumulator register - Add to register command + 0x8C4 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_ADR_CA0 + General Purpose Register 0 - Add to register command + 0x8C8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_ADR_CA1 + General Purpose Register 1 - Add to register command + 0x8CC + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_ADR_CA2 + General Purpose Register 2 - Add to register command + 0x8D0 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_ADR_CA3 + General Purpose Register 3 - Add to register command + 0x8D4 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_ADR_CA4 + General Purpose Register 4 - Add to register command + 0x8D8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_ADR_CA5 + General Purpose Register 5 - Add to register command + 0x8DC + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_ADR_CA6 + General Purpose Register 6 - Add to register command + 0x8E0 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_ADR_CA7 + General Purpose Register 7 - Add to register command + 0x8E4 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_ADR_CA8 + General Purpose Register 8 - Add to register command + 0x8E8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + CAU_RADR_CASR + Status register - Reverse and Add to Register command + 0x900 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_RADR_CAA + Accumulator register - Reverse and Add to Register command + 0x904 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_RADR_CA0 + General Purpose Register 0 - Reverse and Add to Register command + 0x908 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_RADR_CA1 + General Purpose Register 1 - Reverse and Add to Register command + 0x90C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_RADR_CA2 + General Purpose Register 2 - Reverse and Add to Register command + 0x910 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_RADR_CA3 + General Purpose Register 3 - Reverse and Add to Register command + 0x914 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_RADR_CA4 + General Purpose Register 4 - Reverse and Add to Register command + 0x918 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_RADR_CA5 + General Purpose Register 5 - Reverse and Add to Register command + 0x91C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_RADR_CA6 + General Purpose Register 6 - Reverse and Add to Register command + 0x920 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_RADR_CA7 + General Purpose Register 7 - Reverse and Add to Register command + 0x924 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_RADR_CA8 + General Purpose Register 8 - Reverse and Add to Register command + 0x928 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + CAU_XOR_CASR + Status register - Exclusive Or command + 0x980 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_XOR_CAA + Accumulator register - Exclusive Or command + 0x984 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_XOR_CA0 + General Purpose Register 0 - Exclusive Or command + 0x988 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_XOR_CA1 + General Purpose Register 1 - Exclusive Or command + 0x98C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_XOR_CA2 + General Purpose Register 2 - Exclusive Or command + 0x990 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_XOR_CA3 + General Purpose Register 3 - Exclusive Or command + 0x994 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_XOR_CA4 + General Purpose Register 4 - Exclusive Or command + 0x998 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_XOR_CA5 + General Purpose Register 5 - Exclusive Or command + 0x99C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_XOR_CA6 + General Purpose Register 6 - Exclusive Or command + 0x9A0 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_XOR_CA7 + General Purpose Register 7 - Exclusive Or command + 0x9A4 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_XOR_CA8 + General Purpose Register 8 - Exclusive Or command + 0x9A8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + CAU_ROTL_CASR + Status register - Rotate Left command + 0x9C0 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_ROTL_CAA + Accumulator register - Rotate Left command + 0x9C4 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_ROTL_CA0 + General Purpose Register 0 - Rotate Left command + 0x9C8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_ROTL_CA1 + General Purpose Register 1 - Rotate Left command + 0x9CC + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_ROTL_CA2 + General Purpose Register 2 - Rotate Left command + 0x9D0 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_ROTL_CA3 + General Purpose Register 3 - Rotate Left command + 0x9D4 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_ROTL_CA4 + General Purpose Register 4 - Rotate Left command + 0x9D8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_ROTL_CA5 + General Purpose Register 5 - Rotate Left command + 0x9DC + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_ROTL_CA6 + General Purpose Register 6 - Rotate Left command + 0x9E0 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_ROTL_CA7 + General Purpose Register 7 - Rotate Left command + 0x9E4 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_ROTL_CA8 + General Purpose Register 8 - Rotate Left command + 0x9E8 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + CAU_AESC_CASR + Status register - AES Column Operation command + 0xB00 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_AESC_CAA + Accumulator register - AES Column Operation command + 0xB04 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_AESC_CA0 + General Purpose Register 0 - AES Column Operation command + 0xB08 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_AESC_CA1 + General Purpose Register 1 - AES Column Operation command + 0xB0C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_AESC_CA2 + General Purpose Register 2 - AES Column Operation command + 0xB10 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_AESC_CA3 + General Purpose Register 3 - AES Column Operation command + 0xB14 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_AESC_CA4 + General Purpose Register 4 - AES Column Operation command + 0xB18 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_AESC_CA5 + General Purpose Register 5 - AES Column Operation command + 0xB1C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_AESC_CA6 + General Purpose Register 6 - AES Column Operation command + 0xB20 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_AESC_CA7 + General Purpose Register 7 - AES Column Operation command + 0xB24 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_AESC_CA8 + General Purpose Register 8 - AES Column Operation command + 0xB28 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + CAU_AESIC_CASR + Status register - AES Inverse Column Operation command + 0xB40 + 32 + write-only + 0x20000000 + 0xFFFFFFFF + + + IC + no description available + 0 + 1 + write-only + + + 0 + No illegal commands issued + #0 + + + 1 + Illegal command issued + #1 + + + + + DPE + no description available + 1 + 1 + write-only + + + 0 + No error detected + #0 + + + 1 + DES key parity error detected + #1 + + + + + VER + CAU version + 28 + 4 + write-only + + + 0001 + Initial CAU version + #0001 + + + 0010 + Second version, added support for SHA-256 algorithm.(This is the value on this device) + #0010 + + + + + + + CAU_AESIC_CAA + Accumulator register - AES Inverse Column Operation command + 0xB44 + 32 + write-only + 0 + 0xFFFFFFFF + + + ACC + ACC + 0 + 32 + write-only + + + + + CAU_AESIC_CA0 + General Purpose Register 0 - AES Inverse Column Operation command + 0xB48 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA0 + CA0 + 0 + 32 + write-only + + + + + CAU_AESIC_CA1 + General Purpose Register 1 - AES Inverse Column Operation command + 0xB4C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA1 + CA1 + 0 + 32 + write-only + + + + + CAU_AESIC_CA2 + General Purpose Register 2 - AES Inverse Column Operation command + 0xB50 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA2 + CA2 + 0 + 32 + write-only + + + + + CAU_AESIC_CA3 + General Purpose Register 3 - AES Inverse Column Operation command + 0xB54 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA3 + CA3 + 0 + 32 + write-only + + + + + CAU_AESIC_CA4 + General Purpose Register 4 - AES Inverse Column Operation command + 0xB58 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA4 + CA4 + 0 + 32 + write-only + + + + + CAU_AESIC_CA5 + General Purpose Register 5 - AES Inverse Column Operation command + 0xB5C + 32 + write-only + 0 + 0xFFFFFFFF + + + CA5 + CA5 + 0 + 32 + write-only + + + + + CAU_AESIC_CA6 + General Purpose Register 6 - AES Inverse Column Operation command + 0xB60 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA6 + CA6 + 0 + 32 + write-only + + + + + CAU_AESIC_CA7 + General Purpose Register 7 - AES Inverse Column Operation command + 0xB64 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA7 + CA7 + 0 + 32 + write-only + + + + + CAU_AESIC_CA8 + General Purpose Register 8 - AES Inverse Column Operation command + 0xB68 + 32 + write-only + 0 + 0xFFFFFFFF + + + CA8 + CA8 + 0 + 32 + write-only + + + + + + + diff --git a/ext/hal/ksdk/devices/MK64F12/MK64F12_features.h b/ext/hal/ksdk/devices/MK64F12/MK64F12_features.h new file mode 100644 index 00000000000..898a74bbd4c --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/MK64F12_features.h @@ -0,0 +1,2370 @@ +/* +** ################################################################### +** Version: rev. 2.15, 2016-03-21 +** Build: b160321 +** +** Abstract: +** Chip specific module features. +** +** Copyright (c) 2016 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o 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. +** +** o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** Revisions: +** - rev. 1.0 (2013-08-12) +** Initial version. +** - rev. 2.0 (2013-10-29) +** Register accessor macros added to the memory map. +** Symbols for Processor Expert memory map compatibility added to the memory map. +** Startup file for gcc has been updated according to CMSIS 3.2. +** System initialization updated. +** MCG - registers updated. +** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed. +** - rev. 2.1 (2013-10-30) +** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled. +** - rev. 2.2 (2013-12-09) +** DMA - EARS register removed. +** AIPS0, AIPS1 - MPRA register updated. +** - rev. 2.3 (2014-01-24) +** Update according to reference manual rev. 2 +** ENET, MCG, MCM, SIM, USB - registers updated +** - rev. 2.4 (2014-01-30) +** Added single maximum value generation and a constrain to varying feature values that only numbers can have maximum. +** - rev. 2.5 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** - rev. 2.6 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** Module access macro module_BASES replaced by module_BASE_PTRS. +** - rev. 2.7 (2014-08-28) +** Update of system files - default clock configuration changed. +** Update of startup files - possibility to override DefaultISR added. +** - rev. 2.8 (2014-10-14) +** Interrupt INT_LPTimer renamed to INT_LPTMR0, interrupt INT_Watchdog renamed to INT_WDOG_EWM. +** - rev. 2.9 (2015-01-21) +** Added FSL_FEATURE_SOC_peripheral_COUNT with number of peripheral instances +** - rev. 2.10 (2015-02-19) +** Renamed interrupt vector LLW to LLWU. +** - rev. 2.11 (2015-05-19) +** FSL_FEATURE_SOC_CAU_COUNT remamed to FSL_FEATURE_SOC_MMCAU_COUNT. +** Added FSL_FEATURE_SOC_peripheral_COUNT for TRNG and HSADC. +** Added features for PDB and PORT. +** - rev. 2.12 (2015-05-25) +** Added FSL_FEATURE_FLASH_PFLASH_START_ADDRESS +** - rev. 2.13 (2015-05-27) +** Several USB features added. +** - rev. 2.14 (2015-06-08) +** FTM features BUS_CLOCK and FAST_CLOCK removed. +** - rev. 2.15 (2016-03-21) +** Added MK64FN1M0CAJ12 part. +** +** ################################################################### +*/ + +#ifndef _MK64F12_FEATURES_H_ +#define _MK64F12_FEATURES_H_ + +/* SOC module features */ + +#if defined(CPU_MK64FN1M0CAJ12) || defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLQ12) || defined(CPU_MK64FN1M0VMD12) || \ + defined(CPU_MK64FX512VDC12) || defined(CPU_MK64FX512VLQ12) || defined(CPU_MK64FX512VMD12) + /* @brief ACMP availability on the SoC. */ + #define FSL_FEATURE_SOC_ACMP_COUNT (0) + /* @brief ADC16 availability on the SoC. */ + #define FSL_FEATURE_SOC_ADC16_COUNT (2) + /* @brief ADC12 availability on the SoC. */ + #define FSL_FEATURE_SOC_ADC12_COUNT (0) + /* @brief AFE availability on the SoC. */ + #define FSL_FEATURE_SOC_AFE_COUNT (0) + /* @brief AIPS availability on the SoC. */ + #define FSL_FEATURE_SOC_AIPS_COUNT (2) + /* @brief AOI availability on the SoC. */ + #define FSL_FEATURE_SOC_AOI_COUNT (0) + /* @brief AXBS availability on the SoC. */ + #define FSL_FEATURE_SOC_AXBS_COUNT (1) + /* @brief ASMC availability on the SoC. */ + #define FSL_FEATURE_SOC_ASMC_COUNT (0) + /* @brief CADC availability on the SoC. */ + #define FSL_FEATURE_SOC_CADC_COUNT (0) + /* @brief FLEXCAN availability on the SoC. */ + #define FSL_FEATURE_SOC_FLEXCAN_COUNT (1) + /* @brief MMCAU availability on the SoC. */ + #define FSL_FEATURE_SOC_MMCAU_COUNT (1) + /* @brief CMP availability on the SoC. */ + #define FSL_FEATURE_SOC_CMP_COUNT (3) + /* @brief CMT availability on the SoC. */ + #define FSL_FEATURE_SOC_CMT_COUNT (1) + /* @brief CNC availability on the SoC. */ + #define FSL_FEATURE_SOC_CNC_COUNT (0) + /* @brief CRC availability on the SoC. */ + #define FSL_FEATURE_SOC_CRC_COUNT (1) + /* @brief DAC availability on the SoC. */ + #define FSL_FEATURE_SOC_DAC_COUNT (2) + /* @brief DAC32 availability on the SoC. */ + #define FSL_FEATURE_SOC_DAC32_COUNT (0) + /* @brief DCDC availability on the SoC. */ + #define FSL_FEATURE_SOC_DCDC_COUNT (0) + /* @brief DDR availability on the SoC. */ + #define FSL_FEATURE_SOC_DDR_COUNT (0) + /* @brief DMA availability on the SoC. */ + #define FSL_FEATURE_SOC_DMA_COUNT (0) + /* @brief EDMA availability on the SoC. */ + #define FSL_FEATURE_SOC_EDMA_COUNT (1) + /* @brief DMAMUX availability on the SoC. */ + #define FSL_FEATURE_SOC_DMAMUX_COUNT (1) + /* @brief DRY availability on the SoC. */ + #define FSL_FEATURE_SOC_DRY_COUNT (0) + /* @brief DSPI availability on the SoC. */ + #define FSL_FEATURE_SOC_DSPI_COUNT (3) + /* @brief EMVSIM availability on the SoC. */ + #define FSL_FEATURE_SOC_EMVSIM_COUNT (0) + /* @brief ENC availability on the SoC. */ + #define FSL_FEATURE_SOC_ENC_COUNT (0) + /* @brief ENET availability on the SoC. */ + #define FSL_FEATURE_SOC_ENET_COUNT (1) + /* @brief EWM availability on the SoC. */ + #define FSL_FEATURE_SOC_EWM_COUNT (1) + /* @brief FB availability on the SoC. */ + #define FSL_FEATURE_SOC_FB_COUNT (1) + /* @brief FGPIO availability on the SoC. */ + #define FSL_FEATURE_SOC_FGPIO_COUNT (0) + /* @brief FLEXIO availability on the SoC. */ + #define FSL_FEATURE_SOC_FLEXIO_COUNT (0) + /* @brief FMC availability on the SoC. */ + #define FSL_FEATURE_SOC_FMC_COUNT (1) + /* @brief FSKDT availability on the SoC. */ + #define FSL_FEATURE_SOC_FSKDT_COUNT (0) + /* @brief FTFA availability on the SoC. */ + #define FSL_FEATURE_SOC_FTFA_COUNT (0) + /* @brief FTFE availability on the SoC. */ + #define FSL_FEATURE_SOC_FTFE_COUNT (1) + /* @brief FTFL availability on the SoC. */ + #define FSL_FEATURE_SOC_FTFL_COUNT (0) + /* @brief FTM availability on the SoC. */ + #define FSL_FEATURE_SOC_FTM_COUNT (4) + /* @brief FTMRA availability on the SoC. */ + #define FSL_FEATURE_SOC_FTMRA_COUNT (0) + /* @brief FTMRE availability on the SoC. */ + #define FSL_FEATURE_SOC_FTMRE_COUNT (0) + /* @brief FTMRH availability on the SoC. */ + #define FSL_FEATURE_SOC_FTMRH_COUNT (0) + /* @brief GPIO availability on the SoC. */ + #define FSL_FEATURE_SOC_GPIO_COUNT (5) + /* @brief HSADC availability on the SoC. */ + #define FSL_FEATURE_SOC_HSADC_COUNT (0) + /* @brief I2C availability on the SoC. */ + #define FSL_FEATURE_SOC_I2C_COUNT (3) + /* @brief I2S availability on the SoC. */ + #define FSL_FEATURE_SOC_I2S_COUNT (1) + /* @brief ICS availability on the SoC. */ + #define FSL_FEATURE_SOC_ICS_COUNT (0) + /* @brief INTMUX availability on the SoC. */ + #define FSL_FEATURE_SOC_INTMUX_COUNT (0) + /* @brief IRQ availability on the SoC. */ + #define FSL_FEATURE_SOC_IRQ_COUNT (0) + /* @brief KBI availability on the SoC. */ + #define FSL_FEATURE_SOC_KBI_COUNT (0) + /* @brief SLCD availability on the SoC. */ + #define FSL_FEATURE_SOC_SLCD_COUNT (0) + /* @brief LCDC availability on the SoC. */ + #define FSL_FEATURE_SOC_LCDC_COUNT (0) + /* @brief LDO availability on the SoC. */ + #define FSL_FEATURE_SOC_LDO_COUNT (0) + /* @brief LLWU availability on the SoC. */ + #define FSL_FEATURE_SOC_LLWU_COUNT (1) + /* @brief LMEM availability on the SoC. */ + #define FSL_FEATURE_SOC_LMEM_COUNT (0) + /* @brief LPI2C availability on the SoC. */ + #define FSL_FEATURE_SOC_LPI2C_COUNT (0) + /* @brief LPIT availability on the SoC. */ + #define FSL_FEATURE_SOC_LPIT_COUNT (0) + /* @brief LPSCI availability on the SoC. */ + #define FSL_FEATURE_SOC_LPSCI_COUNT (0) + /* @brief LPSPI availability on the SoC. */ + #define FSL_FEATURE_SOC_LPSPI_COUNT (0) + /* @brief LPTMR availability on the SoC. */ + #define FSL_FEATURE_SOC_LPTMR_COUNT (1) + /* @brief LPTPM availability on the SoC. */ + #define FSL_FEATURE_SOC_LPTPM_COUNT (0) + /* @brief LPUART availability on the SoC. */ + #define FSL_FEATURE_SOC_LPUART_COUNT (0) + /* @brief LTC availability on the SoC. */ + #define FSL_FEATURE_SOC_LTC_COUNT (0) + /* @brief MC availability on the SoC. */ + #define FSL_FEATURE_SOC_MC_COUNT (0) + /* @brief MCG availability on the SoC. */ + #define FSL_FEATURE_SOC_MCG_COUNT (1) + /* @brief MCGLITE availability on the SoC. */ + #define FSL_FEATURE_SOC_MCGLITE_COUNT (0) + /* @brief MCM availability on the SoC. */ + #define FSL_FEATURE_SOC_MCM_COUNT (1) + /* @brief MMAU availability on the SoC. */ + #define FSL_FEATURE_SOC_MMAU_COUNT (0) + /* @brief MMDVSQ availability on the SoC. */ + #define FSL_FEATURE_SOC_MMDVSQ_COUNT (0) + /* @brief MPU availability on the SoC. */ + #define FSL_FEATURE_SOC_MPU_COUNT (1) + /* @brief MSCAN availability on the SoC. */ + #define FSL_FEATURE_SOC_MSCAN_COUNT (0) + /* @brief MSCM availability on the SoC. */ + #define FSL_FEATURE_SOC_MSCM_COUNT (0) + /* @brief MTB availability on the SoC. */ + #define FSL_FEATURE_SOC_MTB_COUNT (0) + /* @brief MTBDWT availability on the SoC. */ + #define FSL_FEATURE_SOC_MTBDWT_COUNT (0) + /* @brief MU availability on the SoC. */ + #define FSL_FEATURE_SOC_MU_COUNT (0) + /* @brief NFC availability on the SoC. */ + #define FSL_FEATURE_SOC_NFC_COUNT (0) + /* @brief OPAMP availability on the SoC. */ + #define FSL_FEATURE_SOC_OPAMP_COUNT (0) + /* @brief OSC availability on the SoC. */ + #define FSL_FEATURE_SOC_OSC_COUNT (1) + /* @brief OSC32 availability on the SoC. */ + #define FSL_FEATURE_SOC_OSC32_COUNT (0) + /* @brief OTFAD availability on the SoC. */ + #define FSL_FEATURE_SOC_OTFAD_COUNT (0) + /* @brief PDB availability on the SoC. */ + #define FSL_FEATURE_SOC_PDB_COUNT (1) + /* @brief PCC availability on the SoC. */ + #define FSL_FEATURE_SOC_PCC_COUNT (0) + /* @brief PGA availability on the SoC. */ + #define FSL_FEATURE_SOC_PGA_COUNT (0) + /* @brief PIT availability on the SoC. */ + #define FSL_FEATURE_SOC_PIT_COUNT (1) + /* @brief PMC availability on the SoC. */ + #define FSL_FEATURE_SOC_PMC_COUNT (1) + /* @brief PORT availability on the SoC. */ + #define FSL_FEATURE_SOC_PORT_COUNT (5) + /* @brief PWM availability on the SoC. */ + #define FSL_FEATURE_SOC_PWM_COUNT (0) + /* @brief PWT availability on the SoC. */ + #define FSL_FEATURE_SOC_PWT_COUNT (0) + /* @brief QuadSPI availability on the SoC. */ + #define FSL_FEATURE_SOC_QuadSPI_COUNT (0) + /* @brief RCM availability on the SoC. */ + #define FSL_FEATURE_SOC_RCM_COUNT (1) + /* @brief RFSYS availability on the SoC. */ + #define FSL_FEATURE_SOC_RFSYS_COUNT (1) + /* @brief RFVBAT availability on the SoC. */ + #define FSL_FEATURE_SOC_RFVBAT_COUNT (1) + /* @brief RNG availability on the SoC. */ + #define FSL_FEATURE_SOC_RNG_COUNT (1) + /* @brief RNGB availability on the SoC. */ + #define FSL_FEATURE_SOC_RNGB_COUNT (0) + /* @brief ROM availability on the SoC. */ + #define FSL_FEATURE_SOC_ROM_COUNT (0) + /* @brief RSIM availability on the SoC. */ + #define FSL_FEATURE_SOC_RSIM_COUNT (0) + /* @brief RTC availability on the SoC. */ + #define FSL_FEATURE_SOC_RTC_COUNT (1) + /* @brief SCG availability on the SoC. */ + #define FSL_FEATURE_SOC_SCG_COUNT (0) + /* @brief SCI availability on the SoC. */ + #define FSL_FEATURE_SOC_SCI_COUNT (0) + /* @brief SDHC availability on the SoC. */ + #define FSL_FEATURE_SOC_SDHC_COUNT (1) + /* @brief SDRAM availability on the SoC. */ + #define FSL_FEATURE_SOC_SDRAM_COUNT (0) + /* @brief SEMA42 availability on the SoC. */ + #define FSL_FEATURE_SOC_SEMA42_COUNT (0) + /* @brief SIM availability on the SoC. */ + #define FSL_FEATURE_SOC_SIM_COUNT (1) + /* @brief SMC availability on the SoC. */ + #define FSL_FEATURE_SOC_SMC_COUNT (1) + /* @brief SPI availability on the SoC. */ + #define FSL_FEATURE_SOC_SPI_COUNT (0) + /* @brief TMR availability on the SoC. */ + #define FSL_FEATURE_SOC_TMR_COUNT (0) + /* @brief TPM availability on the SoC. */ + #define FSL_FEATURE_SOC_TPM_COUNT (0) + /* @brief TRGMUX availability on the SoC. */ + #define FSL_FEATURE_SOC_TRGMUX_COUNT (0) + /* @brief TRIAMP availability on the SoC. */ + #define FSL_FEATURE_SOC_TRIAMP_COUNT (0) + /* @brief TRNG availability on the SoC. */ + #define FSL_FEATURE_SOC_TRNG_COUNT (0) + /* @brief TSI availability on the SoC. */ + #define FSL_FEATURE_SOC_TSI_COUNT (0) + /* @brief TSTMR availability on the SoC. */ + #define FSL_FEATURE_SOC_TSTMR_COUNT (0) + /* @brief UART availability on the SoC. */ + #define FSL_FEATURE_SOC_UART_COUNT (6) + /* @brief USB availability on the SoC. */ + #define FSL_FEATURE_SOC_USB_COUNT (1) + /* @brief USBDCD availability on the SoC. */ + #define FSL_FEATURE_SOC_USBDCD_COUNT (1) + /* @brief USBHSDCD availability on the SoC. */ + #define FSL_FEATURE_SOC_USBHSDCD_COUNT (0) + /* @brief USBPHY availability on the SoC. */ + #define FSL_FEATURE_SOC_USBPHY_COUNT (0) + /* @brief VREF availability on the SoC. */ + #define FSL_FEATURE_SOC_VREF_COUNT (1) + /* @brief WDOG availability on the SoC. */ + #define FSL_FEATURE_SOC_WDOG_COUNT (1) + /* @brief XBAR availability on the SoC. */ + #define FSL_FEATURE_SOC_XBAR_COUNT (0) + /* @brief XBARA availability on the SoC. */ + #define FSL_FEATURE_SOC_XBARA_COUNT (0) + /* @brief XBARB availability on the SoC. */ + #define FSL_FEATURE_SOC_XBARB_COUNT (0) + /* @brief XCVR availability on the SoC. */ + #define FSL_FEATURE_SOC_XCVR_COUNT (0) + /* @brief XRDC availability on the SoC. */ + #define FSL_FEATURE_SOC_XRDC_COUNT (0) + /* @brief ZLL availability on the SoC. */ + #define FSL_FEATURE_SOC_ZLL_COUNT (0) +#elif defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FX512VLL12) + /* @brief ACMP availability on the SoC. */ + #define FSL_FEATURE_SOC_ACMP_COUNT (0) + /* @brief ADC16 availability on the SoC. */ + #define FSL_FEATURE_SOC_ADC16_COUNT (2) + /* @brief ADC12 availability on the SoC. */ + #define FSL_FEATURE_SOC_ADC12_COUNT (0) + /* @brief AFE availability on the SoC. */ + #define FSL_FEATURE_SOC_AFE_COUNT (0) + /* @brief AIPS availability on the SoC. */ + #define FSL_FEATURE_SOC_AIPS_COUNT (2) + /* @brief AOI availability on the SoC. */ + #define FSL_FEATURE_SOC_AOI_COUNT (0) + /* @brief AXBS availability on the SoC. */ + #define FSL_FEATURE_SOC_AXBS_COUNT (1) + /* @brief ASMC availability on the SoC. */ + #define FSL_FEATURE_SOC_ASMC_COUNT (0) + /* @brief CADC availability on the SoC. */ + #define FSL_FEATURE_SOC_CADC_COUNT (0) + /* @brief FLEXCAN availability on the SoC. */ + #define FSL_FEATURE_SOC_FLEXCAN_COUNT (1) + /* @brief MMCAU availability on the SoC. */ + #define FSL_FEATURE_SOC_MMCAU_COUNT (1) + /* @brief CMP availability on the SoC. */ + #define FSL_FEATURE_SOC_CMP_COUNT (3) + /* @brief CMT availability on the SoC. */ + #define FSL_FEATURE_SOC_CMT_COUNT (1) + /* @brief CNC availability on the SoC. */ + #define FSL_FEATURE_SOC_CNC_COUNT (0) + /* @brief CRC availability on the SoC. */ + #define FSL_FEATURE_SOC_CRC_COUNT (1) + /* @brief DAC availability on the SoC. */ + #define FSL_FEATURE_SOC_DAC_COUNT (1) + /* @brief DAC32 availability on the SoC. */ + #define FSL_FEATURE_SOC_DAC32_COUNT (0) + /* @brief DCDC availability on the SoC. */ + #define FSL_FEATURE_SOC_DCDC_COUNT (0) + /* @brief DDR availability on the SoC. */ + #define FSL_FEATURE_SOC_DDR_COUNT (0) + /* @brief DMA availability on the SoC. */ + #define FSL_FEATURE_SOC_DMA_COUNT (0) + /* @brief EDMA availability on the SoC. */ + #define FSL_FEATURE_SOC_EDMA_COUNT (1) + /* @brief DMAMUX availability on the SoC. */ + #define FSL_FEATURE_SOC_DMAMUX_COUNT (1) + /* @brief DRY availability on the SoC. */ + #define FSL_FEATURE_SOC_DRY_COUNT (0) + /* @brief DSPI availability on the SoC. */ + #define FSL_FEATURE_SOC_DSPI_COUNT (3) + /* @brief EMVSIM availability on the SoC. */ + #define FSL_FEATURE_SOC_EMVSIM_COUNT (0) + /* @brief ENC availability on the SoC. */ + #define FSL_FEATURE_SOC_ENC_COUNT (0) + /* @brief ENET availability on the SoC. */ + #define FSL_FEATURE_SOC_ENET_COUNT (1) + /* @brief EWM availability on the SoC. */ + #define FSL_FEATURE_SOC_EWM_COUNT (1) + /* @brief FB availability on the SoC. */ + #define FSL_FEATURE_SOC_FB_COUNT (1) + /* @brief FGPIO availability on the SoC. */ + #define FSL_FEATURE_SOC_FGPIO_COUNT (0) + /* @brief FLEXIO availability on the SoC. */ + #define FSL_FEATURE_SOC_FLEXIO_COUNT (0) + /* @brief FMC availability on the SoC. */ + #define FSL_FEATURE_SOC_FMC_COUNT (1) + /* @brief FSKDT availability on the SoC. */ + #define FSL_FEATURE_SOC_FSKDT_COUNT (0) + /* @brief FTFA availability on the SoC. */ + #define FSL_FEATURE_SOC_FTFA_COUNT (0) + /* @brief FTFE availability on the SoC. */ + #define FSL_FEATURE_SOC_FTFE_COUNT (1) + /* @brief FTFL availability on the SoC. */ + #define FSL_FEATURE_SOC_FTFL_COUNT (0) + /* @brief FTM availability on the SoC. */ + #define FSL_FEATURE_SOC_FTM_COUNT (4) + /* @brief FTMRA availability on the SoC. */ + #define FSL_FEATURE_SOC_FTMRA_COUNT (0) + /* @brief FTMRE availability on the SoC. */ + #define FSL_FEATURE_SOC_FTMRE_COUNT (0) + /* @brief FTMRH availability on the SoC. */ + #define FSL_FEATURE_SOC_FTMRH_COUNT (0) + /* @brief GPIO availability on the SoC. */ + #define FSL_FEATURE_SOC_GPIO_COUNT (5) + /* @brief HSADC availability on the SoC. */ + #define FSL_FEATURE_SOC_HSADC_COUNT (0) + /* @brief I2C availability on the SoC. */ + #define FSL_FEATURE_SOC_I2C_COUNT (3) + /* @brief I2S availability on the SoC. */ + #define FSL_FEATURE_SOC_I2S_COUNT (1) + /* @brief ICS availability on the SoC. */ + #define FSL_FEATURE_SOC_ICS_COUNT (0) + /* @brief INTMUX availability on the SoC. */ + #define FSL_FEATURE_SOC_INTMUX_COUNT (0) + /* @brief IRQ availability on the SoC. */ + #define FSL_FEATURE_SOC_IRQ_COUNT (0) + /* @brief KBI availability on the SoC. */ + #define FSL_FEATURE_SOC_KBI_COUNT (0) + /* @brief SLCD availability on the SoC. */ + #define FSL_FEATURE_SOC_SLCD_COUNT (0) + /* @brief LCDC availability on the SoC. */ + #define FSL_FEATURE_SOC_LCDC_COUNT (0) + /* @brief LDO availability on the SoC. */ + #define FSL_FEATURE_SOC_LDO_COUNT (0) + /* @brief LLWU availability on the SoC. */ + #define FSL_FEATURE_SOC_LLWU_COUNT (1) + /* @brief LMEM availability on the SoC. */ + #define FSL_FEATURE_SOC_LMEM_COUNT (0) + /* @brief LPI2C availability on the SoC. */ + #define FSL_FEATURE_SOC_LPI2C_COUNT (0) + /* @brief LPIT availability on the SoC. */ + #define FSL_FEATURE_SOC_LPIT_COUNT (0) + /* @brief LPSCI availability on the SoC. */ + #define FSL_FEATURE_SOC_LPSCI_COUNT (0) + /* @brief LPSPI availability on the SoC. */ + #define FSL_FEATURE_SOC_LPSPI_COUNT (0) + /* @brief LPTMR availability on the SoC. */ + #define FSL_FEATURE_SOC_LPTMR_COUNT (1) + /* @brief LPTPM availability on the SoC. */ + #define FSL_FEATURE_SOC_LPTPM_COUNT (0) + /* @brief LPUART availability on the SoC. */ + #define FSL_FEATURE_SOC_LPUART_COUNT (0) + /* @brief LTC availability on the SoC. */ + #define FSL_FEATURE_SOC_LTC_COUNT (0) + /* @brief MC availability on the SoC. */ + #define FSL_FEATURE_SOC_MC_COUNT (0) + /* @brief MCG availability on the SoC. */ + #define FSL_FEATURE_SOC_MCG_COUNT (1) + /* @brief MCGLITE availability on the SoC. */ + #define FSL_FEATURE_SOC_MCGLITE_COUNT (0) + /* @brief MCM availability on the SoC. */ + #define FSL_FEATURE_SOC_MCM_COUNT (1) + /* @brief MMAU availability on the SoC. */ + #define FSL_FEATURE_SOC_MMAU_COUNT (0) + /* @brief MMDVSQ availability on the SoC. */ + #define FSL_FEATURE_SOC_MMDVSQ_COUNT (0) + /* @brief MPU availability on the SoC. */ + #define FSL_FEATURE_SOC_MPU_COUNT (1) + /* @brief MSCAN availability on the SoC. */ + #define FSL_FEATURE_SOC_MSCAN_COUNT (0) + /* @brief MSCM availability on the SoC. */ + #define FSL_FEATURE_SOC_MSCM_COUNT (0) + /* @brief MTB availability on the SoC. */ + #define FSL_FEATURE_SOC_MTB_COUNT (0) + /* @brief MTBDWT availability on the SoC. */ + #define FSL_FEATURE_SOC_MTBDWT_COUNT (0) + /* @brief MU availability on the SoC. */ + #define FSL_FEATURE_SOC_MU_COUNT (0) + /* @brief NFC availability on the SoC. */ + #define FSL_FEATURE_SOC_NFC_COUNT (0) + /* @brief OPAMP availability on the SoC. */ + #define FSL_FEATURE_SOC_OPAMP_COUNT (0) + /* @brief OSC availability on the SoC. */ + #define FSL_FEATURE_SOC_OSC_COUNT (1) + /* @brief OSC32 availability on the SoC. */ + #define FSL_FEATURE_SOC_OSC32_COUNT (0) + /* @brief OTFAD availability on the SoC. */ + #define FSL_FEATURE_SOC_OTFAD_COUNT (0) + /* @brief PDB availability on the SoC. */ + #define FSL_FEATURE_SOC_PDB_COUNT (1) + /* @brief PCC availability on the SoC. */ + #define FSL_FEATURE_SOC_PCC_COUNT (0) + /* @brief PGA availability on the SoC. */ + #define FSL_FEATURE_SOC_PGA_COUNT (0) + /* @brief PIT availability on the SoC. */ + #define FSL_FEATURE_SOC_PIT_COUNT (1) + /* @brief PMC availability on the SoC. */ + #define FSL_FEATURE_SOC_PMC_COUNT (1) + /* @brief PORT availability on the SoC. */ + #define FSL_FEATURE_SOC_PORT_COUNT (5) + /* @brief PWM availability on the SoC. */ + #define FSL_FEATURE_SOC_PWM_COUNT (0) + /* @brief PWT availability on the SoC. */ + #define FSL_FEATURE_SOC_PWT_COUNT (0) + /* @brief QuadSPI availability on the SoC. */ + #define FSL_FEATURE_SOC_QuadSPI_COUNT (0) + /* @brief RCM availability on the SoC. */ + #define FSL_FEATURE_SOC_RCM_COUNT (1) + /* @brief RFSYS availability on the SoC. */ + #define FSL_FEATURE_SOC_RFSYS_COUNT (1) + /* @brief RFVBAT availability on the SoC. */ + #define FSL_FEATURE_SOC_RFVBAT_COUNT (1) + /* @brief RNG availability on the SoC. */ + #define FSL_FEATURE_SOC_RNG_COUNT (1) + /* @brief RNGB availability on the SoC. */ + #define FSL_FEATURE_SOC_RNGB_COUNT (0) + /* @brief ROM availability on the SoC. */ + #define FSL_FEATURE_SOC_ROM_COUNT (0) + /* @brief RSIM availability on the SoC. */ + #define FSL_FEATURE_SOC_RSIM_COUNT (0) + /* @brief RTC availability on the SoC. */ + #define FSL_FEATURE_SOC_RTC_COUNT (1) + /* @brief SCG availability on the SoC. */ + #define FSL_FEATURE_SOC_SCG_COUNT (0) + /* @brief SCI availability on the SoC. */ + #define FSL_FEATURE_SOC_SCI_COUNT (0) + /* @brief SDHC availability on the SoC. */ + #define FSL_FEATURE_SOC_SDHC_COUNT (1) + /* @brief SDRAM availability on the SoC. */ + #define FSL_FEATURE_SOC_SDRAM_COUNT (0) + /* @brief SEMA42 availability on the SoC. */ + #define FSL_FEATURE_SOC_SEMA42_COUNT (0) + /* @brief SIM availability on the SoC. */ + #define FSL_FEATURE_SOC_SIM_COUNT (1) + /* @brief SMC availability on the SoC. */ + #define FSL_FEATURE_SOC_SMC_COUNT (1) + /* @brief SPI availability on the SoC. */ + #define FSL_FEATURE_SOC_SPI_COUNT (0) + /* @brief TMR availability on the SoC. */ + #define FSL_FEATURE_SOC_TMR_COUNT (0) + /* @brief TPM availability on the SoC. */ + #define FSL_FEATURE_SOC_TPM_COUNT (0) + /* @brief TRGMUX availability on the SoC. */ + #define FSL_FEATURE_SOC_TRGMUX_COUNT (0) + /* @brief TRIAMP availability on the SoC. */ + #define FSL_FEATURE_SOC_TRIAMP_COUNT (0) + /* @brief TRNG availability on the SoC. */ + #define FSL_FEATURE_SOC_TRNG_COUNT (0) + /* @brief TSI availability on the SoC. */ + #define FSL_FEATURE_SOC_TSI_COUNT (0) + /* @brief TSTMR availability on the SoC. */ + #define FSL_FEATURE_SOC_TSTMR_COUNT (0) + /* @brief UART availability on the SoC. */ + #define FSL_FEATURE_SOC_UART_COUNT (6) + /* @brief USB availability on the SoC. */ + #define FSL_FEATURE_SOC_USB_COUNT (1) + /* @brief USBDCD availability on the SoC. */ + #define FSL_FEATURE_SOC_USBDCD_COUNT (1) + /* @brief USBHSDCD availability on the SoC. */ + #define FSL_FEATURE_SOC_USBHSDCD_COUNT (0) + /* @brief USBPHY availability on the SoC. */ + #define FSL_FEATURE_SOC_USBPHY_COUNT (0) + /* @brief VREF availability on the SoC. */ + #define FSL_FEATURE_SOC_VREF_COUNT (1) + /* @brief WDOG availability on the SoC. */ + #define FSL_FEATURE_SOC_WDOG_COUNT (1) + /* @brief XBAR availability on the SoC. */ + #define FSL_FEATURE_SOC_XBAR_COUNT (0) + /* @brief XBARA availability on the SoC. */ + #define FSL_FEATURE_SOC_XBARA_COUNT (0) + /* @brief XBARB availability on the SoC. */ + #define FSL_FEATURE_SOC_XBARB_COUNT (0) + /* @brief XCVR availability on the SoC. */ + #define FSL_FEATURE_SOC_XCVR_COUNT (0) + /* @brief XRDC availability on the SoC. */ + #define FSL_FEATURE_SOC_XRDC_COUNT (0) + /* @brief ZLL availability on the SoC. */ + #define FSL_FEATURE_SOC_ZLL_COUNT (0) +#endif + +/* ADC16 module features */ + +/* @brief Has Programmable Gain Amplifier (PGA) in ADC (register PGA). */ +#define FSL_FEATURE_ADC16_HAS_PGA (0) +/* @brief Has PGA chopping control in ADC (bit PGA[PGACHPb] or PGA[PGACHP]). */ +#define FSL_FEATURE_ADC16_HAS_PGA_CHOPPING (0) +/* @brief Has PGA offset measurement mode in ADC (bit PGA[PGAOFSM]). */ +#define FSL_FEATURE_ADC16_HAS_PGA_OFFSET_MEASUREMENT (0) +/* @brief Has DMA support (bit SC2[DMAEN] or SC4[DMAEN]). */ +#define FSL_FEATURE_ADC16_HAS_DMA (1) +/* @brief Has differential mode (bitfield SC1x[DIFF]). */ +#define FSL_FEATURE_ADC16_HAS_DIFF_MODE (1) +/* @brief Has FIFO (bit SC4[AFDEP]). */ +#define FSL_FEATURE_ADC16_HAS_FIFO (0) +/* @brief FIFO size if available (bitfield SC4[AFDEP]). */ +#define FSL_FEATURE_ADC16_FIFO_SIZE (0) +/* @brief Has channel set a/b multiplexor (bitfield CFG2[MUXSEL]). */ +#define FSL_FEATURE_ADC16_HAS_MUX_SELECT (1) +/* @brief Has HW trigger masking (bitfield SC5[HTRGMASKE]. */ +#define FSL_FEATURE_ADC16_HAS_HW_TRIGGER_MASK (0) +/* @brief Has calibration feature (bit SC3[CAL] and registers CLPx, CLMx). */ +#define FSL_FEATURE_ADC16_HAS_CALIBRATION (1) +/* @brief Has HW averaging (bit SC3[AVGE]). */ +#define FSL_FEATURE_ADC16_HAS_HW_AVERAGE (1) +/* @brief Has offset correction (register OFS). */ +#define FSL_FEATURE_ADC16_HAS_OFFSET_CORRECTION (1) +/* @brief Maximum ADC resolution. */ +#define FSL_FEATURE_ADC16_MAX_RESOLUTION (16) +/* @brief Number of SC1x and Rx register pairs (conversion control and result registers). */ +#define FSL_FEATURE_ADC16_CONVERSION_CONTROL_COUNT (2) + +/* FLEXCAN module features */ + +/* @brief Message buffer size */ +#define FSL_FEATURE_FLEXCAN_HAS_MESSAGE_BUFFER_MAX_NUMBERn(x) (16) +/* @brief Has doze mode support (register bit field MCR[DOZE]). */ +#define FSL_FEATURE_FLEXCAN_HAS_DOZE_MODE_SUPPORT (0) +/* @brief Has a glitch filter on the receive pin (register bit field MCR[WAKSRC]). */ +#define FSL_FEATURE_FLEXCAN_HAS_GLITCH_FILTER (1) +/* @brief Has extended interrupt mask and flag register (register IMASK2, IFLAG2). */ +#define FSL_FEATURE_FLEXCAN_HAS_EXTENDED_FLAG_REGISTER (0) +/* @brief Has extended bit timing register (register CBT). */ +#define FSL_FEATURE_FLEXCAN_HAS_EXTENDED_TIMING_REGISTER (0) +/* @brief Has a receive FIFO DMA feature (register bit field MCR[DMA]). */ +#define FSL_FEATURE_FLEXCAN_HAS_RX_FIFO_DMA (0) +/* @brief Has separate message buffer 0 interrupt flag (register bit field IFLAG1[BUF0I]). */ +#define FSL_FEATURE_FLEXCAN_HAS_SEPARATE_BUFFER_0_FLAG (1) +/* @brief Has bitfield name BUF31TO0M. */ +#define FSL_FEATURE_FLEXCAN_HAS_BUF31TO0M (0) +/* @brief Number of interrupt vectors. */ +#define FSL_FEATURE_FLEXCAN_INTERRUPT_COUNT (6) +/* @brief Is affected by errata with ID 5641 (Module does not transmit a message that is enabled to be transmitted at a specific moment during the arbitration process). */ +#define FSL_FEATURE_FLEXCAN_HAS_ERRATA_5641 (0) + +/* CMP module features */ + +/* @brief Has Trigger mode in CMP (register bit field CR1[TRIGM]). */ +#define FSL_FEATURE_CMP_HAS_TRIGGER_MODE (0) +/* @brief Has Window mode in CMP (register bit field CR1[WE]). */ +#define FSL_FEATURE_CMP_HAS_WINDOW_MODE (1) +/* @brief Has External sample supported in CMP (register bit field CR1[SE]). */ +#define FSL_FEATURE_CMP_HAS_EXTERNAL_SAMPLE_SUPPORT (1) +/* @brief Has DMA support in CMP (register bit field SCR[DMAEN]). */ +#define FSL_FEATURE_CMP_HAS_DMA (1) +/* @brief Has Pass Through mode in CMP (register bit field MUXCR[PSTM]). */ +#define FSL_FEATURE_CMP_HAS_PASS_THROUGH_MODE (1) +/* @brief Has DAC Test function in CMP (register DACTEST). */ +#define FSL_FEATURE_CMP_HAS_DAC_TEST (0) + +/* CRC module features */ + +/* @brief Has data register with name CRC */ +#define FSL_FEATURE_CRC_HAS_CRC_REG (0) + +/* DAC module features */ + +/* @brief Define the size of hardware buffer */ +#define FSL_FEATURE_DAC_BUFFER_SIZE (16) +/* @brief Define whether the buffer supports watermark event detection or not. */ +#define FSL_FEATURE_DAC_HAS_WATERMARK_DETECTION (1) +/* @brief Define whether the buffer supports watermark selection detection or not. */ +#define FSL_FEATURE_DAC_HAS_WATERMARK_SELECTION (1) +/* @brief Define whether the buffer supports watermark event 1 word before buffer upper limit. */ +#define FSL_FEATURE_DAC_HAS_WATERMARK_1_WORD (1) +/* @brief Define whether the buffer supports watermark event 2 words before buffer upper limit. */ +#define FSL_FEATURE_DAC_HAS_WATERMARK_2_WORDS (1) +/* @brief Define whether the buffer supports watermark event 3 words before buffer upper limit. */ +#define FSL_FEATURE_DAC_HAS_WATERMARK_3_WORDS (1) +/* @brief Define whether the buffer supports watermark event 4 words before buffer upper limit. */ +#define FSL_FEATURE_DAC_HAS_WATERMARK_4_WORDS (1) +/* @brief Define whether FIFO buffer mode is available or not. */ +#define FSL_FEATURE_DAC_HAS_BUFFER_FIFO_MODE (0) +/* @brief Define whether swing buffer mode is available or not.. */ +#define FSL_FEATURE_DAC_HAS_BUFFER_SWING_MODE (1) + +/* EDMA module features */ + +/* @brief Number of DMA channels (related to number of registers TCD, DCHPRI, bit fields ERQ[ERQn], EEI[EEIn], INT[INTn], ERR[ERRn], HRS[HRSn] and bit field widths ES[ERRCHN], CEEI[CEEI], SEEI[SEEI], CERQ[CERQ], SERQ[SERQ], CDNE[CDNE], SSRT[SSRT], CERR[CERR], CINT[CINT], TCDn_CITER_ELINKYES[LINKCH], TCDn_CSR[MAJORLINKCH], TCDn_BITER_ELINKYES[LINKCH]). (Valid only for eDMA modules.) */ +#define FSL_FEATURE_EDMA_MODULE_CHANNEL (16) +/* @brief Total number of DMA channels on all modules. */ +#define FSL_FEATURE_EDMA_DMAMUX_CHANNELS (FSL_FEATURE_SOC_EDMA_COUNT * 16) +/* @brief Number of DMA channel groups (register bit fields CR[ERGA], CR[GRPnPRI], ES[GPE], DCHPRIn[GRPPRI]). (Valid only for eDMA modules.) */ +#define FSL_FEATURE_EDMA_CHANNEL_GROUP_COUNT (1) +/* @brief Has DMA_Error interrupt vector. */ +#define FSL_FEATURE_EDMA_HAS_ERROR_IRQ (1) +/* @brief Number of DMA channels with asynchronous request capability (register EARS). (Valid only for eDMA modules.) */ +#define FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT (0) + +/* DMAMUX module features */ + +/* @brief Number of DMA channels (related to number of register CHCFGn). */ +#define FSL_FEATURE_DMAMUX_MODULE_CHANNEL (16) +/* @brief Total number of DMA channels on all modules. */ +#define FSL_FEATURE_DMAMUX_DMAMUX_CHANNELS (FSL_FEATURE_SOC_DMAMUX_COUNT * 16) +/* @brief Has the periodic trigger capability for the triggered DMA channel (register bit CHCFG0[TRIG]). */ +#define FSL_FEATURE_DMAMUX_HAS_TRIG (1) + +/* ENET module features */ + +/* @brief Has buffer descriptor byte swapping (register bit field ECR[DBSWP]). */ +#define FSL_FEATURE_ENET_DMA_BIG_ENDIAN_ONLY (0) +/* @brief Has precision time protocol (IEEE 1588) support (register bit field ECR[EN1588], registers ATCR, ATVR, ATOFF, ATPER, ATCOR, ATINC, ATSTMP). */ +#define FSL_FEATURE_ENET_SUPPORT_PTP (1) +/* @brief Number of associated interrupt vectors. */ +#define FSL_FEATURE_ENET_INTERRUPT_COUNT (4) +/* @brief Has threshold for the number of frames in the receive FIFO (register bit field RSEM[STAT_SECTION_EMPTY]). */ +#define FSL_FEATURE_ENET_HAS_RECEIVE_STATUS_THRESHOLD (1) + +/* EWM module features */ + +/* @brief Has clock select (register CLKCTRL). */ +#define FSL_FEATURE_EWM_HAS_CLOCK_SELECT (0) +/* @brief Has clock prescaler (register CLKPRESCALER). */ +#define FSL_FEATURE_EWM_HAS_PRESCALER (0) + +/* FLEXBUS module features */ + +/* No feature definitions */ + +/* FLASH module features */ + +#if defined(CPU_MK64FN1M0CAJ12) || defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FN1M0VLQ12) || \ + defined(CPU_MK64FN1M0VMD12) + /* @brief Is of type FTFA. */ + #define FSL_FEATURE_FLASH_IS_FTFA (0) + /* @brief Is of type FTFE. */ + #define FSL_FEATURE_FLASH_IS_FTFE (1) + /* @brief Is of type FTFL. */ + #define FSL_FEATURE_FLASH_IS_FTFL (0) + /* @brief Has flags indicating the status of the FlexRAM (register bits FCNFG[EEERDY], FCNFG[RAMRDY] and FCNFG[PFLSH]). */ + #define FSL_FEATURE_FLASH_HAS_FLEX_RAM_FLAGS (1) + /* @brief Has program flash swapping status flag (register bit FCNFG[SWAP]). */ + #define FSL_FEATURE_FLASH_HAS_PFLASH_SWAPPING_STATUS_FLAG (1) + /* @brief Has EEPROM region protection (register FEPROT). */ + #define FSL_FEATURE_FLASH_HAS_EEROM_REGION_PROTECTION (1) + /* @brief Has data flash region protection (register FDPROT). */ + #define FSL_FEATURE_FLASH_HAS_DATA_FLASH_REGION_PROTECTION (1) + /* @brief Has flash access control (registers XACCHn, SACCHn, where n is a number, FACSS and FACSN). */ + #define FSL_FEATURE_FLASH_HAS_ACCESS_CONTROL (0) + /* @brief Has flash cache control in FMC module. */ + #define FSL_FEATURE_FLASH_HAS_FMC_FLASH_CACHE_CONTROLS (1) + /* @brief Has flash cache control in MCM module. */ + #define FSL_FEATURE_FLASH_HAS_MCM_FLASH_CACHE_CONTROLS (0) + /* @brief Has flash cache control in MSCM module. */ + #define FSL_FEATURE_FLASH_HAS_MSCM_FLASH_CACHE_CONTROLS (0) + /* @brief P-Flash start address. */ + #define FSL_FEATURE_FLASH_PFLASH_START_ADDRESS (0x00000000) + /* @brief P-Flash block count. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT (2) + /* @brief P-Flash block size. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE (524288) + /* @brief P-Flash sector size. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_SECTOR_SIZE (4096) + /* @brief P-Flash write unit size. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_WRITE_UNIT_SIZE (8) + /* @brief P-Flash data path width. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_DATA_PATH_WIDTH (16) + /* @brief P-Flash block swap feature. */ + #define FSL_FEATURE_FLASH_HAS_PFLASH_BLOCK_SWAP (1) + /* @brief Has FlexNVM memory. */ + #define FSL_FEATURE_FLASH_HAS_FLEX_NVM (0) + /* @brief FlexNVM start address. (Valid only if FlexNVM is available.) */ + #define FSL_FEATURE_FLASH_FLEX_NVM_START_ADDRESS (0x00000000) + /* @brief FlexNVM block count. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_COUNT (0) + /* @brief FlexNVM block size. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SIZE (0) + /* @brief FlexNVM sector size. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SECTOR_SIZE (0) + /* @brief FlexNVM write unit size. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_WRITE_UNIT_SIZE (0) + /* @brief FlexNVM data path width. */ + #define FSL_FEATURE_FLASH_FLEX_BLOCK_DATA_PATH_WIDTH (0) + /* @brief Has FlexRAM memory. */ + #define FSL_FEATURE_FLASH_HAS_FLEX_RAM (1) + /* @brief FlexRAM start address. (Valid only if FlexRAM is available.) */ + #define FSL_FEATURE_FLASH_FLEX_RAM_START_ADDRESS (0x14000000) + /* @brief FlexRAM size. */ + #define FSL_FEATURE_FLASH_FLEX_RAM_SIZE (4096) + /* @brief Has 0x00 Read 1s Block command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_BLOCK_CMD (1) + /* @brief Has 0x01 Read 1s Section command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_SECTION_CMD (1) + /* @brief Has 0x02 Program Check command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_CHECK_CMD (1) + /* @brief Has 0x03 Read Resource command. */ + #define FSL_FEATURE_FLASH_HAS_READ_RESOURCE_CMD (1) + /* @brief Has 0x06 Program Longword command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_LONGWORD_CMD (0) + /* @brief Has 0x07 Program Phrase command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_PHRASE_CMD (1) + /* @brief Has 0x08 Erase Flash Block command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_BLOCK_CMD (1) + /* @brief Has 0x09 Erase Flash Sector command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_SECTOR_CMD (1) + /* @brief Has 0x0B Program Section command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_SECTION_CMD (1) + /* @brief Has 0x40 Read 1s All Blocks command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_BLOCKS_CMD (1) + /* @brief Has 0x41 Read Once command. */ + #define FSL_FEATURE_FLASH_HAS_READ_ONCE_CMD (1) + /* @brief Has 0x43 Program Once command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_ONCE_CMD (1) + /* @brief Has 0x44 Erase All Blocks command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_CMD (1) + /* @brief Has 0x45 Verify Backdoor Access Key command. */ + #define FSL_FEATURE_FLASH_HAS_VERIFY_BACKDOOR_ACCESS_KEY_CMD (1) + /* @brief Has 0x46 Swap Control command. */ + #define FSL_FEATURE_FLASH_HAS_SWAP_CONTROL_CMD (1) + /* @brief Has 0x49 Erase All Blocks Unsecure command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_UNSECURE_CMD (0) + /* @brief Has 0x4A Read 1s All Execute-only Segments command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0) + /* @brief Has 0x4B Erase All Execute-only Segments command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0) + /* @brief Has 0x80 Program Partition command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_PARTITION_CMD (0) + /* @brief Has 0x81 Set FlexRAM Function command. */ + #define FSL_FEATURE_FLASH_HAS_SET_FLEXRAM_FUNCTION_CMD (0) + /* @brief P-Flash Erase/Read 1st all block command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_CMD_ADDRESS_ALIGMENT (16) + /* @brief P-Flash Erase sector command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_SECTOR_CMD_ADDRESS_ALIGMENT (16) + /* @brief P-Flash Rrogram/Verify section command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_SECTION_CMD_ADDRESS_ALIGMENT (16) + /* @brief P-Flash Read resource command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_RESOURCE_CMD_ADDRESS_ALIGMENT (8) + /* @brief P-Flash Program check command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_CHECK_CMD_ADDRESS_ALIGMENT (4) + /* @brief P-Flash Program check command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_SWAP_CONTROL_CMD_ADDRESS_ALIGMENT (16) + /* @brief FlexNVM Erase/Read 1st all block command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_CMD_ADDRESS_ALIGMENT (0) + /* @brief FlexNVM Erase sector command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_SECTOR_CMD_ADDRESS_ALIGMENT (0) + /* @brief FlexNVM Rrogram/Verify section command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_SECTION_CMD_ADDRESS_ALIGMENT (0) + /* @brief FlexNVM Read resource command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_RESOURCE_CMD_ADDRESS_ALIGMENT (0) + /* @brief FlexNVM Program check command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_CHECK_CMD_ADDRESS_ALIGMENT (0) + /* @brief FlexNVM partition code 0000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0000 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0001 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0010 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0011 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0100 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0101 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0110 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0111 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1000 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1001 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1010 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1011 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1100 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1101 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1110 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1111 (0xFFFFFFFF) + /* @brief Emulated eeprom size code 0000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0000 (0xFFFF) + /* @brief Emulated eeprom size code 0001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0001 (0xFFFF) + /* @brief Emulated eeprom size code 0010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0010 (0x1000) + /* @brief Emulated eeprom size code 0011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0011 (0x0800) + /* @brief Emulated eeprom size code 0100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0100 (0x0400) + /* @brief Emulated eeprom size code 0101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0101 (0x0200) + /* @brief Emulated eeprom size code 0110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0110 (0x0100) + /* @brief Emulated eeprom size code 0111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0111 (0x0080) + /* @brief Emulated eeprom size code 1000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1000 (0x0040) + /* @brief Emulated eeprom size code 1001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1001 (0x0020) + /* @brief Emulated eeprom size code 1010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1010 (0xFFFF) + /* @brief Emulated eeprom size code 1011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1011 (0xFFFF) + /* @brief Emulated eeprom size code 1100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1100 (0xFFFF) + /* @brief Emulated eeprom size code 1101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1101 (0xFFFF) + /* @brief Emulated eeprom size code 1110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1110 (0xFFFF) + /* @brief Emulated eeprom size code 1111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1111 (0x0000) +#elif defined(CPU_MK64FX512VDC12) || defined(CPU_MK64FX512VLL12) || defined(CPU_MK64FX512VLQ12) || defined(CPU_MK64FX512VMD12) + /* @brief Is of type FTFA. */ + #define FSL_FEATURE_FLASH_IS_FTFA (0) + /* @brief Is of type FTFE. */ + #define FSL_FEATURE_FLASH_IS_FTFE (1) + /* @brief Is of type FTFL. */ + #define FSL_FEATURE_FLASH_IS_FTFL (0) + /* @brief Has flags indicating the status of the FlexRAM (register bits FCNFG[EEERDY], FCNFG[RAMRDY] and FCNFG[PFLSH]). */ + #define FSL_FEATURE_FLASH_HAS_FLEX_RAM_FLAGS (1) + /* @brief Has program flash swapping status flag (register bit FCNFG[SWAP]). */ + #define FSL_FEATURE_FLASH_HAS_PFLASH_SWAPPING_STATUS_FLAG (1) + /* @brief Has EEPROM region protection (register FEPROT). */ + #define FSL_FEATURE_FLASH_HAS_EEROM_REGION_PROTECTION (1) + /* @brief Has data flash region protection (register FDPROT). */ + #define FSL_FEATURE_FLASH_HAS_DATA_FLASH_REGION_PROTECTION (1) + /* @brief Has flash access control (registers XACCHn, SACCHn, where n is a number, FACSS and FACSN). */ + #define FSL_FEATURE_FLASH_HAS_ACCESS_CONTROL (0) + /* @brief Has flash cache control in FMC module. */ + #define FSL_FEATURE_FLASH_HAS_FMC_FLASH_CACHE_CONTROLS (1) + /* @brief Has flash cache control in MCM module. */ + #define FSL_FEATURE_FLASH_HAS_MCM_FLASH_CACHE_CONTROLS (0) + /* @brief Has flash cache control in MSCM module. */ + #define FSL_FEATURE_FLASH_HAS_MSCM_FLASH_CACHE_CONTROLS (0) + /* @brief P-Flash start address. */ + #define FSL_FEATURE_FLASH_PFLASH_START_ADDRESS (0x00000000) + /* @brief P-Flash block count. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT (1) + /* @brief P-Flash block size. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE (524288) + /* @brief P-Flash sector size. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_SECTOR_SIZE (4096) + /* @brief P-Flash write unit size. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_WRITE_UNIT_SIZE (8) + /* @brief P-Flash data path width. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_DATA_PATH_WIDTH (16) + /* @brief P-Flash block swap feature. */ + #define FSL_FEATURE_FLASH_HAS_PFLASH_BLOCK_SWAP (0) + /* @brief Has FlexNVM memory. */ + #define FSL_FEATURE_FLASH_HAS_FLEX_NVM (1) + /* @brief FlexNVM start address. (Valid only if FlexNVM is available.) */ + #define FSL_FEATURE_FLASH_FLEX_NVM_START_ADDRESS (0x10000000) + /* @brief FlexNVM block count. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_COUNT (1) + /* @brief FlexNVM block size. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SIZE (131072) + /* @brief FlexNVM sector size. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SECTOR_SIZE (4096) + /* @brief FlexNVM write unit size. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_WRITE_UNIT_SIZE (8) + /* @brief FlexNVM data path width. */ + #define FSL_FEATURE_FLASH_FLEX_BLOCK_DATA_PATH_WIDTH (16) + /* @brief Has FlexRAM memory. */ + #define FSL_FEATURE_FLASH_HAS_FLEX_RAM (1) + /* @brief FlexRAM start address. (Valid only if FlexRAM is available.) */ + #define FSL_FEATURE_FLASH_FLEX_RAM_START_ADDRESS (0x14000000) + /* @brief FlexRAM size. */ + #define FSL_FEATURE_FLASH_FLEX_RAM_SIZE (4096) + /* @brief Has 0x00 Read 1s Block command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_BLOCK_CMD (0) + /* @brief Has 0x01 Read 1s Section command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_SECTION_CMD (1) + /* @brief Has 0x02 Program Check command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_CHECK_CMD (1) + /* @brief Has 0x03 Read Resource command. */ + #define FSL_FEATURE_FLASH_HAS_READ_RESOURCE_CMD (1) + /* @brief Has 0x06 Program Longword command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_LONGWORD_CMD (0) + /* @brief Has 0x07 Program Phrase command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_PHRASE_CMD (1) + /* @brief Has 0x08 Erase Flash Block command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_BLOCK_CMD (0) + /* @brief Has 0x09 Erase Flash Sector command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_SECTOR_CMD (1) + /* @brief Has 0x0B Program Section command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_SECTION_CMD (1) + /* @brief Has 0x40 Read 1s All Blocks command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_BLOCKS_CMD (1) + /* @brief Has 0x41 Read Once command. */ + #define FSL_FEATURE_FLASH_HAS_READ_ONCE_CMD (1) + /* @brief Has 0x43 Program Once command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_ONCE_CMD (1) + /* @brief Has 0x44 Erase All Blocks command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_CMD (1) + /* @brief Has 0x45 Verify Backdoor Access Key command. */ + #define FSL_FEATURE_FLASH_HAS_VERIFY_BACKDOOR_ACCESS_KEY_CMD (1) + /* @brief Has 0x46 Swap Control command. */ + #define FSL_FEATURE_FLASH_HAS_SWAP_CONTROL_CMD (0) + /* @brief Has 0x49 Erase All Blocks Unsecure command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_UNSECURE_CMD (0) + /* @brief Has 0x4A Read 1s All Execute-only Segments command. */ + #define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0) + /* @brief Has 0x4B Erase All Execute-only Segments command. */ + #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0) + /* @brief Has 0x80 Program Partition command. */ + #define FSL_FEATURE_FLASH_HAS_PROGRAM_PARTITION_CMD (1) + /* @brief Has 0x81 Set FlexRAM Function command. */ + #define FSL_FEATURE_FLASH_HAS_SET_FLEXRAM_FUNCTION_CMD (1) + /* @brief P-Flash Erase/Read 1st all block command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_BLOCK_CMD_ADDRESS_ALIGMENT (16) + /* @brief P-Flash Erase sector command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_SECTOR_CMD_ADDRESS_ALIGMENT (16) + /* @brief P-Flash Rrogram/Verify section command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_SECTION_CMD_ADDRESS_ALIGMENT (16) + /* @brief P-Flash Read resource command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_RESOURCE_CMD_ADDRESS_ALIGMENT (8) + /* @brief P-Flash Program check command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_CHECK_CMD_ADDRESS_ALIGMENT (4) + /* @brief P-Flash Program check command address alignment. */ + #define FSL_FEATURE_FLASH_PFLASH_SWAP_CONTROL_CMD_ADDRESS_ALIGMENT (0) + /* @brief FlexNVM Erase/Read 1st all block command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_CMD_ADDRESS_ALIGMENT (16) + /* @brief FlexNVM Erase sector command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_SECTOR_CMD_ADDRESS_ALIGMENT (16) + /* @brief FlexNVM Rrogram/Verify section command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_SECTION_CMD_ADDRESS_ALIGMENT (16) + /* @brief FlexNVM Read resource command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_RESOURCE_CMD_ADDRESS_ALIGMENT (8) + /* @brief FlexNVM Program check command address alignment. */ + #define FSL_FEATURE_FLASH_FLEX_NVM_CHECK_CMD_ADDRESS_ALIGMENT (4) + /* @brief FlexNVM partition code 0000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0000 (0x00020000) + /* @brief FlexNVM partition code 0001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0001 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0010 (0x0001C000) + /* @brief FlexNVM partition code 0011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0011 (0x00018000) + /* @brief FlexNVM partition code 0100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0100 (0x00010000) + /* @brief FlexNVM partition code 0101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0101 (0x00000000) + /* @brief FlexNVM partition code 0110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0110 (0xFFFFFFFF) + /* @brief FlexNVM partition code 0111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0111 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1000 (0x00000000) + /* @brief FlexNVM partition code 1001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1001 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1010 (0x00004000) + /* @brief FlexNVM partition code 1011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1011 (0x00008000) + /* @brief FlexNVM partition code 1100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1100 (0x00010000) + /* @brief FlexNVM partition code 1101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1101 (0x00020000) + /* @brief FlexNVM partition code 1110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1110 (0xFFFFFFFF) + /* @brief FlexNVM partition code 1111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1111 (0x00020000) + /* @brief Emulated eeprom size code 0000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0000 (0xFFFF) + /* @brief Emulated eeprom size code 0001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0001 (0xFFFF) + /* @brief Emulated eeprom size code 0010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0010 (0x1000) + /* @brief Emulated eeprom size code 0011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0011 (0x0800) + /* @brief Emulated eeprom size code 0100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0100 (0x0400) + /* @brief Emulated eeprom size code 0101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0101 (0x0200) + /* @brief Emulated eeprom size code 0110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0110 (0x0100) + /* @brief Emulated eeprom size code 0111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0111 (0x0080) + /* @brief Emulated eeprom size code 1000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1000 (0x0040) + /* @brief Emulated eeprom size code 1001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1001 (0x0020) + /* @brief Emulated eeprom size code 1010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1010 (0xFFFF) + /* @brief Emulated eeprom size code 1011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1011 (0xFFFF) + /* @brief Emulated eeprom size code 1100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1100 (0xFFFF) + /* @brief Emulated eeprom size code 1101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1101 (0xFFFF) + /* @brief Emulated eeprom size code 1110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1110 (0xFFFF) + /* @brief Emulated eeprom size code 1111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */ + #define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1111 (0x0000) +#endif /* defined(CPU_MK64FN1M0CAJ12) || defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FN1M0VLQ12) || \ + defined(CPU_MK64FN1M0VMD12) */ + +/* FTM module features */ + +/* @brief Number of channels. */ +#define FSL_FEATURE_FTM_CHANNEL_COUNTn(x) \ + ((x) == FTM0 ? (8) : \ + ((x) == FTM1 ? (2) : \ + ((x) == FTM2 ? (2) : \ + ((x) == FTM3 ? (8) : (-1))))) +/* @brief Has counter reset by the selected input capture event (register bits C0SC[ICRST], C1SC[ICRST], ...). */ +#define FSL_FEATURE_FTM_HAS_COUNTER_RESET_BY_CAPTURE_EVENT (0) +/* @brief Enable pwm output for the module. */ +#define FSL_FEATURE_FTM_HAS_ENABLE_PWM_OUTPUT (0) +/* @brief Has half-cycle reload for the module. */ +#define FSL_FEATURE_FTM_HAS_HALFCYCLE_RELOAD (0) +/* @brief Has reload interrupt. */ +#define FSL_FEATURE_FTM_HAS_RELOAD_INTERRUPT (0) +/* @brief Has reload initialization trigger. */ +#define FSL_FEATURE_FTM_HAS_RELOAD_INITIALIZATION_TRIGGER (0) + +/* GPIO module features */ + +/* @brief Has fast (single cycle) access capability via a dedicated memory region. */ +#define FSL_FEATURE_GPIO_HAS_FAST_GPIO (0) +/* @brief Has port input disable register (PIDR). */ +#define FSL_FEATURE_GPIO_HAS_INPUT_DISABLE (0) +/* @brief Has dedicated interrupt vector. */ +#define FSL_FEATURE_GPIO_HAS_PORT_INTERRUPT_VECTOR (1) + +/* I2C module features */ + +/* @brief Has System Management Bus support (registers SMB, A2, SLTL and SLTH). */ +#define FSL_FEATURE_I2C_HAS_SMBUS (1) +/* @brief Maximum supported baud rate in kilobit per second. */ +#define FSL_FEATURE_I2C_MAX_BAUD_KBPS (400) +/* @brief Is affected by errata with ID 6070 (repeat start cannot be generated if the F[MULT] bit field is set to a non-zero value). */ +#define FSL_FEATURE_I2C_HAS_ERRATA_6070 (0) +/* @brief Has DMA support (register bit C1[DMAEN]). */ +#define FSL_FEATURE_I2C_HAS_DMA_SUPPORT (1) +/* @brief Has I2C bus start and stop detection (register bits FLT[SSIE], FLT[STARTF] and FLT[STOPF]). */ +#define FSL_FEATURE_I2C_HAS_START_STOP_DETECT (1) +/* @brief Has I2C bus stop detection (register bits FLT[STOPIE] and FLT[STOPF]). */ +#define FSL_FEATURE_I2C_HAS_STOP_DETECT (0) +/* @brief Has I2C bus stop hold off (register bit FLT[SHEN]). */ +#define FSL_FEATURE_I2C_HAS_STOP_HOLD_OFF (1) +/* @brief Maximum width of the glitch filter in number of bus clocks. */ +#define FSL_FEATURE_I2C_MAX_GLITCH_FILTER_WIDTH (15) +/* @brief Has control of the drive capability of the I2C pins. */ +#define FSL_FEATURE_I2C_HAS_HIGH_DRIVE_SELECTION (1) +/* @brief Has double buffering support (register S2). */ +#define FSL_FEATURE_I2C_HAS_DOUBLE_BUFFERING (0) +/* @brief Has double buffer enable. */ +#define FSL_FEATURE_I2C_HAS_DOUBLE_BUFFER_ENABLE (0) + +/* SAI module features */ + +/* @brief Receive/transmit FIFO size in item count (register bit fields TCSR[FRDE], TCSR[FRIE], TCSR[FRF], TCR1[TFW], RCSR[FRDE], RCSR[FRIE], RCSR[FRF], RCR1[RFW], registers TFRn, RFRn). */ +#define FSL_FEATURE_SAI_FIFO_COUNT (8) +/* @brief Receive/transmit channel number (register bit fields TCR3[TCE], RCR3[RCE], registers TDRn and RDRn). */ +#define FSL_FEATURE_SAI_CHANNEL_COUNT (2) +/* @brief Maximum words per frame (register bit fields TCR3[WDFL], TCR4[FRSZ], TMR[TWM], RCR3[WDFL], RCR4[FRSZ], RMR[RWM]). */ +#define FSL_FEATURE_SAI_MAX_WORDS_PER_FRAME (32) +/* @brief Has support of combining multiple data channel FIFOs into single channel FIFO (register bit fields TCR3[CFR], TCR4[FCOMB], TFR0[WCP], TFR1[WCP], RCR3[CFR], RCR4[FCOMB], RFR0[RCP], RFR1[RCP]). */ +#define FSL_FEATURE_SAI_HAS_FIFO_COMBINE_MODE (0) +/* @brief Has packing of 8-bit and 16-bit data into each 32-bit FIFO word (register bit fields TCR4[FPACK], RCR4[FPACK]). */ +#define FSL_FEATURE_SAI_HAS_FIFO_PACKING (0) +/* @brief Configures when the SAI will continue transmitting after a FIFO error has been detected (register bit fields TCR4[FCONT], RCR4[FCONT]). */ +#define FSL_FEATURE_SAI_HAS_FIFO_FUNCTION_AFTER_ERROR (0) +/* @brief Configures if the frame sync is generated internally, a frame sync is only generated when the FIFO warning flag is clear or continuously (register bit fields TCR4[ONDEM], RCR4[ONDEM]). */ +#define FSL_FEATURE_SAI_HAS_ON_DEMAND_MODE (0) +/* @brief Simplified bit clock source and asynchronous/synchronous mode selection (register bit fields TCR2[CLKMODE], RCR2[CLKMODE]), in comparison with the exclusively implemented TCR2[SYNC,BCS,BCI,MSEL], RCR2[SYNC,BCS,BCI,MSEL]. */ +#define FSL_FEATURE_SAI_HAS_CLOCKING_MODE (0) +/* @brief Has register for configuration of the MCLK divide ratio (register bit fields MDR[FRACT], MDR[DIVIDE]). */ +#define FSL_FEATURE_SAI_HAS_MCLKDIV_REGISTER (1) +/* @brief Ihe interrupt source number */ +#define FSL_FEATURE_SAI_INT_SOURCE_NUM (2) +/* @brief Has register of MCR. */ +#define FSL_FEATURE_SAI_HAS_MCR (1) +/* @brief Has register of MDR */ +#define FSL_FEATURE_SAI_HAS_MDR (1) + +/* LLWU module features */ + +#if defined(CPU_MK64FN1M0CAJ12) + /* @brief Maximum number of pins (maximal index plus one) connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN (16) + /* @brief Has pins 8-15 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_EXTERNAL_PIN_GROUP2 (1) + /* @brief Maximum number of internal modules connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE (8) + /* @brief Number of digital filters. */ + #define FSL_FEATURE_LLWU_HAS_PIN_FILTER (2) + /* @brief Has MF register. */ + #define FSL_FEATURE_LLWU_HAS_MF (0) + /* @brief Has PF register. */ + #define FSL_FEATURE_LLWU_HAS_PF (0) + /* @brief Has possibility to enable reset in low leakage power mode and enable digital filter for RESET pin (register LLWU_RST). */ + #define FSL_FEATURE_LLWU_HAS_RESET_ENABLE (1) + /* @brief Has external pin 0 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN0 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN0_GPIO_IDX (GPIOE_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN0_GPIO_PIN (1) + /* @brief Has external pin 1 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN1 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN1_GPIO_IDX (GPIOE_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN1_GPIO_PIN (2) + /* @brief Has external pin 2 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN2 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN2_GPIO_IDX (GPIOE_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN2_GPIO_PIN (4) + /* @brief Has external pin 3 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN3 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN3_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN3_GPIO_PIN (0) + /* @brief Has external pin 4 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN4 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN4_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN4_GPIO_PIN (0) + /* @brief Has external pin 5 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN5 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN5_GPIO_IDX (GPIOB_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN5_GPIO_PIN (0) + /* @brief Has external pin 6 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN6 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN6_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN6_GPIO_PIN (1) + /* @brief Has external pin 7 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN7 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN7_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN7_GPIO_PIN (3) + /* @brief Has external pin 8 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN8 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN8_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN8_GPIO_PIN (4) + /* @brief Has external pin 9 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN9 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN9_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN9_GPIO_PIN (5) + /* @brief Has external pin 10 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN10 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN10_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN10_GPIO_PIN (6) + /* @brief Has external pin 11 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN11 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN11_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN11_GPIO_PIN (11) + /* @brief Has external pin 12 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN12 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN12_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN12_GPIO_PIN (0) + /* @brief Has external pin 13 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN13 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN13_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN13_GPIO_PIN (2) + /* @brief Has external pin 14 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN14 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN14_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN14_GPIO_PIN (4) + /* @brief Has external pin 15 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN15 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN15_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN15_GPIO_PIN (6) + /* @brief Has external pin 16 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN16 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN16_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN16_GPIO_PIN (0) + /* @brief Has external pin 17 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN17 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN17_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN17_GPIO_PIN (0) + /* @brief Has external pin 18 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN18 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN18_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN18_GPIO_PIN (0) + /* @brief Has external pin 19 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN19 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN19_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN19_GPIO_PIN (0) + /* @brief Has external pin 20 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN20 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN20_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN20_GPIO_PIN (0) + /* @brief Has external pin 21 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN21 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN21_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN21_GPIO_PIN (0) + /* @brief Has external pin 22 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN22 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN22_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN22_GPIO_PIN (0) + /* @brief Has external pin 23 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN23 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN23_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN23_GPIO_PIN (0) + /* @brief Has external pin 24 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN24 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN24_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN24_GPIO_PIN (0) + /* @brief Has external pin 25 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN25 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN25_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN25_GPIO_PIN (0) + /* @brief Has external pin 26 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN26 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN26_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN26_GPIO_PIN (0) + /* @brief Has external pin 27 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN27 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN27_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN27_GPIO_PIN (0) + /* @brief Has external pin 28 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN28 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN28_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN28_GPIO_PIN (0) + /* @brief Has external pin 29 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN29 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN29_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN29_GPIO_PIN (0) + /* @brief Has external pin 30 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN30 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN30_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN30_GPIO_PIN (0) + /* @brief Has external pin 31 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN31 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN31_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN31_GPIO_PIN (0) + /* @brief Has internal module 0 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE0 (1) + /* @brief Has internal module 1 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE1 (1) + /* @brief Has internal module 2 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE2 (1) + /* @brief Has internal module 3 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE3 (1) + /* @brief Has internal module 4 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE4 (0) + /* @brief Has internal module 5 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE5 (1) + /* @brief Has internal module 6 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE6 (0) + /* @brief Has internal module 7 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE7 (1) + /* @brief Has Version ID Register (LLWU_VERID). */ + #define FSL_FEATURE_LLWU_HAS_VERID (0) + /* @brief Has Parameter Register (LLWU_PARAM). */ + #define FSL_FEATURE_LLWU_HAS_PARAM (0) + /* @brief Width of registers of the LLWU. */ + #define FSL_FEATURE_LLWU_REG_BITWIDTH (8) + /* @brief Has DMA Enable register (LLWU_DE). */ + #define FSL_FEATURE_LLWU_HAS_DMA_ENABLE_REG (0) +#elif defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FN1M0VLQ12) || defined(CPU_MK64FN1M0VMD12) || \ + defined(CPU_MK64FX512VDC12) || defined(CPU_MK64FX512VLL12) || defined(CPU_MK64FX512VLQ12) || defined(CPU_MK64FX512VMD12) + /* @brief Maximum number of pins (maximal index plus one) connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN (16) + /* @brief Has pins 8-15 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_EXTERNAL_PIN_GROUP2 (1) + /* @brief Maximum number of internal modules connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE (8) + /* @brief Number of digital filters. */ + #define FSL_FEATURE_LLWU_HAS_PIN_FILTER (2) + /* @brief Has MF register. */ + #define FSL_FEATURE_LLWU_HAS_MF (0) + /* @brief Has PF register. */ + #define FSL_FEATURE_LLWU_HAS_PF (0) + /* @brief Has possibility to enable reset in low leakage power mode and enable digital filter for RESET pin (register LLWU_RST). */ + #define FSL_FEATURE_LLWU_HAS_RESET_ENABLE (1) + /* @brief Has external pin 0 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN0 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN0_GPIO_IDX (GPIOE_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN0_GPIO_PIN (1) + /* @brief Has external pin 1 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN1 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN1_GPIO_IDX (GPIOE_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN1_GPIO_PIN (2) + /* @brief Has external pin 2 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN2 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN2_GPIO_IDX (GPIOE_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN2_GPIO_PIN (4) + /* @brief Has external pin 3 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN3 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN3_GPIO_IDX (GPIOA_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN3_GPIO_PIN (4) + /* @brief Has external pin 4 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN4 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN4_GPIO_IDX (GPIOA_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN4_GPIO_PIN (13) + /* @brief Has external pin 5 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN5 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN5_GPIO_IDX (GPIOB_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN5_GPIO_PIN (0) + /* @brief Has external pin 6 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN6 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN6_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN6_GPIO_PIN (1) + /* @brief Has external pin 7 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN7 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN7_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN7_GPIO_PIN (3) + /* @brief Has external pin 8 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN8 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN8_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN8_GPIO_PIN (4) + /* @brief Has external pin 9 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN9 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN9_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN9_GPIO_PIN (5) + /* @brief Has external pin 10 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN10 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN10_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN10_GPIO_PIN (6) + /* @brief Has external pin 11 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN11 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN11_GPIO_IDX (GPIOC_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN11_GPIO_PIN (11) + /* @brief Has external pin 12 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN12 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN12_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN12_GPIO_PIN (0) + /* @brief Has external pin 13 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN13 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN13_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN13_GPIO_PIN (2) + /* @brief Has external pin 14 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN14 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN14_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN14_GPIO_PIN (4) + /* @brief Has external pin 15 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN15 (1) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN15_GPIO_IDX (GPIOD_IDX) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN15_GPIO_PIN (6) + /* @brief Has external pin 16 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN16 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN16_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN16_GPIO_PIN (0) + /* @brief Has external pin 17 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN17 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN17_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN17_GPIO_PIN (0) + /* @brief Has external pin 18 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN18 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN18_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN18_GPIO_PIN (0) + /* @brief Has external pin 19 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN19 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN19_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN19_GPIO_PIN (0) + /* @brief Has external pin 20 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN20 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN20_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN20_GPIO_PIN (0) + /* @brief Has external pin 21 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN21 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN21_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN21_GPIO_PIN (0) + /* @brief Has external pin 22 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN22 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN22_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN22_GPIO_PIN (0) + /* @brief Has external pin 23 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN23 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN23_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN23_GPIO_PIN (0) + /* @brief Has external pin 24 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN24 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN24_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN24_GPIO_PIN (0) + /* @brief Has external pin 25 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN25 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN25_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN25_GPIO_PIN (0) + /* @brief Has external pin 26 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN26 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN26_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN26_GPIO_PIN (0) + /* @brief Has external pin 27 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN27 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN27_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN27_GPIO_PIN (0) + /* @brief Has external pin 28 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN28 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN28_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN28_GPIO_PIN (0) + /* @brief Has external pin 29 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN29 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN29_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN29_GPIO_PIN (0) + /* @brief Has external pin 30 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN30 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN30_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN30_GPIO_PIN (0) + /* @brief Has external pin 31 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN31 (0) + /* @brief Index of port of external pin. */ + #define FSL_FEATURE_LLWU_PIN31_GPIO_IDX (0) + /* @brief Number of external pin port on specified port. */ + #define FSL_FEATURE_LLWU_PIN31_GPIO_PIN (0) + /* @brief Has internal module 0 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE0 (1) + /* @brief Has internal module 1 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE1 (1) + /* @brief Has internal module 2 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE2 (1) + /* @brief Has internal module 3 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE3 (1) + /* @brief Has internal module 4 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE4 (0) + /* @brief Has internal module 5 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE5 (1) + /* @brief Has internal module 6 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE6 (0) + /* @brief Has internal module 7 connected to LLWU device. */ + #define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE7 (1) + /* @brief Has Version ID Register (LLWU_VERID). */ + #define FSL_FEATURE_LLWU_HAS_VERID (0) + /* @brief Has Parameter Register (LLWU_PARAM). */ + #define FSL_FEATURE_LLWU_HAS_PARAM (0) + /* @brief Width of registers of the LLWU. */ + #define FSL_FEATURE_LLWU_REG_BITWIDTH (8) + /* @brief Has DMA Enable register (LLWU_DE). */ + #define FSL_FEATURE_LLWU_HAS_DMA_ENABLE_REG (0) +#endif /* defined(CPU_MK64FN1M0CAJ12) */ + +/* LPTMR module features */ + +/* @brief Has shared interrupt handler with another LPTMR module. */ +#define FSL_FEATURE_LPTMR_HAS_SHARED_IRQ_HANDLER (0) + +/* MCG module features */ + +/* @brief PRDIV base value (divider of register bit field [PRDIV] zero value). */ +#define FSL_FEATURE_MCG_PLL_PRDIV_BASE (1) +/* @brief Maximum PLL external reference divider value (max. value of register bit field C5[PRVDIV]). */ +#define FSL_FEATURE_MCG_PLL_PRDIV_MAX (24) +/* @brief VCO divider base value (multiply factor of register bit field C6[VDIV] zero value). */ +#define FSL_FEATURE_MCG_PLL_VDIV_BASE (24) +/* @brief PLL reference clock low range. OSCCLK/PLL_R. */ +#define FSL_FEATURE_MCG_PLL_REF_MIN (2000000) +/* @brief PLL reference clock high range. OSCCLK/PLL_R. */ +#define FSL_FEATURE_MCG_PLL_REF_MAX (4000000) +/* @brief The PLL clock is divided by 2 before VCO divider. */ +#define FSL_FEATURE_MCG_HAS_PLL_INTERNAL_DIV (0) +/* @brief FRDIV supports 1280. */ +#define FSL_FEATURE_MCG_FRDIV_SUPPORT_1280 (1) +/* @brief FRDIV supports 1536. */ +#define FSL_FEATURE_MCG_FRDIV_SUPPORT_1536 (1) +/* @brief MCGFFCLK divider. */ +#define FSL_FEATURE_MCG_FFCLK_DIV (1) +/* @brief Is PLL clock divided by 2 before MCG PLL/FLL clock selection in the SIM module. */ +#define FSL_FEATURE_MCG_HAS_PLL_EXTRA_DIV (0) +/* @brief Has 32kHz RTC external reference clock (register bits C8[LOCS1], C8[CME1], C8[LOCRE1] and RTC module are present). */ +#define FSL_FEATURE_MCG_HAS_RTC_32K (1) +/* @brief Has PLL1 external reference clock (registers C10, C11, C12, S2). */ +#define FSL_FEATURE_MCG_HAS_PLL1 (0) +/* @brief Has 48MHz internal oscillator. */ +#define FSL_FEATURE_MCG_HAS_IRC_48M (1) +/* @brief Has OSC1 external oscillator (registers C10, C11, C12, S2). */ +#define FSL_FEATURE_MCG_HAS_OSC1 (0) +/* @brief Has fast internal reference clock fine trim (register bit C2[FCFTRIM]). */ +#define FSL_FEATURE_MCG_HAS_FCFTRIM (1) +/* @brief Has PLL loss of lock reset (register bit C8[LOLRE]). */ +#define FSL_FEATURE_MCG_HAS_LOLRE (1) +/* @brief Has MCG OSC clock selection (register bit C7[OSCSEL]). */ +#define FSL_FEATURE_MCG_USE_OSCSEL (1) +/* @brief Has PLL external reference selection (register bits C5[PLLREFSEL0] and C11[PLLREFSEL1]). */ +#define FSL_FEATURE_MCG_USE_PLLREFSEL (0) +/* @brief TBD */ +#define FSL_FEATURE_MCG_USE_SYSTEM_CLOCK (0) +/* @brief Has phase-locked loop (PLL) (register C5 and bits C6[VDIV], C6[PLLS], C6[LOLIE0], S[PLLST], S[LOCK0], S[LOLS]). */ +#define FSL_FEATURE_MCG_HAS_PLL (1) +/* @brief Has phase-locked loop (PLL) PRDIV (register C5[PRDIV]. */ +#define FSL_FEATURE_MCG_HAS_PLL_PRDIV (1) +/* @brief Has phase-locked loop (PLL) VDIV (register C6[VDIV]. */ +#define FSL_FEATURE_MCG_HAS_PLL_VDIV (1) +/* @brief PLL/OSC related register bit fields have PLL/OSC index in their name. */ +#define FSL_FEATURE_MCG_HAS_PLL_OSC_INDEX (0) +/* @brief Has frequency-locked loop (FLL) (register ATCVH, ATCVL and bits C1[IREFS], C1[FRDIV]). */ +#define FSL_FEATURE_MCG_HAS_FLL (1) +/* @brief Has PLL external to MCG (C9[PLL_CME], C9[PLL_LOCRE], C9[EXT_PLL_LOCS]). */ +#define FSL_FEATURE_MCG_HAS_EXTERNAL_PLL (0) +/* @brief Has crystal oscillator or external reference clock low power controls (register bits C2[HGO], C2[RANGE]). */ +#define FSL_FEATURE_MCG_HAS_EXT_REF_LOW_POWER_CONTROL (1) +/* @brief Has PLL/FLL selection as MCG output (register bit C6[PLLS]). */ +#define FSL_FEATURE_MCG_HAS_PLL_FLL_SELECTION (1) +/* @brief Has PLL output selection (PLL0/PLL1, PLL/external PLL) (register bit C11[PLLCS]). */ +#define FSL_FEATURE_MCG_HAS_PLL_OUTPUT_SELECTION (0) +/* @brief Has automatic trim machine (registers ATCVH, ATCVL and bits SC[ATMF], SC[ATMS], SC[ATME]). */ +#define FSL_FEATURE_MCG_HAS_AUTO_TRIM_MACHINE (1) +/* @brief Has external clock monitor (register bit C6[CME]). */ +#define FSL_FEATURE_MCG_HAS_EXTERNAL_CLOCK_MONITOR (1) +/* @brief Has low frequency internal reference clock (IRC) (registers LTRIMRNG, LFRIM, LSTRIM and bit MC[LIRC_DIV2]). */ +#define FSL_FEATURE_MCG_HAS_LOW_FREQ_IRC (0) +/* @brief Has high frequency internal reference clock (IRC) (registers HCTRIM, HTTRIM, HFTRIM and bit MC[HIRCEN]). */ +#define FSL_FEATURE_MCG_HAS_HIGH_FREQ_IRC (0) +/* @brief Has PEI mode or PBI mode. */ +#define FSL_FEATURE_MCG_HAS_PLL_INTERNAL_MODE (0) +/* @brief Reset clock mode is BLPI. */ +#define FSL_FEATURE_MCG_RESET_IS_BLPI (0) + +/* MPU module features */ + +/* @brief Specifies number of descriptors available. */ +#define FSL_FEATURE_MPU_DESCRIPTOR_COUNT (12) +/* @brief Has process identifier support. */ +#define FSL_FEATURE_MPU_HAS_PROCESS_IDENTIFIER (1) +/* @brief Total number of MPU master. */ +#define FSL_FEATURE_MPU_MASTER_COUNT (8) +/* @brief Total number of MPU master with privileged rights */ +#define FSL_FEATURE_MPU_PRIVILEGED_RIGHTS_MASTER_COUNT (4) +/* @brief Max index of used MPU master. */ +#define FSL_FEATURE_MPU_MASTER_MAX_INDEX (5) +/* @brief Max index of used MPU master with privileged rights */ +#define FSL_FEATURE_MPU_PRIVILEGED_RIGHTS_MASTER_MAX_INDEX (3) +/* @brief Has master 0. */ +#define FSL_FEATURE_MPU_HAS_MASTER0 (1) +/* @brief Has master 1. */ +#define FSL_FEATURE_MPU_HAS_MASTER1 (1) +/* @brief Has master 2. */ +#define FSL_FEATURE_MPU_HAS_MASTER2 (1) +/* @brief Has master 3. */ +#define FSL_FEATURE_MPU_HAS_MASTER3 (1) +/* @brief Has master 4. */ +#define FSL_FEATURE_MPU_HAS_MASTER4 (1) +/* @brief Has master 5. */ +#define FSL_FEATURE_MPU_HAS_MASTER5 (1) +/* @brief Has master 6. */ +#define FSL_FEATURE_MPU_HAS_MASTER6 (0) +/* @brief Has master 7. */ +#define FSL_FEATURE_MPU_HAS_MASTER7 (0) + +/* interrupt module features */ + +/* @brief Lowest interrupt request number. */ +#define FSL_FEATURE_INTERRUPT_IRQ_MIN (-14) +/* @brief Highest interrupt request number. */ +#define FSL_FEATURE_INTERRUPT_IRQ_MAX (85) + +/* OSC module features */ + +/* @brief Has OSC1 external oscillator. */ +#define FSL_FEATURE_OSC_HAS_OSC1 (0) +/* @brief Has OSC0 external oscillator. */ +#define FSL_FEATURE_OSC_HAS_OSC0 (0) +/* @brief Has OSC external oscillator (without index). */ +#define FSL_FEATURE_OSC_HAS_OSC (1) +/* @brief Number of OSC external oscillators. */ +#define FSL_FEATURE_OSC_OSC_COUNT (1) +/* @brief Has external reference clock divider (register bit field DIV[ERPS]). */ +#define FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER (0) + +/* PDB module features */ + +/* @brief Define the count of supporting ADC pre-trigger for each channel. */ +#define FSL_FEATURE_PDB_ADC_PRE_CHANNEL_COUNT (2) +/* @brief Has DAC support. */ +#define FSL_FEATURE_PDB_HAS_DAC (1) +/* @brief Has shared interrupt handler (has not individual interrupt handler for each channel). */ +#define FSL_FEATURE_PDB_HAS_SHARED_IRQ_HANDLER (0) + +/* PIT module features */ + +/* @brief Number of channels (related to number of registers LDVALn, CVALn, TCTRLn, TFLGn). */ +#define FSL_FEATURE_PIT_TIMER_COUNT (4) +/* @brief Has lifetime timer (related to existence of registers LTMR64L and LTMR64H). */ +#define FSL_FEATURE_PIT_HAS_LIFETIME_TIMER (0) +/* @brief Has chain mode (related to existence of register bit field TCTRLn[CHN]). */ +#define FSL_FEATURE_PIT_HAS_CHAIN_MODE (1) +/* @brief Has shared interrupt handler (has not individual interrupt handler for each channel). */ +#define FSL_FEATURE_PIT_HAS_SHARED_IRQ_HANDLER (0) + +/* PMC module features */ + +/* @brief Has Bandgap Enable In VLPx Operation support. */ +#define FSL_FEATURE_PMC_HAS_BGEN (1) +/* @brief Has Bandgap Buffer Enable. */ +#define FSL_FEATURE_PMC_HAS_BGBE (1) +/* @brief Has Bandgap Buffer Drive Select. */ +#define FSL_FEATURE_PMC_HAS_BGBDS (0) +/* @brief Has Low-Voltage Detect Voltage Select support. */ +#define FSL_FEATURE_PMC_HAS_LVDV (1) +/* @brief Has Low-Voltage Warning Voltage Select support. */ +#define FSL_FEATURE_PMC_HAS_LVWV (1) +/* @brief Has LPO. */ +#define FSL_FEATURE_PMC_HAS_LPO (0) +/* @brief Has VLPx option PMC_REGSC[VLPO]. */ +#define FSL_FEATURE_PMC_HAS_VLPO (0) +/* @brief Has acknowledge isolation support. */ +#define FSL_FEATURE_PMC_HAS_ACKISO (1) +/* @brief Has Regulator In Full Performance Mode Status Bit PMC_REGSC[REGFPM]. */ +#define FSL_FEATURE_PMC_HAS_REGFPM (0) +/* @brief Has Regulator In Run Regulation Status Bit PMC_REGSC[REGONS]. */ +#define FSL_FEATURE_PMC_HAS_REGONS (1) +/* @brief Has PMC_HVDSC1. */ +#define FSL_FEATURE_PMC_HAS_HVDSC1 (0) +/* @brief Has PMC_PARAM. */ +#define FSL_FEATURE_PMC_HAS_PARAM (0) +/* @brief Has PMC_VERID. */ +#define FSL_FEATURE_PMC_HAS_VERID (0) + +/* PORT module features */ + +/* @brief Has control lock (register bit PCR[LK]). */ +#define FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK (1) +/* @brief Has open drain control (register bit PCR[ODE]). */ +#define FSL_FEATURE_PORT_HAS_OPEN_DRAIN (1) +/* @brief Has digital filter (registers DFER, DFCR and DFWR). */ +#define FSL_FEATURE_PORT_HAS_DIGITAL_FILTER (1) +/* @brief Has DMA request (register bit field PCR[IRQC] values). */ +#define FSL_FEATURE_PORT_HAS_DMA_REQUEST (1) +/* @brief Has pull resistor selection available. */ +#define FSL_FEATURE_PORT_HAS_PULL_SELECTION (1) +/* @brief Has pull resistor enable (register bit PCR[PE]). */ +#define FSL_FEATURE_PORT_HAS_PULL_ENABLE (1) +/* @brief Has slew rate control (register bit PCR[SRE]). */ +#define FSL_FEATURE_PORT_HAS_SLEW_RATE (1) +/* @brief Has passive filter (register bit field PCR[PFE]). */ +#define FSL_FEATURE_PORT_HAS_PASSIVE_FILTER (1) +/* @brief Has drive strength control (register bit PCR[DSE]). */ +#define FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH (1) +/* @brief Has separate drive strength register (HDRVE). */ +#define FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH_REGISTER (0) +/* @brief Has glitch filter (register IOFLT). */ +#define FSL_FEATURE_PORT_HAS_GLITCH_FILTER (0) +/* @brief Defines width of PCR[MUX] field. */ +#define FSL_FEATURE_PORT_PCR_MUX_WIDTH (3) +/* @brief Has dedicated interrupt vector. */ +#define FSL_FEATURE_PORT_HAS_INTERRUPT_VECTOR (1) +/* @brief Defines whether PCR[IRQC] bit-field has flag states. */ +#define FSL_FEATURE_PORT_HAS_IRQC_FLAG (0) +/* @brief Defines whether PCR[IRQC] bit-field has trigger states. */ +#define FSL_FEATURE_PORT_HAS_IRQC_TRIGGER (0) + +/* RCM module features */ + +/* @brief Has Loss-of-Lock Reset support. */ +#define FSL_FEATURE_RCM_HAS_LOL (1) +/* @brief Has Loss-of-Clock Reset support. */ +#define FSL_FEATURE_RCM_HAS_LOC (1) +/* @brief Has JTAG generated Reset support. */ +#define FSL_FEATURE_RCM_HAS_JTAG (1) +/* @brief Has EzPort generated Reset support. */ +#define FSL_FEATURE_RCM_HAS_EZPORT (1) +/* @brief Has bit-field indicating EZP_MS_B pin state during last reset. */ +#define FSL_FEATURE_RCM_HAS_EZPMS (1) +/* @brief Has boot ROM configuration, MR[BOOTROM], FM[FORCEROM] */ +#define FSL_FEATURE_RCM_HAS_BOOTROM (0) +/* @brief Has sticky system reset status register RCM_SSRS0 and RCM_SSRS1. */ +#define FSL_FEATURE_RCM_HAS_SSRS (0) +/* @brief Has Version ID Register (RCM_VERID). */ +#define FSL_FEATURE_RCM_HAS_VERID (0) +/* @brief Has Parameter Register (RCM_PARAM). */ +#define FSL_FEATURE_RCM_HAS_PARAM (0) +/* @brief Has Reset Interrupt Enable Register RCM_SRIE. */ +#define FSL_FEATURE_RCM_HAS_SRIE (0) +/* @brief Width of registers of the RCM. */ +#define FSL_FEATURE_RCM_REG_WIDTH (8) +/* @brief Has Core 1 generated Reset support RCM_SRS[CORE1] */ +#define FSL_FEATURE_RCM_HAS_CORE1 (0) +/* @brief Has MDM-AP system reset support RCM_SRS1[MDM_AP] */ +#define FSL_FEATURE_RCM_HAS_MDM_AP (1) +/* @brief Has wakeup reset feature. Register bit SRS[WAKEUP]. */ +#define FSL_FEATURE_RCM_HAS_WAKEUP (1) + +/* RTC module features */ + +#if defined(CPU_MK64FN1M0CAJ12) || defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FN1M0VLQ12) || \ + defined(CPU_MK64FX512VDC12) || defined(CPU_MK64FX512VLL12) || defined(CPU_MK64FX512VLQ12) + /* @brief Has wakeup pin. */ + #define FSL_FEATURE_RTC_HAS_WAKEUP_PIN (1) + /* @brief Has wakeup pin selection (bit field CR[WPS]). */ + #define FSL_FEATURE_RTC_HAS_WAKEUP_PIN_SELECTION (1) + /* @brief Has low power features (registers MER, MCLR and MCHR). */ + #define FSL_FEATURE_RTC_HAS_MONOTONIC (0) + /* @brief Has read/write access control (registers WAR and RAR). */ + #define FSL_FEATURE_RTC_HAS_ACCESS_CONTROL (1) + /* @brief Has security features (registers TTSR, MER, MCLR and MCHR). */ + #define FSL_FEATURE_RTC_HAS_SECURITY (1) + /* @brief Has RTC_CLKIN available. */ + #define FSL_FEATURE_RTC_HAS_RTC_CLKIN (0) + /* @brief Has prescaler adjust for LPO. */ + #define FSL_FEATURE_RTC_HAS_LPO_ADJUST (0) + /* @brief Has Clock Pin Enable field. */ + #define FSL_FEATURE_RTC_HAS_CPE (0) + /* @brief Has Timer Seconds Interrupt Configuration field. */ + #define FSL_FEATURE_RTC_HAS_TSIC (0) + /* @brief Has OSC capacitor setting RTC_CR[SC2P ~ SC16P] */ + #define FSL_FEATURE_RTC_HAS_OSC_SCXP (1) +#elif defined(CPU_MK64FN1M0VMD12) || defined(CPU_MK64FX512VMD12) + /* @brief Has wakeup pin. */ + #define FSL_FEATURE_RTC_HAS_WAKEUP_PIN (1) + /* @brief Has wakeup pin selection (bit field CR[WPS]). */ + #define FSL_FEATURE_RTC_HAS_WAKEUP_PIN_SELECTION (1) + /* @brief Has low power features (registers MER, MCLR and MCHR). */ + #define FSL_FEATURE_RTC_HAS_MONOTONIC (0) + /* @brief Has read/write access control (registers WAR and RAR). */ + #define FSL_FEATURE_RTC_HAS_ACCESS_CONTROL (1) + /* @brief Has security features (registers TTSR, MER, MCLR and MCHR). */ + #define FSL_FEATURE_RTC_HAS_SECURITY (0) + /* @brief Has RTC_CLKIN available. */ + #define FSL_FEATURE_RTC_HAS_RTC_CLKIN (0) + /* @brief Has prescaler adjust for LPO. */ + #define FSL_FEATURE_RTC_HAS_LPO_ADJUST (0) + /* @brief Has Clock Pin Enable field. */ + #define FSL_FEATURE_RTC_HAS_CPE (0) + /* @brief Has Timer Seconds Interrupt Configuration field. */ + #define FSL_FEATURE_RTC_HAS_TSIC (0) + /* @brief Has OSC capacitor setting RTC_CR[SC2P ~ SC16P] */ + #define FSL_FEATURE_RTC_HAS_OSC_SCXP (1) +#endif /* defined(CPU_MK64FN1M0CAJ12) || defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FN1M0VLQ12) || \ + defined(CPU_MK64FX512VDC12) || defined(CPU_MK64FX512VLL12) || defined(CPU_MK64FX512VLQ12) */ + +/* SDHC module features */ + +/* @brief Has external DMA support (register bit VENDOR[EXTDMAEN]). */ +#define FSL_FEATURE_SDHC_HAS_EXTERNAL_DMA_SUPPORT (1) +/* @brief Has support of 3.0V voltage (register bit HTCAPBLT[VS30]). */ +#define FSL_FEATURE_SDHC_HAS_V300_SUPPORT (0) +/* @brief Has support of 1.8V voltage (register bit HTCAPBLT[VS18]). */ +#define FSL_FEATURE_SDHC_HAS_V180_SUPPORT (0) + +/* SIM module features */ + +/* @brief Has USB FS divider. */ +#define FSL_FEATURE_SIM_USBFS_USE_SPECIAL_DIVIDER (0) +/* @brief Is PLL clock divided by 2 before MCG PLL/FLL clock selection. */ +#define FSL_FEATURE_SIM_PLLCLK_USE_SPECIAL_DIVIDER (0) +/* @brief Has RAM size specification (register bit field SOPT1[RAMSIZE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_RAMSIZE (1) +/* @brief Has 32k oscillator clock output (register bit SOPT1[OSC32KOUT]). */ +#define FSL_FEATURE_SIM_OPT_HAS_OSC32K_OUT (0) +/* @brief Has 32k oscillator clock selection (register bit field SOPT1[OSC32KSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_OSC32K_SELECTION (1) +/* @brief 32k oscillator clock selection width (width of register bit field SOPT1[OSC32KSEL]). */ +#define FSL_FEATURE_SIM_OPT_OSC32K_SELECTION_WIDTH (2) +/* @brief Has RTC clock output selection (register bit SOPT2[RTCCLKOUTSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_RTC_CLOCK_OUT_SELECTION (1) +/* @brief Has USB voltage regulator (register bits SOPT1[USBVSTBY], SOPT1[USBSSTBY], SOPT1[USBREGEN], SOPT1CFG[URWE], SOPT1CFG[UVSWE], SOPT1CFG[USSWE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_USB_VOLTAGE_REGULATOR (1) +/* @brief USB has integrated PHY (register bits USBPHYCTL[USBVREGSEL], USBPHYCTL[USBVREGPD], USBPHYCTL[USB3VOUTTRG], USBPHYCTL[USBDISILIM], SOPT2[USBSLSRC], SOPT2[USBREGEN]). */ +#define FSL_FEATURE_SIM_OPT_HAS_USB_PHY (0) +/* @brief Has PTD7 pad drive strength control (register bit SOPT2[PTD7PAD]). */ +#define FSL_FEATURE_SIM_OPT_HAS_PTD7PAD (1) +/* @brief Has FlexBus security level selection (register bit SOPT2[FBSL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_FBSL (1) +/* @brief Has number of FlexBus hold cycle before FlexBus can release bus (register bit SOPT6[PCR]). */ +#define FSL_FEATURE_SIM_OPT_HAS_PCR (0) +/* @brief Has number of NFC hold cycle in case of FlexBus request (register bit SOPT6[MCC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_MCC (0) +/* @brief Has UART open drain enable (register bits UARTnODE, where n is a number, in register SOPT5). */ +#define FSL_FEATURE_SIM_OPT_HAS_ODE (0) +/* @brief Number of LPUART modules (number of register bits LPUARTn, where n is a number, in register SCGC5). */ +#define FSL_FEATURE_SIM_OPT_LPUART_COUNT (0) +/* @brief Number of UART modules (number of register bits UARTn, where n is a number, in register SCGC4). */ +#define FSL_FEATURE_SIM_OPT_UART_COUNT (4) +/* @brief Has UART0 open drain enable (register bit SOPT5[UART0ODE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART0_ODE (0) +/* @brief Has UART1 open drain enable (register bit SOPT5[UART1ODE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART1_ODE (0) +/* @brief Has UART2 open drain enable (register bit SOPT5[UART2ODE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART2_ODE (0) +/* @brief Has LPUART0 open drain enable (register bit SOPT5[LPUART0ODE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_ODE (0) +/* @brief Has LPUART1 open drain enable (register bit SOPT5[LPUART1ODE]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_ODE (0) +/* @brief Has CMT/UART pad drive strength control (register bit SOPT2[CMTUARTPAD]). */ +#define FSL_FEATURE_SIM_OPT_HAS_CMTUARTPAD (0) +/* @brief Has LPUART0 transmit data source selection (register bit SOPT5[LPUART0TXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_TX_SRC (0) +/* @brief Has LPUART0 receive data source selection (register bit SOPT5[LPUART0RXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_RX_SRC (0) +/* @brief Has LPUART1 transmit data source selection (register bit SOPT5[LPUART1TXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_TX_SRC (0) +/* @brief Has LPUART1 receive data source selection (register bit SOPT5[LPUART1RXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_RX_SRC (0) +/* @brief Has UART0 transmit data source selection (register bit SOPT5[UART0TXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART0_TX_SRC (1) +/* @brief UART0 transmit data source selection width (width of register bit SOPT5[UART0TXSRC]). */ +#define FSL_FEATURE_SIM_OPT_UART0_TX_SRC_WIDTH (2) +/* @brief Has UART0 receive data source selection (register bit SOPT5[UART0RXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART0_RX_SRC (1) +/* @brief UART0 receive data source selection width (width of register bit SOPT5[UART0RXSRC]). */ +#define FSL_FEATURE_SIM_OPT_UART0_RX_SRC_WIDTH (2) +/* @brief Has UART1 transmit data source selection (register bit SOPT5[UART1TXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART1_TX_SRC (1) +/* @brief Has UART1 receive data source selection (register bit SOPT5[UART1RXSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART1_RX_SRC (1) +/* @brief UART1 receive data source selection width (width of register bit SOPT5[UART1RXSRC]). */ +#define FSL_FEATURE_SIM_OPT_UART1_RX_SRC_WIDTH (2) +/* @brief Has FTM module(s) configuration. */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM (1) +/* @brief Number of FTM modules. */ +#define FSL_FEATURE_SIM_OPT_FTM_COUNT (4) +/* @brief Number of FTM triggers with selectable source. */ +#define FSL_FEATURE_SIM_OPT_FTM_TRIGGER_COUNT (2) +/* @brief Has FTM0 triggers source selection (register bits SOPT4[FTM0TRGnSRC], where n is a number). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM0_TRIGGER (1) +/* @brief Has FTM3 triggers source selection (register bits SOPT4[FTM3TRGnSRC], where n is a number). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM3_TRIGGER (1) +/* @brief Has FTM1 channel 0 input capture source selection (register bit SOPT4[FTM1CH0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM1_CHANNELS (1) +/* @brief Has FTM2 channel 0 input capture source selection (register bit SOPT4[FTM2CH0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM2_CHANNELS (1) +/* @brief Has FTM3 channel 0 input capture source selection (register bit SOPT4[FTM3CH0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM3_CHANNELS (0) +/* @brief Has FTM2 channel 1 input capture source selection (register bit SOPT4[FTM2CH1SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM2_CHANNEL1 (0) +/* @brief Number of configurable FTM0 fault detection input (number of register bits SOPT4[FTM0FLTn], where n is a number starting from zero). */ +#define FSL_FEATURE_SIM_OPT_FTM0_FAULT_COUNT (3) +/* @brief Number of configurable FTM1 fault detection input (number of register bits SOPT4[FTM1FLTn], where n is a number starting from zero). */ +#define FSL_FEATURE_SIM_OPT_FTM1_FAULT_COUNT (1) +/* @brief Number of configurable FTM2 fault detection input (number of register bits SOPT4[FTM2FLTn], where n is a number starting from zero). */ +#define FSL_FEATURE_SIM_OPT_FTM2_FAULT_COUNT (1) +/* @brief Number of configurable FTM3 fault detection input (number of register bits SOPT4[FTM3FLTn], where n is a number starting from zero). */ +#define FSL_FEATURE_SIM_OPT_FTM3_FAULT_COUNT (1) +/* @brief Has FTM hardware trigger 0 software synchronization (register bit SOPT8[FTMnSYNCBIT], where n is a module instance index). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM_TRIGGER_SYNC (0) +/* @brief Has FTM channels output source selection (register bit SOPT8[FTMxOCHnSRC], where x is a module instance index and n is a channel index). */ +#define FSL_FEATURE_SIM_OPT_HAS_FTM_CHANNELS_OUTPUT_SRC (0) +/* @brief Has TPM module(s) configuration. */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM (0) +/* @brief The highest TPM module index. */ +#define FSL_FEATURE_SIM_OPT_MAX_TPM_INDEX (0) +/* @brief Has TPM module with index 0. */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM0 (0) +/* @brief Has TPM0 clock selection (register bit field SOPT4[TPM0CLKSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM0_CLK_SEL (0) +/* @brief Is TPM channels configuration in the SOPT4 (not SOPT9) register (register bits TPMnCH0SRC, TPMnCLKSEL, where n is a module instance index). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM_CHANNELS_CONFIG_IN_SOPT4_REG (0) +/* @brief Has TPM1 channel 0 input capture source selection (register bit field SOPT4[TPM1CH0SRC] or SOPT9[TPM1CH0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM1_CH0_SRC_SELECTION (0) +/* @brief Has TPM1 clock selection (register bit field SOPT4[TPM1CLKSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM1_CLK_SEL (0) +/* @brief TPM1 channel 0 input capture source selection width (width of register bit field SOPT4[TPM1CH0SRC] or SOPT9[TPM1CH0SRC]). */ +#define FSL_FEATURE_SIM_OPT_TPM1_CH0_SRC_SELECTION_WIDTH (0) +/* @brief Has TPM2 channel 0 input capture source selection (register bit field SOPT4[TPM2CH0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM2_CH0_SRC_SELECTION (0) +/* @brief Has TPM2 clock selection (register bit field SOPT4[TPM2CLKSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPM2_CLK_SEL (0) +/* @brief Has PLL/FLL clock selection (register bit field SOPT2[PLLFLLSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_PLL_FLL_SELECTION (1) +/* @brief PLL/FLL clock selection width (width of register bit field SOPT2[PLLFLLSEL]). */ +#define FSL_FEATURE_SIM_OPT_PLL_FLL_SELECTION_WIDTH (1) +/* @brief Has NFC clock source selection (register bit SOPT2[NFCSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_NFCSRC (0) +/* @brief Has eSDHC clock source selection (register bit SOPT2[ESDHCSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_ESDHCSRC (0) +/* @brief Has SDHC clock source selection (register bit SOPT2[SDHCSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_SDHCSRC (1) +/* @brief Has LCDC clock source selection (register bits SOPT2[LCDCSRC], SOPT2[LCDC_CLKSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LCDCSRC (0) +/* @brief Has ENET timestamp clock source selection (register bit SOPT2[TIMESRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TIMESRC (1) +/* @brief Has ENET RMII clock source selection (register bit SOPT2[RMIISRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_RMIISRC (1) +/* @brief Has USB clock source selection (register bit SOPT2[USBSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_USBSRC (1) +/* @brief Has USB FS clock source selection (register bit SOPT2[USBFSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_USBFSRC (0) +/* @brief Has USB HS clock source selection (register bit SOPT2[USBHSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_USBHSRC (0) +/* @brief Has LPUART clock source selection (register bit SOPT2[LPUARTSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUARTSRC (0) +/* @brief Has LPUART0 clock source selection (register bit SOPT2[LPUART0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART0SRC (0) +/* @brief Has LPUART1 clock source selection (register bit SOPT2[LPUART1SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_LPUART1SRC (0) +/* @brief Has FLEXIOSRC clock source selection (register bit SOPT2[FLEXIOSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_FLEXIOSRC (0) +/* @brief Has UART0 clock source selection (register bit SOPT2[UART0SRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_UART0SRC (0) +/* @brief Has TPM clock source selection (register bit SOPT2[TPMSRC]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TPMSRC (0) +/* @brief Has debug trace clock selection (register bit SOPT2[TRACECLKSEL]). */ +#define FSL_FEATURE_SIM_OPT_HAS_TRACE_CLKSEL (1) +/* @brief Number of ADC modules (register bits SOPT7[ADCnTRGSEL], SOPT7[ADCnPRETRGSEL], SOPT7[ADCnALTTRGSEL], where n is a module instance index). */ +#define FSL_FEATURE_SIM_OPT_ADC_COUNT (2) +/* @brief ADC0 alternate trigger enable width (width of bit field ADC0ALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_ADC0ALTTRGEN_WIDTH (1) +/* @brief ADC1 alternate trigger enable width (width of bit field ADC1ALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_ADC1ALTTRGEN_WIDTH (1) +/* @brief ADC2 alternate trigger enable width (width of bit field ADC2ALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_ADC2ALTTRGEN_WIDTH (0) +/* @brief ADC3 alternate trigger enable width (width of bit field ADC3ALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_ADC3ALTTRGEN_WIDTH (0) +/* @brief HSADC0 converter A alternate trigger enable width (width of bit field HSADC0AALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_HSADC0AALTTRGEN_WIDTH (0) +/* @brief HSADC1 converter A alternate trigger enable width (width of bit field HSADC1AALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_HSADC1AALTTRGEN_WIDTH (0) +/* @brief ADC converter A alternate trigger enable width (width of bit field ADCAALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_ADCAALTTRGEN_WIDTH (0) +/* @brief HSADC0 converter B alternate trigger enable width (width of bit field HSADC0BALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_HSADC0BALTTRGEN_WIDTH (0) +/* @brief HSADC1 converter B alternate trigger enable width (width of bit field HSADC1BALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_HSADC1BALTTRGEN_WIDTH (0) +/* @brief ADC converter B alternate trigger enable width (width of bit field ADCBALTTRGEN of register SOPT7). */ +#define FSL_FEATURE_SIM_OPT_ADCBALTTRGEN_WIDTH (0) +/* @brief Has clock 2 output divider (register bit field CLKDIV1[OUTDIV2]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV2 (1) +/* @brief Has clock 3 output divider (register bit field CLKDIV1[OUTDIV3]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV3 (1) +/* @brief Has clock 4 output divider (register bit field CLKDIV1[OUTDIV4]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV4 (1) +/* @brief Clock 4 output divider width (width of register bit field CLKDIV1[OUTDIV4]). */ +#define FSL_FEATURE_SIM_DIVIDER_OUTDIV4_WIDTH (4) +/* @brief Has clock 5 output divider (register bit field CLKDIV1[OUTDIV5]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV5 (0) +/* @brief Has USB clock divider (register bit field CLKDIV2[USBDIV] and CLKDIV2[USBFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_USBDIV (1) +/* @brief Has USB FS clock divider (register bit field CLKDIV2[USBFSDIV] and CLKDIV2[USBFSFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_USBFSDIV (0) +/* @brief Has USB HS clock divider (register bit field CLKDIV2[USBHSDIV] and CLKDIV2[USBHSFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_USBHSDIV (0) +/* @brief Has PLL/FLL clock divider (register bit field CLKDIV3[PLLFLLDIV] and CLKDIV3[PLLFLLFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_PLLFLLDIV (0) +/* @brief Has LCDC clock divider (register bit field CLKDIV3[LCDCDIV] and CLKDIV3[LCDCFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_LCDCDIV (0) +/* @brief Has trace clock divider (register bit field CLKDIV4[TRACEDIV] and CLKDIV4[TRACEFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_TRACEDIV (0) +/* @brief Has NFC clock divider (register bit field CLKDIV4[NFCDIV] and CLKDIV4[NFCFRAC]). */ +#define FSL_FEATURE_SIM_DIVIDER_HAS_NFCDIV (0) +/* @brief Has Kinetis family ID (register bit field SDID[FAMILYID]). */ +#define FSL_FEATURE_SIM_SDID_HAS_FAMILYID (1) +/* @brief Has Kinetis family ID (register bit field SDID[FAMID]). */ +#define FSL_FEATURE_SIM_SDID_HAS_FAMID (1) +/* @brief Has Kinetis sub-family ID (register bit field SDID[SUBFAMID]). */ +#define FSL_FEATURE_SIM_SDID_HAS_SUBFAMID (1) +/* @brief Has Kinetis series ID (register bit field SDID[SERIESID]). */ +#define FSL_FEATURE_SIM_SDID_HAS_SERIESID (1) +/* @brief Has device die ID (register bit field SDID[DIEID]). */ +#define FSL_FEATURE_SIM_SDID_HAS_DIEID (1) +/* @brief Has system SRAM size specifier (register bit field SDID[SRAMSIZE]). */ +#define FSL_FEATURE_SIM_SDID_HAS_SRAMSIZE (0) +/* @brief Has flash mode (register bit FCFG1[FLASHDOZE]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_FLASHDOZE (1) +/* @brief Has flash disable (register bit FCFG1[FLASHDIS]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_FLASHDIS (1) +/* @brief Has FTFE disable (register bit FCFG1[FTFDIS]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_FTFDIS (0) +/* @brief Has FlexNVM size specifier (register bit field FCFG1[NVMSIZE]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_NVMSIZE (1) +/* @brief Has EEPROM size specifier (register bit field FCFG1[EESIZE]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_EESIZE (1) +/* @brief Has FlexNVM partition (register bit field FCFG1[DEPART]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_DEPART (1) +/* @brief Maximum flash address block 0 address specifier (register bit field FCFG2[MAXADDR0]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR0 (1) +/* @brief Maximum flash address block 1 address specifier (register bit field FCFG2[MAXADDR1]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR1 (1) +/* @brief Maximum flash address block 0 or 1 address specifier (register bit field FCFG2[MAXADDR01]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR01 (0) +/* @brief Maximum flash address block 2 or 3 address specifier (register bit field FCFG2[MAXADDR23]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR23 (0) +/* @brief Has program flash availability specifier (register bit FCFG2[PFLSH]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_PFLSH (1) +/* @brief Has program flash swapping (register bit FCFG2[SWAPPFLSH]). */ +#define FSL_FEATURE_SIM_FCFG_HAS_PFLSH_SWAP (0) +/* @brief Has miscellanious control register (register MCR). */ +#define FSL_FEATURE_SIM_HAS_MISC_CONTROLS (0) +/* @brief Has COP watchdog (registers COPC and SRVCOP). */ +#define FSL_FEATURE_SIM_HAS_COP_WATCHDOG (0) +/* @brief Has COP watchdog stop (register bits COPC[COPSTPEN], COPC[COPDBGEN] and COPC[COPCLKSEL]). */ +#define FSL_FEATURE_SIM_HAS_COP_STOP (0) +/* @brief Has LLWU clock gate bit (e.g SIM_SCGC4). */ +#define FSL_FEATURE_SIM_HAS_SCGC_LLWU (0) + +/* SMC module features */ + +/* @brief Has partial stop option (register bit STOPCTRL[PSTOPO]). */ +#define FSL_FEATURE_SMC_HAS_PSTOPO (0) +/* @brief Has LPO power option (register bit STOPCTRL[LPOPO]). */ +#define FSL_FEATURE_SMC_HAS_LPOPO (0) +/* @brief Has POR power option (register bit STOPCTRL[PORPO] or VLLSCTRL[PORPO]). */ +#define FSL_FEATURE_SMC_HAS_PORPO (1) +/* @brief Has low power wakeup on interrupt (register bit PMCTRL[LPWUI]). */ +#define FSL_FEATURE_SMC_HAS_LPWUI (1) +/* @brief Has LLS or VLLS mode control (register bit STOPCTRL[LLSM]). */ +#define FSL_FEATURE_SMC_HAS_LLS_SUBMODE (0) +/* @brief Has VLLS mode control (register bit VLLSCTRL[VLLSM]). */ +#define FSL_FEATURE_SMC_USE_VLLSCTRL_REG (1) +/* @brief Has VLLS mode control (register bit STOPCTRL[VLLSM]). */ +#define FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM (0) +/* @brief Has RAM partition 2 power option (register bit STOPCTRL[RAM2PO]). */ +#define FSL_FEATURE_SMC_HAS_RAM2_POWER_OPTION (0) +/* @brief Has high speed run mode (register bit PMPROT[AHSRUN]). */ +#define FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE (0) +/* @brief Has low leakage stop mode (register bit PMPROT[ALLS]). */ +#define FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE (1) +/* @brief Has very low leakage stop mode (register bit PMPROT[AVLLS]). */ +#define FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE (1) +/* @brief Has stop submode. */ +#define FSL_FEATURE_SMC_HAS_SUB_STOP_MODE (1) +/* @brief Has stop submode 0(VLLS0). */ +#define FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 (1) +/* @brief Has stop submode 2(VLLS2). */ +#define FSL_FEATURE_SMC_HAS_STOP_SUBMODE2 (1) +/* @brief Has SMC_PARAM. */ +#define FSL_FEATURE_SMC_HAS_PARAM (0) +/* @brief Has SMC_VERID. */ +#define FSL_FEATURE_SMC_HAS_VERID (0) + +/* DSPI module features */ + +/* @brief Receive/transmit FIFO size in number of items. */ +#define FSL_FEATURE_DSPI_FIFO_SIZEn(x) \ + ((x) == DSPI0 ? (4) : \ + ((x) == DSPI1 ? (1) : \ + ((x) == DSPI2 ? (1) : (-1)))) +/* @brief Maximum transfer data width in bits. */ +#define FSL_FEATURE_DSPI_MAX_DATA_WIDTH (16) +/* @brief Maximum number of chip select pins. (Reflects the width of register bit field PUSHR[PCS].) */ +#define FSL_FEATURE_DSPI_MAX_CHIP_SELECT_COUNT (6) +/* @brief Number of chip select pins. */ +#define FSL_FEATURE_DSPI_CHIP_SELECT_COUNT (6) +/* @brief Has chip select strobe capability on the PCS5 pin. */ +#define FSL_FEATURE_DSPI_HAS_CHIP_SELECT_STROBE (1) +/* @brief Has separated TXDATA and CMD FIFOs (register SREX). */ +#define FSL_FEATURE_DSPI_HAS_SEPARATE_TXDATA_CMD_FIFO (0) +/* @brief Has 16-bit data transfer support. */ +#define FSL_FEATURE_DSPI_16BIT_TRANSFERS (1) +/* @brief Has separate DMA RX and TX requests. */ +#define FSL_FEATURE_DSPI_HAS_SEPARATE_DMA_RX_TX_REQn(x) \ + ((x) == DSPI0 ? (1) : \ + ((x) == DSPI1 ? (0) : \ + ((x) == DSPI2 ? (0) : (-1)))) + +/* SysTick module features */ + +/* @brief Systick has external reference clock. */ +#define FSL_FEATURE_SYSTICK_HAS_EXT_REF (0) +/* @brief Systick external reference clock is core clock divided by this value. */ +#define FSL_FEATURE_SYSTICK_EXT_REF_CORE_DIV (0) + +/* UART module features */ + +/* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */ +#define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1) +/* @brief Has low power features (can be enabled in wait mode via register bit C1[DOZEEN] or CTRL[DOZEEN] if the registers are 32-bit wide). */ +#define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0) +/* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */ +#define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1) +/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */ +#define FSL_FEATURE_UART_HAS_FIFO (1) +/* @brief Hardware flow control (RTS, CTS) is supported. */ +#define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1) +/* @brief Infrared (modulation) is supported. */ +#define FSL_FEATURE_UART_HAS_IR_SUPPORT (1) +/* @brief 2 bits long stop bit is available. */ +#define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1) +/* @brief If 10-bit mode is supported. */ +#define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (1) +/* @brief Baud rate fine adjustment is available. */ +#define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1) +/* @brief Baud rate oversampling is available (has bit fields C4[OSR], C5[BOTHEDGE], C5[RESYNCDIS] or BAUD[OSR], BAUD[BOTHEDGE], BAUD[RESYNCDIS] if the registers are 32-bit wide). */ +#define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0) +/* @brief Baud rate oversampling is available. */ +#define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0) +/* @brief Baud rate oversampling is available. */ +#define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0) +/* @brief Peripheral type. */ +#define FSL_FEATURE_UART_IS_SCI (0) +/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */ +#define FSL_FEATURE_UART_FIFO_SIZEn(x) \ + ((x) == UART0 ? (8) : \ + ((x) == UART1 ? (8) : \ + ((x) == UART2 ? (1) : \ + ((x) == UART3 ? (1) : \ + ((x) == UART4 ? (1) : \ + ((x) == UART5 ? (1) : (-1))))))) +/* @brief Maximal data width without parity bit. */ +#define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9) +/* @brief Maximal data width with parity bit. */ +#define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10) +/* @brief Supports two match addresses to filter incoming frames. */ +#define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1) +/* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */ +#define FSL_FEATURE_UART_HAS_DMA_ENABLE (0) +/* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */ +#define FSL_FEATURE_UART_HAS_DMA_SELECT (1) +/* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */ +#define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1) +/* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */ +#define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1) +/* @brief Has improved smart card (ISO7816 protocol) support. */ +#define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0) +/* @brief Has local operation network (CEA709.1-B protocol) support. */ +#define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0) +/* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */ +#define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0) +/* @brief Lin break detect available (has bit BDH[LBKDIE]). */ +#define FSL_FEATURE_UART_HAS_LIN_BREAK_DETECT (1) +/* @brief UART stops in Wait mode available (has bit C1[UARTSWAI]). */ +#define FSL_FEATURE_UART_HAS_WAIT_MODE_OPERATION (1) +/* @brief Has separate DMA RX and TX requests. */ +#define FSL_FEATURE_UART_HAS_SEPARATE_DMA_RX_TX_REQn(x) \ + ((x) == UART0 ? (1) : \ + ((x) == UART1 ? (1) : \ + ((x) == UART2 ? (1) : \ + ((x) == UART3 ? (1) : \ + ((x) == UART4 ? (0) : \ + ((x) == UART5 ? (0) : (-1))))))) + +/* USB module features */ + +/* @brief HOST mode enabled */ +#define FSL_FEATURE_USB_KHCI_HOST_ENABLED (1) +/* @brief OTG mode enabled */ +#define FSL_FEATURE_USB_KHCI_OTG_ENABLED (1) +/* @brief Size of the USB dedicated RAM */ +#define FSL_FEATURE_USB_KHCI_USB_RAM (0) +/* @brief Has KEEP_ALIVE_CTRL register */ +#define FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED (0) +/* @brief Has the Dynamic SOF threshold compare support */ +#define FSL_FEATURE_USB_KHCI_DYNAMIC_SOF_THRESHOLD_COMPARE_ENABLED (0) +/* @brief Has the VBUS detect support */ +#define FSL_FEATURE_USB_KHCI_VBUS_DETECT_ENABLED (0) +/* @brief Has the IRC48M module clock support */ +#define FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED (1) +/* @brief Number of endpoints supported */ +#define FSL_FEATURE_USB_ENDPT_COUNT (16) + +/* VREF module features */ + +/* @brief Has chop oscillator (bit TRM[CHOPEN]) */ +#define FSL_FEATURE_VREF_HAS_CHOP_OSC (1) +/* @brief Has second order curvature compensation (bit SC[ICOMPEN]) */ +#define FSL_FEATURE_VREF_HAS_COMPENSATION (1) +/* @brief If high/low buffer mode supported */ +#define FSL_FEATURE_VREF_MODE_LV_TYPE (1) +/* @brief Module has also low reference (registers VREFL/VREFH) */ +#define FSL_FEATURE_VREF_HAS_LOW_REFERENCE (0) +/* @brief Has VREF_TRM4. */ +#define FSL_FEATURE_VREF_HAS_TRM4 (0) + +/* WDOG module features */ + +/* @brief Watchdog is available. */ +#define FSL_FEATURE_WDOG_HAS_WATCHDOG (1) +/* @brief Has Wait mode support. */ +#define FSL_FEATURE_WDOG_HAS_WAITEN (1) + +#endif /* _MK64F12_FEATURES_H_ */ + diff --git a/ext/hal/ksdk/devices/MK64F12/clock_config.c b/ext/hal/ksdk/devices/MK64F12/clock_config.c new file mode 100644 index 00000000000..113e48cd456 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/clock_config.c @@ -0,0 +1,196 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o 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. + * + * o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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. + */ + +#include "fsl_common.h" +#include "fsl_smc.h" +#include "clock_config.h" + +/******************************************************************************* + * Definitions + ******************************************************************************/ +/*! @brief Clock configuration structure. */ +typedef struct _clock_config +{ + mcg_config_t mcgConfig; /*!< MCG configuration. */ + sim_clock_config_t simConfig; /*!< SIM configuration. */ + osc_config_t oscConfig; /*!< OSC configuration. */ + uint32_t coreClock; /*!< core clock frequency. */ +} clock_config_t; + +/******************************************************************************* + * Variables + ******************************************************************************/ +/* System clock frequency. */ +extern uint32_t SystemCoreClock; + +/* Configuration for enter VLPR mode. Core clock = 4MHz. */ +const clock_config_t g_defaultClockConfigVlpr = { + .mcgConfig = + { + .mcgMode = kMCG_ModeBLPI, /* Work in BLPI mode. */ + .irclkEnableMode = kMCG_IrclkEnable, /* MCGIRCLK enable. */ + .ircs = kMCG_IrcFast, /* Select IRC4M. */ + .fcrdiv = 0U, /* FCRDIV is 0. */ + + .frdiv = 0U, + .drs = kMCG_DrsLow, /* Low frequency range. */ + .dmx32 = kMCG_Dmx32Default, /* DCO has a default range of 25%. */ + .oscsel = kMCG_OscselOsc, /* Select OSC. */ + + .pll0Config = + { + .enableMode = 0U, /* Don't eanble PLL. */ + .prdiv = 0U, + .vdiv = 0U, + }, + }, + .simConfig = + { + .pllFllSel = 3U, /* PLLFLLSEL select IRC48MCLK. */ + .er32kSrc = 2U, /* ERCLK32K selection, use RTC. */ + .clkdiv1 = 0x00040000U, /* SIM_CLKDIV1. */ + }, + .oscConfig = {.freq = BOARD_XTAL0_CLK_HZ, + .capLoad = 0, + .workMode = kOSC_ModeExt, + .oscerConfig = + { + .enableMode = kOSC_ErClkEnable, +#if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) + .erclkDiv = 0U, +#endif + }}, + .coreClock = 4000000U, /* Core clock frequency */ +}; + +/* Configuration for enter RUN mode. Core clock = 120MHz. */ +const clock_config_t g_defaultClockConfigRun = { + .mcgConfig = + { + .mcgMode = kMCG_ModePEE, /* Work in PEE mode. */ + .irclkEnableMode = kMCG_IrclkEnable, /* MCGIRCLK enable. */ + .ircs = kMCG_IrcSlow, /* Select IRC32k. */ + .fcrdiv = 0U, /* FCRDIV is 0. */ + + .frdiv = 7U, + .drs = kMCG_DrsLow, /* Low frequency range. */ + .dmx32 = kMCG_Dmx32Default, /* DCO has a default range of 25%. */ + .oscsel = kMCG_OscselOsc, /* Select OSC. */ + + .pll0Config = + { + .enableMode = 0U, .prdiv = 0x13U, .vdiv = 0x18U, + }, + }, + .simConfig = + { + .pllFllSel = 1U, /* PLLFLLSEL select PLL. */ + .er32kSrc = 2U, /* ERCLK32K selection, use RTC. */ + .clkdiv1 = 0x01140000U, /* SIM_CLKDIV1. */ + }, + .oscConfig = {.freq = BOARD_XTAL0_CLK_HZ, + .capLoad = 0, + .workMode = kOSC_ModeExt, + .oscerConfig = + { + .enableMode = kOSC_ErClkEnable, +#if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) + .erclkDiv = 0U, +#endif + }}, + .coreClock = 120000000U, /* Core clock frequency */ +}; + +/******************************************************************************* + * Code + ******************************************************************************/ +/* + * How to setup clock using clock driver functions: + * + * 1. CLOCK_SetSimSafeDivs, to make sure core clock, bus clock, flexbus clock + * and flash clock are in allowed range during clock mode switch. + * + * 2. Call CLOCK_Osc0Init to setup OSC clock, if it is used in target mode. + * + * 3. Set MCG configuration, MCG includes three parts: FLL clock, PLL clock and + * internal reference clock(MCGIRCLK). Follow the steps to setup: + * + * 1). Call CLOCK_BootToXxxMode to set MCG to target mode. + * + * 2). If target mode is FBI/BLPI/PBI mode, the MCGIRCLK has been configured + * correctly. For other modes, need to call CLOCK_SetInternalRefClkConfig + * explicitly to setup MCGIRCLK. + * + * 3). Don't need to configure FLL explicitly, because if target mode is FLL + * mode, then FLL has been configured by the function CLOCK_BootToXxxMode, + * if the target mode is not FLL mode, the FLL is disabled. + * + * 4). If target mode is PEE/PBE/PEI/PBI mode, then the related PLL has been + * setup by CLOCK_BootToXxxMode. In FBE/FBI/FEE/FBE mode, the PLL could + * be enabled independently, call CLOCK_EnablePll0 explicitly in this case. + * + * 4. Call CLOCK_SetSimConfig to set the clock configuration in SIM. + */ + +void BOARD_BootClockVLPR(void) +{ + CLOCK_SetSimSafeDivs(); + + CLOCK_BootToBlpiMode(g_defaultClockConfigVlpr.mcgConfig.fcrdiv, g_defaultClockConfigVlpr.mcgConfig.ircs, + g_defaultClockConfigVlpr.mcgConfig.irclkEnableMode); + + CLOCK_SetSimConfig(&g_defaultClockConfigVlpr.simConfig); + + SystemCoreClock = g_defaultClockConfigVlpr.coreClock; + + SMC_SetPowerModeProtection(SMC, kSMC_AllowPowerModeAll); + SMC_SetPowerModeVlpr(SMC, false); + while (SMC_GetPowerModeState(SMC) != kSMC_PowerStateVlpr) + { + } +} + +void BOARD_BootClockRUN(void) +{ + CLOCK_SetSimSafeDivs(); + + CLOCK_InitOsc0(&g_defaultClockConfigRun.oscConfig); + CLOCK_SetXtal0Freq(BOARD_XTAL0_CLK_HZ); + + CLOCK_BootToPeeMode(g_defaultClockConfigRun.mcgConfig.oscsel, kMCG_PllClkSelPll0, + &g_defaultClockConfigRun.mcgConfig.pll0Config); + + CLOCK_SetInternalRefClkConfig(g_defaultClockConfigRun.mcgConfig.irclkEnableMode, + g_defaultClockConfigRun.mcgConfig.ircs, g_defaultClockConfigRun.mcgConfig.fcrdiv); + + CLOCK_SetSimConfig(&g_defaultClockConfigRun.simConfig); + + SystemCoreClock = g_defaultClockConfigRun.coreClock; +} diff --git a/ext/hal/ksdk/devices/MK64F12/clock_config.h b/ext/hal/ksdk/devices/MK64F12/clock_config.h new file mode 100644 index 00000000000..050c3ab79b0 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/clock_config.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o 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. + * + * o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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 _CLOCK_CONFIG_H_ +#define _CLOCK_CONFIG_H_ + +/******************************************************************************* + * DEFINITION + ******************************************************************************/ +#define BOARD_XTAL0_CLK_HZ 50000000U +#define BOARD_XTAL32K_CLK_HZ 32768U + +/******************************************************************************* + * API + ******************************************************************************/ +#if defined(__cplusplus) +extern "C" { +#endif /* __cplusplus*/ + +void BOARD_BootClockVLPR(void); +void BOARD_BootClockRUN(void); + +#if defined(__cplusplus) +} +#endif /* __cplusplus*/ + +#endif /* _CLOCK_CONFIG_H_ */ diff --git a/ext/hal/ksdk/devices/MK64F12/fsl_clock.c b/ext/hal/ksdk/devices/MK64F12/fsl_clock.c new file mode 100644 index 00000000000..7e5f05aff36 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/fsl_clock.c @@ -0,0 +1,1760 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o 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. + * + * o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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. + */ + +#include "fsl_common.h" +#include "fsl_clock.h" + +/******************************************************************************* + * Definitions + ******************************************************************************/ + +/* Macro definition remap workaround. */ +#if (defined(MCG_C2_EREFS_MASK) && !(defined(MCG_C2_EREFS0_MASK))) +#define MCG_C2_EREFS0_MASK MCG_C2_EREFS_MASK +#endif +#if (defined(MCG_C2_HGO_MASK) && !(defined(MCG_C2_HGO0_MASK))) +#define MCG_C2_HGO0_MASK MCG_C2_HGO_MASK +#endif +#if (defined(MCG_C2_RANGE_MASK) && !(defined(MCG_C2_RANGE0_MASK))) +#define MCG_C2_RANGE0_MASK MCG_C2_RANGE_MASK +#endif +#if (defined(MCG_C6_CME_MASK) && !(defined(MCG_C6_CME0_MASK))) +#define MCG_C6_CME0_MASK MCG_C6_CME_MASK +#endif + +/* PLL fixed multiplier when there is not PRDIV and VDIV. */ +#define PLL_FIXED_MULT (375U) +/* Max frequency of the reference clock used for internal clock trim. */ +#define TRIM_REF_CLK_MIN (8000000U) +/* Min frequency of the reference clock used for internal clock trim. */ +#define TRIM_REF_CLK_MAX (16000000U) +/* Max trim value of fast internal reference clock. */ +#define TRIM_FIRC_MAX (5000000U) +/* Min trim value of fast internal reference clock. */ +#define TRIM_FIRC_MIN (3000000U) +/* Max trim value of fast internal reference clock. */ +#define TRIM_SIRC_MAX (39063U) +/* Min trim value of fast internal reference clock. */ +#define TRIM_SIRC_MIN (31250U) + +#define MCG_S_IRCST_VAL ((MCG->S & MCG_S_IRCST_MASK) >> MCG_S_IRCST_SHIFT) +#define MCG_S_CLKST_VAL ((MCG->S & MCG_S_CLKST_MASK) >> MCG_S_CLKST_SHIFT) +#define MCG_S_IREFST_VAL ((MCG->S & MCG_S_IREFST_MASK) >> MCG_S_IREFST_SHIFT) +#define MCG_S_PLLST_VAL ((MCG->S & MCG_S_PLLST_MASK) >> MCG_S_PLLST_SHIFT) +#define MCG_C1_FRDIV_VAL ((MCG->C1 & MCG_C1_FRDIV_MASK) >> MCG_C1_FRDIV_SHIFT) +#define MCG_C2_LP_VAL ((MCG->C2 & MCG_C2_LP_MASK) >> MCG_C2_LP_SHIFT) +#define MCG_C2_RANGE_VAL ((MCG->C2 & MCG_C2_RANGE_MASK) >> MCG_C2_RANGE_SHIFT) +#define MCG_SC_FCRDIV_VAL ((MCG->SC & MCG_SC_FCRDIV_MASK) >> MCG_SC_FCRDIV_SHIFT) +#define MCG_S2_PLLCST_VAL ((MCG->S2 & MCG_S2_PLLCST_MASK) >> MCG_S2_PLLCST_SHIFT) +#define MCG_C7_OSCSEL_VAL ((MCG->C7 & MCG_C7_OSCSEL_MASK) >> MCG_C7_OSCSEL_SHIFT) +#define MCG_C4_DMX32_VAL ((MCG->C4 & MCG_C4_DMX32_MASK) >> MCG_C4_DMX32_SHIFT) +#define MCG_C4_DRST_DRS_VAL ((MCG->C4 & MCG_C4_DRST_DRS_MASK) >> MCG_C4_DRST_DRS_SHIFT) +#define MCG_C7_PLL32KREFSEL_VAL ((MCG->C7 & MCG_C7_PLL32KREFSEL_MASK) >> MCG_C7_PLL32KREFSEL_SHIFT) +#define MCG_C5_PLLREFSEL0_VAL ((MCG->C5 & MCG_C5_PLLREFSEL0_MASK) >> MCG_C5_PLLREFSEL0_SHIFT) +#define MCG_C11_PLLREFSEL1_VAL ((MCG->C11 & MCG_C11_PLLREFSEL1_MASK) >> MCG_C11_PLLREFSEL1_SHIFT) +#define MCG_C11_PRDIV1_VAL ((MCG->C11 & MCG_C11_PRDIV1_MASK) >> MCG_C11_PRDIV1_SHIFT) +#define MCG_C12_VDIV1_VAL ((MCG->C12 & MCG_C12_VDIV1_MASK) >> MCG_C12_VDIV1_SHIFT) +#define MCG_C5_PRDIV0_VAL ((MCG->C5 & MCG_C5_PRDIV0_MASK) >> MCG_C5_PRDIV0_SHIFT) +#define MCG_C6_VDIV0_VAL ((MCG->C6 & MCG_C6_VDIV0_MASK) >> MCG_C6_VDIV0_SHIFT) + +#define OSC_MODE_MASK (MCG_C2_EREFS0_MASK | MCG_C2_HGO0_MASK | MCG_C2_RANGE0_MASK) + +#define SIM_CLKDIV1_OUTDIV1_VAL ((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV1_MASK) >> SIM_CLKDIV1_OUTDIV1_SHIFT) +#define SIM_CLKDIV1_OUTDIV2_VAL ((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV2_MASK) >> SIM_CLKDIV1_OUTDIV2_SHIFT) +#define SIM_CLKDIV1_OUTDIV3_VAL ((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV3_MASK) >> SIM_CLKDIV1_OUTDIV3_SHIFT) +#define SIM_CLKDIV1_OUTDIV4_VAL ((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV4_MASK) >> SIM_CLKDIV1_OUTDIV4_SHIFT) +#define SIM_SOPT1_OSC32KSEL_VAL ((SIM->SOPT1 & SIM_SOPT1_OSC32KSEL_MASK) >> SIM_SOPT1_OSC32KSEL_SHIFT) +#define SIM_SOPT2_PLLFLLSEL_VAL ((SIM->SOPT2 & SIM_SOPT2_PLLFLLSEL_MASK) >> SIM_SOPT2_PLLFLLSEL_SHIFT) + +/* MCG_S_CLKST definition. */ +enum _mcg_clkout_stat +{ + kMCG_ClkOutStatFll, /* FLL. */ + kMCG_ClkOutStatInt, /* Internal clock. */ + kMCG_ClkOutStatExt, /* External clock. */ + kMCG_ClkOutStatPll /* PLL. */ +}; + +/* MCG_S_PLLST definition. */ +enum _mcg_pllst +{ + kMCG_PllstFll, /* FLL is used. */ + kMCG_PllstPll /* PLL is used. */ +}; + +/******************************************************************************* + * Variables + ******************************************************************************/ + +/* Slow internal reference clock frequency. */ +static uint32_t s_slowIrcFreq = 32768U; +/* Fast internal reference clock frequency. */ +static uint32_t s_fastIrcFreq = 4000000U; + +/* External XTAL0 (OSC0) clock frequency. */ +uint32_t g_xtal0Freq; + +/* External XTAL32K clock frequency. */ +uint32_t g_xtal32Freq; + +/******************************************************************************* + * Prototypes + ******************************************************************************/ + +/*! + * @brief Get the MCG external reference clock frequency. + * + * Get the current MCG external reference clock frequency in Hz. It is + * the frequency select by MCG_C7[OSCSEL]. This is an internal function. + * + * @return MCG external reference clock frequency in Hz. + */ +static uint32_t CLOCK_GetMcgExtClkFreq(void); + +/*! + * @brief Get the MCG FLL external reference clock frequency. + * + * Get the current MCG FLL external reference clock frequency in Hz. It is + * the frequency after by MCG_C1[FRDIV]. This is an internal function. + * + * @return MCG FLL external reference clock frequency in Hz. + */ +static uint32_t CLOCK_GetFllExtRefClkFreq(void); + +/*! + * @brief Get the MCG FLL reference clock frequency. + * + * Get the current MCG FLL reference clock frequency in Hz. It is + * the frequency select by MCG_C1[IREFS]. This is an internal function. + * + * @return MCG FLL reference clock frequency in Hz. + */ +static uint32_t CLOCK_GetFllRefClkFreq(void); + +/*! + * @brief Get the frequency of clock selected by MCG_C2[IRCS]. + * + * This clock's two output: + * 1. MCGOUTCLK when MCG_S[CLKST]=0. + * 2. MCGIRCLK when MCG_C1[IRCLKEN]=1. + * + * @return The frequency in Hz. + */ +static uint32_t CLOCK_GetInternalRefClkSelectFreq(void); + +/*! + * @brief Get the MCG PLL/PLL0 reference clock frequency. + * + * Get the current MCG PLL/PLL0 reference clock frequency in Hz. + * This is an internal function. + * + * @return MCG PLL/PLL0 reference clock frequency in Hz. + */ +static uint32_t CLOCK_GetPll0RefFreq(void); + +/*! + * @brief Calculate the RANGE value base on crystal frequency. + * + * To setup external crystal oscillator, must set the register bits RANGE + * base on the crystal frequency. This function returns the RANGE base on the + * input frequency. This is an internal function. + * + * @param freq Crystal frequency in Hz. + * @return The RANGE value. + */ +static uint8_t CLOCK_GetOscRangeFromFreq(uint32_t freq); + +/*! + * @brief Delay function to wait FLL stable. + * + * Delay function to wait FLL stable in FEI mode or FEE mode, should wait at least + * 1ms. Every time changes FLL setting, should wait this time for FLL stable. + */ +static void CLOCK_FllStableDelay(void); + +/******************************************************************************* + * Code + ******************************************************************************/ + +static uint32_t CLOCK_GetMcgExtClkFreq(void) +{ + uint32_t freq; + + switch (MCG_C7_OSCSEL_VAL) + { + case 0U: + /* Please call CLOCK_SetXtal0Freq base on board setting before using OSC0 clock. */ + assert(g_xtal0Freq); + freq = g_xtal0Freq; + break; + case 1U: + /* Please call CLOCK_SetXtal32Freq base on board setting before using XTAL32K/RTC_CLKIN clock. */ + assert(g_xtal32Freq); + freq = g_xtal32Freq; + break; + case 2U: + freq = MCG_INTERNAL_IRC_48M; + break; + default: + freq = 0U; + break; + } + + return freq; +} + +static uint32_t CLOCK_GetFllExtRefClkFreq(void) +{ + /* FllExtRef = McgExtRef / FllExtRefDiv */ + uint8_t frdiv; + uint8_t range; + uint8_t oscsel; + + uint32_t freq = CLOCK_GetMcgExtClkFreq(); + + if (!freq) + { + return freq; + } + + frdiv = MCG_C1_FRDIV_VAL; + freq >>= frdiv; + + range = MCG_C2_RANGE_VAL; + oscsel = MCG_C7_OSCSEL_VAL; + + /* + When should use divider 32, 64, 128, 256, 512, 1024, 1280, 1536. + 1. MCG_C7[OSCSEL] selects IRC48M. + 2. MCG_C7[OSCSEL] selects OSC0 and MCG_C2[RANGE] is not 0. + */ + if (((0U != range) && (kMCG_OscselOsc == oscsel)) || (kMCG_OscselIrc == oscsel)) + { + switch (frdiv) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + freq >>= 5u; + break; + case 6: + /* 64*20=1280 */ + freq /= 20u; + break; + case 7: + /* 128*12=1536 */ + freq /= 12u; + break; + default: + freq = 0u; + break; + } + } + + return freq; +} + +static uint32_t CLOCK_GetInternalRefClkSelectFreq(void) +{ + if (kMCG_IrcSlow == MCG_S_IRCST_VAL) + { + /* Slow internal reference clock selected*/ + return s_slowIrcFreq; + } + else + { + /* Fast internal reference clock selected*/ + return s_fastIrcFreq >> MCG_SC_FCRDIV_VAL; + } +} + +static uint32_t CLOCK_GetFllRefClkFreq(void) +{ + /* If use external reference clock. */ + if (kMCG_FllSrcExternal == MCG_S_IREFST_VAL) + { + return CLOCK_GetFllExtRefClkFreq(); + } + /* If use internal reference clock. */ + else + { + return s_slowIrcFreq; + } +} + +static uint32_t CLOCK_GetPll0RefFreq(void) +{ + /* MCG external reference clock. */ + return CLOCK_GetMcgExtClkFreq(); +} + +static uint8_t CLOCK_GetOscRangeFromFreq(uint32_t freq) +{ + uint8_t range; + + if (freq <= 39063U) + { + range = 0U; + } + else if (freq <= 8000000U) + { + range = 1U; + } + else + { + range = 2U; + } + + return range; +} + +static void CLOCK_FllStableDelay(void) +{ + /* + Should wait at least 1ms. Because in these modes, the core clock is 100MHz + at most, so this function could obtain the 1ms delay. + */ + volatile uint32_t i = 30000U; + while (i--) + { + __NOP(); + } +} + +uint32_t CLOCK_GetOsc0ErClkFreq(void) +{ + if (OSC0->CR & OSC_CR_ERCLKEN_MASK) + { + /* Please call CLOCK_SetXtal0Freq base on board setting before using OSC0 clock. */ + assert(g_xtal0Freq); + return g_xtal0Freq; + } + else + { + return 0U; + } +} + +uint32_t CLOCK_GetEr32kClkFreq(void) +{ + uint32_t freq; + + switch (SIM_SOPT1_OSC32KSEL_VAL) + { + case 0U: /* OSC 32k clock */ + freq = (CLOCK_GetOsc0ErClkFreq() == 32768U) ? 32768U : 0U; + break; + case 2U: /* RTC 32k clock */ + /* Please call CLOCK_SetXtal32Freq base on board setting before using XTAL32K/RTC_CLKIN clock. */ + assert(g_xtal32Freq); + freq = g_xtal32Freq; + break; + case 3U: /* LPO clock */ + freq = LPO_CLK_FREQ; + break; + default: + freq = 0U; + break; + } + return freq; +} + +uint32_t CLOCK_GetPllFllSelClkFreq(void) +{ + uint32_t freq; + + switch (SIM_SOPT2_PLLFLLSEL_VAL) + { + case 0U: /* FLL. */ + freq = CLOCK_GetFllFreq(); + break; + case 1U: /* PLL. */ + freq = CLOCK_GetPll0Freq(); + break; + case 3U: /* MCG IRC48M. */ + freq = MCG_INTERNAL_IRC_48M; + break; + default: + freq = 0U; + break; + } + + return freq; +} + +uint32_t CLOCK_GetPlatClkFreq(void) +{ + return CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV1_VAL + 1); +} + +uint32_t CLOCK_GetFlashClkFreq(void) +{ + return CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV4_VAL + 1); +} + +uint32_t CLOCK_GetFlexBusClkFreq(void) +{ + return CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV3_VAL + 1); +} + +uint32_t CLOCK_GetBusClkFreq(void) +{ + return CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV2_VAL + 1); +} + +uint32_t CLOCK_GetCoreSysClkFreq(void) +{ + return CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV1_VAL + 1); +} + +uint32_t CLOCK_GetFreq(clock_name_t clockName) +{ + uint32_t freq; + + switch (clockName) + { + case kCLOCK_CoreSysClk: + case kCLOCK_PlatClk: + freq = CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV1_VAL + 1); + break; + case kCLOCK_BusClk: + freq = CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV2_VAL + 1); + break; + case kCLOCK_FlexBusClk: + freq = CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV3_VAL + 1); + break; + case kCLOCK_FlashClk: + freq = CLOCK_GetOutClkFreq() / (SIM_CLKDIV1_OUTDIV4_VAL + 1); + break; + case kCLOCK_PllFllSelClk: + freq = CLOCK_GetPllFllSelClkFreq(); + break; + case kCLOCK_Er32kClk: + freq = CLOCK_GetEr32kClkFreq(); + break; + case kCLOCK_Osc0ErClk: + freq = CLOCK_GetOsc0ErClkFreq(); + break; + case kCLOCK_McgFixedFreqClk: + freq = CLOCK_GetFixedFreqClkFreq(); + break; + case kCLOCK_McgInternalRefClk: + freq = CLOCK_GetInternalRefClkFreq(); + break; + case kCLOCK_McgFllClk: + freq = CLOCK_GetFllFreq(); + break; + case kCLOCK_McgPll0Clk: + freq = CLOCK_GetPll0Freq(); + break; + case kCLOCK_McgIrc48MClk: + freq = MCG_INTERNAL_IRC_48M; + break; + case kCLOCK_LpoClk: + freq = LPO_CLK_FREQ; + break; + default: + freq = 0U; + break; + } + + return freq; +} + +void CLOCK_SetSimConfig(sim_clock_config_t const *config) +{ + SIM->CLKDIV1 = config->clkdiv1; + CLOCK_SetPllFllSelClock(config->pllFllSel); + CLOCK_SetEr32kClock(config->er32kSrc); +} + +bool CLOCK_EnableUsbfs0Clock(clock_usb_src_t src, uint32_t freq) +{ + bool ret = true; + + CLOCK_DisableClock(kCLOCK_Usbfs0); + + if (kCLOCK_UsbSrcExt == src) + { + SIM->SOPT2 &= ~SIM_SOPT2_USBSRC_MASK; + } + else + { + switch (freq) + { + case 120000000U: + SIM->CLKDIV2 = SIM_CLKDIV2_USBDIV(4) | SIM_CLKDIV2_USBFRAC(1); + break; + case 96000000U: + SIM->CLKDIV2 = SIM_CLKDIV2_USBDIV(1) | SIM_CLKDIV2_USBFRAC(0); + break; + case 72000000U: + SIM->CLKDIV2 = SIM_CLKDIV2_USBDIV(2) | SIM_CLKDIV2_USBFRAC(1); + break; + case 48000000U: + SIM->CLKDIV2 = SIM_CLKDIV2_USBDIV(0) | SIM_CLKDIV2_USBFRAC(0); + break; + default: + ret = false; + break; + } + + SIM->SOPT2 = ((SIM->SOPT2 & ~(SIM_SOPT2_PLLFLLSEL_MASK | SIM_SOPT2_USBSRC_MASK)) | (uint32_t)src); + } + + CLOCK_EnableClock(kCLOCK_Usbfs0); + + if (kCLOCK_UsbSrcIrc48M == src) + { + USB0->CLK_RECOVER_IRC_EN = 0x03U; + USB0->CLK_RECOVER_CTRL |= USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK; + } + return ret; +} + +uint32_t CLOCK_GetOutClkFreq(void) +{ + uint32_t mcgoutclk; + uint32_t clkst = MCG_S_CLKST_VAL; + + switch (clkst) + { + case kMCG_ClkOutStatPll: + mcgoutclk = CLOCK_GetPll0Freq(); + break; + case kMCG_ClkOutStatFll: + mcgoutclk = CLOCK_GetFllFreq(); + break; + case kMCG_ClkOutStatInt: + mcgoutclk = CLOCK_GetInternalRefClkSelectFreq(); + break; + case kMCG_ClkOutStatExt: + mcgoutclk = CLOCK_GetMcgExtClkFreq(); + break; + default: + mcgoutclk = 0U; + break; + } + return mcgoutclk; +} + +uint32_t CLOCK_GetFllFreq(void) +{ + static const uint16_t fllFactorTable[4][2] = {{640, 732}, {1280, 1464}, {1920, 2197}, {2560, 2929}}; + + uint8_t drs, dmx32; + uint32_t freq; + + /* If FLL is not enabled currently, then return 0U. */ + if ((MCG->C2 & MCG_C2_LP_MASK) || (MCG->S & MCG_S_PLLST_MASK)) + { + return 0U; + } + + /* Get FLL reference clock frequency. */ + freq = CLOCK_GetFllRefClkFreq(); + if (!freq) + { + return freq; + } + + drs = MCG_C4_DRST_DRS_VAL; + dmx32 = MCG_C4_DMX32_VAL; + + return freq * fllFactorTable[drs][dmx32]; +} + +uint32_t CLOCK_GetInternalRefClkFreq(void) +{ + /* If MCGIRCLK is gated. */ + if (!(MCG->C1 & MCG_C1_IRCLKEN_MASK)) + { + return 0U; + } + + return CLOCK_GetInternalRefClkSelectFreq(); +} + +uint32_t CLOCK_GetFixedFreqClkFreq(void) +{ + uint32_t freq = CLOCK_GetFllRefClkFreq(); + + /* MCGFFCLK must be no more than MCGOUTCLK/8. */ + if ((freq) && (freq <= (CLOCK_GetOutClkFreq() / 8U))) + { + return freq; + } + else + { + return 0U; + } +} + +uint32_t CLOCK_GetPll0Freq(void) +{ + uint32_t mcgpll0clk; + + /* If PLL0 is not enabled, return 0. */ + if (!(MCG->S & MCG_S_LOCK0_MASK)) + { + return 0U; + } + + mcgpll0clk = CLOCK_GetPll0RefFreq(); + + mcgpll0clk /= (FSL_FEATURE_MCG_PLL_PRDIV_BASE + MCG_C5_PRDIV0_VAL); + mcgpll0clk *= (FSL_FEATURE_MCG_PLL_VDIV_BASE + MCG_C6_VDIV0_VAL); + + return mcgpll0clk; +} + +status_t CLOCK_SetExternalRefClkConfig(mcg_oscsel_t oscsel) +{ + bool needDelay; + uint32_t i; + +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + /* If change MCG_C7[OSCSEL] and external reference clock is system clock source, return error. */ + if ((MCG_C7_OSCSEL_VAL != oscsel) && (!(MCG->S & MCG_S_IREFST_MASK))) + { + return kStatus_MCG_SourceUsed; + } +#endif /* MCG_CONFIG_CHECK_PARAM */ + + if (MCG_C7_OSCSEL_VAL != oscsel) + { + /* If change OSCSEL, need to delay, ERR009878. */ + needDelay = true; + } + else + { + needDelay = false; + } + + MCG->C7 = (MCG->C7 & ~MCG_C7_OSCSEL_MASK) | MCG_C7_OSCSEL(oscsel); + if (kMCG_OscselOsc == oscsel) + { + if (MCG->C2 & MCG_C2_EREFS_MASK) + { + while (!(MCG->S & MCG_S_OSCINIT0_MASK)) + { + } + } + } + + if (needDelay) + { + /* ERR009878 Delay at least 50 micro-seconds for external clock change valid. */ + i = 1500U; + while (i--) + { + __NOP(); + } + } + + return kStatus_Success; +} + +status_t CLOCK_SetInternalRefClkConfig(uint8_t enableMode, mcg_irc_mode_t ircs, uint8_t fcrdiv) +{ + uint32_t mcgOutClkState = MCG_S_CLKST_VAL; + mcg_irc_mode_t curIrcs = (mcg_irc_mode_t)MCG_S_IRCST_VAL; + uint8_t curFcrdiv = MCG_SC_FCRDIV_VAL; + +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + /* If MCGIRCLK is used as system clock source. */ + if (kMCG_ClkOutStatInt == mcgOutClkState) + { + /* If need to change MCGIRCLK source or driver, return error. */ + if (((kMCG_IrcFast == curIrcs) && (fcrdiv != curFcrdiv)) || (ircs != curIrcs)) + { + return kStatus_MCG_SourceUsed; + } + } +#endif + + /* If need to update the FCRDIV. */ + if (fcrdiv != curFcrdiv) + { + /* If fast IRC is in use currently, change to slow IRC. */ + if ((kMCG_IrcFast == curIrcs) && ((mcgOutClkState == kMCG_ClkOutStatInt) || (MCG->C1 & MCG_C1_IRCLKEN_MASK))) + { + MCG->C2 = ((MCG->C2 & ~MCG_C2_IRCS_MASK) | (MCG_C2_IRCS(kMCG_IrcSlow))); + while (MCG_S_IRCST_VAL != kMCG_IrcSlow) + { + } + } + /* Update FCRDIV. */ + MCG->SC = (MCG->SC & ~(MCG_SC_FCRDIV_MASK | MCG_SC_ATMF_MASK | MCG_SC_LOCS0_MASK)) | MCG_SC_FCRDIV(fcrdiv); + } + + /* Set internal reference clock selection. */ + MCG->C2 = (MCG->C2 & ~MCG_C2_IRCS_MASK) | (MCG_C2_IRCS(ircs)); + MCG->C1 = (MCG->C1 & ~(MCG_C1_IRCLKEN_MASK | MCG_C1_IREFSTEN_MASK)) | (uint8_t)enableMode; + + /* If MCGIRCLK is used, need to wait for MCG_S_IRCST. */ + if ((mcgOutClkState == kMCG_ClkOutStatInt) || (enableMode & kMCG_IrclkEnable)) + { + while (MCG_S_IRCST_VAL != ircs) + { + } + } + + return kStatus_Success; +} + +uint32_t CLOCK_CalcPllDiv(uint32_t refFreq, uint32_t desireFreq, uint8_t *prdiv, uint8_t *vdiv) +{ + uint8_t ret_prdiv; /* PRDIV to return. */ + uint8_t ret_vdiv; /* VDIV to return. */ + uint8_t prdiv_min; /* Min PRDIV value to make reference clock in allowed range. */ + uint8_t prdiv_max; /* Max PRDIV value to make reference clock in allowed range. */ + uint8_t prdiv_cur; /* PRDIV value for iteration. */ + uint8_t vdiv_cur; /* VDIV value for iteration. */ + uint32_t ret_freq = 0U; /* PLL output fequency to return. */ + uint32_t diff = 0xFFFFFFFFU; /* Difference between desireFreq and return frequency. */ + uint32_t ref_div; /* Reference frequency after PRDIV. */ + + /* + Steps: + 1. Get allowed prdiv with such rules: + 1). refFreq / prdiv >= FSL_FEATURE_MCG_PLL_REF_MIN. + 2). refFreq / prdiv <= FSL_FEATURE_MCG_PLL_REF_MAX. + 2. For each allowed prdiv, there are two candidate vdiv values: + 1). (desireFreq / (refFreq / prdiv)). + 2). (desireFreq / (refFreq / prdiv)) + 1. + If could get the precise desired frequency, return current prdiv and + vdiv directly. Otherwise choose the one which is closer to desired + frequency. + */ + + /* Reference frequency is out of range. */ + if ((refFreq < FSL_FEATURE_MCG_PLL_REF_MIN) || + (refFreq > (FSL_FEATURE_MCG_PLL_REF_MAX * (FSL_FEATURE_MCG_PLL_PRDIV_MAX + FSL_FEATURE_MCG_PLL_PRDIV_BASE)))) + { + return 0U; + } + + /* refFreq/PRDIV must in a range. First get the allowed PRDIV range. */ + prdiv_max = refFreq / FSL_FEATURE_MCG_PLL_REF_MIN; + prdiv_min = (refFreq + FSL_FEATURE_MCG_PLL_REF_MAX - 1U) / FSL_FEATURE_MCG_PLL_REF_MAX; + + /* PRDIV traversal. */ + for (prdiv_cur = prdiv_max; prdiv_cur >= prdiv_min; prdiv_cur--) + { + /* Reference frequency after PRDIV. */ + ref_div = refFreq / prdiv_cur; + + vdiv_cur = desireFreq / ref_div; + + if ((vdiv_cur < FSL_FEATURE_MCG_PLL_VDIV_BASE - 1U) || (vdiv_cur > FSL_FEATURE_MCG_PLL_VDIV_BASE + 31U)) + { + /* No VDIV is available with this PRDIV. */ + continue; + } + + ret_freq = vdiv_cur * ref_div; + + if (vdiv_cur >= FSL_FEATURE_MCG_PLL_VDIV_BASE) + { + if (ret_freq == desireFreq) /* If desire frequency is got. */ + { + *prdiv = prdiv_cur - FSL_FEATURE_MCG_PLL_PRDIV_BASE; + *vdiv = vdiv_cur - FSL_FEATURE_MCG_PLL_VDIV_BASE; + return ret_freq; + } + /* New PRDIV/VDIV is closer. */ + if (diff > desireFreq - ret_freq) + { + diff = desireFreq - ret_freq; + ret_prdiv = prdiv_cur; + ret_vdiv = vdiv_cur; + } + } + vdiv_cur++; + if (vdiv_cur <= (FSL_FEATURE_MCG_PLL_VDIV_BASE + 31U)) + { + ret_freq += ref_div; + /* New PRDIV/VDIV is closer. */ + if (diff > ret_freq - desireFreq) + { + diff = ret_freq - desireFreq; + ret_prdiv = prdiv_cur; + ret_vdiv = vdiv_cur; + } + } + } + + if (0xFFFFFFFFU != diff) + { + /* PRDIV/VDIV found. */ + *prdiv = ret_prdiv - FSL_FEATURE_MCG_PLL_PRDIV_BASE; + *vdiv = ret_vdiv - FSL_FEATURE_MCG_PLL_VDIV_BASE; + ret_freq = (refFreq / ret_prdiv) * ret_vdiv; + return ret_freq; + } + else + { + /* No proper PRDIV/VDIV found. */ + return 0U; + } +} + +void CLOCK_EnablePll0(mcg_pll_config_t const *config) +{ + assert(config); + + uint8_t mcg_c5 = 0U; + + mcg_c5 |= MCG_C5_PRDIV0(config->prdiv); + MCG->C5 = mcg_c5; /* Disable the PLL first. */ + + MCG->C6 = (MCG->C6 & ~MCG_C6_VDIV0_MASK) | MCG_C6_VDIV0(config->vdiv); + + /* Set enable mode. */ + MCG->C5 |= ((uint32_t)kMCG_PllEnableIndependent | (uint32_t)config->enableMode); + + /* Wait for PLL lock. */ + while (!(MCG->S & MCG_S_LOCK0_MASK)) + { + } +} + +void CLOCK_SetOsc0MonitorMode(mcg_monitor_mode_t mode) +{ + /* Clear the previous flag, MCG_SC[LOCS0]. */ + MCG->SC &= ~MCG_SC_ATMF_MASK; + + if (kMCG_MonitorNone == mode) + { + MCG->C6 &= ~MCG_C6_CME0_MASK; + } + else + { + if (kMCG_MonitorInt == mode) + { + MCG->C2 &= ~MCG_C2_LOCRE0_MASK; + } + else + { + MCG->C2 |= MCG_C2_LOCRE0_MASK; + } + MCG->C6 |= MCG_C6_CME0_MASK; + } +} + +void CLOCK_SetRtcOscMonitorMode(mcg_monitor_mode_t mode) +{ + uint8_t mcg_c8 = MCG->C8; + + mcg_c8 &= ~(MCG_C8_CME1_MASK | MCG_C8_LOCRE1_MASK); + + if (kMCG_MonitorNone != mode) + { + if (kMCG_MonitorReset == mode) + { + mcg_c8 |= MCG_C8_LOCRE1_MASK; + } + mcg_c8 |= MCG_C8_CME1_MASK; + } + MCG->C8 = mcg_c8; +} + +void CLOCK_SetPll0MonitorMode(mcg_monitor_mode_t mode) +{ + uint8_t mcg_c8; + + /* Clear previous flag. */ + MCG->S = MCG_S_LOLS0_MASK; + + if (kMCG_MonitorNone == mode) + { + MCG->C6 &= ~MCG_C6_LOLIE0_MASK; + } + else + { + mcg_c8 = MCG->C8; + + mcg_c8 &= ~MCG_C8_LOCS1_MASK; + + if (kMCG_MonitorInt == mode) + { + mcg_c8 &= ~MCG_C8_LOLRE_MASK; + } + else + { + mcg_c8 |= MCG_C8_LOLRE_MASK; + } + MCG->C8 = mcg_c8; + MCG->C6 |= MCG_C6_LOLIE0_MASK; + } +} + +uint32_t CLOCK_GetStatusFlags(void) +{ + uint32_t ret = 0U; + uint8_t mcg_s = MCG->S; + + if (MCG->SC & MCG_SC_LOCS0_MASK) + { + ret |= kMCG_Osc0LostFlag; + } + if (mcg_s & MCG_S_OSCINIT0_MASK) + { + ret |= kMCG_Osc0InitFlag; + } + if (MCG->C8 & MCG_C8_LOCS1_MASK) + { + ret |= kMCG_RtcOscLostFlag; + } + if (mcg_s & MCG_S_LOLS0_MASK) + { + ret |= kMCG_Pll0LostFlag; + } + if (mcg_s & MCG_S_LOCK0_MASK) + { + ret |= kMCG_Pll0LockFlag; + } + return ret; +} + +void CLOCK_ClearStatusFlags(uint32_t mask) +{ + uint8_t reg; + + if (mask & kMCG_Osc0LostFlag) + { + MCG->SC &= ~MCG_SC_ATMF_MASK; + } + if (mask & kMCG_RtcOscLostFlag) + { + reg = MCG->C8; + MCG->C8 = reg; + } + if (mask & kMCG_Pll0LostFlag) + { + MCG->S = MCG_S_LOLS0_MASK; + } +} + +void CLOCK_InitOsc0(osc_config_t const *config) +{ + uint8_t range = CLOCK_GetOscRangeFromFreq(config->freq); + + OSC_SetCapLoad(OSC0, config->capLoad); + OSC_SetExtRefClkConfig(OSC0, &config->oscerConfig); + + MCG->C2 = ((MCG->C2 & ~OSC_MODE_MASK) | MCG_C2_RANGE(range) | (uint8_t)config->workMode); + + if ((kOSC_ModeExt != config->workMode) && (OSC0->CR & OSC_CR_ERCLKEN_MASK)) + { + /* Wait for stable. */ + while (!(MCG->S & MCG_S_OSCINIT0_MASK)) + { + } + } +} + +void CLOCK_DeinitOsc0(void) +{ + OSC0->CR = 0U; + MCG->C2 &= ~OSC_MODE_MASK; +} + +status_t CLOCK_TrimInternalRefClk(uint32_t extFreq, uint32_t desireFreq, uint32_t *actualFreq, mcg_atm_select_t atms) +{ + uint32_t multi; /* extFreq / desireFreq */ + uint32_t actv; /* Auto trim value. */ + uint8_t mcg_sc; + + static const uint32_t trimRange[2][2] = { + /* Min Max */ + {TRIM_SIRC_MIN, TRIM_SIRC_MAX}, /* Slow IRC. */ + {TRIM_FIRC_MIN, TRIM_FIRC_MAX} /* Fast IRC. */ + }; + + if ((extFreq > TRIM_REF_CLK_MAX) || (extFreq < TRIM_REF_CLK_MIN)) + { + return kStatus_MCG_AtmBusClockInvalid; + } + + /* Check desired frequency range. */ + if ((desireFreq < trimRange[atms][0]) || (desireFreq > trimRange[atms][1])) + { + return kStatus_MCG_AtmDesiredFreqInvalid; + } + + /* + Make sure internal reference clock is not used to generate bus clock. + Here only need to check (MCG_S_IREFST == 1). + */ + if (MCG_S_IREFST(kMCG_FllSrcInternal) == (MCG->S & MCG_S_IREFST_MASK)) + { + return kStatus_MCG_AtmIrcUsed; + } + + multi = extFreq / desireFreq; + actv = multi * 21U; + + if (kMCG_AtmSel4m == atms) + { + actv *= 128U; + } + + /* Now begin to start trim. */ + MCG->ATCVL = (uint8_t)actv; + MCG->ATCVH = (uint8_t)(actv >> 8U); + + mcg_sc = MCG->SC; + mcg_sc &= ~(MCG_SC_ATMS_MASK | MCG_SC_LOCS0_MASK); + mcg_sc |= (MCG_SC_ATMF_MASK | MCG_SC_ATMS(atms)); + MCG->SC = (mcg_sc | MCG_SC_ATME_MASK); + + /* Wait for finished. */ + while (MCG->SC & MCG_SC_ATME_MASK) + { + } + + /* Error occurs? */ + if (MCG->SC & MCG_SC_ATMF_MASK) + { + /* Clear the failed flag. */ + MCG->SC = mcg_sc; + return kStatus_MCG_AtmHardwareFail; + } + + *actualFreq = extFreq / multi; + + if (kMCG_AtmSel4m == atms) + { + s_fastIrcFreq = *actualFreq; + } + else + { + s_slowIrcFreq = *actualFreq; + } + + return kStatus_Success; +} + +mcg_mode_t CLOCK_GetMode(void) +{ + mcg_mode_t mode = kMCG_ModeError; + uint32_t clkst = MCG_S_CLKST_VAL; + uint32_t irefst = MCG_S_IREFST_VAL; + uint32_t lp = MCG_C2_LP_VAL; + uint32_t pllst = MCG_S_PLLST_VAL; + + /*------------------------------------------------------------------ + Mode and Registers + ____________________________________________________________________ + + Mode | CLKST | IREFST | PLLST | LP + ____________________________________________________________________ + + FEI | 00(FLL) | 1(INT) | 0(FLL) | X + ____________________________________________________________________ + + FEE | 00(FLL) | 0(EXT) | 0(FLL) | X + ____________________________________________________________________ + + FBE | 10(EXT) | 0(EXT) | 0(FLL) | 0(NORMAL) + ____________________________________________________________________ + + FBI | 01(INT) | 1(INT) | 0(FLL) | 0(NORMAL) + ____________________________________________________________________ + + BLPI | 01(INT) | 1(INT) | 0(FLL) | 1(LOW POWER) + ____________________________________________________________________ + + BLPE | 10(EXT) | 0(EXT) | X | 1(LOW POWER) + ____________________________________________________________________ + + PEE | 11(PLL) | 0(EXT) | 1(PLL) | X + ____________________________________________________________________ + + PBE | 10(EXT) | 0(EXT) | 1(PLL) | O(NORMAL) + ____________________________________________________________________ + + PBI | 01(INT) | 1(INT) | 1(PLL) | 0(NORMAL) + ____________________________________________________________________ + + PEI | 11(PLL) | 1(INT) | 1(PLL) | X + ____________________________________________________________________ + + ----------------------------------------------------------------------*/ + + switch (clkst) + { + case kMCG_ClkOutStatFll: + if (kMCG_FllSrcExternal == irefst) + { + mode = kMCG_ModeFEE; + } + else + { + mode = kMCG_ModeFEI; + } + break; + case kMCG_ClkOutStatInt: + if (lp) + { + mode = kMCG_ModeBLPI; + } + else + { + { + mode = kMCG_ModeFBI; + } + } + break; + case kMCG_ClkOutStatExt: + if (lp) + { + mode = kMCG_ModeBLPE; + } + else + { + if (kMCG_PllstPll == pllst) + { + mode = kMCG_ModePBE; + } + else + { + mode = kMCG_ModeFBE; + } + } + break; + case kMCG_ClkOutStatPll: + { + mode = kMCG_ModePEE; + } + break; + default: + break; + } + + return mode; +} + +status_t CLOCK_SetFeiMode(mcg_drs_t drs, void (*fllStableDelay)(void)) +{ + uint8_t mcg_c4; + bool change_drs = false; + +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + mcg_mode_t mode = CLOCK_GetMode(); + if (!((kMCG_ModeFEI == mode) || (kMCG_ModeFBI == mode) || (kMCG_ModeFBE == mode) || (kMCG_ModeFEE == mode))) + { + return kStatus_MCG_ModeUnreachable; + } +#endif + mcg_c4 = MCG->C4; + + /* + Errata: ERR007993 + Workaround: Invert MCG_C4[DMX32] or change MCG_C4[DRST_DRS] before + reference clock source changes, then reset to previous value after + reference clock changes. + */ + if (kMCG_FllSrcExternal == MCG_S_IREFST_VAL) + { + change_drs = true; + /* Change the LSB of DRST_DRS. */ + MCG->C4 ^= (1U << MCG_C4_DRST_DRS_SHIFT); + } + + /* Set CLKS and IREFS. */ + MCG->C1 = + ((MCG->C1 & ~(MCG_C1_CLKS_MASK | MCG_C1_IREFS_MASK))) | (MCG_C1_CLKS(kMCG_ClkOutSrcOut) /* CLKS = 0 */ + | MCG_C1_IREFS(kMCG_FllSrcInternal)); /* IREFS = 1 */ + + /* Wait and check status. */ + while (kMCG_FllSrcInternal != MCG_S_IREFST_VAL) + { + } + + /* Errata: ERR007993 */ + if (change_drs) + { + MCG->C4 = mcg_c4; + } + + /* In FEI mode, the MCG_C4[DMX32] is set to 0U. */ + MCG->C4 = (mcg_c4 & ~(MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS_MASK)) | (MCG_C4_DRST_DRS(drs)); + + /* Check MCG_S[CLKST] */ + while (kMCG_ClkOutStatFll != MCG_S_CLKST_VAL) + { + } + + /* Wait for FLL stable time. */ + if (fllStableDelay) + { + fllStableDelay(); + } + + return kStatus_Success; +} + +status_t CLOCK_SetFeeMode(uint8_t frdiv, mcg_dmx32_t dmx32, mcg_drs_t drs, void (*fllStableDelay)(void)) +{ + uint8_t mcg_c4; + bool change_drs = false; + +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + mcg_mode_t mode = CLOCK_GetMode(); + if (!((kMCG_ModeFEE == mode) || (kMCG_ModeFBI == mode) || (kMCG_ModeFBE == mode) || (kMCG_ModeFEI == mode))) + { + return kStatus_MCG_ModeUnreachable; + } +#endif + mcg_c4 = MCG->C4; + + /* + Errata: ERR007993 + Workaround: Invert MCG_C4[DMX32] or change MCG_C4[DRST_DRS] before + reference clock source changes, then reset to previous value after + reference clock changes. + */ + if (kMCG_FllSrcInternal == MCG_S_IREFST_VAL) + { + change_drs = true; + /* Change the LSB of DRST_DRS. */ + MCG->C4 ^= (1U << MCG_C4_DRST_DRS_SHIFT); + } + + /* Set CLKS and IREFS. */ + MCG->C1 = ((MCG->C1 & ~(MCG_C1_CLKS_MASK | MCG_C1_FRDIV_MASK | MCG_C1_IREFS_MASK)) | + (MCG_C1_CLKS(kMCG_ClkOutSrcOut) /* CLKS = 0 */ + | MCG_C1_FRDIV(frdiv) /* FRDIV */ + | MCG_C1_IREFS(kMCG_FllSrcExternal))); /* IREFS = 0 */ + + /* Wait and check status. */ + while (kMCG_FllSrcExternal != MCG_S_IREFST_VAL) + { + } + + /* Errata: ERR007993 */ + if (change_drs) + { + MCG->C4 = mcg_c4; + } + + /* Set DRS and DMX32. */ + mcg_c4 = ((mcg_c4 & ~(MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS_MASK)) | (MCG_C4_DMX32(dmx32) | MCG_C4_DRST_DRS(drs))); + MCG->C4 = mcg_c4; + + /* Wait for DRST_DRS update. */ + while (MCG->C4 != mcg_c4) + { + } + + /* Check MCG_S[CLKST] */ + while (kMCG_ClkOutStatFll != MCG_S_CLKST_VAL) + { + } + + /* Wait for FLL stable time. */ + if (fllStableDelay) + { + fllStableDelay(); + } + + return kStatus_Success; +} + +status_t CLOCK_SetFbiMode(mcg_drs_t drs, void (*fllStableDelay)(void)) +{ + uint8_t mcg_c4; + bool change_drs = false; + +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + mcg_mode_t mode = CLOCK_GetMode(); + + if (!((kMCG_ModeFEE == mode) || (kMCG_ModeFBI == mode) || (kMCG_ModeFBE == mode) || (kMCG_ModeFEI == mode) || + (kMCG_ModeBLPI == mode))) + + { + return kStatus_MCG_ModeUnreachable; + } +#endif + + mcg_c4 = MCG->C4; + + MCG->C2 &= ~MCG_C2_LP_MASK; /* Disable lowpower. */ + + /* + Errata: ERR007993 + Workaround: Invert MCG_C4[DMX32] or change MCG_C4[DRST_DRS] before + reference clock source changes, then reset to previous value after + reference clock changes. + */ + if (kMCG_FllSrcExternal == MCG_S_IREFST_VAL) + { + change_drs = true; + /* Change the LSB of DRST_DRS. */ + MCG->C4 ^= (1U << MCG_C4_DRST_DRS_SHIFT); + } + + /* Set CLKS and IREFS. */ + MCG->C1 = + ((MCG->C1 & ~(MCG_C1_CLKS_MASK | MCG_C1_IREFS_MASK)) | (MCG_C1_CLKS(kMCG_ClkOutSrcInternal) /* CLKS = 1 */ + | MCG_C1_IREFS(kMCG_FllSrcInternal))); /* IREFS = 1 */ + + /* Wait and check status. */ + while (kMCG_FllSrcInternal != MCG_S_IREFST_VAL) + { + } + + /* Errata: ERR007993 */ + if (change_drs) + { + MCG->C4 = mcg_c4; + } + + while (kMCG_ClkOutStatInt != MCG_S_CLKST_VAL) + { + } + + MCG->C4 = (mcg_c4 & ~(MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS_MASK)) | (MCG_C4_DRST_DRS(drs)); + + /* Wait for FLL stable time. */ + if (fllStableDelay) + { + fllStableDelay(); + } + + return kStatus_Success; +} + +status_t CLOCK_SetFbeMode(uint8_t frdiv, mcg_dmx32_t dmx32, mcg_drs_t drs, void (*fllStableDelay)(void)) +{ + uint8_t mcg_c4; + bool change_drs = false; + +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + mcg_mode_t mode = CLOCK_GetMode(); + if (!((kMCG_ModeFEE == mode) || (kMCG_ModeFBI == mode) || (kMCG_ModeFBE == mode) || (kMCG_ModeFEI == mode) || + (kMCG_ModePBE == mode) || (kMCG_ModeBLPE == mode))) + { + return kStatus_MCG_ModeUnreachable; + } +#endif + + /* Change to FLL mode. */ + MCG->C6 &= ~MCG_C6_PLLS_MASK; + while (MCG->S & MCG_S_PLLST_MASK) + { + } + + /* Set LP bit to enable the FLL */ + MCG->C2 &= ~MCG_C2_LP_MASK; + + mcg_c4 = MCG->C4; + + /* + Errata: ERR007993 + Workaround: Invert MCG_C4[DMX32] or change MCG_C4[DRST_DRS] before + reference clock source changes, then reset to previous value after + reference clock changes. + */ + if (kMCG_FllSrcInternal == MCG_S_IREFST_VAL) + { + change_drs = true; + /* Change the LSB of DRST_DRS. */ + MCG->C4 ^= (1U << MCG_C4_DRST_DRS_SHIFT); + } + + /* Set CLKS and IREFS. */ + MCG->C1 = ((MCG->C1 & ~(MCG_C1_CLKS_MASK | MCG_C1_FRDIV_MASK | MCG_C1_IREFS_MASK)) | + (MCG_C1_CLKS(kMCG_ClkOutSrcExternal) /* CLKS = 2 */ + | MCG_C1_FRDIV(frdiv) /* FRDIV = frdiv */ + | MCG_C1_IREFS(kMCG_FllSrcExternal))); /* IREFS = 0 */ + + /* Wait for Reference clock Status bit to clear */ + while (kMCG_FllSrcExternal != MCG_S_IREFST_VAL) + { + } + + /* Errata: ERR007993 */ + if (change_drs) + { + MCG->C4 = mcg_c4; + } + + /* Set DRST_DRS and DMX32. */ + mcg_c4 = ((mcg_c4 & ~(MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS_MASK)) | (MCG_C4_DMX32(dmx32) | MCG_C4_DRST_DRS(drs))); + + /* Wait for clock status bits to show clock source is ext ref clk */ + while (kMCG_ClkOutStatExt != MCG_S_CLKST_VAL) + { + } + + /* Wait for fll stable time. */ + if (fllStableDelay) + { + fllStableDelay(); + } + + return kStatus_Success; +} + +status_t CLOCK_SetBlpiMode(void) +{ +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + if (MCG_S_CLKST_VAL != kMCG_ClkOutStatInt) + { + return kStatus_MCG_ModeUnreachable; + } +#endif /* MCG_CONFIG_CHECK_PARAM */ + + /* Set LP. */ + MCG->C2 |= MCG_C2_LP_MASK; + + return kStatus_Success; +} + +status_t CLOCK_SetBlpeMode(void) +{ +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + if (MCG_S_CLKST_VAL != kMCG_ClkOutStatExt) + { + return kStatus_MCG_ModeUnreachable; + } +#endif + + /* Set LP bit to enter BLPE mode. */ + MCG->C2 |= MCG_C2_LP_MASK; + + return kStatus_Success; +} + +status_t CLOCK_SetPbeMode(mcg_pll_clk_select_t pllcs, mcg_pll_config_t const *config) +{ + /* + This function is designed to change MCG to PBE mode from PEE/BLPE/FBE, + but with this workflow, the source mode could be all modes except PEI/PBI. + */ + MCG->C2 &= ~MCG_C2_LP_MASK; /* Disable lowpower. */ + + /* Change to use external clock first. */ + MCG->C1 = ((MCG->C1 & ~(MCG_C1_CLKS_MASK | MCG_C1_IREFS_MASK)) | MCG_C1_CLKS(kMCG_ClkOutSrcExternal)); + + /* Wait for CLKST clock status bits to show clock source is ext ref clk */ + while ((MCG->S & (MCG_S_IREFST_MASK | MCG_S_CLKST_MASK)) != + (MCG_S_IREFST(kMCG_FllSrcExternal) | MCG_S_CLKST(kMCG_ClkOutStatExt))) + { + } + + /* Disable PLL first, then configure PLL. */ + MCG->C6 &= ~MCG_C6_PLLS_MASK; + while (MCG->S & MCG_S_PLLST_MASK) + { + } + + /* Configure the PLL. */ + { + CLOCK_EnablePll0(config); + } + + /* Change to PLL mode. */ + MCG->C6 |= MCG_C6_PLLS_MASK; + while (!(MCG->S & MCG_S_PLLST_MASK)) + { + } + + return kStatus_Success; +} + +status_t CLOCK_SetPeeMode(void) +{ +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + mcg_mode_t mode = CLOCK_GetMode(); + if (kMCG_ModePBE != mode) + { + return kStatus_MCG_ModeUnreachable; + } +#endif + + /* Change to use PLL/FLL output clock first. */ + MCG->C1 = (MCG->C1 & ~MCG_C1_CLKS_MASK) | MCG_C1_CLKS(kMCG_ClkOutSrcOut); + + /* Wait for clock status bits to update */ + while (MCG_S_CLKST_VAL != kMCG_ClkOutStatPll) + { + } + + return kStatus_Success; +} + +status_t CLOCK_ExternalModeToFbeModeQuick(void) +{ +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + if (MCG->S & MCG_S_IREFST_MASK) + { + return kStatus_MCG_ModeInvalid; + } +#endif /* MCG_CONFIG_CHECK_PARAM */ + + /* Disable low power */ + MCG->C2 &= ~MCG_C2_LP_MASK; + + MCG->C1 = ((MCG->C1 & ~MCG_C1_CLKS_MASK) | MCG_C1_CLKS(kMCG_ClkOutSrcExternal)); + while (MCG_S_CLKST_VAL != kMCG_ClkOutStatExt) + { + } + + /* Disable PLL. */ + MCG->C6 &= ~MCG_C6_PLLS_MASK; + while (MCG->S & MCG_S_PLLST_MASK) + { + } + + return kStatus_Success; +} + +status_t CLOCK_InternalModeToFbiModeQuick(void) +{ +#if (defined(MCG_CONFIG_CHECK_PARAM) && MCG_CONFIG_CHECK_PARAM) + if (!(MCG->S & MCG_S_IREFST_MASK)) + { + return kStatus_MCG_ModeInvalid; + } +#endif + + /* Disable low power */ + MCG->C2 &= ~MCG_C2_LP_MASK; + + MCG->C1 = ((MCG->C1 & ~MCG_C1_CLKS_MASK) | MCG_C1_CLKS(kMCG_ClkOutSrcInternal)); + while (MCG_S_CLKST_VAL != kMCG_ClkOutStatInt) + { + } + + return kStatus_Success; +} + +status_t CLOCK_BootToFeiMode(mcg_drs_t drs, void (*fllStableDelay)(void)) +{ + return CLOCK_SetFeiMode(drs, fllStableDelay); +} + +status_t CLOCK_BootToFeeMode( + mcg_oscsel_t oscsel, uint8_t frdiv, mcg_dmx32_t dmx32, mcg_drs_t drs, void (*fllStableDelay)(void)) +{ + CLOCK_SetExternalRefClkConfig(oscsel); + + return CLOCK_SetFeeMode(frdiv, dmx32, drs, fllStableDelay); +} + +status_t CLOCK_BootToBlpiMode(uint8_t fcrdiv, mcg_irc_mode_t ircs, uint8_t ircEnableMode) +{ + /* If reset mode is FEI mode, set MCGIRCLK and always success. */ + CLOCK_SetInternalRefClkConfig(ircEnableMode, ircs, fcrdiv); + + /* If reset mode is not BLPI, first enter FBI mode. */ + MCG->C1 = (MCG->C1 & ~MCG_C1_CLKS_MASK) | MCG_C1_CLKS(kMCG_ClkOutSrcInternal); + while (MCG_S_CLKST_VAL != kMCG_ClkOutStatInt) + { + } + + /* Enter BLPI mode. */ + MCG->C2 |= MCG_C2_LP_MASK; + + return kStatus_Success; +} + +status_t CLOCK_BootToBlpeMode(mcg_oscsel_t oscsel) +{ + CLOCK_SetExternalRefClkConfig(oscsel); + + /* Set to FBE mode. */ + MCG->C1 = + ((MCG->C1 & ~(MCG_C1_CLKS_MASK | MCG_C1_IREFS_MASK)) | (MCG_C1_CLKS(kMCG_ClkOutSrcExternal) /* CLKS = 2 */ + | MCG_C1_IREFS(kMCG_FllSrcExternal))); /* IREFS = 0 */ + + /* Wait for MCG_S[CLKST] and MCG_S[IREFST]. */ + while ((MCG->S & (MCG_S_IREFST_MASK | MCG_S_CLKST_MASK)) != + (MCG_S_IREFST(kMCG_FllSrcExternal) | MCG_S_CLKST(kMCG_ClkOutStatExt))) + { + } + + /* In FBE now, start to enter BLPE. */ + MCG->C2 |= MCG_C2_LP_MASK; + + return kStatus_Success; +} + +status_t CLOCK_BootToPeeMode(mcg_oscsel_t oscsel, mcg_pll_clk_select_t pllcs, mcg_pll_config_t const *config) +{ + assert(config); + + CLOCK_SetExternalRefClkConfig(oscsel); + + CLOCK_SetPbeMode(pllcs, config); + + /* Change to use PLL output clock. */ + MCG->C1 = (MCG->C1 & ~MCG_C1_CLKS_MASK) | MCG_C1_CLKS(kMCG_ClkOutSrcOut); + while (MCG_S_CLKST_VAL != kMCG_ClkOutStatPll) + { + } + + return kStatus_Success; +} + +/* + The transaction matrix. It defines the path for mode switch, the row is for + current mode and the column is target mode. + For example, switch from FEI to PEE: + 1. Current mode FEI, next mode is mcgModeMatrix[FEI][PEE] = FBE, so swith to FBE. + 2. Current mode FBE, next mode is mcgModeMatrix[FBE][PEE] = PBE, so swith to PBE. + 3. Current mode PBE, next mode is mcgModeMatrix[PBE][PEE] = PEE, so swith to PEE. + Thus the MCG mode has changed from FEI to PEE. + */ +static const mcg_mode_t mcgModeMatrix[8][8] = { + {kMCG_ModeFEI, kMCG_ModeFBI, kMCG_ModeFBI, kMCG_ModeFEE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, + kMCG_ModeFBE}, /* FEI */ + {kMCG_ModeFEI, kMCG_ModeFBI, kMCG_ModeBLPI, kMCG_ModeFEE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, + kMCG_ModeFBE}, /* FBI */ + {kMCG_ModeFBI, kMCG_ModeFBI, kMCG_ModeBLPI, kMCG_ModeFBI, kMCG_ModeFBI, kMCG_ModeFBI, kMCG_ModeFBI, + kMCG_ModeFBI}, /* BLPI */ + {kMCG_ModeFEI, kMCG_ModeFBI, kMCG_ModeFBI, kMCG_ModeFEE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, + kMCG_ModeFBE}, /* FEE */ + {kMCG_ModeFEI, kMCG_ModeFBI, kMCG_ModeFBI, kMCG_ModeFEE, kMCG_ModeFBE, kMCG_ModeBLPE, kMCG_ModePBE, + kMCG_ModePBE}, /* FBE */ + {kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeBLPE, kMCG_ModePBE, + kMCG_ModePBE}, /* BLPE */ + {kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeFBE, kMCG_ModeBLPE, kMCG_ModePBE, + kMCG_ModePEE}, /* PBE */ + {kMCG_ModePBE, kMCG_ModePBE, kMCG_ModePBE, kMCG_ModePBE, kMCG_ModePBE, kMCG_ModePBE, kMCG_ModePBE, + kMCG_ModePBE} /* PEE */ + /* FEI FBI BLPI FEE FBE BLPE PBE PEE */ +}; + +status_t CLOCK_SetMcgConfig(const mcg_config_t *config) +{ + mcg_mode_t next_mode; + status_t status = kStatus_Success; + + mcg_pll_clk_select_t pllcs = kMCG_PllClkSelPll0; + + /* If need to change external clock, MCG_C7[OSCSEL]. */ + if (MCG_C7_OSCSEL_VAL != config->oscsel) + { + /* If external clock is in use, change to FEI first. */ + if (!(MCG->S & MCG_S_IRCST_MASK)) + { + CLOCK_ExternalModeToFbeModeQuick(); + CLOCK_SetFeiMode(config->drs, (void (*)(void))0); + } + + CLOCK_SetExternalRefClkConfig(config->oscsel); + } + + /* Re-configure MCGIRCLK, if MCGIRCLK is used as system clock source, then change to FEI/PEI first. */ + if (MCG_S_CLKST_VAL == kMCG_ClkOutStatInt) + { + MCG->C2 &= ~MCG_C2_LP_MASK; /* Disable lowpower. */ + + { + CLOCK_SetFeiMode(config->drs, CLOCK_FllStableDelay); + } + } + + /* Configure MCGIRCLK. */ + CLOCK_SetInternalRefClkConfig(config->irclkEnableMode, config->ircs, config->fcrdiv); + + next_mode = CLOCK_GetMode(); + + do + { + next_mode = mcgModeMatrix[next_mode][config->mcgMode]; + + switch (next_mode) + { + case kMCG_ModeFEI: + status = CLOCK_SetFeiMode(config->drs, CLOCK_FllStableDelay); + break; + case kMCG_ModeFEE: + status = CLOCK_SetFeeMode(config->frdiv, config->dmx32, config->drs, CLOCK_FllStableDelay); + break; + case kMCG_ModeFBI: + status = CLOCK_SetFbiMode(config->drs, (void (*)(void))0); + break; + case kMCG_ModeFBE: + status = CLOCK_SetFbeMode(config->frdiv, config->dmx32, config->drs, (void (*)(void))0); + break; + case kMCG_ModeBLPI: + status = CLOCK_SetBlpiMode(); + break; + case kMCG_ModeBLPE: + status = CLOCK_SetBlpeMode(); + break; + case kMCG_ModePBE: + /* If target mode is not PBE or PEE, then only need to set CLKS = EXT here. */ + if ((kMCG_ModePEE == config->mcgMode) || (kMCG_ModePBE == config->mcgMode)) + { + { + status = CLOCK_SetPbeMode(pllcs, &config->pll0Config); + } + } + else + { + MCG->C1 = ((MCG->C1 & ~MCG_C1_CLKS_MASK) | MCG_C1_CLKS(kMCG_ClkOutSrcExternal)); + while (MCG_S_CLKST_VAL != kMCG_ClkOutStatExt) + { + } + } + break; + case kMCG_ModePEE: + status = CLOCK_SetPeeMode(); + break; + default: + break; + } + if (kStatus_Success != status) + { + return status; + } + } while (next_mode != config->mcgMode); + + if (config->pll0Config.enableMode & kMCG_PllEnableIndependent) + { + CLOCK_EnablePll0(&config->pll0Config); + } + else + { + MCG->C5 &= ~(uint32_t)kMCG_PllEnableIndependent; + } + return kStatus_Success; +} diff --git a/ext/hal/ksdk/devices/MK64F12/fsl_clock.h b/ext/hal/ksdk/devices/MK64F12/fsl_clock.h new file mode 100644 index 00000000000..1e75c3b7711 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/fsl_clock.h @@ -0,0 +1,1510 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o 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. + * + * o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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 _FSL_CLOCK_H_ +#define _FSL_CLOCK_H_ + +#include "fsl_device_registers.h" +#include +#include +#include + +/*! @addtogroup clock */ +/*! @{ */ + +/******************************************************************************* + * Definitions + ******************************************************************************/ + +/*! @brief Clock driver version. */ +#define FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 1, 0)) /*!< Version 2.1.0. */ + +/*! @brief External XTAL0 (OSC0) clock frequency. + * + * The XTAL0/EXTAL0 (OSC0) clock frequency in Hz, when the clock is setup, use the + * function CLOCK_SetXtal0Freq to set the value in to clock driver. For example, + * if XTAL0 is 8MHz, + * @code + * CLOCK_InitOsc0(...); // Setup the OSC0 + * CLOCK_SetXtal0Freq(80000000); // Set the XTAL0 value to clock driver. + * @endcode + * + * This is important for the multicore platforms, only one core needs to setup + * OSC0 using CLOCK_InitOsc0, all other cores need to call CLOCK_SetXtal0Freq + * to get valid clock frequency. + */ +extern uint32_t g_xtal0Freq; + +/*! @brief External XTAL32/EXTAL32/RTC_CLKIN clock frequency. + * + * The XTAL32/EXTAL32/RTC_CLKIN clock frequency in Hz, when the clock is setup, use the + * function CLOCK_SetXtal32Freq to set the value in to clock driver. + * + * This is important for the multicore platforms, only one core needs to setup + * the clock, all other cores need to call CLOCK_SetXtal32Freq + * to get valid clock frequency. + */ +extern uint32_t g_xtal32Freq; + +/*! @brief IRC48M clock frequency in Hz. */ +#define MCG_INTERNAL_IRC_48M 48000000U + +#if (defined(OSC) && !(defined(OSC0))) +#define OSC0 OSC +#endif + +/*! @brief Clock ip name array for DMAMUX. */ +#define DMAMUX_CLOCKS \ + { \ + kCLOCK_Dmamux0 \ + } + +/*! @brief Clock ip name array for RTC. */ +#define RTC_CLOCKS \ + { \ + kCLOCK_Rtc0 \ + } + +/*! @brief Clock ip name array for ENET. */ +#define ENET_CLOCKS \ + { \ + kCLOCK_Enet0 \ + } + +/*! @brief Clock ip name array for PORT. */ +#define PORT_CLOCKS \ + { \ + kCLOCK_PortA, kCLOCK_PortB, kCLOCK_PortC, kCLOCK_PortD, kCLOCK_PortE \ + } + +/*! @brief Clock ip name array for SAI. */ +#define SAI_CLOCKS \ + { \ + kCLOCK_Sai0 \ + } + +/*! @brief Clock ip name array for FLEXBUS. */ +#define FLEXBUS_CLOCKS \ + { \ + kCLOCK_Flexbus0 \ + } + +/*! @brief Clock ip name array for EWM. */ +#define EWM_CLOCKS \ + { \ + kCLOCK_Ewm0 \ + } + +/*! @brief Clock ip name array for PIT. */ +#define PIT_CLOCKS \ + { \ + kCLOCK_Pit0 \ + } + +/*! @brief Clock ip name array for DSPI. */ +#define DSPI_CLOCKS \ + { \ + kCLOCK_Spi0, kCLOCK_Spi1, kCLOCK_Spi2 \ + } + +/*! @brief Clock ip name array for LPTMR. */ +#define LPTMR_CLOCKS \ + { \ + kCLOCK_Lptmr0 \ + } + +/*! @brief Clock ip name array for SDHC. */ +#define SDHC_CLOCKS \ + { \ + kCLOCK_Sdhc0 \ + } + +/*! @brief Clock ip name array for FTM. */ +#define FTM_CLOCKS \ + { \ + kCLOCK_Ftm0, kCLOCK_Ftm1, kCLOCK_Ftm2, kCLOCK_Ftm3 \ + } + +/*! @brief Clock ip name array for EDMA. */ +#define EDMA_CLOCKS \ + { \ + kCLOCK_Dma0 \ + } + +/*! @brief Clock ip name array for FLEXCAN. */ +#define FLEXCAN_CLOCKS \ + { \ + kCLOCK_Flexcan0 \ + } + +/*! @brief Clock ip name array for DAC. */ +#define DAC_CLOCKS \ + { \ + kCLOCK_Dac0, kCLOCK_Dac1 \ + } + +/*! @brief Clock ip name array for ADC16. */ +#define ADC16_CLOCKS \ + { \ + kCLOCK_Adc0, kCLOCK_Adc1 \ + } + +/*! @brief Clock ip name array for MMCAU. */ +#define MMCAU_CLOCKS \ + { \ + kCLOCK_Mmcau0 \ + } + +/*! @brief Clock ip name array for MPU. */ +#define MPU_CLOCKS \ + { \ + kCLOCK_Mpu0 \ + } + +/*! @brief Clock ip name array for VREF. */ +#define VREF_CLOCKS \ + { \ + kCLOCK_Vref0 \ + } + +/*! @brief Clock ip name array for CMT. */ +#define CMT_CLOCKS \ + { \ + kCLOCK_Cmt0 \ + } + +/*! @brief Clock ip name array for UART. */ +#define UART_CLOCKS \ + { \ + kCLOCK_Uart0, kCLOCK_Uart1, kCLOCK_Uart2, kCLOCK_Uart3, kCLOCK_Uart4, kCLOCK_Uart5 \ + } + +/*! @brief Clock ip name array for RNGA. */ +#define RNGA_CLOCKS \ + { \ + kCLOCK_Rnga0 \ + } + +/*! @brief Clock ip name array for CRC. */ +#define CRC_CLOCKS \ + { \ + kCLOCK_Crc0 \ + } + +/*! @brief Clock ip name array for I2C. */ +#define I2C_CLOCKS \ + { \ + kCLOCK_I2c0, kCLOCK_I2c1, kCLOCK_I2c2 \ + } + +/*! @brief Clock ip name array for PDB. */ +#define PDB_CLOCKS \ + { \ + kCLOCK_Pdb0 \ + } + +/*! @brief Clock ip name array for FTF. */ +#define FTF_CLOCKS \ + { \ + kCLOCK_Ftf0 \ + } + +/*! @brief Clock ip name array for CMP. */ +#define CMP_CLOCKS \ + { \ + kCLOCK_Cmp0, kCLOCK_Cmp1, kCLOCK_Cmp2 \ + } + +/*! + * @brief LPO clock frequency. + */ +#define LPO_CLK_FREQ 1000U + +/*! @brief Peripherals clock source definition. */ +#define SYS_CLK kCLOCK_CoreSysClk +#define BUS_CLK kCLOCK_BusClk + +#define I2C0_CLK_SRC BUS_CLK +#define I2C1_CLK_SRC BUS_CLK +#define I2C2_CLK_SRC BUS_CLK +#define DSPI0_CLK_SRC BUS_CLK +#define DSPI1_CLK_SRC BUS_CLK +#define DSPI2_CLK_SRC BUS_CLK +#define UART0_CLK_SRC SYS_CLK +#define UART1_CLK_SRC SYS_CLK +#define UART2_CLK_SRC BUS_CLK +#define UART3_CLK_SRC BUS_CLK +#define UART4_CLK_SRC BUS_CLK +#define UART5_CLK_SRC BUS_CLK + +/*! @brief Clock name used to get clock frequency. */ +typedef enum _clock_name +{ + + /* ----------------------------- System layer clock -------------------------------*/ + kCLOCK_CoreSysClk, /*!< Core/system clock */ + kCLOCK_PlatClk, /*!< Platform clock */ + kCLOCK_BusClk, /*!< Bus clock */ + kCLOCK_FlexBusClk, /*!< FlexBus clock */ + kCLOCK_FlashClk, /*!< Flash clock */ + kCLOCK_FastPeriphClk, /*!< Fast peripheral clock */ + kCLOCK_PllFllSelClk, /*!< The clock after SIM[PLLFLLSEL]. */ + + /* ---------------------------------- OSC clock -----------------------------------*/ + kCLOCK_Er32kClk, /*!< External reference 32K clock (ERCLK32K) */ + kCLOCK_Osc0ErClk, /*!< OSC0 external reference clock (OSC0ERCLK) */ + kCLOCK_Osc1ErClk, /*!< OSC1 external reference clock (OSC1ERCLK) */ + kCLOCK_Osc0ErClkUndiv, /*!< OSC0 external reference undivided clock(OSC0ERCLK_UNDIV). */ + + /* ----------------------------- MCG and MCG-Lite clock ---------------------------*/ + kCLOCK_McgFixedFreqClk, /*!< MCG fixed frequency clock (MCGFFCLK) */ + kCLOCK_McgInternalRefClk, /*!< MCG internal reference clock (MCGIRCLK) */ + kCLOCK_McgFllClk, /*!< MCGFLLCLK */ + kCLOCK_McgPll0Clk, /*!< MCGPLL0CLK */ + kCLOCK_McgPll1Clk, /*!< MCGPLL1CLK */ + kCLOCK_McgExtPllClk, /*!< EXT_PLLCLK */ + kCLOCK_McgPeriphClk, /*!< MCG peripheral clock (MCGPCLK) */ + kCLOCK_McgIrc48MClk, /*!< MCG IRC48M clock */ + + /* --------------------------------- Other clock ----------------------------------*/ + kCLOCK_LpoClk, /*!< LPO clock */ + +} clock_name_t; + +/*! @brief USB clock source definition. */ +typedef enum _clock_usb_src +{ + kCLOCK_UsbSrcPll0 = SIM_SOPT2_USBSRC(1U) | SIM_SOPT2_PLLFLLSEL(1U), /*!< Use PLL0. */ + kCLOCK_UsbSrcIrc48M = SIM_SOPT2_USBSRC(1U) | SIM_SOPT2_PLLFLLSEL(3U), /*!< Use IRC48M. */ + kCLOCK_UsbSrcExt = SIM_SOPT2_USBSRC(0U) /*!< Use USB_CLKIN. */ +} clock_usb_src_t; + +/*------------------------------------------------------------------------------ + + clock_gate_t definition: + + 31 16 0 + ----------------------------------------------------------------- + | SIM_SCGC register offset | control bit offset in SCGC | + ----------------------------------------------------------------- + + For example, the SDHC clock gate is controlled by SIM_SCGC3[17], the + SIM_SCGC3 offset in SIM is 0x1030, then kCLOCK_GateSdhc0 is defined as + + kCLOCK_GateSdhc0 = (0x1030 << 16) | 17; + +------------------------------------------------------------------------------*/ + +#define CLK_GATE_REG_OFFSET_SHIFT 16U +#define CLK_GATE_REG_OFFSET_MASK 0xFFFF0000U +#define CLK_GATE_BIT_SHIFT_SHIFT 0U +#define CLK_GATE_BIT_SHIFT_MASK 0x0000FFFFU + +#define CLK_GATE_DEFINE(reg_offset, bit_shift) \ + ((((reg_offset) << CLK_GATE_REG_OFFSET_SHIFT) & CLK_GATE_REG_OFFSET_MASK) | \ + (((bit_shift) << CLK_GATE_BIT_SHIFT_SHIFT) & CLK_GATE_BIT_SHIFT_MASK)) + +#define CLK_GATE_ABSTRACT_REG_OFFSET(x) (((x)&CLK_GATE_REG_OFFSET_MASK) >> CLK_GATE_REG_OFFSET_SHIFT) +#define CLK_GATE_ABSTRACT_BITS_SHIFT(x) (((x)&CLK_GATE_BIT_SHIFT_MASK) >> CLK_GATE_BIT_SHIFT_SHIFT) + +/*! @brief Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. */ +typedef enum _clock_ip_name +{ + kCLOCK_IpInvalid = 0U, + kCLOCK_I2c2 = CLK_GATE_DEFINE(0x1028U, 6U), + kCLOCK_Uart4 = CLK_GATE_DEFINE(0x1028U, 10U), + kCLOCK_Uart5 = CLK_GATE_DEFINE(0x1028U, 11U), + + kCLOCK_Enet0 = CLK_GATE_DEFINE(0x102CU, 0U), + kCLOCK_Dac0 = CLK_GATE_DEFINE(0x102CU, 12U), + kCLOCK_Dac1 = CLK_GATE_DEFINE(0x102CU, 13U), + + kCLOCK_Spi2 = CLK_GATE_DEFINE(0x1030U, 12U), + kCLOCK_Sdhc0 = CLK_GATE_DEFINE(0x1030U, 17U), + kCLOCK_Ftm3 = CLK_GATE_DEFINE(0x1030U, 25U), + kCLOCK_Adc1 = CLK_GATE_DEFINE(0x1030U, 27U), + + kCLOCK_Ewm0 = CLK_GATE_DEFINE(0x1034U, 1U), + kCLOCK_Cmt0 = CLK_GATE_DEFINE(0x1034U, 2U), + kCLOCK_I2c0 = CLK_GATE_DEFINE(0x1034U, 6U), + kCLOCK_I2c1 = CLK_GATE_DEFINE(0x1034U, 7U), + kCLOCK_Uart0 = CLK_GATE_DEFINE(0x1034U, 10U), + kCLOCK_Uart1 = CLK_GATE_DEFINE(0x1034U, 11U), + kCLOCK_Uart2 = CLK_GATE_DEFINE(0x1034U, 12U), + kCLOCK_Uart3 = CLK_GATE_DEFINE(0x1034U, 13U), + kCLOCK_Usbfs0 = CLK_GATE_DEFINE(0x1034U, 18U), + kCLOCK_Cmp0 = CLK_GATE_DEFINE(0x1034U, 19U), + kCLOCK_Cmp1 = CLK_GATE_DEFINE(0x1034U, 19U), + kCLOCK_Cmp2 = CLK_GATE_DEFINE(0x1034U, 19U), + kCLOCK_Vref0 = CLK_GATE_DEFINE(0x1034U, 20U), + + kCLOCK_Lptmr0 = CLK_GATE_DEFINE(0x1038U, 0U), + kCLOCK_PortA = CLK_GATE_DEFINE(0x1038U, 9U), + kCLOCK_PortB = CLK_GATE_DEFINE(0x1038U, 10U), + kCLOCK_PortC = CLK_GATE_DEFINE(0x1038U, 11U), + kCLOCK_PortD = CLK_GATE_DEFINE(0x1038U, 12U), + kCLOCK_PortE = CLK_GATE_DEFINE(0x1038U, 13U), + + kCLOCK_Ftf0 = CLK_GATE_DEFINE(0x103CU, 0U), + kCLOCK_Dmamux0 = CLK_GATE_DEFINE(0x103CU, 1U), + kCLOCK_Flexcan0 = CLK_GATE_DEFINE(0x103CU, 4U), + kCLOCK_Rnga0 = CLK_GATE_DEFINE(0x103CU, 9U), + kCLOCK_Spi0 = CLK_GATE_DEFINE(0x103CU, 12U), + kCLOCK_Spi1 = CLK_GATE_DEFINE(0x103CU, 13U), + kCLOCK_Sai0 = CLK_GATE_DEFINE(0x103CU, 15U), + kCLOCK_Crc0 = CLK_GATE_DEFINE(0x103CU, 18U), + kCLOCK_Usbdcd0 = CLK_GATE_DEFINE(0x103CU, 21U), + kCLOCK_Pdb0 = CLK_GATE_DEFINE(0x103CU, 22U), + kCLOCK_Pit0 = CLK_GATE_DEFINE(0x103CU, 23U), + kCLOCK_Ftm0 = CLK_GATE_DEFINE(0x103CU, 24U), + kCLOCK_Ftm1 = CLK_GATE_DEFINE(0x103CU, 25U), + kCLOCK_Ftm2 = CLK_GATE_DEFINE(0x103CU, 26U), + kCLOCK_Adc0 = CLK_GATE_DEFINE(0x103CU, 27U), + kCLOCK_Rtc0 = CLK_GATE_DEFINE(0x103CU, 29U), + + kCLOCK_Flexbus0 = CLK_GATE_DEFINE(0x1040U, 0U), + kCLOCK_Dma0 = CLK_GATE_DEFINE(0x1040U, 1U), + kCLOCK_Mpu0 = CLK_GATE_DEFINE(0x1040U, 2U), +} clock_ip_name_t; + +/*!@brief SIM configuration structure for clock setting. */ +typedef struct _sim_clock_config +{ + uint8_t pllFllSel; /*!< PLL/FLL/IRC48M selection. */ + uint8_t er32kSrc; /*!< ERCLK32K source selection. */ + uint32_t clkdiv1; /*!< SIM_CLKDIV1. */ +} sim_clock_config_t; + +/*! @brief OSC work mode. */ +typedef enum _osc_mode +{ + kOSC_ModeExt = 0U, /*!< Use external clock. */ +#if (defined(MCG_C2_EREFS_MASK) && !(defined(MCG_C2_EREFS0_MASK))) + kOSC_ModeOscLowPower = MCG_C2_EREFS_MASK, /*!< Oscillator low power. */ +#else + kOSC_ModeOscLowPower = MCG_C2_EREFS0_MASK, /*!< Oscillator low power. */ +#endif + kOSC_ModeOscHighGain = 0U +#if (defined(MCG_C2_EREFS_MASK) && !(defined(MCG_C2_EREFS0_MASK))) + | + MCG_C2_EREFS_MASK +#else + | + MCG_C2_EREFS0_MASK +#endif +#if (defined(MCG_C2_HGO_MASK) && !(defined(MCG_C2_HGO0_MASK))) + | + MCG_C2_HGO_MASK, /*!< Oscillator high gain. */ +#else + | + MCG_C2_HGO0_MASK, /*!< Oscillator high gain. */ +#endif +} osc_mode_t; + +/*! @brief Oscillator capacitor load setting.*/ +enum _osc_cap_load +{ + kOSC_Cap2P = OSC_CR_SC2P_MASK, /*!< 2 pF capacitor load */ + kOSC_Cap4P = OSC_CR_SC4P_MASK, /*!< 4 pF capacitor load */ + kOSC_Cap8P = OSC_CR_SC8P_MASK, /*!< 8 pF capacitor load */ + kOSC_Cap16P = OSC_CR_SC16P_MASK /*!< 16 pF capacitor load */ +}; + +/*! @brief OSCERCLK enable mode. */ +enum _oscer_enable_mode +{ + kOSC_ErClkEnable = OSC_CR_ERCLKEN_MASK, /*!< Enable. */ + kOSC_ErClkEnableInStop = OSC_CR_EREFSTEN_MASK /*!< Enable in stop mode. */ +}; + +/*! @brief OSC configuration for OSCERCLK. */ +typedef struct _oscer_config +{ + uint8_t enableMode; /*!< OSCERCLK enable mode. OR'ed value of @ref _oscer_enable_mode. */ + +} oscer_config_t; + +/*! + * @brief OSC Initialization Configuration Structure + * + * Defines the configuration data structure to initialize the OSC. + * When porting to a new board, please set the following members + * according to board setting: + * 1. freq: The external frequency. + * 2. workMode: The OSC module mode. + */ +typedef struct _osc_config +{ + uint32_t freq; /*!< External clock frequency. */ + uint8_t capLoad; /*!< Capacitor load setting. */ + osc_mode_t workMode; /*!< OSC work mode setting. */ + oscer_config_t oscerConfig; /*!< Configuration for OSCERCLK. */ +} osc_config_t; + +/*! @brief MCG FLL reference clock source select. */ +typedef enum _mcg_fll_src +{ + kMCG_FllSrcExternal, /*!< External reference clock is selected */ + kMCG_FllSrcInternal /*!< The slow internal reference clock is selected */ +} mcg_fll_src_t; + +/*! @brief MCG internal reference clock select */ +typedef enum _mcg_irc_mode +{ + kMCG_IrcSlow, /*!< Slow internal reference clock selected */ + kMCG_IrcFast /*!< Fast internal reference clock selected */ +} mcg_irc_mode_t; + +/*! @brief MCG DCO Maximum Frequency with 32.768 kHz Reference */ +typedef enum _mcg_dmx32 +{ + kMCG_Dmx32Default, /*!< DCO has a default range of 25% */ + kMCG_Dmx32Fine /*!< DCO is fine-tuned for maximum frequency with 32.768 kHz reference */ +} mcg_dmx32_t; + +/*! @brief MCG DCO range select */ +typedef enum _mcg_drs +{ + kMCG_DrsLow, /*!< Low frequency range */ + kMCG_DrsMid, /*!< Mid frequency range */ + kMCG_DrsMidHigh, /*!< Mid-High frequency range */ + kMCG_DrsHigh /*!< High frequency range */ +} mcg_drs_t; + +/*! @brief MCG PLL reference clock select */ +typedef enum _mcg_pll_ref_src +{ + kMCG_PllRefOsc0, /*!< Selects OSC0 as PLL reference clock */ + kMCG_PllRefOsc1 /*!< Selects OSC1 as PLL reference clock */ +} mcg_pll_ref_src_t; + +/*! @brief MCGOUT clock source. */ +typedef enum _mcg_clkout_src +{ + kMCG_ClkOutSrcOut, /*!< Output of the FLL is selected (reset default) */ + kMCG_ClkOutSrcInternal, /*!< Internal reference clock is selected */ + kMCG_ClkOutSrcExternal, /*!< External reference clock is selected */ +} mcg_clkout_src_t; + +/*! @brief MCG Automatic Trim Machine Select */ +typedef enum _mcg_atm_select +{ + kMCG_AtmSel32k, /*!< 32 kHz Internal Reference Clock selected */ + kMCG_AtmSel4m /*!< 4 MHz Internal Reference Clock selected */ +} mcg_atm_select_t; + +/*! @brief MCG OSC Clock Select */ +typedef enum _mcg_oscsel +{ + kMCG_OscselOsc, /*!< Selects System Oscillator (OSCCLK) */ + kMCG_OscselRtc, /*!< Selects 32 kHz RTC Oscillator */ + kMCG_OscselIrc /*!< Selects 48 MHz IRC Oscillator */ +} mcg_oscsel_t; + +/*! @brief MCG PLLCS select */ +typedef enum _mcg_pll_clk_select +{ + kMCG_PllClkSelPll0, /*!< PLL0 output clock is selected */ + kMCG_PllClkSelPll1 /* PLL1 output clock is selected */ +} mcg_pll_clk_select_t; + +/*! @brief MCG clock monitor mode. */ +typedef enum _mcg_monitor_mode +{ + kMCG_MonitorNone, /*!< Clock monitor is disabled. */ + kMCG_MonitorInt, /*!< Trigger interrupt when clock lost. */ + kMCG_MonitorReset /*!< System reset when clock lost. */ +} mcg_monitor_mode_t; + +/*! @brief MCG status. */ +enum _mcg_status +{ + kStatus_MCG_ModeUnreachable = MAKE_STATUS(kStatusGroup_MCG, 0), /*!< Can't switch to target mode. */ + kStatus_MCG_ModeInvalid = MAKE_STATUS(kStatusGroup_MCG, 1), /*!< Current mode invalid for the specific + function. */ + kStatus_MCG_AtmBusClockInvalid = MAKE_STATUS(kStatusGroup_MCG, 2), /*!< Invalid bus clock for ATM. */ + kStatus_MCG_AtmDesiredFreqInvalid = MAKE_STATUS(kStatusGroup_MCG, 3), /*!< Invalid desired frequency for ATM. */ + kStatus_MCG_AtmIrcUsed = MAKE_STATUS(kStatusGroup_MCG, 4), /*!< IRC is used when using ATM. */ + kStatus_MCG_AtmHardwareFail = MAKE_STATUS(kStatusGroup_MCG, 5), /*!< Hardware fail occurs during ATM. */ + kStatus_MCG_SourceUsed = MAKE_STATUS(kStatusGroup_MCG, 6) /*!< Could not change clock source because + it is used currently. */ +}; + +/*! @brief MCG status flags. */ +enum _mcg_status_flags_t +{ + kMCG_Osc0LostFlag = (1U << 0U), /*!< OSC0 lost. */ + kMCG_Osc0InitFlag = (1U << 1U), /*!< OSC0 crystal initialized. */ + kMCG_RtcOscLostFlag = (1U << 4U), /*!< RTC OSC lost. */ + kMCG_Pll0LostFlag = (1U << 5U), /*!< PLL0 lost. */ + kMCG_Pll0LockFlag = (1U << 6U), /*!< PLL0 locked. */ +}; + +/*! @brief MCG internal reference clock (MCGIRCLK) enable mode definition. */ +enum _mcg_irclk_enable_mode +{ + kMCG_IrclkEnable = MCG_C1_IRCLKEN_MASK, /*!< MCGIRCLK enable. */ + kMCG_IrclkEnableInStop = MCG_C1_IREFSTEN_MASK /*!< MCGIRCLK enable in stop mode. */ +}; + +/*! @brief MCG PLL clock enable mode definition. */ +enum _mcg_pll_enable_mode +{ + kMCG_PllEnableIndependent = MCG_C5_PLLCLKEN0_MASK, /*!< MCGPLLCLK enable indepencent of + MCG clock mode. Generally, PLL + is disabled in FLL modes + (FEI/FBI/FEE/FBE), set PLL clock + enable independent will enable + PLL in the FLL modes. */ + kMCG_PllEnableInStop = MCG_C5_PLLSTEN0_MASK /*!< MCGPLLCLK enable in STOP mode. */ +}; + +/*! @brief MCG mode definitions */ +typedef enum _mcg_mode +{ + kMCG_ModeFEI = 0U, /*!< FEI - FLL Engaged Internal */ + kMCG_ModeFBI, /*!< FBI - FLL Bypassed Internal */ + kMCG_ModeBLPI, /*!< BLPI - Bypassed Low Power Internal */ + kMCG_ModeFEE, /*!< FEE - FLL Engaged External */ + kMCG_ModeFBE, /*!< FBE - FLL Bypassed External */ + kMCG_ModeBLPE, /*!< BLPE - Bypassed Low Power External */ + kMCG_ModePBE, /*!< PBE - PLL Bypassed External */ + kMCG_ModePEE, /*!< PEE - PLL Engaged External */ + kMCG_ModeError /*!< Unknown mode */ +} mcg_mode_t; + +/*! @brief MCG PLL configuration. */ +typedef struct _mcg_pll_config +{ + uint8_t enableMode; /*!< Enable mode. OR'ed value of @ref _mcg_pll_enable_mode. */ + uint8_t prdiv; /*!< Reference divider PRDIV. */ + uint8_t vdiv; /*!< VCO divider VDIV. */ +} mcg_pll_config_t; + +/*! @brief MCG configure structure for mode change. + * + * When porting to a new board, please set the following members + * according to board setting: + * 1. frdiv: If FLL uses the external reference clock, please set this + * value to make sure external reference clock divided by frdiv is + * in the range 31.25kHz to 39.0625kHz. + * 2. The PLL reference clock divider PRDIV: PLL reference clock frequency after + * PRDIV should be in the range of FSL_FEATURE_MCG_PLL_REF_MIN to + * FSL_FEATURE_MCG_PLL_REF_MAX. + */ +typedef struct _mcg_config +{ + mcg_mode_t mcgMode; /*!< MCG mode. */ + + /* ----------------------- MCGIRCCLK settings ------------------------ */ + uint8_t irclkEnableMode; /*!< MCGIRCLK enable mode. */ + mcg_irc_mode_t ircs; /*!< Source, MCG_C2[IRCS]. */ + uint8_t fcrdiv; /*!< Divider, MCG_SC[FCRDIV]. */ + + /* ------------------------ MCG FLL settings ------------------------- */ + uint8_t frdiv; /*!< Divider MCG_C1[FRDIV]. */ + mcg_drs_t drs; /*!< DCO range MCG_C4[DRST_DRS]. */ + mcg_dmx32_t dmx32; /*!< MCG_C4[DMX32]. */ + mcg_oscsel_t oscsel; /*!< OSC select MCG_C7[OSCSEL]. */ + + /* ------------------------ MCG PLL settings ------------------------- */ + mcg_pll_config_t pll0Config; /*!< MCGPLL0CLK configuration. */ + +} mcg_config_t; + +/******************************************************************************* + * API + ******************************************************************************/ + +#if defined(__cplusplus) +extern "C" { +#endif /* __cplusplus */ + +/*! + * @brief Set the XTAL0 frequency based on board setting. + * + * @param freq The XTAL0/EXTAL0 input clock frequency in Hz. + */ +static inline void CLOCK_SetXtal0Freq(uint32_t freq) +{ + g_xtal0Freq = freq; +} + +/*! + * @brief Set the XTAL32/RTC_CLKIN frequency based on board setting. + * + * @param freq The XTAL32/EXTAL32/RTC_CLKIN input clock frequency in Hz. + */ +static inline void CLOCK_SetXtal32Freq(uint32_t freq) +{ + g_xtal32Freq = freq; +} + +/*! + * @brief Enable the clock for specific IP. + * + * @param name Which clock to enable, see \ref clock_ip_name_t. + */ +static inline void CLOCK_EnableClock(clock_ip_name_t name) +{ + uint32_t regAddr = SIM_BASE + CLK_GATE_ABSTRACT_REG_OFFSET((uint32_t)name); + (*(volatile uint32_t *)regAddr) |= (1U << CLK_GATE_ABSTRACT_BITS_SHIFT((uint32_t)name)); +} + +/*! + * @brief Disable the clock for specific IP. + * + * @param name Which clock to disable, see \ref clock_ip_name_t. + */ +static inline void CLOCK_DisableClock(clock_ip_name_t name) +{ + uint32_t regAddr = SIM_BASE + CLK_GATE_ABSTRACT_REG_OFFSET((uint32_t)name); + (*(volatile uint32_t *)regAddr) &= ~(1U << CLK_GATE_ABSTRACT_BITS_SHIFT((uint32_t)name)); +} + +/*! + * @brief Set ERCLK32K source. + * + * @param src The value to set ERCLK32K clock source. + */ +static inline void CLOCK_SetEr32kClock(uint32_t src) +{ + SIM->SOPT1 = ((SIM->SOPT1 & ~SIM_SOPT1_OSC32KSEL_MASK) | SIM_SOPT1_OSC32KSEL(src)); +} + +/*! + * @brief Set SDHC0 clock source. + * + * @param src The value to set SDHC0 clock source. + */ +static inline void CLOCK_SetSdhc0Clock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_SDHCSRC_MASK) | SIM_SOPT2_SDHCSRC(src)); +} + +/*! + * @brief Set enet timestamp clock source. + * + * @param src The value to set enet timestamp clock source. + */ +static inline void CLOCK_SetEnetTime0Clock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_TIMESRC_MASK) | SIM_SOPT2_TIMESRC(src)); +} + +/*! + * @brief Set RMII clock source. + * + * @param src The value to set RMII clock source. + */ +static inline void CLOCK_SetRmii0Clock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_RMIISRC_MASK) | SIM_SOPT2_RMIISRC(src)); +} + +/*! + * @brief Set debug trace clock source. + * + * @param src The value to set debug trace clock source. + */ +static inline void CLOCK_SetTraceClock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_TRACECLKSEL_MASK) | SIM_SOPT2_TRACECLKSEL(src)); +} + +/*! + * @brief Set PLLFLLSEL clock source. + * + * @param src The value to set PLLFLLSEL clock source. + */ +static inline void CLOCK_SetPllFllSelClock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_PLLFLLSEL_MASK) | SIM_SOPT2_PLLFLLSEL(src)); +} + +/*! + * @brief Set CLKOUT source. + * + * @param src The value to set CLKOUT source. + */ +static inline void CLOCK_SetClkOutClock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_CLKOUTSEL_MASK) | SIM_SOPT2_CLKOUTSEL(src)); +} + +/*! + * @brief Set RTC_CLKOUT source. + * + * @param src The value to set RTC_CLKOUT source. + */ +static inline void CLOCK_SetRtcClkOutClock(uint32_t src) +{ + SIM->SOPT2 = ((SIM->SOPT2 & ~SIM_SOPT2_RTCCLKOUTSEL_MASK) | SIM_SOPT2_RTCCLKOUTSEL(src)); +} + +/*! @brief Enable USB FS clock. + * + * @param src USB FS clock source. + * @param freq The frequency specified by src. + * @retval true The clock is set successfully. + * @retval false The clock source is invalid to get proper USB FS clock. + */ +bool CLOCK_EnableUsbfs0Clock(clock_usb_src_t src, uint32_t freq); + +/*! @brief Disable USB FS clock. + * + * Disable USB FS clock. + */ +static inline void CLOCK_DisableUsbfs0Clock(void) +{ + CLOCK_DisableClock(kCLOCK_Usbfs0); +} + +/*! + * @brief System clock divider + * + * Set the SIM_CLKDIV1[OUTDIV1], SIM_CLKDIV1[OUTDIV2], SIM_CLKDIV1[OUTDIV3], SIM_CLKDIV1[OUTDIV4]. + * + * @param outdiv1 Clock 1 output divider value. + * + * @param outdiv2 Clock 2 output divider value. + * + * @param outdiv3 Clock 3 output divider value. + * + * @param outdiv4 Clock 4 output divider value. + */ +static inline void CLOCK_SetOutDiv(uint32_t outdiv1, uint32_t outdiv2, uint32_t outdiv3, uint32_t outdiv4) +{ + SIM->CLKDIV1 = SIM_CLKDIV1_OUTDIV1(outdiv1) | SIM_CLKDIV1_OUTDIV2(outdiv2) | SIM_CLKDIV1_OUTDIV3(outdiv3) | + SIM_CLKDIV1_OUTDIV4(outdiv4); +} + +/*! + * @brief Gets the clock frequency for a specific clock name. + * + * This function checks the current clock configurations and then calculates + * the clock frequency for a specific clock name defined in clock_name_t. + * The MCG must be properly configured before using this function. + * + * @param clockName Clock names defined in clock_name_t + * @return Clock frequency value in Hertz + */ +uint32_t CLOCK_GetFreq(clock_name_t clockName); + +/*! + * @brief Get the core clock or system clock frequency. + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetCoreSysClkFreq(void); + +/*! + * @brief Get the platform clock frequency. + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetPlatClkFreq(void); + +/*! + * @brief Get the bus clock frequency. + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetBusClkFreq(void); + +/*! + * @brief Get the flexbus clock frequency. + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetFlexBusClkFreq(void); + +/*! + * @brief Get the flash clock frequency. + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetFlashClkFreq(void); + +/*! + * @brief Get the output clock frequency selected by SIM[PLLFLLSEL]. + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetPllFllSelClkFreq(void); + +/*! + * @brief Get the external reference 32K clock frequency (ERCLK32K). + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetEr32kClkFreq(void); + +/*! + * @brief Get the OSC0 external reference clock frequency (OSC0ERCLK). + * + * @return Clock frequency in Hz. + */ +uint32_t CLOCK_GetOsc0ErClkFreq(void); + +/*! + * @brief Set the clock configure in SIM module. + * + * This function sets system layer clock settings in SIM module. + * + * @param config Pointer to the configure structure. + */ +void CLOCK_SetSimConfig(sim_clock_config_t const *config); + +/*! + * @brief Set the system clock dividers in SIM to safe value. + * + * The system level clocks (core clock, bus clock, flexbus clock and flash clock) + * must be in allowed ranges. During MCG clock mode switch, the MCG output clock + * changes then the system level clocks may be out of range. This function could + * be used before MCG mode change, to make sure system level clocks are in allowed + * range. + * + * @param config Pointer to the configure structure. + */ +static inline void CLOCK_SetSimSafeDivs(void) +{ + SIM->CLKDIV1 = 0x01240000U; +} + +/*! @name MCG frequency functions. */ +/*@{*/ + +/*! + * @brief Get the MCG output clock(MCGOUTCLK) frequency. + * + * This function gets the MCG output clock frequency (Hz) based on current MCG + * register value. + * + * @return The frequency of MCGOUTCLK. + */ +uint32_t CLOCK_GetOutClkFreq(void); + +/*! + * @brief Get the MCG FLL clock(MCGFLLCLK) frequency. + * + * This function gets the MCG FLL clock frequency (Hz) based on current MCG + * register value. The FLL is only enabled in FEI/FBI/FEE/FBE mode, in other + * modes, FLL is disabled in low power state. + * + * @return The frequency of MCGFLLCLK. + */ +uint32_t CLOCK_GetFllFreq(void); + +/*! + * @brief Get the MCG internal reference clock(MCGIRCLK) frequency. + * + * This function gets the MCG internal reference clock frequency (Hz) based + * on current MCG register value. + * + * @return The frequency of MCGIRCLK. + */ +uint32_t CLOCK_GetInternalRefClkFreq(void); + +/*! + * @brief Get the MCG fixed frequency clock(MCGFFCLK) frequency. + * + * This function gets the MCG fixed frequency clock frequency (Hz) based + * on current MCG register value. + * + * @return The frequency of MCGFFCLK. + */ +uint32_t CLOCK_GetFixedFreqClkFreq(void); + +/*! + * @brief Get the MCG PLL0 clock(MCGPLL0CLK) frequency. + * + * This function gets the MCG PLL0 clock frequency (Hz) based on current MCG + * register value. + * + * @return The frequency of MCGPLL0CLK. + */ +uint32_t CLOCK_GetPll0Freq(void); + +/*@}*/ + +/*! @name MCG clock configuration. */ +/*@{*/ + +/*! + * @brief Enable or disable MCG low power. + * + * Enable MCG low power will disable the PLL and FLL in bypass modes. That is, + * in FBE and PBE modes, enable low power will set MCG to BLPE mode, in FBI and + * PBI mode, enable low power will set MCG to BLPI mode. + * When disable MCG low power, the PLL or FLL will be enabled based on MCG setting. + * + * @param enable True to enable MCG low power, false to disable MCG low power. + */ +static inline void CLOCK_SetLowPowerEnable(bool enable) +{ + if (enable) + { + MCG->C2 |= MCG_C2_LP_MASK; + } + else + { + MCG->C2 &= ~MCG_C2_LP_MASK; + } +} + +/*! + * @brief Configure the Internal Reference clock (MCGIRCLK) + * + * This function setups the \c MCGIRCLK base on parameters. It selects the IRC + * source, if fast IRC is used, this function also sets the fast IRC divider. + * This function also sets whether enable \c MCGIRCLK in stop mode. + * Calling this function in FBI/PBI/BLPI modes may change the system clock, so + * it is not allowed to use this in these modes. + * + * @param enableMode MCGIRCLK enable mode, OR'ed value of @ref _mcg_irclk_enable_mode. + * @param ircs MCGIRCLK clock source, choose fast or slow. + * @param fcrdiv Fast IRC divider setting (\c FCRDIV). + * @retval kStatus_MCG_SourceUsed MCGIRCLK is used as system clock, should not configure MCGIRCLK. + * @retval kStatus_Success MCGIRCLK configuration finished successfully. + */ +status_t CLOCK_SetInternalRefClkConfig(uint8_t enableMode, mcg_irc_mode_t ircs, uint8_t fcrdiv); + +/*! + * @brief Select the MCG external reference clock. + * + * Select the MCG external reference clock source, it changes the MCG_C7[OSCSEL] + * and wait for the clock source stable. Should not change external reference + * clock in FEE/FBE/BLPE/PBE/PEE mdes, so don't call this function in these modes. + * + * @param oscsel MCG external reference clock source, MCG_C7[OSCSEL]. + * @retval kStatus_MCG_SourceUsed External reference clock is used, should not change. + * @retval kStatus_Success External reference clock set successfully. + */ +status_t CLOCK_SetExternalRefClkConfig(mcg_oscsel_t oscsel); + +/*! + * @brief Enables the PLL0 in FLL mode. + * + * This function setups the PLL0 in FLL mode, make sure the PLL reference + * clock is enabled before calling this function. This function reconfigures + * the PLL0, make sure the PLL0 is not used as a clock source while calling + * this function. The function CLOCK_CalcPllDiv can help to get the proper PLL + * divider values. + * + * @param config Pointer to the configuration structure. + */ +void CLOCK_EnablePll0(mcg_pll_config_t const *config); + +/*! + * @brief Disables the PLL0 in FLL mode. + * + * This function disables the PLL0 in FLL mode, it should be used together with + * @ref CLOCK_EnablePll0. + */ +static inline void CLOCK_DisablePll0(void) +{ + MCG->C5 &= ~(MCG_C5_PLLCLKEN0_MASK | MCG_C5_PLLSTEN0_MASK); +} + +/*! + * @brief Calculates the PLL divider setting for desired output frequency. + * + * This function calculates the proper reference clock divider (\c PRDIV) and + * VCO divider (\c VDIV) to generate desired PLL output frequency. It returns the + * closest frequency PLL could generate, the corresponding \c PRDIV/VDIV are + * returned from parameters. If desired frequency is not valid, this function + * returns 0. + * + * @param refFreq PLL reference clock frequency. + * @param desireFreq Desired PLL output frequency. + * @param prdiv PRDIV value to generate desired PLL frequency. + * @param vdiv VDIV value to generate desired PLL frequency. + * @return Closest frequency PLL could generate. + */ +uint32_t CLOCK_CalcPllDiv(uint32_t refFreq, uint32_t desireFreq, uint8_t *prdiv, uint8_t *vdiv); + +/*@}*/ + +/*! @name MCG clock lock monitor functions. */ +/*@{*/ + +/*! + * @brief Set the OSC0 clock monitor mode. + * + * Set the OSC0 clock monitor mode, see @ref mcg_monitor_mode_t for details. + * + * @param mode The monitor mode to set. + */ +void CLOCK_SetOsc0MonitorMode(mcg_monitor_mode_t mode); + +/*! + * @brief Set the RTC OSC clock monitor mode. + * + * Set the RTC OSC clock monitor mode, see @ref mcg_monitor_mode_t for details. + * + * @param mode The monitor mode to set. + */ +void CLOCK_SetRtcOscMonitorMode(mcg_monitor_mode_t mode); + +/*! + * @brief Set the PLL0 clock monitor mode. + * + * Set the PLL0 clock monitor mode, see @ref mcg_monitor_mode_t for details. + * + * @param mode The monitor mode to set. + */ +void CLOCK_SetPll0MonitorMode(mcg_monitor_mode_t mode); + +/*! + * @brief Get the MCG status flags. + * + * This function gets the MCG clock status flags, all the status flags are + * returned as a logical OR of the enumeration @ref _mcg_status_flags_t. To + * check specific flags, compare the return value with the flags. + * + * Example: + * @code + // To check the clock lost lock status of OSC0 and PLL0. + uint32_t mcgFlags; + + mcgFlags = CLOCK_GetStatusFlags(); + + if (mcgFlags & kMCG_Osc0LostFlag) + { + // OSC0 clock lock lost. Do something. + } + if (mcgFlags & kMCG_Pll0LostFlag) + { + // PLL0 clock lock lost. Do something. + } + @endcode + * + * @return Logical OR value of the @ref _mcg_status_flags_t. + */ +uint32_t CLOCK_GetStatusFlags(void); + +/*! + * @brief Clears the MCG status flags. + * + * This function clears the MCG clock lock lost status. The parameter is logical + * OR value of the flags to clear, see @ref _mcg_status_flags_t. + * + * Example: + * @code + // To clear the clock lost lock status flags of OSC0 and PLL0. + + CLOCK_ClearStatusFlags(kMCG_Osc0LostFlag | kMCG_Pll0LostFlag); + @endcode + * + * @param mask The status flags to clear. This is a logical OR of members of the + * enumeration @ref _mcg_status_flags_t. + */ +void CLOCK_ClearStatusFlags(uint32_t mask); + +/*@}*/ + +/*! + * @name OSC configuration + * @{ + */ + +/*! + * @brief Configures the OSC external reference clock (OSCERCLK). + * + * This function configures the OSC external reference clock (OSCERCLK). + * For example, to enable the OSCERCLK in normal mode and stop mode, and also set + * the output divider to 1, as follows: + * + @code + oscer_config_t config = + { + .enableMode = kOSC_ErClkEnable | kOSC_ErClkEnableInStop, + .erclkDiv = 1U, + }; + + OSC_SetExtRefClkConfig(OSC, &config); + @endcode + * + * @param base OSC peripheral address. + * @param config Pointer to the configuration structure. + */ +static inline void OSC_SetExtRefClkConfig(OSC_Type *base, oscer_config_t const *config) +{ + uint8_t reg = base->CR; + + reg &= ~(OSC_CR_ERCLKEN_MASK | OSC_CR_EREFSTEN_MASK); + reg |= config->enableMode; + + base->CR = reg; +} + +/*! + * @brief Sets the capacitor load configuration for the oscillator. + * + * This function sets the specified capacitors configuration for the oscillator. + * This should be done in the early system level initialization function call + * based on the system configuration. + * + * @param base OSC peripheral address. + * @param capLoad OR'ed value for the capacitor load option, see \ref _osc_cap_load. + * + * Example: + @code + // To enable only 2 pF and 8 pF capacitor load, please use like this. + OSC_SetCapLoad(OSC, kOSC_Cap2P | kOSC_Cap8P); + @endcode + */ +static inline void OSC_SetCapLoad(OSC_Type *base, uint8_t capLoad) +{ + uint8_t reg = base->CR; + + reg &= ~(OSC_CR_SC2P_MASK | OSC_CR_SC4P_MASK | OSC_CR_SC8P_MASK | OSC_CR_SC16P_MASK); + reg |= capLoad; + + base->CR = reg; +} + +/*! + * @brief Initialize OSC0. + * + * This function initializes OSC0 according to board configuration. + * + * @param config Pointer to the OSC0 configuration structure. + */ +void CLOCK_InitOsc0(osc_config_t const *config); + +/*! + * @brief Deinitialize OSC0. + * + * This function deinitializes OSC0. + */ +void CLOCK_DeinitOsc0(void); + +/* @} */ + +/*! + * @name MCG auto-trim machine. + * @{ + */ + +/*! + * @brief Auto trim the internal reference clock. + * + * This function trims the internal reference clock using external clock. If + * successful, it returns the kStatus_Success and the frequency after + * trimming is received in the parameter @p actualFreq. If an error occurs, + * the error code is returned. + * + * @param extFreq External clock frequency, should be bus clock. + * @param desireFreq Frequency want to trim to. + * @param actualFreq Actual frequency after trim. + * @param atms Trim fast or slow internal reference clock. + * @retval kStatus_Success ATM success. + * @retval kStatus_MCG_AtmBusClockInvalid The bus clock is not in allowed range for ATM. + * @retval kStatus_MCG_AtmDesiredFreqInvalid MCGIRCLK could not be trimmed to the desired frequency. + * @retval kStatus_MCG_AtmIrcUsed Could not trim because MCGIRCLK is used as bus clock source. + * @retval kStatus_MCG_AtmHardwareFail Hardware fails during trim. + */ +status_t CLOCK_TrimInternalRefClk(uint32_t extFreq, uint32_t desireFreq, uint32_t *actualFreq, mcg_atm_select_t atms); +/* @} */ + +/*! @name MCG mode functions. */ +/*@{*/ + +/*! + * @brief Gets the current MCG mode. + * + * This function checks the MCG registers and determine current MCG mode. + * + * @return Current MCG mode or error code, see @ref mcg_mode_t. + */ +mcg_mode_t CLOCK_GetMode(void); + +/*! + * @brief Set MCG to FEI mode. + * + * This function sets MCG to FEI mode. If could not set to FEI mode directly + * from current mode, this function returns error. @ref kMCG_Dmx32Default is used in this + * mode because using kMCG_Dmx32Fine with internal reference clock source + * might damage hardware. + * + * @param drs The DCO range selection. + * @param fllStableDelay Delay function to make sure FLL is stable, if pass + * in NULL, then does not delay. + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_SetFeiMode(mcg_drs_t drs, void (*fllStableDelay)(void)); + +/*! + * @brief Set MCG to FEE mode. + * + * This function sets MCG to FEE mode. If could not set to FEE mode directly + * from current mode, this function returns error. + * + * @param frdiv FLL reference clock divider setting, FRDIV. + * @param dmx32 DMX32 in FEE mode. + * @param drs The DCO range selection. + * @param fllStableDelay Delay function to make sure FLL is stable, if pass + * in NULL, then does not delay. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_SetFeeMode(uint8_t frdiv, mcg_dmx32_t dmx32, mcg_drs_t drs, void (*fllStableDelay)(void)); + +/*! + * @brief Set MCG to FBI mode. + * + * This function sets MCG to FBI mode. If could not set to FBI mode directly + * from current mode, this function returns error. + * + * @param drs The DCO range selection. + * @param fllStableDelay Delay function to make sure FLL is stable. If FLL + * is not used in FBI mode, this parameter could be NULL. Pass in + * NULL does not delay. + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_SetFbiMode(mcg_drs_t drs, void (*fllStableDelay)(void)); + +/*! + * @brief Set MCG to FBE mode. + * + * This function sets MCG to FBE mode. If could not set to FBE mode directly + * from current mode, this function returns error. + * + * @param frdiv FLL reference clock divider setting, FRDIV. + * @param dmx32 DMX32 in FBE mode. + * @param drs The DCO range selection. + * @param fllStableDelay Delay function to make sure FLL is stable. If FLL + * is not used in FBE mode, this parameter could be NULL. Pass in NULL + * does not delay. + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_SetFbeMode(uint8_t frdiv, mcg_dmx32_t dmx32, mcg_drs_t drs, void (*fllStableDelay)(void)); + +/*! + * @brief Set MCG to BLPI mode. + * + * This function sets MCG to BLPI mode. If could not set to BLPI mode directly + * from current mode, this function returns error. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_SetBlpiMode(void); + +/*! + * @brief Set MCG to BLPE mode. + * + * This function sets MCG to BLPE mode. If could not set to BLPE mode directly + * from current mode, this function returns error. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_SetBlpeMode(void); + +/*! + * @brief Set MCG to PBE mode. + * + * This function sets MCG to PBE mode. If could not set to PBE mode directly + * from current mode, this function returns error. + * + * @param pllcs The PLL selection, PLLCS. + * @param config Pointer to the PLL configuration. + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + * + * @note + * 1. The parameter \c pllcs selects the PLL, for some platforms, there is + * only one PLL, the parameter pllcs is kept for interface compatible. + * 2. The parameter \c config is the PLL configuration structure, on some + * platforms, could choose the external PLL directly. This means that the + * configuration structure is not necessary, pass in NULL for this case. + * For example: CLOCK_SetPbeMode(kMCG_OscselOsc, kMCG_PllClkSelExtPll, NULL); + */ +status_t CLOCK_SetPbeMode(mcg_pll_clk_select_t pllcs, mcg_pll_config_t const *config); + +/*! + * @brief Set MCG to PEE mode. + * + * This function sets MCG to PEE mode. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + * + * @note This function only change CLKS to use PLL/FLL output. If the + * PRDIV/VDIV are different from PBE mode, please setup these + * settings in PBE mode and wait for stable then switch to PEE mode. + */ +status_t CLOCK_SetPeeMode(void); + +/*! + * @brief Switch MCG to FBE mode quickly from external mode. + * + * This function changes MCG from external modes (PEE/PBE/BLPE/FEE) to FBE mode quickly. + * It only changes to use external clock as the system clock souce and disable PLL, but does not + * configure FLL settings. This is a lite function with small code size, it is useful + * during mode switch. For example, to switch from PEE mode to FEI mode: + * + * @code + * CLOCK_ExternalModeToFbeModeQuick(); + * CLOCK_SetFeiMode(...); + * @endcode + * + * @retval kStatus_Success Change successfully. + * @retval kStatus_MCG_ModeInvalid Current mode is not external modes, should not call this function. + */ +status_t CLOCK_ExternalModeToFbeModeQuick(void); + +/*! + * @brief Switch MCG to FBI mode quickly from internal modes. + * + * This function changes MCG from internal modes (PEI/PBI/BLPI/FEI) to FBI mode quickly. + * It only changes to use MCGIRCLK as the system clock souce and disable PLL, but does not + * configure FLL settings. This is a lite function with small code size, it is useful + * during mode switch. For example, to switch from PEI mode to FEE mode: + * + * @code + * CLOCK_InternalModeToFbiModeQuick(); + * CLOCK_SetFeeMode(...); + * @endcode + * + * @retval kStatus_Success Change successfully. + * @retval kStatus_MCG_ModeInvalid Current mode is not internal mode, should not call this function. + */ +status_t CLOCK_InternalModeToFbiModeQuick(void); + +/*! + * @brief Set MCG to FEI mode during system boot up. + * + * This function sets MCG to FEI mode from reset mode, it could be used to + * set up MCG during system boot up. @ref kMCG_Dmx32Default is used in this + * mode because using kMCG_Dmx32Fine with internal reference clock source + * might damage hardware. + * + * @param drs The DCO range selection. + * @param fllStableDelay Delay function to make sure FLL is stable. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_BootToFeiMode(mcg_drs_t drs, void (*fllStableDelay)(void)); + +/*! + * @brief Set MCG to FEE mode during system bootup. + * + * This function sets MCG to FEE mode from reset mode, it could be used to + * set up MCG during system boot up. + * + * @param oscsel OSC clock select, OSCSEL. + * @param frdiv FLL reference clock divider setting, FRDIV. + * @param dmx32 DMX32 in FEE mode. + * @param drs The DCO range selection. + * @param fllStableDelay Delay function to make sure FLL is stable. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_BootToFeeMode( + mcg_oscsel_t oscsel, uint8_t frdiv, mcg_dmx32_t dmx32, mcg_drs_t drs, void (*fllStableDelay)(void)); + +/*! + * @brief Set MCG to BLPI mode during system boot up. + * + * This function sets MCG to BLPI mode from reset mode, it could be used to + * setup MCG during sytem boot up. + * + * @param fcrdiv Fast IRC divider, FCRDIV. + * @param ircs The internal reference clock to select, IRCS. + * @param ircEnableMode The MCGIRCLK enable mode, OR'ed value of @ref _mcg_irclk_enable_mode. + * + * @retval kStatus_MCG_SourceUsed Could not change MCGIRCLK setting. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_BootToBlpiMode(uint8_t fcrdiv, mcg_irc_mode_t ircs, uint8_t ircEnableMode); + +/*! + * @brief Set MCG to BLPE mode during sytem boot up. + * + * This function sets MCG to BLPE mode from reset mode, it could be used to + * setup MCG during sytem boot up. + * + * @param oscsel OSC clock select, MCG_C7[OSCSEL]. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_BootToBlpeMode(mcg_oscsel_t oscsel); + +/*! + * @brief Set MCG to PEE mode during system boot up. + * + * This function sets MCG to PEE mode from reset mode, it could be used to + * setup MCG during system boot up. + * + * @param oscsel OSC clock select, MCG_C7[OSCSEL]. + * @param pllcs The PLL selection, PLLCS. + * @param config Pointer to the PLL configuration. + * + * @retval kStatus_MCG_ModeUnreachable Could not switch to the target mode. + * @retval kStatus_Success Switch to target mode successfully. + */ +status_t CLOCK_BootToPeeMode(mcg_oscsel_t oscsel, mcg_pll_clk_select_t pllcs, mcg_pll_config_t const *config); + +/*! + * @brief Set MCG to some target mode. + * + * This function sets MCG to some target mode defined by the configure + * structure, if cannot switch to target mode directly, this function will + * choose the proper path. + * + * @param config Pointer to the target MCG mode configuration structure. + * @return Return kStatus_Success if switch successfully, otherwise return error code #_mcg_status. + * + * @note If external clock is used in the target mode, please make sure it is + * enabled, for example, if the OSC0 is used, please setup OSC0 correctly before + * this funciton. + */ +status_t CLOCK_SetMcgConfig(mcg_config_t const *config); + +/*@}*/ + +#if defined(__cplusplus) +} +#endif /* __cplusplus */ + +/*! @} */ + +#endif /* _FSL_CLOCK_H_ */ diff --git a/ext/hal/ksdk/devices/MK64F12/fsl_device_registers.h b/ext/hal/ksdk/devices/MK64F12/fsl_device_registers.h new file mode 100644 index 00000000000..2ca0dc42a53 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/fsl_device_registers.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2014 - 2016, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o 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. + * + * o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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 __FSL_DEVICE_REGISTERS_H__ +#define __FSL_DEVICE_REGISTERS_H__ + +/* + * Include the cpu specific register header files. + * + * The CPU macro should be declared in the project or makefile. + */ +#if (defined(CPU_MK64FN1M0CAJ12) || defined(CPU_MK64FN1M0VDC12) || defined(CPU_MK64FN1M0VLL12) || \ + defined(CPU_MK64FN1M0VLQ12) || defined(CPU_MK64FN1M0VMD12) || defined(CPU_MK64FX512VDC12) || \ + defined(CPU_MK64FX512VLL12) || defined(CPU_MK64FX512VLQ12) || defined(CPU_MK64FX512VMD12)) + +#define K64F12_SERIES + +/* CMSIS-style register definitions */ +#include "MK64F12.h" +/* CPU specific feature definitions */ +#include "MK64F12_features.h" + +#else + #error "No valid CPU defined!" +#endif + +#endif /* __FSL_DEVICE_REGISTERS_H__ */ + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/ext/hal/ksdk/devices/MK64F12/system_MK64F12.c b/ext/hal/ksdk/devices/MK64F12/system_MK64F12.c new file mode 100644 index 00000000000..c04333ef268 --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/system_MK64F12.c @@ -0,0 +1,247 @@ +/* +** ################################################################### +** Processors: MK64FN1M0VDC12 +** MK64FN1M0VLL12 +** MK64FN1M0VLQ12 +** MK64FN1M0VMD12 +** MK64FX512VDC12 +** MK64FX512VLL12 +** MK64FX512VLQ12 +** MK64FX512VMD12 +** +** Compilers: Keil ARM C/C++ Compiler +** Freescale C/C++ for Embedded ARM +** GNU C Compiler +** IAR ANSI C/C++ Compiler for ARM +** +** Reference manual: K64P144M120SF5RM, Rev.2, January 2014 +** Version: rev. 2.8, 2015-02-19 +** Build: b151216 +** +** Abstract: +** Provides a system configuration function and a global variable that +** contains the system frequency. It configures the device and initializes +** the oscillator (PLL) that is part of the microcontroller device. +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o 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. +** +** o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** Revisions: +** - rev. 1.0 (2013-08-12) +** Initial version. +** - rev. 2.0 (2013-10-29) +** Register accessor macros added to the memory map. +** Symbols for Processor Expert memory map compatibility added to the memory map. +** Startup file for gcc has been updated according to CMSIS 3.2. +** System initialization updated. +** MCG - registers updated. +** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed. +** - rev. 2.1 (2013-10-30) +** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled. +** - rev. 2.2 (2013-12-09) +** DMA - EARS register removed. +** AIPS0, AIPS1 - MPRA register updated. +** - rev. 2.3 (2014-01-24) +** Update according to reference manual rev. 2 +** ENET, MCG, MCM, SIM, USB - registers updated +** - rev. 2.4 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** - rev. 2.5 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** Module access macro module_BASES replaced by module_BASE_PTRS. +** - rev. 2.6 (2014-08-28) +** Update of system files - default clock configuration changed. +** Update of startup files - possibility to override DefaultISR added. +** - rev. 2.7 (2014-10-14) +** Interrupt INT_LPTimer renamed to INT_LPTMR0, interrupt INT_Watchdog renamed to INT_WDOG_EWM. +** - rev. 2.8 (2015-02-19) +** Renamed interrupt vector LLW to LLWU. +** +** ################################################################### +*/ + +/*! + * @file MK64F12 + * @version 2.8 + * @date 2015-02-19 + * @brief Device specific configuration file for MK64F12 (implementation file) + * + * Provides a system configuration function and a global variable that contains + * the system frequency. It configures the device and initializes the oscillator + * (PLL) that is part of the microcontroller device. + */ + +#include +#include "fsl_device_registers.h" + + + +/* ---------------------------------------------------------------------------- + -- Core clock + ---------------------------------------------------------------------------- */ + +uint32_t SystemCoreClock = DEFAULT_SYSTEM_CLOCK; + +/* ---------------------------------------------------------------------------- + -- SystemInit() + ---------------------------------------------------------------------------- */ + +void SystemInit (void) { +#if ((__FPU_PRESENT == 1) && (__FPU_USED == 1)) + SCB->CPACR |= ((3UL << 10*2) | (3UL << 11*2)); /* set CP10, CP11 Full Access */ +#endif /* ((__FPU_PRESENT == 1) && (__FPU_USED == 1)) */ +#if (DISABLE_WDOG) + /* WDOG->UNLOCK: WDOGUNLOCK=0xC520 */ + WDOG->UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(0xC520); /* Key 1 */ + /* WDOG->UNLOCK: WDOGUNLOCK=0xD928 */ + WDOG->UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(0xD928); /* Key 2 */ + /* WDOG->STCTRLH: ?=0,DISTESTWDOG=0,BYTESEL=0,TESTSEL=0,TESTWDOG=0,?=0,?=1,WAITEN=1,STOPEN=1,DBGEN=0,ALLOWUPDATE=1,WINEN=0,IRQRSTEN=0,CLKSRC=1,WDOGEN=0 */ + WDOG->STCTRLH = WDOG_STCTRLH_BYTESEL(0x00) | + WDOG_STCTRLH_WAITEN_MASK | + WDOG_STCTRLH_STOPEN_MASK | + WDOG_STCTRLH_ALLOWUPDATE_MASK | + WDOG_STCTRLH_CLKSRC_MASK | + 0x0100U; +#endif /* (DISABLE_WDOG) */ + +} + +/* ---------------------------------------------------------------------------- + -- SystemCoreClockUpdate() + ---------------------------------------------------------------------------- */ + +void SystemCoreClockUpdate (void) { + uint32_t MCGOUTClock; /* Variable to store output clock frequency of the MCG module */ + uint16_t Divider; + + if ((MCG->C1 & MCG_C1_CLKS_MASK) == 0x00U) { + /* Output of FLL or PLL is selected */ + if ((MCG->C6 & MCG_C6_PLLS_MASK) == 0x00U) { + /* FLL is selected */ + if ((MCG->C1 & MCG_C1_IREFS_MASK) == 0x00U) { + /* External reference clock is selected */ + switch (MCG->C7 & MCG_C7_OSCSEL_MASK) { + case 0x00U: + MCGOUTClock = CPU_XTAL_CLK_HZ; /* System oscillator drives MCG clock */ + break; + case 0x01U: + MCGOUTClock = CPU_XTAL32k_CLK_HZ; /* RTC 32 kHz oscillator drives MCG clock */ + break; + case 0x02U: + default: + MCGOUTClock = CPU_INT_IRC_CLK_HZ; /* IRC 48MHz oscillator drives MCG clock */ + break; + } + if (((MCG->C2 & MCG_C2_RANGE_MASK) != 0x00U) && ((MCG->C7 & MCG_C7_OSCSEL_MASK) != 0x01U)) { + switch (MCG->C1 & MCG_C1_FRDIV_MASK) { + case 0x38U: + Divider = 1536U; + break; + case 0x30U: + Divider = 1280U; + break; + default: + Divider = (uint16_t)(32LU << ((MCG->C1 & MCG_C1_FRDIV_MASK) >> MCG_C1_FRDIV_SHIFT)); + break; + } + } else {/* ((MCG->C2 & MCG_C2_RANGE_MASK) != 0x00U) */ + Divider = (uint16_t)(1LU << ((MCG->C1 & MCG_C1_FRDIV_MASK) >> MCG_C1_FRDIV_SHIFT)); + } + MCGOUTClock = (MCGOUTClock / Divider); /* Calculate the divided FLL reference clock */ + } else { /* (!((MCG->C1 & MCG_C1_IREFS_MASK) == 0x00U)) */ + MCGOUTClock = CPU_INT_SLOW_CLK_HZ; /* The slow internal reference clock is selected */ + } /* (!((MCG->C1 & MCG_C1_IREFS_MASK) == 0x00U)) */ + /* Select correct multiplier to calculate the MCG output clock */ + switch (MCG->C4 & (MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS_MASK)) { + case 0x00U: + MCGOUTClock *= 640U; + break; + case 0x20U: + MCGOUTClock *= 1280U; + break; + case 0x40U: + MCGOUTClock *= 1920U; + break; + case 0x60U: + MCGOUTClock *= 2560U; + break; + case 0x80U: + MCGOUTClock *= 732U; + break; + case 0xA0U: + MCGOUTClock *= 1464U; + break; + case 0xC0U: + MCGOUTClock *= 2197U; + break; + case 0xE0U: + MCGOUTClock *= 2929U; + break; + default: + break; + } + } else { /* (!((MCG->C6 & MCG_C6_PLLS_MASK) == 0x00U)) */ + /* PLL is selected */ + Divider = (((uint16_t)MCG->C5 & MCG_C5_PRDIV0_MASK) + 0x01U); + MCGOUTClock = (uint32_t)(CPU_XTAL_CLK_HZ / Divider); /* Calculate the PLL reference clock */ + Divider = (((uint16_t)MCG->C6 & MCG_C6_VDIV0_MASK) + 24U); + MCGOUTClock *= Divider; /* Calculate the MCG output clock */ + } /* (!((MCG->C6 & MCG_C6_PLLS_MASK) == 0x00U)) */ + } else if ((MCG->C1 & MCG_C1_CLKS_MASK) == 0x40U) { + /* Internal reference clock is selected */ + if ((MCG->C2 & MCG_C2_IRCS_MASK) == 0x00U) { + MCGOUTClock = CPU_INT_SLOW_CLK_HZ; /* Slow internal reference clock selected */ + } else { /* (!((MCG->C2 & MCG_C2_IRCS_MASK) == 0x00U)) */ + Divider = (uint16_t)(0x01LU << ((MCG->SC & MCG_SC_FCRDIV_MASK) >> MCG_SC_FCRDIV_SHIFT)); + MCGOUTClock = (uint32_t) (CPU_INT_FAST_CLK_HZ / Divider); /* Fast internal reference clock selected */ + } /* (!((MCG->C2 & MCG_C2_IRCS_MASK) == 0x00U)) */ + } else if ((MCG->C1 & MCG_C1_CLKS_MASK) == 0x80U) { + /* External reference clock is selected */ + switch (MCG->C7 & MCG_C7_OSCSEL_MASK) { + case 0x00U: + MCGOUTClock = CPU_XTAL_CLK_HZ; /* System oscillator drives MCG clock */ + break; + case 0x01U: + MCGOUTClock = CPU_XTAL32k_CLK_HZ; /* RTC 32 kHz oscillator drives MCG clock */ + break; + case 0x02U: + default: + MCGOUTClock = CPU_INT_IRC_CLK_HZ; /* IRC 48MHz oscillator drives MCG clock */ + break; + } + } else { /* (!((MCG->C1 & MCG_C1_CLKS_MASK) == 0x80U)) */ + /* Reserved value */ + return; + } /* (!((MCG->C1 & MCG_C1_CLKS_MASK) == 0x80U)) */ + SystemCoreClock = (MCGOUTClock / (0x01U + ((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV1_MASK) >> SIM_CLKDIV1_OUTDIV1_SHIFT))); +} diff --git a/ext/hal/ksdk/devices/MK64F12/system_MK64F12.h b/ext/hal/ksdk/devices/MK64F12/system_MK64F12.h new file mode 100644 index 00000000000..72bb5aa448b --- /dev/null +++ b/ext/hal/ksdk/devices/MK64F12/system_MK64F12.h @@ -0,0 +1,168 @@ +/* +** ################################################################### +** Processors: MK64FN1M0VDC12 +** MK64FN1M0VLL12 +** MK64FN1M0VLQ12 +** MK64FN1M0VMD12 +** MK64FX512VDC12 +** MK64FX512VLL12 +** MK64FX512VLQ12 +** MK64FX512VMD12 +** +** Compilers: Keil ARM C/C++ Compiler +** Freescale C/C++ for Embedded ARM +** GNU C Compiler +** IAR ANSI C/C++ Compiler for ARM +** +** Reference manual: K64P144M120SF5RM, Rev.2, January 2014 +** Version: rev. 2.8, 2015-02-19 +** Build: b151216 +** +** Abstract: +** Provides a system configuration function and a global variable that +** contains the system frequency. It configures the device and initializes +** the oscillator (PLL) that is part of the microcontroller device. +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o 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. +** +** o Neither the name of Freescale Semiconductor, Inc. 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 HOLDER 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. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** Revisions: +** - rev. 1.0 (2013-08-12) +** Initial version. +** - rev. 2.0 (2013-10-29) +** Register accessor macros added to the memory map. +** Symbols for Processor Expert memory map compatibility added to the memory map. +** Startup file for gcc has been updated according to CMSIS 3.2. +** System initialization updated. +** MCG - registers updated. +** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed. +** - rev. 2.1 (2013-10-30) +** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled. +** - rev. 2.2 (2013-12-09) +** DMA - EARS register removed. +** AIPS0, AIPS1 - MPRA register updated. +** - rev. 2.3 (2014-01-24) +** Update according to reference manual rev. 2 +** ENET, MCG, MCM, SIM, USB - registers updated +** - rev. 2.4 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** - rev. 2.5 (2014-02-10) +** The declaration of clock configurations has been moved to separate header file system_MK64F12.h +** Update of SystemInit() and SystemCoreClockUpdate() functions. +** Module access macro module_BASES replaced by module_BASE_PTRS. +** - rev. 2.6 (2014-08-28) +** Update of system files - default clock configuration changed. +** Update of startup files - possibility to override DefaultISR added. +** - rev. 2.7 (2014-10-14) +** Interrupt INT_LPTimer renamed to INT_LPTMR0, interrupt INT_Watchdog renamed to INT_WDOG_EWM. +** - rev. 2.8 (2015-02-19) +** Renamed interrupt vector LLW to LLWU. +** +** ################################################################### +*/ + +/*! + * @file MK64F12 + * @version 2.8 + * @date 2015-02-19 + * @brief Device specific configuration file for MK64F12 (header file) + * + * Provides a system configuration function and a global variable that contains + * the system frequency. It configures the device and initializes the oscillator + * (PLL) that is part of the microcontroller device. + */ + +#ifndef _SYSTEM_MK64F12_H_ +#define _SYSTEM_MK64F12_H_ /**< Symbol preventing repeated inclusion */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + + +#ifndef DISABLE_WDOG + #define DISABLE_WDOG 1 +#endif + +#define CPU_XTAL_CLK_HZ 50000000u /* Value of the external crystal or oscillator clock frequency in Hz */ +#define CPU_XTAL32k_CLK_HZ 32768u /* Value of the external 32k crystal or oscillator clock frequency in Hz */ +#define CPU_INT_SLOW_CLK_HZ 32768u /* Value of the slow internal oscillator clock frequency in Hz */ +#define CPU_INT_FAST_CLK_HZ 4000000u /* Value of the fast internal oscillator clock frequency in Hz */ +#define CPU_INT_IRC_CLK_HZ 48000000u /* Value of the 48M internal oscillator clock frequency in Hz */ + +/* RTC oscillator setting */ +/* RTC_CR: SC2P=0,SC4P=0,SC8P=0,SC16P=0,CLKO=1,OSCE=1,WPS=0,UM=0,SUP=0,WPE=0,SWR=0 */ +#define SYSTEM_RTC_CR_VALUE 0x0300U /* RTC_CR */ + +/* Low power mode enable */ +/* SMC_PMPROT: AVLP=1,ALLS=1,AVLLS=1 */ +#define SYSTEM_SMC_PMPROT_VALUE 0x2AU /* SMC_PMPROT */ + +#define DEFAULT_SYSTEM_CLOCK 20971520u /* Default System clock value */ + + +/** + * @brief System clock frequency (core clock) + * + * The system clock frequency supplied to the SysTick timer and the processor + * core clock. This variable can be used by the user application to setup the + * SysTick timer or configure other parameters. It may also be used by debugger to + * query the frequency of the debug timer or configure the trace clock speed + * SystemCoreClock is initialized with a correct predefined value. + */ +extern uint32_t SystemCoreClock; + +/** + * @brief Setup the microcontroller system. + * + * Typically this function configures the oscillator (PLL) that is part of the + * microcontroller device. For systems with variable clock speed it also updates + * the variable SystemCoreClock. SystemInit is called from startup_device file. + */ +void SystemInit (void); + +/** + * @brief Updates the SystemCoreClock variable. + * + * It must be called whenever the core clock is changed during program + * execution. SystemCoreClockUpdate() evaluates the clock register settings and calculates + * the current core clock. + */ +void SystemCoreClockUpdate (void); + +#ifdef __cplusplus +} +#endif + +#endif /* _SYSTEM_MK64F12_H_ */