From 462aad233fe58d207c0e899e3330fa6f370c5e8f Mon Sep 17 00:00:00 2001 From: Owen L - SFE Date: Mon, 12 Aug 2019 11:29:00 -0600 Subject: [PATCH 1/5] Replace 'mcu/apollo3' by 2.2.0 version --- .../am_sdk_ap3/mcu/apollo3/am_mcu_apollo.h | 29 +- .../am_sdk_ap3/mcu/apollo3/hal/Makefile | 48 + .../am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.c | 63 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.h | 11 +- .../mcu/apollo3/hal/am_hal_ble_patch.c | 6 +- .../mcu/apollo3/hal/am_hal_ble_patch.h | 2 +- .../mcu/apollo3/hal/am_hal_ble_patch_b0.c | 179 +- .../mcu/apollo3/hal/am_hal_ble_patch_b0.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.h | 2 +- .../mcu/apollo3/hal/am_hal_cachectrl.c | 176 +- .../mcu/apollo3/hal/am_hal_cachectrl.h | 17 +- .../mcu/apollo3/hal/am_hal_clkgen.c | 15 +- .../mcu/apollo3/hal/am_hal_clkgen.h | 6 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.h | 2 +- .../mcu/apollo3/hal/am_hal_ctimer.c | 2 +- .../mcu/apollo3/hal/am_hal_ctimer.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.c | 181 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.h | 26 +- .../mcu/apollo3/hal/am_hal_global.c | 2 +- .../mcu/apollo3/hal/am_hal_global.h | 8 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.c | 628 ++-- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.h | 1102 +++---- .../mcu/apollo3/hal/am_hal_interrupt.c | 2 +- .../mcu/apollo3/hal/am_hal_interrupt.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.c | 13 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.h | 2 +- .../mcu/apollo3/hal/am_hal_mcuctrl.c | 199 +- .../mcu/apollo3/hal/am_hal_mcuctrl.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.c | 19 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.h | 14 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_pin.h | 2 +- .../mcu/apollo3/hal/am_hal_pwrctrl.c | 21 +- .../mcu/apollo3/hal/am_hal_pwrctrl.h | 6 +- .../mcu/apollo3/hal/am_hal_pwrctrl_internal.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.c | 14 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.h | 3 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.c | 1574 +++++++++ .../am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.h | 659 ++++ .../mcu/apollo3/hal/am_hal_secure_ota.c | 2 +- .../mcu/apollo3/hal/am_hal_secure_ota.h | 2 +- .../mcu/apollo3/hal/am_hal_security.c | 11 +- .../mcu/apollo3/hal/am_hal_security.h | 18 +- .../mcu/apollo3/hal/am_hal_status.h | 2 +- .../mcu/apollo3/hal/am_hal_stimer.c | 2 +- .../mcu/apollo3/hal/am_hal_stimer.h | 2 +- .../mcu/apollo3/hal/am_hal_sysctrl.c | 2 +- .../mcu/apollo3/hal/am_hal_sysctrl.h | 2 +- .../mcu/apollo3/hal/am_hal_systick.c | 2 +- .../mcu/apollo3/hal/am_hal_systick.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.h | 4 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.c | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.h | 2 +- .../am_sdk_ap3/mcu/apollo3/hal/gcc/Makefile | 178 ++ .../mcu/apollo3/hal/gcc/bin/libam_hal.a | Bin 0 -> 191472 bytes .../am_sdk_ap3/mcu/apollo3/hal/iar/Makefile | 112 + .../mcu/apollo3/hal/iar/bin/libam_hal.a | Bin 0 -> 318836 bytes .../mcu/apollo3/hal/iar/libam_hal.ewd | 2810 +++++++++++++++++ .../mcu/apollo3/hal/iar/libam_hal.ewp | 2135 +++++++++++++ .../mcu/apollo3/hal/iar/libam_hal.eww | 10 + .../am_sdk_ap3/mcu/apollo3/hal/keil/Makefile | 115 + .../mcu/apollo3/hal/keil/bin/libam_hal.lib | Bin 0 -> 383724 bytes .../mcu/apollo3/hal/keil/libam_hal.uvoptx | 712 +++++ .../mcu/apollo3/hal/keil/libam_hal.uvprojx | 566 ++++ .../am_sdk_ap3/mcu/apollo3/regs/am_reg.h | 281 ++ .../am_sdk_ap3/mcu/apollo3/regs/am_reg_adc.h | 11 - .../mcu/apollo3/regs/am_reg_apbdma.h | 11 - .../mcu/apollo3/regs/am_reg_base_addresses.h | 2 +- .../mcu/apollo3/regs/am_reg_bleif.h | 11 - .../mcu/apollo3/regs/am_reg_cachectrl.h | 11 - .../mcu/apollo3/regs/am_reg_clkgen.h | 11 - .../mcu/apollo3/regs/am_reg_ctimer.h | 11 - .../mcu/apollo3/regs/am_reg_flashctrl.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_gpio.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_iom.h | 11 - .../mcu/apollo3/regs/am_reg_iomstr_cmd.h | 2 +- .../mcu/apollo3/regs/am_reg_ioslave.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_itm.h | 16 - .../mcu/apollo3/regs/am_reg_jedec.h | 78 +- .../am_sdk_ap3/mcu/apollo3/regs/am_reg_m4.h | 81 + .../mcu/apollo3/regs/am_reg_macros.h | 8 +- .../mcu/apollo3/regs/am_reg_macros_asm.h | 2 +- .../mcu/apollo3/regs/am_reg_mcuctrl.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_mspi.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_nvic.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_pdm.h | 11 - .../mcu/apollo3/regs/am_reg_pwrctrl.h | 11 - .../mcu/apollo3/regs/am_reg_rstgen.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_rtc.h | 11 - .../mcu/apollo3/regs/am_reg_scard.h | 11 - .../mcu/apollo3/regs/am_reg_security.h | 11 - .../mcu/apollo3/regs/am_reg_sysctrl.h | 19 - .../mcu/apollo3/regs/am_reg_systick.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_tpiu.h | 18 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_uart.h | 11 - .../mcu/apollo3/regs/am_reg_vcomp.h | 11 - .../am_sdk_ap3/mcu/apollo3/regs/am_reg_wdt.h | 11 - 115 files changed, 10903 insertions(+), 1631 deletions(-) create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/Makefile create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.c create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.h create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/Makefile create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/bin/libam_hal.a create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/Makefile create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/bin/libam_hal.a create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewd create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewp create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.eww create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/Makefile create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/bin/libam_hal.lib create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/libam_hal.uvoptx create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/libam_hal.uvprojx create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_adc.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_apbdma.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_bleif.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_cachectrl.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_clkgen.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ctimer.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_flashctrl.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_gpio.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iom.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ioslave.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_itm.h create mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_m4.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mcuctrl.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mspi.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_nvic.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pdm.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pwrctrl.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rstgen.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rtc.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_scard.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_security.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_sysctrl.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_systick.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_tpiu.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_uart.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_vcomp.h delete mode 100644 cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_wdt.h diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/am_mcu_apollo.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/am_mcu_apollo.h index 0973ef9f..105d76f4 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/am_mcu_apollo.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/am_mcu_apollo.h @@ -48,7 +48,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_MCU_APOLLO_H @@ -106,31 +106,9 @@ #include "regs/am_reg_macros.h" -#include "regs/am_reg_adc.h" -#include "regs/am_reg_apbdma.h" -#include "regs/am_reg_bleif.h" -#include "regs/am_reg_cachectrl.h" -#include "regs/am_reg_clkgen.h" -#include "regs/am_reg_ctimer.h" -#include "regs/am_reg_gpio.h" -#include "regs/am_reg_iom.h" -#include "regs/am_reg_ioslave.h" -#include "regs/am_reg_itm.h" +#include "regs/am_reg.h" +#include "regs/am_reg_m4.h" #include "regs/am_reg_jedec.h" -#include "regs/am_reg_mcuctrl.h" -#include "regs/am_reg_mspi.h" -#include "regs/am_reg_nvic.h" -#include "regs/am_reg_pdm.h" -#include "regs/am_reg_pwrctrl.h" -#include "regs/am_reg_rstgen.h" -#include "regs/am_reg_rtc.h" -#include "regs/am_reg_security.h" -#include "regs/am_reg_sysctrl.h" -#include "regs/am_reg_systick.h" -#include "regs/am_reg_tpiu.h" -#include "regs/am_reg_uart.h" -#include "regs/am_reg_vcomp.h" -#include "regs/am_reg_wdt.h" //***************************************************************************** // @@ -164,6 +142,7 @@ #include "hal/am_hal_queue.h" #include "hal/am_hal_reset.h" #include "hal/am_hal_rtc.h" +#include "hal/am_hal_scard.h" #include "hal/am_hal_secure_ota.h" #include "hal/am_hal_stimer.h" #include "hal/am_hal_security.h" diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/Makefile b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/Makefile new file mode 100644 index 00000000..37a13203 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/Makefile @@ -0,0 +1,48 @@ +#****************************************************************************** +# +# Makefile - Rules for compiling +# +# Copyright (c) 2019, Ambiq Micro +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# Third party software included in this distribution is subject to the +# additional license terms as defined in the /docs/licenses directory. +# +# 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. +# +# This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +# +#****************************************************************************** + +# All makefiles use this to find the top level directory. +SWROOT?=../../.. + +# Include rules for building the HAL. +include $(SWROOT)/makedefs/am_hal.mk + +# Generate pin definitions for apollo3. +CHIP_GENERATION = 3 diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.c index 5fc25e38..3bd77231 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.h index 6dbb1ba7..8c93517b 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_adc.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_ADC_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.c index ea88d4ba..5b7b38a1 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.c @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -70,7 +70,7 @@ am_hal_ble_state_t g_sBLEState[AM_REG_BLEIF_NUM_MODULES]; #define BLEIF_INTSTAT_BLECSSTATN_Msk BLEIF_INTSTAT_B2MSHUTDN_Msk #define BLEIF_INTSTAT_BLECIRQN_Msk BLEIF_INTSTAT_B2MACTIVE_Msk -#define SKIP_FALLING_EDGES 1 +#define SKIP_FALLING_EDGES 0 //***************************************************************************** // @@ -697,55 +697,34 @@ am_hal_ble_boot(void *pHandle) { // The B0 silicon patching method is slightly different from A1. B0 silicon // does not require the Copy Patch method introduced for A1 silicon. - if (APOLLO3_B0) - { - //apply the BLE trim value - ui32Status = am_hal_ble_default_trim_set_ramcode(pHandle); - if (ui32Status != AM_HAL_STATUS_SUCCESS) - { - return ui32Status; - } - - // Apply the NVDS patch. - ui32Status = am_hal_ble_default_patch_apply(pHandle); - if (ui32Status != AM_HAL_STATUS_SUCCESS) - { - return ui32Status; - } - - // Complete the patching step - ui32Status = am_hal_ble_patch_complete(pHandle); - if (ui32Status != AM_HAL_STATUS_SUCCESS) - { - return ui32Status; - } - - } - else if (APOLLO3_A0 || APOLLO3_A1) + if (APOLLO3_A0 || APOLLO3_A1) { ui32Status = am_hal_ble_default_copy_patch_apply(pHandle); if (ui32Status != AM_HAL_STATUS_SUCCESS) { return ui32Status; } + } - ui32Status = am_hal_ble_default_trim_set_ramcode(pHandle); - if (ui32Status != AM_HAL_STATUS_SUCCESS) - { - return ui32Status; - } + //apply the BLE trim value + ui32Status = am_hal_ble_default_trim_set_ramcode(pHandle); + if (ui32Status != AM_HAL_STATUS_SUCCESS) + { + return ui32Status; + } - ui32Status = am_hal_ble_default_patch_apply(pHandle); - if (ui32Status != AM_HAL_STATUS_SUCCESS) - { - return ui32Status; - } + // Apply the NVDS patch. + ui32Status = am_hal_ble_default_patch_apply(pHandle); + if (ui32Status != AM_HAL_STATUS_SUCCESS) + { + return ui32Status; + } - ui32Status = am_hal_ble_patch_complete(pHandle); - if (ui32Status != AM_HAL_STATUS_SUCCESS) - { - return ui32Status; - } + // Complete the patching step + ui32Status = am_hal_ble_patch_complete(pHandle); + if (ui32Status != AM_HAL_STATUS_SUCCESS) + { + return ui32Status; } } diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.h index bf098bd8..8f572133 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -723,15 +723,6 @@ extern uint32_t am_hal_ble_default_trim_set(void *pHandle); uint32_t am_hal_ble_default_trim_set_ramcode(void *pHandle); -//***************************************************************************** -// -// Set the 32M crystal frequency -// based on the tested values at customer side. -// set trim value smaller in case of negative frequency offset -// -//***************************************************************************** -extern uint32_t am_hal_ble_crystal_trim_set(void *pHandle, uint32_t ui32TrimValue); - //***************************************************************************** // //! @brief Change the TX power setting. diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.c index 642fd6c5..95200015 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.c @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -335,7 +335,7 @@ am_hal_ble_buffer(0x0104) am_ble_performance_patch_data = { .bytes = { - 0x00,0x11,0x02,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xc5,0x01, + 0x00,0x11,0x02,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0xc5,0x01, 0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1b,0x00,0xa1,0x06,0x1f,0xb5,0x82,0xb0,0x08,0x98,0x00,0x90, 0x02,0xa8,0x0f,0xc8,0x01,0x4c,0xa0,0x47,0x06,0xb0,0x10,0xbd,0x01,0x35,0x00,0x20, @@ -668,7 +668,7 @@ am_hal_ble_buffer(0x00be) am_ble_buffer_nvds_data = 0x15,0x06,0x01,0x08, //BLE major version 0x16,0x06,0x01,0x03, //BLE minor version 0x17,0x06,0x01,0x29, //BLE SW version build - 0x18,0x06,0x02,0x4c,0x04, //advertising interval (undirect) + 0x18,0x06,0x02,0xdc,0x05, //advertising interval (undirect) 0x19,0x06,0x02,0xe2,0x04, //advertising interval (direct) 0x20,0x06,0x01,0x01, //agc switch 0x21,0x06,0x01,0x02, //EA programming latency diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.h index 399cf5c9..eb800f78 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.c index ece7658d..997049eb 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.c @@ -44,12 +44,36 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include "am_mcu_apollo.h" + +//***************************************************************************** +// +// BLE LL local supported feature flags. +// +// Bit position | Link Layer Feature +// 0 | LE Encryption +// 1 | Connection Parameters Request Procedure +// 2 | Extended Reject Indication +// 3 | Slave-initiated Features Exchange +// 4 | LE Ping +// 5 | LE Data Packet Length Extension +// 6 | LL Privacy +// 7 | Extended Scanner Filter Policies +// +// Specified 4.6 Feature Support, Link Layer Specification, Core V4.2. +// +//***************************************************************************** +#ifndef AM_HAL_BLE_LOCAL_FEATURE +#define AM_HAL_BLE_LOCAL_FEATURE 0x21 +#endif + + + //***************************************************************************** // // Patches included in this file. @@ -87,50 +111,73 @@ const uint32_t am_hal_ble_num_default_patches_b0 = AM_HAL_BLE_NUM_DEFAULT_PATCHE //***************************************************************************** // -// Patch Name: RAMCODE PATCH v0.3 for Apollo3 B0 +// Patch Name: RAMCODE PATCH v0.4 for Apollo3 B0 // Reduce duration from TX to TX // Optimized 32K XO frequency calculation // Optimized AGC Table // Fixed Channelmap indication rejected issue -// Date: 2019-03-05 +// Fixed 800M Spur +// Fixed feature issue +// Date: 2019-05-15 //***************************************************************************** -am_hal_ble_buffer(0x0428) am_ble_performance_patch_data_b0 = + +am_hal_ble_buffer(0x0568) am_ble_performance_patch_data_b0 = { .bytes = { - 0x00,0x11,0x24,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xc5,0x01, + 0x00,0x11,0x64,0x05,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0xc5,0x01, 0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x1f,0xb5,0x00,0x24,0x00,0x98,0x22,0x28,0x25,0xd2,0x01,0x00, - 0x79,0x44,0x09,0x79,0x49,0x18,0x8f,0x44,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x10,0x22,0x22,0x22,0x22,0x22,0x22,0x22, - 0x22,0x13,0x16,0x22,0x22,0x20,0x20,0x20,0x20,0x1c,0x00,0xf0,0x13,0xf8,0x0e,0xe0, - 0x00,0xf0,0x24,0xf9,0x0b,0xe0,0x01,0x98,0xc0,0xb2,0x00,0xf0,0xb3,0xf8,0x04,0x46, - 0x05,0xe0,0x00,0xf0,0x95,0xf9,0x04,0x46,0x01,0xe0,0x00,0x24,0xe4,0x43,0x20,0x46, - 0x04,0xb0,0x10,0xbd,0xf0,0xb4,0x00,0x20,0x43,0x21,0x09,0x06,0x4a,0x68,0xff,0x23, - 0x01,0x33,0x1a,0x43,0x4a,0x60,0x4a,0x68,0x1b,0x03,0x1a,0x43,0x4a,0x60,0x41,0x49, - 0x41,0x4e,0x0a,0x8c,0xb2,0x42,0x20,0xd0,0xe6,0x23,0x0b,0x70,0x28,0x22,0x0a,0x72, - 0x3e,0x4a,0x0a,0x83,0x3e,0x4a,0xe0,0x24,0x14,0x76,0xd4,0x25,0x4d,0x70,0x3c,0x25, - 0x4d,0x72,0x3c,0x4d,0x4d,0x83,0x53,0x76,0xc8,0x27,0x8f,0x70,0x46,0x25,0x8d,0x72, - 0x39,0x4d,0x8d,0x83,0x93,0x76,0xcf,0x70,0x50,0x23,0xcb,0x72,0x37,0x4b,0xcb,0x83, - 0xd4,0x76,0x5a,0x23,0x0b,0x73,0x0e,0x84,0x14,0x77,0xa3,0x24,0xe4,0x05,0x22,0x68, - 0x52,0x08,0x52,0x00,0x22,0x60,0x32,0x4a,0x12,0x69,0xd3,0xb2,0x31,0x4d,0x2a,0x88, - 0xb2,0x42,0x01,0xd3,0x04,0x20,0x0d,0xe0,0x2c,0x4e,0xb2,0x42,0x01,0xd3,0x03,0x20, - 0x08,0xe0,0x29,0x4e,0xb2,0x42,0x01,0xd3,0x02,0x20,0x03,0xe0,0x25,0x4e,0xb2,0x42, - 0x00,0xd3,0x01,0x20,0x0a,0x18,0x20,0x32,0x12,0x7e,0x9a,0x42,0x09,0xda,0x00,0x28, - 0x01,0xdd,0x40,0x1e,0x40,0xb2,0x0a,0x18,0x12,0x7a,0x40,0x00,0x40,0x18,0x00,0x8b, - 0x0b,0xe0,0x04,0x28,0x04,0xda,0x0a,0x5c,0x9a,0x42,0x01,0xdb,0x40,0x1c,0x40,0xb2, - 0x0a,0x18,0x12,0x7a,0x40,0x00,0x40,0x18,0x00,0x8b,0x1b,0x49,0x0a,0x62,0x21,0x68, - 0x49,0x08,0x49,0x00,0x21,0x60,0x19,0x4b,0x19,0x6b,0xff,0x22,0x01,0x32,0x0e,0x46, - 0x16,0x43,0x1e,0x63,0xa0,0x62,0x91,0x43,0x19,0x63,0x28,0x80,0x43,0x21,0x09,0x06, - 0x4b,0x68,0x10,0x03,0x83,0x43,0x12,0x48,0x00,0x78,0xc0,0x07,0xc0,0x0f,0x04,0x05, - 0x23,0x43,0x4b,0x60,0x4b,0x68,0x00,0x02,0x93,0x43,0x03,0x43,0x4b,0x60,0xf0,0xbc, - 0x70,0x47,0x00,0x00,0x50,0x6e,0x00,0x20,0xf6,0x3f,0x00,0x00,0xf6,0x07,0x00,0x00, - 0x70,0x6e,0x00,0x20,0xf6,0x09,0x00,0x00,0xf6,0x2d,0x00,0x00,0xf6,0x38,0x00,0x00, - 0x80,0x00,0x80,0x45,0x50,0x68,0x00,0x20,0x80,0x04,0xc0,0x50,0x40,0x00,0x80,0x45, - 0x3a,0x68,0x00,0x20,0xf8,0xb5,0x2d,0x48,0x00,0x68,0x00,0x28,0x54,0xd1,0x43,0x22, + 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x1f,0xb5,0x00,0x24,0x00,0x98,0x22,0x28,0x2a,0xd2,0x01,0x00, + 0x79,0x44,0x09,0x79,0x49,0x18,0x8f,0x44,0x10,0x27,0x27,0x27,0x27,0x27,0x27,0x27, + 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x15,0x27,0x27,0x27,0x27,0x27,0x27,0x27, + 0x27,0x18,0x1b,0x27,0x27,0x25,0x25,0x25,0x25,0x21,0x01,0x98,0xc0,0xb2,0x00,0xf0, + 0xbf,0xf8,0x11,0xe0,0x00,0xf0,0x14,0xf8,0x0e,0xe0,0x00,0xf0,0xbf,0xf9,0x0b,0xe0, + 0x01,0x98,0xc0,0xb2,0x00,0xf0,0x4e,0xf9,0x04,0x46,0x05,0xe0,0x00,0xf0,0x30,0xfa, + 0x04,0x46,0x01,0xe0,0x00,0x24,0xe4,0x43,0x20,0x46,0x04,0xb0,0x10,0xbd,0x00,0x00, + 0xf0,0xb4,0x00,0x20,0x43,0x21,0x09,0x06,0x4a,0x68,0xff,0x23,0x01,0x33,0x1a,0x43, + 0x4a,0x60,0x4a,0x68,0x1b,0x03,0x1a,0x43,0x4a,0x60,0x41,0x49,0x41,0x4b,0x0a,0x8c, + 0x41,0x4f,0x9a,0x42,0x20,0xd0,0xe6,0x24,0x0c,0x70,0x28,0x22,0x0a,0x72,0x3f,0x4a, + 0x0a,0x83,0x3f,0x4a,0xe0,0x25,0x15,0x76,0xd4,0x26,0x4e,0x70,0x3c,0x26,0x4e,0x72, + 0x3c,0x4e,0x4e,0x83,0x54,0x76,0xc8,0x26,0x8e,0x70,0x46,0x26,0x8e,0x72,0x8f,0x83, + 0x94,0x76,0xc8,0x24,0xcc,0x70,0x50,0x24,0xcc,0x72,0x37,0x4c,0xcc,0x83,0xd5,0x76, + 0x5a,0x24,0x0c,0x73,0x0b,0x84,0x15,0x77,0xa3,0x25,0xed,0x05,0x2a,0x68,0x52,0x08, + 0x52,0x00,0x2a,0x60,0x31,0x4a,0x12,0x69,0xd4,0xb2,0x31,0x4e,0x32,0x88,0x9a,0x42, + 0x01,0xd3,0x04,0x20,0x0c,0xe0,0x2c,0x4b,0x9a,0x42,0x01,0xd3,0x03,0x20,0x07,0xe0, + 0xba,0x42,0x01,0xd3,0x02,0x20,0x03,0xe0,0x26,0x4b,0x9a,0x42,0x00,0xd3,0x01,0x20, + 0x0a,0x18,0x20,0x32,0x12,0x7e,0xa2,0x42,0x09,0xda,0x00,0x28,0x01,0xdd,0x40,0x1e, + 0x40,0xb2,0x0a,0x18,0x12,0x7a,0x40,0x00,0x40,0x18,0x00,0x8b,0x0b,0xe0,0x04,0x28, + 0x04,0xda,0x0a,0x5c,0xa2,0x42,0x01,0xdb,0x40,0x1c,0x40,0xb2,0x0a,0x18,0x12,0x7a, + 0x40,0x00,0x40,0x18,0x00,0x8b,0x1b,0x49,0x0a,0x62,0x29,0x68,0x49,0x08,0x49,0x00, + 0x29,0x60,0x19,0x4b,0x19,0x6b,0xff,0x22,0x01,0x32,0x0c,0x46,0x14,0x43,0x1c,0x63, + 0xa8,0x62,0x91,0x43,0x19,0x63,0x30,0x80,0x43,0x21,0x09,0x06,0x4b,0x68,0x10,0x03, + 0x83,0x43,0x12,0x48,0x00,0x78,0xc0,0x07,0xc0,0x0f,0x04,0x05,0x23,0x43,0x4b,0x60, + 0x4b,0x68,0x00,0x02,0x93,0x43,0x03,0x43,0x4b,0x60,0xf0,0xbc,0x70,0x47,0x00,0x00, + 0x50,0x6e,0x00,0x20,0xf6,0x3f,0x00,0x00,0xf6,0x2d,0x00,0x00,0xf6,0x07,0x00,0x00, + 0x70,0x6e,0x00,0x20,0xf6,0x09,0x00,0x00,0xf6,0x38,0x00,0x00,0x80,0x00,0x80,0x45, + 0x50,0x68,0x00,0x20,0x80,0x04,0xc0,0x50,0x40,0x00,0x80,0x45,0x3a,0x68,0x00,0x20, + 0xf0,0xb4,0x43,0x20,0x00,0x06,0x41,0x68,0x01,0x25,0xad,0x04,0x29,0x43,0x41,0x60, + 0xc4,0x22,0x87,0x21,0xc9,0x05,0x0a,0x60,0x39,0x4a,0x4a,0x61,0x42,0x68,0x39,0x49, + 0xaa,0x43,0x09,0x78,0xc9,0x07,0xc9,0x0f,0x8b,0x04,0x1a,0x43,0x42,0x60,0x8b,0x23, + 0x35,0x4a,0xdb,0x05,0x5a,0x63,0x35,0x4c,0x03,0x22,0xe2,0x60,0x05,0x22,0xc2,0x60, + 0xda,0x63,0x01,0x22,0x22,0x61,0x62,0x62,0xa2,0x63,0x31,0x4c,0x22,0x60,0x31,0x4e, + 0x66,0x61,0xdc,0x6a,0x14,0x43,0xdc,0x62,0x42,0x68,0xac,0x10,0x22,0x43,0x42,0x60, + 0x42,0x68,0xa3,0x10,0x1a,0x43,0x42,0x60,0x2c,0x4e,0x2b,0x4a,0x72,0x61,0x32,0x46, + 0x92,0x68,0x3f,0x26,0xb6,0x05,0x32,0x43,0x28,0x4e,0xb2,0x60,0x00,0x22,0xf2,0x60, + 0x27,0x4a,0xb2,0x61,0x27,0x4e,0x32,0x68,0x1e,0x27,0xba,0x43,0x32,0x60,0x23,0x4a, + 0x92,0x6a,0xfe,0x03,0xb2,0x43,0x52,0x19,0x20,0x4d,0xaa,0x62,0x22,0x4d,0xf0,0x22, + 0x6a,0x60,0x42,0x68,0xa2,0x43,0x0c,0x04,0x22,0x43,0x42,0x60,0x42,0x68,0x9a,0x43, + 0x8b,0x03,0x1a,0x43,0x42,0x60,0x42,0x68,0x01,0x24,0x64,0x03,0x22,0x43,0x42,0x60, + 0x29,0x22,0x52,0x06,0x13,0x6a,0x1b,0x09,0x1b,0x01,0x08,0x33,0x13,0x62,0x17,0x4b, + 0xd3,0x60,0x42,0x68,0x4b,0x03,0xa2,0x43,0x1a,0x43,0x42,0x60,0x43,0x68,0xe2,0x01, + 0x13,0x43,0x43,0x60,0x28,0x24,0xa3,0x23,0xdb,0x05,0x1c,0x60,0x10,0x4c,0x24,0x88, + 0x9c,0x62,0x43,0x68,0x09,0x05,0x93,0x43,0x0b,0x43,0x43,0x60,0xf0,0xbc,0x70,0x47, + 0xff,0x7f,0x00,0x00,0x3a,0x68,0x00,0x20,0x49,0x02,0x00,0x00,0x40,0x00,0x80,0x45, + 0x80,0x00,0x80,0x45,0x1e,0x02,0x00,0x00,0x03,0x00,0x3c,0x00,0x00,0x00,0x40,0x52, + 0x08,0x00,0x0f,0x00,0x00,0x00,0xc0,0x51,0x40,0x00,0x40,0x52,0xcc,0x34,0x63,0x02, + 0x50,0x68,0x00,0x20,0xf8,0xb5,0x2d,0x48,0x00,0x68,0x00,0x28,0x54,0xd1,0x43,0x22, 0x12,0x06,0x50,0x68,0x01,0x21,0xc9,0x03,0x08,0x43,0x50,0x60,0x28,0x4f,0x3c,0x68, 0x01,0x25,0x03,0x20,0x00,0x06,0x20,0x43,0x38,0x60,0x00,0x26,0x25,0x49,0x1e,0x20, 0x88,0x47,0x24,0x49,0x01,0x20,0x88,0x47,0x78,0x68,0xc0,0x07,0xc0,0x0f,0x31,0x46, @@ -173,46 +220,60 @@ am_hal_ble_buffer(0x0428) am_ble_performance_patch_data_b0 = am_hal_ble_patch_t am_ble_performance_patch_b0 = { .ui32Type = 0xBB, - .ui32Length = 0x0428, - .ui32CRC = 0x454a, + .ui32Length = 0x0568, + .ui32CRC = 0x03da, .pui32Data = am_ble_performance_patch_data_b0.words, }; - //***************************************************************************** + + //***************************************************************************** // -// Patch Name: Function PATCH v0.3 for Apollo3 B0 +// Patch Name: Function PATCH v0.4 for Apollo3 B0 // // Reduce duration from TX to TX // Optimized 32K XO frequency calculation // Optimized AGC Table // Fixed Channelmap indication rejected issue -// Date: 2019-03-05 +// Fixed 800M Spur +// Fixed feature issue +// Date: 2019-05-15 //***************************************************************************** -am_hal_ble_buffer(0x01dc) am_ble_buffer_patch_data_b0 = +am_hal_ble_buffer(0x025c) am_ble_buffer_patch_data_b0 = { - .bytes = + .bytes = { - 0x00,0x22,0xdc,0x01,0x0f,0x00,0x00,0x00,0x84,0x1d,0x06,0x00,0x73,0x25,0x06,0x00, - 0x75,0x2d,0x06,0x00,0x17,0x33,0x06,0x00,0x21,0x20,0xec,0xf7,0xf9,0xfc,0x00,0x28, + 0x00,0x22,0x5c,0x02,0x1f,0x00,0x00,0x00,0x84,0x4d,0x06,0x00,0x73,0x55,0x06,0x00, + 0x75,0x5d,0x06,0x00,0x17,0x63,0x06,0x00,0xa9,0x6d,0x06,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x20,0xec,0xf7,0xf9,0xfc,0x00,0x28, 0x0a,0xd0,0x00,0x20,0x00,0x90,0x03,0x46,0x02,0x46,0x01,0x46,0x24,0x68,0x21,0x20, 0x35,0x34,0xa0,0x47,0x00,0xbf,0x38,0xbd,0xef,0xf7,0xfb,0xfe,0x0f,0x49,0x00,0x28, 0x02,0xd0,0x08,0x78,0x01,0x28,0x12,0xd0,0x08,0x78,0x02,0x28,0x0f,0xd0,0x00,0x28, 0x06,0xd0,0x01,0x28,0x04,0xd0,0x00,0xf0,0x0c,0x6e,0x00,0x20,0x00,0x00,0x00,0x04, - 0x1c,0x6e,0x00,0x20,0x00,0x49,0x08,0x47,0xc1,0x31,0x00,0x20,0x23,0x4e,0xca,0x7c, + 0x1c,0x6e,0x00,0x20,0x00,0x49,0x08,0x47,0x81,0x33,0x00,0x20,0x23,0x4e,0xca,0x7c, 0x75,0x68,0xc9,0x6a,0x00,0x2a,0x1d,0xd0,0x7d,0x22,0x12,0x02,0x91,0x42,0x02,0xd3, 0x8a,0x1a,0x01,0x20,0x00,0xe0,0x52,0x1a,0x00,0x28,0x05,0xd0,0x20,0x46,0x50,0x43, 0xea,0xf7,0x02,0xfa,0x20,0x1a,0x04,0xe0,0xea,0xf7,0xde,0xf9,0x00,0x19,0x01,0x02, 0xc2,0x00,0x69,0x18,0x12,0x18,0x89,0x18,0x4a,0x0a,0x53,0x02,0xc9,0x1a,0x71,0x60, 0x1e,0x21,0x48,0x43,0x80,0x18,0x70,0xbd,0x2c,0x68,0x00,0x20,0x0c,0x6e,0x00,0x20, - 0x00,0x49,0x08,0x47,0x31,0x32,0x00,0x20,0xc1,0x7c,0xc0,0x6a,0x00,0x29,0x15,0xd0, + 0x00,0x49,0x08,0x47,0xf1,0x33,0x00,0x20,0xc1,0x7c,0xc0,0x6a,0x00,0x29,0x15,0xd0, 0x7d,0x21,0x09,0x02,0x88,0x42,0x02,0xd3,0x02,0xd5,0x04,0x20,0x60,0x70,0x34,0xe0, 0x28,0x69,0x06,0xf0,0xb5,0xf8,0x00,0x28,0x02,0xd0,0x02,0x20,0x60,0x70,0x2c,0xe0, 0x03,0x98,0x04,0xf0,0x1f,0xfa,0x04,0x28,0x07,0xd1,0x68,0x46,0x01,0x79,0x02,0x20, 0x88,0x43,0x05,0xd0,0x00,0x20,0x00,0x28,0x04,0xd0,0x00,0xbf,0x00,0x20,0x1c,0xe0, - 0x01,0x20,0xf8,0xe7,0xf0,0x88,0x00,0x90,0xf0,0xb4,0x00,0x23,0x18,0x4c,0x25,0x69, + 0x01,0x20,0xf8,0xe7,0xf0,0x88,0x00,0x90, + + AM_HAL_BLE_LOCAL_FEATURE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00, + 0xff,0x00,0x3c,0x1f,0x00,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x8d,0x84,0x00,0x00, + 0x02,0x20,0x00,0x00,0xcd,0x7d,0x00,0x00,0x03,0x20,0x00,0x00,0xd1,0x7e,0x00,0x00, + 0x05,0x20,0x00,0x00,0xfd,0x84,0x00,0x00,0xf0,0xb4,0x00,0x23,0x18,0x4c,0x25,0x69, 0x18,0x49,0x7d,0x22,0x09,0x68,0x12,0x02,0x91,0x42,0x02,0xd3,0x8a,0x1a,0x01,0x23, 0x00,0xe0,0x52,0x1a,0x06,0x46,0x56,0x43,0xf2,0x13,0x51,0x43,0x71,0x1a,0x1e,0x26, 0x4e,0x43,0x4f,0x10,0xf6,0x19,0x8f,0x11,0xf6,0x19,0x49,0x12,0x71,0x18,0xce,0x13, @@ -231,22 +292,25 @@ am_hal_ble_buffer(0x01dc) am_ble_buffer_patch_data_b0 = am_hal_ble_patch_t am_ble_buffer_patch_b0 = { .ui32Type = 0xCC, - .ui32Length = 0x01dc, - .ui32CRC = 0x1440, + .ui32Length = 0x025c, + .ui32CRC = 0x713d, .pui32Data = am_ble_buffer_patch_data_b0.words, }; //***************************************************************************** // -// Patch Name: Function PATCH v0.3 for Apollo3 B0 +// Patch Name: Function PATCH v0.4 for Apollo3 B0 // Reduce duration from TX to TX // Optimized 32K XO frequency calculation // Optimized AGC Table // Fixed Channelmap indication rejected issue -// Date: 2019-03-05 +// Fixed 800M Spur +// Fixed feature issue +// Date: 2019-05-15 //***************************************************************************** -am_hal_ble_buffer(0x00cd) am_ble_buffer_nvds_data_b0 = + +am_hal_ble_buffer(0x00c2) am_ble_buffer_nvds_data_b0 = { .bytes = { @@ -261,8 +325,8 @@ am_hal_ble_buffer(0x00cd) am_ble_buffer_nvds_data_b0 = 0x0a,0x06,0x04,0x00,0x00,0x00,0x00, //0x00000000 = auto detect and low frequency clock calibration 0x0b,0x06,0x01,0x96, //rx_ifs 0x96 = 150us 0x23,0x06,0x01,0x95, //tx_ifs 0x95 = 149us - 0x0d,0x06,0x02,0xe8,0x03, //duration allowed for XO32M stabilization from external wakeup - 0x0e,0x06,0x02,0xe8,0x03, //duration allowed for XO32M stabilization from internal wakeup signal + 0x0d,0x06,0x02,0xe8,0x3, //duration allowed for XO32M stabilization from external wakeup + 0x0e,0x06,0x02,0xe8,0x3, //duration allowed for XO32M stabilization from internal wakeup signal 0x0f,0x06,0x02,0x2c,0x01, //duration allowed for radio to leave low power mode 0x10,0x06,0x04,0x00,0xc2,0x01,0x00, //set UART_BAUDRATE 0x11,0x06,0x01,0x01, //sleep algorithm enabled @@ -273,23 +337,22 @@ am_hal_ble_buffer(0x00cd) am_ble_buffer_nvds_data_b0 = 0x15,0x06,0x01,0x08, //BLE major version 0x16,0x06,0x01,0x03, //BLE minor version 0x17,0x06,0x01,0x29, //BLE SW version build - 0x18,0x06,0x02,0x4c,0x04, //advertising interval (undirect) + 0x18,0x06,0x02,0xdc,0x05, //advertising interval (undirect) 0x19,0x06,0x02,0xe2,0x04, //advertising interval (direct) 0x20,0x06,0x01,0x01, //agc switch on 0x21,0x06,0x01,0x02, //EA programming latency,set '2' with master mode 0x22,0x06,0x01,0x00, //EA asap latency - 0x24,0x06,0x04,0x42,0x02,0x6A,0x09, //radio TRX timing + 0x24,0x06,0x04,0x5C,0x09,0x6A,0x09, //radio TRX timing 0x25,0x06,0x01,0x11, //modem polarity setting 0x26,0x06,0x01,0x00, //modem sync setting 0x27,0x06,0x01,0x02, //BLE reset delay 0x2d,0x06,0x01,0x00, //2 byte mode switch, 01 to enable - 0x28,0x06,0x02,0xf6,0x3f, //initial agc gain setting + 0x28,0x06,0x02,0xf6,0x2d, //initial agc gain setting 0x29,0x06,0x01,0x0f, //initial Tx output power, 0x0f is +4dBm 0x35,0x06,0x01,0x08, //maximum Tx ouput power setting 0x37,0x06,0x01,0x00, //RC32K calibration control, 0xAA to enable 0x05,0x06,0x02,0x34,0x00, //no use 0x04,0x06,0x01,0x20, //internal dvdd voltage level control if using 0.9V from MCU side - 0x06,0x06,0x08,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //ble feature mask default 0x21 0x2e,0x06,0x01,0x00, //instant indication,set "0" to disbale instant reject 0x00,0x00,0x00,0x00 //dummy } @@ -298,7 +361,7 @@ am_hal_ble_buffer(0x00cd) am_ble_buffer_nvds_data_b0 = am_hal_ble_patch_t am_ble_nvds_patch_b0 = { .ui32Type = 0xDD, - .ui32Length = 0x00cd, + .ui32Length = 0x00c2, .ui32CRC = 0x112b, .pui32Data = am_ble_buffer_nvds_data_b0.words, }; diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.h index 4f91bfca..3e9c7e0c 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ble_patch_b0.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.c index 3498951f..5e56a0ae 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.h index eb8826cf..fc853856 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_burst.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_BURST_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.c index cc610283..fe4e2e01 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -98,10 +98,9 @@ am_hal_cachectrl_config(const am_hal_cachectrl_config_t *psConfig) (CACHECTRL_CACHECFG_DCACHE_ENABLE_Msk | CACHECTRL_CACHECFG_ICACHE_ENABLE_Msk)); - return AM_HAL_STATUS_SUCCESS; -} // am_hal_cachectrl_enable() +} // am_hal_cachectrl_config() //***************************************************************************** // @@ -111,6 +110,9 @@ am_hal_cachectrl_config(const am_hal_cachectrl_config_t *psConfig) uint32_t am_hal_cachectrl_enable(void) { + // + // Enable the cache + // CACHECTRL->CACHECFG |= _VAL2FLD(CACHECTRL_CACHECFG_ENABLE, 1); return AM_HAL_STATUS_SUCCESS; @@ -139,6 +141,95 @@ am_hal_cachectrl_disable(void) return AM_HAL_STATUS_SUCCESS; } // am_hal_cachectrl_disable() +//***************************************************************************** +// +// Control helper functions. +// +//***************************************************************************** +static bool +set_LPMMODE(uint32_t ui32value) +{ + uint32_t ui32Val; + uint32_t *pui32RegAddr; + + if ( ui32value > (CACHECTRL_FLASHCFG_LPMMODE_Msk >> CACHECTRL_FLASHCFG_LPMMODE_Pos) ) + { + return false; + } + + // + // Compute register address (assumes each reg is 1 word offset). + // + pui32RegAddr = (uint32_t*)&CACHECTRL->FLASHCFG; + + AM_CRITICAL_BEGIN + ui32Val = am_hal_flash_load_ui32(pui32RegAddr); + ui32Val &= ~(CACHECTRL_FLASHCFG_LPMMODE_Msk | + CACHECTRL_FLASHCFG_LPM_RD_WAIT_Msk); + ui32Val |= _VAL2FLD(CACHECTRL_FLASHCFG_LPMMODE, ui32value) | + _VAL2FLD(CACHECTRL_FLASHCFG_LPM_RD_WAIT, 0x7); + am_hal_flash_store_ui32(pui32RegAddr, ui32Val); + AM_CRITICAL_END + + return true; +} // set_LPMMODE() + +static bool +set_SEDELAY(uint32_t ui32value) +{ + uint32_t ui32Val; + uint32_t *pui32RegAddr; + + if ( ui32value > (CACHECTRL_FLASHCFG_SEDELAY_Msk >> CACHECTRL_FLASHCFG_SEDELAY_Pos) ) + { + return false; + } + + // + // Compute register address (assumes each reg is 1 word offset). + // + pui32RegAddr = (uint32_t*)&CACHECTRL->FLASHCFG; + + AM_CRITICAL_BEGIN + ui32Val = am_hal_flash_load_ui32(pui32RegAddr); + ui32Val &= ~(CACHECTRL_FLASHCFG_SEDELAY_Msk | + CACHECTRL_FLASHCFG_LPM_RD_WAIT_Msk); + ui32Val |= _VAL2FLD(CACHECTRL_FLASHCFG_SEDELAY, ui32value) | + _VAL2FLD(CACHECTRL_FLASHCFG_LPM_RD_WAIT, 0x7); + am_hal_flash_store_ui32(pui32RegAddr, ui32Val); + AM_CRITICAL_END + + return true; +} // set_SEDELAY() + +static bool +set_RDWAIT(uint32_t ui32value) +{ + uint32_t ui32Val; + uint32_t *pui32RegAddr; + + if ( ui32value > (CACHECTRL_FLASHCFG_RD_WAIT_Msk >> CACHECTRL_FLASHCFG_RD_WAIT_Pos) ) + { + return false; + } + + // + // Compute register address (assumes each reg is 1 word offset). + // + pui32RegAddr = (uint32_t*)&CACHECTRL->FLASHCFG; + + AM_CRITICAL_BEGIN + ui32Val = am_hal_flash_load_ui32(pui32RegAddr); + ui32Val &= ~(CACHECTRL_FLASHCFG_RD_WAIT_Msk | + CACHECTRL_FLASHCFG_LPM_RD_WAIT_Msk); + ui32Val |= _VAL2FLD(CACHECTRL_FLASHCFG_RD_WAIT, ui32value) | + _VAL2FLD(CACHECTRL_FLASHCFG_LPM_RD_WAIT, 0x7); + am_hal_flash_store_ui32(pui32RegAddr, ui32Val); + AM_CRITICAL_END + + return true; +} // set_RDWAIT() + //***************************************************************************** // // Select the cache configuration type. @@ -147,7 +238,7 @@ am_hal_cachectrl_disable(void) uint32_t am_hal_cachectrl_control(am_hal_cachectrl_control_e eControl, void *pArgs) { - uint32_t ui32Val; + uint32_t ui32Arg; uint32_t ui32SetMask = 0; switch ( eControl ) @@ -200,23 +291,78 @@ am_hal_cachectrl_control(am_hal_cachectrl_control_e eControl, void *pArgs) CACHECTRL->CACHECFG &= ~CACHECTRL_CACHECFG_ENABLE_MONITOR_Msk; AM_CRITICAL_END break; + case AM_HAL_CACHECTRL_CONTROL_LPMMODE_RESET: + // + // Safely set the reset values for LPMMODE, SEDELAY, and RDWAIT. + // + if ( !set_LPMMODE(AM_HAL_CACHECTRL_FLASHCFG_LPMMODE_NEVER) || + !set_SEDELAY(0x7) || + !set_RDWAIT(0x3) ) + { + return AM_HAL_STATUS_FAIL; + } + break; + case AM_HAL_CACHECTRL_CONTROL_LPMMODE_RECOMMENDED: + // + // Safely set the as recommended values (from the datasheet) + // for LPMMODE, SEDELAY, and RDWAIT. + // + if ( !set_LPMMODE(AM_HAL_CACHECTRL_FLASHCFG_LPMMODE_STANDBY) || + !set_SEDELAY(0x5) || + !set_RDWAIT(0x1) ) + { + return AM_HAL_STATUS_FAIL; + } + break; + case AM_HAL_CACHECTRL_CONTROL_LPMMODE_AGGRESSIVE: + // + // Safely set aggressive values for LPMMODE, SEDELAY, and RDWAIT. + // (For now select recommended values.) + // + if ( !set_LPMMODE(AM_HAL_CACHECTRL_FLASHCFG_LPMMODE_STANDBY) || + !set_SEDELAY(0x6) || + !set_RDWAIT(0x1) ) + { + return AM_HAL_STATUS_FAIL; + } + break; case AM_HAL_CACHECTRL_CONTROL_LPMMODE_SET: // - // Safely set LPMMODE. - // The new mode is passed by reference via pArgs. That is, pArgs is - // assumed to be a pointer to a uint32_t of the new LPMMODE value. + // Safely set LPMMODE, SEDELAY, or RDWAIT. + // The new value is passed by reference via pArgs. That is, pArgs is + // assumed to be a pointer to a uint32_t of the new value. // - if ( !pArgs || - (*((uint32_t*)pArgs) > CACHECTRL_FLASHCFG_LPMMODE_ALWAYS) ) + if ( !pArgs ) { return AM_HAL_STATUS_INVALID_ARG; } - AM_CRITICAL_BEGIN - ui32Val = am_hal_flash_load_ui32((uint32_t*)&CACHECTRL->FLASHCFG); - ui32Val &= ~CACHECTRL_FLASHCFG_LPMMODE_Msk; - ui32Val |= _VAL2FLD(CACHECTRL_FLASHCFG_LPMMODE, *((uint32_t*)pArgs)); - am_hal_flash_store_ui32((uint32_t*)&CACHECTRL->FLASHCFG, ui32Val); - AM_CRITICAL_END + ui32Arg = *(uint32_t*)pArgs; + if ( !set_LPMMODE(ui32Arg) ) + { + return AM_HAL_STATUS_FAIL; + } + break; + case AM_HAL_CACHECTRL_CONTROL_SEDELAY_SET: + if ( !pArgs ) + { + return AM_HAL_STATUS_INVALID_ARG; + } + ui32Arg = *(uint32_t*)pArgs; + if ( !set_SEDELAY(ui32Arg) ) + { + return AM_HAL_STATUS_FAIL; + } + break; + case AM_HAL_CACHECTRL_CONTROL_RDWAIT_SET: + if ( !pArgs ) + { + return AM_HAL_STATUS_INVALID_ARG; + } + ui32Arg = *(uint32_t*)pArgs; + if ( !set_RDWAIT(ui32Arg) ) + { + return AM_HAL_STATUS_FAIL; + } break; case AM_HAL_CACHECTRL_CONTROL_NC_CFG: { diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.h index e7e554ff..7b085b1b 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cachectrl.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // // **************************************************************************** #ifndef AM_HAL_CACHECTRL_H @@ -125,7 +125,12 @@ typedef enum AM_HAL_CACHECTRL_CONTROL_FLASH1_SLEEP_DISABLE, AM_HAL_CACHECTRL_CONTROL_MONITOR_ENABLE, AM_HAL_CACHECTRL_CONTROL_MONITOR_DISABLE, + AM_HAL_CACHECTRL_CONTROL_LPMMODE_RESET, + AM_HAL_CACHECTRL_CONTROL_LPMMODE_RECOMMENDED, + AM_HAL_CACHECTRL_CONTROL_LPMMODE_AGGRESSIVE, AM_HAL_CACHECTRL_CONTROL_LPMMODE_SET, + AM_HAL_CACHECTRL_CONTROL_SEDELAY_SET, + AM_HAL_CACHECTRL_CONTROL_RDWAIT_SET, // Configure up to two non-cacheable regions AM_HAL_CACHECTRL_CONTROL_NC_CFG, } am_hal_cachectrl_control_e; @@ -142,6 +147,16 @@ typedef enum AM_HAL_CACHECTRL_CONFIG_MODE_INSTR_DATA } am_hal_cachectrl_config_mode_e; +// +// FLASHCFG LPMMODE. +// +typedef enum +{ + AM_HAL_CACHECTRL_FLASHCFG_LPMMODE_NEVER = CACHECTRL_FLASHCFG_LPMMODE_NEVER, + AM_HAL_CACHECTRL_FLASHCFG_LPMMODE_STANDBY = CACHECTRL_FLASHCFG_LPMMODE_STANDBY, + AM_HAL_CACHECTRL_FLASHCFG_LPMMODE_ALWAYS = CACHECTRL_FLASHCFG_LPMMODE_ALWAYS +} am_hal_cachectrl_flashcfg_lppmode_e; + // **************************************************************************** // // Cache configuration structure diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.c index 7945ef88..eb23d3cd 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // // **************************************************************************** @@ -108,6 +108,12 @@ am_hal_clkgen_control(am_hal_clkgen_control_e eControl, void *pArgs) break; case AM_HAL_CLKGEN_CONTROL_XTAL_STOP: + // TODO - Fixme. What is Errata #? + // Software Workaround to guarantee proper function of HFADJ. + if (APOLLO3_B0) + { + MCUCTRL->XTALCTRL_b.XTALICOMPTRIM = 1; + } CLKGEN->OCTRL |= _VAL2FLD(CLKGEN_OCTRL_STOPXT, CLKGEN_OCTRL_STOPXT_STOP); break; @@ -123,6 +129,13 @@ am_hal_clkgen_control(am_hal_clkgen_control_e eControl, void *pArgs) break; case AM_HAL_CLKGEN_CONTROL_HFADJ_ENABLE: + // TODO - Fixme. What is Errata #? + // Software Workaround to guarantee proper function of HFADJ. + if (APOLLO3_B0) + { + MCUCTRL->XTALCTRL_b.XTALICOMPTRIM = 3; + am_hal_flash_delay(FLASH_CYCLES_US(1000)); + } if ( pArgs == 0 ) { ui32Regval = diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.h index 735a66f0..36be4154 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_clkgen.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_CLKGEN_H @@ -119,7 +119,7 @@ typedef enum AM_HAL_CLKGEN_CLKOUT_XTAL_0_015 = 0x16, // XTAL / 2097152 = 0.015625 Hz AM_HAL_CLKGEN_CLKOUT_XTAL_32768, // XTAL AM_HAL_CLKGEN_CLKOUT_CG_100, // ClkGen 100Hz - AM_HAL_CLKGEN_CLKOUT_LFRC_512, // LFRC / 2 = 512 Hz + AM_HAL_CLKGEN_CLKOUT_LFRC_512 = 0x23, // LFRC / 2 = 512 Hz AM_HAL_CLKGEN_CLKOUT_LFRC_32, // LFRC / 32 = 32 Hz AM_HAL_CLKGEN_CLKOUT_LFRC_2, // LFRC / 512 = 2 Hz AM_HAL_CLKGEN_CLKOUT_LFRC_0_03, // LFRC / 32768 = 0.03125 Hz @@ -133,7 +133,7 @@ typedef enum AM_HAL_CLKGEN_CLKOUT_ULFRC_0_25, // ULFRC / 4096 = 0.25 Hz (uncal LFRC) AM_HAL_CLKGEN_CLKOUT_ULFRC_0_0009, // ULFRC / 1M = 0.000976 Hz (uncal LFRC) // - AM_HAL_CLKGEN_CLKOUT_LFRC_0_0004, // LFRC / 2M = 0.00048828125 Hz + AM_HAL_CLKGEN_CLKOUT_LFRC_0_0004 = 0x31, // LFRC / 2M = 0.00048828125 Hz // Following are Not Autoenabled ("NE") AM_HAL_CLKGEN_CLKOUT_XTALNE_32768 = 0x35, // XTALNE / 1 = 32768 Hz AM_HAL_CLKGEN_CLKOUT_XTALNE_2048, // XTALNE / 16 = 2048 Hz diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.c index f6f2680e..112b9af2 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.h index c8c8ec35..2ca1a68b 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_cmdq.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.c index 53a74467..c186dc22 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.h index 3b4a4306..2f5b4be8 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ctimer.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_CTIMER_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.c index 245524f7..b609af90 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.c @@ -49,7 +49,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.h index 2e986628..2e66aeba 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_debug.h @@ -49,7 +49,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_DEBUG_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.c index 680f4743..8c48a8d6 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.c @@ -56,7 +56,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -69,33 +69,33 @@ // const g_am_hal_flash_t g_am_hal_flash = { - ((int (*)(uint32_t, uint32_t)) 0x0800004d), // flash_mass_erase - ((int (*)(uint32_t, uint32_t, uint32_t)) 0x08000051), // flash_page_erase - ((int (*)(uint32_t, uint32_t *, uint32_t *, uint32_t)) 0x08000055), // flash_program_main - ((int (*)(uint32_t, uint32_t, uint32_t *, uint32_t, uint32_t)) 0x08000059), // flash_program_info_area - ((int (*)(uint32_t, uint32_t)) 0x0800006d), // flash_mass_erase_nb - ((int (*)(uint32_t, uint32_t, uint32_t)) 0x08000071), // flash_page_erase_nb - ((int (*)( uint32_t, uint32_t)) 0x08000095), // flash_page_erase2_nb - ((bool (*)(void)) 0x0800007d), // flash_nb_operation_complete - ((uint32_t (*)(uint32_t *)) 0x08000075), // flash_util_read_word - ((void (*)( uint32_t *, uint32_t)) 0x08000079), // flash_util_write_word - ((void (*)(uint32_t )) 0x0800009D), // bootrom_delay_cycles - ((int (*)( uint32_t, uint32_t)) 0x08000081), // flash_info_erase - ((int (*)( uint32_t, uint32_t)) 0x08000089), // flash_info_plus_main_erase - ((int (*)(uint32_t)) 0x08000091), // flash_info_plus_main_erase_both - ((int (*)( uint32_t )) 0x08000099), // flash_recovery - ((void (*)(void)) 0x0800005d), // flash_program_main_from_sram - ((void (*)(void)) 0x08000061), // flash_program_info_area_from_sram - ((void (*)(void)) 0x08000065), // flash_erase_main_pages_from_sram - ((void (*)(void)) 0x08000069), // flash_mass_erase_from_sram - ((void (*)(void)) 0x08000085), // flash_info_erase_from_sram - ((void (*)(void)) 0x0800008D), // flash_info_plus_main_erase_from_sram - ((void (*)(void)) 0x080000A1), // flash_nb_operation_complete_from_sram - ((void (*)(void)) 0x080000A5), // flash_page_erase2_nb_from_sram - ((void (*)(void)) 0x080000A9) // flash_recovery_from_sram + ((int (*)(uint32_t, uint32_t)) 0x0800004d), // flash_mass_erase + ((int (*)(uint32_t, uint32_t, uint32_t)) 0x08000051), // flash_page_erase + ((int (*)(uint32_t, uint32_t *, uint32_t *, uint32_t)) 0x08000055), // flash_program_main + ((int (*)(uint32_t, uint32_t, uint32_t *, uint32_t, uint32_t))0x08000059), // flash_program_info_area + ((int (*)(uint32_t, uint32_t)) 0x0800006d), // flash_mass_erase_nb + ((int (*)(uint32_t, uint32_t, uint32_t)) 0x08000071), // flash_page_erase_nb + ((int (*)( uint32_t, uint32_t)) 0x08000095), // flash_page_erase2_nb + ((bool (*)(void)) 0x0800007d), // flash_nb_operation_complete + ((uint32_t (*)(uint32_t *)) 0x08000075), // flash_util_read_word + ((void (*)( uint32_t *, uint32_t)) 0x08000079), // flash_util_write_word + ((void (*)(uint32_t )) 0x0800009D), // bootrom_delay_cycles + ((int (*)( uint32_t, uint32_t)) 0x08000081), // flash_info_erase + ((int (*)( uint32_t, uint32_t)) 0x08000089), // flash_info_plus_main_erase + ((int (*)(uint32_t)) 0x08000091), // flash_info_plus_main_erase_both + ((int (*)( uint32_t )) 0x08000099), // flash_recovery + ((void (*)(void)) 0x0800005d), // flash_program_main_from_sram + ((void (*)(void)) 0x08000061), // flash_program_info_area_from_sram + ((void (*)(void)) 0x08000065), // flash_erase_main_pages_from_sram + ((void (*)(void)) 0x08000069), // flash_mass_erase_from_sram + ((void (*)(void)) 0x08000085), // flash_info_erase_from_sram + ((void (*)(void)) 0x0800008D), // flash_info_plus_main_erase_from_sram + ((void (*)(void)) 0x080000A1), // flash_nb_operation_complete_from_sram + ((void (*)(void)) 0x080000A5), // flash_page_erase2_nb_from_sram + ((void (*)(void)) 0x080000A9) // flash_recovery_from_sram }; -const uint32_t ui32SramMaxAddr = 0x10060000; +const uint32_t ui32SramMaxAddr = (AM_HAL_FLASH_SRAM_LARGEST_VALID_ADDR + 1); //***************************************************************************** // //! @brief This function performs a mass erase on a flash instance. @@ -184,36 +184,48 @@ am_hal_flash_program_main(uint32_t ui32ProgramKey, uint32_t *pui32Src, { uint32_t ui32MaxSrcAddr = (uint32_t)pui32Src + (ui32NumWords << 2); - // workround, the last word of SRAM cannot be the source + // + // Workaround, the last word of SRAM cannot be the source // of programming by BootRom, check to see if it is the last - if (ui32MaxSrcAddr == ui32SramMaxAddr) + // + if ( ui32MaxSrcAddr == ui32SramMaxAddr ) { uint32_t ui32Temp; int iRetVal; + // // program the other words using the boot-rom function - if (ui32NumWords > 1) + // + if ( ui32NumWords > 1 ) { iRetVal = g_am_hal_flash.flash_program_main( ui32ProgramKey, pui32Src, pui32Dst, ui32NumWords - 1); + + // // return if anything wrong - if (iRetVal != 0) + // + if ( iRetVal != 0 ) { return iRetVal; } } + + // // program the last word of the pSrc from a local // variable if it is the last word of SRAM + // ui32Temp = *(uint32_t *)(ui32MaxSrcAddr - 4); + return g_am_hal_flash.flash_program_main( ui32ProgramKey, &ui32Temp, pui32Dst + ui32NumWords - 1, 1); } + return g_am_hal_flash.flash_program_main(ui32ProgramKey, pui32Src, pui32Dst, ui32NumWords); } // am_hal_flash_program_main() @@ -246,53 +258,17 @@ am_hal_flash_clear_bits(uint32_t ui32ProgramKey, uint32_t *pui32Addr, uint32_t ui32BitMask) { uint32_t ui32Val = ~ui32BitMask; - // CAUTION: We can reprogram a bit in flash to 0 only once...so make sure we do not re-clear bits + + // + // CAUTION: We can reprogram a bit in flash to 0 only once...so make sure + // that we do not re-clear bits + // ui32Val |= ~(*pui32Addr); return g_am_hal_flash.flash_program_main(ui32ProgramKey, &ui32Val, pui32Addr, 1); } // am_hal_flash_clear_bits() -//***************************************************************************** -// -//! @brief This reprograms 1 word of the Main array on one flash instance. -//! -//! @param ui32ProgramKey - The programming key, AM_HAL_FLASH_PROGRAM_KEY. -//! @param ui32Value - one word of data to program into the flash instance. -//! @param pui32Dst - Pointer to the word aligned flash location where -//! programming of the flash instance is to begin. -//! -//! This function will reprogram one word in main flash. -//! -//! @note Interrupts are active during execution of this function. Any interrupt -//! taken could cause execution errors. Please see the IMPORTANT note under -//! Detailed Description above for more details. -//! -//! @return 0 for success, non-zero for failure. -// -//***************************************************************************** -int -am_hal_flash_reprogram_ui32(uint32_t ui32ProgramKey, - uint32_t ui32Data, - uint32_t *pui32Dst) -{ - int iRC = 0; - - if (ui32Data != *pui32Dst) - { - // bits already set to 0 should not be rewritten to 0 - ui32Data |= ~(*pui32Dst); - - iRC = g_am_hal_flash.flash_program_main( - ui32ProgramKey, - &ui32Data, // source data - pui32Dst, // destination - 1 ); // number of words - } - - return iRC; -} // am_hal_flash_reprogram_ui32() - //***************************************************************************** // //! @brief This function programs multiple words in the customer INFO space. @@ -322,15 +298,19 @@ am_hal_flash_program_info(uint32_t ui32InfoKey, uint32_t ui32InfoInst, { uint32_t ui32MaxSrcAddr = (uint32_t)pui32Src + (ui32NumWords << 2); + // // workround, the last word of SRAM cannot be the source // of programming by BootRom, check to see if it is the last - if (ui32MaxSrcAddr == ui32SramMaxAddr) + // + if ( ui32MaxSrcAddr == ui32SramMaxAddr ) { uint32_t ui32Temp; int iRetVal; + // // program the other words using the boot-rom function - if (ui32NumWords > 1) + // + if ( ui32NumWords > 1 ) { iRetVal = g_am_hal_flash.flash_program_info_area( ui32InfoKey, @@ -338,14 +318,20 @@ am_hal_flash_program_info(uint32_t ui32InfoKey, uint32_t ui32InfoInst, pui32Src, ui32Offset, ui32NumWords - 1); + + // // return if anything wrong - if (iRetVal != 0) + // + if ( iRetVal != 0 ) { return iRetVal; } } + + // // program the last word of the pSrc from a local // variable if it is the last word of SRAM + // ui32Temp = *(uint32_t *)(ui32MaxSrcAddr - 4); return g_am_hal_flash.flash_program_info_area( ui32InfoKey, @@ -354,52 +340,12 @@ am_hal_flash_program_info(uint32_t ui32InfoKey, uint32_t ui32InfoInst, ui32Offset + ui32NumWords - 1, 1); } + return g_am_hal_flash.flash_program_info_area(ui32InfoKey, ui32InfoInst, pui32Src, ui32Offset, ui32NumWords); } // am_hal_flash_program_info() -//***************************************************************************** -// -//! @brief This function reprograms one word in the customer INFO space. -//! -//! @param ui32InfoKey - The customer INFO space key. -//! @param ui32InfoInst - The INFO space instance, 0 or 1. -//! @param ui32Value - one word of data to program into the customer INFO. -//! INFO space. -//! @param ui32Offset - Word offset into customer INFO space (offset of 0 is -//! the first word, 1 is second word, etc.). -//! -//! This function will program one word in the customer INFO space. -//! -//! @note Interrupts are active during execution of this function. Any interrupt -//! taken could cause execution errors. Please see the IMPORTANT note under -//! Detailed Description above for more details. -//! -//! @return 0 for success, non-zero for failure. -// -//***************************************************************************** -int -am_hal_flash_reprogram_info_ui32(uint32_t ui32InfoKey, uint32_t ui32InfoInst, - uint32_t ui32Data, uint32_t ui32Offset) -{ - int iRC = 0; - uint32_t *pui32Dst = (uint32_t *)(AM_HAL_FLASH_INFO_ADDR + ui32Offset); - - if (ui32Data != *pui32Dst) - { - // bits already set to 0 should not be rewritten to 0 - ui32Data |= ~(*pui32Dst); - - iRC = g_am_hal_flash.flash_program_info_area( - ui32InfoKey, ui32InfoInst, - &ui32Data, ui32Offset, 1); - } - - return iRC; - -} // am_hal_flash_reprogram_info_ui32() - //***************************************************************************** // //! @brief This function erases an instance of the customer INFO space. @@ -550,7 +496,10 @@ am_hal_flash_delay(uint32_t ui32Iterations) if ( am_hal_burst_mode_status() == AM_HAL_BURST_MODE ) { ui32Iterations <<= 1; + + // // There's an additional shift to account for. + // ui32CycleCntAdj = ((13 * 2) + 16) / 3; } else @@ -603,7 +552,7 @@ am_hal_flash_delay_status_change(uint32_t ui32usMaxDelay, uint32_t ui32Address, return AM_HAL_STATUS_SUCCESS; } - if (ui32usMaxDelay--) + if ( ui32usMaxDelay-- ) { // // Call the BOOTROM cycle function to delay for about 1 microsecond. diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.h index a5fd6763..74e9ed49 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_flash.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_FLASH_H @@ -69,17 +69,27 @@ extern "C" +//***************************************************************************** +// +// Some helpful SRAM values and macros. +// +//***************************************************************************** +#define AM_HAL_FLASH_SRAM_ADDR 0x10000000 +#define AM_HAL_FLASH_SRAM_SIZE (384 * 1024) +#define AM_HAL_FLASH_SRAM_LARGEST_VALID_ADDR (AM_HAL_FLASH_SRAM_ADDR + AM_HAL_FLASH_SRAM_SIZE - 1) + //***************************************************************************** // // Some helpful flash values and macros. // //***************************************************************************** #define AM_HAL_FLASH_ADDR 0x00000000 +#define AM_HAL_FLASH_INSTANCE_SIZE ( 512 * 1024 ) +#define AM_HAL_FLASH_NUM_INSTANCES 2 #define AM_HAL_FLASH_PAGE_SIZE ( 8 * 1024 ) #define AM_HAL_FLASH_INFO_SIZE AM_HAL_FLASH_PAGE_SIZE -#define AM_HAL_FLASH_INSTANCE_SIZE ( 512 * 1024 ) #define AM_HAL_FLASH_INSTANCE_PAGES ( AM_HAL_FLASH_INSTANCE_SIZE / AM_HAL_FLASH_PAGE_SIZE ) -#define AM_HAL_FLASH_TOTAL_SIZE ( AM_HAL_FLASH_INSTANCE_SIZE * 2 ) +#define AM_HAL_FLASH_TOTAL_SIZE ( AM_HAL_FLASH_INSTANCE_SIZE * AM_HAL_FLASH_NUM_INSTANCES ) #define AM_HAL_FLASH_LARGEST_VALID_ADDR ( AM_HAL_FLASH_ADDR + AM_HAL_FLASH_TOTAL_SIZE - 1 ) // @@ -90,7 +100,7 @@ extern "C" // // Convert an absolute flash address to a instance // -#define AM_HAL_FLASH_ADDR2INST(addr) ( ( addr >> 19 ) & 1 ) +#define AM_HAL_FLASH_ADDR2INST(addr) ( ( addr >> 19 ) & (AM_HAL_FLASH_NUM_INSTANCES - 1) ) // // Convert an absolute flash address to a page number relative to the instance @@ -326,14 +336,6 @@ extern int am_hal_flash_clear_bits(uint32_t ui32ProgramKey, uint32_t *pui32Addr, uint32_t ui32BitMask); -extern int am_hal_flash_reprogram_ui32(uint32_t ui32ProgramKey, - uint32_t ui32Data, - uint32_t *pui32Dst); -extern int am_hal_flash_reprogram_info_ui32(uint32_t ui32InfoKey, - uint32_t ui32InfoInst, - uint32_t ui32Data, - uint32_t ui32Offset); - #ifdef __cplusplus } #endif diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.c index c4356272..208d9862 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.c @@ -46,7 +46,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.h index d62b4812..dfb07cfb 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_global.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_GLOBAL_H @@ -74,11 +74,11 @@ extern "C" //***************************************************************************** #ifndef AM_HAL_VERSION_MAJ // -// Set current HAL version to 2.0.1 +// Set current HAL version to 2.2.0 // #define AM_HAL_VERSION_MAJ 2 -#define AM_HAL_VERSION_MIN 0 -#define AM_HAL_VERSION_REV 1 +#define AM_HAL_VERSION_MIN 2 +#define AM_HAL_VERSION_REV 0 #endif // AM_HAL_VERSION_MAJ //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.c index 5f9bc042..4fb86487 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.c @@ -15,24 +15,24 @@ // // Copyright (c) 2019, Ambiq Micro // All rights reserved. -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: -// +// // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. -// +// // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. -// +// // 3. Neither the name of the copyright holder nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. -// +// // Third party software included in this distribution is subject to the // additional license terms as defined in the /docs/licenses directory. -// +// // 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 @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -59,15 +59,15 @@ // // Generally define GPIO PADREG and GPIOCFG bitfields // -#define PADREG_FLD_76_S 6 -#define PADREG_FLD_FNSEL_S 3 -#define PADREG_FLD_DRVSTR_S 2 -#define PADREG_FLD_INPEN_S 1 -#define PADREG_FLD_PULLUP_S 0 +#define PADREG_FLD_76_S 6 +#define PADREG_FLD_FNSEL_S 3 +#define PADREG_FLD_DRVSTR_S 2 +#define PADREG_FLD_INPEN_S 1 +#define PADREG_FLD_PULLUP_S 0 -#define GPIOCFG_FLD_INTD_S 3 -#define GPIOCFG_FLD_OUTCFG_S 1 -#define GPIOCFG_FLD_INCFG_S 0 +#define GPIOCFG_FLD_INTD_S 3 +#define GPIOCFG_FLD_OUTCFG_S 1 +#define GPIOCFG_FLD_INCFG_S 0 //***************************************************************************** // @@ -78,23 +78,26 @@ // Define some common GPIO configurations. //***************************************************************************** const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_DISABLE = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_TRISTATE = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_TRISTATE}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_TRISTATE +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT = - { - .uFuncSel = 3, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN}; +{ + .uFuncSel = 3, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN +}; // // Input with various pullups (weak, 1.5K, 6K, 12K, 24K) @@ -103,79 +106,89 @@ const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT = // The "weak" value is used for almost every other pad except pin 20. // const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP = - { - .uFuncSel = 3, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, - .ePullup = AM_HAL_GPIO_PIN_PULLUP_WEAK}; +{ + .uFuncSel = 3, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, + .ePullup = AM_HAL_GPIO_PIN_PULLUP_WEAK +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_1_5 = - { - .uFuncSel = 3, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, - .ePullup = AM_HAL_GPIO_PIN_PULLUP_1_5K}; +{ + .uFuncSel = 3, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, + .ePullup = AM_HAL_GPIO_PIN_PULLUP_1_5K +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_6 = - { - .uFuncSel = 3, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, - .ePullup = AM_HAL_GPIO_PIN_PULLUP_6K}; +{ + .uFuncSel = 3, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, + .ePullup = AM_HAL_GPIO_PIN_PULLUP_6K +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_12 = - { - .uFuncSel = 3, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, - .ePullup = AM_HAL_GPIO_PIN_PULLUP_12K}; +{ + .uFuncSel = 3, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, + .ePullup = AM_HAL_GPIO_PIN_PULLUP_12K +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_24 = - { - .uFuncSel = 3, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, - .ePullup = AM_HAL_GPIO_PIN_PULLUP_24K}; +{ + .uFuncSel = 3, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_DISABLE, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN, + .ePullup = AM_HAL_GPIO_PIN_PULLUP_24K +}; // // Variations of output (drive strengths, read, etc) // const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_4 = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_4MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_4MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_8 = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_8MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_8MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_12 = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_12MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_12MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL +}; const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_WITH_READ = - { - .uFuncSel = 3, - .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, - .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL, - .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, - .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN}; +{ + .uFuncSel = 3, + .eDriveStrength = AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA, + .eGPOutcfg = AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL, + .eGPInput = AM_HAL_GPIO_PIN_INPUT_ENABLE, + .eGPRdZero = AM_HAL_GPIO_PIN_RDZERO_READPIN +}; //***************************************************************************** // @@ -185,14 +198,14 @@ const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_WITH_READ = // //***************************************************************************** static const uint8_t - g_ui8Inpen[AM_HAL_GPIO_MAX_PADS] = - { - //0 1 2 3 4 5 6 7 8 9 - 0x23, 0x23, 0x24, 0xE2, 0xA1, 0x23, 0x07, 0x10, 0x03, 0x43, // Pins 0-9 - 0x00, 0xE1, 0x51, 0xA1, 0x61, 0x35, 0x25, 0xC5, 0x81, 0x41, // Pins 10-19 - 0x01, 0xB0, 0x60, 0xD1, 0x30, 0x31, 0xA1, 0x31, 0x01, 0xF1, // Pins 20-29 - 0x00, 0x11, 0xB1, 0x21, 0xD1, 0x01, 0xE5, 0x11, 0x05, 0x30, // Pins 30-39 - 0x37, 0x10, 0x30, 0x31, 0x00, 0x61, 0x00, 0x40, 0x30, 0x31 // Pins 40-49 +g_ui8Inpen[AM_HAL_GPIO_MAX_PADS] = +{ + //0 1 2 3 4 5 6 7 8 9 + 0x23, 0x23, 0x27, 0x62, 0xA1, 0x03, 0x87, 0x10, 0x03, 0x53, // Pins 0-9 + 0x00, 0xE1, 0x51, 0x81, 0x41, 0x55, 0x05, 0xC4, 0x80, 0x40, // Pins 10-19 + 0x01, 0xB1, 0x40, 0x41, 0x14, 0x31, 0xA0, 0x31, 0x00, 0xF1, // Pins 20-29 + 0x80, 0x11, 0x91, 0x21, 0xC1, 0x11, 0xE5, 0x11, 0x45, 0x30, // Pins 30-39 + 0x37, 0x00, 0x30, 0x31, 0x00, 0x71, 0x00, 0x40, 0x30, 0x31 // Pins 40-49 }; //***************************************************************************** @@ -201,20 +214,20 @@ static const uint8_t // This lookup table specifies capabilities of each pad for PADREG bits 7:6. // //***************************************************************************** -#define CAP_PUP 0x01 // PULLUP -#define CAP_PDN 0x08 // PULLDOWN (pin 20 only) -#define CAP_VDD 0x02 // VDD PWR (power source) -#define CAP_VSS 0x04 // VSS PWR (ground sink) -#define CAP_RSV 0x80 // bits 7:6 are reserved for this pin +#define CAP_PUP 0x01 // PULLUP +#define CAP_PDN 0x08 // PULLDOWN (pin 20 only) +#define CAP_VDD 0x02 // VDD PWR (power source) +#define CAP_VSS 0x04 // VSS PWR (ground sink) +#define CAP_RSV 0x80 // bits 7:6 are reserved for this pin static const uint8_t - g_ui8Bit76Capabilities[AM_HAL_GPIO_MAX_PADS] = - { - //0 1 2 3 4 5 6 7 8 9 - CAP_PUP, CAP_PUP, CAP_RSV, CAP_VDD, CAP_RSV, CAP_PUP, CAP_PUP, CAP_RSV, CAP_PUP, CAP_PUP, // Pins 0-9 - CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, // Pins 10-19 - CAP_PDN, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_PUP, CAP_RSV, CAP_PUP, CAP_RSV, CAP_RSV, // Pins 20-29 - CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_VDD, CAP_VSS, CAP_RSV, CAP_PUP, // Pins 30-39 - CAP_PUP, CAP_VSS, CAP_PUP, CAP_PUP, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_PUP, CAP_PUP // Pins 40-49 +g_ui8Bit76Capabilities[AM_HAL_GPIO_MAX_PADS] = +{ + //0 1 2 3 4 5 6 7 8 9 + CAP_PUP, CAP_PUP, CAP_RSV, CAP_VDD, CAP_RSV, CAP_PUP, CAP_PUP, CAP_RSV, CAP_PUP, CAP_PUP, // Pins 0-9 + CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, // Pins 10-19 + CAP_PDN, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_PUP, CAP_RSV, CAP_PUP, CAP_RSV, CAP_RSV, // Pins 20-29 + CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_VDD, CAP_VSS, CAP_RSV, CAP_PUP, // Pins 30-39 + CAP_PUP, CAP_VSS, CAP_PUP, CAP_PUP, CAP_RSV, CAP_RSV, CAP_RSV, CAP_RSV, CAP_PUP, CAP_PUP // Pins 40-49 }; //***************************************************************************** @@ -240,14 +253,14 @@ static const uint8_t // //***************************************************************************** static const uint8_t - g_ui8nCEpins[AM_HAL_GPIO_MAX_PADS] = - { - // 0 1 2 3 4 5 6 7 8 9 - 0x07, 0x07, 0x07, 0x02, 0x02, 0x08, 0x08, 0x00, 0x02, 0x02, // Pads 0-9 - 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // Pads 10-19 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // Pads 20-29 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, // Pads 30-39 - 0x08, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 // Pads 40-49 +g_ui8nCEpins[AM_HAL_GPIO_MAX_PADS] = +{ + // 0 1 2 3 4 5 6 7 8 9 + 0x07, 0x07, 0x07, 0x02, 0x02, 0x08, 0x08, 0x00, 0x02, 0x02, // Pads 0-9 + 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // Pads 10-19 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // Pads 20-29 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, // Pads 30-39 + 0x08, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 // Pads 40-49 }; //***************************************************************************** @@ -262,59 +275,59 @@ static const uint8_t // //***************************************************************************** static const uint8_t - g_ui8NCEtable[AM_HAL_GPIO_MAX_PADS][4] = - { - // 0 1 2 3 = OUTCFG - {0x32, 0x42, 0x52, 0x13}, // NCE0 - {0x02, 0x12, 0x22, 0x60}, // NCE1 - {0x33, 0x43, 0x53, 0x21}, // NCE2 - {0x30, 0x40, 0x50, 0x20}, // NCE3 - {0x31, 0x41, 0x51, 0x11}, // NCE4 - {0xFF, 0xFF, 0xFF, 0xFF}, // NCE5 - {0xFF, 0xFF, 0xFF, 0xFF}, // NCE6 - {0x31, 0x41, 0x51, 0x60}, // NCE7 - {0x30, 0x40, 0x50, 0x00}, // NCE8 - {0x33, 0x43, 0x53, 0x23}, // NCE9 - {0x32, 0x42, 0x52, 0x60}, // NCE10 - {0x00, 0x10, 0x20, 0x30}, // NCE11 - {0x30, 0x40, 0x50, 0x61}, // NCE12 - {0x31, 0x41, 0x51, 0x01}, // NCE13 - {0x02, 0x12, 0x22, 0x42}, // NCE14 - {0x03, 0x13, 0x23, 0x60}, // NCE15 - {0x00, 0x10, 0x20, 0x50}, // NCE16 - {0x01, 0x11, 0x21, 0x41}, // NCE17 - {0x02, 0x12, 0x22, 0x32}, // NCE18 - {0x03, 0x13, 0x33, 0x60}, // NCE19 - {0x31, 0x41, 0x51, 0x21}, // NCE20 - {0x32, 0x42, 0x52, 0x22}, // NCE21 - {0x33, 0x43, 0x53, 0x03}, // NCE22 - {0x00, 0x10, 0x20, 0x40}, // NCE23 - {0x01, 0x11, 0x21, 0x51}, // NCE24 - {0x32, 0x42, 0x52, 0x02}, // NCE25 - {0x33, 0x43, 0x53, 0x13}, // NCE26 - {0x30, 0x40, 0x50, 0x10}, // NCE27 - {0x31, 0x41, 0x51, 0x60}, // NCE28 - {0x32, 0x42, 0x52, 0x12}, // NCE29 - {0x33, 0x43, 0x53, 0x03}, // NCE30 - {0x00, 0x10, 0x20, 0x40}, // NCE31 - {0x01, 0x11, 0x21, 0x61}, // NCE32 - {0x02, 0x12, 0x22, 0x52}, // NCE33 - {0x03, 0x13, 0x23, 0x33}, // NCE34 - {0x00, 0x10, 0x20, 0x30}, // NCE35 - {0x31, 0x41, 0x51, 0x61}, // NCE36 - {0x32, 0x42, 0x52, 0x02}, // NCE37 - {0x03, 0x13, 0x33, 0x53}, // NCE38 - {0xFF, 0xFF, 0xFF, 0xFF}, // NCE39 - {0xFF, 0xFF, 0xFF, 0xFF}, // NCE40 - {0x01, 0x11, 0x21, 0x61}, // NCE41 - {0x00, 0x10, 0x20, 0x50}, // NCE42 - {0x01, 0x11, 0x21, 0x61}, // NCE43 - {0x02, 0x12, 0x22, 0x52}, // NCE44 - {0x33, 0x43, 0x53, 0x13}, // NCE45 - {0x30, 0x40, 0x50, 0x61}, // NCE46 - {0x01, 0x11, 0x21, 0x31}, // NCE47 - {0x02, 0x12, 0x22, 0x32}, // NCE48 - {0x03, 0x13, 0x23, 0x43} // NCE49 +g_ui8NCEtable[AM_HAL_GPIO_MAX_PADS][4] = +{ + // 0 1 2 3 = OUTCFG + {0x32, 0x42, 0x52, 0x13}, // NCE0 + {0x02, 0x12, 0x22, 0x60}, // NCE1 + {0x33, 0x43, 0x53, 0x21}, // NCE2 + {0x30, 0x40, 0x50, 0x20}, // NCE3 + {0x31, 0x41, 0x51, 0x11}, // NCE4 + {0xFF, 0xFF, 0xFF, 0xFF}, // NCE5 + {0xFF, 0xFF, 0xFF, 0xFF}, // NCE6 + {0x31, 0x41, 0x51, 0x60}, // NCE7 + {0x30, 0x40, 0x50, 0x00}, // NCE8 + {0x33, 0x43, 0x53, 0x23}, // NCE9 + {0x32, 0x42, 0x52, 0x60}, // NCE10 + {0x00, 0x10, 0x20, 0x30}, // NCE11 + {0x30, 0x40, 0x50, 0x61}, // NCE12 + {0x31, 0x41, 0x51, 0x01}, // NCE13 + {0x02, 0x12, 0x22, 0x42}, // NCE14 + {0x03, 0x13, 0x23, 0x60}, // NCE15 + {0x00, 0x10, 0x20, 0x50}, // NCE16 + {0x01, 0x11, 0x21, 0x41}, // NCE17 + {0x02, 0x12, 0x22, 0x32}, // NCE18 + {0x03, 0x13, 0x33, 0x60}, // NCE19 + {0x31, 0x41, 0x51, 0x21}, // NCE20 + {0x32, 0x42, 0x52, 0x22}, // NCE21 + {0x33, 0x43, 0x53, 0x03}, // NCE22 + {0x00, 0x10, 0x20, 0x40}, // NCE23 + {0x01, 0x11, 0x21, 0x51}, // NCE24 + {0x32, 0x42, 0x52, 0x02}, // NCE25 + {0x33, 0x43, 0x53, 0x13}, // NCE26 + {0x30, 0x40, 0x50, 0x10}, // NCE27 + {0x31, 0x41, 0x51, 0x60}, // NCE28 + {0x32, 0x42, 0x52, 0x12}, // NCE29 + {0x33, 0x43, 0x53, 0x03}, // NCE30 + {0x00, 0x10, 0x20, 0x40}, // NCE31 + {0x01, 0x11, 0x21, 0x61}, // NCE32 + {0x02, 0x12, 0x22, 0x52}, // NCE33 + {0x03, 0x13, 0x23, 0x33}, // NCE34 + {0x00, 0x10, 0x20, 0x30}, // NCE35 + {0x31, 0x41, 0x51, 0x61}, // NCE36 + {0x32, 0x42, 0x52, 0x02}, // NCE37 + {0x03, 0x13, 0x33, 0x53}, // NCE38 + {0xFF, 0xFF, 0xFF, 0xFF}, // NCE39 + {0xFF, 0xFF, 0xFF, 0xFF}, // NCE40 + {0x01, 0x11, 0x21, 0x61}, // NCE41 + {0x00, 0x10, 0x20, 0x50}, // NCE42 + {0x01, 0x11, 0x21, 0x61}, // NCE43 + {0x02, 0x12, 0x22, 0x52}, // NCE44 + {0x33, 0x43, 0x53, 0x13}, // NCE45 + {0x30, 0x40, 0x50, 0x61}, // NCE46 + {0x01, 0x11, 0x21, 0x31}, // NCE47 + {0x02, 0x12, 0x22, 0x32}, // NCE48 + {0x03, 0x13, 0x23, 0x43} // NCE49 }; //***************************************************************************** @@ -340,8 +353,8 @@ pincfg_equ(void *cfg1, void *cfg2) // We're assuming that am_hal_gpio_pincfg_t boils down to a uint32_t, // which is its intent. // - ui32A = *((uint32_t *)cfg1); - ui32B = *((uint32_t *)cfg2); + ui32A = *((uint32_t*)cfg1); + ui32B = *((uint32_t*)cfg2); return ui32A == ui32B ? true : false; @@ -351,7 +364,7 @@ static uint32_t num_bits64(uint64_t ui64bitmask) { uint32_t ux = 0; - while (ui64bitmask) + while ( ui64bitmask ) { ux += ui64bitmask & 1; ui64bitmask >>= 1; @@ -359,6 +372,7 @@ num_bits64(uint64_t ui64bitmask) return ux; } // num_bits64() + //***************************************************************************** // //! @brief Configure an Apollo3 pin. @@ -382,7 +396,7 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) bool bClearEnable = false; #ifndef AM_HAL_DISABLE_API_VALIDATION - if (ui32Pin >= AM_HAL_GPIO_MAX_PADS) + if ( ui32Pin >= AM_HAL_GPIO_MAX_PADS ) { return AM_HAL_STATUS_INVALID_ARG; } @@ -404,7 +418,7 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // // Check for invalid configuration requests. // - if (bfGpioCfg.ePullup != AM_HAL_GPIO_PIN_PULLUP_NONE) + if ( bfGpioCfg.ePullup != AM_HAL_GPIO_PIN_PULLUP_NONE ) { // // This setting is needed for all pullup settings including @@ -415,26 +429,31 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // // Check for specific pullup or pulldown settings. // - if ((bfGpioCfg.ePullup >= AM_HAL_GPIO_PIN_PULLUP_1_5K) && - (bfGpioCfg.ePullup <= AM_HAL_GPIO_PIN_PULLUP_24K)) + if ( (bfGpioCfg.ePullup >= AM_HAL_GPIO_PIN_PULLUP_1_5K) && + (bfGpioCfg.ePullup <= AM_HAL_GPIO_PIN_PULLUP_24K) ) { - ui32Padreg |= ((bfGpioCfg.ePullup - AM_HAL_GPIO_PIN_PULLUP_1_5K) << PADREG_FLD_76_S); + ui32Padreg |= ((bfGpioCfg.ePullup - AM_HAL_GPIO_PIN_PULLUP_1_5K) << + PADREG_FLD_76_S); #ifndef AM_HAL_DISABLE_API_VALIDATION - if (!(g_ui8Bit76Capabilities[ui32Pin] & CAP_PUP)) + if ( !(g_ui8Bit76Capabilities[ui32Pin] & CAP_PUP) ) { return AM_HAL_GPIO_ERR_PULLUP; } } - else if (bfGpioCfg.ePullup == AM_HAL_GPIO_PIN_PULLDOWN) + else if ( bfGpioCfg.ePullup == AM_HAL_GPIO_PIN_PULLDOWN ) { - if (ui32Pin != 20) + if ( ui32Pin != 20 ) { return AM_HAL_GPIO_ERR_PULLDOWN; } } - else if (bfGpioCfg.ePullup != AM_HAL_GPIO_PIN_PULLUP_WEAK) + else if ( bfGpioCfg.ePullup == AM_HAL_GPIO_PIN_PULLUP_WEAK ) { - if ((g_ui8Bit76Capabilities[ui32Pin] & (CAP_PUP | CAP_PDN)) == 0) + // + // All pads except 20 support a weak pullup, for which we only need + // to set PADnPULL and clear 7:6 (already done at this point). + // + if ( ui32Pin == 20 ) { return AM_HAL_GPIO_ERR_PULLUP; } @@ -445,15 +464,15 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // // Check if requesting a power switch pin // - if (ui32PowerSw != AM_HAL_GPIO_PIN_POWERSW_NONE) + if ( ui32PowerSw != AM_HAL_GPIO_PIN_POWERSW_NONE ) { - if ((ui32PowerSw == AM_HAL_GPIO_PIN_POWERSW_VDD) && - (g_ui8Bit76Capabilities[ui32Pin] & CAP_VDD)) + if ( (ui32PowerSw == AM_HAL_GPIO_PIN_POWERSW_VDD) && + (g_ui8Bit76Capabilities[ui32Pin] & CAP_VDD) ) { ui32Padreg |= 0x1 << PADREG_FLD_76_S; } - else if ((ui32PowerSw == AM_HAL_GPIO_PIN_POWERSW_VSS) && - (g_ui8Bit76Capabilities[ui32Pin] & CAP_VSS)) + else if ( (ui32PowerSw == AM_HAL_GPIO_PIN_POWERSW_VSS) && + (g_ui8Bit76Capabilities[ui32Pin] & CAP_VSS) ) { ui32Padreg |= 0x2 << PADREG_FLD_76_S; } @@ -471,7 +490,7 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // // Configure ui32GpCfg based on whether nCE requested. // - if (g_ui8nCEpins[ui32Pin] == ui32Funcsel) + if ( g_ui8nCEpins[ui32Pin] == ui32Funcsel ) { uint32_t ui32Outcfg; uint8_t ui8CEtbl; @@ -483,9 +502,9 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // Valid uNCE values are 0-3 (uNCE is a 2-bit field). // Valid uIOMnum are 0-6 (0-5 for IOMs, 6 for MSPI, 7 is invalid). // - if (bfGpioCfg.uIOMnum > IOMNUM_MAX) + if ( bfGpioCfg.uIOMnum > IOMNUM_MAX ) { - return AM_HAL_GPIO_ERR_INVCE; // Invalid CE specified + return AM_HAL_GPIO_ERR_INVCE; // Invalid CE specified } #endif // AM_HAL_DISABLE_API_VALIDATION @@ -494,24 +513,24 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // the OUTCFG value by looking for that value in the pin row. // ui8CEtbl = (bfGpioCfg.uIOMnum << 4) | bfGpioCfg.uNCE; - for (ui32Outcfg = 0; ui32Outcfg < 4; ui32Outcfg++) + for ( ui32Outcfg = 0; ui32Outcfg < 4; ui32Outcfg++ ) { - if (g_ui8NCEtable[ui32Pin][ui32Outcfg] == ui8CEtbl) + if ( g_ui8NCEtable[ui32Pin][ui32Outcfg] == ui8CEtbl ) { break; } } #ifndef AM_HAL_DISABLE_API_VALIDATION - if (ui32Outcfg >= 4) + if ( ui32Outcfg >= 4 ) { return AM_HAL_GPIO_ERR_INVCEPIN; } #endif // AM_HAL_DISABLE_API_VALIDATION - ui32GPCfg |= (ui32Outcfg << GPIOCFG_FLD_OUTCFG_S) | - (bfGpioCfg.eCEpol << GPIOCFG_FLD_INTD_S) | - (0 << GPIOCFG_FLD_INCFG_S); + ui32GPCfg |= (ui32Outcfg << GPIOCFG_FLD_OUTCFG_S) | + (bfGpioCfg.eCEpol << GPIOCFG_FLD_INTD_S) | + (0 << GPIOCFG_FLD_INCFG_S); } else { @@ -528,12 +547,12 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // Bit0 of eIntDir maps to GPIOCFG.INTD (b3). // Bit1 of eIntDir maps to GPIOCFG.INCFG (b0). // - ui32GPCfg |= (bfGpioCfg.eGPOutcfg << GPIOCFG_FLD_OUTCFG_S) | - (((bfGpioCfg.eIntDir >> 0) & 0x1) << GPIOCFG_FLD_INTD_S) | + ui32GPCfg |= (bfGpioCfg.eGPOutcfg << GPIOCFG_FLD_OUTCFG_S) | + (((bfGpioCfg.eIntDir >> 0) & 0x1) << GPIOCFG_FLD_INTD_S) | (((bfGpioCfg.eIntDir >> 1) & 0x1) << GPIOCFG_FLD_INCFG_S); - if ((bfGpioCfg.eGPOutcfg == AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL) || - pincfg_equ(&bfGpioCfg, (void *)&g_AM_HAL_GPIO_DISABLE)) + if ( (bfGpioCfg.eGPOutcfg == AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL) || + pincfg_equ(&bfGpioCfg, (void*)&g_AM_HAL_GPIO_DISABLE) ) { // // For pushpull configurations, we must be sure to clear the ENABLE @@ -557,38 +576,38 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) // If eIntDir is provided, eGPRdZero is ignored and can only be // achieved via the AM_HAL_GPIO_PIN_INTDIR_NONE setting. // - if (bfGpioCfg.eIntDir == 0) + if ( bfGpioCfg.eIntDir == 0 ) { ui32GPCfg &= ~(1 << GPIOCFG_FLD_INCFG_S); ui32GPCfg |= (bfGpioCfg.eGPRdZero << GPIOCFG_FLD_INCFG_S); } } - switch (bfGpioCfg.eDriveStrength) + switch ( bfGpioCfg.eDriveStrength ) { - // DRIVESTRENGTH is a 2-bit field. - // bit0 maps to bit2 of a PADREG field. - // bit1 maps to bit0 of an ALTPADCFG field. - case AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA: - ui32Padreg |= (0 << PADREG_FLD_DRVSTR_S); - ui32AltPadCfg |= (0 << 0); - break; - case AM_HAL_GPIO_PIN_DRIVESTRENGTH_4MA: - ui32Padreg |= (1 << PADREG_FLD_DRVSTR_S); - ui32AltPadCfg |= (0 << 0); - break; - case AM_HAL_GPIO_PIN_DRIVESTRENGTH_8MA: - ui32Padreg |= (0 << PADREG_FLD_DRVSTR_S); - ui32AltPadCfg |= (1 << 0); - break; - case AM_HAL_GPIO_PIN_DRIVESTRENGTH_12MA: - ui32Padreg |= (1 << PADREG_FLD_DRVSTR_S); - ui32AltPadCfg |= (1 << 0); - break; + // DRIVESTRENGTH is a 2-bit field. + // bit0 maps to bit2 of a PADREG field. + // bit1 maps to bit0 of an ALTPADCFG field. + case AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA: + ui32Padreg |= (0 << PADREG_FLD_DRVSTR_S); + ui32AltPadCfg |= (0 << 0); + break; + case AM_HAL_GPIO_PIN_DRIVESTRENGTH_4MA: + ui32Padreg |= (1 << PADREG_FLD_DRVSTR_S); + ui32AltPadCfg |= (0 << 0); + break; + case AM_HAL_GPIO_PIN_DRIVESTRENGTH_8MA: + ui32Padreg |= (0 << PADREG_FLD_DRVSTR_S); + ui32AltPadCfg |= (1 << 0); + break; + case AM_HAL_GPIO_PIN_DRIVESTRENGTH_12MA: + ui32Padreg |= (1 << PADREG_FLD_DRVSTR_S); + ui32AltPadCfg |= (1 << 0); + break; } // - // At this point, the 3 configuration variables, ui32GpioCfg, ui32Padreg, + // At this point, the 3 configuration variables, ui32GPCfg, ui32Padreg, // and ui32AltPadCfg values are set (at bit position 0) and ready to write // to their respective register bitfields. // @@ -596,25 +615,25 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) uint32_t ui32GPCfgClearMask, ui32PadClearMask; uint32_t ui32GPCfgShft, ui32PadShft; - ui32GPCfgAddr = AM_REGADDR(GPIO, CFGA) + ((ui32Pin >> 1) & ~0x3); - ui32PadregAddr = AM_REGADDR(GPIO, PADREGA) + (ui32Pin & ~0x3); - ui32AltpadAddr = AM_REGADDR(GPIO, ALTPADCFGA) + (ui32Pin & ~0x3); + ui32GPCfgAddr = AM_REGADDR(GPIO, CFGA) + ((ui32Pin >> 1) & ~0x3); + ui32PadregAddr = AM_REGADDR(GPIO, PADREGA) + (ui32Pin & ~0x3); + ui32AltpadAddr = AM_REGADDR(GPIO, ALTPADCFGA) + (ui32Pin & ~0x3); - ui32GPCfgShft = ((ui32Pin & 0x7) << 2); - ui32PadShft = ((ui32Pin & 0x3) << 3); - ui32GPCfgClearMask = ~((uint32_t)0xF << ui32GPCfgShft); - ui32PadClearMask = ~((uint32_t)0xFF << ui32PadShft); + ui32GPCfgShft = ((ui32Pin & 0x7) << 2); + ui32PadShft = ((ui32Pin & 0x3) << 3); + ui32GPCfgClearMask = ~((uint32_t)0xF << ui32GPCfgShft); + ui32PadClearMask = ~((uint32_t)0xFF << ui32PadShft); // // Get the new values into their rightful bit positions. // - ui32Padreg <<= ui32PadShft; + ui32Padreg <<= ui32PadShft; ui32AltPadCfg <<= ui32PadShft; - ui32GPCfg <<= ui32GPCfgShft; + ui32GPCfg <<= ui32GPCfgShft; AM_CRITICAL_BEGIN - if (bClearEnable) + if ( bClearEnable ) { // // We're configuring a mode that requires clearing the Enable bit. @@ -624,9 +643,9 @@ am_hal_gpio_pinconfig(uint32_t ui32Pin, am_hal_gpio_pincfg_t bfGpioCfg) GPIO->PADKEY = GPIO_PADKEY_PADKEY_Key; - AM_REGVAL(ui32PadregAddr) = (AM_REGVAL(ui32PadregAddr) & ui32PadClearMask) | ui32Padreg; - AM_REGVAL(ui32GPCfgAddr) = (AM_REGVAL(ui32GPCfgAddr) & ui32GPCfgClearMask) | ui32GPCfg; - AM_REGVAL(ui32AltpadAddr) = (AM_REGVAL(ui32AltpadAddr) & ui32PadClearMask) | ui32AltPadCfg; + AM_REGVAL(ui32PadregAddr) = (AM_REGVAL(ui32PadregAddr) & ui32PadClearMask) | ui32Padreg; + AM_REGVAL(ui32GPCfgAddr) = (AM_REGVAL(ui32GPCfgAddr) & ui32GPCfgClearMask) | ui32GPCfg; + AM_REGVAL(ui32AltpadAddr) = (AM_REGVAL(ui32AltpadAddr) & ui32PadClearMask) | ui32AltPadCfg; GPIO->PADKEY = 0; @@ -667,9 +686,9 @@ am_hal_gpio_fast_pinconfig(uint64_t ui64PinMask, uint32_t ux, ui32pinnum, ui32retval, ui32Mask; #ifndef AM_HAL_DISABLE_API_VALIDATION - if ((ui64PinMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1)) || - (num_bits64(ui64PinMask) > 8) || - (bfGpioCfg.eGPOutcfg == AM_HAL_GPIO_PIN_OUTCFG_TRISTATE)) + if ( (ui64PinMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1)) || + (num_bits64(ui64PinMask) > 8) || + (bfGpioCfg.eGPOutcfg == AM_HAL_GPIO_PIN_OUTCFG_TRISTATE) ) { return AM_HAL_STATUS_INVALID_ARG; } @@ -682,9 +701,9 @@ am_hal_gpio_fast_pinconfig(uint64_t ui64PinMask, ui32Mask = 0; ui32pinnum = 0; ux = 0; - while (ui64PinMask) + while ( ui64PinMask ) { - if (ui64PinMask & 0x1) + if ( ui64PinMask & 0x1 ) { // // It is assumed that the caller will have disabled Fast GPIO and @@ -695,7 +714,7 @@ am_hal_gpio_fast_pinconfig(uint64_t ui64PinMask, // Configure the pin. // ui32retval = am_hal_gpio_pinconfig(ui32pinnum, bfGpioCfg); - if (ui32retval) + if ( ui32retval ) { return ui32retval; } @@ -707,12 +726,12 @@ am_hal_gpio_fast_pinconfig(uint64_t ui64PinMask, // am_hal_gpio_fastgpio_enable(ui32pinnum); - if (ui32Masks) + if ( ui32Masks ) { - ui32Masks[ux + 0] = _VAL2FLD(APBDMA_BBSETCLEAR_SET, ui32Mask); + ui32Masks[ux + 0] = _VAL2FLD(APBDMA_BBSETCLEAR_SET, ui32Mask); ui32Masks[ux + 1] = _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, ui32Mask); } - ux += 2; // Get next indexes + ux += 2; // Get next indexes } ui32pinnum++; ui64PinMask >>= 1; @@ -748,12 +767,12 @@ am_hal_gpio_state_read(uint32_t ui32Pin, uint32_t ui32BaseAddr, ui32Shift; #ifndef AM_HAL_DISABLE_API_VALIDATION - if (pui32ReadState == NULL) + if ( pui32ReadState == NULL ) { return AM_HAL_STATUS_INVALID_ARG; } - if (ui32Pin >= AM_HAL_GPIO_MAX_PADS) + if ( ui32Pin >= AM_HAL_GPIO_MAX_PADS ) { *pui32ReadState = ui32ReadValue; return AM_HAL_STATUS_OUT_OF_RANGE; @@ -763,30 +782,30 @@ am_hal_gpio_state_read(uint32_t ui32Pin, // // Compute base address + offset of 0 or 4. // - ui32BaseAddr = ((ui32Pin & 0x20) >> 3); // 0 or 4 - ui32Shift = ui32Pin & 0x1F; + ui32BaseAddr = ((ui32Pin & 0x20) >> 3); // 0 or 4 + ui32Shift = ui32Pin & 0x1F; - switch (eReadType) + switch ( eReadType ) { - case AM_HAL_GPIO_INPUT_READ: - // - // Assumes eIntDir != AM_HAL_GPIO_PIN_INTDIR_NONE && - // eIntDir != AM_HAL_GPIO_PIN_INTDIR_BOTH - // If either of those configs are set, returns 0. - // - ui32ReadValue = AM_REGVAL(AM_REGADDR(GPIO, RDA) + ui32BaseAddr); - ui32ReadValue = (ui32ReadValue >> ui32Shift) & 0x01; - break; - case AM_HAL_GPIO_OUTPUT_READ: - ui32ReadValue = AM_REGVAL(AM_REGADDR(GPIO, WTA) + ui32BaseAddr); - ui32ReadValue = (ui32ReadValue >> ui32Shift) & 0x01; - break; - case AM_HAL_GPIO_ENABLE_READ: - ui32ReadValue = AM_REGVAL(AM_REGADDR(GPIO, ENA) + ui32BaseAddr); - ui32ReadValue = (ui32ReadValue >> ui32Shift) & 0x01; - break; - default: - return AM_HAL_STATUS_INVALID_ARG; + case AM_HAL_GPIO_INPUT_READ: + // + // Assumes eIntDir != AM_HAL_GPIO_PIN_INTDIR_NONE && + // eIntDir != AM_HAL_GPIO_PIN_INTDIR_BOTH + // If either of those configs are set, returns 0. + // + ui32ReadValue = AM_REGVAL(AM_REGADDR(GPIO, RDA) + ui32BaseAddr); + ui32ReadValue = (ui32ReadValue >> ui32Shift) & 0x01; + break; + case AM_HAL_GPIO_OUTPUT_READ: + ui32ReadValue = AM_REGVAL(AM_REGADDR(GPIO, WTA) + ui32BaseAddr); + ui32ReadValue = (ui32ReadValue >> ui32Shift) & 0x01; + break; + case AM_HAL_GPIO_ENABLE_READ: + ui32ReadValue = AM_REGVAL(AM_REGADDR(GPIO, ENA) + ui32BaseAddr); + ui32ReadValue = (ui32ReadValue >> ui32Shift) & 0x01; + break; + default: + return AM_HAL_STATUS_INVALID_ARG; } *pui32ReadState = ui32ReadValue; @@ -821,46 +840,46 @@ am_hal_gpio_state_write(uint32_t ui32Pin, am_hal_gpio_write_type_e eWriteType) uint32_t ui32Return = AM_HAL_STATUS_SUCCESS; #ifndef AM_HAL_DISABLE_API_VALIDATION - if (ui32Pin >= AM_HAL_GPIO_MAX_PADS) + if ( ui32Pin >= AM_HAL_GPIO_MAX_PADS ) { return AM_HAL_STATUS_OUT_OF_RANGE; } - if (eWriteType > AM_HAL_GPIO_OUTPUT_TRISTATE_TOGGLE) + if ( eWriteType > AM_HAL_GPIO_OUTPUT_TRISTATE_TOGGLE ) { return AM_HAL_STATUS_INVALID_ARG; } #endif // AM_HAL_DISABLE_API_VALIDATION ui32Mask = (uint32_t)0x1 << (ui32Pin % 32); - ui32Off = (ui32Pin & 0x20) >> 3; // 0 or 4 + ui32Off = (ui32Pin & 0x20) >> 3; // 0 or 4 AM_CRITICAL_BEGIN; - switch (eWriteType) + switch ( eWriteType ) { - case AM_HAL_GPIO_OUTPUT_SET: // Write a one to a GPIO. - AM_REGVAL(AM_REGADDR(GPIO, WTSA) + ui32Off) = ui32Mask; - break; - case AM_HAL_GPIO_OUTPUT_CLEAR: // Write a zero to a GPIO. - AM_REGVAL(AM_REGADDR(GPIO, WTCA) + ui32Off) = ui32Mask; - break; - case AM_HAL_GPIO_OUTPUT_TOGGLE: // Toggle the GPIO value. - AM_REGVAL(AM_REGADDR(GPIO, WTA) + ui32Off) ^= ui32Mask; - break; - case AM_HAL_GPIO_OUTPUT_TRISTATE_ENABLE: // Enable a tri-state GPIO. - AM_REGVAL(AM_REGADDR(GPIO, ENSA) + ui32Off) = ui32Mask; - break; - case AM_HAL_GPIO_OUTPUT_TRISTATE_DISABLE: // Disable a tri-state GPIO. - AM_REGVAL(AM_REGADDR(GPIO, ENCA) + ui32Off) = ui32Mask; - break; - case AM_HAL_GPIO_OUTPUT_TRISTATE_TOGGLE: // Toggle a tri-state GPIO. - AM_REGVAL(AM_REGADDR(GPIO, ENCA) + ui32Off) ^= ui32Mask; - break; - default: - // Type values were validated on entry. - // We can't return from here because we're in a critical section. - ui32Return = AM_HAL_STATUS_INVALID_ARG; - break; + case AM_HAL_GPIO_OUTPUT_SET: // Write a one to a GPIO. + AM_REGVAL(AM_REGADDR(GPIO, WTSA) + ui32Off) = ui32Mask; + break; + case AM_HAL_GPIO_OUTPUT_CLEAR: // Write a zero to a GPIO. + AM_REGVAL(AM_REGADDR(GPIO, WTCA) + ui32Off) = ui32Mask; + break; + case AM_HAL_GPIO_OUTPUT_TOGGLE: // Toggle the GPIO value. + AM_REGVAL(AM_REGADDR(GPIO, WTA) + ui32Off) ^= ui32Mask; + break; + case AM_HAL_GPIO_OUTPUT_TRISTATE_ENABLE: // Enable a tri-state GPIO. + AM_REGVAL(AM_REGADDR(GPIO, ENSA) + ui32Off) = ui32Mask; + break; + case AM_HAL_GPIO_OUTPUT_TRISTATE_DISABLE: // Disable a tri-state GPIO. + AM_REGVAL(AM_REGADDR(GPIO, ENCA) + ui32Off) = ui32Mask; + break; + case AM_HAL_GPIO_OUTPUT_TRISTATE_TOGGLE: // Toggle a tri-state GPIO. + AM_REGVAL(AM_REGADDR(GPIO, ENCA) + ui32Off) ^= ui32Mask; + break; + default: + // Type values were validated on entry. + // We can't return from here because we're in a critical section. + ui32Return = AM_HAL_STATUS_INVALID_ARG; + break; } AM_CRITICAL_END; @@ -880,7 +899,7 @@ am_hal_gpio_interrupt_enable(uint64_t ui64InterruptMask) // // Check parameters // - if (ui64InterruptMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1)) + if ( ui64InterruptMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1) ) { return AM_HAL_STATUS_OUT_OF_RANGE; } @@ -915,7 +934,7 @@ am_hal_gpio_interrupt_disable(uint64_t ui64InterruptMask) // // Check parameters // - if (ui64InterruptMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1)) + if ( ui64InterruptMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1) ) { return AM_HAL_STATUS_OUT_OF_RANGE; } @@ -950,7 +969,7 @@ am_hal_gpio_interrupt_clear(uint64_t ui64InterruptMask) // // Check parameters // - if (ui64InterruptMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1)) + if ( ui64InterruptMask & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1) ) { return AM_HAL_STATUS_OUT_OF_RANGE; } @@ -985,7 +1004,7 @@ am_hal_gpio_interrupt_status_get(bool bEnabledOnly, uint64_t *pui64IntStatus) uint64_t ui64RetVal, ui64Mask; #ifndef AM_HAL_DISABLE_API_VALIDATION - if (pui64IntStatus == NULL) + if ( pui64IntStatus == NULL ) { return AM_HAL_STATUS_INVALID_ARG; } @@ -994,20 +1013,20 @@ am_hal_gpio_interrupt_status_get(bool bEnabledOnly, uint64_t *pui64IntStatus) // // Initialize variable outside critical section // - ui64Mask = 0xFFFFFFFFFFFFFFFF; + ui64Mask = 0xFFFFFFFFFFFFFFFF; // // Combine upper or lower GPIO words into one 64 bit return value. // AM_CRITICAL_BEGIN - ui64RetVal = ((uint64_t)GPIO->INT1STAT) << 32; + ui64RetVal = ((uint64_t)GPIO->INT1STAT) << 32; ui64RetVal |= ((uint64_t)GPIO->INT0STAT) << 0; - if (bEnabledOnly) + if ( bEnabledOnly ) { - ui64Mask = ((uint64_t)GPIO->INT1EN) << 32; - ui64Mask |= ((uint64_t)GPIO->INT0EN) << 0; + ui64Mask = ((uint64_t)GPIO->INT1EN) << 32; + ui64Mask |= ((uint64_t)GPIO->INT0EN) << 0; } ui64RetVal &= ui64Mask; @@ -1036,12 +1055,12 @@ am_hal_gpio_interrupt_register(uint32_t ui32GPIONumber, // // Check parameters // - if (ui32GPIONumber >= AM_HAL_GPIO_MAX_PADS) + if ( ui32GPIONumber >= AM_HAL_GPIO_MAX_PADS ) { return AM_HAL_STATUS_OUT_OF_RANGE; } - if (pfnHandler == NULL) + if ( pfnHandler == NULL ) { return AM_HAL_STATUS_INVALID_ARG; } @@ -1076,12 +1095,12 @@ am_hal_gpio_interrupt_service(uint64_t ui64Status) // // Check parameters // - if (ui64Status & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1)) + if ( ui64Status & ~(((uint64_t)1 << AM_HAL_GPIO_MAX_PADS) - 1) ) { return AM_HAL_STATUS_OUT_OF_RANGE; } - if (ui64Status == 0) + if ( ui64Status == 0 ) { return AM_HAL_STATUS_FAIL; } @@ -1094,14 +1113,14 @@ am_hal_gpio_interrupt_service(uint64_t ui64Status) // (The order of handling upper or lower bits is somewhat arbitrary.) // ui32Cnt = 0; - while (ui32Cnt < 33) + while ( ui32Cnt < 33 ) { // // Get upper or lower status word. // ui32Status = (uint32_t)(ui64Status >> ui32Cnt); - while (ui32Status) + while ( ui32Status ) { // // We need to FFS (Find First Set). We can easily zero-base FFS @@ -1126,7 +1145,7 @@ am_hal_gpio_interrupt_service(uint64_t ui64Status) // registered for this particular bit. // pfnHandler = gpio_ppfnHandlers[ui32Cnt + ui32FFS]; - if (pfnHandler) + if ( pfnHandler ) { // // If we found an interrupt handler routine, call it now. @@ -1152,6 +1171,7 @@ am_hal_gpio_interrupt_service(uint64_t ui64Status) } // am_hal_gpio_interrupt_service() + //***************************************************************************** // // End Doxygen group. diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.h index 01d27dbe..ff68aba5 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_gpio.h @@ -15,24 +15,24 @@ // // Copyright (c) 2019, Ambiq Micro // All rights reserved. -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: -// +// // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. -// +// // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. -// +// // 3. Neither the name of the copyright holder nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. -// +// // Third party software included in this distribution is subject to the // additional license terms as defined in the /docs/licenses directory. -// +// // 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 @@ -45,12 +45,12 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_GPIO_H -#define AM_HAL_GPIO_H 1 +#define AM_HAL_GPIO_H 1 #ifdef __cplusplus extern "C" @@ -60,205 +60,207 @@ extern "C" // // Designate this peripheral. // -#define AM_APOLLO3_GPIO 1 +#define AM_APOLLO3_GPIO 1 // // Maximum number of GPIOs on this device // -#define AM_HAL_GPIO_MAX_PADS (50) +#define AM_HAL_GPIO_MAX_PADS (50) // // Macro to assist with defining a GPIO bit given a GPIO number. // -#define AM_HAL_GPIO_BIT(n) (((uint64_t)0x1) << n) - - //***************************************************************************** - //! - //! Read types for am_hal_gpio_state_read(). - //! - //***************************************************************************** - typedef enum - { - AM_HAL_GPIO_INPUT_READ, - AM_HAL_GPIO_OUTPUT_READ, - AM_HAL_GPIO_ENABLE_READ - } am_hal_gpio_read_type_e; - - //***************************************************************************** - //! - //! Write types for am_hal_gpio_state_write(). - //! - //***************************************************************************** - typedef enum - { - AM_HAL_GPIO_OUTPUT_CLEAR, - AM_HAL_GPIO_OUTPUT_SET, - AM_HAL_GPIO_OUTPUT_TOGGLE, - AM_HAL_GPIO_OUTPUT_TRISTATE_DISABLE, - AM_HAL_GPIO_OUTPUT_TRISTATE_ENABLE, - AM_HAL_GPIO_OUTPUT_TRISTATE_TOGGLE - } am_hal_gpio_write_type_e; - - //***************************************************************************** - //! - //! Types for ui32GpioCfg bitfields in am_hal_gpio_pinconfig(). - //! - //***************************************************************************** - //! - //! Power Switch configuration: am_hal_gpio_pincfg_t.ePowerSw enums - //! - typedef enum - { - AM_HAL_GPIO_PIN_POWERSW_NONE, - AM_HAL_GPIO_PIN_POWERSW_VDD, - AM_HAL_GPIO_PIN_POWERSW_VSS, - AM_HAL_GPIO_PIN_POWERSW_INVALID, - } am_hal_gpio_powersw_e; - - //! - //! Pullup configuration: am_hal_gpio_pincfg_t.ePullup enums - //! - typedef enum - { - // - //! Define pullup enums. - //! The 1.5K - 24K pullup values are valid for select I2C enabled pads. - //! For Apollo3 these pins are 0-1,5-6,8-9,25,27,39-40,42-43,48-49. - //! The "weak" value is used for almost every other pad except pin 20. - // - AM_HAL_GPIO_PIN_PULLUP_NONE = 0x00, - AM_HAL_GPIO_PIN_PULLUP_WEAK, - AM_HAL_GPIO_PIN_PULLUP_1_5K, - AM_HAL_GPIO_PIN_PULLUP_6K, - AM_HAL_GPIO_PIN_PULLUP_12K, - AM_HAL_GPIO_PIN_PULLUP_24K, - AM_HAL_GPIO_PIN_PULLDOWN - } am_hal_gpio_pullup_e; - - //! - //! Pad Drive Strength configuration: am_hal_gpio_pincfg_t.eDriveStrength enums - //! - typedef enum - { - // - //! DRIVESTRENGTH is a 2-bit field. - //! bit0 maps to bit2 of a PADREG field. - //! bit1 maps to bit0 of an ALTPADCFG field. - // - AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA = 0x0, - AM_HAL_GPIO_PIN_DRIVESTRENGTH_4MA = 0x1, - AM_HAL_GPIO_PIN_DRIVESTRENGTH_8MA = 0x2, - AM_HAL_GPIO_PIN_DRIVESTRENGTH_12MA = 0x3 - } am_hal_gpio_drivestrength_e; - - //! - //! OUTCFG pad configuration: am_hal_gpio_pincfg_t.eGPOutcfg enums - //! Applies only to GPIO configured pins. - //! Ultimately maps to GPIOCFG.OUTCFG, bits [2:1]. - //! - typedef enum - { - AM_HAL_GPIO_PIN_OUTCFG_DISABLE = 0x0, - AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL = 0x1, - AM_HAL_GPIO_PIN_OUTCFG_OPENDRAIN = 0x2, - AM_HAL_GPIO_PIN_OUTCFG_TRISTATE = 0x3 - } am_hal_gpio_outcfg_e; - - //! - //! GPIO input configuration: am_hal_gpio_pincfg_t.eGPInput enums - //! Applies only to GPIO configured pins! - //! Ultimately maps to PADREG.INPEN, bit1. - //! - typedef enum - { - AM_HAL_GPIO_PIN_INPUT_AUTO = 0x0, - AM_HAL_GPIO_PIN_INPUT_NONE = 0x0, - AM_HAL_GPIO_PIN_INPUT_ENABLE = 0x1 - } am_hal_gpio_input_e; - - //! - //! GPIO interrupt direction configuration: am_hal_gpio_pincfg_t.eIntDir enums - //! Note: Setting INTDIR_NONE has the side-effect of disabling being able to - //! read a pin - the pin will always read back as 0. - //! - typedef enum - { - // Bit1 of these values maps to GPIOCFG.INCFG (b0). - // Bit0 of these values maps to GPIOCFG.INTD (b3). - AM_HAL_GPIO_PIN_INTDIR_LO2HI = 0x0, - AM_HAL_GPIO_PIN_INTDIR_HI2LO = 0x1, - AM_HAL_GPIO_PIN_INTDIR_NONE = 0x2, - AM_HAL_GPIO_PIN_INTDIR_BOTH = 0x3 - } am_hal_gpio_intdir_e; - - //! - //! am_hal_gpio_pincfg_t.eGPRdZero - //! For GPIO configurations (funcsel=3), the pin value can be read or 0 can be - //! forced as the read value. - //! - typedef enum - { - AM_HAL_GPIO_PIN_RDZERO_READPIN = 0x0, - AM_HAL_GPIO_PIN_RDZERO_ZERO = 0x1 - } am_hal_gpio_readen_e; - - //! - //! nCE polarity configuration: am_hal_gpio_pincfg_t.eCEpol enums - //! - typedef enum - { - AM_HAL_GPIO_PIN_CEPOL_ACTIVELOW = 0x0, - AM_HAL_GPIO_PIN_CEPOL_ACTIVEHIGH = 0x1 - } am_hal_gpio_cepol_e; +#define AM_HAL_GPIO_BIT(n) (((uint64_t) 0x1) << n) + +//***************************************************************************** +//! +//! Read types for am_hal_gpio_state_read(). +//! +//***************************************************************************** +typedef enum +{ + AM_HAL_GPIO_INPUT_READ, + AM_HAL_GPIO_OUTPUT_READ, + AM_HAL_GPIO_ENABLE_READ +} am_hal_gpio_read_type_e; + +//***************************************************************************** +//! +//! Write types for am_hal_gpio_state_write(). +//! +//***************************************************************************** +typedef enum +{ + AM_HAL_GPIO_OUTPUT_CLEAR, + AM_HAL_GPIO_OUTPUT_SET, + AM_HAL_GPIO_OUTPUT_TOGGLE, + AM_HAL_GPIO_OUTPUT_TRISTATE_DISABLE, + AM_HAL_GPIO_OUTPUT_TRISTATE_ENABLE, + AM_HAL_GPIO_OUTPUT_TRISTATE_TOGGLE +} am_hal_gpio_write_type_e; + + +//***************************************************************************** +//! +//! Types for ui32GpioCfg bitfields in am_hal_gpio_pinconfig(). +//! +//***************************************************************************** +//! +//! Power Switch configuration: am_hal_gpio_pincfg_t.ePowerSw enums +//! +typedef enum +{ + AM_HAL_GPIO_PIN_POWERSW_NONE, + AM_HAL_GPIO_PIN_POWERSW_VDD, + AM_HAL_GPIO_PIN_POWERSW_VSS, + AM_HAL_GPIO_PIN_POWERSW_INVALID, +} am_hal_gpio_powersw_e; + +//! +//! Pullup configuration: am_hal_gpio_pincfg_t.ePullup enums +//! +typedef enum +{ + // + //! Define pullup enums. + //! The 1.5K - 24K pullup values are valid for select I2C enabled pads. + //! For Apollo3 these pins are 0-1,5-6,8-9,25,27,39-40,42-43,48-49. + //! The "weak" value is used for almost every other pad except pin 20. + // + AM_HAL_GPIO_PIN_PULLUP_NONE = 0x00, + AM_HAL_GPIO_PIN_PULLUP_WEAK, + AM_HAL_GPIO_PIN_PULLUP_1_5K, + AM_HAL_GPIO_PIN_PULLUP_6K, + AM_HAL_GPIO_PIN_PULLUP_12K, + AM_HAL_GPIO_PIN_PULLUP_24K, + AM_HAL_GPIO_PIN_PULLDOWN +} am_hal_gpio_pullup_e; + +//! +//! Pad Drive Strength configuration: am_hal_gpio_pincfg_t.eDriveStrength enums +//! +typedef enum +{ + // + //! DRIVESTRENGTH is a 2-bit field. + //! bit0 maps to bit2 of a PADREG field. + //! bit1 maps to bit0 of an ALTPADCFG field. + // + AM_HAL_GPIO_PIN_DRIVESTRENGTH_2MA = 0x0, + AM_HAL_GPIO_PIN_DRIVESTRENGTH_4MA = 0x1, + AM_HAL_GPIO_PIN_DRIVESTRENGTH_8MA = 0x2, + AM_HAL_GPIO_PIN_DRIVESTRENGTH_12MA = 0x3 +} am_hal_gpio_drivestrength_e; + +//! +//! OUTCFG pad configuration: am_hal_gpio_pincfg_t.eGPOutcfg enums +//! Applies only to GPIO configured pins. +//! Ultimately maps to GPIOCFG.OUTCFG, bits [2:1]. +//! +typedef enum +{ + AM_HAL_GPIO_PIN_OUTCFG_DISABLE = 0x0, + AM_HAL_GPIO_PIN_OUTCFG_PUSHPULL = 0x1, + AM_HAL_GPIO_PIN_OUTCFG_OPENDRAIN = 0x2, + AM_HAL_GPIO_PIN_OUTCFG_TRISTATE = 0x3 +} am_hal_gpio_outcfg_e; + +//! +//! GPIO input configuration: am_hal_gpio_pincfg_t.eGPInput enums +//! Applies only to GPIO configured pins! +//! Ultimately maps to PADREG.INPEN, bit1. +//! +typedef enum +{ + AM_HAL_GPIO_PIN_INPUT_AUTO = 0x0, + AM_HAL_GPIO_PIN_INPUT_NONE = 0x0, + AM_HAL_GPIO_PIN_INPUT_ENABLE = 0x1 +} am_hal_gpio_input_e; + +//! +//! GPIO interrupt direction configuration: am_hal_gpio_pincfg_t.eIntDir enums +//! Note: Setting INTDIR_NONE has the side-effect of disabling being able to +//! read a pin - the pin will always read back as 0. +//! +typedef enum +{ + // Bit1 of these values maps to GPIOCFG.INCFG (b0). + // Bit0 of these values maps to GPIOCFG.INTD (b3). + AM_HAL_GPIO_PIN_INTDIR_LO2HI = 0x0, + AM_HAL_GPIO_PIN_INTDIR_HI2LO = 0x1, + AM_HAL_GPIO_PIN_INTDIR_NONE = 0x2, + AM_HAL_GPIO_PIN_INTDIR_BOTH = 0x3 +} am_hal_gpio_intdir_e; + +//! +//! am_hal_gpio_pincfg_t.eGPRdZero +//! For GPIO configurations (funcsel=3), the pin value can be read or 0 can be +//! forced as the read value. +//! +typedef enum +{ + AM_HAL_GPIO_PIN_RDZERO_READPIN = 0x0, + AM_HAL_GPIO_PIN_RDZERO_ZERO = 0x1 +} am_hal_gpio_readen_e; + +//! +//! nCE polarity configuration: am_hal_gpio_pincfg_t.eCEpol enums +//! +typedef enum +{ + AM_HAL_GPIO_PIN_CEPOL_ACTIVELOW = 0x0, + AM_HAL_GPIO_PIN_CEPOL_ACTIVEHIGH = 0x1 +} am_hal_gpio_cepol_e; + + +// +// Apollo3 usage of bits [7:6] of a PADREG field: +// PULLUPs are available on pins: 0,1,5,6,8,9,25,27,39,40,42,43,48,49 +// RESERVED on pins: 2,4,7,10-24,26,28-35,38,44-47 +// VDD PWR on pins: 3, 36 (b7=0, b6=1) +// VSS PWR on pins: 37,41 (b7=1, b6=0) +// + +//! +//! Define the am_hal_gpio_pinconfig() bitfield structure. +//! uFuncSel a value of 0-7 corresponding to the FNCSEL field of PADREG. +//! ePowerSw: Select pins can be set as a power source or sink. +//! ePullup: Select pins can enable a pullup of varying values. +//! eDriveStrength: Select pins can be set for varying drive strengths. +//! eGPOutcfg: GPIO pin only, corresponds to GPIOCFG.OUTCFG field. +//! eGPInput: GPIO pin only, corresponds to PADREG.INPEN. +//! eGPRdZero: GPIO read zero. Corresponds to GPIOCFG.INCFG. +//! eIntDir: Interrupt direction, l2h, h2l, both, none. +//! eGPRdZero: Read the pin value, or always read the pin as zero. +//! uIOMnum: nCE pin IOMnumber (0-5, or 6 for MSPI) +//! nNCE: Selects the SPI channel (CE) number (0-3) +//! eCEpol: CE polarity. +//! +typedef struct +{ + uint32_t uFuncSel : 3; // [2:0] Function select (FUNCSEL) + uint32_t ePowerSw : 2; // [4:3] Pin is a power switch source (VCC) or sink (VSS) + uint32_t ePullup : 3; // [7:5] Pin will enable a pullup resistor + uint32_t eDriveStrength : 2; // [9:8] Pad strength designator + uint32_t eGPOutcfg : 2; // [11:10] OUTCFG (GPIO config only) + uint32_t eGPInput : 1; // [12:12] GPIO Input (GPIO config only) + uint32_t eIntDir : 2; // [14:13] Interrupt direction + uint32_t eGPRdZero : 1; // [15:15] GPIO read as zero // - // Apollo3 usage of bits [7:6] of a PADREG field: - // PULLUPs are available on pins: 0,1,5,6,8,9,25,27,39,40,42,43,48,49 - // RESERVED on pins: 2,4,7,10-24,26,28-35,38,44-47 - // VDD PWR on pins: 3, 36 (b7=0, b6=1) - // VSS PWR on pins: 37,41 (b7=1, b6=0) + // The following descriptors designate the chip enable features of the + // pin being configured. If not a CE, these descriptors are ignored. + // uIOMnum is 0-5 for the IOMs, or 6 for MSPI, 7 is invalid. // + uint32_t uIOMnum : 3; // [18:16] IOM number (0-5), 6 for MSPI + uint32_t uNCE : 2; // [20:19] NCE number (0-3). + uint32_t eCEpol : 1; // [21:21] NCE polarity. + + uint32_t uRsvd22 : 10; // [31:22] +} am_hal_gpio_pincfg_t; - //! - //! Define the am_hal_gpio_pinconfig() bitfield structure. - //! uFuncSel a value of 0-7 corresponding to the FNCSEL field of PADREG. - //! ePowerSw: Select pins can be set as a power source or sink. - //! ePullup: Select pins can enable a pullup of varying values. - //! eDriveStrength: Select pins can be set for varying drive strengths. - //! eGPOutcfg: GPIO pin only, corresponds to GPIOCFG.OUTCFG field. - //! eGPInput: GPIO pin only, corresponds to PADREG.INPEN. - //! eGPRdZero: GPIO read zero. Corresponds to GPIOCFG.INCFG. - //! eIntDir: Interrupt direction, l2h, h2l, both, none. - //! eGPRdZero: Read the pin value, or always read the pin as zero. - //! uIOMnum: nCE pin IOMnumber (0-5, or 6 for MSPI) - //! nNCE: Selects the SPI channel (CE) number (0-3) - //! eCEpol: CE polarity. - //! - typedef struct - { - uint32_t uFuncSel : 3; // [2:0] Function select (FUNCSEL) - uint32_t ePowerSw : 2; // [4:3] Pin is a power switch source (VCC) or sink (VSS) - uint32_t ePullup : 3; // [7:5] Pin will enable a pullup resistor - uint32_t eDriveStrength : 2; // [9:8] Pad strength designator - uint32_t eGPOutcfg : 2; // [11:10] OUTCFG (GPIO config only) - uint32_t eGPInput : 1; // [12:12] GPIO Input (GPIO config only) - uint32_t eIntDir : 2; // [14:13] Interrupt direction - uint32_t eGPRdZero : 1; // [15:15] GPIO read as zero - - // - // The following descriptors designate the chip enable features of the - // pin being configured. If not a CE, these descriptors are ignored. - // uIOMnum is 0-5 for the IOMs, or 6 for MSPI, 7 is invalid. - // - uint32_t uIOMnum : 3; // [18:16] IOM number (0-5), 6 for MSPI - uint32_t uNCE : 2; // [20:19] NCE number (0-3). - uint32_t eCEpol : 1; // [21:21] NCE polarity. - - uint32_t uRsvd22 : 10; // [31:22] - } am_hal_gpio_pincfg_t; - -#define IOMNUM_MSPI 6 -#define IOMNUM_MAX IOMNUM_MSPI +#define IOMNUM_MSPI 6 +#define IOMNUM_MAX IOMNUM_MSPI // // Define shift and width values for the above bitfields. @@ -267,314 +269,315 @@ extern "C" // GCC, the bitfields are all exactly as defined in the above structure. // - These defines should be used sparingly. // -#define UFUNCSEL_S 0 -#define EPOWERSW_S 3 -#define EPULLUP_S 5 -#define EDRVSTR_S 8 -#define EGPOUTCFG_S 10 -#define EGPINPUT_S 12 -#define EINTDIR_S 13 -#define UIOMNUM_S 16 -#define UNCE_S 19 -#define ECEPOL_S 21 - -#define UFUNCSEL_W 3 -#define EPOWERSW_W 2 -#define EPULLUP_W 3 -#define EDRVSTR_W 2 -#define EGPOUTCFG_W 2 -#define EGPINPUT_W 1 -#define EINTDIR_W 2 -#define UIOMNUM_W 3 -#define UNCE_W 2 -#define ECEPOL_W 1 - - //! - //! Define GPIO error codes that are returned by am_hal_gpio_pinconfig(). - //! - enum am_hal_gpio_pincfgerr - { - AM_HAL_GPIO_ERR_PULLUP = (AM_HAL_STATUS_MODULE_SPECIFIC_START + 0x100), - AM_HAL_GPIO_ERR_PULLDOWN, - AM_HAL_GPIO_ERR_PWRSW, - AM_HAL_GPIO_ERR_INVCE, - AM_HAL_GPIO_ERR_INVCEPIN, - AM_HAL_GPIO_ERR_PULLUPENUM - }; - - //***************************************************************************** - // - // Globals - // - //***************************************************************************** - //***************************************************************************** - // Define some common GPIO pin configurations. - //***************************************************************************** - //! Basics - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_DISABLE; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_TRISTATE; - - //! Input variations - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT; - //! Input with various pullups (weak, 1.5K, 6K, 12K, 24K) - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_1_5; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_6; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_12; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_24; - - //! Output variations - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_4; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_8; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_12; - extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_WITH_READ; - - //***************************************************************************** - // - // Function pointer type for GPIO interrupt handlers. - // - //***************************************************************************** - typedef void (*am_hal_gpio_handler_t)(void); +#define UFUNCSEL_S 0 +#define EPOWERSW_S 3 +#define EPULLUP_S 5 +#define EDRVSTR_S 8 +#define EGPOUTCFG_S 10 +#define EGPINPUT_S 12 +#define EINTDIR_S 13 +#define UIOMNUM_S 16 +#define UNCE_S 19 +#define ECEPOL_S 21 + +#define UFUNCSEL_W 3 +#define EPOWERSW_W 2 +#define EPULLUP_W 3 +#define EDRVSTR_W 2 +#define EGPOUTCFG_W 2 +#define EGPINPUT_W 1 +#define EINTDIR_W 2 +#define UIOMNUM_W 3 +#define UNCE_W 2 +#define ECEPOL_W 1 - //***************************************************************************** - // - //! @brief Configure an Apollo3 pin. - //! - //! @param ui32Pin - pin number to be configured. - //! @param ui32GpioCfg - Contains multiple descriptor fields. - //! - //! This function configures a pin according to the descriptor parameters as - //! passed in sPinCfg. All parameters are validated with regard to each - //! other and according to the requested function. Once the parameters and - //! settings have been confirmed, the pin is configured accordingly. - //! - //! @return Status. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_pinconfig(uint32_t ui32Pin, - am_hal_gpio_pincfg_t sPincfg); +//! +//! Define GPIO error codes that are returned by am_hal_gpio_pinconfig(). +//! +enum am_hal_gpio_pincfgerr +{ + AM_HAL_GPIO_ERR_PULLUP = (AM_HAL_STATUS_MODULE_SPECIFIC_START + 0x100), + AM_HAL_GPIO_ERR_PULLDOWN, + AM_HAL_GPIO_ERR_PWRSW, + AM_HAL_GPIO_ERR_INVCE, + AM_HAL_GPIO_ERR_INVCEPIN, + AM_HAL_GPIO_ERR_PULLUPENUM +}; - //***************************************************************************** - // - //! @brief Configure specified pins for FAST GPIO operation. - //! - //! @param ui64PinMask - a mask specifying up to 8 pins to be configured and - //! used for FAST GPIO (only bits 0-49 are valid). - //! @param bfGpioCfg - The GPIO configuration (same as am_hal_gpio_pinconfig()). - //! All of the pins specified by ui64PinMask will be set to this - //! configuration. - //! @param ui32Masks - If NULL, not used. Otherwise if provided, an array to - //! receive two 32-bit values, per pin, of the SET and CLEAR - //! masks that can be used for the BBSETCLEAR register. - //! The two 32-bit values will be placed at incremental indexes. - //! For example, say pin numbers 5 and 19 are indicated in the - //! mask, and an array pointer is provided in ui32Masks. This - //! array must be allocated by the caller to be at least 4 wds. - //! ui32Masks[0] = the set mask used for pin 5. - //! ui32Masks[1] = the clear mask used for pin 5. - //! ui32Masks[2] = the set mask used for pin 19. - //! ui32Masks[3] = the clear mask used for pin 19. - //! - //! @return Status. - //! - //! Fast GPIO helper macros: - //! am_hal_gpio_fastgpio_set(n) - Sets the value for pin number 'n'. - //! am_hal_gpio_fastgpio_clr(n) - Clear the value for pin number 'n'. - //! - //! am_hal_gpio_fastgpio_enable(n) - Enable Fast GPIO on pin 'n'. - //! am_hal_gpio_fastgpio_disable(n) - Disable Fast GPIO on pin 'n'. - //! - //! Note - The enable and disable macros assume the pin has already been - //! configured. Once disabled, the state of the pin will revert to the - //! state of the normal GPIO configuration for that pin. - //! - //! NOTES on pin configuration: - //! - To avoid glitches on the pin, it is strongly recommended that before - // calling am_hal_gpio_fast_pinconfig() that am_hal_gpio_fastgpio_disable() - //! first be called to make sure that Fast GPIO is disabled before config. - //! - If the state of the pin is important, preset the value of the pin to the - //! desired value BEFORE calling am_hal_gpio_fast_pinconfig(). The set and - //! clear macros shown above can be used for this purpose. - //! - //! NOTES on general use of Fast GPIO: - //! Fast GPIO input or output will not work if the pin is configured as - //! tristate. The overloaded OUTPUT ENABLE control is used for enabling both - //! modes, so Apollo3 logic specifically disallows Fast GPIO input or output - //! when the pin is configured for tristate mode. - //! Fast GPIO input can be used for pushpull, opendrain, or disable modes. - //! - //! Fast GPIO pin groupings: - //! The FaST GPIO pins are grouped across a matrix of pins. Each - //! row of pins is controlled by a single data bit. - //! - //! Referring to the below chart: - //! If pin 35 were configured for Fast GPIO output, it would be set - //! when bit3 of BBSETCLEAR.SET was written with a 1. - //! It would be cleared when bit3 of BBSETCLEAR.CLEAR was written with 1. - //! - //! Note that if all the pins in a row were configured for Fast GPIO output, - //! all the pins would respond to set/clear. - //! - //! Input works in a similar fashion. - //! - //! BIT PIN controlled - //! --- --------------------------- - //! 0 0 8 16 24 32 40 48 - //! 1 1 9 17 25 33 41 49 - //! 2 2 10 18 26 34 42 - //! 3 3 11 19 27 35 43 - //! 4 4 12 20 28 36 44 - //! 5 5 13 21 29 37 45 - //! 6 6 14 22 30 38 46 - //! 7 7 15 23 31 39 47 - //! - // - //***************************************************************************** - extern uint32_t am_hal_gpio_fast_pinconfig(uint64_t ui64PinMask, - am_hal_gpio_pincfg_t bfGpioCfg, - uint32_t ui32Masks[]); +//***************************************************************************** +// +// Globals +// +//***************************************************************************** +//***************************************************************************** +// Define some common GPIO pin configurations. +//***************************************************************************** +//! Basics +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_DISABLE; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_TRISTATE; + +//! Input variations +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT; +//! Input with various pullups (weak, 1.5K, 6K, 12K, 24K) +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_1_5; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_6; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_12; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_INPUT_PULLUP_24; + +//! Output variations +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_4; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_8; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_12; +extern const am_hal_gpio_pincfg_t g_AM_HAL_GPIO_OUTPUT_WITH_READ; - //***************************************************************************** - // - //! @brief Read GPIO. - //! - //! @param ui32Pin - pin number to be read. - //! @param eReadType - State type to read. One of: - //! AM_HAL_GPIO_INPUT_READ - //! AM_HAL_GPIO_OUTPUT_READ - //! AM_HAL_GPIO_ENABLE_READ - //! - //! This function reads a pin state as given by eReadType. - //! - //! @return Status. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_state_read(uint32_t ui32Pin, - am_hal_gpio_read_type_e eReadType, - uint32_t *pu32RetVal); +//***************************************************************************** +// +// Function pointer type for GPIO interrupt handlers. +// +//***************************************************************************** +typedef void (*am_hal_gpio_handler_t)(void); - //***************************************************************************** - // - //! @brief Write GPIO. - //! - //! @param ui32Pin - pin number to be read. - //! - //! @param eWriteType - State type to write. One of: - //! AM_HAL_GPIO_OUTPUT_SET - Write a one to a GPIO. - //! AM_HAL_GPIO_OUTPUT_CLEAR - Write a zero to a GPIO. - //! AM_HAL_GPIO_OUTPUT_TOGGLE - Toggle the GPIO value. - //! The following two apply when output is set for TriState (OUTCFG==3). - //! AM_HAL_GPIO_OUTPUT_TRISTATE_ENABLE - Enable a tri-state GPIO. - //! AM_HAL_GPIO_OUTPUT_TRISTATE_DISABLE - Disable a tri-state GPIO. - //! - //! This function writes a GPIO value. - //! - //! @return Status. - //! Fails if the pad is not configured for GPIO (PADFNCSEL != 3). - // - //***************************************************************************** - extern uint32_t am_hal_gpio_state_write(uint32_t ui32Pin, - am_hal_gpio_write_type_e eWriteType); +//***************************************************************************** +// +//! @brief Configure an Apollo3 pin. +//! +//! @param ui32Pin - pin number to be configured. +//! @param ui32GpioCfg - Contains multiple descriptor fields. +//! +//! This function configures a pin according to the descriptor parameters as +//! passed in sPinCfg. All parameters are validated with regard to each +//! other and according to the requested function. Once the parameters and +//! settings have been confirmed, the pin is configured accordingly. +//! +//! @return Status. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_pinconfig(uint32_t ui32Pin, + am_hal_gpio_pincfg_t sPincfg); - //***************************************************************************** - // - //! @brief Enable GPIO interrupts. - //! - //! @param ui64InterruptMask - Mask of GPIO interrupts to enable. - //! Only bits 0-49 are valid in the mask. - //! - //! @return Status. - //! Fails if any bit above bit49 is set in ui64InterruptMask. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_interrupt_enable(uint64_t ui64InterruptMask); +//***************************************************************************** +// +//! @brief Configure specified pins for FAST GPIO operation. +//! +//! @param ui64PinMask - a mask specifying up to 8 pins to be configured and +//! used for FAST GPIO (only bits 0-49 are valid). +//! @param bfGpioCfg - The GPIO configuration (same as am_hal_gpio_pinconfig()). +//! All of the pins specified by ui64PinMask will be set to this +//! configuration. +//! @param ui32Masks - If NULL, not used. Otherwise if provided, an array to +//! receive two 32-bit values, per pin, of the SET and CLEAR +//! masks that can be used for the BBSETCLEAR register. +//! The two 32-bit values will be placed at incremental indexes. +//! For example, say pin numbers 5 and 19 are indicated in the +//! mask, and an array pointer is provided in ui32Masks. This +//! array must be allocated by the caller to be at least 4 wds. +//! ui32Masks[0] = the set mask used for pin 5. +//! ui32Masks[1] = the clear mask used for pin 5. +//! ui32Masks[2] = the set mask used for pin 19. +//! ui32Masks[3] = the clear mask used for pin 19. +//! +//! @return Status. +//! +//! Fast GPIO helper macros: +//! am_hal_gpio_fastgpio_set(n) - Sets the value for pin number 'n'. +//! am_hal_gpio_fastgpio_clr(n) - Clear the value for pin number 'n'. +//! +//! am_hal_gpio_fastgpio_enable(n) - Enable Fast GPIO on pin 'n'. +//! am_hal_gpio_fastgpio_disable(n) - Disable Fast GPIO on pin 'n'. +//! +//! Note - The enable and disable macros assume the pin has already been +//! configured. Once disabled, the state of the pin will revert to the +//! state of the normal GPIO configuration for that pin. +//! +//! NOTES on pin configuration: +//! - To avoid glitches on the pin, it is strongly recommended that before +// calling am_hal_gpio_fast_pinconfig() that am_hal_gpio_fastgpio_disable() +//! first be called to make sure that Fast GPIO is disabled before config. +//! - If the state of the pin is important, preset the value of the pin to the +//! desired value BEFORE calling am_hal_gpio_fast_pinconfig(). The set and +//! clear macros shown above can be used for this purpose. +//! +//! NOTES on general use of Fast GPIO: +//! Fast GPIO input or output will not work if the pin is configured as +//! tristate. The overloaded OUTPUT ENABLE control is used for enabling both +//! modes, so Apollo3 logic specifically disallows Fast GPIO input or output +//! when the pin is configured for tristate mode. +//! Fast GPIO input can be used for pushpull, opendrain, or disable modes. +//! +//! Fast GPIO pin groupings: +//! The FaST GPIO pins are grouped across a matrix of pins. Each +//! row of pins is controlled by a single data bit. +//! +//! Referring to the below chart: +//! If pin 35 were configured for Fast GPIO output, it would be set +//! when bit3 of BBSETCLEAR.SET was written with a 1. +//! It would be cleared when bit3 of BBSETCLEAR.CLEAR was written with 1. +//! +//! Note that if all the pins in a row were configured for Fast GPIO output, +//! all the pins would respond to set/clear. +//! +//! Input works in a similar fashion. +//! +//! BIT PIN controlled +//! --- --------------------------- +//! 0 0 8 16 24 32 40 48 +//! 1 1 9 17 25 33 41 49 +//! 2 2 10 18 26 34 42 +//! 3 3 11 19 27 35 43 +//! 4 4 12 20 28 36 44 +//! 5 5 13 21 29 37 45 +//! 6 6 14 22 30 38 46 +//! 7 7 15 23 31 39 47 +//! +// +//***************************************************************************** +extern uint32_t am_hal_gpio_fast_pinconfig(uint64_t ui64PinMask, + am_hal_gpio_pincfg_t bfGpioCfg, + uint32_t ui32Masks[]); - //***************************************************************************** - // - //! @brief Disable GPIO interrupts. - //! - //! @param ui64InterruptMask - Mask of GPIO interrupts to disable. - //! Only bits 0-49 are valid in the mask. - //! - //! @return Status. - //! Fails if any bit above bit49 is set in ui64InterruptMask. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_interrupt_disable(uint64_t ui64InterruptMask); +//***************************************************************************** +// +//! @brief Read GPIO. +//! +//! @param ui32Pin - pin number to be read. +//! @param eReadType - State type to read. One of: +//! AM_HAL_GPIO_INPUT_READ +//! AM_HAL_GPIO_OUTPUT_READ +//! AM_HAL_GPIO_ENABLE_READ +//! +//! This function reads a pin state as given by eReadType. +//! +//! @return Status. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_state_read(uint32_t ui32Pin, + am_hal_gpio_read_type_e eReadType, + uint32_t *pu32RetVal); - //***************************************************************************** - // - //! @brief Clear GPIO interrupts. - //! - //! @param ui64InterruptMask - Mask of GPIO interrupts to be cleared. - //! Only bits 0-49 are valid in the mask. - //! - //! @return Status. - //! Fails if any bit above bit49 is set in ui64InterruptMask. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_interrupt_clear(uint64_t ui64InterruptMask); +//***************************************************************************** +// +//! @brief Write GPIO. +//! +//! @param ui32Pin - pin number to be read. +//! +//! @param eWriteType - State type to write. One of: +//! AM_HAL_GPIO_OUTPUT_SET - Write a one to a GPIO. +//! AM_HAL_GPIO_OUTPUT_CLEAR - Write a zero to a GPIO. +//! AM_HAL_GPIO_OUTPUT_TOGGLE - Toggle the GPIO value. +//! The following two apply when output is set for TriState (OUTCFG==3). +//! AM_HAL_GPIO_OUTPUT_TRISTATE_ENABLE - Enable a tri-state GPIO. +//! AM_HAL_GPIO_OUTPUT_TRISTATE_DISABLE - Disable a tri-state GPIO. +//! +//! This function writes a GPIO value. +//! +//! @return Status. +//! Fails if the pad is not configured for GPIO (PADFNCSEL != 3). +// +//***************************************************************************** +extern uint32_t am_hal_gpio_state_write(uint32_t ui32Pin, + am_hal_gpio_write_type_e eWriteType); - //***************************************************************************** - // - //! @brief Get GPIO interrupt status. - //! - //! @param bEnabledOnly - Return status only for currently enabled interrupts. - //! - //! @param pui64IntStatus - 64-bit variable to return a bitmask of the status - //! of the interrupts. - //! - //! @return Status. - //! Fails if pui64IntStatus is NULL. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_interrupt_status_get(bool bEnabledOnly, - uint64_t *pui64IntStatus); +//***************************************************************************** +// +//! @brief Enable GPIO interrupts. +//! +//! @param ui64InterruptMask - Mask of GPIO interrupts to enable. +//! Only bits 0-49 are valid in the mask. +//! +//! @return Status. +//! Fails if any bit above bit49 is set in ui64InterruptMask. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_interrupt_enable(uint64_t ui64InterruptMask); - //***************************************************************************** - // - //! @brief GPIO interrupt service routine registration. - //! - //! @param ui32GPIONumber - GPIO number (0-49) to be registered. - //! - //! @param pfnHandler - Function pointer to the callback. - //! - //! @return Status. - //! Fails if pfnHandler is NULL or ui32GPIONumber > 49. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_interrupt_register(uint32_t ui32GPIONumber, - am_hal_gpio_handler_t pfnHandler); +//***************************************************************************** +// +//! @brief Disable GPIO interrupts. +//! +//! @param ui64InterruptMask - Mask of GPIO interrupts to disable. +//! Only bits 0-49 are valid in the mask. +//! +//! @return Status. +//! Fails if any bit above bit49 is set in ui64InterruptMask. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_interrupt_disable(uint64_t ui64InterruptMask); + +//***************************************************************************** +// +//! @brief Clear GPIO interrupts. +//! +//! @param ui64InterruptMask - Mask of GPIO interrupts to be cleared. +//! Only bits 0-49 are valid in the mask. +//! +//! @return Status. +//! Fails if any bit above bit49 is set in ui64InterruptMask. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_interrupt_clear(uint64_t ui64InterruptMask); + +//***************************************************************************** +// +//! @brief Get GPIO interrupt status. +//! +//! @param bEnabledOnly - Return status only for currently enabled interrupts. +//! +//! @param pui64IntStatus - 64-bit variable to return a bitmask of the status +//! of the interrupts. +//! +//! @return Status. +//! Fails if pui64IntStatus is NULL. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_interrupt_status_get(bool bEnabledOnly, + uint64_t *pui64IntStatus); + +//***************************************************************************** +// +//! @brief GPIO interrupt service routine registration. +//! +//! @param ui32GPIONumber - GPIO number (0-49) to be registered. +//! +//! @param pfnHandler - Function pointer to the callback. +//! +//! @return Status. +//! Fails if pfnHandler is NULL or ui32GPIONumber > 49. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_interrupt_register(uint32_t ui32GPIONumber, + am_hal_gpio_handler_t pfnHandler); + +//***************************************************************************** +// +// GPIO interrupt service routine. +//! @brief GPIO interrupt service routine registration. +//! +//! @param ui64Status - Mask of the interrupt(s) to be serviced. This mask is +//! typically obtained via a call to am_hal_gpio_interrupt_status_get(). +//! +//! The intended use is that the application first registers a handler for a +//! particular GPIO via am_hal_gpio_interrupt_register(), and to supply the +//! main ISR, am_gpio_isr(). +//! +//! On a GPIO interrupt, am_gpio_isr() calls am_hal_gpio_interrupt_status_get() +//! and provides the return value to this function. +//! +//! In the event that multiple GPIO interrupts are active, the corresponding +//! interrupt handlers will be called in numerical order by GPIO number +//! starting with the lowest GPIO number. +//! +//! @return Status. +//! AM_HAL_STATUS_INVALID_OPERATION if no handler had been registered +//! for any of the GPIOs that caused the interrupt. +//! AM_HAL_STATUS_OUT_OF_RANGE if any bit above bit49 is set. +//! AM_HAL_STATUS_FAIL if ui64Status is 0. +//! AM_HAL_STATUS_SUCCESS otherwise. +// +//***************************************************************************** +extern uint32_t am_hal_gpio_interrupt_service(uint64_t ui64Status); - //***************************************************************************** - // - // GPIO interrupt service routine. - //! @brief GPIO interrupt service routine registration. - //! - //! @param ui64Status - Mask of the interrupt(s) to be serviced. This mask is - //! typically obtained via a call to am_hal_gpio_interrupt_status_get(). - //! - //! The intended use is that the application first registers a handler for a - //! particular GPIO via am_hal_gpio_interrupt_register(), and to supply the - //! main ISR, am_gpio_isr(). - //! - //! On a GPIO interrupt, am_gpio_isr() calls am_hal_gpio_interrupt_status_get() - //! and provides the return value to this function. - //! - //! In the event that multiple GPIO interrupts are active, the corresponding - //! interrupt handlers will be called in numerical order by GPIO number - //! starting with the lowest GPIO number. - //! - //! @return Status. - //! AM_HAL_STATUS_INVALID_OPERATION if no handler had been registered - //! for any of the GPIOs that caused the interrupt. - //! AM_HAL_STATUS_OUT_OF_RANGE if any bit above bit49 is set. - //! AM_HAL_STATUS_FAIL if ui64Status is 0. - //! AM_HAL_STATUS_SUCCESS otherwise. - // - //***************************************************************************** - extern uint32_t am_hal_gpio_interrupt_service(uint64_t ui64Status); //***************************************************************************** // @@ -601,20 +604,21 @@ extern "C" //! // //***************************************************************************** -#define am_hal_gpio_input_read(n) ( \ - (AM_REGVAL((AM_REGADDR(GPIO, RDA) + (((uint32_t)(n)&0x20) >> 3))) >> /* Read appropriate register */ \ - ((uint32_t)(n)&0x1F)) & /* Shift by appropriate number of bits */ \ - ((uint32_t)0x1)) /* Mask out the LSB */ +#define am_hal_gpio_input_read(n) ( \ + (AM_REGVAL( (AM_REGADDR(GPIO, RDA) + (((uint32_t)(n) & 0x20) >> 3)) ) >> /* Read appropriate register */ \ + ((uint32_t)(n) & 0x1F) ) & /* Shift by appropriate number of bits */ \ + ((uint32_t)0x1) ) /* Mask out the LSB */ + +#define am_hal_gpio_output_read(n) ( \ + (AM_REGVAL( (AM_REGADDR(GPIO, WTA) + (((uint32_t)(n) & 0x20) >> 3)) ) >> /* Read appropriate register */ \ + ((uint32_t)(n) & 0x1F) ) & /* Shift by appropriate number of bits */ \ + ((uint32_t)0x1) ) /* Mask out the LSB */ -#define am_hal_gpio_output_read(n) ( \ - (AM_REGVAL((AM_REGADDR(GPIO, WTA) + (((uint32_t)(n)&0x20) >> 3))) >> /* Read appropriate register */ \ - ((uint32_t)(n)&0x1F)) & /* Shift by appropriate number of bits */ \ - ((uint32_t)0x1)) /* Mask out the LSB */ +#define am_hal_gpio_enable_read(n) ( \ + (AM_REGVAL( (AM_REGADDR(GPIO, ENA) + (((uint32_t)(n) & 0x20) >> 3)) ) >> /* Read appropriate register */ \ + ((uint32_t)(n) & 0x1F) ) & /* Shift by appropriate number of bits */ \ + ((uint32_t)0x1) ) /* Mask out the LSB */ -#define am_hal_gpio_enable_read(n) ( \ - (AM_REGVAL((AM_REGADDR(GPIO, ENA) + (((uint32_t)(n)&0x20) >> 3))) >> /* Read appropriate register */ \ - ((uint32_t)(n)&0x1F)) & /* Shift by appropriate number of bits */ \ - ((uint32_t)0x1)) /* Mask out the LSB */ //***************************************************************************** // @@ -645,64 +649,74 @@ extern "C" // // Note - these macros use byte-oriented addressing. // -#define am_hal_gpio_output_clear(n) \ - ((*((volatile uint32_t *)((AM_REGADDR(GPIO, WTCA) + (((uint32_t)(n)&0x20) >> 3))))) = \ - ((uint32_t)0x1 << ((uint32_t)(n) % 32))) - -#define am_hal_gpio_output_set(n) \ - ((*((volatile uint32_t *)((AM_REGADDR(GPIO, WTSA) + (((uint32_t)(n)&0x20) >> 3))))) = \ - ((uint32_t)0x1 << ((uint32_t)(n) % 32))) - -#define am_hal_gpio_output_toggle(n) \ - if (1) \ - { \ - AM_CRITICAL_BEGIN((*((volatile uint32_t *)((AM_REGADDR(GPIO, WTA) + (((uint32_t)(n)&0x20) >> 3))))) ^= \ - ((uint32_t)0x1 << ((uint32_t)(n) % 32))); \ - AM_CRITICAL_END \ +#define am_hal_gpio_output_clear(n) \ + ((*((volatile uint32_t *) \ + ((AM_REGADDR(GPIO, WTCA) + (((uint32_t)(n) & 0x20) >> 3))))) = \ + ((uint32_t) 0x1 << ((uint32_t)(n) % 32))) + +#define am_hal_gpio_output_set(n) \ + ((*((volatile uint32_t *) \ + ((AM_REGADDR(GPIO, WTSA) + (((uint32_t)(n) & 0x20) >> 3))))) = \ + ((uint32_t) 0x1 << ((uint32_t)(n) % 32))) + +#define am_hal_gpio_output_toggle(n) \ + if ( 1 ) \ + { \ + AM_CRITICAL_BEGIN \ + ((*((volatile uint32_t *) \ + ((AM_REGADDR(GPIO, WTA) + (((uint32_t)(n) & 0x20) >> 3))))) ^= \ + ((uint32_t) 0x1 << ((uint32_t)(n) % 32))); \ + AM_CRITICAL_END \ } -#define am_hal_gpio_output_tristate_disable(n) \ - ((*((volatile uint32_t *)((AM_REGADDR(GPIO, ENCA) + (((uint32_t)(n)&0x20) >> 3))))) = \ - ((uint32_t)0x1 << ((uint32_t)(n) % 32))) - -#define am_hal_gpio_output_tristate_enable(n) \ - ((*((volatile uint32_t *)((AM_REGADDR(GPIO, ENSA) + (((uint32_t)(n)&0x20) >> 3))))) = \ - ((uint32_t)0x1 << ((uint32_t)(n) % 32))) - -#define am_hal_gpio_output_tristate_toggle(n) \ - if (1) \ - { \ - AM_CRITICAL_BEGIN((*((volatile uint32_t *)((AM_REGADDR(GPIO, ENA) + (((uint32_t)(n)&0x20) >> 3))))) ^= \ - ((uint32_t)0x1 << ((uint32_t)(n) % 32))); \ - AM_CRITICAL_END \ +#define am_hal_gpio_output_tristate_disable(n) \ + ((*((volatile uint32_t *) \ + ((AM_REGADDR(GPIO, ENCA) + (((uint32_t)(n) & 0x20) >> 3))))) = \ + ((uint32_t) 0x1 << ((uint32_t)(n) % 32))) + +#define am_hal_gpio_output_tristate_enable(n) \ + ((*((volatile uint32_t *) \ + ((AM_REGADDR(GPIO, ENSA) + (((uint32_t)(n) & 0x20) >> 3))))) = \ + ((uint32_t) 0x1 << ((uint32_t)(n) % 32))) + +#define am_hal_gpio_output_tristate_toggle(n) \ + if ( 1 ) \ + { \ + AM_CRITICAL_BEGIN \ + ((*((volatile uint32_t *) \ + ((AM_REGADDR(GPIO, ENA) + (((uint32_t)(n) & 0x20) >> 3))))) ^= \ + ((uint32_t) 0x1 << ((uint32_t)(n) % 32))); \ + AM_CRITICAL_END \ } + // // Define Fast GPIO enable and disable. // -#define am_hal_gpio_fastgpio_enable(n) am_hal_gpio_output_tristate_enable(n) +#define am_hal_gpio_fastgpio_enable(n) am_hal_gpio_output_tristate_enable(n) #define am_hal_gpio_fastgpio_disable(n) am_hal_gpio_output_tristate_disable(n) // -// Macros for accessing Fast GPIO set and clear. +// Macros for accessing Fast GPIO: set, clear, and read. // The 'n' parameter is the pin number. // Note - these macros are most efficient if 'n' is a constant value, and // of course when compiled with -O3. // -#define am_hal_gpio_fastgpio_read(n) ((APBDMA->BBINPUT >> (n & 0x7)) & 0x1) -#define am_hal_gpio_fastgpio_set(n) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_SET, (1 << (n & 0x7)))) -#define am_hal_gpio_fastgpio_clr(n) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, (1 << (n & 0x7)))) -#define am_hal_gpio_fastgpio_setmsk(m) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_SET, m)) -#define am_hal_gpio_fastgpio_clrmsk(m) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, m)) -#define am_hal_gpio_fastgpio_wrval(val) (APBDMA->BBSETCLEAR = \ - (_VAL2FLD(APBDMA_BBSETCLEAR_SET, val) | \ - _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, val ^ 0xFF))) +#define am_hal_gpio_fastgpio_read(n) ((APBDMA->BBINPUT >> (n & 0x7)) & 0x1) +#define am_hal_gpio_fastgpio_set(n) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_SET, (1 << (n & 0x7)))) +#define am_hal_gpio_fastgpio_clr(n) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, (1 << (n & 0x7)))) +#define am_hal_gpio_fastgpio_setmsk(m) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_SET, m)) +#define am_hal_gpio_fastgpio_clrmsk(m) (APBDMA->BBSETCLEAR = _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, m)) +#define am_hal_gpio_fastgpio_wrval(val) (APBDMA->BBSETCLEAR = \ + (_VAL2FLD(APBDMA_BBSETCLEAR_SET, val) | \ + _VAL2FLD(APBDMA_BBSETCLEAR_CLEAR, val ^ 0xFF))) + #ifdef __cplusplus } #endif -#endif // AM_HAL_GPIO_H +#endif // AM_HAL_GPIO_H //***************************************************************************** // diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.c index faf58453..7edfb74c 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.c @@ -47,7 +47,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.h index ad344ff7..a2d91f31 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_interrupt.h @@ -47,7 +47,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_INTERRUPT_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.c index d40a52f9..a9dbe38a 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -404,7 +404,7 @@ build_txn_cmdlist(am_hal_iom_state_t *pIOMState, // CMDRPT register has been repurposed for DCX pCQEntry->ui32DCXAddr = (uint32_t)&IOMn(ui32Module)->DCX; - pCQEntry->ui32DCXVal = pIOMState->dcx[psTransaction->uPeerInfo.ui32SpiChipSelect]; + pCQEntry->ui32DCXVal = (pIOMState->eInterfaceMode == AM_HAL_IOM_SPI_MODE) ? pIOMState->dcx[psTransaction->uPeerInfo.ui32SpiChipSelect] : 0; // // Command to start the transfer. // @@ -2019,7 +2019,6 @@ am_hal_iom_power_ctrl(void *pHandle, IOMn(pIOMState->ui32Module)->CLKCFG = pIOMState->registerState.regCLKCFG; IOMn(pIOMState->ui32Module)->SUBMODCTRL = pIOMState->registerState.regSUBMODCTRL; IOMn(pIOMState->ui32Module)->CQADDR = pIOMState->registerState.regCQADDR; - IOMn(pIOMState->ui32Module)->CQFLAGS = pIOMState->registerState.regCQFLAGS; IOMn(pIOMState->ui32Module)->CQPAUSEEN = pIOMState->registerState.regCQPAUSEEN; IOMn(pIOMState->ui32Module)->CQCURIDX = pIOMState->registerState.regCQCURIDX; IOMn(pIOMState->ui32Module)->CQENDIDX = pIOMState->registerState.regCQENDIDX; @@ -2028,6 +2027,10 @@ am_hal_iom_power_ctrl(void *pHandle, IOMn(pIOMState->ui32Module)->INTEN = pIOMState->registerState.regINTEN; IOMn(pIOMState->ui32Module)->DMATRIGEN = pIOMState->registerState.regDMATRIGEN; + // CQFGLAGS are Read-Only and hence can not be directly restored. + // We can try to restore the SWFlags here. Hardware flags depend on external conditions + // and hence can not be restored (assuming the external conditions remain the same, it should be set automatically. + IOMn(pIOMState->ui32Module)->CQSETCLEAR = AM_HAL_IOM_SC_SET(pIOMState->registerState.regCQFLAGS & 0xFF); // // Set CQCFG last - can not set the enable yet // @@ -2402,7 +2405,7 @@ am_hal_iom_blocking_transfer(void *pHandle, IOMn(ui32Module)->DEVCFG = psTransaction->uPeerInfo.ui32I2CDevAddr; // CMDRPT register has been repurposed for DCX // Set the DCX - IOMn(ui32Module)->DCX = pIOMState->dcx[psTransaction->uPeerInfo.ui32SpiChipSelect]; + IOMn(ui32Module)->DCX = (pIOMState->eInterfaceMode == AM_HAL_IOM_SPI_MODE) ? pIOMState->dcx[psTransaction->uPeerInfo.ui32SpiChipSelect] : 0; // // Build the CMD value // @@ -3406,7 +3409,7 @@ uint32_t am_hal_iom_control(void *pHandle, am_hal_iom_request_e eReq, void *pArg // Unblock the whole batch of commands in this block IOMn(pIOMState->ui32Module)->CQSETCLEAR = AM_HAL_IOM_SC_UNPAUSE_BLOCK; pIOMState->block = 0; - if (!pIOMState->ui32NumHPPendingEntries) + if (pIOMState->ui32NumHPPendingEntries) { // Now it is okay to let go of the block of HiPrio transactions status = sched_hiprio(pIOMState, pIOMState->ui32NumHPPendingEntries); diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.h index a2952805..41b052ac 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_iom.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.c index 7528cf4e..359a3db5 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.h index 9210f68d..fb62f0df 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_ios.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_IOS_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.c index 1b558079..07cc99b5 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.h index 2bcd87fd..7605df09 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_itm.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.c index 9f773910..ea17a595 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -72,6 +72,8 @@ g_am_hal_mcuctrl_flash_size[AM_HAL_MCUCTRL_CHIPPN_FLASH_SIZE_N] = 512 * 1024, /* 0x5 0x00080000 512 KB */ 1 * 1024 * 1024, /* 0x6 0x00100000 1 MB */ 2 * 1024 * 1024, /* 0x7 0x00200000 2 MB */ + 3 * 1024 * 1024 / 2, /* 0x8 0x00600000 1.5 MB */ + 0, 0, 0, 0, 0, 0, 0 }; const uint32_t @@ -85,6 +87,8 @@ g_am_hal_mcuctrl_sram_size[AM_HAL_MCUCTRL_CHIPPN_SRAM_SIZE_N] = 512 * 1024, /* 0x5 0x00080000 512 KB */ 1 * 1024 * 1024, /* 0x6 0x00100000 1 MB */ 384 * 1024, /* 0x7 0x00200000 384 KB */ + 768 * 1024, /* 0x8 0x000C0000 768 KB */ + 0, 0, 0, 0, 0, 0, 0 }; // **************************************************************************** @@ -151,10 +155,10 @@ device_info_get(am_hal_mcuctrl_device_t *psDevice) // Now, let's look at the JEDEC info. // The full partnumber is 12 bits total, but is scattered across 2 registers. // Bits [11:8] are 0xE. - // Bits [7:4] are 0xE for Apollo, 0xD for Apollo2. - // Bits [3:0] are defined differently for Apollo and Apollo2. + // Bits [7:4] are 0xE for Apollo, 0xD for Apollo2, 0xC for Apollo3. + // Bits [3:0] are defined differently for Apollo and Apollo2/Apollo3. // For Apollo, the low nibble is 0x0. - // For Apollo2, the low nibble indicates flash and SRAM size. + // For Apollo2/Apollo3, the low nibble indicates flash and SRAM size. // psDevice->ui32JedecPN = JEDEC->PID0_b.PNL8 << 0; psDevice->ui32JedecPN |= JEDEC->PID1_b.PNH4 << 8; @@ -226,6 +230,8 @@ mcuctrl_fault_status(am_hal_mcuctrl_fault_t *psFault) uint32_t am_hal_mcuctrl_control(am_hal_mcuctrl_control_e eControl, void *pArgs) { + uint32_t ui32Tbl; + switch ( eControl ) { case AM_HAL_MCUCTRL_CONTROL_FAULT_CAPTURE_ENABLE: @@ -254,11 +260,11 @@ am_hal_mcuctrl_control(am_hal_mcuctrl_control_e eControl, void *pArgs) MCUCTRL_XTALCTRL_XTALSWE_Msk); MCUCTRL->XTALCTRL |= - (uint32_t)MCUCTRL_XTALCTRL_PDNBCMPRXTAL_PWRDNCOMP | - (uint32_t)MCUCTRL_XTALCTRL_PDNBCOREXTAL_PWRDNCORE | - (uint32_t)MCUCTRL_XTALCTRL_BYPCMPRXTAL_BYPCOMP | - (uint32_t)MCUCTRL_XTALCTRL_FDBKDSBLXTAL_DIS | - (uint32_t)MCUCTRL_XTALCTRL_XTALSWE_OVERRIDE_EN; + _VAL2FLD(MCUCTRL_XTALCTRL_PDNBCMPRXTAL, MCUCTRL_XTALCTRL_PDNBCMPRXTAL_PWRDNCOMP) | + _VAL2FLD(MCUCTRL_XTALCTRL_PDNBCOREXTAL, MCUCTRL_XTALCTRL_PDNBCOREXTAL_PWRDNCORE) | + _VAL2FLD(MCUCTRL_XTALCTRL_BYPCMPRXTAL, MCUCTRL_XTALCTRL_BYPCMPRXTAL_BYPCOMP) | + _VAL2FLD(MCUCTRL_XTALCTRL_FDBKDSBLXTAL, MCUCTRL_XTALCTRL_FDBKDSBLXTAL_DIS) | + _VAL2FLD(MCUCTRL_XTALCTRL_XTALSWE, MCUCTRL_XTALCTRL_XTALSWE_OVERRIDE_EN); break; case AM_HAL_MCUCTRL_CONTROL_EXTCLK32K_DISABLE: @@ -274,11 +280,11 @@ am_hal_mcuctrl_control(am_hal_mcuctrl_control_e eControl, void *pArgs) MCUCTRL_XTALCTRL_XTALSWE_Msk); MCUCTRL->XTALCTRL |= - (uint32_t)MCUCTRL_XTALCTRL_PDNBCMPRXTAL_PWRUPCOMP | - (uint32_t)MCUCTRL_XTALCTRL_PDNBCOREXTAL_PWRUPCORE | - (uint32_t)MCUCTRL_XTALCTRL_BYPCMPRXTAL_USECOMP | - (uint32_t)MCUCTRL_XTALCTRL_FDBKDSBLXTAL_EN | - (uint32_t)MCUCTRL_XTALCTRL_XTALSWE_OVERRIDE_DIS; + _VAL2FLD(MCUCTRL_XTALCTRL_PDNBCMPRXTAL, MCUCTRL_XTALCTRL_PDNBCMPRXTAL_PWRUPCOMP) | + _VAL2FLD(MCUCTRL_XTALCTRL_PDNBCOREXTAL, MCUCTRL_XTALCTRL_PDNBCOREXTAL_PWRUPCORE) | + _VAL2FLD(MCUCTRL_XTALCTRL_BYPCMPRXTAL, MCUCTRL_XTALCTRL_BYPCMPRXTAL_USECOMP) | + _VAL2FLD(MCUCTRL_XTALCTRL_FDBKDSBLXTAL, MCUCTRL_XTALCTRL_FDBKDSBLXTAL_EN) | + _VAL2FLD(MCUCTRL_XTALCTRL_XTALSWE, MCUCTRL_XTALCTRL_XTALSWE_OVERRIDE_DIS); break; case AM_HAL_MCUCTRL_CONTROL_SRAM_PREFETCH: @@ -302,73 +308,130 @@ am_hal_mcuctrl_control(am_hal_mcuctrl_control_e eControl, void *pArgs) return AM_HAL_STATUS_INVALID_ARG; } + + // + // Given the rule that NOxxx overrides xxx, and keeping in mind + // that the cache settings cannot be set unless the regular + // prefetch is also being set or is already set, the following + // truth table results. + + // Note - this same TT also applies to data settings. + // nc=no change. + // I IC NI NIC: I IC + // 0x0: 0 0 0 0 : nc nc + // 0x1: 0 0 0 1 : nc 0 + // 0x2: 0 0 1 0 : 0 0 + // 0x3: 0 0 1 1 : 0 0 + // 0x4: 0 1 0 0 : INVALID + // 0x5: 0 1 0 1 : nc nc + // 0x6: 0 1 1 0 : INVALID + // 0x7: 0 1 1 1 : 0 0 + // 0x8: 1 0 0 0 : 1 0 + // 0x9: 1 0 0 1 : 1 0 + // 0xA: 1 0 1 0 : 0 0 + // 0xB: 1 0 1 1 : 0 0 + // 0xC: 1 1 0 0 : 1 1 + // 0xD: 1 1 0 1 : 1 0 + // 0xE: 1 1 1 0 : INVALID + // 0xF: 1 1 1 1 : 0 0 + // + + ui32Tbl = 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_INSTR) ? (1 << 3) : 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_INSTRCACHE) ? (1 << 2) : 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_INSTR) ? (1 << 1) : 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_INSTRCACHE) ? (1 << 0) : 0; + // - // Check that we're not trying to set CACHE prefetch without - // the corresponding prefetch. + // Now augment the table entries with current register settings. // ui32SRAMreg = MCUCTRL->SRAMMODE; - if ( (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_INSTRCACHE) && - !(ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_INSTR) ) - { - // - // This is an error unless the PREFETCH_INSTR bit is already - // set in the register. - // - if ( !(ui32SRAMreg & MCUCTRL_SRAMMODE_IPREFETCH_Msk) ) - { - return AM_HAL_STATUS_INVALID_OPERATION; - } - } + ui32Tbl |= ui32SRAMreg & MCUCTRL_SRAMMODE_IPREFETCH_Msk ? (1 << 3) : 0; + ui32Tbl |= ui32SRAMreg & MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk ? (1 << 2) : 0; - if ( (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_DATACACHE) && - !(ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_DATA) ) + ui32SetMsk = ui32ClrMsk = 0; + switch ( ui32Tbl ) { - // - // This is an error unless the PREFETCH_DATA bit is already - // set in the register. - // - if ( !(ui32SRAMreg & MCUCTRL_SRAMMODE_DPREFETCH_Msk) ) - { + case 0x0: + case 0x5: + break; + case 0x1: + ui32ClrMsk = MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk; + break; + case 0x2: + case 0x3: + case 0x7: + case 0xA: + case 0xB: + case 0xF: + ui32ClrMsk = MCUCTRL_SRAMMODE_IPREFETCH_Msk | MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk; + break; + case 0x4: + case 0x6: + case 0xE: return AM_HAL_STATUS_INVALID_OPERATION; - } - } + case 0x8: + case 0x9: + case 0xD: + ui32SetMsk = MCUCTRL_SRAMMODE_IPREFETCH_Msk; + ui32ClrMsk = MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk; + break; + case 0xC: + ui32SetMsk = MCUCTRL_SRAMMODE_IPREFETCH_Msk | MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk; + break; + default: + return AM_HAL_STATUS_INVALID_ARG; + } // switch() // - // Check that we're not trying to disable a prefetch while having - // the corresponding CACHE prefetch enabled. + // Now, repeat with data settings. // - if ( ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_DATA ) - { - // - // Make sure the DATA CACHE PREFETCH is also disabled. - // - if ( ( (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_DATACACHE) && - !(ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_DATACACHE) ) || - (ui32SRAMreg & MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk) ) - { - return AM_HAL_STATUS_INVALID_OPERATION; - } - } + ui32Tbl = 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_DATA) ? (1 << 3) : 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_DATACACHE) ? (1 << 2) : 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_DATA) ? (1 << 1) : 0; + ui32Tbl |= (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_DATACACHE) ? (1 << 0) : 0; - if ( ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_INSTR ) + // + // Now augment the table entries with current register settings. + // + ui32Tbl |= ui32SRAMreg & MCUCTRL_SRAMMODE_DPREFETCH_Msk ? (1 << 3) : 0; + ui32Tbl |= ui32SRAMreg & MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk ? (1 << 2) : 0; + + switch ( ui32Tbl ) { - // - // Make sure the INSTR CACHE PREFETCH is also disabled. - // - if ( ( (ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_PREFETCH_INSTRCACHE) && - !(ui32SramPrefetch & AM_HAL_MCUCTRL_SRAM_NOPREFETCH_INSTRCACHE) ) || - (ui32SRAMreg & MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk) ) - { + case 0x0: + case 0x5: + break; + case 0x1: + ui32ClrMsk = MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk; + break; + case 0x2: + case 0x3: + case 0x7: + case 0xA: + case 0xB: + case 0xF: + ui32ClrMsk = MCUCTRL_SRAMMODE_DPREFETCH_Msk | MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk; + break; + case 0x4: + case 0x6: + case 0xE: return AM_HAL_STATUS_INVALID_OPERATION; - } - } + case 0x8: + case 0x9: + case 0xD: + ui32SetMsk = MCUCTRL_SRAMMODE_DPREFETCH_Msk; + ui32ClrMsk = MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk; + break; + case 0xC: + ui32SetMsk = MCUCTRL_SRAMMODE_DPREFETCH_Msk | MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk; + break; + default: + return AM_HAL_STATUS_INVALID_ARG; + } // switch() - // - // Looks like we're good to go. - // - ui32SetMsk = (ui32SramPrefetch >> 0) & 0x0000FFFF; - ui32ClrMsk = (ui32SramPrefetch >> SRAM_NOPREFETCH_Pos) & 0x0000FFFF; // // Arrange the register update such that clrmsk will have precedence @@ -380,7 +443,7 @@ am_hal_mcuctrl_control(am_hal_mcuctrl_control_e eControl, void *pArgs) ui32SRAMreg &= ~ui32ClrMsk; MCUCTRL->SRAMMODE = ui32SRAMreg; AM_CRITICAL_END - } + } // case AM_HAL_MCUCTRL_CONTROL_SRAM_PREFETCH break; default: diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.h index fc54d9ab..cf6817cc 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mcuctrl.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_MCUCTRL_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.c index bde38e28..f250ae25 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -163,6 +163,7 @@ typedef struct uint32_t regCQCFG; uint32_t regCQADDR; uint32_t regCQPAUSE; + uint32_t regCQFLAGS; uint32_t regCQCURIDX; uint32_t regCQENDIDX; uint32_t regINTEN; @@ -1903,7 +1904,7 @@ uint32_t am_hal_mspi_control(void *pHandle, // Unblock the whole batch of commands in this block MSPIn(ui32Module)->CQSETCLEAR = AM_HAL_MSPI_SC_UNPAUSE_BLOCK; pMSPIState->block = 0; - if (!pMSPIState->ui32NumHPPendingEntries) + if (pMSPIState->ui32NumHPPendingEntries) { // Now it is okay to let go of the block of HiPrio transactions ui32Status = sched_hiprio(pMSPIState, pMSPIState->ui32NumHPPendingEntries); @@ -2916,7 +2917,6 @@ uint32_t am_hal_mspi_power_control(void *pHandle, MSPIn(pMSPIState->ui32Module)->PADOUTEN = pMSPIState->registerState.regPADOUTEN; MSPIn(pMSPIState->ui32Module)->FLASH = pMSPIState->registerState.regFLASH; MSPIn(pMSPIState->ui32Module)->SCRAMBLING = pMSPIState->registerState.regSCRAMBLING; - MSPIn(pMSPIState->ui32Module)->CQCFG = pMSPIState->registerState.regCQCFG; MSPIn(pMSPIState->ui32Module)->CQADDR = pMSPIState->registerState.regCQADDR; MSPIn(pMSPIState->ui32Module)->CQPAUSE = pMSPIState->registerState.regCQPAUSE; MSPIn(pMSPIState->ui32Module)->CQCURIDX = pMSPIState->registerState.regCQCURIDX; @@ -2927,6 +2927,15 @@ uint32_t am_hal_mspi_power_control(void *pHandle, MSPIn(pMSPIState->ui32Module)->DMABCOUNT = pMSPIState->registerState.regDMABCOUNT; MSPIn(pMSPIState->ui32Module)->DMATHRESH = pMSPIState->registerState.regDMATHRESH; + // CQFGLAGS are Read-Only and hence can not be directly restored. + // We can try to restore the SWFlags here. Hardware flags depend on external conditions + // and hence can not be restored (assuming the external conditions remain the same, it should be set automatically. + MSPIn(pMSPIState->ui32Module)->CQSETCLEAR = AM_HAL_MSPI_SC_SET(pMSPIState->registerState.regCQFLAGS & 0xFF); + // + // Set the CQCFG last + // + MSPIn(pMSPIState->ui32Module)->CQCFG = pMSPIState->registerState.regCQCFG; + pMSPIState->registerState.bValid = false; } break; @@ -2946,6 +2955,7 @@ uint32_t am_hal_mspi_power_control(void *pHandle, pMSPIState->registerState.regSCRAMBLING = MSPIn(pMSPIState->ui32Module)->SCRAMBLING; pMSPIState->registerState.regCQADDR = MSPIn(pMSPIState->ui32Module)->CQADDR; pMSPIState->registerState.regCQPAUSE = MSPIn(pMSPIState->ui32Module)->CQPAUSE; + pMSPIState->registerState.regCQFLAGS = MSPIn(pMSPIState->ui32Module)->CQFLAGS; pMSPIState->registerState.regCQCURIDX = MSPIn(pMSPIState->ui32Module)->CQCURIDX; pMSPIState->registerState.regCQENDIDX = MSPIn(pMSPIState->ui32Module)->CQENDIDX; pMSPIState->registerState.regINTEN = MSPIn(pMSPIState->ui32Module)->INTEN; @@ -2954,9 +2964,6 @@ uint32_t am_hal_mspi_power_control(void *pHandle, pMSPIState->registerState.regDMABCOUNT = MSPIn(pMSPIState->ui32Module)->DMABCOUNT; pMSPIState->registerState.regDMATHRESH = MSPIn(pMSPIState->ui32Module)->DMATHRESH; - // - // Set the CQCFG last - // pMSPIState->registerState.regCQCFG = MSPIn(pMSPIState->ui32Module)->CQCFG; pMSPIState->registerState.bValid = true; } diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.h index 73932bf6..d6d81591 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_mspi.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_MSPI_H @@ -302,11 +302,11 @@ extern "C" typedef enum { - AM_HAL_MSPI_XIPMIXED_NORMAL = 0, - AM_HAL_MSPI_XIPMIXED_D2 = 1, //1:1:2 timing for Instr:Addr:Data - AM_HAL_MSPI_XIPMIXED_AD2 = 3, //1:2:2 timing for Instr:Addr:Data - AM_HAL_MSPI_XIPMIXED_D4 = 5, //1:1:4 timing for Instr:Addr:Data - AM_HAL_MSPI_XIPMIXED_AD4 = 7 //1:4:4 timing for Instr:Addr:Data + AM_HAL_MSPI_XIPMIXED_NORMAL = 0, + AM_HAL_MSPI_XIPMIXED_D2 = 1, //1:1:2 timing for Instr:Addr:Data + AM_HAL_MSPI_XIPMIXED_AD2 = 3, //1:2:2 timing for Instr:Addr:Data + AM_HAL_MSPI_XIPMIXED_D4 = 5, //1:1:4 timing for Instr:Addr:Data + AM_HAL_MSPI_XIPMIXED_AD4 = 7 //1:4:4 timing for Instr:Addr:Data } am_hal_mspi_xipmixed_mode_e; // @@ -346,7 +346,7 @@ extern "C" //! Clock frequency am_hal_mspi_clock_e eClockFreq; - //! XIPMIXED configure + //! XIPMIXED configure am_hal_mspi_xipmixed_mode_e eXipMixedMode; // diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.c index ece0470f..b407af50 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.c @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.h index 61e241fc..95cfedd1 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pdm.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pin.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pin.h index 62be9eda..2339969a 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pin.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pin.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision 2.2.0-hotfix-2.2.1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.c index 94a99214..b2489766 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -460,6 +460,23 @@ am_hal_pwrctrl_low_power_init(void) gAmHalResetStatus = RSTGEN->STAT; } + // + // Software workaround for Errata ERR019. + // + if ((APOLLO3_A1) && (1 == PWRCTRL->SUPPLYSTATUS_b.SIMOBUCKON)) + { + ui32Status = am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_PDM); + if (AM_HAL_STATUS_SUCCESS != ui32Status) + { + return ui32Status; + } + } + + // + // Configure cache for low power and performance. + // + am_hal_cachectrl_control(AM_HAL_CACHECTRL_CONTROL_LPMMODE_RECOMMENDED, 0); + // // Check if the BLE is already enabled. // @@ -501,7 +518,7 @@ am_hal_pwrctrl_low_power_init(void) // if ( APOLLO3_A0 ) { - // Disable SIMO Buck clkdiv because if ble is out of reset then the same bit divides the simobuck clk too agressively. + // Disable SIMO Buck clkdiv because if ble is out of reset then the same bit divides the simobuck clk too aggressively. MCUCTRL->SIMOBUCK4_b.SIMOBUCKCLKDIVSEL = 0x0; MCUCTRL->BLEBUCK2_b.BLEBUCKTONHITRIM = 0xF; MCUCTRL->BLEBUCK2_b.BLEBUCKTONLOWTRIM = 0xF; diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.h index bfe26fdd..bf85310a 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -100,6 +100,10 @@ typedef enum AM_HAL_PWRCTRL_MEM_MAX } am_hal_pwrctrl_mem_e; +#define AM_HAL_PWRCTRL_MEM_FLASH_MIN AM_HAL_PWRCTRL_MEM_FLASH_512K +#define AM_HAL_PWRCTRL_MEM_FLASH_MAX AM_HAL_PWRCTRL_MEM_FLASH_1M + + //***************************************************************************** // // Macros to check whether Apollo3 bucks are enabled. diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl_internal.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl_internal.h index 6760b869..f5120ce5 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl_internal.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_pwrctrl_internal.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.c index fb7639d5..3eee7fb2 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.h index 557af2b1..1aa958bb 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_queue.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_QUEUE_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.c index 1666cd60..cbf24dd7 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.h index 5e19e5f1..e1cdad2b 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_reset.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_RSTGEN_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.c index 605a8d9c..308af7bb 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -85,7 +85,6 @@ dec_to_bcd(uint8_t ui8DecimalByte) //! //! Valid values for ui32OSC are: //! -//! AM_HAL_RTC_OSC_LFRC //! AM_HAL_RTC_OSC_XT //! //! @return None @@ -99,16 +98,7 @@ dec_to_bcd(uint8_t ui8DecimalByte) void am_hal_rtc_osc_select(uint32_t ui32OSC) { - // - // Set LFRC if flag is set. - // Otherwise configure for LFRC. - // - if ( ui32OSC == AM_HAL_RTC_OSC_LFRC ) - { - // Set bit to 1 for LFRC - CLKGEN->OCTRL |= CLKGEN_OCTRL_OSEL_Msk; - } - else + if ( ui32OSC == AM_HAL_RTC_OSC_XT ) { // Clear bit to 0 for XTAL CLKGEN->OCTRL &= ~CLKGEN_OCTRL_OSEL_Msk; diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.h index 5e7756b3..2ca7e442 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_rtc.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_RTC_H @@ -65,7 +65,6 @@ extern "C" //! @{ // //***************************************************************************** -#define AM_HAL_RTC_OSC_LFRC 0x1 #define AM_HAL_RTC_OSC_XT 0x0 //! @} diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.c new file mode 100644 index 00000000..6896ec26 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.c @@ -0,0 +1,1574 @@ +//***************************************************************************** +// +// am_hal_scard.c +//! @file +//! +//! @brief Functions for interfacing with the SCARD. +//! +//! @addtogroup SCARD +//! @ingroup apollo3hal +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Copyright (c) 2019, Ambiq Micro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// Third party software included in this distribution is subject to the +// additional license terms as defined in the /docs/licenses directory. +// +// 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. +// +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +// +//***************************************************************************** + +#include +#include +#include "am_mcu_apollo.h" + +//***************************************************************************** +// +// SCARD magic number for handle verification. +// +//***************************************************************************** +#define AM_HAL_MAGIC_SCARD 0xEA9E06 + +#define AM_HAL_SCARD_CHK_HANDLE(h) \ + ((h) && \ + ((am_hal_handle_prefix_t *)(h))->s.bInit && \ + (((am_hal_handle_prefix_t *)(h))->s.magic == AM_HAL_MAGIC_SCARD)) + +//***************************************************************************** +// +// Convenience macro for passing errors. +// +//***************************************************************************** +#define RETURN_ON_ERROR(x) \ + if ((x) != AM_HAL_STATUS_SUCCESS) \ + { \ + return (x); \ + }; + +//***************************************************************************** +// +// Baudrate to byte-time in microseconds with a little extra margin. +// +//***************************************************************************** +#define ONE_BIT_US(baudrate) (AM_HAL_SCARD_CLK_FREQ/(baudrate)) +#define ONE_BIT_DELAY(handle) \ + am_hal_flash_delay(FLASH_CYCLES_US(ONE_BIT_US((handle)->ui32BaudRate))) + +#define SCARD_MAX_SYNC_TIME_MS 10 + +#define delay_ms(ms) am_hal_flash_delay(FLASH_CYCLES_US(1000 * (ms))) +#define delay_us(us) am_hal_flash_delay(FLASH_CYCLES_US(us)) + +#define SCARD_WHILE_TIMEOUT_MS(expr, timeout, error) \ +{ \ + uint32_t ui32Timeout = 0; \ + while ( expr ) \ + { \ + if ( ui32Timeout == (timeout * 1000) ) \ + { \ + return error; \ + } \ + \ + delay_us(1); \ + ui32Timeout++; \ + } \ +} + +#define SCARD_SYNC_OPER(module, operation) do{\ + SCARDn(module)->SR1_b.SYNCEND = 1;\ + operation;\ + SCARD_WHILE_TIMEOUT_MS(!SCARDn(module)->SR1_b.SYNCEND, SCARD_MAX_SYNC_TIME_MS, AM_HAL_SCARD_STATUS_BUS_ERROR) ;\ + } while ( 0 ) + +//***************************************************************************** +// +// Transmission parameters F and D look-up tables +// Per the ETU 7816-3 protocol ETU is computed from 2 parameters, FI and DI. +// ETU: Elementary Time Unit +// FI: Clock rate conversion factor +// DI: Bit rate adjustment factor +// +//***************************************************************************** +static uint16_t g_F_Integer[16][2] = +{ + // FI { F, f(max)} + /*0000*/{ 372, 4}, + /*0001*/{ 372, 5}, + /*0010*/{ 558, 6}, + /*0011*/{ 744, 8}, + /*0100*/{1116, 12}, + /*0101*/{1488, 16}, + /*0110*/{1860, 20}, + /*0111*/{ 0, 0}, + /*1000*/{ 0, 0}, + /*1001*/{ 512, 5}, + /*1010*/{ 768, 7}, //7.5 + /*1011*/{1024, 10}, + /*1100*/{1536, 15}, + /*1101*/{2048, 20}, + /*1110*/{ 0, 0}, + /*1111*/{ 0, 0} +}; +static uint8_t g_D_Integer[16] = +{ + //DI 0000 0001 0010 0011 0100 0101 0110 0111 + /*D*/ 0, 1, 2, 4, 8, 16, 32, 64, + //DI 1000 1001 1010 1011 1100 1101 1110 1111 + /*D*/ 12, 20, 0, 0, 0, 0, 0, 0 +}; + +static uint16_t g_WaitTime = AM_HAL_SCARD_WAIT_MAX_TIME; //Set to max + +//***************************************************************************** +// +// Structure for handling SCARD register state information for power up/down +// +//***************************************************************************** +typedef struct +{ + bool bValid; + uint32_t regIER; + uint32_t regTCR; + uint32_t regUCR; + uint32_t regBPRL; + uint32_t regBPRH; + uint32_t regUCR1; + uint32_t regIER1; + uint32_t regGTR; + uint32_t regRETXCNT; + uint32_t regCLKCTRL; +} +am_hal_scard_register_state_t; + +//***************************************************************************** +// +// Structure for handling SCARD instance state information. +// +//***************************************************************************** +typedef struct +{ + am_hal_handle_prefix_t prefix; + am_hal_scard_register_state_t sRegState; + + uint32_t ui32Module; + + bool bEnableTxQueue; + am_hal_queue_t sTxQueue; + + bool bEnableRxQueue; + am_hal_queue_t sRxQueue; + + uint32_t ui32BaudRate; +} +am_hal_scard_state_t; + +//***************************************************************************** +// +// State structure for each module. +// +//***************************************************************************** +am_hal_scard_state_t g_am_hal_scard_states[AM_REG_SCARD_NUM_MODULES]; + +//***************************************************************************** +// +// Allows the SCARD HAL to use extra space to store TX and RX data. +// +//***************************************************************************** +static uint32_t +buffer_configure(void *pHandle, uint8_t *pui8TxBuffer, uint32_t ui32TxBufferSize, + uint8_t *pui8RxBuffer, uint32_t ui32RxBufferSize) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32ErrorStatus; + + // + // Check to make sure this is a valid handle. + // + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } + + // + // Check to see if we have a TX buffer. + // + if ( pui8TxBuffer && ui32TxBufferSize ) + { + // + // If so, initialzie the transmit queue, and enable the TX FIFO + // interrupt. + // + pState->bEnableTxQueue = true; + am_hal_queue_init(&pState->sTxQueue, pui8TxBuffer, 1, ui32TxBufferSize); + ui32ErrorStatus = am_hal_scard_interrupt_enable(pHandle, 0, AM_HAL_SCARD_INT_TBERBFEN); + RETURN_ON_ERROR(ui32ErrorStatus); + } + else + { + // + // If not, make sure the TX FIFO interrupt is disabled. + // + pState->bEnableTxQueue = false; + ui32ErrorStatus = am_hal_scard_interrupt_disable(pHandle, 0, AM_HAL_SCARD_INT_TBERBFEN); + RETURN_ON_ERROR(ui32ErrorStatus); + } + + // + // Check to see if we have an RX buffer. + // + if ( pui8RxBuffer && ui32RxBufferSize ) + { + // + // If so, initialize the receive queue and the associated interupts. + // + pState->bEnableRxQueue = true; + am_hal_queue_init(&pState->sRxQueue, pui8RxBuffer, 1, ui32RxBufferSize); + ui32ErrorStatus = am_hal_scard_interrupt_enable(pHandle, 0, (AM_HAL_SCARD_INT_FHFEN | + AM_HAL_SCARD_INT_FNEEN)); + RETURN_ON_ERROR(ui32ErrorStatus); + } + else + { + pState->bEnableRxQueue = false; + ui32ErrorStatus = am_hal_scard_interrupt_disable(pHandle, 0, (AM_HAL_SCARD_INT_FHFEN | + AM_HAL_SCARD_INT_FNEEN)); + RETURN_ON_ERROR(ui32ErrorStatus); + } + + return AM_HAL_STATUS_SUCCESS; +} // buffer_configure() + +//***************************************************************************** +// +// Initialization function. +// +//***************************************************************************** +uint32_t +am_hal_scard_initialize(uint32_t ui32Module, void **ppHandle) +{ + // + // Check that the request module is in range. + // +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( ui32Module >= AM_REG_SCARD_NUM_MODULES ) + { + return AM_HAL_STATUS_OUT_OF_RANGE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + // + // Check for valid arguements. + // + if ( !ppHandle ) + { + return AM_HAL_STATUS_INVALID_ARG; + } + + // + // Check if the handle is unallocated. + // + if ( g_am_hal_scard_states[ui32Module].prefix.s.bInit ) + { + return AM_HAL_STATUS_INVALID_OPERATION; + } + + // + // Initialize the handle. + // + g_am_hal_scard_states[ui32Module].prefix.s.bInit = true; + g_am_hal_scard_states[ui32Module].prefix.s.magic = AM_HAL_MAGIC_SCARD; + g_am_hal_scard_states[ui32Module].ui32Module = ui32Module; + g_am_hal_scard_states[ui32Module].sRegState.bValid = false; + g_am_hal_scard_states[ui32Module].ui32BaudRate = 0; + + // + // Return the handle. + // + *ppHandle = (void *)&g_am_hal_scard_states[ui32Module]; + + // + // Return the status. + // + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_initialize() + +//***************************************************************************** +// +// De-Initialization function. +// +//***************************************************************************** +uint32_t +am_hal_scard_deinitialize(void *pHandle) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *)pHandle; + + // + // Check the handle. + // +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + // + // Reset the handle. + // + pState->prefix.s.bInit = false; + pState->ui32Module = 0; + pState->sRegState.bValid = false; + + // + // Return the status. + // + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_deinitialize() + +//***************************************************************************** +// +// Power control functions. +// +//***************************************************************************** +uint32_t +am_hal_scard_power_control(void *pHandle, + am_hal_sysctrl_power_state_e ePowerState, + bool bRetainState) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( ui32Module >= AM_REG_SCARD_NUM_MODULES ) + { + return AM_HAL_STATUS_OUT_OF_RANGE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + am_hal_pwrctrl_periph_e eSCCPowerModule = ((am_hal_pwrctrl_periph_e) + (AM_HAL_PWRCTRL_PERIPH_SCARD + + ui32Module)); + + // + // Check to make sure this is a valid handle. + // + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } + + // + // Decode the requested power state and update SCARD operation accordingly. + // + switch (ePowerState) + { + // + // Turn on the SCC. + // + case AM_HAL_SYSCTRL_WAKE: + // + // Make sure we don't try to restore an invalid state. + // + if ( bRetainState && !pState->sRegState.bValid ) + { + return AM_HAL_STATUS_INVALID_OPERATION; + } + + // + // Enable power control. + // + am_hal_pwrctrl_periph_enable(eSCCPowerModule); + + if ( bRetainState ) + { + // + // Restore SCC registers + // + AM_CRITICAL_BEGIN + + SCARDn(ui32Module)->IER = pState->sRegState.regIER; + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR = pState->sRegState.regTCR); + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->UCR = pState->sRegState.regUCR); + SCARDn(ui32Module)->BPRL = pState->sRegState.regBPRL; + SCARDn(ui32Module)->BPRH = pState->sRegState.regBPRH; + SCARDn(ui32Module)->UCR1 = pState->sRegState.regUCR1; + SCARDn(ui32Module)->IER1 = pState->sRegState.regIER1; + SCARDn(ui32Module)->GTR = pState->sRegState.regGTR; + SCARDn(ui32Module)->RETXCNT = pState->sRegState.regRETXCNT; + SCARDn(ui32Module)->CLKCTRL = pState->sRegState.regCLKCTRL; + pState->sRegState.bValid = false; + + AM_CRITICAL_END + } + break; + + // + // Turn off the SCARD. + // + case AM_HAL_SYSCTRL_NORMALSLEEP: + case AM_HAL_SYSCTRL_DEEPSLEEP: + if ( bRetainState ) + { + AM_CRITICAL_BEGIN + + pState->sRegState.regIER = SCARDn(ui32Module)->IER; + pState->sRegState.regTCR = SCARDn(ui32Module)->TCR; + pState->sRegState.regUCR = SCARDn(ui32Module)->UCR; + pState->sRegState.regBPRL = SCARDn(ui32Module)->BPRL; + pState->sRegState.regBPRH = SCARDn(ui32Module)->BPRH; + pState->sRegState.regUCR1 = SCARDn(ui32Module)->UCR1; + pState->sRegState.regIER1 = SCARDn(ui32Module)->IER1; + pState->sRegState.regGTR = SCARDn(ui32Module)->GTR; + pState->sRegState.regRETXCNT = SCARDn(ui32Module)->RETXCNT; + pState->sRegState.regCLKCTRL = SCARDn(ui32Module)->CLKCTRL; + pState->sRegState.bValid = true; + + AM_CRITICAL_END + } + + // + // Clear all interrupts before sleeping as having a pending SCARD + // interrupt burns power. + // + am_hal_scard_interrupt_clear(pState, 0, AM_HAL_SCARD_INT_ALL); + am_hal_scard_interrupt_clear(pState, 1, AM_HAL_SCARD_INT_ALL); + + // + // Disable power control. + // + am_hal_pwrctrl_periph_disable(eSCCPowerModule); + break; + + default: + return AM_HAL_STATUS_INVALID_ARG; + } + + // + // Return the status. + // + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_power_control() + +//***************************************************************************** +// +// SCARD configuration. +// +//***************************************************************************** +uint32_t +am_hal_scard_configure(void *pHandle, am_hal_scard_config_t *psConfig) +{ + uint32_t status = AM_HAL_STATUS_SUCCESS; + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + + // + // Check to make sure this is a valid handle. + // +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + // + // Start by enabling the clocks, which needs to happen in a critical + // section. + // + AM_CRITICAL_BEGIN + + SCARDn(ui32Module)->CLKCTRL_b.APBCLKEN = 1; + SCARDn(ui32Module)->CLKCTRL_b.CLKEN = 1; + + AM_CRITICAL_END + // + // Set the baud rate. + // + status = am_hal_scard_control(pHandle, AM_HAL_SCARD_REQ_BAUDRATE, &psConfig->ui32Fidi); + + //RETURN_ON_ERROR(ui32ErrorStatus); + // + // Copy the configuration options into the appropriate registers. + // + status = am_hal_scard_control(pHandle, AM_HAL_SCARD_REQ_PROTOCOL, &psConfig->ui32Protocol); + status = am_hal_scard_control(pHandle, AM_HAL_SCARD_REQ_CARD_FORMAT, &psConfig->ui32Direction); + status = am_hal_scard_control(pHandle, AM_HAL_SCARD_REQ_PARITY, &psConfig->ui32Parity); + status = am_hal_scard_control(pHandle, AM_HAL_SCARD_REQ_GUARDTIME, &psConfig->ui32GuardTime); + SCARDn(ui32Module)->UCR1_b.CLKIOV = psConfig->ui32ClkLevel; + status = am_hal_scard_control(pHandle, AM_HAL_SCARD_REQ_CLK_STOP, NULL); + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->UCR_b.RIU = 1); + if ( AM_HAL_STATUS_SUCCESS != status ) + { + return AM_HAL_STATUS_FAIL; + } + // + // Set up any buffers that might exist. + // + buffer_configure(pHandle, + psConfig->pui8TxBuffer, + psConfig->ui32TxBufferSize, + psConfig->pui8RxBuffer, + psConfig->ui32RxBufferSize); + + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_configure() + +//***************************************************************************** +// +// Set Baud Rate Register based on the parameters F and D. +// +//***************************************************************************** +static void +config_baudrate(void *pHandle, uint32_t ui32Fidi) +{ + uint16_t bpr; + uint32_t ui32ActualBaud; + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + + // F is the clock rate conversion integer + // D is the baud rate adjustment integer + // 1 ETU = (F/D)*(1/f) s + // The default values of these parameters are: + // F = 372 ; D = 1; f (max.) = 5 MHz + + // + // BPRL and BPRH are used for counting ETU + // + bpr = ((g_F_Integer[AM_HAL_SCARD_FI(ui32Fidi)][0] != 0) && (g_D_Integer[AM_HAL_SCARD_DI(ui32Fidi)] != 0)) ? \ + g_F_Integer[AM_HAL_SCARD_FI(ui32Fidi)][0] / g_D_Integer[AM_HAL_SCARD_DI(ui32Fidi)] : \ + g_F_Integer[AM_HAL_SCARD_FI(AM_HAL_SCARD_FI_DI_DEFAULT)][0] / g_D_Integer[AM_HAL_SCARD_DI(AM_HAL_SCARD_FI_DI_DEFAULT)]; + + SCARDn(ui32Module)->BPRL = bpr & 0xFF; + SCARDn(ui32Module)->BPRH = (SCARDn(ui32Module)->BPRH & (~SCARD_BPRH_BPRH_Msk)) | ((bpr >> 8) & SCARD_BPRH_BPRH_Msk) ; + ui32ActualBaud = (uint32_t)(AM_HAL_SCARD_CLK_FREQ / bpr); + pState->ui32BaudRate = ui32ActualBaud; +} // config_baudrate() + +//***************************************************************************** +// +// Set card format, direct convention or inverse convention +// +//***************************************************************************** +static uint32_t +config_cardformat(uint32_t ui32Module, uint32_t ui32Format) +{ + switch(ui32Format) + { + // + // Inverse convention + // + case AM_HAL_SCARD_CONV_MSB_0X3F: + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.AUTOCONV = 1); + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.CONV = 1); + break; + // + // Direct convention + // + case AM_HAL_SCARD_CONV_LSB_0X3B: + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.AUTOCONV = 1); + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.CONV = 0); + break; + // + // Not set by software, configured by the first received byte + // + case AM_HAL_SCARD_CONV_AUTO: + default: + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.AUTOCONV = 0); + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.SS = 1); + break; + } + return AM_HAL_STATUS_SUCCESS; +} + +//***************************************************************************** +// +// Enable/disbale parity and set it to odd/even +// +//***************************************************************************** +static uint32_t +config_parity(uint32_t ui32Module, uint32_t ui32Parity) +{ + // + // T1 protocol + // + if ( SCARDn(ui32Module)->TCR_b.PROT ) + { + // + // Enable parity + // + if ( ui32Parity & 0xF0 ) + { + SCARDn(ui32Module)->UCR1_b.T1PAREN = 1; + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.FIP = ui32Parity & 0xF); + } + // + // Disbale parity + // + else + { + SCARDn(ui32Module)->UCR1_b.T1PAREN = 0; + } + } + // + // T0 protocol, always enable parity + // + else + { + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.FIP = ui32Parity & 0xF); + } + return AM_HAL_STATUS_SUCCESS; +} + +//***************************************************************************** +// +// Set protocol, T0 or T1 +// +//***************************************************************************** +static uint32_t +config_protocol(uint32_t ui32Module, uint32_t ui32Protocol) +{ + if ( 1 == ui32Protocol ) + { + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.PROT = AM_HAL_SCARD_PROTOCOL_T1); + } + else if ( 0 == ui32Protocol ) + { + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.PROT = AM_HAL_SCARD_PROTOCOL_T0); + } + else + { + return AM_HAL_SCARD_STATUS_PROTOCAL_NOT_SUPPORT; + } + return AM_HAL_STATUS_SUCCESS; +} + +//***************************************************************************** +// +// Set and start ETU counter +// +//***************************************************************************** +static uint32_t +config_etucounter(uint32_t ui32Module, uint16_t ui16Etu) +{ + // + // Set low-8bit first, then set high-8bit, after software writes ECNTH, ETU counter starts counting + // + SCARD_WHILE_TIMEOUT_MS(!SCARDn(ui32Module)->SR1_b.IDLE, 100, AM_HAL_SCARD_STATUS_BUS_ERROR); + SCARDn(ui32Module)->SR1_b.SYNCEND = 1; + SCARDn(ui32Module)->ECNTL = (ui16Etu) & 0xFF; + SCARD_WHILE_TIMEOUT_MS(!SCARDn(ui32Module)->SR1_b.SYNCEND, 100, AM_HAL_SCARD_STATUS_BUS_ERROR); + SCARDn(ui32Module)->ECNTH = ((ui16Etu) >> 8); + return AM_HAL_STATUS_SUCCESS; +} + +//***************************************************************************** +// +// Read as much data from the SCARD FIFO as possible, up to ui32NumBytes +// +//***************************************************************************** +uint32_t scard_fifo_read(void *pHandle, uint8_t *pui8Data, uint32_t ui32NumBytes, uint32_t *pui32NumBytesRead) +{ + uint32_t ui32ErrorStatus = AM_HAL_STATUS_SUCCESS; + uint32_t i = 0; + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + uint8_t ui8Index = 0; + + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.TR = 0); + + while ( ui32NumBytes ) + { + config_etucounter(ui32Module, g_WaitTime); + while ( (!SCARDn(ui32Module)->SR_b.FNE) && (!SCARDn(ui32Module)->SR1_b.ECNTOVER) && (!SCARDn(ui32Module)->SR_b.PE) && (!SCARDn(ui32Module)->SR_b.FER) ); + // + // Read times out + // + if ( SCARDn(ui32Module)->SR1_b.ECNTOVER ) + { + break; + } + // + // Parity error or Frame error + // + else if ( (SCARDn(ui32Module)->SR_b.PE) || (SCARDn(ui32Module)->SR_b.FER) ) + { + SCARDn(ui32Module)->SR_b.PE = 0; + SCARDn(ui32Module)->SR_b.FER = 0; + ui32ErrorStatus = AM_HAL_STATUS_FAIL; + break; + } + // + // RX FIFO is full, read 8 bytes out + // + else if ( SCARDn(ui32Module)->SR_b.TBERBF ) + { + for ( ui8Index = 0; ui8Index < AM_HAL_SCARD_FIFO_MAX; ui8Index++ ) + { + pui8Data[i++] = SCARDn(ui32Module)->DR_b.DR; + } + ui32NumBytes -= AM_HAL_SCARD_FIFO_MAX; + } + // + // RX FIFO is half full, read 4 bytes out + // + else if ( SCARDn(ui32Module)->SR_b.FHF ) + { + for ( ui8Index = 0; ui8Index < AM_HAL_SCARD_FIFO_MAX / 2; ui8Index++ ) + { + pui8Data[i++] = SCARDn(ui32Module)->DR_b.DR; + } + ui32NumBytes -= AM_HAL_SCARD_FIFO_MAX / 2; + } + // + // RX FIFO is not empty, read as much as we can + // + else if ( SCARDn(ui32Module)->SR_b.FNE ) + { + pui8Data[i++] = SCARDn(ui32Module)->DR_b.DR; + ui32NumBytes--; + } + } + if ( pui32NumBytesRead ) + { + *pui32NumBytesRead = i; + } + return ui32ErrorStatus; +} + +//***************************************************************************** +// +// Read as much data from the SCARD FIFO as possible, up to ui32NumBytes +// +//***************************************************************************** +uint32_t scard_fifo_write(void *pHandle, uint8_t *pui8Data, uint32_t ui32NumBytes, uint32_t *pui32NumBytesWritten) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + uint32_t i = 0; + + if ( ui32NumBytes ) + { + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.TR = 1); + + while ( 1 != ui32NumBytes-- ) + { + // + // Write 1 byte into DR + // + SCARDn(ui32Module)->DR_b.DR = pui8Data[i++]; + SCARD_WHILE_TIMEOUT_MS((!SCARDn(ui32Module)->SR_b.TBERBF) && (!SCARDn(ui32Module)->SR_b.PE) && (!SCARDn(ui32Module)->SR_b.FER), 100, AM_HAL_SCARD_STATUS_BUS_ERROR); + // + // Parity error or Frame error + // + if ( (SCARDn(ui32Module)->SR_b.PE) || (SCARDn(ui32Module)->SR_b.FER) ) + { + SCARDn(ui32Module)->SR_b.PE = 0; + SCARDn(ui32Module)->SR_b.FER = 0; + return AM_HAL_STATUS_FAIL; + } + } + + // + // Enable fast TX to RX function before the last byte + // + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.LCT = 1); + SCARDn(ui32Module)->DR_b.DR = pui8Data[i++]; + // + // SCC should switch back to RX after all data sent out + // + SCARD_WHILE_TIMEOUT_MS((!SCARDn(ui32Module)->SR_b.FT2REND) && (!SCARDn(ui32Module)->SR_b.PE) && (!SCARDn(ui32Module)->SR_b.FER), 100, AM_HAL_SCARD_STATUS_BUS_ERROR); + // + // Parity error or Frame error + // + if ( (SCARDn(ui32Module)->SR_b.PE) || (SCARDn(ui32Module)->SR_b.FER) ) + { + SCARDn(ui32Module)->SR_b.PE = 0; + SCARDn(ui32Module)->SR_b.FER = 0; + return AM_HAL_STATUS_FAIL; + } + + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->TCR_b.TR = 0); + } + if ( pui32NumBytesWritten ) + { + *pui32NumBytesWritten = i; + } + return AM_HAL_STATUS_SUCCESS; +} + +//***************************************************************************** +// +// Empty the SCARD RX FIFO, and place the data into the RX queue. +// +//***************************************************************************** +static uint32_t +rx_queue_update(void *pHandle) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + + uint8_t pui8Data[AM_HAL_SCARD_FIFO_MAX]; + uint32_t ui32BytesTransferred; + uint32_t ui32ErrorStatus; + + AM_CRITICAL_BEGIN + + // + // Read as much of the FIFO as we can. + // + ui32ErrorStatus = scard_fifo_read(pHandle, pui8Data, AM_HAL_SCARD_FIFO_MAX, + &ui32BytesTransferred); + // + // If we were successful, go ahead and transfer the data along to the + // buffer. + // + if ( ui32ErrorStatus == AM_HAL_STATUS_SUCCESS ) + { + if ( !am_hal_queue_item_add(&pState->sRxQueue, pui8Data, + ui32BytesTransferred) ) + { + ui32ErrorStatus = AM_HAL_SCARD_STATUS_RX_QUEUE_FULL; + } + } + + AM_CRITICAL_END + + return ui32ErrorStatus; +} // rx_queue_update() + +//***************************************************************************** +// +// Transfer as much data as possible from the TX queue to the TX FIFO. +// +//***************************************************************************** +static uint32_t +tx_queue_update(void *pHandle) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + + uint8_t pui8Data; + uint32_t ui32BytesTransferred; + uint32_t ui32ErrorStatus = AM_HAL_STATUS_SUCCESS; + + AM_CRITICAL_BEGIN + + // + // Attempt to grab an item from the queue, and add it to the fifo. + // + while ( 1 ) + { + if ( am_hal_queue_item_get(&pState->sTxQueue, &pui8Data, 1) ) + { + ui32ErrorStatus = scard_fifo_write(pHandle, &pui8Data, 1, &ui32BytesTransferred); + } + else + { + // + // If we didn't get anything from the queue, we can just return. + // + break; + } + } + + AM_CRITICAL_END + + return ui32ErrorStatus; +} // tx_queue_update() + +//***************************************************************************** +// +// Attempt to read N bytes from the FIFO, but give up if they aren't there. +// +//***************************************************************************** +static uint32_t +read_nonblocking(void *pHandle, uint8_t *pui8Data, uint32_t ui32NumBytes, + uint32_t *pui32NumBytesRead) +{ + uint32_t ui32BufferData; + uint32_t ui32BytesTransferred; + uint32_t ui32ErrorStatus = AM_HAL_STATUS_SUCCESS; + + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + + // + // Check to make sure this is a valid handle. + // +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( (!AM_HAL_SCARD_CHK_HANDLE(pHandle)) || (NULL == pui8Data) || (NULL == pui32NumBytesRead) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + // + // Start by setting the number of bytes read to 0. + // + *pui32NumBytesRead = 0; + + if ( ui32NumBytes == 0 ) + { + return AM_HAL_STATUS_SUCCESS; + } + + // + // Check to see if the circular receive buffer has been enabled. + // + if ( pState->bEnableRxQueue ) + { + // + // If it is, update it, and then try to read the requested number of + // bytes, giving up if fewer were actually found. + // + ui32ErrorStatus = rx_queue_update(pHandle); + RETURN_ON_ERROR(ui32ErrorStatus); + + ui32BufferData = am_hal_queue_data_left(&pState->sRxQueue); + + ui32BytesTransferred = (ui32NumBytes < ui32BufferData ? + ui32NumBytes : ui32BufferData); + + am_hal_queue_item_get(&pState->sRxQueue, pui8Data, ui32BytesTransferred); + } + else + { + // + // If the buffer isn't enabled, just read straight from the FIFO. + // + ui32ErrorStatus = scard_fifo_read(pHandle, pui8Data, ui32NumBytes, + &ui32BytesTransferred); + } + + // + // Let the caller know how much we transferred if they provided us with a + // pointer. + // + *pui32NumBytesRead = ui32BytesTransferred; + + return ui32ErrorStatus; +} // read_nonblocking() + +//***************************************************************************** +// +// Attempt to write N bytes to the FIFO, but give up if there's no space. +// +//***************************************************************************** +static uint32_t +write_nonblocking(void *pHandle, uint8_t *pui8Data, uint32_t ui32NumBytes, + uint32_t *pui32NumBytesWritten) +{ + uint32_t ui32ErrorStatus; + uint32_t ui32BufferSpace; + uint32_t ui32BytesTransferred; + + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + + // + // Check to make sure this is a valid handle. + // +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( (!AM_HAL_SCARD_CHK_HANDLE(pHandle)) || (NULL == pui8Data) || (NULL == pui32NumBytesWritten) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + // + // Let the caller know how much we transferred if they provided us with a + // pointer. + // + *pui32NumBytesWritten = 0; + + if ( ui32NumBytes == 0 ) + { + return AM_HAL_STATUS_SUCCESS; + } + + // + // Check to see if the circular transmit buffer has been enabled. + // + if ( pState->bEnableTxQueue ) + { + // + // If it has, been enabled, write as much data to it as we can, and let + // the caller know how much that was. + // + ui32BufferSpace = am_hal_queue_space_left(&pState->sTxQueue); + + ui32BytesTransferred = (ui32NumBytes < ui32BufferSpace ? + ui32NumBytes : ui32BufferSpace); + + am_hal_queue_item_add(&pState->sTxQueue, pui8Data, ui32BytesTransferred); + + // + // Transfer as much data as possible from the queue to the fifo. + // + ui32ErrorStatus = tx_queue_update(pHandle); + RETURN_ON_ERROR(ui32ErrorStatus); + } + else + { + // + // If the buffer isn't enabled, just write straight to the FIFO. + // + scard_fifo_write(pHandle, pui8Data, ui32NumBytes, + &ui32BytesTransferred); + } + + // + // Let the caller know how much we transferred if they provided us with a + // pointer. + // + *pui32NumBytesWritten = ui32BytesTransferred; + + return AM_HAL_STATUS_SUCCESS; +} // write_nonblocking() + +//***************************************************************************** +// +// This function will keep reading bytes until it either gets N bytes or runs +// into an error. +// +//***************************************************************************** +static uint32_t +read_timeout(void *pHandle, uint8_t *pui8Data, uint32_t ui32NumBytes, + uint32_t *pui32NumBytesRead, uint32_t ui32TimeoutMs) +{ + uint32_t ui32Status, ui32BytesRead, ui32RemainingBytes, + ui32TimeSpent, i; + + // + // If we don't have a timeout, just pass this directly to the nonblocking + // call. + // + if ( ui32TimeoutMs == 0 ) + { + return read_nonblocking(pHandle, pui8Data, ui32NumBytes, + pui32NumBytesRead); + } + + i = 0; + ui32RemainingBytes = ui32NumBytes; + ui32TimeSpent = 0; + + // + // Loop until we're done reading. This will either be because we hit a + // timeout, or we got the right number of bytes. If the caller specified + // "wait forever", then don't check the timeout. + // + while ( ui32RemainingBytes && (ui32TimeSpent < ui32TimeoutMs) ) + { + // + // Read as much as we can. + // + ui32BytesRead = 0; + ui32Status = read_nonblocking(pHandle, &pui8Data[i], + ui32RemainingBytes, + &ui32BytesRead); + // + // Update the tracking variables. + // + i += ui32BytesRead; + ui32RemainingBytes -= ui32BytesRead; + + if ( ui32Status != AM_HAL_STATUS_SUCCESS ) + { + if ( pui32NumBytesRead ) + { + *pui32NumBytesRead = i; + } + + return ui32Status; + } + + // + // Update the timeout. + // + if ( ui32RemainingBytes ) + { + delay_us(1); + + if ( ui32TimeoutMs != AM_HAL_SCARD_WAIT_FOREVER ) + { + ui32TimeSpent++; + } + } + } + + if ( pui32NumBytesRead ) + { + *pui32NumBytesRead = i; + } + + return AM_HAL_STATUS_SUCCESS; +} // read_timeout() + +//***************************************************************************** +// +// This function will keep writing bytes until it either sends N bytes or runs +// into an error. +// +//***************************************************************************** +static uint32_t +write_timeout(void *pHandle, uint8_t *pui8Data, uint32_t ui32NumBytes, + uint32_t *pui32NumBytesWritten, uint32_t ui32TimeoutMs) +{ + uint32_t ui32Status, ui32BytesWritten, ui32RemainingBytes, + ui32TimeSpent, i; + + i = 0; + ui32RemainingBytes = ui32NumBytes; + ui32TimeSpent = 0; + + // + // If we don't have a timeout, just pass this directly to the nonblocking + // call. + // + if ( ui32TimeoutMs == 0 ) + { + return write_nonblocking(pHandle, pui8Data, ui32NumBytes, + pui32NumBytesWritten); + } + + // + // Loop until we're done write. This will either be because we hit a + // timeout, or we sent the right number of bytes. If the caller specified + // "wait forever", then don't check the timeout. + // + while ( ui32RemainingBytes && (ui32TimeSpent < ui32TimeoutMs) ) + { + // + // Write as much as we can. + // + ui32BytesWritten = 0; + ui32Status = write_nonblocking(pHandle, &pui8Data[i], + ui32RemainingBytes, + &ui32BytesWritten); + // + // Update the tracking variables. + // + i += ui32BytesWritten; + ui32RemainingBytes -= ui32BytesWritten; + + if ( ui32Status != AM_HAL_STATUS_SUCCESS ) + { + if ( pui32NumBytesWritten ) + { + *pui32NumBytesWritten = i; + } + + return ui32Status; + } + + // + // Update the timeout. + // + if ( ui32RemainingBytes ) + { + delay_us(1); + + if ( ui32TimeoutMs != AM_HAL_SCARD_WAIT_FOREVER ) + { + ui32TimeSpent++; + } + } + } + + if ( pui32NumBytesWritten ) + { + *pui32NumBytesWritten = i; + } + + return AM_HAL_STATUS_SUCCESS; +} // write_timeout() + +//***************************************************************************** +// +// Send or receive bytes. +// +//***************************************************************************** +uint32_t +am_hal_scard_transfer(void *pHandle, const am_hal_scard_transfer_t *pTransfer) +{ + // + // Pick the right function to use based on the transfer structure. + // + if ( pTransfer->ui32Direction == AM_HAL_SCARD_WRITE ) + { + return write_timeout(pHandle, + pTransfer->pui8Data, + pTransfer->ui32NumBytes, + pTransfer->pui32BytesTransferred, + pTransfer->ui32TimeoutMs); + } + else if ( pTransfer->ui32Direction == AM_HAL_SCARD_READ ) + { + return read_timeout(pHandle, + pTransfer->pui8Data, + pTransfer->ui32NumBytes, + pTransfer->pui32BytesTransferred, + pTransfer->ui32TimeoutMs); + } + + return AM_HAL_STATUS_INVALID_OPERATION; +} // am_hal_scard_transfer() + +//***************************************************************************** +// +// Wait for all of the traffic in the TX pipeline to be sent. +// +//***************************************************************************** +uint32_t +am_hal_scard_tx_flush(void *pHandle) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + + // + // If we have a TX queue, we should wait for it to empty. + // + if ( pState->bEnableTxQueue ) + { + while ( am_hal_queue_data_left(&(pState->sTxQueue)) ) + { + ONE_BIT_DELAY(pState); + } + } + + // + // Wait for the IDLE bit to go high. + // + while ( SCARDn(ui32Module)->SR1_b.IDLE != 1 ) + { + ONE_BIT_DELAY(pState); + } + + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_tx_flush() + +//***************************************************************************** +// +// Interrupt service +// +//***************************************************************************** +uint32_t +am_hal_scard_interrupt_service(void *pHandle, uint32_t ui32Status, uint32_t *pui32ScardTxIdle) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + uint32_t ui32ErrorStatus; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + // + // Check to see if we have filled the Rx FIFO past the configured limit, or + // if we have an 'old' character or two sitting in the FIFO. + // + if ( (ui32Status & (SCARD_SR_TBERBF_Msk | SCARD_SR_FHF_Msk | SCARD_SR_FNE_Msk) ) && + pState->bEnableRxQueue) + { + ui32ErrorStatus = rx_queue_update(pHandle); + RETURN_ON_ERROR(ui32ErrorStatus); + } + + // + // Check to see if our TX buffer has been recently emptied. If so, we + // should refill it from the TX ring buffer. + // + if ( (ui32Status & SCARD_SR_TBERBF_Msk) && pState->bEnableTxQueue ) + { + ui32ErrorStatus = tx_queue_update(pHandle); + RETURN_ON_ERROR(ui32ErrorStatus); + } + + // + // If this pointer is null, we can just return success now. There is no + // need to figure out if the SCC is idle. + // + if ( pui32ScardTxIdle == 0 ) + { + return AM_HAL_STATUS_SUCCESS; + } + + if ( SCARDn(ui32Module)->SR1_b.IDLE == 1 ) + { + *pui32ScardTxIdle = true; + } + else + { + *pui32ScardTxIdle = false; + } + return AM_HAL_STATUS_SUCCESS; +} + +//***************************************************************************** +// +// Interrupt enable. +// +//***************************************************************************** +uint32_t +am_hal_scard_interrupt_enable(void *pHandle, uint32_t ui32Index, uint32_t ui32IntMask) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( (!AM_HAL_SCARD_CHK_HANDLE(pHandle)) || (ui32Index > 1) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + if ( 0 == ui32Index ) + { + SCARDn(ui32Module)->IER |= ui32IntMask; + } + else + { + SCARDn(ui32Module)->IER1 |= ui32IntMask; + } + + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_interrupt_enable() + +//***************************************************************************** +// +// Interrupt disable. +// +//***************************************************************************** +uint32_t +am_hal_scard_interrupt_disable(void *pHandle, uint32_t ui32Index, uint32_t ui32IntMask) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( (!AM_HAL_SCARD_CHK_HANDLE(pHandle)) || (ui32Index > 1) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + if ( 0 == ui32Index ) + { + SCARDn(ui32Module)->IER &= ~ui32IntMask; + } + else + { + SCARDn(ui32Module)->IER1 &= ~ui32IntMask; + } + + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_interrupt_disable() + +//***************************************************************************** +// +// Interrupt clear. +// +//***************************************************************************** +uint32_t +am_hal_scard_interrupt_clear(void *pHandle, uint32_t ui32Index, uint32_t ui32IntMask) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( (!AM_HAL_SCARD_CHK_HANDLE(pHandle)) || (ui32Index > 1) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + if ( 0 == ui32Index ) + { + SCARDn(ui32Module)->SR = ui32IntMask; + } + else + { + SCARDn(ui32Module)->SR1 = ui32IntMask; + } + + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_interrupt_clear() + +//***************************************************************************** +// +// Returns the interrupt status. +// +//***************************************************************************** +uint32_t +am_hal_scard_interrupt_status_get(void *pHandle, uint32_t ui32Index, uint32_t *pui32Status) +{ + am_hal_scard_state_t *pState = (am_hal_scard_state_t *) pHandle; + uint32_t ui32Module = pState->ui32Module; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + // + // If requested, only return the interrupts that are enabled. + // + *pui32Status = ui32Index ? SCARDn(ui32Module)->SR1 : SCARDn(ui32Module)->SR; + + return AM_HAL_STATUS_SUCCESS; +} // am_hal_scard_interrupt_status_get() + + +//***************************************************************************** +// +//! @brief SCARD control function +//! +//! @param handle - handle for the SCARD. +//! @param eReq - device specific special request code. +//! @param pArgs - pointer to the request specific arguments. +//! +//! This function allows advanced settings +//! +//! @return status - generic or interface specific status. +// +//***************************************************************************** +uint32_t +am_hal_scard_control(void *pHandle, am_hal_scard_request_e eReq, void *pArgs) +{ + am_hal_scard_state_t *pSCCState = (am_hal_scard_state_t*)pHandle; + uint32_t status = AM_HAL_STATUS_SUCCESS; + +#ifndef AM_HAL_DISABLE_API_VALIDATION + if ( !AM_HAL_SCARD_CHK_HANDLE(pHandle) ) + { + return AM_HAL_STATUS_INVALID_HANDLE; + } + + // + // Validate the parameters + // + if ( eReq >= AM_HAL_SCARD_REQ_MAX ) + { + return AM_HAL_STATUS_INVALID_ARG; + } +#endif // AM_HAL_DISABLE_API_VALIDATION + + uint32_t ui32Module = pSCCState->ui32Module; + switch (eReq) + { + case AM_HAL_SCARD_REQ_ACTIVATE: + { + uint16_t etu; + etu = ((SCARDn(ui32Module)->BPRH & SCARD_BPRH_BPRH_Msk) << 8); + etu = etu | SCARDn(ui32Module)->BPRL; + etu = (SCARD_RST_LOW_TIME / etu) + 1; + + config_etucounter(ui32Module, etu); + SCARD_WHILE_TIMEOUT_MS(!SCARDn(ui32Module)->SR1_b.ECNTOVER, 1000, AM_HAL_SCARD_STATUS_BUS_ERROR); + SCARDn(ui32Module)->SR1_b.ECNTOVER = 1; + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->UCR_b.RSTIN = 1); + } + break; + case AM_HAL_SCARD_REQ_DEACTIVATE: + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->UCR_b.RSTIN = 0); + break; + case AM_HAL_SCARD_REQ_BAUDRATE: + if ( pArgs ) + { + config_baudrate(pHandle, *(uint32_t*)pArgs); + } + else + { + status = AM_HAL_STATUS_INVALID_ARG; + } + break; + case AM_HAL_SCARD_REQ_CARD_FORMAT: + if ( pArgs ) + { + config_cardformat(ui32Module, *(uint32_t*)pArgs); + } + else + { + status = AM_HAL_STATUS_INVALID_ARG; + } + break; + case AM_HAL_SCARD_REQ_PARITY: + if ( pArgs ) + { + config_parity(ui32Module, *(uint32_t*)pArgs); + } + else + { + status = AM_HAL_STATUS_INVALID_ARG; + } + break; + case AM_HAL_SCARD_REQ_PROTOCOL: + if ( pArgs ) + { + if ( AM_HAL_STATUS_SUCCESS != config_protocol(ui32Module, *(uint32_t*)pArgs) ) + { + status = AM_HAL_STATUS_INVALID_ARG; + } + } + else + { + status = AM_HAL_STATUS_INVALID_ARG; + } + break; + case AM_HAL_SCARD_REQ_GUARDTIME: + if ( pArgs ) + { + SCARDn(ui32Module)->GTR = *(uint32_t*)pArgs; + } + else + { + status = AM_HAL_STATUS_INVALID_ARG; + } + break; + case AM_HAL_SCARD_REQ_CLK_START: + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->UCR_b.CST = 0); + break; + case AM_HAL_SCARD_REQ_CLK_STOP: + SCARD_SYNC_OPER(ui32Module, SCARDn(ui32Module)->UCR_b.CST = 1); + break; + default: + status = AM_HAL_STATUS_INVALID_ARG; + } + + return status; +} + + diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.h new file mode 100644 index 00000000..65940365 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_scard.h @@ -0,0 +1,659 @@ +//***************************************************************************** +// +// am_hal_scard.h +//! @file +//! +//! @brief Functions for accessing and configuring the SCARD. +//! +//! @addtogroup SCARD +//! @ingroup apollo3hal +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Copyright (c) 2019, Ambiq Micro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// Third party software included in this distribution is subject to the +// additional license terms as defined in the /docs/licenses directory. +// +// 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. +// +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +// +//***************************************************************************** +#ifndef AM_HAL_SCARD_H +#define AM_HAL_SCARD_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// CMSIS-style macro for handling a variable SCARD module number. +// +//***************************************************************************** +#define SCARDn(n) ((SCARD_Type*)(SCARD_BASE + (n * (SCARD_BASE - SCARD_BASE)))) + +//***************************************************************************** +// +// Initial character TS +// +//***************************************************************************** +#define AM_HAL_SCARD_DIR_MSB 0x3F //(H)LHHL LLL LLH, state L encodes value 1, msb +#define AM_HAL_SCARD_DIR_LSB 0x3B //(H)LHHL HHH LLH, state H encodes value 1, lsb + +//***************************************************************************** +// +// Informations provided by T0 +// +//***************************************************************************** +#define AM_HAL_SCARD_T0_BIT_TA1_MASK (1 << 4) +#define AM_HAL_SCARD_T0_BIT_TB1_MASK (1 << 5) +#define AM_HAL_SCARD_T0_BIT_TC1_MASK (1 << 6) +#define AM_HAL_SCARD_T0_BIT_TD1_MASK (1 << 7) + +#define AM_HAL_SCARD_TA1_PRESENCE(T0) (((T0) & AM_HAL_SCARD_T0_BIT_TA1_MASK) == AM_HAL_SCARD_T0_BIT_TA1_MASK) +#define AM_HAL_SCARD_TB1_PRESENCE(T0) (((T0) & AM_HAL_SCARD_T0_BIT_TB1_MASK) == AM_HAL_SCARD_T0_BIT_TB1_MASK) +#define AM_HAL_SCARD_TC1_PRESENCE(T0) (((T0) & AM_HAL_SCARD_T0_BIT_TC1_MASK) == AM_HAL_SCARD_T0_BIT_TC1_MASK) +#define AM_HAL_SCARD_TD1_PRESENCE(T0) (((T0) & AM_HAL_SCARD_T0_BIT_TD1_MASK) == AM_HAL_SCARD_T0_BIT_TD1_MASK) + +#define AM_HAL_SCARD_HISTORY_LEN(T0) ((T0)&0x0F) + +//***************************************************************************** +// +// Protocol type T +// +//***************************************************************************** +#define AM_HAL_SCARD_PROTOCOL_T0 0 +#define AM_HAL_SCARD_PROTOCOL_T1 1 +#define AM_HAL_SCARD_PROTOCOL_T15 15 + +#define AM_HAL_SCARD_PROTOCOL_DEFAULT AM_HAL_SCARD_PROTOCOL_T0 + +//***************************************************************************** +// +// Structure and content of PPS request and PPS confirm +// +//***************************************************************************** +#define AM_HAL_SCARD_CLA_PPS 0xFF + +#define AM_HAL_SCARD_PPS1_PRESENCE(PPS0) (((PPS0) & (1 << 4)) == (1 << 4)) +#define AM_HAL_SCARD_PPS2_PRESENCE(PPS0) (((PPS0) & (1 << 5)) == (1 << 5)) +#define AM_HAL_SCARD_PPS3_PRESENCE(PPS0) (((PPS0) & (1 << 6)) == (1 << 6)) + +//***************************************************************************** +// +// Informations provided by TA1 +// +//***************************************************************************** +#define AM_HAL_SCARD_FI(TA1) (((TA1) >> 4) & 0x0F) +#define AM_HAL_SCARD_DI(TA1) (((TA1) >> 0) & 0x0F) + +#define AM_HAL_SCARD_FI_DI_DEFAULT 0x11 + +//***************************************************************************** +// +// Informations provided by TDi +// +//***************************************************************************** +#define AM_HAL_SCARD_TDi_BIT_TAiP1_MASK (1 << 4) +#define AM_HAL_SCARD_TDi_BIT_TBiP1_MASK (1 << 5) +#define AM_HAL_SCARD_TDi_BIT_TCiP1_MASK (1 << 6) +#define AM_HAL_SCARD_TDi_BIT_TDiP1_MASK (1 << 7) + +#define AM_HAL_SCARD_TAiP1_PRESENCE(TDi) (((TDi) & AM_HAL_SCARD_TDi_BIT_TAiP1_MASK) == AM_HAL_SCARD_TDi_BIT_TAiP1_MASK) +#define AM_HAL_SCARD_TBiP1_PRESENCE(TDi) (((TDi) & AM_HAL_SCARD_TDi_BIT_TBiP1_MASK) == AM_HAL_SCARD_TDi_BIT_TBiP1_MASK) +#define AM_HAL_SCARD_TCiP1_PRESENCE(TDi) (((TDi) & AM_HAL_SCARD_TDi_BIT_TCiP1_MASK) == AM_HAL_SCARD_TDi_BIT_TCiP1_MASK) +#define AM_HAL_SCARD_TDiP1_PRESENCE(TDi) (((TDi) & AM_HAL_SCARD_TDi_BIT_TDiP1_MASK) == AM_HAL_SCARD_TDi_BIT_TDiP1_MASK) + +#define AM_HAL_SCARD_PROTOCOL_TYPE(TDi) ((TDi) & 0x0F) + +#define AM_HAL_SCARD_MAX_ATR_LENGTH 33 //1+32 +#define AM_HAL_SCARD_MAX_PPS_LENGTH 6 +#define AM_HAL_SCARD_APDU_HEADER_LENGTH 5 +#define AM_HAL_SCARD_SW_LENGTH 2 + +//***************************************************************************** +// +// TypeDefs +// +//***************************************************************************** +typedef struct +{ + uint8_t pps0; + uint8_t pps1; + uint8_t pps2; + uint8_t pps3; +}am_hal_scard_pps_t; + +typedef struct +{ + uint8_t cla; + uint8_t ins; + uint8_t p1; + uint8_t p2; + uint8_t p3; +}am_hal_scard_header_t; + +typedef struct +{ + am_hal_scard_header_t header; + uint8_t data[256]; +}am_hal_scard_tpdu_t; + +typedef union +{ + struct + { + uint8_t s0; + uint8_t s1; + }element; + + uint16_t entirety; +}am_hal_scard_sw_t; + +typedef enum +{ + AM_HAL_SCARD_CONV_AUTO, + AM_HAL_SCARD_CONV_LSB_0X3B, + AM_HAL_SCARD_CONV_MSB_0X3F +}am_hal_scard_cardformat_e; + +typedef enum +{ + AM_HAL_SCARD_EVEN, + AM_HAL_SCARD_ODD +}am_hal_scard_parity_e; + +typedef enum +{ + AM_HAL_SCARD_APDU_CLA, + AM_HAL_SCARD_APDU_INS, + AM_HAL_SCARD_APDU_P1, + AM_HAL_SCARD_APDU_P2, + AM_HAL_SCARD_APDU_LC +}am_hal_scard_apdu_header_e; + +//***************************************************************************** +// +// Definitions +// +//***************************************************************************** +#define SCARD_RST_LOW_TIME 42000 + +#define AM_HAL_SCARD_PARITY_ENABLE 0x10 + +//***************************************************************************** +// +// SCARD configuration options. +// +//***************************************************************************** +typedef struct +{ + // + // Standard SCARD options. + // + uint32_t ui32Fidi; + uint32_t ui32Protocol; + uint32_t ui32Direction; + uint32_t ui32Parity; + uint32_t ui32GuardTime; + uint32_t ui32ClkLevel; + + // + // Timeouts + // + uint32_t ui32TxTimeout; + uint32_t ui32RxTimeout; + + // + // Buffers + // + uint8_t *pui8TxBuffer; + uint32_t ui32TxBufferSize; + uint8_t *pui8RxBuffer; + uint32_t ui32RxBufferSize; +} +am_hal_scard_config_t; + +typedef enum +{ + AM_HAL_SCARD_REQ_ACTIVATE = 0, + AM_HAL_SCARD_REQ_DEACTIVATE, + AM_HAL_SCARD_REQ_BAUDRATE, + AM_HAL_SCARD_REQ_CARD_FORMAT, + AM_HAL_SCARD_REQ_PARITY, + AM_HAL_SCARD_REQ_PROTOCOL, + AM_HAL_SCARD_REQ_GUARDTIME, + AM_HAL_SCARD_REQ_CLK_START, + AM_HAL_SCARD_REQ_CLK_STOP, + AM_HAL_SCARD_REQ_MAX +}am_hal_scard_request_e; + +//***************************************************************************** +// +// @brief SCARD transfer structure. +// +// This structure describes a SCARD transaction that can be performed by \e +// am_hal_scard_transfer() +// +//***************************************************************************** +typedef struct +{ + //! Determines whether data should be read or written. + //! + //! Should be either AM_HAL_SCARD_WRITE or AM_HAL_SCARD_READ + uint32_t ui32Direction; + + //! Pointer to data to be sent, or space to fill with received data. + uint8_t *pui8Data; + + //! Number of bytes to send or receive. + uint32_t ui32NumBytes; + + //! Timeout in milliseconds. + //! + //! Given a timeout value, the \e am_hal_scard_transfer() function will keep + //! trying to transfer data until either the number of bytes is satisfied, + //! or the time runs out. If provided with a value of zero, the transfer + //! function will only send as much data as it can immediately deal with. + //! If provided with a timeout value of \e AM_HAL_SCARD_WAIT_FOREVER, the + //! function will block until either the final "read" byte is received or + //! the final "write" byte is placed in the output buffer. + uint32_t ui32TimeoutMs; + + //! Number of bytes successfully transferred. + uint32_t *pui32BytesTransferred; +} +am_hal_scard_transfer_t; + +//***************************************************************************** +// +// Scard transfer options. +// +//***************************************************************************** +#define AM_HAL_SCARD_WRITE 1 +#define AM_HAL_SCARD_READ 0 +#define AM_HAL_SCARD_WAIT_MAX_TIME 0xFFFF +#define AM_HAL_SCARD_WAIT_FOREVER 0xFFFFFFFF +#define AM_HAL_SCARD_CLK_FREQ 3000000 + +//***************************************************************************** +// +// SCARD interrupts. +// +//***************************************************************************** +#define AM_HAL_SCARD_INT_FHFEN SCARD_IER_FHFEN_Msk +#define AM_HAL_SCARD_INT_FT2RENDEN SCARD_IER_FT2RENDEN_Msk +#define AM_HAL_SCARD_INT_PEEN SCARD_IER_PEEN_Msk +#define AM_HAL_SCARD_INT_OVREN SCARD_IER_OVREN_Msk +#define AM_HAL_SCARD_INT_FEREN SCARD_IER_FEREN_Msk +#define AM_HAL_SCARD_INT_TBERBFEN SCARD_IER_TBERBFEN_Msk +#define AM_HAL_SCARD_INT_FNEEN SCARD_IER_FNEEN_Msk +#define AM_HAL_SCARD_INT_SYNCENDEN SCARD_IER1_SYNCENDEN_Msk +#define AM_HAL_SCARD_INT_PRLEN SCARD_IER1_PRLEN_Msk +#define AM_HAL_SCARD_INT_ECNTOVEREN SCARD_IER1_ECNTOVEREN_Msk +#define AM_HAL_SCARD_INT_ALL 0xFFFFFFFF + +//***************************************************************************** +// +//! @name SCARD Status Register +//! @brief Macro definitions for SCARD Status Register Bits. +// +//***************************************************************************** +#define AM_HAL_SCARD_SR_TX_EMPTY (_VAL2FLD(SCARD_SR_TBERBF, 1)) +#define AM_HAL_SCARD_SR_RX_FULL (_VAL2FLD(SCARD_SR_TBERBF, 1)) +#define AM_HAL_SCARD_SR_RX_HALF_FULL (_VAL2FLD(SCARD_SR_FHF, 1)) +#define AM_HAL_SCARD_SR_RX_NOT_EMPTY (_VAL2FLD(SCARD_SR_FNE, 1)) +#define AM_HAL_SCARD_SR_FT2REND (_VAL2FLD(SCARD_SR_FT2REND, 1)) +#define AM_HAL_SCARD_SR_IDLE (_VAL2FLD(SCARD_SR1_IDLE, 1)) + +//***************************************************************************** +// +// SCC FIFO size for Apollo3. +// +//***************************************************************************** +#define AM_HAL_SCARD_FIFO_MAX 8 + +//***************************************************************************** +// +//! @brief Initialize the SCARD interface. +//! +//! @param ui32Module is the module number for the SCARD to initialize. +//! @param ppHandle is the location to write the SCARD handle. +//! +//! This function sets internal tracking variables associated with a specific +//! SCARD module. It should be the first SCARD API called for each SCARD module in +//! use. The handle can be used to interact with the SCARD +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_initialize(uint32_t ui32Module, void **ppHandle); + +//***************************************************************************** +// +//! @brief Deinitialize the SCARD interface. +//! +//! @param pHandle is a previously initialized SCARD handle. +//! +//! This function effectively disables future calls to interact with the SCARD +//! refered to by \e pHandle. The user may call this function if SCARD operation +//! is no longer desired. +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_deinitialize(void *pHandle); + +//***************************************************************************** +// +//! @brief Change the power state of the SCARD module. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param ePowerstate is the desired power state of the SCARD. +//! @parame bRetainState is a flag to ask the HAL to save SCARD registers. +//! +//! This function can be used to switch the power to the SCARD on or off. If \e +//! bRetainState is true during a powerdown operation, it will store the SCARD +//! configuration registers to SRAM, so it can restore them on power-up. +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_power_control(void *pHandle, + am_hal_sysctrl_power_state_e ePowerState, + bool bRetainState); + +//***************************************************************************** +// +//! @brief Used to configure basic SCARD settings. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param psConfig is a structure of SCARD configuration options. +//! +//! This function takes the options from an \e am_hal_scard_config_t structure, +//! and applies them to the SCARD referred to by \e pHandle. +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_configure(void *pHandle, + am_hal_scard_config_t *psConfig); + +//***************************************************************************** +// +//! @brief Transfer data through the SCARD interface. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param am_hal_scard_transfer_t is a structure describing the operation. +//! +//! This function executes a transaction as described by the \e +//! am_hal_scard_transfer_t structure. It can either read or write, and it will +//! take advantage of any buffer space provided by the \e +//! am_hal_scard_configure() function. +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_transfer(void *pHandle, + const am_hal_scard_transfer_t *pTransfer); + + +//***************************************************************************** +// +//! @brief Wait for the SCARD TX to become idle +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! +//! This function waits (polling) for all data in the SCARD TX FIFO and SCARD TX +//! buffer (if configured) to be fully sent on the physical SCARD interface. +//! This is not the most power-efficient way to wait for SCARD idle, but it can be +//! useful in simpler applications, or where power-efficiency is less important. +//! +//! Once this function returns, the SCARD can be safely disabled without +//! interfering with any previous transmissions. +//! +//! For a more power-efficient way to shut down the SCARD, check the +//! \e am_hal_scard_interrupt_service() function. +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_tx_flush(void *pHandle); + +//***************************************************************************** +// +//! @brief This function handles the SCARD buffers during SCARD interrupts. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param ui32Status is the interrupt status at the time of ISR entry. +//! @param pui32ScardTxIdle can be used to store the SCARD idle status. +//! +//! The main purpose of this function is to manage the SCARD buffer system. Any +//! buffers configured by \e am_hal_scard_buffer_configure will be managed by +//! this service routine. Data queued for transmit will be added to the SCARD TX +//! FIFO as space allows, and data stored in the SCARD RX FIFO will be copied +//! out and stored in the RX buffer. This function will skip this transfer for +//! any buffer that has not been configured. +//! +//! In addition, this function can be used to alert the caller when the SCARD +//! becomes idle via the optional \e pui32ScardTxIdle argument. This function +//! will set this variable any time it completes its operation and the SCARD TX +//! channel is no longer in use (including both the FIFO and any configured +//! buffer). +//! +//! For RTOS-enabled cases, this function does not necessarily need to be +//! called inside the actual ISR for the SCARD, but it should be called promptly +//! in response to the receipt of a SCARD TX, RX, or RX timeout interrupt. If +//! the service routine is not called quickly enough, the caller risks an RX +//! FIFO overflow (data can be lost here), or a TX FIFO underflow (usually not +//! harmful). +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_interrupt_service(void *pHandle, + uint32_t ui32Status, + uint32_t *pui32ScardTxIdle); + +//***************************************************************************** +// +//! @brief Enable interrupts. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param ui32IntMask is the bitmask of interrupts to enable. +//! +//! This function enables the SCARD interrupt(s) given by ui32IntMask. If +//! multiple interrupts are desired, they can be OR'ed together. +//! +//! @note This function need not be called for SCARD FIFO interrupts if the SCARD +//! buffer service provided by \e am_hal_scard_buffer_configure() and \e +//! am_hal_scard_interrupt_service() is already in use. Non-FIFO-related +//! interrupts do require the use of this function. +//! +//! The full list of interrupts is given by the following: +//! +//! @code +//! +//! AM_HAL_SCARD_INT_FHFEN +//! AM_HAL_SCARD_INT_FT2RENDEN +//! AM_HAL_SCARD_INT_PEEN +//! AM_HAL_SCARD_INT_OVREN +//! AM_HAL_SCARD_INT_FEREN +//! AM_HAL_SCARD_INT_TBERBFEN +//! AM_HAL_SCARD_INT_FNEEN +//! AM_HAL_SCARD_INT_SYNCENDEN +//! AM_HAL_SCARD_INT_PRLEN +//! AM_HAL_SCARD_INT_ECNTOVEREN +//! +//! @endcode +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_interrupt_enable(void *pHandle, uint32_t ui32Index, + uint32_t ui32IntMask); + +//***************************************************************************** +// +//! @brief Disable interrupts. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param ui32IntMask is the bitmask of interrupts to disable. +//! +//! This function disables the SCARD interrupt(s) given by ui32IntMask. If +//! multiple interrupts need to be disabled, they can be OR'ed together. +//! +//! @note This function need not be called for SCARD FIFO interrupts if the SCARD +//! buffer service provided by \e am_hal_scard_buffer_configure() and \e +//! am_hal_scard_interrupt_service() is already in use. Non-FIFO-related +//! interrupts do require the use of this function. +//! +//! The full list of interrupts is given by the following: +//! +//! @code +//! +//! AM_HAL_SCARD_INT_FHFEN +//! AM_HAL_SCARD_INT_FT2RENDEN +//! AM_HAL_SCARD_INT_PEEN +//! AM_HAL_SCARD_INT_OVREN +//! AM_HAL_SCARD_INT_FEREN +//! AM_HAL_SCARD_INT_TBERBFEN +//! AM_HAL_SCARD_INT_FNEEN +//! AM_HAL_SCARD_INT_SYNCENDEN +//! AM_HAL_SCARD_INT_PRLEN +//! AM_HAL_SCARD_INT_ECNTOVEREN +//! +//! @endcode +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_interrupt_disable(void *pHandle, uint32_t ui32Index, + uint32_t ui32IntMask); + +//***************************************************************************** +// +//! @brief Clear interrupt status. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! @param ui32IntMask is the bitmask of interrupts to clear. +//! +//! This function clears the SCARD interrupt(s) given by ui32IntMask. If +//! multiple interrupts need to be cleared, they can be OR'ed together. +//! +//! The full list of interrupts is given by the following: +//! +//! @code +//! +//! AM_HAL_SCARD_INT_FHFEN +//! AM_HAL_SCARD_INT_FT2RENDEN +//! AM_HAL_SCARD_INT_PEEN +//! AM_HAL_SCARD_INT_OVREN +//! AM_HAL_SCARD_INT_FEREN +//! AM_HAL_SCARD_INT_TBERBFEN +//! AM_HAL_SCARD_INT_FNEEN +//! AM_HAL_SCARD_INT_SYNCENDEN +//! AM_HAL_SCARD_INT_PRLEN +//! AM_HAL_SCARD_INT_ECNTOVEREN +//! +//! @endcode +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. +// +//***************************************************************************** +extern uint32_t am_hal_scard_interrupt_clear(void *pHandle, uint32_t ui32Index, + uint32_t ui32IntMask); + +//***************************************************************************** +// +//! @brief Read interrupt status. +//! +//! @param pHandle is the handle for the SCARD to operate on. +//! +//! @param pui32Status is the returned interrupt status (all bits OR'ed +//! together) +//! +//! @param bEnabled determines whether to read interrupts that were not +//! enabled. +//! +//! This function reads the status the SCARD interrupt(s) if \e bEnabled is +//! true, it will only return the status of the enabled interrupts. Otherwise, +//! it will return the status of all interrupts, enabled or disabled. +//! +//! The full list of interrupts is given by the following: +//! +//! @code +//! +//! AM_HAL_SCARD_INT_FHFEN +//! AM_HAL_SCARD_INT_FT2RENDEN +//! AM_HAL_SCARD_INT_PEEN +//! AM_HAL_SCARD_INT_OVREN +//! AM_HAL_SCARD_INT_FEREN +//! AM_HAL_SCARD_INT_TBERBFEN +//! AM_HAL_SCARD_INT_FNEEN +//! AM_HAL_SCARD_INT_SYNCENDEN +//! AM_HAL_SCARD_INT_PRLEN +//! AM_HAL_SCARD_INT_ECNTOVEREN +//! +//! @endcode +//! +//! @return AM_HAL_STATUS_SUCCESS or applicable SCARD errors. + +// +//***************************************************************************** +extern uint32_t am_hal_scard_interrupt_status_get(void *pHandle, uint32_t ui32Index, + uint32_t *pui32Status); + +extern uint32_t am_hal_scard_control(void *pHandle, am_hal_scard_request_e eReq, void *pArgs); + +typedef enum +{ + AM_HAL_SCARD_STATUS_BUS_ERROR = AM_HAL_STATUS_MODULE_SPECIFIC_START, + AM_HAL_SCARD_STATUS_RX_QUEUE_FULL, + AM_HAL_SCARD_STATUS_PROTOCAL_NOT_SUPPORT, +} +am_hal_scard_errors_t; + +#ifdef __cplusplus +} +#endif + +#endif // AM_HAL_SCARD_H + +//***************************************************************************** +// +// End Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.c index 7693450d..6d9f2a5c 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.h index 87a72c20..95f5ac2c 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_secure_ota.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.c index 291192f8..e0e7f44e 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include @@ -59,6 +59,11 @@ #define AM_HAL_SECURITY_LOCKSTAT_CUSTOMER 0x1 #define AM_HAL_SECURITY_LOCKSTAT_RECOVERY 0x40000000 +// Global declaration +// These are declared as ptr variables to avoid an issue with GCC reading from location 0x0. +const volatile uint32_t *g_pFlash0 = (uint32_t*)(AM_HAL_SBL_ADDRESS + 0); +const volatile uint32_t *g_pFlash4 = (uint32_t*)(AM_HAL_SBL_ADDRESS + 4); + //***************************************************************************** // //! @brief Hardcoded function - to Run supplied main program @@ -182,8 +187,8 @@ uint32_t am_hal_security_get_info(am_hal_security_info_t *pSecInfo) if (bSbl) { // Check if we're running pre-SBLv2 - flash0 = AM_REGVAL(AM_HAL_SBL_ADDRESS); - flash4 = AM_REGVAL(AM_HAL_SBL_ADDRESS + 4); + flash0 = *g_pFlash0; + flash4 = *g_pFlash4; // Check if SBL is installed if ((flash0 >> 24) != AM_IMAGE_MAGIC_SBL) { diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.h index 700016ca..ac393af5 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_security.h @@ -45,15 +45,29 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_SECURITY_H #define AM_HAL_SECURITY_H +// // Location of SBL install address for this device -#define AM_HAL_SBL_ADDRESS 0 +// +// Important Note: +// Some caution should be observed when using AM_HAL_SBL_ADDRESS as an address. +// GCC considers use of this address to be a NULL pointer. When compiled with +// high optimization (-O3) and used to read the location with, for example, +// code such as *((volatile uint32_t *)(AM_HAL_SBL_ADDRESS)), GCC will insert +// an instruction it calls "UDF" (undefined), op-code 0xDEFF, which will cause +// a fault on execution to trap the "invalid" null-ptr usage. +// This does not appear to be an issue with IAR and Keil ARM5. +// It is likely an issue with Keil ARM6. +// +#define AM_HAL_SBL_ADDRESS 0x00000000 + + typedef struct { diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_status.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_status.h index 4f5a3f8b..f32d3b31 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_status.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_status.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_STATUS_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.c index 2a536401..de81036e 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.h index 74994ed4..b43bdbae 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_stimer.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_STIMER_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.c index e5b47ced..db660803 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.h index d245a6d8..4485ad27 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_sysctrl.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_SYSCTRL_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.c index 9ee4f8f3..4193a88a 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.h index 31d0032b..b8d51e35 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_systick.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_SYSTICK_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.c index 7119eaf2..1bf16b65 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.c @@ -47,7 +47,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.h index f37c0669..7ed1a1cc 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_tpiu.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_TPIU_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.c index 789114f0..c9bb9c0a 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.h index 9b5816b3..02d5692f 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_uart.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_UART_H @@ -133,7 +133,7 @@ am_hal_uart_transfer_t; //***************************************************************************** // -// Maximum baudrate supported is 921600 for Apollo3-A1 and 1.5Mbaud for +// Maximum baudrate supported is 921600 for Apollo3-A1 and 1.5Mbaud for // Apollo3-B0. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.c b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.c index 74688ba7..6d9a24b7 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.c +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.c @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.h index bf85b875..eb122e01 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/am_hal_wdt.h @@ -45,7 +45,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_HAL_WDT_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/Makefile b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/Makefile new file mode 100644 index 00000000..135b8591 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/Makefile @@ -0,0 +1,178 @@ +#****************************************************************************** +# +# Makefile - Rules for building the libraries, examples and docs. +# +# Copyright (c) 2019, Ambiq Micro +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# Third party software included in this distribution is subject to the +# additional license terms as defined in the /docs/licenses directory. +# +# 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. +# +# This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +# +#****************************************************************************** +TARGET := libam_hal +COMPILERNAME := gcc +PROJECT := libam_hal_gcc +CONFIG := bin + +SHELL:=/bin/bash +#### Setup #### + +TOOLCHAIN ?= arm-none-eabi +PART = apollo3 +CPU = cortex-m4 +FPU = fpv4-sp-d16 +# Default to FPU hardware calling convention. However, some customers and/or +# applications may need the software calling convention. +#FABI = softfp +FABI = hard + +#### Required Executables #### +CC = $(TOOLCHAIN)-gcc +GCC = $(TOOLCHAIN)-gcc +CPP = $(TOOLCHAIN)-cpp +LD = $(TOOLCHAIN)-ld +CP = $(TOOLCHAIN)-objcopy +OD = $(TOOLCHAIN)-objdump +RD = $(TOOLCHAIN)-readelf +AR = $(TOOLCHAIN)-ar +SIZE = $(TOOLCHAIN)-size +RM = $(shell which rm 2>/dev/null) + +EXECUTABLES = CC LD CP OD AR RD SIZE GCC +K := $(foreach exec,$(EXECUTABLES),\ + $(if $(shell which $($(exec)) 2>/dev/null),,\ + $(info $(exec) not found on PATH ($($(exec))).)$(exec))) +$(if $(strip $(value K)),$(info Required Program(s) $(strip $(value K)) not found)) + +ifneq ($(strip $(value K)),) +all clean: + $(info Tools $(TOOLCHAIN)-$(COMPILERNAME) not installed.) + $(RM) -rf bin +else + +DEFINES = -DAM_ASSERT_INVALID_THRESHOLD=0 +DEFINES+= -DAM_PART_APOLLO3 +DEFINES+= -DAM_DEBUG_ASSERT + +INCLUDES = -I../../../../mcu/apollo3 +INCLUDES+= -I../../../../CMSIS/AmbiqMicro/Include +INCLUDES+= -I../../../../CMSIS/ARM/Include + +VPATH = .. + +SRC = am_hal_adc.c +SRC += am_hal_ble.c +SRC += am_hal_ble_patch.c +SRC += am_hal_ble_patch_b0.c +SRC += am_hal_burst.c +SRC += am_hal_cachectrl.c +SRC += am_hal_clkgen.c +SRC += am_hal_cmdq.c +SRC += am_hal_ctimer.c +SRC += am_hal_debug.c +SRC += am_hal_flash.c +SRC += am_hal_global.c +SRC += am_hal_gpio.c +SRC += am_hal_interrupt.c +SRC += am_hal_iom.c +SRC += am_hal_ios.c +SRC += am_hal_itm.c +SRC += am_hal_mcuctrl.c +SRC += am_hal_mspi.c +SRC += am_hal_pdm.c +SRC += am_hal_pwrctrl.c +SRC += am_hal_queue.c +SRC += am_hal_reset.c +SRC += am_hal_rtc.c +SRC += am_hal_scard.c +SRC += am_hal_secure_ota.c +SRC += am_hal_security.c +SRC += am_hal_stimer.c +SRC += am_hal_sysctrl.c +SRC += am_hal_systick.c +SRC += am_hal_tpiu.c +SRC += am_hal_uart.c +SRC += am_hal_wdt.c + +CSRC = $(filter %.c,$(SRC)) +ASRC = $(filter %.s,$(SRC)) + +OBJS = $(CSRC:%.c=$(CONFIG)/%.o) +OBJS+= $(ASRC:%.s=$(CONFIG)/%.o) + +DEPS = $(CSRC:%.c=$(CONFIG)/%.d) +DEPS+= $(ASRC:%.s=$(CONFIG)/%.d) + +CFLAGS = -mthumb -mcpu=$(CPU) -mfpu=$(FPU) -mfloat-abi=$(FABI) +CFLAGS+= -ffunction-sections -fdata-sections +CFLAGS+= -MMD -MP -std=c99 -Wall +# Libraries O3 for production, examples O0 for debug. +CFLAGS+= -O3 +CFLAGS+= $(DEFINES) +CFLAGS+= $(INCLUDES) +CFLAGS+= + +# Additional user specified CFLAGS +CFLAGS+=$(EXTRA_CFLAGS) + +ODFLAGS = -S + +#### Rules #### +all: directories $(CONFIG)/$(TARGET).a + +directories: $(CONFIG) + +$(CONFIG): + @mkdir -p $@ + +$(CONFIG)/%.o: %.c $(CONFIG)/%.d $(INCS) + @echo " Compiling $(COMPILERNAME) $<" ;\ + $(CC) -c $(CFLAGS) $< -o $@ + +$(CONFIG)/%.o: %.s $(CONFIG)/%.d $(INCS) + @echo " Assembling $(COMPILERNAME) $<" ;\ + $(CC) -c $(CFLAGS) $< -o $@ + +$(CONFIG)/$(TARGET).a: $(OBJS) + @echo " Library $(COMPILERNAME) $@" ;\ + $(AR) rsvc $@ $(OBJS) + +clean: + @echo "Cleaning..." ;\ + $(RM) -f $(OBJS) $(DEPS) \ + $(CONFIG)/$(TARGET).a + +$(CONFIG)/%.d: ; + +# Automatically include any generated dependencies +-include $(DEPS) +endif +.PHONY: all clean directories diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/bin/libam_hal.a b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/gcc/bin/libam_hal.a new file mode 100644 index 0000000000000000000000000000000000000000..b844b30290ae73a706025b912bdb78cb3dc463ae GIT binary patch literal 191472 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 literal 0 HcmV?d00001 diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/Makefile b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/Makefile new file mode 100644 index 00000000..ddff39c6 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/Makefile @@ -0,0 +1,112 @@ +#****************************************************************************** +# +# Makefile - Rules for building the libraries, examples and docs. +# +# Copyright (c) 2019, Ambiq Micro +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# Third party software included in this distribution is subject to the +# additional license terms as defined in the /docs/licenses directory. +# +# 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. +# +# This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +# +#****************************************************************************** +TARGET := libam_hal +COMPILERNAME := iar +PROJECT := libam_hal_iar +CONFIG := bin +AM_SoftwareRoot ?= ../../.. + +SHELL:=/bin/bash +#### Required Executables #### +K := $(shell type -p IarBuild.exe) +RM = $(shell which rm 2>/dev/null) + +ifeq ($(K),) +all clean: + $(info Tools w/$(COMPILERNAME) not installed.) + $(RM) -rf bin +else + +LIBS = ${libraries} +INCS = ${incs} + +all: directories $(CONFIG)/$(TARGET).a + +# Source Dependencies must be defined before they are used. +SRCS = .././am_hal_adc.c +SRCS += .././am_hal_ble.c +SRCS += .././am_hal_ble_patch.c +SRCS += .././am_hal_ble_patch_b0.c +SRCS += .././am_hal_burst.c +SRCS += .././am_hal_cachectrl.c +SRCS += .././am_hal_clkgen.c +SRCS += .././am_hal_cmdq.c +SRCS += .././am_hal_ctimer.c +SRCS += .././am_hal_debug.c +SRCS += .././am_hal_flash.c +SRCS += .././am_hal_global.c +SRCS += .././am_hal_gpio.c +SRCS += .././am_hal_interrupt.c +SRCS += .././am_hal_iom.c +SRCS += .././am_hal_ios.c +SRCS += .././am_hal_itm.c +SRCS += .././am_hal_mcuctrl.c +SRCS += .././am_hal_mspi.c +SRCS += .././am_hal_pdm.c +SRCS += .././am_hal_pwrctrl.c +SRCS += .././am_hal_queue.c +SRCS += .././am_hal_reset.c +SRCS += .././am_hal_rtc.c +SRCS += .././am_hal_scard.c +SRCS += .././am_hal_secure_ota.c +SRCS += .././am_hal_security.c +SRCS += .././am_hal_stimer.c +SRCS += .././am_hal_sysctrl.c +SRCS += .././am_hal_systick.c +SRCS += .././am_hal_tpiu.c +SRCS += .././am_hal_uart.c +SRCS += .././am_hal_wdt.c + +$(CONFIG)/$(TARGET).a: $(LIBS) $(INCS) $(SRCS) + IarBuild.exe libam_hal.ewp -make Debug -log info + +directories: $(CONFIG) + +$(CONFIG): + @mkdir -p $@ + +# BSP's need this. + +clean: + @echo Cleaning... ;\ + IarBuild.exe libam_hal.ewp -clean Debug -log all + +endif +.PHONY: all clean directories diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/bin/libam_hal.a b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/bin/libam_hal.a new file mode 100644 index 0000000000000000000000000000000000000000..e3b44d43e19b2d4ec916a5313cf0a088bd8d863b GIT binary patch literal 318836 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 DMcG1s literal 0 HcmV?d00001 diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewd b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewd new file mode 100644 index 00000000..b0207438 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewd @@ -0,0 +1,2810 @@ + + + 3 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 28 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewp b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewp new file mode 100644 index 00000000..e85961bd --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.ewp @@ -0,0 +1,2135 @@ + + + 3 + + Debug + + ARM + + 1 + + General + 3 + + 28 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 28 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + $PROJ_DIR$\..\am_hal_adc.c + + + $PROJ_DIR$\..\am_hal_ble.c + + + $PROJ_DIR$\..\am_hal_ble_patch.c + + + $PROJ_DIR$\..\am_hal_ble_patch_b0.c + + + $PROJ_DIR$\..\am_hal_burst.c + + + $PROJ_DIR$\..\am_hal_cachectrl.c + + + $PROJ_DIR$\..\am_hal_clkgen.c + + + $PROJ_DIR$\..\am_hal_cmdq.c + + + $PROJ_DIR$\..\am_hal_ctimer.c + + + $PROJ_DIR$\..\am_hal_debug.c + + + $PROJ_DIR$\..\am_hal_flash.c + + + $PROJ_DIR$\..\am_hal_global.c + + + $PROJ_DIR$\..\am_hal_gpio.c + + + $PROJ_DIR$\..\am_hal_interrupt.c + + + $PROJ_DIR$\..\am_hal_iom.c + + + $PROJ_DIR$\..\am_hal_ios.c + + + $PROJ_DIR$\..\am_hal_itm.c + + + $PROJ_DIR$\..\am_hal_mcuctrl.c + + + $PROJ_DIR$\..\am_hal_mspi.c + + + $PROJ_DIR$\..\am_hal_pdm.c + + + $PROJ_DIR$\..\am_hal_pwrctrl.c + + + $PROJ_DIR$\..\am_hal_queue.c + + + $PROJ_DIR$\..\am_hal_reset.c + + + $PROJ_DIR$\..\am_hal_rtc.c + + + $PROJ_DIR$\..\am_hal_scard.c + + + $PROJ_DIR$\..\am_hal_secure_ota.c + + + $PROJ_DIR$\..\am_hal_security.c + + + $PROJ_DIR$\..\am_hal_stimer.c + + + $PROJ_DIR$\..\am_hal_sysctrl.c + + + $PROJ_DIR$\..\am_hal_systick.c + + + $PROJ_DIR$\..\am_hal_tpiu.c + + + $PROJ_DIR$\..\am_hal_uart.c + + + $PROJ_DIR$\..\am_hal_wdt.c + + diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.eww b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.eww new file mode 100644 index 00000000..ad7baed9 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/iar/libam_hal.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\libam_hal.ewp + + + + + diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/Makefile b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/Makefile new file mode 100644 index 00000000..062deaac --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/Makefile @@ -0,0 +1,115 @@ +#****************************************************************************** +# +# Makefile - Rules for building the libraries, examples and docs. +# +# Copyright (c) 2019, Ambiq Micro +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# Third party software included in this distribution is subject to the +# additional license terms as defined in the /docs/licenses directory. +# +# 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. +# +# This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +# +#****************************************************************************** +TARGET := libam_hal +COMPILERNAME := Keil +PROJECT := libam_hal_Keil +CONFIG := bin +AM_SoftwareRoot ?= ../../../.. + +SHELL:=/bin/bash +#### Required Executables #### +K := $(shell type -p UV4.exe) +RM := $(shell which rm 2>/dev/null) + +ifeq ($(K),) +all clean: + $(info Tools w/$(COMPILERNAME) not installed.) + $(RM) -rf bin +else + +LIBS = +INCS = ../../../../mcu/apollo3 +INCS+= ../../../../CMSIS/AmbiqMicro/Include +INCS+= ../../../../CMSIS/ARM/Include + +all: directories $(CONFIG)/$(TARGET).lib + +# Source Dependencies must be defined before they are used. +SRCS = .././am_hal_adc.c +SRCS += .././am_hal_ble.c +SRCS += .././am_hal_ble_patch.c +SRCS += .././am_hal_ble_patch_b0.c +SRCS += .././am_hal_burst.c +SRCS += .././am_hal_cachectrl.c +SRCS += .././am_hal_clkgen.c +SRCS += .././am_hal_cmdq.c +SRCS += .././am_hal_ctimer.c +SRCS += .././am_hal_debug.c +SRCS += .././am_hal_flash.c +SRCS += .././am_hal_global.c +SRCS += .././am_hal_gpio.c +SRCS += .././am_hal_interrupt.c +SRCS += .././am_hal_iom.c +SRCS += .././am_hal_ios.c +SRCS += .././am_hal_itm.c +SRCS += .././am_hal_mcuctrl.c +SRCS += .././am_hal_mspi.c +SRCS += .././am_hal_pdm.c +SRCS += .././am_hal_pwrctrl.c +SRCS += .././am_hal_queue.c +SRCS += .././am_hal_reset.c +SRCS += .././am_hal_rtc.c +SRCS += .././am_hal_scard.c +SRCS += .././am_hal_secure_ota.c +SRCS += .././am_hal_security.c +SRCS += .././am_hal_stimer.c +SRCS += .././am_hal_sysctrl.c +SRCS += .././am_hal_systick.c +SRCS += .././am_hal_tpiu.c +SRCS += .././am_hal_uart.c +SRCS += .././am_hal_wdt.c + +$(CONFIG)/$(TARGET).lib: $(LIBS) $(INCS) $(SRCS) + UV4.exe -b -t "libam_hal" libam_hal.uvprojx -j0 || [ $$? -eq 1 ] + +directories: $(CONFIG) + +$(CONFIG): + @mkdir -p $@ + +# BSP's need this. + +clean: + @echo Cleaning... ;\ + $(RM) -rf $(CONFIG) + +endif +.PHONY: all clean directories + diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/bin/libam_hal.lib b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/bin/libam_hal.lib new file mode 100644 index 0000000000000000000000000000000000000000..769ca91cb9cd563fab95d5b1b6c98e5d6affa5b7 GIT binary patch literal 383724 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∋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 + + + 1.0 + +

### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + libam_hal + 0x4 + ARM-ADS + + 48000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 3 + + + + + + + + + + .\Dbg_RAM.ini + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U483027775 -O2510 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO1 -TC3000000 -TP21 -TDS2 -TDT0 -TDC1F -TIE1 -TIP0 -TB1 -TFE0 -FO7 -FD10000000 -FC4000 -FN1 -FF0Apollo3.FLM -FS00 -FL0100000 -FP0($$Device:AMA3B1KK-KBR$Flash\Apollo3.FLM) + + + 0 + DbgCM + -U-O206 -O206 -S2 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO1 -TC3000000 -TP21 -TDS2 -TDT0 -TDC1F -TIE1 -TIP8 -FO7 -FD10000000 -FC4000 -FN1 -FF0Apollo -FS00 -FL080000 + + + 0 + UL2CM3 + -UV0264NGE -O2510 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO1 -TC3000000 -TP21 -TDS8002 -TDT0 -TDC1F -TIE1 -TIP8 -FO7 -FD10000000 -FC4000 -FN1 -FF0Apollo3.FLM -FS00 -FL0100000 -FP0($$Device:AMA3B1KK-KBR$Flash\Apollo3.FLM) + + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + + 0 + + + 0 + 0 + 0 + + + + + source_files + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_adc.c + am_hal_adc.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_ble.c + am_hal_ble.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_ble_patch.c + am_hal_ble_patch.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_ble_patch_b0.c + am_hal_ble_patch_b0.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_burst.c + am_hal_burst.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_cachectrl.c + am_hal_cachectrl.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_clkgen.c + am_hal_clkgen.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_cmdq.c + am_hal_cmdq.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_ctimer.c + am_hal_ctimer.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_debug.c + am_hal_debug.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_flash.c + am_hal_flash.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_global.c + am_hal_global.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_gpio.c + am_hal_gpio.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_interrupt.c + am_hal_interrupt.c + 0 + 0 + + + 1 + 15 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_iom.c + am_hal_iom.c + 0 + 0 + + + 1 + 16 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_ios.c + am_hal_ios.c + 0 + 0 + + + 1 + 17 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_itm.c + am_hal_itm.c + 0 + 0 + + + 1 + 18 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_mcuctrl.c + am_hal_mcuctrl.c + 0 + 0 + + + 1 + 19 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_mspi.c + am_hal_mspi.c + 0 + 0 + + + 1 + 20 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_pdm.c + am_hal_pdm.c + 0 + 0 + + + 1 + 21 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_pwrctrl.c + am_hal_pwrctrl.c + 0 + 0 + + + 1 + 22 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_queue.c + am_hal_queue.c + 0 + 0 + + + 1 + 23 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_reset.c + am_hal_reset.c + 0 + 0 + + + 1 + 24 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_rtc.c + am_hal_rtc.c + 0 + 0 + + + 1 + 25 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_scard.c + am_hal_scard.c + 0 + 0 + + + 1 + 26 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_secure_ota.c + am_hal_secure_ota.c + 0 + 0 + + + 1 + 27 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_security.c + am_hal_security.c + 0 + 0 + + + 1 + 28 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_stimer.c + am_hal_stimer.c + 0 + 0 + + + 1 + 29 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_sysctrl.c + am_hal_sysctrl.c + 0 + 0 + + + 1 + 30 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_systick.c + am_hal_systick.c + 0 + 0 + + + 1 + 31 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_tpiu.c + am_hal_tpiu.c + 0 + 0 + + + 1 + 32 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_uart.c + am_hal_uart.c + 0 + 0 + + + 1 + 33 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .././am_hal_wdt.c + am_hal_wdt.c + 0 + 0 + + + + + diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/libam_hal.uvprojx b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/libam_hal.uvprojx new file mode 100644 index 00000000..072f31eb --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/hal/keil/libam_hal.uvprojx @@ -0,0 +1,566 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + libam_hal + 0x4 + ARM-ADS + + + + AMA3B1KK-KBR + Ambiq Micro + AmbiqMicro.Apollo_DFP.1.1.0 + http://s3.asia.ambiqmicro.com/pack/ + IROM(0x00000000,0x100000) IRAM(0x10000000,0x60000) CPUTYPE("Cortex-M4") FPU2 CLOCK(48000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD10000000 -FC4000 -FN1 -FF0Apollo3 -FS00 -FL010000 -FP0($$Device:AMA3B1KK-KBR$Flash\Apollo3.FLM)) + 0 + + + + + + + + + + + $$Device:AMA3B1KK-KBR$SVD\apollo3.svd + 0 + 0 + + + + 1024 BGA$Device\Include\apollo3.h\ + 1024 BGA$Device\Include\apollo3.h\ + + 0 + 0 + 0 + 0 + 1 + + .\bin\ + libam_hal + 0 + 1 + 0 + 0 + 1 + .\Listings\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + fromelf --bin --output bin\libam_hal.bin bin\libam_hal.axf + fromelf -cedrst --output bin\libam_hal.txt bin\libam_hal.axf + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x10000000 + 0x60000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x10000000 + 0x60000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + AM_ASSERT_INVALID_THRESHOLD=0 AM_PART_APOLLO3 AM_DEBUG_ASSERT keil + + ../../../../mcu/apollo3;../../../../CMSIS/AmbiqMicro/Include;../../../../CMSIS/ARM/Include + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x0 + 0x10000000 + + + + + + + + + + + + + source_files + + + am_hal_adc.c + 1 + ../am_hal_adc.c + + + am_hal_ble.c + 1 + ../am_hal_ble.c + + + am_hal_ble_patch.c + 1 + ../am_hal_ble_patch.c + + + am_hal_ble_patch_b0.c + 1 + ../am_hal_ble_patch_b0.c + + + am_hal_burst.c + 1 + ../am_hal_burst.c + + + am_hal_cachectrl.c + 1 + ../am_hal_cachectrl.c + + + am_hal_clkgen.c + 1 + ../am_hal_clkgen.c + + + am_hal_cmdq.c + 1 + ../am_hal_cmdq.c + + + am_hal_ctimer.c + 1 + ../am_hal_ctimer.c + + + am_hal_debug.c + 1 + ../am_hal_debug.c + + + am_hal_flash.c + 1 + ../am_hal_flash.c + + + am_hal_global.c + 1 + ../am_hal_global.c + + + am_hal_gpio.c + 1 + ../am_hal_gpio.c + + + am_hal_interrupt.c + 1 + ../am_hal_interrupt.c + + + am_hal_iom.c + 1 + ../am_hal_iom.c + + + am_hal_ios.c + 1 + ../am_hal_ios.c + + + am_hal_itm.c + 1 + ../am_hal_itm.c + + + am_hal_mcuctrl.c + 1 + ../am_hal_mcuctrl.c + + + am_hal_mspi.c + 1 + ../am_hal_mspi.c + + + am_hal_pdm.c + 1 + ../am_hal_pdm.c + + + am_hal_pwrctrl.c + 1 + ../am_hal_pwrctrl.c + + + am_hal_queue.c + 1 + ../am_hal_queue.c + + + am_hal_reset.c + 1 + ../am_hal_reset.c + + + am_hal_rtc.c + 1 + ../am_hal_rtc.c + + + am_hal_scard.c + 1 + ../am_hal_scard.c + + + am_hal_secure_ota.c + 1 + ../am_hal_secure_ota.c + + + am_hal_security.c + 1 + ../am_hal_security.c + + + am_hal_stimer.c + 1 + ../am_hal_stimer.c + + + am_hal_sysctrl.c + 1 + ../am_hal_sysctrl.c + + + am_hal_systick.c + 1 + ../am_hal_systick.c + + + am_hal_tpiu.c + 1 + ../am_hal_tpiu.c + + + am_hal_uart.c + 1 + ../am_hal_uart.c + + + am_hal_wdt.c + 1 + ../am_hal_wdt.c + + + + + lib + + + + + + + + + + + + + + +
+ diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg.h new file mode 100644 index 00000000..2971bb2c --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg.h @@ -0,0 +1,281 @@ +//***************************************************************************** +// +// am_reg.h +//! @file +//! +//! @brief Apollo4 register macros +// +//***************************************************************************** + +//***************************************************************************** +// +// Copyright (c) 2019, Ambiq Micro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// Third party software included in this distribution is subject to the +// additional license terms as defined in the /docs/licenses directory. +// +// 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. +// +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +// +//***************************************************************************** +#ifndef AM_REG_H +#define AM_REG_H + +//***************************************************************************** +// +// ADC +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_ADC_NUM_MODULES 1 +#define AM_REG_ADCn(n) \ + (REG_ADC_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// APBDMA +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_APBDMA_NUM_MODULES 1 +#define AM_REG_APBDMAn(n) \ + (REG_APBDMA_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// BLEIF +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_BLEIF_NUM_MODULES 1 +#define AM_REG_BLEIFn(n) \ + (REG_BLEIF_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// CACHECTRL +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_CACHECTRL_NUM_MODULES 1 +#define AM_REG_CACHECTRLn(n) \ + (REG_CACHECTRL_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// CLKGEN +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_CLKGEN_NUM_MODULES 1 +#define AM_REG_CLKGENn(n) \ + (REG_CLKGEN_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// CTIMER +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_CTIMER_NUM_MODULES 1 +#define AM_REG_CTIMERn(n) \ + (REG_CTIMER_BASEADDR + 0x00000020 * n) + + +//***************************************************************************** +// +// FLASHCTRL +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_FLASHCTRL_NUM_MODULES 1 +#define AM_REG_FLASHCTRLn(n) \ + (REG_FLASHCTRL_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// GPIO +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_GPIO_NUM_MODULES 1 +#define AM_REG_GPIOn(n) \ + (REG_GPIO_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// IOM +// Instance finder. (6 instance(s) available) +// +//***************************************************************************** +#define AM_REG_IOM_NUM_MODULES 6 +#define AM_REG_IOMn(n) \ + (REG_IOM_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// IOSLAVE +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_IOSLAVE_NUM_MODULES 1 +#define AM_REG_IOSLAVEn(n) \ + (REG_IOSLAVE_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// MCUCTRL +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_MCUCTRL_NUM_MODULES 1 +#define AM_REG_MCUCTRLn(n) \ + (REG_MCUCTRL_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// MSPI +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_MSPI_NUM_MODULES 1 +#define AM_REG_MSPIn(n) \ + (REG_MSPI_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// PDM +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_PDM_NUM_MODULES 1 +#define AM_REG_PDMn(n) \ + (REG_PDM_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// PWRCTRL +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_PWRCTRL_NUM_MODULES 1 +#define AM_REG_PWRCTRLn(n) \ + (REG_PWRCTRL_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// RSTGEN +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_RSTGEN_NUM_MODULES 1 +#define AM_REG_RSTGENn(n) \ + (REG_RSTGEN_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// RTC +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_RTC_NUM_MODULES 1 +#define AM_REG_RTCn(n) \ + (REG_RTC_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// SCARD +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_SCARD_NUM_MODULES 1 +#define AM_REG_SCARDn(n) \ + (REG_SCARD_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// SECURITY +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_SECURITY_NUM_MODULES 1 +#define AM_REG_SECURITYn(n) \ + (REG_SECURITY_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// UART +// Instance finder. (2 instance(s) available) +// +//***************************************************************************** +#define AM_REG_UART_NUM_MODULES 2 +#define AM_REG_UARTn(n) \ + (REG_UART_BASEADDR + 0x00001000 * n) + + +//***************************************************************************** +// +// VCOMP +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_VCOMP_NUM_MODULES 1 +#define AM_REG_VCOMPn(n) \ + (REG_VCOMP_BASEADDR + 0x00000000 * n) + + +//***************************************************************************** +// +// WDT +// Instance finder. (1 instance(s) available) +// +//***************************************************************************** +#define AM_REG_WDT_NUM_MODULES 1 +#define AM_REG_WDTn(n) \ + (REG_WDT_BASEADDR + 0x00000000 * n) + + +#endif // AM_REG_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_adc.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_adc.h deleted file mode 100644 index e31c1a47..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_adc.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// ADC -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_ADC_NUM_MODULES 1 -#define AM_REG_ADCn(n) \ - (REG_ADC_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_apbdma.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_apbdma.h deleted file mode 100644 index 1c5b680f..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_apbdma.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// APBDMA -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_APBDMA_NUM_MODULES 1 -#define AM_REG_APBDMAn(n) \ - (REG_APBDMA_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_base_addresses.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_base_addresses.h index c48d0d9e..2e674a06 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_base_addresses.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_base_addresses.h @@ -41,7 +41,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_REG_BASE_ADDRESSES_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_bleif.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_bleif.h deleted file mode 100644 index 05220e2a..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_bleif.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// BLEIF -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_BLEIF_NUM_MODULES 1 -#define AM_REG_BLEIFn(n) \ - (REG_BLEIF_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_cachectrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_cachectrl.h deleted file mode 100644 index c6580067..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_cachectrl.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// CACHECTRL -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_CACHECTRL_NUM_MODULES 1 -#define AM_REG_CACHECTRLn(n) \ - (REG_CACHECTRL_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_clkgen.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_clkgen.h deleted file mode 100644 index dc5f4054..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_clkgen.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// CLKGEN -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_CLKGEN_NUM_MODULES 1 -#define AM_REG_CLKGENn(n) \ - (REG_CLKGEN_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ctimer.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ctimer.h deleted file mode 100644 index 54710ea2..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ctimer.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// CTIMER -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_CTIMER_NUM_MODULES 1 -#define AM_REG_CTIMERn(n) \ - (REG_CTIMER_BASEADDR + 0x00000020 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_flashctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_flashctrl.h deleted file mode 100644 index f9ffa79f..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_flashctrl.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// FLASHCTRL -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_FLASHCTRL_NUM_MODULES 1 -#define AM_REG_FLASHCTRLn(n) \ - (REG_FLASHCTRL_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_gpio.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_gpio.h deleted file mode 100644 index a9be5699..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_gpio.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// GPIO -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_GPIO_NUM_MODULES 1 -#define AM_REG_GPIOn(n) \ - (REG_GPIO_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iom.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iom.h deleted file mode 100644 index 304dc6ac..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iom.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// IOM -// Instance finder. (6 instance(s) available) -// -//***************************************************************************** -#define AM_REG_IOM_NUM_MODULES 6 -#define AM_REG_IOMn(n) \ - (REG_IOM_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iomstr_cmd.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iomstr_cmd.h index 857ad614..12e6fb65 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iomstr_cmd.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_iomstr_cmd.h @@ -41,7 +41,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_REG_IOMSTR_CMD_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ioslave.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ioslave.h deleted file mode 100644 index 44a2f0fa..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_ioslave.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// IOSLAVE -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_IOSLAVE_NUM_MODULES 1 -#define AM_REG_IOSLAVEn(n) \ - (REG_IOSLAVE_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_itm.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_itm.h deleted file mode 100644 index f71bb15a..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_itm.h +++ /dev/null @@ -1,16 +0,0 @@ -//***************************************************************************** -// -// ITM -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_ITM_NUM_MODULES 1 -#define AM_REG_ITMn(n) \ - (REG_ITM_BASEADDR + 0x00000000 * n) - -//***************************************************************************** -// -// CMSIS-style defines. -// -//***************************************************************************** -#define ITM_LAR_KEYVAL 0xC5ACCE55 diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_jedec.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_jedec.h index b0eae43c..b3268b7c 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_jedec.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_jedec.h @@ -3,7 +3,7 @@ // am_reg_jedec.h //! @file //! -//! @brief Register macros for the JEDEC module +//! @brief Register macros for the ARM JEDEC module // //***************************************************************************** @@ -41,7 +41,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_REG_JEDEC_H @@ -62,7 +62,7 @@ #pragma push #pragma anon_unions #elif defined (__ICCARM__) - #pragma language=extended + #pragma language = extended #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wc11-extensions" @@ -88,101 +88,125 @@ typedef struct { uint32_t RESERVED0[52U]; /* 0xF00 - 0xFCF */ - union { + union + { __IM uint32_t PID4; /*!< 0xF0000FD0 (R/ ) PID4 Register */ - struct { + struct + { __IM uint32_t JEPCONT : 4; /* [3..0] Contains the JEP Continuation bits. */ } PID4_b; }; - union { + union + { __IM uint32_t PID5; /*!< 0xF0000FD4 (R/ ) PID5 Register */ - struct { + struct + { __IM uint32_t VALUE : 32; /* [31..0] Contains the value of 0x00000000. */ } PID5_b; }; - union { + union + { __IM uint32_t PID6; /*!< 0xF0000FD8 (R/ ) PID6 Register */ - struct { + struct + { __IM uint32_t VALUE : 32; /* [31..0] Contains the value of 0x00000000. */ } PID6_b; }; - union { + union + { __IM uint32_t PID7; /*!< 0xF0000FDC (R/ ) PID7 Register */ - struct { + struct + { __IM uint32_t VALUE : 32; /* [31..0] Contains the value of 0x00000000. */ } PID7_b; }; - union { + union + { __IM uint32_t PID0; /*!< 0xF0000FE0 (R/ ) PID0 Register */ - struct { + struct + { __IM uint32_t PNL8 : 8; /* [7..0] Contains the low 8 bits of the Ambiq Micro device part number. */ } PID0_b; }; - union { + union + { __IM uint32_t PID1; /*!< 0xF0000FE4 (R/ ) PID1 Register */ - struct { + struct + { __IM uint32_t PNH4 : 4; /* [3..0] Contains the high 4 bits of the Ambiq Micro device part number. */ __IM uint32_t JEPIDL : 4; /* [7..4] Contains the low 4 bits of the Ambiq Micro JEDEC JEP-106 ID. The full JEPID is therefore 0x9B. */ } PID1_b; }; - union { + union + { __IM uint32_t PID2; /*!< 0xF0000FE8 (R/ ) PID2 Register */ - struct { + struct + { __IM uint32_t JEPIDH : 4; /* [3..0] Contains the high 3 bits of the Ambiq Micro JEPID. Note that bit3 of this field is hard-coded to 1. The full JEPID is therefore 0x9B. */ __IM uint32_t CHIPREVH4 : 4; /* [7..4] Contains the high 4 bits of the Ambiq Micro CHIPREV (see also MCUCTRL.CHIPREV). Note that this field will change with each revision of the chip. */ } PID2_b; }; - union { + union + { __IM uint32_t PID3; /*!< 0xF0000FEC (R/ ) PID3 Register */ - struct { + struct + { __IM uint32_t ZERO : 4; /* [3..0] This field is hard-coded to 0x0. */ __IM uint32_t CHIPREVL4 : 4; /* [7..0] Contains the low 4 bits of the Ambiq Micro CHIPREV (see also MCUCTRL.CHIPREV). Note that this field will change with each revision of the chip. */ } PID3_b; }; - union { + union + { __IM uint32_t CID0; /*!< 0xF0000FE0 (R/ ) CID0 Register */ - struct { + struct + { __IM uint32_t CID : 8; /* [7..0] Coresight ROM Table, CID0. */ } CID0_b; }; - union { + union + { __IM uint32_t CID1; /*!< 0xF0000FE4 (R/ ) CID1 Register */ - struct { + struct + { __IM uint32_t CID : 8; /* [7..0] Coresight ROM Table, CID1. */ } CID1_b; }; - union { + union + { __IM uint32_t CID2; /*!< 0xF0000FE8 (R/ ) CID2 Register */ - struct { + struct + { __IM uint32_t CID : 8; /* [7..0] Coresight ROM Table, CID2. */ } CID2_b; }; - union { + union + { __IM uint32_t CID3; /*!< 0xF0000FEC (R/ ) CID3 Register */ - struct { + struct + { __IM uint32_t CID : 8; /* [7..0] Coresight ROM Table, CID3. */ } CID3_b; }; diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_m4.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_m4.h new file mode 100644 index 00000000..900157bb --- /dev/null +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_m4.h @@ -0,0 +1,81 @@ +//***************************************************************************** +// +// am_reg_m4.h +//! @file +//! +//! @brief A collection of a few CMSIS-style macros that are not automatically +//! generated in their respective core files. +// +//***************************************************************************** + +//***************************************************************************** +// +// Copyright (c) 2019, Ambiq Micro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// Third party software included in this distribution is subject to the +// additional license terms as defined in the /docs/licenses directory. +// +// 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. +// +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. +// +//***************************************************************************** + +#ifndef AM_REG_CM4_H +#define AM_REG_CM4_H + +//***************************************************************************** +// +// am_reg_itm.h +// CMSIS-style defines. +// +//***************************************************************************** +#define ITM_LAR_KEYVAL 0xC5ACCE55 + +//***************************************************************************** +// +// am_reg_sysctrl.h +// CMSIS-style defines. +// +//***************************************************************************** +#define SCB_CPACR_CP11_Pos 22 +#define SCB_CPACR_CP11_Msk 0x00C00000 +#define SCB_CPACR_CP10_Pos 20 +#define SCB_CPACR_CP10_Msk 0x00300000 + +//***************************************************************************** +// +// am_reg_tpiu.h +// CMSIS-style defines. +// +//***************************************************************************** +#define TPI_CSPSR_CWIDTH_1BIT 1 +#define TPI_SPPR_TXMODE_UART 2 +#define TPI_ITCTRL_Mode_NORMAL 0 + +#endif // AM_REG_CM4_H diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros.h index 0ba0a93f..29770803 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros.h @@ -41,7 +41,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -74,10 +74,10 @@ extern "C" // Use AM_REGADDRn() for multi-module peripherals (e.g. IOM, UART). // //***************************************************************************** -#define AM_REGADDR(periph,reg) ( periph##_BASE + offsetof(periph##_Type,reg) ) +#define AM_REGADDR(periph, reg) ( periph##_BASE + offsetof(periph##_Type, reg) ) -#define AM_REGADDRn(periph,n,reg) ( periph##0_BASE + \ - offsetof(periph##0_Type,reg) + \ +#define AM_REGADDRn(periph, n, reg) ( periph##0_BASE + \ + offsetof(periph##0_Type, reg) + \ (n * (periph##1_BASE - periph##0_BASE)) ) //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros_asm.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros_asm.h index 94b74edb..dcfcd6ef 100644 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros_asm.h +++ b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_macros_asm.h @@ -42,7 +42,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mcuctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mcuctrl.h deleted file mode 100644 index 484a4953..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mcuctrl.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// MCUCTRL -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_MCUCTRL_NUM_MODULES 1 -#define AM_REG_MCUCTRLn(n) \ - (REG_MCUCTRL_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mspi.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mspi.h deleted file mode 100644 index e38f1994..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_mspi.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// MSPI -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_MSPI_NUM_MODULES 1 -#define AM_REG_MSPIn(n) \ - (REG_MSPI_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_nvic.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_nvic.h deleted file mode 100644 index d1df9954..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_nvic.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// NVIC -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_NVIC_NUM_MODULES 1 -#define AM_REG_NVICn(n) \ - (REG_NVIC_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pdm.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pdm.h deleted file mode 100644 index 31448419..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pdm.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// PDM -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_PDM_NUM_MODULES 1 -#define AM_REG_PDMn(n) \ - (REG_PDM_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pwrctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pwrctrl.h deleted file mode 100644 index c9990bc4..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_pwrctrl.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// PWRCTRL -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_PWRCTRL_NUM_MODULES 1 -#define AM_REG_PWRCTRLn(n) \ - (REG_PWRCTRL_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rstgen.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rstgen.h deleted file mode 100644 index 8b0a76bb..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rstgen.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// RSTGEN -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_RSTGEN_NUM_MODULES 1 -#define AM_REG_RSTGENn(n) \ - (REG_RSTGEN_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rtc.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rtc.h deleted file mode 100644 index f48e87c6..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_rtc.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// RTC -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_RTC_NUM_MODULES 1 -#define AM_REG_RTCn(n) \ - (REG_RTC_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_scard.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_scard.h deleted file mode 100644 index 436e0281..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_scard.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// SCARD -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_SCARD_NUM_MODULES 1 -#define AM_REG_SCARDn(n) \ - (REG_SCARD_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_security.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_security.h deleted file mode 100644 index 2e0cee3b..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_security.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// SECURITY -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_SECURITY_NUM_MODULES 1 -#define AM_REG_SECURITYn(n) \ - (REG_SECURITY_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_sysctrl.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_sysctrl.h deleted file mode 100644 index a5fc5d39..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_sysctrl.h +++ /dev/null @@ -1,19 +0,0 @@ -//***************************************************************************** -// -// SYSCTRL -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_SYSCTRL_NUM_MODULES 1 -#define AM_REG_SYSCTRLn(n) \ - (REG_SYSCTRL_BASEADDR + 0x00000000 * n) - -//***************************************************************************** -// -// CMSIS-style defines. -// -//***************************************************************************** -#define SCB_CPACR_CP11_Pos 22 -#define SCB_CPACR_CP11_Msk 0x00C00000 -#define SCB_CPACR_CP10_Pos 20 -#define SCB_CPACR_CP10_Msk 0x00300000 diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_systick.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_systick.h deleted file mode 100644 index 7a5c549d..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_systick.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// SYSTICK -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_SYSTICK_NUM_MODULES 1 -#define AM_REG_SYSTICKn(n) \ - (REG_SYSTICK_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_tpiu.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_tpiu.h deleted file mode 100644 index 03febfd5..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_tpiu.h +++ /dev/null @@ -1,18 +0,0 @@ -//***************************************************************************** -// -// TPIU -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_TPIU_NUM_MODULES 1 -#define AM_REG_TPIUn(n) \ - (REG_TPIU_BASEADDR + 0x00000000 * n) - -//***************************************************************************** -// -// CMSIS-style defines. -// -//***************************************************************************** -#define TPI_CSPSR_CWIDTH_1BIT 1 -#define TPI_SPPR_TXMODE_UART 2 -#define TPI_ITCTRL_Mode_NORMAL 0 diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_uart.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_uart.h deleted file mode 100644 index 281df804..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_uart.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// UART -// Instance finder. (2 instance(s) available) -// -//***************************************************************************** -#define AM_REG_UART_NUM_MODULES 2 -#define AM_REG_UARTn(n) \ - (REG_UART_BASEADDR + 0x00001000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_vcomp.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_vcomp.h deleted file mode 100644 index a73d90ef..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_vcomp.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// VCOMP -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_VCOMP_NUM_MODULES 1 -#define AM_REG_VCOMPn(n) \ - (REG_VCOMP_BASEADDR + 0x00000000 * n) - - diff --git a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_wdt.h b/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_wdt.h deleted file mode 100644 index 58e81713..00000000 --- a/cores/arduino/am_sdk_ap3/mcu/apollo3/regs/am_reg_wdt.h +++ /dev/null @@ -1,11 +0,0 @@ -//***************************************************************************** -// -// WDT -// Instance finder. (1 instance(s) available) -// -//***************************************************************************** -#define AM_REG_WDT_NUM_MODULES 1 -#define AM_REG_WDTn(n) \ - (REG_WDT_BASEADDR + 0x00000000 * n) - - From 6a5f1e355be482be5052ea888d408ab81b823b12 Mon Sep 17 00:00:00 2001 From: Owen L - SFE Date: Mon, 12 Aug 2019 11:29:41 -0600 Subject: [PATCH 2/5] Replace 'utils' by 2.2.0 version --- cores/arduino/am_sdk_ap3/utils/am_util.h | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_ble.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_ble.h | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_debug.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_debug.h | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_delay.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_delay.h | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_faultisr.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_id.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_id.h | 8 ++++---- cores/arduino/am_sdk_ap3/utils/am_util_regdump.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_regdump.h | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_stdio.c | 7 +++---- cores/arduino/am_sdk_ap3/utils/am_util_stdio.h | 3 +-- cores/arduino/am_sdk_ap3/utils/am_util_string.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_string.h | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_time.c | 2 +- cores/arduino/am_sdk_ap3/utils/am_util_time.h | 2 +- 18 files changed, 23 insertions(+), 25 deletions(-) diff --git a/cores/arduino/am_sdk_ap3/utils/am_util.h b/cores/arduino/am_sdk_ap3/utils/am_util.h index 5652e3cf..b7b73d8e 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util.h @@ -42,7 +42,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_H diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_ble.c b/cores/arduino/am_sdk_ap3/utils/am_util_ble.c index c0ee3704..95ced862 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_ble.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_ble.c @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_ble.h b/cores/arduino/am_sdk_ap3/utils/am_util_ble.h index 02cb8e63..8108a930 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_ble.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_ble.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_debug.c b/cores/arduino/am_sdk_ap3/utils/am_util_debug.c index 05463d47..47e21102 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_debug.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_debug.c @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_debug.h b/cores/arduino/am_sdk_ap3/utils/am_util_debug.h index e9ebe937..b36b0dc4 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_debug.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_debug.h @@ -44,7 +44,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_DEBUG_H diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_delay.c b/cores/arduino/am_sdk_ap3/utils/am_util_delay.c index 59b96d98..da646fca 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_delay.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_delay.c @@ -42,7 +42,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_delay.h b/cores/arduino/am_sdk_ap3/utils/am_util_delay.h index daa2429a..2ee94fa8 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_delay.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_delay.h @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_DELAY_H diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_faultisr.c b/cores/arduino/am_sdk_ap3/utils/am_util_faultisr.c index e081b362..9fee4de1 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_faultisr.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_faultisr.c @@ -46,7 +46,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_id.c b/cores/arduino/am_sdk_ap3/utils/am_util_id.c index be69fd3e..21f8f9e9 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_id.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_id.c @@ -43,7 +43,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_id.h b/cores/arduino/am_sdk_ap3/utils/am_util_id.h index a3cd2396..53bc0edf 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_id.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_id.h @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_ID_H @@ -111,9 +111,9 @@ am_util_id_t; // //***************************************************************************** #define AM_UTIL_ID_UNKNOWN 0 -#define AM_UTIL_ID_APOLLO 1 -#define AM_UTIL_ID_APOLLO2 2 -#define AM_UTIL_ID_APOLLO3 3 +#define AM_UTIL_ID_APOLLO 0x0001 +#define AM_UTIL_ID_APOLLO2 0x0002 +#define AM_UTIL_ID_APOLLO3 0x0003 //***************************************************************************** // diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c b/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c index 152862c3..4c9857d9 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c @@ -43,7 +43,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_regdump.h b/cores/arduino/am_sdk_ap3/utils/am_util_regdump.h index 807b79f8..63362188 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_regdump.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_regdump.h @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_REGDUMP_H diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c index ccada26d..094b1e21 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c @@ -43,7 +43,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** @@ -61,9 +61,8 @@ // function pointer for printf am_util_stdio_print_char_t g_pfnCharPrint; -// // buffer for printf -// static char g_prfbuf[AM_PRINTF_BUFSIZE]; -char g_prfbuf[AM_PRINTF_BUFSIZE]; +// buffer for printf +static char g_prfbuf[AM_PRINTF_BUFSIZE]; // Flag to do conversion of '\n' to '\n\r' in sprintf() static bool g_bTxtXlate = false; diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h index 1f837601..bab09852 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_STDIO_H @@ -63,7 +63,6 @@ extern "C" #ifndef AM_PRINTF_BUFSIZE #define AM_PRINTF_BUFSIZE 256 #endif -extern char g_prfbuf[AM_PRINTF_BUFSIZE]; typedef void (*am_util_stdio_print_char_t)(char *pcStr); diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_string.c b/cores/arduino/am_sdk_ap3/utils/am_util_string.c index c73d3b9e..d2a56bfb 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_string.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_string.c @@ -43,7 +43,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_string.h b/cores/arduino/am_sdk_ap3/utils/am_util_string.h index a84263fa..ceee1315 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_string.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_string.h @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_STRING_H diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_time.c b/cores/arduino/am_sdk_ap3/utils/am_util_time.c index 6417f19d..b34a2719 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_time.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_time.c @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #include diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_time.h b/cores/arduino/am_sdk_ap3/utils/am_util_time.h index 4f8c36da..c013f1aa 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_time.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_time.h @@ -40,7 +40,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // -// This is part of revision 2.1.0 of the AmbiqSuite Development Package. +// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. // //***************************************************************************** #ifndef AM_UTIL_TIME_H From 9b1281e417d908f8b04902ff51c414abc49fc73f Mon Sep 17 00:00:00 2001 From: Owen L - SFE Date: Mon, 12 Aug 2019 11:32:16 -0600 Subject: [PATCH 3/5] Replace 'CMSIS' by 2.2.0 version --- .../CMSIS/AmbiqMicro/Include/apollo3.h | 296 +- .../CMSIS/AmbiqMicro/Include/apollo3c.h | 26576 ++++++++++++++++ .../AmbiqMicro/Include/system_apollo3c.h | 69 + .../CMSIS/AmbiqMicro/Source/startup_apollo3.s | 42 +- 4 files changed, 26948 insertions(+), 35 deletions(-) create mode 100644 cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3c.h create mode 100644 cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/system_apollo3c.h diff --git a/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3.h b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3.h index 8e14e742..57a9ec27 100644 --- a/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3.h +++ b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015-2017, Ambiq Micro + * Copyright (c) 2019, Ambiq Micro * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,8 +12,12 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * 3. Neither the name of the copyright holder nor the names of itscontributors may be used to endorse - * or promote products derived from thissoftware without specific prior written permission. + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * Third party software included in this distribution is subject to the + * additional license terms as defined in the /docs/licenses directory. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -30,10 +34,10 @@ * @file apollo3.h * @brief CMSIS HeaderFile * @version 1.0 - * @date 21. February 2019 - * @note Generated by SVDConv V3.3.18 on Thursday, 21.02.2019 18:10:42 + * @date 13. May 2019 + * @note Generated by SVDConv V3.3.18 on Monday, 13.05.2019 17:06:30 * from File './apollo3.svd', - * last modified on Friday, 22.02.2019 00:10:41 + * last modified on Monday, 13.05.2019 22:06:29 */ @@ -101,7 +105,7 @@ typedef enum { SCARD_IRQn = 17, /*!< 17 SCARD */ ADC_IRQn = 18, /*!< 18 ADC */ PDM_IRQn = 19, /*!< 19 PDM */ - MSPI_IRQn = 20, /*!< 20 MSPI */ + MSPI0_IRQn = 20, /*!< 20 MSPI0 */ STIMER_IRQn = 22, /*!< 22 STIMER */ STIMER_CMPR0_IRQn = 23, /*!< 23 STIMER_CMPR0 */ STIMER_CMPR1_IRQn = 24, /*!< 24 STIMER_CMPR1 */ @@ -6590,7 +6594,7 @@ typedef struct { /*!< (@ 0x50014000) MSPI Structu of the command queue */ __IOM uint32_t CQPRI : 1; /*!< [1..1] Sets the Priority of the command queue dma request */ __IOM uint32_t CQPWROFF : 1; /*!< [2..2] Power off MSPI domain upon completion of DMA operation. */ - __IOM uint32_t CQAUTOCLEARMASK : 1; /*!< [3..3] Eanble clear of CQMASK after each pause operation. This + __IOM uint32_t CQAUTOCLEARMASK : 1; /*!< [3..3] Enable clear of CQMASK after each pause operation. This may be useful when using software flags to pause CQ. */ } CQCFG_b; } ; @@ -6645,7 +6649,7 @@ typedef struct { /*!< (@ 0x50014000) MSPI Structu struct { __IOM uint32_t CQMASK : 16; /*!< [15..0] CQ will pause processing when ALL specified events are - satisfied -- i.e. when (CQMASK&CQPAUSE)==CQMASK. */ + satisfied -- i.e. when (CQMASK and CQPAUSE)==CQMASK. */ } CQPAUSE_b; } ; __IM uint32_t RESERVED7; @@ -7356,7 +7360,46 @@ typedef struct { /*!< (@ 0x40080000) SCARD Struct __IOM uint32_t FHF : 1; /*!< [6..6] FIFO Half Full. */ } SR_b; } ; - __IM uint32_t RESERVED[3]; + + union { + __IOM uint32_t IER; /*!< (@ 0x00000004) ISO7816 interrupt enable */ + + struct { + __IOM uint32_t FNEEN : 1; /*!< [0..0] RX FIFO not empty interrupt enable. */ + __IOM uint32_t TBERBFEN : 1; /*!< [1..1] FIFO empty (transmit) or full (receive) interrupt enable. */ + __IOM uint32_t FEREN : 1; /*!< [2..2] Framing error interrupt enable. */ + __IOM uint32_t OVREN : 1; /*!< [3..3] RX FIFOI overflow interrupt enable. */ + __IOM uint32_t PEEN : 1; /*!< [4..4] Parity Error interrupt enable. */ + __IOM uint32_t FT2RENDEN : 1; /*!< [5..5] TX to RX finished interrupt enable. */ + __IOM uint32_t FHFEN : 1; /*!< [6..6] FIFO Half Full interrupt enable. */ + } IER_b; + } ; + + union { + __IOM uint32_t TCR; /*!< (@ 0x00000008) ISO7816 transmit control */ + + struct { + __IOM uint32_t CONV : 1; /*!< [0..0] Conversion inversion control. */ + __IOM uint32_t SS : 1; /*!< [1..1] Use first byte to configure conversion. */ + __IOM uint32_t LCT : 1; /*!< [2..2] Fast TX to RX. */ + __IOM uint32_t TR : 1; /*!< [3..3] Transmit/receive mode. */ + __IOM uint32_t PROT : 1; /*!< [4..4] PROT control. */ + __IOM uint32_t AUTOCONV : 1; /*!< [5..5] Automatic conversion. */ + __IOM uint32_t FIP : 1; /*!< [6..6] Parity select. */ + __IOM uint32_t DMAMD : 1; /*!< [7..7] DMA direction. */ + } TCR_b; + } ; + + union { + __IOM uint32_t UCR; /*!< (@ 0x0000000C) ISO7816 user control */ + + struct { + __IOM uint32_t CST : 1; /*!< [0..0] Clock control. */ + __IOM uint32_t RIU : 1; /*!< [1..1] ISO7816 reset. This bit is write-only. */ + __IOM uint32_t RSTIN : 1; /*!< [2..2] Reset polarity. */ + __IOM uint32_t RETXEN : 1; /*!< [3..3] Enable TX/RX time configuration. */ + } UCR_b; + } ; union { __IOM uint32_t DR; /*!< (@ 0x00000010) ISO7816 data */ @@ -7365,7 +7408,35 @@ typedef struct { /*!< (@ 0x40080000) SCARD Struct __IOM uint32_t DR : 8; /*!< [7..0] Data register. */ } DR_b; } ; - __IM uint32_t RESERVED1[3]; + + union { + __IOM uint32_t BPRL; /*!< (@ 0x00000014) ISO7816 baud rate low */ + + struct { + __IOM uint32_t BPRL : 8; /*!< [7..0] Baud rate low */ + } BPRL_b; + } ; + + union { + __IOM uint32_t BPRH; /*!< (@ 0x00000018) ISO7816 baud rate high */ + + struct { + __IOM uint32_t BPRH : 4; /*!< [3..0] Baud rate high */ + } BPRH_b; + } ; + + union { + __IOM uint32_t UCR1; /*!< (@ 0x0000001C) ISO7816 user control 1 */ + + struct { + __IOM uint32_t PR : 1; /*!< [0..0] Query Card Detect. */ + __IM uint32_t : 1; + __IOM uint32_t STSP : 1; /*!< [2..2] ETU counter control. This bit is write-only. */ + __IOM uint32_t T1PAREN : 1; /*!< [3..3] Parity check control. */ + __IOM uint32_t CLKIOV : 1; /*!< [4..4] Output clock level. */ + __IOM uint32_t ENLASTB : 1; /*!< [5..5] Enable last byte function. */ + } UCR1_b; + } ; union { __IOM uint32_t SR1; /*!< (@ 0x00000020) ISO7816 interrupt status 1 */ @@ -7377,7 +7448,48 @@ typedef struct { /*!< (@ 0x40080000) SCARD Struct __IOM uint32_t IDLE : 1; /*!< [3..3] ISO7816 idle. */ } SR1_b; } ; - __IM uint32_t RESERVED2[5]; + + union { + __IOM uint32_t IER1; /*!< (@ 0x00000024) ISO7816 interrupt enable 1 */ + + struct { + __IOM uint32_t ECNTOVEREN : 1; /*!< [0..0] ETU counter overflow interrupt enable. */ + __IOM uint32_t PRLEN : 1; /*!< [1..1] Card insert/remove interrupt enable. */ + __IOM uint32_t SYNCENDEN : 1; /*!< [2..2] Write complete synchronization interrupt enable. */ + } IER1_b; + } ; + + union { + __IOM uint32_t ECNTL; /*!< (@ 0x00000028) ETU counter low */ + + struct { + __IOM uint32_t ECNTL : 8; /*!< [7..0] ETU counter low register. */ + } ECNTL_b; + } ; + + union { + __IOM uint32_t ECNTH; /*!< (@ 0x0000002C) ETU counter high */ + + struct { + __IOM uint32_t ECNTH : 8; /*!< [7..0] ETU counter high register. */ + } ECNTH_b; + } ; + + union { + __IOM uint32_t GTR; /*!< (@ 0x00000030) ISO7816 guard time configuration */ + + struct { + __IOM uint32_t GTR : 8; /*!< [7..0] Guard time configuration register. */ + } GTR_b; + } ; + + union { + __IOM uint32_t RETXCNT; /*!< (@ 0x00000034) ISO7816 resend count */ + + struct { + __IOM uint32_t RETXCNT : 4; /*!< [3..0] Resend count register. */ + } RETXCNT_b; + } ; union { __IOM uint32_t RETXCNTRMI; /*!< (@ 0x00000038) ISO7816 resent count inquiry */ @@ -7386,7 +7498,7 @@ typedef struct { /*!< (@ 0x40080000) SCARD Struct __IOM uint32_t RETXCNTRMI : 4; /*!< [3..0] Resent count inquiry register. */ } RETXCNTRMI_b; } ; - __IM uint32_t RESERVED3[49]; + __IM uint32_t RESERVED[49]; union { __IOM uint32_t CLKCTRL; /*!< (@ 0x00000100) Clock Control */ @@ -13180,9 +13292,67 @@ typedef struct { /*!< (@ 0x40024000) WDT Structur #define SCARD_SR_TBERBF_Msk (0x2UL) /*!< SCARD SR: TBERBF (Bitfield-Mask: 0x01) */ #define SCARD_SR_FNE_Pos (0UL) /*!< SCARD SR: FNE (Bit 0) */ #define SCARD_SR_FNE_Msk (0x1UL) /*!< SCARD SR: FNE (Bitfield-Mask: 0x01) */ +/* ========================================================== IER ========================================================== */ +#define SCARD_IER_FHFEN_Pos (6UL) /*!< SCARD IER: FHFEN (Bit 6) */ +#define SCARD_IER_FHFEN_Msk (0x40UL) /*!< SCARD IER: FHFEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_FT2RENDEN_Pos (5UL) /*!< SCARD IER: FT2RENDEN (Bit 5) */ +#define SCARD_IER_FT2RENDEN_Msk (0x20UL) /*!< SCARD IER: FT2RENDEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_PEEN_Pos (4UL) /*!< SCARD IER: PEEN (Bit 4) */ +#define SCARD_IER_PEEN_Msk (0x10UL) /*!< SCARD IER: PEEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_OVREN_Pos (3UL) /*!< SCARD IER: OVREN (Bit 3) */ +#define SCARD_IER_OVREN_Msk (0x8UL) /*!< SCARD IER: OVREN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_FEREN_Pos (2UL) /*!< SCARD IER: FEREN (Bit 2) */ +#define SCARD_IER_FEREN_Msk (0x4UL) /*!< SCARD IER: FEREN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_TBERBFEN_Pos (1UL) /*!< SCARD IER: TBERBFEN (Bit 1) */ +#define SCARD_IER_TBERBFEN_Msk (0x2UL) /*!< SCARD IER: TBERBFEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_FNEEN_Pos (0UL) /*!< SCARD IER: FNEEN (Bit 0) */ +#define SCARD_IER_FNEEN_Msk (0x1UL) /*!< SCARD IER: FNEEN (Bitfield-Mask: 0x01) */ +/* ========================================================== TCR ========================================================== */ +#define SCARD_TCR_DMAMD_Pos (7UL) /*!< SCARD TCR: DMAMD (Bit 7) */ +#define SCARD_TCR_DMAMD_Msk (0x80UL) /*!< SCARD TCR: DMAMD (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_FIP_Pos (6UL) /*!< SCARD TCR: FIP (Bit 6) */ +#define SCARD_TCR_FIP_Msk (0x40UL) /*!< SCARD TCR: FIP (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_AUTOCONV_Pos (5UL) /*!< SCARD TCR: AUTOCONV (Bit 5) */ +#define SCARD_TCR_AUTOCONV_Msk (0x20UL) /*!< SCARD TCR: AUTOCONV (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_PROT_Pos (4UL) /*!< SCARD TCR: PROT (Bit 4) */ +#define SCARD_TCR_PROT_Msk (0x10UL) /*!< SCARD TCR: PROT (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_TR_Pos (3UL) /*!< SCARD TCR: TR (Bit 3) */ +#define SCARD_TCR_TR_Msk (0x8UL) /*!< SCARD TCR: TR (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_LCT_Pos (2UL) /*!< SCARD TCR: LCT (Bit 2) */ +#define SCARD_TCR_LCT_Msk (0x4UL) /*!< SCARD TCR: LCT (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_SS_Pos (1UL) /*!< SCARD TCR: SS (Bit 1) */ +#define SCARD_TCR_SS_Msk (0x2UL) /*!< SCARD TCR: SS (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_CONV_Pos (0UL) /*!< SCARD TCR: CONV (Bit 0) */ +#define SCARD_TCR_CONV_Msk (0x1UL) /*!< SCARD TCR: CONV (Bitfield-Mask: 0x01) */ +/* ========================================================== UCR ========================================================== */ +#define SCARD_UCR_RETXEN_Pos (3UL) /*!< SCARD UCR: RETXEN (Bit 3) */ +#define SCARD_UCR_RETXEN_Msk (0x8UL) /*!< SCARD UCR: RETXEN (Bitfield-Mask: 0x01) */ +#define SCARD_UCR_RSTIN_Pos (2UL) /*!< SCARD UCR: RSTIN (Bit 2) */ +#define SCARD_UCR_RSTIN_Msk (0x4UL) /*!< SCARD UCR: RSTIN (Bitfield-Mask: 0x01) */ +#define SCARD_UCR_RIU_Pos (1UL) /*!< SCARD UCR: RIU (Bit 1) */ +#define SCARD_UCR_RIU_Msk (0x2UL) /*!< SCARD UCR: RIU (Bitfield-Mask: 0x01) */ +#define SCARD_UCR_CST_Pos (0UL) /*!< SCARD UCR: CST (Bit 0) */ +#define SCARD_UCR_CST_Msk (0x1UL) /*!< SCARD UCR: CST (Bitfield-Mask: 0x01) */ /* ========================================================== DR =========================================================== */ #define SCARD_DR_DR_Pos (0UL) /*!< SCARD DR: DR (Bit 0) */ #define SCARD_DR_DR_Msk (0xffUL) /*!< SCARD DR: DR (Bitfield-Mask: 0xff) */ +/* ========================================================= BPRL ========================================================== */ +#define SCARD_BPRL_BPRL_Pos (0UL) /*!< SCARD BPRL: BPRL (Bit 0) */ +#define SCARD_BPRL_BPRL_Msk (0xffUL) /*!< SCARD BPRL: BPRL (Bitfield-Mask: 0xff) */ +/* ========================================================= BPRH ========================================================== */ +#define SCARD_BPRH_BPRH_Pos (0UL) /*!< SCARD BPRH: BPRH (Bit 0) */ +#define SCARD_BPRH_BPRH_Msk (0xfUL) /*!< SCARD BPRH: BPRH (Bitfield-Mask: 0x0f) */ +/* ========================================================= UCR1 ========================================================== */ +#define SCARD_UCR1_ENLASTB_Pos (5UL) /*!< SCARD UCR1: ENLASTB (Bit 5) */ +#define SCARD_UCR1_ENLASTB_Msk (0x20UL) /*!< SCARD UCR1: ENLASTB (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_CLKIOV_Pos (4UL) /*!< SCARD UCR1: CLKIOV (Bit 4) */ +#define SCARD_UCR1_CLKIOV_Msk (0x10UL) /*!< SCARD UCR1: CLKIOV (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_T1PAREN_Pos (3UL) /*!< SCARD UCR1: T1PAREN (Bit 3) */ +#define SCARD_UCR1_T1PAREN_Msk (0x8UL) /*!< SCARD UCR1: T1PAREN (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_STSP_Pos (2UL) /*!< SCARD UCR1: STSP (Bit 2) */ +#define SCARD_UCR1_STSP_Msk (0x4UL) /*!< SCARD UCR1: STSP (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_PR_Pos (0UL) /*!< SCARD UCR1: PR (Bit 0) */ +#define SCARD_UCR1_PR_Msk (0x1UL) /*!< SCARD UCR1: PR (Bitfield-Mask: 0x01) */ /* ========================================================== SR1 ========================================================== */ #define SCARD_SR1_IDLE_Pos (3UL) /*!< SCARD SR1: IDLE (Bit 3) */ #define SCARD_SR1_IDLE_Msk (0x8UL) /*!< SCARD SR1: IDLE (Bitfield-Mask: 0x01) */ @@ -13192,6 +13362,25 @@ typedef struct { /*!< (@ 0x40024000) WDT Structur #define SCARD_SR1_PRL_Msk (0x2UL) /*!< SCARD SR1: PRL (Bitfield-Mask: 0x01) */ #define SCARD_SR1_ECNTOVER_Pos (0UL) /*!< SCARD SR1: ECNTOVER (Bit 0) */ #define SCARD_SR1_ECNTOVER_Msk (0x1UL) /*!< SCARD SR1: ECNTOVER (Bitfield-Mask: 0x01) */ +/* ========================================================= IER1 ========================================================== */ +#define SCARD_IER1_SYNCENDEN_Pos (2UL) /*!< SCARD IER1: SYNCENDEN (Bit 2) */ +#define SCARD_IER1_SYNCENDEN_Msk (0x4UL) /*!< SCARD IER1: SYNCENDEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER1_PRLEN_Pos (1UL) /*!< SCARD IER1: PRLEN (Bit 1) */ +#define SCARD_IER1_PRLEN_Msk (0x2UL) /*!< SCARD IER1: PRLEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER1_ECNTOVEREN_Pos (0UL) /*!< SCARD IER1: ECNTOVEREN (Bit 0) */ +#define SCARD_IER1_ECNTOVEREN_Msk (0x1UL) /*!< SCARD IER1: ECNTOVEREN (Bitfield-Mask: 0x01) */ +/* ========================================================= ECNTL ========================================================= */ +#define SCARD_ECNTL_ECNTL_Pos (0UL) /*!< SCARD ECNTL: ECNTL (Bit 0) */ +#define SCARD_ECNTL_ECNTL_Msk (0xffUL) /*!< SCARD ECNTL: ECNTL (Bitfield-Mask: 0xff) */ +/* ========================================================= ECNTH ========================================================= */ +#define SCARD_ECNTH_ECNTH_Pos (0UL) /*!< SCARD ECNTH: ECNTH (Bit 0) */ +#define SCARD_ECNTH_ECNTH_Msk (0xffUL) /*!< SCARD ECNTH: ECNTH (Bitfield-Mask: 0xff) */ +/* ========================================================== GTR ========================================================== */ +#define SCARD_GTR_GTR_Pos (0UL) /*!< SCARD GTR: GTR (Bit 0) */ +#define SCARD_GTR_GTR_Msk (0xffUL) /*!< SCARD GTR: GTR (Bitfield-Mask: 0xff) */ +/* ======================================================== RETXCNT ======================================================== */ +#define SCARD_RETXCNT_RETXCNT_Pos (0UL) /*!< SCARD RETXCNT: RETXCNT (Bit 0) */ +#define SCARD_RETXCNT_RETXCNT_Msk (0xfUL) /*!< SCARD RETXCNT: RETXCNT (Bitfield-Mask: 0x0f) */ /* ====================================================== RETXCNTRMI ======================================================= */ #define SCARD_RETXCNTRMI_RETXCNTRMI_Pos (0UL) /*!< SCARD RETXCNTRMI: RETXCNTRMI (Bit 0) */ #define SCARD_RETXCNTRMI_RETXCNTRMI_Msk (0xfUL) /*!< SCARD RETXCNTRMI: RETXCNTRMI (Bitfield-Mask: 0x0f) */ @@ -21714,6 +21903,7 @@ typedef enum { /*!< MCUCTRL_CHIPID1_CHIPID1 /* ======================================================== CHIPREV ======================================================== */ /* ============================================= MCUCTRL CHIPREV REVMAJ [4..7] ============================================= */ typedef enum { /*!< MCUCTRL_CHIPREV_REVMAJ */ + MCUCTRL_CHIPREV_REVMAJ_C = 3, /*!< C : Apollo3 revision C */ MCUCTRL_CHIPREV_REVMAJ_B = 2, /*!< B : Apollo3 revision B */ MCUCTRL_CHIPREV_REVMAJ_A = 1, /*!< A : Apollo3 revision A */ } MCUCTRL_CHIPREV_REVMAJ_Enum; @@ -21728,7 +21918,7 @@ typedef enum { /*!< MCUCTRL_CHIPREV_REVMIN /* ======================================================= VENDORID ======================================================== */ /* =========================================== MCUCTRL VENDORID VENDORID [0..31] =========================================== */ typedef enum { /*!< MCUCTRL_VENDORID_VENDORID */ - MCUCTRL_VENDORID_VENDORID_AMBIQ = 1095582289,/*!< AMBIQ : Ambiq Vendor ID */ + MCUCTRL_VENDORID_VENDORID_AMBIQ = 1095582289,/*!< AMBIQ : Ambiq Vendor ID 'AMBQ' */ } MCUCTRL_VENDORID_VENDORID_Enum; /* ========================================================== SKU ========================================================== */ @@ -22295,8 +22485,8 @@ typedef enum { /*!< PDM_PCFG_MCLKDIV /* ================================================ PDM PCFG ADCHPD [9..9] ================================================= */ typedef enum { /*!< PDM_PCFG_ADCHPD */ - PDM_PCFG_ADCHPD_EN = 1, /*!< EN : Enable high pass filter. */ - PDM_PCFG_ADCHPD_DIS = 0, /*!< DIS : Disable high pass filter. */ + PDM_PCFG_ADCHPD_EN = 0, /*!< EN : Enable high pass filter. */ + PDM_PCFG_ADCHPD_DIS = 1, /*!< DIS : Disable high pass filter. */ } PDM_PCFG_ADCHPD_Enum; /* =============================================== PDM PCFG SOFTMUTE [1..1] ================================================ */ @@ -22887,8 +23077,82 @@ typedef enum { /*!< RTC_RTCCTL_WRTC /* =========================================================================================================================== */ /* ========================================================== SR =========================================================== */ +/* ================================================== SCARD SR FHF [6..6] ================================================== */ +typedef enum { /*!< SCARD_SR_FHF */ + SCARD_SR_FHF_HALFFULL = 1, /*!< HALFFULL : FIFO is half full. */ +} SCARD_SR_FHF_Enum; + +/* ================================================ SCARD SR FT2REND [5..5] ================================================ */ +typedef enum { /*!< SCARD_SR_FT2REND */ + SCARD_SR_FT2REND_CMPL = 1, /*!< CMPL : TX to RX completed. */ + SCARD_SR_FT2REND_NOTCMPL = 0, /*!< NOTCMPL : TX to RX not completed. */ +} SCARD_SR_FT2REND_Enum; + +/* ================================================== SCARD SR PE [4..4] =================================================== */ +typedef enum { /*!< SCARD_SR_PE */ + SCARD_SR_PE_PEERR = 1, /*!< PEERR : Parity error. */ + SCARD_SR_PE_PENONE = 0, /*!< PENONE : No parity error. */ +} SCARD_SR_PE_Enum; + +/* ================================================== SCARD SR OVR [3..3] ================================================== */ +typedef enum { /*!< SCARD_SR_OVR */ + SCARD_SR_OVR_RXOVR = 1, /*!< RXOVR : RX FIFO overflow. */ + SCARD_SR_OVR_RXOVRNONE = 0, /*!< RXOVRNONE : RX FIFO no overflow. */ +} SCARD_SR_OVR_Enum; + +/* ================================================== SCARD SR FER [2..2] ================================================== */ +typedef enum { /*!< SCARD_SR_FER */ + SCARD_SR_FER_FRAMINGERR = 1, /*!< FRAMINGERR : Framing error. */ + SCARD_SR_FER_NOFRAMINGERR = 0, /*!< NOFRAMINGERR : No framing error detected. */ +} SCARD_SR_FER_Enum; + +/* ================================================ SCARD SR TBERBF [1..1] ================================================= */ +typedef enum { /*!< SCARD_SR_TBERBF */ + SCARD_SR_TBERBF_TXFIFOEMPTY = 1, /*!< TXFIFOEMPTY : Transmit: FIFO empty. */ + SCARD_SR_TBERBF_TXFIFONOTEMPTY = 0, /*!< TXFIFONOTEMPTY : Transmit: FIFO not empty. */ +} SCARD_SR_TBERBF_Enum; + +/* ================================================== SCARD SR FNE [0..0] ================================================== */ +typedef enum { /*!< SCARD_SR_FNE */ + SCARD_SR_FNE_NOTEMPTY = 1, /*!< NOTEMPTY : RX FIFO not empty. */ + SCARD_SR_FNE_EMPTY = 0, /*!< EMPTY : RX FIFO empty. */ +} SCARD_SR_FNE_Enum; + +/* ========================================================== IER ========================================================== */ +/* ========================================================== TCR ========================================================== */ +/* ========================================================== UCR ========================================================== */ /* ========================================================== DR =========================================================== */ +/* ========================================================= BPRL ========================================================== */ +/* ========================================================= BPRH ========================================================== */ +/* ========================================================= UCR1 ========================================================== */ /* ========================================================== SR1 ========================================================== */ +/* ================================================= SCARD SR1 IDLE [3..3] ================================================= */ +typedef enum { /*!< SCARD_SR1_IDLE */ + SCARD_SR1_IDLE_IDLE = 1, /*!< IDLE : ISO7816 idle. */ + SCARD_SR1_IDLE_ACTIVE = 0, /*!< ACTIVE : ISO7816 active. */ +} SCARD_SR1_IDLE_Enum; + +/* =============================================== SCARD SR1 SYNCEND [2..2] ================================================ */ +typedef enum { /*!< SCARD_SR1_SYNCEND */ + SCARD_SR1_SYNCEND_CMPL = 1, /*!< CMPL : Synchronization complete. */ + SCARD_SR1_SYNCEND_INCMPL = 0, /*!< INCMPL : Incomplete. */ +} SCARD_SR1_SYNCEND_Enum; + +/* ================================================= SCARD SR1 PRL [1..1] ================================================== */ +typedef enum { /*!< SCARD_SR1_PRL */ + SCARD_SR1_PRL_INSREM = 1, /*!< INSREM : Card inserted/removed. */ +} SCARD_SR1_PRL_Enum; + +/* =============================================== SCARD SR1 ECNTOVER [0..0] =============================================== */ +typedef enum { /*!< SCARD_SR1_ECNTOVER */ + SCARD_SR1_ECNTOVER_OVR = 1, /*!< OVR : ETU overflow. */ +} SCARD_SR1_ECNTOVER_Enum; + +/* ========================================================= IER1 ========================================================== */ +/* ========================================================= ECNTL ========================================================= */ +/* ========================================================= ECNTH ========================================================= */ +/* ========================================================== GTR ========================================================== */ +/* ======================================================== RETXCNT ======================================================== */ /* ====================================================== RETXCNTRMI ======================================================= */ /* ======================================================== CLKCTRL ======================================================== */ diff --git a/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3c.h b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3c.h new file mode 100644 index 00000000..003017bf --- /dev/null +++ b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/apollo3c.h @@ -0,0 +1,26576 @@ +/* + * Copyright (c) 2019, Ambiq Micro + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * Third party software included in this distribution is subject to the + * additional license terms as defined in the /docs/licenses directory. + * + * 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. + * + * @file apollo3c.h + * @brief CMSIS HeaderFile + * @version 1.0 + * @date 20. May 2019 + * @note Generated by SVDConv V3.3.18 on Monday, 20.05.2019 15:44:40 + * from File './apollo3c.svd', + * last modified on Monday, 20.05.2019 20:44:40 + */ + + + +/** @addtogroup Ambiq Micro + * @{ + */ + + +/** @addtogroup apollo3c + * @{ + */ + + +#ifndef APOLLO3C_H +#define APOLLO3C_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/** @addtogroup Configuration_of_CMSIS + * @{ + */ + + + +/* =========================================================================================================================== */ +/* ================ Interrupt Number Definition ================ */ +/* =========================================================================================================================== */ + +typedef enum { +/* ======================================= ARM Cortex-M4 Specific Interrupt Numbers ======================================== */ + Reset_IRQn = -15, /*!< -15 Reset Vector, invoked on Power up and warm reset */ + NonMaskableInt_IRQn = -14, /*!< -14 Non maskable Interrupt, cannot be stopped or preempted */ + HardFault_IRQn = -13, /*!< -13 Hard Fault, all classes of Fault */ + MemoryManagement_IRQn = -12, /*!< -12 Memory Management, MPU mismatch, including Access Violation + and No Match */ + BusFault_IRQn = -11, /*!< -11 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory + related Fault */ + UsageFault_IRQn = -10, /*!< -10 Usage Fault, i.e. Undef Instruction, Illegal State Transition */ + SVCall_IRQn = -5, /*!< -5 System Service Call via SVC instruction */ + DebugMonitor_IRQn = -4, /*!< -4 Debug Monitor */ + PendSV_IRQn = -2, /*!< -2 Pendable request for system service */ + SysTick_IRQn = -1, /*!< -1 System Tick Timer */ +/* ========================================== apollo3c Specific Interrupt Numbers ========================================== */ + BROWNOUT_IRQn = 0, /*!< 0 BROWNOUT */ + WDT_IRQn = 1, /*!< 1 WDT */ + RTC_IRQn = 2, /*!< 2 RTC */ + VCOMP_IRQn = 3, /*!< 3 VCOMP */ + IOSLAVE_IRQn = 4, /*!< 4 IOSLAVE */ + IOSLAVEACC_IRQn = 5, /*!< 5 IOSLAVEACC */ + IOMSTR0_IRQn = 6, /*!< 6 IOMSTR0 */ + IOMSTR1_IRQn = 7, /*!< 7 IOMSTR1 */ + IOMSTR2_IRQn = 8, /*!< 8 IOMSTR2 */ + IOMSTR3_IRQn = 9, /*!< 9 IOMSTR3 */ + IOMSTR4_IRQn = 10, /*!< 10 IOMSTR4 */ + IOMSTR5_IRQn = 11, /*!< 11 IOMSTR5 */ + BLE_IRQn = 12, /*!< 12 BLE */ + GPIO_IRQn = 13, /*!< 13 GPIO */ + CTIMER_IRQn = 14, /*!< 14 CTIMER */ + UART0_IRQn = 15, /*!< 15 UART0 */ + UART1_IRQn = 16, /*!< 16 UART1 */ + SCARD_IRQn = 17, /*!< 17 SCARD */ + ADC_IRQn = 18, /*!< 18 ADC */ + PDM_IRQn = 19, /*!< 19 PDM */ + MSPI0_IRQn = 20, /*!< 20 MSPI0 */ + STIMER_IRQn = 22, /*!< 22 STIMER */ + STIMER_CMPR0_IRQn = 23, /*!< 23 STIMER_CMPR0 */ + STIMER_CMPR1_IRQn = 24, /*!< 24 STIMER_CMPR1 */ + STIMER_CMPR2_IRQn = 25, /*!< 25 STIMER_CMPR2 */ + STIMER_CMPR3_IRQn = 26, /*!< 26 STIMER_CMPR3 */ + STIMER_CMPR4_IRQn = 27, /*!< 27 STIMER_CMPR4 */ + STIMER_CMPR5_IRQn = 28, /*!< 28 STIMER_CMPR5 */ + STIMER_CMPR6_IRQn = 29, /*!< 29 STIMER_CMPR6 */ + STIMER_CMPR7_IRQn = 30, /*!< 30 STIMER_CMPR7 */ + CLKGEN_IRQn = 31, /*!< 31 CLKGEN */ + MSPI1_IRQn = 32, /*!< 32 MSPI1 */ + MSPI2_IRQn = 33 /*!< 33 MSPI2 */ +} IRQn_Type; + + + +/* =========================================================================================================================== */ +/* ================ Processor and Core Peripheral Section ================ */ +/* =========================================================================================================================== */ + +/* =========================== Configuration of the ARM Cortex-M4 Processor and Core Peripherals =========================== */ +#define __CM4_REV 0x0100U /*!< CM4 Core Revision */ +#define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ + + +/** @} */ /* End of group Configuration_of_CMSIS */ + +#include "core_cm4.h" /*!< ARM Cortex-M4 processor and core peripherals */ +#include "system_apollo3c.h" /*!< apollo3c System */ + +#ifndef __IM /*!< Fallback for older CMSIS versions */ + #define __IM __I +#endif +#ifndef __OM /*!< Fallback for older CMSIS versions */ + #define __OM __O +#endif +#ifndef __IOM /*!< Fallback for older CMSIS versions */ + #define __IOM __IO +#endif + + +/* ======================================== Start of section using anonymous unions ======================================== */ +#if defined (__CC_ARM) + #pragma push + #pragma anon_unions +#elif defined (__ICCARM__) + #pragma language=extended +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wc11-extensions" + #pragma clang diagnostic ignored "-Wreserved-id-macro" + #pragma clang diagnostic ignored "-Wgnu-anonymous-struct" + #pragma clang diagnostic ignored "-Wnested-anon-types" +#elif defined (__GNUC__) + /* anonymous unions are enabled by default */ +#elif defined (__TMS470__) + /* anonymous unions are enabled by default */ +#elif defined (__TASKING__) + #pragma warning 586 +#elif defined (__CSMC__) + /* anonymous unions are enabled by default */ +#else + #warning Not supported compiler type +#endif + + +/* =========================================================================================================================== */ +/* ================ Device Specific Peripheral Section ================ */ +/* =========================================================================================================================== */ + + +/** @addtogroup Device_Peripheral_peripherals + * @{ + */ + + + +/* =========================================================================================================================== */ +/* ================ ADC ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Analog Digital Converter Control (ADC) + */ + +typedef struct { /*!< (@ 0x50010000) ADC Structure */ + + union { + __IOM uint32_t CFG; /*!< (@ 0x00000000) Configuration Register */ + + struct { + __IOM uint32_t ADCEN : 1; /*!< [0..0] This bit enables the ADC module. While the ADC is enabled, + the ADCCFG and SLOT Configuration regsiter settings must + remain stable and unchanged. All configuration register + settings, slot configuration settings and window comparison + settings should be written prior to setting the ADCEN bit + to '1'. */ + __IM uint32_t : 1; + __IOM uint32_t RPTEN : 1; /*!< [2..2] This bit enables Repeating Scan Mode. */ + __IOM uint32_t LPMODE : 1; /*!< [3..3] Select power mode to enter between active scans. */ + __IOM uint32_t CKMODE : 1; /*!< [4..4] Clock mode register */ + __IM uint32_t : 3; + __IOM uint32_t REFSEL : 2; /*!< [9..8] Select the ADC reference voltage. */ + __IM uint32_t : 2; + __IOM uint32_t DFIFORDEN : 1; /*!< [12..12] Destructive FIFO Read Enable. Setting this will enable + FIFO pop upon reading the FIFOPR register. */ + __IM uint32_t : 3; + __IOM uint32_t TRIGSEL : 3; /*!< [18..16] Select the ADC trigger source. */ + __IOM uint32_t TRIGPOL : 1; /*!< [19..19] This bit selects the ADC trigger polarity for external + off chip triggers. */ + __IM uint32_t : 4; + __IOM uint32_t CLKSEL : 2; /*!< [25..24] Select the source and frequency for the ADC clock. + All values not enumerated below are undefined. */ + } CFG_b; + } ; + + union { + __IOM uint32_t STAT; /*!< (@ 0x00000004) ADC Power Status */ + + struct { + __IOM uint32_t PWDSTAT : 1; /*!< [0..0] Indicates the power-status of the ADC. */ + } STAT_b; + } ; + + union { + __IOM uint32_t SWT; /*!< (@ 0x00000008) Software trigger */ + + struct { + __IOM uint32_t SWT : 8; /*!< [7..0] Writing 0x37 to this register generates a software trigger. */ + } SWT_b; + } ; + + union { + __IOM uint32_t SL0CFG; /*!< (@ 0x0000000C) Slot 0 Configuration Register */ + + struct { + __IOM uint32_t SLEN0 : 1; /*!< [0..0] This bit enables slot 0 for ADC conversions. */ + __IOM uint32_t WCEN0 : 1; /*!< [1..1] This bit enables the window compare function for slot + 0. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL0 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE0 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL0 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL0CFG_b; + } ; + + union { + __IOM uint32_t SL1CFG; /*!< (@ 0x00000010) Slot 1 Configuration Register */ + + struct { + __IOM uint32_t SLEN1 : 1; /*!< [0..0] This bit enables slot 1 for ADC conversions. */ + __IOM uint32_t WCEN1 : 1; /*!< [1..1] This bit enables the window compare function for slot + 1. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL1 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE1 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL1 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL1CFG_b; + } ; + + union { + __IOM uint32_t SL2CFG; /*!< (@ 0x00000014) Slot 2 Configuration Register */ + + struct { + __IOM uint32_t SLEN2 : 1; /*!< [0..0] This bit enables slot 2 for ADC conversions. */ + __IOM uint32_t WCEN2 : 1; /*!< [1..1] This bit enables the window compare function for slot + 2. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL2 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE2 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL2 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL2CFG_b; + } ; + + union { + __IOM uint32_t SL3CFG; /*!< (@ 0x00000018) Slot 3 Configuration Register */ + + struct { + __IOM uint32_t SLEN3 : 1; /*!< [0..0] This bit enables slot 3 for ADC conversions. */ + __IOM uint32_t WCEN3 : 1; /*!< [1..1] This bit enables the window compare function for slot + 3. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL3 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE3 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL3 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL3CFG_b; + } ; + + union { + __IOM uint32_t SL4CFG; /*!< (@ 0x0000001C) Slot 4 Configuration Register */ + + struct { + __IOM uint32_t SLEN4 : 1; /*!< [0..0] This bit enables slot 4 for ADC conversions. */ + __IOM uint32_t WCEN4 : 1; /*!< [1..1] This bit enables the window compare function for slot + 4. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL4 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE4 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL4 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL4CFG_b; + } ; + + union { + __IOM uint32_t SL5CFG; /*!< (@ 0x00000020) Slot 5 Configuration Register */ + + struct { + __IOM uint32_t SLEN5 : 1; /*!< [0..0] This bit enables slot 5 for ADC conversions. */ + __IOM uint32_t WCEN5 : 1; /*!< [1..1] This bit enables the window compare function for slot + 5. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL5 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE5 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL5 : 3; /*!< [26..24] Select number of measurements to average in the accumulate + divide module for this slot. */ + } SL5CFG_b; + } ; + + union { + __IOM uint32_t SL6CFG; /*!< (@ 0x00000024) Slot 6 Configuration Register */ + + struct { + __IOM uint32_t SLEN6 : 1; /*!< [0..0] This bit enables slot 6 for ADC conversions. */ + __IOM uint32_t WCEN6 : 1; /*!< [1..1] This bit enables the window compare function for slot + 6. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL6 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE6 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL6 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL6CFG_b; + } ; + + union { + __IOM uint32_t SL7CFG; /*!< (@ 0x00000028) Slot 7 Configuration Register */ + + struct { + __IOM uint32_t SLEN7 : 1; /*!< [0..0] This bit enables slot 7 for ADC conversions. */ + __IOM uint32_t WCEN7 : 1; /*!< [1..1] This bit enables the window compare function for slot + 7. */ + __IM uint32_t : 6; + __IOM uint32_t CHSEL7 : 4; /*!< [11..8] Select one of the 14 channel inputs for this slot. */ + __IM uint32_t : 4; + __IOM uint32_t PRMODE7 : 2; /*!< [17..16] Set the Precision Mode For Slot. */ + __IM uint32_t : 6; + __IOM uint32_t ADSEL7 : 3; /*!< [26..24] Select the number of measurements to average in the + accumulate divide module for this slot. */ + } SL7CFG_b; + } ; + + union { + __IOM uint32_t WULIM; /*!< (@ 0x0000002C) Window Comparator Upper Limits Register */ + + struct { + __IOM uint32_t ULIM : 20; /*!< [19..0] Sets the upper limit for the window comparator. */ + } WULIM_b; + } ; + + union { + __IOM uint32_t WLLIM; /*!< (@ 0x00000030) Window Comparator Lower Limits Register */ + + struct { + __IOM uint32_t LLIM : 20; /*!< [19..0] Sets the lower limit for the window comparator. */ + } WLLIM_b; + } ; + + union { + __IOM uint32_t SCWLIM; /*!< (@ 0x00000034) Scale Window Comparator Limits */ + + struct { + __IOM uint32_t SCWLIMEN : 1; /*!< [0..0] Scale the window limits compare values per precision + mode. When set to 0x0 (default), the values in the 20-bit + limits registers will compare directly with the FIFO values + regardless of the precision mode the slot is configured + to. When set to 0x1, the compare values will be divided + by the difference in precision bits while performing the + window limit comparisons. */ + } SCWLIM_b; + } ; + + union { + __IOM uint32_t FIFO; /*!< (@ 0x00000038) FIFO Data and Valid Count Register */ + + struct { + __IOM uint32_t DATA : 20; /*!< [19..0] Oldest data in the FIFO. */ + __IOM uint32_t COUNT : 8; /*!< [27..20] Number of valid entries in the ADC FIFO. */ + __IOM uint32_t SLOTNUM : 3; /*!< [30..28] Slot number associated with this FIFO data. */ + __IOM uint32_t RSVD : 1; /*!< [31..31] RESERVED. */ + } FIFO_b; + } ; + + union { + __IOM uint32_t FIFOPR; /*!< (@ 0x0000003C) FIFO Data and Valid Count Register */ + + struct { + __IOM uint32_t DATA : 20; /*!< [19..0] Oldest data in the FIFO. */ + __IOM uint32_t COUNT : 8; /*!< [27..20] Number of valid entries in the ADC FIFO. */ + __IOM uint32_t SLOTNUMPR : 3; /*!< [30..28] Slot number associated with this FIFO data. */ + __IOM uint32_t RSVDPR : 1; /*!< [31..31] RESERVED. */ + } FIFOPR_b; + } ; + __IM uint32_t RESERVED[112]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) ADC Interrupt registers: Enable */ + + struct { + __IOM uint32_t CNVCMP : 1; /*!< [0..0] ADC conversion complete interrupt. */ + __IOM uint32_t SCNCMP : 1; /*!< [1..1] ADC scan complete interrupt. */ + __IOM uint32_t FIFOOVR1 : 1; /*!< [2..2] FIFO 75 percent full interrupt. */ + __IOM uint32_t FIFOOVR2 : 1; /*!< [3..3] FIFO 100 percent full interrupt. */ + __IOM uint32_t WCEXC : 1; /*!< [4..4] Window comparator voltage excursion interrupt. */ + __IOM uint32_t WCINC : 1; /*!< [5..5] Window comparator voltage incursion interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Transfer Complete */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Condition */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) ADC Interrupt registers: Status */ + + struct { + __IOM uint32_t CNVCMP : 1; /*!< [0..0] ADC conversion complete interrupt. */ + __IOM uint32_t SCNCMP : 1; /*!< [1..1] ADC scan complete interrupt. */ + __IOM uint32_t FIFOOVR1 : 1; /*!< [2..2] FIFO 75 percent full interrupt. */ + __IOM uint32_t FIFOOVR2 : 1; /*!< [3..3] FIFO 100 percent full interrupt. */ + __IOM uint32_t WCEXC : 1; /*!< [4..4] Window comparator voltage excursion interrupt. */ + __IOM uint32_t WCINC : 1; /*!< [5..5] Window comparator voltage incursion interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Transfer Complete */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Condition */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) ADC Interrupt registers: Clear */ + + struct { + __IOM uint32_t CNVCMP : 1; /*!< [0..0] ADC conversion complete interrupt. */ + __IOM uint32_t SCNCMP : 1; /*!< [1..1] ADC scan complete interrupt. */ + __IOM uint32_t FIFOOVR1 : 1; /*!< [2..2] FIFO 75 percent full interrupt. */ + __IOM uint32_t FIFOOVR2 : 1; /*!< [3..3] FIFO 100 percent full interrupt. */ + __IOM uint32_t WCEXC : 1; /*!< [4..4] Window comparator voltage excursion interrupt. */ + __IOM uint32_t WCINC : 1; /*!< [5..5] Window comparator voltage incursion interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Transfer Complete */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Condition */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) ADC Interrupt registers: Set */ + + struct { + __IOM uint32_t CNVCMP : 1; /*!< [0..0] ADC conversion complete interrupt. */ + __IOM uint32_t SCNCMP : 1; /*!< [1..1] ADC scan complete interrupt. */ + __IOM uint32_t FIFOOVR1 : 1; /*!< [2..2] FIFO 75 percent full interrupt. */ + __IOM uint32_t FIFOOVR2 : 1; /*!< [3..3] FIFO 100 percent full interrupt. */ + __IOM uint32_t WCEXC : 1; /*!< [4..4] Window comparator voltage excursion interrupt. */ + __IOM uint32_t WCINC : 1; /*!< [5..5] Window comparator voltage incursion interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Transfer Complete */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Condition */ + } INTSET_b; + } ; + __IM uint32_t RESERVED1[12]; + + union { + __IOM uint32_t DMATRIGEN; /*!< (@ 0x00000240) DMA Trigger Enable Register */ + + struct { + __IOM uint32_t DFIFO75 : 1; /*!< [0..0] Trigger DMA upon FIFO 75 percent Full */ + __IOM uint32_t DFIFOFULL : 1; /*!< [1..1] Trigger DMA upon FIFO 100 percent Full */ + } DMATRIGEN_b; + } ; + + union { + __IOM uint32_t DMATRIGSTAT; /*!< (@ 0x00000244) DMA Trigger Status Register */ + + struct { + __IOM uint32_t D75STAT : 1; /*!< [0..0] Triggered DMA from FIFO 75 percent Full */ + __IOM uint32_t DFULLSTAT : 1; /*!< [1..1] Triggered DMA from FIFO 100 percent Full */ + } DMATRIGSTAT_b; + } ; + __IM uint32_t RESERVED2[14]; + + union { + __IOM uint32_t DMACFG; /*!< (@ 0x00000280) DMA Configuration Register */ + + struct { + __IOM uint32_t DMAEN : 1; /*!< [0..0] DMA Enable */ + __IM uint32_t : 1; + __IOM uint32_t DMADIR : 1; /*!< [2..2] Direction */ + __IM uint32_t : 5; + __IOM uint32_t DMAPRI : 1; /*!< [8..8] Sets the Priority of the DMA request */ + __IOM uint32_t DMADYNPRI : 1; /*!< [9..9] Enables dynamic priority based on FIFO fullness. When + FIFO is full, priority is automatically set to HIGH. Otherwise, + DMAPRI is used. */ + __IM uint32_t : 6; + __IOM uint32_t DMAHONSTAT : 1; /*!< [16..16] Halt New ADC conversions until DMA Status DMAERR and + DMACPL Cleared. */ + __IOM uint32_t DMAMSK : 1; /*!< [17..17] Mask the FIFOCNT and SLOTNUM when transferring FIFO + contents to memory */ + __IOM uint32_t DPWROFF : 1; /*!< [18..18] Power Off the ADC System upon DMACPL. */ + } DMACFG_b; + } ; + __IM uint32_t RESERVED3; + + union { + __IOM uint32_t DMATOTCOUNT; /*!< (@ 0x00000288) DMA Total Transfer Count */ + + struct { + __IM uint32_t : 2; + __IOM uint32_t TOTCOUNT : 16; /*!< [17..2] Total Transfer Count */ + } DMATOTCOUNT_b; + } ; + + union { + __IOM uint32_t DMATARGADDR; /*!< (@ 0x0000028C) DMA Target Address Register */ + + struct { + __IOM uint32_t LTARGADDR : 20; /*!< [19..0] DMA Target Address */ + __IOM uint32_t UTARGADDR : 12; /*!< [31..20] SRAM Target */ + } DMATARGADDR_b; + } ; + + union { + __IOM uint32_t DMASTAT; /*!< (@ 0x00000290) DMA Status Register */ + + struct { + __IOM uint32_t DMATIP : 1; /*!< [0..0] DMA Transfer In Progress */ + __IOM uint32_t DMACPL : 1; /*!< [1..1] DMA Transfer Complete */ + __IOM uint32_t DMAERR : 1; /*!< [2..2] DMA Error */ + } DMASTAT_b; + } ; +} ADC_Type; /*!< Size = 660 (0x294) */ + + + +/* =========================================================================================================================== */ +/* ================ APBDMA ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief APB DMA Register Interfaces (APBDMA) + */ + +typedef struct { /*!< (@ 0x40011000) APBDMA Structure */ + + union { + __IOM uint32_t BBVALUE; /*!< (@ 0x00000000) Control Register */ + + struct { + __IOM uint32_t DATAOUT : 8; /*!< [7..0] Data Output Values */ + __IM uint32_t : 8; + __IOM uint32_t PIN : 8; /*!< [23..16] PIO values */ + } BBVALUE_b; + } ; + + union { + __IOM uint32_t BBSETCLEAR; /*!< (@ 0x00000004) Set/Clear Register */ + + struct { + __IOM uint32_t SET : 8; /*!< [7..0] Write 1 to Set PIO value (set hier priority than clear + if both bit set) */ + __IM uint32_t : 8; + __IOM uint32_t CLEAR : 8; /*!< [23..16] Write 1 to Clear PIO value */ + } BBSETCLEAR_b; + } ; + + union { + __IOM uint32_t BBINPUT; /*!< (@ 0x00000008) PIO Input Values */ + + struct { + __IOM uint32_t DATAIN : 8; /*!< [7..0] PIO values */ + } BBINPUT_b; + } ; + __IM uint32_t RESERVED[5]; + + union { + __IOM uint32_t DEBUGDATA; /*!< (@ 0x00000020) PIO Input Values */ + + struct { + __IOM uint32_t DEBUGDATA : 32; /*!< [31..0] Debug Data */ + } DEBUGDATA_b; + } ; + __IM uint32_t RESERVED1[7]; + + union { + __IOM uint32_t DEBUG; /*!< (@ 0x00000040) PIO Input Values */ + + struct { + __IOM uint32_t DEBUGEN : 4; /*!< [3..0] Debug Enable */ + } DEBUG_b; + } ; +} APBDMA_Type; /*!< Size = 68 (0x44) */ + + + +/* =========================================================================================================================== */ +/* ================ BLEIF ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief BLE Interface (BLEIF) + */ + +typedef struct { /*!< (@ 0x5000C000) BLEIF Structure */ + + union { + __IOM uint32_t FIFO; /*!< (@ 0x00000000) FIFO Access Port */ + + struct { + __IOM uint32_t FIFO : 32; /*!< [31..0] FIFO direct access. Only locations 0 - 3F will return + valid information. */ + } FIFO_b; + } ; + __IM uint32_t RESERVED[63]; + + union { + __IOM uint32_t FIFOPTR; /*!< (@ 0x00000100) FIFO size and remaining slots open values */ + + struct { + __IOM uint32_t FIFO0SIZ : 8; /*!< [7..0] The number of valid data bytes currently in the FIFO + 0 (written by MCU, read by interface) */ + __IOM uint32_t FIFO0REM : 8; /*!< [15..8] The number of remaining data bytes slots currently in + FIFO 0 (written by MCU, read by interface) */ + __IOM uint32_t FIFO1SIZ : 8; /*!< [23..16] The number of valid data bytes currently in FIFO 1 + (written by interface, read by MCU) */ + __IOM uint32_t FIFO1REM : 8; /*!< [31..24] The number of remaining data bytes slots currently + in FIFO 1 (written by interface, read by MCU) */ + } FIFOPTR_b; + } ; + + union { + __IOM uint32_t FIFOTHR; /*!< (@ 0x00000104) FIFO Threshold Configuration */ + + struct { + __IOM uint32_t FIFORTHR : 6; /*!< [5..0] FIFO read threshold in bytes. A value of 0 will disable + the read FIFO level from activating the threshold interrupt. + If this field is non-zero, it will trigger a threshold + interrupt when the read fifo contains FIFORTHR valid bytes + of data, as indicated by the FIFO1SIZ field. This is intended + to signal when a data transfer of FIFORTHR bytes can be + done from the IOM module to the host via the read fifo + to support large IOM read operations. */ + __IM uint32_t : 2; + __IOM uint32_t FIFOWTHR : 6; /*!< [13..8] FIFO write threshold in bytes. A value of 0 will disable + the write FIFO level from activating the threshold interrupt. + If this field is non-zero, it will trigger a threshold + interrupt when the write fifo contains FIFOWTHR free bytes, + as indicated by the FIFO0REM field. This is intended to + signal when a transfer of FIFOWTHR bytes can be done from + the host to the IOM write fifo to support large IOM write + operations. */ + } FIFOTHR_b; + } ; + + union { + __IOM uint32_t FIFOPOP; /*!< (@ 0x00000108) FIFO POP register */ + + struct { + __IOM uint32_t FIFODOUT : 32; /*!< [31..0] This register will return the read data indicated by + the current read pointer on reads. If the POPWR control + bit in the FIFOCTRL register is reset (0), the fifo read + pointer will be advanced by one word as a result of the + read.If the POPWR bit is set (1), the fifo read pointer + will only be advanced after a write operation to this register. + The write data is ignored for this register.If less than + a even word multiple is available, and the command is completed, + the module will return the word containing */ + } FIFOPOP_b; + } ; + + union { + __IOM uint32_t FIFOPUSH; /*!< (@ 0x0000010C) FIFO PUSH register */ + + struct { + __IOM uint32_t FIFODIN : 32; /*!< [31..0] This register is used to write the FIFORAM in FIFO mode + and will cause a push event to occur to the next open slot + within the FIFORAM. Writing to this register will cause + the write point to increment by 1 word(4 bytes). */ + } FIFOPUSH_b; + } ; + + union { + __IOM uint32_t FIFOCTRL; /*!< (@ 0x00000110) FIFO Control Register */ + + struct { + __IOM uint32_t POPWR : 1; /*!< [0..0] Selects the mode in which 'pop' events are done for the + fifo read operations. A value of '1' will prevent a pop + event on a read operation, and will require a write to + the FIFOPOP register to create a pop event.A value of '0' + in this register will allow a pop event to occur on the + read of the FIFOPOP register, and may cause inadvertant + fifo pops when used in a debugging mode. */ + __IOM uint32_t FIFORSTN : 1; /*!< [1..1] Active low manual reset of the fifo. Write to 0 to reset + fifo, and then write to 1 to remove the reset. */ + } FIFOCTRL_b; + } ; + + union { + __IOM uint32_t FIFOLOC; /*!< (@ 0x00000114) FIFO Pointers */ + + struct { + __IOM uint32_t FIFOWPTR : 4; /*!< [3..0] Current FIFO write pointer. Value is the index into the + outgoing FIFO (FIFO0), which is used during write operations + to external devices. */ + __IM uint32_t : 4; + __IOM uint32_t FIFORPTR : 4; /*!< [11..8] Current FIFO read pointer. Used to index into the incoming + FIFO (FIFO1), which is used to store read data returned + from external devices during a read operation. */ + } FIFOLOC_b; + } ; + __IM uint32_t RESERVED1[58]; + + union { + __IOM uint32_t CLKCFG; /*!< (@ 0x00000200) I/O Clock Configuration */ + + struct { + __IOM uint32_t IOCLKEN : 1; /*!< [0..0] Enable for the interface clock. Must be enabled prior + to executing any IO operations. */ + __IM uint32_t : 7; + __IOM uint32_t FSEL : 3; /*!< [10..8] Select the input clock frequency. */ + __IOM uint32_t CLK32KEN : 1; /*!< [11..11] Enable for the 32Khz clock to the BLE module */ + __IOM uint32_t DIV3 : 1; /*!< [12..12] Enable of the divide by 3 of the source IOCLK. */ + } CLKCFG_b; + } ; + __IM uint32_t RESERVED2[2]; + + union { + __IOM uint32_t CMD; /*!< (@ 0x0000020C) Command and offset Register */ + + struct { + __IOM uint32_t CMD : 5; /*!< [4..0] Command for submodule. */ + __IOM uint32_t OFFSETCNT : 2; /*!< [6..5] Number of offset bytes to use for the command - 0, 1, + 2, 3 are valid selections. The second (byte 1) and third + byte (byte 2) are read from the OFFSETHI register, and + the low order byte is pulled from this register in the + OFFSETLO field.Offset bytes are transmitted highest byte + first. EG if offsetcnt == 3, OFFSETHI[15:8] will be transmitted + first, then OFFSETHI[7:0] then OFFSETLO.If offsetcnt == + 2, OFFSETHI[7:0] will be transmitted, then OFFSETLO.If + offsetcnt == 1, only OFFSETLO will be transmitted. */ + __IOM uint32_t CONT : 1; /*!< [7..7] Contine to hold the bus after the current transaction + if set to a 1 with a new command issued. */ + __IOM uint32_t TSIZE : 12; /*!< [19..8] Defines the transaction size in bytes. The offset transfer + is not included in this size. */ + __IOM uint32_t CMDSEL : 2; /*!< [21..20] Command Specific selection information */ + __IM uint32_t : 2; + __IOM uint32_t OFFSETLO : 8; /*!< [31..24] This register holds the low order byte of offset to + be used in the transaction. The number of offset bytes + to use is set with bits 1:0 of the command. Offset bytes + are transferred starting from the highest byte first. */ + } CMD_b; + } ; + + union { + __IOM uint32_t CMDRPT; /*!< (@ 0x00000210) Command Repeat Register */ + + struct { + __IOM uint32_t CMDRPT : 5; /*!< [4..0] Count of number of times to repeat the next command. */ + } CMDRPT_b; + } ; + + union { + __IOM uint32_t OFFSETHI; /*!< (@ 0x00000214) High order offset bytes */ + + struct { + __IOM uint32_t OFFSETHI : 16; /*!< [15..0] Holds the high order bytes of the 2 or 3 byte offset + phase of a transaction. */ + } OFFSETHI_b; + } ; + + union { + __IOM uint32_t CMDSTAT; /*!< (@ 0x00000218) Command status */ + + struct { + __IOM uint32_t CCMD : 5; /*!< [4..0] current command that is being executed */ + __IOM uint32_t CMDSTAT : 3; /*!< [7..5] The current status of the command execution. */ + __IOM uint32_t CTSIZE : 12; /*!< [19..8] The current number of bytes still to be transferred + with this command. This field will count down to zero. */ + } CMDSTAT_b; + } ; + __IM uint32_t RESERVED3; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000220) IO Master Interrupts: Enable */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command Complete interrupt. Asserted when the current + operation has completed. For repeated commands, this will + only be asserted when the final repeated command is completed. */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. Asserted when a pop operation + is done to a empty read FIFO. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t B2MST : 1; /*!< [4..4] B2M State change interrupt. Asserted on any change in + the B2M_STATE signal from the BLE Core. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t BLECIRQ : 1; /*!< [7..7] BLE Core IRQ signal. Asserted when the BLE_IRQ signal + from the BLE Core is asserted, indicating the availability + of read data from the BLE Core. */ + __IOM uint32_t BLECSSTAT : 1; /*!< [8..8] BLE Core SPI Status interrupt. Asserted when the SPI_STATUS + signal from the BLE Core is asserted, indicating that SPI + writes can be done to the BLE Core.Transfers to the BLE + Core should only be done when this signal is high. */ + __IOM uint32_t DCMP : 1; /*!< [9..9] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [10..10] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [11..11] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [12..12] Command queue write operation executed a register write + with the register address bit 0 set to 1. The low address + bits in the CQ address fields are unused and bit 0 can + be used to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [13..13] Command queue error during processing. When an error + occurs, the system will stop processing and halt operations + to allow software to take recovery actions */ + __IOM uint32_t B2MSLEEP : 1; /*!< [14..14] The B2M_STATE from the BLE Core transitioned into the + sleep state */ + __IOM uint32_t B2MACTIVE : 1; /*!< [15..15] Revision A: The B2M_STATE from the BLE Core transitioned + into the active state Revision B: Falling BLE Core IRQ + signal. Asserted when the BLE_IRQ signal from the BLE Core + is de-asserted (1 -> 0) */ + __IOM uint32_t B2MSHUTDN : 1; /*!< [16..16] Revision A: The B2M_STATE from the BLE Core transitioned + into shutdown state Revision B: Falling BLE Core Status + signal. Asserted when the BLE_STATUS signal from the BLE + Core is de-asserted (1 -> 0) */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000224) IO Master Interrupts: Status */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command Complete interrupt. Asserted when the current + operation has completed. For repeated commands, this will + only be asserted when the final repeated command is completed. */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. Asserted when a pop operation + is done to a empty read FIFO. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t B2MST : 1; /*!< [4..4] B2M State change interrupt. Asserted on any change in + the B2M_STATE signal from the BLE Core. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t BLECIRQ : 1; /*!< [7..7] BLE Core IRQ signal. Asserted when the BLE_IRQ signal + from the BLE Core is asserted, indicating the availability + of read data from the BLE Core. */ + __IOM uint32_t BLECSSTAT : 1; /*!< [8..8] BLE Core SPI Status interrupt. Asserted when the SPI_STATUS + signal from the BLE Core is asserted, indicating that SPI + writes can be done to the BLE Core.Transfers to the BLE + Core should only be done when this signal is high. */ + __IOM uint32_t DCMP : 1; /*!< [9..9] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [10..10] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [11..11] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [12..12] Command queue write operation executed a register write + with the register address bit 0 set to 1. The low address + bits in the CQ address fields are unused and bit 0 can + be used to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [13..13] Command queue error during processing. When an error + occurs, the system will stop processing and halt operations + to allow software to take recovery actions */ + __IOM uint32_t B2MSLEEP : 1; /*!< [14..14] The B2M_STATE from the BLE Core transitioned into the + sleep state */ + __IOM uint32_t B2MACTIVE : 1; /*!< [15..15] Revision A: The B2M_STATE from the BLE Core transitioned + into the active state Revision B: Falling BLE Core IRQ + signal. Asserted when the BLE_IRQ signal from the BLE Core + is de-asserted (1 -> 0) */ + __IOM uint32_t B2MSHUTDN : 1; /*!< [16..16] Revision A: The B2M_STATE from the BLE Core transitioned + into shutdown state Revision B: Falling BLE Core Status + signal. Asserted when the BLE_STATUS signal from the BLE + Core is de-asserted (1 -> 0) */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000228) IO Master Interrupts: Clear */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command Complete interrupt. Asserted when the current + operation has completed. For repeated commands, this will + only be asserted when the final repeated command is completed. */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. Asserted when a pop operation + is done to a empty read FIFO. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t B2MST : 1; /*!< [4..4] B2M State change interrupt. Asserted on any change in + the B2M_STATE signal from the BLE Core. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t BLECIRQ : 1; /*!< [7..7] BLE Core IRQ signal. Asserted when the BLE_IRQ signal + from the BLE Core is asserted, indicating the availability + of read data from the BLE Core. */ + __IOM uint32_t BLECSSTAT : 1; /*!< [8..8] BLE Core SPI Status interrupt. Asserted when the SPI_STATUS + signal from the BLE Core is asserted, indicating that SPI + writes can be done to the BLE Core.Transfers to the BLE + Core should only be done when this signal is high. */ + __IOM uint32_t DCMP : 1; /*!< [9..9] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [10..10] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [11..11] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [12..12] Command queue write operation executed a register write + with the register address bit 0 set to 1. The low address + bits in the CQ address fields are unused and bit 0 can + be used to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [13..13] Command queue error during processing. When an error + occurs, the system will stop processing and halt operations + to allow software to take recovery actions */ + __IOM uint32_t B2MSLEEP : 1; /*!< [14..14] The B2M_STATE from the BLE Core transitioned into the + sleep state */ + __IOM uint32_t B2MACTIVE : 1; /*!< [15..15] Revision A: The B2M_STATE from the BLE Core transitioned + into the active state Revision B: Falling BLE Core IRQ + signal. Asserted when the BLE_IRQ signal from the BLE Core + is de-asserted (1 -> 0) */ + __IOM uint32_t B2MSHUTDN : 1; /*!< [16..16] Revision A: The B2M_STATE from the BLE Core transitioned + into shutdown state Revision B: Falling BLE Core Status + signal. Asserted when the BLE_STATUS signal from the BLE + Core is de-asserted (1 -> 0) */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000022C) IO Master Interrupts: Set */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command Complete interrupt. Asserted when the current + operation has completed. For repeated commands, this will + only be asserted when the final repeated command is completed. */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. Asserted when a pop operation + is done to a empty read FIFO. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t B2MST : 1; /*!< [4..4] B2M State change interrupt. Asserted on any change in + the B2M_STATE signal from the BLE Core. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t BLECIRQ : 1; /*!< [7..7] BLE Core IRQ signal. Asserted when the BLE_IRQ signal + from the BLE Core is asserted, indicating the availability + of read data from the BLE Core. */ + __IOM uint32_t BLECSSTAT : 1; /*!< [8..8] BLE Core SPI Status interrupt. Asserted when the SPI_STATUS + signal from the BLE Core is asserted, indicating that SPI + writes can be done to the BLE Core.Transfers to the BLE + Core should only be done when this signal is high. */ + __IOM uint32_t DCMP : 1; /*!< [9..9] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [10..10] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [11..11] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [12..12] Command queue write operation executed a register write + with the register address bit 0 set to 1. The low address + bits in the CQ address fields are unused and bit 0 can + be used to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [13..13] Command queue error during processing. When an error + occurs, the system will stop processing and halt operations + to allow software to take recovery actions */ + __IOM uint32_t B2MSLEEP : 1; /*!< [14..14] The B2M_STATE from the BLE Core transitioned into the + sleep state */ + __IOM uint32_t B2MACTIVE : 1; /*!< [15..15] Revision A: The B2M_STATE from the BLE Core transitioned + into the active state Revision B: Falling BLE Core IRQ + signal. Asserted when the BLE_IRQ signal from the BLE Core + is de-asserted (1 -> 0) */ + __IOM uint32_t B2MSHUTDN : 1; /*!< [16..16] Revision A: The B2M_STATE from the BLE Core transitioned + into shutdown state Revision B: Falling BLE Core Status + signal. Asserted when the BLE_STATUS signal from the BLE + Core is de-asserted (1 -> 0) */ + } INTSET_b; + } ; + + union { + __IOM uint32_t DMATRIGEN; /*!< (@ 0x00000230) DMA Trigger Enable Register */ + + struct { + __IOM uint32_t DCMDCMPEN : 1; /*!< [0..0] Trigger DMA upon command complete. Enables the trigger + of the DMA when a command is completed. When this event + is triggered, the number of words transferred will be the + lesser of the remaining TOTCOUNT bytes, or the number of + bytes in the FIFO when the command completed. If this is + disabled, and the number of bytes in the FIFO is equal + or greater than the TOTCOUNT bytes, a transfer of TOTCOUNT + bytes will be done to ensure read data is stored when the + DMA is completed. */ + __IOM uint32_t DTHREN : 1; /*!< [1..1] Trigger DMA upon THR level reached. For M2P DMA operations + (IOM writes), the trigger will assert when the write FIFO + has (WTHR/4) number of words free in the write FIFO, and + will transfer (WTHR/4) number of wordsor, if the number + of words left to transfer is less than the WTHR value, + will transfer the remaining byte count.For P2M DMA operations, + the trigger will assert when the read FIFO has (RTHR/4) + words available in the read FIFO, and will transfer (RTHR/4) + words to SRAM. This trigger will NOT asser */ + } DMATRIGEN_b; + } ; + + union { + __IOM uint32_t DMATRIGSTAT; /*!< (@ 0x00000234) DMA Trigger Status Register */ + + struct { + __IOM uint32_t DCMDCMP : 1; /*!< [0..0] Triggered DMA from Command complete event. Bit is read + only and can be cleared by disabling the DCMDCMP trigger + enable or by disabling DMA. */ + __IOM uint32_t DTHR : 1; /*!< [1..1] Triggered DMA from THR event. Bit is read only and can + be cleared by disabling the DTHR trigger enable or by disabling + DMA. */ + __IOM uint32_t DTOTCMP : 1; /*!< [2..2] DMA triggered when DCMDCMP = 0, and the amount of data + in the FIFO was enough to complete the DMA operation (greater + than or equal to current TOTCOUNT) when the command completed. + This trigger is default active when the DCMDCMP trigger + isdisabled and there is enough data in the FIFO to complete + the DMA operation. */ + } DMATRIGSTAT_b; + } ; + + union { + __IOM uint32_t DMACFG; /*!< (@ 0x00000238) DMA Configuration Register */ + + struct { + __IOM uint32_t DMAEN : 1; /*!< [0..0] DMA Enable. Setting this bit to EN will start the DMA + operation. This should be the last DMA related register + set prior to issuing the command */ + __IOM uint32_t DMADIR : 1; /*!< [1..1] Direction */ + __IM uint32_t : 6; + __IOM uint32_t DMAPRI : 1; /*!< [8..8] Sets the Priority of the DMA request */ + } DMACFG_b; + } ; + + union { + __IOM uint32_t DMATOTCOUNT; /*!< (@ 0x0000023C) DMA Total Transfer Count */ + + struct { + __IOM uint32_t TOTCOUNT : 12; /*!< [11..0] Triggered DMA from Command complete event occured. Bit + is read only and can be cleared by disabling the DTHR trigger + enable or by disabling DMA. */ + } DMATOTCOUNT_b; + } ; + + union { + __IOM uint32_t DMATARGADDR; /*!< (@ 0x00000240) DMA Target Address Register */ + + struct { + __IOM uint32_t TARGADDR : 21; /*!< [20..0] Bits [19:0] of the target byte address for source of + DMA (either read or write). The address can be any byte + alignment, and does not have to be word aligned. In cases + of non-word aligned addresses, the DMA logic will take + care for ensuring only the target bytes are read/written. */ + __IM uint32_t : 7; + __IOM uint32_t TARGADDR28 : 1; /*!< [28..28] Bit 28 of the target byte address for source of DMA + (either read or write). In cases of non-word aligned addresses, + the DMA logic will take care for ensuring only the target + bytes are read/written.Setting to '1' will select the SRAM. + Setting to '0' will select the flash */ + } DMATARGADDR_b; + } ; + + union { + __IOM uint32_t DMASTAT; /*!< (@ 0x00000244) DMA Status Register */ + + struct { + __IOM uint32_t DMATIP : 1; /*!< [0..0] DMA Transfer In Progress indicator. 1 will indicate that + a DMA transfer is active. The DMA transfer may be waiting + on data, transferring data, or waiting for priority.All + of these will be indicated with a 1. A 0 will indicate + that the DMA is fully complete and no further transactions + will be done. This bit is read only. */ + __IOM uint32_t DMACPL : 1; /*!< [1..1] DMA Transfer Complete. This signals the end of the DMA + operation. This bit can be cleared by writing to 0. */ + __IOM uint32_t DMAERR : 1; /*!< [2..2] DMA Error. This active high bit signals that an error + was encountered during the DMA operation. */ + } DMASTAT_b; + } ; + + union { + __IOM uint32_t CQCFG; /*!< (@ 0x00000248) Command Queue Configuration Register */ + + struct { + __IOM uint32_t CQEN : 1; /*!< [0..0] Command queue enable. When set, will enable the processing + of the command queue and fetches of address/data pairs + will proceed from the word address within the CQADDR register. + Can be disabledusing a CQ executed write to this bit as + well. */ + __IOM uint32_t CQPRI : 1; /*!< [1..1] Sets the Priority of the command queue dma request. */ + } CQCFG_b; + } ; + + union { + __IOM uint32_t CQADDR; /*!< (@ 0x0000024C) CQ Target Read Address Register */ + + struct { + __IM uint32_t : 2; + __IOM uint32_t CQADDR : 19; /*!< [20..2] Bits 19:2 of target byte address for source of CQ (read + only). The buffer must be aligned on a word boundary */ + __IM uint32_t : 7; + __IOM uint32_t CQADDR28 : 1; /*!< [28..28] Bit 28 of target byte address for source of CQ (read + only). Used to denote Flash (0) or SRAM (1) access */ + } CQADDR_b; + } ; + + union { + __IOM uint32_t CQSTAT; /*!< (@ 0x00000250) Command Queue Status Register */ + + struct { + __IOM uint32_t CQTIP : 1; /*!< [0..0] Command queue Transfer In Progress indicator. 1 will + indicate that a CQ transfer is active and this will remain + active even when paused waiting for external event. */ + __IOM uint32_t CQPAUSED : 1; /*!< [1..1] Command queue operation is currently paused. */ + __IOM uint32_t CQERR : 1; /*!< [2..2] Command queue processing Error. This active high bit + signals that an error was encountered during the CQ operation. */ + } CQSTAT_b; + } ; + + union { + __IOM uint32_t CQFLAGS; /*!< (@ 0x00000254) Command Queue Flag Register */ + + struct { + __IOM uint32_t CQFLAGS : 16; /*!< [15..0] Current flag status (read-only). Bits [7:0] are software + controllable and bits [15:8] are hardware status. */ + __IOM uint32_t CQIRQMASK : 16; /*!< [31..16] Provides for a per-bit mask of the flags used to invoke + an interrupt. A '1' in the bit position will enable the + pause event to trigger the interrupt, if the CQWT_int interrupt + is enabled.Bits definitions are the same as CQPAUSE */ + } CQFLAGS_b; + } ; + + union { + __IOM uint32_t CQSETCLEAR; /*!< (@ 0x00000258) Command Queue Flag Set/Clear Register */ + + struct { + __IOM uint32_t CQFSET : 8; /*!< [7..0] Set CQFlag status bits. Will set to 1 the value of any + SWFLAG with a '1' in the corresponding bit position of + this field */ + __IOM uint32_t CQFTGL : 8; /*!< [15..8] Toggle the indicated bit. Will toggle the value of any + SWFLAG with a '1' in the corresponding bit position of + this field */ + __IOM uint32_t CQFCLR : 8; /*!< [23..16] Clear CQFlag status bits. Will clear to 0 any SWFLAG + with a '1' in the corresponding bit position of this field */ + } CQSETCLEAR_b; + } ; + + union { + __IOM uint32_t CQPAUSEEN; /*!< (@ 0x0000025C) Command Queue Pause Enable Register */ + + struct { + __IOM uint32_t CQPEN : 16; /*!< [15..0] Enables the specified event to pause command processing + when active */ + } CQPAUSEEN_b; + } ; + + union { + __IOM uint32_t CQCURIDX; /*!< (@ 0x00000260) IOM Command Queue current index value . Compared + to the CQENDIDX reg contents to generate + the IDXEQ Pause event for command queue */ + + struct { + __IOM uint32_t CQCURIDX : 8; /*!< [7..0] Holds 8 bits of data that will be compared with the CQENDIX + register field. If the values match, the IDXEQ pause event + will be activated, which will cause the pausing of command + quue operation if the IDXEQ bit is enabled in CQPAUSEEN. */ + } CQCURIDX_b; + } ; + + union { + __IOM uint32_t CQENDIDX; /*!< (@ 0x00000264) IOM Command Queue current index value . Compared + to the CQCURIDX reg contents to generate + the IDXEQ Pause event for command queue */ + + struct { + __IOM uint32_t CQENDIDX : 8; /*!< [7..0] Holds 8 bits of data that will be compared with the CQCURIX + register field. If the values match, the IDXEQ pause event + will be activated, which will cause the pausing of command + quue operation if the IDXEQ bit is enabled in CQPAUSEEN. */ + } CQENDIDX_b; + } ; + + union { + __IOM uint32_t STATUS; /*!< (@ 0x00000268) IOM Module Status Register */ + + struct { + __IOM uint32_t ERR : 1; /*!< [0..0] Bit has been deprecated. Please refer to the other error + indicators. This will always return 0. */ + __IOM uint32_t CMDACT : 1; /*!< [1..1] Indicates if the active I/O Command is currently processing + a transaction, or command is complete, but the FIFO pointers + are still syncronizing internally. This bit will go high + atthe start of the transaction, and will go low when the + command is complete, and the data and pointers within the + FIFO have been syncronized. */ + __IOM uint32_t IDLEST : 1; /*!< [2..2] indicates if the active I/O state machine is IDLE. Note + - The state machine could be in idle state due to holdoffs + from data availability, or as the command gets propagated + into the logic from the registers. */ + } STATUS_b; + } ; + __IM uint32_t RESERVED4[37]; + + union { + __IOM uint32_t MSPICFG; /*!< (@ 0x00000300) SPI module master configuration */ + + struct { + __IOM uint32_t SPOL : 1; /*!< [0..0] This bit selects SPI polarity. */ + __IOM uint32_t SPHA : 1; /*!< [1..1] Selects the SPI phase; When 1, will shift the sampling + edge by 1/2 clock. */ + __IOM uint32_t FULLDUP : 1; /*!< [2..2] Full Duplex mode. Capture read data during writes operations */ + __IM uint32_t : 13; + __IOM uint32_t WTFC : 1; /*!< [16..16] Enables flow control of new write transactions based + on the SPI_STATUS signal from the BLE Core. */ + __IOM uint32_t RDFC : 1; /*!< [17..17] Enables flow control of new read transactions based + on the SPI_STATUS signal from the BLE Core. */ + __IM uint32_t : 3; + __IOM uint32_t WTFCPOL : 1; /*!< [21..21] Selects the write flow control signal polarity. The + transfers are halted when the selected flow control signal + is OPPOSITE polarity of this bit. (For example: WTFCPOL + = 0 will allow a SPI_STATUS=1 to pause transfers). */ + __IOM uint32_t RDFCPOL : 1; /*!< [22..22] Selects the read flow control signal polarity. When + set, the clock will be held low until the flow control + is de-asserted. */ + __IOM uint32_t SPILSB : 1; /*!< [23..23] Selects data transfer as MSB first (0) or LSB first + (1) for the data portion of the SPI transaction. The offset + bytes are always transmitted MSB first. */ + __IOM uint32_t DINDLY : 3; /*!< [26..24] Delay tap to use for the input signal (MISO). This + gives more hold time on the input data. */ + __IOM uint32_t DOUTDLY : 3; /*!< [29..27] Delay tap to use for the output signal (MOSI). This + give more hold time on the output data. */ + __IOM uint32_t MSPIRST : 1; /*!< [30..30] Bit is deprecated. setting it will have no effect. */ + } MSPICFG_b; + } ; + + union { + __IOM uint32_t BLECFG; /*!< (@ 0x00000304) BLE Core Control */ + + struct { + __IOM uint32_t PWRSMEN : 1; /*!< [0..0] Enable the power state machine for automatic sequencing + and control of power states of the BLE Core module. */ + __IOM uint32_t BLERSTN : 1; /*!< [1..1] Reset line to the BLE Core. This will reset the BLE core + when asserted ('0') and must be written to '1' prior to + performing any BTLE related operations to the core. */ + __IOM uint32_t WAKEUPCTL : 2; /*!< [3..2] WAKE signal override. Controls the source of the WAKE + signal to the BLE Core. */ + __IOM uint32_t DCDCFLGCTL : 2; /*!< [5..4] DCDCFLG signal override. The value of this field will + be sent to the BLE Core when the PWRSM is off. Otherwise, + the value is supplied from internal logic. */ + __IOM uint32_t BLEHREQCTL : 2; /*!< [7..6] BLEH power on request override. The value of this field + will be sent to the BLE Core when the PWRSM is off. Otherwise, + the value is supplied from internal logic. */ + __IOM uint32_t WT4ACTOFF : 1; /*!< [8..8] Debug control of BLEIF power state machine. Allows transition + into the active state in the BLEIF state without waiting + for dcdc req from BLE Core. */ + __IOM uint32_t MCUFRCSLP : 1; /*!< [9..9] Force power state machine to go to the sleep state. Intended + for debug only. Has no effect on the actual BLE Core state, + only the state of the BLEIF interface state machine. */ + __IOM uint32_t FRCCLK : 1; /*!< [10..10] Force the clock in the BLEIF to be always running */ + __IOM uint32_t STAYASLEEP : 1; /*!< [11..11] Set to prevent the BLE power control module from waking + up the BLE Core after going into power down. To be used + for graceful shutdown, set by software prior to powering + off and will allow assertion of reset from sleep state. */ + __IOM uint32_t PWRISOCTL : 2; /*!< [13..12] Configuration of BLEH isolation control for power related + signals. */ + __IOM uint32_t SPIISOCTL : 2; /*!< [15..14] Configuration of BLEH isolation controls for SPI related + signals. */ + } BLECFG_b; + } ; + + union { + __IOM uint32_t PWRCMD; /*!< (@ 0x00000308) BLE Power command interface */ + + struct { + __IOM uint32_t WAKEREQ : 1; /*!< [0..0] Wake request from the MCU. When asserted (1), the BLE + Interface logic will assert the wakeup request signal to + the BLE Core. Only recognized when in the sleep state */ + __IOM uint32_t RESTART : 1; /*!< [1..1] Restart the BLE Core after going into the shutdown state. + Only valid when in the shutdown state. */ + } PWRCMD_b; + } ; + + union { + __IOM uint32_t BSTATUS; /*!< (@ 0x0000030C) BLE Core status */ + + struct { + __IOM uint32_t B2MSTATE : 3; /*!< [2..0] State of the BLE Core logic. */ + __IOM uint32_t SPISTATUS : 1; /*!< [3..3] Value of the SPISTATUS signal from the BLE Core. The + signal is asserted when the BLE Core is able to accept + write data via the SPI interface. Data should be transmitted + to theBLE core only when this signal is 1. The hardware + will automatically wait for this signal prior to performing + a write operation if flow control is active. */ + __IOM uint32_t DCDCREQ : 1; /*!< [4..4] Value of the DCDCREQ signal from the BLE Core. The DCDCREQ + signal is sent from the core to the BLEIF module when the + BLE core requires BLEH power to be active. When activated, + this isindicated by DCDCFLAG going to 1. */ + __IOM uint32_t DCDCFLAG : 1; /*!< [5..5] Value of the DCDCFLAG signal to the BLE Core. The DCDCFLAG + is a signal to the BLE Core indicating that the BLEH ppower + is active. */ + __IOM uint32_t WAKEUP : 1; /*!< [6..6] Value of the WAKEUP signal to the BLE Core . The WAKEUP + signals is sent from the BLEIF to the BLECORE to request + the BLE Core transition from sleep state to active state. */ + __IOM uint32_t BLEIRQ : 1; /*!< [7..7] Status of the BLEIRQ signal from the BLE Core. A value + of 1 idicates that read data is available in the core and + a read operation needs to be performed. */ + __IOM uint32_t PWRST : 3; /*!< [10..8] Current status of the power state machine */ + __IOM uint32_t BLEHACK : 1; /*!< [11..11] Value of the BLEHACK signal from the power control + unit. If the signal is '1', the BLEH power is active and + ready for use. */ + __IOM uint32_t BLEHREQ : 1; /*!< [12..12] Value of the BLEHREQ signal to the power control unit. + The BLEHREQ signal is sent from the BLEIF module to the + power control module to request the BLEH power up. When + the BLEHACK signal is asserted,BLEH power is stable and + ready for use. */ + } BSTATUS_b; + } ; + __IM uint32_t RESERVED5[64]; + + union { + __IOM uint32_t BLEDBG; /*!< (@ 0x00000410) BLEIF Master Debug Register */ + + struct { + __IOM uint32_t DBGEN : 1; /*!< [0..0] Debug Enable. Setting this bit will enable the update + of data within this register, otherwise it is clock gated + for power savings */ + __IOM uint32_t IOCLKON : 1; /*!< [1..1] IOCLK debug clock control. Enable IO_CLK to be active + when this bit is '1'. Otherwise, the clock is controlled + with gating from the logic as needed. */ + __IOM uint32_t APBCLKON : 1; /*!< [2..2] APBCLK debug clock control. Enable APB_CLK to be active + when this bit is '1'. Otherwise, the clock is controlled + with gating from the logic as needed. */ + __IOM uint32_t DBGDATA : 29; /*!< [31..3] Debug data */ + } BLEDBG_b; + } ; +} BLEIF_Type; /*!< Size = 1044 (0x414) */ + + + +/* =========================================================================================================================== */ +/* ================ CACHECTRL ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Flash Cache Controller (CACHECTRL) + */ + +typedef struct { /*!< (@ 0x40018000) CACHECTRL Structure */ + + union { + __IOM uint32_t CACHECFG; /*!< (@ 0x00000000) Flash Cache Control Register */ + + struct { + __IOM uint32_t ENABLE : 1; /*!< [0..0] Enables the flash cache controller and enables power + to the cache SRAMs. The ICACHE_ENABLE and DCACHE_ENABLE + should be set to enable caching for each type of access. */ + __IOM uint32_t LRU : 1; /*!< [1..1] Sets the cache repleacment policy. 0=LRR (least recently + replaced), 1=LRU (least recently used). LRR minimizes writes + to the TAG SRAM. */ + __IOM uint32_t ENABLE_NC0 : 1; /*!< [2..2] Enable Non-cacheable region 0. See NCR0 registers to + define the region. */ + __IOM uint32_t ENABLE_NC1 : 1; /*!< [3..3] Enable Non-cacheable region 1. See NCR1 registers to + define the region. */ + __IOM uint32_t CONFIG : 4; /*!< [7..4] Sets the cache configuration */ + __IOM uint32_t ICACHE_ENABLE : 1; /*!< [8..8] Enable Flash Instruction Caching */ + __IOM uint32_t DCACHE_ENABLE : 1; /*!< [9..9] Enable Flash Data Caching. */ + __IOM uint32_t CACHE_CLKGATE : 1; /*!< [10..10] Enable clock gating of cache TAG RAM. Software should + enable this bit for optimal power efficiency. */ + __IOM uint32_t CACHE_LS : 1; /*!< [11..11] Enable LS (light sleep) of cache RAMs. Software should + DISABLE this bit since cache activity is too high to benefit + from LS usage. */ + __IM uint32_t : 8; + __IOM uint32_t DATA_CLKGATE : 1; /*!< [20..20] Enable aggressive clock gating of entire data array. + This bit should be set to 1 for optimal power efficiency. */ + __IM uint32_t : 3; + __IOM uint32_t ENABLE_MONITOR : 1; /*!< [24..24] Enable Cache Monitoring Stats. Cache monitoring consumes + additional power and should only be enabled when profiling + code and counters will increment when this bit is set. + Counter values will be retained when this is set to 0, + allowing software to enable/disable counting for multiple + code segments. */ + } CACHECFG_b; + } ; + __IM uint32_t RESERVED; + + union { + __IOM uint32_t CTRL; /*!< (@ 0x00000008) Cache Control */ + + struct { + __IOM uint32_t INVALIDATE : 1; /*!< [0..0] Writing a 1 to this bitfield invalidates the flash cache + contents. */ + __IOM uint32_t RESET_STAT : 1; /*!< [1..1] Reset Cache Statistics. When written to a 1, the cache + monitor counters will be cleared. The monitor counters + can be reset only when the CACHECFG.ENABLE_MONITOR bit + is set. */ + __IOM uint32_t CACHE_READY : 1; /*!< [2..2] Cache Ready Status (enabled and not processing an invalidate + operation) */ + __IM uint32_t : 1; + __IOM uint32_t FLASH0_SLM_STATUS : 1; /*!< [4..4] Flash Sleep Mode Status. 1 indicates that flash0 is in + sleep mode, 0 indicates flash0 is in normal mode. */ + __IOM uint32_t FLASH0_SLM_DISABLE : 1; /*!< [5..5] Disable Flash Sleep Mode. Write 1 to wake flash0 from + sleep mode (reading the array will also automatically wake + it). */ + __IOM uint32_t FLASH0_SLM_ENABLE : 1; /*!< [6..6] Enable Flash Sleep Mode. Write to 1 to put flash 0 into + sleep mode. NOTE: there is a 5us latency after waking flash + until the first access will be returned. */ + __IM uint32_t : 1; + __IOM uint32_t FLASH1_SLM_STATUS : 1; /*!< [8..8] Flash Sleep Mode Status. 1 indicates that flash1 is in + sleep mode, 0 indicates flash1 is in normal mode. */ + __IOM uint32_t FLASH1_SLM_DISABLE : 1; /*!< [9..9] Disable Flash Sleep Mode. Write 1 to wake flash1 from + sleep mode (reading the array will also automatically wake + it). */ + __IOM uint32_t FLASH1_SLM_ENABLE : 1; /*!< [10..10] Enable Flash Sleep Mode. Write to 1 to put flash 1 + into sleep mode. NOTE: there is a 5us latency after waking + flash until the first access will be returned. */ + __IM uint32_t : 1; + __IOM uint32_t FLASH2_SLM_STATUS : 1; /*!< [12..12] Flash Sleep Mode Status. 1 indicates that flash1 is + in sleep mode, 0 indicates flash2 is in normal mode. */ + __IOM uint32_t FLASH2_SLM_DISABLE : 1; /*!< [13..13] Disable Flash Sleep Mode. Write 1 to wake flash2 from + sleep mode (reading the array will also automatically wake + it). */ + __IOM uint32_t FLASH2_SLM_ENABLE : 1; /*!< [14..14] Enable Flash Sleep Mode. Write to 1 to put flash 1 + into sleep mode. NOTE: there is a 5us latency after waking + flash until the first access will be returned. */ + __IM uint32_t : 1; + __IOM uint32_t FLASH3_SLM_STATUS : 1; /*!< [16..16] Flash Sleep Mode Status. 1 indicates that flash1 is + in sleep mode, 0 indicates flash1 is in normal mode. */ + __IOM uint32_t FLASH3_SLM_DISABLE : 1; /*!< [17..17] Disable Flash Sleep Mode. Write 1 to wake flash1 from + sleep mode (reading the array will also automatically wake + it). */ + __IOM uint32_t FLASH3_SLM_ENABLE : 1; /*!< [18..18] Enable Flash Sleep Mode. Write to 1 to put flash 1 + into sleep mode. NOTE: there is a 5us latency after waking + flash until the first access will be returned. */ + } CTRL_b; + } ; + __IM uint32_t RESERVED1; + + union { + __IOM uint32_t NCR0START; /*!< (@ 0x00000010) Flash Cache Noncachable Region 0 Start */ + + struct { + __IM uint32_t : 4; + __IOM uint32_t ADDR : 23; /*!< [26..4] Start address for non-cacheable region 0 */ + } NCR0START_b; + } ; + + union { + __IOM uint32_t NCR0END; /*!< (@ 0x00000014) Flash Cache Noncachable Region 0 End */ + + struct { + __IM uint32_t : 4; + __IOM uint32_t ADDR : 23; /*!< [26..4] End address for non-cacheable region 0 */ + } NCR0END_b; + } ; + + union { + __IOM uint32_t NCR1START; /*!< (@ 0x00000018) Flash Cache Noncachable Region 1 Start */ + + struct { + __IM uint32_t : 4; + __IOM uint32_t ADDR : 23; /*!< [26..4] Start address for non-cacheable region 1 */ + } NCR1START_b; + } ; + + union { + __IOM uint32_t NCR1END; /*!< (@ 0x0000001C) Flash Cache Noncachable Region 1 End */ + + struct { + __IM uint32_t : 4; + __IOM uint32_t ADDR : 23; /*!< [26..4] End address for non-cacheable region 1 */ + } NCR1END_b; + } ; + __IM uint32_t RESERVED2[8]; + + union { + __IOM uint32_t DMON0; /*!< (@ 0x00000040) Data Cache Total Accesses */ + + struct { + __IOM uint32_t DACCESS_COUNT : 32; /*!< [31..0] Total accesses to data cache. All performance metrics + should be relative to the number of accesses performed. */ + } DMON0_b; + } ; + + union { + __IOM uint32_t DMON1; /*!< (@ 0x00000044) Data Cache Tag Lookups */ + + struct { + __IOM uint32_t DLOOKUP_COUNT : 32; /*!< [31..0] Total tag lookups from data cache. */ + } DMON1_b; + } ; + + union { + __IOM uint32_t DMON2; /*!< (@ 0x00000048) Data Cache Hits */ + + struct { + __IOM uint32_t DHIT_COUNT : 32; /*!< [31..0] Cache hits from lookup operations. */ + } DMON2_b; + } ; + + union { + __IOM uint32_t DMON3; /*!< (@ 0x0000004C) Data Cache Line Hits */ + + struct { + __IOM uint32_t DLINE_COUNT : 32; /*!< [31..0] Cache hits from line cache */ + } DMON3_b; + } ; + + union { + __IOM uint32_t IMON0; /*!< (@ 0x00000050) Instruction Cache Total Accesses */ + + struct { + __IOM uint32_t IACCESS_COUNT : 32; /*!< [31..0] Total accesses to Instruction cache */ + } IMON0_b; + } ; + + union { + __IOM uint32_t IMON1; /*!< (@ 0x00000054) Instruction Cache Tag Lookups */ + + struct { + __IOM uint32_t ILOOKUP_COUNT : 32; /*!< [31..0] Total tag lookups from Instruction cache */ + } IMON1_b; + } ; + + union { + __IOM uint32_t IMON2; /*!< (@ 0x00000058) Instruction Cache Hits */ + + struct { + __IOM uint32_t IHIT_COUNT : 32; /*!< [31..0] Cache hits from lookup operations */ + } IMON2_b; + } ; + + union { + __IOM uint32_t IMON3; /*!< (@ 0x0000005C) Instruction Cache Line Hits */ + + struct { + __IOM uint32_t ILINE_COUNT : 32; /*!< [31..0] Cache hits from line cache */ + } IMON3_b; + } ; + __IM uint32_t RESERVED3[40]; + + union { + __IOM uint32_t FLASH0CFG; /*!< (@ 0x00000100) Flash 0 Control Register */ + + struct { + __IOM uint32_t RDWAIT0 : 4; /*!< [3..0] Sets read waitstates for normal (fast) operation. A value + of 1 is recommended. */ + __IOM uint32_t SEDELAY0 : 3; /*!< [6..4] Sets SE delay (flash address setup). A value of 5 is + recommended. */ + __IM uint32_t : 1; + __IOM uint32_t LPMRDWAIT0 : 4; /*!< [11..8] Sets flash waitstates when in LPM Mode 2 (RD_WAIT in + LPM mode 2 only) */ + __IOM uint32_t LPMMODE0 : 2; /*!< [13..12] Controls flash low power modes (control of LPM pin). */ + } FLASH0CFG_b; + } ; + + union { + __IOM uint32_t FLASH1CFG; /*!< (@ 0x00000104) Flash 1 Control Register */ + + struct { + __IOM uint32_t RDWAIT1 : 4; /*!< [3..0] Sets read waitstates for normal (fast) operation. A value + of 1 is recommended. */ + __IOM uint32_t SEDELAY1 : 3; /*!< [6..4] Sets SE delay (flash address setup). A value of 5 is + recommended. */ + __IM uint32_t : 1; + __IOM uint32_t LPMRDWAIT1 : 4; /*!< [11..8] Sets flash waitstates when in LPM Mode 2 (RD_WAIT in + LPM mode 2 only) */ + __IOM uint32_t LPMMODE1 : 2; /*!< [13..12] Controls flash low power modes (control of LPM pin). */ + } FLASH1CFG_b; + } ; + + union { + __IOM uint32_t FLASH2CFG; /*!< (@ 0x00000108) Flash 2 Control Register */ + + struct { + __IOM uint32_t RDWAIT2 : 4; /*!< [3..0] Sets read waitstates for normal (fast) operation. A value + of 1 is recommended. */ + __IOM uint32_t SEDELAY2 : 3; /*!< [6..4] Sets SE delay (flash address setup). A value of 5 is + recommended. */ + __IM uint32_t : 1; + __IOM uint32_t LPMRDWAIT2 : 4; /*!< [11..8] Sets flash waitstates when in LPM Mode 2 (RD_WAIT in + LPM mode 2 only) */ + __IOM uint32_t LPMMODE2 : 2; /*!< [13..12] Controls flash low power modes (control of LPM pin). */ + } FLASH2CFG_b; + } ; + + union { + __IOM uint32_t FLASH3CFG; /*!< (@ 0x0000010C) Flash 3 Control Register */ + + struct { + __IOM uint32_t RDWAIT3 : 4; /*!< [3..0] Sets read waitstates for normal (fast) operation. A value + of 1 is recommended. */ + __IOM uint32_t SEDELAY3 : 3; /*!< [6..4] Sets SE delay (flash address setup). A value of 5 is + recommended. */ + __IM uint32_t : 1; + __IOM uint32_t LPMRDWAIT3 : 4; /*!< [11..8] Sets flash waitstates when in LPM Mode 2 (RD_WAIT in + LPM mode 2 only) */ + __IOM uint32_t LPMMODE3 : 2; /*!< [13..12] Controls flash low power modes (control of LPM pin). */ + } FLASH3CFG_b; + } ; +} CACHECTRL_Type; /*!< Size = 272 (0x110) */ + + + +/* =========================================================================================================================== */ +/* ================ CLKGEN ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Clock Generator (CLKGEN) + */ + +typedef struct { /*!< (@ 0x40004000) CLKGEN Structure */ + + union { + __IOM uint32_t CALXT; /*!< (@ 0x00000000) XT Oscillator Control */ + + struct { + __IOM uint32_t CALXT : 11; /*!< [10..0] XT Oscillator calibration value. This register will + enable the hardware to increase or decrease the number + of cycles in a 16KHz clock derived from the original 32KHz + version. The most significant bit is the sign. A '1' is + a reduction, and a '0' is an addition. This calibration + value will add or reduce the number of cycles programmed + here across a 32 second interval. The maximum value that + is effective is from -1024 to 1023. */ + } CALXT_b; + } ; + + union { + __IOM uint32_t CALRC; /*!< (@ 0x00000004) RC Oscillator Control */ + + struct { + __IOM uint32_t CALRC : 18; /*!< [17..0] LFRC Oscillator calibration value. This register will + enable the hardware to increase or decrease the number + of cycles in a 512 Hz clock derived from the original 1024 + version. The most significant bit is the sign. A '1' is + a reduction, and a '0' is an addition. This calibration + value will add or reduce the number of cycles programmed + here across a 32 second interval. The range is from -131072 + (decimal) to 131071 (decimal). This register is normally + used in conjuction with ACALCTR register. The CAL */ + } CALRC_b; + } ; + + union { + __IOM uint32_t ACALCTR; /*!< (@ 0x00000008) Autocalibration Counter */ + + struct { + __IOM uint32_t ACALCTR : 24; /*!< [23..0] Autocalibration Counter result. Bits 17 down to 0 of + this is feed directly to the CALRC register if ACAL register + in OCTRL register is set to 1024SEC or 512SEC. */ + } ACALCTR_b; + } ; + + union { + __IOM uint32_t OCTRL; /*!< (@ 0x0000000C) Oscillator Control */ + + struct { + __IOM uint32_t STOPXT : 1; /*!< [0..0] Stop the XT Oscillator to the RTC */ + __IOM uint32_t STOPRC : 1; /*!< [1..1] Stop the LFRC Oscillator to the RTC */ + __IM uint32_t : 4; + __IOM uint32_t FOS : 1; /*!< [6..6] Oscillator switch on failure function. If this is set, + then LFRC clock source will switch from XT to RC. */ + __IOM uint32_t OSEL : 1; /*!< [7..7] Selects the RTC oscillator (1 => LFRC, 0 => XT) */ + __IOM uint32_t ACAL : 3; /*!< [10..8] Autocalibration control. This selects the source to + be used in the autocalibration flow. This flow can also + be used to measure an internal clock against an external + clock source, with the external clock normally used as + the reference. */ + } OCTRL_b; + } ; + + union { + __IOM uint32_t CLKOUT; /*!< (@ 0x00000010) CLKOUT Frequency Select */ + + struct { + __IOM uint32_t CKSEL : 6; /*!< [5..0] CLKOUT signal select */ + __IM uint32_t : 1; + __IOM uint32_t CKEN : 1; /*!< [7..7] Enable the CLKOUT signal */ + } CLKOUT_b; + } ; + + union { + __IOM uint32_t CLKKEY; /*!< (@ 0x00000014) Key Register for Clock Control Register */ + + struct { + __IOM uint32_t CLKKEY : 32; /*!< [31..0] Key register value. */ + } CLKKEY_b; + } ; + + union { + __IOM uint32_t CCTRL; /*!< (@ 0x00000018) HFRC Clock Control */ + + struct { + __IOM uint32_t CORESEL : 1; /*!< [0..0] Core Clock divisor */ + } CCTRL_b; + } ; + + union { + __IOM uint32_t STATUS; /*!< (@ 0x0000001C) Clock Generator Status */ + + struct { + __IOM uint32_t OMODE : 1; /*!< [0..0] Current RTC oscillator (1 => LFRC, 0 => XT). After an + RTC oscillator change, it may take up to 2 seconds for + this field to reflect the new oscillator. */ + __IOM uint32_t OSCF : 1; /*!< [1..1] XT Oscillator is enabled but not oscillating */ + } STATUS_b; + } ; + + union { + __IOM uint32_t HFADJ; /*!< (@ 0x00000020) HFRC Adjustment */ + + struct { + __IOM uint32_t HFADJEN : 1; /*!< [0..0] HFRC adjustment control */ + __IOM uint32_t HFADJCK : 3; /*!< [3..1] Repeat period for HFRC adjustment */ + __IM uint32_t : 4; + __IOM uint32_t HFXTADJ : 12; /*!< [19..8] Target HFRC adjustment value. */ + __IOM uint32_t HFWARMUP : 1; /*!< [20..20] XT warmup period for HFRC adjustment */ + __IOM uint32_t HFADJGAIN : 3; /*!< [23..21] Gain control for HFRC adjustment */ + } HFADJ_b; + } ; + __IM uint32_t RESERVED; + + union { + __IOM uint32_t CLOCKENSTAT; /*!< (@ 0x00000028) Clock Enable Status */ + + struct { + __IOM uint32_t CLOCKENSTAT : 32; /*!< [31..0] Clock enable status */ + } CLOCKENSTAT_b; + } ; + + union { + __IOM uint32_t CLOCKEN2STAT; /*!< (@ 0x0000002C) Clock Enable Status */ + + struct { + __IOM uint32_t CLOCKEN2STAT : 32; /*!< [31..0] Clock enable status 2 */ + } CLOCKEN2STAT_b; + } ; + + union { + __IOM uint32_t CLOCKEN3STAT; /*!< (@ 0x00000030) Clock Enable Status */ + + struct { + __IOM uint32_t CLOCKEN3STAT : 32; /*!< [31..0] Clock enable status 3 */ + } CLOCKEN3STAT_b; + } ; + + union { + __IOM uint32_t FREQCTRL; /*!< (@ 0x00000034) HFRC Frequency Control register */ + + struct { + __IOM uint32_t BURSTREQ : 1; /*!< [0..0] Frequency Burst Enable Request */ + __IOM uint32_t BURSTACK : 1; /*!< [1..1] Frequency Burst Request Acknowledge. Frequency burst + requested is always acknowledged whether burst is granted + or not depending on feature enable. */ + __IOM uint32_t BURSTSTATUS : 1; /*!< [2..2] This represents frequency burst status. */ + } FREQCTRL_b; + } ; + __IM uint32_t RESERVED1; + + union { + __IOM uint32_t BLEBUCKTONADJ; /*!< (@ 0x0000003C) BLE BUCK TON ADJUST */ + + struct { + __IOM uint32_t TONLOWTHRESHOLD : 10; /*!< [9..0] TON ADJUST LOW THRESHOLD. Suggested values are #A(94KHz) + #15(47KHz) #53(12Khz) #14D(3Khz) */ + __IOM uint32_t TONHIGHTHRESHOLD : 10; /*!< [19..10] TON ADJUST HIGH THRESHOLD. Suggested values are #15(94KHz) + #2A(47Khz) #A6(12Khz) #29A(3Khz) */ + __IOM uint32_t TONADJUSTPERIOD : 2; /*!< [21..20] TON ADJUST PERIOD */ + __IOM uint32_t TONADJUSTEN : 1; /*!< [22..22] TON ADJUST ENABLE */ + __IOM uint32_t ZEROLENDETECTTRIM : 4; /*!< [26..23] BLEBUCK ZERO LENGTH DETECT TRIM */ + __IOM uint32_t ZEROLENDETECTEN : 1; /*!< [27..27] BLEBUCK ZERO LENGTH DETECT ENABLE */ + } BLEBUCKTONADJ_b; + } ; + __IM uint32_t RESERVED2[48]; + + union { + __IOM uint32_t INTRPTEN; /*!< (@ 0x00000100) CLKGEN Interrupt Register: Enable */ + + struct { + __IOM uint32_t ACF : 1; /*!< [0..0] Autocalibration Fail interrupt */ + __IOM uint32_t ACC : 1; /*!< [1..1] Autocalibration Complete interrupt */ + __IOM uint32_t OF : 1; /*!< [2..2] XT Oscillator Fail interrupt */ + } INTRPTEN_b; + } ; + + union { + __IOM uint32_t INTRPTSTAT; /*!< (@ 0x00000104) CLKGEN Interrupt Register: Status */ + + struct { + __IOM uint32_t ACF : 1; /*!< [0..0] Autocalibration Fail interrupt */ + __IOM uint32_t ACC : 1; /*!< [1..1] Autocalibration Complete interrupt */ + __IOM uint32_t OF : 1; /*!< [2..2] XT Oscillator Fail interrupt */ + } INTRPTSTAT_b; + } ; + + union { + __IOM uint32_t INTRPTCLR; /*!< (@ 0x00000108) CLKGEN Interrupt Register: Clear */ + + struct { + __IOM uint32_t ACF : 1; /*!< [0..0] Autocalibration Fail interrupt */ + __IOM uint32_t ACC : 1; /*!< [1..1] Autocalibration Complete interrupt */ + __IOM uint32_t OF : 1; /*!< [2..2] XT Oscillator Fail interrupt */ + } INTRPTCLR_b; + } ; + + union { + __IOM uint32_t INTRPTSET; /*!< (@ 0x0000010C) CLKGEN Interrupt Register: Set */ + + struct { + __IOM uint32_t ACF : 1; /*!< [0..0] Autocalibration Fail interrupt */ + __IOM uint32_t ACC : 1; /*!< [1..1] Autocalibration Complete interrupt */ + __IOM uint32_t OF : 1; /*!< [2..2] XT Oscillator Fail interrupt */ + } INTRPTSET_b; + } ; +} CLKGEN_Type; /*!< Size = 272 (0x110) */ + + + +/* =========================================================================================================================== */ +/* ================ CTIMER ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Counter/Timer (CTIMER) + */ + +typedef struct { /*!< (@ 0x40008000) CTIMER Structure */ + + union { + __IOM uint32_t TMR0; /*!< (@ 0x00000000) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA0 : 16; /*!< [15..0] Counter/Timer A0. */ + __IOM uint32_t CTTMRB0 : 16; /*!< [31..16] Counter/Timer B0. */ + } TMR0_b; + } ; + + union { + __IOM uint32_t CMPRA0; /*!< (@ 0x00000004) Counter/Timer A0 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A0 : 16; /*!< [15..0] Counter/Timer A0 Compare Register 0. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR1A0 : 16; /*!< [31..16] Counter/Timer A0 Compare Register 1. Holds the upper + limit for timer half A. */ + } CMPRA0_b; + } ; + + union { + __IOM uint32_t CMPRB0; /*!< (@ 0x00000008) Counter/Timer B0 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B0 : 16; /*!< [15..0] Counter/Timer B0 Compare Register 0. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR1B0 : 16; /*!< [31..16] Counter/Timer B0 Compare Register 1. Holds the upper + limit for timer half B. */ + } CMPRB0_b; + } ; + + union { + __IOM uint32_t CTRL0; /*!< (@ 0x0000000C) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA0EN : 1; /*!< [0..0] Counter/Timer A0 Enable bit. */ + __IOM uint32_t TMRA0CLK : 5; /*!< [5..1] Counter/Timer A0 Clock Select. */ + __IOM uint32_t TMRA0FN : 3; /*!< [8..6] Counter/Timer A0 Function Select. */ + __IOM uint32_t TMRA0IE0 : 1; /*!< [9..9] Counter/Timer A0 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA0IE1 : 1; /*!< [10..10] Counter/Timer A0 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA0CLR : 1; /*!< [11..11] Counter/Timer A0 Clear bit. */ + __IOM uint32_t TMRA0POL : 1; /*!< [12..12] Counter/Timer A0 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB0EN : 1; /*!< [16..16] Counter/Timer B0 Enable bit. */ + __IOM uint32_t TMRB0CLK : 5; /*!< [21..17] Counter/Timer B0 Clock Select. */ + __IOM uint32_t TMRB0FN : 3; /*!< [24..22] Counter/Timer B0 Function Select. */ + __IOM uint32_t TMRB0IE0 : 1; /*!< [25..25] Counter/Timer B0 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB0IE1 : 1; /*!< [26..26] Counter/Timer B0 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB0CLR : 1; /*!< [27..27] Counter/Timer B0 Clear bit. */ + __IOM uint32_t TMRB0POL : 1; /*!< [28..28] Counter/Timer B0 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK0 : 1; /*!< [31..31] Counter/Timer A0/B0 Link bit. */ + } CTRL0_b; + } ; + __IM uint32_t RESERVED; + + union { + __IOM uint32_t CMPRAUXA0; /*!< (@ 0x00000014) Counter/Timer A0 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A0 : 16; /*!< [15..0] Counter/Timer A0 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A0 : 16; /*!< [31..16] Counter/Timer A0 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA0_b; + } ; + + union { + __IOM uint32_t CMPRAUXB0; /*!< (@ 0x00000018) Counter/Timer B0 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B0 : 16; /*!< [15..0] Counter/Timer B0 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B0 : 16; /*!< [31..16] Counter/Timer B0 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB0_b; + } ; + + union { + __IOM uint32_t AUX0; /*!< (@ 0x0000001C) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA0LMT : 7; /*!< [6..0] Counter/Timer A0 Pattern Limit Count. */ + __IOM uint32_t TMRA0TRIG : 4; /*!< [10..7] Counter/Timer A0 Trigger Select. */ + __IOM uint32_t TMRA0NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA0TINV : 1; /*!< [12..12] Counter/Timer A0 Invert on trigger. */ + __IOM uint32_t TMRA0POL23 : 1; /*!< [13..13] Counter/Timer A0 Upper output polarity */ + __IOM uint32_t TMRA0EN23 : 1; /*!< [14..14] Counter/Timer A0 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB0LMT : 6; /*!< [21..16] Counter/Timer B0 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB0TRIG : 4; /*!< [26..23] Counter/Timer B0 Trigger Select. */ + __IOM uint32_t TMRB0NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB0TINV : 1; /*!< [28..28] Counter/Timer B0 Invert on trigger. */ + __IOM uint32_t TMRB0POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB0EN23 : 1; /*!< [30..30] Counter/Timer B0 Upper compare enable. */ + } AUX0_b; + } ; + + union { + __IOM uint32_t TMR1; /*!< (@ 0x00000020) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA1 : 16; /*!< [15..0] Counter/Timer A1. */ + __IOM uint32_t CTTMRB1 : 16; /*!< [31..16] Counter/Timer B1. */ + } TMR1_b; + } ; + + union { + __IOM uint32_t CMPRA1; /*!< (@ 0x00000024) Counter/Timer A1 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A1 : 16; /*!< [15..0] Counter/Timer A1 Compare Register 0. */ + __IOM uint32_t CMPR1A1 : 16; /*!< [31..16] Counter/Timer A1 Compare Register 1. */ + } CMPRA1_b; + } ; + + union { + __IOM uint32_t CMPRB1; /*!< (@ 0x00000028) Counter/Timer B1 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B1 : 16; /*!< [15..0] Counter/Timer B1 Compare Register 0. */ + __IOM uint32_t CMPR1B1 : 16; /*!< [31..16] Counter/Timer B1 Compare Register 1. */ + } CMPRB1_b; + } ; + + union { + __IOM uint32_t CTRL1; /*!< (@ 0x0000002C) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA1EN : 1; /*!< [0..0] Counter/Timer A1 Enable bit. */ + __IOM uint32_t TMRA1CLK : 5; /*!< [5..1] Counter/Timer A1 Clock Select. */ + __IOM uint32_t TMRA1FN : 3; /*!< [8..6] Counter/Timer A1 Function Select. */ + __IOM uint32_t TMRA1IE0 : 1; /*!< [9..9] Counter/Timer A1 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA1IE1 : 1; /*!< [10..10] Counter/Timer A1 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA1CLR : 1; /*!< [11..11] Counter/Timer A1 Clear bit. */ + __IOM uint32_t TMRA1POL : 1; /*!< [12..12] Counter/Timer A1 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB1EN : 1; /*!< [16..16] Counter/Timer B1 Enable bit. */ + __IOM uint32_t TMRB1CLK : 5; /*!< [21..17] Counter/Timer B1 Clock Select. */ + __IOM uint32_t TMRB1FN : 3; /*!< [24..22] Counter/Timer B1 Function Select. */ + __IOM uint32_t TMRB1IE0 : 1; /*!< [25..25] Counter/Timer B1 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB1IE1 : 1; /*!< [26..26] Counter/Timer B1 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB1CLR : 1; /*!< [27..27] Counter/Timer B1 Clear bit. */ + __IOM uint32_t TMRB1POL : 1; /*!< [28..28] Counter/Timer B1 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK1 : 1; /*!< [31..31] Counter/Timer A1/B1 Link bit. */ + } CTRL1_b; + } ; + __IM uint32_t RESERVED1; + + union { + __IOM uint32_t CMPRAUXA1; /*!< (@ 0x00000034) Counter/Timer A1 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A1 : 16; /*!< [15..0] Counter/Timer A1 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A1 : 16; /*!< [31..16] Counter/Timer A1 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA1_b; + } ; + + union { + __IOM uint32_t CMPRAUXB1; /*!< (@ 0x00000038) Counter/Timer B1 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B1 : 16; /*!< [15..0] Counter/Timer B1 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B1 : 16; /*!< [31..16] Counter/Timer B1 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB1_b; + } ; + + union { + __IOM uint32_t AUX1; /*!< (@ 0x0000003C) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA1LMT : 7; /*!< [6..0] Counter/Timer A1 Pattern Limit Count. */ + __IOM uint32_t TMRA1TRIG : 4; /*!< [10..7] Counter/Timer A1 Trigger Select. */ + __IOM uint32_t TMRA1NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA1TINV : 1; /*!< [12..12] Counter/Timer A1 Invert on trigger. */ + __IOM uint32_t TMRA1POL23 : 1; /*!< [13..13] Counter/Timer A1 Upper output polarity */ + __IOM uint32_t TMRA1EN23 : 1; /*!< [14..14] Counter/Timer A1 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB1LMT : 6; /*!< [21..16] Counter/Timer B1 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB1TRIG : 4; /*!< [26..23] Counter/Timer B1 Trigger Select. */ + __IOM uint32_t TMRB1NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB1TINV : 1; /*!< [28..28] Counter/Timer B1 Invert on trigger. */ + __IOM uint32_t TMRB1POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB1EN23 : 1; /*!< [30..30] Counter/Timer B1 Upper compare enable. */ + } AUX1_b; + } ; + + union { + __IOM uint32_t TMR2; /*!< (@ 0x00000040) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA2 : 16; /*!< [15..0] Counter/Timer A2. */ + __IOM uint32_t CTTMRB2 : 16; /*!< [31..16] Counter/Timer B2. */ + } TMR2_b; + } ; + + union { + __IOM uint32_t CMPRA2; /*!< (@ 0x00000044) Counter/Timer A2 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A2 : 16; /*!< [15..0] Counter/Timer A2 Compare Register 0. */ + __IOM uint32_t CMPR1A2 : 16; /*!< [31..16] Counter/Timer A2 Compare Register 1. */ + } CMPRA2_b; + } ; + + union { + __IOM uint32_t CMPRB2; /*!< (@ 0x00000048) Counter/Timer B2 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B2 : 16; /*!< [15..0] Counter/Timer B2 Compare Register 0. */ + __IOM uint32_t CMPR1B2 : 16; /*!< [31..16] Counter/Timer B2 Compare Register 1. */ + } CMPRB2_b; + } ; + + union { + __IOM uint32_t CTRL2; /*!< (@ 0x0000004C) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA2EN : 1; /*!< [0..0] Counter/Timer A2 Enable bit. */ + __IOM uint32_t TMRA2CLK : 5; /*!< [5..1] Counter/Timer A2 Clock Select. */ + __IOM uint32_t TMRA2FN : 3; /*!< [8..6] Counter/Timer A2 Function Select. */ + __IOM uint32_t TMRA2IE0 : 1; /*!< [9..9] Counter/Timer A2 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA2IE1 : 1; /*!< [10..10] Counter/Timer A2 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA2CLR : 1; /*!< [11..11] Counter/Timer A2 Clear bit. */ + __IOM uint32_t TMRA2POL : 1; /*!< [12..12] Counter/Timer A2 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB2EN : 1; /*!< [16..16] Counter/Timer B2 Enable bit. */ + __IOM uint32_t TMRB2CLK : 5; /*!< [21..17] Counter/Timer B2 Clock Select. */ + __IOM uint32_t TMRB2FN : 3; /*!< [24..22] Counter/Timer B2 Function Select. */ + __IOM uint32_t TMRB2IE0 : 1; /*!< [25..25] Counter/Timer B2 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB2IE1 : 1; /*!< [26..26] Counter/Timer B2 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB2CLR : 1; /*!< [27..27] Counter/Timer B2 Clear bit. */ + __IOM uint32_t TMRB2POL : 1; /*!< [28..28] Counter/Timer B2 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK2 : 1; /*!< [31..31] Counter/Timer A2/B2 Link bit. */ + } CTRL2_b; + } ; + __IM uint32_t RESERVED2; + + union { + __IOM uint32_t CMPRAUXA2; /*!< (@ 0x00000054) Counter/Timer A2 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A2 : 16; /*!< [15..0] Counter/Timer A2 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A2 : 16; /*!< [31..16] Counter/Timer A2 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA2_b; + } ; + + union { + __IOM uint32_t CMPRAUXB2; /*!< (@ 0x00000058) Counter/Timer B2 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B2 : 16; /*!< [15..0] Counter/Timer B2 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B2 : 16; /*!< [31..16] Counter/Timer B2 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB2_b; + } ; + + union { + __IOM uint32_t AUX2; /*!< (@ 0x0000005C) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA2LMT : 7; /*!< [6..0] Counter/Timer A2 Pattern Limit Count. */ + __IOM uint32_t TMRA2TRIG : 4; /*!< [10..7] Counter/Timer A2 Trigger Select. */ + __IOM uint32_t TMRA2NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA2TINV : 1; /*!< [12..12] Counter/Timer A2 Invert on trigger. */ + __IOM uint32_t TMRA2POL23 : 1; /*!< [13..13] Counter/Timer A2 Upper output polarity */ + __IOM uint32_t TMRA2EN23 : 1; /*!< [14..14] Counter/Timer A2 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB2LMT : 6; /*!< [21..16] Counter/Timer B2 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB2TRIG : 4; /*!< [26..23] Counter/Timer B2 Trigger Select. */ + __IOM uint32_t TMRB2NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB2TINV : 1; /*!< [28..28] Counter/Timer B2 Invert on trigger. */ + __IOM uint32_t TMRB2POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB2EN23 : 1; /*!< [30..30] Counter/Timer B2 Upper compare enable. */ + } AUX2_b; + } ; + + union { + __IOM uint32_t TMR3; /*!< (@ 0x00000060) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA3 : 16; /*!< [15..0] Counter/Timer A3. */ + __IOM uint32_t CTTMRB3 : 16; /*!< [31..16] Counter/Timer B3. */ + } TMR3_b; + } ; + + union { + __IOM uint32_t CMPRA3; /*!< (@ 0x00000064) Counter/Timer A3 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A3 : 16; /*!< [15..0] Counter/Timer A3 Compare Register 0. */ + __IOM uint32_t CMPR1A3 : 16; /*!< [31..16] Counter/Timer A3 Compare Register 1. */ + } CMPRA3_b; + } ; + + union { + __IOM uint32_t CMPRB3; /*!< (@ 0x00000068) Counter/Timer B3 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B3 : 16; /*!< [15..0] Counter/Timer B3 Compare Register 0. */ + __IOM uint32_t CMPR1B3 : 16; /*!< [31..16] Counter/Timer B3 Compare Register 1. */ + } CMPRB3_b; + } ; + + union { + __IOM uint32_t CTRL3; /*!< (@ 0x0000006C) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA3EN : 1; /*!< [0..0] Counter/Timer A3 Enable bit. */ + __IOM uint32_t TMRA3CLK : 5; /*!< [5..1] Counter/Timer A3 Clock Select. */ + __IOM uint32_t TMRA3FN : 3; /*!< [8..6] Counter/Timer A3 Function Select. */ + __IOM uint32_t TMRA3IE0 : 1; /*!< [9..9] Counter/Timer A3 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA3IE1 : 1; /*!< [10..10] Counter/Timer A3 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA3CLR : 1; /*!< [11..11] Counter/Timer A3 Clear bit. */ + __IOM uint32_t TMRA3POL : 1; /*!< [12..12] Counter/Timer A3 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t ADCEN : 1; /*!< [15..15] Special Timer A3 enable for ADC function. */ + __IOM uint32_t TMRB3EN : 1; /*!< [16..16] Counter/Timer B3 Enable bit. */ + __IOM uint32_t TMRB3CLK : 5; /*!< [21..17] Counter/Timer B3 Clock Select. */ + __IOM uint32_t TMRB3FN : 3; /*!< [24..22] Counter/Timer B3 Function Select. */ + __IOM uint32_t TMRB3IE0 : 1; /*!< [25..25] Counter/Timer B3 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB3IE1 : 1; /*!< [26..26] Counter/Timer B3 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB3CLR : 1; /*!< [27..27] Counter/Timer B3 Clear bit. */ + __IOM uint32_t TMRB3POL : 1; /*!< [28..28] Counter/Timer B3 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK3 : 1; /*!< [31..31] Counter/Timer A3/B3 Link bit. */ + } CTRL3_b; + } ; + __IM uint32_t RESERVED3; + + union { + __IOM uint32_t CMPRAUXA3; /*!< (@ 0x00000074) Counter/Timer A3 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A3 : 16; /*!< [15..0] Counter/Timer A3 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A3 : 16; /*!< [31..16] Counter/Timer A3 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA3_b; + } ; + + union { + __IOM uint32_t CMPRAUXB3; /*!< (@ 0x00000078) Counter/Timer B3 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B3 : 16; /*!< [15..0] Counter/Timer B3 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B3 : 16; /*!< [31..16] Counter/Timer B3 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB3_b; + } ; + + union { + __IOM uint32_t AUX3; /*!< (@ 0x0000007C) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA3LMT : 7; /*!< [6..0] Counter/Timer A3 Pattern Limit Count. */ + __IOM uint32_t TMRA3TRIG : 4; /*!< [10..7] Counter/Timer A3 Trigger Select. */ + __IOM uint32_t TMRA3NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA3TINV : 1; /*!< [12..12] Counter/Timer A3 Invert on trigger. */ + __IOM uint32_t TMRA3POL23 : 1; /*!< [13..13] Counter/Timer A3 Upper output polarity */ + __IOM uint32_t TMRA3EN23 : 1; /*!< [14..14] Counter/Timer A3 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB3LMT : 6; /*!< [21..16] Counter/Timer B3 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB3TRIG : 4; /*!< [26..23] Counter/Timer B3 Trigger Select. */ + __IOM uint32_t TMRB3NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB3TINV : 1; /*!< [28..28] Counter/Timer B3 Invert on trigger. */ + __IOM uint32_t TMRB3POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB3EN23 : 1; /*!< [30..30] Counter/Timer B3 Upper compare enable. */ + } AUX3_b; + } ; + + union { + __IOM uint32_t TMR4; /*!< (@ 0x00000080) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA4 : 16; /*!< [15..0] Counter/Timer A4. */ + __IOM uint32_t CTTMRB4 : 16; /*!< [31..16] Counter/Timer B4. */ + } TMR4_b; + } ; + + union { + __IOM uint32_t CMPRA4; /*!< (@ 0x00000084) Counter/Timer A4 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A4 : 16; /*!< [15..0] Counter/Timer A4 Compare Register 0. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR1A4 : 16; /*!< [31..16] Counter/Timer A4 Compare Register 1. Holds the upper + limit for timer half A. */ + } CMPRA4_b; + } ; + + union { + __IOM uint32_t CMPRB4; /*!< (@ 0x00000088) Counter/Timer B4 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B4 : 16; /*!< [15..0] Counter/Timer B4 Compare Register 0. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR1B4 : 16; /*!< [31..16] Counter/Timer B4 Compare Register 1. Holds the upper + limit for timer half B. */ + } CMPRB4_b; + } ; + + union { + __IOM uint32_t CTRL4; /*!< (@ 0x0000008C) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA4EN : 1; /*!< [0..0] Counter/Timer A4 Enable bit. */ + __IOM uint32_t TMRA4CLK : 5; /*!< [5..1] Counter/Timer A4 Clock Select. */ + __IOM uint32_t TMRA4FN : 3; /*!< [8..6] Counter/Timer A4 Function Select. */ + __IOM uint32_t TMRA4IE0 : 1; /*!< [9..9] Counter/Timer A4 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA4IE1 : 1; /*!< [10..10] Counter/Timer A4 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA4CLR : 1; /*!< [11..11] Counter/Timer A4 Clear bit. */ + __IOM uint32_t TMRA4POL : 1; /*!< [12..12] Counter/Timer A4 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB4EN : 1; /*!< [16..16] Counter/Timer B4 Enable bit. */ + __IOM uint32_t TMRB4CLK : 5; /*!< [21..17] Counter/Timer B4 Clock Select. */ + __IOM uint32_t TMRB4FN : 3; /*!< [24..22] Counter/Timer B4 Function Select. */ + __IOM uint32_t TMRB4IE0 : 1; /*!< [25..25] Counter/Timer B4 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB4IE1 : 1; /*!< [26..26] Counter/Timer B4 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB4CLR : 1; /*!< [27..27] Counter/Timer B4 Clear bit. */ + __IOM uint32_t TMRB4POL : 1; /*!< [28..28] Counter/Timer B4 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK4 : 1; /*!< [31..31] Counter/Timer A4/B4 Link bit. */ + } CTRL4_b; + } ; + __IM uint32_t RESERVED4; + + union { + __IOM uint32_t CMPRAUXA4; /*!< (@ 0x00000094) Counter/Timer A4 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A4 : 16; /*!< [15..0] Counter/Timer A4 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A4 : 16; /*!< [31..16] Counter/Timer A4 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA4_b; + } ; + + union { + __IOM uint32_t CMPRAUXB4; /*!< (@ 0x00000098) Counter/Timer B4 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B4 : 16; /*!< [15..0] Counter/Timer B4 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B4 : 16; /*!< [31..16] Counter/Timer B4 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB4_b; + } ; + + union { + __IOM uint32_t AUX4; /*!< (@ 0x0000009C) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA4LMT : 7; /*!< [6..0] Counter/Timer A4 Pattern Limit Count. */ + __IOM uint32_t TMRA4TRIG : 4; /*!< [10..7] Counter/Timer A4 Trigger Select. */ + __IOM uint32_t TMRA4NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA4TINV : 1; /*!< [12..12] Counter/Timer A4 Invert on trigger. */ + __IOM uint32_t TMRA4POL23 : 1; /*!< [13..13] Counter/Timer A4 Upper output polarity */ + __IOM uint32_t TMRA4EN23 : 1; /*!< [14..14] Counter/Timer A4 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB4LMT : 6; /*!< [21..16] Counter/Timer B4 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB4TRIG : 4; /*!< [26..23] Counter/Timer B4 Trigger Select. */ + __IOM uint32_t TMRB4NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB4TINV : 1; /*!< [28..28] Counter/Timer B4 Invert on trigger. */ + __IOM uint32_t TMRB4POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB4EN23 : 1; /*!< [30..30] Counter/Timer B4 Upper compare enable. */ + } AUX4_b; + } ; + + union { + __IOM uint32_t TMR5; /*!< (@ 0x000000A0) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA5 : 16; /*!< [15..0] Counter/Timer A5. */ + __IOM uint32_t CTTMRB5 : 16; /*!< [31..16] Counter/Timer B5. */ + } TMR5_b; + } ; + + union { + __IOM uint32_t CMPRA5; /*!< (@ 0x000000A4) Counter/Timer A5 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A5 : 16; /*!< [15..0] Counter/Timer A5 Compare Register 0. */ + __IOM uint32_t CMPR1A5 : 16; /*!< [31..16] Counter/Timer A5 Compare Register 1. */ + } CMPRA5_b; + } ; + + union { + __IOM uint32_t CMPRB5; /*!< (@ 0x000000A8) Counter/Timer B5 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B5 : 16; /*!< [15..0] Counter/Timer B5 Compare Register 0. */ + __IOM uint32_t CMPR1B5 : 16; /*!< [31..16] Counter/Timer B5 Compare Register 1. */ + } CMPRB5_b; + } ; + + union { + __IOM uint32_t CTRL5; /*!< (@ 0x000000AC) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA5EN : 1; /*!< [0..0] Counter/Timer A5 Enable bit. */ + __IOM uint32_t TMRA5CLK : 5; /*!< [5..1] Counter/Timer A5 Clock Select. */ + __IOM uint32_t TMRA5FN : 3; /*!< [8..6] Counter/Timer A5 Function Select. */ + __IOM uint32_t TMRA5IE0 : 1; /*!< [9..9] Counter/Timer A5 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA5IE1 : 1; /*!< [10..10] Counter/Timer A5 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA5CLR : 1; /*!< [11..11] Counter/Timer A5 Clear bit. */ + __IOM uint32_t TMRA5POL : 1; /*!< [12..12] Counter/Timer A5 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB5EN : 1; /*!< [16..16] Counter/Timer B5 Enable bit. */ + __IOM uint32_t TMRB5CLK : 5; /*!< [21..17] Counter/Timer B5 Clock Select. */ + __IOM uint32_t TMRB5FN : 3; /*!< [24..22] Counter/Timer B5 Function Select. */ + __IOM uint32_t TMRB5IE0 : 1; /*!< [25..25] Counter/Timer B5 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB5IE1 : 1; /*!< [26..26] Counter/Timer B5 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB5CLR : 1; /*!< [27..27] Counter/Timer B5 Clear bit. */ + __IOM uint32_t TMRB5POL : 1; /*!< [28..28] Counter/Timer B5 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK5 : 1; /*!< [31..31] Counter/Timer A5/B5 Link bit. */ + } CTRL5_b; + } ; + __IM uint32_t RESERVED5; + + union { + __IOM uint32_t CMPRAUXA5; /*!< (@ 0x000000B4) Counter/Timer A5 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A5 : 16; /*!< [15..0] Counter/Timer A5 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A5 : 16; /*!< [31..16] Counter/Timer A5 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA5_b; + } ; + + union { + __IOM uint32_t CMPRAUXB5; /*!< (@ 0x000000B8) Counter/Timer B5 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B5 : 16; /*!< [15..0] Counter/Timer B5 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B5 : 16; /*!< [31..16] Counter/Timer B5 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB5_b; + } ; + + union { + __IOM uint32_t AUX5; /*!< (@ 0x000000BC) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA5LMT : 7; /*!< [6..0] Counter/Timer A5 Pattern Limit Count. */ + __IOM uint32_t TMRA5TRIG : 4; /*!< [10..7] Counter/Timer A5 Trigger Select. */ + __IOM uint32_t TMRA5NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA5TINV : 1; /*!< [12..12] Counter/Timer A5 Invert on trigger. */ + __IOM uint32_t TMRA5POL23 : 1; /*!< [13..13] Counter/Timer A5 Upper output polarity */ + __IOM uint32_t TMRA5EN23 : 1; /*!< [14..14] Counter/Timer A5 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB5LMT : 6; /*!< [21..16] Counter/Timer B5 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB5TRIG : 4; /*!< [26..23] Counter/Timer B5 Trigger Select. */ + __IOM uint32_t TMRB5NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB5TINV : 1; /*!< [28..28] Counter/Timer B5 Invert on trigger. */ + __IOM uint32_t TMRB5POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB5EN23 : 1; /*!< [30..30] Counter/Timer B5 Upper compare enable. */ + } AUX5_b; + } ; + + union { + __IOM uint32_t TMR6; /*!< (@ 0x000000C0) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA6 : 16; /*!< [15..0] Counter/Timer A6. */ + __IOM uint32_t CTTMRB6 : 16; /*!< [31..16] Counter/Timer B6. */ + } TMR6_b; + } ; + + union { + __IOM uint32_t CMPRA6; /*!< (@ 0x000000C4) Counter/Timer A6 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A6 : 16; /*!< [15..0] Counter/Timer A6 Compare Register 0. */ + __IOM uint32_t CMPR1A6 : 16; /*!< [31..16] Counter/Timer A6 Compare Register 1. */ + } CMPRA6_b; + } ; + + union { + __IOM uint32_t CMPRB6; /*!< (@ 0x000000C8) Counter/Timer B6 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B6 : 16; /*!< [15..0] Counter/Timer B6 Compare Register 0. */ + __IOM uint32_t CMPR1B6 : 16; /*!< [31..16] Counter/Timer B6 Compare Register 1. */ + } CMPRB6_b; + } ; + + union { + __IOM uint32_t CTRL6; /*!< (@ 0x000000CC) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA6EN : 1; /*!< [0..0] Counter/Timer A6 Enable bit. */ + __IOM uint32_t TMRA6CLK : 5; /*!< [5..1] Counter/Timer A6 Clock Select. */ + __IOM uint32_t TMRA6FN : 3; /*!< [8..6] Counter/Timer A6 Function Select. */ + __IOM uint32_t TMRA6IE0 : 1; /*!< [9..9] Counter/Timer A6 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA6IE1 : 1; /*!< [10..10] Counter/Timer A6 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA6CLR : 1; /*!< [11..11] Counter/Timer A6 Clear bit. */ + __IOM uint32_t TMRA6POL : 1; /*!< [12..12] Counter/Timer A6 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB6EN : 1; /*!< [16..16] Counter/Timer B6 Enable bit. */ + __IOM uint32_t TMRB6CLK : 5; /*!< [21..17] Counter/Timer B6 Clock Select. */ + __IOM uint32_t TMRB6FN : 3; /*!< [24..22] Counter/Timer B6 Function Select. */ + __IOM uint32_t TMRB6IE0 : 1; /*!< [25..25] Counter/Timer B6 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB6IE1 : 1; /*!< [26..26] Counter/Timer B6 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB6CLR : 1; /*!< [27..27] Counter/Timer B6 Clear bit. */ + __IOM uint32_t TMRB6POL : 1; /*!< [28..28] Counter/Timer B6 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK6 : 1; /*!< [31..31] Counter/Timer A6/B6 Link bit. */ + } CTRL6_b; + } ; + __IM uint32_t RESERVED6; + + union { + __IOM uint32_t CMPRAUXA6; /*!< (@ 0x000000D4) Counter/Timer A6 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A6 : 16; /*!< [15..0] Counter/Timer A6 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A6 : 16; /*!< [31..16] Counter/Timer A6 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA6_b; + } ; + + union { + __IOM uint32_t CMPRAUXB6; /*!< (@ 0x000000D8) Counter/Timer B6 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B6 : 16; /*!< [15..0] Counter/Timer B6 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B6 : 16; /*!< [31..16] Counter/Timer B6 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB6_b; + } ; + + union { + __IOM uint32_t AUX6; /*!< (@ 0x000000DC) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA6LMT : 7; /*!< [6..0] Counter/Timer A6 Pattern Limit Count. */ + __IOM uint32_t TMRA6TRIG : 4; /*!< [10..7] Counter/Timer A6 Trigger Select. */ + __IOM uint32_t TMRA6NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA6TINV : 1; /*!< [12..12] Counter/Timer A6 Invert on trigger. */ + __IOM uint32_t TMRA6POL23 : 1; /*!< [13..13] Counter/Timer A6 Upper output polarity */ + __IOM uint32_t TMRA6EN23 : 1; /*!< [14..14] Counter/Timer A6 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB6LMT : 6; /*!< [21..16] Counter/Timer B6 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB6TRIG : 4; /*!< [26..23] Counter/Timer B6 Trigger Select. */ + __IOM uint32_t TMRB6NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB6TINV : 1; /*!< [28..28] Counter/Timer B6 Invert on trigger. */ + __IOM uint32_t TMRB6POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB6EN23 : 1; /*!< [30..30] Counter/Timer B6 Upper compare enable. */ + } AUX6_b; + } ; + + union { + __IOM uint32_t TMR7; /*!< (@ 0x000000E0) Counter/Timer Register */ + + struct { + __IOM uint32_t CTTMRA7 : 16; /*!< [15..0] Counter/Timer A7. */ + __IOM uint32_t CTTMRB7 : 16; /*!< [31..16] Counter/Timer B7. */ + } TMR7_b; + } ; + + union { + __IOM uint32_t CMPRA7; /*!< (@ 0x000000E4) Counter/Timer A7 Compare Registers */ + + struct { + __IOM uint32_t CMPR0A7 : 16; /*!< [15..0] Counter/Timer A7 Compare Register 0. */ + __IOM uint32_t CMPR1A7 : 16; /*!< [31..16] Counter/Timer A7 Compare Register 1. */ + } CMPRA7_b; + } ; + + union { + __IOM uint32_t CMPRB7; /*!< (@ 0x000000E8) Counter/Timer B7 Compare Registers */ + + struct { + __IOM uint32_t CMPR0B7 : 16; /*!< [15..0] Counter/Timer B3 Compare Register 0. */ + __IOM uint32_t CMPR1B7 : 16; /*!< [31..16] Counter/Timer B3 Compare Register 1. */ + } CMPRB7_b; + } ; + + union { + __IOM uint32_t CTRL7; /*!< (@ 0x000000EC) Counter/Timer Control */ + + struct { + __IOM uint32_t TMRA7EN : 1; /*!< [0..0] Counter/Timer A7 Enable bit. */ + __IOM uint32_t TMRA7CLK : 5; /*!< [5..1] Counter/Timer A7 Clock Select. */ + __IOM uint32_t TMRA7FN : 3; /*!< [8..6] Counter/Timer A7 Function Select. */ + __IOM uint32_t TMRA7IE0 : 1; /*!< [9..9] Counter/Timer A7 Interrupt Enable bit based on COMPR0. */ + __IOM uint32_t TMRA7IE1 : 1; /*!< [10..10] Counter/Timer A7 Interrupt Enable bit based on COMPR1. */ + __IOM uint32_t TMRA7CLR : 1; /*!< [11..11] Counter/Timer A7 Clear bit. */ + __IOM uint32_t TMRA7POL : 1; /*!< [12..12] Counter/Timer A7 output polarity. */ + __IM uint32_t : 3; + __IOM uint32_t TMRB7EN : 1; /*!< [16..16] Counter/Timer B7 Enable bit. */ + __IOM uint32_t TMRB7CLK : 5; /*!< [21..17] Counter/Timer B7 Clock Select. */ + __IOM uint32_t TMRB7FN : 3; /*!< [24..22] Counter/Timer B7 Function Select. */ + __IOM uint32_t TMRB7IE0 : 1; /*!< [25..25] Counter/Timer B7 Interrupt Enable bit for COMPR0. */ + __IOM uint32_t TMRB7IE1 : 1; /*!< [26..26] Counter/Timer B7 Interrupt Enable bit for COMPR1. */ + __IOM uint32_t TMRB7CLR : 1; /*!< [27..27] Counter/Timer B7 Clear bit. */ + __IOM uint32_t TMRB7POL : 1; /*!< [28..28] Counter/Timer B7 output polarity. */ + __IM uint32_t : 2; + __IOM uint32_t CTLINK7 : 1; /*!< [31..31] Counter/Timer A7/B7 Link bit. */ + } CTRL7_b; + } ; + __IM uint32_t RESERVED7; + + union { + __IOM uint32_t CMPRAUXA7; /*!< (@ 0x000000F4) Counter/Timer A7 Compare Registers */ + + struct { + __IOM uint32_t CMPR2A7 : 16; /*!< [15..0] Counter/Timer A7 Compare Register 2. Holds the lower + limit for timer half A. */ + __IOM uint32_t CMPR3A7 : 16; /*!< [31..16] Counter/Timer A7 Compare Register 3. Holds the upper + limit for timer half A. */ + } CMPRAUXA7_b; + } ; + + union { + __IOM uint32_t CMPRAUXB7; /*!< (@ 0x000000F8) Counter/Timer B7 Compare Registers */ + + struct { + __IOM uint32_t CMPR2B7 : 16; /*!< [15..0] Counter/Timer B7 Compare Register 2. Holds the lower + limit for timer half B. */ + __IOM uint32_t CMPR3B7 : 16; /*!< [31..16] Counter/Timer B7 Compare Register 3. Holds the upper + limit for timer half B. */ + } CMPRAUXB7_b; + } ; + + union { + __IOM uint32_t AUX7; /*!< (@ 0x000000FC) Counter/Timer Auxiliary */ + + struct { + __IOM uint32_t TMRA7LMT : 7; /*!< [6..0] Counter/Timer A7 Pattern Limit Count. */ + __IOM uint32_t TMRA7TRIG : 4; /*!< [10..7] Counter/Timer A7 Trigger Select. */ + __IOM uint32_t TMRA7NOSYNC : 1; /*!< [11..11] Source clock synchronization control. */ + __IOM uint32_t TMRA7TINV : 1; /*!< [12..12] Counter/Timer A7 Invert on trigger. */ + __IOM uint32_t TMRA7POL23 : 1; /*!< [13..13] Counter/Timer A7 Upper output polarity */ + __IOM uint32_t TMRA7EN23 : 1; /*!< [14..14] Counter/Timer A7 Upper compare enable. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB7LMT : 6; /*!< [21..16] Counter/Timer B7 Pattern Limit Count. */ + __IM uint32_t : 1; + __IOM uint32_t TMRB7TRIG : 4; /*!< [26..23] Counter/Timer B7 Trigger Select. */ + __IOM uint32_t TMRB7NOSYNC : 1; /*!< [27..27] Source clock synchronization control. */ + __IOM uint32_t TMRB7TINV : 1; /*!< [28..28] Counter/Timer B7 Invert on trigger. */ + __IOM uint32_t TMRB7POL23 : 1; /*!< [29..29] Upper output polarity */ + __IOM uint32_t TMRB7EN23 : 1; /*!< [30..30] Counter/Timer B7 Upper compare enable. */ + } AUX7_b; + } ; + + union { + __IOM uint32_t GLOBEN; /*!< (@ 0x00000100) Counter/Timer Global Enable */ + + struct { + __IOM uint32_t ENA0 : 1; /*!< [0..0] Alternate enable for A0 */ + __IOM uint32_t ENB0 : 1; /*!< [1..1] Alternate enable for B0 */ + __IOM uint32_t ENA1 : 1; /*!< [2..2] Alternate enable for A1 */ + __IOM uint32_t ENB1 : 1; /*!< [3..3] Alternate enable for B1 */ + __IOM uint32_t ENA2 : 1; /*!< [4..4] Alternate enable for A2 */ + __IOM uint32_t ENB2 : 1; /*!< [5..5] Alternate enable for B2 */ + __IOM uint32_t ENA3 : 1; /*!< [6..6] Alternate enable for A3 */ + __IOM uint32_t ENB3 : 1; /*!< [7..7] Alternate enable for B3. */ + __IOM uint32_t ENA4 : 1; /*!< [8..8] Alternate enable for A4 */ + __IOM uint32_t ENB4 : 1; /*!< [9..9] Alternate enable for B4 */ + __IOM uint32_t ENA5 : 1; /*!< [10..10] Alternate enable for A5 */ + __IOM uint32_t ENB5 : 1; /*!< [11..11] Alternate enable for B5 */ + __IOM uint32_t ENA6 : 1; /*!< [12..12] Alternate enable for A6 */ + __IOM uint32_t ENB6 : 1; /*!< [13..13] Alternate enable for B6 */ + __IOM uint32_t ENA7 : 1; /*!< [14..14] Alternate enable for A7 */ + __IOM uint32_t ENB7 : 1; /*!< [15..15] Alternate enable for B7. */ + } GLOBEN_b; + } ; + + union { + __IOM uint32_t OUTCFG0; /*!< (@ 0x00000104) Counter/Timer Output Config 0 */ + + struct { + __IOM uint32_t CFG0 : 3; /*!< [2..0] Pad output 0 configuration */ + __IOM uint32_t CFG1 : 3; /*!< [5..3] Pad output 1 configuration */ + __IOM uint32_t CFG2 : 3; /*!< [8..6] Pad output 2 configuration */ + __IOM uint32_t CFG3 : 3; /*!< [11..9] Pad output 3 configuration */ + __IOM uint32_t CFG4 : 3; /*!< [14..12] Pad output 4 configuration */ + __IM uint32_t : 1; + __IOM uint32_t CFG5 : 3; /*!< [18..16] Pad output 5 configuration */ + __IOM uint32_t CFG6 : 3; /*!< [21..19] Pad output 6 configuration */ + __IOM uint32_t CFG7 : 3; /*!< [24..22] Pad output 7 configuration */ + __IOM uint32_t CFG8 : 3; /*!< [27..25] Pad output 8 configuration */ + __IOM uint32_t CFG9 : 3; /*!< [30..28] Pad output 9 configuration */ + } OUTCFG0_b; + } ; + + union { + __IOM uint32_t OUTCFG1; /*!< (@ 0x00000108) Counter/Timer Output Config 1 */ + + struct { + __IOM uint32_t CFG10 : 3; /*!< [2..0] Pad output 10 configuration */ + __IOM uint32_t CFG11 : 3; /*!< [5..3] Pad output 11 configuration */ + __IOM uint32_t CFG12 : 3; /*!< [8..6] Pad output 12 configuration */ + __IOM uint32_t CFG13 : 3; /*!< [11..9] Pad output 13 configuration */ + __IOM uint32_t CFG14 : 3; /*!< [14..12] Pad output 14 configuration */ + __IM uint32_t : 1; + __IOM uint32_t CFG15 : 3; /*!< [18..16] Pad output 15 configuration */ + __IOM uint32_t CFG16 : 3; /*!< [21..19] Pad output 16 configuration */ + __IOM uint32_t CFG17 : 3; /*!< [24..22] Pad output 17 configuration */ + __IOM uint32_t CFG18 : 3; /*!< [27..25] Pad output 18 configuration */ + __IOM uint32_t CFG19 : 3; /*!< [30..28] Pad output 19 configuration */ + } OUTCFG1_b; + } ; + + union { + __IOM uint32_t OUTCFG2; /*!< (@ 0x0000010C) Counter/Timer Output Config 2 */ + + struct { + __IOM uint32_t CFG20 : 3; /*!< [2..0] Pad output 20 configuration */ + __IOM uint32_t CFG21 : 3; /*!< [5..3] Pad output 21 configuration */ + __IOM uint32_t CFG22 : 3; /*!< [8..6] Pad output 22 configuration */ + __IOM uint32_t CFG23 : 3; /*!< [11..9] Pad output 23 configuration */ + __IOM uint32_t CFG24 : 3; /*!< [14..12] Pad output 24 configuration */ + __IM uint32_t : 1; + __IOM uint32_t CFG25 : 3; /*!< [18..16] Pad output 25 configuration */ + __IOM uint32_t CFG26 : 3; /*!< [21..19] Pad output 26 configuration */ + __IOM uint32_t CFG27 : 3; /*!< [24..22] Pad output 27 configuration */ + __IOM uint32_t CFG28 : 3; /*!< [27..25] Pad output 28 configuration */ + __IOM uint32_t CFG29 : 3; /*!< [30..28] Pad output 29 configuration */ + } OUTCFG2_b; + } ; + __IM uint32_t RESERVED8; + + union { + __IOM uint32_t OUTCFG3; /*!< (@ 0x00000114) Counter/Timer Output Config 3 */ + + struct { + __IOM uint32_t CFG30 : 3; /*!< [2..0] Pad output 30 configuration */ + __IOM uint32_t CFG31 : 3; /*!< [5..3] Pad output 31 configuration */ + } OUTCFG3_b; + } ; + + union { + __IOM uint32_t INCFG; /*!< (@ 0x00000118) Counter/Timer Input Config */ + + struct { + __IOM uint32_t CFGA0 : 1; /*!< [0..0] CTIMER A0 input configuration */ + __IOM uint32_t CFGB0 : 1; /*!< [1..1] CTIMER B0 input configuration */ + __IOM uint32_t CFGA1 : 1; /*!< [2..2] CTIMER A1 input configuration */ + __IOM uint32_t CFGB1 : 1; /*!< [3..3] CTIMER B1 input configuration */ + __IOM uint32_t CFGA2 : 1; /*!< [4..4] CTIMER A2 input configuration */ + __IOM uint32_t CFGB2 : 1; /*!< [5..5] CTIMER B2 input configuration */ + __IOM uint32_t CFGA3 : 1; /*!< [6..6] CTIMER A3 input configuration */ + __IOM uint32_t CFGB3 : 1; /*!< [7..7] CTIMER B3 input configuration */ + __IOM uint32_t CFGA4 : 1; /*!< [8..8] CTIMER A4 input configuration */ + __IOM uint32_t CFGB4 : 1; /*!< [9..9] CTIMER B4 input configuration */ + __IOM uint32_t CFGA5 : 1; /*!< [10..10] CTIMER A5 input configuration */ + __IOM uint32_t CFGB5 : 1; /*!< [11..11] CTIMER B5 input configuration */ + __IOM uint32_t CFGA6 : 1; /*!< [12..12] CTIMER A6 input configuration */ + __IOM uint32_t CFGB6 : 1; /*!< [13..13] CTIMER B6 input configuration */ + __IOM uint32_t CFGA7 : 1; /*!< [14..14] CTIMER A7 input configuration */ + __IOM uint32_t CFGB7 : 1; /*!< [15..15] CTIMER B7 input configuration */ + } INCFG_b; + } ; + __IM uint32_t RESERVED9[9]; + + union { + __IOM uint32_t STCFG; /*!< (@ 0x00000140) Configuration Register */ + + struct { + __IOM uint32_t CLKSEL : 4; /*!< [3..0] Selects an appropriate clock source and divider to use + for the System Timer clock. */ + __IM uint32_t : 4; + __IOM uint32_t COMPARE_A_EN : 1; /*!< [8..8] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_B_EN : 1; /*!< [9..9] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_C_EN : 1; /*!< [10..10] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_D_EN : 1; /*!< [11..11] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_E_EN : 1; /*!< [12..12] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_F_EN : 1; /*!< [13..13] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_G_EN : 1; /*!< [14..14] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IOM uint32_t COMPARE_H_EN : 1; /*!< [15..15] Selects whether compare is enabled for the corresponding + SCMPR register. If compare is enabled, the interrupt status + is set once the comparision is met. */ + __IM uint32_t : 14; + __IOM uint32_t CLEAR : 1; /*!< [30..30] Set this bit to one to clear the System Timer register. + If this bit is set to '1', the system timer register will + stay cleared. It needs to be set to '0' for the system + timer to start running. */ + __IOM uint32_t FREEZE : 1; /*!< [31..31] Set this bit to one to freeze the clock input to the + COUNTER register. Once frozen, the value can be safely + written from the MCU. Unfreeze to resume. */ + } STCFG_b; + } ; + + union { + __IOM uint32_t STTMR; /*!< (@ 0x00000144) System Timer Count Register (Real Time Counter) */ + + struct { + __IOM uint32_t STTMR : 32; /*!< [31..0] Value of the 32-bit counter as it ticks over. */ + } STTMR_b; + } ; + + union { + __IOM uint32_t CAPTURECONTROL; /*!< (@ 0x00000148) Capture Control Register */ + + struct { + __IOM uint32_t CAPTURE0 : 1; /*!< [0..0] Selects whether capture is enabled for the specified + capture register. */ + __IOM uint32_t CAPTURE1 : 1; /*!< [1..1] Selects whether capture is enabled for the specified + capture register. */ + __IOM uint32_t CAPTURE2 : 1; /*!< [2..2] Selects whether capture is enabled for the specified + capture register. */ + __IOM uint32_t CAPTURE3 : 1; /*!< [3..3] Selects whether capture is enabled for the specified + capture register. */ + } CAPTURECONTROL_b; + } ; + __IM uint32_t RESERVED10; + + union { + __IOM uint32_t SCMPR0; /*!< (@ 0x00000150) Compare Register A */ + + struct { + __IOM uint32_t SCMPR0 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_A_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR0_b; + } ; + + union { + __IOM uint32_t SCMPR1; /*!< (@ 0x00000154) Compare Register B */ + + struct { + __IOM uint32_t SCMPR1 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_B_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR1_b; + } ; + + union { + __IOM uint32_t SCMPR2; /*!< (@ 0x00000158) Compare Register C */ + + struct { + __IOM uint32_t SCMPR2 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_C_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR2_b; + } ; + + union { + __IOM uint32_t SCMPR3; /*!< (@ 0x0000015C) Compare Register D */ + + struct { + __IOM uint32_t SCMPR3 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_D_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR3_b; + } ; + + union { + __IOM uint32_t SCMPR4; /*!< (@ 0x00000160) Compare Register E */ + + struct { + __IOM uint32_t SCMPR4 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_E_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR4_b; + } ; + + union { + __IOM uint32_t SCMPR5; /*!< (@ 0x00000164) Compare Register F */ + + struct { + __IOM uint32_t SCMPR5 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_F_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR5_b; + } ; + + union { + __IOM uint32_t SCMPR6; /*!< (@ 0x00000168) Compare Register G */ + + struct { + __IOM uint32_t SCMPR6 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_G_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR6_b; + } ; + + union { + __IOM uint32_t SCMPR7; /*!< (@ 0x0000016C) Compare Register H */ + + struct { + __IOM uint32_t SCMPR7 : 32; /*!< [31..0] Compare this value to the value in the COUNTER register + according to the match criterion, as selected in the COMPARE_H_EN + bit in the REG_CTIMER_STCGF register. */ + } SCMPR7_b; + } ; + __IM uint32_t RESERVED11[28]; + + union { + __IOM uint32_t SCAPT0; /*!< (@ 0x000001E0) Capture Register A */ + + struct { + __IOM uint32_t SCAPT0 : 32; /*!< [31..0] Whenever the event is detected, the value in the COUNTER + is copied into this register and the corresponding interrupt + status bit is set. */ + } SCAPT0_b; + } ; + + union { + __IOM uint32_t SCAPT1; /*!< (@ 0x000001E4) Capture Register B */ + + struct { + __IOM uint32_t SCAPT1 : 32; /*!< [31..0] Whenever the event is detected, the value in the COUNTER + is copied into this register and the corresponding interrupt + status bit is set. */ + } SCAPT1_b; + } ; + + union { + __IOM uint32_t SCAPT2; /*!< (@ 0x000001E8) Capture Register C */ + + struct { + __IOM uint32_t SCAPT2 : 32; /*!< [31..0] Whenever the event is detected, the value in the COUNTER + is copied into this register and the corresponding interrupt + status bit is set. */ + } SCAPT2_b; + } ; + + union { + __IOM uint32_t SCAPT3; /*!< (@ 0x000001EC) Capture Register D */ + + struct { + __IOM uint32_t SCAPT3 : 32; /*!< [31..0] Whenever the event is detected, the value in the COUNTER + is copied into this register and the corresponding interrupt + status bit is set. */ + } SCAPT3_b; + } ; + + union { + __IOM uint32_t SNVR0; /*!< (@ 0x000001F0) System Timer NVRAM_A Register */ + + struct { + __IOM uint32_t SNVR0 : 32; /*!< [31..0] Value of the 32-bit counter as it ticks over. */ + } SNVR0_b; + } ; + + union { + __IOM uint32_t SNVR1; /*!< (@ 0x000001F4) System Timer NVRAM_B Register */ + + struct { + __IOM uint32_t SNVR1 : 32; /*!< [31..0] Value of the 32-bit counter as it ticks over. */ + } SNVR1_b; + } ; + + union { + __IOM uint32_t SNVR2; /*!< (@ 0x000001F8) System Timer NVRAM_C Register */ + + struct { + __IOM uint32_t SNVR2 : 32; /*!< [31..0] Value of the 32-bit counter as it ticks over. */ + } SNVR2_b; + } ; + + union { + __IOM uint32_t SNVR3; /*!< (@ 0x000001FC) System Timer NVRAM_D Register */ + + struct { + __IOM uint32_t SNVR3 : 32; /*!< [31..0] Value of the 32-bit counter as it ticks over. */ + } SNVR3_b; + } ; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) Counter/Timer Interrupts: Enable */ + + struct { + __IOM uint32_t CTMRA0C0INT : 1; /*!< [0..0] Counter/Timer A0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB0C0INT : 1; /*!< [1..1] Counter/Timer B0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA1C0INT : 1; /*!< [2..2] Counter/Timer A1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB1C0INT : 1; /*!< [3..3] Counter/Timer B1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA2C0INT : 1; /*!< [4..4] Counter/Timer A2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB2C0INT : 1; /*!< [5..5] Counter/Timer B2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA3C0INT : 1; /*!< [6..6] Counter/Timer A3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB3C0INT : 1; /*!< [7..7] Counter/Timer B3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA4C0INT : 1; /*!< [8..8] Counter/Timer A4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB4C0INT : 1; /*!< [9..9] Counter/Timer B4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA5C0INT : 1; /*!< [10..10] Counter/Timer A5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB5C0INT : 1; /*!< [11..11] Counter/Timer B5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA6C0INT : 1; /*!< [12..12] Counter/Timer A6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB6C0INT : 1; /*!< [13..13] Counter/Timer B6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA7C0INT : 1; /*!< [14..14] Counter/Timer A7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB7C0INT : 1; /*!< [15..15] Counter/Timer B7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA0C1INT : 1; /*!< [16..16] Counter/Timer A0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB0C1INT : 1; /*!< [17..17] Counter/Timer B0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA1C1INT : 1; /*!< [18..18] Counter/Timer A1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB1C1INT : 1; /*!< [19..19] Counter/Timer B1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA2C1INT : 1; /*!< [20..20] Counter/Timer A2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB2C1INT : 1; /*!< [21..21] Counter/Timer B2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA3C1INT : 1; /*!< [22..22] Counter/Timer A3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB3C1INT : 1; /*!< [23..23] Counter/Timer B3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA4C1INT : 1; /*!< [24..24] Counter/Timer A4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB4C1INT : 1; /*!< [25..25] Counter/Timer B4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA5C1INT : 1; /*!< [26..26] Counter/Timer A5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB5C1INT : 1; /*!< [27..27] Counter/Timer B5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA6C1INT : 1; /*!< [28..28] Counter/Timer A6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB6C1INT : 1; /*!< [29..29] Counter/Timer B6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA7C1INT : 1; /*!< [30..30] Counter/Timer A7 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB7C1INT : 1; /*!< [31..31] Counter/Timer B7 interrupt based on COMPR1. */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) Counter/Timer Interrupts: Status */ + + struct { + __IOM uint32_t CTMRA0C0INT : 1; /*!< [0..0] Counter/Timer A0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB0C0INT : 1; /*!< [1..1] Counter/Timer B0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA1C0INT : 1; /*!< [2..2] Counter/Timer A1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB1C0INT : 1; /*!< [3..3] Counter/Timer B1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA2C0INT : 1; /*!< [4..4] Counter/Timer A2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB2C0INT : 1; /*!< [5..5] Counter/Timer B2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA3C0INT : 1; /*!< [6..6] Counter/Timer A3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB3C0INT : 1; /*!< [7..7] Counter/Timer B3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA4C0INT : 1; /*!< [8..8] Counter/Timer A4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB4C0INT : 1; /*!< [9..9] Counter/Timer B4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA5C0INT : 1; /*!< [10..10] Counter/Timer A5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB5C0INT : 1; /*!< [11..11] Counter/Timer B5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA6C0INT : 1; /*!< [12..12] Counter/Timer A6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB6C0INT : 1; /*!< [13..13] Counter/Timer B6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA7C0INT : 1; /*!< [14..14] Counter/Timer A7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB7C0INT : 1; /*!< [15..15] Counter/Timer B7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA0C1INT : 1; /*!< [16..16] Counter/Timer A0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB0C1INT : 1; /*!< [17..17] Counter/Timer B0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA1C1INT : 1; /*!< [18..18] Counter/Timer A1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB1C1INT : 1; /*!< [19..19] Counter/Timer B1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA2C1INT : 1; /*!< [20..20] Counter/Timer A2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB2C1INT : 1; /*!< [21..21] Counter/Timer B2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA3C1INT : 1; /*!< [22..22] Counter/Timer A3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB3C1INT : 1; /*!< [23..23] Counter/Timer B3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA4C1INT : 1; /*!< [24..24] Counter/Timer A4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB4C1INT : 1; /*!< [25..25] Counter/Timer B4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA5C1INT : 1; /*!< [26..26] Counter/Timer A5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB5C1INT : 1; /*!< [27..27] Counter/Timer B5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA6C1INT : 1; /*!< [28..28] Counter/Timer A6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB6C1INT : 1; /*!< [29..29] Counter/Timer B6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA7C1INT : 1; /*!< [30..30] Counter/Timer A7 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB7C1INT : 1; /*!< [31..31] Counter/Timer B7 interrupt based on COMPR1. */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) Counter/Timer Interrupts: Clear */ + + struct { + __IOM uint32_t CTMRA0C0INT : 1; /*!< [0..0] Counter/Timer A0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB0C0INT : 1; /*!< [1..1] Counter/Timer B0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA1C0INT : 1; /*!< [2..2] Counter/Timer A1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB1C0INT : 1; /*!< [3..3] Counter/Timer B1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA2C0INT : 1; /*!< [4..4] Counter/Timer A2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB2C0INT : 1; /*!< [5..5] Counter/Timer B2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA3C0INT : 1; /*!< [6..6] Counter/Timer A3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB3C0INT : 1; /*!< [7..7] Counter/Timer B3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA4C0INT : 1; /*!< [8..8] Counter/Timer A4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB4C0INT : 1; /*!< [9..9] Counter/Timer B4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA5C0INT : 1; /*!< [10..10] Counter/Timer A5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB5C0INT : 1; /*!< [11..11] Counter/Timer B5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA6C0INT : 1; /*!< [12..12] Counter/Timer A6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB6C0INT : 1; /*!< [13..13] Counter/Timer B6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA7C0INT : 1; /*!< [14..14] Counter/Timer A7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB7C0INT : 1; /*!< [15..15] Counter/Timer B7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA0C1INT : 1; /*!< [16..16] Counter/Timer A0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB0C1INT : 1; /*!< [17..17] Counter/Timer B0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA1C1INT : 1; /*!< [18..18] Counter/Timer A1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB1C1INT : 1; /*!< [19..19] Counter/Timer B1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA2C1INT : 1; /*!< [20..20] Counter/Timer A2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB2C1INT : 1; /*!< [21..21] Counter/Timer B2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA3C1INT : 1; /*!< [22..22] Counter/Timer A3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB3C1INT : 1; /*!< [23..23] Counter/Timer B3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA4C1INT : 1; /*!< [24..24] Counter/Timer A4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB4C1INT : 1; /*!< [25..25] Counter/Timer B4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA5C1INT : 1; /*!< [26..26] Counter/Timer A5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB5C1INT : 1; /*!< [27..27] Counter/Timer B5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA6C1INT : 1; /*!< [28..28] Counter/Timer A6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB6C1INT : 1; /*!< [29..29] Counter/Timer B6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA7C1INT : 1; /*!< [30..30] Counter/Timer A7 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB7C1INT : 1; /*!< [31..31] Counter/Timer B7 interrupt based on COMPR1. */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) Counter/Timer Interrupts: Set */ + + struct { + __IOM uint32_t CTMRA0C0INT : 1; /*!< [0..0] Counter/Timer A0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB0C0INT : 1; /*!< [1..1] Counter/Timer B0 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA1C0INT : 1; /*!< [2..2] Counter/Timer A1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB1C0INT : 1; /*!< [3..3] Counter/Timer B1 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA2C0INT : 1; /*!< [4..4] Counter/Timer A2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB2C0INT : 1; /*!< [5..5] Counter/Timer B2 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA3C0INT : 1; /*!< [6..6] Counter/Timer A3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB3C0INT : 1; /*!< [7..7] Counter/Timer B3 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA4C0INT : 1; /*!< [8..8] Counter/Timer A4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB4C0INT : 1; /*!< [9..9] Counter/Timer B4 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA5C0INT : 1; /*!< [10..10] Counter/Timer A5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB5C0INT : 1; /*!< [11..11] Counter/Timer B5 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA6C0INT : 1; /*!< [12..12] Counter/Timer A6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB6C0INT : 1; /*!< [13..13] Counter/Timer B6 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA7C0INT : 1; /*!< [14..14] Counter/Timer A7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRB7C0INT : 1; /*!< [15..15] Counter/Timer B7 interrupt based on COMPR0. */ + __IOM uint32_t CTMRA0C1INT : 1; /*!< [16..16] Counter/Timer A0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB0C1INT : 1; /*!< [17..17] Counter/Timer B0 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA1C1INT : 1; /*!< [18..18] Counter/Timer A1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB1C1INT : 1; /*!< [19..19] Counter/Timer B1 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA2C1INT : 1; /*!< [20..20] Counter/Timer A2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB2C1INT : 1; /*!< [21..21] Counter/Timer B2 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA3C1INT : 1; /*!< [22..22] Counter/Timer A3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB3C1INT : 1; /*!< [23..23] Counter/Timer B3 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA4C1INT : 1; /*!< [24..24] Counter/Timer A4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB4C1INT : 1; /*!< [25..25] Counter/Timer B4 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA5C1INT : 1; /*!< [26..26] Counter/Timer A5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB5C1INT : 1; /*!< [27..27] Counter/Timer B5 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA6C1INT : 1; /*!< [28..28] Counter/Timer A6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB6C1INT : 1; /*!< [29..29] Counter/Timer B6 interrupt based on COMPR1. */ + __IOM uint32_t CTMRA7C1INT : 1; /*!< [30..30] Counter/Timer A7 interrupt based on COMPR1. */ + __IOM uint32_t CTMRB7C1INT : 1; /*!< [31..31] Counter/Timer B7 interrupt based on COMPR1. */ + } INTSET_b; + } ; + __IM uint32_t RESERVED12[60]; + + union { + __IOM uint32_t STMINTEN; /*!< (@ 0x00000300) STIMER Interrupt registers: Enable */ + + struct { + __IOM uint32_t COMPAREA : 1; /*!< [0..0] COUNTER is greater than or equal to COMPARE register + A. */ + __IOM uint32_t COMPAREB : 1; /*!< [1..1] COUNTER is greater than or equal to COMPARE register + B. */ + __IOM uint32_t COMPAREC : 1; /*!< [2..2] COUNTER is greater than or equal to COMPARE register + C. */ + __IOM uint32_t COMPARED : 1; /*!< [3..3] COUNTER is greater than or equal to COMPARE register + D. */ + __IOM uint32_t COMPAREE : 1; /*!< [4..4] COUNTER is greater than or equal to COMPARE register + E. */ + __IOM uint32_t COMPAREF : 1; /*!< [5..5] COUNTER is greater than or equal to COMPARE register + F. */ + __IOM uint32_t COMPAREG : 1; /*!< [6..6] COUNTER is greater than or equal to COMPARE register + G. */ + __IOM uint32_t COMPAREH : 1; /*!< [7..7] COUNTER is greater than or equal to COMPARE register + H. */ + __IOM uint32_t OVERFLOW : 1; /*!< [8..8] COUNTER over flowed from 0xFFFFFFFF back to 0x00000000. */ + __IOM uint32_t CAPTUREA : 1; /*!< [9..9] CAPTURE register A has grabbed the value in the counter */ + __IOM uint32_t CAPTUREB : 1; /*!< [10..10] CAPTURE register B has grabbed the value in the counter */ + __IOM uint32_t CAPTUREC : 1; /*!< [11..11] CAPTURE register C has grabbed the value in the counter */ + __IOM uint32_t CAPTURED : 1; /*!< [12..12] CAPTURE register D has grabbed the value in the counter */ + } STMINTEN_b; + } ; + + union { + __IOM uint32_t STMINTSTAT; /*!< (@ 0x00000304) STIMER Interrupt registers: Status */ + + struct { + __IOM uint32_t COMPAREA : 1; /*!< [0..0] COUNTER is greater than or equal to COMPARE register + A. */ + __IOM uint32_t COMPAREB : 1; /*!< [1..1] COUNTER is greater than or equal to COMPARE register + B. */ + __IOM uint32_t COMPAREC : 1; /*!< [2..2] COUNTER is greater than or equal to COMPARE register + C. */ + __IOM uint32_t COMPARED : 1; /*!< [3..3] COUNTER is greater than or equal to COMPARE register + D. */ + __IOM uint32_t COMPAREE : 1; /*!< [4..4] COUNTER is greater than or equal to COMPARE register + E. */ + __IOM uint32_t COMPAREF : 1; /*!< [5..5] COUNTER is greater than or equal to COMPARE register + F. */ + __IOM uint32_t COMPAREG : 1; /*!< [6..6] COUNTER is greater than or equal to COMPARE register + G. */ + __IOM uint32_t COMPAREH : 1; /*!< [7..7] COUNTER is greater than or equal to COMPARE register + H. */ + __IOM uint32_t OVERFLOW : 1; /*!< [8..8] COUNTER over flowed from 0xFFFFFFFF back to 0x00000000. */ + __IOM uint32_t CAPTUREA : 1; /*!< [9..9] CAPTURE register A has grabbed the value in the counter */ + __IOM uint32_t CAPTUREB : 1; /*!< [10..10] CAPTURE register B has grabbed the value in the counter */ + __IOM uint32_t CAPTUREC : 1; /*!< [11..11] CAPTURE register C has grabbed the value in the counter */ + __IOM uint32_t CAPTURED : 1; /*!< [12..12] CAPTURE register D has grabbed the value in the counter */ + } STMINTSTAT_b; + } ; + + union { + __IOM uint32_t STMINTCLR; /*!< (@ 0x00000308) STIMER Interrupt registers: Clear */ + + struct { + __IOM uint32_t COMPAREA : 1; /*!< [0..0] COUNTER is greater than or equal to COMPARE register + A. */ + __IOM uint32_t COMPAREB : 1; /*!< [1..1] COUNTER is greater than or equal to COMPARE register + B. */ + __IOM uint32_t COMPAREC : 1; /*!< [2..2] COUNTER is greater than or equal to COMPARE register + C. */ + __IOM uint32_t COMPARED : 1; /*!< [3..3] COUNTER is greater than or equal to COMPARE register + D. */ + __IOM uint32_t COMPAREE : 1; /*!< [4..4] COUNTER is greater than or equal to COMPARE register + E. */ + __IOM uint32_t COMPAREF : 1; /*!< [5..5] COUNTER is greater than or equal to COMPARE register + F. */ + __IOM uint32_t COMPAREG : 1; /*!< [6..6] COUNTER is greater than or equal to COMPARE register + G. */ + __IOM uint32_t COMPAREH : 1; /*!< [7..7] COUNTER is greater than or equal to COMPARE register + H. */ + __IOM uint32_t OVERFLOW : 1; /*!< [8..8] COUNTER over flowed from 0xFFFFFFFF back to 0x00000000. */ + __IOM uint32_t CAPTUREA : 1; /*!< [9..9] CAPTURE register A has grabbed the value in the counter */ + __IOM uint32_t CAPTUREB : 1; /*!< [10..10] CAPTURE register B has grabbed the value in the counter */ + __IOM uint32_t CAPTUREC : 1; /*!< [11..11] CAPTURE register C has grabbed the value in the counter */ + __IOM uint32_t CAPTURED : 1; /*!< [12..12] CAPTURE register D has grabbed the value in the counter */ + } STMINTCLR_b; + } ; + + union { + __IOM uint32_t STMINTSET; /*!< (@ 0x0000030C) STIMER Interrupt registers: Set */ + + struct { + __IOM uint32_t COMPAREA : 1; /*!< [0..0] COUNTER is greater than or equal to COMPARE register + A. */ + __IOM uint32_t COMPAREB : 1; /*!< [1..1] COUNTER is greater than or equal to COMPARE register + B. */ + __IOM uint32_t COMPAREC : 1; /*!< [2..2] COUNTER is greater than or equal to COMPARE register + C. */ + __IOM uint32_t COMPARED : 1; /*!< [3..3] COUNTER is greater than or equal to COMPARE register + D. */ + __IOM uint32_t COMPAREE : 1; /*!< [4..4] COUNTER is greater than or equal to COMPARE register + E. */ + __IOM uint32_t COMPAREF : 1; /*!< [5..5] COUNTER is greater than or equal to COMPARE register + F. */ + __IOM uint32_t COMPAREG : 1; /*!< [6..6] COUNTER is greater than or equal to COMPARE register + G. */ + __IOM uint32_t COMPAREH : 1; /*!< [7..7] COUNTER is greater than or equal to COMPARE register + H. */ + __IOM uint32_t OVERFLOW : 1; /*!< [8..8] COUNTER over flowed from 0xFFFFFFFF back to 0x00000000. */ + __IOM uint32_t CAPTUREA : 1; /*!< [9..9] CAPTURE register A has grabbed the value in the counter */ + __IOM uint32_t CAPTUREB : 1; /*!< [10..10] CAPTURE register B has grabbed the value in the counter */ + __IOM uint32_t CAPTUREC : 1; /*!< [11..11] CAPTURE register C has grabbed the value in the counter */ + __IOM uint32_t CAPTURED : 1; /*!< [12..12] CAPTURE register D has grabbed the value in the counter */ + } STMINTSET_b; + } ; +} CTIMER_Type; /*!< Size = 784 (0x310) */ + + + +/* =========================================================================================================================== */ +/* ================ GPIO ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief General Purpose IO (GPIO) + */ + +typedef struct { /*!< (@ 0x40010000) GPIO Structure */ + + union { + __IOM uint32_t PADREGA; /*!< (@ 0x00000000) Pad Configuration Register A (Pads 0-3) */ + + struct { + __IOM uint32_t PAD0PULL : 1; /*!< [0..0] Pad 0 pullup enable */ + __IOM uint32_t PAD0INPEN : 1; /*!< [1..1] Pad 0 input enable */ + __IOM uint32_t PAD0STRNG : 1; /*!< [2..2] Pad 0 drive strength */ + __IOM uint32_t PAD0FNCSEL : 3; /*!< [5..3] Pad 0 function select */ + __IOM uint32_t PAD0RSEL : 2; /*!< [7..6] Pad 0 pullup resistor selection. */ + __IOM uint32_t PAD1PULL : 1; /*!< [8..8] Pad 1 pullup enable */ + __IOM uint32_t PAD1INPEN : 1; /*!< [9..9] Pad 1 input enable */ + __IOM uint32_t PAD1STRNG : 1; /*!< [10..10] Pad 1 drive strength */ + __IOM uint32_t PAD1FNCSEL : 3; /*!< [13..11] Pad 1 function select */ + __IOM uint32_t PAD1RSEL : 2; /*!< [15..14] Pad 1 pullup resistor selection. */ + __IOM uint32_t PAD2PULL : 1; /*!< [16..16] Pad 2 pullup enable */ + __IOM uint32_t PAD2INPEN : 1; /*!< [17..17] Pad 2 input enable */ + __IOM uint32_t PAD2STRNG : 1; /*!< [18..18] Pad 2 drive strength */ + __IOM uint32_t PAD2FNCSEL : 3; /*!< [21..19] Pad 2 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD3PULL : 1; /*!< [24..24] Pad 3 pullup enable */ + __IOM uint32_t PAD3INPEN : 1; /*!< [25..25] Pad 3 input enable. */ + __IOM uint32_t PAD3STRNG : 1; /*!< [26..26] Pad 3 drive strength. */ + __IOM uint32_t PAD3FNCSEL : 3; /*!< [29..27] Pad 3 function select */ + __IOM uint32_t PAD3PWRUP : 1; /*!< [30..30] Pad 3 VDD power switch enable */ + } PADREGA_b; + } ; + + union { + __IOM uint32_t PADREGB; /*!< (@ 0x00000004) Pad Configuration Register B (Pads 4-7) */ + + struct { + __IOM uint32_t PAD4PULL : 1; /*!< [0..0] Pad 4 pullup enable */ + __IOM uint32_t PAD4INPEN : 1; /*!< [1..1] Pad 4 input enable */ + __IOM uint32_t PAD4STRNG : 1; /*!< [2..2] Pad 4 drive strength */ + __IOM uint32_t PAD4FNCSEL : 3; /*!< [5..3] Pad 4 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD5PULL : 1; /*!< [8..8] Pad 5 pullup enable */ + __IOM uint32_t PAD5INPEN : 1; /*!< [9..9] Pad 5 input enable */ + __IOM uint32_t PAD5STRNG : 1; /*!< [10..10] Pad 5 drive strength */ + __IOM uint32_t PAD5FNCSEL : 3; /*!< [13..11] Pad 5 function select */ + __IOM uint32_t PAD5RSEL : 2; /*!< [15..14] Pad 5 pullup resistor selection. */ + __IOM uint32_t PAD6PULL : 1; /*!< [16..16] Pad 6 pullup enable */ + __IOM uint32_t PAD6INPEN : 1; /*!< [17..17] Pad 6 input enable */ + __IOM uint32_t PAD6STRNG : 1; /*!< [18..18] Pad 6 drive strength */ + __IOM uint32_t PAD6FNCSEL : 3; /*!< [21..19] Pad 6 function select */ + __IOM uint32_t PAD6RSEL : 2; /*!< [23..22] Pad 6 pullup resistor selection. */ + __IOM uint32_t PAD7PULL : 1; /*!< [24..24] Pad 7 pullup enable */ + __IOM uint32_t PAD7INPEN : 1; /*!< [25..25] Pad 7 input enable */ + __IOM uint32_t PAD7STRNG : 1; /*!< [26..26] Pad 7 drive strength */ + __IOM uint32_t PAD7FNCSEL : 3; /*!< [29..27] Pad 7 function select */ + } PADREGB_b; + } ; + + union { + __IOM uint32_t PADREGC; /*!< (@ 0x00000008) Pad Configuration Register C (Pads 8-11) */ + + struct { + __IOM uint32_t PAD8PULL : 1; /*!< [0..0] Pad 8 pullup enable */ + __IOM uint32_t PAD8INPEN : 1; /*!< [1..1] Pad 8 input enable */ + __IOM uint32_t PAD8STRNG : 1; /*!< [2..2] Pad 8 drive strength */ + __IOM uint32_t PAD8FNCSEL : 3; /*!< [5..3] Pad 8 function select */ + __IOM uint32_t PAD8RSEL : 2; /*!< [7..6] Pad 8 pullup resistor selection. */ + __IOM uint32_t PAD9PULL : 1; /*!< [8..8] Pad 9 pullup enable */ + __IOM uint32_t PAD9INPEN : 1; /*!< [9..9] Pad 9 input enable */ + __IOM uint32_t PAD9STRNG : 1; /*!< [10..10] Pad 9 drive strength */ + __IOM uint32_t PAD9FNCSEL : 3; /*!< [13..11] Pad 9 function select */ + __IOM uint32_t PAD9RSEL : 2; /*!< [15..14] Pad 9 pullup resistor selection */ + __IOM uint32_t PAD10PULL : 1; /*!< [16..16] Pad 10 pullup enable */ + __IOM uint32_t PAD10INPEN : 1; /*!< [17..17] Pad 10 input enable */ + __IOM uint32_t PAD10STRNG : 1; /*!< [18..18] Pad 10 drive strength */ + __IOM uint32_t PAD10FNCSEL : 3; /*!< [21..19] Pad 10 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD11PULL : 1; /*!< [24..24] Pad 11 pullup enable */ + __IOM uint32_t PAD11INPEN : 1; /*!< [25..25] Pad 11 input enable */ + __IOM uint32_t PAD11STRNG : 1; /*!< [26..26] Pad 11 drive strength */ + __IOM uint32_t PAD11FNCSEL : 3; /*!< [29..27] Pad 11 function select */ + } PADREGC_b; + } ; + + union { + __IOM uint32_t PADREGD; /*!< (@ 0x0000000C) Pad Configuration Register D (Pads 12-15) */ + + struct { + __IOM uint32_t PAD12PULL : 1; /*!< [0..0] Pad 12 pullup enable */ + __IOM uint32_t PAD12INPEN : 1; /*!< [1..1] Pad 12 input enable */ + __IOM uint32_t PAD12STRNG : 1; /*!< [2..2] Pad 12 drive strength */ + __IOM uint32_t PAD12FNCSEL : 3; /*!< [5..3] Pad 12 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD13PULL : 1; /*!< [8..8] Pad 13 pullup enable */ + __IOM uint32_t PAD13INPEN : 1; /*!< [9..9] Pad 13 input enable */ + __IOM uint32_t PAD13STRNG : 1; /*!< [10..10] Pad 13 drive strength */ + __IOM uint32_t PAD13FNCSEL : 3; /*!< [13..11] Pad 13 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD14PULL : 1; /*!< [16..16] Pad 14 pullup enable */ + __IOM uint32_t PAD14INPEN : 1; /*!< [17..17] Pad 14 input enable */ + __IOM uint32_t PAD14STRNG : 1; /*!< [18..18] Pad 14 drive strength */ + __IOM uint32_t PAD14FNCSEL : 3; /*!< [21..19] Pad 14 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD15PULL : 1; /*!< [24..24] Pad 15 pullup enable */ + __IOM uint32_t PAD15INPEN : 1; /*!< [25..25] Pad 15 input enable */ + __IOM uint32_t PAD15STRNG : 1; /*!< [26..26] Pad 15 drive strength */ + __IOM uint32_t PAD15FNCSEL : 3; /*!< [29..27] Pad 15 function select */ + } PADREGD_b; + } ; + + union { + __IOM uint32_t PADREGE; /*!< (@ 0x00000010) Pad Configuration Register E (Pads 16-19) */ + + struct { + __IOM uint32_t PAD16PULL : 1; /*!< [0..0] Pad 16 pullup enable */ + __IOM uint32_t PAD16INPEN : 1; /*!< [1..1] Pad 16 input enable */ + __IOM uint32_t PAD16STRNG : 1; /*!< [2..2] Pad 16 drive strength */ + __IOM uint32_t PAD16FNCSEL : 3; /*!< [5..3] Pad 16 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD17PULL : 1; /*!< [8..8] Pad 17 pullup enable */ + __IOM uint32_t PAD17INPEN : 1; /*!< [9..9] Pad 17 input enable */ + __IOM uint32_t PAD17STRNG : 1; /*!< [10..10] Pad 17 drive strength */ + __IOM uint32_t PAD17FNCSEL : 3; /*!< [13..11] Pad 17 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD18PULL : 1; /*!< [16..16] Pad 18 pullup enable */ + __IOM uint32_t PAD18INPEN : 1; /*!< [17..17] Pad 18 input enable */ + __IOM uint32_t PAD18STRNG : 1; /*!< [18..18] Pad 18 drive strength */ + __IOM uint32_t PAD18FNCSEL : 3; /*!< [21..19] Pad 18 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD19PULL : 1; /*!< [24..24] Pad 19 pullup enable */ + __IOM uint32_t PAD19INPEN : 1; /*!< [25..25] Pad 19 input enable */ + __IOM uint32_t PAD19STRNG : 1; /*!< [26..26] Pad 19 drive strength */ + __IOM uint32_t PAD19FNCSEL : 3; /*!< [29..27] Pad 19 function select */ + } PADREGE_b; + } ; + + union { + __IOM uint32_t PADREGF; /*!< (@ 0x00000014) Pad Configuration Register F (Pads 20-23) */ + + struct { + __IOM uint32_t PAD20PULL : 1; /*!< [0..0] Pad 20 pulldown enable */ + __IOM uint32_t PAD20INPEN : 1; /*!< [1..1] Pad 20 input enable */ + __IOM uint32_t PAD20STRNG : 1; /*!< [2..2] Pad 20 drive strength */ + __IOM uint32_t PAD20FNCSEL : 3; /*!< [5..3] Pad 20 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD21PULL : 1; /*!< [8..8] Pad 21 pullup enable */ + __IOM uint32_t PAD21INPEN : 1; /*!< [9..9] Pad 21 input enable */ + __IOM uint32_t PAD21STRNG : 1; /*!< [10..10] Pad 21 drive strength */ + __IOM uint32_t PAD21FNCSEL : 3; /*!< [13..11] Pad 21 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD22PULL : 1; /*!< [16..16] Pad 22 pullup enable */ + __IOM uint32_t PAD22INPEN : 1; /*!< [17..17] Pad 22 input enable */ + __IOM uint32_t PAD22STRNG : 1; /*!< [18..18] Pad 22 drive strength */ + __IOM uint32_t PAD22FNCSEL : 3; /*!< [21..19] Pad 22 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD23PULL : 1; /*!< [24..24] Pad 23 pullup enable */ + __IOM uint32_t PAD23INPEN : 1; /*!< [25..25] Pad 23 input enable */ + __IOM uint32_t PAD23STRNG : 1; /*!< [26..26] Pad 23 drive strength */ + __IOM uint32_t PAD23FNCSEL : 3; /*!< [29..27] Pad 23 function select */ + } PADREGF_b; + } ; + + union { + __IOM uint32_t PADREGG; /*!< (@ 0x00000018) Pad Configuration Register G (Pads 24-27) */ + + struct { + __IOM uint32_t PAD24PULL : 1; /*!< [0..0] Pad 24 pullup enable */ + __IOM uint32_t PAD24INPEN : 1; /*!< [1..1] Pad 24 input enable */ + __IOM uint32_t PAD24STRNG : 1; /*!< [2..2] Pad 24 drive strength */ + __IOM uint32_t PAD24FNCSEL : 3; /*!< [5..3] Pad 24 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD25PULL : 1; /*!< [8..8] Pad 25 pullup enable */ + __IOM uint32_t PAD25INPEN : 1; /*!< [9..9] Pad 25 input enable */ + __IOM uint32_t PAD25STRNG : 1; /*!< [10..10] Pad 25 drive strength */ + __IOM uint32_t PAD25FNCSEL : 3; /*!< [13..11] Pad 25 function select */ + __IOM uint32_t PAD25RSEL : 2; /*!< [15..14] Pad 25 pullup resistor selection. */ + __IOM uint32_t PAD26PULL : 1; /*!< [16..16] Pad 26 pullup enable */ + __IOM uint32_t PAD26INPEN : 1; /*!< [17..17] Pad 26 input enable */ + __IOM uint32_t PAD26STRNG : 1; /*!< [18..18] Pad 26 drive strength */ + __IOM uint32_t PAD26FNCSEL : 3; /*!< [21..19] Pad 26 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD27PULL : 1; /*!< [24..24] Pad 27 pullup enable */ + __IOM uint32_t PAD27INPEN : 1; /*!< [25..25] Pad 27 input enable */ + __IOM uint32_t PAD27STRNG : 1; /*!< [26..26] Pad 27 drive strength */ + __IOM uint32_t PAD27FNCSEL : 3; /*!< [29..27] Pad 27 function select */ + __IOM uint32_t PAD27RSEL : 2; /*!< [31..30] Pad 27 pullup resistor selection. */ + } PADREGG_b; + } ; + + union { + __IOM uint32_t PADREGH; /*!< (@ 0x0000001C) Pad Configuration Register H (Pads 28-31) */ + + struct { + __IOM uint32_t PAD28PULL : 1; /*!< [0..0] Pad 28 pullup enable */ + __IOM uint32_t PAD28INPEN : 1; /*!< [1..1] Pad 28 input enable */ + __IOM uint32_t PAD28STRNG : 1; /*!< [2..2] Pad 28 drive strength */ + __IOM uint32_t PAD28FNCSEL : 3; /*!< [5..3] Pad 28 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD29PULL : 1; /*!< [8..8] Pad 29 pullup enable */ + __IOM uint32_t PAD29INPEN : 1; /*!< [9..9] Pad 29 input enable */ + __IOM uint32_t PAD29STRNG : 1; /*!< [10..10] Pad 29 drive strength */ + __IOM uint32_t PAD29FNCSEL : 3; /*!< [13..11] Pad 29 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD30PULL : 1; /*!< [16..16] Pad 30 pullup enable */ + __IOM uint32_t PAD30INPEN : 1; /*!< [17..17] Pad 30 input enable */ + __IOM uint32_t PAD30STRNG : 1; /*!< [18..18] Pad 30 drive strength */ + __IOM uint32_t PAD30FNCSEL : 3; /*!< [21..19] Pad 30 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD31PULL : 1; /*!< [24..24] Pad 31 pullup enable */ + __IOM uint32_t PAD31INPEN : 1; /*!< [25..25] Pad 31 input enable */ + __IOM uint32_t PAD31STRNG : 1; /*!< [26..26] Pad 31 drive strength */ + __IOM uint32_t PAD31FNCSEL : 3; /*!< [29..27] Pad 31 function select */ + } PADREGH_b; + } ; + + union { + __IOM uint32_t PADREGI; /*!< (@ 0x00000020) Pad Configuration Register I (Pads 32-35) */ + + struct { + __IOM uint32_t PAD32PULL : 1; /*!< [0..0] Pad 32 pullup enable */ + __IOM uint32_t PAD32INPEN : 1; /*!< [1..1] Pad 32 input enable */ + __IOM uint32_t PAD32STRNG : 1; /*!< [2..2] Pad 32 drive strength */ + __IOM uint32_t PAD32FNCSEL : 3; /*!< [5..3] Pad 32 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD33PULL : 1; /*!< [8..8] Pad 33 pullup enable */ + __IOM uint32_t PAD33INPEN : 1; /*!< [9..9] Pad 33 input enable */ + __IOM uint32_t PAD33STRNG : 1; /*!< [10..10] Pad 33 drive strength */ + __IOM uint32_t PAD33FNCSEL : 3; /*!< [13..11] Pad 33 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD34PULL : 1; /*!< [16..16] Pad 34 pullup enable */ + __IOM uint32_t PAD34INPEN : 1; /*!< [17..17] Pad 34 input enable */ + __IOM uint32_t PAD34STRNG : 1; /*!< [18..18] Pad 34 drive strength */ + __IOM uint32_t PAD34FNCSEL : 3; /*!< [21..19] Pad 34 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD35PULL : 1; /*!< [24..24] Pad 35 pullup enable */ + __IOM uint32_t PAD35INPEN : 1; /*!< [25..25] Pad 35 input enable */ + __IOM uint32_t PAD35STRNG : 1; /*!< [26..26] Pad 35 drive strength */ + __IOM uint32_t PAD35FNCSEL : 3; /*!< [29..27] Pad 35 function select */ + } PADREGI_b; + } ; + + union { + __IOM uint32_t PADREGJ; /*!< (@ 0x00000024) Pad Configuration Register J (Pads 36-39) */ + + struct { + __IOM uint32_t PAD36PULL : 1; /*!< [0..0] Pad 36 pullup enable */ + __IOM uint32_t PAD36INPEN : 1; /*!< [1..1] Pad 36 input enable */ + __IOM uint32_t PAD36STRNG : 1; /*!< [2..2] Pad 36 drive strength */ + __IOM uint32_t PAD36FNCSEL : 3; /*!< [5..3] Pad 36 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD37PULL : 1; /*!< [8..8] Pad 37 pullup enable */ + __IOM uint32_t PAD37INPEN : 1; /*!< [9..9] Pad 37 input enable */ + __IOM uint32_t PAD37STRNG : 1; /*!< [10..10] Pad 37 drive strength */ + __IOM uint32_t PAD37FNCSEL : 3; /*!< [13..11] Pad 37 function select */ + __IM uint32_t : 1; + __IOM uint32_t PAD37PWRDN : 1; /*!< [15..15] Pad 37 VSS power switch enable */ + __IOM uint32_t PAD38PULL : 1; /*!< [16..16] Pad 38 pullup enable */ + __IOM uint32_t PAD38INPEN : 1; /*!< [17..17] Pad 38 input enable */ + __IOM uint32_t PAD38STRNG : 1; /*!< [18..18] Pad 38 drive strength */ + __IOM uint32_t PAD38FNCSEL : 3; /*!< [21..19] Pad 38 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD39PULL : 1; /*!< [24..24] Pad 39 pullup enable */ + __IOM uint32_t PAD39INPEN : 1; /*!< [25..25] Pad 39 input enable */ + __IOM uint32_t PAD39STRNG : 1; /*!< [26..26] Pad 39 drive strength */ + __IOM uint32_t PAD39FNCSEL : 3; /*!< [29..27] Pad 39 function select */ + __IOM uint32_t PAD39RSEL : 2; /*!< [31..30] Pad 39 pullup resistor selection. */ + } PADREGJ_b; + } ; + + union { + __IOM uint32_t PADREGK; /*!< (@ 0x00000028) Pad Configuration Register K (Pads 40-43) */ + + struct { + __IOM uint32_t PAD40PULL : 1; /*!< [0..0] Pad 40 pullup enable */ + __IOM uint32_t PAD40INPEN : 1; /*!< [1..1] Pad 40 input enable */ + __IOM uint32_t PAD40STRNG : 1; /*!< [2..2] Pad 40 drive strength */ + __IOM uint32_t PAD40FNCSEL : 3; /*!< [5..3] Pad 40 function select */ + __IOM uint32_t PAD40RSEL : 2; /*!< [7..6] Pad 40 pullup resistor selection. */ + __IOM uint32_t PAD41PULL : 1; /*!< [8..8] Pad 41 pullup enable */ + __IOM uint32_t PAD41INPEN : 1; /*!< [9..9] Pad 41 input enable */ + __IOM uint32_t PAD41STRNG : 1; /*!< [10..10] Pad 41 drive strength */ + __IOM uint32_t PAD41FNCSEL : 3; /*!< [13..11] Pad 41 function select */ + __IM uint32_t : 1; + __IOM uint32_t PAD41PWRDN : 1; /*!< [15..15] Pad 41 power switch enable */ + __IOM uint32_t PAD42PULL : 1; /*!< [16..16] Pad 42 pullup enable */ + __IOM uint32_t PAD42INPEN : 1; /*!< [17..17] Pad 42 input enable */ + __IOM uint32_t PAD42STRNG : 1; /*!< [18..18] Pad 42 drive strength */ + __IOM uint32_t PAD42FNCSEL : 3; /*!< [21..19] Pad 42 function select */ + __IOM uint32_t PAD42RSEL : 2; /*!< [23..22] Pad 42 pullup resistor selection. */ + __IOM uint32_t PAD43PULL : 1; /*!< [24..24] Pad 43 pullup enable */ + __IOM uint32_t PAD43INPEN : 1; /*!< [25..25] Pad 43 input enable */ + __IOM uint32_t PAD43STRNG : 1; /*!< [26..26] Pad 43 drive strength */ + __IOM uint32_t PAD43FNCSEL : 3; /*!< [29..27] Pad 43 function select */ + __IOM uint32_t PAD43RSEL : 2; /*!< [31..30] Pad 43 pullup resistor selection. */ + } PADREGK_b; + } ; + + union { + __IOM uint32_t PADREGL; /*!< (@ 0x0000002C) Pad Configuration Register L (Pads 44-47) */ + + struct { + __IOM uint32_t PAD44PULL : 1; /*!< [0..0] Pad 44 pullup enable */ + __IOM uint32_t PAD44INPEN : 1; /*!< [1..1] Pad 44 input enable */ + __IOM uint32_t PAD44STRNG : 1; /*!< [2..2] Pad 44 drive strength */ + __IOM uint32_t PAD44FNCSEL : 3; /*!< [5..3] Pad 44 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD45PULL : 1; /*!< [8..8] Pad 45 pullup enable */ + __IOM uint32_t PAD45INPEN : 1; /*!< [9..9] Pad 45 input enable */ + __IOM uint32_t PAD45STRNG : 1; /*!< [10..10] Pad 45 drive strength */ + __IOM uint32_t PAD45FNCSEL : 3; /*!< [13..11] Pad 45 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD46PULL : 1; /*!< [16..16] Pad 46 pullup enable */ + __IOM uint32_t PAD46INPEN : 1; /*!< [17..17] Pad 46 input enable */ + __IOM uint32_t PAD46STRNG : 1; /*!< [18..18] Pad 46 drive strength */ + __IOM uint32_t PAD46FNCSEL : 3; /*!< [21..19] Pad 46 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD47PULL : 1; /*!< [24..24] Pad 47 pullup enable */ + __IOM uint32_t PAD47INPEN : 1; /*!< [25..25] Pad 47 input enable */ + __IOM uint32_t PAD47STRNG : 1; /*!< [26..26] Pad 47 drive strength */ + __IOM uint32_t PAD47FNCSEL : 3; /*!< [29..27] Pad 47 function select */ + } PADREGL_b; + } ; + + union { + __IOM uint32_t PADREGM; /*!< (@ 0x00000030) Pad Configuration Register M (Pads 48-51) */ + + struct { + __IOM uint32_t PAD48PULL : 1; /*!< [0..0] Pad 48 pullup enable */ + __IOM uint32_t PAD48INPEN : 1; /*!< [1..1] Pad 48 input enable */ + __IOM uint32_t PAD48STRNG : 1; /*!< [2..2] Pad 48 drive strength */ + __IOM uint32_t PAD48FNCSEL : 3; /*!< [5..3] Pad 48 function select */ + __IOM uint32_t PAD48RSEL : 2; /*!< [7..6] Pad 48 pullup resistor selection. */ + __IOM uint32_t PAD49PULL : 1; /*!< [8..8] Pad 49 pullup enable */ + __IOM uint32_t PAD49INPEN : 1; /*!< [9..9] Pad 49 input enable */ + __IOM uint32_t PAD49STRNG : 1; /*!< [10..10] Pad 49 drive strength */ + __IOM uint32_t PAD49FNCSEL : 3; /*!< [13..11] Pad 49 function select */ + __IOM uint32_t PAD49RSEL : 2; /*!< [15..14] Pad 49 pullup resistor selection. */ + __IOM uint32_t PAD50PULL : 1; /*!< [16..16] Pad 50 pullup enable */ + __IOM uint32_t PAD50INPEN : 1; /*!< [17..17] Pad 50 input enable */ + __IOM uint32_t PAD50STRNG : 1; /*!< [18..18] Pad 50 drive strength */ + __IOM uint32_t PAD50FNCSEL : 3; /*!< [21..19] Pad 50 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD51PULL : 1; /*!< [24..24] Pad 51 pullup enable */ + __IOM uint32_t PAD51INPEN : 1; /*!< [25..25] Pad 51 input enable */ + __IOM uint32_t PAD51STRNG : 1; /*!< [26..26] Pad 51 drive strength */ + __IOM uint32_t PAD51FNCSEL : 3; /*!< [29..27] Pad 51 function select */ + } PADREGM_b; + } ; + + union { + __IOM uint32_t PADREGN; /*!< (@ 0x00000034) Pad Configuration Register N (Pads 52-55) */ + + struct { + __IOM uint32_t PAD52PULL : 1; /*!< [0..0] Pad 52 pullup enable */ + __IOM uint32_t PAD52INPEN : 1; /*!< [1..1] Pad 52 input enable */ + __IOM uint32_t PAD52STRNG : 1; /*!< [2..2] Pad 52 drive strength */ + __IOM uint32_t PAD52FNCSEL : 3; /*!< [5..3] Pad 52 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD53PULL : 1; /*!< [8..8] Pad 53 pullup enable */ + __IOM uint32_t PAD53INPEN : 1; /*!< [9..9] Pad 53 input enable */ + __IOM uint32_t PAD53STRNG : 1; /*!< [10..10] Pad 53 drive strength */ + __IOM uint32_t PAD53FNCSEL : 3; /*!< [13..11] Pad 53 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD54PULL : 1; /*!< [16..16] Pad 54 pullup enable */ + __IOM uint32_t PAD54INPEN : 1; /*!< [17..17] Pad 54 input enable */ + __IOM uint32_t PAD54STRNG : 1; /*!< [18..18] Pad 54 drive strength */ + __IOM uint32_t PAD54FNCSEL : 3; /*!< [21..19] Pad 54 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD55PULL : 1; /*!< [24..24] Pad 55 pullup enable */ + __IOM uint32_t PAD55INPEN : 1; /*!< [25..25] Pad 55 input enable */ + __IOM uint32_t PAD55STRNG : 1; /*!< [26..26] Pad 55 drive strength */ + __IOM uint32_t PAD55FNCSEL : 3; /*!< [29..27] Pad 55 function select */ + } PADREGN_b; + } ; + + union { + __IOM uint32_t PADREGO; /*!< (@ 0x00000038) Pad Configuration Register O (Pads 56-59) */ + + struct { + __IOM uint32_t PAD56PULL : 1; /*!< [0..0] Pad 56 pullup enable */ + __IOM uint32_t PAD56INPEN : 1; /*!< [1..1] Pad 56 input enable */ + __IOM uint32_t PAD56STRNG : 1; /*!< [2..2] Pad 56 drive strength */ + __IOM uint32_t PAD56FNCSEL : 3; /*!< [5..3] Pad 56 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD57PULL : 1; /*!< [8..8] Pad 57 pullup enable */ + __IOM uint32_t PAD57INPEN : 1; /*!< [9..9] Pad 57 input enable */ + __IOM uint32_t PAD57STRNG : 1; /*!< [10..10] Pad 57 drive strength */ + __IOM uint32_t PAD57FNCSEL : 3; /*!< [13..11] Pad 57 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD58PULL : 1; /*!< [16..16] Pad 58 pullup enable */ + __IOM uint32_t PAD58INPEN : 1; /*!< [17..17] Pad 58 input enable */ + __IOM uint32_t PAD58STRNG : 1; /*!< [18..18] Pad 58 drive strength */ + __IOM uint32_t PAD58FNCSEL : 3; /*!< [21..19] Pad 58 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD59PULL : 1; /*!< [24..24] Pad 59 pullup enable */ + __IOM uint32_t PAD59INPEN : 1; /*!< [25..25] Pad 59 input enable */ + __IOM uint32_t PAD59STRNG : 1; /*!< [26..26] Pad 59 drive strength */ + __IOM uint32_t PAD59FNCSEL : 3; /*!< [29..27] Pad 59 function select */ + } PADREGO_b; + } ; + + union { + __IOM uint32_t PADREGP; /*!< (@ 0x0000003C) Pad Configuration Register P (Pads 60-63) */ + + struct { + __IOM uint32_t PAD60PULL : 1; /*!< [0..0] Pad 60 pullup enable */ + __IOM uint32_t PAD60INPEN : 1; /*!< [1..1] Pad 60 input enable */ + __IOM uint32_t PAD60STRNG : 1; /*!< [2..2] Pad 60 drive strength */ + __IOM uint32_t PAD60FNCSEL : 3; /*!< [5..3] Pad 60 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD61PULL : 1; /*!< [8..8] Pad 61 pullup enable */ + __IOM uint32_t PAD61INPEN : 1; /*!< [9..9] Pad 61 input enable */ + __IOM uint32_t PAD61STRNG : 1; /*!< [10..10] Pad 61 drive strength */ + __IOM uint32_t PAD61FNCSEL : 3; /*!< [13..11] Pad 61 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD62PULL : 1; /*!< [16..16] Pad 62 pullup enable */ + __IOM uint32_t PAD62INPEN : 1; /*!< [17..17] Pad 62 input enable */ + __IOM uint32_t PAD62STRNG : 1; /*!< [18..18] Pad 62 drive strength */ + __IOM uint32_t PAD62FNCSEL : 3; /*!< [21..19] Pad 62 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD63PULL : 1; /*!< [24..24] Pad 63 pullup enable */ + __IOM uint32_t PAD63INPEN : 1; /*!< [25..25] Pad 63 input enable */ + __IOM uint32_t PAD63STRNG : 1; /*!< [26..26] Pad 63 drive strength */ + __IOM uint32_t PAD63FNCSEL : 3; /*!< [29..27] Pad 63 function select */ + } PADREGP_b; + } ; + + union { + __IOM uint32_t PADREGQ; /*!< (@ 0x00000040) Pad Configuration Register Q (Pads 64-67) */ + + struct { + __IOM uint32_t PAD64PULL : 1; /*!< [0..0] Pad 64 pullup enable */ + __IOM uint32_t PAD64INPEN : 1; /*!< [1..1] Pad 64 input enable */ + __IOM uint32_t PAD64STRNG : 1; /*!< [2..2] Pad 64 drive strength */ + __IOM uint32_t PAD64FNCSEL : 3; /*!< [5..3] Pad 64 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD65PULL : 1; /*!< [8..8] Pad 65 pullup enable */ + __IOM uint32_t PAD65INPEN : 1; /*!< [9..9] Pad 65 input enable */ + __IOM uint32_t PAD65STRNG : 1; /*!< [10..10] Pad 65 drive strength */ + __IOM uint32_t PAD65FNCSEL : 3; /*!< [13..11] Pad 65 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD66PULL : 1; /*!< [16..16] Pad 66 pullup enable */ + __IOM uint32_t PAD66INPEN : 1; /*!< [17..17] Pad 66 input enable */ + __IOM uint32_t PAD66STRNG : 1; /*!< [18..18] Pad 66 drive strength */ + __IOM uint32_t PAD66FNCSEL : 3; /*!< [21..19] Pad 66 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD67PULL : 1; /*!< [24..24] Pad 67 pullup enable */ + __IOM uint32_t PAD67INPEN : 1; /*!< [25..25] Pad 67 input enable */ + __IOM uint32_t PAD67STRNG : 1; /*!< [26..26] Pad 67 drive strength */ + __IOM uint32_t PAD67FNCSEL : 3; /*!< [29..27] Pad 67 function select */ + } PADREGQ_b; + } ; + + union { + __IOM uint32_t PADREGR; /*!< (@ 0x00000044) Pad Configuration Register R (Pads 68-71) */ + + struct { + __IOM uint32_t PAD68PULL : 1; /*!< [0..0] Pad 68 pullup enable */ + __IOM uint32_t PAD68INPEN : 1; /*!< [1..1] Pad 68 input enable */ + __IOM uint32_t PAD68STRNG : 1; /*!< [2..2] Pad 68 drive strength */ + __IOM uint32_t PAD68FNCSEL : 3; /*!< [5..3] Pad 68 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD69PULL : 1; /*!< [8..8] Pad 69 pullup enable */ + __IOM uint32_t PAD69INPEN : 1; /*!< [9..9] Pad 69 input enable */ + __IOM uint32_t PAD69STRNG : 1; /*!< [10..10] Pad 69 drive strength */ + __IOM uint32_t PAD69FNCSEL : 3; /*!< [13..11] Pad 69 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD70PULL : 1; /*!< [16..16] Pad 70 pullup enable */ + __IOM uint32_t PAD70INPEN : 1; /*!< [17..17] Pad 70 input enable */ + __IOM uint32_t PAD70STRNG : 1; /*!< [18..18] Pad 70 drive strength */ + __IOM uint32_t PAD70FNCSEL : 3; /*!< [21..19] Pad 70 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD71PULL : 1; /*!< [24..24] Pad 71 pullup enable */ + __IOM uint32_t PAD71INPEN : 1; /*!< [25..25] Pad 71 input enable */ + __IOM uint32_t PAD71STRNG : 1; /*!< [26..26] Pad 71 drive strength */ + __IOM uint32_t PAD71FNCSEL : 3; /*!< [29..27] Pad 71 function select */ + } PADREGR_b; + } ; + + union { + __IOM uint32_t PADREGS; /*!< (@ 0x00000048) Pad Configuration Register S (Pads 72-75) */ + + struct { + __IOM uint32_t PAD72PULL : 1; /*!< [0..0] Pad 72 pullup enable */ + __IOM uint32_t PAD72INPEN : 1; /*!< [1..1] Pad 72 input enable */ + __IOM uint32_t PAD72STRNG : 1; /*!< [2..2] Pad 72 drive strength */ + __IOM uint32_t PAD72FNCSEL : 3; /*!< [5..3] Pad 72 function select */ + __IM uint32_t : 2; + __IOM uint32_t PAD73PULL : 1; /*!< [8..8] Pad 73 pullup enable */ + __IOM uint32_t PAD73INPEN : 1; /*!< [9..9] Pad 73 input enable */ + __IOM uint32_t PAD73STRNG : 1; /*!< [10..10] Pad 73 drive strength */ + __IOM uint32_t PAD73FNCSEL : 3; /*!< [13..11] Pad 73 function select */ + } PADREGS_b; + } ; + + union { + __IOM uint32_t CFGA; /*!< (@ 0x0000004C) GPIO Configuration Register A (Pads 7-0) */ + + struct { + __IOM uint32_t GPIO0INCFG : 1; /*!< [0..0] GPIO0 input enable. */ + __IOM uint32_t GPIO0OUTCFG : 2; /*!< [2..1] GPIO0 output configuration. */ + __IOM uint32_t GPIO0INTD : 1; /*!< [3..3] GPIO0 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO1INCFG : 1; /*!< [4..4] GPIO1 input enable. */ + __IOM uint32_t GPIO1OUTCFG : 2; /*!< [6..5] GPIO1 output configuration. */ + __IOM uint32_t GPIO1INTD : 1; /*!< [7..7] GPIO1 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO2INCFG : 1; /*!< [8..8] GPIO2 input enable. */ + __IOM uint32_t GPIO2OUTCFG : 2; /*!< [10..9] GPIO2 output configuration. */ + __IOM uint32_t GPIO2INTD : 1; /*!< [11..11] GPIO2 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO3INCFG : 1; /*!< [12..12] GPIO3 input enable. */ + __IOM uint32_t GPIO3OUTCFG : 2; /*!< [14..13] GPIO3 output configuration. */ + __IOM uint32_t GPIO3INTD : 1; /*!< [15..15] GPIO3 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO4INCFG : 1; /*!< [16..16] GPIO4 input enable. */ + __IOM uint32_t GPIO4OUTCFG : 2; /*!< [18..17] GPIO4 output configuration. */ + __IOM uint32_t GPIO4INTD : 1; /*!< [19..19] GPIO4 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO5INCFG : 1; /*!< [20..20] GPIO5 input enable. */ + __IOM uint32_t GPIO5OUTCFG : 2; /*!< [22..21] GPIO5 output configuration. */ + __IOM uint32_t GPIO5INTD : 1; /*!< [23..23] GPIO5 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO6INCFG : 1; /*!< [24..24] GPIO6 input enable. */ + __IOM uint32_t GPIO6OUTCFG : 2; /*!< [26..25] GPIO6 output configuration. */ + __IOM uint32_t GPIO6INTD : 1; /*!< [27..27] GPIO6 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO7INCFG : 1; /*!< [28..28] GPIO7 input enable. */ + __IOM uint32_t GPIO7OUTCFG : 2; /*!< [30..29] GPIO7 output configuration. */ + __IOM uint32_t GPIO7INTD : 1; /*!< [31..31] GPIO7 interrupt direction, nCE polarity. */ + } CFGA_b; + } ; + + union { + __IOM uint32_t CFGB; /*!< (@ 0x00000050) GPIO Configuration Register B (Pads 15-8) */ + + struct { + __IOM uint32_t GPIO8INCFG : 1; /*!< [0..0] GPIO8 input enable. */ + __IOM uint32_t GPIO8OUTCFG : 2; /*!< [2..1] GPIO8 output configuration. */ + __IOM uint32_t GPIO8INTD : 1; /*!< [3..3] GPIO8 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO9INCFG : 1; /*!< [4..4] GPIO9 input enable. */ + __IOM uint32_t GPIO9OUTCFG : 2; /*!< [6..5] GPIO9 output configuration. */ + __IOM uint32_t GPIO9INTD : 1; /*!< [7..7] GPIO9 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO10INCFG : 1; /*!< [8..8] GPIO10 input enable. */ + __IOM uint32_t GPIO10OUTCFG : 2; /*!< [10..9] GPIO10 output configuration. */ + __IOM uint32_t GPIO10INTD : 1; /*!< [11..11] GPIO10 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO11INCFG : 1; /*!< [12..12] GPIO11 input enable. */ + __IOM uint32_t GPIO11OUTCFG : 2; /*!< [14..13] GPIO11 output configuration. */ + __IOM uint32_t GPIO11INTD : 1; /*!< [15..15] GPIO11 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO12INCFG : 1; /*!< [16..16] GPIO12 input enable. */ + __IOM uint32_t GPIO12OUTCFG : 2; /*!< [18..17] GPIO12 output configuration. */ + __IOM uint32_t GPIO12INTD : 1; /*!< [19..19] GPIO12 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO13INCFG : 1; /*!< [20..20] GPIO13 input enable. */ + __IOM uint32_t GPIO13OUTCFG : 2; /*!< [22..21] GPIO13 output configuration. */ + __IOM uint32_t GPIO13INTD : 1; /*!< [23..23] GPIO13 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO14INCFG : 1; /*!< [24..24] GPIO14 input enable. */ + __IOM uint32_t GPIO14OUTCFG : 2; /*!< [26..25] GPIO14 output configuration. */ + __IOM uint32_t GPIO14INTD : 1; /*!< [27..27] GPIO14 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO15INCFG : 1; /*!< [28..28] GPIO15 input enable. */ + __IOM uint32_t GPIO15OUTCFG : 2; /*!< [30..29] GPIO15 output configuration. */ + __IOM uint32_t GPIO15INTD : 1; /*!< [31..31] GPIO15 interrupt direction, nCE polarity. */ + } CFGB_b; + } ; + + union { + __IOM uint32_t CFGC; /*!< (@ 0x00000054) GPIO Configuration Register C (Pads 23-16) */ + + struct { + __IOM uint32_t GPIO16INCFG : 1; /*!< [0..0] GPIO16 input enable. */ + __IOM uint32_t GPIO16OUTCFG : 2; /*!< [2..1] GPIO16 output configuration. */ + __IOM uint32_t GPIO16INTD : 1; /*!< [3..3] GPIO16 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO17INCFG : 1; /*!< [4..4] GPIO17 input enable. */ + __IOM uint32_t GPIO17OUTCFG : 2; /*!< [6..5] GPIO17 output configuration. */ + __IOM uint32_t GPIO17INTD : 1; /*!< [7..7] GPIO17 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO18INCFG : 1; /*!< [8..8] GPIO18 input enable. */ + __IOM uint32_t GPIO18OUTCFG : 2; /*!< [10..9] GPIO18 output configuration. */ + __IOM uint32_t GPIO18INTD : 1; /*!< [11..11] GPIO18 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO19INCFG : 1; /*!< [12..12] GPIO19 input enable. */ + __IOM uint32_t GPIO19OUTCFG : 2; /*!< [14..13] GPIO19 output configuration. */ + __IOM uint32_t GPIO19INTD : 1; /*!< [15..15] GPIO19 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO20INCFG : 1; /*!< [16..16] GPIO20 input enable. */ + __IOM uint32_t GPIO20OUTCFG : 2; /*!< [18..17] GPIO20 output configuration. */ + __IOM uint32_t GPIO20INTD : 1; /*!< [19..19] GPIO20 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO21INCFG : 1; /*!< [20..20] GPIO21 input enable. */ + __IOM uint32_t GPIO21OUTCFG : 2; /*!< [22..21] GPIO21 output configuration. */ + __IOM uint32_t GPIO21INTD : 1; /*!< [23..23] GPIO21 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO22INCFG : 1; /*!< [24..24] GPIO22 input enable. */ + __IOM uint32_t GPIO22OUTCFG : 2; /*!< [26..25] GPIO22 output configuration. */ + __IOM uint32_t GPIO22INTD : 1; /*!< [27..27] GPIO22 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO23INCFG : 1; /*!< [28..28] GPIO23 input enable. */ + __IOM uint32_t GPIO23OUTCFG : 2; /*!< [30..29] GPIO23 output configuration. */ + __IOM uint32_t GPIO23INTD : 1; /*!< [31..31] GPIO23 interrupt direction, nCE polarity. */ + } CFGC_b; + } ; + + union { + __IOM uint32_t CFGD; /*!< (@ 0x00000058) GPIO Configuration Register D (Pads 31-24) */ + + struct { + __IOM uint32_t GPIO24INCFG : 1; /*!< [0..0] GPIO24 input enable. */ + __IOM uint32_t GPIO24OUTCFG : 2; /*!< [2..1] GPIO24 output configuration. */ + __IOM uint32_t GPIO24INTD : 1; /*!< [3..3] GPIO24 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO25INCFG : 1; /*!< [4..4] GPIO25 input enable. */ + __IOM uint32_t GPIO25OUTCFG : 2; /*!< [6..5] GPIO25 output configuration. */ + __IOM uint32_t GPIO25INTD : 1; /*!< [7..7] GPIO25 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO26INCFG : 1; /*!< [8..8] GPIO26 input enable. */ + __IOM uint32_t GPIO26OUTCFG : 2; /*!< [10..9] GPIO26 output configuration. */ + __IOM uint32_t GPIO26INTD : 1; /*!< [11..11] GPIO26 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO27INCFG : 1; /*!< [12..12] GPIO27 input enable. */ + __IOM uint32_t GPIO27OUTCFG : 2; /*!< [14..13] GPIO27 output configuration. */ + __IOM uint32_t GPIO27INTD : 1; /*!< [15..15] GPIO27 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO28INCFG : 1; /*!< [16..16] GPIO28 input enable. */ + __IOM uint32_t GPIO28OUTCFG : 2; /*!< [18..17] GPIO28 output configuration. */ + __IOM uint32_t GPIO28INTD : 1; /*!< [19..19] GPIO28 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO29INCFG : 1; /*!< [20..20] GPIO29 input enable. */ + __IOM uint32_t GPIO29OUTCFG : 2; /*!< [22..21] GPIO29 output configuration. */ + __IOM uint32_t GPIO29INTD : 1; /*!< [23..23] GPIO29 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO30INCFG : 1; /*!< [24..24] GPIO30 input enable. */ + __IOM uint32_t GPIO30OUTCFG : 2; /*!< [26..25] GPIO30 output configuration. */ + __IOM uint32_t GPIO30INTD : 1; /*!< [27..27] GPIO30 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO31INCFG : 1; /*!< [28..28] GPIO31 input enable. */ + __IOM uint32_t GPIO31OUTCFG : 2; /*!< [30..29] GPIO31 output configuration. */ + __IOM uint32_t GPIO31INTD : 1; /*!< [31..31] GPIO31 interrupt direction, nCE polarity. */ + } CFGD_b; + } ; + + union { + __IOM uint32_t CFGE; /*!< (@ 0x0000005C) GPIO Configuration Register E (Pads 39-32) */ + + struct { + __IOM uint32_t GPIO32INCFG : 1; /*!< [0..0] GPIO32 input enable. */ + __IOM uint32_t GPIO32OUTCFG : 2; /*!< [2..1] GPIO32 output configuration. */ + __IOM uint32_t GPIO32INTD : 1; /*!< [3..3] GPIO32 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO33INCFG : 1; /*!< [4..4] GPIO33 input enable. */ + __IOM uint32_t GPIO33OUTCFG : 2; /*!< [6..5] GPIO33 output configuration. */ + __IOM uint32_t GPIO33INTD : 1; /*!< [7..7] GPIO33 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO34INCFG : 1; /*!< [8..8] GPIO34 input enable. */ + __IOM uint32_t GPIO34OUTCFG : 2; /*!< [10..9] GPIO34 output configuration. */ + __IOM uint32_t GPIO34INTD : 1; /*!< [11..11] GPIO34 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO35INCFG : 1; /*!< [12..12] GPIO35 input enable. */ + __IOM uint32_t GPIO35OUTCFG : 2; /*!< [14..13] GPIO35 output configuration. */ + __IOM uint32_t GPIO35INTD : 1; /*!< [15..15] GPIO35 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO36INCFG : 1; /*!< [16..16] GPIO36 input enable. */ + __IOM uint32_t GPIO36OUTCFG : 2; /*!< [18..17] GPIO36 output configuration. */ + __IOM uint32_t GPIO36INTD : 1; /*!< [19..19] GPIO36 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO37INCFG : 1; /*!< [20..20] GPIO37 input enable. */ + __IOM uint32_t GPIO37OUTCFG : 2; /*!< [22..21] GPIO37 output configuration. */ + __IOM uint32_t GPIO37INTD : 1; /*!< [23..23] GPIO37 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO38INCFG : 1; /*!< [24..24] GPIO38 input enable. */ + __IOM uint32_t GPIO38OUTCFG : 2; /*!< [26..25] GPIO38 output configuration. */ + __IOM uint32_t GPIO38INTD : 1; /*!< [27..27] GPIO38 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO39INCFG : 1; /*!< [28..28] GPIO39 input enable. */ + __IOM uint32_t GPIO39OUTCFG : 2; /*!< [30..29] GPIO39 output configuration. */ + __IOM uint32_t GPIO39INTD : 1; /*!< [31..31] GPIO39 interrupt direction, nCE polarity. */ + } CFGE_b; + } ; + + union { + __IOM uint32_t CFGF; /*!< (@ 0x00000060) GPIO Configuration Register F (Pads 47-40) */ + + struct { + __IOM uint32_t GPIO40INCFG : 1; /*!< [0..0] GPIO40 input enable. */ + __IOM uint32_t GPIO40OUTCFG : 2; /*!< [2..1] GPIO40 output configuration. */ + __IOM uint32_t GPIO40INTD : 1; /*!< [3..3] GPIO40 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO41INCFG : 1; /*!< [4..4] GPIO41 input enable. */ + __IOM uint32_t GPIO41OUTCFG : 2; /*!< [6..5] GPIO41 output configuration. */ + __IOM uint32_t GPIO41INTD : 1; /*!< [7..7] GPIO41 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO42INCFG : 1; /*!< [8..8] GPIO42 input enable. */ + __IOM uint32_t GPIO42OUTCFG : 2; /*!< [10..9] GPIO42 output configuration. */ + __IOM uint32_t GPIO42INTD : 1; /*!< [11..11] GPIO42 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO43INCFG : 1; /*!< [12..12] GPIO43 input enable. */ + __IOM uint32_t GPIO43OUTCFG : 2; /*!< [14..13] GPIO43 output configuration. */ + __IOM uint32_t GPIO43INTD : 1; /*!< [15..15] GPIO43 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO44INCFG : 1; /*!< [16..16] GPIO44 input enable. */ + __IOM uint32_t GPIO44OUTCFG : 2; /*!< [18..17] GPIO44 output configuration. */ + __IOM uint32_t GPIO44INTD : 1; /*!< [19..19] GPIO44 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO45INCFG : 1; /*!< [20..20] GPIO45 input enable. */ + __IOM uint32_t GPIO45OUTCFG : 2; /*!< [22..21] GPIO45 output configuration. */ + __IOM uint32_t GPIO45INTD : 1; /*!< [23..23] GPIO45 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO46INCFG : 1; /*!< [24..24] GPIO46 input enable. */ + __IOM uint32_t GPIO46OUTCFG : 2; /*!< [26..25] GPIO46 output configuration. */ + __IOM uint32_t GPIO46INTD : 1; /*!< [27..27] GPIO46 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO47INCFG : 1; /*!< [28..28] GPIO47 input enable. */ + __IOM uint32_t GPIO47OUTCFG : 2; /*!< [30..29] GPIO47 output configuration. */ + __IOM uint32_t GPIO47INTD : 1; /*!< [31..31] GPIO47 interrupt direction, nCE polarity. */ + } CFGF_b; + } ; + + union { + __IOM uint32_t CFGG; /*!< (@ 0x00000064) GPIO Configuration Register G (Pads 55-48) */ + + struct { + __IOM uint32_t GPIO48INCFG : 1; /*!< [0..0] GPIO48 input enable. */ + __IOM uint32_t GPIO48OUTCFG : 2; /*!< [2..1] GPIO48 output configuration. */ + __IOM uint32_t GPIO48INTD : 1; /*!< [3..3] GPIO48 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO49INCFG : 1; /*!< [4..4] GPIO49 input enable. */ + __IOM uint32_t GPIO49OUTCFG : 2; /*!< [6..5] GPIO49 output configuration. */ + __IOM uint32_t GPIO49INTD : 1; /*!< [7..7] GPIO49 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO50INCFG : 1; /*!< [8..8] GPIO50 input enable. */ + __IOM uint32_t GPIO50OUTCFG : 2; /*!< [10..9] GPIO50 output configuration. */ + __IOM uint32_t GPIO50INTD : 1; /*!< [11..11] GPIO50 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO51INCFG : 1; /*!< [12..12] GPIO51 input enable. */ + __IOM uint32_t GPIO51OUTCFG : 2; /*!< [14..13] GPIO51 output configuration. */ + __IOM uint32_t GPIO51INTD : 1; /*!< [15..15] GPIO51 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO52INCFG : 1; /*!< [16..16] GPIO52 input enable. */ + __IOM uint32_t GPIO52OUTCFG : 2; /*!< [18..17] GPIO52 output configuration. */ + __IOM uint32_t GPIO52INTD : 1; /*!< [19..19] GPIO52 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO53INCFG : 1; /*!< [20..20] GPIO53 input enable. */ + __IOM uint32_t GPIO53OUTCFG : 2; /*!< [22..21] GPIO53 output configuration. */ + __IOM uint32_t GPIO53INTD : 1; /*!< [23..23] GPIO53 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO54INCFG : 1; /*!< [24..24] GPIO54 input enable. */ + __IOM uint32_t GPIO54OUTCFG : 2; /*!< [26..25] GPIO54 output configuration. */ + __IOM uint32_t GPIO54INTD : 1; /*!< [27..27] GPIO54 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO55INCFG : 1; /*!< [28..28] GPIO55 input enable. */ + __IOM uint32_t GPIO55OUTCFG : 2; /*!< [30..29] GPIO55 output configuration. */ + __IOM uint32_t GPIO55INTD : 1; /*!< [31..31] GPIO55 interrupt direction, nCE polarity. */ + } CFGG_b; + } ; + + union { + __IOM uint32_t CFGH; /*!< (@ 0x00000068) GPIO Configuration Register H (Pads 63-56) */ + + struct { + __IOM uint32_t GPIO56INCFG : 1; /*!< [0..0] GPIO56 input enable. */ + __IOM uint32_t GPIO56OUTCFG : 2; /*!< [2..1] GPIO56 output configuration. */ + __IOM uint32_t GPIO56INTD : 1; /*!< [3..3] GPIO56 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO57INCFG : 1; /*!< [4..4] GPIO57 input enable. */ + __IOM uint32_t GPIO57OUTCFG : 2; /*!< [6..5] GPIO57 output configuration. */ + __IOM uint32_t GPIO57INTD : 1; /*!< [7..7] GPIO57 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO58INCFG : 1; /*!< [8..8] GPIO58 input enable. */ + __IOM uint32_t GPIO58OUTCFG : 2; /*!< [10..9] GPIO58 output configuration. */ + __IOM uint32_t GPIO58INTD : 1; /*!< [11..11] GPIO58 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO59INCFG : 1; /*!< [12..12] GPIO59 input enable. */ + __IOM uint32_t GPIO59OUTCFG : 2; /*!< [14..13] GPIO59 output configuration. */ + __IOM uint32_t GPIO59INTD : 1; /*!< [15..15] GPIO59 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO60INCFG : 1; /*!< [16..16] GPIO60 input enable. */ + __IOM uint32_t GPIO60OUTCFG : 2; /*!< [18..17] GPIO60 output configuration. */ + __IOM uint32_t GPIO60INTD : 1; /*!< [19..19] GPIO60 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO61INCFG : 1; /*!< [20..20] GPIO61 input enable. */ + __IOM uint32_t GPIO61OUTCFG : 2; /*!< [22..21] GPIO61 output configuration. */ + __IOM uint32_t GPIO61INTD : 1; /*!< [23..23] GPIO61 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO62INCFG : 1; /*!< [24..24] GPIO62 input enable. */ + __IOM uint32_t GPIO62OUTCFG : 2; /*!< [26..25] GPIO62 output configuration. */ + __IOM uint32_t GPIO62INTD : 1; /*!< [27..27] GPIO62 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO63INCFG : 1; /*!< [28..28] GPIO63 input enable. */ + __IOM uint32_t GPIO63OUTCFG : 2; /*!< [30..29] GPIO63 output configuration. */ + __IOM uint32_t GPIO63INTD : 1; /*!< [31..31] GPIO63 interrupt direction, nCE polarity. */ + } CFGH_b; + } ; + + union { + __IOM uint32_t CFGI; /*!< (@ 0x0000006C) GPIO Configuration Register I (Pads 71-64) */ + + struct { + __IOM uint32_t GPIO64INCFG : 1; /*!< [0..0] GPIO64 input enable. */ + __IOM uint32_t GPIO64OUTCFG : 2; /*!< [2..1] GPIO64 output configuration. */ + __IOM uint32_t GPIO64INTD : 1; /*!< [3..3] GPIO64 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO65INCFG : 1; /*!< [4..4] GPIO65 input enable. */ + __IOM uint32_t GPIO65OUTCFG : 2; /*!< [6..5] GPIO65 output configuration. */ + __IOM uint32_t GPIO65INTD : 1; /*!< [7..7] GPIO65 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO66INCFG : 1; /*!< [8..8] GPIO66 input enable. */ + __IOM uint32_t GPIO66OUTCFG : 2; /*!< [10..9] GPIO66 output configuration. */ + __IOM uint32_t GPIO66INTD : 1; /*!< [11..11] GPIO66 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO67INCFG : 1; /*!< [12..12] GPIO67 input enable. */ + __IOM uint32_t GPIO67OUTCFG : 2; /*!< [14..13] GPIO67 output configuration. */ + __IOM uint32_t GPIO67INTD : 1; /*!< [15..15] GPIO67 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO68INCFG : 1; /*!< [16..16] GPIO68 input enable. */ + __IOM uint32_t GPIO68OUTCFG : 2; /*!< [18..17] GPIO68 output configuration. */ + __IOM uint32_t GPIO68INTD : 1; /*!< [19..19] GPIO68 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO69INCFG : 1; /*!< [20..20] GPIO69 input enable. */ + __IOM uint32_t GPIO69OUTCFG : 2; /*!< [22..21] GPIO69 output configuration. */ + __IOM uint32_t GPIO69INTD : 1; /*!< [23..23] GPIO69 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO70INCFG : 1; /*!< [24..24] GPIO70 input enable. */ + __IOM uint32_t GPIO70OUTCFG : 2; /*!< [26..25] GPIO70 output configuration. */ + __IOM uint32_t GPIO70INTD : 1; /*!< [27..27] GPIO70 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO71INCFG : 1; /*!< [28..28] GPIO71 input enable. */ + __IOM uint32_t GPIO71OUTCFG : 2; /*!< [30..29] GPIO71 output configuration. */ + __IOM uint32_t GPIO71INTD : 1; /*!< [31..31] GPIO71 interrupt direction, nCE polarity. */ + } CFGI_b; + } ; + + union { + __IOM uint32_t CFGJ; /*!< (@ 0x00000070) GPIO Configuration Register J (Pads 79-72) */ + + struct { + __IOM uint32_t GPIO72INCFG : 1; /*!< [0..0] GPIO72 input enable. */ + __IOM uint32_t GPIO72OUTCFG : 2; /*!< [2..1] GPIO72 output configuration. */ + __IOM uint32_t GPIO72INTD : 1; /*!< [3..3] GPIO72 interrupt direction, nCE polarity. */ + __IOM uint32_t GPIO73INCFG : 1; /*!< [4..4] GPIO73 input enable. */ + __IOM uint32_t GPIO73OUTCFG : 2; /*!< [6..5] GPIO73 output configuration. */ + __IOM uint32_t GPIO73INTD : 1; /*!< [7..7] GPIO73 interrupt direction, nCE polarity. */ + } CFGJ_b; + } ; + + union { + __IOM uint32_t PADKEY; /*!< (@ 0x00000074) Key Register for all pad configuration registers */ + + struct { + __IOM uint32_t PADKEY : 32; /*!< [31..0] Key register value. */ + } PADKEY_b; + } ; + __IM uint32_t RESERVED[2]; + + union { + __IOM uint32_t RDA; /*!< (@ 0x00000080) GPIO Input Register A */ + + struct { + __IOM uint32_t RDA : 32; /*!< [31..0] GPIO31-0 read data. */ + } RDA_b; + } ; + + union { + __IOM uint32_t RDB; /*!< (@ 0x00000084) GPIO Input Register B */ + + struct { + __IOM uint32_t RDB : 32; /*!< [31..0] GPIO63-32 read data. */ + } RDB_b; + } ; + + union { + __IOM uint32_t RDC; /*!< (@ 0x00000088) GPIO Input Register C */ + + struct { + __IOM uint32_t RDC : 10; /*!< [9..0] GPIO73-64 read data. */ + } RDC_b; + } ; + + union { + __IOM uint32_t WTA; /*!< (@ 0x0000008C) GPIO Output Register A */ + + struct { + __IOM uint32_t WTA : 32; /*!< [31..0] GPIO31-0 write data. */ + } WTA_b; + } ; + + union { + __IOM uint32_t WTB; /*!< (@ 0x00000090) GPIO Output Register B */ + + struct { + __IOM uint32_t WTB : 32; /*!< [31..0] GPIO63-32 write data. */ + } WTB_b; + } ; + + union { + __IOM uint32_t WTC; /*!< (@ 0x00000094) GPIO Output Register C */ + + struct { + __IOM uint32_t WTC : 10; /*!< [9..0] GPIO73-64 write data. */ + } WTC_b; + } ; + + union { + __IOM uint32_t WTSA; /*!< (@ 0x00000098) GPIO Output Register A Set */ + + struct { + __IOM uint32_t WTSA : 32; /*!< [31..0] Set the GPIO31-0 write data. */ + } WTSA_b; + } ; + + union { + __IOM uint32_t WTSB; /*!< (@ 0x0000009C) GPIO Output Register B Set */ + + struct { + __IOM uint32_t WTSB : 32; /*!< [31..0] Set the GPIO63-32 write data. */ + } WTSB_b; + } ; + + union { + __IOM uint32_t WTSC; /*!< (@ 0x000000A0) GPIO Output Register C Set */ + + struct { + __IOM uint32_t WTSC : 10; /*!< [9..0] Set the GPIO73-64 write data. */ + } WTSC_b; + } ; + + union { + __IOM uint32_t WTCA; /*!< (@ 0x000000A4) GPIO Output Register A Clear */ + + struct { + __IOM uint32_t WTCA : 32; /*!< [31..0] Clear the GPIO31-0 write data. */ + } WTCA_b; + } ; + + union { + __IOM uint32_t WTCB; /*!< (@ 0x000000A8) GPIO Output Register B Clear */ + + struct { + __IOM uint32_t WTCB : 32; /*!< [31..0] Clear the GPIO63-32 write data. */ + } WTCB_b; + } ; + + union { + __IOM uint32_t WTCC; /*!< (@ 0x000000AC) GPIO Output Register C Clear */ + + struct { + __IOM uint32_t WTCB : 10; /*!< [9..0] Clear the GPIO73-64 write data. */ + } WTCC_b; + } ; + + union { + __IOM uint32_t ENA; /*!< (@ 0x000000B0) GPIO Enable Register A */ + + struct { + __IOM uint32_t ENA : 32; /*!< [31..0] GPIO31-0 output enables */ + } ENA_b; + } ; + + union { + __IOM uint32_t ENB; /*!< (@ 0x000000B4) GPIO Enable Register B */ + + struct { + __IOM uint32_t ENB : 32; /*!< [31..0] GPIO63-32 output enables */ + } ENB_b; + } ; + + union { + __IOM uint32_t ENC; /*!< (@ 0x000000B8) GPIO Enable Register C */ + + struct { + __IOM uint32_t ENC : 10; /*!< [9..0] GPIO73-64 output enables */ + } ENC_b; + } ; + + union { + __IOM uint32_t ENSA; /*!< (@ 0x000000BC) GPIO Enable Register A Set */ + + struct { + __IOM uint32_t ENSA : 32; /*!< [31..0] Set the GPIO31-0 output enables */ + } ENSA_b; + } ; + + union { + __IOM uint32_t ENSB; /*!< (@ 0x000000C0) GPIO Enable Register B Set */ + + struct { + __IOM uint32_t ENSB : 32; /*!< [31..0] Set the GPIO63-32 output enables */ + } ENSB_b; + } ; + + union { + __IOM uint32_t ENSC; /*!< (@ 0x000000C4) GPIO Enable Register C Set */ + + struct { + __IOM uint32_t ENSC : 10; /*!< [9..0] Set the GPIO73-64 output enables */ + } ENSC_b; + } ; + + union { + __IOM uint32_t ENCA; /*!< (@ 0x000000C8) GPIO Enable Register A Clear */ + + struct { + __IOM uint32_t ENCA : 32; /*!< [31..0] Clear the GPIO31-0 output enables */ + } ENCA_b; + } ; + + union { + __IOM uint32_t ENCB; /*!< (@ 0x000000CC) GPIO Enable Register B Clear */ + + struct { + __IOM uint32_t ENCB : 32; /*!< [31..0] Clear the GPIO49-32 output enables */ + } ENCB_b; + } ; + + union { + __IOM uint32_t ENCC; /*!< (@ 0x000000D0) GPIO Enable Register C Clear */ + + struct { + __IOM uint32_t ENCC : 10; /*!< [9..0] Clear the GPIO73-64 output enables */ + } ENCC_b; + } ; + + union { + __IOM uint32_t STMRCAP; /*!< (@ 0x000000D4) STIMER Capture Control */ + + struct { + __IOM uint32_t STSEL0 : 7; /*!< [6..0] STIMER Capture 0 Select. */ + __IOM uint32_t STPOL0 : 1; /*!< [7..7] STIMER Capture 0 Polarity. */ + __IOM uint32_t STSEL1 : 7; /*!< [14..8] STIMER Capture 1 Select. */ + __IOM uint32_t STPOL1 : 1; /*!< [15..15] STIMER Capture 1 Polarity. */ + __IOM uint32_t STSEL2 : 7; /*!< [22..16] STIMER Capture 2 Select. */ + __IOM uint32_t STPOL2 : 1; /*!< [23..23] STIMER Capture 2 Polarity. */ + __IOM uint32_t STSEL3 : 7; /*!< [30..24] STIMER Capture 3 Select. */ + __IOM uint32_t STPOL3 : 1; /*!< [31..31] STIMER Capture 3 Polarity. */ + } STMRCAP_b; + } ; + + union { + __IOM uint32_t IOM0IRQ; /*!< (@ 0x000000D8) IOM0 Flow Control IRQ Select */ + + struct { + __IOM uint32_t IOM0IRQ : 7; /*!< [6..0] IOMSTR0 IRQ pad select. */ + } IOM0IRQ_b; + } ; + + union { + __IOM uint32_t IOM1IRQ; /*!< (@ 0x000000DC) IOM1 Flow Control IRQ Select */ + + struct { + __IOM uint32_t IOM1IRQ : 7; /*!< [6..0] IOMSTR1 IRQ pad select. */ + } IOM1IRQ_b; + } ; + + union { + __IOM uint32_t IOM2IRQ; /*!< (@ 0x000000E0) IOM2 Flow Control IRQ Select */ + + struct { + __IOM uint32_t IOM2IRQ : 7; /*!< [6..0] IOMSTR2 IRQ pad select. */ + } IOM2IRQ_b; + } ; + + union { + __IOM uint32_t IOM3IRQ; /*!< (@ 0x000000E4) IOM3 Flow Control IRQ Select */ + + struct { + __IOM uint32_t IOM3IRQ : 7; /*!< [6..0] IOMSTR3 IRQ pad select. */ + } IOM3IRQ_b; + } ; + + union { + __IOM uint32_t IOM4IRQ; /*!< (@ 0x000000E8) IOM4 Flow Control IRQ Select */ + + struct { + __IOM uint32_t IOM4IRQ : 7; /*!< [6..0] IOMSTR4 IRQ pad select. */ + } IOM4IRQ_b; + } ; + + union { + __IOM uint32_t IOM5IRQ; /*!< (@ 0x000000EC) IOM5 Flow Control IRQ Select */ + + struct { + __IOM uint32_t IOM5IRQ : 7; /*!< [6..0] IOMSTR5 IRQ pad select. */ + } IOM5IRQ_b; + } ; + + union { + __IOM uint32_t BLEIFIRQ; /*!< (@ 0x000000F0) BLEIF Flow Control IRQ Select */ + + struct { + __IOM uint32_t BLEIFIRQ : 7; /*!< [6..0] BLEIF IRQ pad select. */ + } BLEIFIRQ_b; + } ; + + union { + __IOM uint32_t GPIOOBS; /*!< (@ 0x000000F4) GPIO Observation Mode Sample register */ + + struct { + __IOM uint32_t OBS_DATA : 16; /*!< [15..0] Sample of the data output on the GPIO observation port. + May have async sampling issues, as the data is not synronized + to the read operation. Intended for debug purposes only */ + } GPIOOBS_b; + } ; + + union { + __IOM uint32_t ALTPADCFGA; /*!< (@ 0x000000F8) Alternate Pad Configuration reg0 (Pads 3-0) */ + + struct { + __IOM uint32_t PAD0_DS1 : 1; /*!< [0..0] Pad 0 high order drive strength selection. Used in conjunction + with PAD0STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD0_SR : 1; /*!< [4..4] Pad 3 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD1_DS1 : 1; /*!< [8..8] Pad 1 high order drive strength selection. Used in conjunction + with PAD1STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD1_SR : 1; /*!< [12..12] Pad 3 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD2_DS1 : 1; /*!< [16..16] Pad 2 high order drive strength selection. Used in + conjunction with PAD2STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD2_SR : 1; /*!< [20..20] Pad 3 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD3_DS1 : 1; /*!< [24..24] Pad 3 high order drive strength selection. Used in + conjunction with PAD3STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD3_SR : 1; /*!< [28..28] Pad 3 slew rate selection. */ + } ALTPADCFGA_b; + } ; + + union { + __IOM uint32_t ALTPADCFGB; /*!< (@ 0x000000FC) Alternate Pad Configuration reg0 (Pads 7-4) */ + + struct { + __IOM uint32_t PAD4_DS1 : 1; /*!< [0..0] Pad 4 high order drive strength selection. Used in conjunction + with PAD4STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD4_SR : 1; /*!< [4..4] Pad 7 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD5_DS1 : 1; /*!< [8..8] Pad 5 high order drive strength selection. Used in conjunction + with PAD5STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD5_SR : 1; /*!< [12..12] Pad 7 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD6_DS1 : 1; /*!< [16..16] Pad 6 high order drive strength selection. Used in + conjunction with PAD6STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD6_SR : 1; /*!< [20..20] Pad 7 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD7_DS1 : 1; /*!< [24..24] Pad 7 high order drive strength selection. Used in + conjunction with PAD7STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD7_SR : 1; /*!< [28..28] Pad 7 slew rate selection. */ + } ALTPADCFGB_b; + } ; + + union { + __IOM uint32_t ALTPADCFGC; /*!< (@ 0x00000100) Alternate Pad Configuration reg0 (Pads 11-8) */ + + struct { + __IOM uint32_t PAD8_DS1 : 1; /*!< [0..0] Pad 8 high order drive strength selection. Used in conjunction + with PAD8STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD8_SR : 1; /*!< [4..4] Pad 11 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD9_DS1 : 1; /*!< [8..8] Pad 9 high order drive strength selection. Used in conjunction + with PAD9STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD9_SR : 1; /*!< [12..12] Pad 11 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD10_DS1 : 1; /*!< [16..16] Pad 10 high order drive strength selection. Used in + conjunction with PAD10STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD10_SR : 1; /*!< [20..20] Pad 11 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD11_DS1 : 1; /*!< [24..24] Pad 11 high order drive strength selection. Used in + conjunction with PAD11STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD11_SR : 1; /*!< [28..28] Pad 11 slew rate selection. */ + } ALTPADCFGC_b; + } ; + + union { + __IOM uint32_t ALTPADCFGD; /*!< (@ 0x00000104) Alternate Pad Configuration reg0 (Pads 15-12) */ + + struct { + __IOM uint32_t PAD12_DS1 : 1; /*!< [0..0] Pad 12 high order drive strength selection. Used in conjunction + with PAD12STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD12_SR : 1; /*!< [4..4] Pad 15 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD13_DS1 : 1; /*!< [8..8] Pad 13 high order drive strength selection. Used in conjunction + with PAD13STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD13_SR : 1; /*!< [12..12] Pad 15 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD14_DS1 : 1; /*!< [16..16] Pad 14 high order drive strength selection. Used in + conjunction with PAD14STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD14_SR : 1; /*!< [20..20] Pad 15 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD15_DS1 : 1; /*!< [24..24] Pad 15 high order drive strength selection. Used in + conjunction with PAD15STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD15_SR : 1; /*!< [28..28] Pad 15 slew rate selection. */ + } ALTPADCFGD_b; + } ; + + union { + __IOM uint32_t ALTPADCFGE; /*!< (@ 0x00000108) Alternate Pad Configuration reg0 (Pads 19-16) */ + + struct { + __IOM uint32_t PAD16_DS1 : 1; /*!< [0..0] Pad 16 high order drive strength selection. Used in conjunction + with PAD16STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD16_SR : 1; /*!< [4..4] Pad 19 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD17_DS1 : 1; /*!< [8..8] Pad 17 high order drive strength selection. Used in conjunction + with PAD17STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD17_SR : 1; /*!< [12..12] Pad 19 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD18_DS1 : 1; /*!< [16..16] Pad 18 high order drive strength selection. Used in + conjunction with PAD18STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD18_SR : 1; /*!< [20..20] Pad 19 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD19_DS1 : 1; /*!< [24..24] Pad 19 high order drive strength selection. Used in + conjunction with PAD19STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD19_SR : 1; /*!< [28..28] Pad 19 slew rate selection. */ + } ALTPADCFGE_b; + } ; + + union { + __IOM uint32_t ALTPADCFGF; /*!< (@ 0x0000010C) Alternate Pad Configuration reg0 (Pads 23-20) */ + + struct { + __IOM uint32_t PAD20_DS1 : 1; /*!< [0..0] Pad 20 high order drive strength selection. Used in conjunction + with PAD20STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD20_SR : 1; /*!< [4..4] Pad 23 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD21_DS1 : 1; /*!< [8..8] Pad 21 high order drive strength selection. Used in conjunction + with PAD21STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD21_SR : 1; /*!< [12..12] Pad 23 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD22_DS1 : 1; /*!< [16..16] Pad 22 high order drive strength selection. Used in + conjunction with PAD22STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD22_SR : 1; /*!< [20..20] Pad 23 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD23_DS1 : 1; /*!< [24..24] Pad 23 high order drive strength selection. Used in + conjunction with PAD23STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD23_SR : 1; /*!< [28..28] Pad 23 slew rate selection. */ + } ALTPADCFGF_b; + } ; + + union { + __IOM uint32_t ALTPADCFGG; /*!< (@ 0x00000110) Alternate Pad Configuration reg0 (Pads 27-24) */ + + struct { + __IOM uint32_t PAD24_DS1 : 1; /*!< [0..0] Pad 24 high order drive strength selection. Used in conjunction + with PAD24STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD24_SR : 1; /*!< [4..4] Pad 27 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD25_DS1 : 1; /*!< [8..8] Pad 25 high order drive strength selection. Used in conjunction + with PAD25STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD25_SR : 1; /*!< [12..12] Pad 27 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD26_DS1 : 1; /*!< [16..16] Pad 26 high order drive strength selection. Used in + conjunction with PAD26STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD26_SR : 1; /*!< [20..20] Pad 27 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD27_DS1 : 1; /*!< [24..24] Pad 27 high order drive strength selection. Used in + conjunction with PAD27STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD27_SR : 1; /*!< [28..28] Pad 27 slew rate selection. */ + } ALTPADCFGG_b; + } ; + + union { + __IOM uint32_t ALTPADCFGH; /*!< (@ 0x00000114) Alternate Pad Configuration reg0 (Pads 31-28) */ + + struct { + __IOM uint32_t PAD28_DS1 : 1; /*!< [0..0] Pad 28 high order drive strength selection. Used in conjunction + with PAD28STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD28_SR : 1; /*!< [4..4] Pad 31 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD29_DS1 : 1; /*!< [8..8] Pad 29 high order drive strength selection. Used in conjunction + with PAD29STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD29_SR : 1; /*!< [12..12] Pad 31 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD30_DS1 : 1; /*!< [16..16] Pad 30 high order drive strength selection. Used in + conjunction with PAD30STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD30_SR : 1; /*!< [20..20] Pad 31 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD31_DS1 : 1; /*!< [24..24] Pad 31 high order drive strength selection. Used in + conjunction with PAD31STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD31_SR : 1; /*!< [28..28] Pad 31 slew rate selection. */ + } ALTPADCFGH_b; + } ; + + union { + __IOM uint32_t ALTPADCFGI; /*!< (@ 0x00000118) Alternate Pad Configuration reg0 (Pads 35-32) */ + + struct { + __IOM uint32_t PAD32_DS1 : 1; /*!< [0..0] Pad 32 high order drive strength selection. Used in conjunction + with PAD32STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD32_SR : 1; /*!< [4..4] Pad 35 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD33_DS1 : 1; /*!< [8..8] Pad 33 high order drive strength selection. Used in conjunction + with PAD33STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD33_SR : 1; /*!< [12..12] Pad 35 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD34_DS1 : 1; /*!< [16..16] Pad 34 high order drive strength selection. Used in + conjunction with PAD34STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD34_SR : 1; /*!< [20..20] Pad 35 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD35_DS1 : 1; /*!< [24..24] Pad 35 high order drive strength selection. Used in + conjunction with PAD35STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD35_SR : 1; /*!< [28..28] Pad 35 slew rate selection. */ + } ALTPADCFGI_b; + } ; + + union { + __IOM uint32_t ALTPADCFGJ; /*!< (@ 0x0000011C) Alternate Pad Configuration reg0 (Pads 39-36) */ + + struct { + __IOM uint32_t PAD36_DS1 : 1; /*!< [0..0] Pad 36 high order drive strength selection. Used in conjunction + with PAD36STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD36_SR : 1; /*!< [4..4] Pad 39 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD37_DS1 : 1; /*!< [8..8] Pad 37 high order drive strength selection. Used in conjunction + with PAD37STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD37_SR : 1; /*!< [12..12] Pad 39 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD38_DS1 : 1; /*!< [16..16] Pad 38 high order drive strength selection. Used in + conjunction with PAD38STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD38_SR : 1; /*!< [20..20] Pad 39 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD39_DS1 : 1; /*!< [24..24] Pad 39 high order drive strength selection. Used in + conjunction with PAD39STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD39_SR : 1; /*!< [28..28] Pad 39 slew rate selection. */ + } ALTPADCFGJ_b; + } ; + + union { + __IOM uint32_t ALTPADCFGK; /*!< (@ 0x00000120) Alternate Pad Configuration reg0 (Pads 43-40) */ + + struct { + __IOM uint32_t PAD40_DS1 : 1; /*!< [0..0] Pad 40 high order drive strength selection. Used in conjunction + with PAD40STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD40_SR : 1; /*!< [4..4] Pad 43 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD41_DS1 : 1; /*!< [8..8] Pad 41 high order drive strength selection. Used in conjunction + with PAD41STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD41_SR : 1; /*!< [12..12] Pad 43 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD42_DS1 : 1; /*!< [16..16] Pad 42 high order drive strength selection. Used in + conjunction with PAD42STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD42_SR : 1; /*!< [20..20] Pad 43 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD43_DS1 : 1; /*!< [24..24] Pad 43 high order drive strength selection. Used in + conjunction with PAD43STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD43_SR : 1; /*!< [28..28] Pad 43 slew rate selection. */ + } ALTPADCFGK_b; + } ; + + union { + __IOM uint32_t ALTPADCFGL; /*!< (@ 0x00000124) Alternate Pad Configuration reg0 (Pads 47-44) */ + + struct { + __IOM uint32_t PAD44_DS1 : 1; /*!< [0..0] Pad 44 high order drive strength selection. Used in conjunction + with PAD44STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD44_SR : 1; /*!< [4..4] Pad 47 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD45_DS1 : 1; /*!< [8..8] Pad 45 high order drive strength selection. Used in conjunction + with PAD45STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD45_SR : 1; /*!< [12..12] Pad 47 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD46_DS1 : 1; /*!< [16..16] Pad 46 high order drive strength selection. Used in + conjunction with PAD46STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD46_SR : 1; /*!< [20..20] Pad 47 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD47_DS1 : 1; /*!< [24..24] Pad 47 high order drive strength selection. Used in + conjunction with PAD47STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD47_SR : 1; /*!< [28..28] Pad 47 slew rate selection. */ + } ALTPADCFGL_b; + } ; + + union { + __IOM uint32_t ALTPADCFGM; /*!< (@ 0x00000128) Alternate Pad Configuration reg0 (Pads 51-48) */ + + struct { + __IOM uint32_t PAD48_DS1 : 1; /*!< [0..0] Pad 48 high order drive strength selection. Used in conjunction + with PAD48STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD48_SR : 1; /*!< [4..4] Pad 51 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD49_DS1 : 1; /*!< [8..8] Pad 49 high order drive strength selection. Used in conjunction + with PAD49STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD49_SR : 1; /*!< [12..12] Pad 51 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD50_DS1 : 1; /*!< [16..16] Pad 50 high order drive strength selection. Used in + conjunction with PAD50STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD50_SR : 1; /*!< [20..20] Pad 51 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD51_DS1 : 1; /*!< [24..24] Pad 51 high order drive strength selection. Used in + conjunction with PAD51STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD51_SR : 1; /*!< [28..28] Pad 51 slew rate selection. */ + } ALTPADCFGM_b; + } ; + + union { + __IOM uint32_t ALTPADCFGN; /*!< (@ 0x0000012C) Alternate Pad Configuration reg0 (Pads 55-52) */ + + struct { + __IOM uint32_t PAD52_DS1 : 1; /*!< [0..0] Pad 52 high order drive strength selection. Used in conjunction + with PAD52STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD52_SR : 1; /*!< [4..4] Pad 55 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD53_DS1 : 1; /*!< [8..8] Pad 53 high order drive strength selection. Used in conjunction + with PAD53STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD53_SR : 1; /*!< [12..12] Pad 55 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD54_DS1 : 1; /*!< [16..16] Pad 54 high order drive strength selection. Used in + conjunction with PAD54STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD54_SR : 1; /*!< [20..20] Pad 55 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD55_DS1 : 1; /*!< [24..24] Pad 55 high order drive strength selection. Used in + conjunction with PAD55STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD55_SR : 1; /*!< [28..28] Pad 55 slew rate selection. */ + } ALTPADCFGN_b; + } ; + + union { + __IOM uint32_t ALTPADCFGO; /*!< (@ 0x00000130) Alternate Pad Configuration reg0 (Pads 59-56) */ + + struct { + __IOM uint32_t PAD56_DS1 : 1; /*!< [0..0] Pad 56 high order drive strength selection. Used in conjunction + with PAD56STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD56_SR : 1; /*!< [4..4] Pad 59 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD57_DS1 : 1; /*!< [8..8] Pad 57 high order drive strength selection. Used in conjunction + with PAD57STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD57_SR : 1; /*!< [12..12] Pad 59 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD58_DS1 : 1; /*!< [16..16] Pad 58 high order drive strength selection. Used in + conjunction with PAD58STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD58_SR : 1; /*!< [20..20] Pad 59 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD59_DS1 : 1; /*!< [24..24] Pad 59 high order drive strength selection. Used in + conjunction with PAD59STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD59_SR : 1; /*!< [28..28] Pad 59 slew rate selection. */ + } ALTPADCFGO_b; + } ; + + union { + __IOM uint32_t ALTPADCFGP; /*!< (@ 0x00000134) Alternate Pad Configuration reg0 (Pads 63-60) */ + + struct { + __IOM uint32_t PAD60_DS1 : 1; /*!< [0..0] Pad 60 high order drive strength selection. Used in conjunction + with PAD60STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD60_SR : 1; /*!< [4..4] Pad 63 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD61_DS1 : 1; /*!< [8..8] Pad 61 high order drive strength selection. Used in conjunction + with PAD61STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD61_SR : 1; /*!< [12..12] Pad 63 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD62_DS1 : 1; /*!< [16..16] Pad 62 high order drive strength selection. Used in + conjunction with PAD62STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD62_SR : 1; /*!< [20..20] Pad 63 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD63_DS1 : 1; /*!< [24..24] Pad 63 high order drive strength selection. Used in + conjunction with PAD63STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD63_SR : 1; /*!< [28..28] Pad 63 slew rate selection. */ + } ALTPADCFGP_b; + } ; + + union { + __IOM uint32_t ALTPADCFGQ; /*!< (@ 0x00000138) Alternate Pad Configuration reg0 (Pads 67-64) */ + + struct { + __IOM uint32_t PAD64_DS1 : 1; /*!< [0..0] Pad 64 high order drive strength selection. Used in conjunction + with PAD64STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD64_SR : 1; /*!< [4..4] Pad 67 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD65_DS1 : 1; /*!< [8..8] Pad 65 high order drive strength selection. Used in conjunction + with PAD65STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD65_SR : 1; /*!< [12..12] Pad 67 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD66_DS1 : 1; /*!< [16..16] Pad 66 high order drive strength selection. Used in + conjunction with PAD66STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD66_SR : 1; /*!< [20..20] Pad 67 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD67_DS1 : 1; /*!< [24..24] Pad 67 high order drive strength selection. Used in + conjunction with PAD67STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD67_SR : 1; /*!< [28..28] Pad 67 slew rate selection. */ + } ALTPADCFGQ_b; + } ; + + union { + __IOM uint32_t ALTPADCFGR; /*!< (@ 0x0000013C) Alternate Pad Configuration reg0 (Pads 71-68) */ + + struct { + __IOM uint32_t PAD68_DS1 : 1; /*!< [0..0] Pad 68 high order drive strength selection. Used in conjunction + with PAD68STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD68_SR : 1; /*!< [4..4] Pad 71 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD69_DS1 : 1; /*!< [8..8] Pad 69 high order drive strength selection. Used in conjunction + with PAD69STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD69_SR : 1; /*!< [12..12] Pad 71 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD70_DS1 : 1; /*!< [16..16] Pad 70 high order drive strength selection. Used in + conjunction with PAD70STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD70_SR : 1; /*!< [20..20] Pad 71 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD71_DS1 : 1; /*!< [24..24] Pad 71 high order drive strength selection. Used in + conjunction with PAD71STRNG field to set the pad drive + strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD71_SR : 1; /*!< [28..28] Pad 71 slew rate selection. */ + } ALTPADCFGR_b; + } ; + + union { + __IOM uint32_t ALTPADCFGS; /*!< (@ 0x00000140) Alternate Pad Configuration reg0 (Pads 75-72) */ + + struct { + __IOM uint32_t PAD72_DS1 : 1; /*!< [0..0] Pad 72 high order drive strength selection. Used in conjunction + with PAD72STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD72_SR : 1; /*!< [4..4] Pad 75 slew rate selection. */ + __IM uint32_t : 3; + __IOM uint32_t PAD73_DS1 : 1; /*!< [8..8] Pad 73 high order drive strength selection. Used in conjunction + with PAD73STRNG field to set the pad drive strength. */ + __IM uint32_t : 3; + __IOM uint32_t PAD73_SR : 1; /*!< [12..12] Pad 75 slew rate selection. */ + } ALTPADCFGS_b; + } ; + + union { + __IOM uint32_t SCDET; /*!< (@ 0x00000144) SCARD Card Detect select */ + + struct { + __IOM uint32_t SCDET : 7; /*!< [6..0] SCARD card detect pad select. */ + } SCDET_b; + } ; + + union { + __IOM uint32_t CTENCFG; /*!< (@ 0x00000148) Counter/Timer Enable Config */ + + struct { + __IOM uint32_t EN0 : 1; /*!< [0..0] CT0 Enable */ + __IOM uint32_t EN1 : 1; /*!< [1..1] CT1 Enable */ + __IOM uint32_t EN2 : 1; /*!< [2..2] CT2 Enable */ + __IOM uint32_t EN3 : 1; /*!< [3..3] CT3 Enable */ + __IOM uint32_t EN4 : 1; /*!< [4..4] CT4 Enable */ + __IOM uint32_t EN5 : 1; /*!< [5..5] CT5 Enable */ + __IOM uint32_t EN6 : 1; /*!< [6..6] CT6 Enable */ + __IOM uint32_t EN7 : 1; /*!< [7..7] CT7 Enable */ + __IOM uint32_t EN8 : 1; /*!< [8..8] CT8 Enable */ + __IOM uint32_t EN9 : 1; /*!< [9..9] CT9 Enable */ + __IOM uint32_t EN10 : 1; /*!< [10..10] CT10 Enable */ + __IOM uint32_t EN11 : 1; /*!< [11..11] CT11 Enable */ + __IOM uint32_t EN12 : 1; /*!< [12..12] CT12 Enable */ + __IOM uint32_t EN13 : 1; /*!< [13..13] CT13 Enable */ + __IOM uint32_t EN14 : 1; /*!< [14..14] CT14 Enable */ + __IOM uint32_t EN15 : 1; /*!< [15..15] CT15 Enable */ + __IOM uint32_t EN16 : 1; /*!< [16..16] CT16 Enable */ + __IOM uint32_t EN17 : 1; /*!< [17..17] CT17 Enable */ + __IOM uint32_t EN18 : 1; /*!< [18..18] CT18 Enable */ + __IOM uint32_t EN19 : 1; /*!< [19..19] CT19 Enable */ + __IOM uint32_t EN20 : 1; /*!< [20..20] CT20 Enable */ + __IOM uint32_t EN21 : 1; /*!< [21..21] CT21 Enable */ + __IOM uint32_t EN22 : 1; /*!< [22..22] CT22 Enable */ + __IOM uint32_t EN23 : 1; /*!< [23..23] CT23 Enable */ + __IOM uint32_t EN24 : 1; /*!< [24..24] CT24 Enable */ + __IOM uint32_t EN25 : 1; /*!< [25..25] CT25 Enable */ + __IOM uint32_t EN26 : 1; /*!< [26..26] CT26 Enable */ + __IOM uint32_t EN27 : 1; /*!< [27..27] CT27 Enable */ + __IOM uint32_t EN28 : 1; /*!< [28..28] CT28 Enable */ + __IOM uint32_t EN29 : 1; /*!< [29..29] CT29 Enable */ + __IOM uint32_t EN30 : 1; /*!< [30..30] CT30 Enable */ + __IOM uint32_t EN31 : 1; /*!< [31..31] CT31 Enable */ + } CTENCFG_b; + } ; + __IM uint32_t RESERVED1[45]; + + union { + __IOM uint32_t INT0EN; /*!< (@ 0x00000200) GPIO Interrupt Registers 31-0: Enable */ + + struct { + __IOM uint32_t GPIO0 : 1; /*!< [0..0] GPIO0 interrupt. */ + __IOM uint32_t GPIO1 : 1; /*!< [1..1] GPIO1 interrupt. */ + __IOM uint32_t GPIO2 : 1; /*!< [2..2] GPIO2 interrupt. */ + __IOM uint32_t GPIO3 : 1; /*!< [3..3] GPIO3 interrupt. */ + __IOM uint32_t GPIO4 : 1; /*!< [4..4] GPIO4 interrupt. */ + __IOM uint32_t GPIO5 : 1; /*!< [5..5] GPIO5 interrupt. */ + __IOM uint32_t GPIO6 : 1; /*!< [6..6] GPIO6 interrupt. */ + __IOM uint32_t GPIO7 : 1; /*!< [7..7] GPIO7 interrupt. */ + __IOM uint32_t GPIO8 : 1; /*!< [8..8] GPIO8 interrupt. */ + __IOM uint32_t GPIO9 : 1; /*!< [9..9] GPIO9 interrupt. */ + __IOM uint32_t GPIO10 : 1; /*!< [10..10] GPIO10 interrupt. */ + __IOM uint32_t GPIO11 : 1; /*!< [11..11] GPIO11 interrupt. */ + __IOM uint32_t GPIO12 : 1; /*!< [12..12] GPIO12 interrupt. */ + __IOM uint32_t GPIO13 : 1; /*!< [13..13] GPIO13 interrupt. */ + __IOM uint32_t GPIO14 : 1; /*!< [14..14] GPIO14 interrupt. */ + __IOM uint32_t GPIO15 : 1; /*!< [15..15] GPIO15 interrupt. */ + __IOM uint32_t GPIO16 : 1; /*!< [16..16] GPIO16 interrupt. */ + __IOM uint32_t GPIO17 : 1; /*!< [17..17] GPIO17 interrupt. */ + __IOM uint32_t GPIO18 : 1; /*!< [18..18] GPIO18interrupt. */ + __IOM uint32_t GPIO19 : 1; /*!< [19..19] GPIO19 interrupt. */ + __IOM uint32_t GPIO20 : 1; /*!< [20..20] GPIO20 interrupt. */ + __IOM uint32_t GPIO21 : 1; /*!< [21..21] GPIO21 interrupt. */ + __IOM uint32_t GPIO22 : 1; /*!< [22..22] GPIO22 interrupt. */ + __IOM uint32_t GPIO23 : 1; /*!< [23..23] GPIO23 interrupt. */ + __IOM uint32_t GPIO24 : 1; /*!< [24..24] GPIO24 interrupt. */ + __IOM uint32_t GPIO25 : 1; /*!< [25..25] GPIO25 interrupt. */ + __IOM uint32_t GPIO26 : 1; /*!< [26..26] GPIO26 interrupt. */ + __IOM uint32_t GPIO27 : 1; /*!< [27..27] GPIO27 interrupt. */ + __IOM uint32_t GPIO28 : 1; /*!< [28..28] GPIO28 interrupt. */ + __IOM uint32_t GPIO29 : 1; /*!< [29..29] GPIO29 interrupt. */ + __IOM uint32_t GPIO30 : 1; /*!< [30..30] GPIO30 interrupt. */ + __IOM uint32_t GPIO31 : 1; /*!< [31..31] GPIO31 interrupt. */ + } INT0EN_b; + } ; + + union { + __IOM uint32_t INT0STAT; /*!< (@ 0x00000204) GPIO Interrupt Registers 31-0: Status */ + + struct { + __IOM uint32_t GPIO0 : 1; /*!< [0..0] GPIO0 interrupt. */ + __IOM uint32_t GPIO1 : 1; /*!< [1..1] GPIO1 interrupt. */ + __IOM uint32_t GPIO2 : 1; /*!< [2..2] GPIO2 interrupt. */ + __IOM uint32_t GPIO3 : 1; /*!< [3..3] GPIO3 interrupt. */ + __IOM uint32_t GPIO4 : 1; /*!< [4..4] GPIO4 interrupt. */ + __IOM uint32_t GPIO5 : 1; /*!< [5..5] GPIO5 interrupt. */ + __IOM uint32_t GPIO6 : 1; /*!< [6..6] GPIO6 interrupt. */ + __IOM uint32_t GPIO7 : 1; /*!< [7..7] GPIO7 interrupt. */ + __IOM uint32_t GPIO8 : 1; /*!< [8..8] GPIO8 interrupt. */ + __IOM uint32_t GPIO9 : 1; /*!< [9..9] GPIO9 interrupt. */ + __IOM uint32_t GPIO10 : 1; /*!< [10..10] GPIO10 interrupt. */ + __IOM uint32_t GPIO11 : 1; /*!< [11..11] GPIO11 interrupt. */ + __IOM uint32_t GPIO12 : 1; /*!< [12..12] GPIO12 interrupt. */ + __IOM uint32_t GPIO13 : 1; /*!< [13..13] GPIO13 interrupt. */ + __IOM uint32_t GPIO14 : 1; /*!< [14..14] GPIO14 interrupt. */ + __IOM uint32_t GPIO15 : 1; /*!< [15..15] GPIO15 interrupt. */ + __IOM uint32_t GPIO16 : 1; /*!< [16..16] GPIO16 interrupt. */ + __IOM uint32_t GPIO17 : 1; /*!< [17..17] GPIO17 interrupt. */ + __IOM uint32_t GPIO18 : 1; /*!< [18..18] GPIO18interrupt. */ + __IOM uint32_t GPIO19 : 1; /*!< [19..19] GPIO19 interrupt. */ + __IOM uint32_t GPIO20 : 1; /*!< [20..20] GPIO20 interrupt. */ + __IOM uint32_t GPIO21 : 1; /*!< [21..21] GPIO21 interrupt. */ + __IOM uint32_t GPIO22 : 1; /*!< [22..22] GPIO22 interrupt. */ + __IOM uint32_t GPIO23 : 1; /*!< [23..23] GPIO23 interrupt. */ + __IOM uint32_t GPIO24 : 1; /*!< [24..24] GPIO24 interrupt. */ + __IOM uint32_t GPIO25 : 1; /*!< [25..25] GPIO25 interrupt. */ + __IOM uint32_t GPIO26 : 1; /*!< [26..26] GPIO26 interrupt. */ + __IOM uint32_t GPIO27 : 1; /*!< [27..27] GPIO27 interrupt. */ + __IOM uint32_t GPIO28 : 1; /*!< [28..28] GPIO28 interrupt. */ + __IOM uint32_t GPIO29 : 1; /*!< [29..29] GPIO29 interrupt. */ + __IOM uint32_t GPIO30 : 1; /*!< [30..30] GPIO30 interrupt. */ + __IOM uint32_t GPIO31 : 1; /*!< [31..31] GPIO31 interrupt. */ + } INT0STAT_b; + } ; + + union { + __IOM uint32_t INT0CLR; /*!< (@ 0x00000208) GPIO Interrupt Registers 31-0: Clear */ + + struct { + __IOM uint32_t GPIO0 : 1; /*!< [0..0] GPIO0 interrupt. */ + __IOM uint32_t GPIO1 : 1; /*!< [1..1] GPIO1 interrupt. */ + __IOM uint32_t GPIO2 : 1; /*!< [2..2] GPIO2 interrupt. */ + __IOM uint32_t GPIO3 : 1; /*!< [3..3] GPIO3 interrupt. */ + __IOM uint32_t GPIO4 : 1; /*!< [4..4] GPIO4 interrupt. */ + __IOM uint32_t GPIO5 : 1; /*!< [5..5] GPIO5 interrupt. */ + __IOM uint32_t GPIO6 : 1; /*!< [6..6] GPIO6 interrupt. */ + __IOM uint32_t GPIO7 : 1; /*!< [7..7] GPIO7 interrupt. */ + __IOM uint32_t GPIO8 : 1; /*!< [8..8] GPIO8 interrupt. */ + __IOM uint32_t GPIO9 : 1; /*!< [9..9] GPIO9 interrupt. */ + __IOM uint32_t GPIO10 : 1; /*!< [10..10] GPIO10 interrupt. */ + __IOM uint32_t GPIO11 : 1; /*!< [11..11] GPIO11 interrupt. */ + __IOM uint32_t GPIO12 : 1; /*!< [12..12] GPIO12 interrupt. */ + __IOM uint32_t GPIO13 : 1; /*!< [13..13] GPIO13 interrupt. */ + __IOM uint32_t GPIO14 : 1; /*!< [14..14] GPIO14 interrupt. */ + __IOM uint32_t GPIO15 : 1; /*!< [15..15] GPIO15 interrupt. */ + __IOM uint32_t GPIO16 : 1; /*!< [16..16] GPIO16 interrupt. */ + __IOM uint32_t GPIO17 : 1; /*!< [17..17] GPIO17 interrupt. */ + __IOM uint32_t GPIO18 : 1; /*!< [18..18] GPIO18interrupt. */ + __IOM uint32_t GPIO19 : 1; /*!< [19..19] GPIO19 interrupt. */ + __IOM uint32_t GPIO20 : 1; /*!< [20..20] GPIO20 interrupt. */ + __IOM uint32_t GPIO21 : 1; /*!< [21..21] GPIO21 interrupt. */ + __IOM uint32_t GPIO22 : 1; /*!< [22..22] GPIO22 interrupt. */ + __IOM uint32_t GPIO23 : 1; /*!< [23..23] GPIO23 interrupt. */ + __IOM uint32_t GPIO24 : 1; /*!< [24..24] GPIO24 interrupt. */ + __IOM uint32_t GPIO25 : 1; /*!< [25..25] GPIO25 interrupt. */ + __IOM uint32_t GPIO26 : 1; /*!< [26..26] GPIO26 interrupt. */ + __IOM uint32_t GPIO27 : 1; /*!< [27..27] GPIO27 interrupt. */ + __IOM uint32_t GPIO28 : 1; /*!< [28..28] GPIO28 interrupt. */ + __IOM uint32_t GPIO29 : 1; /*!< [29..29] GPIO29 interrupt. */ + __IOM uint32_t GPIO30 : 1; /*!< [30..30] GPIO30 interrupt. */ + __IOM uint32_t GPIO31 : 1; /*!< [31..31] GPIO31 interrupt. */ + } INT0CLR_b; + } ; + + union { + __IOM uint32_t INT0SET; /*!< (@ 0x0000020C) GPIO Interrupt Registers 31-0: Set */ + + struct { + __IOM uint32_t GPIO0 : 1; /*!< [0..0] GPIO0 interrupt. */ + __IOM uint32_t GPIO1 : 1; /*!< [1..1] GPIO1 interrupt. */ + __IOM uint32_t GPIO2 : 1; /*!< [2..2] GPIO2 interrupt. */ + __IOM uint32_t GPIO3 : 1; /*!< [3..3] GPIO3 interrupt. */ + __IOM uint32_t GPIO4 : 1; /*!< [4..4] GPIO4 interrupt. */ + __IOM uint32_t GPIO5 : 1; /*!< [5..5] GPIO5 interrupt. */ + __IOM uint32_t GPIO6 : 1; /*!< [6..6] GPIO6 interrupt. */ + __IOM uint32_t GPIO7 : 1; /*!< [7..7] GPIO7 interrupt. */ + __IOM uint32_t GPIO8 : 1; /*!< [8..8] GPIO8 interrupt. */ + __IOM uint32_t GPIO9 : 1; /*!< [9..9] GPIO9 interrupt. */ + __IOM uint32_t GPIO10 : 1; /*!< [10..10] GPIO10 interrupt. */ + __IOM uint32_t GPIO11 : 1; /*!< [11..11] GPIO11 interrupt. */ + __IOM uint32_t GPIO12 : 1; /*!< [12..12] GPIO12 interrupt. */ + __IOM uint32_t GPIO13 : 1; /*!< [13..13] GPIO13 interrupt. */ + __IOM uint32_t GPIO14 : 1; /*!< [14..14] GPIO14 interrupt. */ + __IOM uint32_t GPIO15 : 1; /*!< [15..15] GPIO15 interrupt. */ + __IOM uint32_t GPIO16 : 1; /*!< [16..16] GPIO16 interrupt. */ + __IOM uint32_t GPIO17 : 1; /*!< [17..17] GPIO17 interrupt. */ + __IOM uint32_t GPIO18 : 1; /*!< [18..18] GPIO18interrupt. */ + __IOM uint32_t GPIO19 : 1; /*!< [19..19] GPIO19 interrupt. */ + __IOM uint32_t GPIO20 : 1; /*!< [20..20] GPIO20 interrupt. */ + __IOM uint32_t GPIO21 : 1; /*!< [21..21] GPIO21 interrupt. */ + __IOM uint32_t GPIO22 : 1; /*!< [22..22] GPIO22 interrupt. */ + __IOM uint32_t GPIO23 : 1; /*!< [23..23] GPIO23 interrupt. */ + __IOM uint32_t GPIO24 : 1; /*!< [24..24] GPIO24 interrupt. */ + __IOM uint32_t GPIO25 : 1; /*!< [25..25] GPIO25 interrupt. */ + __IOM uint32_t GPIO26 : 1; /*!< [26..26] GPIO26 interrupt. */ + __IOM uint32_t GPIO27 : 1; /*!< [27..27] GPIO27 interrupt. */ + __IOM uint32_t GPIO28 : 1; /*!< [28..28] GPIO28 interrupt. */ + __IOM uint32_t GPIO29 : 1; /*!< [29..29] GPIO29 interrupt. */ + __IOM uint32_t GPIO30 : 1; /*!< [30..30] GPIO30 interrupt. */ + __IOM uint32_t GPIO31 : 1; /*!< [31..31] GPIO31 interrupt. */ + } INT0SET_b; + } ; + __IM uint32_t RESERVED2[4]; + + union { + __IOM uint32_t INT1EN; /*!< (@ 0x00000220) GPIO Interrupt Registers 63-32: Enable */ + + struct { + __IOM uint32_t GPIO32 : 1; /*!< [0..0] GPIO32 interrupt. */ + __IOM uint32_t GPIO33 : 1; /*!< [1..1] GPIO33 interrupt. */ + __IOM uint32_t GPIO34 : 1; /*!< [2..2] GPIO34 interrupt. */ + __IOM uint32_t GPIO35 : 1; /*!< [3..3] GPIO35 interrupt. */ + __IOM uint32_t GPIO36 : 1; /*!< [4..4] GPIO36 interrupt. */ + __IOM uint32_t GPIO37 : 1; /*!< [5..5] GPIO37 interrupt. */ + __IOM uint32_t GPIO38 : 1; /*!< [6..6] GPIO38 interrupt. */ + __IOM uint32_t GPIO39 : 1; /*!< [7..7] GPIO39 interrupt. */ + __IOM uint32_t GPIO40 : 1; /*!< [8..8] GPIO40 interrupt. */ + __IOM uint32_t GPIO41 : 1; /*!< [9..9] GPIO41 interrupt. */ + __IOM uint32_t GPIO42 : 1; /*!< [10..10] GPIO42 interrupt. */ + __IOM uint32_t GPIO43 : 1; /*!< [11..11] GPIO43 interrupt. */ + __IOM uint32_t GPIO44 : 1; /*!< [12..12] GPIO44 interrupt. */ + __IOM uint32_t GPIO45 : 1; /*!< [13..13] GPIO45 interrupt. */ + __IOM uint32_t GPIO46 : 1; /*!< [14..14] GPIO46 interrupt. */ + __IOM uint32_t GPIO47 : 1; /*!< [15..15] GPIO47 interrupt. */ + __IOM uint32_t GPIO48 : 1; /*!< [16..16] GPIO48 interrupt. */ + __IOM uint32_t GPIO49 : 1; /*!< [17..17] GPIO49 interrupt. */ + __IOM uint32_t GPIO50 : 1; /*!< [18..18] GPIO50 interrupt. */ + __IOM uint32_t GPIO51 : 1; /*!< [19..19] GPIO51 interrupt. */ + __IOM uint32_t GPIO52 : 1; /*!< [20..20] GPIO52 interrupt. */ + __IOM uint32_t GPIO53 : 1; /*!< [21..21] GPIO53 interrupt. */ + __IOM uint32_t GPIO54 : 1; /*!< [22..22] GPIO54 interrupt. */ + __IOM uint32_t GPIO55 : 1; /*!< [23..23] GPIO55 interrupt. */ + __IOM uint32_t GPIO56 : 1; /*!< [24..24] GPIO56 interrupt. */ + __IOM uint32_t GPIO57 : 1; /*!< [25..25] GPIO57 interrupt. */ + __IOM uint32_t GPIO58 : 1; /*!< [26..26] GPIO58 interrupt. */ + __IOM uint32_t GPIO59 : 1; /*!< [27..27] GPIO59 interrupt. */ + __IOM uint32_t GPIO60 : 1; /*!< [28..28] GPIO60 interrupt. */ + __IOM uint32_t GPIO61 : 1; /*!< [29..29] GPIO61 interrupt. */ + __IOM uint32_t GPIO62 : 1; /*!< [30..30] GPIO62 interrupt. */ + __IOM uint32_t GPIO63 : 1; /*!< [31..31] GPIO63 interrupt. */ + } INT1EN_b; + } ; + + union { + __IOM uint32_t INT1STAT; /*!< (@ 0x00000224) GPIO Interrupt Registers 63-32: Status */ + + struct { + __IOM uint32_t GPIO32 : 1; /*!< [0..0] GPIO32 interrupt. */ + __IOM uint32_t GPIO33 : 1; /*!< [1..1] GPIO33 interrupt. */ + __IOM uint32_t GPIO34 : 1; /*!< [2..2] GPIO34 interrupt. */ + __IOM uint32_t GPIO35 : 1; /*!< [3..3] GPIO35 interrupt. */ + __IOM uint32_t GPIO36 : 1; /*!< [4..4] GPIO36 interrupt. */ + __IOM uint32_t GPIO37 : 1; /*!< [5..5] GPIO37 interrupt. */ + __IOM uint32_t GPIO38 : 1; /*!< [6..6] GPIO38 interrupt. */ + __IOM uint32_t GPIO39 : 1; /*!< [7..7] GPIO39 interrupt. */ + __IOM uint32_t GPIO40 : 1; /*!< [8..8] GPIO40 interrupt. */ + __IOM uint32_t GPIO41 : 1; /*!< [9..9] GPIO41 interrupt. */ + __IOM uint32_t GPIO42 : 1; /*!< [10..10] GPIO42 interrupt. */ + __IOM uint32_t GPIO43 : 1; /*!< [11..11] GPIO43 interrupt. */ + __IOM uint32_t GPIO44 : 1; /*!< [12..12] GPIO44 interrupt. */ + __IOM uint32_t GPIO45 : 1; /*!< [13..13] GPIO45 interrupt. */ + __IOM uint32_t GPIO46 : 1; /*!< [14..14] GPIO46 interrupt. */ + __IOM uint32_t GPIO47 : 1; /*!< [15..15] GPIO47 interrupt. */ + __IOM uint32_t GPIO48 : 1; /*!< [16..16] GPIO48 interrupt. */ + __IOM uint32_t GPIO49 : 1; /*!< [17..17] GPIO49 interrupt. */ + __IOM uint32_t GPIO50 : 1; /*!< [18..18] GPIO50 interrupt. */ + __IOM uint32_t GPIO51 : 1; /*!< [19..19] GPIO51 interrupt. */ + __IOM uint32_t GPIO52 : 1; /*!< [20..20] GPIO52 interrupt. */ + __IOM uint32_t GPIO53 : 1; /*!< [21..21] GPIO53 interrupt. */ + __IOM uint32_t GPIO54 : 1; /*!< [22..22] GPIO54 interrupt. */ + __IOM uint32_t GPIO55 : 1; /*!< [23..23] GPIO55 interrupt. */ + __IOM uint32_t GPIO56 : 1; /*!< [24..24] GPIO56 interrupt. */ + __IOM uint32_t GPIO57 : 1; /*!< [25..25] GPIO57 interrupt. */ + __IOM uint32_t GPIO58 : 1; /*!< [26..26] GPIO58 interrupt. */ + __IOM uint32_t GPIO59 : 1; /*!< [27..27] GPIO59 interrupt. */ + __IOM uint32_t GPIO60 : 1; /*!< [28..28] GPIO60 interrupt. */ + __IOM uint32_t GPIO61 : 1; /*!< [29..29] GPIO61 interrupt. */ + __IOM uint32_t GPIO62 : 1; /*!< [30..30] GPIO62 interrupt. */ + __IOM uint32_t GPIO63 : 1; /*!< [31..31] GPIO63 interrupt. */ + } INT1STAT_b; + } ; + + union { + __IOM uint32_t INT1CLR; /*!< (@ 0x00000228) GPIO Interrupt Registers 63-32: Clear */ + + struct { + __IOM uint32_t GPIO32 : 1; /*!< [0..0] GPIO32 interrupt. */ + __IOM uint32_t GPIO33 : 1; /*!< [1..1] GPIO33 interrupt. */ + __IOM uint32_t GPIO34 : 1; /*!< [2..2] GPIO34 interrupt. */ + __IOM uint32_t GPIO35 : 1; /*!< [3..3] GPIO35 interrupt. */ + __IOM uint32_t GPIO36 : 1; /*!< [4..4] GPIO36 interrupt. */ + __IOM uint32_t GPIO37 : 1; /*!< [5..5] GPIO37 interrupt. */ + __IOM uint32_t GPIO38 : 1; /*!< [6..6] GPIO38 interrupt. */ + __IOM uint32_t GPIO39 : 1; /*!< [7..7] GPIO39 interrupt. */ + __IOM uint32_t GPIO40 : 1; /*!< [8..8] GPIO40 interrupt. */ + __IOM uint32_t GPIO41 : 1; /*!< [9..9] GPIO41 interrupt. */ + __IOM uint32_t GPIO42 : 1; /*!< [10..10] GPIO42 interrupt. */ + __IOM uint32_t GPIO43 : 1; /*!< [11..11] GPIO43 interrupt. */ + __IOM uint32_t GPIO44 : 1; /*!< [12..12] GPIO44 interrupt. */ + __IOM uint32_t GPIO45 : 1; /*!< [13..13] GPIO45 interrupt. */ + __IOM uint32_t GPIO46 : 1; /*!< [14..14] GPIO46 interrupt. */ + __IOM uint32_t GPIO47 : 1; /*!< [15..15] GPIO47 interrupt. */ + __IOM uint32_t GPIO48 : 1; /*!< [16..16] GPIO48 interrupt. */ + __IOM uint32_t GPIO49 : 1; /*!< [17..17] GPIO49 interrupt. */ + __IOM uint32_t GPIO50 : 1; /*!< [18..18] GPIO50 interrupt. */ + __IOM uint32_t GPIO51 : 1; /*!< [19..19] GPIO51 interrupt. */ + __IOM uint32_t GPIO52 : 1; /*!< [20..20] GPIO52 interrupt. */ + __IOM uint32_t GPIO53 : 1; /*!< [21..21] GPIO53 interrupt. */ + __IOM uint32_t GPIO54 : 1; /*!< [22..22] GPIO54 interrupt. */ + __IOM uint32_t GPIO55 : 1; /*!< [23..23] GPIO55 interrupt. */ + __IOM uint32_t GPIO56 : 1; /*!< [24..24] GPIO56 interrupt. */ + __IOM uint32_t GPIO57 : 1; /*!< [25..25] GPIO57 interrupt. */ + __IOM uint32_t GPIO58 : 1; /*!< [26..26] GPIO58 interrupt. */ + __IOM uint32_t GPIO59 : 1; /*!< [27..27] GPIO59 interrupt. */ + __IOM uint32_t GPIO60 : 1; /*!< [28..28] GPIO60 interrupt. */ + __IOM uint32_t GPIO61 : 1; /*!< [29..29] GPIO61 interrupt. */ + __IOM uint32_t GPIO62 : 1; /*!< [30..30] GPIO62 interrupt. */ + __IOM uint32_t GPIO63 : 1; /*!< [31..31] GPIO63 interrupt. */ + } INT1CLR_b; + } ; + + union { + __IOM uint32_t INT1SET; /*!< (@ 0x0000022C) GPIO Interrupt Registers 63-32: Set */ + + struct { + __IOM uint32_t GPIO32 : 1; /*!< [0..0] GPIO32 interrupt. */ + __IOM uint32_t GPIO33 : 1; /*!< [1..1] GPIO33 interrupt. */ + __IOM uint32_t GPIO34 : 1; /*!< [2..2] GPIO34 interrupt. */ + __IOM uint32_t GPIO35 : 1; /*!< [3..3] GPIO35 interrupt. */ + __IOM uint32_t GPIO36 : 1; /*!< [4..4] GPIO36 interrupt. */ + __IOM uint32_t GPIO37 : 1; /*!< [5..5] GPIO37 interrupt. */ + __IOM uint32_t GPIO38 : 1; /*!< [6..6] GPIO38 interrupt. */ + __IOM uint32_t GPIO39 : 1; /*!< [7..7] GPIO39 interrupt. */ + __IOM uint32_t GPIO40 : 1; /*!< [8..8] GPIO40 interrupt. */ + __IOM uint32_t GPIO41 : 1; /*!< [9..9] GPIO41 interrupt. */ + __IOM uint32_t GPIO42 : 1; /*!< [10..10] GPIO42 interrupt. */ + __IOM uint32_t GPIO43 : 1; /*!< [11..11] GPIO43 interrupt. */ + __IOM uint32_t GPIO44 : 1; /*!< [12..12] GPIO44 interrupt. */ + __IOM uint32_t GPIO45 : 1; /*!< [13..13] GPIO45 interrupt. */ + __IOM uint32_t GPIO46 : 1; /*!< [14..14] GPIO46 interrupt. */ + __IOM uint32_t GPIO47 : 1; /*!< [15..15] GPIO47 interrupt. */ + __IOM uint32_t GPIO48 : 1; /*!< [16..16] GPIO48 interrupt. */ + __IOM uint32_t GPIO49 : 1; /*!< [17..17] GPIO49 interrupt. */ + __IOM uint32_t GPIO50 : 1; /*!< [18..18] GPIO50 interrupt. */ + __IOM uint32_t GPIO51 : 1; /*!< [19..19] GPIO51 interrupt. */ + __IOM uint32_t GPIO52 : 1; /*!< [20..20] GPIO52 interrupt. */ + __IOM uint32_t GPIO53 : 1; /*!< [21..21] GPIO53 interrupt. */ + __IOM uint32_t GPIO54 : 1; /*!< [22..22] GPIO54 interrupt. */ + __IOM uint32_t GPIO55 : 1; /*!< [23..23] GPIO55 interrupt. */ + __IOM uint32_t GPIO56 : 1; /*!< [24..24] GPIO56 interrupt. */ + __IOM uint32_t GPIO57 : 1; /*!< [25..25] GPIO57 interrupt. */ + __IOM uint32_t GPIO58 : 1; /*!< [26..26] GPIO58 interrupt. */ + __IOM uint32_t GPIO59 : 1; /*!< [27..27] GPIO59 interrupt. */ + __IOM uint32_t GPIO60 : 1; /*!< [28..28] GPIO60 interrupt. */ + __IOM uint32_t GPIO61 : 1; /*!< [29..29] GPIO61 interrupt. */ + __IOM uint32_t GPIO62 : 1; /*!< [30..30] GPIO62 interrupt. */ + __IOM uint32_t GPIO63 : 1; /*!< [31..31] GPIO63 interrupt. */ + } INT1SET_b; + } ; + __IM uint32_t RESERVED3[4]; + + union { + __IOM uint32_t INT2EN; /*!< (@ 0x00000240) GPIO Interrupt Registers 73-64: Enable */ + + struct { + __IOM uint32_t GPIO64 : 1; /*!< [0..0] GPIO64 interrupt. */ + __IOM uint32_t GPIO65 : 1; /*!< [1..1] GPIO65 interrupt. */ + __IOM uint32_t GPIO66 : 1; /*!< [2..2] GPIO66 interrupt. */ + __IOM uint32_t GPIO67 : 1; /*!< [3..3] GPIO67 interrupt. */ + __IOM uint32_t GPIO68 : 1; /*!< [4..4] GPIO68 interrupt. */ + __IOM uint32_t GPIO69 : 1; /*!< [5..5] GPIO69 interrupt. */ + __IOM uint32_t GPIO70 : 1; /*!< [6..6] GPIO70 interrupt. */ + __IOM uint32_t GPIO71 : 1; /*!< [7..7] GPIO71 interrupt. */ + __IOM uint32_t GPIO72 : 1; /*!< [8..8] GPIO72 interrupt. */ + __IOM uint32_t GPIO73 : 1; /*!< [9..9] GPIO73 interrupt. */ + } INT2EN_b; + } ; + + union { + __IOM uint32_t INT2STAT; /*!< (@ 0x00000244) GPIO Interrupt Registers 73-64: Status */ + + struct { + __IOM uint32_t GPIO64 : 1; /*!< [0..0] GPIO64 interrupt. */ + __IOM uint32_t GPIO65 : 1; /*!< [1..1] GPIO65 interrupt. */ + __IOM uint32_t GPIO66 : 1; /*!< [2..2] GPIO66 interrupt. */ + __IOM uint32_t GPIO67 : 1; /*!< [3..3] GPIO67 interrupt. */ + __IOM uint32_t GPIO68 : 1; /*!< [4..4] GPIO68 interrupt. */ + __IOM uint32_t GPIO69 : 1; /*!< [5..5] GPIO69 interrupt. */ + __IOM uint32_t GPIO70 : 1; /*!< [6..6] GPIO70 interrupt. */ + __IOM uint32_t GPIO71 : 1; /*!< [7..7] GPIO71 interrupt. */ + __IOM uint32_t GPIO72 : 1; /*!< [8..8] GPIO72 interrupt. */ + __IOM uint32_t GPIO73 : 1; /*!< [9..9] GPIO73 interrupt. */ + } INT2STAT_b; + } ; + + union { + __IOM uint32_t INT2CLR; /*!< (@ 0x00000248) GPIO Interrupt Registers 73-64: Clear */ + + struct { + __IOM uint32_t GPIO64 : 1; /*!< [0..0] GPIO64 interrupt. */ + __IOM uint32_t GPIO65 : 1; /*!< [1..1] GPIO65 interrupt. */ + __IOM uint32_t GPIO66 : 1; /*!< [2..2] GPIO66 interrupt. */ + __IOM uint32_t GPIO67 : 1; /*!< [3..3] GPIO67 interrupt. */ + __IOM uint32_t GPIO68 : 1; /*!< [4..4] GPIO68 interrupt. */ + __IOM uint32_t GPIO69 : 1; /*!< [5..5] GPIO69 interrupt. */ + __IOM uint32_t GPIO70 : 1; /*!< [6..6] GPIO70 interrupt. */ + __IOM uint32_t GPIO71 : 1; /*!< [7..7] GPIO71 interrupt. */ + __IOM uint32_t GPIO72 : 1; /*!< [8..8] GPIO72 interrupt. */ + __IOM uint32_t GPIO73 : 1; /*!< [9..9] GPIO73 interrupt. */ + } INT2CLR_b; + } ; + + union { + __IOM uint32_t INT2SET; /*!< (@ 0x0000024C) GPIO Interrupt Registers 73-64: Set */ + + struct { + __IOM uint32_t GPIO64 : 1; /*!< [0..0] GPIO64 interrupt. */ + __IOM uint32_t GPIO65 : 1; /*!< [1..1] GPIO65 interrupt. */ + __IOM uint32_t GPIO66 : 1; /*!< [2..2] GPIO66 interrupt. */ + __IOM uint32_t GPIO67 : 1; /*!< [3..3] GPIO67 interrupt. */ + __IOM uint32_t GPIO68 : 1; /*!< [4..4] GPIO68 interrupt. */ + __IOM uint32_t GPIO69 : 1; /*!< [5..5] GPIO69 interrupt. */ + __IOM uint32_t GPIO70 : 1; /*!< [6..6] GPIO70 interrupt. */ + __IOM uint32_t GPIO71 : 1; /*!< [7..7] GPIO71 interrupt. */ + __IOM uint32_t GPIO72 : 1; /*!< [8..8] GPIO72 interrupt. */ + __IOM uint32_t GPIO73 : 1; /*!< [9..9] GPIO73 interrupt. */ + } INT2SET_b; + } ; + + union { + __IOM uint32_t DBGCTRL; /*!< (@ 0x00000250) Debug Control */ + + struct { + __IOM uint32_t GCLK0 : 1; /*!< [0..0] Gate IOM0 CLK in SPI mode, allowing external input clock */ + __IOM uint32_t GCLK1 : 1; /*!< [1..1] Gate IOM1 CLK in SPI mode, allowing external input clock */ + __IOM uint32_t GCLK2 : 1; /*!< [2..2] Gate IOM2 CLK in SPI mode, allowing external input clock */ + __IOM uint32_t GCLK3 : 1; /*!< [3..3] Gate IOM3 CLK in SPI mode, allowing external input clock */ + __IOM uint32_t GCLK4 : 1; /*!< [4..4] Gate IOM4 CLK in SPI mode, allowing external input clock */ + __IOM uint32_t GCLK5 : 1; /*!< [5..5] Gate IOM5 CLK in SPI mode, allowing external input clock */ + } DBGCTRL_b; + } ; +} GPIO_Type; /*!< Size = 596 (0x254) */ + + + +/* =========================================================================================================================== */ +/* ================ IOM0 ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief IO Peripheral Master (IOM0) + */ + +typedef struct { /*!< (@ 0x50004000) IOM0 Structure */ + + union { + __IOM uint32_t FIFO; /*!< (@ 0x00000000) FIFO Access Port */ + + struct { + __IOM uint32_t FIFO : 32; /*!< [31..0] FIFO direct access. Only locations 0 - 3F will return + valid information. */ + } FIFO_b; + } ; + __IM uint32_t RESERVED[63]; + + union { + __IOM uint32_t FIFOPTR; /*!< (@ 0x00000100) FIFO size and remaining slots open values */ + + struct { + __IOM uint32_t FIFO0SIZ : 8; /*!< [7..0] The number of valid data bytes currently in the FIFO + 0 (written by MCU, read by interface) */ + __IOM uint32_t FIFO0REM : 8; /*!< [15..8] The number of remaining data bytes slots currently in + FIFO 0 (written by MCU, read by interface) */ + __IOM uint32_t FIFO1SIZ : 8; /*!< [23..16] The number of valid data bytes currently in FIFO 1 + (written by interface, read by MCU) */ + __IOM uint32_t FIFO1REM : 8; /*!< [31..24] The number of remaining data bytes slots currently + in FIFO 1 (written by interface, read by MCU) */ + } FIFOPTR_b; + } ; + + union { + __IOM uint32_t FIFOTHR; /*!< (@ 0x00000104) FIFO Threshold Configuration */ + + struct { + __IOM uint32_t FIFORTHR : 6; /*!< [5..0] FIFO read threshold in bytes. A value of 0 will disable + the read FIFO level from activating the threshold interrupt. + If this field is non-zero, it will trigger a threshold + interrupt when the read fifo contains FIFORTHR valid bytes + of data, as indicated by the FIFO1SIZ field. This is intended + to signal when a data transfer of FIFORTHR bytes can be + done from the IOM module to the host via the read fifo + to support large IOM read operations. */ + __IM uint32_t : 2; + __IOM uint32_t FIFOWTHR : 6; /*!< [13..8] FIFO write threshold in bytes. A value of 0 will disable + the write FIFO level from activating the threshold interrupt. + If this field is non-zero, it will trigger a threshold + interrupt when the write fifo contains FIFOWTHR free bytes, + as indicated by the FIFO0REM field. This is intended to + signal when a transfer of FIFOWTHR bytes can be done from + the host to the IOM write fifo to support large IOM write + operations. */ + } FIFOTHR_b; + } ; + + union { + __IOM uint32_t FIFOPOP; /*!< (@ 0x00000108) FIFO POP register */ + + struct { + __IOM uint32_t FIFODOUT : 32; /*!< [31..0] This register will return the read data indicated by + the current read pointer on reads. If the POPWR control + bit in the FIFOCTRL register is reset (0), the fifo read + pointer will be advanced by one word as a result of the + read.If the POPWR bit is set (1), the fifo read pointer + will only be advanced after a write operation to this register. + The write data is ignored for this register.If less than + a even word multiple is available, and the command is completed, + the module will return the word containing */ + } FIFOPOP_b; + } ; + + union { + __IOM uint32_t FIFOPUSH; /*!< (@ 0x0000010C) FIFO PUSH register */ + + struct { + __IOM uint32_t FIFODIN : 32; /*!< [31..0] This register is used to write the FIFORAM in FIFO mode + and will cause a push event to occur to the next open slot + within the FIFORAM. Writing to this register will cause + the write point to increment by 1 word(4 bytes). */ + } FIFOPUSH_b; + } ; + + union { + __IOM uint32_t FIFOCTRL; /*!< (@ 0x00000110) FIFO Control Register */ + + struct { + __IOM uint32_t POPWR : 1; /*!< [0..0] Selects the mode in which 'pop' events are done for the + fifo read operations. A value of '1' will prevent a pop + event on a read operation, and will require a write to + the FIFOPOP register to create a pop event.A value of '0' + in this register will allow a pop event to occur on the + read of the FIFOPOP register, and may cause inadvertant + fifo pops when used in a debugging mode. */ + __IOM uint32_t FIFORSTN : 1; /*!< [1..1] Active low manual reset of the fifo. Write to 0 to reset + fifo, and then write to 1 to remove the reset. */ + } FIFOCTRL_b; + } ; + + union { + __IOM uint32_t FIFOLOC; /*!< (@ 0x00000114) FIFO Pointers */ + + struct { + __IOM uint32_t FIFOWPTR : 4; /*!< [3..0] Current FIFO write pointer. Value is the index into the + outgoing FIFO (FIFO0), which is used during write operations + to external devices. */ + __IM uint32_t : 4; + __IOM uint32_t FIFORPTR : 4; /*!< [11..8] Current FIFO read pointer. Used to index into the incoming + FIFO (FIFO1), which is used to store read data returned + from external devices during a read operation. */ + } FIFOLOC_b; + } ; + __IM uint32_t RESERVED1[58]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) IO Master Interrupts: Enable */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command complete interrupt */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. This occurs when software + tries to pop from an empty fifo. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t NAK : 1; /*!< [4..4] I2C NAK interrupt. Asserted when an unexpected NAK has + been received on the I2C bus. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t START : 1; /*!< [7..7] START command interrupt. Asserted when another master + on the bus has signaled a START command. */ + __IOM uint32_t STOP : 1; /*!< [8..8] STOP command interrupt. Asserted when another master + on the bus has signaled a STOP command. */ + __IOM uint32_t ARB : 1; /*!< [9..9] Arbitration loss interrupt. Asserted when arbitration + is enabled and has been lost to another master on the bus. */ + __IOM uint32_t DCMP : 1; /*!< [10..10] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [11..11] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [12..12] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [13..13] CQ write operation performed a register write with + the register address bit 0 set to 1. The low address bits + in the CQ address fields are unused and bit 0 can be used + to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [14..14] Error during command queue operations */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) IO Master Interrupts: Status */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command complete interrupt */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. This occurs when software + tries to pop from an empty fifo. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t NAK : 1; /*!< [4..4] I2C NAK interrupt. Asserted when an unexpected NAK has + been received on the I2C bus. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t START : 1; /*!< [7..7] START command interrupt. Asserted when another master + on the bus has signaled a START command. */ + __IOM uint32_t STOP : 1; /*!< [8..8] STOP command interrupt. Asserted when another master + on the bus has signaled a STOP command. */ + __IOM uint32_t ARB : 1; /*!< [9..9] Arbitration loss interrupt. Asserted when arbitration + is enabled and has been lost to another master on the bus. */ + __IOM uint32_t DCMP : 1; /*!< [10..10] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [11..11] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [12..12] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [13..13] CQ write operation performed a register write with + the register address bit 0 set to 1. The low address bits + in the CQ address fields are unused and bit 0 can be used + to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [14..14] Error during command queue operations */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) IO Master Interrupts: Clear */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command complete interrupt */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. This occurs when software + tries to pop from an empty fifo. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t NAK : 1; /*!< [4..4] I2C NAK interrupt. Asserted when an unexpected NAK has + been received on the I2C bus. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t START : 1; /*!< [7..7] START command interrupt. Asserted when another master + on the bus has signaled a START command. */ + __IOM uint32_t STOP : 1; /*!< [8..8] STOP command interrupt. Asserted when another master + on the bus has signaled a STOP command. */ + __IOM uint32_t ARB : 1; /*!< [9..9] Arbitration loss interrupt. Asserted when arbitration + is enabled and has been lost to another master on the bus. */ + __IOM uint32_t DCMP : 1; /*!< [10..10] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [11..11] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [12..12] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [13..13] CQ write operation performed a register write with + the register address bit 0 set to 1. The low address bits + in the CQ address fields are unused and bit 0 can be used + to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [14..14] Error during command queue operations */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) IO Master Interrupts: Set */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Command complete interrupt */ + __IOM uint32_t THR : 1; /*!< [1..1] FIFO Threshold interrupt. For write operations, asserted + when the number of free bytes in the write FIFO equals + or exceeds the WTHR field.For read operations, asserted + when the number of valid bytes in the read FIFO equals + of exceeds the value set in the RTHR field. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] Read FIFO Underflow interrupt. This occurs when software + tries to pop from an empty fifo. */ + __IOM uint32_t FOVFL : 1; /*!< [3..3] Write FIFO Overflow interrupt. This occurs when software + tries to write to a full fifo. The current operation does + not stop. */ + __IOM uint32_t NAK : 1; /*!< [4..4] I2C NAK interrupt. Asserted when an unexpected NAK has + been received on the I2C bus. */ + __IOM uint32_t IACC : 1; /*!< [5..5] illegal FIFO access interrupt. Asserted when there is + a overflow or underflow event */ + __IOM uint32_t ICMD : 1; /*!< [6..6] illegal command interrupt. Asserted when a command is + written when an active command is in progress. */ + __IOM uint32_t START : 1; /*!< [7..7] START command interrupt. Asserted when another master + on the bus has signaled a START command. */ + __IOM uint32_t STOP : 1; /*!< [8..8] STOP command interrupt. Asserted when another master + on the bus has signaled a STOP command. */ + __IOM uint32_t ARB : 1; /*!< [9..9] Arbitration loss interrupt. Asserted when arbitration + is enabled and has been lost to another master on the bus. */ + __IOM uint32_t DCMP : 1; /*!< [10..10] DMA Complete. Processing of the DMA operation has completed + and the DMA submodule is returned into the idle state */ + __IOM uint32_t DERR : 1; /*!< [11..11] DMA Error encountered during the processing of the + DMA command. The DMA error could occur when the memory + access specified in the DMA operation is not available + or incorrectly specified. */ + __IOM uint32_t CQPAUSED : 1; /*!< [12..12] Command queue is paused due to an active event enabled + in the PAUSEEN register. The interrupt is posted when the + event is enabled within the PAUSEEN register, the mask + is active in the CQIRQMASK field and the event occurs. */ + __IOM uint32_t CQUPD : 1; /*!< [13..13] CQ write operation performed a register write with + the register address bit 0 set to 1. The low address bits + in the CQ address fields are unused and bit 0 can be used + to trigger an interrupt to indicate when this register + write is performed by the CQ operation. */ + __IOM uint32_t CQERR : 1; /*!< [14..14] Error during command queue operations */ + } INTSET_b; + } ; + + union { + __IOM uint32_t CLKCFG; /*!< (@ 0x00000210) I/O Clock Configuration */ + + struct { + __IOM uint32_t IOCLKEN : 1; /*!< [0..0] Enable for the interface clock. Must be enabled prior + to executing any IO operations. */ + __IM uint32_t : 7; + __IOM uint32_t FSEL : 3; /*!< [10..8] Select the input clock frequency. */ + __IOM uint32_t DIV3 : 1; /*!< [11..11] Enable divide by 3 of the source IOCLK. Division by + 3 is done before the DIVEN programmable divider, and if + enabledwill provide the divided by 3 clock as the source + to the programmable divider. */ + __IOM uint32_t DIVEN : 1; /*!< [12..12] Enable clock division by TOTPER and LOWPER */ + __IM uint32_t : 3; + __IOM uint32_t LOWPER : 8; /*!< [23..16] Clock low clock count minus 1. This provides the number + of clocks the divided clock will be low when the DIVEN + = 1.Only applicable when DIVEN = 1. */ + __IOM uint32_t TOTPER : 8; /*!< [31..24] Clock total clock count minus 1. This provides the + total period of the divided clock -1 when the DIVEN is + active. Thesource clock is selected by FSEL. Only applicable + when DIVEN = 1. */ + } CLKCFG_b; + } ; + + union { + __IOM uint32_t SUBMODCTRL; /*!< (@ 0x00000214) Submodule control */ + + struct { + __IOM uint32_t SMOD0EN : 1; /*!< [0..0] Submodule 0 enable (1) or disable (0) */ + __IOM uint32_t SMOD0TYPE : 3; /*!< [3..1] Submodule 0 module type. This is the SPI Master interface. */ + __IOM uint32_t SMOD1EN : 1; /*!< [4..4] Submodule 1 enable (1) or disable (0) */ + __IOM uint32_t SMOD1TYPE : 3; /*!< [7..5] Submodule 0 module type. This is the I2C Master interface */ + } SUBMODCTRL_b; + } ; + + union { + __IOM uint32_t CMD; /*!< (@ 0x00000218) Command and offset Register */ + + struct { + __IOM uint32_t CMD : 5; /*!< [4..0] Command for submodule. */ + __IOM uint32_t OFFSETCNT : 2; /*!< [6..5] Number of offset bytes to use for the command - 0, 1, + 2, 3 are valid selections. The second (byte 1) and third + byte (byte 2) are read from the OFFSETHI register, and + the low order byte is pulled from this register in the + OFFSETLO field.Offset bytes are transmitted highest byte + first. EG if offsetcnt == 3, OFFSETHI[15:8] will be transmitted + first, then OFFSETHI[7:0] then OFFSETLO.If offsetcnt == + 2, OFFSETHI[7:0] will be transmitted, then OFFSETLO.If + offsetcnt == 1, only OFFSETLO will be transmitted. */ + __IOM uint32_t CONT : 1; /*!< [7..7] Contine to hold the bus after the current transaction + if set to a 1 with a new command issued. */ + __IOM uint32_t TSIZE : 12; /*!< [19..8] Defines the transaction size in bytes. The offset transfer + is not included in this size. */ + __IOM uint32_t CMDSEL : 2; /*!< [21..20] Command Specific selection information. Not used in + Master I2C. Used as CEn select for Master SPI transactions */ + __IM uint32_t : 2; + __IOM uint32_t OFFSETLO : 8; /*!< [31..24] This register holds the low order byte of offset to + be used in the transaction. The number of offset bytes + to use is set with bits 1:0 of the command. */ + } CMD_b; + } ; + + union { + __IOM uint32_t DCX; /*!< (@ 0x0000021C) DCX Control Register */ + + struct { + __IOM uint32_t CE0OUT : 1; /*!< [0..0] Enable DCX output using CE0 output */ + __IOM uint32_t CE1OUT : 1; /*!< [1..1] Enable DCX output using CE1 output */ + __IOM uint32_t CE2OUT : 1; /*!< [2..2] Enable DCX output using CE2 output */ + __IOM uint32_t CE3OUT : 1; /*!< [3..3] Enable DCX output using CE3 output */ + __IOM uint32_t DCXEN : 1; /*!< [4..4] DCX Signaling Enable The selected DCX signal (unused + CE pin) will be driven low during write of offset byte, + and high during transmission of data bytes. */ + } DCX_b; + } ; + + union { + __IOM uint32_t OFFSETHI; /*!< (@ 0x00000220) High order 2 bytes of 3 byte offset for IO transaction */ + + struct { + __IOM uint32_t OFFSETHI : 16; /*!< [15..0] Holds the high order 2 bytes of the 3 byte addressing/offset + field to use with IO commands. The number of offset bytes + to use is specified in the command register */ + } OFFSETHI_b; + } ; + + union { + __IOM uint32_t CMDSTAT; /*!< (@ 0x00000224) Command status */ + + struct { + __IOM uint32_t CCMD : 5; /*!< [4..0] current command that is being executed */ + __IOM uint32_t CMDSTAT : 3; /*!< [7..5] The current status of the command execution. */ + __IOM uint32_t CTSIZE : 12; /*!< [19..8] The current number of bytes still to be transferred + with this command. This field will count down to zero. */ + } CMDSTAT_b; + } ; + __IM uint32_t RESERVED2[6]; + + union { + __IOM uint32_t DMATRIGEN; /*!< (@ 0x00000240) DMA Trigger Enable Register */ + + struct { + __IOM uint32_t DCMDCMPEN : 1; /*!< [0..0] Trigger DMA upon command complete. Enables the trigger + of the DMA when a command is completed. When this event + is triggered, the number of words transferred will be the + lesser of the remaining TOTCOUNT bytes, or */ + __IOM uint32_t DTHREN : 1; /*!< [1..1] Trigger DMA upon THR level reached. For M2P DMA operations + (IOM writes), the trigger will assert when the write FIFO + has (WTHR/4) number of words free in the write FIFO, and + will transfer (WTHR/4) number of wordsor, if the number + of words left to transfer is less than the WTHR value, + will transfer the remaining byte count.For P2M DMA operations, + the trigger will assert when the read FIFO has (RTHR/4) + words available in the read FIFO, and will transfer (RTHR/4) + words to SRAM. This trigger will NOT asser */ + } DMATRIGEN_b; + } ; + + union { + __IOM uint32_t DMATRIGSTAT; /*!< (@ 0x00000244) DMA Trigger Status Register */ + + struct { + __IOM uint32_t DCMDCMP : 1; /*!< [0..0] Triggered DMA from Command complete event. Bit is read + only and can be cleared by disabling the DCMDCMP trigger + enable or by disabling DMA. */ + __IOM uint32_t DTHR : 1; /*!< [1..1] Triggered DMA from THR event. Bit is read only and can + be cleared by disabling the DTHR trigger enable or by disabling + DMA. */ + __IOM uint32_t DTOTCMP : 1; /*!< [2..2] DMA triggered when DCMDCMP = 0, and the amount of data + in the FIFO was enough to complete the DMA operation (greater + than or equal to current TOTCOUNT) when the command completed. + This trigger is default active when the DCMDCMP trigger + isdisabled and there is enough data in the FIFO to complete + the DMA operation. */ + } DMATRIGSTAT_b; + } ; + __IM uint32_t RESERVED3[14]; + + union { + __IOM uint32_t DMACFG; /*!< (@ 0x00000280) DMA Configuration Register */ + + struct { + __IOM uint32_t DMAEN : 1; /*!< [0..0] DMA Enable. Setting this bit to EN will start the DMA + operation. This should be the last DMA related register + set prior to issuing the command */ + __IOM uint32_t DMADIR : 1; /*!< [1..1] Direction */ + __IM uint32_t : 6; + __IOM uint32_t DMAPRI : 1; /*!< [8..8] Sets the Priority of the DMA request */ + __IOM uint32_t DPWROFF : 1; /*!< [9..9] Power off module after DMA is complete. If this bit is + active, the module will request to power off the supply + it is attached to. If there are other units still requiring + power from the same domain, power down will not be performed. */ + } DMACFG_b; + } ; + __IM uint32_t RESERVED4; + + union { + __IOM uint32_t DMATOTCOUNT; /*!< (@ 0x00000288) DMA Total Transfer Count */ + + struct { + __IOM uint32_t TOTCOUNT : 12; /*!< [11..0] Triggered DMA from Command complete event occured. Bit + is read only and can be cleared by disabling the DTHR trigger + enable or by disabling DMA. */ + } DMATOTCOUNT_b; + } ; + + union { + __IOM uint32_t DMATARGADDR; /*!< (@ 0x0000028C) DMA Target Address Register */ + + struct { + __IOM uint32_t TARGADDR : 21; /*!< [20..0] Bits [19:0] of the target byte address for source of + DMA (either read or write). The address can be any byte + alignment, and does not have to be word aligned. In cases + of non-word aligned addresses, the DMA logic will take + care for ensuring only the target bytes are read/written. */ + __IM uint32_t : 7; + __IOM uint32_t TARGADDR28 : 1; /*!< [28..28] Bit 28 of the target byte address for source of DMA + (either read or write). In cases of non-word aligned addresses, + the DMA logic will take care for ensuring only the target + bytes are read/written.Setting to '1' will select the SRAM. + Setting to '0' will select the flash */ + } DMATARGADDR_b; + } ; + + union { + __IOM uint32_t DMASTAT; /*!< (@ 0x00000290) DMA Status Register */ + + struct { + __IOM uint32_t DMATIP : 1; /*!< [0..0] DMA Transfer In Progress indicator. 1 will indicate that + a DMA transfer is active. The DMA transfer may be waiting + on data, transferring data, or waiting for priority.All + of these will be indicated with a 1. A 0 will indicate + that the DMA is fully complete and no further transactions + will be done. This bit is read only. */ + __IOM uint32_t DMACPL : 1; /*!< [1..1] DMA Transfer Complete. This signals the end of the DMA + operation. This bit can be cleared by writing to 0, and + will also be cleared when a new DMA is started. */ + __IOM uint32_t DMAERR : 1; /*!< [2..2] DMA Error. This active high bit signals an error was + encountered during the DMA operation. The bit can be cleared + by writing to 0. Once set, this bit will remain set until + cleared by software. */ + } DMASTAT_b; + } ; + + union { + __IOM uint32_t CQCFG; /*!< (@ 0x00000294) Command Queue Configuration Register */ + + struct { + __IOM uint32_t CQEN : 1; /*!< [0..0] Command queue enable. When set, will enable the processing + of the command queue and fetches of address/data pairs + will proceed from the word address within the CQADDR register. + Can be disabled using a CQ executed write to this bit as + well. */ + __IOM uint32_t CQPRI : 1; /*!< [1..1] Sets the Priority of the command queue dma request */ + __IOM uint32_t MSPIFLGSEL : 2; /*!< [3..2] Selects the MPSI modules used for sourcing the CQFLAG + [11:8]. */ + } CQCFG_b; + } ; + + union { + __IOM uint32_t CQADDR; /*!< (@ 0x00000298) CQ Target Read Address Register */ + + struct { + __IM uint32_t : 2; + __IOM uint32_t CQADDR : 19; /*!< [20..2] Bits 19:2 of target byte address for source of CQ. The + buffer must be aligned on a word boundary */ + __IM uint32_t : 7; + __IOM uint32_t CQADDR28 : 1; /*!< [28..28] Bit 28 of target byte address for source of CQ. Used + to denote Flash (0) or SRAM (1) access */ + } CQADDR_b; + } ; + + union { + __IOM uint32_t CQSTAT; /*!< (@ 0x0000029C) Command Queue Status Register */ + + struct { + __IOM uint32_t CQTIP : 1; /*!< [0..0] Command queue Transfer In Progress indicator. 1 will + indicate that a CQ transfer is active and this will remain + active even when paused waiting for external event. */ + __IOM uint32_t CQPAUSED : 1; /*!< [1..1] Command queue operation is currently paused. */ + __IOM uint32_t CQERR : 1; /*!< [2..2] Command queue processing Error. This active high bit + signals that an error was encountered during the CQ operation. */ + } CQSTAT_b; + } ; + + union { + __IOM uint32_t CQFLAGS; /*!< (@ 0x000002A0) Command Queue Flag Register */ + + struct { + __IOM uint32_t CQFLAGS : 16; /*!< [15..0] Current flag status (read-only). Bits [7:0] are software + controllable and bits [15:8] are hardware status. */ + __IOM uint32_t CQIRQMASK : 16; /*!< [31..16] Mask the bits used to generate the command queue interrupt. + A '1' in the bit position will enable the pause event to + trigger the interrupt, if the CQWT_int interrupt is enabled. + Bits definitions are the same as CQPAUSE */ + } CQFLAGS_b; + } ; + + union { + __IOM uint32_t CQSETCLEAR; /*!< (@ 0x000002A4) Command Queue Flag Set/Clear Register */ + + struct { + __IOM uint32_t CQFSET : 8; /*!< [7..0] Set CQFlag status bits. Will set to 1 the value of any + SWFLAG with a '1' in the corresponding bit position of + this field */ + __IOM uint32_t CQFTGL : 8; /*!< [15..8] Toggle the indicated bit. Will toggle the value of any + SWFLAG with a '1' in the corresponding bit position of + this field */ + __IOM uint32_t CQFCLR : 8; /*!< [23..16] Clear CQFlag status bits. Will clear to 0 any SWFLAG + with a '1' in the corresponding bit position of this field */ + } CQSETCLEAR_b; + } ; + + union { + __IOM uint32_t CQPAUSEEN; /*!< (@ 0x000002A8) Command Queue Pause Enable Register */ + + struct { + __IOM uint32_t CQPEN : 16; /*!< [15..0] Enables the specified event to pause command processing + when active */ + } CQPAUSEEN_b; + } ; + + union { + __IOM uint32_t CQCURIDX; /*!< (@ 0x000002AC) IOM Command Queue current index value . Compared + to the CQENDIDX reg contents to generate + the IDXEQ Pause event for command queue */ + + struct { + __IOM uint32_t CQCURIDX : 8; /*!< [7..0] Holds 8 bits of data that will be compared with the CQENDIX + register field. If the values match, the IDXEQ pause event + will be activated, which will cause the pausing of command + quue operation if the IDXEQ bit is enabled in CQPAUSEEN. */ + } CQCURIDX_b; + } ; + + union { + __IOM uint32_t CQENDIDX; /*!< (@ 0x000002B0) IOM Command Queue current index value . Compared + to the CQCURIDX reg contents to generate + the IDXEQ Pause event for command queue */ + + struct { + __IOM uint32_t CQENDIDX : 8; /*!< [7..0] Holds 8 bits of data that will be compared with the CQCURIX + register field. If the values match, the IDXEQ pause event + will be activated, which will cause the pausing of command + quue operation if the IDXEQ bit is enabled in CQPAUSEEN. */ + } CQENDIDX_b; + } ; + + union { + __IOM uint32_t STATUS; /*!< (@ 0x000002B4) IOM Module Status Register */ + + struct { + __IOM uint32_t ERR : 1; /*!< [0..0] Bit has been deprecated. Please refer to the other error + indicators. This will always return 0. */ + __IOM uint32_t CMDACT : 1; /*!< [1..1] Indicates if the active I/O Command is currently processing + a transaction, or command is complete, but the FIFO pointers + are still syncronizing internally. This bit will go high + atthe start of the transaction, and will go low when the + command is complete, and the data and pointers within the + FIFO have been syncronized. */ + __IOM uint32_t IDLEST : 1; /*!< [2..2] indicates if the active I/O state machine is IDLE. Note + - The state machine could be in idle state due to holdoffs + from data availability, or as the command gets propagated + into the logic from the registers. */ + } STATUS_b; + } ; + __IM uint32_t RESERVED5[18]; + + union { + __IOM uint32_t MSPICFG; /*!< (@ 0x00000300) SPI module master configuration */ + + struct { + __IOM uint32_t SPOL : 1; /*!< [0..0] selects SPI polarity. */ + __IOM uint32_t SPHA : 1; /*!< [1..1] selects SPI phase. */ + __IOM uint32_t FULLDUP : 1; /*!< [2..2] Enables full duplex mode for Master SPI write operations. + Data will be captured simultaneously into the read fifo */ + __IM uint32_t : 13; + __IOM uint32_t WTFC : 1; /*!< [16..16] enables write mode flow control. */ + __IOM uint32_t RDFC : 1; /*!< [17..17] enables read mode flow control. */ + __IOM uint32_t MOSIINV : 1; /*!< [18..18] inverts MOSI when flow control is enabled. */ + __IM uint32_t : 1; + __IOM uint32_t WTFCIRQ : 1; /*!< [20..20] selects the write mode flow control signal. */ + __IOM uint32_t WTFCPOL : 1; /*!< [21..21] selects the write flow control signal polarity. The + transfers are halted when the selected flow control signal + is OPPOSITE polarity of bit. (For example: WTFCPOL = 0 + will allow a IRQ=1 to pause transfers). */ + __IOM uint32_t RDFCPOL : 1; /*!< [22..22] selects the read flow control signal polarity. */ + __IOM uint32_t SPILSB : 1; /*!< [23..23] Selects data transfer as MSB first (0) or LSB first + (1) for the data portion of the SPI transaction. The offset + bytes are always transmitted MSB first. */ + __IOM uint32_t DINDLY : 3; /*!< [26..24] Delay tap to use for the input signal (MISO). This + gives more hold time on the input data. */ + __IOM uint32_t DOUTDLY : 3; /*!< [29..27] Delay tap to use for the output signal (MOSI). This + give more hold time on the output data */ + __IOM uint32_t MSPIRST : 1; /*!< [30..30] Not used. To reset the module, toggle the SMOD_EN for + the module */ + } MSPICFG_b; + } ; + __IM uint32_t RESERVED6[63]; + + union { + __IOM uint32_t MI2CCFG; /*!< (@ 0x00000400) I2C Master configuration */ + + struct { + __IOM uint32_t ADDRSZ : 1; /*!< [0..0] Sets the I2C master device address size to either 7b + (0) or 10b (1). */ + __IOM uint32_t I2CLSB : 1; /*!< [1..1] Direction of data transmit and receive, MSB(0) or LSB(1) + first. Default per I2C specification is MSB first. This + applies to both read and write data, and read data will + be bit */ + __IOM uint32_t ARBEN : 1; /*!< [2..2] Enables multi-master arbitration for the I2C master. + If the bus is known to have only a single master, this + function can be disabled to save clock cycles on I2C transactions */ + __IM uint32_t : 1; + __IOM uint32_t SDADLY : 2; /*!< [5..4] Delay to enable on the SDA output. Values are 0x0-0x3. */ + __IOM uint32_t MI2CRST : 1; /*!< [6..6] Not used. To reset the module, toggle the SMOD_EN for + the module */ + __IM uint32_t : 1; + __IOM uint32_t SCLENDLY : 4; /*!< [11..8] Number of IOCLK cycles to delay the rising edge of the + SCL output en (clock will go low on this edge). Used to + allow clock shaping. */ + __IOM uint32_t SDAENDLY : 4; /*!< [15..12] Number of IOCLK cycles to delay the SDA output en (all + transitions affected). Used to delay data relative to clock */ + __IOM uint32_t SMPCNT : 8; /*!< [23..16] Number of Base clk cycles to wait before sampling the + SCL clock to determine if a clock stretch event has occured */ + __IOM uint32_t STRDIS : 1; /*!< [24..24] Disable detection of clock stretch events smaller than + 1 cycle */ + } MI2CCFG_b; + } ; + + union { + __IOM uint32_t DEVCFG; /*!< (@ 0x00000404) I2C Device Configuration register */ + + struct { + __IOM uint32_t DEVADDR : 10; /*!< [9..0] I2C address of the device that the Master will use to + target for read/write operations. This can be either a + 7b or 10b address. */ + } DEVCFG_b; + } ; + __IM uint32_t RESERVED7[2]; + + union { + __IOM uint32_t IOMDBG; /*!< (@ 0x00000410) IOM Debug Register */ + + struct { + __IOM uint32_t DBGEN : 1; /*!< [0..0] Debug Enable. Setting bit will enable the update of data + within this register, otherwise it is clock gated for power + savings */ + __IOM uint32_t IOCLKON : 1; /*!< [1..1] IOCLK debug clock control. Enable IO_CLK to be active + when this bit is '1'. Otherwise, the clock is controlled + with gating from the logic as needed. */ + __IOM uint32_t APBCLKON : 1; /*!< [2..2] APBCLK debug clock control. Enable APB_CLK to be active + when this bit is '1'. Otherwise, the clock is controlled + with gating from the logic as needed. */ + __IOM uint32_t DBGDATA : 29; /*!< [31..3] Debug control for various options. DBGDATA[1:0] is used + to select between different debug data available in the + DBG0 and DBG1 registers. */ + } IOMDBG_b; + } ; +} IOM0_Type; /*!< Size = 1044 (0x414) */ + + + +/* =========================================================================================================================== */ +/* ================ IOSLAVE ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief I2C/SPI Slave (IOSLAVE) + */ + +typedef struct { /*!< (@ 0x50000000) IOSLAVE Structure */ + __IM uint32_t RESERVED[64]; + + union { + __IOM uint32_t FIFOPTR; /*!< (@ 0x00000100) Current FIFO Pointer */ + + struct { + __IOM uint32_t FIFOPTR : 8; /*!< [7..0] Current FIFO pointer. */ + __IOM uint32_t FIFOSIZ : 8; /*!< [15..8] The number of bytes currently in the hardware FIFO. */ + } FIFOPTR_b; + } ; + + union { + __IOM uint32_t FIFOCFG; /*!< (@ 0x00000104) FIFO Configuration */ + + struct { + __IOM uint32_t FIFOBASE : 5; /*!< [4..0] These bits hold the base address of the I/O FIFO in 8 + byte segments. The IO Slave FIFO is situated in LRAM at + (FIFOBASE*8) to (FIFOMAX*8-1). */ + __IM uint32_t : 3; + __IOM uint32_t FIFOMAX : 6; /*!< [13..8] These bits hold the maximum FIFO address in 8 byte segments. + It is also the beginning of the RAM area of the LRAM. Note + that no RAM area is configured if FIFOMAX is set to 0x1F. */ + __IM uint32_t : 10; + __IOM uint32_t ROBASE : 6; /*!< [29..24] Defines the read-only area. The IO Slave read-only + area is situated in LRAM at (ROBASE*8) to (FIFOBASE*8-1) */ + } FIFOCFG_b; + } ; + + union { + __IOM uint32_t FIFOTHR; /*!< (@ 0x00000108) FIFO Threshold Configuration */ + + struct { + __IOM uint32_t FIFOTHR : 8; /*!< [7..0] FIFO size interrupt threshold. */ + } FIFOTHR_b; + } ; + + union { + __IOM uint32_t FUPD; /*!< (@ 0x0000010C) FIFO Update Status */ + + struct { + __IOM uint32_t FIFOUPD : 1; /*!< [0..0] This bit indicates that a FIFO update is underway. */ + __IOM uint32_t IOREAD : 1; /*!< [1..1] This bitfield indicates an IO read is active. */ + } FUPD_b; + } ; + + union { + __IOM uint32_t FIFOCTR; /*!< (@ 0x00000110) Overall FIFO Counter */ + + struct { + __IOM uint32_t FIFOCTR : 10; /*!< [9..0] Virtual FIFO byte count */ + } FIFOCTR_b; + } ; + + union { + __IOM uint32_t FIFOINC; /*!< (@ 0x00000114) Overall FIFO Counter Increment */ + + struct { + __IOM uint32_t FIFOINC : 10; /*!< [9..0] Increment the Overall FIFO Counter by this value on a + write */ + } FIFOINC_b; + } ; + + union { + __IOM uint32_t CFG; /*!< (@ 0x00000118) I/O Slave Configuration */ + + struct { + __IOM uint32_t IFCSEL : 1; /*!< [0..0] This bit selects the I/O interface. */ + __IOM uint32_t SPOL : 1; /*!< [1..1] This bit selects SPI polarity. */ + __IOM uint32_t LSB : 1; /*!< [2..2] This bit selects the transfer bit ordering. */ + __IM uint32_t : 1; + __IOM uint32_t STARTRD : 1; /*!< [4..4] This bit holds the cycle to initiate an I/O RAM read. */ + __IM uint32_t : 3; + __IOM uint32_t I2CADDR : 12; /*!< [19..8] 7-bit or 10-bit I2C device address. */ + __IM uint32_t : 11; + __IOM uint32_t IFCEN : 1; /*!< [31..31] IOSLAVE interface enable. */ + } CFG_b; + } ; + + union { + __IOM uint32_t PRENC; /*!< (@ 0x0000011C) I/O Slave Interrupt Priority Encode */ + + struct { + __IOM uint32_t PRENC : 5; /*!< [4..0] These bits hold the priority encode of the REGACC interrupts. */ + } PRENC_b; + } ; + + union { + __IOM uint32_t IOINTCTL; /*!< (@ 0x00000120) I/O Interrupt Control */ + + struct { + __IOM uint32_t IOINTEN : 8; /*!< [7..0] These read-only bits indicate whether the IOINT interrupts + are enabled. */ + __IOM uint32_t IOINT : 8; /*!< [15..8] These bits read the IOINT interrupts. */ + __IOM uint32_t IOINTCLR : 1; /*!< [16..16] This bit clears all of the IOINT interrupts when written + with a 1. */ + __IM uint32_t : 7; + __IOM uint32_t IOINTSET : 8; /*!< [31..24] These bits set the IOINT interrupts when written with + a 1. */ + } IOINTCTL_b; + } ; + + union { + __IOM uint32_t GENADD; /*!< (@ 0x00000124) General Address Data */ + + struct { + __IOM uint32_t GADATA : 8; /*!< [7..0] The data supplied on the last General Address reference. */ + } GENADD_b; + } ; + __IM uint32_t RESERVED1[54]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) IO Slave Interrupts: Enable */ + + struct { + __IOM uint32_t FSIZE : 1; /*!< [0..0] FIFO Size interrupt. */ + __IOM uint32_t FOVFL : 1; /*!< [1..1] FIFO Overflow interrupt. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] FIFO Underflow interrupt. */ + __IOM uint32_t FRDERR : 1; /*!< [3..3] FIFO Read Error interrupt. */ + __IOM uint32_t GENAD : 1; /*!< [4..4] I2C General Address interrupt. */ + __IOM uint32_t IOINTW : 1; /*!< [5..5] IO Write interrupt. */ + __IOM uint32_t XCMPRF : 1; /*!< [6..6] Transfer complete interrupt, read from FIFO space. */ + __IOM uint32_t XCMPRR : 1; /*!< [7..7] Transfer complete interrupt, read from register space. */ + __IOM uint32_t XCMPWF : 1; /*!< [8..8] Transfer complete interrupt, write to FIFO space. */ + __IOM uint32_t XCMPWR : 1; /*!< [9..9] Transfer complete interrupt, write to register space. */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) IO Slave Interrupts: Status */ + + struct { + __IOM uint32_t FSIZE : 1; /*!< [0..0] FIFO Size interrupt. */ + __IOM uint32_t FOVFL : 1; /*!< [1..1] FIFO Overflow interrupt. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] FIFO Underflow interrupt. */ + __IOM uint32_t FRDERR : 1; /*!< [3..3] FIFO Read Error interrupt. */ + __IOM uint32_t GENAD : 1; /*!< [4..4] I2C General Address interrupt. */ + __IOM uint32_t IOINTW : 1; /*!< [5..5] IO Write interrupt. */ + __IOM uint32_t XCMPRF : 1; /*!< [6..6] Transfer complete interrupt, read from FIFO space. */ + __IOM uint32_t XCMPRR : 1; /*!< [7..7] Transfer complete interrupt, read from register space. */ + __IOM uint32_t XCMPWF : 1; /*!< [8..8] Transfer complete interrupt, write to FIFO space. */ + __IOM uint32_t XCMPWR : 1; /*!< [9..9] Transfer complete interrupt, write to register space. */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) IO Slave Interrupts: Clear */ + + struct { + __IOM uint32_t FSIZE : 1; /*!< [0..0] FIFO Size interrupt. */ + __IOM uint32_t FOVFL : 1; /*!< [1..1] FIFO Overflow interrupt. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] FIFO Underflow interrupt. */ + __IOM uint32_t FRDERR : 1; /*!< [3..3] FIFO Read Error interrupt. */ + __IOM uint32_t GENAD : 1; /*!< [4..4] I2C General Address interrupt. */ + __IOM uint32_t IOINTW : 1; /*!< [5..5] IO Write interrupt. */ + __IOM uint32_t XCMPRF : 1; /*!< [6..6] Transfer complete interrupt, read from FIFO space. */ + __IOM uint32_t XCMPRR : 1; /*!< [7..7] Transfer complete interrupt, read from register space. */ + __IOM uint32_t XCMPWF : 1; /*!< [8..8] Transfer complete interrupt, write to FIFO space. */ + __IOM uint32_t XCMPWR : 1; /*!< [9..9] Transfer complete interrupt, write to register space. */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) IO Slave Interrupts: Set */ + + struct { + __IOM uint32_t FSIZE : 1; /*!< [0..0] FIFO Size interrupt. */ + __IOM uint32_t FOVFL : 1; /*!< [1..1] FIFO Overflow interrupt. */ + __IOM uint32_t FUNDFL : 1; /*!< [2..2] FIFO Underflow interrupt. */ + __IOM uint32_t FRDERR : 1; /*!< [3..3] FIFO Read Error interrupt. */ + __IOM uint32_t GENAD : 1; /*!< [4..4] I2C General Address interrupt. */ + __IOM uint32_t IOINTW : 1; /*!< [5..5] IO Write interrupt. */ + __IOM uint32_t XCMPRF : 1; /*!< [6..6] Transfer complete interrupt, read from FIFO space. */ + __IOM uint32_t XCMPRR : 1; /*!< [7..7] Transfer complete interrupt, read from register space. */ + __IOM uint32_t XCMPWF : 1; /*!< [8..8] Transfer complete interrupt, write to FIFO space. */ + __IOM uint32_t XCMPWR : 1; /*!< [9..9] Transfer complete interrupt, write to register space. */ + } INTSET_b; + } ; + + union { + __IOM uint32_t REGACCINTEN; /*!< (@ 0x00000210) Register Access Interrupts: Enable */ + + struct { + __IOM uint32_t REGACC : 32; /*!< [31..0] Register access interrupts. */ + } REGACCINTEN_b; + } ; + + union { + __IOM uint32_t REGACCINTSTAT; /*!< (@ 0x00000214) Register Access Interrupts: Status */ + + struct { + __IOM uint32_t REGACC : 32; /*!< [31..0] Register access interrupts. */ + } REGACCINTSTAT_b; + } ; + + union { + __IOM uint32_t REGACCINTCLR; /*!< (@ 0x00000218) Register Access Interrupts: Clear */ + + struct { + __IOM uint32_t REGACC : 32; /*!< [31..0] Register access interrupts. */ + } REGACCINTCLR_b; + } ; + + union { + __IOM uint32_t REGACCINTSET; /*!< (@ 0x0000021C) Register Access Interrupts: Set */ + + struct { + __IOM uint32_t REGACC : 32; /*!< [31..0] Register access interrupts. */ + } REGACCINTSET_b; + } ; +} IOSLAVE_Type; /*!< Size = 544 (0x220) */ + + + +/* =========================================================================================================================== */ +/* ================ MCUCTRL ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief MCU Miscellaneous Control Logic (MCUCTRL) + */ + +typedef struct { /*!< (@ 0x40020000) MCUCTRL Structure */ + + union { + __IOM uint32_t CHIPPN; /*!< (@ 0x00000000) Chip Information Register */ + + struct { + __IOM uint32_t PARTNUM : 32; /*!< [31..0] BCD part number. */ + } CHIPPN_b; + } ; + + union { + __IOM uint32_t CHIPID0; /*!< (@ 0x00000004) Unique Chip ID 0 */ + + struct { + __IOM uint32_t CHIPID0 : 32; /*!< [31..0] Unique chip ID 0. */ + } CHIPID0_b; + } ; + + union { + __IOM uint32_t CHIPID1; /*!< (@ 0x00000008) Unique Chip ID 1 */ + + struct { + __IOM uint32_t CHIPID1 : 32; /*!< [31..0] Unique chip ID 1. */ + } CHIPID1_b; + } ; + + union { + __IOM uint32_t CHIPREV; /*!< (@ 0x0000000C) Chip Revision */ + + struct { + __IOM uint32_t REVMIN : 4; /*!< [3..0] Minor Revision ID. */ + __IOM uint32_t REVMAJ : 4; /*!< [7..4] Major Revision ID. */ + __IOM uint32_t SIPART : 12; /*!< [19..8] Silicon Part ID */ + } CHIPREV_b; + } ; + + union { + __IOM uint32_t VENDORID; /*!< (@ 0x00000010) Unique Vendor ID */ + + struct { + __IOM uint32_t VENDORID : 32; /*!< [31..0] Unique Vendor ID */ + } VENDORID_b; + } ; + + union { + __IOM uint32_t SKU; /*!< (@ 0x00000014) Unique Chip SKU */ + + struct { + __IOM uint32_t ALLOWBURST : 1; /*!< [0..0] Allow Burst feature */ + __IOM uint32_t ALLOWBLE : 1; /*!< [1..1] Allow BLE feature */ + __IOM uint32_t SECBOOT : 1; /*!< [2..2] Secure boot feature allowed */ + } SKU_b; + } ; + + union { + __IOM uint32_t FEATUREENABLE; /*!< (@ 0x00000018) Feature Enable on Burst and BLE */ + + struct { + __IOM uint32_t BLEREQ : 1; /*!< [0..0] Controls the BLE functionality */ + __IOM uint32_t BLEACK : 1; /*!< [1..1] ACK for BLEREQ */ + __IOM uint32_t BLEAVAIL : 1; /*!< [2..2] AVAILABILITY of the BLE functionality */ + __IM uint32_t : 1; + __IOM uint32_t BURSTREQ : 1; /*!< [4..4] Controls the Burst functionality */ + __IOM uint32_t BURSTACK : 1; /*!< [5..5] ACK for BURSTREQ */ + __IOM uint32_t BURSTAVAIL : 1; /*!< [6..6] Availability of Burst functionality */ + } FEATUREENABLE_b; + } ; + __IM uint32_t RESERVED; + + union { + __IOM uint32_t DEBUGGER; /*!< (@ 0x00000020) Debugger Control */ + + struct { + __IOM uint32_t LOCKOUT : 1; /*!< [0..0] Lockout of debugger (SWD). */ + } DEBUGGER_b; + } ; + __IM uint32_t RESERVED1[5]; + + union { + __IOM uint32_t DMASRAMWRITEPROTECT2; /*!< (@ 0x00000038) SRAM write-protection bits. */ + + struct { + __IOM uint32_t DMA_WPROT2 : 32; /*!< [31..0] Write protect SRAM from DMA. Each bit provides write + protection for an 8KB region of memory. When set to 1, + the region will be protected from DMA writes, when set + to 0, DMA may write the region. */ + } DMASRAMWRITEPROTECT2_b; + } ; + __IM uint32_t RESERVED2[49]; + + union { + __IOM uint32_t BODCTRL; /*!< (@ 0x00000100) BOD control Register */ + + struct { + __IOM uint32_t BODLPWD : 1; /*!< [0..0] BODL Power Down. */ + __IOM uint32_t BODHPWD : 1; /*!< [1..1] BODH Power Down. */ + __IOM uint32_t BODCPWD : 1; /*!< [2..2] BODC Power Down. */ + __IOM uint32_t BODFPWD : 1; /*!< [3..3] BODF Power Down. */ + __IOM uint32_t BODLVREFSEL : 1; /*!< [4..4] BODL External Reference Select. Note: the SWE mux select + in PWRSEQ2SWE must be set for this to take effect. */ + __IOM uint32_t BODHVREFSEL : 1; /*!< [5..5] BODH External Reference Select. Note: the SWE mux select + in PWRSEQ2SWE must be set for this to take effect. */ + } BODCTRL_b; + } ; + + union { + __IOM uint32_t ADCPWRDLY; /*!< (@ 0x00000104) ADC Power Up Delay Control */ + + struct { + __IOM uint32_t ADCPWR0 : 8; /*!< [7..0] ADC Reference Buffer Power Enable delay in 64 ADC CLK + increments for ADC_CLKSEL = 0x1, 32 ADC CLOCK increments + for ADC_CLKSEL = 0x2. */ + __IOM uint32_t ADCPWR1 : 8; /*!< [15..8] ADC Reference Keeper enable delay in 16 ADC CLK increments + for ADC_CLKSEL = 0x1, 8 ADC CLOCK increments for ADC_CLKSEL + = 0x2. */ + } ADCPWRDLY_b; + } ; + __IM uint32_t RESERVED3; + + union { + __IOM uint32_t ADCCAL; /*!< (@ 0x0000010C) ADC Calibration Control */ + + struct { + __IOM uint32_t CALONPWRUP : 1; /*!< [0..0] Run ADC Calibration on initial power up sequence */ + __IOM uint32_t ADCCALIBRATED : 1; /*!< [1..1] Status for ADC Calibration */ + } ADCCAL_b; + } ; + + union { + __IOM uint32_t ADCBATTLOAD; /*!< (@ 0x00000110) ADC Battery Load Enable */ + + struct { + __IOM uint32_t BATTLOAD : 1; /*!< [0..0] Enable the ADC battery load resistor */ + } ADCBATTLOAD_b; + } ; + __IM uint32_t RESERVED4; + + union { + __IOM uint32_t ADCTRIM; /*!< (@ 0x00000118) ADC Trims */ + + struct { + __IOM uint32_t ADCREFKEEPIBTRIM : 2; /*!< [1..0] ADC Reference Ibias trim */ + __IM uint32_t : 4; + __IOM uint32_t ADCREFBUFTRIM : 5; /*!< [10..6] ADC Reference buffer trim */ + __IOM uint32_t ADCRFBUFIBTRIM : 2; /*!< [12..11] ADC reference buffer input bias trim */ + } ADCTRIM_b; + } ; + + union { + __IOM uint32_t ADCREFCOMP; /*!< (@ 0x0000011C) ADC Referece Keeper and Comparator Control */ + + struct { + __IOM uint32_t ADC_REFCOMP_OUT : 1; /*!< [0..0] Output of the ADC reference comparator */ + __IM uint32_t : 7; + __IOM uint32_t ADCREFKEEPTRIM : 5; /*!< [12..8] ADC Reference Keeper Trim */ + __IM uint32_t : 3; + __IOM uint32_t ADCRFCMPEN : 1; /*!< [16..16] ADC Reference comparator power down */ + } ADCREFCOMP_b; + } ; + + union { + __IOM uint32_t XTALCTRL; /*!< (@ 0x00000120) XTAL Oscillator Control */ + + struct { + __IOM uint32_t XTALSWE : 1; /*!< [0..0] XTAL Software Override Enable. */ + __IOM uint32_t FDBKDSBLXTAL : 1; /*!< [1..1] XTAL Oscillator Disable Feedback. */ + __IOM uint32_t BYPCMPRXTAL : 1; /*!< [2..2] XTAL Oscillator Bypass Comparator. */ + __IOM uint32_t PDNBCOREXTAL : 1; /*!< [3..3] XTAL Oscillator Power Down Core. */ + __IOM uint32_t PDNBCMPRXTAL : 1; /*!< [4..4] XTAL Oscillator Power Down Comparator. */ + __IOM uint32_t PWDBODXTAL : 1; /*!< [5..5] XTAL Power down on brown out. */ + __IOM uint32_t XTALIBUFTRIM : 2; /*!< [7..6] XTAL IBUFF trim */ + __IOM uint32_t XTALICOMPTRIM : 2; /*!< [9..8] XTAL ICOMP trim */ + } XTALCTRL_b; + } ; + + union { + __IOM uint32_t XTALGENCTRL; /*!< (@ 0x00000124) XTAL Oscillator General Control */ + + struct { + __IOM uint32_t ACWARMUP : 2; /*!< [1..0] Auto-calibration delay control */ + __IOM uint32_t XTALBIASTRIM : 6; /*!< [7..2] XTAL BIAS trim */ + __IOM uint32_t XTALKSBIASTRIM : 6; /*!< [13..8] XTAL IBIAS Kick start trim. This trim value is used + during the startup process to enable a faster lock. */ + } XTALGENCTRL_b; + } ; + __IM uint32_t RESERVED5[28]; + + union { + __IOM uint32_t MISCCTRL; /*!< (@ 0x00000198) Miscellaneous control register. */ + + struct { + __IOM uint32_t RESERVED_RW_0 : 5; /*!< [4..0] Reserved bits, always leave unchanged. The MISCCTRL register + must be modified via atomic RMW, leaving this bitfield + completely unmodified. Failure to do so will result in + unpredictable behavior. */ + __IOM uint32_t BLE_RESETN : 1; /*!< [5..5] BLE reset signal. */ + } MISCCTRL_b; + } ; + __IM uint32_t RESERVED6; + + union { + __IOM uint32_t BOOTLOADER; /*!< (@ 0x000001A0) Bootloader and secure boot functions */ + + struct { + __IOM uint32_t BOOTLOADERLOW : 1; /*!< [0..0] Determines whether the bootloader code is visible at + address 0x00000000 or not. Resets to 1, write 1 to clear. */ + __IOM uint32_t SBLOCK : 1; /*!< [1..1] Secure boot lock. Always resets to 1, write 1 to clear. + Enables system visibility to bootloader until set. */ + __IOM uint32_t PROTLOCK : 1; /*!< [2..2] Flash protection lock. Always resets to 1, write 1 to + clear. Enables writes to flash protection register set. */ + __IM uint32_t : 23; + __IOM uint32_t SECBOOTFEATURE : 2; /*!< [27..26] Indicates whether the secure boot feature is enabled. */ + __IOM uint32_t SECBOOT : 2; /*!< [29..28] Indicates whether the secure boot on cold reset is + enabled */ + __IOM uint32_t SECBOOTONRST : 2; /*!< [31..30] Indicates whether the secure boot on warm reset is + enabled */ + } BOOTLOADER_b; + } ; + + union { + __IOM uint32_t SHADOWVALID; /*!< (@ 0x000001A4) Register to indicate whether the shadow registers + have been successfully loaded from the Flash + Information Space. */ + + struct { + __IOM uint32_t VALID : 1; /*!< [0..0] Indicates whether the shadow registers contain valid + data from the Flash Information Space. */ + __IOM uint32_t BLDSLEEP : 1; /*!< [1..1] Indicates whether the bootloader should sleep or deep + sleep if no image loaded. */ + __IOM uint32_t INFO0_VALID : 1; /*!< [2..2] Indicates whether info0 contains valid data */ + } SHADOWVALID_b; + } ; + __IM uint32_t RESERVED7[2]; + + union { + __IOM uint32_t SCRATCH0; /*!< (@ 0x000001B0) Scratch register that is not reset by any reset */ + + struct { + __IOM uint32_t SCRATCH0 : 32; /*!< [31..0] Scratch register 0. */ + } SCRATCH0_b; + } ; + + union { + __IOM uint32_t SCRATCH1; /*!< (@ 0x000001B4) Scratch register that is not reset by any reset */ + + struct { + __IOM uint32_t SCRATCH1 : 32; /*!< [31..0] Scratch register 1. */ + } SCRATCH1_b; + } ; + __IM uint32_t RESERVED8[2]; + + union { + __IOM uint32_t ICODEFAULTADDR; /*!< (@ 0x000001C0) ICODE bus address which was present when a bus + fault occurred. */ + + struct { + __IOM uint32_t ICODEFAULTADDR : 32; /*!< [31..0] The ICODE bus address observed when a Bus Fault occurred. + Once an address is captured in this field, it is held until + the corresponding Fault Observed bit is cleared in the + FAULTSTATUS register. */ + } ICODEFAULTADDR_b; + } ; + + union { + __IOM uint32_t DCODEFAULTADDR; /*!< (@ 0x000001C4) DCODE bus address which was present when a bus + fault occurred. */ + + struct { + __IOM uint32_t DCODEFAULTADDR : 32; /*!< [31..0] The DCODE bus address observed when a Bus Fault occurred. + Once an address is captured in this field, it is held until + the corresponding Fault Observed bit is cleared in the + FAULTSTATUS register. */ + } DCODEFAULTADDR_b; + } ; + + union { + __IOM uint32_t SYSFAULTADDR; /*!< (@ 0x000001C8) System bus address which was present when a bus + fault occurred. */ + + struct { + __IOM uint32_t SYSFAULTADDR : 32; /*!< [31..0] SYS bus address observed when a Bus Fault occurred. + Once an address is captured in this field, it is held until + the corresponding Fault Observed bit is cleared in the + FAULTSTATUS register. */ + } SYSFAULTADDR_b; + } ; + + union { + __IOM uint32_t FAULTSTATUS; /*!< (@ 0x000001CC) Reflects the status of the bus decoders' fault + detection. Any write to this register will + clear all of the status bits within the + register. */ + + struct { + __IOM uint32_t ICODEFAULT : 1; /*!< [0..0] The ICODE Bus Decoder Fault Detected bit. When set, a + fault has been detected, and the ICODEFAULTADDR register + will contain the bus address which generated the fault. */ + __IOM uint32_t DCODEFAULT : 1; /*!< [1..1] DCODE Bus Decoder Fault Detected bit. When set, a fault + has been detected, and the DCODEFAULTADDR register will + contain the bus address which generated the fault. */ + __IOM uint32_t SYSFAULT : 1; /*!< [2..2] SYS Bus Decoder Fault Detected bit. When set, a fault + has been detected, and the SYSFAULTADDR register will contain + the bus address which generated the fault. */ + } FAULTSTATUS_b; + } ; + + union { + __IOM uint32_t FAULTCAPTUREEN; /*!< (@ 0x000001D0) Enable the fault capture registers */ + + struct { + __IOM uint32_t FAULTCAPTUREEN : 1; /*!< [0..0] Fault Capture Enable field. When set, the Fault Capture + monitors are enabled and addresses which generate a hard + fault are captured into the FAULTADDR registers. */ + } FAULTCAPTUREEN_b; + } ; + __IM uint32_t RESERVED9[11]; + + union { + __IOM uint32_t DBGR1; /*!< (@ 0x00000200) Read-only debug register 1 */ + + struct { + __IOM uint32_t ONETO8 : 32; /*!< [31..0] Read-only register for communication validation */ + } DBGR1_b; + } ; + + union { + __IOM uint32_t DBGR2; /*!< (@ 0x00000204) Read-only debug register 2 */ + + struct { + __IOM uint32_t COOLCODE : 32; /*!< [31..0] Read-only register for communication validation */ + } DBGR2_b; + } ; + __IM uint32_t RESERVED10[6]; + + union { + __IOM uint32_t PMUENABLE; /*!< (@ 0x00000220) Control bit to enable/disable the PMU */ + + struct { + __IOM uint32_t ENABLE : 1; /*!< [0..0] PMU Enable Control bit. When set, the MCU's PMU will + place the MCU into the lowest power consuming Deep Sleep + mode upon execution of a WFI instruction (dependent on + the setting of the SLEEPDEEP bit in the ARM SCR register). + When cleared, regardless of the requested sleep mode, the + PMU will not enter the lowest power Deep Sleep mode, instead + entering the Sleep mode. */ + } PMUENABLE_b; + } ; + __IM uint32_t RESERVED11[11]; + + union { + __IOM uint32_t TPIUCTRL; /*!< (@ 0x00000250) TPIU Control Register. Determines the clock enable + and frequency for the M4's TPIU interface. */ + + struct { + __IOM uint32_t ENABLE : 1; /*!< [0..0] TPIU Enable field. When set, the ARM M4 TPIU is enabled + and data can be streamed out of the MCU's SWO port using + the ARM ITM and TPIU modules. */ + __IM uint32_t : 7; + __IOM uint32_t CLKSEL : 3; /*!< [10..8] This field selects the frequency of the ARM M4 TPIU + port. */ + } TPIUCTRL_b; + } ; + __IM uint32_t RESERVED12[4]; + + union { + __IOM uint32_t OTAPOINTER; /*!< (@ 0x00000264) OTA (Over the Air) Update Pointer/Status. Reset + only by POA */ + + struct { + __IOM uint32_t OTAVALID : 1; /*!< [0..0] Indicates that an OTA update is valid */ + __IOM uint32_t OTASBLUPDATE : 1; /*!< [1..1] Indicates that the sbl_init has been updated */ + __IOM uint32_t OTAPOINTER : 30; /*!< [31..2] Flash page pointer with updated OTA image */ + } OTAPOINTER_b; + } ; + __IM uint32_t RESERVED13[6]; + + union { + __IOM uint32_t APBDMACTRL; /*!< (@ 0x00000280) DMA Control Register. Determines misc settings + for DMA operation */ + + struct { + __IOM uint32_t DMA_ENABLE : 1; /*!< [0..0] Enable the DMA controller. When disabled, DMA requests + will be ignored by the controller */ + __IOM uint32_t DECODEABORT : 1; /*!< [1..1] APB Decode Abort. When set, the APB bridge will issue + a data abort (bus fault) on transactions to peripherals + that are powered down. When set to 0, writes are quietly + discarded and reads return 0. */ + __IOM uint32_t DMAOPT : 1; /*!< [2..2] Enables DMA latency optimizations */ + __IM uint32_t : 5; + __IOM uint32_t HYSTERESIS : 8; /*!< [15..8] This field determines how long the DMA will remain active + during deep sleep before shutting down and returning the + system to full deep sleep. Values are based on a 94KHz + clock and are roughly 10us increments for a range of ~10us + to 2.55ms */ + } APBDMACTRL_b; + } ; + + union { + __IOM uint32_t SRAMMODE; /*!< (@ 0x00000284) SRAM Controller mode bits */ + + struct { + __IOM uint32_t IPREFETCH : 1; /*!< [0..0] When set, instruction accesses to the SRAM banks will + be prefetched (normally 2 cycle read access). Generally, + this mode bit should be set for improved performance when + executing instructions from SRAM. */ + __IOM uint32_t IPREFETCH_CACHE : 1; /*!< [1..1] Secondary prefetch feature that will cache prefetched + data across bus waitstates (requires IPREFETCH to be set). */ + __IM uint32_t : 2; + __IOM uint32_t DPREFETCH : 1; /*!< [4..4] When set, data bus accesses to the SRAM banks will be + prefetched (normally 2 cycle read access). Use of this + mode bit is only recommended if the work flow has a large + number of sequential accesses. */ + __IOM uint32_t DPREFETCH_CACHE : 1; /*!< [5..5] Secondary prefetch feature that will cache prefetched + data across bus waitstates (requires DPREFETCH to be set). */ + } SRAMMODE_b; + } ; + __IM uint32_t RESERVED14[48]; + + union { + __IOM uint32_t KEXTCLKSEL; /*!< (@ 0x00000348) Key Register to enable the use of external clock + selects via the EXTCLKSEL reg */ + + struct { + __IOM uint32_t KEXTCLKSEL : 32; /*!< [31..0] Key register value. */ + } KEXTCLKSEL_b; + } ; + __IM uint32_t RESERVED15[4]; + + union { + __IOM uint32_t SIMOBUCK4; /*!< (@ 0x0000035C) SIMO Buck Control Reg1 */ + + struct { + __IM uint32_t : 21; + __IOM uint32_t SIMOBUCKCLKDIVSEL : 2; /*!< [22..21] simobuck_clkdiv_sel */ + } SIMOBUCK4_b; + } ; + __IM uint32_t RESERVED16[2]; + + union { + __IOM uint32_t BLEBUCK2; /*!< (@ 0x00000368) BLEBUCK2 Control Reg */ + + struct { + __IOM uint32_t BLEBUCKTONLOWTRIM : 6; /*!< [5..0] blebuck_ton_low_trim */ + __IOM uint32_t BLEBUCKTONHITRIM : 6; /*!< [11..6] blebuck_ton_hi_trim */ + __IOM uint32_t BLEBUCKTOND2ATRIM : 6; /*!< [17..12] blebuck_ton_trim */ + } BLEBUCK2_b; + } ; + __IM uint32_t RESERVED17[13]; + + union { + __IOM uint32_t FLASHWPROT0; /*!< (@ 0x000003A0) Flash Write Protection Bits */ + + struct { + __IOM uint32_t FW0BITS : 32; /*!< [31..0] Write protect flash 0x00000000 - 0x0007FFFF. Each bit + provides write protection for 16KB chunks of flash data + space. Bits are cleared by writing a 1 to the bit. When + read, 0 indicates the region is protected. Bits are sticky + (can be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHWPROT0_b; + } ; + + union { + __IOM uint32_t FLASHWPROT1; /*!< (@ 0x000003A4) Flash Write Protection Bits */ + + struct { + __IOM uint32_t FW1BITS : 32; /*!< [31..0] Write protect flash 0x00080000 - 0x000FFFFF. Each bit + provides write protection for 16KB chunks of flash data + space. Bits are cleared by writing a 1 to the bit. When + read, 0 indicates the region is protected. Bits are sticky + (can be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHWPROT1_b; + } ; + + union { + __IOM uint32_t FLASHWPROT2; /*!< (@ 0x000003A8) Flash Write Protection Bits */ + + struct { + __IOM uint32_t FW2BITS : 32; /*!< [31..0] Write protect flash 0x00100000 - 0x0017FFFF. Each bit + provides write protection for 16KB chunks of flash data + space. Bits are cleared by writing a 1 to the bit. When + read, 0 indicates the region is protected. Bits are sticky + (can be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHWPROT2_b; + } ; + + union { + __IOM uint32_t FLASHWPROT3; /*!< (@ 0x000003AC) Flash Write Protection Bits */ + + struct { + __IOM uint32_t FW3BITS : 32; /*!< [31..0] Write protect flash 0x00180000 - 0x001FFFFF. Each bit + provides write protection for 16KB chunks of flash data + space. Bits are cleared by writing a 1 to the bit. When + read, 0 indicates the region is protected. Bits are sticky + (can be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHWPROT3_b; + } ; + + union { + __IOM uint32_t FLASHRPROT0; /*!< (@ 0x000003B0) Flash Read Protection Bits */ + + struct { + __IOM uint32_t FR0BITS : 32; /*!< [31..0] Copy (read) protect flash 0x00000000 - 0x0007FFFF. Each + bit provides read protection for 16KB chunks of flash. + Bits are cleared by writing a 1 to the bit. When read, + 0 indicates the region is protected. Bits are sticky (can + be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHRPROT0_b; + } ; + + union { + __IOM uint32_t FLASHRPROT1; /*!< (@ 0x000003B4) Flash Read Protection Bits */ + + struct { + __IOM uint32_t FR1BITS : 32; /*!< [31..0] Copy (read) protect flash 0x00080000 - 0x000FFFFF. Each + bit provides read protection for 16KB chunks of flash. + Bits are cleared by writing a 1 to the bit. When read, + 0 indicates the region is protected. Bits are sticky (can + be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHRPROT1_b; + } ; + + union { + __IOM uint32_t FLASHRPROT2; /*!< (@ 0x000003B8) Flash Read Protection Bits */ + + struct { + __IOM uint32_t FR2BITS : 32; /*!< [31..0] Copy (read) protect flash 0x00100000 - 0x0017FFFF. Each + bit provides read protection for 16KB chunks of flash. + Bits are cleared by writing a 1 to the bit. When read, + 0 indicates the region is protected. Bits are sticky (can + be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHRPROT2_b; + } ; + + union { + __IOM uint32_t FLASHRPROT3; /*!< (@ 0x000003BC) Flash Read Protection Bits */ + + struct { + __IOM uint32_t FR3BITS : 32; /*!< [31..0] Copy (read) protect flash 0x00180000 - 0x001FFFFF. Each + bit provides read protection for 16KB chunks of flash. + Bits are cleared by writing a 1 to the bit. When read, + 0 indicates the region is protected. Bits are sticky (can + be set when PROTLOCK is 1, but only cleared by reset) */ + } FLASHRPROT3_b; + } ; + + union { + __IOM uint32_t DMASRAMWRITEPROTECT0; /*!< (@ 0x000003C0) SRAM write-protection bits. */ + + struct { + __IOM uint32_t DMA_WPROT0 : 32; /*!< [31..0] Write protect SRAM from DMA. Each bit provides write + protection for an 8KB region of memory. When set to 1, + the region will be protected from DMA writes, when set + to 0, DMA may write the region. */ + } DMASRAMWRITEPROTECT0_b; + } ; + + union { + __IOM uint32_t DMASRAMWRITEPROTECT1; /*!< (@ 0x000003C4) SRAM write-protection bits. */ + + struct { + __IOM uint32_t DMA_WPROT1 : 32; /*!< [31..0] Write protect SRAM from DMA. Each bit provides write + protection for an 8KB region of memory. When set to 1, + the region will be protected from DMA writes, when set + to 0, DMA may write the region. */ + } DMASRAMWRITEPROTECT1_b; + } ; + __IM uint32_t RESERVED18[2]; + + union { + __IOM uint32_t DMASRAMREADPROTECT0; /*!< (@ 0x000003D0) SRAM read-protection bits. */ + + struct { + __IOM uint32_t DMA_RPROT0 : 32; /*!< [31..0] Read protect SRAM from DMA. Each bit provides write + protection for an 8KB region of memory. When set to 1, + the region will be protected from DMA reads, when set to + 0, DMA may read the region. */ + } DMASRAMREADPROTECT0_b; + } ; + + union { + __IOM uint32_t DMASRAMREADPROTECT1; /*!< (@ 0x000003D4) SRAM read-protection bits. */ + + struct { + __IOM uint32_t DMA_RPROT1 : 32; /*!< [31..0] Read protect SRAM from DMA. Each bit provides write + protection for an 8KB region of memory. When set to 1, + the region will be protected from DMA reads, when set to + 0, DMA may read the region. */ + } DMASRAMREADPROTECT1_b; + } ; + + union { + __IOM uint32_t DMASRAMREADPROTECT2; /*!< (@ 0x000003D8) SRAM read-protection bits. */ + + struct { + __IOM uint32_t DMA_RPROT2 : 32; /*!< [31..0] Read protect SRAM from DMA. Each bit provides write + protection for an 8KB region of memory. When set to 1, + the region will be protected from DMA reads, when set to + 0, DMA may read the region. */ + } DMASRAMREADPROTECT2_b; + } ; +} MCUCTRL_Type; /*!< Size = 988 (0x3dc) */ + + + +/* =========================================================================================================================== */ +/* ================ MSPI0 ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Multibit SPI Master (MSPI0) + */ + +typedef struct { /*!< (@ 0x50014000) MSPI0 Structure */ + + union { + __IOM uint32_t CTRL; /*!< (@ 0x00000000) MSPI PIO Transfer Control/Status Register */ + + struct { + __IOM uint32_t START : 1; /*!< [0..0] Write to 1 to initiate a PIO transaction on the bus (typically + the entire register should be written at once with this + bit set). */ + __IOM uint32_t STATUS : 1; /*!< [1..1] Command status: 1 indicates command has completed. Cleared + by writing 1 to this bit or starting a new transfer. */ + __IOM uint32_t BUSY : 1; /*!< [2..2] Command status: 1 indicates controller is busy (command + in progress) */ + __IOM uint32_t QUADCMD : 1; /*!< [3..3] Flag indicating that the operation is a command that + should be replicated to both devices in paired QUAD mode. + This is typically only used when reading/writing configuration + registers in paired flash devices (do not set for memory + transfers). */ + __IOM uint32_t ENWLAT : 1; /*!< [4..4] Enable Write Latency Counter (time between address and + first data byte). Counter value is WRITELATENCY. */ + __IOM uint32_t CONT : 1; /*!< [5..5] Continuation transfer. When 1, indicates that the MSPI + will hold CE low after the transaction completes. This + is included for compatibility with IOM module since the + MSPI transfer module can handle most cases in a single + transfer. NOTE: CONT functionality only works with CLKDIV=2 + (24 MHz). */ + __IOM uint32_t BIGENDIAN : 1; /*!< [6..6] 1 indicates data in FIFO is in big endian format (MSB + first); 0 indicates little endian data (default, LSB first). */ + __IOM uint32_t ENTURN : 1; /*!< [7..7] Indicates whether TX->RX turnaround cycles should be + enabled for this operation (see TURNAROUND field in CFG + register). */ + __IOM uint32_t SENDA : 1; /*!< [8..8] Indicates whether an address phase should be sent (see + ADDR register and ASIZE field in CFG register) */ + __IOM uint32_t SENDI : 1; /*!< [9..9] Indicates whether an instruction phase should be sent + (see INSTR field and ISIZE field in CFG register) */ + __IOM uint32_t TXRX : 1; /*!< [10..10] 1 Indicates a TX operation, 0 indicates an RX operation + of XFERBYTES */ + __IOM uint32_t PIOSCRAMBLE : 1; /*!< [11..11] Enables data scrambling for PIO opertions. This should + only be used for data operations and never for commands + to a device. */ + __IOM uint32_t ENDCX : 1; /*!< [12..12] Enable DCX signal on data [1] */ + __IM uint32_t : 3; + __IOM uint32_t XFERBYTES : 16; /*!< [31..16] Number of bytes to transmit or receive (based on TXRX + bit) */ + } CTRL_b; + } ; + + union { + __IOM uint32_t CFG; /*!< (@ 0x00000004) MSPI Transfer Configuration Register */ + + struct { + __IOM uint32_t DEVCFG : 4; /*!< [3..0] Flash configuration for XIP and AUTO DMA operations. + Controls value for SER (Slave Enable) for XIP operations + and address generation for DMA/XIP modes. Also used to + configure SPIFRF (frame format). */ + __IOM uint32_t ASIZE : 2; /*!< [5..4] Address Size. Address bytes to send from ADDR register */ + __IOM uint32_t ISIZE : 1; /*!< [6..6] Instruction Sizeenum name = I8 value = 0x0 desc = Instruction + is 1 byteenum name = I16 value = 0x1 desc = Instruction + is 2 bytes */ + __IOM uint32_t SEPIO : 1; /*!< [7..7] Separate IO configuration. This bit should be set when + the target device has separate MOSI and MISO pins. Respective + IN/OUT bits below should be set to map pins. */ + __IOM uint32_t TURNAROUND : 6; /*!< [13..8] Number of turnaound cycles (for TX->RX transitions). + Qualified by ENTURN or XIPENTURN bit field. */ + __IM uint32_t : 2; + __IOM uint32_t CPHA : 1; /*!< [16..16] Serial clock phase. */ + __IOM uint32_t CPOL : 1; /*!< [17..17] Serial clock polarity. */ + __IM uint32_t : 2; + __IOM uint32_t WRITELATENCY : 6; /*!< [25..20] Number of cycles between addressn and TX data. Qualified + by ENLAT */ + } CFG_b; + } ; + + union { + __IOM uint32_t ADDR; /*!< (@ 0x00000008) MSPI Transfer Address Register */ + + struct { + __IOM uint32_t ADDR : 32; /*!< [31..0] Optional Address field to send (after optional instruction + field) - qualified by ASIZE in CMD register. NOTE: This + register is aliased to DMADEVADDR. */ + } ADDR_b; + } ; + + union { + __IOM uint32_t INSTR; /*!< (@ 0x0000000C) MSPI Transfer Instruction */ + + struct { + __IOM uint32_t INSTR : 16; /*!< [15..0] Optional Instruction field to send (1st byte) - qualified + by ISEND/ISIZE */ + } INSTR_b; + } ; + + union { + __IOM uint32_t TXFIFO; /*!< (@ 0x00000010) TX Data FIFO */ + + struct { + __IOM uint32_t TXFIFO : 32; /*!< [31..0] Data to be transmitted. Data should normall be aligned + to the LSB (pad the upper bits with zeros) unless BIGENDIAN + is set. */ + } TXFIFO_b; + } ; + + union { + __IOM uint32_t RXFIFO; /*!< (@ 0x00000014) RX Data FIFO */ + + struct { + __IOM uint32_t RXFIFO : 32; /*!< [31..0] Receive data. Data is aligned to the LSB (padded zeros + on upper bits) unless BIGENDIAN is set. */ + } RXFIFO_b; + } ; + + union { + __IOM uint32_t TXENTRIES; /*!< (@ 0x00000018) TX FIFO Entries */ + + struct { + __IOM uint32_t TXENTRIES : 6; /*!< [5..0] Number of 32-bit words/entries in TX FIFO */ + } TXENTRIES_b; + } ; + + union { + __IOM uint32_t RXENTRIES; /*!< (@ 0x0000001C) RX FIFO Entries */ + + struct { + __IOM uint32_t RXENTRIES : 6; /*!< [5..0] Number of 32-bit words/entries in RX FIFO */ + } RXENTRIES_b; + } ; + + union { + __IOM uint32_t THRESHOLD; /*!< (@ 0x00000020) TX/RX FIFO Threshhold Levels */ + + struct { + __IOM uint32_t TXTHRESH : 6; /*!< [5..0] Number of entries in TX FIFO that cause TXF interrupt */ + __IM uint32_t : 2; + __IOM uint32_t RXTHRESH : 6; /*!< [13..8] Number of entries in TX FIFO that cause RXE interrupt */ + } THRESHOLD_b; + } ; + __IM uint32_t RESERVED[55]; + + union { + __IOM uint32_t MSPICFG; /*!< (@ 0x00000100) MSPI Module Configuration */ + + struct { + __IOM uint32_t APBCLK : 1; /*!< [0..0] Enable continuous APB clock. For power-efficient operation, + APBCLK should be set to 0. */ + __IOM uint32_t RXCAP : 1; /*!< [1..1] Controls RX data capture phase. A setting of 0 (NORMAL) + captures read data at the normal capture point relative + to the internal clock launch point. However, to accomodate + chip/pad/board delays, a setting of RXCAP of 1 is expected + to be used to align the capture point with the return data + window. This bit is used in conjunction with RXNEG to provide + 4 unique capture points, all about 10ns apart. */ + __IOM uint32_t RXNEG : 1; /*!< [2..2] Adjusts the RX capture phase to the negedge of the 48MHz + internal clock (~10ns early). For normal operation, it + is expected that RXNEG will be set to 0. */ + __IOM uint32_t TXNEG : 1; /*!< [3..3] Launches TX data a half clock cycle (~10ns) early. This + should normally be programmed to zero (NORMAL). */ + __IOM uint32_t IOMSEL : 4; /*!< [7..4] Selects which IOM is selected for CQ handshake status. */ + __IOM uint32_t CLKDIV : 6; /*!< [13..8] Clock Divider. Allows dividing 48 MHz base clock by + integer multiples. Enumerations are provided for common + frequency, but any integer divide from 48 MHz is allowed. + Odd divide ratios will result in a 33/66 percent duty cycle + with a long low clock pulse (to allow longer round-trip + for read data). */ + __IM uint32_t : 15; + __IOM uint32_t FIFORESET : 1; /*!< [29..29] Reset MSPI FIFO (active high). 1=reset FIFO, 0=normal + operation. May be used to manually flush the FIFO in error + handling. */ + __IOM uint32_t IPRSTN : 1; /*!< [30..30] IP block reset. Write to 0 to put the transfer module + in reset or 1 for normal operation. This may be required + after error conditions to clear the transfer on the bus. */ + __IOM uint32_t PRSTN : 1; /*!< [31..31] Peripheral reset. Master reset to the entire MSPI module + (DMA, XIP, and transfer state machines). 1=normal operation, + 0=in reset. */ + } MSPICFG_b; + } ; + + union { + __IOM uint32_t MSPIDDR; /*!< (@ 0x00000104) MSPI Module DDR Configuration Bits */ + + struct { + __IOM uint32_t EMULATEDDR : 1; /*!< [0..0] Drive external clock at 1/2 rate to emulate DDR mode */ + __IOM uint32_t QUADDDR : 1; /*!< [1..1] Enables use of delay line to provide fine control over + traditional RX capture clock. */ + __IOM uint32_t ENABLEDQS : 1; /*!< [2..2] In EMULATEDDR mode, enable DQS for read capture */ + __IOM uint32_t DQSSYNCNEG : 1; /*!< [3..3] Use negative edge of clock for DDR data sync */ + __IOM uint32_t OVERRIDERXDQSDELAY : 1; /*!< [4..4] Override DQS delay line with the value in DQSDELAY (for + RX capture in QUADDDR mode) */ + __IOM uint32_t OVERRIDEDDRCLKOUTDELAY : 1;/*!< [5..5] Override TX delay line with the value in DQSDELAY (for + TX clock offset when in QUADDDR mode) */ + __IOM uint32_t ENABLEFINEDELAY : 1; /*!< [6..6] Enables use of delay line to provide fine control over + traditional RX capture clock. */ + __IM uint32_t : 1; + __IOM uint32_t RXDQSDELAY : 5; /*!< [12..8] When OVERRIDEDQSDELAY is set this sets the DQS delayline + value. In ENABLEDQS mode, this acts as an offset to the + computed value (should be set to 0 by default) */ + __IM uint32_t : 3; + __IOM uint32_t TXDQSDELAY : 5; /*!< [20..16] When OVERRIDEDQSDELAY is set this sets the DQS delayline + value. In ENABLEDQS mode, this acts as an offset to the + computed value (should be set to 0 by default) */ + } MSPIDDR_b; + } ; + __IM uint32_t RESERVED1[2]; + + union { + __IOM uint32_t PADCFG; /*!< (@ 0x00000110) MSPI Output Pad Configuration */ + + struct { + __IOM uint32_t OUT3 : 1; /*!< [0..0] Output pad 3 configuration. 0=data[3] 1=CLK */ + __IOM uint32_t OUT4 : 1; /*!< [1..1] Output pad 4 configuration. 0=data[4] 1=data[0] */ + __IOM uint32_t OUT5 : 1; /*!< [2..2] Output pad 5 configuration. 0=data[5] 1=data[1] */ + __IOM uint32_t OUT6 : 1; /*!< [3..3] Output pad 6 configuration. 0=data[6] 1=data[2] */ + __IOM uint32_t OUT7 : 1; /*!< [4..4] Output pad 7 configuration. 0=data[7] 1=data[3] */ + __IM uint32_t : 11; + __IOM uint32_t IN0 : 2; /*!< [17..16] Data Input pad 0 pin muxing: 0=pad[0] 1=pad[4] 2=pad[1] + 3=pad[5] */ + __IOM uint32_t IN1 : 1; /*!< [18..18] Data Input pad 1 pin muxing: 0=pad[1] 1=pad[5] */ + __IOM uint32_t IN2 : 1; /*!< [19..19] Data Input pad 2 pin muxing: 0=pad[2] 1=pad[6] */ + __IOM uint32_t IN3 : 1; /*!< [20..20] Data Input pad 3 pin muxing: 0=pad[3] 1=pad[7] */ + __IOM uint32_t REVCS : 1; /*!< [21..21] Reverse CS connections. Allows CS1 to be associated + with lower data lanes and CS0 to be associated with upper + data lines */ + } PADCFG_b; + } ; + + union { + __IOM uint32_t PADOUTEN; /*!< (@ 0x00000114) MSPI Output Enable Pad Configuration */ + + struct { + __IOM uint32_t OUTEN : 10; /*!< [9..0] Output pad enable configuration. Indicates which pads + should be driven. Bits [3:0] are Quad0 data, [7:4] are + Quad1 data, and [8] is clock. */ + } PADOUTEN_b; + } ; + + union { + __IOM uint32_t PADOVEREN; /*!< (@ 0x00000118) MSPI Output Pad Override */ + + struct { + __IOM uint32_t OVERRIDEEN : 10; /*!< [9..0] Output pad override enable. Bit mask for pad outputs. + When set to 1, the values in the OVERRIDE field are driven + on the pad (output enable is implicitly set in this mode). + [7:0]=data [8]=clock [9]=DM */ + } PADOVEREN_b; + } ; + + union { + __IOM uint32_t PADOVER; /*!< (@ 0x0000011C) MSPI Output Pad Override Value */ + + struct { + __IOM uint32_t OVERRIDE : 10; /*!< [9..0] Output pad override value. [7:0]=data [8]=clock [9]=DM */ + } PADOVER_b; + } ; + + union { + __IOM uint32_t FLASH; /*!< (@ 0x00000120) Configuration for XIP/DMA support of SPI flash + modules. */ + + struct { + __IOM uint32_t XIPEN : 1; /*!< [0..0] Enable the XIP (eXecute In Place) function which effectively + enables the address decoding of the MSPI device in the + flash/cache address space at address 0x04000000-0x07FFFFFF. */ + __IOM uint32_t XIPENDCX : 1; /*!< [1..1] Enable DCX signal on data [1] for XIP/DMA operations */ + __IOM uint32_t XIPACK : 2; /*!< [3..2] Controls transmission of Micron XIP acknowledge cycles + (Micron Flash devices only) */ + __IOM uint32_t XIPBIGENDIAN : 1; /*!< [4..4] Indicates whether XIP/AUTO DMA data transfers are in + big or little endian format */ + __IOM uint32_t XIPENTURN : 1; /*!< [5..5] Indicates whether XIP/AUTO DMA operations should enable + TX->RX turnaround cycles */ + __IOM uint32_t XIPSENDA : 1; /*!< [6..6] Indicates whether XIP/AUTO DMA operations should send + an an address phase (see DMADEVADDR register and ASIZE + field in CFG) */ + __IOM uint32_t XIPSENDI : 1; /*!< [7..7] Indicates whether XIP/AUTO DMA operations should send + an instruction (see READINSTR field and ISIZE field in + CFG) */ + __IOM uint32_t XIPMIXED : 3; /*!< [10..8] Reserved. Set to 0x0 */ + __IOM uint32_t XIPENWLAT : 1; /*!< [11..11] Enable Write Latency counter for XIP write transactions */ + } FLASH_b; + } ; + + union { + __IOM uint32_t XIPINSTR; /*!< (@ 0x00000124) Configuration for XIP/DMA support of SPI flash + modules. */ + + struct { + __IOM uint32_t WRITEINSTR : 16; /*!< [15..0] Write command sent for DMA operations */ + __IOM uint32_t READINSTR : 16; /*!< [31..16] Read command sent to flash for DMA/XIP operations */ + } XIPINSTR_b; + } ; + + union { + __IOM uint32_t SCRAMBLING; /*!< (@ 0x00000128) External Flash Scrambling Controls */ + + struct { + __IOM uint32_t SCRSTART : 10; /*!< [9..0] Scrambling region start address [25:16] (64K block granularity). + The START block is the FIRST block included in the scrambled + address range. */ + __IM uint32_t : 6; + __IOM uint32_t SCREND : 10; /*!< [25..16] Scrambling region end address [25:16] (64K block granularity). + The END block is the LAST block included in the scrambled + address range. */ + __IM uint32_t : 5; + __IOM uint32_t SCRENABLE : 1; /*!< [31..31] Enables Data Scrambling Region. When 1 reads and writes + to the range will be scrambled. When 0, data will be read/written + unmodified. Address range is specified in 64K granularity + and the START/END ranges are included within the range. */ + } SCRAMBLING_b; + } ; + __IM uint32_t RESERVED2[53]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) MSPI Master Interrupts: Enable */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Transfer complete. Note that DMA and CQ operations are + layered, so CMDCMP, DCMP, and CQ* can all be signalled + simultaneously */ + __IOM uint32_t TXE : 1; /*!< [1..1] Transmit FIFO empty. */ + __IOM uint32_t TXO : 1; /*!< [2..2] Transmit FIFO Overflow (only occurs when SW writes to + a full FIFO). */ + __IOM uint32_t RXU : 1; /*!< [3..3] Receive FIFO underflow (only occurs when SW reads from + an empty FIFO) */ + __IOM uint32_t RXO : 1; /*!< [4..4] Receive FIFO overflow (cannot happen in MSPI design -- + MSPI bus pins will stall) */ + __IOM uint32_t RXF : 1; /*!< [5..5] Receive FIFO full */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Complete Interrupt */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Interrupt */ + __IOM uint32_t CQCMP : 1; /*!< [8..8] Command Queue Complete Interrupt */ + __IOM uint32_t CQUPD : 1; /*!< [9..9] Command Queue Update Interrupt. Issued whenever the CQ + performs an operation where address bit[0] is set. Useful + for triggering CURIDX interrupts. */ + __IOM uint32_t CQPAUSED : 1; /*!< [10..10] Command Queue is Paused. */ + __IOM uint32_t CQERR : 1; /*!< [11..11] Command Queue Error Interrupt */ + __IOM uint32_t SCRERR : 1; /*!< [12..12] Scrambling Alignment Error. Scrambling operations must + be aligned to word (4-byte) start address. */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) MSPI Master Interrupts: Status */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Transfer complete. Note that DMA and CQ operations are + layered, so CMDCMP, DCMP, and CQ* can all be signalled + simultaneously */ + __IOM uint32_t TXE : 1; /*!< [1..1] Transmit FIFO empty. */ + __IOM uint32_t TXO : 1; /*!< [2..2] Transmit FIFO Overflow (only occurs when SW writes to + a full FIFO). */ + __IOM uint32_t RXU : 1; /*!< [3..3] Receive FIFO underflow (only occurs when SW reads from + an empty FIFO) */ + __IOM uint32_t RXO : 1; /*!< [4..4] Receive FIFO overflow (cannot happen in MSPI design -- + MSPI bus pins will stall) */ + __IOM uint32_t RXF : 1; /*!< [5..5] Receive FIFO full */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Complete Interrupt */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Interrupt */ + __IOM uint32_t CQCMP : 1; /*!< [8..8] Command Queue Complete Interrupt */ + __IOM uint32_t CQUPD : 1; /*!< [9..9] Command Queue Update Interrupt. Issued whenever the CQ + performs an operation where address bit[0] is set. Useful + for triggering CURIDX interrupts. */ + __IOM uint32_t CQPAUSED : 1; /*!< [10..10] Command Queue is Paused. */ + __IOM uint32_t CQERR : 1; /*!< [11..11] Command Queue Error Interrupt */ + __IOM uint32_t SCRERR : 1; /*!< [12..12] Scrambling Alignment Error. Scrambling operations must + be aligned to word (4-byte) start address. */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) MSPI Master Interrupts: Clear */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Transfer complete. Note that DMA and CQ operations are + layered, so CMDCMP, DCMP, and CQ* can all be signalled + simultaneously */ + __IOM uint32_t TXE : 1; /*!< [1..1] Transmit FIFO empty. */ + __IOM uint32_t TXO : 1; /*!< [2..2] Transmit FIFO Overflow (only occurs when SW writes to + a full FIFO). */ + __IOM uint32_t RXU : 1; /*!< [3..3] Receive FIFO underflow (only occurs when SW reads from + an empty FIFO) */ + __IOM uint32_t RXO : 1; /*!< [4..4] Receive FIFO overflow (cannot happen in MSPI design -- + MSPI bus pins will stall) */ + __IOM uint32_t RXF : 1; /*!< [5..5] Receive FIFO full */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Complete Interrupt */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Interrupt */ + __IOM uint32_t CQCMP : 1; /*!< [8..8] Command Queue Complete Interrupt */ + __IOM uint32_t CQUPD : 1; /*!< [9..9] Command Queue Update Interrupt. Issued whenever the CQ + performs an operation where address bit[0] is set. Useful + for triggering CURIDX interrupts. */ + __IOM uint32_t CQPAUSED : 1; /*!< [10..10] Command Queue is Paused. */ + __IOM uint32_t CQERR : 1; /*!< [11..11] Command Queue Error Interrupt */ + __IOM uint32_t SCRERR : 1; /*!< [12..12] Scrambling Alignment Error. Scrambling operations must + be aligned to word (4-byte) start address. */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) MSPI Master Interrupts: Set */ + + struct { + __IOM uint32_t CMDCMP : 1; /*!< [0..0] Transfer complete. Note that DMA and CQ operations are + layered, so CMDCMP, DCMP, and CQ* can all be signalled + simultaneously */ + __IOM uint32_t TXE : 1; /*!< [1..1] Transmit FIFO empty. */ + __IOM uint32_t TXO : 1; /*!< [2..2] Transmit FIFO Overflow (only occurs when SW writes to + a full FIFO). */ + __IOM uint32_t RXU : 1; /*!< [3..3] Receive FIFO underflow (only occurs when SW reads from + an empty FIFO) */ + __IOM uint32_t RXO : 1; /*!< [4..4] Receive FIFO overflow (cannot happen in MSPI design -- + MSPI bus pins will stall) */ + __IOM uint32_t RXF : 1; /*!< [5..5] Receive FIFO full */ + __IOM uint32_t DCMP : 1; /*!< [6..6] DMA Complete Interrupt */ + __IOM uint32_t DERR : 1; /*!< [7..7] DMA Error Interrupt */ + __IOM uint32_t CQCMP : 1; /*!< [8..8] Command Queue Complete Interrupt */ + __IOM uint32_t CQUPD : 1; /*!< [9..9] Command Queue Update Interrupt. Issued whenever the CQ + performs an operation where address bit[0] is set. Useful + for triggering CURIDX interrupts. */ + __IOM uint32_t CQPAUSED : 1; /*!< [10..10] Command Queue is Paused. */ + __IOM uint32_t CQERR : 1; /*!< [11..11] Command Queue Error Interrupt */ + __IOM uint32_t SCRERR : 1; /*!< [12..12] Scrambling Alignment Error. Scrambling operations must + be aligned to word (4-byte) start address. */ + } INTSET_b; + } ; + __IM uint32_t RESERVED3[16]; + + union { + __IOM uint32_t DMACFG; /*!< (@ 0x00000250) DMA Configuration Register */ + + struct { + __IOM uint32_t DMAEN : 2; /*!< [1..0] DMA Enable. Setting this bit to EN will start the DMA + operation */ + __IOM uint32_t DMADIR : 1; /*!< [2..2] Direction */ + __IOM uint32_t DMAPRI : 2; /*!< [4..3] Sets the Priority of the DMA request */ + __IM uint32_t : 13; + __IOM uint32_t DMAPWROFF : 1; /*!< [18..18] Power off MSPI domain upon completion of DMA operation. */ + } DMACFG_b; + } ; + + union { + __IOM uint32_t DMASTAT; /*!< (@ 0x00000254) DMA Status Register */ + + struct { + __IOM uint32_t DMATIP : 1; /*!< [0..0] DMA Transfer In Progress indicator. 1 will indicate that + a DMA transfer is active. The DMA transfer may be waiting + on data, transferring data, or waiting for priority. All + of these will be indicated with a 1. A 0 will indicate + that the DMA is fully complete and no further transactions + will be done. */ + __IOM uint32_t DMACPL : 1; /*!< [1..1] DMA Transfer Complete. This signals the end of the DMA + operation. */ + __IOM uint32_t DMAERR : 1; /*!< [2..2] DMA Error. This active high bit signals that an error + was encountered during the DMA operation. */ + __IOM uint32_t SCRERR : 1; /*!< [3..3] Scrambling Access Alignment Error. This active high bit + signals that a scrambling operation was specified for a + non-word aligned DEVADDR. */ + } DMASTAT_b; + } ; + + union { + __IOM uint32_t DMATARGADDR; /*!< (@ 0x00000258) DMA Target Address Register */ + + struct { + __IOM uint32_t TARGADDR : 32; /*!< [31..0] Target byte address for source of DMA (either read or + write). In cases of non-word aligned addresses, the DMA + logic will take care for ensuring only the target bytes + are read/written. */ + } DMATARGADDR_b; + } ; + + union { + __IOM uint32_t DMADEVADDR; /*!< (@ 0x0000025C) DMA Device Address Register */ + + struct { + __IOM uint32_t DEVADDR : 32; /*!< [31..0] SPI Device address for automated DMA transactions (both + read and write). */ + } DMADEVADDR_b; + } ; + + union { + __IOM uint32_t DMATOTCOUNT; /*!< (@ 0x00000260) DMA Total Transfer Count */ + + struct { + __IOM uint32_t TOTCOUNT : 24; /*!< [23..0] Total Transfer Count in bytes. */ + } DMATOTCOUNT_b; + } ; + + union { + __IOM uint32_t DMABCOUNT; /*!< (@ 0x00000264) DMA BYTE Transfer Count */ + + struct { + __IOM uint32_t BCOUNT : 8; /*!< [7..0] Burst transfer size in bytes. This is the number of bytes + transferred when a FIFO trigger event occurs. Recommended + value is 32. */ + } DMABCOUNT_b; + } ; + + union { + __IOM uint32_t DMATHRESH; /*!< (@ 0x00000268) DMA Transmit Trigger Threshhold */ + + struct { + __IOM uint32_t DMATXTHRESH : 5; /*!< [4..0] DMA transfer FIFO level trigger. For read operations, + DMA is triggered when the FIFO level is greater than this + value. For write operations, DMA is triggered when the + FIFO level is less than this level. Each DMA operation + will consist of BCOUNT bytes. */ + __IM uint32_t : 3; + __IOM uint32_t DMARXTHRESH : 5; /*!< [12..8] DMA transfer FIFO level trigger. For read operations, + DMA is triggered when the FIFO level is greater than this + value. For write operations, DMA is triggered when the + FIFO level is less than this level. Each DMA operation + will consist of BCOUNT bytes. */ + } DMATHRESH_b; + } ; + + union { + __IOM uint32_t DMABOUNDARY; /*!< (@ 0x0000026C) DMA Transfer Boundary */ + + struct { + __IOM uint32_t DMATIMELIMIT : 12; /*!< [11..0] DMA time limit. Can be used to limit the tranaction + time on the MSPI bus. The count is in 100ns incremements. + A value of 0 disables the counter */ + __IOM uint32_t DMABOUND : 4; /*!< [15..12] DMA Address boundray */ + } DMABOUNDARY_b; + } ; + __IM uint32_t RESERVED4[12]; + + union { + __IOM uint32_t CQCFG; /*!< (@ 0x000002A0) Command Queue Configuration Register */ + + struct { + __IOM uint32_t CQEN : 1; /*!< [0..0] Command queue enable. When set, will enable the processing + of the command queue */ + __IOM uint32_t CQPRI : 1; /*!< [1..1] Sets the Priority of the command queue dma request */ + __IOM uint32_t CQPWROFF : 1; /*!< [2..2] Power off MSPI domain upon completion of DMA operation. */ + __IOM uint32_t CQAUTOCLEARMASK : 1; /*!< [3..3] Enable clear of CQMASK after each pause operation. This + may be useful when using software flags to pause CQ. */ + } CQCFG_b; + } ; + __IM uint32_t RESERVED5; + + union { + __IOM uint32_t CQADDR; /*!< (@ 0x000002A8) CQ Target Read Address Register */ + + struct { + __IOM uint32_t CQADDR : 29; /*!< [28..0] Address of command queue buffer in SRAM or flash. The + buffer address must be aligned to a word boundary. */ + } CQADDR_b; + } ; + + union { + __IOM uint32_t CQSTAT; /*!< (@ 0x000002AC) Command Queue Status Register */ + + struct { + __IOM uint32_t CQTIP : 1; /*!< [0..0] Command queue Transfer In Progress indicator. 1 will + indicate that a CQ transfer is active and this will remain + active even when paused waiting for external event. */ + __IOM uint32_t CQCPL : 1; /*!< [1..1] Command queue operation Complete. This signals the end + of the command queue operation. */ + __IOM uint32_t CQERR : 1; /*!< [2..2] Command queue processing Error. This active high bit + signals that an error was encountered during the CQ operation. */ + __IOM uint32_t CQPAUSED : 1; /*!< [3..3] Command queue is currently paused status. */ + } CQSTAT_b; + } ; + + union { + __IOM uint32_t CQFLAGS; /*!< (@ 0x000002B0) Command Queue Flag Register */ + + struct { + __IOM uint32_t CQFLAGS : 16; /*!< [15..0] Current flag status (read-only). Bits [7:0] are software + controllable and bits [15:8] are hardware status. */ + } CQFLAGS_b; + } ; + + union { + __IOM uint32_t CQSETCLEAR; /*!< (@ 0x000002B4) Command Queue Flag Set/Clear Register */ + + struct { + __IOM uint32_t CQFSET : 8; /*!< [7..0] Set CQFlag status bits. Set has priority over clear if + both are high. */ + __IOM uint32_t CQFTOGGLE : 8; /*!< [15..8] Toggle CQFlag status bits */ + __IOM uint32_t CQFCLR : 8; /*!< [23..16] Clear CQFlag status bits. */ + } CQSETCLEAR_b; + } ; + + union { + __IOM uint32_t CQPAUSE; /*!< (@ 0x000002B8) Command Queue Pause Mask Register */ + + struct { + __IOM uint32_t CQMASK : 16; /*!< [15..0] CQ will pause processing when ALL specified events are + satisfied -- i.e. when (CQMASK and CQPAUSE)==CQMASK. */ + } CQPAUSE_b; + } ; + __IM uint32_t RESERVED6; + + union { + __IOM uint32_t CQCURIDX; /*!< (@ 0x000002C0) Command Queue Current Index */ + + struct { + __IOM uint32_t CQCURIDX : 8; /*!< [7..0] Can be used to indicate the current position of the command + queue by having CQ operations write this field. A CQ hardware + status flag indicates when CURIDX and ENDIDX are not equal, + allowing SW to pause the CQ processing until the end index + is updated. */ + } CQCURIDX_b; + } ; + + union { + __IOM uint32_t CQENDIDX; /*!< (@ 0x000002C4) Command Queue End Index */ + + struct { + __IOM uint32_t CQENDIDX : 8; /*!< [7..0] Can be used to indicate the end position of the command + queue. A CQ hardware status bit indices when CURIDX != + ENDIDX so that the CQ can be paused when it reaches the + end pointer. */ + } CQENDIDX_b; + } ; +} MSPI0_Type; /*!< Size = 712 (0x2c8) */ + + + +/* =========================================================================================================================== */ +/* ================ PDM ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief PDM Audio (PDM) + */ + +typedef struct { /*!< (@ 0x50011000) PDM Structure */ + + union { + __IOM uint32_t PCFG; /*!< (@ 0x00000000) PDM Configuration Register */ + + struct { + __IOM uint32_t PDMCOREEN : 1; /*!< [0..0] Data Streaming Control. */ + __IOM uint32_t SOFTMUTE : 1; /*!< [1..1] Soft mute control. */ + __IOM uint32_t CYCLES : 3; /*!< [4..2] Number of clocks during gain-setting changes. */ + __IOM uint32_t HPCUTOFF : 4; /*!< [8..5] High pass filter coefficients. */ + __IOM uint32_t ADCHPD : 1; /*!< [9..9] High pass filter control. */ + __IOM uint32_t SINCRATE : 7; /*!< [16..10] SINC decimation rate. */ + __IOM uint32_t MCLKDIV : 2; /*!< [18..17] PDM_CLK frequency divisor. */ + __IM uint32_t : 2; + __IOM uint32_t PGALEFT : 5; /*!< [25..21] Left channel PGA gain. */ + __IOM uint32_t PGARIGHT : 5; /*!< [30..26] Right channel PGA gain. */ + __IOM uint32_t LRSWAP : 1; /*!< [31..31] Left/right channel swap. */ + } PCFG_b; + } ; + + union { + __IOM uint32_t VCFG; /*!< (@ 0x00000004) Voice Configuration Register */ + + struct { + __IM uint32_t : 3; + __IOM uint32_t CHSET : 2; /*!< [4..3] Set PCM channels. */ + __IM uint32_t : 3; + __IOM uint32_t PCMPACK : 1; /*!< [8..8] PCM data packing enable. */ + __IM uint32_t : 7; + __IOM uint32_t SELAP : 1; /*!< [16..16] Select PDM input clock source. */ + __IOM uint32_t DMICKDEL : 1; /*!< [17..17] PDM clock sampling delay. */ + __IM uint32_t : 1; + __IOM uint32_t BCLKINV : 1; /*!< [19..19] I2S BCLK input inversion. */ + __IOM uint32_t I2SEN : 1; /*!< [20..20] I2S interface enable. */ + __IM uint32_t : 5; + __IOM uint32_t PDMCLKEN : 1; /*!< [26..26] Enable the serial clock. */ + __IOM uint32_t PDMCLKSEL : 3; /*!< [29..27] Select the PDM input clock. */ + __IOM uint32_t RSTB : 1; /*!< [30..30] Reset the IP core. */ + __IOM uint32_t IOCLKEN : 1; /*!< [31..31] Enable the IO clock. */ + } VCFG_b; + } ; + + union { + __IOM uint32_t VOICESTAT; /*!< (@ 0x00000008) Voice Status Register */ + + struct { + __IOM uint32_t FIFOCNT : 6; /*!< [5..0] Valid 32-bit entries currently in the FIFO. */ + } VOICESTAT_b; + } ; + + union { + __IOM uint32_t FIFOREAD; /*!< (@ 0x0000000C) FIFO Read */ + + struct { + __IOM uint32_t FIFOREAD : 32; /*!< [31..0] FIFO read data. */ + } FIFOREAD_b; + } ; + + union { + __IOM uint32_t FIFOFLUSH; /*!< (@ 0x00000010) FIFO Flush */ + + struct { + __IOM uint32_t FIFOFLUSH : 1; /*!< [0..0] FIFO FLUSH. */ + } FIFOFLUSH_b; + } ; + + union { + __IOM uint32_t FIFOTHR; /*!< (@ 0x00000014) FIFO Threshold */ + + struct { + __IOM uint32_t FIFOTHR : 5; /*!< [4..0] FIFO Threshold value. When the FIFO count is equal to, + or larger than this value (in words), a THR interrupt is + generated (if enabled) */ + } FIFOTHR_b; + } ; + __IM uint32_t RESERVED[122]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) IO Master Interrupts: Enable */ + + struct { + __IOM uint32_t THR : 1; /*!< [0..0] This is the FIFO threshold interrupt. */ + __IOM uint32_t OVF : 1; /*!< [1..1] This is the FIFO overflow interrupt. */ + __IOM uint32_t UNDFL : 1; /*!< [2..2] This is the FIFO underflow interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [3..3] DMA completed a transfer */ + __IOM uint32_t DERR : 1; /*!< [4..4] DMA Error receieved */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) IO Master Interrupts: Status */ + + struct { + __IOM uint32_t THR : 1; /*!< [0..0] This is the FIFO threshold interrupt. */ + __IOM uint32_t OVF : 1; /*!< [1..1] This is the FIFO overflow interrupt. */ + __IOM uint32_t UNDFL : 1; /*!< [2..2] This is the FIFO underflow interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [3..3] DMA completed a transfer */ + __IOM uint32_t DERR : 1; /*!< [4..4] DMA Error receieved */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) IO Master Interrupts: Clear */ + + struct { + __IOM uint32_t THR : 1; /*!< [0..0] This is the FIFO threshold interrupt. */ + __IOM uint32_t OVF : 1; /*!< [1..1] This is the FIFO overflow interrupt. */ + __IOM uint32_t UNDFL : 1; /*!< [2..2] This is the FIFO underflow interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [3..3] DMA completed a transfer */ + __IOM uint32_t DERR : 1; /*!< [4..4] DMA Error receieved */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) IO Master Interrupts: Set */ + + struct { + __IOM uint32_t THR : 1; /*!< [0..0] This is the FIFO threshold interrupt. */ + __IOM uint32_t OVF : 1; /*!< [1..1] This is the FIFO overflow interrupt. */ + __IOM uint32_t UNDFL : 1; /*!< [2..2] This is the FIFO underflow interrupt. */ + __IOM uint32_t DCMP : 1; /*!< [3..3] DMA completed a transfer */ + __IOM uint32_t DERR : 1; /*!< [4..4] DMA Error receieved */ + } INTSET_b; + } ; + __IM uint32_t RESERVED1[12]; + + union { + __IOM uint32_t DMATRIGEN; /*!< (@ 0x00000240) DMA Trigger Enable Register */ + + struct { + __IOM uint32_t DTHR : 1; /*!< [0..0] Trigger DMA upon when FIFO iss filled to level indicated + by the FIFO THRESHOLD,at granularity of 16 bytes only */ + __IOM uint32_t DTHR90 : 1; /*!< [1..1] Trigger DMA at FIFO 90 percent full. This signal is also + used internally for AUTOHIP function */ + } DMATRIGEN_b; + } ; + + union { + __IOM uint32_t DMATRIGSTAT; /*!< (@ 0x00000244) DMA Trigger Status Register */ + + struct { + __IOM uint32_t DTHRSTAT : 1; /*!< [0..0] Triggered DMA from FIFO reaching threshold */ + __IOM uint32_t DTHR90STAT : 1; /*!< [1..1] Triggered DMA from FIFO reaching 90 percent full */ + } DMATRIGSTAT_b; + } ; + __IM uint32_t RESERVED2[14]; + + union { + __IOM uint32_t DMACFG; /*!< (@ 0x00000280) DMA Configuration Register */ + + struct { + __IOM uint32_t DMAEN : 1; /*!< [0..0] DMA Enable */ + __IM uint32_t : 1; + __IOM uint32_t DMADIR : 1; /*!< [2..2] Direction */ + __IM uint32_t : 5; + __IOM uint32_t DMAPRI : 1; /*!< [8..8] Sets the Priority of the DMA request */ + __IOM uint32_t DAUTOHIP : 1; /*!< [9..9] Raise priority to high on fifo full, and DMAPRI set to + low */ + __IOM uint32_t DPWROFF : 1; /*!< [10..10] Power Off the ADC System upon DMACPL. */ + } DMACFG_b; + } ; + __IM uint32_t RESERVED3; + + union { + __IOM uint32_t DMATOTCOUNT; /*!< (@ 0x00000288) DMA Total Transfer Count */ + + struct { + __IOM uint32_t TOTCOUNT : 20; /*!< [19..0] Total Transfer Count. The transfer count must be a multiple + of the THR setting to avoid DMA overruns. */ + } DMATOTCOUNT_b; + } ; + + union { + __IOM uint32_t DMATARGADDR; /*!< (@ 0x0000028C) DMA Target Address Register */ + + struct { + __IOM uint32_t LTARGADDR : 21; /*!< [20..0] DMA Target Address. This register is not updated with + the current address of the DMA, but will remain static + with the original address during the DMA transfer. */ + __IOM uint32_t UTARGADDR : 11; /*!< [31..21] SRAM Target */ + } DMATARGADDR_b; + } ; + + union { + __IOM uint32_t DMASTAT; /*!< (@ 0x00000290) DMA Status Register */ + + struct { + __IOM uint32_t DMATIP : 1; /*!< [0..0] DMA Transfer In Progress */ + __IOM uint32_t DMACPL : 1; /*!< [1..1] DMA Transfer Complete */ + __IOM uint32_t DMAERR : 1; /*!< [2..2] DMA Error */ + } DMASTAT_b; + } ; +} PDM_Type; /*!< Size = 660 (0x294) */ + + + +/* =========================================================================================================================== */ +/* ================ PWRCTRL ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief PWR Controller Register Bank (PWRCTRL) + */ + +typedef struct { /*!< (@ 0x40021000) PWRCTRL Structure */ + + union { + __IOM uint32_t SUPPLYSRC; /*!< (@ 0x00000000) Voltage Regulator Select Register */ + + struct { + __IOM uint32_t BLEBUCKEN : 1; /*!< [0..0] Enables and Selects the BLE Buck as the supply for the + BLE power domain or for Burst LDO. It takes the initial + value from Customer INFO space. Buck will be powered up + only if there is an active request for BLEH domain or Burst + mode and appropriate feature is allowed. */ + } SUPPLYSRC_b; + } ; + + union { + __IOM uint32_t SUPPLYSTATUS; /*!< (@ 0x00000004) Voltage Regulators status */ + + struct { + __IOM uint32_t SIMOBUCKON : 1; /*!< [0..0] Indicates whether the Core/Mem low-voltage domains are + supplied from the LDO or the Buck. */ + __IOM uint32_t BLEBUCKON : 1; /*!< [1..1] Indicates whether the BLE (if supported) domain and burst + (if supported) domain is supplied from the LDO or the Buck. + Buck will be powered up only if there is an active request + for BLEH domain or Burst mode and appropriate reature is + allowed. */ + } SUPPLYSTATUS_b; + } ; + + union { + __IOM uint32_t DEVPWREN; /*!< (@ 0x00000008) Device Power Enables */ + + struct { + __IOM uint32_t PWRIOS : 1; /*!< [0..0] Power up IO Slave */ + __IOM uint32_t PWRIOM0 : 1; /*!< [1..1] Power up IO Master 0 */ + __IOM uint32_t PWRIOM1 : 1; /*!< [2..2] Power up IO Master 1 */ + __IOM uint32_t PWRIOM2 : 1; /*!< [3..3] Power up IO Master 2 */ + __IOM uint32_t PWRIOM3 : 1; /*!< [4..4] Power up IO Master 3 */ + __IOM uint32_t PWRIOM4 : 1; /*!< [5..5] Power up IO Master 4 */ + __IOM uint32_t PWRIOM5 : 1; /*!< [6..6] Power up IO Master 5 */ + __IOM uint32_t PWRUART0 : 1; /*!< [7..7] Power up UART Controller 0 */ + __IOM uint32_t PWRUART1 : 1; /*!< [8..8] Power up UART Controller 1 */ + __IOM uint32_t PWRADC : 1; /*!< [9..9] Power up ADC Digital Controller */ + __IOM uint32_t PWRSCARD : 1; /*!< [10..10] Power up SCARD Controller */ + __IOM uint32_t PWRMSPI0 : 1; /*!< [11..11] Power up MSPI0 Controller */ + __IOM uint32_t PWRMSPI1 : 1; /*!< [12..12] Power up MSPI1 Controller */ + __IOM uint32_t PWRMSPI2 : 1; /*!< [13..13] Power up MSPI2 Controller */ + __IOM uint32_t PWRPDM : 1; /*!< [14..14] Power up PDM block */ + __IOM uint32_t PWRBLEL : 1; /*!< [15..15] Power up BLE controller */ + } DEVPWREN_b; + } ; + + union { + __IOM uint32_t MEMPWDINSLEEP; /*!< (@ 0x0000000C) Powerdown SRAM banks in Deep Sleep mode */ + + struct { + __IOM uint32_t DTCMPWDSLP : 3; /*!< [2..0] power down DTCM in deep sleep */ + __IOM uint32_t SRAMPWDSLP : 10; /*!< [12..3] Selects which SRAM banks are powered down in deep sleep + mode, causing the contents of the bank to be lost. */ + __IOM uint32_t FLASH0PWDSLP : 1; /*!< [13..13] Powerdown flash0 in deep sleep */ + __IOM uint32_t FLASH1PWDSLP : 1; /*!< [14..14] Powerdown flash1 in deep sleep */ + __IM uint32_t : 16; + __IOM uint32_t CACHEPWDSLP : 1; /*!< [31..31] power down cache in deep sleep */ + } MEMPWDINSLEEP_b; + } ; + + union { + __IOM uint32_t MEMPWREN; /*!< (@ 0x00000010) Enables individual banks of the MEMORY array */ + + struct { + __IOM uint32_t DTCM : 3; /*!< [2..0] Power up DTCM */ + __IOM uint32_t SRAM : 10; /*!< [12..3] Power up SRAM groups */ + __IOM uint32_t FLASH0 : 1; /*!< [13..13] Power up Flash group 0 (0MB-1MB) */ + __IOM uint32_t FLASH1 : 1; /*!< [14..14] Power up Flash group 1 (1MB-2MB) */ + __IM uint32_t : 15; + __IOM uint32_t CACHEB0 : 1; /*!< [30..30] Power up Cache Bank 0. This works in conjunction with + Cache enable from flash_cache module. To power up cache + bank0, cache has to be enabled and this bit has to be set. */ + __IOM uint32_t CACHEB2 : 1; /*!< [31..31] Power up Cache Bank 2. This works in conjunction with + Cache enable from flash_cache module. To power up cache + bank2, cache has to be enabled and this bit has to be set. */ + } MEMPWREN_b; + } ; + + union { + __IOM uint32_t MEMPWRSTATUS; /*!< (@ 0x00000014) Mem Power ON Status */ + + struct { + __IOM uint32_t DTCM00 : 1; /*!< [0..0] This bit is 1 if power is supplied to DTCM GROUP0_0 */ + __IOM uint32_t DTCM01 : 1; /*!< [1..1] This bit is 1 if power is supplied to DTCM GROUP0_1 */ + __IOM uint32_t DTCM1 : 1; /*!< [2..2] This bit is 1 if power is supplied to DTCM GROUP1 */ + __IOM uint32_t SRAM0 : 1; /*!< [3..3] This bit is 1 if power is supplied to SRAM GROUP0 */ + __IOM uint32_t SRAM1 : 1; /*!< [4..4] This bit is 1 if power is supplied to SRAM GROUP1 */ + __IOM uint32_t SRAM2 : 1; /*!< [5..5] This bit is 1 if power is supplied to SRAM GROUP2 */ + __IOM uint32_t SRAM3 : 1; /*!< [6..6] This bit is 1 if power is supplied to SRAM GROUP3 */ + __IOM uint32_t SRAM4 : 1; /*!< [7..7] This bit is 1 if power is supplied to SRAM GROUP4 */ + __IOM uint32_t SRAM5 : 1; /*!< [8..8] This bit is 1 if power is supplied to SRAM GROUP5 */ + __IOM uint32_t SRAM6 : 1; /*!< [9..9] This bit is 1 if power is supplied to SRAM GROUP6 */ + __IOM uint32_t SRAM7 : 1; /*!< [10..10] This bit is 1 if power is supplied to SRAM GROUP7 */ + __IOM uint32_t SRAM8 : 1; /*!< [11..11] This bit is 1 if power is supplied to SRAM GROUP8 */ + __IOM uint32_t SRAM9 : 1; /*!< [12..12] This bit is 1 if power is supplied to SRAM GROUP9 */ + __IOM uint32_t FLASH0 : 1; /*!< [13..13] This bit is 1 if power is supplied to FLASH group 0 */ + __IOM uint32_t FLASH1 : 1; /*!< [14..14] This bit is 1 if power is supplied to FLASH group 1 */ + __IOM uint32_t CACHEB0 : 1; /*!< [15..15] This bit is 1 if power is supplied to Cache Bank 0 */ + __IOM uint32_t CACHEB2 : 1; /*!< [16..16] This bit is 1 if power is supplied to Cache Bank 2 */ + } MEMPWRSTATUS_b; + } ; + + union { + __IOM uint32_t DEVPWRSTATUS; /*!< (@ 0x00000018) Device Power ON Status */ + + struct { + __IOM uint32_t MCUL : 1; /*!< [0..0] This bit is 1 if power is supplied to MCUL */ + __IOM uint32_t MCUH : 1; /*!< [1..1] This bit is 1 if power is supplied to MCUH */ + __IOM uint32_t HCPA : 1; /*!< [2..2] This bit is 1 if power is supplied to HCPA domain (IO + SLAVE, UART0, UART1, SCARD) */ + __IOM uint32_t HCPB : 1; /*!< [3..3] This bit is 1 if power is supplied to HCPB domain (IO + MASTER 0, 1, 2) */ + __IOM uint32_t HCPC : 1; /*!< [4..4] This bit is 1 if power is supplied to HCPC domain (IO + MASTER4, 5, 6) */ + __IOM uint32_t PWRADC : 1; /*!< [5..5] This bit is 1 if power is supplied to ADC */ + __IOM uint32_t PWRMSPI : 1; /*!< [6..6] This bit is 1 if power is supplied to MSPI */ + __IOM uint32_t PWRPDM : 1; /*!< [7..7] This bit is 1 if power is supplied to PDM */ + __IOM uint32_t BLEL : 1; /*!< [8..8] This bit is 1 if power is supplied to BLEL */ + __IOM uint32_t BLEH : 1; /*!< [9..9] This bit is 1 if power is supplied to BLEH */ + } DEVPWRSTATUS_b; + } ; + + union { + __IOM uint32_t SRAMCTRL; /*!< (@ 0x0000001C) SRAM Control register */ + + struct { + __IM uint32_t : 1; + __IOM uint32_t SRAMCLKGATE : 1; /*!< [1..1] This bit is 1 if clock gating is allowed for individual + system SRAMs */ + __IOM uint32_t SRAMMASTERCLKGATE : 1; /*!< [2..2] This bit is 1 when the master clock gate is enabled (top-level + clock gate for entire SRAM block) */ + __IM uint32_t : 5; + __IOM uint32_t SRAMLIGHTSLEEP : 12; /*!< [19..8] Light Sleep enable for each TCM/SRAM bank. When 1, corresponding + bank will be put into light sleep. For optimal power, banks + should be put into light sleep while the system is active + but the bank has minimal or no accesses. */ + } SRAMCTRL_b; + } ; + + union { + __IOM uint32_t ADCSTATUS; /*!< (@ 0x00000020) Power Status Register for ADC Block */ + + struct { + __IOM uint32_t ADCPWD : 1; /*!< [0..0] This bit indicates that the ADC is powered down */ + __IOM uint32_t BGTPWD : 1; /*!< [1..1] This bit indicates that the ADC Band Gap is powered down */ + __IOM uint32_t VPTATPWD : 1; /*!< [2..2] This bit indicates that the ADC temperature sensor input + buffer is powered down */ + __IOM uint32_t VBATPWD : 1; /*!< [3..3] This bit indicates that the ADC VBAT resistor divider + is powered down */ + __IOM uint32_t REFKEEPPWD : 1; /*!< [4..4] This bit indicates that the ADC REFKEEP is powered down */ + __IOM uint32_t REFBUFPWD : 1; /*!< [5..5] This bit indicates that the ADC REFBUF is powered down */ + } ADCSTATUS_b; + } ; + + union { + __IOM uint32_t MISC; /*!< (@ 0x00000024) Power Optimization Control Bits */ + + struct { + __IM uint32_t : 3; + __IOM uint32_t FORCEMEMVRLPTIMERS : 1; /*!< [3..3] Control Bit to force Mem VR to LP mode in deep sleep + even when hfrc based ctimer or stimer is running. */ + __IM uint32_t : 2; + __IOM uint32_t MEMVRLPBLE : 1; /*!< [6..6] Control Bit to let Mem VR go to lp mode in deep sleep + even when BLEL or BLEH is powered on given none of the + other domains require it. */ + } MISC_b; + } ; + + union { + __IOM uint32_t DEVPWREVENTEN; /*!< (@ 0x00000028) Event enable register to control which DEVPWRSTATUS + bits are routed to event input of CPU. */ + + struct { + __IOM uint32_t MCULEVEN : 1; /*!< [0..0] Control MCUL power-on status event */ + __IOM uint32_t MCUHEVEN : 1; /*!< [1..1] Control MCUH power-on status event */ + __IOM uint32_t HCPAEVEN : 1; /*!< [2..2] Control HCPA power-on status event */ + __IOM uint32_t HCPBEVEN : 1; /*!< [3..3] Control HCPB power-on status event */ + __IOM uint32_t HCPCEVEN : 1; /*!< [4..4] Control HCPC power-on status event */ + __IOM uint32_t ADCEVEN : 1; /*!< [5..5] Control ADC power-on status event */ + __IOM uint32_t MSPIEVEN : 1; /*!< [6..6] Control MSPI power-on status event */ + __IOM uint32_t PDMEVEN : 1; /*!< [7..7] Control PDM power-on status event */ + __IOM uint32_t BLELEVEN : 1; /*!< [8..8] Control BLE power-on status event */ + __IM uint32_t : 20; + __IOM uint32_t BLEFEATUREEVEN : 1; /*!< [29..29] Control BLEFEATURE status event */ + __IOM uint32_t BURSTFEATUREEVEN : 1; /*!< [30..30] Control BURSTFEATURE status event */ + __IOM uint32_t BURSTEVEN : 1; /*!< [31..31] Control BURST status event */ + } DEVPWREVENTEN_b; + } ; + + union { + __IOM uint32_t MEMPWREVENTEN; /*!< (@ 0x0000002C) Event enable register to control which MEMPWRSTATUS + bits are routed to event input of CPU. */ + + struct { + __IOM uint32_t DTCMEN : 3; /*!< [2..0] Enable DTCM power-on status event */ + __IOM uint32_t SRAMEN : 10; /*!< [12..3] Control SRAM power-on status event */ + __IOM uint32_t FLASH0EN : 1; /*!< [13..13] Control Flash power-on status event */ + __IOM uint32_t FLASH1EN : 1; /*!< [14..14] Control Flash power-on status event */ + __IM uint32_t : 15; + __IOM uint32_t CACHEB0EN : 1; /*!< [30..30] Control CACHE BANK 0 power-on status event */ + __IOM uint32_t CACHEB2EN : 1; /*!< [31..31] Control CACHEB2 power-on status event */ + } MEMPWREVENTEN_b; + } ; +} PWRCTRL_Type; /*!< Size = 48 (0x30) */ + + + +/* =========================================================================================================================== */ +/* ================ RSTGEN ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief MCU Reset Generator (RSTGEN) + */ + +typedef struct { /*!< (@ 0x40000000) RSTGEN Structure */ + + union { + __IOM uint32_t CFG; /*!< (@ 0x00000000) Configuration Register */ + + struct { + __IOM uint32_t BODHREN : 1; /*!< [0..0] Brown out high (2.1v) reset enable. */ + __IOM uint32_t WDREN : 1; /*!< [1..1] Watchdog Timer Reset Enable. NOTE: The WDT module must + also be configured for WDT reset. This includes enabling + the RESEN bit in WDTCFG register in Watch dog timer block. */ + } CFG_b; + } ; + + union { + __IOM uint32_t SWPOI; /*!< (@ 0x00000004) Software POI Reset */ + + struct { + __IOM uint32_t SWPOIKEY : 8; /*!< [7..0] 0x1B generates a software POI reset. This is a write-only + register. Reading from this register will yield only all + 0s. */ + } SWPOI_b; + } ; + + union { + __IOM uint32_t SWPOR; /*!< (@ 0x00000008) Software POR Reset */ + + struct { + __IOM uint32_t SWPORKEY : 8; /*!< [7..0] 0xD4 generates a software POR reset. */ + } SWPOR_b; + } ; + __IM uint32_t RESERVED[2]; + + union { + __IOM uint32_t TPIURST; /*!< (@ 0x00000014) TPIU reset */ + + struct { + __IOM uint32_t TPIURST : 1; /*!< [0..0] Static reset for the TPIU. Write to '1' to assert reset + to TPIU. Write to '0' to clear the reset. */ + } TPIURST_b; + } ; + __IM uint32_t RESERVED1[122]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) Reset Interrupt register: Enable */ + + struct { + __IOM uint32_t BODH : 1; /*!< [0..0] Enables an interrupt that triggers when VCC is below + BODH level. */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) Reset Interrupt register: Status */ + + struct { + __IOM uint32_t BODH : 1; /*!< [0..0] Enables an interrupt that triggers when VCC is below + BODH level. */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) Reset Interrupt register: Clear */ + + struct { + __IOM uint32_t BODH : 1; /*!< [0..0] Enables an interrupt that triggers when VCC is below + BODH level. */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) Reset Interrupt register: Set */ + + struct { + __IOM uint32_t BODH : 1; /*!< [0..0] Enables an interrupt that triggers when VCC is below + BODH level. */ + } INTSET_b; + } ; + __IM uint32_t RESERVED2[67107708]; + + union { + __IOM uint32_t STAT; /*!< (@ 0x0FFFF000) Status Register (SBL) */ + + struct { + __IOM uint32_t EXRSTAT : 1; /*!< [0..0] Reset was initiated by an External Reset (SBL). */ + __IOM uint32_t PORSTAT : 1; /*!< [1..1] Reset was initiated by a Power-On Reset (SBL). */ + __IOM uint32_t BORSTAT : 1; /*!< [2..2] Reset was initiated by a Brown-Out Reset (SBL). */ + __IOM uint32_t SWRSTAT : 1; /*!< [3..3] Reset was a initiated by SW POR or AIRCR Reset (SBL). */ + __IOM uint32_t POIRSTAT : 1; /*!< [4..4] Reset was a initiated by Software POI Reset (SBL). */ + __IOM uint32_t DBGRSTAT : 1; /*!< [5..5] Reset was a initiated by Debugger Reset (SBL). */ + __IOM uint32_t WDRSTAT : 1; /*!< [6..6] Reset was initiated by a Watchdog Timer Reset (SBL). */ + __IOM uint32_t BOUSTAT : 1; /*!< [7..7] An Unregulated Supply Brownout Event occurred (SBL). */ + __IOM uint32_t BOCSTAT : 1; /*!< [8..8] A Core Regulator Brownout Event occurred (SBL). */ + __IOM uint32_t BOFSTAT : 1; /*!< [9..9] A Memory Regulator Brownout Event occurred (SBL). */ + __IOM uint32_t BOBSTAT : 1; /*!< [10..10] A BLE/Burst Regulator Brownout Event occurred (SBL). */ + __IM uint32_t : 19; + __IOM uint32_t FBOOT : 1; /*!< [30..30] Set if current boot was initiated by soft reset and + resulted in Fast Boot (SBL). */ + __IOM uint32_t SBOOT : 1; /*!< [31..31] Set when booting securely (SBL). */ + } STAT_b; + } ; +} RSTGEN_Type; /*!< Size = 268431364 (0xffff004) */ + + + +/* =========================================================================================================================== */ +/* ================ RTC ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Real Time Clock (RTC) + */ + +typedef struct { /*!< (@ 0x40004200) RTC Structure */ + __IM uint32_t RESERVED[16]; + + union { + __IOM uint32_t CTRLOW; /*!< (@ 0x00000040) RTC Counters Lower */ + + struct { + __IOM uint32_t CTR100 : 8; /*!< [7..0] 100ths of a second Counter */ + __IOM uint32_t CTRSEC : 7; /*!< [14..8] Seconds Counter */ + __IM uint32_t : 1; + __IOM uint32_t CTRMIN : 7; /*!< [22..16] Minutes Counter */ + __IM uint32_t : 1; + __IOM uint32_t CTRHR : 6; /*!< [29..24] Hours Counter */ + } CTRLOW_b; + } ; + + union { + __IOM uint32_t CTRUP; /*!< (@ 0x00000044) RTC Counters Upper */ + + struct { + __IOM uint32_t CTRDATE : 6; /*!< [5..0] Date Counter */ + __IM uint32_t : 2; + __IOM uint32_t CTRMO : 5; /*!< [12..8] Months Counter */ + __IM uint32_t : 3; + __IOM uint32_t CTRYR : 8; /*!< [23..16] Years Counter */ + __IOM uint32_t CTRWKDY : 3; /*!< [26..24] Weekdays Counter */ + __IOM uint32_t CB : 1; /*!< [27..27] Century */ + __IOM uint32_t CEB : 1; /*!< [28..28] Century enable */ + __IM uint32_t : 2; + __IOM uint32_t CTERR : 1; /*!< [31..31] Counter read error status. Error is triggered when + software reads the lower word of the counters, and fails + to read the upper counter within 1/100 second. This is + because when the lower counter is read, the upper counter + is held off from incrementing until it is read so that + the full time stamp can be read. */ + } CTRUP_b; + } ; + + union { + __IOM uint32_t ALMLOW; /*!< (@ 0x00000048) RTC Alarms Lower */ + + struct { + __IOM uint32_t ALM100 : 8; /*!< [7..0] 100ths of a second Alarm */ + __IOM uint32_t ALMSEC : 7; /*!< [14..8] Seconds Alarm */ + __IM uint32_t : 1; + __IOM uint32_t ALMMIN : 7; /*!< [22..16] Minutes Alarm */ + __IM uint32_t : 1; + __IOM uint32_t ALMHR : 6; /*!< [29..24] Hours Alarm */ + } ALMLOW_b; + } ; + + union { + __IOM uint32_t ALMUP; /*!< (@ 0x0000004C) RTC Alarms Upper */ + + struct { + __IOM uint32_t ALMDATE : 6; /*!< [5..0] Date Alarm */ + __IM uint32_t : 2; + __IOM uint32_t ALMMO : 5; /*!< [12..8] Months Alarm */ + __IM uint32_t : 3; + __IOM uint32_t ALMWKDY : 3; /*!< [18..16] Weekdays Alarm */ + } ALMUP_b; + } ; + + union { + __IOM uint32_t RTCCTL; /*!< (@ 0x00000050) RTC Control Register */ + + struct { + __IOM uint32_t WRTC : 1; /*!< [0..0] Counter write control */ + __IOM uint32_t RPT : 3; /*!< [3..1] Alarm repeat interval */ + __IOM uint32_t RSTOP : 1; /*!< [4..4] RTC input clock control */ + __IOM uint32_t HR1224 : 1; /*!< [5..5] Hours Counter mode */ + } RTCCTL_b; + } ; + __IM uint32_t RESERVED1[43]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000100) RTC Interrupt Register: Enable */ + + struct { + __IOM uint32_t ALM : 1; /*!< [0..0] RTC Alarm interrupt */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000104) RTC Interrupt Register: Status */ + + struct { + __IOM uint32_t ALM : 1; /*!< [0..0] RTC Alarm interrupt */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000108) RTC Interrupt Register: Clear */ + + struct { + __IOM uint32_t ALM : 1; /*!< [0..0] RTC Alarm interrupt */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000010C) RTC Interrupt Register: Set */ + + struct { + __IOM uint32_t ALM : 1; /*!< [0..0] RTC Alarm interrupt */ + } INTSET_b; + } ; +} RTC_Type; /*!< Size = 272 (0x110) */ + + + +/* =========================================================================================================================== */ +/* ================ SCARD ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Serial ISO7816 (SCARD) + */ + +typedef struct { /*!< (@ 0x40080000) SCARD Structure */ + + union { + __IOM uint32_t SR; /*!< (@ 0x00000000) ISO7816 interrupt status */ + + struct { + __IOM uint32_t FNE : 1; /*!< [0..0] RX FIFO not empty. */ + __IOM uint32_t TBERBF : 1; /*!< [1..1] FIFO empty (transmit) or full (receive). */ + __IOM uint32_t FER : 1; /*!< [2..2] Framing error. */ + __IOM uint32_t OVR : 1; /*!< [3..3] RX FIFO overflow. */ + __IOM uint32_t PE : 1; /*!< [4..4] Parity Error. */ + __IOM uint32_t FT2REND : 1; /*!< [5..5] TX to RX finished. */ + __IOM uint32_t FHF : 1; /*!< [6..6] FIFO Half Full. */ + } SR_b; + } ; + + union { + __IOM uint32_t IER; /*!< (@ 0x00000004) ISO7816 interrupt enable */ + + struct { + __IOM uint32_t FNEEN : 1; /*!< [0..0] RX FIFO not empty interrupt enable. */ + __IOM uint32_t TBERBFEN : 1; /*!< [1..1] FIFO empty (transmit) or full (receive) interrupt enable. */ + __IOM uint32_t FEREN : 1; /*!< [2..2] Framing error interrupt enable. */ + __IOM uint32_t OVREN : 1; /*!< [3..3] RX FIFOI overflow interrupt enable. */ + __IOM uint32_t PEEN : 1; /*!< [4..4] Parity Error interrupt enable. */ + __IOM uint32_t FT2RENDEN : 1; /*!< [5..5] TX to RX finished interrupt enable. */ + __IOM uint32_t FHFEN : 1; /*!< [6..6] FIFO Half Full interrupt enable. */ + } IER_b; + } ; + + union { + __IOM uint32_t TCR; /*!< (@ 0x00000008) ISO7816 transmit control */ + + struct { + __IOM uint32_t CONV : 1; /*!< [0..0] Conversion inversion control. */ + __IOM uint32_t SS : 1; /*!< [1..1] Use first byte to configure conversion. */ + __IOM uint32_t LCT : 1; /*!< [2..2] Fast TX to RX. */ + __IOM uint32_t TR : 1; /*!< [3..3] Transmit/receive mode. */ + __IOM uint32_t PROT : 1; /*!< [4..4] PROT control. */ + __IOM uint32_t AUTOCONV : 1; /*!< [5..5] Automatic conversion. */ + __IOM uint32_t FIP : 1; /*!< [6..6] Parity select. */ + __IOM uint32_t DMAMD : 1; /*!< [7..7] DMA direction. */ + } TCR_b; + } ; + + union { + __IOM uint32_t UCR; /*!< (@ 0x0000000C) ISO7816 user control */ + + struct { + __IOM uint32_t CST : 1; /*!< [0..0] Clock control. */ + __IOM uint32_t RIU : 1; /*!< [1..1] ISO7816 reset. This bit is write-only. */ + __IOM uint32_t RSTIN : 1; /*!< [2..2] Reset polarity. */ + __IOM uint32_t RETXEN : 1; /*!< [3..3] Enable TX/RX time configuration. */ + } UCR_b; + } ; + + union { + __IOM uint32_t DR; /*!< (@ 0x00000010) ISO7816 data */ + + struct { + __IOM uint32_t DR : 8; /*!< [7..0] Data register. */ + } DR_b; + } ; + + union { + __IOM uint32_t BPRL; /*!< (@ 0x00000014) ISO7816 baud rate low */ + + struct { + __IOM uint32_t BPRL : 8; /*!< [7..0] Baud rate low */ + } BPRL_b; + } ; + + union { + __IOM uint32_t BPRH; /*!< (@ 0x00000018) ISO7816 baud rate high */ + + struct { + __IOM uint32_t BPRH : 4; /*!< [3..0] Baud rate high */ + } BPRH_b; + } ; + + union { + __IOM uint32_t UCR1; /*!< (@ 0x0000001C) ISO7816 user control 1 */ + + struct { + __IOM uint32_t PR : 1; /*!< [0..0] Query Card Detect. */ + __IM uint32_t : 1; + __IOM uint32_t STSP : 1; /*!< [2..2] ETU counter control. This bit is write-only. */ + __IOM uint32_t T1PAREN : 1; /*!< [3..3] Parity check control. */ + __IOM uint32_t CLKIOV : 1; /*!< [4..4] Output clock level. */ + __IOM uint32_t ENLASTB : 1; /*!< [5..5] Enable last byte function. */ + } UCR1_b; + } ; + + union { + __IOM uint32_t SR1; /*!< (@ 0x00000020) ISO7816 interrupt status 1 */ + + struct { + __IOM uint32_t ECNTOVER : 1; /*!< [0..0] ETU counter overflow. */ + __IOM uint32_t PRL : 1; /*!< [1..1] Card insert/remove. */ + __IOM uint32_t SYNCEND : 1; /*!< [2..2] Write complete synchronization. */ + __IOM uint32_t IDLE : 1; /*!< [3..3] ISO7816 idle. */ + } SR1_b; + } ; + + union { + __IOM uint32_t IER1; /*!< (@ 0x00000024) ISO7816 interrupt enable 1 */ + + struct { + __IOM uint32_t ECNTOVEREN : 1; /*!< [0..0] ETU counter overflow interrupt enable. */ + __IOM uint32_t PRLEN : 1; /*!< [1..1] Card insert/remove interrupt enable. */ + __IOM uint32_t SYNCENDEN : 1; /*!< [2..2] Write complete synchronization interrupt enable. */ + } IER1_b; + } ; + + union { + __IOM uint32_t ECNTL; /*!< (@ 0x00000028) ETU counter low */ + + struct { + __IOM uint32_t ECNTL : 8; /*!< [7..0] ETU counter low register. */ + } ECNTL_b; + } ; + + union { + __IOM uint32_t ECNTH; /*!< (@ 0x0000002C) ETU counter high */ + + struct { + __IOM uint32_t ECNTH : 8; /*!< [7..0] ETU counter high register. */ + } ECNTH_b; + } ; + + union { + __IOM uint32_t GTR; /*!< (@ 0x00000030) ISO7816 guard time configuration */ + + struct { + __IOM uint32_t GTR : 8; /*!< [7..0] Guard time configuration register. */ + } GTR_b; + } ; + + union { + __IOM uint32_t RETXCNT; /*!< (@ 0x00000034) ISO7816 resend count */ + + struct { + __IOM uint32_t RETXCNT : 4; /*!< [3..0] Resend count register. */ + } RETXCNT_b; + } ; + + union { + __IOM uint32_t RETXCNTRMI; /*!< (@ 0x00000038) ISO7816 resent count inquiry */ + + struct { + __IOM uint32_t RETXCNTRMI : 4; /*!< [3..0] Resent count inquiry register. */ + } RETXCNTRMI_b; + } ; + __IM uint32_t RESERVED[49]; + + union { + __IOM uint32_t CLKCTRL; /*!< (@ 0x00000100) Clock Control */ + + struct { + __IOM uint32_t CLKEN : 1; /*!< [0..0] Enable the serial source clock for SCARD. */ + __IOM uint32_t APBCLKEN : 1; /*!< [1..1] Enable the SCARD APB clock to run continuously. */ + } CLKCTRL_b; + } ; +} SCARD_Type; /*!< Size = 260 (0x104) */ + + + +/* =========================================================================================================================== */ +/* ================ SECURITY ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Security Interfaces (SECURITY) + */ + +typedef struct { /*!< (@ 0x40030000) SECURITY Structure */ + + union { + __IOM uint32_t CTRL; /*!< (@ 0x00000000) Control Register */ + + struct { + __IOM uint32_t ENABLE : 1; /*!< [0..0] Function Enable. Software should set the ENABLE bit to + initiate a CRC operation. Hardware will clear the ENABLE + bit upon completion. */ + __IM uint32_t : 3; + __IOM uint32_t FUNCTION : 4; /*!< [7..4] Function Select */ + __IM uint32_t : 23; + __IOM uint32_t CRCERROR : 1; /*!< [31..31] CRC Error Status - Set to 1 if an error occurs during + a CRC operation. Cleared when CTRL register is written + (with any value). Usually indicates an invalid address + range. */ + } CTRL_b; + } ; + __IM uint32_t RESERVED[3]; + + union { + __IOM uint32_t SRCADDR; /*!< (@ 0x00000010) Source Addresss */ + + struct { + __IOM uint32_t ADDR : 32; /*!< [31..0] Source Buffer Address. Address may be byte aligned, + but the length must be a multiple of 4 bits. */ + } SRCADDR_b; + } ; + __IM uint32_t RESERVED1[3]; + + union { + __IOM uint32_t LEN; /*!< (@ 0x00000020) Length */ + + struct { + __IM uint32_t : 2; + __IOM uint32_t LEN : 22; /*!< [23..2] Buffer size (bottom two bits assumed to be zero to ensure + a multiple of 4 bytes) */ + } LEN_b; + } ; + __IM uint32_t RESERVED2[3]; + + union { + __IOM uint32_t RESULT; /*!< (@ 0x00000030) CRC Seed/Result Register */ + + struct { + __IOM uint32_t CRC : 32; /*!< [31..0] CRC Seed/Result. Software must seed the CRC with 0xFFFFFFFF + before starting a CRC operation (unless the CRC is continued + from a previous operation). */ + } RESULT_b; + } ; + __IM uint32_t RESERVED3[17]; + + union { + __IOM uint32_t LOCKCTRL; /*!< (@ 0x00000078) LOCK Control Register */ + + struct { + __IOM uint32_t SELECT : 8; /*!< [7..0] LOCK Function Select register. */ + } LOCKCTRL_b; + } ; + + union { + __IOM uint32_t LOCKSTAT; /*!< (@ 0x0000007C) LOCK Status Register */ + + struct { + __IOM uint32_t STATUS : 32; /*!< [31..0] LOCK Status register. This register is a bitmask for + which resources are currently unlocked. These bits are + one-hot per resource. */ + } LOCKSTAT_b; + } ; + + union { + __IOM uint32_t KEY0; /*!< (@ 0x00000080) Key0 Register */ + + struct { + __IOM uint32_t KEY0 : 32; /*!< [31..0] Bits [31:0] of the 128-bit key should be written to + this register. To protect key values, the register always + returns 0x00000000. */ + } KEY0_b; + } ; + + union { + __IOM uint32_t KEY1; /*!< (@ 0x00000084) Key1 Register */ + + struct { + __IOM uint32_t KEY1 : 32; /*!< [31..0] Bits [63:32] of the 128-bit key should be written to + this register. To protect key values, the register always + returns 0x00000000. */ + } KEY1_b; + } ; + + union { + __IOM uint32_t KEY2; /*!< (@ 0x00000088) Key2 Register */ + + struct { + __IOM uint32_t KEY2 : 32; /*!< [31..0] Bits [95:64] of the 128-bit key should be written to + this register. To protect key values, the register always + returns 0x00000000. */ + } KEY2_b; + } ; + + union { + __IOM uint32_t KEY3; /*!< (@ 0x0000008C) Key3 Register */ + + struct { + __IOM uint32_t KEY3 : 32; /*!< [31..0] Bits [127:96] of the 128-bit key should be written to + this register. To protect key values, the register always + returns 0x00000000. */ + } KEY3_b; + } ; +} SECURITY_Type; /*!< Size = 144 (0x90) */ + + + +/* =========================================================================================================================== */ +/* ================ UART0 ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Serial UART (UART0) + */ + +typedef struct { /*!< (@ 0x4001C000) UART0 Structure */ + + union { + __IOM uint32_t DR; /*!< (@ 0x00000000) UART Data Register */ + + struct { + __IOM uint32_t DATA : 8; /*!< [7..0] This is the UART data port. */ + __IOM uint32_t FEDATA : 1; /*!< [8..8] This is the framing error indicator. */ + __IOM uint32_t PEDATA : 1; /*!< [9..9] This is the parity error indicator. */ + __IOM uint32_t BEDATA : 1; /*!< [10..10] This is the break error indicator. */ + __IOM uint32_t OEDATA : 1; /*!< [11..11] This is the overrun error indicator. */ + } DR_b; + } ; + + union { + __IOM uint32_t RSR; /*!< (@ 0x00000004) UART Status Register */ + + struct { + __IOM uint32_t FESTAT : 1; /*!< [0..0] This is the framing error indicator. */ + __IOM uint32_t PESTAT : 1; /*!< [1..1] This is the parity error indicator. */ + __IOM uint32_t BESTAT : 1; /*!< [2..2] This is the break error indicator. */ + __IOM uint32_t OESTAT : 1; /*!< [3..3] This is the overrun error indicator. */ + } RSR_b; + } ; + __IM uint32_t RESERVED[4]; + + union { + __IOM uint32_t FR; /*!< (@ 0x00000018) Flag Register */ + + struct { + __IOM uint32_t CTS : 1; /*!< [0..0] This bit holds the clear to send indicator. */ + __IOM uint32_t DSR : 1; /*!< [1..1] This bit holds the data set ready indicator. */ + __IOM uint32_t DCD : 1; /*!< [2..2] This bit holds the data carrier detect indicator. */ + __IOM uint32_t BUSY : 1; /*!< [3..3] This bit holds the busy indicator. */ + __IOM uint32_t RXFE : 1; /*!< [4..4] This bit holds the receive FIFO empty indicator. */ + __IOM uint32_t TXFF : 1; /*!< [5..5] This bit holds the transmit FIFO full indicator. */ + __IOM uint32_t RXFF : 1; /*!< [6..6] This bit holds the receive FIFO full indicator. */ + __IOM uint32_t TXFE : 1; /*!< [7..7] This bit holds the transmit FIFO empty indicator. */ + __IOM uint32_t TXBUSY : 1; /*!< [8..8] This bit holds the transmit BUSY indicator. */ + } FR_b; + } ; + __IM uint32_t RESERVED1; + + union { + __IOM uint32_t ILPR; /*!< (@ 0x00000020) IrDA Counter */ + + struct { + __IOM uint32_t ILPDVSR : 8; /*!< [7..0] These bits hold the IrDA counter divisor. */ + } ILPR_b; + } ; + + union { + __IOM uint32_t IBRD; /*!< (@ 0x00000024) Integer Baud Rate Divisor */ + + struct { + __IOM uint32_t DIVINT : 16; /*!< [15..0] These bits hold the baud integer divisor. */ + } IBRD_b; + } ; + + union { + __IOM uint32_t FBRD; /*!< (@ 0x00000028) Fractional Baud Rate Divisor */ + + struct { + __IOM uint32_t DIVFRAC : 6; /*!< [5..0] These bits hold the baud fractional divisor. */ + } FBRD_b; + } ; + + union { + __IOM uint32_t LCRH; /*!< (@ 0x0000002C) Line Control High */ + + struct { + __IOM uint32_t BRK : 1; /*!< [0..0] This bit holds the break set. */ + __IOM uint32_t PEN : 1; /*!< [1..1] This bit holds the parity enable. */ + __IOM uint32_t EPS : 1; /*!< [2..2] This bit holds the even parity select. */ + __IOM uint32_t STP2 : 1; /*!< [3..3] This bit holds the two stop bits select. */ + __IOM uint32_t FEN : 1; /*!< [4..4] This bit holds the FIFO enable. */ + __IOM uint32_t WLEN : 2; /*!< [6..5] These bits hold the write length. */ + __IOM uint32_t SPS : 1; /*!< [7..7] This bit holds the stick parity select. */ + } LCRH_b; + } ; + + union { + __IOM uint32_t CR; /*!< (@ 0x00000030) Control Register */ + + struct { + __IOM uint32_t UARTEN : 1; /*!< [0..0] This bit is the UART enable. */ + __IOM uint32_t SIREN : 1; /*!< [1..1] This bit is the SIR ENDEC enable. */ + __IOM uint32_t SIRLP : 1; /*!< [2..2] This bit is the SIR low power select. */ + __IOM uint32_t CLKEN : 1; /*!< [3..3] This bit is the UART clock enable. */ + __IOM uint32_t CLKSEL : 3; /*!< [6..4] This bitfield is the UART clock select. */ + __IOM uint32_t LBE : 1; /*!< [7..7] This bit is the loopback enable. */ + __IOM uint32_t TXE : 1; /*!< [8..8] This bit is the transmit enable. */ + __IOM uint32_t RXE : 1; /*!< [9..9] This bit is the receive enable. */ + __IOM uint32_t DTR : 1; /*!< [10..10] This bit enables data transmit ready. */ + __IOM uint32_t RTS : 1; /*!< [11..11] This bit enables request to send. */ + __IOM uint32_t OUT1 : 1; /*!< [12..12] This bit holds modem Out1. */ + __IOM uint32_t OUT2 : 1; /*!< [13..13] This bit holds modem Out2. */ + __IOM uint32_t RTSEN : 1; /*!< [14..14] This bit enables RTS hardware flow control. */ + __IOM uint32_t CTSEN : 1; /*!< [15..15] This bit enables CTS hardware flow control. */ + } CR_b; + } ; + + union { + __IOM uint32_t IFLS; /*!< (@ 0x00000034) FIFO Interrupt Level Select */ + + struct { + __IOM uint32_t TXIFLSEL : 3; /*!< [2..0] These bits hold the transmit FIFO interrupt level. */ + __IOM uint32_t RXIFLSEL : 3; /*!< [5..3] These bits hold the receive FIFO interrupt level. */ + } IFLS_b; + } ; + + union { + __IOM uint32_t IER; /*!< (@ 0x00000038) Interrupt Enable */ + + struct { + __IOM uint32_t TXCMPMIM : 1; /*!< [0..0] This bit holds the modem TXCMP interrupt enable. */ + __IOM uint32_t CTSMIM : 1; /*!< [1..1] This bit holds the modem CTS interrupt enable. */ + __IOM uint32_t DCDMIM : 1; /*!< [2..2] This bit holds the modem DCD interrupt enable. */ + __IOM uint32_t DSRMIM : 1; /*!< [3..3] This bit holds the modem DSR interrupt enable. */ + __IOM uint32_t RXIM : 1; /*!< [4..4] This bit holds the receive interrupt enable. */ + __IOM uint32_t TXIM : 1; /*!< [5..5] This bit holds the transmit interrupt enable. */ + __IOM uint32_t RTIM : 1; /*!< [6..6] This bit holds the receive timeout interrupt enable. */ + __IOM uint32_t FEIM : 1; /*!< [7..7] This bit holds the framing error interrupt enable. */ + __IOM uint32_t PEIM : 1; /*!< [8..8] This bit holds the parity error interrupt enable. */ + __IOM uint32_t BEIM : 1; /*!< [9..9] This bit holds the break error interrupt enable. */ + __IOM uint32_t OEIM : 1; /*!< [10..10] This bit holds the overflow interrupt enable. */ + } IER_b; + } ; + + union { + __IOM uint32_t IES; /*!< (@ 0x0000003C) Interrupt Status */ + + struct { + __IOM uint32_t TXCMPMRIS : 1; /*!< [0..0] This bit holds the modem TXCMP interrupt status. */ + __IOM uint32_t CTSMRIS : 1; /*!< [1..1] This bit holds the modem CTS interrupt status. */ + __IOM uint32_t DCDMRIS : 1; /*!< [2..2] This bit holds the modem DCD interrupt status. */ + __IOM uint32_t DSRMRIS : 1; /*!< [3..3] This bit holds the modem DSR interrupt status. */ + __IOM uint32_t RXRIS : 1; /*!< [4..4] This bit holds the receive interrupt status. */ + __IOM uint32_t TXRIS : 1; /*!< [5..5] This bit holds the transmit interrupt status. */ + __IOM uint32_t RTRIS : 1; /*!< [6..6] This bit holds the receive timeout interrupt status. */ + __IOM uint32_t FERIS : 1; /*!< [7..7] This bit holds the framing error interrupt status. */ + __IOM uint32_t PERIS : 1; /*!< [8..8] This bit holds the parity error interrupt status. */ + __IOM uint32_t BERIS : 1; /*!< [9..9] This bit holds the break error interrupt status. */ + __IOM uint32_t OERIS : 1; /*!< [10..10] This bit holds the overflow interrupt status. */ + } IES_b; + } ; + + union { + __IOM uint32_t MIS; /*!< (@ 0x00000040) Masked Interrupt Status */ + + struct { + __IOM uint32_t TXCMPMMIS : 1; /*!< [0..0] This bit holds the modem TXCMP interrupt status masked. */ + __IOM uint32_t CTSMMIS : 1; /*!< [1..1] This bit holds the modem CTS interrupt status masked. */ + __IOM uint32_t DCDMMIS : 1; /*!< [2..2] This bit holds the modem DCD interrupt status masked. */ + __IOM uint32_t DSRMMIS : 1; /*!< [3..3] This bit holds the modem DSR interrupt status masked. */ + __IOM uint32_t RXMIS : 1; /*!< [4..4] This bit holds the receive interrupt status masked. */ + __IOM uint32_t TXMIS : 1; /*!< [5..5] This bit holds the transmit interrupt status masked. */ + __IOM uint32_t RTMIS : 1; /*!< [6..6] This bit holds the receive timeout interrupt status masked. */ + __IOM uint32_t FEMIS : 1; /*!< [7..7] This bit holds the framing error interrupt status masked. */ + __IOM uint32_t PEMIS : 1; /*!< [8..8] This bit holds the parity error interrupt status masked. */ + __IOM uint32_t BEMIS : 1; /*!< [9..9] This bit holds the break error interrupt status masked. */ + __IOM uint32_t OEMIS : 1; /*!< [10..10] This bit holds the overflow interrupt status masked. */ + } MIS_b; + } ; + + union { + __IOM uint32_t IEC; /*!< (@ 0x00000044) Interrupt Clear */ + + struct { + __IOM uint32_t TXCMPMIC : 1; /*!< [0..0] This bit holds the modem TXCMP interrupt clear. */ + __IOM uint32_t CTSMIC : 1; /*!< [1..1] This bit holds the modem CTS interrupt clear. */ + __IOM uint32_t DCDMIC : 1; /*!< [2..2] This bit holds the modem DCD interrupt clear. */ + __IOM uint32_t DSRMIC : 1; /*!< [3..3] This bit holds the modem DSR interrupt clear. */ + __IOM uint32_t RXIC : 1; /*!< [4..4] This bit holds the receive interrupt clear. */ + __IOM uint32_t TXIC : 1; /*!< [5..5] This bit holds the transmit interrupt clear. */ + __IOM uint32_t RTIC : 1; /*!< [6..6] This bit holds the receive timeout interrupt clear. */ + __IOM uint32_t FEIC : 1; /*!< [7..7] This bit holds the framing error interrupt clear. */ + __IOM uint32_t PEIC : 1; /*!< [8..8] This bit holds the parity error interrupt clear. */ + __IOM uint32_t BEIC : 1; /*!< [9..9] This bit holds the break error interrupt clear. */ + __IOM uint32_t OEIC : 1; /*!< [10..10] This bit holds the overflow interrupt clear. */ + } IEC_b; + } ; +} UART0_Type; /*!< Size = 72 (0x48) */ + + + +/* =========================================================================================================================== */ +/* ================ VCOMP ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Voltage Comparator (VCOMP) + */ + +typedef struct { /*!< (@ 0x4000C000) VCOMP Structure */ + + union { + __IOM uint32_t CFG; /*!< (@ 0x00000000) Configuration Register */ + + struct { + __IOM uint32_t PSEL : 2; /*!< [1..0] This bitfield selects the positive input to the comparator. */ + __IM uint32_t : 6; + __IOM uint32_t NSEL : 2; /*!< [9..8] This bitfield selects the negative input to the comparator. */ + __IM uint32_t : 6; + __IOM uint32_t LVLSEL : 4; /*!< [19..16] When the reference input NSEL is set to NSEL_DAC, this + bitfield selects the voltage level for the negative input + to the comparator. */ + } CFG_b; + } ; + + union { + __IOM uint32_t STAT; /*!< (@ 0x00000004) Status Register */ + + struct { + __IOM uint32_t CMPOUT : 1; /*!< [0..0] This bit is 1 if the positive input of the comparator + is greater than the negative input. */ + __IOM uint32_t PWDSTAT : 1; /*!< [1..1] This bit indicates the power down state of the voltage + comparator. */ + } STAT_b; + } ; + + union { + __IOM uint32_t PWDKEY; /*!< (@ 0x00000008) Key Register for Powering Down the Voltage Comparator */ + + struct { + __IOM uint32_t PWDKEY : 32; /*!< [31..0] Key register value. */ + } PWDKEY_b; + } ; + __IM uint32_t RESERVED[125]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) Voltage Comparator Interrupt registers: Enable */ + + struct { + __IOM uint32_t OUTLOW : 1; /*!< [0..0] This bit is the vcompout low interrupt. */ + __IOM uint32_t OUTHI : 1; /*!< [1..1] This bit is the vcompout high interrupt. */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) Voltage Comparator Interrupt registers: Status */ + + struct { + __IOM uint32_t OUTLOW : 1; /*!< [0..0] This bit is the vcompout low interrupt. */ + __IOM uint32_t OUTHI : 1; /*!< [1..1] This bit is the vcompout high interrupt. */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) Voltage Comparator Interrupt registers: Clear */ + + struct { + __IOM uint32_t OUTLOW : 1; /*!< [0..0] This bit is the vcompout low interrupt. */ + __IOM uint32_t OUTHI : 1; /*!< [1..1] This bit is the vcompout high interrupt. */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) Voltage Comparator Interrupt registers: Set */ + + struct { + __IOM uint32_t OUTLOW : 1; /*!< [0..0] This bit is the vcompout low interrupt. */ + __IOM uint32_t OUTHI : 1; /*!< [1..1] This bit is the vcompout high interrupt. */ + } INTSET_b; + } ; +} VCOMP_Type; /*!< Size = 528 (0x210) */ + + + +/* =========================================================================================================================== */ +/* ================ WDT ================ */ +/* =========================================================================================================================== */ + + +/** + * @brief Watchdog Timer (WDT) + */ + +typedef struct { /*!< (@ 0x40024000) WDT Structure */ + + union { + __IOM uint32_t CFG; /*!< (@ 0x00000000) Configuration Register */ + + struct { + __IOM uint32_t WDTEN : 1; /*!< [0..0] This bitfield enables the WDT. */ + __IOM uint32_t INTEN : 1; /*!< [1..1] This bitfield enables the WDT interrupt. Note : This + bit must be set before the interrupt status bit will reflect + a watchdog timer expiration. The IER interrupt register + must also be enabled for a WDT interrupt to be sent to + the NVIC. */ + __IOM uint32_t RESEN : 1; /*!< [2..2] This bitfield enables the WDT reset. This needs to be + set together with the WDREN bit in REG_RSTGEN_CFG register + (in reset gen) to trigger the reset. */ + __IM uint32_t : 5; + __IOM uint32_t RESVAL : 8; /*!< [15..8] This bitfield is the compare value for counter bits + 7:0 to generate a watchdog reset. This will cause a software + reset. */ + __IOM uint32_t INTVAL : 8; /*!< [23..16] This bitfield is the compare value for counter bits + 7:0 to generate a watchdog interrupt. */ + __IOM uint32_t CLKSEL : 3; /*!< [26..24] Select the frequency for the WDT. All values not enumerated + below are undefined. */ + } CFG_b; + } ; + + union { + __IOM uint32_t RSTRT; /*!< (@ 0x00000004) Restart the watchdog timer. */ + + struct { + __IOM uint32_t RSTRT : 8; /*!< [7..0] Writing 0xB2 to WDTRSTRT restarts the watchdog timer. + This is a write only register. Reading this register will + only provide all 0. */ + } RSTRT_b; + } ; + + union { + __IOM uint32_t LOCK; /*!< (@ 0x00000008) Locks the WDT */ + + struct { + __IOM uint32_t LOCK : 8; /*!< [7..0] Writing 0x3A locks the watchdog timer. Once locked, the + WDTCFG reg cannot be written and WDTEN is set. */ + } LOCK_b; + } ; + + union { + __IOM uint32_t COUNT; /*!< (@ 0x0000000C) Current Counter Value for WDT */ + + struct { + __IOM uint32_t COUNT : 8; /*!< [7..0] Read-Only current value of the WDT counter */ + } COUNT_b; + } ; + __IM uint32_t RESERVED[124]; + + union { + __IOM uint32_t INTEN; /*!< (@ 0x00000200) WDT Interrupt register: Enable */ + + struct { + __IOM uint32_t WDTINT : 1; /*!< [0..0] Watchdog Timer Interrupt. */ + } INTEN_b; + } ; + + union { + __IOM uint32_t INTSTAT; /*!< (@ 0x00000204) WDT Interrupt register: Status */ + + struct { + __IOM uint32_t WDTINT : 1; /*!< [0..0] Watchdog Timer Interrupt. */ + } INTSTAT_b; + } ; + + union { + __IOM uint32_t INTCLR; /*!< (@ 0x00000208) WDT Interrupt register: Clear */ + + struct { + __IOM uint32_t WDTINT : 1; /*!< [0..0] Watchdog Timer Interrupt. */ + } INTCLR_b; + } ; + + union { + __IOM uint32_t INTSET; /*!< (@ 0x0000020C) WDT Interrupt register: Set */ + + struct { + __IOM uint32_t WDTINT : 1; /*!< [0..0] Watchdog Timer Interrupt. */ + } INTSET_b; + } ; +} WDT_Type; /*!< Size = 528 (0x210) */ + + +/** @} */ /* End of group Device_Peripheral_peripherals */ + + +/* =========================================================================================================================== */ +/* ================ Device Specific Peripheral Address Map ================ */ +/* =========================================================================================================================== */ + + +/** @addtogroup Device_Peripheral_peripheralAddr + * @{ + */ + +#define ADC_BASE 0x50010000UL +#define APBDMA_BASE 0x40011000UL +#define BLEIF_BASE 0x5000C000UL +#define CACHECTRL_BASE 0x40018000UL +#define CLKGEN_BASE 0x40004000UL +#define CTIMER_BASE 0x40008000UL +#define GPIO_BASE 0x40010000UL +#define IOM0_BASE 0x50004000UL +#define IOM1_BASE 0x50005000UL +#define IOM2_BASE 0x50006000UL +#define IOM3_BASE 0x50007000UL +#define IOM4_BASE 0x50008000UL +#define IOM5_BASE 0x50009000UL +#define IOSLAVE_BASE 0x50000000UL +#define MCUCTRL_BASE 0x40020000UL +#define MSPI0_BASE 0x50014000UL +#define MSPI1_BASE 0x50015000UL +#define MSPI2_BASE 0x50016000UL +#define PDM_BASE 0x50011000UL +#define PWRCTRL_BASE 0x40021000UL +#define RSTGEN_BASE 0x40000000UL +#define RTC_BASE 0x40004200UL +#define SCARD_BASE 0x40080000UL +#define SECURITY_BASE 0x40030000UL +#define UART0_BASE 0x4001C000UL +#define UART1_BASE 0x4001D000UL +#define VCOMP_BASE 0x4000C000UL +#define WDT_BASE 0x40024000UL + +/** @} */ /* End of group Device_Peripheral_peripheralAddr */ + + +/* =========================================================================================================================== */ +/* ================ Peripheral declaration ================ */ +/* =========================================================================================================================== */ + + +/** @addtogroup Device_Peripheral_declaration + * @{ + */ + +#define ADC ((ADC_Type*) ADC_BASE) +#define APBDMA ((APBDMA_Type*) APBDMA_BASE) +#define BLEIF ((BLEIF_Type*) BLEIF_BASE) +#define CACHECTRL ((CACHECTRL_Type*) CACHECTRL_BASE) +#define CLKGEN ((CLKGEN_Type*) CLKGEN_BASE) +#define CTIMER ((CTIMER_Type*) CTIMER_BASE) +#define GPIO ((GPIO_Type*) GPIO_BASE) +#define IOM0 ((IOM0_Type*) IOM0_BASE) +#define IOM1 ((IOM0_Type*) IOM1_BASE) +#define IOM2 ((IOM0_Type*) IOM2_BASE) +#define IOM3 ((IOM0_Type*) IOM3_BASE) +#define IOM4 ((IOM0_Type*) IOM4_BASE) +#define IOM5 ((IOM0_Type*) IOM5_BASE) +#define IOSLAVE ((IOSLAVE_Type*) IOSLAVE_BASE) +#define MCUCTRL ((MCUCTRL_Type*) MCUCTRL_BASE) +#define MSPI0 ((MSPI0_Type*) MSPI0_BASE) +#define MSPI1 ((MSPI0_Type*) MSPI1_BASE) +#define MSPI2 ((MSPI0_Type*) MSPI2_BASE) +#define PDM ((PDM_Type*) PDM_BASE) +#define PWRCTRL ((PWRCTRL_Type*) PWRCTRL_BASE) +#define RSTGEN ((RSTGEN_Type*) RSTGEN_BASE) +#define RTC ((RTC_Type*) RTC_BASE) +#define SCARD ((SCARD_Type*) SCARD_BASE) +#define SECURITY ((SECURITY_Type*) SECURITY_BASE) +#define UART0 ((UART0_Type*) UART0_BASE) +#define UART1 ((UART0_Type*) UART1_BASE) +#define VCOMP ((VCOMP_Type*) VCOMP_BASE) +#define WDT ((WDT_Type*) WDT_BASE) + +/** @} */ /* End of group Device_Peripheral_declaration */ + + +/* ========================================= End of section using anonymous unions ========================================= */ +#if defined (__CC_ARM) + #pragma pop +#elif defined (__ICCARM__) + /* leave anonymous unions enabled */ +#elif (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic pop +#elif defined (__GNUC__) + /* anonymous unions are enabled by default */ +#elif defined (__TMS470__) + /* anonymous unions are enabled by default */ +#elif defined (__TASKING__) + #pragma warning restore +#elif defined (__CSMC__) + /* anonymous unions are enabled by default */ +#endif + + +/* =========================================================================================================================== */ +/* ================ Pos/Mask Peripheral Section ================ */ +/* =========================================================================================================================== */ + + +/** @addtogroup PosMask_peripherals + * @{ + */ + + + +/* =========================================================================================================================== */ +/* ================ ADC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +#define ADC_CFG_CLKSEL_Pos (24UL) /*!< ADC CFG: CLKSEL (Bit 24) */ +#define ADC_CFG_CLKSEL_Msk (0x3000000UL) /*!< ADC CFG: CLKSEL (Bitfield-Mask: 0x03) */ +#define ADC_CFG_TRIGPOL_Pos (19UL) /*!< ADC CFG: TRIGPOL (Bit 19) */ +#define ADC_CFG_TRIGPOL_Msk (0x80000UL) /*!< ADC CFG: TRIGPOL (Bitfield-Mask: 0x01) */ +#define ADC_CFG_TRIGSEL_Pos (16UL) /*!< ADC CFG: TRIGSEL (Bit 16) */ +#define ADC_CFG_TRIGSEL_Msk (0x70000UL) /*!< ADC CFG: TRIGSEL (Bitfield-Mask: 0x07) */ +#define ADC_CFG_DFIFORDEN_Pos (12UL) /*!< ADC CFG: DFIFORDEN (Bit 12) */ +#define ADC_CFG_DFIFORDEN_Msk (0x1000UL) /*!< ADC CFG: DFIFORDEN (Bitfield-Mask: 0x01) */ +#define ADC_CFG_REFSEL_Pos (8UL) /*!< ADC CFG: REFSEL (Bit 8) */ +#define ADC_CFG_REFSEL_Msk (0x300UL) /*!< ADC CFG: REFSEL (Bitfield-Mask: 0x03) */ +#define ADC_CFG_CKMODE_Pos (4UL) /*!< ADC CFG: CKMODE (Bit 4) */ +#define ADC_CFG_CKMODE_Msk (0x10UL) /*!< ADC CFG: CKMODE (Bitfield-Mask: 0x01) */ +#define ADC_CFG_LPMODE_Pos (3UL) /*!< ADC CFG: LPMODE (Bit 3) */ +#define ADC_CFG_LPMODE_Msk (0x8UL) /*!< ADC CFG: LPMODE (Bitfield-Mask: 0x01) */ +#define ADC_CFG_RPTEN_Pos (2UL) /*!< ADC CFG: RPTEN (Bit 2) */ +#define ADC_CFG_RPTEN_Msk (0x4UL) /*!< ADC CFG: RPTEN (Bitfield-Mask: 0x01) */ +#define ADC_CFG_ADCEN_Pos (0UL) /*!< ADC CFG: ADCEN (Bit 0) */ +#define ADC_CFG_ADCEN_Msk (0x1UL) /*!< ADC CFG: ADCEN (Bitfield-Mask: 0x01) */ +/* ========================================================= STAT ========================================================== */ +#define ADC_STAT_PWDSTAT_Pos (0UL) /*!< ADC STAT: PWDSTAT (Bit 0) */ +#define ADC_STAT_PWDSTAT_Msk (0x1UL) /*!< ADC STAT: PWDSTAT (Bitfield-Mask: 0x01) */ +/* ========================================================== SWT ========================================================== */ +#define ADC_SWT_SWT_Pos (0UL) /*!< ADC SWT: SWT (Bit 0) */ +#define ADC_SWT_SWT_Msk (0xffUL) /*!< ADC SWT: SWT (Bitfield-Mask: 0xff) */ +/* ======================================================== SL0CFG ========================================================= */ +#define ADC_SL0CFG_ADSEL0_Pos (24UL) /*!< ADC SL0CFG: ADSEL0 (Bit 24) */ +#define ADC_SL0CFG_ADSEL0_Msk (0x7000000UL) /*!< ADC SL0CFG: ADSEL0 (Bitfield-Mask: 0x07) */ +#define ADC_SL0CFG_PRMODE0_Pos (16UL) /*!< ADC SL0CFG: PRMODE0 (Bit 16) */ +#define ADC_SL0CFG_PRMODE0_Msk (0x30000UL) /*!< ADC SL0CFG: PRMODE0 (Bitfield-Mask: 0x03) */ +#define ADC_SL0CFG_CHSEL0_Pos (8UL) /*!< ADC SL0CFG: CHSEL0 (Bit 8) */ +#define ADC_SL0CFG_CHSEL0_Msk (0xf00UL) /*!< ADC SL0CFG: CHSEL0 (Bitfield-Mask: 0x0f) */ +#define ADC_SL0CFG_WCEN0_Pos (1UL) /*!< ADC SL0CFG: WCEN0 (Bit 1) */ +#define ADC_SL0CFG_WCEN0_Msk (0x2UL) /*!< ADC SL0CFG: WCEN0 (Bitfield-Mask: 0x01) */ +#define ADC_SL0CFG_SLEN0_Pos (0UL) /*!< ADC SL0CFG: SLEN0 (Bit 0) */ +#define ADC_SL0CFG_SLEN0_Msk (0x1UL) /*!< ADC SL0CFG: SLEN0 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL1CFG ========================================================= */ +#define ADC_SL1CFG_ADSEL1_Pos (24UL) /*!< ADC SL1CFG: ADSEL1 (Bit 24) */ +#define ADC_SL1CFG_ADSEL1_Msk (0x7000000UL) /*!< ADC SL1CFG: ADSEL1 (Bitfield-Mask: 0x07) */ +#define ADC_SL1CFG_PRMODE1_Pos (16UL) /*!< ADC SL1CFG: PRMODE1 (Bit 16) */ +#define ADC_SL1CFG_PRMODE1_Msk (0x30000UL) /*!< ADC SL1CFG: PRMODE1 (Bitfield-Mask: 0x03) */ +#define ADC_SL1CFG_CHSEL1_Pos (8UL) /*!< ADC SL1CFG: CHSEL1 (Bit 8) */ +#define ADC_SL1CFG_CHSEL1_Msk (0xf00UL) /*!< ADC SL1CFG: CHSEL1 (Bitfield-Mask: 0x0f) */ +#define ADC_SL1CFG_WCEN1_Pos (1UL) /*!< ADC SL1CFG: WCEN1 (Bit 1) */ +#define ADC_SL1CFG_WCEN1_Msk (0x2UL) /*!< ADC SL1CFG: WCEN1 (Bitfield-Mask: 0x01) */ +#define ADC_SL1CFG_SLEN1_Pos (0UL) /*!< ADC SL1CFG: SLEN1 (Bit 0) */ +#define ADC_SL1CFG_SLEN1_Msk (0x1UL) /*!< ADC SL1CFG: SLEN1 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL2CFG ========================================================= */ +#define ADC_SL2CFG_ADSEL2_Pos (24UL) /*!< ADC SL2CFG: ADSEL2 (Bit 24) */ +#define ADC_SL2CFG_ADSEL2_Msk (0x7000000UL) /*!< ADC SL2CFG: ADSEL2 (Bitfield-Mask: 0x07) */ +#define ADC_SL2CFG_PRMODE2_Pos (16UL) /*!< ADC SL2CFG: PRMODE2 (Bit 16) */ +#define ADC_SL2CFG_PRMODE2_Msk (0x30000UL) /*!< ADC SL2CFG: PRMODE2 (Bitfield-Mask: 0x03) */ +#define ADC_SL2CFG_CHSEL2_Pos (8UL) /*!< ADC SL2CFG: CHSEL2 (Bit 8) */ +#define ADC_SL2CFG_CHSEL2_Msk (0xf00UL) /*!< ADC SL2CFG: CHSEL2 (Bitfield-Mask: 0x0f) */ +#define ADC_SL2CFG_WCEN2_Pos (1UL) /*!< ADC SL2CFG: WCEN2 (Bit 1) */ +#define ADC_SL2CFG_WCEN2_Msk (0x2UL) /*!< ADC SL2CFG: WCEN2 (Bitfield-Mask: 0x01) */ +#define ADC_SL2CFG_SLEN2_Pos (0UL) /*!< ADC SL2CFG: SLEN2 (Bit 0) */ +#define ADC_SL2CFG_SLEN2_Msk (0x1UL) /*!< ADC SL2CFG: SLEN2 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL3CFG ========================================================= */ +#define ADC_SL3CFG_ADSEL3_Pos (24UL) /*!< ADC SL3CFG: ADSEL3 (Bit 24) */ +#define ADC_SL3CFG_ADSEL3_Msk (0x7000000UL) /*!< ADC SL3CFG: ADSEL3 (Bitfield-Mask: 0x07) */ +#define ADC_SL3CFG_PRMODE3_Pos (16UL) /*!< ADC SL3CFG: PRMODE3 (Bit 16) */ +#define ADC_SL3CFG_PRMODE3_Msk (0x30000UL) /*!< ADC SL3CFG: PRMODE3 (Bitfield-Mask: 0x03) */ +#define ADC_SL3CFG_CHSEL3_Pos (8UL) /*!< ADC SL3CFG: CHSEL3 (Bit 8) */ +#define ADC_SL3CFG_CHSEL3_Msk (0xf00UL) /*!< ADC SL3CFG: CHSEL3 (Bitfield-Mask: 0x0f) */ +#define ADC_SL3CFG_WCEN3_Pos (1UL) /*!< ADC SL3CFG: WCEN3 (Bit 1) */ +#define ADC_SL3CFG_WCEN3_Msk (0x2UL) /*!< ADC SL3CFG: WCEN3 (Bitfield-Mask: 0x01) */ +#define ADC_SL3CFG_SLEN3_Pos (0UL) /*!< ADC SL3CFG: SLEN3 (Bit 0) */ +#define ADC_SL3CFG_SLEN3_Msk (0x1UL) /*!< ADC SL3CFG: SLEN3 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL4CFG ========================================================= */ +#define ADC_SL4CFG_ADSEL4_Pos (24UL) /*!< ADC SL4CFG: ADSEL4 (Bit 24) */ +#define ADC_SL4CFG_ADSEL4_Msk (0x7000000UL) /*!< ADC SL4CFG: ADSEL4 (Bitfield-Mask: 0x07) */ +#define ADC_SL4CFG_PRMODE4_Pos (16UL) /*!< ADC SL4CFG: PRMODE4 (Bit 16) */ +#define ADC_SL4CFG_PRMODE4_Msk (0x30000UL) /*!< ADC SL4CFG: PRMODE4 (Bitfield-Mask: 0x03) */ +#define ADC_SL4CFG_CHSEL4_Pos (8UL) /*!< ADC SL4CFG: CHSEL4 (Bit 8) */ +#define ADC_SL4CFG_CHSEL4_Msk (0xf00UL) /*!< ADC SL4CFG: CHSEL4 (Bitfield-Mask: 0x0f) */ +#define ADC_SL4CFG_WCEN4_Pos (1UL) /*!< ADC SL4CFG: WCEN4 (Bit 1) */ +#define ADC_SL4CFG_WCEN4_Msk (0x2UL) /*!< ADC SL4CFG: WCEN4 (Bitfield-Mask: 0x01) */ +#define ADC_SL4CFG_SLEN4_Pos (0UL) /*!< ADC SL4CFG: SLEN4 (Bit 0) */ +#define ADC_SL4CFG_SLEN4_Msk (0x1UL) /*!< ADC SL4CFG: SLEN4 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL5CFG ========================================================= */ +#define ADC_SL5CFG_ADSEL5_Pos (24UL) /*!< ADC SL5CFG: ADSEL5 (Bit 24) */ +#define ADC_SL5CFG_ADSEL5_Msk (0x7000000UL) /*!< ADC SL5CFG: ADSEL5 (Bitfield-Mask: 0x07) */ +#define ADC_SL5CFG_PRMODE5_Pos (16UL) /*!< ADC SL5CFG: PRMODE5 (Bit 16) */ +#define ADC_SL5CFG_PRMODE5_Msk (0x30000UL) /*!< ADC SL5CFG: PRMODE5 (Bitfield-Mask: 0x03) */ +#define ADC_SL5CFG_CHSEL5_Pos (8UL) /*!< ADC SL5CFG: CHSEL5 (Bit 8) */ +#define ADC_SL5CFG_CHSEL5_Msk (0xf00UL) /*!< ADC SL5CFG: CHSEL5 (Bitfield-Mask: 0x0f) */ +#define ADC_SL5CFG_WCEN5_Pos (1UL) /*!< ADC SL5CFG: WCEN5 (Bit 1) */ +#define ADC_SL5CFG_WCEN5_Msk (0x2UL) /*!< ADC SL5CFG: WCEN5 (Bitfield-Mask: 0x01) */ +#define ADC_SL5CFG_SLEN5_Pos (0UL) /*!< ADC SL5CFG: SLEN5 (Bit 0) */ +#define ADC_SL5CFG_SLEN5_Msk (0x1UL) /*!< ADC SL5CFG: SLEN5 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL6CFG ========================================================= */ +#define ADC_SL6CFG_ADSEL6_Pos (24UL) /*!< ADC SL6CFG: ADSEL6 (Bit 24) */ +#define ADC_SL6CFG_ADSEL6_Msk (0x7000000UL) /*!< ADC SL6CFG: ADSEL6 (Bitfield-Mask: 0x07) */ +#define ADC_SL6CFG_PRMODE6_Pos (16UL) /*!< ADC SL6CFG: PRMODE6 (Bit 16) */ +#define ADC_SL6CFG_PRMODE6_Msk (0x30000UL) /*!< ADC SL6CFG: PRMODE6 (Bitfield-Mask: 0x03) */ +#define ADC_SL6CFG_CHSEL6_Pos (8UL) /*!< ADC SL6CFG: CHSEL6 (Bit 8) */ +#define ADC_SL6CFG_CHSEL6_Msk (0xf00UL) /*!< ADC SL6CFG: CHSEL6 (Bitfield-Mask: 0x0f) */ +#define ADC_SL6CFG_WCEN6_Pos (1UL) /*!< ADC SL6CFG: WCEN6 (Bit 1) */ +#define ADC_SL6CFG_WCEN6_Msk (0x2UL) /*!< ADC SL6CFG: WCEN6 (Bitfield-Mask: 0x01) */ +#define ADC_SL6CFG_SLEN6_Pos (0UL) /*!< ADC SL6CFG: SLEN6 (Bit 0) */ +#define ADC_SL6CFG_SLEN6_Msk (0x1UL) /*!< ADC SL6CFG: SLEN6 (Bitfield-Mask: 0x01) */ +/* ======================================================== SL7CFG ========================================================= */ +#define ADC_SL7CFG_ADSEL7_Pos (24UL) /*!< ADC SL7CFG: ADSEL7 (Bit 24) */ +#define ADC_SL7CFG_ADSEL7_Msk (0x7000000UL) /*!< ADC SL7CFG: ADSEL7 (Bitfield-Mask: 0x07) */ +#define ADC_SL7CFG_PRMODE7_Pos (16UL) /*!< ADC SL7CFG: PRMODE7 (Bit 16) */ +#define ADC_SL7CFG_PRMODE7_Msk (0x30000UL) /*!< ADC SL7CFG: PRMODE7 (Bitfield-Mask: 0x03) */ +#define ADC_SL7CFG_CHSEL7_Pos (8UL) /*!< ADC SL7CFG: CHSEL7 (Bit 8) */ +#define ADC_SL7CFG_CHSEL7_Msk (0xf00UL) /*!< ADC SL7CFG: CHSEL7 (Bitfield-Mask: 0x0f) */ +#define ADC_SL7CFG_WCEN7_Pos (1UL) /*!< ADC SL7CFG: WCEN7 (Bit 1) */ +#define ADC_SL7CFG_WCEN7_Msk (0x2UL) /*!< ADC SL7CFG: WCEN7 (Bitfield-Mask: 0x01) */ +#define ADC_SL7CFG_SLEN7_Pos (0UL) /*!< ADC SL7CFG: SLEN7 (Bit 0) */ +#define ADC_SL7CFG_SLEN7_Msk (0x1UL) /*!< ADC SL7CFG: SLEN7 (Bitfield-Mask: 0x01) */ +/* ========================================================= WULIM ========================================================= */ +#define ADC_WULIM_ULIM_Pos (0UL) /*!< ADC WULIM: ULIM (Bit 0) */ +#define ADC_WULIM_ULIM_Msk (0xfffffUL) /*!< ADC WULIM: ULIM (Bitfield-Mask: 0xfffff) */ +/* ========================================================= WLLIM ========================================================= */ +#define ADC_WLLIM_LLIM_Pos (0UL) /*!< ADC WLLIM: LLIM (Bit 0) */ +#define ADC_WLLIM_LLIM_Msk (0xfffffUL) /*!< ADC WLLIM: LLIM (Bitfield-Mask: 0xfffff) */ +/* ======================================================== SCWLIM ========================================================= */ +#define ADC_SCWLIM_SCWLIMEN_Pos (0UL) /*!< ADC SCWLIM: SCWLIMEN (Bit 0) */ +#define ADC_SCWLIM_SCWLIMEN_Msk (0x1UL) /*!< ADC SCWLIM: SCWLIMEN (Bitfield-Mask: 0x01) */ +/* ========================================================= FIFO ========================================================== */ +#define ADC_FIFO_RSVD_Pos (31UL) /*!< ADC FIFO: RSVD (Bit 31) */ +#define ADC_FIFO_RSVD_Msk (0x80000000UL) /*!< ADC FIFO: RSVD (Bitfield-Mask: 0x01) */ +#define ADC_FIFO_SLOTNUM_Pos (28UL) /*!< ADC FIFO: SLOTNUM (Bit 28) */ +#define ADC_FIFO_SLOTNUM_Msk (0x70000000UL) /*!< ADC FIFO: SLOTNUM (Bitfield-Mask: 0x07) */ +#define ADC_FIFO_COUNT_Pos (20UL) /*!< ADC FIFO: COUNT (Bit 20) */ +#define ADC_FIFO_COUNT_Msk (0xff00000UL) /*!< ADC FIFO: COUNT (Bitfield-Mask: 0xff) */ +#define ADC_FIFO_DATA_Pos (0UL) /*!< ADC FIFO: DATA (Bit 0) */ +#define ADC_FIFO_DATA_Msk (0xfffffUL) /*!< ADC FIFO: DATA (Bitfield-Mask: 0xfffff) */ +/* ======================================================== FIFOPR ========================================================= */ +#define ADC_FIFOPR_RSVDPR_Pos (31UL) /*!< ADC FIFOPR: RSVDPR (Bit 31) */ +#define ADC_FIFOPR_RSVDPR_Msk (0x80000000UL) /*!< ADC FIFOPR: RSVDPR (Bitfield-Mask: 0x01) */ +#define ADC_FIFOPR_SLOTNUMPR_Pos (28UL) /*!< ADC FIFOPR: SLOTNUMPR (Bit 28) */ +#define ADC_FIFOPR_SLOTNUMPR_Msk (0x70000000UL) /*!< ADC FIFOPR: SLOTNUMPR (Bitfield-Mask: 0x07) */ +#define ADC_FIFOPR_COUNT_Pos (20UL) /*!< ADC FIFOPR: COUNT (Bit 20) */ +#define ADC_FIFOPR_COUNT_Msk (0xff00000UL) /*!< ADC FIFOPR: COUNT (Bitfield-Mask: 0xff) */ +#define ADC_FIFOPR_DATA_Pos (0UL) /*!< ADC FIFOPR: DATA (Bit 0) */ +#define ADC_FIFOPR_DATA_Msk (0xfffffUL) /*!< ADC FIFOPR: DATA (Bitfield-Mask: 0xfffff) */ +/* ========================================================= INTEN ========================================================= */ +#define ADC_INTEN_DERR_Pos (7UL) /*!< ADC INTEN: DERR (Bit 7) */ +#define ADC_INTEN_DERR_Msk (0x80UL) /*!< ADC INTEN: DERR (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_DCMP_Pos (6UL) /*!< ADC INTEN: DCMP (Bit 6) */ +#define ADC_INTEN_DCMP_Msk (0x40UL) /*!< ADC INTEN: DCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_WCINC_Pos (5UL) /*!< ADC INTEN: WCINC (Bit 5) */ +#define ADC_INTEN_WCINC_Msk (0x20UL) /*!< ADC INTEN: WCINC (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_WCEXC_Pos (4UL) /*!< ADC INTEN: WCEXC (Bit 4) */ +#define ADC_INTEN_WCEXC_Msk (0x10UL) /*!< ADC INTEN: WCEXC (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_FIFOOVR2_Pos (3UL) /*!< ADC INTEN: FIFOOVR2 (Bit 3) */ +#define ADC_INTEN_FIFOOVR2_Msk (0x8UL) /*!< ADC INTEN: FIFOOVR2 (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_FIFOOVR1_Pos (2UL) /*!< ADC INTEN: FIFOOVR1 (Bit 2) */ +#define ADC_INTEN_FIFOOVR1_Msk (0x4UL) /*!< ADC INTEN: FIFOOVR1 (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_SCNCMP_Pos (1UL) /*!< ADC INTEN: SCNCMP (Bit 1) */ +#define ADC_INTEN_SCNCMP_Msk (0x2UL) /*!< ADC INTEN: SCNCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTEN_CNVCMP_Pos (0UL) /*!< ADC INTEN: CNVCMP (Bit 0) */ +#define ADC_INTEN_CNVCMP_Msk (0x1UL) /*!< ADC INTEN: CNVCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define ADC_INTSTAT_DERR_Pos (7UL) /*!< ADC INTSTAT: DERR (Bit 7) */ +#define ADC_INTSTAT_DERR_Msk (0x80UL) /*!< ADC INTSTAT: DERR (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_DCMP_Pos (6UL) /*!< ADC INTSTAT: DCMP (Bit 6) */ +#define ADC_INTSTAT_DCMP_Msk (0x40UL) /*!< ADC INTSTAT: DCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_WCINC_Pos (5UL) /*!< ADC INTSTAT: WCINC (Bit 5) */ +#define ADC_INTSTAT_WCINC_Msk (0x20UL) /*!< ADC INTSTAT: WCINC (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_WCEXC_Pos (4UL) /*!< ADC INTSTAT: WCEXC (Bit 4) */ +#define ADC_INTSTAT_WCEXC_Msk (0x10UL) /*!< ADC INTSTAT: WCEXC (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_FIFOOVR2_Pos (3UL) /*!< ADC INTSTAT: FIFOOVR2 (Bit 3) */ +#define ADC_INTSTAT_FIFOOVR2_Msk (0x8UL) /*!< ADC INTSTAT: FIFOOVR2 (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_FIFOOVR1_Pos (2UL) /*!< ADC INTSTAT: FIFOOVR1 (Bit 2) */ +#define ADC_INTSTAT_FIFOOVR1_Msk (0x4UL) /*!< ADC INTSTAT: FIFOOVR1 (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_SCNCMP_Pos (1UL) /*!< ADC INTSTAT: SCNCMP (Bit 1) */ +#define ADC_INTSTAT_SCNCMP_Msk (0x2UL) /*!< ADC INTSTAT: SCNCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTSTAT_CNVCMP_Pos (0UL) /*!< ADC INTSTAT: CNVCMP (Bit 0) */ +#define ADC_INTSTAT_CNVCMP_Msk (0x1UL) /*!< ADC INTSTAT: CNVCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define ADC_INTCLR_DERR_Pos (7UL) /*!< ADC INTCLR: DERR (Bit 7) */ +#define ADC_INTCLR_DERR_Msk (0x80UL) /*!< ADC INTCLR: DERR (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_DCMP_Pos (6UL) /*!< ADC INTCLR: DCMP (Bit 6) */ +#define ADC_INTCLR_DCMP_Msk (0x40UL) /*!< ADC INTCLR: DCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_WCINC_Pos (5UL) /*!< ADC INTCLR: WCINC (Bit 5) */ +#define ADC_INTCLR_WCINC_Msk (0x20UL) /*!< ADC INTCLR: WCINC (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_WCEXC_Pos (4UL) /*!< ADC INTCLR: WCEXC (Bit 4) */ +#define ADC_INTCLR_WCEXC_Msk (0x10UL) /*!< ADC INTCLR: WCEXC (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_FIFOOVR2_Pos (3UL) /*!< ADC INTCLR: FIFOOVR2 (Bit 3) */ +#define ADC_INTCLR_FIFOOVR2_Msk (0x8UL) /*!< ADC INTCLR: FIFOOVR2 (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_FIFOOVR1_Pos (2UL) /*!< ADC INTCLR: FIFOOVR1 (Bit 2) */ +#define ADC_INTCLR_FIFOOVR1_Msk (0x4UL) /*!< ADC INTCLR: FIFOOVR1 (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_SCNCMP_Pos (1UL) /*!< ADC INTCLR: SCNCMP (Bit 1) */ +#define ADC_INTCLR_SCNCMP_Msk (0x2UL) /*!< ADC INTCLR: SCNCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTCLR_CNVCMP_Pos (0UL) /*!< ADC INTCLR: CNVCMP (Bit 0) */ +#define ADC_INTCLR_CNVCMP_Msk (0x1UL) /*!< ADC INTCLR: CNVCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define ADC_INTSET_DERR_Pos (7UL) /*!< ADC INTSET: DERR (Bit 7) */ +#define ADC_INTSET_DERR_Msk (0x80UL) /*!< ADC INTSET: DERR (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_DCMP_Pos (6UL) /*!< ADC INTSET: DCMP (Bit 6) */ +#define ADC_INTSET_DCMP_Msk (0x40UL) /*!< ADC INTSET: DCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_WCINC_Pos (5UL) /*!< ADC INTSET: WCINC (Bit 5) */ +#define ADC_INTSET_WCINC_Msk (0x20UL) /*!< ADC INTSET: WCINC (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_WCEXC_Pos (4UL) /*!< ADC INTSET: WCEXC (Bit 4) */ +#define ADC_INTSET_WCEXC_Msk (0x10UL) /*!< ADC INTSET: WCEXC (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_FIFOOVR2_Pos (3UL) /*!< ADC INTSET: FIFOOVR2 (Bit 3) */ +#define ADC_INTSET_FIFOOVR2_Msk (0x8UL) /*!< ADC INTSET: FIFOOVR2 (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_FIFOOVR1_Pos (2UL) /*!< ADC INTSET: FIFOOVR1 (Bit 2) */ +#define ADC_INTSET_FIFOOVR1_Msk (0x4UL) /*!< ADC INTSET: FIFOOVR1 (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_SCNCMP_Pos (1UL) /*!< ADC INTSET: SCNCMP (Bit 1) */ +#define ADC_INTSET_SCNCMP_Msk (0x2UL) /*!< ADC INTSET: SCNCMP (Bitfield-Mask: 0x01) */ +#define ADC_INTSET_CNVCMP_Pos (0UL) /*!< ADC INTSET: CNVCMP (Bit 0) */ +#define ADC_INTSET_CNVCMP_Msk (0x1UL) /*!< ADC INTSET: CNVCMP (Bitfield-Mask: 0x01) */ +/* ======================================================= DMATRIGEN ======================================================= */ +#define ADC_DMATRIGEN_DFIFOFULL_Pos (1UL) /*!< ADC DMATRIGEN: DFIFOFULL (Bit 1) */ +#define ADC_DMATRIGEN_DFIFOFULL_Msk (0x2UL) /*!< ADC DMATRIGEN: DFIFOFULL (Bitfield-Mask: 0x01) */ +#define ADC_DMATRIGEN_DFIFO75_Pos (0UL) /*!< ADC DMATRIGEN: DFIFO75 (Bit 0) */ +#define ADC_DMATRIGEN_DFIFO75_Msk (0x1UL) /*!< ADC DMATRIGEN: DFIFO75 (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +#define ADC_DMATRIGSTAT_DFULLSTAT_Pos (1UL) /*!< ADC DMATRIGSTAT: DFULLSTAT (Bit 1) */ +#define ADC_DMATRIGSTAT_DFULLSTAT_Msk (0x2UL) /*!< ADC DMATRIGSTAT: DFULLSTAT (Bitfield-Mask: 0x01) */ +#define ADC_DMATRIGSTAT_D75STAT_Pos (0UL) /*!< ADC DMATRIGSTAT: D75STAT (Bit 0) */ +#define ADC_DMATRIGSTAT_D75STAT_Msk (0x1UL) /*!< ADC DMATRIGSTAT: D75STAT (Bitfield-Mask: 0x01) */ +/* ======================================================== DMACFG ========================================================= */ +#define ADC_DMACFG_DPWROFF_Pos (18UL) /*!< ADC DMACFG: DPWROFF (Bit 18) */ +#define ADC_DMACFG_DPWROFF_Msk (0x40000UL) /*!< ADC DMACFG: DPWROFF (Bitfield-Mask: 0x01) */ +#define ADC_DMACFG_DMAMSK_Pos (17UL) /*!< ADC DMACFG: DMAMSK (Bit 17) */ +#define ADC_DMACFG_DMAMSK_Msk (0x20000UL) /*!< ADC DMACFG: DMAMSK (Bitfield-Mask: 0x01) */ +#define ADC_DMACFG_DMAHONSTAT_Pos (16UL) /*!< ADC DMACFG: DMAHONSTAT (Bit 16) */ +#define ADC_DMACFG_DMAHONSTAT_Msk (0x10000UL) /*!< ADC DMACFG: DMAHONSTAT (Bitfield-Mask: 0x01) */ +#define ADC_DMACFG_DMADYNPRI_Pos (9UL) /*!< ADC DMACFG: DMADYNPRI (Bit 9) */ +#define ADC_DMACFG_DMADYNPRI_Msk (0x200UL) /*!< ADC DMACFG: DMADYNPRI (Bitfield-Mask: 0x01) */ +#define ADC_DMACFG_DMAPRI_Pos (8UL) /*!< ADC DMACFG: DMAPRI (Bit 8) */ +#define ADC_DMACFG_DMAPRI_Msk (0x100UL) /*!< ADC DMACFG: DMAPRI (Bitfield-Mask: 0x01) */ +#define ADC_DMACFG_DMADIR_Pos (2UL) /*!< ADC DMACFG: DMADIR (Bit 2) */ +#define ADC_DMACFG_DMADIR_Msk (0x4UL) /*!< ADC DMACFG: DMADIR (Bitfield-Mask: 0x01) */ +#define ADC_DMACFG_DMAEN_Pos (0UL) /*!< ADC DMACFG: DMAEN (Bit 0) */ +#define ADC_DMACFG_DMAEN_Msk (0x1UL) /*!< ADC DMACFG: DMAEN (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATOTCOUNT ====================================================== */ +#define ADC_DMATOTCOUNT_TOTCOUNT_Pos (2UL) /*!< ADC DMATOTCOUNT: TOTCOUNT (Bit 2) */ +#define ADC_DMATOTCOUNT_TOTCOUNT_Msk (0x3fffcUL) /*!< ADC DMATOTCOUNT: TOTCOUNT (Bitfield-Mask: 0xffff) */ +/* ====================================================== DMATARGADDR ====================================================== */ +#define ADC_DMATARGADDR_UTARGADDR_Pos (20UL) /*!< ADC DMATARGADDR: UTARGADDR (Bit 20) */ +#define ADC_DMATARGADDR_UTARGADDR_Msk (0xfff00000UL) /*!< ADC DMATARGADDR: UTARGADDR (Bitfield-Mask: 0xfff) */ +#define ADC_DMATARGADDR_LTARGADDR_Pos (0UL) /*!< ADC DMATARGADDR: LTARGADDR (Bit 0) */ +#define ADC_DMATARGADDR_LTARGADDR_Msk (0xfffffUL) /*!< ADC DMATARGADDR: LTARGADDR (Bitfield-Mask: 0xfffff) */ +/* ======================================================== DMASTAT ======================================================== */ +#define ADC_DMASTAT_DMAERR_Pos (2UL) /*!< ADC DMASTAT: DMAERR (Bit 2) */ +#define ADC_DMASTAT_DMAERR_Msk (0x4UL) /*!< ADC DMASTAT: DMAERR (Bitfield-Mask: 0x01) */ +#define ADC_DMASTAT_DMACPL_Pos (1UL) /*!< ADC DMASTAT: DMACPL (Bit 1) */ +#define ADC_DMASTAT_DMACPL_Msk (0x2UL) /*!< ADC DMASTAT: DMACPL (Bitfield-Mask: 0x01) */ +#define ADC_DMASTAT_DMATIP_Pos (0UL) /*!< ADC DMASTAT: DMATIP (Bit 0) */ +#define ADC_DMASTAT_DMATIP_Msk (0x1UL) /*!< ADC DMASTAT: DMATIP (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ APBDMA ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== BBVALUE ======================================================== */ +#define APBDMA_BBVALUE_PIN_Pos (16UL) /*!< APBDMA BBVALUE: PIN (Bit 16) */ +#define APBDMA_BBVALUE_PIN_Msk (0xff0000UL) /*!< APBDMA BBVALUE: PIN (Bitfield-Mask: 0xff) */ +#define APBDMA_BBVALUE_DATAOUT_Pos (0UL) /*!< APBDMA BBVALUE: DATAOUT (Bit 0) */ +#define APBDMA_BBVALUE_DATAOUT_Msk (0xffUL) /*!< APBDMA BBVALUE: DATAOUT (Bitfield-Mask: 0xff) */ +/* ====================================================== BBSETCLEAR ======================================================= */ +#define APBDMA_BBSETCLEAR_CLEAR_Pos (16UL) /*!< APBDMA BBSETCLEAR: CLEAR (Bit 16) */ +#define APBDMA_BBSETCLEAR_CLEAR_Msk (0xff0000UL) /*!< APBDMA BBSETCLEAR: CLEAR (Bitfield-Mask: 0xff) */ +#define APBDMA_BBSETCLEAR_SET_Pos (0UL) /*!< APBDMA BBSETCLEAR: SET (Bit 0) */ +#define APBDMA_BBSETCLEAR_SET_Msk (0xffUL) /*!< APBDMA BBSETCLEAR: SET (Bitfield-Mask: 0xff) */ +/* ======================================================== BBINPUT ======================================================== */ +#define APBDMA_BBINPUT_DATAIN_Pos (0UL) /*!< APBDMA BBINPUT: DATAIN (Bit 0) */ +#define APBDMA_BBINPUT_DATAIN_Msk (0xffUL) /*!< APBDMA BBINPUT: DATAIN (Bitfield-Mask: 0xff) */ +/* ======================================================= DEBUGDATA ======================================================= */ +#define APBDMA_DEBUGDATA_DEBUGDATA_Pos (0UL) /*!< APBDMA DEBUGDATA: DEBUGDATA (Bit 0) */ +#define APBDMA_DEBUGDATA_DEBUGDATA_Msk (0xffffffffUL) /*!< APBDMA DEBUGDATA: DEBUGDATA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DEBUG ========================================================= */ +#define APBDMA_DEBUG_DEBUGEN_Pos (0UL) /*!< APBDMA DEBUG: DEBUGEN (Bit 0) */ +#define APBDMA_DEBUG_DEBUGEN_Msk (0xfUL) /*!< APBDMA DEBUG: DEBUGEN (Bitfield-Mask: 0x0f) */ + + +/* =========================================================================================================================== */ +/* ================ BLEIF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= FIFO ========================================================== */ +#define BLEIF_FIFO_FIFO_Pos (0UL) /*!< BLEIF FIFO: FIFO (Bit 0) */ +#define BLEIF_FIFO_FIFO_Msk (0xffffffffUL) /*!< BLEIF FIFO: FIFO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== FIFOPTR ======================================================== */ +#define BLEIF_FIFOPTR_FIFO1REM_Pos (24UL) /*!< BLEIF FIFOPTR: FIFO1REM (Bit 24) */ +#define BLEIF_FIFOPTR_FIFO1REM_Msk (0xff000000UL) /*!< BLEIF FIFOPTR: FIFO1REM (Bitfield-Mask: 0xff) */ +#define BLEIF_FIFOPTR_FIFO1SIZ_Pos (16UL) /*!< BLEIF FIFOPTR: FIFO1SIZ (Bit 16) */ +#define BLEIF_FIFOPTR_FIFO1SIZ_Msk (0xff0000UL) /*!< BLEIF FIFOPTR: FIFO1SIZ (Bitfield-Mask: 0xff) */ +#define BLEIF_FIFOPTR_FIFO0REM_Pos (8UL) /*!< BLEIF FIFOPTR: FIFO0REM (Bit 8) */ +#define BLEIF_FIFOPTR_FIFO0REM_Msk (0xff00UL) /*!< BLEIF FIFOPTR: FIFO0REM (Bitfield-Mask: 0xff) */ +#define BLEIF_FIFOPTR_FIFO0SIZ_Pos (0UL) /*!< BLEIF FIFOPTR: FIFO0SIZ (Bit 0) */ +#define BLEIF_FIFOPTR_FIFO0SIZ_Msk (0xffUL) /*!< BLEIF FIFOPTR: FIFO0SIZ (Bitfield-Mask: 0xff) */ +/* ======================================================== FIFOTHR ======================================================== */ +#define BLEIF_FIFOTHR_FIFOWTHR_Pos (8UL) /*!< BLEIF FIFOTHR: FIFOWTHR (Bit 8) */ +#define BLEIF_FIFOTHR_FIFOWTHR_Msk (0x3f00UL) /*!< BLEIF FIFOTHR: FIFOWTHR (Bitfield-Mask: 0x3f) */ +#define BLEIF_FIFOTHR_FIFORTHR_Pos (0UL) /*!< BLEIF FIFOTHR: FIFORTHR (Bit 0) */ +#define BLEIF_FIFOTHR_FIFORTHR_Msk (0x3fUL) /*!< BLEIF FIFOTHR: FIFORTHR (Bitfield-Mask: 0x3f) */ +/* ======================================================== FIFOPOP ======================================================== */ +#define BLEIF_FIFOPOP_FIFODOUT_Pos (0UL) /*!< BLEIF FIFOPOP: FIFODOUT (Bit 0) */ +#define BLEIF_FIFOPOP_FIFODOUT_Msk (0xffffffffUL) /*!< BLEIF FIFOPOP: FIFODOUT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FIFOPUSH ======================================================== */ +#define BLEIF_FIFOPUSH_FIFODIN_Pos (0UL) /*!< BLEIF FIFOPUSH: FIFODIN (Bit 0) */ +#define BLEIF_FIFOPUSH_FIFODIN_Msk (0xffffffffUL) /*!< BLEIF FIFOPUSH: FIFODIN (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FIFOCTRL ======================================================== */ +#define BLEIF_FIFOCTRL_FIFORSTN_Pos (1UL) /*!< BLEIF FIFOCTRL: FIFORSTN (Bit 1) */ +#define BLEIF_FIFOCTRL_FIFORSTN_Msk (0x2UL) /*!< BLEIF FIFOCTRL: FIFORSTN (Bitfield-Mask: 0x01) */ +#define BLEIF_FIFOCTRL_POPWR_Pos (0UL) /*!< BLEIF FIFOCTRL: POPWR (Bit 0) */ +#define BLEIF_FIFOCTRL_POPWR_Msk (0x1UL) /*!< BLEIF FIFOCTRL: POPWR (Bitfield-Mask: 0x01) */ +/* ======================================================== FIFOLOC ======================================================== */ +#define BLEIF_FIFOLOC_FIFORPTR_Pos (8UL) /*!< BLEIF FIFOLOC: FIFORPTR (Bit 8) */ +#define BLEIF_FIFOLOC_FIFORPTR_Msk (0xf00UL) /*!< BLEIF FIFOLOC: FIFORPTR (Bitfield-Mask: 0x0f) */ +#define BLEIF_FIFOLOC_FIFOWPTR_Pos (0UL) /*!< BLEIF FIFOLOC: FIFOWPTR (Bit 0) */ +#define BLEIF_FIFOLOC_FIFOWPTR_Msk (0xfUL) /*!< BLEIF FIFOLOC: FIFOWPTR (Bitfield-Mask: 0x0f) */ +/* ======================================================== CLKCFG ========================================================= */ +#define BLEIF_CLKCFG_DIV3_Pos (12UL) /*!< BLEIF CLKCFG: DIV3 (Bit 12) */ +#define BLEIF_CLKCFG_DIV3_Msk (0x1000UL) /*!< BLEIF CLKCFG: DIV3 (Bitfield-Mask: 0x01) */ +#define BLEIF_CLKCFG_CLK32KEN_Pos (11UL) /*!< BLEIF CLKCFG: CLK32KEN (Bit 11) */ +#define BLEIF_CLKCFG_CLK32KEN_Msk (0x800UL) /*!< BLEIF CLKCFG: CLK32KEN (Bitfield-Mask: 0x01) */ +#define BLEIF_CLKCFG_FSEL_Pos (8UL) /*!< BLEIF CLKCFG: FSEL (Bit 8) */ +#define BLEIF_CLKCFG_FSEL_Msk (0x700UL) /*!< BLEIF CLKCFG: FSEL (Bitfield-Mask: 0x07) */ +#define BLEIF_CLKCFG_IOCLKEN_Pos (0UL) /*!< BLEIF CLKCFG: IOCLKEN (Bit 0) */ +#define BLEIF_CLKCFG_IOCLKEN_Msk (0x1UL) /*!< BLEIF CLKCFG: IOCLKEN (Bitfield-Mask: 0x01) */ +/* ========================================================== CMD ========================================================== */ +#define BLEIF_CMD_OFFSETLO_Pos (24UL) /*!< BLEIF CMD: OFFSETLO (Bit 24) */ +#define BLEIF_CMD_OFFSETLO_Msk (0xff000000UL) /*!< BLEIF CMD: OFFSETLO (Bitfield-Mask: 0xff) */ +#define BLEIF_CMD_CMDSEL_Pos (20UL) /*!< BLEIF CMD: CMDSEL (Bit 20) */ +#define BLEIF_CMD_CMDSEL_Msk (0x300000UL) /*!< BLEIF CMD: CMDSEL (Bitfield-Mask: 0x03) */ +#define BLEIF_CMD_TSIZE_Pos (8UL) /*!< BLEIF CMD: TSIZE (Bit 8) */ +#define BLEIF_CMD_TSIZE_Msk (0xfff00UL) /*!< BLEIF CMD: TSIZE (Bitfield-Mask: 0xfff) */ +#define BLEIF_CMD_CONT_Pos (7UL) /*!< BLEIF CMD: CONT (Bit 7) */ +#define BLEIF_CMD_CONT_Msk (0x80UL) /*!< BLEIF CMD: CONT (Bitfield-Mask: 0x01) */ +#define BLEIF_CMD_OFFSETCNT_Pos (5UL) /*!< BLEIF CMD: OFFSETCNT (Bit 5) */ +#define BLEIF_CMD_OFFSETCNT_Msk (0x60UL) /*!< BLEIF CMD: OFFSETCNT (Bitfield-Mask: 0x03) */ +#define BLEIF_CMD_CMD_Pos (0UL) /*!< BLEIF CMD: CMD (Bit 0) */ +#define BLEIF_CMD_CMD_Msk (0x1fUL) /*!< BLEIF CMD: CMD (Bitfield-Mask: 0x1f) */ +/* ======================================================== CMDRPT ========================================================= */ +#define BLEIF_CMDRPT_CMDRPT_Pos (0UL) /*!< BLEIF CMDRPT: CMDRPT (Bit 0) */ +#define BLEIF_CMDRPT_CMDRPT_Msk (0x1fUL) /*!< BLEIF CMDRPT: CMDRPT (Bitfield-Mask: 0x1f) */ +/* ======================================================= OFFSETHI ======================================================== */ +#define BLEIF_OFFSETHI_OFFSETHI_Pos (0UL) /*!< BLEIF OFFSETHI: OFFSETHI (Bit 0) */ +#define BLEIF_OFFSETHI_OFFSETHI_Msk (0xffffUL) /*!< BLEIF OFFSETHI: OFFSETHI (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMDSTAT ======================================================== */ +#define BLEIF_CMDSTAT_CTSIZE_Pos (8UL) /*!< BLEIF CMDSTAT: CTSIZE (Bit 8) */ +#define BLEIF_CMDSTAT_CTSIZE_Msk (0xfff00UL) /*!< BLEIF CMDSTAT: CTSIZE (Bitfield-Mask: 0xfff) */ +#define BLEIF_CMDSTAT_CMDSTAT_Pos (5UL) /*!< BLEIF CMDSTAT: CMDSTAT (Bit 5) */ +#define BLEIF_CMDSTAT_CMDSTAT_Msk (0xe0UL) /*!< BLEIF CMDSTAT: CMDSTAT (Bitfield-Mask: 0x07) */ +#define BLEIF_CMDSTAT_CCMD_Pos (0UL) /*!< BLEIF CMDSTAT: CCMD (Bit 0) */ +#define BLEIF_CMDSTAT_CCMD_Msk (0x1fUL) /*!< BLEIF CMDSTAT: CCMD (Bitfield-Mask: 0x1f) */ +/* ========================================================= INTEN ========================================================= */ +#define BLEIF_INTEN_B2MSHUTDN_Pos (16UL) /*!< BLEIF INTEN: B2MSHUTDN (Bit 16) */ +#define BLEIF_INTEN_B2MSHUTDN_Msk (0x10000UL) /*!< BLEIF INTEN: B2MSHUTDN (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_B2MACTIVE_Pos (15UL) /*!< BLEIF INTEN: B2MACTIVE (Bit 15) */ +#define BLEIF_INTEN_B2MACTIVE_Msk (0x8000UL) /*!< BLEIF INTEN: B2MACTIVE (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_B2MSLEEP_Pos (14UL) /*!< BLEIF INTEN: B2MSLEEP (Bit 14) */ +#define BLEIF_INTEN_B2MSLEEP_Msk (0x4000UL) /*!< BLEIF INTEN: B2MSLEEP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_CQERR_Pos (13UL) /*!< BLEIF INTEN: CQERR (Bit 13) */ +#define BLEIF_INTEN_CQERR_Msk (0x2000UL) /*!< BLEIF INTEN: CQERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_CQUPD_Pos (12UL) /*!< BLEIF INTEN: CQUPD (Bit 12) */ +#define BLEIF_INTEN_CQUPD_Msk (0x1000UL) /*!< BLEIF INTEN: CQUPD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_CQPAUSED_Pos (11UL) /*!< BLEIF INTEN: CQPAUSED (Bit 11) */ +#define BLEIF_INTEN_CQPAUSED_Msk (0x800UL) /*!< BLEIF INTEN: CQPAUSED (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_DERR_Pos (10UL) /*!< BLEIF INTEN: DERR (Bit 10) */ +#define BLEIF_INTEN_DERR_Msk (0x400UL) /*!< BLEIF INTEN: DERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_DCMP_Pos (9UL) /*!< BLEIF INTEN: DCMP (Bit 9) */ +#define BLEIF_INTEN_DCMP_Msk (0x200UL) /*!< BLEIF INTEN: DCMP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_BLECSSTAT_Pos (8UL) /*!< BLEIF INTEN: BLECSSTAT (Bit 8) */ +#define BLEIF_INTEN_BLECSSTAT_Msk (0x100UL) /*!< BLEIF INTEN: BLECSSTAT (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_BLECIRQ_Pos (7UL) /*!< BLEIF INTEN: BLECIRQ (Bit 7) */ +#define BLEIF_INTEN_BLECIRQ_Msk (0x80UL) /*!< BLEIF INTEN: BLECIRQ (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_ICMD_Pos (6UL) /*!< BLEIF INTEN: ICMD (Bit 6) */ +#define BLEIF_INTEN_ICMD_Msk (0x40UL) /*!< BLEIF INTEN: ICMD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_IACC_Pos (5UL) /*!< BLEIF INTEN: IACC (Bit 5) */ +#define BLEIF_INTEN_IACC_Msk (0x20UL) /*!< BLEIF INTEN: IACC (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_B2MST_Pos (4UL) /*!< BLEIF INTEN: B2MST (Bit 4) */ +#define BLEIF_INTEN_B2MST_Msk (0x10UL) /*!< BLEIF INTEN: B2MST (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_FOVFL_Pos (3UL) /*!< BLEIF INTEN: FOVFL (Bit 3) */ +#define BLEIF_INTEN_FOVFL_Msk (0x8UL) /*!< BLEIF INTEN: FOVFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_FUNDFL_Pos (2UL) /*!< BLEIF INTEN: FUNDFL (Bit 2) */ +#define BLEIF_INTEN_FUNDFL_Msk (0x4UL) /*!< BLEIF INTEN: FUNDFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_THR_Pos (1UL) /*!< BLEIF INTEN: THR (Bit 1) */ +#define BLEIF_INTEN_THR_Msk (0x2UL) /*!< BLEIF INTEN: THR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTEN_CMDCMP_Pos (0UL) /*!< BLEIF INTEN: CMDCMP (Bit 0) */ +#define BLEIF_INTEN_CMDCMP_Msk (0x1UL) /*!< BLEIF INTEN: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define BLEIF_INTSTAT_B2MSHUTDN_Pos (16UL) /*!< BLEIF INTSTAT: B2MSHUTDN (Bit 16) */ +#define BLEIF_INTSTAT_B2MSHUTDN_Msk (0x10000UL) /*!< BLEIF INTSTAT: B2MSHUTDN (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_B2MACTIVE_Pos (15UL) /*!< BLEIF INTSTAT: B2MACTIVE (Bit 15) */ +#define BLEIF_INTSTAT_B2MACTIVE_Msk (0x8000UL) /*!< BLEIF INTSTAT: B2MACTIVE (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_B2MSLEEP_Pos (14UL) /*!< BLEIF INTSTAT: B2MSLEEP (Bit 14) */ +#define BLEIF_INTSTAT_B2MSLEEP_Msk (0x4000UL) /*!< BLEIF INTSTAT: B2MSLEEP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_CQERR_Pos (13UL) /*!< BLEIF INTSTAT: CQERR (Bit 13) */ +#define BLEIF_INTSTAT_CQERR_Msk (0x2000UL) /*!< BLEIF INTSTAT: CQERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_CQUPD_Pos (12UL) /*!< BLEIF INTSTAT: CQUPD (Bit 12) */ +#define BLEIF_INTSTAT_CQUPD_Msk (0x1000UL) /*!< BLEIF INTSTAT: CQUPD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_CQPAUSED_Pos (11UL) /*!< BLEIF INTSTAT: CQPAUSED (Bit 11) */ +#define BLEIF_INTSTAT_CQPAUSED_Msk (0x800UL) /*!< BLEIF INTSTAT: CQPAUSED (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_DERR_Pos (10UL) /*!< BLEIF INTSTAT: DERR (Bit 10) */ +#define BLEIF_INTSTAT_DERR_Msk (0x400UL) /*!< BLEIF INTSTAT: DERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_DCMP_Pos (9UL) /*!< BLEIF INTSTAT: DCMP (Bit 9) */ +#define BLEIF_INTSTAT_DCMP_Msk (0x200UL) /*!< BLEIF INTSTAT: DCMP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_BLECSSTAT_Pos (8UL) /*!< BLEIF INTSTAT: BLECSSTAT (Bit 8) */ +#define BLEIF_INTSTAT_BLECSSTAT_Msk (0x100UL) /*!< BLEIF INTSTAT: BLECSSTAT (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_BLECIRQ_Pos (7UL) /*!< BLEIF INTSTAT: BLECIRQ (Bit 7) */ +#define BLEIF_INTSTAT_BLECIRQ_Msk (0x80UL) /*!< BLEIF INTSTAT: BLECIRQ (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_ICMD_Pos (6UL) /*!< BLEIF INTSTAT: ICMD (Bit 6) */ +#define BLEIF_INTSTAT_ICMD_Msk (0x40UL) /*!< BLEIF INTSTAT: ICMD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_IACC_Pos (5UL) /*!< BLEIF INTSTAT: IACC (Bit 5) */ +#define BLEIF_INTSTAT_IACC_Msk (0x20UL) /*!< BLEIF INTSTAT: IACC (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_B2MST_Pos (4UL) /*!< BLEIF INTSTAT: B2MST (Bit 4) */ +#define BLEIF_INTSTAT_B2MST_Msk (0x10UL) /*!< BLEIF INTSTAT: B2MST (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_FOVFL_Pos (3UL) /*!< BLEIF INTSTAT: FOVFL (Bit 3) */ +#define BLEIF_INTSTAT_FOVFL_Msk (0x8UL) /*!< BLEIF INTSTAT: FOVFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_FUNDFL_Pos (2UL) /*!< BLEIF INTSTAT: FUNDFL (Bit 2) */ +#define BLEIF_INTSTAT_FUNDFL_Msk (0x4UL) /*!< BLEIF INTSTAT: FUNDFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_THR_Pos (1UL) /*!< BLEIF INTSTAT: THR (Bit 1) */ +#define BLEIF_INTSTAT_THR_Msk (0x2UL) /*!< BLEIF INTSTAT: THR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSTAT_CMDCMP_Pos (0UL) /*!< BLEIF INTSTAT: CMDCMP (Bit 0) */ +#define BLEIF_INTSTAT_CMDCMP_Msk (0x1UL) /*!< BLEIF INTSTAT: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define BLEIF_INTCLR_B2MSHUTDN_Pos (16UL) /*!< BLEIF INTCLR: B2MSHUTDN (Bit 16) */ +#define BLEIF_INTCLR_B2MSHUTDN_Msk (0x10000UL) /*!< BLEIF INTCLR: B2MSHUTDN (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_B2MACTIVE_Pos (15UL) /*!< BLEIF INTCLR: B2MACTIVE (Bit 15) */ +#define BLEIF_INTCLR_B2MACTIVE_Msk (0x8000UL) /*!< BLEIF INTCLR: B2MACTIVE (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_B2MSLEEP_Pos (14UL) /*!< BLEIF INTCLR: B2MSLEEP (Bit 14) */ +#define BLEIF_INTCLR_B2MSLEEP_Msk (0x4000UL) /*!< BLEIF INTCLR: B2MSLEEP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_CQERR_Pos (13UL) /*!< BLEIF INTCLR: CQERR (Bit 13) */ +#define BLEIF_INTCLR_CQERR_Msk (0x2000UL) /*!< BLEIF INTCLR: CQERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_CQUPD_Pos (12UL) /*!< BLEIF INTCLR: CQUPD (Bit 12) */ +#define BLEIF_INTCLR_CQUPD_Msk (0x1000UL) /*!< BLEIF INTCLR: CQUPD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_CQPAUSED_Pos (11UL) /*!< BLEIF INTCLR: CQPAUSED (Bit 11) */ +#define BLEIF_INTCLR_CQPAUSED_Msk (0x800UL) /*!< BLEIF INTCLR: CQPAUSED (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_DERR_Pos (10UL) /*!< BLEIF INTCLR: DERR (Bit 10) */ +#define BLEIF_INTCLR_DERR_Msk (0x400UL) /*!< BLEIF INTCLR: DERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_DCMP_Pos (9UL) /*!< BLEIF INTCLR: DCMP (Bit 9) */ +#define BLEIF_INTCLR_DCMP_Msk (0x200UL) /*!< BLEIF INTCLR: DCMP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_BLECSSTAT_Pos (8UL) /*!< BLEIF INTCLR: BLECSSTAT (Bit 8) */ +#define BLEIF_INTCLR_BLECSSTAT_Msk (0x100UL) /*!< BLEIF INTCLR: BLECSSTAT (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_BLECIRQ_Pos (7UL) /*!< BLEIF INTCLR: BLECIRQ (Bit 7) */ +#define BLEIF_INTCLR_BLECIRQ_Msk (0x80UL) /*!< BLEIF INTCLR: BLECIRQ (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_ICMD_Pos (6UL) /*!< BLEIF INTCLR: ICMD (Bit 6) */ +#define BLEIF_INTCLR_ICMD_Msk (0x40UL) /*!< BLEIF INTCLR: ICMD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_IACC_Pos (5UL) /*!< BLEIF INTCLR: IACC (Bit 5) */ +#define BLEIF_INTCLR_IACC_Msk (0x20UL) /*!< BLEIF INTCLR: IACC (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_B2MST_Pos (4UL) /*!< BLEIF INTCLR: B2MST (Bit 4) */ +#define BLEIF_INTCLR_B2MST_Msk (0x10UL) /*!< BLEIF INTCLR: B2MST (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_FOVFL_Pos (3UL) /*!< BLEIF INTCLR: FOVFL (Bit 3) */ +#define BLEIF_INTCLR_FOVFL_Msk (0x8UL) /*!< BLEIF INTCLR: FOVFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_FUNDFL_Pos (2UL) /*!< BLEIF INTCLR: FUNDFL (Bit 2) */ +#define BLEIF_INTCLR_FUNDFL_Msk (0x4UL) /*!< BLEIF INTCLR: FUNDFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_THR_Pos (1UL) /*!< BLEIF INTCLR: THR (Bit 1) */ +#define BLEIF_INTCLR_THR_Msk (0x2UL) /*!< BLEIF INTCLR: THR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTCLR_CMDCMP_Pos (0UL) /*!< BLEIF INTCLR: CMDCMP (Bit 0) */ +#define BLEIF_INTCLR_CMDCMP_Msk (0x1UL) /*!< BLEIF INTCLR: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define BLEIF_INTSET_B2MSHUTDN_Pos (16UL) /*!< BLEIF INTSET: B2MSHUTDN (Bit 16) */ +#define BLEIF_INTSET_B2MSHUTDN_Msk (0x10000UL) /*!< BLEIF INTSET: B2MSHUTDN (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_B2MACTIVE_Pos (15UL) /*!< BLEIF INTSET: B2MACTIVE (Bit 15) */ +#define BLEIF_INTSET_B2MACTIVE_Msk (0x8000UL) /*!< BLEIF INTSET: B2MACTIVE (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_B2MSLEEP_Pos (14UL) /*!< BLEIF INTSET: B2MSLEEP (Bit 14) */ +#define BLEIF_INTSET_B2MSLEEP_Msk (0x4000UL) /*!< BLEIF INTSET: B2MSLEEP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_CQERR_Pos (13UL) /*!< BLEIF INTSET: CQERR (Bit 13) */ +#define BLEIF_INTSET_CQERR_Msk (0x2000UL) /*!< BLEIF INTSET: CQERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_CQUPD_Pos (12UL) /*!< BLEIF INTSET: CQUPD (Bit 12) */ +#define BLEIF_INTSET_CQUPD_Msk (0x1000UL) /*!< BLEIF INTSET: CQUPD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_CQPAUSED_Pos (11UL) /*!< BLEIF INTSET: CQPAUSED (Bit 11) */ +#define BLEIF_INTSET_CQPAUSED_Msk (0x800UL) /*!< BLEIF INTSET: CQPAUSED (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_DERR_Pos (10UL) /*!< BLEIF INTSET: DERR (Bit 10) */ +#define BLEIF_INTSET_DERR_Msk (0x400UL) /*!< BLEIF INTSET: DERR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_DCMP_Pos (9UL) /*!< BLEIF INTSET: DCMP (Bit 9) */ +#define BLEIF_INTSET_DCMP_Msk (0x200UL) /*!< BLEIF INTSET: DCMP (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_BLECSSTAT_Pos (8UL) /*!< BLEIF INTSET: BLECSSTAT (Bit 8) */ +#define BLEIF_INTSET_BLECSSTAT_Msk (0x100UL) /*!< BLEIF INTSET: BLECSSTAT (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_BLECIRQ_Pos (7UL) /*!< BLEIF INTSET: BLECIRQ (Bit 7) */ +#define BLEIF_INTSET_BLECIRQ_Msk (0x80UL) /*!< BLEIF INTSET: BLECIRQ (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_ICMD_Pos (6UL) /*!< BLEIF INTSET: ICMD (Bit 6) */ +#define BLEIF_INTSET_ICMD_Msk (0x40UL) /*!< BLEIF INTSET: ICMD (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_IACC_Pos (5UL) /*!< BLEIF INTSET: IACC (Bit 5) */ +#define BLEIF_INTSET_IACC_Msk (0x20UL) /*!< BLEIF INTSET: IACC (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_B2MST_Pos (4UL) /*!< BLEIF INTSET: B2MST (Bit 4) */ +#define BLEIF_INTSET_B2MST_Msk (0x10UL) /*!< BLEIF INTSET: B2MST (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_FOVFL_Pos (3UL) /*!< BLEIF INTSET: FOVFL (Bit 3) */ +#define BLEIF_INTSET_FOVFL_Msk (0x8UL) /*!< BLEIF INTSET: FOVFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_FUNDFL_Pos (2UL) /*!< BLEIF INTSET: FUNDFL (Bit 2) */ +#define BLEIF_INTSET_FUNDFL_Msk (0x4UL) /*!< BLEIF INTSET: FUNDFL (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_THR_Pos (1UL) /*!< BLEIF INTSET: THR (Bit 1) */ +#define BLEIF_INTSET_THR_Msk (0x2UL) /*!< BLEIF INTSET: THR (Bitfield-Mask: 0x01) */ +#define BLEIF_INTSET_CMDCMP_Pos (0UL) /*!< BLEIF INTSET: CMDCMP (Bit 0) */ +#define BLEIF_INTSET_CMDCMP_Msk (0x1UL) /*!< BLEIF INTSET: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================= DMATRIGEN ======================================================= */ +#define BLEIF_DMATRIGEN_DTHREN_Pos (1UL) /*!< BLEIF DMATRIGEN: DTHREN (Bit 1) */ +#define BLEIF_DMATRIGEN_DTHREN_Msk (0x2UL) /*!< BLEIF DMATRIGEN: DTHREN (Bitfield-Mask: 0x01) */ +#define BLEIF_DMATRIGEN_DCMDCMPEN_Pos (0UL) /*!< BLEIF DMATRIGEN: DCMDCMPEN (Bit 0) */ +#define BLEIF_DMATRIGEN_DCMDCMPEN_Msk (0x1UL) /*!< BLEIF DMATRIGEN: DCMDCMPEN (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +#define BLEIF_DMATRIGSTAT_DTOTCMP_Pos (2UL) /*!< BLEIF DMATRIGSTAT: DTOTCMP (Bit 2) */ +#define BLEIF_DMATRIGSTAT_DTOTCMP_Msk (0x4UL) /*!< BLEIF DMATRIGSTAT: DTOTCMP (Bitfield-Mask: 0x01) */ +#define BLEIF_DMATRIGSTAT_DTHR_Pos (1UL) /*!< BLEIF DMATRIGSTAT: DTHR (Bit 1) */ +#define BLEIF_DMATRIGSTAT_DTHR_Msk (0x2UL) /*!< BLEIF DMATRIGSTAT: DTHR (Bitfield-Mask: 0x01) */ +#define BLEIF_DMATRIGSTAT_DCMDCMP_Pos (0UL) /*!< BLEIF DMATRIGSTAT: DCMDCMP (Bit 0) */ +#define BLEIF_DMATRIGSTAT_DCMDCMP_Msk (0x1UL) /*!< BLEIF DMATRIGSTAT: DCMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== DMACFG ========================================================= */ +#define BLEIF_DMACFG_DMAPRI_Pos (8UL) /*!< BLEIF DMACFG: DMAPRI (Bit 8) */ +#define BLEIF_DMACFG_DMAPRI_Msk (0x100UL) /*!< BLEIF DMACFG: DMAPRI (Bitfield-Mask: 0x01) */ +#define BLEIF_DMACFG_DMADIR_Pos (1UL) /*!< BLEIF DMACFG: DMADIR (Bit 1) */ +#define BLEIF_DMACFG_DMADIR_Msk (0x2UL) /*!< BLEIF DMACFG: DMADIR (Bitfield-Mask: 0x01) */ +#define BLEIF_DMACFG_DMAEN_Pos (0UL) /*!< BLEIF DMACFG: DMAEN (Bit 0) */ +#define BLEIF_DMACFG_DMAEN_Msk (0x1UL) /*!< BLEIF DMACFG: DMAEN (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATOTCOUNT ====================================================== */ +#define BLEIF_DMATOTCOUNT_TOTCOUNT_Pos (0UL) /*!< BLEIF DMATOTCOUNT: TOTCOUNT (Bit 0) */ +#define BLEIF_DMATOTCOUNT_TOTCOUNT_Msk (0xfffUL) /*!< BLEIF DMATOTCOUNT: TOTCOUNT (Bitfield-Mask: 0xfff) */ +/* ====================================================== DMATARGADDR ====================================================== */ +#define BLEIF_DMATARGADDR_TARGADDR28_Pos (28UL) /*!< BLEIF DMATARGADDR: TARGADDR28 (Bit 28) */ +#define BLEIF_DMATARGADDR_TARGADDR28_Msk (0x10000000UL) /*!< BLEIF DMATARGADDR: TARGADDR28 (Bitfield-Mask: 0x01) */ +#define BLEIF_DMATARGADDR_TARGADDR_Pos (0UL) /*!< BLEIF DMATARGADDR: TARGADDR (Bit 0) */ +#define BLEIF_DMATARGADDR_TARGADDR_Msk (0x1fffffUL) /*!< BLEIF DMATARGADDR: TARGADDR (Bitfield-Mask: 0x1fffff) */ +/* ======================================================== DMASTAT ======================================================== */ +#define BLEIF_DMASTAT_DMAERR_Pos (2UL) /*!< BLEIF DMASTAT: DMAERR (Bit 2) */ +#define BLEIF_DMASTAT_DMAERR_Msk (0x4UL) /*!< BLEIF DMASTAT: DMAERR (Bitfield-Mask: 0x01) */ +#define BLEIF_DMASTAT_DMACPL_Pos (1UL) /*!< BLEIF DMASTAT: DMACPL (Bit 1) */ +#define BLEIF_DMASTAT_DMACPL_Msk (0x2UL) /*!< BLEIF DMASTAT: DMACPL (Bitfield-Mask: 0x01) */ +#define BLEIF_DMASTAT_DMATIP_Pos (0UL) /*!< BLEIF DMASTAT: DMATIP (Bit 0) */ +#define BLEIF_DMASTAT_DMATIP_Msk (0x1UL) /*!< BLEIF DMASTAT: DMATIP (Bitfield-Mask: 0x01) */ +/* ========================================================= CQCFG ========================================================= */ +#define BLEIF_CQCFG_CQPRI_Pos (1UL) /*!< BLEIF CQCFG: CQPRI (Bit 1) */ +#define BLEIF_CQCFG_CQPRI_Msk (0x2UL) /*!< BLEIF CQCFG: CQPRI (Bitfield-Mask: 0x01) */ +#define BLEIF_CQCFG_CQEN_Pos (0UL) /*!< BLEIF CQCFG: CQEN (Bit 0) */ +#define BLEIF_CQCFG_CQEN_Msk (0x1UL) /*!< BLEIF CQCFG: CQEN (Bitfield-Mask: 0x01) */ +/* ======================================================== CQADDR ========================================================= */ +#define BLEIF_CQADDR_CQADDR28_Pos (28UL) /*!< BLEIF CQADDR: CQADDR28 (Bit 28) */ +#define BLEIF_CQADDR_CQADDR28_Msk (0x10000000UL) /*!< BLEIF CQADDR: CQADDR28 (Bitfield-Mask: 0x01) */ +#define BLEIF_CQADDR_CQADDR_Pos (2UL) /*!< BLEIF CQADDR: CQADDR (Bit 2) */ +#define BLEIF_CQADDR_CQADDR_Msk (0x1ffffcUL) /*!< BLEIF CQADDR: CQADDR (Bitfield-Mask: 0x7ffff) */ +/* ======================================================== CQSTAT ========================================================= */ +#define BLEIF_CQSTAT_CQERR_Pos (2UL) /*!< BLEIF CQSTAT: CQERR (Bit 2) */ +#define BLEIF_CQSTAT_CQERR_Msk (0x4UL) /*!< BLEIF CQSTAT: CQERR (Bitfield-Mask: 0x01) */ +#define BLEIF_CQSTAT_CQPAUSED_Pos (1UL) /*!< BLEIF CQSTAT: CQPAUSED (Bit 1) */ +#define BLEIF_CQSTAT_CQPAUSED_Msk (0x2UL) /*!< BLEIF CQSTAT: CQPAUSED (Bitfield-Mask: 0x01) */ +#define BLEIF_CQSTAT_CQTIP_Pos (0UL) /*!< BLEIF CQSTAT: CQTIP (Bit 0) */ +#define BLEIF_CQSTAT_CQTIP_Msk (0x1UL) /*!< BLEIF CQSTAT: CQTIP (Bitfield-Mask: 0x01) */ +/* ======================================================== CQFLAGS ======================================================== */ +#define BLEIF_CQFLAGS_CQIRQMASK_Pos (16UL) /*!< BLEIF CQFLAGS: CQIRQMASK (Bit 16) */ +#define BLEIF_CQFLAGS_CQIRQMASK_Msk (0xffff0000UL) /*!< BLEIF CQFLAGS: CQIRQMASK (Bitfield-Mask: 0xffff) */ +#define BLEIF_CQFLAGS_CQFLAGS_Pos (0UL) /*!< BLEIF CQFLAGS: CQFLAGS (Bit 0) */ +#define BLEIF_CQFLAGS_CQFLAGS_Msk (0xffffUL) /*!< BLEIF CQFLAGS: CQFLAGS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CQSETCLEAR ======================================================= */ +#define BLEIF_CQSETCLEAR_CQFCLR_Pos (16UL) /*!< BLEIF CQSETCLEAR: CQFCLR (Bit 16) */ +#define BLEIF_CQSETCLEAR_CQFCLR_Msk (0xff0000UL) /*!< BLEIF CQSETCLEAR: CQFCLR (Bitfield-Mask: 0xff) */ +#define BLEIF_CQSETCLEAR_CQFTGL_Pos (8UL) /*!< BLEIF CQSETCLEAR: CQFTGL (Bit 8) */ +#define BLEIF_CQSETCLEAR_CQFTGL_Msk (0xff00UL) /*!< BLEIF CQSETCLEAR: CQFTGL (Bitfield-Mask: 0xff) */ +#define BLEIF_CQSETCLEAR_CQFSET_Pos (0UL) /*!< BLEIF CQSETCLEAR: CQFSET (Bit 0) */ +#define BLEIF_CQSETCLEAR_CQFSET_Msk (0xffUL) /*!< BLEIF CQSETCLEAR: CQFSET (Bitfield-Mask: 0xff) */ +/* ======================================================= CQPAUSEEN ======================================================= */ +#define BLEIF_CQPAUSEEN_CQPEN_Pos (0UL) /*!< BLEIF CQPAUSEEN: CQPEN (Bit 0) */ +#define BLEIF_CQPAUSEEN_CQPEN_Msk (0xffffUL) /*!< BLEIF CQPAUSEEN: CQPEN (Bitfield-Mask: 0xffff) */ +/* ======================================================= CQCURIDX ======================================================== */ +#define BLEIF_CQCURIDX_CQCURIDX_Pos (0UL) /*!< BLEIF CQCURIDX: CQCURIDX (Bit 0) */ +#define BLEIF_CQCURIDX_CQCURIDX_Msk (0xffUL) /*!< BLEIF CQCURIDX: CQCURIDX (Bitfield-Mask: 0xff) */ +/* ======================================================= CQENDIDX ======================================================== */ +#define BLEIF_CQENDIDX_CQENDIDX_Pos (0UL) /*!< BLEIF CQENDIDX: CQENDIDX (Bit 0) */ +#define BLEIF_CQENDIDX_CQENDIDX_Msk (0xffUL) /*!< BLEIF CQENDIDX: CQENDIDX (Bitfield-Mask: 0xff) */ +/* ======================================================== STATUS ========================================================= */ +#define BLEIF_STATUS_IDLEST_Pos (2UL) /*!< BLEIF STATUS: IDLEST (Bit 2) */ +#define BLEIF_STATUS_IDLEST_Msk (0x4UL) /*!< BLEIF STATUS: IDLEST (Bitfield-Mask: 0x01) */ +#define BLEIF_STATUS_CMDACT_Pos (1UL) /*!< BLEIF STATUS: CMDACT (Bit 1) */ +#define BLEIF_STATUS_CMDACT_Msk (0x2UL) /*!< BLEIF STATUS: CMDACT (Bitfield-Mask: 0x01) */ +#define BLEIF_STATUS_ERR_Pos (0UL) /*!< BLEIF STATUS: ERR (Bit 0) */ +#define BLEIF_STATUS_ERR_Msk (0x1UL) /*!< BLEIF STATUS: ERR (Bitfield-Mask: 0x01) */ +/* ======================================================== MSPICFG ======================================================== */ +#define BLEIF_MSPICFG_MSPIRST_Pos (30UL) /*!< BLEIF MSPICFG: MSPIRST (Bit 30) */ +#define BLEIF_MSPICFG_MSPIRST_Msk (0x40000000UL) /*!< BLEIF MSPICFG: MSPIRST (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_DOUTDLY_Pos (27UL) /*!< BLEIF MSPICFG: DOUTDLY (Bit 27) */ +#define BLEIF_MSPICFG_DOUTDLY_Msk (0x38000000UL) /*!< BLEIF MSPICFG: DOUTDLY (Bitfield-Mask: 0x07) */ +#define BLEIF_MSPICFG_DINDLY_Pos (24UL) /*!< BLEIF MSPICFG: DINDLY (Bit 24) */ +#define BLEIF_MSPICFG_DINDLY_Msk (0x7000000UL) /*!< BLEIF MSPICFG: DINDLY (Bitfield-Mask: 0x07) */ +#define BLEIF_MSPICFG_SPILSB_Pos (23UL) /*!< BLEIF MSPICFG: SPILSB (Bit 23) */ +#define BLEIF_MSPICFG_SPILSB_Msk (0x800000UL) /*!< BLEIF MSPICFG: SPILSB (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_RDFCPOL_Pos (22UL) /*!< BLEIF MSPICFG: RDFCPOL (Bit 22) */ +#define BLEIF_MSPICFG_RDFCPOL_Msk (0x400000UL) /*!< BLEIF MSPICFG: RDFCPOL (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_WTFCPOL_Pos (21UL) /*!< BLEIF MSPICFG: WTFCPOL (Bit 21) */ +#define BLEIF_MSPICFG_WTFCPOL_Msk (0x200000UL) /*!< BLEIF MSPICFG: WTFCPOL (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_RDFC_Pos (17UL) /*!< BLEIF MSPICFG: RDFC (Bit 17) */ +#define BLEIF_MSPICFG_RDFC_Msk (0x20000UL) /*!< BLEIF MSPICFG: RDFC (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_WTFC_Pos (16UL) /*!< BLEIF MSPICFG: WTFC (Bit 16) */ +#define BLEIF_MSPICFG_WTFC_Msk (0x10000UL) /*!< BLEIF MSPICFG: WTFC (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_FULLDUP_Pos (2UL) /*!< BLEIF MSPICFG: FULLDUP (Bit 2) */ +#define BLEIF_MSPICFG_FULLDUP_Msk (0x4UL) /*!< BLEIF MSPICFG: FULLDUP (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_SPHA_Pos (1UL) /*!< BLEIF MSPICFG: SPHA (Bit 1) */ +#define BLEIF_MSPICFG_SPHA_Msk (0x2UL) /*!< BLEIF MSPICFG: SPHA (Bitfield-Mask: 0x01) */ +#define BLEIF_MSPICFG_SPOL_Pos (0UL) /*!< BLEIF MSPICFG: SPOL (Bit 0) */ +#define BLEIF_MSPICFG_SPOL_Msk (0x1UL) /*!< BLEIF MSPICFG: SPOL (Bitfield-Mask: 0x01) */ +/* ======================================================== BLECFG ========================================================= */ +#define BLEIF_BLECFG_SPIISOCTL_Pos (14UL) /*!< BLEIF BLECFG: SPIISOCTL (Bit 14) */ +#define BLEIF_BLECFG_SPIISOCTL_Msk (0xc000UL) /*!< BLEIF BLECFG: SPIISOCTL (Bitfield-Mask: 0x03) */ +#define BLEIF_BLECFG_PWRISOCTL_Pos (12UL) /*!< BLEIF BLECFG: PWRISOCTL (Bit 12) */ +#define BLEIF_BLECFG_PWRISOCTL_Msk (0x3000UL) /*!< BLEIF BLECFG: PWRISOCTL (Bitfield-Mask: 0x03) */ +#define BLEIF_BLECFG_STAYASLEEP_Pos (11UL) /*!< BLEIF BLECFG: STAYASLEEP (Bit 11) */ +#define BLEIF_BLECFG_STAYASLEEP_Msk (0x800UL) /*!< BLEIF BLECFG: STAYASLEEP (Bitfield-Mask: 0x01) */ +#define BLEIF_BLECFG_FRCCLK_Pos (10UL) /*!< BLEIF BLECFG: FRCCLK (Bit 10) */ +#define BLEIF_BLECFG_FRCCLK_Msk (0x400UL) /*!< BLEIF BLECFG: FRCCLK (Bitfield-Mask: 0x01) */ +#define BLEIF_BLECFG_MCUFRCSLP_Pos (9UL) /*!< BLEIF BLECFG: MCUFRCSLP (Bit 9) */ +#define BLEIF_BLECFG_MCUFRCSLP_Msk (0x200UL) /*!< BLEIF BLECFG: MCUFRCSLP (Bitfield-Mask: 0x01) */ +#define BLEIF_BLECFG_WT4ACTOFF_Pos (8UL) /*!< BLEIF BLECFG: WT4ACTOFF (Bit 8) */ +#define BLEIF_BLECFG_WT4ACTOFF_Msk (0x100UL) /*!< BLEIF BLECFG: WT4ACTOFF (Bitfield-Mask: 0x01) */ +#define BLEIF_BLECFG_BLEHREQCTL_Pos (6UL) /*!< BLEIF BLECFG: BLEHREQCTL (Bit 6) */ +#define BLEIF_BLECFG_BLEHREQCTL_Msk (0xc0UL) /*!< BLEIF BLECFG: BLEHREQCTL (Bitfield-Mask: 0x03) */ +#define BLEIF_BLECFG_DCDCFLGCTL_Pos (4UL) /*!< BLEIF BLECFG: DCDCFLGCTL (Bit 4) */ +#define BLEIF_BLECFG_DCDCFLGCTL_Msk (0x30UL) /*!< BLEIF BLECFG: DCDCFLGCTL (Bitfield-Mask: 0x03) */ +#define BLEIF_BLECFG_WAKEUPCTL_Pos (2UL) /*!< BLEIF BLECFG: WAKEUPCTL (Bit 2) */ +#define BLEIF_BLECFG_WAKEUPCTL_Msk (0xcUL) /*!< BLEIF BLECFG: WAKEUPCTL (Bitfield-Mask: 0x03) */ +#define BLEIF_BLECFG_BLERSTN_Pos (1UL) /*!< BLEIF BLECFG: BLERSTN (Bit 1) */ +#define BLEIF_BLECFG_BLERSTN_Msk (0x2UL) /*!< BLEIF BLECFG: BLERSTN (Bitfield-Mask: 0x01) */ +#define BLEIF_BLECFG_PWRSMEN_Pos (0UL) /*!< BLEIF BLECFG: PWRSMEN (Bit 0) */ +#define BLEIF_BLECFG_PWRSMEN_Msk (0x1UL) /*!< BLEIF BLECFG: PWRSMEN (Bitfield-Mask: 0x01) */ +/* ======================================================== PWRCMD ========================================================= */ +#define BLEIF_PWRCMD_RESTART_Pos (1UL) /*!< BLEIF PWRCMD: RESTART (Bit 1) */ +#define BLEIF_PWRCMD_RESTART_Msk (0x2UL) /*!< BLEIF PWRCMD: RESTART (Bitfield-Mask: 0x01) */ +#define BLEIF_PWRCMD_WAKEREQ_Pos (0UL) /*!< BLEIF PWRCMD: WAKEREQ (Bit 0) */ +#define BLEIF_PWRCMD_WAKEREQ_Msk (0x1UL) /*!< BLEIF PWRCMD: WAKEREQ (Bitfield-Mask: 0x01) */ +/* ======================================================== BSTATUS ======================================================== */ +#define BLEIF_BSTATUS_BLEHREQ_Pos (12UL) /*!< BLEIF BSTATUS: BLEHREQ (Bit 12) */ +#define BLEIF_BSTATUS_BLEHREQ_Msk (0x1000UL) /*!< BLEIF BSTATUS: BLEHREQ (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_BLEHACK_Pos (11UL) /*!< BLEIF BSTATUS: BLEHACK (Bit 11) */ +#define BLEIF_BSTATUS_BLEHACK_Msk (0x800UL) /*!< BLEIF BSTATUS: BLEHACK (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_PWRST_Pos (8UL) /*!< BLEIF BSTATUS: PWRST (Bit 8) */ +#define BLEIF_BSTATUS_PWRST_Msk (0x700UL) /*!< BLEIF BSTATUS: PWRST (Bitfield-Mask: 0x07) */ +#define BLEIF_BSTATUS_BLEIRQ_Pos (7UL) /*!< BLEIF BSTATUS: BLEIRQ (Bit 7) */ +#define BLEIF_BSTATUS_BLEIRQ_Msk (0x80UL) /*!< BLEIF BSTATUS: BLEIRQ (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_WAKEUP_Pos (6UL) /*!< BLEIF BSTATUS: WAKEUP (Bit 6) */ +#define BLEIF_BSTATUS_WAKEUP_Msk (0x40UL) /*!< BLEIF BSTATUS: WAKEUP (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_DCDCFLAG_Pos (5UL) /*!< BLEIF BSTATUS: DCDCFLAG (Bit 5) */ +#define BLEIF_BSTATUS_DCDCFLAG_Msk (0x20UL) /*!< BLEIF BSTATUS: DCDCFLAG (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_DCDCREQ_Pos (4UL) /*!< BLEIF BSTATUS: DCDCREQ (Bit 4) */ +#define BLEIF_BSTATUS_DCDCREQ_Msk (0x10UL) /*!< BLEIF BSTATUS: DCDCREQ (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_SPISTATUS_Pos (3UL) /*!< BLEIF BSTATUS: SPISTATUS (Bit 3) */ +#define BLEIF_BSTATUS_SPISTATUS_Msk (0x8UL) /*!< BLEIF BSTATUS: SPISTATUS (Bitfield-Mask: 0x01) */ +#define BLEIF_BSTATUS_B2MSTATE_Pos (0UL) /*!< BLEIF BSTATUS: B2MSTATE (Bit 0) */ +#define BLEIF_BSTATUS_B2MSTATE_Msk (0x7UL) /*!< BLEIF BSTATUS: B2MSTATE (Bitfield-Mask: 0x07) */ +/* ======================================================== BLEDBG ========================================================= */ +#define BLEIF_BLEDBG_DBGDATA_Pos (3UL) /*!< BLEIF BLEDBG: DBGDATA (Bit 3) */ +#define BLEIF_BLEDBG_DBGDATA_Msk (0xfffffff8UL) /*!< BLEIF BLEDBG: DBGDATA (Bitfield-Mask: 0x1fffffff) */ +#define BLEIF_BLEDBG_APBCLKON_Pos (2UL) /*!< BLEIF BLEDBG: APBCLKON (Bit 2) */ +#define BLEIF_BLEDBG_APBCLKON_Msk (0x4UL) /*!< BLEIF BLEDBG: APBCLKON (Bitfield-Mask: 0x01) */ +#define BLEIF_BLEDBG_IOCLKON_Pos (1UL) /*!< BLEIF BLEDBG: IOCLKON (Bit 1) */ +#define BLEIF_BLEDBG_IOCLKON_Msk (0x2UL) /*!< BLEIF BLEDBG: IOCLKON (Bitfield-Mask: 0x01) */ +#define BLEIF_BLEDBG_DBGEN_Pos (0UL) /*!< BLEIF BLEDBG: DBGEN (Bit 0) */ +#define BLEIF_BLEDBG_DBGEN_Msk (0x1UL) /*!< BLEIF BLEDBG: DBGEN (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ CACHECTRL ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= CACHECFG ======================================================== */ +#define CACHECTRL_CACHECFG_ENABLE_MONITOR_Pos (24UL) /*!< CACHECTRL CACHECFG: ENABLE_MONITOR (Bit 24) */ +#define CACHECTRL_CACHECFG_ENABLE_MONITOR_Msk (0x1000000UL) /*!< CACHECTRL CACHECFG: ENABLE_MONITOR (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_DATA_CLKGATE_Pos (20UL) /*!< CACHECTRL CACHECFG: DATA_CLKGATE (Bit 20) */ +#define CACHECTRL_CACHECFG_DATA_CLKGATE_Msk (0x100000UL) /*!< CACHECTRL CACHECFG: DATA_CLKGATE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_CACHE_LS_Pos (11UL) /*!< CACHECTRL CACHECFG: CACHE_LS (Bit 11) */ +#define CACHECTRL_CACHECFG_CACHE_LS_Msk (0x800UL) /*!< CACHECTRL CACHECFG: CACHE_LS (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_CACHE_CLKGATE_Pos (10UL) /*!< CACHECTRL CACHECFG: CACHE_CLKGATE (Bit 10) */ +#define CACHECTRL_CACHECFG_CACHE_CLKGATE_Msk (0x400UL) /*!< CACHECTRL CACHECFG: CACHE_CLKGATE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_DCACHE_ENABLE_Pos (9UL) /*!< CACHECTRL CACHECFG: DCACHE_ENABLE (Bit 9) */ +#define CACHECTRL_CACHECFG_DCACHE_ENABLE_Msk (0x200UL) /*!< CACHECTRL CACHECFG: DCACHE_ENABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_ICACHE_ENABLE_Pos (8UL) /*!< CACHECTRL CACHECFG: ICACHE_ENABLE (Bit 8) */ +#define CACHECTRL_CACHECFG_ICACHE_ENABLE_Msk (0x100UL) /*!< CACHECTRL CACHECFG: ICACHE_ENABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_CONFIG_Pos (4UL) /*!< CACHECTRL CACHECFG: CONFIG (Bit 4) */ +#define CACHECTRL_CACHECFG_CONFIG_Msk (0xf0UL) /*!< CACHECTRL CACHECFG: CONFIG (Bitfield-Mask: 0x0f) */ +#define CACHECTRL_CACHECFG_ENABLE_NC1_Pos (3UL) /*!< CACHECTRL CACHECFG: ENABLE_NC1 (Bit 3) */ +#define CACHECTRL_CACHECFG_ENABLE_NC1_Msk (0x8UL) /*!< CACHECTRL CACHECFG: ENABLE_NC1 (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_ENABLE_NC0_Pos (2UL) /*!< CACHECTRL CACHECFG: ENABLE_NC0 (Bit 2) */ +#define CACHECTRL_CACHECFG_ENABLE_NC0_Msk (0x4UL) /*!< CACHECTRL CACHECFG: ENABLE_NC0 (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_LRU_Pos (1UL) /*!< CACHECTRL CACHECFG: LRU (Bit 1) */ +#define CACHECTRL_CACHECFG_LRU_Msk (0x2UL) /*!< CACHECTRL CACHECFG: LRU (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CACHECFG_ENABLE_Pos (0UL) /*!< CACHECTRL CACHECFG: ENABLE (Bit 0) */ +#define CACHECTRL_CACHECFG_ENABLE_Msk (0x1UL) /*!< CACHECTRL CACHECFG: ENABLE (Bitfield-Mask: 0x01) */ +/* ========================================================= CTRL ========================================================== */ +#define CACHECTRL_CTRL_FLASH3_SLM_ENABLE_Pos (18UL) /*!< CACHECTRL CTRL: FLASH3_SLM_ENABLE (Bit 18) */ +#define CACHECTRL_CTRL_FLASH3_SLM_ENABLE_Msk (0x40000UL) /*!< CACHECTRL CTRL: FLASH3_SLM_ENABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH3_SLM_DISABLE_Pos (17UL) /*!< CACHECTRL CTRL: FLASH3_SLM_DISABLE (Bit 17) */ +#define CACHECTRL_CTRL_FLASH3_SLM_DISABLE_Msk (0x20000UL) /*!< CACHECTRL CTRL: FLASH3_SLM_DISABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH3_SLM_STATUS_Pos (16UL) /*!< CACHECTRL CTRL: FLASH3_SLM_STATUS (Bit 16) */ +#define CACHECTRL_CTRL_FLASH3_SLM_STATUS_Msk (0x10000UL) /*!< CACHECTRL CTRL: FLASH3_SLM_STATUS (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH2_SLM_ENABLE_Pos (14UL) /*!< CACHECTRL CTRL: FLASH2_SLM_ENABLE (Bit 14) */ +#define CACHECTRL_CTRL_FLASH2_SLM_ENABLE_Msk (0x4000UL) /*!< CACHECTRL CTRL: FLASH2_SLM_ENABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH2_SLM_DISABLE_Pos (13UL) /*!< CACHECTRL CTRL: FLASH2_SLM_DISABLE (Bit 13) */ +#define CACHECTRL_CTRL_FLASH2_SLM_DISABLE_Msk (0x2000UL) /*!< CACHECTRL CTRL: FLASH2_SLM_DISABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH2_SLM_STATUS_Pos (12UL) /*!< CACHECTRL CTRL: FLASH2_SLM_STATUS (Bit 12) */ +#define CACHECTRL_CTRL_FLASH2_SLM_STATUS_Msk (0x1000UL) /*!< CACHECTRL CTRL: FLASH2_SLM_STATUS (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH1_SLM_ENABLE_Pos (10UL) /*!< CACHECTRL CTRL: FLASH1_SLM_ENABLE (Bit 10) */ +#define CACHECTRL_CTRL_FLASH1_SLM_ENABLE_Msk (0x400UL) /*!< CACHECTRL CTRL: FLASH1_SLM_ENABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH1_SLM_DISABLE_Pos (9UL) /*!< CACHECTRL CTRL: FLASH1_SLM_DISABLE (Bit 9) */ +#define CACHECTRL_CTRL_FLASH1_SLM_DISABLE_Msk (0x200UL) /*!< CACHECTRL CTRL: FLASH1_SLM_DISABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH1_SLM_STATUS_Pos (8UL) /*!< CACHECTRL CTRL: FLASH1_SLM_STATUS (Bit 8) */ +#define CACHECTRL_CTRL_FLASH1_SLM_STATUS_Msk (0x100UL) /*!< CACHECTRL CTRL: FLASH1_SLM_STATUS (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH0_SLM_ENABLE_Pos (6UL) /*!< CACHECTRL CTRL: FLASH0_SLM_ENABLE (Bit 6) */ +#define CACHECTRL_CTRL_FLASH0_SLM_ENABLE_Msk (0x40UL) /*!< CACHECTRL CTRL: FLASH0_SLM_ENABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH0_SLM_DISABLE_Pos (5UL) /*!< CACHECTRL CTRL: FLASH0_SLM_DISABLE (Bit 5) */ +#define CACHECTRL_CTRL_FLASH0_SLM_DISABLE_Msk (0x20UL) /*!< CACHECTRL CTRL: FLASH0_SLM_DISABLE (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_FLASH0_SLM_STATUS_Pos (4UL) /*!< CACHECTRL CTRL: FLASH0_SLM_STATUS (Bit 4) */ +#define CACHECTRL_CTRL_FLASH0_SLM_STATUS_Msk (0x10UL) /*!< CACHECTRL CTRL: FLASH0_SLM_STATUS (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_CACHE_READY_Pos (2UL) /*!< CACHECTRL CTRL: CACHE_READY (Bit 2) */ +#define CACHECTRL_CTRL_CACHE_READY_Msk (0x4UL) /*!< CACHECTRL CTRL: CACHE_READY (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_RESET_STAT_Pos (1UL) /*!< CACHECTRL CTRL: RESET_STAT (Bit 1) */ +#define CACHECTRL_CTRL_RESET_STAT_Msk (0x2UL) /*!< CACHECTRL CTRL: RESET_STAT (Bitfield-Mask: 0x01) */ +#define CACHECTRL_CTRL_INVALIDATE_Pos (0UL) /*!< CACHECTRL CTRL: INVALIDATE (Bit 0) */ +#define CACHECTRL_CTRL_INVALIDATE_Msk (0x1UL) /*!< CACHECTRL CTRL: INVALIDATE (Bitfield-Mask: 0x01) */ +/* ======================================================= NCR0START ======================================================= */ +#define CACHECTRL_NCR0START_ADDR_Pos (4UL) /*!< CACHECTRL NCR0START: ADDR (Bit 4) */ +#define CACHECTRL_NCR0START_ADDR_Msk (0x7fffff0UL) /*!< CACHECTRL NCR0START: ADDR (Bitfield-Mask: 0x7fffff) */ +/* ======================================================== NCR0END ======================================================== */ +#define CACHECTRL_NCR0END_ADDR_Pos (4UL) /*!< CACHECTRL NCR0END: ADDR (Bit 4) */ +#define CACHECTRL_NCR0END_ADDR_Msk (0x7fffff0UL) /*!< CACHECTRL NCR0END: ADDR (Bitfield-Mask: 0x7fffff) */ +/* ======================================================= NCR1START ======================================================= */ +#define CACHECTRL_NCR1START_ADDR_Pos (4UL) /*!< CACHECTRL NCR1START: ADDR (Bit 4) */ +#define CACHECTRL_NCR1START_ADDR_Msk (0x7fffff0UL) /*!< CACHECTRL NCR1START: ADDR (Bitfield-Mask: 0x7fffff) */ +/* ======================================================== NCR1END ======================================================== */ +#define CACHECTRL_NCR1END_ADDR_Pos (4UL) /*!< CACHECTRL NCR1END: ADDR (Bit 4) */ +#define CACHECTRL_NCR1END_ADDR_Msk (0x7fffff0UL) /*!< CACHECTRL NCR1END: ADDR (Bitfield-Mask: 0x7fffff) */ +/* ========================================================= DMON0 ========================================================= */ +#define CACHECTRL_DMON0_DACCESS_COUNT_Pos (0UL) /*!< CACHECTRL DMON0: DACCESS_COUNT (Bit 0) */ +#define CACHECTRL_DMON0_DACCESS_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL DMON0: DACCESS_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DMON1 ========================================================= */ +#define CACHECTRL_DMON1_DLOOKUP_COUNT_Pos (0UL) /*!< CACHECTRL DMON1: DLOOKUP_COUNT (Bit 0) */ +#define CACHECTRL_DMON1_DLOOKUP_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL DMON1: DLOOKUP_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DMON2 ========================================================= */ +#define CACHECTRL_DMON2_DHIT_COUNT_Pos (0UL) /*!< CACHECTRL DMON2: DHIT_COUNT (Bit 0) */ +#define CACHECTRL_DMON2_DHIT_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL DMON2: DHIT_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DMON3 ========================================================= */ +#define CACHECTRL_DMON3_DLINE_COUNT_Pos (0UL) /*!< CACHECTRL DMON3: DLINE_COUNT (Bit 0) */ +#define CACHECTRL_DMON3_DLINE_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL DMON3: DLINE_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= IMON0 ========================================================= */ +#define CACHECTRL_IMON0_IACCESS_COUNT_Pos (0UL) /*!< CACHECTRL IMON0: IACCESS_COUNT (Bit 0) */ +#define CACHECTRL_IMON0_IACCESS_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL IMON0: IACCESS_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= IMON1 ========================================================= */ +#define CACHECTRL_IMON1_ILOOKUP_COUNT_Pos (0UL) /*!< CACHECTRL IMON1: ILOOKUP_COUNT (Bit 0) */ +#define CACHECTRL_IMON1_ILOOKUP_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL IMON1: ILOOKUP_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= IMON2 ========================================================= */ +#define CACHECTRL_IMON2_IHIT_COUNT_Pos (0UL) /*!< CACHECTRL IMON2: IHIT_COUNT (Bit 0) */ +#define CACHECTRL_IMON2_IHIT_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL IMON2: IHIT_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= IMON3 ========================================================= */ +#define CACHECTRL_IMON3_ILINE_COUNT_Pos (0UL) /*!< CACHECTRL IMON3: ILINE_COUNT (Bit 0) */ +#define CACHECTRL_IMON3_ILINE_COUNT_Msk (0xffffffffUL) /*!< CACHECTRL IMON3: ILINE_COUNT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FLASH0CFG ======================================================= */ +#define CACHECTRL_FLASH0CFG_LPMMODE0_Pos (12UL) /*!< CACHECTRL FLASH0CFG: LPMMODE0 (Bit 12) */ +#define CACHECTRL_FLASH0CFG_LPMMODE0_Msk (0x3000UL) /*!< CACHECTRL FLASH0CFG: LPMMODE0 (Bitfield-Mask: 0x03) */ +#define CACHECTRL_FLASH0CFG_LPMRDWAIT0_Pos (8UL) /*!< CACHECTRL FLASH0CFG: LPMRDWAIT0 (Bit 8) */ +#define CACHECTRL_FLASH0CFG_LPMRDWAIT0_Msk (0xf00UL) /*!< CACHECTRL FLASH0CFG: LPMRDWAIT0 (Bitfield-Mask: 0x0f) */ +#define CACHECTRL_FLASH0CFG_SEDELAY0_Pos (4UL) /*!< CACHECTRL FLASH0CFG: SEDELAY0 (Bit 4) */ +#define CACHECTRL_FLASH0CFG_SEDELAY0_Msk (0x70UL) /*!< CACHECTRL FLASH0CFG: SEDELAY0 (Bitfield-Mask: 0x07) */ +#define CACHECTRL_FLASH0CFG_RDWAIT0_Pos (0UL) /*!< CACHECTRL FLASH0CFG: RDWAIT0 (Bit 0) */ +#define CACHECTRL_FLASH0CFG_RDWAIT0_Msk (0xfUL) /*!< CACHECTRL FLASH0CFG: RDWAIT0 (Bitfield-Mask: 0x0f) */ +/* ======================================================= FLASH1CFG ======================================================= */ +#define CACHECTRL_FLASH1CFG_LPMMODE1_Pos (12UL) /*!< CACHECTRL FLASH1CFG: LPMMODE1 (Bit 12) */ +#define CACHECTRL_FLASH1CFG_LPMMODE1_Msk (0x3000UL) /*!< CACHECTRL FLASH1CFG: LPMMODE1 (Bitfield-Mask: 0x03) */ +#define CACHECTRL_FLASH1CFG_LPMRDWAIT1_Pos (8UL) /*!< CACHECTRL FLASH1CFG: LPMRDWAIT1 (Bit 8) */ +#define CACHECTRL_FLASH1CFG_LPMRDWAIT1_Msk (0xf00UL) /*!< CACHECTRL FLASH1CFG: LPMRDWAIT1 (Bitfield-Mask: 0x0f) */ +#define CACHECTRL_FLASH1CFG_SEDELAY1_Pos (4UL) /*!< CACHECTRL FLASH1CFG: SEDELAY1 (Bit 4) */ +#define CACHECTRL_FLASH1CFG_SEDELAY1_Msk (0x70UL) /*!< CACHECTRL FLASH1CFG: SEDELAY1 (Bitfield-Mask: 0x07) */ +#define CACHECTRL_FLASH1CFG_RDWAIT1_Pos (0UL) /*!< CACHECTRL FLASH1CFG: RDWAIT1 (Bit 0) */ +#define CACHECTRL_FLASH1CFG_RDWAIT1_Msk (0xfUL) /*!< CACHECTRL FLASH1CFG: RDWAIT1 (Bitfield-Mask: 0x0f) */ +/* ======================================================= FLASH2CFG ======================================================= */ +#define CACHECTRL_FLASH2CFG_LPMMODE2_Pos (12UL) /*!< CACHECTRL FLASH2CFG: LPMMODE2 (Bit 12) */ +#define CACHECTRL_FLASH2CFG_LPMMODE2_Msk (0x3000UL) /*!< CACHECTRL FLASH2CFG: LPMMODE2 (Bitfield-Mask: 0x03) */ +#define CACHECTRL_FLASH2CFG_LPMRDWAIT2_Pos (8UL) /*!< CACHECTRL FLASH2CFG: LPMRDWAIT2 (Bit 8) */ +#define CACHECTRL_FLASH2CFG_LPMRDWAIT2_Msk (0xf00UL) /*!< CACHECTRL FLASH2CFG: LPMRDWAIT2 (Bitfield-Mask: 0x0f) */ +#define CACHECTRL_FLASH2CFG_SEDELAY2_Pos (4UL) /*!< CACHECTRL FLASH2CFG: SEDELAY2 (Bit 4) */ +#define CACHECTRL_FLASH2CFG_SEDELAY2_Msk (0x70UL) /*!< CACHECTRL FLASH2CFG: SEDELAY2 (Bitfield-Mask: 0x07) */ +#define CACHECTRL_FLASH2CFG_RDWAIT2_Pos (0UL) /*!< CACHECTRL FLASH2CFG: RDWAIT2 (Bit 0) */ +#define CACHECTRL_FLASH2CFG_RDWAIT2_Msk (0xfUL) /*!< CACHECTRL FLASH2CFG: RDWAIT2 (Bitfield-Mask: 0x0f) */ +/* ======================================================= FLASH3CFG ======================================================= */ +#define CACHECTRL_FLASH3CFG_LPMMODE3_Pos (12UL) /*!< CACHECTRL FLASH3CFG: LPMMODE3 (Bit 12) */ +#define CACHECTRL_FLASH3CFG_LPMMODE3_Msk (0x3000UL) /*!< CACHECTRL FLASH3CFG: LPMMODE3 (Bitfield-Mask: 0x03) */ +#define CACHECTRL_FLASH3CFG_LPMRDWAIT3_Pos (8UL) /*!< CACHECTRL FLASH3CFG: LPMRDWAIT3 (Bit 8) */ +#define CACHECTRL_FLASH3CFG_LPMRDWAIT3_Msk (0xf00UL) /*!< CACHECTRL FLASH3CFG: LPMRDWAIT3 (Bitfield-Mask: 0x0f) */ +#define CACHECTRL_FLASH3CFG_SEDELAY3_Pos (4UL) /*!< CACHECTRL FLASH3CFG: SEDELAY3 (Bit 4) */ +#define CACHECTRL_FLASH3CFG_SEDELAY3_Msk (0x70UL) /*!< CACHECTRL FLASH3CFG: SEDELAY3 (Bitfield-Mask: 0x07) */ +#define CACHECTRL_FLASH3CFG_RDWAIT3_Pos (0UL) /*!< CACHECTRL FLASH3CFG: RDWAIT3 (Bit 0) */ +#define CACHECTRL_FLASH3CFG_RDWAIT3_Msk (0xfUL) /*!< CACHECTRL FLASH3CFG: RDWAIT3 (Bitfield-Mask: 0x0f) */ + + +/* =========================================================================================================================== */ +/* ================ CLKGEN ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CALXT ========================================================= */ +#define CLKGEN_CALXT_CALXT_Pos (0UL) /*!< CLKGEN CALXT: CALXT (Bit 0) */ +#define CLKGEN_CALXT_CALXT_Msk (0x7ffUL) /*!< CLKGEN CALXT: CALXT (Bitfield-Mask: 0x7ff) */ +/* ========================================================= CALRC ========================================================= */ +#define CLKGEN_CALRC_CALRC_Pos (0UL) /*!< CLKGEN CALRC: CALRC (Bit 0) */ +#define CLKGEN_CALRC_CALRC_Msk (0x3ffffUL) /*!< CLKGEN CALRC: CALRC (Bitfield-Mask: 0x3ffff) */ +/* ======================================================== ACALCTR ======================================================== */ +#define CLKGEN_ACALCTR_ACALCTR_Pos (0UL) /*!< CLKGEN ACALCTR: ACALCTR (Bit 0) */ +#define CLKGEN_ACALCTR_ACALCTR_Msk (0xffffffUL) /*!< CLKGEN ACALCTR: ACALCTR (Bitfield-Mask: 0xffffff) */ +/* ========================================================= OCTRL ========================================================= */ +#define CLKGEN_OCTRL_ACAL_Pos (8UL) /*!< CLKGEN OCTRL: ACAL (Bit 8) */ +#define CLKGEN_OCTRL_ACAL_Msk (0x700UL) /*!< CLKGEN OCTRL: ACAL (Bitfield-Mask: 0x07) */ +#define CLKGEN_OCTRL_OSEL_Pos (7UL) /*!< CLKGEN OCTRL: OSEL (Bit 7) */ +#define CLKGEN_OCTRL_OSEL_Msk (0x80UL) /*!< CLKGEN OCTRL: OSEL (Bitfield-Mask: 0x01) */ +#define CLKGEN_OCTRL_FOS_Pos (6UL) /*!< CLKGEN OCTRL: FOS (Bit 6) */ +#define CLKGEN_OCTRL_FOS_Msk (0x40UL) /*!< CLKGEN OCTRL: FOS (Bitfield-Mask: 0x01) */ +#define CLKGEN_OCTRL_STOPRC_Pos (1UL) /*!< CLKGEN OCTRL: STOPRC (Bit 1) */ +#define CLKGEN_OCTRL_STOPRC_Msk (0x2UL) /*!< CLKGEN OCTRL: STOPRC (Bitfield-Mask: 0x01) */ +#define CLKGEN_OCTRL_STOPXT_Pos (0UL) /*!< CLKGEN OCTRL: STOPXT (Bit 0) */ +#define CLKGEN_OCTRL_STOPXT_Msk (0x1UL) /*!< CLKGEN OCTRL: STOPXT (Bitfield-Mask: 0x01) */ +/* ======================================================== CLKOUT ========================================================= */ +#define CLKGEN_CLKOUT_CKEN_Pos (7UL) /*!< CLKGEN CLKOUT: CKEN (Bit 7) */ +#define CLKGEN_CLKOUT_CKEN_Msk (0x80UL) /*!< CLKGEN CLKOUT: CKEN (Bitfield-Mask: 0x01) */ +#define CLKGEN_CLKOUT_CKSEL_Pos (0UL) /*!< CLKGEN CLKOUT: CKSEL (Bit 0) */ +#define CLKGEN_CLKOUT_CKSEL_Msk (0x3fUL) /*!< CLKGEN CLKOUT: CKSEL (Bitfield-Mask: 0x3f) */ +/* ======================================================== CLKKEY ========================================================= */ +#define CLKGEN_CLKKEY_CLKKEY_Pos (0UL) /*!< CLKGEN CLKKEY: CLKKEY (Bit 0) */ +#define CLKGEN_CLKKEY_CLKKEY_Msk (0xffffffffUL) /*!< CLKGEN CLKKEY: CLKKEY (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= CCTRL ========================================================= */ +#define CLKGEN_CCTRL_CORESEL_Pos (0UL) /*!< CLKGEN CCTRL: CORESEL (Bit 0) */ +#define CLKGEN_CCTRL_CORESEL_Msk (0x1UL) /*!< CLKGEN CCTRL: CORESEL (Bitfield-Mask: 0x01) */ +/* ======================================================== STATUS ========================================================= */ +#define CLKGEN_STATUS_OSCF_Pos (1UL) /*!< CLKGEN STATUS: OSCF (Bit 1) */ +#define CLKGEN_STATUS_OSCF_Msk (0x2UL) /*!< CLKGEN STATUS: OSCF (Bitfield-Mask: 0x01) */ +#define CLKGEN_STATUS_OMODE_Pos (0UL) /*!< CLKGEN STATUS: OMODE (Bit 0) */ +#define CLKGEN_STATUS_OMODE_Msk (0x1UL) /*!< CLKGEN STATUS: OMODE (Bitfield-Mask: 0x01) */ +/* ========================================================= HFADJ ========================================================= */ +#define CLKGEN_HFADJ_HFADJGAIN_Pos (21UL) /*!< CLKGEN HFADJ: HFADJGAIN (Bit 21) */ +#define CLKGEN_HFADJ_HFADJGAIN_Msk (0xe00000UL) /*!< CLKGEN HFADJ: HFADJGAIN (Bitfield-Mask: 0x07) */ +#define CLKGEN_HFADJ_HFWARMUP_Pos (20UL) /*!< CLKGEN HFADJ: HFWARMUP (Bit 20) */ +#define CLKGEN_HFADJ_HFWARMUP_Msk (0x100000UL) /*!< CLKGEN HFADJ: HFWARMUP (Bitfield-Mask: 0x01) */ +#define CLKGEN_HFADJ_HFXTADJ_Pos (8UL) /*!< CLKGEN HFADJ: HFXTADJ (Bit 8) */ +#define CLKGEN_HFADJ_HFXTADJ_Msk (0xfff00UL) /*!< CLKGEN HFADJ: HFXTADJ (Bitfield-Mask: 0xfff) */ +#define CLKGEN_HFADJ_HFADJCK_Pos (1UL) /*!< CLKGEN HFADJ: HFADJCK (Bit 1) */ +#define CLKGEN_HFADJ_HFADJCK_Msk (0xeUL) /*!< CLKGEN HFADJ: HFADJCK (Bitfield-Mask: 0x07) */ +#define CLKGEN_HFADJ_HFADJEN_Pos (0UL) /*!< CLKGEN HFADJ: HFADJEN (Bit 0) */ +#define CLKGEN_HFADJ_HFADJEN_Msk (0x1UL) /*!< CLKGEN HFADJ: HFADJEN (Bitfield-Mask: 0x01) */ +/* ====================================================== CLOCKENSTAT ====================================================== */ +#define CLKGEN_CLOCKENSTAT_CLOCKENSTAT_Pos (0UL) /*!< CLKGEN CLOCKENSTAT: CLOCKENSTAT (Bit 0) */ +#define CLKGEN_CLOCKENSTAT_CLOCKENSTAT_Msk (0xffffffffUL) /*!< CLKGEN CLOCKENSTAT: CLOCKENSTAT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== CLOCKEN2STAT ====================================================== */ +#define CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_Pos (0UL) /*!< CLKGEN CLOCKEN2STAT: CLOCKEN2STAT (Bit 0) */ +#define CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_Msk (0xffffffffUL) /*!< CLKGEN CLOCKEN2STAT: CLOCKEN2STAT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== CLOCKEN3STAT ====================================================== */ +#define CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_Pos (0UL) /*!< CLKGEN CLOCKEN3STAT: CLOCKEN3STAT (Bit 0) */ +#define CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_Msk (0xffffffffUL) /*!< CLKGEN CLOCKEN3STAT: CLOCKEN3STAT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FREQCTRL ======================================================== */ +#define CLKGEN_FREQCTRL_BURSTSTATUS_Pos (2UL) /*!< CLKGEN FREQCTRL: BURSTSTATUS (Bit 2) */ +#define CLKGEN_FREQCTRL_BURSTSTATUS_Msk (0x4UL) /*!< CLKGEN FREQCTRL: BURSTSTATUS (Bitfield-Mask: 0x01) */ +#define CLKGEN_FREQCTRL_BURSTACK_Pos (1UL) /*!< CLKGEN FREQCTRL: BURSTACK (Bit 1) */ +#define CLKGEN_FREQCTRL_BURSTACK_Msk (0x2UL) /*!< CLKGEN FREQCTRL: BURSTACK (Bitfield-Mask: 0x01) */ +#define CLKGEN_FREQCTRL_BURSTREQ_Pos (0UL) /*!< CLKGEN FREQCTRL: BURSTREQ (Bit 0) */ +#define CLKGEN_FREQCTRL_BURSTREQ_Msk (0x1UL) /*!< CLKGEN FREQCTRL: BURSTREQ (Bitfield-Mask: 0x01) */ +/* ===================================================== BLEBUCKTONADJ ===================================================== */ +#define CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTEN_Pos (27UL) /*!< CLKGEN BLEBUCKTONADJ: ZEROLENDETECTEN (Bit 27) */ +#define CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTEN_Msk (0x8000000UL) /*!< CLKGEN BLEBUCKTONADJ: ZEROLENDETECTEN (Bitfield-Mask: 0x01) */ +#define CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Pos (23UL) /*!< CLKGEN BLEBUCKTONADJ: ZEROLENDETECTTRIM (Bit 23) */ +#define CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Msk (0x7800000UL) /*!< CLKGEN BLEBUCKTONADJ: ZEROLENDETECTTRIM (Bitfield-Mask: 0x0f) */ +#define CLKGEN_BLEBUCKTONADJ_TONADJUSTEN_Pos (22UL) /*!< CLKGEN BLEBUCKTONADJ: TONADJUSTEN (Bit 22) */ +#define CLKGEN_BLEBUCKTONADJ_TONADJUSTEN_Msk (0x400000UL) /*!< CLKGEN BLEBUCKTONADJ: TONADJUSTEN (Bitfield-Mask: 0x01) */ +#define CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_Pos (20UL) /*!< CLKGEN BLEBUCKTONADJ: TONADJUSTPERIOD (Bit 20) */ +#define CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_Msk (0x300000UL) /*!< CLKGEN BLEBUCKTONADJ: TONADJUSTPERIOD (Bitfield-Mask: 0x03) */ +#define CLKGEN_BLEBUCKTONADJ_TONHIGHTHRESHOLD_Pos (10UL) /*!< CLKGEN BLEBUCKTONADJ: TONHIGHTHRESHOLD (Bit 10) */ +#define CLKGEN_BLEBUCKTONADJ_TONHIGHTHRESHOLD_Msk (0xffc00UL) /*!< CLKGEN BLEBUCKTONADJ: TONHIGHTHRESHOLD (Bitfield-Mask: 0x3ff) */ +#define CLKGEN_BLEBUCKTONADJ_TONLOWTHRESHOLD_Pos (0UL) /*!< CLKGEN BLEBUCKTONADJ: TONLOWTHRESHOLD (Bit 0) */ +#define CLKGEN_BLEBUCKTONADJ_TONLOWTHRESHOLD_Msk (0x3ffUL) /*!< CLKGEN BLEBUCKTONADJ: TONLOWTHRESHOLD (Bitfield-Mask: 0x3ff) */ +/* ======================================================= INTRPTEN ======================================================== */ +#define CLKGEN_INTRPTEN_OF_Pos (2UL) /*!< CLKGEN INTRPTEN: OF (Bit 2) */ +#define CLKGEN_INTRPTEN_OF_Msk (0x4UL) /*!< CLKGEN INTRPTEN: OF (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTEN_ACC_Pos (1UL) /*!< CLKGEN INTRPTEN: ACC (Bit 1) */ +#define CLKGEN_INTRPTEN_ACC_Msk (0x2UL) /*!< CLKGEN INTRPTEN: ACC (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTEN_ACF_Pos (0UL) /*!< CLKGEN INTRPTEN: ACF (Bit 0) */ +#define CLKGEN_INTRPTEN_ACF_Msk (0x1UL) /*!< CLKGEN INTRPTEN: ACF (Bitfield-Mask: 0x01) */ +/* ====================================================== INTRPTSTAT ======================================================= */ +#define CLKGEN_INTRPTSTAT_OF_Pos (2UL) /*!< CLKGEN INTRPTSTAT: OF (Bit 2) */ +#define CLKGEN_INTRPTSTAT_OF_Msk (0x4UL) /*!< CLKGEN INTRPTSTAT: OF (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTSTAT_ACC_Pos (1UL) /*!< CLKGEN INTRPTSTAT: ACC (Bit 1) */ +#define CLKGEN_INTRPTSTAT_ACC_Msk (0x2UL) /*!< CLKGEN INTRPTSTAT: ACC (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTSTAT_ACF_Pos (0UL) /*!< CLKGEN INTRPTSTAT: ACF (Bit 0) */ +#define CLKGEN_INTRPTSTAT_ACF_Msk (0x1UL) /*!< CLKGEN INTRPTSTAT: ACF (Bitfield-Mask: 0x01) */ +/* ======================================================= INTRPTCLR ======================================================= */ +#define CLKGEN_INTRPTCLR_OF_Pos (2UL) /*!< CLKGEN INTRPTCLR: OF (Bit 2) */ +#define CLKGEN_INTRPTCLR_OF_Msk (0x4UL) /*!< CLKGEN INTRPTCLR: OF (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTCLR_ACC_Pos (1UL) /*!< CLKGEN INTRPTCLR: ACC (Bit 1) */ +#define CLKGEN_INTRPTCLR_ACC_Msk (0x2UL) /*!< CLKGEN INTRPTCLR: ACC (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTCLR_ACF_Pos (0UL) /*!< CLKGEN INTRPTCLR: ACF (Bit 0) */ +#define CLKGEN_INTRPTCLR_ACF_Msk (0x1UL) /*!< CLKGEN INTRPTCLR: ACF (Bitfield-Mask: 0x01) */ +/* ======================================================= INTRPTSET ======================================================= */ +#define CLKGEN_INTRPTSET_OF_Pos (2UL) /*!< CLKGEN INTRPTSET: OF (Bit 2) */ +#define CLKGEN_INTRPTSET_OF_Msk (0x4UL) /*!< CLKGEN INTRPTSET: OF (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTSET_ACC_Pos (1UL) /*!< CLKGEN INTRPTSET: ACC (Bit 1) */ +#define CLKGEN_INTRPTSET_ACC_Msk (0x2UL) /*!< CLKGEN INTRPTSET: ACC (Bitfield-Mask: 0x01) */ +#define CLKGEN_INTRPTSET_ACF_Pos (0UL) /*!< CLKGEN INTRPTSET: ACF (Bit 0) */ +#define CLKGEN_INTRPTSET_ACF_Msk (0x1UL) /*!< CLKGEN INTRPTSET: ACF (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ CTIMER ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= TMR0 ========================================================== */ +#define CTIMER_TMR0_CTTMRB0_Pos (16UL) /*!< CTIMER TMR0: CTTMRB0 (Bit 16) */ +#define CTIMER_TMR0_CTTMRB0_Msk (0xffff0000UL) /*!< CTIMER TMR0: CTTMRB0 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR0_CTTMRA0_Pos (0UL) /*!< CTIMER TMR0: CTTMRA0 (Bit 0) */ +#define CTIMER_TMR0_CTTMRA0_Msk (0xffffUL) /*!< CTIMER TMR0: CTTMRA0 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA0 ========================================================= */ +#define CTIMER_CMPRA0_CMPR1A0_Pos (16UL) /*!< CTIMER CMPRA0: CMPR1A0 (Bit 16) */ +#define CTIMER_CMPRA0_CMPR1A0_Msk (0xffff0000UL) /*!< CTIMER CMPRA0: CMPR1A0 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA0_CMPR0A0_Pos (0UL) /*!< CTIMER CMPRA0: CMPR0A0 (Bit 0) */ +#define CTIMER_CMPRA0_CMPR0A0_Msk (0xffffUL) /*!< CTIMER CMPRA0: CMPR0A0 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB0 ========================================================= */ +#define CTIMER_CMPRB0_CMPR1B0_Pos (16UL) /*!< CTIMER CMPRB0: CMPR1B0 (Bit 16) */ +#define CTIMER_CMPRB0_CMPR1B0_Msk (0xffff0000UL) /*!< CTIMER CMPRB0: CMPR1B0 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB0_CMPR0B0_Pos (0UL) /*!< CTIMER CMPRB0: CMPR0B0 (Bit 0) */ +#define CTIMER_CMPRB0_CMPR0B0_Msk (0xffffUL) /*!< CTIMER CMPRB0: CMPR0B0 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL0 ========================================================= */ +#define CTIMER_CTRL0_CTLINK0_Pos (31UL) /*!< CTIMER CTRL0: CTLINK0 (Bit 31) */ +#define CTIMER_CTRL0_CTLINK0_Msk (0x80000000UL) /*!< CTIMER CTRL0: CTLINK0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRB0POL_Pos (28UL) /*!< CTIMER CTRL0: TMRB0POL (Bit 28) */ +#define CTIMER_CTRL0_TMRB0POL_Msk (0x10000000UL) /*!< CTIMER CTRL0: TMRB0POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRB0CLR_Pos (27UL) /*!< CTIMER CTRL0: TMRB0CLR (Bit 27) */ +#define CTIMER_CTRL0_TMRB0CLR_Msk (0x8000000UL) /*!< CTIMER CTRL0: TMRB0CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRB0IE1_Pos (26UL) /*!< CTIMER CTRL0: TMRB0IE1 (Bit 26) */ +#define CTIMER_CTRL0_TMRB0IE1_Msk (0x4000000UL) /*!< CTIMER CTRL0: TMRB0IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRB0IE0_Pos (25UL) /*!< CTIMER CTRL0: TMRB0IE0 (Bit 25) */ +#define CTIMER_CTRL0_TMRB0IE0_Msk (0x2000000UL) /*!< CTIMER CTRL0: TMRB0IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRB0FN_Pos (22UL) /*!< CTIMER CTRL0: TMRB0FN (Bit 22) */ +#define CTIMER_CTRL0_TMRB0FN_Msk (0x1c00000UL) /*!< CTIMER CTRL0: TMRB0FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL0_TMRB0CLK_Pos (17UL) /*!< CTIMER CTRL0: TMRB0CLK (Bit 17) */ +#define CTIMER_CTRL0_TMRB0CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL0: TMRB0CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL0_TMRB0EN_Pos (16UL) /*!< CTIMER CTRL0: TMRB0EN (Bit 16) */ +#define CTIMER_CTRL0_TMRB0EN_Msk (0x10000UL) /*!< CTIMER CTRL0: TMRB0EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRA0POL_Pos (12UL) /*!< CTIMER CTRL0: TMRA0POL (Bit 12) */ +#define CTIMER_CTRL0_TMRA0POL_Msk (0x1000UL) /*!< CTIMER CTRL0: TMRA0POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRA0CLR_Pos (11UL) /*!< CTIMER CTRL0: TMRA0CLR (Bit 11) */ +#define CTIMER_CTRL0_TMRA0CLR_Msk (0x800UL) /*!< CTIMER CTRL0: TMRA0CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRA0IE1_Pos (10UL) /*!< CTIMER CTRL0: TMRA0IE1 (Bit 10) */ +#define CTIMER_CTRL0_TMRA0IE1_Msk (0x400UL) /*!< CTIMER CTRL0: TMRA0IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRA0IE0_Pos (9UL) /*!< CTIMER CTRL0: TMRA0IE0 (Bit 9) */ +#define CTIMER_CTRL0_TMRA0IE0_Msk (0x200UL) /*!< CTIMER CTRL0: TMRA0IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL0_TMRA0FN_Pos (6UL) /*!< CTIMER CTRL0: TMRA0FN (Bit 6) */ +#define CTIMER_CTRL0_TMRA0FN_Msk (0x1c0UL) /*!< CTIMER CTRL0: TMRA0FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL0_TMRA0CLK_Pos (1UL) /*!< CTIMER CTRL0: TMRA0CLK (Bit 1) */ +#define CTIMER_CTRL0_TMRA0CLK_Msk (0x3eUL) /*!< CTIMER CTRL0: TMRA0CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL0_TMRA0EN_Pos (0UL) /*!< CTIMER CTRL0: TMRA0EN (Bit 0) */ +#define CTIMER_CTRL0_TMRA0EN_Msk (0x1UL) /*!< CTIMER CTRL0: TMRA0EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA0 ======================================================= */ +#define CTIMER_CMPRAUXA0_CMPR3A0_Pos (16UL) /*!< CTIMER CMPRAUXA0: CMPR3A0 (Bit 16) */ +#define CTIMER_CMPRAUXA0_CMPR3A0_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA0: CMPR3A0 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA0_CMPR2A0_Pos (0UL) /*!< CTIMER CMPRAUXA0: CMPR2A0 (Bit 0) */ +#define CTIMER_CMPRAUXA0_CMPR2A0_Msk (0xffffUL) /*!< CTIMER CMPRAUXA0: CMPR2A0 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB0 ======================================================= */ +#define CTIMER_CMPRAUXB0_CMPR3B0_Pos (16UL) /*!< CTIMER CMPRAUXB0: CMPR3B0 (Bit 16) */ +#define CTIMER_CMPRAUXB0_CMPR3B0_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB0: CMPR3B0 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB0_CMPR2B0_Pos (0UL) /*!< CTIMER CMPRAUXB0: CMPR2B0 (Bit 0) */ +#define CTIMER_CMPRAUXB0_CMPR2B0_Msk (0xffffUL) /*!< CTIMER CMPRAUXB0: CMPR2B0 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX0 ========================================================== */ +#define CTIMER_AUX0_TMRB0EN23_Pos (30UL) /*!< CTIMER AUX0: TMRB0EN23 (Bit 30) */ +#define CTIMER_AUX0_TMRB0EN23_Msk (0x40000000UL) /*!< CTIMER AUX0: TMRB0EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRB0POL23_Pos (29UL) /*!< CTIMER AUX0: TMRB0POL23 (Bit 29) */ +#define CTIMER_AUX0_TMRB0POL23_Msk (0x20000000UL) /*!< CTIMER AUX0: TMRB0POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRB0TINV_Pos (28UL) /*!< CTIMER AUX0: TMRB0TINV (Bit 28) */ +#define CTIMER_AUX0_TMRB0TINV_Msk (0x10000000UL) /*!< CTIMER AUX0: TMRB0TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRB0NOSYNC_Pos (27UL) /*!< CTIMER AUX0: TMRB0NOSYNC (Bit 27) */ +#define CTIMER_AUX0_TMRB0NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX0: TMRB0NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRB0TRIG_Pos (23UL) /*!< CTIMER AUX0: TMRB0TRIG (Bit 23) */ +#define CTIMER_AUX0_TMRB0TRIG_Msk (0x7800000UL) /*!< CTIMER AUX0: TMRB0TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX0_TMRB0LMT_Pos (16UL) /*!< CTIMER AUX0: TMRB0LMT (Bit 16) */ +#define CTIMER_AUX0_TMRB0LMT_Msk (0x3f0000UL) /*!< CTIMER AUX0: TMRB0LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX0_TMRA0EN23_Pos (14UL) /*!< CTIMER AUX0: TMRA0EN23 (Bit 14) */ +#define CTIMER_AUX0_TMRA0EN23_Msk (0x4000UL) /*!< CTIMER AUX0: TMRA0EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRA0POL23_Pos (13UL) /*!< CTIMER AUX0: TMRA0POL23 (Bit 13) */ +#define CTIMER_AUX0_TMRA0POL23_Msk (0x2000UL) /*!< CTIMER AUX0: TMRA0POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRA0TINV_Pos (12UL) /*!< CTIMER AUX0: TMRA0TINV (Bit 12) */ +#define CTIMER_AUX0_TMRA0TINV_Msk (0x1000UL) /*!< CTIMER AUX0: TMRA0TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRA0NOSYNC_Pos (11UL) /*!< CTIMER AUX0: TMRA0NOSYNC (Bit 11) */ +#define CTIMER_AUX0_TMRA0NOSYNC_Msk (0x800UL) /*!< CTIMER AUX0: TMRA0NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX0_TMRA0TRIG_Pos (7UL) /*!< CTIMER AUX0: TMRA0TRIG (Bit 7) */ +#define CTIMER_AUX0_TMRA0TRIG_Msk (0x780UL) /*!< CTIMER AUX0: TMRA0TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX0_TMRA0LMT_Pos (0UL) /*!< CTIMER AUX0: TMRA0LMT (Bit 0) */ +#define CTIMER_AUX0_TMRA0LMT_Msk (0x7fUL) /*!< CTIMER AUX0: TMRA0LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR1 ========================================================== */ +#define CTIMER_TMR1_CTTMRB1_Pos (16UL) /*!< CTIMER TMR1: CTTMRB1 (Bit 16) */ +#define CTIMER_TMR1_CTTMRB1_Msk (0xffff0000UL) /*!< CTIMER TMR1: CTTMRB1 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR1_CTTMRA1_Pos (0UL) /*!< CTIMER TMR1: CTTMRA1 (Bit 0) */ +#define CTIMER_TMR1_CTTMRA1_Msk (0xffffUL) /*!< CTIMER TMR1: CTTMRA1 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA1 ========================================================= */ +#define CTIMER_CMPRA1_CMPR1A1_Pos (16UL) /*!< CTIMER CMPRA1: CMPR1A1 (Bit 16) */ +#define CTIMER_CMPRA1_CMPR1A1_Msk (0xffff0000UL) /*!< CTIMER CMPRA1: CMPR1A1 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA1_CMPR0A1_Pos (0UL) /*!< CTIMER CMPRA1: CMPR0A1 (Bit 0) */ +#define CTIMER_CMPRA1_CMPR0A1_Msk (0xffffUL) /*!< CTIMER CMPRA1: CMPR0A1 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB1 ========================================================= */ +#define CTIMER_CMPRB1_CMPR1B1_Pos (16UL) /*!< CTIMER CMPRB1: CMPR1B1 (Bit 16) */ +#define CTIMER_CMPRB1_CMPR1B1_Msk (0xffff0000UL) /*!< CTIMER CMPRB1: CMPR1B1 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB1_CMPR0B1_Pos (0UL) /*!< CTIMER CMPRB1: CMPR0B1 (Bit 0) */ +#define CTIMER_CMPRB1_CMPR0B1_Msk (0xffffUL) /*!< CTIMER CMPRB1: CMPR0B1 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL1 ========================================================= */ +#define CTIMER_CTRL1_CTLINK1_Pos (31UL) /*!< CTIMER CTRL1: CTLINK1 (Bit 31) */ +#define CTIMER_CTRL1_CTLINK1_Msk (0x80000000UL) /*!< CTIMER CTRL1: CTLINK1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRB1POL_Pos (28UL) /*!< CTIMER CTRL1: TMRB1POL (Bit 28) */ +#define CTIMER_CTRL1_TMRB1POL_Msk (0x10000000UL) /*!< CTIMER CTRL1: TMRB1POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRB1CLR_Pos (27UL) /*!< CTIMER CTRL1: TMRB1CLR (Bit 27) */ +#define CTIMER_CTRL1_TMRB1CLR_Msk (0x8000000UL) /*!< CTIMER CTRL1: TMRB1CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRB1IE1_Pos (26UL) /*!< CTIMER CTRL1: TMRB1IE1 (Bit 26) */ +#define CTIMER_CTRL1_TMRB1IE1_Msk (0x4000000UL) /*!< CTIMER CTRL1: TMRB1IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRB1IE0_Pos (25UL) /*!< CTIMER CTRL1: TMRB1IE0 (Bit 25) */ +#define CTIMER_CTRL1_TMRB1IE0_Msk (0x2000000UL) /*!< CTIMER CTRL1: TMRB1IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRB1FN_Pos (22UL) /*!< CTIMER CTRL1: TMRB1FN (Bit 22) */ +#define CTIMER_CTRL1_TMRB1FN_Msk (0x1c00000UL) /*!< CTIMER CTRL1: TMRB1FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL1_TMRB1CLK_Pos (17UL) /*!< CTIMER CTRL1: TMRB1CLK (Bit 17) */ +#define CTIMER_CTRL1_TMRB1CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL1: TMRB1CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL1_TMRB1EN_Pos (16UL) /*!< CTIMER CTRL1: TMRB1EN (Bit 16) */ +#define CTIMER_CTRL1_TMRB1EN_Msk (0x10000UL) /*!< CTIMER CTRL1: TMRB1EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRA1POL_Pos (12UL) /*!< CTIMER CTRL1: TMRA1POL (Bit 12) */ +#define CTIMER_CTRL1_TMRA1POL_Msk (0x1000UL) /*!< CTIMER CTRL1: TMRA1POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRA1CLR_Pos (11UL) /*!< CTIMER CTRL1: TMRA1CLR (Bit 11) */ +#define CTIMER_CTRL1_TMRA1CLR_Msk (0x800UL) /*!< CTIMER CTRL1: TMRA1CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRA1IE1_Pos (10UL) /*!< CTIMER CTRL1: TMRA1IE1 (Bit 10) */ +#define CTIMER_CTRL1_TMRA1IE1_Msk (0x400UL) /*!< CTIMER CTRL1: TMRA1IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRA1IE0_Pos (9UL) /*!< CTIMER CTRL1: TMRA1IE0 (Bit 9) */ +#define CTIMER_CTRL1_TMRA1IE0_Msk (0x200UL) /*!< CTIMER CTRL1: TMRA1IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL1_TMRA1FN_Pos (6UL) /*!< CTIMER CTRL1: TMRA1FN (Bit 6) */ +#define CTIMER_CTRL1_TMRA1FN_Msk (0x1c0UL) /*!< CTIMER CTRL1: TMRA1FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL1_TMRA1CLK_Pos (1UL) /*!< CTIMER CTRL1: TMRA1CLK (Bit 1) */ +#define CTIMER_CTRL1_TMRA1CLK_Msk (0x3eUL) /*!< CTIMER CTRL1: TMRA1CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL1_TMRA1EN_Pos (0UL) /*!< CTIMER CTRL1: TMRA1EN (Bit 0) */ +#define CTIMER_CTRL1_TMRA1EN_Msk (0x1UL) /*!< CTIMER CTRL1: TMRA1EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA1 ======================================================= */ +#define CTIMER_CMPRAUXA1_CMPR3A1_Pos (16UL) /*!< CTIMER CMPRAUXA1: CMPR3A1 (Bit 16) */ +#define CTIMER_CMPRAUXA1_CMPR3A1_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA1: CMPR3A1 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA1_CMPR2A1_Pos (0UL) /*!< CTIMER CMPRAUXA1: CMPR2A1 (Bit 0) */ +#define CTIMER_CMPRAUXA1_CMPR2A1_Msk (0xffffUL) /*!< CTIMER CMPRAUXA1: CMPR2A1 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB1 ======================================================= */ +#define CTIMER_CMPRAUXB1_CMPR3B1_Pos (16UL) /*!< CTIMER CMPRAUXB1: CMPR3B1 (Bit 16) */ +#define CTIMER_CMPRAUXB1_CMPR3B1_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB1: CMPR3B1 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB1_CMPR2B1_Pos (0UL) /*!< CTIMER CMPRAUXB1: CMPR2B1 (Bit 0) */ +#define CTIMER_CMPRAUXB1_CMPR2B1_Msk (0xffffUL) /*!< CTIMER CMPRAUXB1: CMPR2B1 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX1 ========================================================== */ +#define CTIMER_AUX1_TMRB1EN23_Pos (30UL) /*!< CTIMER AUX1: TMRB1EN23 (Bit 30) */ +#define CTIMER_AUX1_TMRB1EN23_Msk (0x40000000UL) /*!< CTIMER AUX1: TMRB1EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRB1POL23_Pos (29UL) /*!< CTIMER AUX1: TMRB1POL23 (Bit 29) */ +#define CTIMER_AUX1_TMRB1POL23_Msk (0x20000000UL) /*!< CTIMER AUX1: TMRB1POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRB1TINV_Pos (28UL) /*!< CTIMER AUX1: TMRB1TINV (Bit 28) */ +#define CTIMER_AUX1_TMRB1TINV_Msk (0x10000000UL) /*!< CTIMER AUX1: TMRB1TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRB1NOSYNC_Pos (27UL) /*!< CTIMER AUX1: TMRB1NOSYNC (Bit 27) */ +#define CTIMER_AUX1_TMRB1NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX1: TMRB1NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRB1TRIG_Pos (23UL) /*!< CTIMER AUX1: TMRB1TRIG (Bit 23) */ +#define CTIMER_AUX1_TMRB1TRIG_Msk (0x7800000UL) /*!< CTIMER AUX1: TMRB1TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX1_TMRB1LMT_Pos (16UL) /*!< CTIMER AUX1: TMRB1LMT (Bit 16) */ +#define CTIMER_AUX1_TMRB1LMT_Msk (0x3f0000UL) /*!< CTIMER AUX1: TMRB1LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX1_TMRA1EN23_Pos (14UL) /*!< CTIMER AUX1: TMRA1EN23 (Bit 14) */ +#define CTIMER_AUX1_TMRA1EN23_Msk (0x4000UL) /*!< CTIMER AUX1: TMRA1EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRA1POL23_Pos (13UL) /*!< CTIMER AUX1: TMRA1POL23 (Bit 13) */ +#define CTIMER_AUX1_TMRA1POL23_Msk (0x2000UL) /*!< CTIMER AUX1: TMRA1POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRA1TINV_Pos (12UL) /*!< CTIMER AUX1: TMRA1TINV (Bit 12) */ +#define CTIMER_AUX1_TMRA1TINV_Msk (0x1000UL) /*!< CTIMER AUX1: TMRA1TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRA1NOSYNC_Pos (11UL) /*!< CTIMER AUX1: TMRA1NOSYNC (Bit 11) */ +#define CTIMER_AUX1_TMRA1NOSYNC_Msk (0x800UL) /*!< CTIMER AUX1: TMRA1NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX1_TMRA1TRIG_Pos (7UL) /*!< CTIMER AUX1: TMRA1TRIG (Bit 7) */ +#define CTIMER_AUX1_TMRA1TRIG_Msk (0x780UL) /*!< CTIMER AUX1: TMRA1TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX1_TMRA1LMT_Pos (0UL) /*!< CTIMER AUX1: TMRA1LMT (Bit 0) */ +#define CTIMER_AUX1_TMRA1LMT_Msk (0x7fUL) /*!< CTIMER AUX1: TMRA1LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR2 ========================================================== */ +#define CTIMER_TMR2_CTTMRB2_Pos (16UL) /*!< CTIMER TMR2: CTTMRB2 (Bit 16) */ +#define CTIMER_TMR2_CTTMRB2_Msk (0xffff0000UL) /*!< CTIMER TMR2: CTTMRB2 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR2_CTTMRA2_Pos (0UL) /*!< CTIMER TMR2: CTTMRA2 (Bit 0) */ +#define CTIMER_TMR2_CTTMRA2_Msk (0xffffUL) /*!< CTIMER TMR2: CTTMRA2 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA2 ========================================================= */ +#define CTIMER_CMPRA2_CMPR1A2_Pos (16UL) /*!< CTIMER CMPRA2: CMPR1A2 (Bit 16) */ +#define CTIMER_CMPRA2_CMPR1A2_Msk (0xffff0000UL) /*!< CTIMER CMPRA2: CMPR1A2 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA2_CMPR0A2_Pos (0UL) /*!< CTIMER CMPRA2: CMPR0A2 (Bit 0) */ +#define CTIMER_CMPRA2_CMPR0A2_Msk (0xffffUL) /*!< CTIMER CMPRA2: CMPR0A2 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB2 ========================================================= */ +#define CTIMER_CMPRB2_CMPR1B2_Pos (16UL) /*!< CTIMER CMPRB2: CMPR1B2 (Bit 16) */ +#define CTIMER_CMPRB2_CMPR1B2_Msk (0xffff0000UL) /*!< CTIMER CMPRB2: CMPR1B2 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB2_CMPR0B2_Pos (0UL) /*!< CTIMER CMPRB2: CMPR0B2 (Bit 0) */ +#define CTIMER_CMPRB2_CMPR0B2_Msk (0xffffUL) /*!< CTIMER CMPRB2: CMPR0B2 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL2 ========================================================= */ +#define CTIMER_CTRL2_CTLINK2_Pos (31UL) /*!< CTIMER CTRL2: CTLINK2 (Bit 31) */ +#define CTIMER_CTRL2_CTLINK2_Msk (0x80000000UL) /*!< CTIMER CTRL2: CTLINK2 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRB2POL_Pos (28UL) /*!< CTIMER CTRL2: TMRB2POL (Bit 28) */ +#define CTIMER_CTRL2_TMRB2POL_Msk (0x10000000UL) /*!< CTIMER CTRL2: TMRB2POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRB2CLR_Pos (27UL) /*!< CTIMER CTRL2: TMRB2CLR (Bit 27) */ +#define CTIMER_CTRL2_TMRB2CLR_Msk (0x8000000UL) /*!< CTIMER CTRL2: TMRB2CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRB2IE1_Pos (26UL) /*!< CTIMER CTRL2: TMRB2IE1 (Bit 26) */ +#define CTIMER_CTRL2_TMRB2IE1_Msk (0x4000000UL) /*!< CTIMER CTRL2: TMRB2IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRB2IE0_Pos (25UL) /*!< CTIMER CTRL2: TMRB2IE0 (Bit 25) */ +#define CTIMER_CTRL2_TMRB2IE0_Msk (0x2000000UL) /*!< CTIMER CTRL2: TMRB2IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRB2FN_Pos (22UL) /*!< CTIMER CTRL2: TMRB2FN (Bit 22) */ +#define CTIMER_CTRL2_TMRB2FN_Msk (0x1c00000UL) /*!< CTIMER CTRL2: TMRB2FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL2_TMRB2CLK_Pos (17UL) /*!< CTIMER CTRL2: TMRB2CLK (Bit 17) */ +#define CTIMER_CTRL2_TMRB2CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL2: TMRB2CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL2_TMRB2EN_Pos (16UL) /*!< CTIMER CTRL2: TMRB2EN (Bit 16) */ +#define CTIMER_CTRL2_TMRB2EN_Msk (0x10000UL) /*!< CTIMER CTRL2: TMRB2EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRA2POL_Pos (12UL) /*!< CTIMER CTRL2: TMRA2POL (Bit 12) */ +#define CTIMER_CTRL2_TMRA2POL_Msk (0x1000UL) /*!< CTIMER CTRL2: TMRA2POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRA2CLR_Pos (11UL) /*!< CTIMER CTRL2: TMRA2CLR (Bit 11) */ +#define CTIMER_CTRL2_TMRA2CLR_Msk (0x800UL) /*!< CTIMER CTRL2: TMRA2CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRA2IE1_Pos (10UL) /*!< CTIMER CTRL2: TMRA2IE1 (Bit 10) */ +#define CTIMER_CTRL2_TMRA2IE1_Msk (0x400UL) /*!< CTIMER CTRL2: TMRA2IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRA2IE0_Pos (9UL) /*!< CTIMER CTRL2: TMRA2IE0 (Bit 9) */ +#define CTIMER_CTRL2_TMRA2IE0_Msk (0x200UL) /*!< CTIMER CTRL2: TMRA2IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL2_TMRA2FN_Pos (6UL) /*!< CTIMER CTRL2: TMRA2FN (Bit 6) */ +#define CTIMER_CTRL2_TMRA2FN_Msk (0x1c0UL) /*!< CTIMER CTRL2: TMRA2FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL2_TMRA2CLK_Pos (1UL) /*!< CTIMER CTRL2: TMRA2CLK (Bit 1) */ +#define CTIMER_CTRL2_TMRA2CLK_Msk (0x3eUL) /*!< CTIMER CTRL2: TMRA2CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL2_TMRA2EN_Pos (0UL) /*!< CTIMER CTRL2: TMRA2EN (Bit 0) */ +#define CTIMER_CTRL2_TMRA2EN_Msk (0x1UL) /*!< CTIMER CTRL2: TMRA2EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA2 ======================================================= */ +#define CTIMER_CMPRAUXA2_CMPR3A2_Pos (16UL) /*!< CTIMER CMPRAUXA2: CMPR3A2 (Bit 16) */ +#define CTIMER_CMPRAUXA2_CMPR3A2_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA2: CMPR3A2 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA2_CMPR2A2_Pos (0UL) /*!< CTIMER CMPRAUXA2: CMPR2A2 (Bit 0) */ +#define CTIMER_CMPRAUXA2_CMPR2A2_Msk (0xffffUL) /*!< CTIMER CMPRAUXA2: CMPR2A2 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB2 ======================================================= */ +#define CTIMER_CMPRAUXB2_CMPR3B2_Pos (16UL) /*!< CTIMER CMPRAUXB2: CMPR3B2 (Bit 16) */ +#define CTIMER_CMPRAUXB2_CMPR3B2_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB2: CMPR3B2 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB2_CMPR2B2_Pos (0UL) /*!< CTIMER CMPRAUXB2: CMPR2B2 (Bit 0) */ +#define CTIMER_CMPRAUXB2_CMPR2B2_Msk (0xffffUL) /*!< CTIMER CMPRAUXB2: CMPR2B2 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX2 ========================================================== */ +#define CTIMER_AUX2_TMRB2EN23_Pos (30UL) /*!< CTIMER AUX2: TMRB2EN23 (Bit 30) */ +#define CTIMER_AUX2_TMRB2EN23_Msk (0x40000000UL) /*!< CTIMER AUX2: TMRB2EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRB2POL23_Pos (29UL) /*!< CTIMER AUX2: TMRB2POL23 (Bit 29) */ +#define CTIMER_AUX2_TMRB2POL23_Msk (0x20000000UL) /*!< CTIMER AUX2: TMRB2POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRB2TINV_Pos (28UL) /*!< CTIMER AUX2: TMRB2TINV (Bit 28) */ +#define CTIMER_AUX2_TMRB2TINV_Msk (0x10000000UL) /*!< CTIMER AUX2: TMRB2TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRB2NOSYNC_Pos (27UL) /*!< CTIMER AUX2: TMRB2NOSYNC (Bit 27) */ +#define CTIMER_AUX2_TMRB2NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX2: TMRB2NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRB2TRIG_Pos (23UL) /*!< CTIMER AUX2: TMRB2TRIG (Bit 23) */ +#define CTIMER_AUX2_TMRB2TRIG_Msk (0x7800000UL) /*!< CTIMER AUX2: TMRB2TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX2_TMRB2LMT_Pos (16UL) /*!< CTIMER AUX2: TMRB2LMT (Bit 16) */ +#define CTIMER_AUX2_TMRB2LMT_Msk (0x3f0000UL) /*!< CTIMER AUX2: TMRB2LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX2_TMRA2EN23_Pos (14UL) /*!< CTIMER AUX2: TMRA2EN23 (Bit 14) */ +#define CTIMER_AUX2_TMRA2EN23_Msk (0x4000UL) /*!< CTIMER AUX2: TMRA2EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRA2POL23_Pos (13UL) /*!< CTIMER AUX2: TMRA2POL23 (Bit 13) */ +#define CTIMER_AUX2_TMRA2POL23_Msk (0x2000UL) /*!< CTIMER AUX2: TMRA2POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRA2TINV_Pos (12UL) /*!< CTIMER AUX2: TMRA2TINV (Bit 12) */ +#define CTIMER_AUX2_TMRA2TINV_Msk (0x1000UL) /*!< CTIMER AUX2: TMRA2TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRA2NOSYNC_Pos (11UL) /*!< CTIMER AUX2: TMRA2NOSYNC (Bit 11) */ +#define CTIMER_AUX2_TMRA2NOSYNC_Msk (0x800UL) /*!< CTIMER AUX2: TMRA2NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX2_TMRA2TRIG_Pos (7UL) /*!< CTIMER AUX2: TMRA2TRIG (Bit 7) */ +#define CTIMER_AUX2_TMRA2TRIG_Msk (0x780UL) /*!< CTIMER AUX2: TMRA2TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX2_TMRA2LMT_Pos (0UL) /*!< CTIMER AUX2: TMRA2LMT (Bit 0) */ +#define CTIMER_AUX2_TMRA2LMT_Msk (0x7fUL) /*!< CTIMER AUX2: TMRA2LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR3 ========================================================== */ +#define CTIMER_TMR3_CTTMRB3_Pos (16UL) /*!< CTIMER TMR3: CTTMRB3 (Bit 16) */ +#define CTIMER_TMR3_CTTMRB3_Msk (0xffff0000UL) /*!< CTIMER TMR3: CTTMRB3 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR3_CTTMRA3_Pos (0UL) /*!< CTIMER TMR3: CTTMRA3 (Bit 0) */ +#define CTIMER_TMR3_CTTMRA3_Msk (0xffffUL) /*!< CTIMER TMR3: CTTMRA3 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA3 ========================================================= */ +#define CTIMER_CMPRA3_CMPR1A3_Pos (16UL) /*!< CTIMER CMPRA3: CMPR1A3 (Bit 16) */ +#define CTIMER_CMPRA3_CMPR1A3_Msk (0xffff0000UL) /*!< CTIMER CMPRA3: CMPR1A3 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA3_CMPR0A3_Pos (0UL) /*!< CTIMER CMPRA3: CMPR0A3 (Bit 0) */ +#define CTIMER_CMPRA3_CMPR0A3_Msk (0xffffUL) /*!< CTIMER CMPRA3: CMPR0A3 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB3 ========================================================= */ +#define CTIMER_CMPRB3_CMPR1B3_Pos (16UL) /*!< CTIMER CMPRB3: CMPR1B3 (Bit 16) */ +#define CTIMER_CMPRB3_CMPR1B3_Msk (0xffff0000UL) /*!< CTIMER CMPRB3: CMPR1B3 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB3_CMPR0B3_Pos (0UL) /*!< CTIMER CMPRB3: CMPR0B3 (Bit 0) */ +#define CTIMER_CMPRB3_CMPR0B3_Msk (0xffffUL) /*!< CTIMER CMPRB3: CMPR0B3 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL3 ========================================================= */ +#define CTIMER_CTRL3_CTLINK3_Pos (31UL) /*!< CTIMER CTRL3: CTLINK3 (Bit 31) */ +#define CTIMER_CTRL3_CTLINK3_Msk (0x80000000UL) /*!< CTIMER CTRL3: CTLINK3 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRB3POL_Pos (28UL) /*!< CTIMER CTRL3: TMRB3POL (Bit 28) */ +#define CTIMER_CTRL3_TMRB3POL_Msk (0x10000000UL) /*!< CTIMER CTRL3: TMRB3POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRB3CLR_Pos (27UL) /*!< CTIMER CTRL3: TMRB3CLR (Bit 27) */ +#define CTIMER_CTRL3_TMRB3CLR_Msk (0x8000000UL) /*!< CTIMER CTRL3: TMRB3CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRB3IE1_Pos (26UL) /*!< CTIMER CTRL3: TMRB3IE1 (Bit 26) */ +#define CTIMER_CTRL3_TMRB3IE1_Msk (0x4000000UL) /*!< CTIMER CTRL3: TMRB3IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRB3IE0_Pos (25UL) /*!< CTIMER CTRL3: TMRB3IE0 (Bit 25) */ +#define CTIMER_CTRL3_TMRB3IE0_Msk (0x2000000UL) /*!< CTIMER CTRL3: TMRB3IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRB3FN_Pos (22UL) /*!< CTIMER CTRL3: TMRB3FN (Bit 22) */ +#define CTIMER_CTRL3_TMRB3FN_Msk (0x1c00000UL) /*!< CTIMER CTRL3: TMRB3FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL3_TMRB3CLK_Pos (17UL) /*!< CTIMER CTRL3: TMRB3CLK (Bit 17) */ +#define CTIMER_CTRL3_TMRB3CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL3: TMRB3CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL3_TMRB3EN_Pos (16UL) /*!< CTIMER CTRL3: TMRB3EN (Bit 16) */ +#define CTIMER_CTRL3_TMRB3EN_Msk (0x10000UL) /*!< CTIMER CTRL3: TMRB3EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_ADCEN_Pos (15UL) /*!< CTIMER CTRL3: ADCEN (Bit 15) */ +#define CTIMER_CTRL3_ADCEN_Msk (0x8000UL) /*!< CTIMER CTRL3: ADCEN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRA3POL_Pos (12UL) /*!< CTIMER CTRL3: TMRA3POL (Bit 12) */ +#define CTIMER_CTRL3_TMRA3POL_Msk (0x1000UL) /*!< CTIMER CTRL3: TMRA3POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRA3CLR_Pos (11UL) /*!< CTIMER CTRL3: TMRA3CLR (Bit 11) */ +#define CTIMER_CTRL3_TMRA3CLR_Msk (0x800UL) /*!< CTIMER CTRL3: TMRA3CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRA3IE1_Pos (10UL) /*!< CTIMER CTRL3: TMRA3IE1 (Bit 10) */ +#define CTIMER_CTRL3_TMRA3IE1_Msk (0x400UL) /*!< CTIMER CTRL3: TMRA3IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRA3IE0_Pos (9UL) /*!< CTIMER CTRL3: TMRA3IE0 (Bit 9) */ +#define CTIMER_CTRL3_TMRA3IE0_Msk (0x200UL) /*!< CTIMER CTRL3: TMRA3IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL3_TMRA3FN_Pos (6UL) /*!< CTIMER CTRL3: TMRA3FN (Bit 6) */ +#define CTIMER_CTRL3_TMRA3FN_Msk (0x1c0UL) /*!< CTIMER CTRL3: TMRA3FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL3_TMRA3CLK_Pos (1UL) /*!< CTIMER CTRL3: TMRA3CLK (Bit 1) */ +#define CTIMER_CTRL3_TMRA3CLK_Msk (0x3eUL) /*!< CTIMER CTRL3: TMRA3CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL3_TMRA3EN_Pos (0UL) /*!< CTIMER CTRL3: TMRA3EN (Bit 0) */ +#define CTIMER_CTRL3_TMRA3EN_Msk (0x1UL) /*!< CTIMER CTRL3: TMRA3EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA3 ======================================================= */ +#define CTIMER_CMPRAUXA3_CMPR3A3_Pos (16UL) /*!< CTIMER CMPRAUXA3: CMPR3A3 (Bit 16) */ +#define CTIMER_CMPRAUXA3_CMPR3A3_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA3: CMPR3A3 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA3_CMPR2A3_Pos (0UL) /*!< CTIMER CMPRAUXA3: CMPR2A3 (Bit 0) */ +#define CTIMER_CMPRAUXA3_CMPR2A3_Msk (0xffffUL) /*!< CTIMER CMPRAUXA3: CMPR2A3 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB3 ======================================================= */ +#define CTIMER_CMPRAUXB3_CMPR3B3_Pos (16UL) /*!< CTIMER CMPRAUXB3: CMPR3B3 (Bit 16) */ +#define CTIMER_CMPRAUXB3_CMPR3B3_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB3: CMPR3B3 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB3_CMPR2B3_Pos (0UL) /*!< CTIMER CMPRAUXB3: CMPR2B3 (Bit 0) */ +#define CTIMER_CMPRAUXB3_CMPR2B3_Msk (0xffffUL) /*!< CTIMER CMPRAUXB3: CMPR2B3 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX3 ========================================================== */ +#define CTIMER_AUX3_TMRB3EN23_Pos (30UL) /*!< CTIMER AUX3: TMRB3EN23 (Bit 30) */ +#define CTIMER_AUX3_TMRB3EN23_Msk (0x40000000UL) /*!< CTIMER AUX3: TMRB3EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRB3POL23_Pos (29UL) /*!< CTIMER AUX3: TMRB3POL23 (Bit 29) */ +#define CTIMER_AUX3_TMRB3POL23_Msk (0x20000000UL) /*!< CTIMER AUX3: TMRB3POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRB3TINV_Pos (28UL) /*!< CTIMER AUX3: TMRB3TINV (Bit 28) */ +#define CTIMER_AUX3_TMRB3TINV_Msk (0x10000000UL) /*!< CTIMER AUX3: TMRB3TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRB3NOSYNC_Pos (27UL) /*!< CTIMER AUX3: TMRB3NOSYNC (Bit 27) */ +#define CTIMER_AUX3_TMRB3NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX3: TMRB3NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRB3TRIG_Pos (23UL) /*!< CTIMER AUX3: TMRB3TRIG (Bit 23) */ +#define CTIMER_AUX3_TMRB3TRIG_Msk (0x7800000UL) /*!< CTIMER AUX3: TMRB3TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX3_TMRB3LMT_Pos (16UL) /*!< CTIMER AUX3: TMRB3LMT (Bit 16) */ +#define CTIMER_AUX3_TMRB3LMT_Msk (0x3f0000UL) /*!< CTIMER AUX3: TMRB3LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX3_TMRA3EN23_Pos (14UL) /*!< CTIMER AUX3: TMRA3EN23 (Bit 14) */ +#define CTIMER_AUX3_TMRA3EN23_Msk (0x4000UL) /*!< CTIMER AUX3: TMRA3EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRA3POL23_Pos (13UL) /*!< CTIMER AUX3: TMRA3POL23 (Bit 13) */ +#define CTIMER_AUX3_TMRA3POL23_Msk (0x2000UL) /*!< CTIMER AUX3: TMRA3POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRA3TINV_Pos (12UL) /*!< CTIMER AUX3: TMRA3TINV (Bit 12) */ +#define CTIMER_AUX3_TMRA3TINV_Msk (0x1000UL) /*!< CTIMER AUX3: TMRA3TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRA3NOSYNC_Pos (11UL) /*!< CTIMER AUX3: TMRA3NOSYNC (Bit 11) */ +#define CTIMER_AUX3_TMRA3NOSYNC_Msk (0x800UL) /*!< CTIMER AUX3: TMRA3NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX3_TMRA3TRIG_Pos (7UL) /*!< CTIMER AUX3: TMRA3TRIG (Bit 7) */ +#define CTIMER_AUX3_TMRA3TRIG_Msk (0x780UL) /*!< CTIMER AUX3: TMRA3TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX3_TMRA3LMT_Pos (0UL) /*!< CTIMER AUX3: TMRA3LMT (Bit 0) */ +#define CTIMER_AUX3_TMRA3LMT_Msk (0x7fUL) /*!< CTIMER AUX3: TMRA3LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR4 ========================================================== */ +#define CTIMER_TMR4_CTTMRB4_Pos (16UL) /*!< CTIMER TMR4: CTTMRB4 (Bit 16) */ +#define CTIMER_TMR4_CTTMRB4_Msk (0xffff0000UL) /*!< CTIMER TMR4: CTTMRB4 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR4_CTTMRA4_Pos (0UL) /*!< CTIMER TMR4: CTTMRA4 (Bit 0) */ +#define CTIMER_TMR4_CTTMRA4_Msk (0xffffUL) /*!< CTIMER TMR4: CTTMRA4 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA4 ========================================================= */ +#define CTIMER_CMPRA4_CMPR1A4_Pos (16UL) /*!< CTIMER CMPRA4: CMPR1A4 (Bit 16) */ +#define CTIMER_CMPRA4_CMPR1A4_Msk (0xffff0000UL) /*!< CTIMER CMPRA4: CMPR1A4 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA4_CMPR0A4_Pos (0UL) /*!< CTIMER CMPRA4: CMPR0A4 (Bit 0) */ +#define CTIMER_CMPRA4_CMPR0A4_Msk (0xffffUL) /*!< CTIMER CMPRA4: CMPR0A4 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB4 ========================================================= */ +#define CTIMER_CMPRB4_CMPR1B4_Pos (16UL) /*!< CTIMER CMPRB4: CMPR1B4 (Bit 16) */ +#define CTIMER_CMPRB4_CMPR1B4_Msk (0xffff0000UL) /*!< CTIMER CMPRB4: CMPR1B4 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB4_CMPR0B4_Pos (0UL) /*!< CTIMER CMPRB4: CMPR0B4 (Bit 0) */ +#define CTIMER_CMPRB4_CMPR0B4_Msk (0xffffUL) /*!< CTIMER CMPRB4: CMPR0B4 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL4 ========================================================= */ +#define CTIMER_CTRL4_CTLINK4_Pos (31UL) /*!< CTIMER CTRL4: CTLINK4 (Bit 31) */ +#define CTIMER_CTRL4_CTLINK4_Msk (0x80000000UL) /*!< CTIMER CTRL4: CTLINK4 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRB4POL_Pos (28UL) /*!< CTIMER CTRL4: TMRB4POL (Bit 28) */ +#define CTIMER_CTRL4_TMRB4POL_Msk (0x10000000UL) /*!< CTIMER CTRL4: TMRB4POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRB4CLR_Pos (27UL) /*!< CTIMER CTRL4: TMRB4CLR (Bit 27) */ +#define CTIMER_CTRL4_TMRB4CLR_Msk (0x8000000UL) /*!< CTIMER CTRL4: TMRB4CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRB4IE1_Pos (26UL) /*!< CTIMER CTRL4: TMRB4IE1 (Bit 26) */ +#define CTIMER_CTRL4_TMRB4IE1_Msk (0x4000000UL) /*!< CTIMER CTRL4: TMRB4IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRB4IE0_Pos (25UL) /*!< CTIMER CTRL4: TMRB4IE0 (Bit 25) */ +#define CTIMER_CTRL4_TMRB4IE0_Msk (0x2000000UL) /*!< CTIMER CTRL4: TMRB4IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRB4FN_Pos (22UL) /*!< CTIMER CTRL4: TMRB4FN (Bit 22) */ +#define CTIMER_CTRL4_TMRB4FN_Msk (0x1c00000UL) /*!< CTIMER CTRL4: TMRB4FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL4_TMRB4CLK_Pos (17UL) /*!< CTIMER CTRL4: TMRB4CLK (Bit 17) */ +#define CTIMER_CTRL4_TMRB4CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL4: TMRB4CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL4_TMRB4EN_Pos (16UL) /*!< CTIMER CTRL4: TMRB4EN (Bit 16) */ +#define CTIMER_CTRL4_TMRB4EN_Msk (0x10000UL) /*!< CTIMER CTRL4: TMRB4EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRA4POL_Pos (12UL) /*!< CTIMER CTRL4: TMRA4POL (Bit 12) */ +#define CTIMER_CTRL4_TMRA4POL_Msk (0x1000UL) /*!< CTIMER CTRL4: TMRA4POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRA4CLR_Pos (11UL) /*!< CTIMER CTRL4: TMRA4CLR (Bit 11) */ +#define CTIMER_CTRL4_TMRA4CLR_Msk (0x800UL) /*!< CTIMER CTRL4: TMRA4CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRA4IE1_Pos (10UL) /*!< CTIMER CTRL4: TMRA4IE1 (Bit 10) */ +#define CTIMER_CTRL4_TMRA4IE1_Msk (0x400UL) /*!< CTIMER CTRL4: TMRA4IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRA4IE0_Pos (9UL) /*!< CTIMER CTRL4: TMRA4IE0 (Bit 9) */ +#define CTIMER_CTRL4_TMRA4IE0_Msk (0x200UL) /*!< CTIMER CTRL4: TMRA4IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL4_TMRA4FN_Pos (6UL) /*!< CTIMER CTRL4: TMRA4FN (Bit 6) */ +#define CTIMER_CTRL4_TMRA4FN_Msk (0x1c0UL) /*!< CTIMER CTRL4: TMRA4FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL4_TMRA4CLK_Pos (1UL) /*!< CTIMER CTRL4: TMRA4CLK (Bit 1) */ +#define CTIMER_CTRL4_TMRA4CLK_Msk (0x3eUL) /*!< CTIMER CTRL4: TMRA4CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL4_TMRA4EN_Pos (0UL) /*!< CTIMER CTRL4: TMRA4EN (Bit 0) */ +#define CTIMER_CTRL4_TMRA4EN_Msk (0x1UL) /*!< CTIMER CTRL4: TMRA4EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA4 ======================================================= */ +#define CTIMER_CMPRAUXA4_CMPR3A4_Pos (16UL) /*!< CTIMER CMPRAUXA4: CMPR3A4 (Bit 16) */ +#define CTIMER_CMPRAUXA4_CMPR3A4_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA4: CMPR3A4 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA4_CMPR2A4_Pos (0UL) /*!< CTIMER CMPRAUXA4: CMPR2A4 (Bit 0) */ +#define CTIMER_CMPRAUXA4_CMPR2A4_Msk (0xffffUL) /*!< CTIMER CMPRAUXA4: CMPR2A4 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB4 ======================================================= */ +#define CTIMER_CMPRAUXB4_CMPR3B4_Pos (16UL) /*!< CTIMER CMPRAUXB4: CMPR3B4 (Bit 16) */ +#define CTIMER_CMPRAUXB4_CMPR3B4_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB4: CMPR3B4 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB4_CMPR2B4_Pos (0UL) /*!< CTIMER CMPRAUXB4: CMPR2B4 (Bit 0) */ +#define CTIMER_CMPRAUXB4_CMPR2B4_Msk (0xffffUL) /*!< CTIMER CMPRAUXB4: CMPR2B4 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX4 ========================================================== */ +#define CTIMER_AUX4_TMRB4EN23_Pos (30UL) /*!< CTIMER AUX4: TMRB4EN23 (Bit 30) */ +#define CTIMER_AUX4_TMRB4EN23_Msk (0x40000000UL) /*!< CTIMER AUX4: TMRB4EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRB4POL23_Pos (29UL) /*!< CTIMER AUX4: TMRB4POL23 (Bit 29) */ +#define CTIMER_AUX4_TMRB4POL23_Msk (0x20000000UL) /*!< CTIMER AUX4: TMRB4POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRB4TINV_Pos (28UL) /*!< CTIMER AUX4: TMRB4TINV (Bit 28) */ +#define CTIMER_AUX4_TMRB4TINV_Msk (0x10000000UL) /*!< CTIMER AUX4: TMRB4TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRB4NOSYNC_Pos (27UL) /*!< CTIMER AUX4: TMRB4NOSYNC (Bit 27) */ +#define CTIMER_AUX4_TMRB4NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX4: TMRB4NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRB4TRIG_Pos (23UL) /*!< CTIMER AUX4: TMRB4TRIG (Bit 23) */ +#define CTIMER_AUX4_TMRB4TRIG_Msk (0x7800000UL) /*!< CTIMER AUX4: TMRB4TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX4_TMRB4LMT_Pos (16UL) /*!< CTIMER AUX4: TMRB4LMT (Bit 16) */ +#define CTIMER_AUX4_TMRB4LMT_Msk (0x3f0000UL) /*!< CTIMER AUX4: TMRB4LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX4_TMRA4EN23_Pos (14UL) /*!< CTIMER AUX4: TMRA4EN23 (Bit 14) */ +#define CTIMER_AUX4_TMRA4EN23_Msk (0x4000UL) /*!< CTIMER AUX4: TMRA4EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRA4POL23_Pos (13UL) /*!< CTIMER AUX4: TMRA4POL23 (Bit 13) */ +#define CTIMER_AUX4_TMRA4POL23_Msk (0x2000UL) /*!< CTIMER AUX4: TMRA4POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRA4TINV_Pos (12UL) /*!< CTIMER AUX4: TMRA4TINV (Bit 12) */ +#define CTIMER_AUX4_TMRA4TINV_Msk (0x1000UL) /*!< CTIMER AUX4: TMRA4TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRA4NOSYNC_Pos (11UL) /*!< CTIMER AUX4: TMRA4NOSYNC (Bit 11) */ +#define CTIMER_AUX4_TMRA4NOSYNC_Msk (0x800UL) /*!< CTIMER AUX4: TMRA4NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX4_TMRA4TRIG_Pos (7UL) /*!< CTIMER AUX4: TMRA4TRIG (Bit 7) */ +#define CTIMER_AUX4_TMRA4TRIG_Msk (0x780UL) /*!< CTIMER AUX4: TMRA4TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX4_TMRA4LMT_Pos (0UL) /*!< CTIMER AUX4: TMRA4LMT (Bit 0) */ +#define CTIMER_AUX4_TMRA4LMT_Msk (0x7fUL) /*!< CTIMER AUX4: TMRA4LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR5 ========================================================== */ +#define CTIMER_TMR5_CTTMRB5_Pos (16UL) /*!< CTIMER TMR5: CTTMRB5 (Bit 16) */ +#define CTIMER_TMR5_CTTMRB5_Msk (0xffff0000UL) /*!< CTIMER TMR5: CTTMRB5 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR5_CTTMRA5_Pos (0UL) /*!< CTIMER TMR5: CTTMRA5 (Bit 0) */ +#define CTIMER_TMR5_CTTMRA5_Msk (0xffffUL) /*!< CTIMER TMR5: CTTMRA5 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA5 ========================================================= */ +#define CTIMER_CMPRA5_CMPR1A5_Pos (16UL) /*!< CTIMER CMPRA5: CMPR1A5 (Bit 16) */ +#define CTIMER_CMPRA5_CMPR1A5_Msk (0xffff0000UL) /*!< CTIMER CMPRA5: CMPR1A5 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA5_CMPR0A5_Pos (0UL) /*!< CTIMER CMPRA5: CMPR0A5 (Bit 0) */ +#define CTIMER_CMPRA5_CMPR0A5_Msk (0xffffUL) /*!< CTIMER CMPRA5: CMPR0A5 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB5 ========================================================= */ +#define CTIMER_CMPRB5_CMPR1B5_Pos (16UL) /*!< CTIMER CMPRB5: CMPR1B5 (Bit 16) */ +#define CTIMER_CMPRB5_CMPR1B5_Msk (0xffff0000UL) /*!< CTIMER CMPRB5: CMPR1B5 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB5_CMPR0B5_Pos (0UL) /*!< CTIMER CMPRB5: CMPR0B5 (Bit 0) */ +#define CTIMER_CMPRB5_CMPR0B5_Msk (0xffffUL) /*!< CTIMER CMPRB5: CMPR0B5 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL5 ========================================================= */ +#define CTIMER_CTRL5_CTLINK5_Pos (31UL) /*!< CTIMER CTRL5: CTLINK5 (Bit 31) */ +#define CTIMER_CTRL5_CTLINK5_Msk (0x80000000UL) /*!< CTIMER CTRL5: CTLINK5 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRB5POL_Pos (28UL) /*!< CTIMER CTRL5: TMRB5POL (Bit 28) */ +#define CTIMER_CTRL5_TMRB5POL_Msk (0x10000000UL) /*!< CTIMER CTRL5: TMRB5POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRB5CLR_Pos (27UL) /*!< CTIMER CTRL5: TMRB5CLR (Bit 27) */ +#define CTIMER_CTRL5_TMRB5CLR_Msk (0x8000000UL) /*!< CTIMER CTRL5: TMRB5CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRB5IE1_Pos (26UL) /*!< CTIMER CTRL5: TMRB5IE1 (Bit 26) */ +#define CTIMER_CTRL5_TMRB5IE1_Msk (0x4000000UL) /*!< CTIMER CTRL5: TMRB5IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRB5IE0_Pos (25UL) /*!< CTIMER CTRL5: TMRB5IE0 (Bit 25) */ +#define CTIMER_CTRL5_TMRB5IE0_Msk (0x2000000UL) /*!< CTIMER CTRL5: TMRB5IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRB5FN_Pos (22UL) /*!< CTIMER CTRL5: TMRB5FN (Bit 22) */ +#define CTIMER_CTRL5_TMRB5FN_Msk (0x1c00000UL) /*!< CTIMER CTRL5: TMRB5FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL5_TMRB5CLK_Pos (17UL) /*!< CTIMER CTRL5: TMRB5CLK (Bit 17) */ +#define CTIMER_CTRL5_TMRB5CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL5: TMRB5CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL5_TMRB5EN_Pos (16UL) /*!< CTIMER CTRL5: TMRB5EN (Bit 16) */ +#define CTIMER_CTRL5_TMRB5EN_Msk (0x10000UL) /*!< CTIMER CTRL5: TMRB5EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRA5POL_Pos (12UL) /*!< CTIMER CTRL5: TMRA5POL (Bit 12) */ +#define CTIMER_CTRL5_TMRA5POL_Msk (0x1000UL) /*!< CTIMER CTRL5: TMRA5POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRA5CLR_Pos (11UL) /*!< CTIMER CTRL5: TMRA5CLR (Bit 11) */ +#define CTIMER_CTRL5_TMRA5CLR_Msk (0x800UL) /*!< CTIMER CTRL5: TMRA5CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRA5IE1_Pos (10UL) /*!< CTIMER CTRL5: TMRA5IE1 (Bit 10) */ +#define CTIMER_CTRL5_TMRA5IE1_Msk (0x400UL) /*!< CTIMER CTRL5: TMRA5IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRA5IE0_Pos (9UL) /*!< CTIMER CTRL5: TMRA5IE0 (Bit 9) */ +#define CTIMER_CTRL5_TMRA5IE0_Msk (0x200UL) /*!< CTIMER CTRL5: TMRA5IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL5_TMRA5FN_Pos (6UL) /*!< CTIMER CTRL5: TMRA5FN (Bit 6) */ +#define CTIMER_CTRL5_TMRA5FN_Msk (0x1c0UL) /*!< CTIMER CTRL5: TMRA5FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL5_TMRA5CLK_Pos (1UL) /*!< CTIMER CTRL5: TMRA5CLK (Bit 1) */ +#define CTIMER_CTRL5_TMRA5CLK_Msk (0x3eUL) /*!< CTIMER CTRL5: TMRA5CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL5_TMRA5EN_Pos (0UL) /*!< CTIMER CTRL5: TMRA5EN (Bit 0) */ +#define CTIMER_CTRL5_TMRA5EN_Msk (0x1UL) /*!< CTIMER CTRL5: TMRA5EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA5 ======================================================= */ +#define CTIMER_CMPRAUXA5_CMPR3A5_Pos (16UL) /*!< CTIMER CMPRAUXA5: CMPR3A5 (Bit 16) */ +#define CTIMER_CMPRAUXA5_CMPR3A5_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA5: CMPR3A5 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA5_CMPR2A5_Pos (0UL) /*!< CTIMER CMPRAUXA5: CMPR2A5 (Bit 0) */ +#define CTIMER_CMPRAUXA5_CMPR2A5_Msk (0xffffUL) /*!< CTIMER CMPRAUXA5: CMPR2A5 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB5 ======================================================= */ +#define CTIMER_CMPRAUXB5_CMPR3B5_Pos (16UL) /*!< CTIMER CMPRAUXB5: CMPR3B5 (Bit 16) */ +#define CTIMER_CMPRAUXB5_CMPR3B5_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB5: CMPR3B5 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB5_CMPR2B5_Pos (0UL) /*!< CTIMER CMPRAUXB5: CMPR2B5 (Bit 0) */ +#define CTIMER_CMPRAUXB5_CMPR2B5_Msk (0xffffUL) /*!< CTIMER CMPRAUXB5: CMPR2B5 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX5 ========================================================== */ +#define CTIMER_AUX5_TMRB5EN23_Pos (30UL) /*!< CTIMER AUX5: TMRB5EN23 (Bit 30) */ +#define CTIMER_AUX5_TMRB5EN23_Msk (0x40000000UL) /*!< CTIMER AUX5: TMRB5EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRB5POL23_Pos (29UL) /*!< CTIMER AUX5: TMRB5POL23 (Bit 29) */ +#define CTIMER_AUX5_TMRB5POL23_Msk (0x20000000UL) /*!< CTIMER AUX5: TMRB5POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRB5TINV_Pos (28UL) /*!< CTIMER AUX5: TMRB5TINV (Bit 28) */ +#define CTIMER_AUX5_TMRB5TINV_Msk (0x10000000UL) /*!< CTIMER AUX5: TMRB5TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRB5NOSYNC_Pos (27UL) /*!< CTIMER AUX5: TMRB5NOSYNC (Bit 27) */ +#define CTIMER_AUX5_TMRB5NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX5: TMRB5NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRB5TRIG_Pos (23UL) /*!< CTIMER AUX5: TMRB5TRIG (Bit 23) */ +#define CTIMER_AUX5_TMRB5TRIG_Msk (0x7800000UL) /*!< CTIMER AUX5: TMRB5TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX5_TMRB5LMT_Pos (16UL) /*!< CTIMER AUX5: TMRB5LMT (Bit 16) */ +#define CTIMER_AUX5_TMRB5LMT_Msk (0x3f0000UL) /*!< CTIMER AUX5: TMRB5LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX5_TMRA5EN23_Pos (14UL) /*!< CTIMER AUX5: TMRA5EN23 (Bit 14) */ +#define CTIMER_AUX5_TMRA5EN23_Msk (0x4000UL) /*!< CTIMER AUX5: TMRA5EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRA5POL23_Pos (13UL) /*!< CTIMER AUX5: TMRA5POL23 (Bit 13) */ +#define CTIMER_AUX5_TMRA5POL23_Msk (0x2000UL) /*!< CTIMER AUX5: TMRA5POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRA5TINV_Pos (12UL) /*!< CTIMER AUX5: TMRA5TINV (Bit 12) */ +#define CTIMER_AUX5_TMRA5TINV_Msk (0x1000UL) /*!< CTIMER AUX5: TMRA5TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRA5NOSYNC_Pos (11UL) /*!< CTIMER AUX5: TMRA5NOSYNC (Bit 11) */ +#define CTIMER_AUX5_TMRA5NOSYNC_Msk (0x800UL) /*!< CTIMER AUX5: TMRA5NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX5_TMRA5TRIG_Pos (7UL) /*!< CTIMER AUX5: TMRA5TRIG (Bit 7) */ +#define CTIMER_AUX5_TMRA5TRIG_Msk (0x780UL) /*!< CTIMER AUX5: TMRA5TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX5_TMRA5LMT_Pos (0UL) /*!< CTIMER AUX5: TMRA5LMT (Bit 0) */ +#define CTIMER_AUX5_TMRA5LMT_Msk (0x7fUL) /*!< CTIMER AUX5: TMRA5LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR6 ========================================================== */ +#define CTIMER_TMR6_CTTMRB6_Pos (16UL) /*!< CTIMER TMR6: CTTMRB6 (Bit 16) */ +#define CTIMER_TMR6_CTTMRB6_Msk (0xffff0000UL) /*!< CTIMER TMR6: CTTMRB6 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR6_CTTMRA6_Pos (0UL) /*!< CTIMER TMR6: CTTMRA6 (Bit 0) */ +#define CTIMER_TMR6_CTTMRA6_Msk (0xffffUL) /*!< CTIMER TMR6: CTTMRA6 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA6 ========================================================= */ +#define CTIMER_CMPRA6_CMPR1A6_Pos (16UL) /*!< CTIMER CMPRA6: CMPR1A6 (Bit 16) */ +#define CTIMER_CMPRA6_CMPR1A6_Msk (0xffff0000UL) /*!< CTIMER CMPRA6: CMPR1A6 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA6_CMPR0A6_Pos (0UL) /*!< CTIMER CMPRA6: CMPR0A6 (Bit 0) */ +#define CTIMER_CMPRA6_CMPR0A6_Msk (0xffffUL) /*!< CTIMER CMPRA6: CMPR0A6 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB6 ========================================================= */ +#define CTIMER_CMPRB6_CMPR1B6_Pos (16UL) /*!< CTIMER CMPRB6: CMPR1B6 (Bit 16) */ +#define CTIMER_CMPRB6_CMPR1B6_Msk (0xffff0000UL) /*!< CTIMER CMPRB6: CMPR1B6 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB6_CMPR0B6_Pos (0UL) /*!< CTIMER CMPRB6: CMPR0B6 (Bit 0) */ +#define CTIMER_CMPRB6_CMPR0B6_Msk (0xffffUL) /*!< CTIMER CMPRB6: CMPR0B6 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL6 ========================================================= */ +#define CTIMER_CTRL6_CTLINK6_Pos (31UL) /*!< CTIMER CTRL6: CTLINK6 (Bit 31) */ +#define CTIMER_CTRL6_CTLINK6_Msk (0x80000000UL) /*!< CTIMER CTRL6: CTLINK6 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRB6POL_Pos (28UL) /*!< CTIMER CTRL6: TMRB6POL (Bit 28) */ +#define CTIMER_CTRL6_TMRB6POL_Msk (0x10000000UL) /*!< CTIMER CTRL6: TMRB6POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRB6CLR_Pos (27UL) /*!< CTIMER CTRL6: TMRB6CLR (Bit 27) */ +#define CTIMER_CTRL6_TMRB6CLR_Msk (0x8000000UL) /*!< CTIMER CTRL6: TMRB6CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRB6IE1_Pos (26UL) /*!< CTIMER CTRL6: TMRB6IE1 (Bit 26) */ +#define CTIMER_CTRL6_TMRB6IE1_Msk (0x4000000UL) /*!< CTIMER CTRL6: TMRB6IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRB6IE0_Pos (25UL) /*!< CTIMER CTRL6: TMRB6IE0 (Bit 25) */ +#define CTIMER_CTRL6_TMRB6IE0_Msk (0x2000000UL) /*!< CTIMER CTRL6: TMRB6IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRB6FN_Pos (22UL) /*!< CTIMER CTRL6: TMRB6FN (Bit 22) */ +#define CTIMER_CTRL6_TMRB6FN_Msk (0x1c00000UL) /*!< CTIMER CTRL6: TMRB6FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL6_TMRB6CLK_Pos (17UL) /*!< CTIMER CTRL6: TMRB6CLK (Bit 17) */ +#define CTIMER_CTRL6_TMRB6CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL6: TMRB6CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL6_TMRB6EN_Pos (16UL) /*!< CTIMER CTRL6: TMRB6EN (Bit 16) */ +#define CTIMER_CTRL6_TMRB6EN_Msk (0x10000UL) /*!< CTIMER CTRL6: TMRB6EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRA6POL_Pos (12UL) /*!< CTIMER CTRL6: TMRA6POL (Bit 12) */ +#define CTIMER_CTRL6_TMRA6POL_Msk (0x1000UL) /*!< CTIMER CTRL6: TMRA6POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRA6CLR_Pos (11UL) /*!< CTIMER CTRL6: TMRA6CLR (Bit 11) */ +#define CTIMER_CTRL6_TMRA6CLR_Msk (0x800UL) /*!< CTIMER CTRL6: TMRA6CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRA6IE1_Pos (10UL) /*!< CTIMER CTRL6: TMRA6IE1 (Bit 10) */ +#define CTIMER_CTRL6_TMRA6IE1_Msk (0x400UL) /*!< CTIMER CTRL6: TMRA6IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRA6IE0_Pos (9UL) /*!< CTIMER CTRL6: TMRA6IE0 (Bit 9) */ +#define CTIMER_CTRL6_TMRA6IE0_Msk (0x200UL) /*!< CTIMER CTRL6: TMRA6IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL6_TMRA6FN_Pos (6UL) /*!< CTIMER CTRL6: TMRA6FN (Bit 6) */ +#define CTIMER_CTRL6_TMRA6FN_Msk (0x1c0UL) /*!< CTIMER CTRL6: TMRA6FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL6_TMRA6CLK_Pos (1UL) /*!< CTIMER CTRL6: TMRA6CLK (Bit 1) */ +#define CTIMER_CTRL6_TMRA6CLK_Msk (0x3eUL) /*!< CTIMER CTRL6: TMRA6CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL6_TMRA6EN_Pos (0UL) /*!< CTIMER CTRL6: TMRA6EN (Bit 0) */ +#define CTIMER_CTRL6_TMRA6EN_Msk (0x1UL) /*!< CTIMER CTRL6: TMRA6EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA6 ======================================================= */ +#define CTIMER_CMPRAUXA6_CMPR3A6_Pos (16UL) /*!< CTIMER CMPRAUXA6: CMPR3A6 (Bit 16) */ +#define CTIMER_CMPRAUXA6_CMPR3A6_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA6: CMPR3A6 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA6_CMPR2A6_Pos (0UL) /*!< CTIMER CMPRAUXA6: CMPR2A6 (Bit 0) */ +#define CTIMER_CMPRAUXA6_CMPR2A6_Msk (0xffffUL) /*!< CTIMER CMPRAUXA6: CMPR2A6 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB6 ======================================================= */ +#define CTIMER_CMPRAUXB6_CMPR3B6_Pos (16UL) /*!< CTIMER CMPRAUXB6: CMPR3B6 (Bit 16) */ +#define CTIMER_CMPRAUXB6_CMPR3B6_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB6: CMPR3B6 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB6_CMPR2B6_Pos (0UL) /*!< CTIMER CMPRAUXB6: CMPR2B6 (Bit 0) */ +#define CTIMER_CMPRAUXB6_CMPR2B6_Msk (0xffffUL) /*!< CTIMER CMPRAUXB6: CMPR2B6 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX6 ========================================================== */ +#define CTIMER_AUX6_TMRB6EN23_Pos (30UL) /*!< CTIMER AUX6: TMRB6EN23 (Bit 30) */ +#define CTIMER_AUX6_TMRB6EN23_Msk (0x40000000UL) /*!< CTIMER AUX6: TMRB6EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRB6POL23_Pos (29UL) /*!< CTIMER AUX6: TMRB6POL23 (Bit 29) */ +#define CTIMER_AUX6_TMRB6POL23_Msk (0x20000000UL) /*!< CTIMER AUX6: TMRB6POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRB6TINV_Pos (28UL) /*!< CTIMER AUX6: TMRB6TINV (Bit 28) */ +#define CTIMER_AUX6_TMRB6TINV_Msk (0x10000000UL) /*!< CTIMER AUX6: TMRB6TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRB6NOSYNC_Pos (27UL) /*!< CTIMER AUX6: TMRB6NOSYNC (Bit 27) */ +#define CTIMER_AUX6_TMRB6NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX6: TMRB6NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRB6TRIG_Pos (23UL) /*!< CTIMER AUX6: TMRB6TRIG (Bit 23) */ +#define CTIMER_AUX6_TMRB6TRIG_Msk (0x7800000UL) /*!< CTIMER AUX6: TMRB6TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX6_TMRB6LMT_Pos (16UL) /*!< CTIMER AUX6: TMRB6LMT (Bit 16) */ +#define CTIMER_AUX6_TMRB6LMT_Msk (0x3f0000UL) /*!< CTIMER AUX6: TMRB6LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX6_TMRA6EN23_Pos (14UL) /*!< CTIMER AUX6: TMRA6EN23 (Bit 14) */ +#define CTIMER_AUX6_TMRA6EN23_Msk (0x4000UL) /*!< CTIMER AUX6: TMRA6EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRA6POL23_Pos (13UL) /*!< CTIMER AUX6: TMRA6POL23 (Bit 13) */ +#define CTIMER_AUX6_TMRA6POL23_Msk (0x2000UL) /*!< CTIMER AUX6: TMRA6POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRA6TINV_Pos (12UL) /*!< CTIMER AUX6: TMRA6TINV (Bit 12) */ +#define CTIMER_AUX6_TMRA6TINV_Msk (0x1000UL) /*!< CTIMER AUX6: TMRA6TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRA6NOSYNC_Pos (11UL) /*!< CTIMER AUX6: TMRA6NOSYNC (Bit 11) */ +#define CTIMER_AUX6_TMRA6NOSYNC_Msk (0x800UL) /*!< CTIMER AUX6: TMRA6NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX6_TMRA6TRIG_Pos (7UL) /*!< CTIMER AUX6: TMRA6TRIG (Bit 7) */ +#define CTIMER_AUX6_TMRA6TRIG_Msk (0x780UL) /*!< CTIMER AUX6: TMRA6TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX6_TMRA6LMT_Pos (0UL) /*!< CTIMER AUX6: TMRA6LMT (Bit 0) */ +#define CTIMER_AUX6_TMRA6LMT_Msk (0x7fUL) /*!< CTIMER AUX6: TMRA6LMT (Bitfield-Mask: 0x7f) */ +/* ========================================================= TMR7 ========================================================== */ +#define CTIMER_TMR7_CTTMRB7_Pos (16UL) /*!< CTIMER TMR7: CTTMRB7 (Bit 16) */ +#define CTIMER_TMR7_CTTMRB7_Msk (0xffff0000UL) /*!< CTIMER TMR7: CTTMRB7 (Bitfield-Mask: 0xffff) */ +#define CTIMER_TMR7_CTTMRA7_Pos (0UL) /*!< CTIMER TMR7: CTTMRA7 (Bit 0) */ +#define CTIMER_TMR7_CTTMRA7_Msk (0xffffUL) /*!< CTIMER TMR7: CTTMRA7 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRA7 ========================================================= */ +#define CTIMER_CMPRA7_CMPR1A7_Pos (16UL) /*!< CTIMER CMPRA7: CMPR1A7 (Bit 16) */ +#define CTIMER_CMPRA7_CMPR1A7_Msk (0xffff0000UL) /*!< CTIMER CMPRA7: CMPR1A7 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRA7_CMPR0A7_Pos (0UL) /*!< CTIMER CMPRA7: CMPR0A7 (Bit 0) */ +#define CTIMER_CMPRA7_CMPR0A7_Msk (0xffffUL) /*!< CTIMER CMPRA7: CMPR0A7 (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMPRB7 ========================================================= */ +#define CTIMER_CMPRB7_CMPR1B7_Pos (16UL) /*!< CTIMER CMPRB7: CMPR1B7 (Bit 16) */ +#define CTIMER_CMPRB7_CMPR1B7_Msk (0xffff0000UL) /*!< CTIMER CMPRB7: CMPR1B7 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRB7_CMPR0B7_Pos (0UL) /*!< CTIMER CMPRB7: CMPR0B7 (Bit 0) */ +#define CTIMER_CMPRB7_CMPR0B7_Msk (0xffffUL) /*!< CTIMER CMPRB7: CMPR0B7 (Bitfield-Mask: 0xffff) */ +/* ========================================================= CTRL7 ========================================================= */ +#define CTIMER_CTRL7_CTLINK7_Pos (31UL) /*!< CTIMER CTRL7: CTLINK7 (Bit 31) */ +#define CTIMER_CTRL7_CTLINK7_Msk (0x80000000UL) /*!< CTIMER CTRL7: CTLINK7 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRB7POL_Pos (28UL) /*!< CTIMER CTRL7: TMRB7POL (Bit 28) */ +#define CTIMER_CTRL7_TMRB7POL_Msk (0x10000000UL) /*!< CTIMER CTRL7: TMRB7POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRB7CLR_Pos (27UL) /*!< CTIMER CTRL7: TMRB7CLR (Bit 27) */ +#define CTIMER_CTRL7_TMRB7CLR_Msk (0x8000000UL) /*!< CTIMER CTRL7: TMRB7CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRB7IE1_Pos (26UL) /*!< CTIMER CTRL7: TMRB7IE1 (Bit 26) */ +#define CTIMER_CTRL7_TMRB7IE1_Msk (0x4000000UL) /*!< CTIMER CTRL7: TMRB7IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRB7IE0_Pos (25UL) /*!< CTIMER CTRL7: TMRB7IE0 (Bit 25) */ +#define CTIMER_CTRL7_TMRB7IE0_Msk (0x2000000UL) /*!< CTIMER CTRL7: TMRB7IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRB7FN_Pos (22UL) /*!< CTIMER CTRL7: TMRB7FN (Bit 22) */ +#define CTIMER_CTRL7_TMRB7FN_Msk (0x1c00000UL) /*!< CTIMER CTRL7: TMRB7FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL7_TMRB7CLK_Pos (17UL) /*!< CTIMER CTRL7: TMRB7CLK (Bit 17) */ +#define CTIMER_CTRL7_TMRB7CLK_Msk (0x3e0000UL) /*!< CTIMER CTRL7: TMRB7CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL7_TMRB7EN_Pos (16UL) /*!< CTIMER CTRL7: TMRB7EN (Bit 16) */ +#define CTIMER_CTRL7_TMRB7EN_Msk (0x10000UL) /*!< CTIMER CTRL7: TMRB7EN (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRA7POL_Pos (12UL) /*!< CTIMER CTRL7: TMRA7POL (Bit 12) */ +#define CTIMER_CTRL7_TMRA7POL_Msk (0x1000UL) /*!< CTIMER CTRL7: TMRA7POL (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRA7CLR_Pos (11UL) /*!< CTIMER CTRL7: TMRA7CLR (Bit 11) */ +#define CTIMER_CTRL7_TMRA7CLR_Msk (0x800UL) /*!< CTIMER CTRL7: TMRA7CLR (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRA7IE1_Pos (10UL) /*!< CTIMER CTRL7: TMRA7IE1 (Bit 10) */ +#define CTIMER_CTRL7_TMRA7IE1_Msk (0x400UL) /*!< CTIMER CTRL7: TMRA7IE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRA7IE0_Pos (9UL) /*!< CTIMER CTRL7: TMRA7IE0 (Bit 9) */ +#define CTIMER_CTRL7_TMRA7IE0_Msk (0x200UL) /*!< CTIMER CTRL7: TMRA7IE0 (Bitfield-Mask: 0x01) */ +#define CTIMER_CTRL7_TMRA7FN_Pos (6UL) /*!< CTIMER CTRL7: TMRA7FN (Bit 6) */ +#define CTIMER_CTRL7_TMRA7FN_Msk (0x1c0UL) /*!< CTIMER CTRL7: TMRA7FN (Bitfield-Mask: 0x07) */ +#define CTIMER_CTRL7_TMRA7CLK_Pos (1UL) /*!< CTIMER CTRL7: TMRA7CLK (Bit 1) */ +#define CTIMER_CTRL7_TMRA7CLK_Msk (0x3eUL) /*!< CTIMER CTRL7: TMRA7CLK (Bitfield-Mask: 0x1f) */ +#define CTIMER_CTRL7_TMRA7EN_Pos (0UL) /*!< CTIMER CTRL7: TMRA7EN (Bit 0) */ +#define CTIMER_CTRL7_TMRA7EN_Msk (0x1UL) /*!< CTIMER CTRL7: TMRA7EN (Bitfield-Mask: 0x01) */ +/* ======================================================= CMPRAUXA7 ======================================================= */ +#define CTIMER_CMPRAUXA7_CMPR3A7_Pos (16UL) /*!< CTIMER CMPRAUXA7: CMPR3A7 (Bit 16) */ +#define CTIMER_CMPRAUXA7_CMPR3A7_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXA7: CMPR3A7 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXA7_CMPR2A7_Pos (0UL) /*!< CTIMER CMPRAUXA7: CMPR2A7 (Bit 0) */ +#define CTIMER_CMPRAUXA7_CMPR2A7_Msk (0xffffUL) /*!< CTIMER CMPRAUXA7: CMPR2A7 (Bitfield-Mask: 0xffff) */ +/* ======================================================= CMPRAUXB7 ======================================================= */ +#define CTIMER_CMPRAUXB7_CMPR3B7_Pos (16UL) /*!< CTIMER CMPRAUXB7: CMPR3B7 (Bit 16) */ +#define CTIMER_CMPRAUXB7_CMPR3B7_Msk (0xffff0000UL) /*!< CTIMER CMPRAUXB7: CMPR3B7 (Bitfield-Mask: 0xffff) */ +#define CTIMER_CMPRAUXB7_CMPR2B7_Pos (0UL) /*!< CTIMER CMPRAUXB7: CMPR2B7 (Bit 0) */ +#define CTIMER_CMPRAUXB7_CMPR2B7_Msk (0xffffUL) /*!< CTIMER CMPRAUXB7: CMPR2B7 (Bitfield-Mask: 0xffff) */ +/* ========================================================= AUX7 ========================================================== */ +#define CTIMER_AUX7_TMRB7EN23_Pos (30UL) /*!< CTIMER AUX7: TMRB7EN23 (Bit 30) */ +#define CTIMER_AUX7_TMRB7EN23_Msk (0x40000000UL) /*!< CTIMER AUX7: TMRB7EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRB7POL23_Pos (29UL) /*!< CTIMER AUX7: TMRB7POL23 (Bit 29) */ +#define CTIMER_AUX7_TMRB7POL23_Msk (0x20000000UL) /*!< CTIMER AUX7: TMRB7POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRB7TINV_Pos (28UL) /*!< CTIMER AUX7: TMRB7TINV (Bit 28) */ +#define CTIMER_AUX7_TMRB7TINV_Msk (0x10000000UL) /*!< CTIMER AUX7: TMRB7TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRB7NOSYNC_Pos (27UL) /*!< CTIMER AUX7: TMRB7NOSYNC (Bit 27) */ +#define CTIMER_AUX7_TMRB7NOSYNC_Msk (0x8000000UL) /*!< CTIMER AUX7: TMRB7NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRB7TRIG_Pos (23UL) /*!< CTIMER AUX7: TMRB7TRIG (Bit 23) */ +#define CTIMER_AUX7_TMRB7TRIG_Msk (0x7800000UL) /*!< CTIMER AUX7: TMRB7TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX7_TMRB7LMT_Pos (16UL) /*!< CTIMER AUX7: TMRB7LMT (Bit 16) */ +#define CTIMER_AUX7_TMRB7LMT_Msk (0x3f0000UL) /*!< CTIMER AUX7: TMRB7LMT (Bitfield-Mask: 0x3f) */ +#define CTIMER_AUX7_TMRA7EN23_Pos (14UL) /*!< CTIMER AUX7: TMRA7EN23 (Bit 14) */ +#define CTIMER_AUX7_TMRA7EN23_Msk (0x4000UL) /*!< CTIMER AUX7: TMRA7EN23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRA7POL23_Pos (13UL) /*!< CTIMER AUX7: TMRA7POL23 (Bit 13) */ +#define CTIMER_AUX7_TMRA7POL23_Msk (0x2000UL) /*!< CTIMER AUX7: TMRA7POL23 (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRA7TINV_Pos (12UL) /*!< CTIMER AUX7: TMRA7TINV (Bit 12) */ +#define CTIMER_AUX7_TMRA7TINV_Msk (0x1000UL) /*!< CTIMER AUX7: TMRA7TINV (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRA7NOSYNC_Pos (11UL) /*!< CTIMER AUX7: TMRA7NOSYNC (Bit 11) */ +#define CTIMER_AUX7_TMRA7NOSYNC_Msk (0x800UL) /*!< CTIMER AUX7: TMRA7NOSYNC (Bitfield-Mask: 0x01) */ +#define CTIMER_AUX7_TMRA7TRIG_Pos (7UL) /*!< CTIMER AUX7: TMRA7TRIG (Bit 7) */ +#define CTIMER_AUX7_TMRA7TRIG_Msk (0x780UL) /*!< CTIMER AUX7: TMRA7TRIG (Bitfield-Mask: 0x0f) */ +#define CTIMER_AUX7_TMRA7LMT_Pos (0UL) /*!< CTIMER AUX7: TMRA7LMT (Bit 0) */ +#define CTIMER_AUX7_TMRA7LMT_Msk (0x7fUL) /*!< CTIMER AUX7: TMRA7LMT (Bitfield-Mask: 0x7f) */ +/* ======================================================== GLOBEN ========================================================= */ +#define CTIMER_GLOBEN_ENB7_Pos (15UL) /*!< CTIMER GLOBEN: ENB7 (Bit 15) */ +#define CTIMER_GLOBEN_ENB7_Msk (0x8000UL) /*!< CTIMER GLOBEN: ENB7 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA7_Pos (14UL) /*!< CTIMER GLOBEN: ENA7 (Bit 14) */ +#define CTIMER_GLOBEN_ENA7_Msk (0x4000UL) /*!< CTIMER GLOBEN: ENA7 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB6_Pos (13UL) /*!< CTIMER GLOBEN: ENB6 (Bit 13) */ +#define CTIMER_GLOBEN_ENB6_Msk (0x2000UL) /*!< CTIMER GLOBEN: ENB6 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA6_Pos (12UL) /*!< CTIMER GLOBEN: ENA6 (Bit 12) */ +#define CTIMER_GLOBEN_ENA6_Msk (0x1000UL) /*!< CTIMER GLOBEN: ENA6 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB5_Pos (11UL) /*!< CTIMER GLOBEN: ENB5 (Bit 11) */ +#define CTIMER_GLOBEN_ENB5_Msk (0x800UL) /*!< CTIMER GLOBEN: ENB5 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA5_Pos (10UL) /*!< CTIMER GLOBEN: ENA5 (Bit 10) */ +#define CTIMER_GLOBEN_ENA5_Msk (0x400UL) /*!< CTIMER GLOBEN: ENA5 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB4_Pos (9UL) /*!< CTIMER GLOBEN: ENB4 (Bit 9) */ +#define CTIMER_GLOBEN_ENB4_Msk (0x200UL) /*!< CTIMER GLOBEN: ENB4 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA4_Pos (8UL) /*!< CTIMER GLOBEN: ENA4 (Bit 8) */ +#define CTIMER_GLOBEN_ENA4_Msk (0x100UL) /*!< CTIMER GLOBEN: ENA4 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB3_Pos (7UL) /*!< CTIMER GLOBEN: ENB3 (Bit 7) */ +#define CTIMER_GLOBEN_ENB3_Msk (0x80UL) /*!< CTIMER GLOBEN: ENB3 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA3_Pos (6UL) /*!< CTIMER GLOBEN: ENA3 (Bit 6) */ +#define CTIMER_GLOBEN_ENA3_Msk (0x40UL) /*!< CTIMER GLOBEN: ENA3 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB2_Pos (5UL) /*!< CTIMER GLOBEN: ENB2 (Bit 5) */ +#define CTIMER_GLOBEN_ENB2_Msk (0x20UL) /*!< CTIMER GLOBEN: ENB2 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA2_Pos (4UL) /*!< CTIMER GLOBEN: ENA2 (Bit 4) */ +#define CTIMER_GLOBEN_ENA2_Msk (0x10UL) /*!< CTIMER GLOBEN: ENA2 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB1_Pos (3UL) /*!< CTIMER GLOBEN: ENB1 (Bit 3) */ +#define CTIMER_GLOBEN_ENB1_Msk (0x8UL) /*!< CTIMER GLOBEN: ENB1 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA1_Pos (2UL) /*!< CTIMER GLOBEN: ENA1 (Bit 2) */ +#define CTIMER_GLOBEN_ENA1_Msk (0x4UL) /*!< CTIMER GLOBEN: ENA1 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENB0_Pos (1UL) /*!< CTIMER GLOBEN: ENB0 (Bit 1) */ +#define CTIMER_GLOBEN_ENB0_Msk (0x2UL) /*!< CTIMER GLOBEN: ENB0 (Bitfield-Mask: 0x01) */ +#define CTIMER_GLOBEN_ENA0_Pos (0UL) /*!< CTIMER GLOBEN: ENA0 (Bit 0) */ +#define CTIMER_GLOBEN_ENA0_Msk (0x1UL) /*!< CTIMER GLOBEN: ENA0 (Bitfield-Mask: 0x01) */ +/* ======================================================== OUTCFG0 ======================================================== */ +#define CTIMER_OUTCFG0_CFG9_Pos (28UL) /*!< CTIMER OUTCFG0: CFG9 (Bit 28) */ +#define CTIMER_OUTCFG0_CFG9_Msk (0x70000000UL) /*!< CTIMER OUTCFG0: CFG9 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG8_Pos (25UL) /*!< CTIMER OUTCFG0: CFG8 (Bit 25) */ +#define CTIMER_OUTCFG0_CFG8_Msk (0xe000000UL) /*!< CTIMER OUTCFG0: CFG8 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG7_Pos (22UL) /*!< CTIMER OUTCFG0: CFG7 (Bit 22) */ +#define CTIMER_OUTCFG0_CFG7_Msk (0x1c00000UL) /*!< CTIMER OUTCFG0: CFG7 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG6_Pos (19UL) /*!< CTIMER OUTCFG0: CFG6 (Bit 19) */ +#define CTIMER_OUTCFG0_CFG6_Msk (0x380000UL) /*!< CTIMER OUTCFG0: CFG6 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG5_Pos (16UL) /*!< CTIMER OUTCFG0: CFG5 (Bit 16) */ +#define CTIMER_OUTCFG0_CFG5_Msk (0x70000UL) /*!< CTIMER OUTCFG0: CFG5 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG4_Pos (12UL) /*!< CTIMER OUTCFG0: CFG4 (Bit 12) */ +#define CTIMER_OUTCFG0_CFG4_Msk (0x7000UL) /*!< CTIMER OUTCFG0: CFG4 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG3_Pos (9UL) /*!< CTIMER OUTCFG0: CFG3 (Bit 9) */ +#define CTIMER_OUTCFG0_CFG3_Msk (0xe00UL) /*!< CTIMER OUTCFG0: CFG3 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG2_Pos (6UL) /*!< CTIMER OUTCFG0: CFG2 (Bit 6) */ +#define CTIMER_OUTCFG0_CFG2_Msk (0x1c0UL) /*!< CTIMER OUTCFG0: CFG2 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG1_Pos (3UL) /*!< CTIMER OUTCFG0: CFG1 (Bit 3) */ +#define CTIMER_OUTCFG0_CFG1_Msk (0x38UL) /*!< CTIMER OUTCFG0: CFG1 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG0_CFG0_Pos (0UL) /*!< CTIMER OUTCFG0: CFG0 (Bit 0) */ +#define CTIMER_OUTCFG0_CFG0_Msk (0x7UL) /*!< CTIMER OUTCFG0: CFG0 (Bitfield-Mask: 0x07) */ +/* ======================================================== OUTCFG1 ======================================================== */ +#define CTIMER_OUTCFG1_CFG19_Pos (28UL) /*!< CTIMER OUTCFG1: CFG19 (Bit 28) */ +#define CTIMER_OUTCFG1_CFG19_Msk (0x70000000UL) /*!< CTIMER OUTCFG1: CFG19 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG18_Pos (25UL) /*!< CTIMER OUTCFG1: CFG18 (Bit 25) */ +#define CTIMER_OUTCFG1_CFG18_Msk (0xe000000UL) /*!< CTIMER OUTCFG1: CFG18 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG17_Pos (22UL) /*!< CTIMER OUTCFG1: CFG17 (Bit 22) */ +#define CTIMER_OUTCFG1_CFG17_Msk (0x1c00000UL) /*!< CTIMER OUTCFG1: CFG17 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG16_Pos (19UL) /*!< CTIMER OUTCFG1: CFG16 (Bit 19) */ +#define CTIMER_OUTCFG1_CFG16_Msk (0x380000UL) /*!< CTIMER OUTCFG1: CFG16 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG15_Pos (16UL) /*!< CTIMER OUTCFG1: CFG15 (Bit 16) */ +#define CTIMER_OUTCFG1_CFG15_Msk (0x70000UL) /*!< CTIMER OUTCFG1: CFG15 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG14_Pos (12UL) /*!< CTIMER OUTCFG1: CFG14 (Bit 12) */ +#define CTIMER_OUTCFG1_CFG14_Msk (0x7000UL) /*!< CTIMER OUTCFG1: CFG14 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG13_Pos (9UL) /*!< CTIMER OUTCFG1: CFG13 (Bit 9) */ +#define CTIMER_OUTCFG1_CFG13_Msk (0xe00UL) /*!< CTIMER OUTCFG1: CFG13 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG12_Pos (6UL) /*!< CTIMER OUTCFG1: CFG12 (Bit 6) */ +#define CTIMER_OUTCFG1_CFG12_Msk (0x1c0UL) /*!< CTIMER OUTCFG1: CFG12 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG11_Pos (3UL) /*!< CTIMER OUTCFG1: CFG11 (Bit 3) */ +#define CTIMER_OUTCFG1_CFG11_Msk (0x38UL) /*!< CTIMER OUTCFG1: CFG11 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG1_CFG10_Pos (0UL) /*!< CTIMER OUTCFG1: CFG10 (Bit 0) */ +#define CTIMER_OUTCFG1_CFG10_Msk (0x7UL) /*!< CTIMER OUTCFG1: CFG10 (Bitfield-Mask: 0x07) */ +/* ======================================================== OUTCFG2 ======================================================== */ +#define CTIMER_OUTCFG2_CFG29_Pos (28UL) /*!< CTIMER OUTCFG2: CFG29 (Bit 28) */ +#define CTIMER_OUTCFG2_CFG29_Msk (0x70000000UL) /*!< CTIMER OUTCFG2: CFG29 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG28_Pos (25UL) /*!< CTIMER OUTCFG2: CFG28 (Bit 25) */ +#define CTIMER_OUTCFG2_CFG28_Msk (0xe000000UL) /*!< CTIMER OUTCFG2: CFG28 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG27_Pos (22UL) /*!< CTIMER OUTCFG2: CFG27 (Bit 22) */ +#define CTIMER_OUTCFG2_CFG27_Msk (0x1c00000UL) /*!< CTIMER OUTCFG2: CFG27 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG26_Pos (19UL) /*!< CTIMER OUTCFG2: CFG26 (Bit 19) */ +#define CTIMER_OUTCFG2_CFG26_Msk (0x380000UL) /*!< CTIMER OUTCFG2: CFG26 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG25_Pos (16UL) /*!< CTIMER OUTCFG2: CFG25 (Bit 16) */ +#define CTIMER_OUTCFG2_CFG25_Msk (0x70000UL) /*!< CTIMER OUTCFG2: CFG25 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG24_Pos (12UL) /*!< CTIMER OUTCFG2: CFG24 (Bit 12) */ +#define CTIMER_OUTCFG2_CFG24_Msk (0x7000UL) /*!< CTIMER OUTCFG2: CFG24 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG23_Pos (9UL) /*!< CTIMER OUTCFG2: CFG23 (Bit 9) */ +#define CTIMER_OUTCFG2_CFG23_Msk (0xe00UL) /*!< CTIMER OUTCFG2: CFG23 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG22_Pos (6UL) /*!< CTIMER OUTCFG2: CFG22 (Bit 6) */ +#define CTIMER_OUTCFG2_CFG22_Msk (0x1c0UL) /*!< CTIMER OUTCFG2: CFG22 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG21_Pos (3UL) /*!< CTIMER OUTCFG2: CFG21 (Bit 3) */ +#define CTIMER_OUTCFG2_CFG21_Msk (0x38UL) /*!< CTIMER OUTCFG2: CFG21 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG2_CFG20_Pos (0UL) /*!< CTIMER OUTCFG2: CFG20 (Bit 0) */ +#define CTIMER_OUTCFG2_CFG20_Msk (0x7UL) /*!< CTIMER OUTCFG2: CFG20 (Bitfield-Mask: 0x07) */ +/* ======================================================== OUTCFG3 ======================================================== */ +#define CTIMER_OUTCFG3_CFG31_Pos (3UL) /*!< CTIMER OUTCFG3: CFG31 (Bit 3) */ +#define CTIMER_OUTCFG3_CFG31_Msk (0x38UL) /*!< CTIMER OUTCFG3: CFG31 (Bitfield-Mask: 0x07) */ +#define CTIMER_OUTCFG3_CFG30_Pos (0UL) /*!< CTIMER OUTCFG3: CFG30 (Bit 0) */ +#define CTIMER_OUTCFG3_CFG30_Msk (0x7UL) /*!< CTIMER OUTCFG3: CFG30 (Bitfield-Mask: 0x07) */ +/* ========================================================= INCFG ========================================================= */ +#define CTIMER_INCFG_CFGB7_Pos (15UL) /*!< CTIMER INCFG: CFGB7 (Bit 15) */ +#define CTIMER_INCFG_CFGB7_Msk (0x8000UL) /*!< CTIMER INCFG: CFGB7 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA7_Pos (14UL) /*!< CTIMER INCFG: CFGA7 (Bit 14) */ +#define CTIMER_INCFG_CFGA7_Msk (0x4000UL) /*!< CTIMER INCFG: CFGA7 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB6_Pos (13UL) /*!< CTIMER INCFG: CFGB6 (Bit 13) */ +#define CTIMER_INCFG_CFGB6_Msk (0x2000UL) /*!< CTIMER INCFG: CFGB6 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA6_Pos (12UL) /*!< CTIMER INCFG: CFGA6 (Bit 12) */ +#define CTIMER_INCFG_CFGA6_Msk (0x1000UL) /*!< CTIMER INCFG: CFGA6 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB5_Pos (11UL) /*!< CTIMER INCFG: CFGB5 (Bit 11) */ +#define CTIMER_INCFG_CFGB5_Msk (0x800UL) /*!< CTIMER INCFG: CFGB5 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA5_Pos (10UL) /*!< CTIMER INCFG: CFGA5 (Bit 10) */ +#define CTIMER_INCFG_CFGA5_Msk (0x400UL) /*!< CTIMER INCFG: CFGA5 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB4_Pos (9UL) /*!< CTIMER INCFG: CFGB4 (Bit 9) */ +#define CTIMER_INCFG_CFGB4_Msk (0x200UL) /*!< CTIMER INCFG: CFGB4 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA4_Pos (8UL) /*!< CTIMER INCFG: CFGA4 (Bit 8) */ +#define CTIMER_INCFG_CFGA4_Msk (0x100UL) /*!< CTIMER INCFG: CFGA4 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB3_Pos (7UL) /*!< CTIMER INCFG: CFGB3 (Bit 7) */ +#define CTIMER_INCFG_CFGB3_Msk (0x80UL) /*!< CTIMER INCFG: CFGB3 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA3_Pos (6UL) /*!< CTIMER INCFG: CFGA3 (Bit 6) */ +#define CTIMER_INCFG_CFGA3_Msk (0x40UL) /*!< CTIMER INCFG: CFGA3 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB2_Pos (5UL) /*!< CTIMER INCFG: CFGB2 (Bit 5) */ +#define CTIMER_INCFG_CFGB2_Msk (0x20UL) /*!< CTIMER INCFG: CFGB2 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA2_Pos (4UL) /*!< CTIMER INCFG: CFGA2 (Bit 4) */ +#define CTIMER_INCFG_CFGA2_Msk (0x10UL) /*!< CTIMER INCFG: CFGA2 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB1_Pos (3UL) /*!< CTIMER INCFG: CFGB1 (Bit 3) */ +#define CTIMER_INCFG_CFGB1_Msk (0x8UL) /*!< CTIMER INCFG: CFGB1 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA1_Pos (2UL) /*!< CTIMER INCFG: CFGA1 (Bit 2) */ +#define CTIMER_INCFG_CFGA1_Msk (0x4UL) /*!< CTIMER INCFG: CFGA1 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGB0_Pos (1UL) /*!< CTIMER INCFG: CFGB0 (Bit 1) */ +#define CTIMER_INCFG_CFGB0_Msk (0x2UL) /*!< CTIMER INCFG: CFGB0 (Bitfield-Mask: 0x01) */ +#define CTIMER_INCFG_CFGA0_Pos (0UL) /*!< CTIMER INCFG: CFGA0 (Bit 0) */ +#define CTIMER_INCFG_CFGA0_Msk (0x1UL) /*!< CTIMER INCFG: CFGA0 (Bitfield-Mask: 0x01) */ +/* ========================================================= STCFG ========================================================= */ +#define CTIMER_STCFG_FREEZE_Pos (31UL) /*!< CTIMER STCFG: FREEZE (Bit 31) */ +#define CTIMER_STCFG_FREEZE_Msk (0x80000000UL) /*!< CTIMER STCFG: FREEZE (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_CLEAR_Pos (30UL) /*!< CTIMER STCFG: CLEAR (Bit 30) */ +#define CTIMER_STCFG_CLEAR_Msk (0x40000000UL) /*!< CTIMER STCFG: CLEAR (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_H_EN_Pos (15UL) /*!< CTIMER STCFG: COMPARE_H_EN (Bit 15) */ +#define CTIMER_STCFG_COMPARE_H_EN_Msk (0x8000UL) /*!< CTIMER STCFG: COMPARE_H_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_G_EN_Pos (14UL) /*!< CTIMER STCFG: COMPARE_G_EN (Bit 14) */ +#define CTIMER_STCFG_COMPARE_G_EN_Msk (0x4000UL) /*!< CTIMER STCFG: COMPARE_G_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_F_EN_Pos (13UL) /*!< CTIMER STCFG: COMPARE_F_EN (Bit 13) */ +#define CTIMER_STCFG_COMPARE_F_EN_Msk (0x2000UL) /*!< CTIMER STCFG: COMPARE_F_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_E_EN_Pos (12UL) /*!< CTIMER STCFG: COMPARE_E_EN (Bit 12) */ +#define CTIMER_STCFG_COMPARE_E_EN_Msk (0x1000UL) /*!< CTIMER STCFG: COMPARE_E_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_D_EN_Pos (11UL) /*!< CTIMER STCFG: COMPARE_D_EN (Bit 11) */ +#define CTIMER_STCFG_COMPARE_D_EN_Msk (0x800UL) /*!< CTIMER STCFG: COMPARE_D_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_C_EN_Pos (10UL) /*!< CTIMER STCFG: COMPARE_C_EN (Bit 10) */ +#define CTIMER_STCFG_COMPARE_C_EN_Msk (0x400UL) /*!< CTIMER STCFG: COMPARE_C_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_B_EN_Pos (9UL) /*!< CTIMER STCFG: COMPARE_B_EN (Bit 9) */ +#define CTIMER_STCFG_COMPARE_B_EN_Msk (0x200UL) /*!< CTIMER STCFG: COMPARE_B_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_COMPARE_A_EN_Pos (8UL) /*!< CTIMER STCFG: COMPARE_A_EN (Bit 8) */ +#define CTIMER_STCFG_COMPARE_A_EN_Msk (0x100UL) /*!< CTIMER STCFG: COMPARE_A_EN (Bitfield-Mask: 0x01) */ +#define CTIMER_STCFG_CLKSEL_Pos (0UL) /*!< CTIMER STCFG: CLKSEL (Bit 0) */ +#define CTIMER_STCFG_CLKSEL_Msk (0xfUL) /*!< CTIMER STCFG: CLKSEL (Bitfield-Mask: 0x0f) */ +/* ========================================================= STTMR ========================================================= */ +#define CTIMER_STTMR_STTMR_Pos (0UL) /*!< CTIMER STTMR: STTMR (Bit 0) */ +#define CTIMER_STTMR_STTMR_Msk (0xffffffffUL) /*!< CTIMER STTMR: STTMR (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== CAPTURECONTROL ===================================================== */ +#define CTIMER_CAPTURECONTROL_CAPTURE3_Pos (3UL) /*!< CTIMER CAPTURECONTROL: CAPTURE3 (Bit 3) */ +#define CTIMER_CAPTURECONTROL_CAPTURE3_Msk (0x8UL) /*!< CTIMER CAPTURECONTROL: CAPTURE3 (Bitfield-Mask: 0x01) */ +#define CTIMER_CAPTURECONTROL_CAPTURE2_Pos (2UL) /*!< CTIMER CAPTURECONTROL: CAPTURE2 (Bit 2) */ +#define CTIMER_CAPTURECONTROL_CAPTURE2_Msk (0x4UL) /*!< CTIMER CAPTURECONTROL: CAPTURE2 (Bitfield-Mask: 0x01) */ +#define CTIMER_CAPTURECONTROL_CAPTURE1_Pos (1UL) /*!< CTIMER CAPTURECONTROL: CAPTURE1 (Bit 1) */ +#define CTIMER_CAPTURECONTROL_CAPTURE1_Msk (0x2UL) /*!< CTIMER CAPTURECONTROL: CAPTURE1 (Bitfield-Mask: 0x01) */ +#define CTIMER_CAPTURECONTROL_CAPTURE0_Pos (0UL) /*!< CTIMER CAPTURECONTROL: CAPTURE0 (Bit 0) */ +#define CTIMER_CAPTURECONTROL_CAPTURE0_Msk (0x1UL) /*!< CTIMER CAPTURECONTROL: CAPTURE0 (Bitfield-Mask: 0x01) */ +/* ======================================================== SCMPR0 ========================================================= */ +#define CTIMER_SCMPR0_SCMPR0_Pos (0UL) /*!< CTIMER SCMPR0: SCMPR0 (Bit 0) */ +#define CTIMER_SCMPR0_SCMPR0_Msk (0xffffffffUL) /*!< CTIMER SCMPR0: SCMPR0 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR1 ========================================================= */ +#define CTIMER_SCMPR1_SCMPR1_Pos (0UL) /*!< CTIMER SCMPR1: SCMPR1 (Bit 0) */ +#define CTIMER_SCMPR1_SCMPR1_Msk (0xffffffffUL) /*!< CTIMER SCMPR1: SCMPR1 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR2 ========================================================= */ +#define CTIMER_SCMPR2_SCMPR2_Pos (0UL) /*!< CTIMER SCMPR2: SCMPR2 (Bit 0) */ +#define CTIMER_SCMPR2_SCMPR2_Msk (0xffffffffUL) /*!< CTIMER SCMPR2: SCMPR2 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR3 ========================================================= */ +#define CTIMER_SCMPR3_SCMPR3_Pos (0UL) /*!< CTIMER SCMPR3: SCMPR3 (Bit 0) */ +#define CTIMER_SCMPR3_SCMPR3_Msk (0xffffffffUL) /*!< CTIMER SCMPR3: SCMPR3 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR4 ========================================================= */ +#define CTIMER_SCMPR4_SCMPR4_Pos (0UL) /*!< CTIMER SCMPR4: SCMPR4 (Bit 0) */ +#define CTIMER_SCMPR4_SCMPR4_Msk (0xffffffffUL) /*!< CTIMER SCMPR4: SCMPR4 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR5 ========================================================= */ +#define CTIMER_SCMPR5_SCMPR5_Pos (0UL) /*!< CTIMER SCMPR5: SCMPR5 (Bit 0) */ +#define CTIMER_SCMPR5_SCMPR5_Msk (0xffffffffUL) /*!< CTIMER SCMPR5: SCMPR5 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR6 ========================================================= */ +#define CTIMER_SCMPR6_SCMPR6_Pos (0UL) /*!< CTIMER SCMPR6: SCMPR6 (Bit 0) */ +#define CTIMER_SCMPR6_SCMPR6_Msk (0xffffffffUL) /*!< CTIMER SCMPR6: SCMPR6 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCMPR7 ========================================================= */ +#define CTIMER_SCMPR7_SCMPR7_Pos (0UL) /*!< CTIMER SCMPR7: SCMPR7 (Bit 0) */ +#define CTIMER_SCMPR7_SCMPR7_Msk (0xffffffffUL) /*!< CTIMER SCMPR7: SCMPR7 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCAPT0 ========================================================= */ +#define CTIMER_SCAPT0_SCAPT0_Pos (0UL) /*!< CTIMER SCAPT0: SCAPT0 (Bit 0) */ +#define CTIMER_SCAPT0_SCAPT0_Msk (0xffffffffUL) /*!< CTIMER SCAPT0: SCAPT0 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCAPT1 ========================================================= */ +#define CTIMER_SCAPT1_SCAPT1_Pos (0UL) /*!< CTIMER SCAPT1: SCAPT1 (Bit 0) */ +#define CTIMER_SCAPT1_SCAPT1_Msk (0xffffffffUL) /*!< CTIMER SCAPT1: SCAPT1 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCAPT2 ========================================================= */ +#define CTIMER_SCAPT2_SCAPT2_Pos (0UL) /*!< CTIMER SCAPT2: SCAPT2 (Bit 0) */ +#define CTIMER_SCAPT2_SCAPT2_Msk (0xffffffffUL) /*!< CTIMER SCAPT2: SCAPT2 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCAPT3 ========================================================= */ +#define CTIMER_SCAPT3_SCAPT3_Pos (0UL) /*!< CTIMER SCAPT3: SCAPT3 (Bit 0) */ +#define CTIMER_SCAPT3_SCAPT3_Msk (0xffffffffUL) /*!< CTIMER SCAPT3: SCAPT3 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= SNVR0 ========================================================= */ +#define CTIMER_SNVR0_SNVR0_Pos (0UL) /*!< CTIMER SNVR0: SNVR0 (Bit 0) */ +#define CTIMER_SNVR0_SNVR0_Msk (0xffffffffUL) /*!< CTIMER SNVR0: SNVR0 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= SNVR1 ========================================================= */ +#define CTIMER_SNVR1_SNVR1_Pos (0UL) /*!< CTIMER SNVR1: SNVR1 (Bit 0) */ +#define CTIMER_SNVR1_SNVR1_Msk (0xffffffffUL) /*!< CTIMER SNVR1: SNVR1 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= SNVR2 ========================================================= */ +#define CTIMER_SNVR2_SNVR2_Pos (0UL) /*!< CTIMER SNVR2: SNVR2 (Bit 0) */ +#define CTIMER_SNVR2_SNVR2_Msk (0xffffffffUL) /*!< CTIMER SNVR2: SNVR2 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= SNVR3 ========================================================= */ +#define CTIMER_SNVR3_SNVR3_Pos (0UL) /*!< CTIMER SNVR3: SNVR3 (Bit 0) */ +#define CTIMER_SNVR3_SNVR3_Msk (0xffffffffUL) /*!< CTIMER SNVR3: SNVR3 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= INTEN ========================================================= */ +#define CTIMER_INTEN_CTMRB7C1INT_Pos (31UL) /*!< CTIMER INTEN: CTMRB7C1INT (Bit 31) */ +#define CTIMER_INTEN_CTMRB7C1INT_Msk (0x80000000UL) /*!< CTIMER INTEN: CTMRB7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA7C1INT_Pos (30UL) /*!< CTIMER INTEN: CTMRA7C1INT (Bit 30) */ +#define CTIMER_INTEN_CTMRA7C1INT_Msk (0x40000000UL) /*!< CTIMER INTEN: CTMRA7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB6C1INT_Pos (29UL) /*!< CTIMER INTEN: CTMRB6C1INT (Bit 29) */ +#define CTIMER_INTEN_CTMRB6C1INT_Msk (0x20000000UL) /*!< CTIMER INTEN: CTMRB6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA6C1INT_Pos (28UL) /*!< CTIMER INTEN: CTMRA6C1INT (Bit 28) */ +#define CTIMER_INTEN_CTMRA6C1INT_Msk (0x10000000UL) /*!< CTIMER INTEN: CTMRA6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB5C1INT_Pos (27UL) /*!< CTIMER INTEN: CTMRB5C1INT (Bit 27) */ +#define CTIMER_INTEN_CTMRB5C1INT_Msk (0x8000000UL) /*!< CTIMER INTEN: CTMRB5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA5C1INT_Pos (26UL) /*!< CTIMER INTEN: CTMRA5C1INT (Bit 26) */ +#define CTIMER_INTEN_CTMRA5C1INT_Msk (0x4000000UL) /*!< CTIMER INTEN: CTMRA5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB4C1INT_Pos (25UL) /*!< CTIMER INTEN: CTMRB4C1INT (Bit 25) */ +#define CTIMER_INTEN_CTMRB4C1INT_Msk (0x2000000UL) /*!< CTIMER INTEN: CTMRB4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA4C1INT_Pos (24UL) /*!< CTIMER INTEN: CTMRA4C1INT (Bit 24) */ +#define CTIMER_INTEN_CTMRA4C1INT_Msk (0x1000000UL) /*!< CTIMER INTEN: CTMRA4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB3C1INT_Pos (23UL) /*!< CTIMER INTEN: CTMRB3C1INT (Bit 23) */ +#define CTIMER_INTEN_CTMRB3C1INT_Msk (0x800000UL) /*!< CTIMER INTEN: CTMRB3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA3C1INT_Pos (22UL) /*!< CTIMER INTEN: CTMRA3C1INT (Bit 22) */ +#define CTIMER_INTEN_CTMRA3C1INT_Msk (0x400000UL) /*!< CTIMER INTEN: CTMRA3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB2C1INT_Pos (21UL) /*!< CTIMER INTEN: CTMRB2C1INT (Bit 21) */ +#define CTIMER_INTEN_CTMRB2C1INT_Msk (0x200000UL) /*!< CTIMER INTEN: CTMRB2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA2C1INT_Pos (20UL) /*!< CTIMER INTEN: CTMRA2C1INT (Bit 20) */ +#define CTIMER_INTEN_CTMRA2C1INT_Msk (0x100000UL) /*!< CTIMER INTEN: CTMRA2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB1C1INT_Pos (19UL) /*!< CTIMER INTEN: CTMRB1C1INT (Bit 19) */ +#define CTIMER_INTEN_CTMRB1C1INT_Msk (0x80000UL) /*!< CTIMER INTEN: CTMRB1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA1C1INT_Pos (18UL) /*!< CTIMER INTEN: CTMRA1C1INT (Bit 18) */ +#define CTIMER_INTEN_CTMRA1C1INT_Msk (0x40000UL) /*!< CTIMER INTEN: CTMRA1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB0C1INT_Pos (17UL) /*!< CTIMER INTEN: CTMRB0C1INT (Bit 17) */ +#define CTIMER_INTEN_CTMRB0C1INT_Msk (0x20000UL) /*!< CTIMER INTEN: CTMRB0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA0C1INT_Pos (16UL) /*!< CTIMER INTEN: CTMRA0C1INT (Bit 16) */ +#define CTIMER_INTEN_CTMRA0C1INT_Msk (0x10000UL) /*!< CTIMER INTEN: CTMRA0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB7C0INT_Pos (15UL) /*!< CTIMER INTEN: CTMRB7C0INT (Bit 15) */ +#define CTIMER_INTEN_CTMRB7C0INT_Msk (0x8000UL) /*!< CTIMER INTEN: CTMRB7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA7C0INT_Pos (14UL) /*!< CTIMER INTEN: CTMRA7C0INT (Bit 14) */ +#define CTIMER_INTEN_CTMRA7C0INT_Msk (0x4000UL) /*!< CTIMER INTEN: CTMRA7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB6C0INT_Pos (13UL) /*!< CTIMER INTEN: CTMRB6C0INT (Bit 13) */ +#define CTIMER_INTEN_CTMRB6C0INT_Msk (0x2000UL) /*!< CTIMER INTEN: CTMRB6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA6C0INT_Pos (12UL) /*!< CTIMER INTEN: CTMRA6C0INT (Bit 12) */ +#define CTIMER_INTEN_CTMRA6C0INT_Msk (0x1000UL) /*!< CTIMER INTEN: CTMRA6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB5C0INT_Pos (11UL) /*!< CTIMER INTEN: CTMRB5C0INT (Bit 11) */ +#define CTIMER_INTEN_CTMRB5C0INT_Msk (0x800UL) /*!< CTIMER INTEN: CTMRB5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA5C0INT_Pos (10UL) /*!< CTIMER INTEN: CTMRA5C0INT (Bit 10) */ +#define CTIMER_INTEN_CTMRA5C0INT_Msk (0x400UL) /*!< CTIMER INTEN: CTMRA5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB4C0INT_Pos (9UL) /*!< CTIMER INTEN: CTMRB4C0INT (Bit 9) */ +#define CTIMER_INTEN_CTMRB4C0INT_Msk (0x200UL) /*!< CTIMER INTEN: CTMRB4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA4C0INT_Pos (8UL) /*!< CTIMER INTEN: CTMRA4C0INT (Bit 8) */ +#define CTIMER_INTEN_CTMRA4C0INT_Msk (0x100UL) /*!< CTIMER INTEN: CTMRA4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB3C0INT_Pos (7UL) /*!< CTIMER INTEN: CTMRB3C0INT (Bit 7) */ +#define CTIMER_INTEN_CTMRB3C0INT_Msk (0x80UL) /*!< CTIMER INTEN: CTMRB3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA3C0INT_Pos (6UL) /*!< CTIMER INTEN: CTMRA3C0INT (Bit 6) */ +#define CTIMER_INTEN_CTMRA3C0INT_Msk (0x40UL) /*!< CTIMER INTEN: CTMRA3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB2C0INT_Pos (5UL) /*!< CTIMER INTEN: CTMRB2C0INT (Bit 5) */ +#define CTIMER_INTEN_CTMRB2C0INT_Msk (0x20UL) /*!< CTIMER INTEN: CTMRB2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA2C0INT_Pos (4UL) /*!< CTIMER INTEN: CTMRA2C0INT (Bit 4) */ +#define CTIMER_INTEN_CTMRA2C0INT_Msk (0x10UL) /*!< CTIMER INTEN: CTMRA2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB1C0INT_Pos (3UL) /*!< CTIMER INTEN: CTMRB1C0INT (Bit 3) */ +#define CTIMER_INTEN_CTMRB1C0INT_Msk (0x8UL) /*!< CTIMER INTEN: CTMRB1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA1C0INT_Pos (2UL) /*!< CTIMER INTEN: CTMRA1C0INT (Bit 2) */ +#define CTIMER_INTEN_CTMRA1C0INT_Msk (0x4UL) /*!< CTIMER INTEN: CTMRA1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRB0C0INT_Pos (1UL) /*!< CTIMER INTEN: CTMRB0C0INT (Bit 1) */ +#define CTIMER_INTEN_CTMRB0C0INT_Msk (0x2UL) /*!< CTIMER INTEN: CTMRB0C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTEN_CTMRA0C0INT_Pos (0UL) /*!< CTIMER INTEN: CTMRA0C0INT (Bit 0) */ +#define CTIMER_INTEN_CTMRA0C0INT_Msk (0x1UL) /*!< CTIMER INTEN: CTMRA0C0INT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define CTIMER_INTSTAT_CTMRB7C1INT_Pos (31UL) /*!< CTIMER INTSTAT: CTMRB7C1INT (Bit 31) */ +#define CTIMER_INTSTAT_CTMRB7C1INT_Msk (0x80000000UL) /*!< CTIMER INTSTAT: CTMRB7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA7C1INT_Pos (30UL) /*!< CTIMER INTSTAT: CTMRA7C1INT (Bit 30) */ +#define CTIMER_INTSTAT_CTMRA7C1INT_Msk (0x40000000UL) /*!< CTIMER INTSTAT: CTMRA7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB6C1INT_Pos (29UL) /*!< CTIMER INTSTAT: CTMRB6C1INT (Bit 29) */ +#define CTIMER_INTSTAT_CTMRB6C1INT_Msk (0x20000000UL) /*!< CTIMER INTSTAT: CTMRB6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA6C1INT_Pos (28UL) /*!< CTIMER INTSTAT: CTMRA6C1INT (Bit 28) */ +#define CTIMER_INTSTAT_CTMRA6C1INT_Msk (0x10000000UL) /*!< CTIMER INTSTAT: CTMRA6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB5C1INT_Pos (27UL) /*!< CTIMER INTSTAT: CTMRB5C1INT (Bit 27) */ +#define CTIMER_INTSTAT_CTMRB5C1INT_Msk (0x8000000UL) /*!< CTIMER INTSTAT: CTMRB5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA5C1INT_Pos (26UL) /*!< CTIMER INTSTAT: CTMRA5C1INT (Bit 26) */ +#define CTIMER_INTSTAT_CTMRA5C1INT_Msk (0x4000000UL) /*!< CTIMER INTSTAT: CTMRA5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB4C1INT_Pos (25UL) /*!< CTIMER INTSTAT: CTMRB4C1INT (Bit 25) */ +#define CTIMER_INTSTAT_CTMRB4C1INT_Msk (0x2000000UL) /*!< CTIMER INTSTAT: CTMRB4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA4C1INT_Pos (24UL) /*!< CTIMER INTSTAT: CTMRA4C1INT (Bit 24) */ +#define CTIMER_INTSTAT_CTMRA4C1INT_Msk (0x1000000UL) /*!< CTIMER INTSTAT: CTMRA4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB3C1INT_Pos (23UL) /*!< CTIMER INTSTAT: CTMRB3C1INT (Bit 23) */ +#define CTIMER_INTSTAT_CTMRB3C1INT_Msk (0x800000UL) /*!< CTIMER INTSTAT: CTMRB3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA3C1INT_Pos (22UL) /*!< CTIMER INTSTAT: CTMRA3C1INT (Bit 22) */ +#define CTIMER_INTSTAT_CTMRA3C1INT_Msk (0x400000UL) /*!< CTIMER INTSTAT: CTMRA3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB2C1INT_Pos (21UL) /*!< CTIMER INTSTAT: CTMRB2C1INT (Bit 21) */ +#define CTIMER_INTSTAT_CTMRB2C1INT_Msk (0x200000UL) /*!< CTIMER INTSTAT: CTMRB2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA2C1INT_Pos (20UL) /*!< CTIMER INTSTAT: CTMRA2C1INT (Bit 20) */ +#define CTIMER_INTSTAT_CTMRA2C1INT_Msk (0x100000UL) /*!< CTIMER INTSTAT: CTMRA2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB1C1INT_Pos (19UL) /*!< CTIMER INTSTAT: CTMRB1C1INT (Bit 19) */ +#define CTIMER_INTSTAT_CTMRB1C1INT_Msk (0x80000UL) /*!< CTIMER INTSTAT: CTMRB1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA1C1INT_Pos (18UL) /*!< CTIMER INTSTAT: CTMRA1C1INT (Bit 18) */ +#define CTIMER_INTSTAT_CTMRA1C1INT_Msk (0x40000UL) /*!< CTIMER INTSTAT: CTMRA1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB0C1INT_Pos (17UL) /*!< CTIMER INTSTAT: CTMRB0C1INT (Bit 17) */ +#define CTIMER_INTSTAT_CTMRB0C1INT_Msk (0x20000UL) /*!< CTIMER INTSTAT: CTMRB0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA0C1INT_Pos (16UL) /*!< CTIMER INTSTAT: CTMRA0C1INT (Bit 16) */ +#define CTIMER_INTSTAT_CTMRA0C1INT_Msk (0x10000UL) /*!< CTIMER INTSTAT: CTMRA0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB7C0INT_Pos (15UL) /*!< CTIMER INTSTAT: CTMRB7C0INT (Bit 15) */ +#define CTIMER_INTSTAT_CTMRB7C0INT_Msk (0x8000UL) /*!< CTIMER INTSTAT: CTMRB7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA7C0INT_Pos (14UL) /*!< CTIMER INTSTAT: CTMRA7C0INT (Bit 14) */ +#define CTIMER_INTSTAT_CTMRA7C0INT_Msk (0x4000UL) /*!< CTIMER INTSTAT: CTMRA7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB6C0INT_Pos (13UL) /*!< CTIMER INTSTAT: CTMRB6C0INT (Bit 13) */ +#define CTIMER_INTSTAT_CTMRB6C0INT_Msk (0x2000UL) /*!< CTIMER INTSTAT: CTMRB6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA6C0INT_Pos (12UL) /*!< CTIMER INTSTAT: CTMRA6C0INT (Bit 12) */ +#define CTIMER_INTSTAT_CTMRA6C0INT_Msk (0x1000UL) /*!< CTIMER INTSTAT: CTMRA6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB5C0INT_Pos (11UL) /*!< CTIMER INTSTAT: CTMRB5C0INT (Bit 11) */ +#define CTIMER_INTSTAT_CTMRB5C0INT_Msk (0x800UL) /*!< CTIMER INTSTAT: CTMRB5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA5C0INT_Pos (10UL) /*!< CTIMER INTSTAT: CTMRA5C0INT (Bit 10) */ +#define CTIMER_INTSTAT_CTMRA5C0INT_Msk (0x400UL) /*!< CTIMER INTSTAT: CTMRA5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB4C0INT_Pos (9UL) /*!< CTIMER INTSTAT: CTMRB4C0INT (Bit 9) */ +#define CTIMER_INTSTAT_CTMRB4C0INT_Msk (0x200UL) /*!< CTIMER INTSTAT: CTMRB4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA4C0INT_Pos (8UL) /*!< CTIMER INTSTAT: CTMRA4C0INT (Bit 8) */ +#define CTIMER_INTSTAT_CTMRA4C0INT_Msk (0x100UL) /*!< CTIMER INTSTAT: CTMRA4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB3C0INT_Pos (7UL) /*!< CTIMER INTSTAT: CTMRB3C0INT (Bit 7) */ +#define CTIMER_INTSTAT_CTMRB3C0INT_Msk (0x80UL) /*!< CTIMER INTSTAT: CTMRB3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA3C0INT_Pos (6UL) /*!< CTIMER INTSTAT: CTMRA3C0INT (Bit 6) */ +#define CTIMER_INTSTAT_CTMRA3C0INT_Msk (0x40UL) /*!< CTIMER INTSTAT: CTMRA3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB2C0INT_Pos (5UL) /*!< CTIMER INTSTAT: CTMRB2C0INT (Bit 5) */ +#define CTIMER_INTSTAT_CTMRB2C0INT_Msk (0x20UL) /*!< CTIMER INTSTAT: CTMRB2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA2C0INT_Pos (4UL) /*!< CTIMER INTSTAT: CTMRA2C0INT (Bit 4) */ +#define CTIMER_INTSTAT_CTMRA2C0INT_Msk (0x10UL) /*!< CTIMER INTSTAT: CTMRA2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB1C0INT_Pos (3UL) /*!< CTIMER INTSTAT: CTMRB1C0INT (Bit 3) */ +#define CTIMER_INTSTAT_CTMRB1C0INT_Msk (0x8UL) /*!< CTIMER INTSTAT: CTMRB1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA1C0INT_Pos (2UL) /*!< CTIMER INTSTAT: CTMRA1C0INT (Bit 2) */ +#define CTIMER_INTSTAT_CTMRA1C0INT_Msk (0x4UL) /*!< CTIMER INTSTAT: CTMRA1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRB0C0INT_Pos (1UL) /*!< CTIMER INTSTAT: CTMRB0C0INT (Bit 1) */ +#define CTIMER_INTSTAT_CTMRB0C0INT_Msk (0x2UL) /*!< CTIMER INTSTAT: CTMRB0C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSTAT_CTMRA0C0INT_Pos (0UL) /*!< CTIMER INTSTAT: CTMRA0C0INT (Bit 0) */ +#define CTIMER_INTSTAT_CTMRA0C0INT_Msk (0x1UL) /*!< CTIMER INTSTAT: CTMRA0C0INT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define CTIMER_INTCLR_CTMRB7C1INT_Pos (31UL) /*!< CTIMER INTCLR: CTMRB7C1INT (Bit 31) */ +#define CTIMER_INTCLR_CTMRB7C1INT_Msk (0x80000000UL) /*!< CTIMER INTCLR: CTMRB7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA7C1INT_Pos (30UL) /*!< CTIMER INTCLR: CTMRA7C1INT (Bit 30) */ +#define CTIMER_INTCLR_CTMRA7C1INT_Msk (0x40000000UL) /*!< CTIMER INTCLR: CTMRA7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB6C1INT_Pos (29UL) /*!< CTIMER INTCLR: CTMRB6C1INT (Bit 29) */ +#define CTIMER_INTCLR_CTMRB6C1INT_Msk (0x20000000UL) /*!< CTIMER INTCLR: CTMRB6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA6C1INT_Pos (28UL) /*!< CTIMER INTCLR: CTMRA6C1INT (Bit 28) */ +#define CTIMER_INTCLR_CTMRA6C1INT_Msk (0x10000000UL) /*!< CTIMER INTCLR: CTMRA6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB5C1INT_Pos (27UL) /*!< CTIMER INTCLR: CTMRB5C1INT (Bit 27) */ +#define CTIMER_INTCLR_CTMRB5C1INT_Msk (0x8000000UL) /*!< CTIMER INTCLR: CTMRB5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA5C1INT_Pos (26UL) /*!< CTIMER INTCLR: CTMRA5C1INT (Bit 26) */ +#define CTIMER_INTCLR_CTMRA5C1INT_Msk (0x4000000UL) /*!< CTIMER INTCLR: CTMRA5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB4C1INT_Pos (25UL) /*!< CTIMER INTCLR: CTMRB4C1INT (Bit 25) */ +#define CTIMER_INTCLR_CTMRB4C1INT_Msk (0x2000000UL) /*!< CTIMER INTCLR: CTMRB4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA4C1INT_Pos (24UL) /*!< CTIMER INTCLR: CTMRA4C1INT (Bit 24) */ +#define CTIMER_INTCLR_CTMRA4C1INT_Msk (0x1000000UL) /*!< CTIMER INTCLR: CTMRA4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB3C1INT_Pos (23UL) /*!< CTIMER INTCLR: CTMRB3C1INT (Bit 23) */ +#define CTIMER_INTCLR_CTMRB3C1INT_Msk (0x800000UL) /*!< CTIMER INTCLR: CTMRB3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA3C1INT_Pos (22UL) /*!< CTIMER INTCLR: CTMRA3C1INT (Bit 22) */ +#define CTIMER_INTCLR_CTMRA3C1INT_Msk (0x400000UL) /*!< CTIMER INTCLR: CTMRA3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB2C1INT_Pos (21UL) /*!< CTIMER INTCLR: CTMRB2C1INT (Bit 21) */ +#define CTIMER_INTCLR_CTMRB2C1INT_Msk (0x200000UL) /*!< CTIMER INTCLR: CTMRB2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA2C1INT_Pos (20UL) /*!< CTIMER INTCLR: CTMRA2C1INT (Bit 20) */ +#define CTIMER_INTCLR_CTMRA2C1INT_Msk (0x100000UL) /*!< CTIMER INTCLR: CTMRA2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB1C1INT_Pos (19UL) /*!< CTIMER INTCLR: CTMRB1C1INT (Bit 19) */ +#define CTIMER_INTCLR_CTMRB1C1INT_Msk (0x80000UL) /*!< CTIMER INTCLR: CTMRB1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA1C1INT_Pos (18UL) /*!< CTIMER INTCLR: CTMRA1C1INT (Bit 18) */ +#define CTIMER_INTCLR_CTMRA1C1INT_Msk (0x40000UL) /*!< CTIMER INTCLR: CTMRA1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB0C1INT_Pos (17UL) /*!< CTIMER INTCLR: CTMRB0C1INT (Bit 17) */ +#define CTIMER_INTCLR_CTMRB0C1INT_Msk (0x20000UL) /*!< CTIMER INTCLR: CTMRB0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA0C1INT_Pos (16UL) /*!< CTIMER INTCLR: CTMRA0C1INT (Bit 16) */ +#define CTIMER_INTCLR_CTMRA0C1INT_Msk (0x10000UL) /*!< CTIMER INTCLR: CTMRA0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB7C0INT_Pos (15UL) /*!< CTIMER INTCLR: CTMRB7C0INT (Bit 15) */ +#define CTIMER_INTCLR_CTMRB7C0INT_Msk (0x8000UL) /*!< CTIMER INTCLR: CTMRB7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA7C0INT_Pos (14UL) /*!< CTIMER INTCLR: CTMRA7C0INT (Bit 14) */ +#define CTIMER_INTCLR_CTMRA7C0INT_Msk (0x4000UL) /*!< CTIMER INTCLR: CTMRA7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB6C0INT_Pos (13UL) /*!< CTIMER INTCLR: CTMRB6C0INT (Bit 13) */ +#define CTIMER_INTCLR_CTMRB6C0INT_Msk (0x2000UL) /*!< CTIMER INTCLR: CTMRB6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA6C0INT_Pos (12UL) /*!< CTIMER INTCLR: CTMRA6C0INT (Bit 12) */ +#define CTIMER_INTCLR_CTMRA6C0INT_Msk (0x1000UL) /*!< CTIMER INTCLR: CTMRA6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB5C0INT_Pos (11UL) /*!< CTIMER INTCLR: CTMRB5C0INT (Bit 11) */ +#define CTIMER_INTCLR_CTMRB5C0INT_Msk (0x800UL) /*!< CTIMER INTCLR: CTMRB5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA5C0INT_Pos (10UL) /*!< CTIMER INTCLR: CTMRA5C0INT (Bit 10) */ +#define CTIMER_INTCLR_CTMRA5C0INT_Msk (0x400UL) /*!< CTIMER INTCLR: CTMRA5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB4C0INT_Pos (9UL) /*!< CTIMER INTCLR: CTMRB4C0INT (Bit 9) */ +#define CTIMER_INTCLR_CTMRB4C0INT_Msk (0x200UL) /*!< CTIMER INTCLR: CTMRB4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA4C0INT_Pos (8UL) /*!< CTIMER INTCLR: CTMRA4C0INT (Bit 8) */ +#define CTIMER_INTCLR_CTMRA4C0INT_Msk (0x100UL) /*!< CTIMER INTCLR: CTMRA4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB3C0INT_Pos (7UL) /*!< CTIMER INTCLR: CTMRB3C0INT (Bit 7) */ +#define CTIMER_INTCLR_CTMRB3C0INT_Msk (0x80UL) /*!< CTIMER INTCLR: CTMRB3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA3C0INT_Pos (6UL) /*!< CTIMER INTCLR: CTMRA3C0INT (Bit 6) */ +#define CTIMER_INTCLR_CTMRA3C0INT_Msk (0x40UL) /*!< CTIMER INTCLR: CTMRA3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB2C0INT_Pos (5UL) /*!< CTIMER INTCLR: CTMRB2C0INT (Bit 5) */ +#define CTIMER_INTCLR_CTMRB2C0INT_Msk (0x20UL) /*!< CTIMER INTCLR: CTMRB2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA2C0INT_Pos (4UL) /*!< CTIMER INTCLR: CTMRA2C0INT (Bit 4) */ +#define CTIMER_INTCLR_CTMRA2C0INT_Msk (0x10UL) /*!< CTIMER INTCLR: CTMRA2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB1C0INT_Pos (3UL) /*!< CTIMER INTCLR: CTMRB1C0INT (Bit 3) */ +#define CTIMER_INTCLR_CTMRB1C0INT_Msk (0x8UL) /*!< CTIMER INTCLR: CTMRB1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA1C0INT_Pos (2UL) /*!< CTIMER INTCLR: CTMRA1C0INT (Bit 2) */ +#define CTIMER_INTCLR_CTMRA1C0INT_Msk (0x4UL) /*!< CTIMER INTCLR: CTMRA1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRB0C0INT_Pos (1UL) /*!< CTIMER INTCLR: CTMRB0C0INT (Bit 1) */ +#define CTIMER_INTCLR_CTMRB0C0INT_Msk (0x2UL) /*!< CTIMER INTCLR: CTMRB0C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTCLR_CTMRA0C0INT_Pos (0UL) /*!< CTIMER INTCLR: CTMRA0C0INT (Bit 0) */ +#define CTIMER_INTCLR_CTMRA0C0INT_Msk (0x1UL) /*!< CTIMER INTCLR: CTMRA0C0INT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define CTIMER_INTSET_CTMRB7C1INT_Pos (31UL) /*!< CTIMER INTSET: CTMRB7C1INT (Bit 31) */ +#define CTIMER_INTSET_CTMRB7C1INT_Msk (0x80000000UL) /*!< CTIMER INTSET: CTMRB7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA7C1INT_Pos (30UL) /*!< CTIMER INTSET: CTMRA7C1INT (Bit 30) */ +#define CTIMER_INTSET_CTMRA7C1INT_Msk (0x40000000UL) /*!< CTIMER INTSET: CTMRA7C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB6C1INT_Pos (29UL) /*!< CTIMER INTSET: CTMRB6C1INT (Bit 29) */ +#define CTIMER_INTSET_CTMRB6C1INT_Msk (0x20000000UL) /*!< CTIMER INTSET: CTMRB6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA6C1INT_Pos (28UL) /*!< CTIMER INTSET: CTMRA6C1INT (Bit 28) */ +#define CTIMER_INTSET_CTMRA6C1INT_Msk (0x10000000UL) /*!< CTIMER INTSET: CTMRA6C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB5C1INT_Pos (27UL) /*!< CTIMER INTSET: CTMRB5C1INT (Bit 27) */ +#define CTIMER_INTSET_CTMRB5C1INT_Msk (0x8000000UL) /*!< CTIMER INTSET: CTMRB5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA5C1INT_Pos (26UL) /*!< CTIMER INTSET: CTMRA5C1INT (Bit 26) */ +#define CTIMER_INTSET_CTMRA5C1INT_Msk (0x4000000UL) /*!< CTIMER INTSET: CTMRA5C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB4C1INT_Pos (25UL) /*!< CTIMER INTSET: CTMRB4C1INT (Bit 25) */ +#define CTIMER_INTSET_CTMRB4C1INT_Msk (0x2000000UL) /*!< CTIMER INTSET: CTMRB4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA4C1INT_Pos (24UL) /*!< CTIMER INTSET: CTMRA4C1INT (Bit 24) */ +#define CTIMER_INTSET_CTMRA4C1INT_Msk (0x1000000UL) /*!< CTIMER INTSET: CTMRA4C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB3C1INT_Pos (23UL) /*!< CTIMER INTSET: CTMRB3C1INT (Bit 23) */ +#define CTIMER_INTSET_CTMRB3C1INT_Msk (0x800000UL) /*!< CTIMER INTSET: CTMRB3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA3C1INT_Pos (22UL) /*!< CTIMER INTSET: CTMRA3C1INT (Bit 22) */ +#define CTIMER_INTSET_CTMRA3C1INT_Msk (0x400000UL) /*!< CTIMER INTSET: CTMRA3C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB2C1INT_Pos (21UL) /*!< CTIMER INTSET: CTMRB2C1INT (Bit 21) */ +#define CTIMER_INTSET_CTMRB2C1INT_Msk (0x200000UL) /*!< CTIMER INTSET: CTMRB2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA2C1INT_Pos (20UL) /*!< CTIMER INTSET: CTMRA2C1INT (Bit 20) */ +#define CTIMER_INTSET_CTMRA2C1INT_Msk (0x100000UL) /*!< CTIMER INTSET: CTMRA2C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB1C1INT_Pos (19UL) /*!< CTIMER INTSET: CTMRB1C1INT (Bit 19) */ +#define CTIMER_INTSET_CTMRB1C1INT_Msk (0x80000UL) /*!< CTIMER INTSET: CTMRB1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA1C1INT_Pos (18UL) /*!< CTIMER INTSET: CTMRA1C1INT (Bit 18) */ +#define CTIMER_INTSET_CTMRA1C1INT_Msk (0x40000UL) /*!< CTIMER INTSET: CTMRA1C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB0C1INT_Pos (17UL) /*!< CTIMER INTSET: CTMRB0C1INT (Bit 17) */ +#define CTIMER_INTSET_CTMRB0C1INT_Msk (0x20000UL) /*!< CTIMER INTSET: CTMRB0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA0C1INT_Pos (16UL) /*!< CTIMER INTSET: CTMRA0C1INT (Bit 16) */ +#define CTIMER_INTSET_CTMRA0C1INT_Msk (0x10000UL) /*!< CTIMER INTSET: CTMRA0C1INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB7C0INT_Pos (15UL) /*!< CTIMER INTSET: CTMRB7C0INT (Bit 15) */ +#define CTIMER_INTSET_CTMRB7C0INT_Msk (0x8000UL) /*!< CTIMER INTSET: CTMRB7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA7C0INT_Pos (14UL) /*!< CTIMER INTSET: CTMRA7C0INT (Bit 14) */ +#define CTIMER_INTSET_CTMRA7C0INT_Msk (0x4000UL) /*!< CTIMER INTSET: CTMRA7C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB6C0INT_Pos (13UL) /*!< CTIMER INTSET: CTMRB6C0INT (Bit 13) */ +#define CTIMER_INTSET_CTMRB6C0INT_Msk (0x2000UL) /*!< CTIMER INTSET: CTMRB6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA6C0INT_Pos (12UL) /*!< CTIMER INTSET: CTMRA6C0INT (Bit 12) */ +#define CTIMER_INTSET_CTMRA6C0INT_Msk (0x1000UL) /*!< CTIMER INTSET: CTMRA6C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB5C0INT_Pos (11UL) /*!< CTIMER INTSET: CTMRB5C0INT (Bit 11) */ +#define CTIMER_INTSET_CTMRB5C0INT_Msk (0x800UL) /*!< CTIMER INTSET: CTMRB5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA5C0INT_Pos (10UL) /*!< CTIMER INTSET: CTMRA5C0INT (Bit 10) */ +#define CTIMER_INTSET_CTMRA5C0INT_Msk (0x400UL) /*!< CTIMER INTSET: CTMRA5C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB4C0INT_Pos (9UL) /*!< CTIMER INTSET: CTMRB4C0INT (Bit 9) */ +#define CTIMER_INTSET_CTMRB4C0INT_Msk (0x200UL) /*!< CTIMER INTSET: CTMRB4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA4C0INT_Pos (8UL) /*!< CTIMER INTSET: CTMRA4C0INT (Bit 8) */ +#define CTIMER_INTSET_CTMRA4C0INT_Msk (0x100UL) /*!< CTIMER INTSET: CTMRA4C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB3C0INT_Pos (7UL) /*!< CTIMER INTSET: CTMRB3C0INT (Bit 7) */ +#define CTIMER_INTSET_CTMRB3C0INT_Msk (0x80UL) /*!< CTIMER INTSET: CTMRB3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA3C0INT_Pos (6UL) /*!< CTIMER INTSET: CTMRA3C0INT (Bit 6) */ +#define CTIMER_INTSET_CTMRA3C0INT_Msk (0x40UL) /*!< CTIMER INTSET: CTMRA3C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB2C0INT_Pos (5UL) /*!< CTIMER INTSET: CTMRB2C0INT (Bit 5) */ +#define CTIMER_INTSET_CTMRB2C0INT_Msk (0x20UL) /*!< CTIMER INTSET: CTMRB2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA2C0INT_Pos (4UL) /*!< CTIMER INTSET: CTMRA2C0INT (Bit 4) */ +#define CTIMER_INTSET_CTMRA2C0INT_Msk (0x10UL) /*!< CTIMER INTSET: CTMRA2C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB1C0INT_Pos (3UL) /*!< CTIMER INTSET: CTMRB1C0INT (Bit 3) */ +#define CTIMER_INTSET_CTMRB1C0INT_Msk (0x8UL) /*!< CTIMER INTSET: CTMRB1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA1C0INT_Pos (2UL) /*!< CTIMER INTSET: CTMRA1C0INT (Bit 2) */ +#define CTIMER_INTSET_CTMRA1C0INT_Msk (0x4UL) /*!< CTIMER INTSET: CTMRA1C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRB0C0INT_Pos (1UL) /*!< CTIMER INTSET: CTMRB0C0INT (Bit 1) */ +#define CTIMER_INTSET_CTMRB0C0INT_Msk (0x2UL) /*!< CTIMER INTSET: CTMRB0C0INT (Bitfield-Mask: 0x01) */ +#define CTIMER_INTSET_CTMRA0C0INT_Pos (0UL) /*!< CTIMER INTSET: CTMRA0C0INT (Bit 0) */ +#define CTIMER_INTSET_CTMRA0C0INT_Msk (0x1UL) /*!< CTIMER INTSET: CTMRA0C0INT (Bitfield-Mask: 0x01) */ +/* ======================================================= STMINTEN ======================================================== */ +#define CTIMER_STMINTEN_CAPTURED_Pos (12UL) /*!< CTIMER STMINTEN: CAPTURED (Bit 12) */ +#define CTIMER_STMINTEN_CAPTURED_Msk (0x1000UL) /*!< CTIMER STMINTEN: CAPTURED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_CAPTUREC_Pos (11UL) /*!< CTIMER STMINTEN: CAPTUREC (Bit 11) */ +#define CTIMER_STMINTEN_CAPTUREC_Msk (0x800UL) /*!< CTIMER STMINTEN: CAPTUREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_CAPTUREB_Pos (10UL) /*!< CTIMER STMINTEN: CAPTUREB (Bit 10) */ +#define CTIMER_STMINTEN_CAPTUREB_Msk (0x400UL) /*!< CTIMER STMINTEN: CAPTUREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_CAPTUREA_Pos (9UL) /*!< CTIMER STMINTEN: CAPTUREA (Bit 9) */ +#define CTIMER_STMINTEN_CAPTUREA_Msk (0x200UL) /*!< CTIMER STMINTEN: CAPTUREA (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_OVERFLOW_Pos (8UL) /*!< CTIMER STMINTEN: OVERFLOW (Bit 8) */ +#define CTIMER_STMINTEN_OVERFLOW_Msk (0x100UL) /*!< CTIMER STMINTEN: OVERFLOW (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREH_Pos (7UL) /*!< CTIMER STMINTEN: COMPAREH (Bit 7) */ +#define CTIMER_STMINTEN_COMPAREH_Msk (0x80UL) /*!< CTIMER STMINTEN: COMPAREH (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREG_Pos (6UL) /*!< CTIMER STMINTEN: COMPAREG (Bit 6) */ +#define CTIMER_STMINTEN_COMPAREG_Msk (0x40UL) /*!< CTIMER STMINTEN: COMPAREG (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREF_Pos (5UL) /*!< CTIMER STMINTEN: COMPAREF (Bit 5) */ +#define CTIMER_STMINTEN_COMPAREF_Msk (0x20UL) /*!< CTIMER STMINTEN: COMPAREF (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREE_Pos (4UL) /*!< CTIMER STMINTEN: COMPAREE (Bit 4) */ +#define CTIMER_STMINTEN_COMPAREE_Msk (0x10UL) /*!< CTIMER STMINTEN: COMPAREE (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPARED_Pos (3UL) /*!< CTIMER STMINTEN: COMPARED (Bit 3) */ +#define CTIMER_STMINTEN_COMPARED_Msk (0x8UL) /*!< CTIMER STMINTEN: COMPARED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREC_Pos (2UL) /*!< CTIMER STMINTEN: COMPAREC (Bit 2) */ +#define CTIMER_STMINTEN_COMPAREC_Msk (0x4UL) /*!< CTIMER STMINTEN: COMPAREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREB_Pos (1UL) /*!< CTIMER STMINTEN: COMPAREB (Bit 1) */ +#define CTIMER_STMINTEN_COMPAREB_Msk (0x2UL) /*!< CTIMER STMINTEN: COMPAREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTEN_COMPAREA_Pos (0UL) /*!< CTIMER STMINTEN: COMPAREA (Bit 0) */ +#define CTIMER_STMINTEN_COMPAREA_Msk (0x1UL) /*!< CTIMER STMINTEN: COMPAREA (Bitfield-Mask: 0x01) */ +/* ====================================================== STMINTSTAT ======================================================= */ +#define CTIMER_STMINTSTAT_CAPTURED_Pos (12UL) /*!< CTIMER STMINTSTAT: CAPTURED (Bit 12) */ +#define CTIMER_STMINTSTAT_CAPTURED_Msk (0x1000UL) /*!< CTIMER STMINTSTAT: CAPTURED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_CAPTUREC_Pos (11UL) /*!< CTIMER STMINTSTAT: CAPTUREC (Bit 11) */ +#define CTIMER_STMINTSTAT_CAPTUREC_Msk (0x800UL) /*!< CTIMER STMINTSTAT: CAPTUREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_CAPTUREB_Pos (10UL) /*!< CTIMER STMINTSTAT: CAPTUREB (Bit 10) */ +#define CTIMER_STMINTSTAT_CAPTUREB_Msk (0x400UL) /*!< CTIMER STMINTSTAT: CAPTUREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_CAPTUREA_Pos (9UL) /*!< CTIMER STMINTSTAT: CAPTUREA (Bit 9) */ +#define CTIMER_STMINTSTAT_CAPTUREA_Msk (0x200UL) /*!< CTIMER STMINTSTAT: CAPTUREA (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_OVERFLOW_Pos (8UL) /*!< CTIMER STMINTSTAT: OVERFLOW (Bit 8) */ +#define CTIMER_STMINTSTAT_OVERFLOW_Msk (0x100UL) /*!< CTIMER STMINTSTAT: OVERFLOW (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREH_Pos (7UL) /*!< CTIMER STMINTSTAT: COMPAREH (Bit 7) */ +#define CTIMER_STMINTSTAT_COMPAREH_Msk (0x80UL) /*!< CTIMER STMINTSTAT: COMPAREH (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREG_Pos (6UL) /*!< CTIMER STMINTSTAT: COMPAREG (Bit 6) */ +#define CTIMER_STMINTSTAT_COMPAREG_Msk (0x40UL) /*!< CTIMER STMINTSTAT: COMPAREG (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREF_Pos (5UL) /*!< CTIMER STMINTSTAT: COMPAREF (Bit 5) */ +#define CTIMER_STMINTSTAT_COMPAREF_Msk (0x20UL) /*!< CTIMER STMINTSTAT: COMPAREF (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREE_Pos (4UL) /*!< CTIMER STMINTSTAT: COMPAREE (Bit 4) */ +#define CTIMER_STMINTSTAT_COMPAREE_Msk (0x10UL) /*!< CTIMER STMINTSTAT: COMPAREE (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPARED_Pos (3UL) /*!< CTIMER STMINTSTAT: COMPARED (Bit 3) */ +#define CTIMER_STMINTSTAT_COMPARED_Msk (0x8UL) /*!< CTIMER STMINTSTAT: COMPARED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREC_Pos (2UL) /*!< CTIMER STMINTSTAT: COMPAREC (Bit 2) */ +#define CTIMER_STMINTSTAT_COMPAREC_Msk (0x4UL) /*!< CTIMER STMINTSTAT: COMPAREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREB_Pos (1UL) /*!< CTIMER STMINTSTAT: COMPAREB (Bit 1) */ +#define CTIMER_STMINTSTAT_COMPAREB_Msk (0x2UL) /*!< CTIMER STMINTSTAT: COMPAREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSTAT_COMPAREA_Pos (0UL) /*!< CTIMER STMINTSTAT: COMPAREA (Bit 0) */ +#define CTIMER_STMINTSTAT_COMPAREA_Msk (0x1UL) /*!< CTIMER STMINTSTAT: COMPAREA (Bitfield-Mask: 0x01) */ +/* ======================================================= STMINTCLR ======================================================= */ +#define CTIMER_STMINTCLR_CAPTURED_Pos (12UL) /*!< CTIMER STMINTCLR: CAPTURED (Bit 12) */ +#define CTIMER_STMINTCLR_CAPTURED_Msk (0x1000UL) /*!< CTIMER STMINTCLR: CAPTURED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_CAPTUREC_Pos (11UL) /*!< CTIMER STMINTCLR: CAPTUREC (Bit 11) */ +#define CTIMER_STMINTCLR_CAPTUREC_Msk (0x800UL) /*!< CTIMER STMINTCLR: CAPTUREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_CAPTUREB_Pos (10UL) /*!< CTIMER STMINTCLR: CAPTUREB (Bit 10) */ +#define CTIMER_STMINTCLR_CAPTUREB_Msk (0x400UL) /*!< CTIMER STMINTCLR: CAPTUREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_CAPTUREA_Pos (9UL) /*!< CTIMER STMINTCLR: CAPTUREA (Bit 9) */ +#define CTIMER_STMINTCLR_CAPTUREA_Msk (0x200UL) /*!< CTIMER STMINTCLR: CAPTUREA (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_OVERFLOW_Pos (8UL) /*!< CTIMER STMINTCLR: OVERFLOW (Bit 8) */ +#define CTIMER_STMINTCLR_OVERFLOW_Msk (0x100UL) /*!< CTIMER STMINTCLR: OVERFLOW (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREH_Pos (7UL) /*!< CTIMER STMINTCLR: COMPAREH (Bit 7) */ +#define CTIMER_STMINTCLR_COMPAREH_Msk (0x80UL) /*!< CTIMER STMINTCLR: COMPAREH (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREG_Pos (6UL) /*!< CTIMER STMINTCLR: COMPAREG (Bit 6) */ +#define CTIMER_STMINTCLR_COMPAREG_Msk (0x40UL) /*!< CTIMER STMINTCLR: COMPAREG (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREF_Pos (5UL) /*!< CTIMER STMINTCLR: COMPAREF (Bit 5) */ +#define CTIMER_STMINTCLR_COMPAREF_Msk (0x20UL) /*!< CTIMER STMINTCLR: COMPAREF (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREE_Pos (4UL) /*!< CTIMER STMINTCLR: COMPAREE (Bit 4) */ +#define CTIMER_STMINTCLR_COMPAREE_Msk (0x10UL) /*!< CTIMER STMINTCLR: COMPAREE (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPARED_Pos (3UL) /*!< CTIMER STMINTCLR: COMPARED (Bit 3) */ +#define CTIMER_STMINTCLR_COMPARED_Msk (0x8UL) /*!< CTIMER STMINTCLR: COMPARED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREC_Pos (2UL) /*!< CTIMER STMINTCLR: COMPAREC (Bit 2) */ +#define CTIMER_STMINTCLR_COMPAREC_Msk (0x4UL) /*!< CTIMER STMINTCLR: COMPAREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREB_Pos (1UL) /*!< CTIMER STMINTCLR: COMPAREB (Bit 1) */ +#define CTIMER_STMINTCLR_COMPAREB_Msk (0x2UL) /*!< CTIMER STMINTCLR: COMPAREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTCLR_COMPAREA_Pos (0UL) /*!< CTIMER STMINTCLR: COMPAREA (Bit 0) */ +#define CTIMER_STMINTCLR_COMPAREA_Msk (0x1UL) /*!< CTIMER STMINTCLR: COMPAREA (Bitfield-Mask: 0x01) */ +/* ======================================================= STMINTSET ======================================================= */ +#define CTIMER_STMINTSET_CAPTURED_Pos (12UL) /*!< CTIMER STMINTSET: CAPTURED (Bit 12) */ +#define CTIMER_STMINTSET_CAPTURED_Msk (0x1000UL) /*!< CTIMER STMINTSET: CAPTURED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_CAPTUREC_Pos (11UL) /*!< CTIMER STMINTSET: CAPTUREC (Bit 11) */ +#define CTIMER_STMINTSET_CAPTUREC_Msk (0x800UL) /*!< CTIMER STMINTSET: CAPTUREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_CAPTUREB_Pos (10UL) /*!< CTIMER STMINTSET: CAPTUREB (Bit 10) */ +#define CTIMER_STMINTSET_CAPTUREB_Msk (0x400UL) /*!< CTIMER STMINTSET: CAPTUREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_CAPTUREA_Pos (9UL) /*!< CTIMER STMINTSET: CAPTUREA (Bit 9) */ +#define CTIMER_STMINTSET_CAPTUREA_Msk (0x200UL) /*!< CTIMER STMINTSET: CAPTUREA (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_OVERFLOW_Pos (8UL) /*!< CTIMER STMINTSET: OVERFLOW (Bit 8) */ +#define CTIMER_STMINTSET_OVERFLOW_Msk (0x100UL) /*!< CTIMER STMINTSET: OVERFLOW (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREH_Pos (7UL) /*!< CTIMER STMINTSET: COMPAREH (Bit 7) */ +#define CTIMER_STMINTSET_COMPAREH_Msk (0x80UL) /*!< CTIMER STMINTSET: COMPAREH (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREG_Pos (6UL) /*!< CTIMER STMINTSET: COMPAREG (Bit 6) */ +#define CTIMER_STMINTSET_COMPAREG_Msk (0x40UL) /*!< CTIMER STMINTSET: COMPAREG (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREF_Pos (5UL) /*!< CTIMER STMINTSET: COMPAREF (Bit 5) */ +#define CTIMER_STMINTSET_COMPAREF_Msk (0x20UL) /*!< CTIMER STMINTSET: COMPAREF (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREE_Pos (4UL) /*!< CTIMER STMINTSET: COMPAREE (Bit 4) */ +#define CTIMER_STMINTSET_COMPAREE_Msk (0x10UL) /*!< CTIMER STMINTSET: COMPAREE (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPARED_Pos (3UL) /*!< CTIMER STMINTSET: COMPARED (Bit 3) */ +#define CTIMER_STMINTSET_COMPARED_Msk (0x8UL) /*!< CTIMER STMINTSET: COMPARED (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREC_Pos (2UL) /*!< CTIMER STMINTSET: COMPAREC (Bit 2) */ +#define CTIMER_STMINTSET_COMPAREC_Msk (0x4UL) /*!< CTIMER STMINTSET: COMPAREC (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREB_Pos (1UL) /*!< CTIMER STMINTSET: COMPAREB (Bit 1) */ +#define CTIMER_STMINTSET_COMPAREB_Msk (0x2UL) /*!< CTIMER STMINTSET: COMPAREB (Bitfield-Mask: 0x01) */ +#define CTIMER_STMINTSET_COMPAREA_Pos (0UL) /*!< CTIMER STMINTSET: COMPAREA (Bit 0) */ +#define CTIMER_STMINTSET_COMPAREA_Msk (0x1UL) /*!< CTIMER STMINTSET: COMPAREA (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ GPIO ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== PADREGA ======================================================== */ +#define GPIO_PADREGA_PAD3PWRUP_Pos (30UL) /*!< GPIO PADREGA: PAD3PWRUP (Bit 30) */ +#define GPIO_PADREGA_PAD3PWRUP_Msk (0x40000000UL) /*!< GPIO PADREGA: PAD3PWRUP (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD3FNCSEL_Pos (27UL) /*!< GPIO PADREGA: PAD3FNCSEL (Bit 27) */ +#define GPIO_PADREGA_PAD3FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGA: PAD3FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGA_PAD3STRNG_Pos (26UL) /*!< GPIO PADREGA: PAD3STRNG (Bit 26) */ +#define GPIO_PADREGA_PAD3STRNG_Msk (0x4000000UL) /*!< GPIO PADREGA: PAD3STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD3INPEN_Pos (25UL) /*!< GPIO PADREGA: PAD3INPEN (Bit 25) */ +#define GPIO_PADREGA_PAD3INPEN_Msk (0x2000000UL) /*!< GPIO PADREGA: PAD3INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD3PULL_Pos (24UL) /*!< GPIO PADREGA: PAD3PULL (Bit 24) */ +#define GPIO_PADREGA_PAD3PULL_Msk (0x1000000UL) /*!< GPIO PADREGA: PAD3PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD2FNCSEL_Pos (19UL) /*!< GPIO PADREGA: PAD2FNCSEL (Bit 19) */ +#define GPIO_PADREGA_PAD2FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGA: PAD2FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGA_PAD2STRNG_Pos (18UL) /*!< GPIO PADREGA: PAD2STRNG (Bit 18) */ +#define GPIO_PADREGA_PAD2STRNG_Msk (0x40000UL) /*!< GPIO PADREGA: PAD2STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD2INPEN_Pos (17UL) /*!< GPIO PADREGA: PAD2INPEN (Bit 17) */ +#define GPIO_PADREGA_PAD2INPEN_Msk (0x20000UL) /*!< GPIO PADREGA: PAD2INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD2PULL_Pos (16UL) /*!< GPIO PADREGA: PAD2PULL (Bit 16) */ +#define GPIO_PADREGA_PAD2PULL_Msk (0x10000UL) /*!< GPIO PADREGA: PAD2PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD1RSEL_Pos (14UL) /*!< GPIO PADREGA: PAD1RSEL (Bit 14) */ +#define GPIO_PADREGA_PAD1RSEL_Msk (0xc000UL) /*!< GPIO PADREGA: PAD1RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGA_PAD1FNCSEL_Pos (11UL) /*!< GPIO PADREGA: PAD1FNCSEL (Bit 11) */ +#define GPIO_PADREGA_PAD1FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGA: PAD1FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGA_PAD1STRNG_Pos (10UL) /*!< GPIO PADREGA: PAD1STRNG (Bit 10) */ +#define GPIO_PADREGA_PAD1STRNG_Msk (0x400UL) /*!< GPIO PADREGA: PAD1STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD1INPEN_Pos (9UL) /*!< GPIO PADREGA: PAD1INPEN (Bit 9) */ +#define GPIO_PADREGA_PAD1INPEN_Msk (0x200UL) /*!< GPIO PADREGA: PAD1INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD1PULL_Pos (8UL) /*!< GPIO PADREGA: PAD1PULL (Bit 8) */ +#define GPIO_PADREGA_PAD1PULL_Msk (0x100UL) /*!< GPIO PADREGA: PAD1PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD0RSEL_Pos (6UL) /*!< GPIO PADREGA: PAD0RSEL (Bit 6) */ +#define GPIO_PADREGA_PAD0RSEL_Msk (0xc0UL) /*!< GPIO PADREGA: PAD0RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGA_PAD0FNCSEL_Pos (3UL) /*!< GPIO PADREGA: PAD0FNCSEL (Bit 3) */ +#define GPIO_PADREGA_PAD0FNCSEL_Msk (0x38UL) /*!< GPIO PADREGA: PAD0FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGA_PAD0STRNG_Pos (2UL) /*!< GPIO PADREGA: PAD0STRNG (Bit 2) */ +#define GPIO_PADREGA_PAD0STRNG_Msk (0x4UL) /*!< GPIO PADREGA: PAD0STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD0INPEN_Pos (1UL) /*!< GPIO PADREGA: PAD0INPEN (Bit 1) */ +#define GPIO_PADREGA_PAD0INPEN_Msk (0x2UL) /*!< GPIO PADREGA: PAD0INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGA_PAD0PULL_Pos (0UL) /*!< GPIO PADREGA: PAD0PULL (Bit 0) */ +#define GPIO_PADREGA_PAD0PULL_Msk (0x1UL) /*!< GPIO PADREGA: PAD0PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGB ======================================================== */ +#define GPIO_PADREGB_PAD7FNCSEL_Pos (27UL) /*!< GPIO PADREGB: PAD7FNCSEL (Bit 27) */ +#define GPIO_PADREGB_PAD7FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGB: PAD7FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGB_PAD7STRNG_Pos (26UL) /*!< GPIO PADREGB: PAD7STRNG (Bit 26) */ +#define GPIO_PADREGB_PAD7STRNG_Msk (0x4000000UL) /*!< GPIO PADREGB: PAD7STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD7INPEN_Pos (25UL) /*!< GPIO PADREGB: PAD7INPEN (Bit 25) */ +#define GPIO_PADREGB_PAD7INPEN_Msk (0x2000000UL) /*!< GPIO PADREGB: PAD7INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD7PULL_Pos (24UL) /*!< GPIO PADREGB: PAD7PULL (Bit 24) */ +#define GPIO_PADREGB_PAD7PULL_Msk (0x1000000UL) /*!< GPIO PADREGB: PAD7PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD6RSEL_Pos (22UL) /*!< GPIO PADREGB: PAD6RSEL (Bit 22) */ +#define GPIO_PADREGB_PAD6RSEL_Msk (0xc00000UL) /*!< GPIO PADREGB: PAD6RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGB_PAD6FNCSEL_Pos (19UL) /*!< GPIO PADREGB: PAD6FNCSEL (Bit 19) */ +#define GPIO_PADREGB_PAD6FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGB: PAD6FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGB_PAD6STRNG_Pos (18UL) /*!< GPIO PADREGB: PAD6STRNG (Bit 18) */ +#define GPIO_PADREGB_PAD6STRNG_Msk (0x40000UL) /*!< GPIO PADREGB: PAD6STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD6INPEN_Pos (17UL) /*!< GPIO PADREGB: PAD6INPEN (Bit 17) */ +#define GPIO_PADREGB_PAD6INPEN_Msk (0x20000UL) /*!< GPIO PADREGB: PAD6INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD6PULL_Pos (16UL) /*!< GPIO PADREGB: PAD6PULL (Bit 16) */ +#define GPIO_PADREGB_PAD6PULL_Msk (0x10000UL) /*!< GPIO PADREGB: PAD6PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD5RSEL_Pos (14UL) /*!< GPIO PADREGB: PAD5RSEL (Bit 14) */ +#define GPIO_PADREGB_PAD5RSEL_Msk (0xc000UL) /*!< GPIO PADREGB: PAD5RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGB_PAD5FNCSEL_Pos (11UL) /*!< GPIO PADREGB: PAD5FNCSEL (Bit 11) */ +#define GPIO_PADREGB_PAD5FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGB: PAD5FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGB_PAD5STRNG_Pos (10UL) /*!< GPIO PADREGB: PAD5STRNG (Bit 10) */ +#define GPIO_PADREGB_PAD5STRNG_Msk (0x400UL) /*!< GPIO PADREGB: PAD5STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD5INPEN_Pos (9UL) /*!< GPIO PADREGB: PAD5INPEN (Bit 9) */ +#define GPIO_PADREGB_PAD5INPEN_Msk (0x200UL) /*!< GPIO PADREGB: PAD5INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD5PULL_Pos (8UL) /*!< GPIO PADREGB: PAD5PULL (Bit 8) */ +#define GPIO_PADREGB_PAD5PULL_Msk (0x100UL) /*!< GPIO PADREGB: PAD5PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD4FNCSEL_Pos (3UL) /*!< GPIO PADREGB: PAD4FNCSEL (Bit 3) */ +#define GPIO_PADREGB_PAD4FNCSEL_Msk (0x38UL) /*!< GPIO PADREGB: PAD4FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGB_PAD4STRNG_Pos (2UL) /*!< GPIO PADREGB: PAD4STRNG (Bit 2) */ +#define GPIO_PADREGB_PAD4STRNG_Msk (0x4UL) /*!< GPIO PADREGB: PAD4STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD4INPEN_Pos (1UL) /*!< GPIO PADREGB: PAD4INPEN (Bit 1) */ +#define GPIO_PADREGB_PAD4INPEN_Msk (0x2UL) /*!< GPIO PADREGB: PAD4INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGB_PAD4PULL_Pos (0UL) /*!< GPIO PADREGB: PAD4PULL (Bit 0) */ +#define GPIO_PADREGB_PAD4PULL_Msk (0x1UL) /*!< GPIO PADREGB: PAD4PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGC ======================================================== */ +#define GPIO_PADREGC_PAD11FNCSEL_Pos (27UL) /*!< GPIO PADREGC: PAD11FNCSEL (Bit 27) */ +#define GPIO_PADREGC_PAD11FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGC: PAD11FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGC_PAD11STRNG_Pos (26UL) /*!< GPIO PADREGC: PAD11STRNG (Bit 26) */ +#define GPIO_PADREGC_PAD11STRNG_Msk (0x4000000UL) /*!< GPIO PADREGC: PAD11STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD11INPEN_Pos (25UL) /*!< GPIO PADREGC: PAD11INPEN (Bit 25) */ +#define GPIO_PADREGC_PAD11INPEN_Msk (0x2000000UL) /*!< GPIO PADREGC: PAD11INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD11PULL_Pos (24UL) /*!< GPIO PADREGC: PAD11PULL (Bit 24) */ +#define GPIO_PADREGC_PAD11PULL_Msk (0x1000000UL) /*!< GPIO PADREGC: PAD11PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD10FNCSEL_Pos (19UL) /*!< GPIO PADREGC: PAD10FNCSEL (Bit 19) */ +#define GPIO_PADREGC_PAD10FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGC: PAD10FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGC_PAD10STRNG_Pos (18UL) /*!< GPIO PADREGC: PAD10STRNG (Bit 18) */ +#define GPIO_PADREGC_PAD10STRNG_Msk (0x40000UL) /*!< GPIO PADREGC: PAD10STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD10INPEN_Pos (17UL) /*!< GPIO PADREGC: PAD10INPEN (Bit 17) */ +#define GPIO_PADREGC_PAD10INPEN_Msk (0x20000UL) /*!< GPIO PADREGC: PAD10INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD10PULL_Pos (16UL) /*!< GPIO PADREGC: PAD10PULL (Bit 16) */ +#define GPIO_PADREGC_PAD10PULL_Msk (0x10000UL) /*!< GPIO PADREGC: PAD10PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD9RSEL_Pos (14UL) /*!< GPIO PADREGC: PAD9RSEL (Bit 14) */ +#define GPIO_PADREGC_PAD9RSEL_Msk (0xc000UL) /*!< GPIO PADREGC: PAD9RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGC_PAD9FNCSEL_Pos (11UL) /*!< GPIO PADREGC: PAD9FNCSEL (Bit 11) */ +#define GPIO_PADREGC_PAD9FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGC: PAD9FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGC_PAD9STRNG_Pos (10UL) /*!< GPIO PADREGC: PAD9STRNG (Bit 10) */ +#define GPIO_PADREGC_PAD9STRNG_Msk (0x400UL) /*!< GPIO PADREGC: PAD9STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD9INPEN_Pos (9UL) /*!< GPIO PADREGC: PAD9INPEN (Bit 9) */ +#define GPIO_PADREGC_PAD9INPEN_Msk (0x200UL) /*!< GPIO PADREGC: PAD9INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD9PULL_Pos (8UL) /*!< GPIO PADREGC: PAD9PULL (Bit 8) */ +#define GPIO_PADREGC_PAD9PULL_Msk (0x100UL) /*!< GPIO PADREGC: PAD9PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD8RSEL_Pos (6UL) /*!< GPIO PADREGC: PAD8RSEL (Bit 6) */ +#define GPIO_PADREGC_PAD8RSEL_Msk (0xc0UL) /*!< GPIO PADREGC: PAD8RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGC_PAD8FNCSEL_Pos (3UL) /*!< GPIO PADREGC: PAD8FNCSEL (Bit 3) */ +#define GPIO_PADREGC_PAD8FNCSEL_Msk (0x38UL) /*!< GPIO PADREGC: PAD8FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGC_PAD8STRNG_Pos (2UL) /*!< GPIO PADREGC: PAD8STRNG (Bit 2) */ +#define GPIO_PADREGC_PAD8STRNG_Msk (0x4UL) /*!< GPIO PADREGC: PAD8STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD8INPEN_Pos (1UL) /*!< GPIO PADREGC: PAD8INPEN (Bit 1) */ +#define GPIO_PADREGC_PAD8INPEN_Msk (0x2UL) /*!< GPIO PADREGC: PAD8INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGC_PAD8PULL_Pos (0UL) /*!< GPIO PADREGC: PAD8PULL (Bit 0) */ +#define GPIO_PADREGC_PAD8PULL_Msk (0x1UL) /*!< GPIO PADREGC: PAD8PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGD ======================================================== */ +#define GPIO_PADREGD_PAD15FNCSEL_Pos (27UL) /*!< GPIO PADREGD: PAD15FNCSEL (Bit 27) */ +#define GPIO_PADREGD_PAD15FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGD: PAD15FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGD_PAD15STRNG_Pos (26UL) /*!< GPIO PADREGD: PAD15STRNG (Bit 26) */ +#define GPIO_PADREGD_PAD15STRNG_Msk (0x4000000UL) /*!< GPIO PADREGD: PAD15STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD15INPEN_Pos (25UL) /*!< GPIO PADREGD: PAD15INPEN (Bit 25) */ +#define GPIO_PADREGD_PAD15INPEN_Msk (0x2000000UL) /*!< GPIO PADREGD: PAD15INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD15PULL_Pos (24UL) /*!< GPIO PADREGD: PAD15PULL (Bit 24) */ +#define GPIO_PADREGD_PAD15PULL_Msk (0x1000000UL) /*!< GPIO PADREGD: PAD15PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD14FNCSEL_Pos (19UL) /*!< GPIO PADREGD: PAD14FNCSEL (Bit 19) */ +#define GPIO_PADREGD_PAD14FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGD: PAD14FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGD_PAD14STRNG_Pos (18UL) /*!< GPIO PADREGD: PAD14STRNG (Bit 18) */ +#define GPIO_PADREGD_PAD14STRNG_Msk (0x40000UL) /*!< GPIO PADREGD: PAD14STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD14INPEN_Pos (17UL) /*!< GPIO PADREGD: PAD14INPEN (Bit 17) */ +#define GPIO_PADREGD_PAD14INPEN_Msk (0x20000UL) /*!< GPIO PADREGD: PAD14INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD14PULL_Pos (16UL) /*!< GPIO PADREGD: PAD14PULL (Bit 16) */ +#define GPIO_PADREGD_PAD14PULL_Msk (0x10000UL) /*!< GPIO PADREGD: PAD14PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD13FNCSEL_Pos (11UL) /*!< GPIO PADREGD: PAD13FNCSEL (Bit 11) */ +#define GPIO_PADREGD_PAD13FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGD: PAD13FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGD_PAD13STRNG_Pos (10UL) /*!< GPIO PADREGD: PAD13STRNG (Bit 10) */ +#define GPIO_PADREGD_PAD13STRNG_Msk (0x400UL) /*!< GPIO PADREGD: PAD13STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD13INPEN_Pos (9UL) /*!< GPIO PADREGD: PAD13INPEN (Bit 9) */ +#define GPIO_PADREGD_PAD13INPEN_Msk (0x200UL) /*!< GPIO PADREGD: PAD13INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD13PULL_Pos (8UL) /*!< GPIO PADREGD: PAD13PULL (Bit 8) */ +#define GPIO_PADREGD_PAD13PULL_Msk (0x100UL) /*!< GPIO PADREGD: PAD13PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD12FNCSEL_Pos (3UL) /*!< GPIO PADREGD: PAD12FNCSEL (Bit 3) */ +#define GPIO_PADREGD_PAD12FNCSEL_Msk (0x38UL) /*!< GPIO PADREGD: PAD12FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGD_PAD12STRNG_Pos (2UL) /*!< GPIO PADREGD: PAD12STRNG (Bit 2) */ +#define GPIO_PADREGD_PAD12STRNG_Msk (0x4UL) /*!< GPIO PADREGD: PAD12STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD12INPEN_Pos (1UL) /*!< GPIO PADREGD: PAD12INPEN (Bit 1) */ +#define GPIO_PADREGD_PAD12INPEN_Msk (0x2UL) /*!< GPIO PADREGD: PAD12INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGD_PAD12PULL_Pos (0UL) /*!< GPIO PADREGD: PAD12PULL (Bit 0) */ +#define GPIO_PADREGD_PAD12PULL_Msk (0x1UL) /*!< GPIO PADREGD: PAD12PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGE ======================================================== */ +#define GPIO_PADREGE_PAD19FNCSEL_Pos (27UL) /*!< GPIO PADREGE: PAD19FNCSEL (Bit 27) */ +#define GPIO_PADREGE_PAD19FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGE: PAD19FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGE_PAD19STRNG_Pos (26UL) /*!< GPIO PADREGE: PAD19STRNG (Bit 26) */ +#define GPIO_PADREGE_PAD19STRNG_Msk (0x4000000UL) /*!< GPIO PADREGE: PAD19STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD19INPEN_Pos (25UL) /*!< GPIO PADREGE: PAD19INPEN (Bit 25) */ +#define GPIO_PADREGE_PAD19INPEN_Msk (0x2000000UL) /*!< GPIO PADREGE: PAD19INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD19PULL_Pos (24UL) /*!< GPIO PADREGE: PAD19PULL (Bit 24) */ +#define GPIO_PADREGE_PAD19PULL_Msk (0x1000000UL) /*!< GPIO PADREGE: PAD19PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD18FNCSEL_Pos (19UL) /*!< GPIO PADREGE: PAD18FNCSEL (Bit 19) */ +#define GPIO_PADREGE_PAD18FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGE: PAD18FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGE_PAD18STRNG_Pos (18UL) /*!< GPIO PADREGE: PAD18STRNG (Bit 18) */ +#define GPIO_PADREGE_PAD18STRNG_Msk (0x40000UL) /*!< GPIO PADREGE: PAD18STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD18INPEN_Pos (17UL) /*!< GPIO PADREGE: PAD18INPEN (Bit 17) */ +#define GPIO_PADREGE_PAD18INPEN_Msk (0x20000UL) /*!< GPIO PADREGE: PAD18INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD18PULL_Pos (16UL) /*!< GPIO PADREGE: PAD18PULL (Bit 16) */ +#define GPIO_PADREGE_PAD18PULL_Msk (0x10000UL) /*!< GPIO PADREGE: PAD18PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD17FNCSEL_Pos (11UL) /*!< GPIO PADREGE: PAD17FNCSEL (Bit 11) */ +#define GPIO_PADREGE_PAD17FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGE: PAD17FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGE_PAD17STRNG_Pos (10UL) /*!< GPIO PADREGE: PAD17STRNG (Bit 10) */ +#define GPIO_PADREGE_PAD17STRNG_Msk (0x400UL) /*!< GPIO PADREGE: PAD17STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD17INPEN_Pos (9UL) /*!< GPIO PADREGE: PAD17INPEN (Bit 9) */ +#define GPIO_PADREGE_PAD17INPEN_Msk (0x200UL) /*!< GPIO PADREGE: PAD17INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD17PULL_Pos (8UL) /*!< GPIO PADREGE: PAD17PULL (Bit 8) */ +#define GPIO_PADREGE_PAD17PULL_Msk (0x100UL) /*!< GPIO PADREGE: PAD17PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD16FNCSEL_Pos (3UL) /*!< GPIO PADREGE: PAD16FNCSEL (Bit 3) */ +#define GPIO_PADREGE_PAD16FNCSEL_Msk (0x38UL) /*!< GPIO PADREGE: PAD16FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGE_PAD16STRNG_Pos (2UL) /*!< GPIO PADREGE: PAD16STRNG (Bit 2) */ +#define GPIO_PADREGE_PAD16STRNG_Msk (0x4UL) /*!< GPIO PADREGE: PAD16STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD16INPEN_Pos (1UL) /*!< GPIO PADREGE: PAD16INPEN (Bit 1) */ +#define GPIO_PADREGE_PAD16INPEN_Msk (0x2UL) /*!< GPIO PADREGE: PAD16INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGE_PAD16PULL_Pos (0UL) /*!< GPIO PADREGE: PAD16PULL (Bit 0) */ +#define GPIO_PADREGE_PAD16PULL_Msk (0x1UL) /*!< GPIO PADREGE: PAD16PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGF ======================================================== */ +#define GPIO_PADREGF_PAD23FNCSEL_Pos (27UL) /*!< GPIO PADREGF: PAD23FNCSEL (Bit 27) */ +#define GPIO_PADREGF_PAD23FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGF: PAD23FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGF_PAD23STRNG_Pos (26UL) /*!< GPIO PADREGF: PAD23STRNG (Bit 26) */ +#define GPIO_PADREGF_PAD23STRNG_Msk (0x4000000UL) /*!< GPIO PADREGF: PAD23STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD23INPEN_Pos (25UL) /*!< GPIO PADREGF: PAD23INPEN (Bit 25) */ +#define GPIO_PADREGF_PAD23INPEN_Msk (0x2000000UL) /*!< GPIO PADREGF: PAD23INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD23PULL_Pos (24UL) /*!< GPIO PADREGF: PAD23PULL (Bit 24) */ +#define GPIO_PADREGF_PAD23PULL_Msk (0x1000000UL) /*!< GPIO PADREGF: PAD23PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD22FNCSEL_Pos (19UL) /*!< GPIO PADREGF: PAD22FNCSEL (Bit 19) */ +#define GPIO_PADREGF_PAD22FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGF: PAD22FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGF_PAD22STRNG_Pos (18UL) /*!< GPIO PADREGF: PAD22STRNG (Bit 18) */ +#define GPIO_PADREGF_PAD22STRNG_Msk (0x40000UL) /*!< GPIO PADREGF: PAD22STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD22INPEN_Pos (17UL) /*!< GPIO PADREGF: PAD22INPEN (Bit 17) */ +#define GPIO_PADREGF_PAD22INPEN_Msk (0x20000UL) /*!< GPIO PADREGF: PAD22INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD22PULL_Pos (16UL) /*!< GPIO PADREGF: PAD22PULL (Bit 16) */ +#define GPIO_PADREGF_PAD22PULL_Msk (0x10000UL) /*!< GPIO PADREGF: PAD22PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD21FNCSEL_Pos (11UL) /*!< GPIO PADREGF: PAD21FNCSEL (Bit 11) */ +#define GPIO_PADREGF_PAD21FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGF: PAD21FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGF_PAD21STRNG_Pos (10UL) /*!< GPIO PADREGF: PAD21STRNG (Bit 10) */ +#define GPIO_PADREGF_PAD21STRNG_Msk (0x400UL) /*!< GPIO PADREGF: PAD21STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD21INPEN_Pos (9UL) /*!< GPIO PADREGF: PAD21INPEN (Bit 9) */ +#define GPIO_PADREGF_PAD21INPEN_Msk (0x200UL) /*!< GPIO PADREGF: PAD21INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD21PULL_Pos (8UL) /*!< GPIO PADREGF: PAD21PULL (Bit 8) */ +#define GPIO_PADREGF_PAD21PULL_Msk (0x100UL) /*!< GPIO PADREGF: PAD21PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD20FNCSEL_Pos (3UL) /*!< GPIO PADREGF: PAD20FNCSEL (Bit 3) */ +#define GPIO_PADREGF_PAD20FNCSEL_Msk (0x38UL) /*!< GPIO PADREGF: PAD20FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGF_PAD20STRNG_Pos (2UL) /*!< GPIO PADREGF: PAD20STRNG (Bit 2) */ +#define GPIO_PADREGF_PAD20STRNG_Msk (0x4UL) /*!< GPIO PADREGF: PAD20STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD20INPEN_Pos (1UL) /*!< GPIO PADREGF: PAD20INPEN (Bit 1) */ +#define GPIO_PADREGF_PAD20INPEN_Msk (0x2UL) /*!< GPIO PADREGF: PAD20INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGF_PAD20PULL_Pos (0UL) /*!< GPIO PADREGF: PAD20PULL (Bit 0) */ +#define GPIO_PADREGF_PAD20PULL_Msk (0x1UL) /*!< GPIO PADREGF: PAD20PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGG ======================================================== */ +#define GPIO_PADREGG_PAD27RSEL_Pos (30UL) /*!< GPIO PADREGG: PAD27RSEL (Bit 30) */ +#define GPIO_PADREGG_PAD27RSEL_Msk (0xc0000000UL) /*!< GPIO PADREGG: PAD27RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGG_PAD27FNCSEL_Pos (27UL) /*!< GPIO PADREGG: PAD27FNCSEL (Bit 27) */ +#define GPIO_PADREGG_PAD27FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGG: PAD27FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGG_PAD27STRNG_Pos (26UL) /*!< GPIO PADREGG: PAD27STRNG (Bit 26) */ +#define GPIO_PADREGG_PAD27STRNG_Msk (0x4000000UL) /*!< GPIO PADREGG: PAD27STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD27INPEN_Pos (25UL) /*!< GPIO PADREGG: PAD27INPEN (Bit 25) */ +#define GPIO_PADREGG_PAD27INPEN_Msk (0x2000000UL) /*!< GPIO PADREGG: PAD27INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD27PULL_Pos (24UL) /*!< GPIO PADREGG: PAD27PULL (Bit 24) */ +#define GPIO_PADREGG_PAD27PULL_Msk (0x1000000UL) /*!< GPIO PADREGG: PAD27PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD26FNCSEL_Pos (19UL) /*!< GPIO PADREGG: PAD26FNCSEL (Bit 19) */ +#define GPIO_PADREGG_PAD26FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGG: PAD26FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGG_PAD26STRNG_Pos (18UL) /*!< GPIO PADREGG: PAD26STRNG (Bit 18) */ +#define GPIO_PADREGG_PAD26STRNG_Msk (0x40000UL) /*!< GPIO PADREGG: PAD26STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD26INPEN_Pos (17UL) /*!< GPIO PADREGG: PAD26INPEN (Bit 17) */ +#define GPIO_PADREGG_PAD26INPEN_Msk (0x20000UL) /*!< GPIO PADREGG: PAD26INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD26PULL_Pos (16UL) /*!< GPIO PADREGG: PAD26PULL (Bit 16) */ +#define GPIO_PADREGG_PAD26PULL_Msk (0x10000UL) /*!< GPIO PADREGG: PAD26PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD25RSEL_Pos (14UL) /*!< GPIO PADREGG: PAD25RSEL (Bit 14) */ +#define GPIO_PADREGG_PAD25RSEL_Msk (0xc000UL) /*!< GPIO PADREGG: PAD25RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGG_PAD25FNCSEL_Pos (11UL) /*!< GPIO PADREGG: PAD25FNCSEL (Bit 11) */ +#define GPIO_PADREGG_PAD25FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGG: PAD25FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGG_PAD25STRNG_Pos (10UL) /*!< GPIO PADREGG: PAD25STRNG (Bit 10) */ +#define GPIO_PADREGG_PAD25STRNG_Msk (0x400UL) /*!< GPIO PADREGG: PAD25STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD25INPEN_Pos (9UL) /*!< GPIO PADREGG: PAD25INPEN (Bit 9) */ +#define GPIO_PADREGG_PAD25INPEN_Msk (0x200UL) /*!< GPIO PADREGG: PAD25INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD25PULL_Pos (8UL) /*!< GPIO PADREGG: PAD25PULL (Bit 8) */ +#define GPIO_PADREGG_PAD25PULL_Msk (0x100UL) /*!< GPIO PADREGG: PAD25PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD24FNCSEL_Pos (3UL) /*!< GPIO PADREGG: PAD24FNCSEL (Bit 3) */ +#define GPIO_PADREGG_PAD24FNCSEL_Msk (0x38UL) /*!< GPIO PADREGG: PAD24FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGG_PAD24STRNG_Pos (2UL) /*!< GPIO PADREGG: PAD24STRNG (Bit 2) */ +#define GPIO_PADREGG_PAD24STRNG_Msk (0x4UL) /*!< GPIO PADREGG: PAD24STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD24INPEN_Pos (1UL) /*!< GPIO PADREGG: PAD24INPEN (Bit 1) */ +#define GPIO_PADREGG_PAD24INPEN_Msk (0x2UL) /*!< GPIO PADREGG: PAD24INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGG_PAD24PULL_Pos (0UL) /*!< GPIO PADREGG: PAD24PULL (Bit 0) */ +#define GPIO_PADREGG_PAD24PULL_Msk (0x1UL) /*!< GPIO PADREGG: PAD24PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGH ======================================================== */ +#define GPIO_PADREGH_PAD31FNCSEL_Pos (27UL) /*!< GPIO PADREGH: PAD31FNCSEL (Bit 27) */ +#define GPIO_PADREGH_PAD31FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGH: PAD31FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGH_PAD31STRNG_Pos (26UL) /*!< GPIO PADREGH: PAD31STRNG (Bit 26) */ +#define GPIO_PADREGH_PAD31STRNG_Msk (0x4000000UL) /*!< GPIO PADREGH: PAD31STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD31INPEN_Pos (25UL) /*!< GPIO PADREGH: PAD31INPEN (Bit 25) */ +#define GPIO_PADREGH_PAD31INPEN_Msk (0x2000000UL) /*!< GPIO PADREGH: PAD31INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD31PULL_Pos (24UL) /*!< GPIO PADREGH: PAD31PULL (Bit 24) */ +#define GPIO_PADREGH_PAD31PULL_Msk (0x1000000UL) /*!< GPIO PADREGH: PAD31PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD30FNCSEL_Pos (19UL) /*!< GPIO PADREGH: PAD30FNCSEL (Bit 19) */ +#define GPIO_PADREGH_PAD30FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGH: PAD30FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGH_PAD30STRNG_Pos (18UL) /*!< GPIO PADREGH: PAD30STRNG (Bit 18) */ +#define GPIO_PADREGH_PAD30STRNG_Msk (0x40000UL) /*!< GPIO PADREGH: PAD30STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD30INPEN_Pos (17UL) /*!< GPIO PADREGH: PAD30INPEN (Bit 17) */ +#define GPIO_PADREGH_PAD30INPEN_Msk (0x20000UL) /*!< GPIO PADREGH: PAD30INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD30PULL_Pos (16UL) /*!< GPIO PADREGH: PAD30PULL (Bit 16) */ +#define GPIO_PADREGH_PAD30PULL_Msk (0x10000UL) /*!< GPIO PADREGH: PAD30PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD29FNCSEL_Pos (11UL) /*!< GPIO PADREGH: PAD29FNCSEL (Bit 11) */ +#define GPIO_PADREGH_PAD29FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGH: PAD29FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGH_PAD29STRNG_Pos (10UL) /*!< GPIO PADREGH: PAD29STRNG (Bit 10) */ +#define GPIO_PADREGH_PAD29STRNG_Msk (0x400UL) /*!< GPIO PADREGH: PAD29STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD29INPEN_Pos (9UL) /*!< GPIO PADREGH: PAD29INPEN (Bit 9) */ +#define GPIO_PADREGH_PAD29INPEN_Msk (0x200UL) /*!< GPIO PADREGH: PAD29INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD29PULL_Pos (8UL) /*!< GPIO PADREGH: PAD29PULL (Bit 8) */ +#define GPIO_PADREGH_PAD29PULL_Msk (0x100UL) /*!< GPIO PADREGH: PAD29PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD28FNCSEL_Pos (3UL) /*!< GPIO PADREGH: PAD28FNCSEL (Bit 3) */ +#define GPIO_PADREGH_PAD28FNCSEL_Msk (0x38UL) /*!< GPIO PADREGH: PAD28FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGH_PAD28STRNG_Pos (2UL) /*!< GPIO PADREGH: PAD28STRNG (Bit 2) */ +#define GPIO_PADREGH_PAD28STRNG_Msk (0x4UL) /*!< GPIO PADREGH: PAD28STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD28INPEN_Pos (1UL) /*!< GPIO PADREGH: PAD28INPEN (Bit 1) */ +#define GPIO_PADREGH_PAD28INPEN_Msk (0x2UL) /*!< GPIO PADREGH: PAD28INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGH_PAD28PULL_Pos (0UL) /*!< GPIO PADREGH: PAD28PULL (Bit 0) */ +#define GPIO_PADREGH_PAD28PULL_Msk (0x1UL) /*!< GPIO PADREGH: PAD28PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGI ======================================================== */ +#define GPIO_PADREGI_PAD35FNCSEL_Pos (27UL) /*!< GPIO PADREGI: PAD35FNCSEL (Bit 27) */ +#define GPIO_PADREGI_PAD35FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGI: PAD35FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGI_PAD35STRNG_Pos (26UL) /*!< GPIO PADREGI: PAD35STRNG (Bit 26) */ +#define GPIO_PADREGI_PAD35STRNG_Msk (0x4000000UL) /*!< GPIO PADREGI: PAD35STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD35INPEN_Pos (25UL) /*!< GPIO PADREGI: PAD35INPEN (Bit 25) */ +#define GPIO_PADREGI_PAD35INPEN_Msk (0x2000000UL) /*!< GPIO PADREGI: PAD35INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD35PULL_Pos (24UL) /*!< GPIO PADREGI: PAD35PULL (Bit 24) */ +#define GPIO_PADREGI_PAD35PULL_Msk (0x1000000UL) /*!< GPIO PADREGI: PAD35PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD34FNCSEL_Pos (19UL) /*!< GPIO PADREGI: PAD34FNCSEL (Bit 19) */ +#define GPIO_PADREGI_PAD34FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGI: PAD34FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGI_PAD34STRNG_Pos (18UL) /*!< GPIO PADREGI: PAD34STRNG (Bit 18) */ +#define GPIO_PADREGI_PAD34STRNG_Msk (0x40000UL) /*!< GPIO PADREGI: PAD34STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD34INPEN_Pos (17UL) /*!< GPIO PADREGI: PAD34INPEN (Bit 17) */ +#define GPIO_PADREGI_PAD34INPEN_Msk (0x20000UL) /*!< GPIO PADREGI: PAD34INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD34PULL_Pos (16UL) /*!< GPIO PADREGI: PAD34PULL (Bit 16) */ +#define GPIO_PADREGI_PAD34PULL_Msk (0x10000UL) /*!< GPIO PADREGI: PAD34PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD33FNCSEL_Pos (11UL) /*!< GPIO PADREGI: PAD33FNCSEL (Bit 11) */ +#define GPIO_PADREGI_PAD33FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGI: PAD33FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGI_PAD33STRNG_Pos (10UL) /*!< GPIO PADREGI: PAD33STRNG (Bit 10) */ +#define GPIO_PADREGI_PAD33STRNG_Msk (0x400UL) /*!< GPIO PADREGI: PAD33STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD33INPEN_Pos (9UL) /*!< GPIO PADREGI: PAD33INPEN (Bit 9) */ +#define GPIO_PADREGI_PAD33INPEN_Msk (0x200UL) /*!< GPIO PADREGI: PAD33INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD33PULL_Pos (8UL) /*!< GPIO PADREGI: PAD33PULL (Bit 8) */ +#define GPIO_PADREGI_PAD33PULL_Msk (0x100UL) /*!< GPIO PADREGI: PAD33PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD32FNCSEL_Pos (3UL) /*!< GPIO PADREGI: PAD32FNCSEL (Bit 3) */ +#define GPIO_PADREGI_PAD32FNCSEL_Msk (0x38UL) /*!< GPIO PADREGI: PAD32FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGI_PAD32STRNG_Pos (2UL) /*!< GPIO PADREGI: PAD32STRNG (Bit 2) */ +#define GPIO_PADREGI_PAD32STRNG_Msk (0x4UL) /*!< GPIO PADREGI: PAD32STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD32INPEN_Pos (1UL) /*!< GPIO PADREGI: PAD32INPEN (Bit 1) */ +#define GPIO_PADREGI_PAD32INPEN_Msk (0x2UL) /*!< GPIO PADREGI: PAD32INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGI_PAD32PULL_Pos (0UL) /*!< GPIO PADREGI: PAD32PULL (Bit 0) */ +#define GPIO_PADREGI_PAD32PULL_Msk (0x1UL) /*!< GPIO PADREGI: PAD32PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGJ ======================================================== */ +#define GPIO_PADREGJ_PAD39RSEL_Pos (30UL) /*!< GPIO PADREGJ: PAD39RSEL (Bit 30) */ +#define GPIO_PADREGJ_PAD39RSEL_Msk (0xc0000000UL) /*!< GPIO PADREGJ: PAD39RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGJ_PAD39FNCSEL_Pos (27UL) /*!< GPIO PADREGJ: PAD39FNCSEL (Bit 27) */ +#define GPIO_PADREGJ_PAD39FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGJ: PAD39FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGJ_PAD39STRNG_Pos (26UL) /*!< GPIO PADREGJ: PAD39STRNG (Bit 26) */ +#define GPIO_PADREGJ_PAD39STRNG_Msk (0x4000000UL) /*!< GPIO PADREGJ: PAD39STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD39INPEN_Pos (25UL) /*!< GPIO PADREGJ: PAD39INPEN (Bit 25) */ +#define GPIO_PADREGJ_PAD39INPEN_Msk (0x2000000UL) /*!< GPIO PADREGJ: PAD39INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD39PULL_Pos (24UL) /*!< GPIO PADREGJ: PAD39PULL (Bit 24) */ +#define GPIO_PADREGJ_PAD39PULL_Msk (0x1000000UL) /*!< GPIO PADREGJ: PAD39PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD38FNCSEL_Pos (19UL) /*!< GPIO PADREGJ: PAD38FNCSEL (Bit 19) */ +#define GPIO_PADREGJ_PAD38FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGJ: PAD38FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGJ_PAD38STRNG_Pos (18UL) /*!< GPIO PADREGJ: PAD38STRNG (Bit 18) */ +#define GPIO_PADREGJ_PAD38STRNG_Msk (0x40000UL) /*!< GPIO PADREGJ: PAD38STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD38INPEN_Pos (17UL) /*!< GPIO PADREGJ: PAD38INPEN (Bit 17) */ +#define GPIO_PADREGJ_PAD38INPEN_Msk (0x20000UL) /*!< GPIO PADREGJ: PAD38INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD38PULL_Pos (16UL) /*!< GPIO PADREGJ: PAD38PULL (Bit 16) */ +#define GPIO_PADREGJ_PAD38PULL_Msk (0x10000UL) /*!< GPIO PADREGJ: PAD38PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD37PWRDN_Pos (15UL) /*!< GPIO PADREGJ: PAD37PWRDN (Bit 15) */ +#define GPIO_PADREGJ_PAD37PWRDN_Msk (0x8000UL) /*!< GPIO PADREGJ: PAD37PWRDN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD37FNCSEL_Pos (11UL) /*!< GPIO PADREGJ: PAD37FNCSEL (Bit 11) */ +#define GPIO_PADREGJ_PAD37FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGJ: PAD37FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGJ_PAD37STRNG_Pos (10UL) /*!< GPIO PADREGJ: PAD37STRNG (Bit 10) */ +#define GPIO_PADREGJ_PAD37STRNG_Msk (0x400UL) /*!< GPIO PADREGJ: PAD37STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD37INPEN_Pos (9UL) /*!< GPIO PADREGJ: PAD37INPEN (Bit 9) */ +#define GPIO_PADREGJ_PAD37INPEN_Msk (0x200UL) /*!< GPIO PADREGJ: PAD37INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD37PULL_Pos (8UL) /*!< GPIO PADREGJ: PAD37PULL (Bit 8) */ +#define GPIO_PADREGJ_PAD37PULL_Msk (0x100UL) /*!< GPIO PADREGJ: PAD37PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD36FNCSEL_Pos (3UL) /*!< GPIO PADREGJ: PAD36FNCSEL (Bit 3) */ +#define GPIO_PADREGJ_PAD36FNCSEL_Msk (0x38UL) /*!< GPIO PADREGJ: PAD36FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGJ_PAD36STRNG_Pos (2UL) /*!< GPIO PADREGJ: PAD36STRNG (Bit 2) */ +#define GPIO_PADREGJ_PAD36STRNG_Msk (0x4UL) /*!< GPIO PADREGJ: PAD36STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD36INPEN_Pos (1UL) /*!< GPIO PADREGJ: PAD36INPEN (Bit 1) */ +#define GPIO_PADREGJ_PAD36INPEN_Msk (0x2UL) /*!< GPIO PADREGJ: PAD36INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGJ_PAD36PULL_Pos (0UL) /*!< GPIO PADREGJ: PAD36PULL (Bit 0) */ +#define GPIO_PADREGJ_PAD36PULL_Msk (0x1UL) /*!< GPIO PADREGJ: PAD36PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGK ======================================================== */ +#define GPIO_PADREGK_PAD43RSEL_Pos (30UL) /*!< GPIO PADREGK: PAD43RSEL (Bit 30) */ +#define GPIO_PADREGK_PAD43RSEL_Msk (0xc0000000UL) /*!< GPIO PADREGK: PAD43RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGK_PAD43FNCSEL_Pos (27UL) /*!< GPIO PADREGK: PAD43FNCSEL (Bit 27) */ +#define GPIO_PADREGK_PAD43FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGK: PAD43FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGK_PAD43STRNG_Pos (26UL) /*!< GPIO PADREGK: PAD43STRNG (Bit 26) */ +#define GPIO_PADREGK_PAD43STRNG_Msk (0x4000000UL) /*!< GPIO PADREGK: PAD43STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD43INPEN_Pos (25UL) /*!< GPIO PADREGK: PAD43INPEN (Bit 25) */ +#define GPIO_PADREGK_PAD43INPEN_Msk (0x2000000UL) /*!< GPIO PADREGK: PAD43INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD43PULL_Pos (24UL) /*!< GPIO PADREGK: PAD43PULL (Bit 24) */ +#define GPIO_PADREGK_PAD43PULL_Msk (0x1000000UL) /*!< GPIO PADREGK: PAD43PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD42RSEL_Pos (22UL) /*!< GPIO PADREGK: PAD42RSEL (Bit 22) */ +#define GPIO_PADREGK_PAD42RSEL_Msk (0xc00000UL) /*!< GPIO PADREGK: PAD42RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGK_PAD42FNCSEL_Pos (19UL) /*!< GPIO PADREGK: PAD42FNCSEL (Bit 19) */ +#define GPIO_PADREGK_PAD42FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGK: PAD42FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGK_PAD42STRNG_Pos (18UL) /*!< GPIO PADREGK: PAD42STRNG (Bit 18) */ +#define GPIO_PADREGK_PAD42STRNG_Msk (0x40000UL) /*!< GPIO PADREGK: PAD42STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD42INPEN_Pos (17UL) /*!< GPIO PADREGK: PAD42INPEN (Bit 17) */ +#define GPIO_PADREGK_PAD42INPEN_Msk (0x20000UL) /*!< GPIO PADREGK: PAD42INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD42PULL_Pos (16UL) /*!< GPIO PADREGK: PAD42PULL (Bit 16) */ +#define GPIO_PADREGK_PAD42PULL_Msk (0x10000UL) /*!< GPIO PADREGK: PAD42PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD41PWRDN_Pos (15UL) /*!< GPIO PADREGK: PAD41PWRDN (Bit 15) */ +#define GPIO_PADREGK_PAD41PWRDN_Msk (0x8000UL) /*!< GPIO PADREGK: PAD41PWRDN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD41FNCSEL_Pos (11UL) /*!< GPIO PADREGK: PAD41FNCSEL (Bit 11) */ +#define GPIO_PADREGK_PAD41FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGK: PAD41FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGK_PAD41STRNG_Pos (10UL) /*!< GPIO PADREGK: PAD41STRNG (Bit 10) */ +#define GPIO_PADREGK_PAD41STRNG_Msk (0x400UL) /*!< GPIO PADREGK: PAD41STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD41INPEN_Pos (9UL) /*!< GPIO PADREGK: PAD41INPEN (Bit 9) */ +#define GPIO_PADREGK_PAD41INPEN_Msk (0x200UL) /*!< GPIO PADREGK: PAD41INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD41PULL_Pos (8UL) /*!< GPIO PADREGK: PAD41PULL (Bit 8) */ +#define GPIO_PADREGK_PAD41PULL_Msk (0x100UL) /*!< GPIO PADREGK: PAD41PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD40RSEL_Pos (6UL) /*!< GPIO PADREGK: PAD40RSEL (Bit 6) */ +#define GPIO_PADREGK_PAD40RSEL_Msk (0xc0UL) /*!< GPIO PADREGK: PAD40RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGK_PAD40FNCSEL_Pos (3UL) /*!< GPIO PADREGK: PAD40FNCSEL (Bit 3) */ +#define GPIO_PADREGK_PAD40FNCSEL_Msk (0x38UL) /*!< GPIO PADREGK: PAD40FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGK_PAD40STRNG_Pos (2UL) /*!< GPIO PADREGK: PAD40STRNG (Bit 2) */ +#define GPIO_PADREGK_PAD40STRNG_Msk (0x4UL) /*!< GPIO PADREGK: PAD40STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD40INPEN_Pos (1UL) /*!< GPIO PADREGK: PAD40INPEN (Bit 1) */ +#define GPIO_PADREGK_PAD40INPEN_Msk (0x2UL) /*!< GPIO PADREGK: PAD40INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGK_PAD40PULL_Pos (0UL) /*!< GPIO PADREGK: PAD40PULL (Bit 0) */ +#define GPIO_PADREGK_PAD40PULL_Msk (0x1UL) /*!< GPIO PADREGK: PAD40PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGL ======================================================== */ +#define GPIO_PADREGL_PAD47FNCSEL_Pos (27UL) /*!< GPIO PADREGL: PAD47FNCSEL (Bit 27) */ +#define GPIO_PADREGL_PAD47FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGL: PAD47FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGL_PAD47STRNG_Pos (26UL) /*!< GPIO PADREGL: PAD47STRNG (Bit 26) */ +#define GPIO_PADREGL_PAD47STRNG_Msk (0x4000000UL) /*!< GPIO PADREGL: PAD47STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD47INPEN_Pos (25UL) /*!< GPIO PADREGL: PAD47INPEN (Bit 25) */ +#define GPIO_PADREGL_PAD47INPEN_Msk (0x2000000UL) /*!< GPIO PADREGL: PAD47INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD47PULL_Pos (24UL) /*!< GPIO PADREGL: PAD47PULL (Bit 24) */ +#define GPIO_PADREGL_PAD47PULL_Msk (0x1000000UL) /*!< GPIO PADREGL: PAD47PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD46FNCSEL_Pos (19UL) /*!< GPIO PADREGL: PAD46FNCSEL (Bit 19) */ +#define GPIO_PADREGL_PAD46FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGL: PAD46FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGL_PAD46STRNG_Pos (18UL) /*!< GPIO PADREGL: PAD46STRNG (Bit 18) */ +#define GPIO_PADREGL_PAD46STRNG_Msk (0x40000UL) /*!< GPIO PADREGL: PAD46STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD46INPEN_Pos (17UL) /*!< GPIO PADREGL: PAD46INPEN (Bit 17) */ +#define GPIO_PADREGL_PAD46INPEN_Msk (0x20000UL) /*!< GPIO PADREGL: PAD46INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD46PULL_Pos (16UL) /*!< GPIO PADREGL: PAD46PULL (Bit 16) */ +#define GPIO_PADREGL_PAD46PULL_Msk (0x10000UL) /*!< GPIO PADREGL: PAD46PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD45FNCSEL_Pos (11UL) /*!< GPIO PADREGL: PAD45FNCSEL (Bit 11) */ +#define GPIO_PADREGL_PAD45FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGL: PAD45FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGL_PAD45STRNG_Pos (10UL) /*!< GPIO PADREGL: PAD45STRNG (Bit 10) */ +#define GPIO_PADREGL_PAD45STRNG_Msk (0x400UL) /*!< GPIO PADREGL: PAD45STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD45INPEN_Pos (9UL) /*!< GPIO PADREGL: PAD45INPEN (Bit 9) */ +#define GPIO_PADREGL_PAD45INPEN_Msk (0x200UL) /*!< GPIO PADREGL: PAD45INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD45PULL_Pos (8UL) /*!< GPIO PADREGL: PAD45PULL (Bit 8) */ +#define GPIO_PADREGL_PAD45PULL_Msk (0x100UL) /*!< GPIO PADREGL: PAD45PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD44FNCSEL_Pos (3UL) /*!< GPIO PADREGL: PAD44FNCSEL (Bit 3) */ +#define GPIO_PADREGL_PAD44FNCSEL_Msk (0x38UL) /*!< GPIO PADREGL: PAD44FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGL_PAD44STRNG_Pos (2UL) /*!< GPIO PADREGL: PAD44STRNG (Bit 2) */ +#define GPIO_PADREGL_PAD44STRNG_Msk (0x4UL) /*!< GPIO PADREGL: PAD44STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD44INPEN_Pos (1UL) /*!< GPIO PADREGL: PAD44INPEN (Bit 1) */ +#define GPIO_PADREGL_PAD44INPEN_Msk (0x2UL) /*!< GPIO PADREGL: PAD44INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGL_PAD44PULL_Pos (0UL) /*!< GPIO PADREGL: PAD44PULL (Bit 0) */ +#define GPIO_PADREGL_PAD44PULL_Msk (0x1UL) /*!< GPIO PADREGL: PAD44PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGM ======================================================== */ +#define GPIO_PADREGM_PAD51FNCSEL_Pos (27UL) /*!< GPIO PADREGM: PAD51FNCSEL (Bit 27) */ +#define GPIO_PADREGM_PAD51FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGM: PAD51FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGM_PAD51STRNG_Pos (26UL) /*!< GPIO PADREGM: PAD51STRNG (Bit 26) */ +#define GPIO_PADREGM_PAD51STRNG_Msk (0x4000000UL) /*!< GPIO PADREGM: PAD51STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD51INPEN_Pos (25UL) /*!< GPIO PADREGM: PAD51INPEN (Bit 25) */ +#define GPIO_PADREGM_PAD51INPEN_Msk (0x2000000UL) /*!< GPIO PADREGM: PAD51INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD51PULL_Pos (24UL) /*!< GPIO PADREGM: PAD51PULL (Bit 24) */ +#define GPIO_PADREGM_PAD51PULL_Msk (0x1000000UL) /*!< GPIO PADREGM: PAD51PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD50FNCSEL_Pos (19UL) /*!< GPIO PADREGM: PAD50FNCSEL (Bit 19) */ +#define GPIO_PADREGM_PAD50FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGM: PAD50FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGM_PAD50STRNG_Pos (18UL) /*!< GPIO PADREGM: PAD50STRNG (Bit 18) */ +#define GPIO_PADREGM_PAD50STRNG_Msk (0x40000UL) /*!< GPIO PADREGM: PAD50STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD50INPEN_Pos (17UL) /*!< GPIO PADREGM: PAD50INPEN (Bit 17) */ +#define GPIO_PADREGM_PAD50INPEN_Msk (0x20000UL) /*!< GPIO PADREGM: PAD50INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD50PULL_Pos (16UL) /*!< GPIO PADREGM: PAD50PULL (Bit 16) */ +#define GPIO_PADREGM_PAD50PULL_Msk (0x10000UL) /*!< GPIO PADREGM: PAD50PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD49RSEL_Pos (14UL) /*!< GPIO PADREGM: PAD49RSEL (Bit 14) */ +#define GPIO_PADREGM_PAD49RSEL_Msk (0xc000UL) /*!< GPIO PADREGM: PAD49RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGM_PAD49FNCSEL_Pos (11UL) /*!< GPIO PADREGM: PAD49FNCSEL (Bit 11) */ +#define GPIO_PADREGM_PAD49FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGM: PAD49FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGM_PAD49STRNG_Pos (10UL) /*!< GPIO PADREGM: PAD49STRNG (Bit 10) */ +#define GPIO_PADREGM_PAD49STRNG_Msk (0x400UL) /*!< GPIO PADREGM: PAD49STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD49INPEN_Pos (9UL) /*!< GPIO PADREGM: PAD49INPEN (Bit 9) */ +#define GPIO_PADREGM_PAD49INPEN_Msk (0x200UL) /*!< GPIO PADREGM: PAD49INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD49PULL_Pos (8UL) /*!< GPIO PADREGM: PAD49PULL (Bit 8) */ +#define GPIO_PADREGM_PAD49PULL_Msk (0x100UL) /*!< GPIO PADREGM: PAD49PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD48RSEL_Pos (6UL) /*!< GPIO PADREGM: PAD48RSEL (Bit 6) */ +#define GPIO_PADREGM_PAD48RSEL_Msk (0xc0UL) /*!< GPIO PADREGM: PAD48RSEL (Bitfield-Mask: 0x03) */ +#define GPIO_PADREGM_PAD48FNCSEL_Pos (3UL) /*!< GPIO PADREGM: PAD48FNCSEL (Bit 3) */ +#define GPIO_PADREGM_PAD48FNCSEL_Msk (0x38UL) /*!< GPIO PADREGM: PAD48FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGM_PAD48STRNG_Pos (2UL) /*!< GPIO PADREGM: PAD48STRNG (Bit 2) */ +#define GPIO_PADREGM_PAD48STRNG_Msk (0x4UL) /*!< GPIO PADREGM: PAD48STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD48INPEN_Pos (1UL) /*!< GPIO PADREGM: PAD48INPEN (Bit 1) */ +#define GPIO_PADREGM_PAD48INPEN_Msk (0x2UL) /*!< GPIO PADREGM: PAD48INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGM_PAD48PULL_Pos (0UL) /*!< GPIO PADREGM: PAD48PULL (Bit 0) */ +#define GPIO_PADREGM_PAD48PULL_Msk (0x1UL) /*!< GPIO PADREGM: PAD48PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGN ======================================================== */ +#define GPIO_PADREGN_PAD55FNCSEL_Pos (27UL) /*!< GPIO PADREGN: PAD55FNCSEL (Bit 27) */ +#define GPIO_PADREGN_PAD55FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGN: PAD55FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGN_PAD55STRNG_Pos (26UL) /*!< GPIO PADREGN: PAD55STRNG (Bit 26) */ +#define GPIO_PADREGN_PAD55STRNG_Msk (0x4000000UL) /*!< GPIO PADREGN: PAD55STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD55INPEN_Pos (25UL) /*!< GPIO PADREGN: PAD55INPEN (Bit 25) */ +#define GPIO_PADREGN_PAD55INPEN_Msk (0x2000000UL) /*!< GPIO PADREGN: PAD55INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD55PULL_Pos (24UL) /*!< GPIO PADREGN: PAD55PULL (Bit 24) */ +#define GPIO_PADREGN_PAD55PULL_Msk (0x1000000UL) /*!< GPIO PADREGN: PAD55PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD54FNCSEL_Pos (19UL) /*!< GPIO PADREGN: PAD54FNCSEL (Bit 19) */ +#define GPIO_PADREGN_PAD54FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGN: PAD54FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGN_PAD54STRNG_Pos (18UL) /*!< GPIO PADREGN: PAD54STRNG (Bit 18) */ +#define GPIO_PADREGN_PAD54STRNG_Msk (0x40000UL) /*!< GPIO PADREGN: PAD54STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD54INPEN_Pos (17UL) /*!< GPIO PADREGN: PAD54INPEN (Bit 17) */ +#define GPIO_PADREGN_PAD54INPEN_Msk (0x20000UL) /*!< GPIO PADREGN: PAD54INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD54PULL_Pos (16UL) /*!< GPIO PADREGN: PAD54PULL (Bit 16) */ +#define GPIO_PADREGN_PAD54PULL_Msk (0x10000UL) /*!< GPIO PADREGN: PAD54PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD53FNCSEL_Pos (11UL) /*!< GPIO PADREGN: PAD53FNCSEL (Bit 11) */ +#define GPIO_PADREGN_PAD53FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGN: PAD53FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGN_PAD53STRNG_Pos (10UL) /*!< GPIO PADREGN: PAD53STRNG (Bit 10) */ +#define GPIO_PADREGN_PAD53STRNG_Msk (0x400UL) /*!< GPIO PADREGN: PAD53STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD53INPEN_Pos (9UL) /*!< GPIO PADREGN: PAD53INPEN (Bit 9) */ +#define GPIO_PADREGN_PAD53INPEN_Msk (0x200UL) /*!< GPIO PADREGN: PAD53INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD53PULL_Pos (8UL) /*!< GPIO PADREGN: PAD53PULL (Bit 8) */ +#define GPIO_PADREGN_PAD53PULL_Msk (0x100UL) /*!< GPIO PADREGN: PAD53PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD52FNCSEL_Pos (3UL) /*!< GPIO PADREGN: PAD52FNCSEL (Bit 3) */ +#define GPIO_PADREGN_PAD52FNCSEL_Msk (0x38UL) /*!< GPIO PADREGN: PAD52FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGN_PAD52STRNG_Pos (2UL) /*!< GPIO PADREGN: PAD52STRNG (Bit 2) */ +#define GPIO_PADREGN_PAD52STRNG_Msk (0x4UL) /*!< GPIO PADREGN: PAD52STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD52INPEN_Pos (1UL) /*!< GPIO PADREGN: PAD52INPEN (Bit 1) */ +#define GPIO_PADREGN_PAD52INPEN_Msk (0x2UL) /*!< GPIO PADREGN: PAD52INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGN_PAD52PULL_Pos (0UL) /*!< GPIO PADREGN: PAD52PULL (Bit 0) */ +#define GPIO_PADREGN_PAD52PULL_Msk (0x1UL) /*!< GPIO PADREGN: PAD52PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGO ======================================================== */ +#define GPIO_PADREGO_PAD59FNCSEL_Pos (27UL) /*!< GPIO PADREGO: PAD59FNCSEL (Bit 27) */ +#define GPIO_PADREGO_PAD59FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGO: PAD59FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGO_PAD59STRNG_Pos (26UL) /*!< GPIO PADREGO: PAD59STRNG (Bit 26) */ +#define GPIO_PADREGO_PAD59STRNG_Msk (0x4000000UL) /*!< GPIO PADREGO: PAD59STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD59INPEN_Pos (25UL) /*!< GPIO PADREGO: PAD59INPEN (Bit 25) */ +#define GPIO_PADREGO_PAD59INPEN_Msk (0x2000000UL) /*!< GPIO PADREGO: PAD59INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD59PULL_Pos (24UL) /*!< GPIO PADREGO: PAD59PULL (Bit 24) */ +#define GPIO_PADREGO_PAD59PULL_Msk (0x1000000UL) /*!< GPIO PADREGO: PAD59PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD58FNCSEL_Pos (19UL) /*!< GPIO PADREGO: PAD58FNCSEL (Bit 19) */ +#define GPIO_PADREGO_PAD58FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGO: PAD58FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGO_PAD58STRNG_Pos (18UL) /*!< GPIO PADREGO: PAD58STRNG (Bit 18) */ +#define GPIO_PADREGO_PAD58STRNG_Msk (0x40000UL) /*!< GPIO PADREGO: PAD58STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD58INPEN_Pos (17UL) /*!< GPIO PADREGO: PAD58INPEN (Bit 17) */ +#define GPIO_PADREGO_PAD58INPEN_Msk (0x20000UL) /*!< GPIO PADREGO: PAD58INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD58PULL_Pos (16UL) /*!< GPIO PADREGO: PAD58PULL (Bit 16) */ +#define GPIO_PADREGO_PAD58PULL_Msk (0x10000UL) /*!< GPIO PADREGO: PAD58PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD57FNCSEL_Pos (11UL) /*!< GPIO PADREGO: PAD57FNCSEL (Bit 11) */ +#define GPIO_PADREGO_PAD57FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGO: PAD57FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGO_PAD57STRNG_Pos (10UL) /*!< GPIO PADREGO: PAD57STRNG (Bit 10) */ +#define GPIO_PADREGO_PAD57STRNG_Msk (0x400UL) /*!< GPIO PADREGO: PAD57STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD57INPEN_Pos (9UL) /*!< GPIO PADREGO: PAD57INPEN (Bit 9) */ +#define GPIO_PADREGO_PAD57INPEN_Msk (0x200UL) /*!< GPIO PADREGO: PAD57INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD57PULL_Pos (8UL) /*!< GPIO PADREGO: PAD57PULL (Bit 8) */ +#define GPIO_PADREGO_PAD57PULL_Msk (0x100UL) /*!< GPIO PADREGO: PAD57PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD56FNCSEL_Pos (3UL) /*!< GPIO PADREGO: PAD56FNCSEL (Bit 3) */ +#define GPIO_PADREGO_PAD56FNCSEL_Msk (0x38UL) /*!< GPIO PADREGO: PAD56FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGO_PAD56STRNG_Pos (2UL) /*!< GPIO PADREGO: PAD56STRNG (Bit 2) */ +#define GPIO_PADREGO_PAD56STRNG_Msk (0x4UL) /*!< GPIO PADREGO: PAD56STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD56INPEN_Pos (1UL) /*!< GPIO PADREGO: PAD56INPEN (Bit 1) */ +#define GPIO_PADREGO_PAD56INPEN_Msk (0x2UL) /*!< GPIO PADREGO: PAD56INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGO_PAD56PULL_Pos (0UL) /*!< GPIO PADREGO: PAD56PULL (Bit 0) */ +#define GPIO_PADREGO_PAD56PULL_Msk (0x1UL) /*!< GPIO PADREGO: PAD56PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGP ======================================================== */ +#define GPIO_PADREGP_PAD63FNCSEL_Pos (27UL) /*!< GPIO PADREGP: PAD63FNCSEL (Bit 27) */ +#define GPIO_PADREGP_PAD63FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGP: PAD63FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGP_PAD63STRNG_Pos (26UL) /*!< GPIO PADREGP: PAD63STRNG (Bit 26) */ +#define GPIO_PADREGP_PAD63STRNG_Msk (0x4000000UL) /*!< GPIO PADREGP: PAD63STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD63INPEN_Pos (25UL) /*!< GPIO PADREGP: PAD63INPEN (Bit 25) */ +#define GPIO_PADREGP_PAD63INPEN_Msk (0x2000000UL) /*!< GPIO PADREGP: PAD63INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD63PULL_Pos (24UL) /*!< GPIO PADREGP: PAD63PULL (Bit 24) */ +#define GPIO_PADREGP_PAD63PULL_Msk (0x1000000UL) /*!< GPIO PADREGP: PAD63PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD62FNCSEL_Pos (19UL) /*!< GPIO PADREGP: PAD62FNCSEL (Bit 19) */ +#define GPIO_PADREGP_PAD62FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGP: PAD62FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGP_PAD62STRNG_Pos (18UL) /*!< GPIO PADREGP: PAD62STRNG (Bit 18) */ +#define GPIO_PADREGP_PAD62STRNG_Msk (0x40000UL) /*!< GPIO PADREGP: PAD62STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD62INPEN_Pos (17UL) /*!< GPIO PADREGP: PAD62INPEN (Bit 17) */ +#define GPIO_PADREGP_PAD62INPEN_Msk (0x20000UL) /*!< GPIO PADREGP: PAD62INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD62PULL_Pos (16UL) /*!< GPIO PADREGP: PAD62PULL (Bit 16) */ +#define GPIO_PADREGP_PAD62PULL_Msk (0x10000UL) /*!< GPIO PADREGP: PAD62PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD61FNCSEL_Pos (11UL) /*!< GPIO PADREGP: PAD61FNCSEL (Bit 11) */ +#define GPIO_PADREGP_PAD61FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGP: PAD61FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGP_PAD61STRNG_Pos (10UL) /*!< GPIO PADREGP: PAD61STRNG (Bit 10) */ +#define GPIO_PADREGP_PAD61STRNG_Msk (0x400UL) /*!< GPIO PADREGP: PAD61STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD61INPEN_Pos (9UL) /*!< GPIO PADREGP: PAD61INPEN (Bit 9) */ +#define GPIO_PADREGP_PAD61INPEN_Msk (0x200UL) /*!< GPIO PADREGP: PAD61INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD61PULL_Pos (8UL) /*!< GPIO PADREGP: PAD61PULL (Bit 8) */ +#define GPIO_PADREGP_PAD61PULL_Msk (0x100UL) /*!< GPIO PADREGP: PAD61PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD60FNCSEL_Pos (3UL) /*!< GPIO PADREGP: PAD60FNCSEL (Bit 3) */ +#define GPIO_PADREGP_PAD60FNCSEL_Msk (0x38UL) /*!< GPIO PADREGP: PAD60FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGP_PAD60STRNG_Pos (2UL) /*!< GPIO PADREGP: PAD60STRNG (Bit 2) */ +#define GPIO_PADREGP_PAD60STRNG_Msk (0x4UL) /*!< GPIO PADREGP: PAD60STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD60INPEN_Pos (1UL) /*!< GPIO PADREGP: PAD60INPEN (Bit 1) */ +#define GPIO_PADREGP_PAD60INPEN_Msk (0x2UL) /*!< GPIO PADREGP: PAD60INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGP_PAD60PULL_Pos (0UL) /*!< GPIO PADREGP: PAD60PULL (Bit 0) */ +#define GPIO_PADREGP_PAD60PULL_Msk (0x1UL) /*!< GPIO PADREGP: PAD60PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGQ ======================================================== */ +#define GPIO_PADREGQ_PAD67FNCSEL_Pos (27UL) /*!< GPIO PADREGQ: PAD67FNCSEL (Bit 27) */ +#define GPIO_PADREGQ_PAD67FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGQ: PAD67FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGQ_PAD67STRNG_Pos (26UL) /*!< GPIO PADREGQ: PAD67STRNG (Bit 26) */ +#define GPIO_PADREGQ_PAD67STRNG_Msk (0x4000000UL) /*!< GPIO PADREGQ: PAD67STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD67INPEN_Pos (25UL) /*!< GPIO PADREGQ: PAD67INPEN (Bit 25) */ +#define GPIO_PADREGQ_PAD67INPEN_Msk (0x2000000UL) /*!< GPIO PADREGQ: PAD67INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD67PULL_Pos (24UL) /*!< GPIO PADREGQ: PAD67PULL (Bit 24) */ +#define GPIO_PADREGQ_PAD67PULL_Msk (0x1000000UL) /*!< GPIO PADREGQ: PAD67PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD66FNCSEL_Pos (19UL) /*!< GPIO PADREGQ: PAD66FNCSEL (Bit 19) */ +#define GPIO_PADREGQ_PAD66FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGQ: PAD66FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGQ_PAD66STRNG_Pos (18UL) /*!< GPIO PADREGQ: PAD66STRNG (Bit 18) */ +#define GPIO_PADREGQ_PAD66STRNG_Msk (0x40000UL) /*!< GPIO PADREGQ: PAD66STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD66INPEN_Pos (17UL) /*!< GPIO PADREGQ: PAD66INPEN (Bit 17) */ +#define GPIO_PADREGQ_PAD66INPEN_Msk (0x20000UL) /*!< GPIO PADREGQ: PAD66INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD66PULL_Pos (16UL) /*!< GPIO PADREGQ: PAD66PULL (Bit 16) */ +#define GPIO_PADREGQ_PAD66PULL_Msk (0x10000UL) /*!< GPIO PADREGQ: PAD66PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD65FNCSEL_Pos (11UL) /*!< GPIO PADREGQ: PAD65FNCSEL (Bit 11) */ +#define GPIO_PADREGQ_PAD65FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGQ: PAD65FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGQ_PAD65STRNG_Pos (10UL) /*!< GPIO PADREGQ: PAD65STRNG (Bit 10) */ +#define GPIO_PADREGQ_PAD65STRNG_Msk (0x400UL) /*!< GPIO PADREGQ: PAD65STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD65INPEN_Pos (9UL) /*!< GPIO PADREGQ: PAD65INPEN (Bit 9) */ +#define GPIO_PADREGQ_PAD65INPEN_Msk (0x200UL) /*!< GPIO PADREGQ: PAD65INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD65PULL_Pos (8UL) /*!< GPIO PADREGQ: PAD65PULL (Bit 8) */ +#define GPIO_PADREGQ_PAD65PULL_Msk (0x100UL) /*!< GPIO PADREGQ: PAD65PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD64FNCSEL_Pos (3UL) /*!< GPIO PADREGQ: PAD64FNCSEL (Bit 3) */ +#define GPIO_PADREGQ_PAD64FNCSEL_Msk (0x38UL) /*!< GPIO PADREGQ: PAD64FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGQ_PAD64STRNG_Pos (2UL) /*!< GPIO PADREGQ: PAD64STRNG (Bit 2) */ +#define GPIO_PADREGQ_PAD64STRNG_Msk (0x4UL) /*!< GPIO PADREGQ: PAD64STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD64INPEN_Pos (1UL) /*!< GPIO PADREGQ: PAD64INPEN (Bit 1) */ +#define GPIO_PADREGQ_PAD64INPEN_Msk (0x2UL) /*!< GPIO PADREGQ: PAD64INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGQ_PAD64PULL_Pos (0UL) /*!< GPIO PADREGQ: PAD64PULL (Bit 0) */ +#define GPIO_PADREGQ_PAD64PULL_Msk (0x1UL) /*!< GPIO PADREGQ: PAD64PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGR ======================================================== */ +#define GPIO_PADREGR_PAD71FNCSEL_Pos (27UL) /*!< GPIO PADREGR: PAD71FNCSEL (Bit 27) */ +#define GPIO_PADREGR_PAD71FNCSEL_Msk (0x38000000UL) /*!< GPIO PADREGR: PAD71FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGR_PAD71STRNG_Pos (26UL) /*!< GPIO PADREGR: PAD71STRNG (Bit 26) */ +#define GPIO_PADREGR_PAD71STRNG_Msk (0x4000000UL) /*!< GPIO PADREGR: PAD71STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD71INPEN_Pos (25UL) /*!< GPIO PADREGR: PAD71INPEN (Bit 25) */ +#define GPIO_PADREGR_PAD71INPEN_Msk (0x2000000UL) /*!< GPIO PADREGR: PAD71INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD71PULL_Pos (24UL) /*!< GPIO PADREGR: PAD71PULL (Bit 24) */ +#define GPIO_PADREGR_PAD71PULL_Msk (0x1000000UL) /*!< GPIO PADREGR: PAD71PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD70FNCSEL_Pos (19UL) /*!< GPIO PADREGR: PAD70FNCSEL (Bit 19) */ +#define GPIO_PADREGR_PAD70FNCSEL_Msk (0x380000UL) /*!< GPIO PADREGR: PAD70FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGR_PAD70STRNG_Pos (18UL) /*!< GPIO PADREGR: PAD70STRNG (Bit 18) */ +#define GPIO_PADREGR_PAD70STRNG_Msk (0x40000UL) /*!< GPIO PADREGR: PAD70STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD70INPEN_Pos (17UL) /*!< GPIO PADREGR: PAD70INPEN (Bit 17) */ +#define GPIO_PADREGR_PAD70INPEN_Msk (0x20000UL) /*!< GPIO PADREGR: PAD70INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD70PULL_Pos (16UL) /*!< GPIO PADREGR: PAD70PULL (Bit 16) */ +#define GPIO_PADREGR_PAD70PULL_Msk (0x10000UL) /*!< GPIO PADREGR: PAD70PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD69FNCSEL_Pos (11UL) /*!< GPIO PADREGR: PAD69FNCSEL (Bit 11) */ +#define GPIO_PADREGR_PAD69FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGR: PAD69FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGR_PAD69STRNG_Pos (10UL) /*!< GPIO PADREGR: PAD69STRNG (Bit 10) */ +#define GPIO_PADREGR_PAD69STRNG_Msk (0x400UL) /*!< GPIO PADREGR: PAD69STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD69INPEN_Pos (9UL) /*!< GPIO PADREGR: PAD69INPEN (Bit 9) */ +#define GPIO_PADREGR_PAD69INPEN_Msk (0x200UL) /*!< GPIO PADREGR: PAD69INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD69PULL_Pos (8UL) /*!< GPIO PADREGR: PAD69PULL (Bit 8) */ +#define GPIO_PADREGR_PAD69PULL_Msk (0x100UL) /*!< GPIO PADREGR: PAD69PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD68FNCSEL_Pos (3UL) /*!< GPIO PADREGR: PAD68FNCSEL (Bit 3) */ +#define GPIO_PADREGR_PAD68FNCSEL_Msk (0x38UL) /*!< GPIO PADREGR: PAD68FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGR_PAD68STRNG_Pos (2UL) /*!< GPIO PADREGR: PAD68STRNG (Bit 2) */ +#define GPIO_PADREGR_PAD68STRNG_Msk (0x4UL) /*!< GPIO PADREGR: PAD68STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD68INPEN_Pos (1UL) /*!< GPIO PADREGR: PAD68INPEN (Bit 1) */ +#define GPIO_PADREGR_PAD68INPEN_Msk (0x2UL) /*!< GPIO PADREGR: PAD68INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGR_PAD68PULL_Pos (0UL) /*!< GPIO PADREGR: PAD68PULL (Bit 0) */ +#define GPIO_PADREGR_PAD68PULL_Msk (0x1UL) /*!< GPIO PADREGR: PAD68PULL (Bitfield-Mask: 0x01) */ +/* ======================================================== PADREGS ======================================================== */ +#define GPIO_PADREGS_PAD73FNCSEL_Pos (11UL) /*!< GPIO PADREGS: PAD73FNCSEL (Bit 11) */ +#define GPIO_PADREGS_PAD73FNCSEL_Msk (0x3800UL) /*!< GPIO PADREGS: PAD73FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGS_PAD73STRNG_Pos (10UL) /*!< GPIO PADREGS: PAD73STRNG (Bit 10) */ +#define GPIO_PADREGS_PAD73STRNG_Msk (0x400UL) /*!< GPIO PADREGS: PAD73STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGS_PAD73INPEN_Pos (9UL) /*!< GPIO PADREGS: PAD73INPEN (Bit 9) */ +#define GPIO_PADREGS_PAD73INPEN_Msk (0x200UL) /*!< GPIO PADREGS: PAD73INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGS_PAD73PULL_Pos (8UL) /*!< GPIO PADREGS: PAD73PULL (Bit 8) */ +#define GPIO_PADREGS_PAD73PULL_Msk (0x100UL) /*!< GPIO PADREGS: PAD73PULL (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGS_PAD72FNCSEL_Pos (3UL) /*!< GPIO PADREGS: PAD72FNCSEL (Bit 3) */ +#define GPIO_PADREGS_PAD72FNCSEL_Msk (0x38UL) /*!< GPIO PADREGS: PAD72FNCSEL (Bitfield-Mask: 0x07) */ +#define GPIO_PADREGS_PAD72STRNG_Pos (2UL) /*!< GPIO PADREGS: PAD72STRNG (Bit 2) */ +#define GPIO_PADREGS_PAD72STRNG_Msk (0x4UL) /*!< GPIO PADREGS: PAD72STRNG (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGS_PAD72INPEN_Pos (1UL) /*!< GPIO PADREGS: PAD72INPEN (Bit 1) */ +#define GPIO_PADREGS_PAD72INPEN_Msk (0x2UL) /*!< GPIO PADREGS: PAD72INPEN (Bitfield-Mask: 0x01) */ +#define GPIO_PADREGS_PAD72PULL_Pos (0UL) /*!< GPIO PADREGS: PAD72PULL (Bit 0) */ +#define GPIO_PADREGS_PAD72PULL_Msk (0x1UL) /*!< GPIO PADREGS: PAD72PULL (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGA ========================================================== */ +#define GPIO_CFGA_GPIO7INTD_Pos (31UL) /*!< GPIO CFGA: GPIO7INTD (Bit 31) */ +#define GPIO_CFGA_GPIO7INTD_Msk (0x80000000UL) /*!< GPIO CFGA: GPIO7INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO7OUTCFG_Pos (29UL) /*!< GPIO CFGA: GPIO7OUTCFG (Bit 29) */ +#define GPIO_CFGA_GPIO7OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGA: GPIO7OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO7INCFG_Pos (28UL) /*!< GPIO CFGA: GPIO7INCFG (Bit 28) */ +#define GPIO_CFGA_GPIO7INCFG_Msk (0x10000000UL) /*!< GPIO CFGA: GPIO7INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO6INTD_Pos (27UL) /*!< GPIO CFGA: GPIO6INTD (Bit 27) */ +#define GPIO_CFGA_GPIO6INTD_Msk (0x8000000UL) /*!< GPIO CFGA: GPIO6INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO6OUTCFG_Pos (25UL) /*!< GPIO CFGA: GPIO6OUTCFG (Bit 25) */ +#define GPIO_CFGA_GPIO6OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGA: GPIO6OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO6INCFG_Pos (24UL) /*!< GPIO CFGA: GPIO6INCFG (Bit 24) */ +#define GPIO_CFGA_GPIO6INCFG_Msk (0x1000000UL) /*!< GPIO CFGA: GPIO6INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO5INTD_Pos (23UL) /*!< GPIO CFGA: GPIO5INTD (Bit 23) */ +#define GPIO_CFGA_GPIO5INTD_Msk (0x800000UL) /*!< GPIO CFGA: GPIO5INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO5OUTCFG_Pos (21UL) /*!< GPIO CFGA: GPIO5OUTCFG (Bit 21) */ +#define GPIO_CFGA_GPIO5OUTCFG_Msk (0x600000UL) /*!< GPIO CFGA: GPIO5OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO5INCFG_Pos (20UL) /*!< GPIO CFGA: GPIO5INCFG (Bit 20) */ +#define GPIO_CFGA_GPIO5INCFG_Msk (0x100000UL) /*!< GPIO CFGA: GPIO5INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO4INTD_Pos (19UL) /*!< GPIO CFGA: GPIO4INTD (Bit 19) */ +#define GPIO_CFGA_GPIO4INTD_Msk (0x80000UL) /*!< GPIO CFGA: GPIO4INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO4OUTCFG_Pos (17UL) /*!< GPIO CFGA: GPIO4OUTCFG (Bit 17) */ +#define GPIO_CFGA_GPIO4OUTCFG_Msk (0x60000UL) /*!< GPIO CFGA: GPIO4OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO4INCFG_Pos (16UL) /*!< GPIO CFGA: GPIO4INCFG (Bit 16) */ +#define GPIO_CFGA_GPIO4INCFG_Msk (0x10000UL) /*!< GPIO CFGA: GPIO4INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO3INTD_Pos (15UL) /*!< GPIO CFGA: GPIO3INTD (Bit 15) */ +#define GPIO_CFGA_GPIO3INTD_Msk (0x8000UL) /*!< GPIO CFGA: GPIO3INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO3OUTCFG_Pos (13UL) /*!< GPIO CFGA: GPIO3OUTCFG (Bit 13) */ +#define GPIO_CFGA_GPIO3OUTCFG_Msk (0x6000UL) /*!< GPIO CFGA: GPIO3OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO3INCFG_Pos (12UL) /*!< GPIO CFGA: GPIO3INCFG (Bit 12) */ +#define GPIO_CFGA_GPIO3INCFG_Msk (0x1000UL) /*!< GPIO CFGA: GPIO3INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO2INTD_Pos (11UL) /*!< GPIO CFGA: GPIO2INTD (Bit 11) */ +#define GPIO_CFGA_GPIO2INTD_Msk (0x800UL) /*!< GPIO CFGA: GPIO2INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO2OUTCFG_Pos (9UL) /*!< GPIO CFGA: GPIO2OUTCFG (Bit 9) */ +#define GPIO_CFGA_GPIO2OUTCFG_Msk (0x600UL) /*!< GPIO CFGA: GPIO2OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO2INCFG_Pos (8UL) /*!< GPIO CFGA: GPIO2INCFG (Bit 8) */ +#define GPIO_CFGA_GPIO2INCFG_Msk (0x100UL) /*!< GPIO CFGA: GPIO2INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO1INTD_Pos (7UL) /*!< GPIO CFGA: GPIO1INTD (Bit 7) */ +#define GPIO_CFGA_GPIO1INTD_Msk (0x80UL) /*!< GPIO CFGA: GPIO1INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO1OUTCFG_Pos (5UL) /*!< GPIO CFGA: GPIO1OUTCFG (Bit 5) */ +#define GPIO_CFGA_GPIO1OUTCFG_Msk (0x60UL) /*!< GPIO CFGA: GPIO1OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO1INCFG_Pos (4UL) /*!< GPIO CFGA: GPIO1INCFG (Bit 4) */ +#define GPIO_CFGA_GPIO1INCFG_Msk (0x10UL) /*!< GPIO CFGA: GPIO1INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO0INTD_Pos (3UL) /*!< GPIO CFGA: GPIO0INTD (Bit 3) */ +#define GPIO_CFGA_GPIO0INTD_Msk (0x8UL) /*!< GPIO CFGA: GPIO0INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGA_GPIO0OUTCFG_Pos (1UL) /*!< GPIO CFGA: GPIO0OUTCFG (Bit 1) */ +#define GPIO_CFGA_GPIO0OUTCFG_Msk (0x6UL) /*!< GPIO CFGA: GPIO0OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGA_GPIO0INCFG_Pos (0UL) /*!< GPIO CFGA: GPIO0INCFG (Bit 0) */ +#define GPIO_CFGA_GPIO0INCFG_Msk (0x1UL) /*!< GPIO CFGA: GPIO0INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGB ========================================================== */ +#define GPIO_CFGB_GPIO15INTD_Pos (31UL) /*!< GPIO CFGB: GPIO15INTD (Bit 31) */ +#define GPIO_CFGB_GPIO15INTD_Msk (0x80000000UL) /*!< GPIO CFGB: GPIO15INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO15OUTCFG_Pos (29UL) /*!< GPIO CFGB: GPIO15OUTCFG (Bit 29) */ +#define GPIO_CFGB_GPIO15OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGB: GPIO15OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO15INCFG_Pos (28UL) /*!< GPIO CFGB: GPIO15INCFG (Bit 28) */ +#define GPIO_CFGB_GPIO15INCFG_Msk (0x10000000UL) /*!< GPIO CFGB: GPIO15INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO14INTD_Pos (27UL) /*!< GPIO CFGB: GPIO14INTD (Bit 27) */ +#define GPIO_CFGB_GPIO14INTD_Msk (0x8000000UL) /*!< GPIO CFGB: GPIO14INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO14OUTCFG_Pos (25UL) /*!< GPIO CFGB: GPIO14OUTCFG (Bit 25) */ +#define GPIO_CFGB_GPIO14OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGB: GPIO14OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO14INCFG_Pos (24UL) /*!< GPIO CFGB: GPIO14INCFG (Bit 24) */ +#define GPIO_CFGB_GPIO14INCFG_Msk (0x1000000UL) /*!< GPIO CFGB: GPIO14INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO13INTD_Pos (23UL) /*!< GPIO CFGB: GPIO13INTD (Bit 23) */ +#define GPIO_CFGB_GPIO13INTD_Msk (0x800000UL) /*!< GPIO CFGB: GPIO13INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO13OUTCFG_Pos (21UL) /*!< GPIO CFGB: GPIO13OUTCFG (Bit 21) */ +#define GPIO_CFGB_GPIO13OUTCFG_Msk (0x600000UL) /*!< GPIO CFGB: GPIO13OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO13INCFG_Pos (20UL) /*!< GPIO CFGB: GPIO13INCFG (Bit 20) */ +#define GPIO_CFGB_GPIO13INCFG_Msk (0x100000UL) /*!< GPIO CFGB: GPIO13INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO12INTD_Pos (19UL) /*!< GPIO CFGB: GPIO12INTD (Bit 19) */ +#define GPIO_CFGB_GPIO12INTD_Msk (0x80000UL) /*!< GPIO CFGB: GPIO12INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO12OUTCFG_Pos (17UL) /*!< GPIO CFGB: GPIO12OUTCFG (Bit 17) */ +#define GPIO_CFGB_GPIO12OUTCFG_Msk (0x60000UL) /*!< GPIO CFGB: GPIO12OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO12INCFG_Pos (16UL) /*!< GPIO CFGB: GPIO12INCFG (Bit 16) */ +#define GPIO_CFGB_GPIO12INCFG_Msk (0x10000UL) /*!< GPIO CFGB: GPIO12INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO11INTD_Pos (15UL) /*!< GPIO CFGB: GPIO11INTD (Bit 15) */ +#define GPIO_CFGB_GPIO11INTD_Msk (0x8000UL) /*!< GPIO CFGB: GPIO11INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO11OUTCFG_Pos (13UL) /*!< GPIO CFGB: GPIO11OUTCFG (Bit 13) */ +#define GPIO_CFGB_GPIO11OUTCFG_Msk (0x6000UL) /*!< GPIO CFGB: GPIO11OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO11INCFG_Pos (12UL) /*!< GPIO CFGB: GPIO11INCFG (Bit 12) */ +#define GPIO_CFGB_GPIO11INCFG_Msk (0x1000UL) /*!< GPIO CFGB: GPIO11INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO10INTD_Pos (11UL) /*!< GPIO CFGB: GPIO10INTD (Bit 11) */ +#define GPIO_CFGB_GPIO10INTD_Msk (0x800UL) /*!< GPIO CFGB: GPIO10INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO10OUTCFG_Pos (9UL) /*!< GPIO CFGB: GPIO10OUTCFG (Bit 9) */ +#define GPIO_CFGB_GPIO10OUTCFG_Msk (0x600UL) /*!< GPIO CFGB: GPIO10OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO10INCFG_Pos (8UL) /*!< GPIO CFGB: GPIO10INCFG (Bit 8) */ +#define GPIO_CFGB_GPIO10INCFG_Msk (0x100UL) /*!< GPIO CFGB: GPIO10INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO9INTD_Pos (7UL) /*!< GPIO CFGB: GPIO9INTD (Bit 7) */ +#define GPIO_CFGB_GPIO9INTD_Msk (0x80UL) /*!< GPIO CFGB: GPIO9INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO9OUTCFG_Pos (5UL) /*!< GPIO CFGB: GPIO9OUTCFG (Bit 5) */ +#define GPIO_CFGB_GPIO9OUTCFG_Msk (0x60UL) /*!< GPIO CFGB: GPIO9OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO9INCFG_Pos (4UL) /*!< GPIO CFGB: GPIO9INCFG (Bit 4) */ +#define GPIO_CFGB_GPIO9INCFG_Msk (0x10UL) /*!< GPIO CFGB: GPIO9INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO8INTD_Pos (3UL) /*!< GPIO CFGB: GPIO8INTD (Bit 3) */ +#define GPIO_CFGB_GPIO8INTD_Msk (0x8UL) /*!< GPIO CFGB: GPIO8INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGB_GPIO8OUTCFG_Pos (1UL) /*!< GPIO CFGB: GPIO8OUTCFG (Bit 1) */ +#define GPIO_CFGB_GPIO8OUTCFG_Msk (0x6UL) /*!< GPIO CFGB: GPIO8OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGB_GPIO8INCFG_Pos (0UL) /*!< GPIO CFGB: GPIO8INCFG (Bit 0) */ +#define GPIO_CFGB_GPIO8INCFG_Msk (0x1UL) /*!< GPIO CFGB: GPIO8INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGC ========================================================== */ +#define GPIO_CFGC_GPIO23INTD_Pos (31UL) /*!< GPIO CFGC: GPIO23INTD (Bit 31) */ +#define GPIO_CFGC_GPIO23INTD_Msk (0x80000000UL) /*!< GPIO CFGC: GPIO23INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO23OUTCFG_Pos (29UL) /*!< GPIO CFGC: GPIO23OUTCFG (Bit 29) */ +#define GPIO_CFGC_GPIO23OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGC: GPIO23OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO23INCFG_Pos (28UL) /*!< GPIO CFGC: GPIO23INCFG (Bit 28) */ +#define GPIO_CFGC_GPIO23INCFG_Msk (0x10000000UL) /*!< GPIO CFGC: GPIO23INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO22INTD_Pos (27UL) /*!< GPIO CFGC: GPIO22INTD (Bit 27) */ +#define GPIO_CFGC_GPIO22INTD_Msk (0x8000000UL) /*!< GPIO CFGC: GPIO22INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO22OUTCFG_Pos (25UL) /*!< GPIO CFGC: GPIO22OUTCFG (Bit 25) */ +#define GPIO_CFGC_GPIO22OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGC: GPIO22OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO22INCFG_Pos (24UL) /*!< GPIO CFGC: GPIO22INCFG (Bit 24) */ +#define GPIO_CFGC_GPIO22INCFG_Msk (0x1000000UL) /*!< GPIO CFGC: GPIO22INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO21INTD_Pos (23UL) /*!< GPIO CFGC: GPIO21INTD (Bit 23) */ +#define GPIO_CFGC_GPIO21INTD_Msk (0x800000UL) /*!< GPIO CFGC: GPIO21INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO21OUTCFG_Pos (21UL) /*!< GPIO CFGC: GPIO21OUTCFG (Bit 21) */ +#define GPIO_CFGC_GPIO21OUTCFG_Msk (0x600000UL) /*!< GPIO CFGC: GPIO21OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO21INCFG_Pos (20UL) /*!< GPIO CFGC: GPIO21INCFG (Bit 20) */ +#define GPIO_CFGC_GPIO21INCFG_Msk (0x100000UL) /*!< GPIO CFGC: GPIO21INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO20INTD_Pos (19UL) /*!< GPIO CFGC: GPIO20INTD (Bit 19) */ +#define GPIO_CFGC_GPIO20INTD_Msk (0x80000UL) /*!< GPIO CFGC: GPIO20INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO20OUTCFG_Pos (17UL) /*!< GPIO CFGC: GPIO20OUTCFG (Bit 17) */ +#define GPIO_CFGC_GPIO20OUTCFG_Msk (0x60000UL) /*!< GPIO CFGC: GPIO20OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO20INCFG_Pos (16UL) /*!< GPIO CFGC: GPIO20INCFG (Bit 16) */ +#define GPIO_CFGC_GPIO20INCFG_Msk (0x10000UL) /*!< GPIO CFGC: GPIO20INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO19INTD_Pos (15UL) /*!< GPIO CFGC: GPIO19INTD (Bit 15) */ +#define GPIO_CFGC_GPIO19INTD_Msk (0x8000UL) /*!< GPIO CFGC: GPIO19INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO19OUTCFG_Pos (13UL) /*!< GPIO CFGC: GPIO19OUTCFG (Bit 13) */ +#define GPIO_CFGC_GPIO19OUTCFG_Msk (0x6000UL) /*!< GPIO CFGC: GPIO19OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO19INCFG_Pos (12UL) /*!< GPIO CFGC: GPIO19INCFG (Bit 12) */ +#define GPIO_CFGC_GPIO19INCFG_Msk (0x1000UL) /*!< GPIO CFGC: GPIO19INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO18INTD_Pos (11UL) /*!< GPIO CFGC: GPIO18INTD (Bit 11) */ +#define GPIO_CFGC_GPIO18INTD_Msk (0x800UL) /*!< GPIO CFGC: GPIO18INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO18OUTCFG_Pos (9UL) /*!< GPIO CFGC: GPIO18OUTCFG (Bit 9) */ +#define GPIO_CFGC_GPIO18OUTCFG_Msk (0x600UL) /*!< GPIO CFGC: GPIO18OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO18INCFG_Pos (8UL) /*!< GPIO CFGC: GPIO18INCFG (Bit 8) */ +#define GPIO_CFGC_GPIO18INCFG_Msk (0x100UL) /*!< GPIO CFGC: GPIO18INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO17INTD_Pos (7UL) /*!< GPIO CFGC: GPIO17INTD (Bit 7) */ +#define GPIO_CFGC_GPIO17INTD_Msk (0x80UL) /*!< GPIO CFGC: GPIO17INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO17OUTCFG_Pos (5UL) /*!< GPIO CFGC: GPIO17OUTCFG (Bit 5) */ +#define GPIO_CFGC_GPIO17OUTCFG_Msk (0x60UL) /*!< GPIO CFGC: GPIO17OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO17INCFG_Pos (4UL) /*!< GPIO CFGC: GPIO17INCFG (Bit 4) */ +#define GPIO_CFGC_GPIO17INCFG_Msk (0x10UL) /*!< GPIO CFGC: GPIO17INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO16INTD_Pos (3UL) /*!< GPIO CFGC: GPIO16INTD (Bit 3) */ +#define GPIO_CFGC_GPIO16INTD_Msk (0x8UL) /*!< GPIO CFGC: GPIO16INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGC_GPIO16OUTCFG_Pos (1UL) /*!< GPIO CFGC: GPIO16OUTCFG (Bit 1) */ +#define GPIO_CFGC_GPIO16OUTCFG_Msk (0x6UL) /*!< GPIO CFGC: GPIO16OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGC_GPIO16INCFG_Pos (0UL) /*!< GPIO CFGC: GPIO16INCFG (Bit 0) */ +#define GPIO_CFGC_GPIO16INCFG_Msk (0x1UL) /*!< GPIO CFGC: GPIO16INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGD ========================================================== */ +#define GPIO_CFGD_GPIO31INTD_Pos (31UL) /*!< GPIO CFGD: GPIO31INTD (Bit 31) */ +#define GPIO_CFGD_GPIO31INTD_Msk (0x80000000UL) /*!< GPIO CFGD: GPIO31INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO31OUTCFG_Pos (29UL) /*!< GPIO CFGD: GPIO31OUTCFG (Bit 29) */ +#define GPIO_CFGD_GPIO31OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGD: GPIO31OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO31INCFG_Pos (28UL) /*!< GPIO CFGD: GPIO31INCFG (Bit 28) */ +#define GPIO_CFGD_GPIO31INCFG_Msk (0x10000000UL) /*!< GPIO CFGD: GPIO31INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO30INTD_Pos (27UL) /*!< GPIO CFGD: GPIO30INTD (Bit 27) */ +#define GPIO_CFGD_GPIO30INTD_Msk (0x8000000UL) /*!< GPIO CFGD: GPIO30INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO30OUTCFG_Pos (25UL) /*!< GPIO CFGD: GPIO30OUTCFG (Bit 25) */ +#define GPIO_CFGD_GPIO30OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGD: GPIO30OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO30INCFG_Pos (24UL) /*!< GPIO CFGD: GPIO30INCFG (Bit 24) */ +#define GPIO_CFGD_GPIO30INCFG_Msk (0x1000000UL) /*!< GPIO CFGD: GPIO30INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO29INTD_Pos (23UL) /*!< GPIO CFGD: GPIO29INTD (Bit 23) */ +#define GPIO_CFGD_GPIO29INTD_Msk (0x800000UL) /*!< GPIO CFGD: GPIO29INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO29OUTCFG_Pos (21UL) /*!< GPIO CFGD: GPIO29OUTCFG (Bit 21) */ +#define GPIO_CFGD_GPIO29OUTCFG_Msk (0x600000UL) /*!< GPIO CFGD: GPIO29OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO29INCFG_Pos (20UL) /*!< GPIO CFGD: GPIO29INCFG (Bit 20) */ +#define GPIO_CFGD_GPIO29INCFG_Msk (0x100000UL) /*!< GPIO CFGD: GPIO29INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO28INTD_Pos (19UL) /*!< GPIO CFGD: GPIO28INTD (Bit 19) */ +#define GPIO_CFGD_GPIO28INTD_Msk (0x80000UL) /*!< GPIO CFGD: GPIO28INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO28OUTCFG_Pos (17UL) /*!< GPIO CFGD: GPIO28OUTCFG (Bit 17) */ +#define GPIO_CFGD_GPIO28OUTCFG_Msk (0x60000UL) /*!< GPIO CFGD: GPIO28OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO28INCFG_Pos (16UL) /*!< GPIO CFGD: GPIO28INCFG (Bit 16) */ +#define GPIO_CFGD_GPIO28INCFG_Msk (0x10000UL) /*!< GPIO CFGD: GPIO28INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO27INTD_Pos (15UL) /*!< GPIO CFGD: GPIO27INTD (Bit 15) */ +#define GPIO_CFGD_GPIO27INTD_Msk (0x8000UL) /*!< GPIO CFGD: GPIO27INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO27OUTCFG_Pos (13UL) /*!< GPIO CFGD: GPIO27OUTCFG (Bit 13) */ +#define GPIO_CFGD_GPIO27OUTCFG_Msk (0x6000UL) /*!< GPIO CFGD: GPIO27OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO27INCFG_Pos (12UL) /*!< GPIO CFGD: GPIO27INCFG (Bit 12) */ +#define GPIO_CFGD_GPIO27INCFG_Msk (0x1000UL) /*!< GPIO CFGD: GPIO27INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO26INTD_Pos (11UL) /*!< GPIO CFGD: GPIO26INTD (Bit 11) */ +#define GPIO_CFGD_GPIO26INTD_Msk (0x800UL) /*!< GPIO CFGD: GPIO26INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO26OUTCFG_Pos (9UL) /*!< GPIO CFGD: GPIO26OUTCFG (Bit 9) */ +#define GPIO_CFGD_GPIO26OUTCFG_Msk (0x600UL) /*!< GPIO CFGD: GPIO26OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO26INCFG_Pos (8UL) /*!< GPIO CFGD: GPIO26INCFG (Bit 8) */ +#define GPIO_CFGD_GPIO26INCFG_Msk (0x100UL) /*!< GPIO CFGD: GPIO26INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO25INTD_Pos (7UL) /*!< GPIO CFGD: GPIO25INTD (Bit 7) */ +#define GPIO_CFGD_GPIO25INTD_Msk (0x80UL) /*!< GPIO CFGD: GPIO25INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO25OUTCFG_Pos (5UL) /*!< GPIO CFGD: GPIO25OUTCFG (Bit 5) */ +#define GPIO_CFGD_GPIO25OUTCFG_Msk (0x60UL) /*!< GPIO CFGD: GPIO25OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO25INCFG_Pos (4UL) /*!< GPIO CFGD: GPIO25INCFG (Bit 4) */ +#define GPIO_CFGD_GPIO25INCFG_Msk (0x10UL) /*!< GPIO CFGD: GPIO25INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO24INTD_Pos (3UL) /*!< GPIO CFGD: GPIO24INTD (Bit 3) */ +#define GPIO_CFGD_GPIO24INTD_Msk (0x8UL) /*!< GPIO CFGD: GPIO24INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGD_GPIO24OUTCFG_Pos (1UL) /*!< GPIO CFGD: GPIO24OUTCFG (Bit 1) */ +#define GPIO_CFGD_GPIO24OUTCFG_Msk (0x6UL) /*!< GPIO CFGD: GPIO24OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGD_GPIO24INCFG_Pos (0UL) /*!< GPIO CFGD: GPIO24INCFG (Bit 0) */ +#define GPIO_CFGD_GPIO24INCFG_Msk (0x1UL) /*!< GPIO CFGD: GPIO24INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGE ========================================================== */ +#define GPIO_CFGE_GPIO39INTD_Pos (31UL) /*!< GPIO CFGE: GPIO39INTD (Bit 31) */ +#define GPIO_CFGE_GPIO39INTD_Msk (0x80000000UL) /*!< GPIO CFGE: GPIO39INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO39OUTCFG_Pos (29UL) /*!< GPIO CFGE: GPIO39OUTCFG (Bit 29) */ +#define GPIO_CFGE_GPIO39OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGE: GPIO39OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO39INCFG_Pos (28UL) /*!< GPIO CFGE: GPIO39INCFG (Bit 28) */ +#define GPIO_CFGE_GPIO39INCFG_Msk (0x10000000UL) /*!< GPIO CFGE: GPIO39INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO38INTD_Pos (27UL) /*!< GPIO CFGE: GPIO38INTD (Bit 27) */ +#define GPIO_CFGE_GPIO38INTD_Msk (0x8000000UL) /*!< GPIO CFGE: GPIO38INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO38OUTCFG_Pos (25UL) /*!< GPIO CFGE: GPIO38OUTCFG (Bit 25) */ +#define GPIO_CFGE_GPIO38OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGE: GPIO38OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO38INCFG_Pos (24UL) /*!< GPIO CFGE: GPIO38INCFG (Bit 24) */ +#define GPIO_CFGE_GPIO38INCFG_Msk (0x1000000UL) /*!< GPIO CFGE: GPIO38INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO37INTD_Pos (23UL) /*!< GPIO CFGE: GPIO37INTD (Bit 23) */ +#define GPIO_CFGE_GPIO37INTD_Msk (0x800000UL) /*!< GPIO CFGE: GPIO37INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO37OUTCFG_Pos (21UL) /*!< GPIO CFGE: GPIO37OUTCFG (Bit 21) */ +#define GPIO_CFGE_GPIO37OUTCFG_Msk (0x600000UL) /*!< GPIO CFGE: GPIO37OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO37INCFG_Pos (20UL) /*!< GPIO CFGE: GPIO37INCFG (Bit 20) */ +#define GPIO_CFGE_GPIO37INCFG_Msk (0x100000UL) /*!< GPIO CFGE: GPIO37INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO36INTD_Pos (19UL) /*!< GPIO CFGE: GPIO36INTD (Bit 19) */ +#define GPIO_CFGE_GPIO36INTD_Msk (0x80000UL) /*!< GPIO CFGE: GPIO36INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO36OUTCFG_Pos (17UL) /*!< GPIO CFGE: GPIO36OUTCFG (Bit 17) */ +#define GPIO_CFGE_GPIO36OUTCFG_Msk (0x60000UL) /*!< GPIO CFGE: GPIO36OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO36INCFG_Pos (16UL) /*!< GPIO CFGE: GPIO36INCFG (Bit 16) */ +#define GPIO_CFGE_GPIO36INCFG_Msk (0x10000UL) /*!< GPIO CFGE: GPIO36INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO35INTD_Pos (15UL) /*!< GPIO CFGE: GPIO35INTD (Bit 15) */ +#define GPIO_CFGE_GPIO35INTD_Msk (0x8000UL) /*!< GPIO CFGE: GPIO35INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO35OUTCFG_Pos (13UL) /*!< GPIO CFGE: GPIO35OUTCFG (Bit 13) */ +#define GPIO_CFGE_GPIO35OUTCFG_Msk (0x6000UL) /*!< GPIO CFGE: GPIO35OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO35INCFG_Pos (12UL) /*!< GPIO CFGE: GPIO35INCFG (Bit 12) */ +#define GPIO_CFGE_GPIO35INCFG_Msk (0x1000UL) /*!< GPIO CFGE: GPIO35INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO34INTD_Pos (11UL) /*!< GPIO CFGE: GPIO34INTD (Bit 11) */ +#define GPIO_CFGE_GPIO34INTD_Msk (0x800UL) /*!< GPIO CFGE: GPIO34INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO34OUTCFG_Pos (9UL) /*!< GPIO CFGE: GPIO34OUTCFG (Bit 9) */ +#define GPIO_CFGE_GPIO34OUTCFG_Msk (0x600UL) /*!< GPIO CFGE: GPIO34OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO34INCFG_Pos (8UL) /*!< GPIO CFGE: GPIO34INCFG (Bit 8) */ +#define GPIO_CFGE_GPIO34INCFG_Msk (0x100UL) /*!< GPIO CFGE: GPIO34INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO33INTD_Pos (7UL) /*!< GPIO CFGE: GPIO33INTD (Bit 7) */ +#define GPIO_CFGE_GPIO33INTD_Msk (0x80UL) /*!< GPIO CFGE: GPIO33INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO33OUTCFG_Pos (5UL) /*!< GPIO CFGE: GPIO33OUTCFG (Bit 5) */ +#define GPIO_CFGE_GPIO33OUTCFG_Msk (0x60UL) /*!< GPIO CFGE: GPIO33OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO33INCFG_Pos (4UL) /*!< GPIO CFGE: GPIO33INCFG (Bit 4) */ +#define GPIO_CFGE_GPIO33INCFG_Msk (0x10UL) /*!< GPIO CFGE: GPIO33INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO32INTD_Pos (3UL) /*!< GPIO CFGE: GPIO32INTD (Bit 3) */ +#define GPIO_CFGE_GPIO32INTD_Msk (0x8UL) /*!< GPIO CFGE: GPIO32INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGE_GPIO32OUTCFG_Pos (1UL) /*!< GPIO CFGE: GPIO32OUTCFG (Bit 1) */ +#define GPIO_CFGE_GPIO32OUTCFG_Msk (0x6UL) /*!< GPIO CFGE: GPIO32OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGE_GPIO32INCFG_Pos (0UL) /*!< GPIO CFGE: GPIO32INCFG (Bit 0) */ +#define GPIO_CFGE_GPIO32INCFG_Msk (0x1UL) /*!< GPIO CFGE: GPIO32INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGF ========================================================== */ +#define GPIO_CFGF_GPIO47INTD_Pos (31UL) /*!< GPIO CFGF: GPIO47INTD (Bit 31) */ +#define GPIO_CFGF_GPIO47INTD_Msk (0x80000000UL) /*!< GPIO CFGF: GPIO47INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO47OUTCFG_Pos (29UL) /*!< GPIO CFGF: GPIO47OUTCFG (Bit 29) */ +#define GPIO_CFGF_GPIO47OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGF: GPIO47OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO47INCFG_Pos (28UL) /*!< GPIO CFGF: GPIO47INCFG (Bit 28) */ +#define GPIO_CFGF_GPIO47INCFG_Msk (0x10000000UL) /*!< GPIO CFGF: GPIO47INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO46INTD_Pos (27UL) /*!< GPIO CFGF: GPIO46INTD (Bit 27) */ +#define GPIO_CFGF_GPIO46INTD_Msk (0x8000000UL) /*!< GPIO CFGF: GPIO46INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO46OUTCFG_Pos (25UL) /*!< GPIO CFGF: GPIO46OUTCFG (Bit 25) */ +#define GPIO_CFGF_GPIO46OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGF: GPIO46OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO46INCFG_Pos (24UL) /*!< GPIO CFGF: GPIO46INCFG (Bit 24) */ +#define GPIO_CFGF_GPIO46INCFG_Msk (0x1000000UL) /*!< GPIO CFGF: GPIO46INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO45INTD_Pos (23UL) /*!< GPIO CFGF: GPIO45INTD (Bit 23) */ +#define GPIO_CFGF_GPIO45INTD_Msk (0x800000UL) /*!< GPIO CFGF: GPIO45INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO45OUTCFG_Pos (21UL) /*!< GPIO CFGF: GPIO45OUTCFG (Bit 21) */ +#define GPIO_CFGF_GPIO45OUTCFG_Msk (0x600000UL) /*!< GPIO CFGF: GPIO45OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO45INCFG_Pos (20UL) /*!< GPIO CFGF: GPIO45INCFG (Bit 20) */ +#define GPIO_CFGF_GPIO45INCFG_Msk (0x100000UL) /*!< GPIO CFGF: GPIO45INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO44INTD_Pos (19UL) /*!< GPIO CFGF: GPIO44INTD (Bit 19) */ +#define GPIO_CFGF_GPIO44INTD_Msk (0x80000UL) /*!< GPIO CFGF: GPIO44INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO44OUTCFG_Pos (17UL) /*!< GPIO CFGF: GPIO44OUTCFG (Bit 17) */ +#define GPIO_CFGF_GPIO44OUTCFG_Msk (0x60000UL) /*!< GPIO CFGF: GPIO44OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO44INCFG_Pos (16UL) /*!< GPIO CFGF: GPIO44INCFG (Bit 16) */ +#define GPIO_CFGF_GPIO44INCFG_Msk (0x10000UL) /*!< GPIO CFGF: GPIO44INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO43INTD_Pos (15UL) /*!< GPIO CFGF: GPIO43INTD (Bit 15) */ +#define GPIO_CFGF_GPIO43INTD_Msk (0x8000UL) /*!< GPIO CFGF: GPIO43INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO43OUTCFG_Pos (13UL) /*!< GPIO CFGF: GPIO43OUTCFG (Bit 13) */ +#define GPIO_CFGF_GPIO43OUTCFG_Msk (0x6000UL) /*!< GPIO CFGF: GPIO43OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO43INCFG_Pos (12UL) /*!< GPIO CFGF: GPIO43INCFG (Bit 12) */ +#define GPIO_CFGF_GPIO43INCFG_Msk (0x1000UL) /*!< GPIO CFGF: GPIO43INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO42INTD_Pos (11UL) /*!< GPIO CFGF: GPIO42INTD (Bit 11) */ +#define GPIO_CFGF_GPIO42INTD_Msk (0x800UL) /*!< GPIO CFGF: GPIO42INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO42OUTCFG_Pos (9UL) /*!< GPIO CFGF: GPIO42OUTCFG (Bit 9) */ +#define GPIO_CFGF_GPIO42OUTCFG_Msk (0x600UL) /*!< GPIO CFGF: GPIO42OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO42INCFG_Pos (8UL) /*!< GPIO CFGF: GPIO42INCFG (Bit 8) */ +#define GPIO_CFGF_GPIO42INCFG_Msk (0x100UL) /*!< GPIO CFGF: GPIO42INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO41INTD_Pos (7UL) /*!< GPIO CFGF: GPIO41INTD (Bit 7) */ +#define GPIO_CFGF_GPIO41INTD_Msk (0x80UL) /*!< GPIO CFGF: GPIO41INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO41OUTCFG_Pos (5UL) /*!< GPIO CFGF: GPIO41OUTCFG (Bit 5) */ +#define GPIO_CFGF_GPIO41OUTCFG_Msk (0x60UL) /*!< GPIO CFGF: GPIO41OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO41INCFG_Pos (4UL) /*!< GPIO CFGF: GPIO41INCFG (Bit 4) */ +#define GPIO_CFGF_GPIO41INCFG_Msk (0x10UL) /*!< GPIO CFGF: GPIO41INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO40INTD_Pos (3UL) /*!< GPIO CFGF: GPIO40INTD (Bit 3) */ +#define GPIO_CFGF_GPIO40INTD_Msk (0x8UL) /*!< GPIO CFGF: GPIO40INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGF_GPIO40OUTCFG_Pos (1UL) /*!< GPIO CFGF: GPIO40OUTCFG (Bit 1) */ +#define GPIO_CFGF_GPIO40OUTCFG_Msk (0x6UL) /*!< GPIO CFGF: GPIO40OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGF_GPIO40INCFG_Pos (0UL) /*!< GPIO CFGF: GPIO40INCFG (Bit 0) */ +#define GPIO_CFGF_GPIO40INCFG_Msk (0x1UL) /*!< GPIO CFGF: GPIO40INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGG ========================================================== */ +#define GPIO_CFGG_GPIO55INTD_Pos (31UL) /*!< GPIO CFGG: GPIO55INTD (Bit 31) */ +#define GPIO_CFGG_GPIO55INTD_Msk (0x80000000UL) /*!< GPIO CFGG: GPIO55INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO55OUTCFG_Pos (29UL) /*!< GPIO CFGG: GPIO55OUTCFG (Bit 29) */ +#define GPIO_CFGG_GPIO55OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGG: GPIO55OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO55INCFG_Pos (28UL) /*!< GPIO CFGG: GPIO55INCFG (Bit 28) */ +#define GPIO_CFGG_GPIO55INCFG_Msk (0x10000000UL) /*!< GPIO CFGG: GPIO55INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO54INTD_Pos (27UL) /*!< GPIO CFGG: GPIO54INTD (Bit 27) */ +#define GPIO_CFGG_GPIO54INTD_Msk (0x8000000UL) /*!< GPIO CFGG: GPIO54INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO54OUTCFG_Pos (25UL) /*!< GPIO CFGG: GPIO54OUTCFG (Bit 25) */ +#define GPIO_CFGG_GPIO54OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGG: GPIO54OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO54INCFG_Pos (24UL) /*!< GPIO CFGG: GPIO54INCFG (Bit 24) */ +#define GPIO_CFGG_GPIO54INCFG_Msk (0x1000000UL) /*!< GPIO CFGG: GPIO54INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO53INTD_Pos (23UL) /*!< GPIO CFGG: GPIO53INTD (Bit 23) */ +#define GPIO_CFGG_GPIO53INTD_Msk (0x800000UL) /*!< GPIO CFGG: GPIO53INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO53OUTCFG_Pos (21UL) /*!< GPIO CFGG: GPIO53OUTCFG (Bit 21) */ +#define GPIO_CFGG_GPIO53OUTCFG_Msk (0x600000UL) /*!< GPIO CFGG: GPIO53OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO53INCFG_Pos (20UL) /*!< GPIO CFGG: GPIO53INCFG (Bit 20) */ +#define GPIO_CFGG_GPIO53INCFG_Msk (0x100000UL) /*!< GPIO CFGG: GPIO53INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO52INTD_Pos (19UL) /*!< GPIO CFGG: GPIO52INTD (Bit 19) */ +#define GPIO_CFGG_GPIO52INTD_Msk (0x80000UL) /*!< GPIO CFGG: GPIO52INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO52OUTCFG_Pos (17UL) /*!< GPIO CFGG: GPIO52OUTCFG (Bit 17) */ +#define GPIO_CFGG_GPIO52OUTCFG_Msk (0x60000UL) /*!< GPIO CFGG: GPIO52OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO52INCFG_Pos (16UL) /*!< GPIO CFGG: GPIO52INCFG (Bit 16) */ +#define GPIO_CFGG_GPIO52INCFG_Msk (0x10000UL) /*!< GPIO CFGG: GPIO52INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO51INTD_Pos (15UL) /*!< GPIO CFGG: GPIO51INTD (Bit 15) */ +#define GPIO_CFGG_GPIO51INTD_Msk (0x8000UL) /*!< GPIO CFGG: GPIO51INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO51OUTCFG_Pos (13UL) /*!< GPIO CFGG: GPIO51OUTCFG (Bit 13) */ +#define GPIO_CFGG_GPIO51OUTCFG_Msk (0x6000UL) /*!< GPIO CFGG: GPIO51OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO51INCFG_Pos (12UL) /*!< GPIO CFGG: GPIO51INCFG (Bit 12) */ +#define GPIO_CFGG_GPIO51INCFG_Msk (0x1000UL) /*!< GPIO CFGG: GPIO51INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO50INTD_Pos (11UL) /*!< GPIO CFGG: GPIO50INTD (Bit 11) */ +#define GPIO_CFGG_GPIO50INTD_Msk (0x800UL) /*!< GPIO CFGG: GPIO50INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO50OUTCFG_Pos (9UL) /*!< GPIO CFGG: GPIO50OUTCFG (Bit 9) */ +#define GPIO_CFGG_GPIO50OUTCFG_Msk (0x600UL) /*!< GPIO CFGG: GPIO50OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO50INCFG_Pos (8UL) /*!< GPIO CFGG: GPIO50INCFG (Bit 8) */ +#define GPIO_CFGG_GPIO50INCFG_Msk (0x100UL) /*!< GPIO CFGG: GPIO50INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO49INTD_Pos (7UL) /*!< GPIO CFGG: GPIO49INTD (Bit 7) */ +#define GPIO_CFGG_GPIO49INTD_Msk (0x80UL) /*!< GPIO CFGG: GPIO49INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO49OUTCFG_Pos (5UL) /*!< GPIO CFGG: GPIO49OUTCFG (Bit 5) */ +#define GPIO_CFGG_GPIO49OUTCFG_Msk (0x60UL) /*!< GPIO CFGG: GPIO49OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO49INCFG_Pos (4UL) /*!< GPIO CFGG: GPIO49INCFG (Bit 4) */ +#define GPIO_CFGG_GPIO49INCFG_Msk (0x10UL) /*!< GPIO CFGG: GPIO49INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO48INTD_Pos (3UL) /*!< GPIO CFGG: GPIO48INTD (Bit 3) */ +#define GPIO_CFGG_GPIO48INTD_Msk (0x8UL) /*!< GPIO CFGG: GPIO48INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGG_GPIO48OUTCFG_Pos (1UL) /*!< GPIO CFGG: GPIO48OUTCFG (Bit 1) */ +#define GPIO_CFGG_GPIO48OUTCFG_Msk (0x6UL) /*!< GPIO CFGG: GPIO48OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGG_GPIO48INCFG_Pos (0UL) /*!< GPIO CFGG: GPIO48INCFG (Bit 0) */ +#define GPIO_CFGG_GPIO48INCFG_Msk (0x1UL) /*!< GPIO CFGG: GPIO48INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGH ========================================================== */ +#define GPIO_CFGH_GPIO63INTD_Pos (31UL) /*!< GPIO CFGH: GPIO63INTD (Bit 31) */ +#define GPIO_CFGH_GPIO63INTD_Msk (0x80000000UL) /*!< GPIO CFGH: GPIO63INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO63OUTCFG_Pos (29UL) /*!< GPIO CFGH: GPIO63OUTCFG (Bit 29) */ +#define GPIO_CFGH_GPIO63OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGH: GPIO63OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO63INCFG_Pos (28UL) /*!< GPIO CFGH: GPIO63INCFG (Bit 28) */ +#define GPIO_CFGH_GPIO63INCFG_Msk (0x10000000UL) /*!< GPIO CFGH: GPIO63INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO62INTD_Pos (27UL) /*!< GPIO CFGH: GPIO62INTD (Bit 27) */ +#define GPIO_CFGH_GPIO62INTD_Msk (0x8000000UL) /*!< GPIO CFGH: GPIO62INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO62OUTCFG_Pos (25UL) /*!< GPIO CFGH: GPIO62OUTCFG (Bit 25) */ +#define GPIO_CFGH_GPIO62OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGH: GPIO62OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO62INCFG_Pos (24UL) /*!< GPIO CFGH: GPIO62INCFG (Bit 24) */ +#define GPIO_CFGH_GPIO62INCFG_Msk (0x1000000UL) /*!< GPIO CFGH: GPIO62INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO61INTD_Pos (23UL) /*!< GPIO CFGH: GPIO61INTD (Bit 23) */ +#define GPIO_CFGH_GPIO61INTD_Msk (0x800000UL) /*!< GPIO CFGH: GPIO61INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO61OUTCFG_Pos (21UL) /*!< GPIO CFGH: GPIO61OUTCFG (Bit 21) */ +#define GPIO_CFGH_GPIO61OUTCFG_Msk (0x600000UL) /*!< GPIO CFGH: GPIO61OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO61INCFG_Pos (20UL) /*!< GPIO CFGH: GPIO61INCFG (Bit 20) */ +#define GPIO_CFGH_GPIO61INCFG_Msk (0x100000UL) /*!< GPIO CFGH: GPIO61INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO60INTD_Pos (19UL) /*!< GPIO CFGH: GPIO60INTD (Bit 19) */ +#define GPIO_CFGH_GPIO60INTD_Msk (0x80000UL) /*!< GPIO CFGH: GPIO60INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO60OUTCFG_Pos (17UL) /*!< GPIO CFGH: GPIO60OUTCFG (Bit 17) */ +#define GPIO_CFGH_GPIO60OUTCFG_Msk (0x60000UL) /*!< GPIO CFGH: GPIO60OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO60INCFG_Pos (16UL) /*!< GPIO CFGH: GPIO60INCFG (Bit 16) */ +#define GPIO_CFGH_GPIO60INCFG_Msk (0x10000UL) /*!< GPIO CFGH: GPIO60INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO59INTD_Pos (15UL) /*!< GPIO CFGH: GPIO59INTD (Bit 15) */ +#define GPIO_CFGH_GPIO59INTD_Msk (0x8000UL) /*!< GPIO CFGH: GPIO59INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO59OUTCFG_Pos (13UL) /*!< GPIO CFGH: GPIO59OUTCFG (Bit 13) */ +#define GPIO_CFGH_GPIO59OUTCFG_Msk (0x6000UL) /*!< GPIO CFGH: GPIO59OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO59INCFG_Pos (12UL) /*!< GPIO CFGH: GPIO59INCFG (Bit 12) */ +#define GPIO_CFGH_GPIO59INCFG_Msk (0x1000UL) /*!< GPIO CFGH: GPIO59INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO58INTD_Pos (11UL) /*!< GPIO CFGH: GPIO58INTD (Bit 11) */ +#define GPIO_CFGH_GPIO58INTD_Msk (0x800UL) /*!< GPIO CFGH: GPIO58INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO58OUTCFG_Pos (9UL) /*!< GPIO CFGH: GPIO58OUTCFG (Bit 9) */ +#define GPIO_CFGH_GPIO58OUTCFG_Msk (0x600UL) /*!< GPIO CFGH: GPIO58OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO58INCFG_Pos (8UL) /*!< GPIO CFGH: GPIO58INCFG (Bit 8) */ +#define GPIO_CFGH_GPIO58INCFG_Msk (0x100UL) /*!< GPIO CFGH: GPIO58INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO57INTD_Pos (7UL) /*!< GPIO CFGH: GPIO57INTD (Bit 7) */ +#define GPIO_CFGH_GPIO57INTD_Msk (0x80UL) /*!< GPIO CFGH: GPIO57INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO57OUTCFG_Pos (5UL) /*!< GPIO CFGH: GPIO57OUTCFG (Bit 5) */ +#define GPIO_CFGH_GPIO57OUTCFG_Msk (0x60UL) /*!< GPIO CFGH: GPIO57OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO57INCFG_Pos (4UL) /*!< GPIO CFGH: GPIO57INCFG (Bit 4) */ +#define GPIO_CFGH_GPIO57INCFG_Msk (0x10UL) /*!< GPIO CFGH: GPIO57INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO56INTD_Pos (3UL) /*!< GPIO CFGH: GPIO56INTD (Bit 3) */ +#define GPIO_CFGH_GPIO56INTD_Msk (0x8UL) /*!< GPIO CFGH: GPIO56INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGH_GPIO56OUTCFG_Pos (1UL) /*!< GPIO CFGH: GPIO56OUTCFG (Bit 1) */ +#define GPIO_CFGH_GPIO56OUTCFG_Msk (0x6UL) /*!< GPIO CFGH: GPIO56OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGH_GPIO56INCFG_Pos (0UL) /*!< GPIO CFGH: GPIO56INCFG (Bit 0) */ +#define GPIO_CFGH_GPIO56INCFG_Msk (0x1UL) /*!< GPIO CFGH: GPIO56INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGI ========================================================== */ +#define GPIO_CFGI_GPIO71INTD_Pos (31UL) /*!< GPIO CFGI: GPIO71INTD (Bit 31) */ +#define GPIO_CFGI_GPIO71INTD_Msk (0x80000000UL) /*!< GPIO CFGI: GPIO71INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO71OUTCFG_Pos (29UL) /*!< GPIO CFGI: GPIO71OUTCFG (Bit 29) */ +#define GPIO_CFGI_GPIO71OUTCFG_Msk (0x60000000UL) /*!< GPIO CFGI: GPIO71OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO71INCFG_Pos (28UL) /*!< GPIO CFGI: GPIO71INCFG (Bit 28) */ +#define GPIO_CFGI_GPIO71INCFG_Msk (0x10000000UL) /*!< GPIO CFGI: GPIO71INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO70INTD_Pos (27UL) /*!< GPIO CFGI: GPIO70INTD (Bit 27) */ +#define GPIO_CFGI_GPIO70INTD_Msk (0x8000000UL) /*!< GPIO CFGI: GPIO70INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO70OUTCFG_Pos (25UL) /*!< GPIO CFGI: GPIO70OUTCFG (Bit 25) */ +#define GPIO_CFGI_GPIO70OUTCFG_Msk (0x6000000UL) /*!< GPIO CFGI: GPIO70OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO70INCFG_Pos (24UL) /*!< GPIO CFGI: GPIO70INCFG (Bit 24) */ +#define GPIO_CFGI_GPIO70INCFG_Msk (0x1000000UL) /*!< GPIO CFGI: GPIO70INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO69INTD_Pos (23UL) /*!< GPIO CFGI: GPIO69INTD (Bit 23) */ +#define GPIO_CFGI_GPIO69INTD_Msk (0x800000UL) /*!< GPIO CFGI: GPIO69INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO69OUTCFG_Pos (21UL) /*!< GPIO CFGI: GPIO69OUTCFG (Bit 21) */ +#define GPIO_CFGI_GPIO69OUTCFG_Msk (0x600000UL) /*!< GPIO CFGI: GPIO69OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO69INCFG_Pos (20UL) /*!< GPIO CFGI: GPIO69INCFG (Bit 20) */ +#define GPIO_CFGI_GPIO69INCFG_Msk (0x100000UL) /*!< GPIO CFGI: GPIO69INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO68INTD_Pos (19UL) /*!< GPIO CFGI: GPIO68INTD (Bit 19) */ +#define GPIO_CFGI_GPIO68INTD_Msk (0x80000UL) /*!< GPIO CFGI: GPIO68INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO68OUTCFG_Pos (17UL) /*!< GPIO CFGI: GPIO68OUTCFG (Bit 17) */ +#define GPIO_CFGI_GPIO68OUTCFG_Msk (0x60000UL) /*!< GPIO CFGI: GPIO68OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO68INCFG_Pos (16UL) /*!< GPIO CFGI: GPIO68INCFG (Bit 16) */ +#define GPIO_CFGI_GPIO68INCFG_Msk (0x10000UL) /*!< GPIO CFGI: GPIO68INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO67INTD_Pos (15UL) /*!< GPIO CFGI: GPIO67INTD (Bit 15) */ +#define GPIO_CFGI_GPIO67INTD_Msk (0x8000UL) /*!< GPIO CFGI: GPIO67INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO67OUTCFG_Pos (13UL) /*!< GPIO CFGI: GPIO67OUTCFG (Bit 13) */ +#define GPIO_CFGI_GPIO67OUTCFG_Msk (0x6000UL) /*!< GPIO CFGI: GPIO67OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO67INCFG_Pos (12UL) /*!< GPIO CFGI: GPIO67INCFG (Bit 12) */ +#define GPIO_CFGI_GPIO67INCFG_Msk (0x1000UL) /*!< GPIO CFGI: GPIO67INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO66INTD_Pos (11UL) /*!< GPIO CFGI: GPIO66INTD (Bit 11) */ +#define GPIO_CFGI_GPIO66INTD_Msk (0x800UL) /*!< GPIO CFGI: GPIO66INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO66OUTCFG_Pos (9UL) /*!< GPIO CFGI: GPIO66OUTCFG (Bit 9) */ +#define GPIO_CFGI_GPIO66OUTCFG_Msk (0x600UL) /*!< GPIO CFGI: GPIO66OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO66INCFG_Pos (8UL) /*!< GPIO CFGI: GPIO66INCFG (Bit 8) */ +#define GPIO_CFGI_GPIO66INCFG_Msk (0x100UL) /*!< GPIO CFGI: GPIO66INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO65INTD_Pos (7UL) /*!< GPIO CFGI: GPIO65INTD (Bit 7) */ +#define GPIO_CFGI_GPIO65INTD_Msk (0x80UL) /*!< GPIO CFGI: GPIO65INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO65OUTCFG_Pos (5UL) /*!< GPIO CFGI: GPIO65OUTCFG (Bit 5) */ +#define GPIO_CFGI_GPIO65OUTCFG_Msk (0x60UL) /*!< GPIO CFGI: GPIO65OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO65INCFG_Pos (4UL) /*!< GPIO CFGI: GPIO65INCFG (Bit 4) */ +#define GPIO_CFGI_GPIO65INCFG_Msk (0x10UL) /*!< GPIO CFGI: GPIO65INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO64INTD_Pos (3UL) /*!< GPIO CFGI: GPIO64INTD (Bit 3) */ +#define GPIO_CFGI_GPIO64INTD_Msk (0x8UL) /*!< GPIO CFGI: GPIO64INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGI_GPIO64OUTCFG_Pos (1UL) /*!< GPIO CFGI: GPIO64OUTCFG (Bit 1) */ +#define GPIO_CFGI_GPIO64OUTCFG_Msk (0x6UL) /*!< GPIO CFGI: GPIO64OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGI_GPIO64INCFG_Pos (0UL) /*!< GPIO CFGI: GPIO64INCFG (Bit 0) */ +#define GPIO_CFGI_GPIO64INCFG_Msk (0x1UL) /*!< GPIO CFGI: GPIO64INCFG (Bitfield-Mask: 0x01) */ +/* ========================================================= CFGJ ========================================================== */ +#define GPIO_CFGJ_GPIO73INTD_Pos (7UL) /*!< GPIO CFGJ: GPIO73INTD (Bit 7) */ +#define GPIO_CFGJ_GPIO73INTD_Msk (0x80UL) /*!< GPIO CFGJ: GPIO73INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGJ_GPIO73OUTCFG_Pos (5UL) /*!< GPIO CFGJ: GPIO73OUTCFG (Bit 5) */ +#define GPIO_CFGJ_GPIO73OUTCFG_Msk (0x60UL) /*!< GPIO CFGJ: GPIO73OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGJ_GPIO73INCFG_Pos (4UL) /*!< GPIO CFGJ: GPIO73INCFG (Bit 4) */ +#define GPIO_CFGJ_GPIO73INCFG_Msk (0x10UL) /*!< GPIO CFGJ: GPIO73INCFG (Bitfield-Mask: 0x01) */ +#define GPIO_CFGJ_GPIO72INTD_Pos (3UL) /*!< GPIO CFGJ: GPIO72INTD (Bit 3) */ +#define GPIO_CFGJ_GPIO72INTD_Msk (0x8UL) /*!< GPIO CFGJ: GPIO72INTD (Bitfield-Mask: 0x01) */ +#define GPIO_CFGJ_GPIO72OUTCFG_Pos (1UL) /*!< GPIO CFGJ: GPIO72OUTCFG (Bit 1) */ +#define GPIO_CFGJ_GPIO72OUTCFG_Msk (0x6UL) /*!< GPIO CFGJ: GPIO72OUTCFG (Bitfield-Mask: 0x03) */ +#define GPIO_CFGJ_GPIO72INCFG_Pos (0UL) /*!< GPIO CFGJ: GPIO72INCFG (Bit 0) */ +#define GPIO_CFGJ_GPIO72INCFG_Msk (0x1UL) /*!< GPIO CFGJ: GPIO72INCFG (Bitfield-Mask: 0x01) */ +/* ======================================================== PADKEY ========================================================= */ +#define GPIO_PADKEY_PADKEY_Pos (0UL) /*!< GPIO PADKEY: PADKEY (Bit 0) */ +#define GPIO_PADKEY_PADKEY_Msk (0xffffffffUL) /*!< GPIO PADKEY: PADKEY (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== RDA ========================================================== */ +#define GPIO_RDA_RDA_Pos (0UL) /*!< GPIO RDA: RDA (Bit 0) */ +#define GPIO_RDA_RDA_Msk (0xffffffffUL) /*!< GPIO RDA: RDA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== RDB ========================================================== */ +#define GPIO_RDB_RDB_Pos (0UL) /*!< GPIO RDB: RDB (Bit 0) */ +#define GPIO_RDB_RDB_Msk (0xffffffffUL) /*!< GPIO RDB: RDB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== RDC ========================================================== */ +#define GPIO_RDC_RDC_Pos (0UL) /*!< GPIO RDC: RDC (Bit 0) */ +#define GPIO_RDC_RDC_Msk (0x3ffUL) /*!< GPIO RDC: RDC (Bitfield-Mask: 0x3ff) */ +/* ========================================================== WTA ========================================================== */ +#define GPIO_WTA_WTA_Pos (0UL) /*!< GPIO WTA: WTA (Bit 0) */ +#define GPIO_WTA_WTA_Msk (0xffffffffUL) /*!< GPIO WTA: WTA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== WTB ========================================================== */ +#define GPIO_WTB_WTB_Pos (0UL) /*!< GPIO WTB: WTB (Bit 0) */ +#define GPIO_WTB_WTB_Msk (0xffffffffUL) /*!< GPIO WTB: WTB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== WTC ========================================================== */ +#define GPIO_WTC_WTC_Pos (0UL) /*!< GPIO WTC: WTC (Bit 0) */ +#define GPIO_WTC_WTC_Msk (0x3ffUL) /*!< GPIO WTC: WTC (Bitfield-Mask: 0x3ff) */ +/* ========================================================= WTSA ========================================================== */ +#define GPIO_WTSA_WTSA_Pos (0UL) /*!< GPIO WTSA: WTSA (Bit 0) */ +#define GPIO_WTSA_WTSA_Msk (0xffffffffUL) /*!< GPIO WTSA: WTSA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= WTSB ========================================================== */ +#define GPIO_WTSB_WTSB_Pos (0UL) /*!< GPIO WTSB: WTSB (Bit 0) */ +#define GPIO_WTSB_WTSB_Msk (0xffffffffUL) /*!< GPIO WTSB: WTSB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= WTSC ========================================================== */ +#define GPIO_WTSC_WTSC_Pos (0UL) /*!< GPIO WTSC: WTSC (Bit 0) */ +#define GPIO_WTSC_WTSC_Msk (0x3ffUL) /*!< GPIO WTSC: WTSC (Bitfield-Mask: 0x3ff) */ +/* ========================================================= WTCA ========================================================== */ +#define GPIO_WTCA_WTCA_Pos (0UL) /*!< GPIO WTCA: WTCA (Bit 0) */ +#define GPIO_WTCA_WTCA_Msk (0xffffffffUL) /*!< GPIO WTCA: WTCA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= WTCB ========================================================== */ +#define GPIO_WTCB_WTCB_Pos (0UL) /*!< GPIO WTCB: WTCB (Bit 0) */ +#define GPIO_WTCB_WTCB_Msk (0xffffffffUL) /*!< GPIO WTCB: WTCB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= WTCC ========================================================== */ +#define GPIO_WTCC_WTCB_Pos (0UL) /*!< GPIO WTCC: WTCB (Bit 0) */ +#define GPIO_WTCC_WTCB_Msk (0x3ffUL) /*!< GPIO WTCC: WTCB (Bitfield-Mask: 0x3ff) */ +/* ========================================================== ENA ========================================================== */ +#define GPIO_ENA_ENA_Pos (0UL) /*!< GPIO ENA: ENA (Bit 0) */ +#define GPIO_ENA_ENA_Msk (0xffffffffUL) /*!< GPIO ENA: ENA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== ENB ========================================================== */ +#define GPIO_ENB_ENB_Pos (0UL) /*!< GPIO ENB: ENB (Bit 0) */ +#define GPIO_ENB_ENB_Msk (0xffffffffUL) /*!< GPIO ENB: ENB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== ENC ========================================================== */ +#define GPIO_ENC_ENC_Pos (0UL) /*!< GPIO ENC: ENC (Bit 0) */ +#define GPIO_ENC_ENC_Msk (0x3ffUL) /*!< GPIO ENC: ENC (Bitfield-Mask: 0x3ff) */ +/* ========================================================= ENSA ========================================================== */ +#define GPIO_ENSA_ENSA_Pos (0UL) /*!< GPIO ENSA: ENSA (Bit 0) */ +#define GPIO_ENSA_ENSA_Msk (0xffffffffUL) /*!< GPIO ENSA: ENSA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= ENSB ========================================================== */ +#define GPIO_ENSB_ENSB_Pos (0UL) /*!< GPIO ENSB: ENSB (Bit 0) */ +#define GPIO_ENSB_ENSB_Msk (0xffffffffUL) /*!< GPIO ENSB: ENSB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= ENSC ========================================================== */ +#define GPIO_ENSC_ENSC_Pos (0UL) /*!< GPIO ENSC: ENSC (Bit 0) */ +#define GPIO_ENSC_ENSC_Msk (0x3ffUL) /*!< GPIO ENSC: ENSC (Bitfield-Mask: 0x3ff) */ +/* ========================================================= ENCA ========================================================== */ +#define GPIO_ENCA_ENCA_Pos (0UL) /*!< GPIO ENCA: ENCA (Bit 0) */ +#define GPIO_ENCA_ENCA_Msk (0xffffffffUL) /*!< GPIO ENCA: ENCA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= ENCB ========================================================== */ +#define GPIO_ENCB_ENCB_Pos (0UL) /*!< GPIO ENCB: ENCB (Bit 0) */ +#define GPIO_ENCB_ENCB_Msk (0xffffffffUL) /*!< GPIO ENCB: ENCB (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= ENCC ========================================================== */ +#define GPIO_ENCC_ENCC_Pos (0UL) /*!< GPIO ENCC: ENCC (Bit 0) */ +#define GPIO_ENCC_ENCC_Msk (0x3ffUL) /*!< GPIO ENCC: ENCC (Bitfield-Mask: 0x3ff) */ +/* ======================================================== STMRCAP ======================================================== */ +#define GPIO_STMRCAP_STPOL3_Pos (31UL) /*!< GPIO STMRCAP: STPOL3 (Bit 31) */ +#define GPIO_STMRCAP_STPOL3_Msk (0x80000000UL) /*!< GPIO STMRCAP: STPOL3 (Bitfield-Mask: 0x01) */ +#define GPIO_STMRCAP_STSEL3_Pos (24UL) /*!< GPIO STMRCAP: STSEL3 (Bit 24) */ +#define GPIO_STMRCAP_STSEL3_Msk (0x7f000000UL) /*!< GPIO STMRCAP: STSEL3 (Bitfield-Mask: 0x7f) */ +#define GPIO_STMRCAP_STPOL2_Pos (23UL) /*!< GPIO STMRCAP: STPOL2 (Bit 23) */ +#define GPIO_STMRCAP_STPOL2_Msk (0x800000UL) /*!< GPIO STMRCAP: STPOL2 (Bitfield-Mask: 0x01) */ +#define GPIO_STMRCAP_STSEL2_Pos (16UL) /*!< GPIO STMRCAP: STSEL2 (Bit 16) */ +#define GPIO_STMRCAP_STSEL2_Msk (0x7f0000UL) /*!< GPIO STMRCAP: STSEL2 (Bitfield-Mask: 0x7f) */ +#define GPIO_STMRCAP_STPOL1_Pos (15UL) /*!< GPIO STMRCAP: STPOL1 (Bit 15) */ +#define GPIO_STMRCAP_STPOL1_Msk (0x8000UL) /*!< GPIO STMRCAP: STPOL1 (Bitfield-Mask: 0x01) */ +#define GPIO_STMRCAP_STSEL1_Pos (8UL) /*!< GPIO STMRCAP: STSEL1 (Bit 8) */ +#define GPIO_STMRCAP_STSEL1_Msk (0x7f00UL) /*!< GPIO STMRCAP: STSEL1 (Bitfield-Mask: 0x7f) */ +#define GPIO_STMRCAP_STPOL0_Pos (7UL) /*!< GPIO STMRCAP: STPOL0 (Bit 7) */ +#define GPIO_STMRCAP_STPOL0_Msk (0x80UL) /*!< GPIO STMRCAP: STPOL0 (Bitfield-Mask: 0x01) */ +#define GPIO_STMRCAP_STSEL0_Pos (0UL) /*!< GPIO STMRCAP: STSEL0 (Bit 0) */ +#define GPIO_STMRCAP_STSEL0_Msk (0x7fUL) /*!< GPIO STMRCAP: STSEL0 (Bitfield-Mask: 0x7f) */ +/* ======================================================== IOM0IRQ ======================================================== */ +#define GPIO_IOM0IRQ_IOM0IRQ_Pos (0UL) /*!< GPIO IOM0IRQ: IOM0IRQ (Bit 0) */ +#define GPIO_IOM0IRQ_IOM0IRQ_Msk (0x7fUL) /*!< GPIO IOM0IRQ: IOM0IRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================== IOM1IRQ ======================================================== */ +#define GPIO_IOM1IRQ_IOM1IRQ_Pos (0UL) /*!< GPIO IOM1IRQ: IOM1IRQ (Bit 0) */ +#define GPIO_IOM1IRQ_IOM1IRQ_Msk (0x7fUL) /*!< GPIO IOM1IRQ: IOM1IRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================== IOM2IRQ ======================================================== */ +#define GPIO_IOM2IRQ_IOM2IRQ_Pos (0UL) /*!< GPIO IOM2IRQ: IOM2IRQ (Bit 0) */ +#define GPIO_IOM2IRQ_IOM2IRQ_Msk (0x7fUL) /*!< GPIO IOM2IRQ: IOM2IRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================== IOM3IRQ ======================================================== */ +#define GPIO_IOM3IRQ_IOM3IRQ_Pos (0UL) /*!< GPIO IOM3IRQ: IOM3IRQ (Bit 0) */ +#define GPIO_IOM3IRQ_IOM3IRQ_Msk (0x7fUL) /*!< GPIO IOM3IRQ: IOM3IRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================== IOM4IRQ ======================================================== */ +#define GPIO_IOM4IRQ_IOM4IRQ_Pos (0UL) /*!< GPIO IOM4IRQ: IOM4IRQ (Bit 0) */ +#define GPIO_IOM4IRQ_IOM4IRQ_Msk (0x7fUL) /*!< GPIO IOM4IRQ: IOM4IRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================== IOM5IRQ ======================================================== */ +#define GPIO_IOM5IRQ_IOM5IRQ_Pos (0UL) /*!< GPIO IOM5IRQ: IOM5IRQ (Bit 0) */ +#define GPIO_IOM5IRQ_IOM5IRQ_Msk (0x7fUL) /*!< GPIO IOM5IRQ: IOM5IRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================= BLEIFIRQ ======================================================== */ +#define GPIO_BLEIFIRQ_BLEIFIRQ_Pos (0UL) /*!< GPIO BLEIFIRQ: BLEIFIRQ (Bit 0) */ +#define GPIO_BLEIFIRQ_BLEIFIRQ_Msk (0x7fUL) /*!< GPIO BLEIFIRQ: BLEIFIRQ (Bitfield-Mask: 0x7f) */ +/* ======================================================== GPIOOBS ======================================================== */ +#define GPIO_GPIOOBS_OBS_DATA_Pos (0UL) /*!< GPIO GPIOOBS: OBS_DATA (Bit 0) */ +#define GPIO_GPIOOBS_OBS_DATA_Msk (0xffffUL) /*!< GPIO GPIOOBS: OBS_DATA (Bitfield-Mask: 0xffff) */ +/* ====================================================== ALTPADCFGA ======================================================= */ +#define GPIO_ALTPADCFGA_PAD3_SR_Pos (28UL) /*!< GPIO ALTPADCFGA: PAD3_SR (Bit 28) */ +#define GPIO_ALTPADCFGA_PAD3_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGA: PAD3_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD3_DS1_Pos (24UL) /*!< GPIO ALTPADCFGA: PAD3_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGA_PAD3_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGA: PAD3_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD2_SR_Pos (20UL) /*!< GPIO ALTPADCFGA: PAD2_SR (Bit 20) */ +#define GPIO_ALTPADCFGA_PAD2_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGA: PAD2_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD2_DS1_Pos (16UL) /*!< GPIO ALTPADCFGA: PAD2_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGA_PAD2_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGA: PAD2_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD1_SR_Pos (12UL) /*!< GPIO ALTPADCFGA: PAD1_SR (Bit 12) */ +#define GPIO_ALTPADCFGA_PAD1_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGA: PAD1_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD1_DS1_Pos (8UL) /*!< GPIO ALTPADCFGA: PAD1_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGA_PAD1_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGA: PAD1_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD0_SR_Pos (4UL) /*!< GPIO ALTPADCFGA: PAD0_SR (Bit 4) */ +#define GPIO_ALTPADCFGA_PAD0_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGA: PAD0_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGA_PAD0_DS1_Pos (0UL) /*!< GPIO ALTPADCFGA: PAD0_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGA_PAD0_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGA: PAD0_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGB ======================================================= */ +#define GPIO_ALTPADCFGB_PAD7_SR_Pos (28UL) /*!< GPIO ALTPADCFGB: PAD7_SR (Bit 28) */ +#define GPIO_ALTPADCFGB_PAD7_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGB: PAD7_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD7_DS1_Pos (24UL) /*!< GPIO ALTPADCFGB: PAD7_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGB_PAD7_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGB: PAD7_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD6_SR_Pos (20UL) /*!< GPIO ALTPADCFGB: PAD6_SR (Bit 20) */ +#define GPIO_ALTPADCFGB_PAD6_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGB: PAD6_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD6_DS1_Pos (16UL) /*!< GPIO ALTPADCFGB: PAD6_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGB_PAD6_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGB: PAD6_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD5_SR_Pos (12UL) /*!< GPIO ALTPADCFGB: PAD5_SR (Bit 12) */ +#define GPIO_ALTPADCFGB_PAD5_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGB: PAD5_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD5_DS1_Pos (8UL) /*!< GPIO ALTPADCFGB: PAD5_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGB_PAD5_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGB: PAD5_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD4_SR_Pos (4UL) /*!< GPIO ALTPADCFGB: PAD4_SR (Bit 4) */ +#define GPIO_ALTPADCFGB_PAD4_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGB: PAD4_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGB_PAD4_DS1_Pos (0UL) /*!< GPIO ALTPADCFGB: PAD4_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGB_PAD4_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGB: PAD4_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGC ======================================================= */ +#define GPIO_ALTPADCFGC_PAD11_SR_Pos (28UL) /*!< GPIO ALTPADCFGC: PAD11_SR (Bit 28) */ +#define GPIO_ALTPADCFGC_PAD11_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGC: PAD11_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD11_DS1_Pos (24UL) /*!< GPIO ALTPADCFGC: PAD11_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGC_PAD11_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGC: PAD11_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD10_SR_Pos (20UL) /*!< GPIO ALTPADCFGC: PAD10_SR (Bit 20) */ +#define GPIO_ALTPADCFGC_PAD10_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGC: PAD10_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD10_DS1_Pos (16UL) /*!< GPIO ALTPADCFGC: PAD10_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGC_PAD10_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGC: PAD10_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD9_SR_Pos (12UL) /*!< GPIO ALTPADCFGC: PAD9_SR (Bit 12) */ +#define GPIO_ALTPADCFGC_PAD9_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGC: PAD9_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD9_DS1_Pos (8UL) /*!< GPIO ALTPADCFGC: PAD9_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGC_PAD9_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGC: PAD9_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD8_SR_Pos (4UL) /*!< GPIO ALTPADCFGC: PAD8_SR (Bit 4) */ +#define GPIO_ALTPADCFGC_PAD8_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGC: PAD8_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGC_PAD8_DS1_Pos (0UL) /*!< GPIO ALTPADCFGC: PAD8_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGC_PAD8_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGC: PAD8_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGD ======================================================= */ +#define GPIO_ALTPADCFGD_PAD15_SR_Pos (28UL) /*!< GPIO ALTPADCFGD: PAD15_SR (Bit 28) */ +#define GPIO_ALTPADCFGD_PAD15_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGD: PAD15_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD15_DS1_Pos (24UL) /*!< GPIO ALTPADCFGD: PAD15_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGD_PAD15_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGD: PAD15_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD14_SR_Pos (20UL) /*!< GPIO ALTPADCFGD: PAD14_SR (Bit 20) */ +#define GPIO_ALTPADCFGD_PAD14_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGD: PAD14_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD14_DS1_Pos (16UL) /*!< GPIO ALTPADCFGD: PAD14_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGD_PAD14_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGD: PAD14_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD13_SR_Pos (12UL) /*!< GPIO ALTPADCFGD: PAD13_SR (Bit 12) */ +#define GPIO_ALTPADCFGD_PAD13_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGD: PAD13_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD13_DS1_Pos (8UL) /*!< GPIO ALTPADCFGD: PAD13_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGD_PAD13_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGD: PAD13_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD12_SR_Pos (4UL) /*!< GPIO ALTPADCFGD: PAD12_SR (Bit 4) */ +#define GPIO_ALTPADCFGD_PAD12_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGD: PAD12_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGD_PAD12_DS1_Pos (0UL) /*!< GPIO ALTPADCFGD: PAD12_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGD_PAD12_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGD: PAD12_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGE ======================================================= */ +#define GPIO_ALTPADCFGE_PAD19_SR_Pos (28UL) /*!< GPIO ALTPADCFGE: PAD19_SR (Bit 28) */ +#define GPIO_ALTPADCFGE_PAD19_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGE: PAD19_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD19_DS1_Pos (24UL) /*!< GPIO ALTPADCFGE: PAD19_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGE_PAD19_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGE: PAD19_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD18_SR_Pos (20UL) /*!< GPIO ALTPADCFGE: PAD18_SR (Bit 20) */ +#define GPIO_ALTPADCFGE_PAD18_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGE: PAD18_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD18_DS1_Pos (16UL) /*!< GPIO ALTPADCFGE: PAD18_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGE_PAD18_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGE: PAD18_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD17_SR_Pos (12UL) /*!< GPIO ALTPADCFGE: PAD17_SR (Bit 12) */ +#define GPIO_ALTPADCFGE_PAD17_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGE: PAD17_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD17_DS1_Pos (8UL) /*!< GPIO ALTPADCFGE: PAD17_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGE_PAD17_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGE: PAD17_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD16_SR_Pos (4UL) /*!< GPIO ALTPADCFGE: PAD16_SR (Bit 4) */ +#define GPIO_ALTPADCFGE_PAD16_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGE: PAD16_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGE_PAD16_DS1_Pos (0UL) /*!< GPIO ALTPADCFGE: PAD16_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGE_PAD16_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGE: PAD16_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGF ======================================================= */ +#define GPIO_ALTPADCFGF_PAD23_SR_Pos (28UL) /*!< GPIO ALTPADCFGF: PAD23_SR (Bit 28) */ +#define GPIO_ALTPADCFGF_PAD23_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGF: PAD23_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD23_DS1_Pos (24UL) /*!< GPIO ALTPADCFGF: PAD23_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGF_PAD23_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGF: PAD23_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD22_SR_Pos (20UL) /*!< GPIO ALTPADCFGF: PAD22_SR (Bit 20) */ +#define GPIO_ALTPADCFGF_PAD22_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGF: PAD22_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD22_DS1_Pos (16UL) /*!< GPIO ALTPADCFGF: PAD22_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGF_PAD22_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGF: PAD22_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD21_SR_Pos (12UL) /*!< GPIO ALTPADCFGF: PAD21_SR (Bit 12) */ +#define GPIO_ALTPADCFGF_PAD21_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGF: PAD21_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD21_DS1_Pos (8UL) /*!< GPIO ALTPADCFGF: PAD21_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGF_PAD21_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGF: PAD21_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD20_SR_Pos (4UL) /*!< GPIO ALTPADCFGF: PAD20_SR (Bit 4) */ +#define GPIO_ALTPADCFGF_PAD20_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGF: PAD20_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGF_PAD20_DS1_Pos (0UL) /*!< GPIO ALTPADCFGF: PAD20_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGF_PAD20_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGF: PAD20_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGG ======================================================= */ +#define GPIO_ALTPADCFGG_PAD27_SR_Pos (28UL) /*!< GPIO ALTPADCFGG: PAD27_SR (Bit 28) */ +#define GPIO_ALTPADCFGG_PAD27_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGG: PAD27_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD27_DS1_Pos (24UL) /*!< GPIO ALTPADCFGG: PAD27_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGG_PAD27_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGG: PAD27_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD26_SR_Pos (20UL) /*!< GPIO ALTPADCFGG: PAD26_SR (Bit 20) */ +#define GPIO_ALTPADCFGG_PAD26_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGG: PAD26_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD26_DS1_Pos (16UL) /*!< GPIO ALTPADCFGG: PAD26_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGG_PAD26_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGG: PAD26_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD25_SR_Pos (12UL) /*!< GPIO ALTPADCFGG: PAD25_SR (Bit 12) */ +#define GPIO_ALTPADCFGG_PAD25_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGG: PAD25_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD25_DS1_Pos (8UL) /*!< GPIO ALTPADCFGG: PAD25_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGG_PAD25_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGG: PAD25_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD24_SR_Pos (4UL) /*!< GPIO ALTPADCFGG: PAD24_SR (Bit 4) */ +#define GPIO_ALTPADCFGG_PAD24_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGG: PAD24_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGG_PAD24_DS1_Pos (0UL) /*!< GPIO ALTPADCFGG: PAD24_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGG_PAD24_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGG: PAD24_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGH ======================================================= */ +#define GPIO_ALTPADCFGH_PAD31_SR_Pos (28UL) /*!< GPIO ALTPADCFGH: PAD31_SR (Bit 28) */ +#define GPIO_ALTPADCFGH_PAD31_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGH: PAD31_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD31_DS1_Pos (24UL) /*!< GPIO ALTPADCFGH: PAD31_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGH_PAD31_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGH: PAD31_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD30_SR_Pos (20UL) /*!< GPIO ALTPADCFGH: PAD30_SR (Bit 20) */ +#define GPIO_ALTPADCFGH_PAD30_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGH: PAD30_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD30_DS1_Pos (16UL) /*!< GPIO ALTPADCFGH: PAD30_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGH_PAD30_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGH: PAD30_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD29_SR_Pos (12UL) /*!< GPIO ALTPADCFGH: PAD29_SR (Bit 12) */ +#define GPIO_ALTPADCFGH_PAD29_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGH: PAD29_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD29_DS1_Pos (8UL) /*!< GPIO ALTPADCFGH: PAD29_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGH_PAD29_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGH: PAD29_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD28_SR_Pos (4UL) /*!< GPIO ALTPADCFGH: PAD28_SR (Bit 4) */ +#define GPIO_ALTPADCFGH_PAD28_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGH: PAD28_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGH_PAD28_DS1_Pos (0UL) /*!< GPIO ALTPADCFGH: PAD28_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGH_PAD28_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGH: PAD28_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGI ======================================================= */ +#define GPIO_ALTPADCFGI_PAD35_SR_Pos (28UL) /*!< GPIO ALTPADCFGI: PAD35_SR (Bit 28) */ +#define GPIO_ALTPADCFGI_PAD35_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGI: PAD35_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD35_DS1_Pos (24UL) /*!< GPIO ALTPADCFGI: PAD35_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGI_PAD35_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGI: PAD35_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD34_SR_Pos (20UL) /*!< GPIO ALTPADCFGI: PAD34_SR (Bit 20) */ +#define GPIO_ALTPADCFGI_PAD34_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGI: PAD34_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD34_DS1_Pos (16UL) /*!< GPIO ALTPADCFGI: PAD34_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGI_PAD34_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGI: PAD34_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD33_SR_Pos (12UL) /*!< GPIO ALTPADCFGI: PAD33_SR (Bit 12) */ +#define GPIO_ALTPADCFGI_PAD33_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGI: PAD33_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD33_DS1_Pos (8UL) /*!< GPIO ALTPADCFGI: PAD33_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGI_PAD33_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGI: PAD33_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD32_SR_Pos (4UL) /*!< GPIO ALTPADCFGI: PAD32_SR (Bit 4) */ +#define GPIO_ALTPADCFGI_PAD32_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGI: PAD32_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGI_PAD32_DS1_Pos (0UL) /*!< GPIO ALTPADCFGI: PAD32_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGI_PAD32_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGI: PAD32_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGJ ======================================================= */ +#define GPIO_ALTPADCFGJ_PAD39_SR_Pos (28UL) /*!< GPIO ALTPADCFGJ: PAD39_SR (Bit 28) */ +#define GPIO_ALTPADCFGJ_PAD39_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGJ: PAD39_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD39_DS1_Pos (24UL) /*!< GPIO ALTPADCFGJ: PAD39_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGJ_PAD39_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGJ: PAD39_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD38_SR_Pos (20UL) /*!< GPIO ALTPADCFGJ: PAD38_SR (Bit 20) */ +#define GPIO_ALTPADCFGJ_PAD38_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGJ: PAD38_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD38_DS1_Pos (16UL) /*!< GPIO ALTPADCFGJ: PAD38_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGJ_PAD38_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGJ: PAD38_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD37_SR_Pos (12UL) /*!< GPIO ALTPADCFGJ: PAD37_SR (Bit 12) */ +#define GPIO_ALTPADCFGJ_PAD37_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGJ: PAD37_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD37_DS1_Pos (8UL) /*!< GPIO ALTPADCFGJ: PAD37_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGJ_PAD37_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGJ: PAD37_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD36_SR_Pos (4UL) /*!< GPIO ALTPADCFGJ: PAD36_SR (Bit 4) */ +#define GPIO_ALTPADCFGJ_PAD36_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGJ: PAD36_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGJ_PAD36_DS1_Pos (0UL) /*!< GPIO ALTPADCFGJ: PAD36_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGJ_PAD36_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGJ: PAD36_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGK ======================================================= */ +#define GPIO_ALTPADCFGK_PAD43_SR_Pos (28UL) /*!< GPIO ALTPADCFGK: PAD43_SR (Bit 28) */ +#define GPIO_ALTPADCFGK_PAD43_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGK: PAD43_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD43_DS1_Pos (24UL) /*!< GPIO ALTPADCFGK: PAD43_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGK_PAD43_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGK: PAD43_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD42_SR_Pos (20UL) /*!< GPIO ALTPADCFGK: PAD42_SR (Bit 20) */ +#define GPIO_ALTPADCFGK_PAD42_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGK: PAD42_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD42_DS1_Pos (16UL) /*!< GPIO ALTPADCFGK: PAD42_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGK_PAD42_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGK: PAD42_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD41_SR_Pos (12UL) /*!< GPIO ALTPADCFGK: PAD41_SR (Bit 12) */ +#define GPIO_ALTPADCFGK_PAD41_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGK: PAD41_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD41_DS1_Pos (8UL) /*!< GPIO ALTPADCFGK: PAD41_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGK_PAD41_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGK: PAD41_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD40_SR_Pos (4UL) /*!< GPIO ALTPADCFGK: PAD40_SR (Bit 4) */ +#define GPIO_ALTPADCFGK_PAD40_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGK: PAD40_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGK_PAD40_DS1_Pos (0UL) /*!< GPIO ALTPADCFGK: PAD40_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGK_PAD40_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGK: PAD40_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGL ======================================================= */ +#define GPIO_ALTPADCFGL_PAD47_SR_Pos (28UL) /*!< GPIO ALTPADCFGL: PAD47_SR (Bit 28) */ +#define GPIO_ALTPADCFGL_PAD47_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGL: PAD47_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD47_DS1_Pos (24UL) /*!< GPIO ALTPADCFGL: PAD47_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGL_PAD47_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGL: PAD47_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD46_SR_Pos (20UL) /*!< GPIO ALTPADCFGL: PAD46_SR (Bit 20) */ +#define GPIO_ALTPADCFGL_PAD46_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGL: PAD46_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD46_DS1_Pos (16UL) /*!< GPIO ALTPADCFGL: PAD46_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGL_PAD46_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGL: PAD46_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD45_SR_Pos (12UL) /*!< GPIO ALTPADCFGL: PAD45_SR (Bit 12) */ +#define GPIO_ALTPADCFGL_PAD45_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGL: PAD45_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD45_DS1_Pos (8UL) /*!< GPIO ALTPADCFGL: PAD45_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGL_PAD45_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGL: PAD45_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD44_SR_Pos (4UL) /*!< GPIO ALTPADCFGL: PAD44_SR (Bit 4) */ +#define GPIO_ALTPADCFGL_PAD44_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGL: PAD44_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGL_PAD44_DS1_Pos (0UL) /*!< GPIO ALTPADCFGL: PAD44_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGL_PAD44_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGL: PAD44_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGM ======================================================= */ +#define GPIO_ALTPADCFGM_PAD51_SR_Pos (28UL) /*!< GPIO ALTPADCFGM: PAD51_SR (Bit 28) */ +#define GPIO_ALTPADCFGM_PAD51_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGM: PAD51_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD51_DS1_Pos (24UL) /*!< GPIO ALTPADCFGM: PAD51_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGM_PAD51_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGM: PAD51_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD50_SR_Pos (20UL) /*!< GPIO ALTPADCFGM: PAD50_SR (Bit 20) */ +#define GPIO_ALTPADCFGM_PAD50_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGM: PAD50_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD50_DS1_Pos (16UL) /*!< GPIO ALTPADCFGM: PAD50_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGM_PAD50_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGM: PAD50_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD49_SR_Pos (12UL) /*!< GPIO ALTPADCFGM: PAD49_SR (Bit 12) */ +#define GPIO_ALTPADCFGM_PAD49_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGM: PAD49_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD49_DS1_Pos (8UL) /*!< GPIO ALTPADCFGM: PAD49_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGM_PAD49_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGM: PAD49_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD48_SR_Pos (4UL) /*!< GPIO ALTPADCFGM: PAD48_SR (Bit 4) */ +#define GPIO_ALTPADCFGM_PAD48_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGM: PAD48_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGM_PAD48_DS1_Pos (0UL) /*!< GPIO ALTPADCFGM: PAD48_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGM_PAD48_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGM: PAD48_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGN ======================================================= */ +#define GPIO_ALTPADCFGN_PAD55_SR_Pos (28UL) /*!< GPIO ALTPADCFGN: PAD55_SR (Bit 28) */ +#define GPIO_ALTPADCFGN_PAD55_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGN: PAD55_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD55_DS1_Pos (24UL) /*!< GPIO ALTPADCFGN: PAD55_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGN_PAD55_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGN: PAD55_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD54_SR_Pos (20UL) /*!< GPIO ALTPADCFGN: PAD54_SR (Bit 20) */ +#define GPIO_ALTPADCFGN_PAD54_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGN: PAD54_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD54_DS1_Pos (16UL) /*!< GPIO ALTPADCFGN: PAD54_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGN_PAD54_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGN: PAD54_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD53_SR_Pos (12UL) /*!< GPIO ALTPADCFGN: PAD53_SR (Bit 12) */ +#define GPIO_ALTPADCFGN_PAD53_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGN: PAD53_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD53_DS1_Pos (8UL) /*!< GPIO ALTPADCFGN: PAD53_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGN_PAD53_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGN: PAD53_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD52_SR_Pos (4UL) /*!< GPIO ALTPADCFGN: PAD52_SR (Bit 4) */ +#define GPIO_ALTPADCFGN_PAD52_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGN: PAD52_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGN_PAD52_DS1_Pos (0UL) /*!< GPIO ALTPADCFGN: PAD52_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGN_PAD52_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGN: PAD52_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGO ======================================================= */ +#define GPIO_ALTPADCFGO_PAD59_SR_Pos (28UL) /*!< GPIO ALTPADCFGO: PAD59_SR (Bit 28) */ +#define GPIO_ALTPADCFGO_PAD59_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGO: PAD59_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD59_DS1_Pos (24UL) /*!< GPIO ALTPADCFGO: PAD59_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGO_PAD59_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGO: PAD59_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD58_SR_Pos (20UL) /*!< GPIO ALTPADCFGO: PAD58_SR (Bit 20) */ +#define GPIO_ALTPADCFGO_PAD58_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGO: PAD58_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD58_DS1_Pos (16UL) /*!< GPIO ALTPADCFGO: PAD58_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGO_PAD58_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGO: PAD58_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD57_SR_Pos (12UL) /*!< GPIO ALTPADCFGO: PAD57_SR (Bit 12) */ +#define GPIO_ALTPADCFGO_PAD57_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGO: PAD57_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD57_DS1_Pos (8UL) /*!< GPIO ALTPADCFGO: PAD57_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGO_PAD57_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGO: PAD57_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD56_SR_Pos (4UL) /*!< GPIO ALTPADCFGO: PAD56_SR (Bit 4) */ +#define GPIO_ALTPADCFGO_PAD56_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGO: PAD56_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGO_PAD56_DS1_Pos (0UL) /*!< GPIO ALTPADCFGO: PAD56_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGO_PAD56_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGO: PAD56_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGP ======================================================= */ +#define GPIO_ALTPADCFGP_PAD63_SR_Pos (28UL) /*!< GPIO ALTPADCFGP: PAD63_SR (Bit 28) */ +#define GPIO_ALTPADCFGP_PAD63_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGP: PAD63_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD63_DS1_Pos (24UL) /*!< GPIO ALTPADCFGP: PAD63_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGP_PAD63_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGP: PAD63_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD62_SR_Pos (20UL) /*!< GPIO ALTPADCFGP: PAD62_SR (Bit 20) */ +#define GPIO_ALTPADCFGP_PAD62_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGP: PAD62_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD62_DS1_Pos (16UL) /*!< GPIO ALTPADCFGP: PAD62_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGP_PAD62_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGP: PAD62_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD61_SR_Pos (12UL) /*!< GPIO ALTPADCFGP: PAD61_SR (Bit 12) */ +#define GPIO_ALTPADCFGP_PAD61_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGP: PAD61_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD61_DS1_Pos (8UL) /*!< GPIO ALTPADCFGP: PAD61_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGP_PAD61_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGP: PAD61_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD60_SR_Pos (4UL) /*!< GPIO ALTPADCFGP: PAD60_SR (Bit 4) */ +#define GPIO_ALTPADCFGP_PAD60_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGP: PAD60_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGP_PAD60_DS1_Pos (0UL) /*!< GPIO ALTPADCFGP: PAD60_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGP_PAD60_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGP: PAD60_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGQ ======================================================= */ +#define GPIO_ALTPADCFGQ_PAD67_SR_Pos (28UL) /*!< GPIO ALTPADCFGQ: PAD67_SR (Bit 28) */ +#define GPIO_ALTPADCFGQ_PAD67_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGQ: PAD67_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD67_DS1_Pos (24UL) /*!< GPIO ALTPADCFGQ: PAD67_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGQ_PAD67_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGQ: PAD67_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD66_SR_Pos (20UL) /*!< GPIO ALTPADCFGQ: PAD66_SR (Bit 20) */ +#define GPIO_ALTPADCFGQ_PAD66_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGQ: PAD66_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD66_DS1_Pos (16UL) /*!< GPIO ALTPADCFGQ: PAD66_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGQ_PAD66_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGQ: PAD66_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD65_SR_Pos (12UL) /*!< GPIO ALTPADCFGQ: PAD65_SR (Bit 12) */ +#define GPIO_ALTPADCFGQ_PAD65_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGQ: PAD65_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD65_DS1_Pos (8UL) /*!< GPIO ALTPADCFGQ: PAD65_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGQ_PAD65_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGQ: PAD65_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD64_SR_Pos (4UL) /*!< GPIO ALTPADCFGQ: PAD64_SR (Bit 4) */ +#define GPIO_ALTPADCFGQ_PAD64_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGQ: PAD64_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGQ_PAD64_DS1_Pos (0UL) /*!< GPIO ALTPADCFGQ: PAD64_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGQ_PAD64_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGQ: PAD64_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGR ======================================================= */ +#define GPIO_ALTPADCFGR_PAD71_SR_Pos (28UL) /*!< GPIO ALTPADCFGR: PAD71_SR (Bit 28) */ +#define GPIO_ALTPADCFGR_PAD71_SR_Msk (0x10000000UL) /*!< GPIO ALTPADCFGR: PAD71_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD71_DS1_Pos (24UL) /*!< GPIO ALTPADCFGR: PAD71_DS1 (Bit 24) */ +#define GPIO_ALTPADCFGR_PAD71_DS1_Msk (0x1000000UL) /*!< GPIO ALTPADCFGR: PAD71_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD70_SR_Pos (20UL) /*!< GPIO ALTPADCFGR: PAD70_SR (Bit 20) */ +#define GPIO_ALTPADCFGR_PAD70_SR_Msk (0x100000UL) /*!< GPIO ALTPADCFGR: PAD70_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD70_DS1_Pos (16UL) /*!< GPIO ALTPADCFGR: PAD70_DS1 (Bit 16) */ +#define GPIO_ALTPADCFGR_PAD70_DS1_Msk (0x10000UL) /*!< GPIO ALTPADCFGR: PAD70_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD69_SR_Pos (12UL) /*!< GPIO ALTPADCFGR: PAD69_SR (Bit 12) */ +#define GPIO_ALTPADCFGR_PAD69_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGR: PAD69_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD69_DS1_Pos (8UL) /*!< GPIO ALTPADCFGR: PAD69_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGR_PAD69_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGR: PAD69_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD68_SR_Pos (4UL) /*!< GPIO ALTPADCFGR: PAD68_SR (Bit 4) */ +#define GPIO_ALTPADCFGR_PAD68_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGR: PAD68_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGR_PAD68_DS1_Pos (0UL) /*!< GPIO ALTPADCFGR: PAD68_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGR_PAD68_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGR: PAD68_DS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== ALTPADCFGS ======================================================= */ +#define GPIO_ALTPADCFGS_PAD73_SR_Pos (12UL) /*!< GPIO ALTPADCFGS: PAD73_SR (Bit 12) */ +#define GPIO_ALTPADCFGS_PAD73_SR_Msk (0x1000UL) /*!< GPIO ALTPADCFGS: PAD73_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGS_PAD73_DS1_Pos (8UL) /*!< GPIO ALTPADCFGS: PAD73_DS1 (Bit 8) */ +#define GPIO_ALTPADCFGS_PAD73_DS1_Msk (0x100UL) /*!< GPIO ALTPADCFGS: PAD73_DS1 (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGS_PAD72_SR_Pos (4UL) /*!< GPIO ALTPADCFGS: PAD72_SR (Bit 4) */ +#define GPIO_ALTPADCFGS_PAD72_SR_Msk (0x10UL) /*!< GPIO ALTPADCFGS: PAD72_SR (Bitfield-Mask: 0x01) */ +#define GPIO_ALTPADCFGS_PAD72_DS1_Pos (0UL) /*!< GPIO ALTPADCFGS: PAD72_DS1 (Bit 0) */ +#define GPIO_ALTPADCFGS_PAD72_DS1_Msk (0x1UL) /*!< GPIO ALTPADCFGS: PAD72_DS1 (Bitfield-Mask: 0x01) */ +/* ========================================================= SCDET ========================================================= */ +#define GPIO_SCDET_SCDET_Pos (0UL) /*!< GPIO SCDET: SCDET (Bit 0) */ +#define GPIO_SCDET_SCDET_Msk (0x7fUL) /*!< GPIO SCDET: SCDET (Bitfield-Mask: 0x7f) */ +/* ======================================================== CTENCFG ======================================================== */ +#define GPIO_CTENCFG_EN31_Pos (31UL) /*!< GPIO CTENCFG: EN31 (Bit 31) */ +#define GPIO_CTENCFG_EN31_Msk (0x80000000UL) /*!< GPIO CTENCFG: EN31 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN30_Pos (30UL) /*!< GPIO CTENCFG: EN30 (Bit 30) */ +#define GPIO_CTENCFG_EN30_Msk (0x40000000UL) /*!< GPIO CTENCFG: EN30 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN29_Pos (29UL) /*!< GPIO CTENCFG: EN29 (Bit 29) */ +#define GPIO_CTENCFG_EN29_Msk (0x20000000UL) /*!< GPIO CTENCFG: EN29 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN28_Pos (28UL) /*!< GPIO CTENCFG: EN28 (Bit 28) */ +#define GPIO_CTENCFG_EN28_Msk (0x10000000UL) /*!< GPIO CTENCFG: EN28 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN27_Pos (27UL) /*!< GPIO CTENCFG: EN27 (Bit 27) */ +#define GPIO_CTENCFG_EN27_Msk (0x8000000UL) /*!< GPIO CTENCFG: EN27 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN26_Pos (26UL) /*!< GPIO CTENCFG: EN26 (Bit 26) */ +#define GPIO_CTENCFG_EN26_Msk (0x4000000UL) /*!< GPIO CTENCFG: EN26 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN25_Pos (25UL) /*!< GPIO CTENCFG: EN25 (Bit 25) */ +#define GPIO_CTENCFG_EN25_Msk (0x2000000UL) /*!< GPIO CTENCFG: EN25 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN24_Pos (24UL) /*!< GPIO CTENCFG: EN24 (Bit 24) */ +#define GPIO_CTENCFG_EN24_Msk (0x1000000UL) /*!< GPIO CTENCFG: EN24 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN23_Pos (23UL) /*!< GPIO CTENCFG: EN23 (Bit 23) */ +#define GPIO_CTENCFG_EN23_Msk (0x800000UL) /*!< GPIO CTENCFG: EN23 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN22_Pos (22UL) /*!< GPIO CTENCFG: EN22 (Bit 22) */ +#define GPIO_CTENCFG_EN22_Msk (0x400000UL) /*!< GPIO CTENCFG: EN22 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN21_Pos (21UL) /*!< GPIO CTENCFG: EN21 (Bit 21) */ +#define GPIO_CTENCFG_EN21_Msk (0x200000UL) /*!< GPIO CTENCFG: EN21 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN20_Pos (20UL) /*!< GPIO CTENCFG: EN20 (Bit 20) */ +#define GPIO_CTENCFG_EN20_Msk (0x100000UL) /*!< GPIO CTENCFG: EN20 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN19_Pos (19UL) /*!< GPIO CTENCFG: EN19 (Bit 19) */ +#define GPIO_CTENCFG_EN19_Msk (0x80000UL) /*!< GPIO CTENCFG: EN19 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN18_Pos (18UL) /*!< GPIO CTENCFG: EN18 (Bit 18) */ +#define GPIO_CTENCFG_EN18_Msk (0x40000UL) /*!< GPIO CTENCFG: EN18 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN17_Pos (17UL) /*!< GPIO CTENCFG: EN17 (Bit 17) */ +#define GPIO_CTENCFG_EN17_Msk (0x20000UL) /*!< GPIO CTENCFG: EN17 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN16_Pos (16UL) /*!< GPIO CTENCFG: EN16 (Bit 16) */ +#define GPIO_CTENCFG_EN16_Msk (0x10000UL) /*!< GPIO CTENCFG: EN16 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN15_Pos (15UL) /*!< GPIO CTENCFG: EN15 (Bit 15) */ +#define GPIO_CTENCFG_EN15_Msk (0x8000UL) /*!< GPIO CTENCFG: EN15 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN14_Pos (14UL) /*!< GPIO CTENCFG: EN14 (Bit 14) */ +#define GPIO_CTENCFG_EN14_Msk (0x4000UL) /*!< GPIO CTENCFG: EN14 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN13_Pos (13UL) /*!< GPIO CTENCFG: EN13 (Bit 13) */ +#define GPIO_CTENCFG_EN13_Msk (0x2000UL) /*!< GPIO CTENCFG: EN13 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN12_Pos (12UL) /*!< GPIO CTENCFG: EN12 (Bit 12) */ +#define GPIO_CTENCFG_EN12_Msk (0x1000UL) /*!< GPIO CTENCFG: EN12 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN11_Pos (11UL) /*!< GPIO CTENCFG: EN11 (Bit 11) */ +#define GPIO_CTENCFG_EN11_Msk (0x800UL) /*!< GPIO CTENCFG: EN11 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN10_Pos (10UL) /*!< GPIO CTENCFG: EN10 (Bit 10) */ +#define GPIO_CTENCFG_EN10_Msk (0x400UL) /*!< GPIO CTENCFG: EN10 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN9_Pos (9UL) /*!< GPIO CTENCFG: EN9 (Bit 9) */ +#define GPIO_CTENCFG_EN9_Msk (0x200UL) /*!< GPIO CTENCFG: EN9 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN8_Pos (8UL) /*!< GPIO CTENCFG: EN8 (Bit 8) */ +#define GPIO_CTENCFG_EN8_Msk (0x100UL) /*!< GPIO CTENCFG: EN8 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN7_Pos (7UL) /*!< GPIO CTENCFG: EN7 (Bit 7) */ +#define GPIO_CTENCFG_EN7_Msk (0x80UL) /*!< GPIO CTENCFG: EN7 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN6_Pos (6UL) /*!< GPIO CTENCFG: EN6 (Bit 6) */ +#define GPIO_CTENCFG_EN6_Msk (0x40UL) /*!< GPIO CTENCFG: EN6 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN5_Pos (5UL) /*!< GPIO CTENCFG: EN5 (Bit 5) */ +#define GPIO_CTENCFG_EN5_Msk (0x20UL) /*!< GPIO CTENCFG: EN5 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN4_Pos (4UL) /*!< GPIO CTENCFG: EN4 (Bit 4) */ +#define GPIO_CTENCFG_EN4_Msk (0x10UL) /*!< GPIO CTENCFG: EN4 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN3_Pos (3UL) /*!< GPIO CTENCFG: EN3 (Bit 3) */ +#define GPIO_CTENCFG_EN3_Msk (0x8UL) /*!< GPIO CTENCFG: EN3 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN2_Pos (2UL) /*!< GPIO CTENCFG: EN2 (Bit 2) */ +#define GPIO_CTENCFG_EN2_Msk (0x4UL) /*!< GPIO CTENCFG: EN2 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN1_Pos (1UL) /*!< GPIO CTENCFG: EN1 (Bit 1) */ +#define GPIO_CTENCFG_EN1_Msk (0x2UL) /*!< GPIO CTENCFG: EN1 (Bitfield-Mask: 0x01) */ +#define GPIO_CTENCFG_EN0_Pos (0UL) /*!< GPIO CTENCFG: EN0 (Bit 0) */ +#define GPIO_CTENCFG_EN0_Msk (0x1UL) /*!< GPIO CTENCFG: EN0 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT0EN ========================================================= */ +#define GPIO_INT0EN_GPIO31_Pos (31UL) /*!< GPIO INT0EN: GPIO31 (Bit 31) */ +#define GPIO_INT0EN_GPIO31_Msk (0x80000000UL) /*!< GPIO INT0EN: GPIO31 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO30_Pos (30UL) /*!< GPIO INT0EN: GPIO30 (Bit 30) */ +#define GPIO_INT0EN_GPIO30_Msk (0x40000000UL) /*!< GPIO INT0EN: GPIO30 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO29_Pos (29UL) /*!< GPIO INT0EN: GPIO29 (Bit 29) */ +#define GPIO_INT0EN_GPIO29_Msk (0x20000000UL) /*!< GPIO INT0EN: GPIO29 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO28_Pos (28UL) /*!< GPIO INT0EN: GPIO28 (Bit 28) */ +#define GPIO_INT0EN_GPIO28_Msk (0x10000000UL) /*!< GPIO INT0EN: GPIO28 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO27_Pos (27UL) /*!< GPIO INT0EN: GPIO27 (Bit 27) */ +#define GPIO_INT0EN_GPIO27_Msk (0x8000000UL) /*!< GPIO INT0EN: GPIO27 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO26_Pos (26UL) /*!< GPIO INT0EN: GPIO26 (Bit 26) */ +#define GPIO_INT0EN_GPIO26_Msk (0x4000000UL) /*!< GPIO INT0EN: GPIO26 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO25_Pos (25UL) /*!< GPIO INT0EN: GPIO25 (Bit 25) */ +#define GPIO_INT0EN_GPIO25_Msk (0x2000000UL) /*!< GPIO INT0EN: GPIO25 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO24_Pos (24UL) /*!< GPIO INT0EN: GPIO24 (Bit 24) */ +#define GPIO_INT0EN_GPIO24_Msk (0x1000000UL) /*!< GPIO INT0EN: GPIO24 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO23_Pos (23UL) /*!< GPIO INT0EN: GPIO23 (Bit 23) */ +#define GPIO_INT0EN_GPIO23_Msk (0x800000UL) /*!< GPIO INT0EN: GPIO23 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO22_Pos (22UL) /*!< GPIO INT0EN: GPIO22 (Bit 22) */ +#define GPIO_INT0EN_GPIO22_Msk (0x400000UL) /*!< GPIO INT0EN: GPIO22 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO21_Pos (21UL) /*!< GPIO INT0EN: GPIO21 (Bit 21) */ +#define GPIO_INT0EN_GPIO21_Msk (0x200000UL) /*!< GPIO INT0EN: GPIO21 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO20_Pos (20UL) /*!< GPIO INT0EN: GPIO20 (Bit 20) */ +#define GPIO_INT0EN_GPIO20_Msk (0x100000UL) /*!< GPIO INT0EN: GPIO20 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO19_Pos (19UL) /*!< GPIO INT0EN: GPIO19 (Bit 19) */ +#define GPIO_INT0EN_GPIO19_Msk (0x80000UL) /*!< GPIO INT0EN: GPIO19 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO18_Pos (18UL) /*!< GPIO INT0EN: GPIO18 (Bit 18) */ +#define GPIO_INT0EN_GPIO18_Msk (0x40000UL) /*!< GPIO INT0EN: GPIO18 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO17_Pos (17UL) /*!< GPIO INT0EN: GPIO17 (Bit 17) */ +#define GPIO_INT0EN_GPIO17_Msk (0x20000UL) /*!< GPIO INT0EN: GPIO17 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO16_Pos (16UL) /*!< GPIO INT0EN: GPIO16 (Bit 16) */ +#define GPIO_INT0EN_GPIO16_Msk (0x10000UL) /*!< GPIO INT0EN: GPIO16 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO15_Pos (15UL) /*!< GPIO INT0EN: GPIO15 (Bit 15) */ +#define GPIO_INT0EN_GPIO15_Msk (0x8000UL) /*!< GPIO INT0EN: GPIO15 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO14_Pos (14UL) /*!< GPIO INT0EN: GPIO14 (Bit 14) */ +#define GPIO_INT0EN_GPIO14_Msk (0x4000UL) /*!< GPIO INT0EN: GPIO14 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO13_Pos (13UL) /*!< GPIO INT0EN: GPIO13 (Bit 13) */ +#define GPIO_INT0EN_GPIO13_Msk (0x2000UL) /*!< GPIO INT0EN: GPIO13 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO12_Pos (12UL) /*!< GPIO INT0EN: GPIO12 (Bit 12) */ +#define GPIO_INT0EN_GPIO12_Msk (0x1000UL) /*!< GPIO INT0EN: GPIO12 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO11_Pos (11UL) /*!< GPIO INT0EN: GPIO11 (Bit 11) */ +#define GPIO_INT0EN_GPIO11_Msk (0x800UL) /*!< GPIO INT0EN: GPIO11 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO10_Pos (10UL) /*!< GPIO INT0EN: GPIO10 (Bit 10) */ +#define GPIO_INT0EN_GPIO10_Msk (0x400UL) /*!< GPIO INT0EN: GPIO10 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO9_Pos (9UL) /*!< GPIO INT0EN: GPIO9 (Bit 9) */ +#define GPIO_INT0EN_GPIO9_Msk (0x200UL) /*!< GPIO INT0EN: GPIO9 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO8_Pos (8UL) /*!< GPIO INT0EN: GPIO8 (Bit 8) */ +#define GPIO_INT0EN_GPIO8_Msk (0x100UL) /*!< GPIO INT0EN: GPIO8 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO7_Pos (7UL) /*!< GPIO INT0EN: GPIO7 (Bit 7) */ +#define GPIO_INT0EN_GPIO7_Msk (0x80UL) /*!< GPIO INT0EN: GPIO7 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO6_Pos (6UL) /*!< GPIO INT0EN: GPIO6 (Bit 6) */ +#define GPIO_INT0EN_GPIO6_Msk (0x40UL) /*!< GPIO INT0EN: GPIO6 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO5_Pos (5UL) /*!< GPIO INT0EN: GPIO5 (Bit 5) */ +#define GPIO_INT0EN_GPIO5_Msk (0x20UL) /*!< GPIO INT0EN: GPIO5 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO4_Pos (4UL) /*!< GPIO INT0EN: GPIO4 (Bit 4) */ +#define GPIO_INT0EN_GPIO4_Msk (0x10UL) /*!< GPIO INT0EN: GPIO4 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO3_Pos (3UL) /*!< GPIO INT0EN: GPIO3 (Bit 3) */ +#define GPIO_INT0EN_GPIO3_Msk (0x8UL) /*!< GPIO INT0EN: GPIO3 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO2_Pos (2UL) /*!< GPIO INT0EN: GPIO2 (Bit 2) */ +#define GPIO_INT0EN_GPIO2_Msk (0x4UL) /*!< GPIO INT0EN: GPIO2 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO1_Pos (1UL) /*!< GPIO INT0EN: GPIO1 (Bit 1) */ +#define GPIO_INT0EN_GPIO1_Msk (0x2UL) /*!< GPIO INT0EN: GPIO1 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0EN_GPIO0_Pos (0UL) /*!< GPIO INT0EN: GPIO0 (Bit 0) */ +#define GPIO_INT0EN_GPIO0_Msk (0x1UL) /*!< GPIO INT0EN: GPIO0 (Bitfield-Mask: 0x01) */ +/* ======================================================= INT0STAT ======================================================== */ +#define GPIO_INT0STAT_GPIO31_Pos (31UL) /*!< GPIO INT0STAT: GPIO31 (Bit 31) */ +#define GPIO_INT0STAT_GPIO31_Msk (0x80000000UL) /*!< GPIO INT0STAT: GPIO31 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO30_Pos (30UL) /*!< GPIO INT0STAT: GPIO30 (Bit 30) */ +#define GPIO_INT0STAT_GPIO30_Msk (0x40000000UL) /*!< GPIO INT0STAT: GPIO30 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO29_Pos (29UL) /*!< GPIO INT0STAT: GPIO29 (Bit 29) */ +#define GPIO_INT0STAT_GPIO29_Msk (0x20000000UL) /*!< GPIO INT0STAT: GPIO29 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO28_Pos (28UL) /*!< GPIO INT0STAT: GPIO28 (Bit 28) */ +#define GPIO_INT0STAT_GPIO28_Msk (0x10000000UL) /*!< GPIO INT0STAT: GPIO28 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO27_Pos (27UL) /*!< GPIO INT0STAT: GPIO27 (Bit 27) */ +#define GPIO_INT0STAT_GPIO27_Msk (0x8000000UL) /*!< GPIO INT0STAT: GPIO27 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO26_Pos (26UL) /*!< GPIO INT0STAT: GPIO26 (Bit 26) */ +#define GPIO_INT0STAT_GPIO26_Msk (0x4000000UL) /*!< GPIO INT0STAT: GPIO26 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO25_Pos (25UL) /*!< GPIO INT0STAT: GPIO25 (Bit 25) */ +#define GPIO_INT0STAT_GPIO25_Msk (0x2000000UL) /*!< GPIO INT0STAT: GPIO25 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO24_Pos (24UL) /*!< GPIO INT0STAT: GPIO24 (Bit 24) */ +#define GPIO_INT0STAT_GPIO24_Msk (0x1000000UL) /*!< GPIO INT0STAT: GPIO24 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO23_Pos (23UL) /*!< GPIO INT0STAT: GPIO23 (Bit 23) */ +#define GPIO_INT0STAT_GPIO23_Msk (0x800000UL) /*!< GPIO INT0STAT: GPIO23 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO22_Pos (22UL) /*!< GPIO INT0STAT: GPIO22 (Bit 22) */ +#define GPIO_INT0STAT_GPIO22_Msk (0x400000UL) /*!< GPIO INT0STAT: GPIO22 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO21_Pos (21UL) /*!< GPIO INT0STAT: GPIO21 (Bit 21) */ +#define GPIO_INT0STAT_GPIO21_Msk (0x200000UL) /*!< GPIO INT0STAT: GPIO21 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO20_Pos (20UL) /*!< GPIO INT0STAT: GPIO20 (Bit 20) */ +#define GPIO_INT0STAT_GPIO20_Msk (0x100000UL) /*!< GPIO INT0STAT: GPIO20 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO19_Pos (19UL) /*!< GPIO INT0STAT: GPIO19 (Bit 19) */ +#define GPIO_INT0STAT_GPIO19_Msk (0x80000UL) /*!< GPIO INT0STAT: GPIO19 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO18_Pos (18UL) /*!< GPIO INT0STAT: GPIO18 (Bit 18) */ +#define GPIO_INT0STAT_GPIO18_Msk (0x40000UL) /*!< GPIO INT0STAT: GPIO18 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO17_Pos (17UL) /*!< GPIO INT0STAT: GPIO17 (Bit 17) */ +#define GPIO_INT0STAT_GPIO17_Msk (0x20000UL) /*!< GPIO INT0STAT: GPIO17 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO16_Pos (16UL) /*!< GPIO INT0STAT: GPIO16 (Bit 16) */ +#define GPIO_INT0STAT_GPIO16_Msk (0x10000UL) /*!< GPIO INT0STAT: GPIO16 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO15_Pos (15UL) /*!< GPIO INT0STAT: GPIO15 (Bit 15) */ +#define GPIO_INT0STAT_GPIO15_Msk (0x8000UL) /*!< GPIO INT0STAT: GPIO15 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO14_Pos (14UL) /*!< GPIO INT0STAT: GPIO14 (Bit 14) */ +#define GPIO_INT0STAT_GPIO14_Msk (0x4000UL) /*!< GPIO INT0STAT: GPIO14 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO13_Pos (13UL) /*!< GPIO INT0STAT: GPIO13 (Bit 13) */ +#define GPIO_INT0STAT_GPIO13_Msk (0x2000UL) /*!< GPIO INT0STAT: GPIO13 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO12_Pos (12UL) /*!< GPIO INT0STAT: GPIO12 (Bit 12) */ +#define GPIO_INT0STAT_GPIO12_Msk (0x1000UL) /*!< GPIO INT0STAT: GPIO12 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO11_Pos (11UL) /*!< GPIO INT0STAT: GPIO11 (Bit 11) */ +#define GPIO_INT0STAT_GPIO11_Msk (0x800UL) /*!< GPIO INT0STAT: GPIO11 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO10_Pos (10UL) /*!< GPIO INT0STAT: GPIO10 (Bit 10) */ +#define GPIO_INT0STAT_GPIO10_Msk (0x400UL) /*!< GPIO INT0STAT: GPIO10 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO9_Pos (9UL) /*!< GPIO INT0STAT: GPIO9 (Bit 9) */ +#define GPIO_INT0STAT_GPIO9_Msk (0x200UL) /*!< GPIO INT0STAT: GPIO9 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO8_Pos (8UL) /*!< GPIO INT0STAT: GPIO8 (Bit 8) */ +#define GPIO_INT0STAT_GPIO8_Msk (0x100UL) /*!< GPIO INT0STAT: GPIO8 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO7_Pos (7UL) /*!< GPIO INT0STAT: GPIO7 (Bit 7) */ +#define GPIO_INT0STAT_GPIO7_Msk (0x80UL) /*!< GPIO INT0STAT: GPIO7 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO6_Pos (6UL) /*!< GPIO INT0STAT: GPIO6 (Bit 6) */ +#define GPIO_INT0STAT_GPIO6_Msk (0x40UL) /*!< GPIO INT0STAT: GPIO6 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO5_Pos (5UL) /*!< GPIO INT0STAT: GPIO5 (Bit 5) */ +#define GPIO_INT0STAT_GPIO5_Msk (0x20UL) /*!< GPIO INT0STAT: GPIO5 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO4_Pos (4UL) /*!< GPIO INT0STAT: GPIO4 (Bit 4) */ +#define GPIO_INT0STAT_GPIO4_Msk (0x10UL) /*!< GPIO INT0STAT: GPIO4 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO3_Pos (3UL) /*!< GPIO INT0STAT: GPIO3 (Bit 3) */ +#define GPIO_INT0STAT_GPIO3_Msk (0x8UL) /*!< GPIO INT0STAT: GPIO3 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO2_Pos (2UL) /*!< GPIO INT0STAT: GPIO2 (Bit 2) */ +#define GPIO_INT0STAT_GPIO2_Msk (0x4UL) /*!< GPIO INT0STAT: GPIO2 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO1_Pos (1UL) /*!< GPIO INT0STAT: GPIO1 (Bit 1) */ +#define GPIO_INT0STAT_GPIO1_Msk (0x2UL) /*!< GPIO INT0STAT: GPIO1 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0STAT_GPIO0_Pos (0UL) /*!< GPIO INT0STAT: GPIO0 (Bit 0) */ +#define GPIO_INT0STAT_GPIO0_Msk (0x1UL) /*!< GPIO INT0STAT: GPIO0 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT0CLR ======================================================== */ +#define GPIO_INT0CLR_GPIO31_Pos (31UL) /*!< GPIO INT0CLR: GPIO31 (Bit 31) */ +#define GPIO_INT0CLR_GPIO31_Msk (0x80000000UL) /*!< GPIO INT0CLR: GPIO31 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO30_Pos (30UL) /*!< GPIO INT0CLR: GPIO30 (Bit 30) */ +#define GPIO_INT0CLR_GPIO30_Msk (0x40000000UL) /*!< GPIO INT0CLR: GPIO30 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO29_Pos (29UL) /*!< GPIO INT0CLR: GPIO29 (Bit 29) */ +#define GPIO_INT0CLR_GPIO29_Msk (0x20000000UL) /*!< GPIO INT0CLR: GPIO29 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO28_Pos (28UL) /*!< GPIO INT0CLR: GPIO28 (Bit 28) */ +#define GPIO_INT0CLR_GPIO28_Msk (0x10000000UL) /*!< GPIO INT0CLR: GPIO28 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO27_Pos (27UL) /*!< GPIO INT0CLR: GPIO27 (Bit 27) */ +#define GPIO_INT0CLR_GPIO27_Msk (0x8000000UL) /*!< GPIO INT0CLR: GPIO27 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO26_Pos (26UL) /*!< GPIO INT0CLR: GPIO26 (Bit 26) */ +#define GPIO_INT0CLR_GPIO26_Msk (0x4000000UL) /*!< GPIO INT0CLR: GPIO26 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO25_Pos (25UL) /*!< GPIO INT0CLR: GPIO25 (Bit 25) */ +#define GPIO_INT0CLR_GPIO25_Msk (0x2000000UL) /*!< GPIO INT0CLR: GPIO25 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO24_Pos (24UL) /*!< GPIO INT0CLR: GPIO24 (Bit 24) */ +#define GPIO_INT0CLR_GPIO24_Msk (0x1000000UL) /*!< GPIO INT0CLR: GPIO24 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO23_Pos (23UL) /*!< GPIO INT0CLR: GPIO23 (Bit 23) */ +#define GPIO_INT0CLR_GPIO23_Msk (0x800000UL) /*!< GPIO INT0CLR: GPIO23 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO22_Pos (22UL) /*!< GPIO INT0CLR: GPIO22 (Bit 22) */ +#define GPIO_INT0CLR_GPIO22_Msk (0x400000UL) /*!< GPIO INT0CLR: GPIO22 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO21_Pos (21UL) /*!< GPIO INT0CLR: GPIO21 (Bit 21) */ +#define GPIO_INT0CLR_GPIO21_Msk (0x200000UL) /*!< GPIO INT0CLR: GPIO21 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO20_Pos (20UL) /*!< GPIO INT0CLR: GPIO20 (Bit 20) */ +#define GPIO_INT0CLR_GPIO20_Msk (0x100000UL) /*!< GPIO INT0CLR: GPIO20 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO19_Pos (19UL) /*!< GPIO INT0CLR: GPIO19 (Bit 19) */ +#define GPIO_INT0CLR_GPIO19_Msk (0x80000UL) /*!< GPIO INT0CLR: GPIO19 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO18_Pos (18UL) /*!< GPIO INT0CLR: GPIO18 (Bit 18) */ +#define GPIO_INT0CLR_GPIO18_Msk (0x40000UL) /*!< GPIO INT0CLR: GPIO18 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO17_Pos (17UL) /*!< GPIO INT0CLR: GPIO17 (Bit 17) */ +#define GPIO_INT0CLR_GPIO17_Msk (0x20000UL) /*!< GPIO INT0CLR: GPIO17 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO16_Pos (16UL) /*!< GPIO INT0CLR: GPIO16 (Bit 16) */ +#define GPIO_INT0CLR_GPIO16_Msk (0x10000UL) /*!< GPIO INT0CLR: GPIO16 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO15_Pos (15UL) /*!< GPIO INT0CLR: GPIO15 (Bit 15) */ +#define GPIO_INT0CLR_GPIO15_Msk (0x8000UL) /*!< GPIO INT0CLR: GPIO15 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO14_Pos (14UL) /*!< GPIO INT0CLR: GPIO14 (Bit 14) */ +#define GPIO_INT0CLR_GPIO14_Msk (0x4000UL) /*!< GPIO INT0CLR: GPIO14 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO13_Pos (13UL) /*!< GPIO INT0CLR: GPIO13 (Bit 13) */ +#define GPIO_INT0CLR_GPIO13_Msk (0x2000UL) /*!< GPIO INT0CLR: GPIO13 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO12_Pos (12UL) /*!< GPIO INT0CLR: GPIO12 (Bit 12) */ +#define GPIO_INT0CLR_GPIO12_Msk (0x1000UL) /*!< GPIO INT0CLR: GPIO12 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO11_Pos (11UL) /*!< GPIO INT0CLR: GPIO11 (Bit 11) */ +#define GPIO_INT0CLR_GPIO11_Msk (0x800UL) /*!< GPIO INT0CLR: GPIO11 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO10_Pos (10UL) /*!< GPIO INT0CLR: GPIO10 (Bit 10) */ +#define GPIO_INT0CLR_GPIO10_Msk (0x400UL) /*!< GPIO INT0CLR: GPIO10 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO9_Pos (9UL) /*!< GPIO INT0CLR: GPIO9 (Bit 9) */ +#define GPIO_INT0CLR_GPIO9_Msk (0x200UL) /*!< GPIO INT0CLR: GPIO9 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO8_Pos (8UL) /*!< GPIO INT0CLR: GPIO8 (Bit 8) */ +#define GPIO_INT0CLR_GPIO8_Msk (0x100UL) /*!< GPIO INT0CLR: GPIO8 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO7_Pos (7UL) /*!< GPIO INT0CLR: GPIO7 (Bit 7) */ +#define GPIO_INT0CLR_GPIO7_Msk (0x80UL) /*!< GPIO INT0CLR: GPIO7 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO6_Pos (6UL) /*!< GPIO INT0CLR: GPIO6 (Bit 6) */ +#define GPIO_INT0CLR_GPIO6_Msk (0x40UL) /*!< GPIO INT0CLR: GPIO6 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO5_Pos (5UL) /*!< GPIO INT0CLR: GPIO5 (Bit 5) */ +#define GPIO_INT0CLR_GPIO5_Msk (0x20UL) /*!< GPIO INT0CLR: GPIO5 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO4_Pos (4UL) /*!< GPIO INT0CLR: GPIO4 (Bit 4) */ +#define GPIO_INT0CLR_GPIO4_Msk (0x10UL) /*!< GPIO INT0CLR: GPIO4 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO3_Pos (3UL) /*!< GPIO INT0CLR: GPIO3 (Bit 3) */ +#define GPIO_INT0CLR_GPIO3_Msk (0x8UL) /*!< GPIO INT0CLR: GPIO3 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO2_Pos (2UL) /*!< GPIO INT0CLR: GPIO2 (Bit 2) */ +#define GPIO_INT0CLR_GPIO2_Msk (0x4UL) /*!< GPIO INT0CLR: GPIO2 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO1_Pos (1UL) /*!< GPIO INT0CLR: GPIO1 (Bit 1) */ +#define GPIO_INT0CLR_GPIO1_Msk (0x2UL) /*!< GPIO INT0CLR: GPIO1 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0CLR_GPIO0_Pos (0UL) /*!< GPIO INT0CLR: GPIO0 (Bit 0) */ +#define GPIO_INT0CLR_GPIO0_Msk (0x1UL) /*!< GPIO INT0CLR: GPIO0 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT0SET ======================================================== */ +#define GPIO_INT0SET_GPIO31_Pos (31UL) /*!< GPIO INT0SET: GPIO31 (Bit 31) */ +#define GPIO_INT0SET_GPIO31_Msk (0x80000000UL) /*!< GPIO INT0SET: GPIO31 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO30_Pos (30UL) /*!< GPIO INT0SET: GPIO30 (Bit 30) */ +#define GPIO_INT0SET_GPIO30_Msk (0x40000000UL) /*!< GPIO INT0SET: GPIO30 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO29_Pos (29UL) /*!< GPIO INT0SET: GPIO29 (Bit 29) */ +#define GPIO_INT0SET_GPIO29_Msk (0x20000000UL) /*!< GPIO INT0SET: GPIO29 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO28_Pos (28UL) /*!< GPIO INT0SET: GPIO28 (Bit 28) */ +#define GPIO_INT0SET_GPIO28_Msk (0x10000000UL) /*!< GPIO INT0SET: GPIO28 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO27_Pos (27UL) /*!< GPIO INT0SET: GPIO27 (Bit 27) */ +#define GPIO_INT0SET_GPIO27_Msk (0x8000000UL) /*!< GPIO INT0SET: GPIO27 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO26_Pos (26UL) /*!< GPIO INT0SET: GPIO26 (Bit 26) */ +#define GPIO_INT0SET_GPIO26_Msk (0x4000000UL) /*!< GPIO INT0SET: GPIO26 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO25_Pos (25UL) /*!< GPIO INT0SET: GPIO25 (Bit 25) */ +#define GPIO_INT0SET_GPIO25_Msk (0x2000000UL) /*!< GPIO INT0SET: GPIO25 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO24_Pos (24UL) /*!< GPIO INT0SET: GPIO24 (Bit 24) */ +#define GPIO_INT0SET_GPIO24_Msk (0x1000000UL) /*!< GPIO INT0SET: GPIO24 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO23_Pos (23UL) /*!< GPIO INT0SET: GPIO23 (Bit 23) */ +#define GPIO_INT0SET_GPIO23_Msk (0x800000UL) /*!< GPIO INT0SET: GPIO23 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO22_Pos (22UL) /*!< GPIO INT0SET: GPIO22 (Bit 22) */ +#define GPIO_INT0SET_GPIO22_Msk (0x400000UL) /*!< GPIO INT0SET: GPIO22 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO21_Pos (21UL) /*!< GPIO INT0SET: GPIO21 (Bit 21) */ +#define GPIO_INT0SET_GPIO21_Msk (0x200000UL) /*!< GPIO INT0SET: GPIO21 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO20_Pos (20UL) /*!< GPIO INT0SET: GPIO20 (Bit 20) */ +#define GPIO_INT0SET_GPIO20_Msk (0x100000UL) /*!< GPIO INT0SET: GPIO20 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO19_Pos (19UL) /*!< GPIO INT0SET: GPIO19 (Bit 19) */ +#define GPIO_INT0SET_GPIO19_Msk (0x80000UL) /*!< GPIO INT0SET: GPIO19 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO18_Pos (18UL) /*!< GPIO INT0SET: GPIO18 (Bit 18) */ +#define GPIO_INT0SET_GPIO18_Msk (0x40000UL) /*!< GPIO INT0SET: GPIO18 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO17_Pos (17UL) /*!< GPIO INT0SET: GPIO17 (Bit 17) */ +#define GPIO_INT0SET_GPIO17_Msk (0x20000UL) /*!< GPIO INT0SET: GPIO17 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO16_Pos (16UL) /*!< GPIO INT0SET: GPIO16 (Bit 16) */ +#define GPIO_INT0SET_GPIO16_Msk (0x10000UL) /*!< GPIO INT0SET: GPIO16 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO15_Pos (15UL) /*!< GPIO INT0SET: GPIO15 (Bit 15) */ +#define GPIO_INT0SET_GPIO15_Msk (0x8000UL) /*!< GPIO INT0SET: GPIO15 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO14_Pos (14UL) /*!< GPIO INT0SET: GPIO14 (Bit 14) */ +#define GPIO_INT0SET_GPIO14_Msk (0x4000UL) /*!< GPIO INT0SET: GPIO14 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO13_Pos (13UL) /*!< GPIO INT0SET: GPIO13 (Bit 13) */ +#define GPIO_INT0SET_GPIO13_Msk (0x2000UL) /*!< GPIO INT0SET: GPIO13 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO12_Pos (12UL) /*!< GPIO INT0SET: GPIO12 (Bit 12) */ +#define GPIO_INT0SET_GPIO12_Msk (0x1000UL) /*!< GPIO INT0SET: GPIO12 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO11_Pos (11UL) /*!< GPIO INT0SET: GPIO11 (Bit 11) */ +#define GPIO_INT0SET_GPIO11_Msk (0x800UL) /*!< GPIO INT0SET: GPIO11 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO10_Pos (10UL) /*!< GPIO INT0SET: GPIO10 (Bit 10) */ +#define GPIO_INT0SET_GPIO10_Msk (0x400UL) /*!< GPIO INT0SET: GPIO10 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO9_Pos (9UL) /*!< GPIO INT0SET: GPIO9 (Bit 9) */ +#define GPIO_INT0SET_GPIO9_Msk (0x200UL) /*!< GPIO INT0SET: GPIO9 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO8_Pos (8UL) /*!< GPIO INT0SET: GPIO8 (Bit 8) */ +#define GPIO_INT0SET_GPIO8_Msk (0x100UL) /*!< GPIO INT0SET: GPIO8 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO7_Pos (7UL) /*!< GPIO INT0SET: GPIO7 (Bit 7) */ +#define GPIO_INT0SET_GPIO7_Msk (0x80UL) /*!< GPIO INT0SET: GPIO7 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO6_Pos (6UL) /*!< GPIO INT0SET: GPIO6 (Bit 6) */ +#define GPIO_INT0SET_GPIO6_Msk (0x40UL) /*!< GPIO INT0SET: GPIO6 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO5_Pos (5UL) /*!< GPIO INT0SET: GPIO5 (Bit 5) */ +#define GPIO_INT0SET_GPIO5_Msk (0x20UL) /*!< GPIO INT0SET: GPIO5 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO4_Pos (4UL) /*!< GPIO INT0SET: GPIO4 (Bit 4) */ +#define GPIO_INT0SET_GPIO4_Msk (0x10UL) /*!< GPIO INT0SET: GPIO4 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO3_Pos (3UL) /*!< GPIO INT0SET: GPIO3 (Bit 3) */ +#define GPIO_INT0SET_GPIO3_Msk (0x8UL) /*!< GPIO INT0SET: GPIO3 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO2_Pos (2UL) /*!< GPIO INT0SET: GPIO2 (Bit 2) */ +#define GPIO_INT0SET_GPIO2_Msk (0x4UL) /*!< GPIO INT0SET: GPIO2 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO1_Pos (1UL) /*!< GPIO INT0SET: GPIO1 (Bit 1) */ +#define GPIO_INT0SET_GPIO1_Msk (0x2UL) /*!< GPIO INT0SET: GPIO1 (Bitfield-Mask: 0x01) */ +#define GPIO_INT0SET_GPIO0_Pos (0UL) /*!< GPIO INT0SET: GPIO0 (Bit 0) */ +#define GPIO_INT0SET_GPIO0_Msk (0x1UL) /*!< GPIO INT0SET: GPIO0 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT1EN ========================================================= */ +#define GPIO_INT1EN_GPIO63_Pos (31UL) /*!< GPIO INT1EN: GPIO63 (Bit 31) */ +#define GPIO_INT1EN_GPIO63_Msk (0x80000000UL) /*!< GPIO INT1EN: GPIO63 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO62_Pos (30UL) /*!< GPIO INT1EN: GPIO62 (Bit 30) */ +#define GPIO_INT1EN_GPIO62_Msk (0x40000000UL) /*!< GPIO INT1EN: GPIO62 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO61_Pos (29UL) /*!< GPIO INT1EN: GPIO61 (Bit 29) */ +#define GPIO_INT1EN_GPIO61_Msk (0x20000000UL) /*!< GPIO INT1EN: GPIO61 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO60_Pos (28UL) /*!< GPIO INT1EN: GPIO60 (Bit 28) */ +#define GPIO_INT1EN_GPIO60_Msk (0x10000000UL) /*!< GPIO INT1EN: GPIO60 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO59_Pos (27UL) /*!< GPIO INT1EN: GPIO59 (Bit 27) */ +#define GPIO_INT1EN_GPIO59_Msk (0x8000000UL) /*!< GPIO INT1EN: GPIO59 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO58_Pos (26UL) /*!< GPIO INT1EN: GPIO58 (Bit 26) */ +#define GPIO_INT1EN_GPIO58_Msk (0x4000000UL) /*!< GPIO INT1EN: GPIO58 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO57_Pos (25UL) /*!< GPIO INT1EN: GPIO57 (Bit 25) */ +#define GPIO_INT1EN_GPIO57_Msk (0x2000000UL) /*!< GPIO INT1EN: GPIO57 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO56_Pos (24UL) /*!< GPIO INT1EN: GPIO56 (Bit 24) */ +#define GPIO_INT1EN_GPIO56_Msk (0x1000000UL) /*!< GPIO INT1EN: GPIO56 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO55_Pos (23UL) /*!< GPIO INT1EN: GPIO55 (Bit 23) */ +#define GPIO_INT1EN_GPIO55_Msk (0x800000UL) /*!< GPIO INT1EN: GPIO55 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO54_Pos (22UL) /*!< GPIO INT1EN: GPIO54 (Bit 22) */ +#define GPIO_INT1EN_GPIO54_Msk (0x400000UL) /*!< GPIO INT1EN: GPIO54 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO53_Pos (21UL) /*!< GPIO INT1EN: GPIO53 (Bit 21) */ +#define GPIO_INT1EN_GPIO53_Msk (0x200000UL) /*!< GPIO INT1EN: GPIO53 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO52_Pos (20UL) /*!< GPIO INT1EN: GPIO52 (Bit 20) */ +#define GPIO_INT1EN_GPIO52_Msk (0x100000UL) /*!< GPIO INT1EN: GPIO52 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO51_Pos (19UL) /*!< GPIO INT1EN: GPIO51 (Bit 19) */ +#define GPIO_INT1EN_GPIO51_Msk (0x80000UL) /*!< GPIO INT1EN: GPIO51 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO50_Pos (18UL) /*!< GPIO INT1EN: GPIO50 (Bit 18) */ +#define GPIO_INT1EN_GPIO50_Msk (0x40000UL) /*!< GPIO INT1EN: GPIO50 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO49_Pos (17UL) /*!< GPIO INT1EN: GPIO49 (Bit 17) */ +#define GPIO_INT1EN_GPIO49_Msk (0x20000UL) /*!< GPIO INT1EN: GPIO49 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO48_Pos (16UL) /*!< GPIO INT1EN: GPIO48 (Bit 16) */ +#define GPIO_INT1EN_GPIO48_Msk (0x10000UL) /*!< GPIO INT1EN: GPIO48 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO47_Pos (15UL) /*!< GPIO INT1EN: GPIO47 (Bit 15) */ +#define GPIO_INT1EN_GPIO47_Msk (0x8000UL) /*!< GPIO INT1EN: GPIO47 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO46_Pos (14UL) /*!< GPIO INT1EN: GPIO46 (Bit 14) */ +#define GPIO_INT1EN_GPIO46_Msk (0x4000UL) /*!< GPIO INT1EN: GPIO46 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO45_Pos (13UL) /*!< GPIO INT1EN: GPIO45 (Bit 13) */ +#define GPIO_INT1EN_GPIO45_Msk (0x2000UL) /*!< GPIO INT1EN: GPIO45 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO44_Pos (12UL) /*!< GPIO INT1EN: GPIO44 (Bit 12) */ +#define GPIO_INT1EN_GPIO44_Msk (0x1000UL) /*!< GPIO INT1EN: GPIO44 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO43_Pos (11UL) /*!< GPIO INT1EN: GPIO43 (Bit 11) */ +#define GPIO_INT1EN_GPIO43_Msk (0x800UL) /*!< GPIO INT1EN: GPIO43 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO42_Pos (10UL) /*!< GPIO INT1EN: GPIO42 (Bit 10) */ +#define GPIO_INT1EN_GPIO42_Msk (0x400UL) /*!< GPIO INT1EN: GPIO42 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO41_Pos (9UL) /*!< GPIO INT1EN: GPIO41 (Bit 9) */ +#define GPIO_INT1EN_GPIO41_Msk (0x200UL) /*!< GPIO INT1EN: GPIO41 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO40_Pos (8UL) /*!< GPIO INT1EN: GPIO40 (Bit 8) */ +#define GPIO_INT1EN_GPIO40_Msk (0x100UL) /*!< GPIO INT1EN: GPIO40 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO39_Pos (7UL) /*!< GPIO INT1EN: GPIO39 (Bit 7) */ +#define GPIO_INT1EN_GPIO39_Msk (0x80UL) /*!< GPIO INT1EN: GPIO39 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO38_Pos (6UL) /*!< GPIO INT1EN: GPIO38 (Bit 6) */ +#define GPIO_INT1EN_GPIO38_Msk (0x40UL) /*!< GPIO INT1EN: GPIO38 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO37_Pos (5UL) /*!< GPIO INT1EN: GPIO37 (Bit 5) */ +#define GPIO_INT1EN_GPIO37_Msk (0x20UL) /*!< GPIO INT1EN: GPIO37 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO36_Pos (4UL) /*!< GPIO INT1EN: GPIO36 (Bit 4) */ +#define GPIO_INT1EN_GPIO36_Msk (0x10UL) /*!< GPIO INT1EN: GPIO36 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO35_Pos (3UL) /*!< GPIO INT1EN: GPIO35 (Bit 3) */ +#define GPIO_INT1EN_GPIO35_Msk (0x8UL) /*!< GPIO INT1EN: GPIO35 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO34_Pos (2UL) /*!< GPIO INT1EN: GPIO34 (Bit 2) */ +#define GPIO_INT1EN_GPIO34_Msk (0x4UL) /*!< GPIO INT1EN: GPIO34 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO33_Pos (1UL) /*!< GPIO INT1EN: GPIO33 (Bit 1) */ +#define GPIO_INT1EN_GPIO33_Msk (0x2UL) /*!< GPIO INT1EN: GPIO33 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1EN_GPIO32_Pos (0UL) /*!< GPIO INT1EN: GPIO32 (Bit 0) */ +#define GPIO_INT1EN_GPIO32_Msk (0x1UL) /*!< GPIO INT1EN: GPIO32 (Bitfield-Mask: 0x01) */ +/* ======================================================= INT1STAT ======================================================== */ +#define GPIO_INT1STAT_GPIO63_Pos (31UL) /*!< GPIO INT1STAT: GPIO63 (Bit 31) */ +#define GPIO_INT1STAT_GPIO63_Msk (0x80000000UL) /*!< GPIO INT1STAT: GPIO63 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO62_Pos (30UL) /*!< GPIO INT1STAT: GPIO62 (Bit 30) */ +#define GPIO_INT1STAT_GPIO62_Msk (0x40000000UL) /*!< GPIO INT1STAT: GPIO62 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO61_Pos (29UL) /*!< GPIO INT1STAT: GPIO61 (Bit 29) */ +#define GPIO_INT1STAT_GPIO61_Msk (0x20000000UL) /*!< GPIO INT1STAT: GPIO61 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO60_Pos (28UL) /*!< GPIO INT1STAT: GPIO60 (Bit 28) */ +#define GPIO_INT1STAT_GPIO60_Msk (0x10000000UL) /*!< GPIO INT1STAT: GPIO60 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO59_Pos (27UL) /*!< GPIO INT1STAT: GPIO59 (Bit 27) */ +#define GPIO_INT1STAT_GPIO59_Msk (0x8000000UL) /*!< GPIO INT1STAT: GPIO59 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO58_Pos (26UL) /*!< GPIO INT1STAT: GPIO58 (Bit 26) */ +#define GPIO_INT1STAT_GPIO58_Msk (0x4000000UL) /*!< GPIO INT1STAT: GPIO58 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO57_Pos (25UL) /*!< GPIO INT1STAT: GPIO57 (Bit 25) */ +#define GPIO_INT1STAT_GPIO57_Msk (0x2000000UL) /*!< GPIO INT1STAT: GPIO57 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO56_Pos (24UL) /*!< GPIO INT1STAT: GPIO56 (Bit 24) */ +#define GPIO_INT1STAT_GPIO56_Msk (0x1000000UL) /*!< GPIO INT1STAT: GPIO56 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO55_Pos (23UL) /*!< GPIO INT1STAT: GPIO55 (Bit 23) */ +#define GPIO_INT1STAT_GPIO55_Msk (0x800000UL) /*!< GPIO INT1STAT: GPIO55 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO54_Pos (22UL) /*!< GPIO INT1STAT: GPIO54 (Bit 22) */ +#define GPIO_INT1STAT_GPIO54_Msk (0x400000UL) /*!< GPIO INT1STAT: GPIO54 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO53_Pos (21UL) /*!< GPIO INT1STAT: GPIO53 (Bit 21) */ +#define GPIO_INT1STAT_GPIO53_Msk (0x200000UL) /*!< GPIO INT1STAT: GPIO53 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO52_Pos (20UL) /*!< GPIO INT1STAT: GPIO52 (Bit 20) */ +#define GPIO_INT1STAT_GPIO52_Msk (0x100000UL) /*!< GPIO INT1STAT: GPIO52 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO51_Pos (19UL) /*!< GPIO INT1STAT: GPIO51 (Bit 19) */ +#define GPIO_INT1STAT_GPIO51_Msk (0x80000UL) /*!< GPIO INT1STAT: GPIO51 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO50_Pos (18UL) /*!< GPIO INT1STAT: GPIO50 (Bit 18) */ +#define GPIO_INT1STAT_GPIO50_Msk (0x40000UL) /*!< GPIO INT1STAT: GPIO50 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO49_Pos (17UL) /*!< GPIO INT1STAT: GPIO49 (Bit 17) */ +#define GPIO_INT1STAT_GPIO49_Msk (0x20000UL) /*!< GPIO INT1STAT: GPIO49 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO48_Pos (16UL) /*!< GPIO INT1STAT: GPIO48 (Bit 16) */ +#define GPIO_INT1STAT_GPIO48_Msk (0x10000UL) /*!< GPIO INT1STAT: GPIO48 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO47_Pos (15UL) /*!< GPIO INT1STAT: GPIO47 (Bit 15) */ +#define GPIO_INT1STAT_GPIO47_Msk (0x8000UL) /*!< GPIO INT1STAT: GPIO47 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO46_Pos (14UL) /*!< GPIO INT1STAT: GPIO46 (Bit 14) */ +#define GPIO_INT1STAT_GPIO46_Msk (0x4000UL) /*!< GPIO INT1STAT: GPIO46 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO45_Pos (13UL) /*!< GPIO INT1STAT: GPIO45 (Bit 13) */ +#define GPIO_INT1STAT_GPIO45_Msk (0x2000UL) /*!< GPIO INT1STAT: GPIO45 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO44_Pos (12UL) /*!< GPIO INT1STAT: GPIO44 (Bit 12) */ +#define GPIO_INT1STAT_GPIO44_Msk (0x1000UL) /*!< GPIO INT1STAT: GPIO44 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO43_Pos (11UL) /*!< GPIO INT1STAT: GPIO43 (Bit 11) */ +#define GPIO_INT1STAT_GPIO43_Msk (0x800UL) /*!< GPIO INT1STAT: GPIO43 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO42_Pos (10UL) /*!< GPIO INT1STAT: GPIO42 (Bit 10) */ +#define GPIO_INT1STAT_GPIO42_Msk (0x400UL) /*!< GPIO INT1STAT: GPIO42 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO41_Pos (9UL) /*!< GPIO INT1STAT: GPIO41 (Bit 9) */ +#define GPIO_INT1STAT_GPIO41_Msk (0x200UL) /*!< GPIO INT1STAT: GPIO41 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO40_Pos (8UL) /*!< GPIO INT1STAT: GPIO40 (Bit 8) */ +#define GPIO_INT1STAT_GPIO40_Msk (0x100UL) /*!< GPIO INT1STAT: GPIO40 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO39_Pos (7UL) /*!< GPIO INT1STAT: GPIO39 (Bit 7) */ +#define GPIO_INT1STAT_GPIO39_Msk (0x80UL) /*!< GPIO INT1STAT: GPIO39 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO38_Pos (6UL) /*!< GPIO INT1STAT: GPIO38 (Bit 6) */ +#define GPIO_INT1STAT_GPIO38_Msk (0x40UL) /*!< GPIO INT1STAT: GPIO38 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO37_Pos (5UL) /*!< GPIO INT1STAT: GPIO37 (Bit 5) */ +#define GPIO_INT1STAT_GPIO37_Msk (0x20UL) /*!< GPIO INT1STAT: GPIO37 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO36_Pos (4UL) /*!< GPIO INT1STAT: GPIO36 (Bit 4) */ +#define GPIO_INT1STAT_GPIO36_Msk (0x10UL) /*!< GPIO INT1STAT: GPIO36 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO35_Pos (3UL) /*!< GPIO INT1STAT: GPIO35 (Bit 3) */ +#define GPIO_INT1STAT_GPIO35_Msk (0x8UL) /*!< GPIO INT1STAT: GPIO35 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO34_Pos (2UL) /*!< GPIO INT1STAT: GPIO34 (Bit 2) */ +#define GPIO_INT1STAT_GPIO34_Msk (0x4UL) /*!< GPIO INT1STAT: GPIO34 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO33_Pos (1UL) /*!< GPIO INT1STAT: GPIO33 (Bit 1) */ +#define GPIO_INT1STAT_GPIO33_Msk (0x2UL) /*!< GPIO INT1STAT: GPIO33 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1STAT_GPIO32_Pos (0UL) /*!< GPIO INT1STAT: GPIO32 (Bit 0) */ +#define GPIO_INT1STAT_GPIO32_Msk (0x1UL) /*!< GPIO INT1STAT: GPIO32 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT1CLR ======================================================== */ +#define GPIO_INT1CLR_GPIO63_Pos (31UL) /*!< GPIO INT1CLR: GPIO63 (Bit 31) */ +#define GPIO_INT1CLR_GPIO63_Msk (0x80000000UL) /*!< GPIO INT1CLR: GPIO63 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO62_Pos (30UL) /*!< GPIO INT1CLR: GPIO62 (Bit 30) */ +#define GPIO_INT1CLR_GPIO62_Msk (0x40000000UL) /*!< GPIO INT1CLR: GPIO62 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO61_Pos (29UL) /*!< GPIO INT1CLR: GPIO61 (Bit 29) */ +#define GPIO_INT1CLR_GPIO61_Msk (0x20000000UL) /*!< GPIO INT1CLR: GPIO61 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO60_Pos (28UL) /*!< GPIO INT1CLR: GPIO60 (Bit 28) */ +#define GPIO_INT1CLR_GPIO60_Msk (0x10000000UL) /*!< GPIO INT1CLR: GPIO60 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO59_Pos (27UL) /*!< GPIO INT1CLR: GPIO59 (Bit 27) */ +#define GPIO_INT1CLR_GPIO59_Msk (0x8000000UL) /*!< GPIO INT1CLR: GPIO59 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO58_Pos (26UL) /*!< GPIO INT1CLR: GPIO58 (Bit 26) */ +#define GPIO_INT1CLR_GPIO58_Msk (0x4000000UL) /*!< GPIO INT1CLR: GPIO58 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO57_Pos (25UL) /*!< GPIO INT1CLR: GPIO57 (Bit 25) */ +#define GPIO_INT1CLR_GPIO57_Msk (0x2000000UL) /*!< GPIO INT1CLR: GPIO57 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO56_Pos (24UL) /*!< GPIO INT1CLR: GPIO56 (Bit 24) */ +#define GPIO_INT1CLR_GPIO56_Msk (0x1000000UL) /*!< GPIO INT1CLR: GPIO56 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO55_Pos (23UL) /*!< GPIO INT1CLR: GPIO55 (Bit 23) */ +#define GPIO_INT1CLR_GPIO55_Msk (0x800000UL) /*!< GPIO INT1CLR: GPIO55 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO54_Pos (22UL) /*!< GPIO INT1CLR: GPIO54 (Bit 22) */ +#define GPIO_INT1CLR_GPIO54_Msk (0x400000UL) /*!< GPIO INT1CLR: GPIO54 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO53_Pos (21UL) /*!< GPIO INT1CLR: GPIO53 (Bit 21) */ +#define GPIO_INT1CLR_GPIO53_Msk (0x200000UL) /*!< GPIO INT1CLR: GPIO53 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO52_Pos (20UL) /*!< GPIO INT1CLR: GPIO52 (Bit 20) */ +#define GPIO_INT1CLR_GPIO52_Msk (0x100000UL) /*!< GPIO INT1CLR: GPIO52 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO51_Pos (19UL) /*!< GPIO INT1CLR: GPIO51 (Bit 19) */ +#define GPIO_INT1CLR_GPIO51_Msk (0x80000UL) /*!< GPIO INT1CLR: GPIO51 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO50_Pos (18UL) /*!< GPIO INT1CLR: GPIO50 (Bit 18) */ +#define GPIO_INT1CLR_GPIO50_Msk (0x40000UL) /*!< GPIO INT1CLR: GPIO50 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO49_Pos (17UL) /*!< GPIO INT1CLR: GPIO49 (Bit 17) */ +#define GPIO_INT1CLR_GPIO49_Msk (0x20000UL) /*!< GPIO INT1CLR: GPIO49 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO48_Pos (16UL) /*!< GPIO INT1CLR: GPIO48 (Bit 16) */ +#define GPIO_INT1CLR_GPIO48_Msk (0x10000UL) /*!< GPIO INT1CLR: GPIO48 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO47_Pos (15UL) /*!< GPIO INT1CLR: GPIO47 (Bit 15) */ +#define GPIO_INT1CLR_GPIO47_Msk (0x8000UL) /*!< GPIO INT1CLR: GPIO47 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO46_Pos (14UL) /*!< GPIO INT1CLR: GPIO46 (Bit 14) */ +#define GPIO_INT1CLR_GPIO46_Msk (0x4000UL) /*!< GPIO INT1CLR: GPIO46 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO45_Pos (13UL) /*!< GPIO INT1CLR: GPIO45 (Bit 13) */ +#define GPIO_INT1CLR_GPIO45_Msk (0x2000UL) /*!< GPIO INT1CLR: GPIO45 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO44_Pos (12UL) /*!< GPIO INT1CLR: GPIO44 (Bit 12) */ +#define GPIO_INT1CLR_GPIO44_Msk (0x1000UL) /*!< GPIO INT1CLR: GPIO44 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO43_Pos (11UL) /*!< GPIO INT1CLR: GPIO43 (Bit 11) */ +#define GPIO_INT1CLR_GPIO43_Msk (0x800UL) /*!< GPIO INT1CLR: GPIO43 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO42_Pos (10UL) /*!< GPIO INT1CLR: GPIO42 (Bit 10) */ +#define GPIO_INT1CLR_GPIO42_Msk (0x400UL) /*!< GPIO INT1CLR: GPIO42 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO41_Pos (9UL) /*!< GPIO INT1CLR: GPIO41 (Bit 9) */ +#define GPIO_INT1CLR_GPIO41_Msk (0x200UL) /*!< GPIO INT1CLR: GPIO41 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO40_Pos (8UL) /*!< GPIO INT1CLR: GPIO40 (Bit 8) */ +#define GPIO_INT1CLR_GPIO40_Msk (0x100UL) /*!< GPIO INT1CLR: GPIO40 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO39_Pos (7UL) /*!< GPIO INT1CLR: GPIO39 (Bit 7) */ +#define GPIO_INT1CLR_GPIO39_Msk (0x80UL) /*!< GPIO INT1CLR: GPIO39 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO38_Pos (6UL) /*!< GPIO INT1CLR: GPIO38 (Bit 6) */ +#define GPIO_INT1CLR_GPIO38_Msk (0x40UL) /*!< GPIO INT1CLR: GPIO38 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO37_Pos (5UL) /*!< GPIO INT1CLR: GPIO37 (Bit 5) */ +#define GPIO_INT1CLR_GPIO37_Msk (0x20UL) /*!< GPIO INT1CLR: GPIO37 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO36_Pos (4UL) /*!< GPIO INT1CLR: GPIO36 (Bit 4) */ +#define GPIO_INT1CLR_GPIO36_Msk (0x10UL) /*!< GPIO INT1CLR: GPIO36 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO35_Pos (3UL) /*!< GPIO INT1CLR: GPIO35 (Bit 3) */ +#define GPIO_INT1CLR_GPIO35_Msk (0x8UL) /*!< GPIO INT1CLR: GPIO35 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO34_Pos (2UL) /*!< GPIO INT1CLR: GPIO34 (Bit 2) */ +#define GPIO_INT1CLR_GPIO34_Msk (0x4UL) /*!< GPIO INT1CLR: GPIO34 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO33_Pos (1UL) /*!< GPIO INT1CLR: GPIO33 (Bit 1) */ +#define GPIO_INT1CLR_GPIO33_Msk (0x2UL) /*!< GPIO INT1CLR: GPIO33 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1CLR_GPIO32_Pos (0UL) /*!< GPIO INT1CLR: GPIO32 (Bit 0) */ +#define GPIO_INT1CLR_GPIO32_Msk (0x1UL) /*!< GPIO INT1CLR: GPIO32 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT1SET ======================================================== */ +#define GPIO_INT1SET_GPIO63_Pos (31UL) /*!< GPIO INT1SET: GPIO63 (Bit 31) */ +#define GPIO_INT1SET_GPIO63_Msk (0x80000000UL) /*!< GPIO INT1SET: GPIO63 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO62_Pos (30UL) /*!< GPIO INT1SET: GPIO62 (Bit 30) */ +#define GPIO_INT1SET_GPIO62_Msk (0x40000000UL) /*!< GPIO INT1SET: GPIO62 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO61_Pos (29UL) /*!< GPIO INT1SET: GPIO61 (Bit 29) */ +#define GPIO_INT1SET_GPIO61_Msk (0x20000000UL) /*!< GPIO INT1SET: GPIO61 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO60_Pos (28UL) /*!< GPIO INT1SET: GPIO60 (Bit 28) */ +#define GPIO_INT1SET_GPIO60_Msk (0x10000000UL) /*!< GPIO INT1SET: GPIO60 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO59_Pos (27UL) /*!< GPIO INT1SET: GPIO59 (Bit 27) */ +#define GPIO_INT1SET_GPIO59_Msk (0x8000000UL) /*!< GPIO INT1SET: GPIO59 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO58_Pos (26UL) /*!< GPIO INT1SET: GPIO58 (Bit 26) */ +#define GPIO_INT1SET_GPIO58_Msk (0x4000000UL) /*!< GPIO INT1SET: GPIO58 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO57_Pos (25UL) /*!< GPIO INT1SET: GPIO57 (Bit 25) */ +#define GPIO_INT1SET_GPIO57_Msk (0x2000000UL) /*!< GPIO INT1SET: GPIO57 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO56_Pos (24UL) /*!< GPIO INT1SET: GPIO56 (Bit 24) */ +#define GPIO_INT1SET_GPIO56_Msk (0x1000000UL) /*!< GPIO INT1SET: GPIO56 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO55_Pos (23UL) /*!< GPIO INT1SET: GPIO55 (Bit 23) */ +#define GPIO_INT1SET_GPIO55_Msk (0x800000UL) /*!< GPIO INT1SET: GPIO55 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO54_Pos (22UL) /*!< GPIO INT1SET: GPIO54 (Bit 22) */ +#define GPIO_INT1SET_GPIO54_Msk (0x400000UL) /*!< GPIO INT1SET: GPIO54 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO53_Pos (21UL) /*!< GPIO INT1SET: GPIO53 (Bit 21) */ +#define GPIO_INT1SET_GPIO53_Msk (0x200000UL) /*!< GPIO INT1SET: GPIO53 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO52_Pos (20UL) /*!< GPIO INT1SET: GPIO52 (Bit 20) */ +#define GPIO_INT1SET_GPIO52_Msk (0x100000UL) /*!< GPIO INT1SET: GPIO52 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO51_Pos (19UL) /*!< GPIO INT1SET: GPIO51 (Bit 19) */ +#define GPIO_INT1SET_GPIO51_Msk (0x80000UL) /*!< GPIO INT1SET: GPIO51 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO50_Pos (18UL) /*!< GPIO INT1SET: GPIO50 (Bit 18) */ +#define GPIO_INT1SET_GPIO50_Msk (0x40000UL) /*!< GPIO INT1SET: GPIO50 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO49_Pos (17UL) /*!< GPIO INT1SET: GPIO49 (Bit 17) */ +#define GPIO_INT1SET_GPIO49_Msk (0x20000UL) /*!< GPIO INT1SET: GPIO49 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO48_Pos (16UL) /*!< GPIO INT1SET: GPIO48 (Bit 16) */ +#define GPIO_INT1SET_GPIO48_Msk (0x10000UL) /*!< GPIO INT1SET: GPIO48 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO47_Pos (15UL) /*!< GPIO INT1SET: GPIO47 (Bit 15) */ +#define GPIO_INT1SET_GPIO47_Msk (0x8000UL) /*!< GPIO INT1SET: GPIO47 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO46_Pos (14UL) /*!< GPIO INT1SET: GPIO46 (Bit 14) */ +#define GPIO_INT1SET_GPIO46_Msk (0x4000UL) /*!< GPIO INT1SET: GPIO46 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO45_Pos (13UL) /*!< GPIO INT1SET: GPIO45 (Bit 13) */ +#define GPIO_INT1SET_GPIO45_Msk (0x2000UL) /*!< GPIO INT1SET: GPIO45 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO44_Pos (12UL) /*!< GPIO INT1SET: GPIO44 (Bit 12) */ +#define GPIO_INT1SET_GPIO44_Msk (0x1000UL) /*!< GPIO INT1SET: GPIO44 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO43_Pos (11UL) /*!< GPIO INT1SET: GPIO43 (Bit 11) */ +#define GPIO_INT1SET_GPIO43_Msk (0x800UL) /*!< GPIO INT1SET: GPIO43 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO42_Pos (10UL) /*!< GPIO INT1SET: GPIO42 (Bit 10) */ +#define GPIO_INT1SET_GPIO42_Msk (0x400UL) /*!< GPIO INT1SET: GPIO42 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO41_Pos (9UL) /*!< GPIO INT1SET: GPIO41 (Bit 9) */ +#define GPIO_INT1SET_GPIO41_Msk (0x200UL) /*!< GPIO INT1SET: GPIO41 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO40_Pos (8UL) /*!< GPIO INT1SET: GPIO40 (Bit 8) */ +#define GPIO_INT1SET_GPIO40_Msk (0x100UL) /*!< GPIO INT1SET: GPIO40 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO39_Pos (7UL) /*!< GPIO INT1SET: GPIO39 (Bit 7) */ +#define GPIO_INT1SET_GPIO39_Msk (0x80UL) /*!< GPIO INT1SET: GPIO39 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO38_Pos (6UL) /*!< GPIO INT1SET: GPIO38 (Bit 6) */ +#define GPIO_INT1SET_GPIO38_Msk (0x40UL) /*!< GPIO INT1SET: GPIO38 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO37_Pos (5UL) /*!< GPIO INT1SET: GPIO37 (Bit 5) */ +#define GPIO_INT1SET_GPIO37_Msk (0x20UL) /*!< GPIO INT1SET: GPIO37 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO36_Pos (4UL) /*!< GPIO INT1SET: GPIO36 (Bit 4) */ +#define GPIO_INT1SET_GPIO36_Msk (0x10UL) /*!< GPIO INT1SET: GPIO36 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO35_Pos (3UL) /*!< GPIO INT1SET: GPIO35 (Bit 3) */ +#define GPIO_INT1SET_GPIO35_Msk (0x8UL) /*!< GPIO INT1SET: GPIO35 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO34_Pos (2UL) /*!< GPIO INT1SET: GPIO34 (Bit 2) */ +#define GPIO_INT1SET_GPIO34_Msk (0x4UL) /*!< GPIO INT1SET: GPIO34 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO33_Pos (1UL) /*!< GPIO INT1SET: GPIO33 (Bit 1) */ +#define GPIO_INT1SET_GPIO33_Msk (0x2UL) /*!< GPIO INT1SET: GPIO33 (Bitfield-Mask: 0x01) */ +#define GPIO_INT1SET_GPIO32_Pos (0UL) /*!< GPIO INT1SET: GPIO32 (Bit 0) */ +#define GPIO_INT1SET_GPIO32_Msk (0x1UL) /*!< GPIO INT1SET: GPIO32 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT2EN ========================================================= */ +#define GPIO_INT2EN_GPIO73_Pos (9UL) /*!< GPIO INT2EN: GPIO73 (Bit 9) */ +#define GPIO_INT2EN_GPIO73_Msk (0x200UL) /*!< GPIO INT2EN: GPIO73 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO72_Pos (8UL) /*!< GPIO INT2EN: GPIO72 (Bit 8) */ +#define GPIO_INT2EN_GPIO72_Msk (0x100UL) /*!< GPIO INT2EN: GPIO72 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO71_Pos (7UL) /*!< GPIO INT2EN: GPIO71 (Bit 7) */ +#define GPIO_INT2EN_GPIO71_Msk (0x80UL) /*!< GPIO INT2EN: GPIO71 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO70_Pos (6UL) /*!< GPIO INT2EN: GPIO70 (Bit 6) */ +#define GPIO_INT2EN_GPIO70_Msk (0x40UL) /*!< GPIO INT2EN: GPIO70 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO69_Pos (5UL) /*!< GPIO INT2EN: GPIO69 (Bit 5) */ +#define GPIO_INT2EN_GPIO69_Msk (0x20UL) /*!< GPIO INT2EN: GPIO69 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO68_Pos (4UL) /*!< GPIO INT2EN: GPIO68 (Bit 4) */ +#define GPIO_INT2EN_GPIO68_Msk (0x10UL) /*!< GPIO INT2EN: GPIO68 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO67_Pos (3UL) /*!< GPIO INT2EN: GPIO67 (Bit 3) */ +#define GPIO_INT2EN_GPIO67_Msk (0x8UL) /*!< GPIO INT2EN: GPIO67 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO66_Pos (2UL) /*!< GPIO INT2EN: GPIO66 (Bit 2) */ +#define GPIO_INT2EN_GPIO66_Msk (0x4UL) /*!< GPIO INT2EN: GPIO66 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO65_Pos (1UL) /*!< GPIO INT2EN: GPIO65 (Bit 1) */ +#define GPIO_INT2EN_GPIO65_Msk (0x2UL) /*!< GPIO INT2EN: GPIO65 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2EN_GPIO64_Pos (0UL) /*!< GPIO INT2EN: GPIO64 (Bit 0) */ +#define GPIO_INT2EN_GPIO64_Msk (0x1UL) /*!< GPIO INT2EN: GPIO64 (Bitfield-Mask: 0x01) */ +/* ======================================================= INT2STAT ======================================================== */ +#define GPIO_INT2STAT_GPIO73_Pos (9UL) /*!< GPIO INT2STAT: GPIO73 (Bit 9) */ +#define GPIO_INT2STAT_GPIO73_Msk (0x200UL) /*!< GPIO INT2STAT: GPIO73 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO72_Pos (8UL) /*!< GPIO INT2STAT: GPIO72 (Bit 8) */ +#define GPIO_INT2STAT_GPIO72_Msk (0x100UL) /*!< GPIO INT2STAT: GPIO72 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO71_Pos (7UL) /*!< GPIO INT2STAT: GPIO71 (Bit 7) */ +#define GPIO_INT2STAT_GPIO71_Msk (0x80UL) /*!< GPIO INT2STAT: GPIO71 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO70_Pos (6UL) /*!< GPIO INT2STAT: GPIO70 (Bit 6) */ +#define GPIO_INT2STAT_GPIO70_Msk (0x40UL) /*!< GPIO INT2STAT: GPIO70 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO69_Pos (5UL) /*!< GPIO INT2STAT: GPIO69 (Bit 5) */ +#define GPIO_INT2STAT_GPIO69_Msk (0x20UL) /*!< GPIO INT2STAT: GPIO69 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO68_Pos (4UL) /*!< GPIO INT2STAT: GPIO68 (Bit 4) */ +#define GPIO_INT2STAT_GPIO68_Msk (0x10UL) /*!< GPIO INT2STAT: GPIO68 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO67_Pos (3UL) /*!< GPIO INT2STAT: GPIO67 (Bit 3) */ +#define GPIO_INT2STAT_GPIO67_Msk (0x8UL) /*!< GPIO INT2STAT: GPIO67 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO66_Pos (2UL) /*!< GPIO INT2STAT: GPIO66 (Bit 2) */ +#define GPIO_INT2STAT_GPIO66_Msk (0x4UL) /*!< GPIO INT2STAT: GPIO66 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO65_Pos (1UL) /*!< GPIO INT2STAT: GPIO65 (Bit 1) */ +#define GPIO_INT2STAT_GPIO65_Msk (0x2UL) /*!< GPIO INT2STAT: GPIO65 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2STAT_GPIO64_Pos (0UL) /*!< GPIO INT2STAT: GPIO64 (Bit 0) */ +#define GPIO_INT2STAT_GPIO64_Msk (0x1UL) /*!< GPIO INT2STAT: GPIO64 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT2CLR ======================================================== */ +#define GPIO_INT2CLR_GPIO73_Pos (9UL) /*!< GPIO INT2CLR: GPIO73 (Bit 9) */ +#define GPIO_INT2CLR_GPIO73_Msk (0x200UL) /*!< GPIO INT2CLR: GPIO73 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO72_Pos (8UL) /*!< GPIO INT2CLR: GPIO72 (Bit 8) */ +#define GPIO_INT2CLR_GPIO72_Msk (0x100UL) /*!< GPIO INT2CLR: GPIO72 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO71_Pos (7UL) /*!< GPIO INT2CLR: GPIO71 (Bit 7) */ +#define GPIO_INT2CLR_GPIO71_Msk (0x80UL) /*!< GPIO INT2CLR: GPIO71 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO70_Pos (6UL) /*!< GPIO INT2CLR: GPIO70 (Bit 6) */ +#define GPIO_INT2CLR_GPIO70_Msk (0x40UL) /*!< GPIO INT2CLR: GPIO70 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO69_Pos (5UL) /*!< GPIO INT2CLR: GPIO69 (Bit 5) */ +#define GPIO_INT2CLR_GPIO69_Msk (0x20UL) /*!< GPIO INT2CLR: GPIO69 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO68_Pos (4UL) /*!< GPIO INT2CLR: GPIO68 (Bit 4) */ +#define GPIO_INT2CLR_GPIO68_Msk (0x10UL) /*!< GPIO INT2CLR: GPIO68 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO67_Pos (3UL) /*!< GPIO INT2CLR: GPIO67 (Bit 3) */ +#define GPIO_INT2CLR_GPIO67_Msk (0x8UL) /*!< GPIO INT2CLR: GPIO67 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO66_Pos (2UL) /*!< GPIO INT2CLR: GPIO66 (Bit 2) */ +#define GPIO_INT2CLR_GPIO66_Msk (0x4UL) /*!< GPIO INT2CLR: GPIO66 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO65_Pos (1UL) /*!< GPIO INT2CLR: GPIO65 (Bit 1) */ +#define GPIO_INT2CLR_GPIO65_Msk (0x2UL) /*!< GPIO INT2CLR: GPIO65 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2CLR_GPIO64_Pos (0UL) /*!< GPIO INT2CLR: GPIO64 (Bit 0) */ +#define GPIO_INT2CLR_GPIO64_Msk (0x1UL) /*!< GPIO INT2CLR: GPIO64 (Bitfield-Mask: 0x01) */ +/* ======================================================== INT2SET ======================================================== */ +#define GPIO_INT2SET_GPIO73_Pos (9UL) /*!< GPIO INT2SET: GPIO73 (Bit 9) */ +#define GPIO_INT2SET_GPIO73_Msk (0x200UL) /*!< GPIO INT2SET: GPIO73 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO72_Pos (8UL) /*!< GPIO INT2SET: GPIO72 (Bit 8) */ +#define GPIO_INT2SET_GPIO72_Msk (0x100UL) /*!< GPIO INT2SET: GPIO72 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO71_Pos (7UL) /*!< GPIO INT2SET: GPIO71 (Bit 7) */ +#define GPIO_INT2SET_GPIO71_Msk (0x80UL) /*!< GPIO INT2SET: GPIO71 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO70_Pos (6UL) /*!< GPIO INT2SET: GPIO70 (Bit 6) */ +#define GPIO_INT2SET_GPIO70_Msk (0x40UL) /*!< GPIO INT2SET: GPIO70 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO69_Pos (5UL) /*!< GPIO INT2SET: GPIO69 (Bit 5) */ +#define GPIO_INT2SET_GPIO69_Msk (0x20UL) /*!< GPIO INT2SET: GPIO69 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO68_Pos (4UL) /*!< GPIO INT2SET: GPIO68 (Bit 4) */ +#define GPIO_INT2SET_GPIO68_Msk (0x10UL) /*!< GPIO INT2SET: GPIO68 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO67_Pos (3UL) /*!< GPIO INT2SET: GPIO67 (Bit 3) */ +#define GPIO_INT2SET_GPIO67_Msk (0x8UL) /*!< GPIO INT2SET: GPIO67 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO66_Pos (2UL) /*!< GPIO INT2SET: GPIO66 (Bit 2) */ +#define GPIO_INT2SET_GPIO66_Msk (0x4UL) /*!< GPIO INT2SET: GPIO66 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO65_Pos (1UL) /*!< GPIO INT2SET: GPIO65 (Bit 1) */ +#define GPIO_INT2SET_GPIO65_Msk (0x2UL) /*!< GPIO INT2SET: GPIO65 (Bitfield-Mask: 0x01) */ +#define GPIO_INT2SET_GPIO64_Pos (0UL) /*!< GPIO INT2SET: GPIO64 (Bit 0) */ +#define GPIO_INT2SET_GPIO64_Msk (0x1UL) /*!< GPIO INT2SET: GPIO64 (Bitfield-Mask: 0x01) */ +/* ======================================================== DBGCTRL ======================================================== */ +#define GPIO_DBGCTRL_GCLK5_Pos (5UL) /*!< GPIO DBGCTRL: GCLK5 (Bit 5) */ +#define GPIO_DBGCTRL_GCLK5_Msk (0x20UL) /*!< GPIO DBGCTRL: GCLK5 (Bitfield-Mask: 0x01) */ +#define GPIO_DBGCTRL_GCLK4_Pos (4UL) /*!< GPIO DBGCTRL: GCLK4 (Bit 4) */ +#define GPIO_DBGCTRL_GCLK4_Msk (0x10UL) /*!< GPIO DBGCTRL: GCLK4 (Bitfield-Mask: 0x01) */ +#define GPIO_DBGCTRL_GCLK3_Pos (3UL) /*!< GPIO DBGCTRL: GCLK3 (Bit 3) */ +#define GPIO_DBGCTRL_GCLK3_Msk (0x8UL) /*!< GPIO DBGCTRL: GCLK3 (Bitfield-Mask: 0x01) */ +#define GPIO_DBGCTRL_GCLK2_Pos (2UL) /*!< GPIO DBGCTRL: GCLK2 (Bit 2) */ +#define GPIO_DBGCTRL_GCLK2_Msk (0x4UL) /*!< GPIO DBGCTRL: GCLK2 (Bitfield-Mask: 0x01) */ +#define GPIO_DBGCTRL_GCLK1_Pos (1UL) /*!< GPIO DBGCTRL: GCLK1 (Bit 1) */ +#define GPIO_DBGCTRL_GCLK1_Msk (0x2UL) /*!< GPIO DBGCTRL: GCLK1 (Bitfield-Mask: 0x01) */ +#define GPIO_DBGCTRL_GCLK0_Pos (0UL) /*!< GPIO DBGCTRL: GCLK0 (Bit 0) */ +#define GPIO_DBGCTRL_GCLK0_Msk (0x1UL) /*!< GPIO DBGCTRL: GCLK0 (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ IOM0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= FIFO ========================================================== */ +#define IOM0_FIFO_FIFO_Pos (0UL) /*!< IOM0 FIFO: FIFO (Bit 0) */ +#define IOM0_FIFO_FIFO_Msk (0xffffffffUL) /*!< IOM0 FIFO: FIFO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== FIFOPTR ======================================================== */ +#define IOM0_FIFOPTR_FIFO1REM_Pos (24UL) /*!< IOM0 FIFOPTR: FIFO1REM (Bit 24) */ +#define IOM0_FIFOPTR_FIFO1REM_Msk (0xff000000UL) /*!< IOM0 FIFOPTR: FIFO1REM (Bitfield-Mask: 0xff) */ +#define IOM0_FIFOPTR_FIFO1SIZ_Pos (16UL) /*!< IOM0 FIFOPTR: FIFO1SIZ (Bit 16) */ +#define IOM0_FIFOPTR_FIFO1SIZ_Msk (0xff0000UL) /*!< IOM0 FIFOPTR: FIFO1SIZ (Bitfield-Mask: 0xff) */ +#define IOM0_FIFOPTR_FIFO0REM_Pos (8UL) /*!< IOM0 FIFOPTR: FIFO0REM (Bit 8) */ +#define IOM0_FIFOPTR_FIFO0REM_Msk (0xff00UL) /*!< IOM0 FIFOPTR: FIFO0REM (Bitfield-Mask: 0xff) */ +#define IOM0_FIFOPTR_FIFO0SIZ_Pos (0UL) /*!< IOM0 FIFOPTR: FIFO0SIZ (Bit 0) */ +#define IOM0_FIFOPTR_FIFO0SIZ_Msk (0xffUL) /*!< IOM0 FIFOPTR: FIFO0SIZ (Bitfield-Mask: 0xff) */ +/* ======================================================== FIFOTHR ======================================================== */ +#define IOM0_FIFOTHR_FIFOWTHR_Pos (8UL) /*!< IOM0 FIFOTHR: FIFOWTHR (Bit 8) */ +#define IOM0_FIFOTHR_FIFOWTHR_Msk (0x3f00UL) /*!< IOM0 FIFOTHR: FIFOWTHR (Bitfield-Mask: 0x3f) */ +#define IOM0_FIFOTHR_FIFORTHR_Pos (0UL) /*!< IOM0 FIFOTHR: FIFORTHR (Bit 0) */ +#define IOM0_FIFOTHR_FIFORTHR_Msk (0x3fUL) /*!< IOM0 FIFOTHR: FIFORTHR (Bitfield-Mask: 0x3f) */ +/* ======================================================== FIFOPOP ======================================================== */ +#define IOM0_FIFOPOP_FIFODOUT_Pos (0UL) /*!< IOM0 FIFOPOP: FIFODOUT (Bit 0) */ +#define IOM0_FIFOPOP_FIFODOUT_Msk (0xffffffffUL) /*!< IOM0 FIFOPOP: FIFODOUT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FIFOPUSH ======================================================== */ +#define IOM0_FIFOPUSH_FIFODIN_Pos (0UL) /*!< IOM0 FIFOPUSH: FIFODIN (Bit 0) */ +#define IOM0_FIFOPUSH_FIFODIN_Msk (0xffffffffUL) /*!< IOM0 FIFOPUSH: FIFODIN (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FIFOCTRL ======================================================== */ +#define IOM0_FIFOCTRL_FIFORSTN_Pos (1UL) /*!< IOM0 FIFOCTRL: FIFORSTN (Bit 1) */ +#define IOM0_FIFOCTRL_FIFORSTN_Msk (0x2UL) /*!< IOM0 FIFOCTRL: FIFORSTN (Bitfield-Mask: 0x01) */ +#define IOM0_FIFOCTRL_POPWR_Pos (0UL) /*!< IOM0 FIFOCTRL: POPWR (Bit 0) */ +#define IOM0_FIFOCTRL_POPWR_Msk (0x1UL) /*!< IOM0 FIFOCTRL: POPWR (Bitfield-Mask: 0x01) */ +/* ======================================================== FIFOLOC ======================================================== */ +#define IOM0_FIFOLOC_FIFORPTR_Pos (8UL) /*!< IOM0 FIFOLOC: FIFORPTR (Bit 8) */ +#define IOM0_FIFOLOC_FIFORPTR_Msk (0xf00UL) /*!< IOM0 FIFOLOC: FIFORPTR (Bitfield-Mask: 0x0f) */ +#define IOM0_FIFOLOC_FIFOWPTR_Pos (0UL) /*!< IOM0 FIFOLOC: FIFOWPTR (Bit 0) */ +#define IOM0_FIFOLOC_FIFOWPTR_Msk (0xfUL) /*!< IOM0 FIFOLOC: FIFOWPTR (Bitfield-Mask: 0x0f) */ +/* ========================================================= INTEN ========================================================= */ +#define IOM0_INTEN_CQERR_Pos (14UL) /*!< IOM0 INTEN: CQERR (Bit 14) */ +#define IOM0_INTEN_CQERR_Msk (0x4000UL) /*!< IOM0 INTEN: CQERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_CQUPD_Pos (13UL) /*!< IOM0 INTEN: CQUPD (Bit 13) */ +#define IOM0_INTEN_CQUPD_Msk (0x2000UL) /*!< IOM0 INTEN: CQUPD (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_CQPAUSED_Pos (12UL) /*!< IOM0 INTEN: CQPAUSED (Bit 12) */ +#define IOM0_INTEN_CQPAUSED_Msk (0x1000UL) /*!< IOM0 INTEN: CQPAUSED (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_DERR_Pos (11UL) /*!< IOM0 INTEN: DERR (Bit 11) */ +#define IOM0_INTEN_DERR_Msk (0x800UL) /*!< IOM0 INTEN: DERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_DCMP_Pos (10UL) /*!< IOM0 INTEN: DCMP (Bit 10) */ +#define IOM0_INTEN_DCMP_Msk (0x400UL) /*!< IOM0 INTEN: DCMP (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_ARB_Pos (9UL) /*!< IOM0 INTEN: ARB (Bit 9) */ +#define IOM0_INTEN_ARB_Msk (0x200UL) /*!< IOM0 INTEN: ARB (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_STOP_Pos (8UL) /*!< IOM0 INTEN: STOP (Bit 8) */ +#define IOM0_INTEN_STOP_Msk (0x100UL) /*!< IOM0 INTEN: STOP (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_START_Pos (7UL) /*!< IOM0 INTEN: START (Bit 7) */ +#define IOM0_INTEN_START_Msk (0x80UL) /*!< IOM0 INTEN: START (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_ICMD_Pos (6UL) /*!< IOM0 INTEN: ICMD (Bit 6) */ +#define IOM0_INTEN_ICMD_Msk (0x40UL) /*!< IOM0 INTEN: ICMD (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_IACC_Pos (5UL) /*!< IOM0 INTEN: IACC (Bit 5) */ +#define IOM0_INTEN_IACC_Msk (0x20UL) /*!< IOM0 INTEN: IACC (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_NAK_Pos (4UL) /*!< IOM0 INTEN: NAK (Bit 4) */ +#define IOM0_INTEN_NAK_Msk (0x10UL) /*!< IOM0 INTEN: NAK (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_FOVFL_Pos (3UL) /*!< IOM0 INTEN: FOVFL (Bit 3) */ +#define IOM0_INTEN_FOVFL_Msk (0x8UL) /*!< IOM0 INTEN: FOVFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_FUNDFL_Pos (2UL) /*!< IOM0 INTEN: FUNDFL (Bit 2) */ +#define IOM0_INTEN_FUNDFL_Msk (0x4UL) /*!< IOM0 INTEN: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_THR_Pos (1UL) /*!< IOM0 INTEN: THR (Bit 1) */ +#define IOM0_INTEN_THR_Msk (0x2UL) /*!< IOM0 INTEN: THR (Bitfield-Mask: 0x01) */ +#define IOM0_INTEN_CMDCMP_Pos (0UL) /*!< IOM0 INTEN: CMDCMP (Bit 0) */ +#define IOM0_INTEN_CMDCMP_Msk (0x1UL) /*!< IOM0 INTEN: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define IOM0_INTSTAT_CQERR_Pos (14UL) /*!< IOM0 INTSTAT: CQERR (Bit 14) */ +#define IOM0_INTSTAT_CQERR_Msk (0x4000UL) /*!< IOM0 INTSTAT: CQERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_CQUPD_Pos (13UL) /*!< IOM0 INTSTAT: CQUPD (Bit 13) */ +#define IOM0_INTSTAT_CQUPD_Msk (0x2000UL) /*!< IOM0 INTSTAT: CQUPD (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_CQPAUSED_Pos (12UL) /*!< IOM0 INTSTAT: CQPAUSED (Bit 12) */ +#define IOM0_INTSTAT_CQPAUSED_Msk (0x1000UL) /*!< IOM0 INTSTAT: CQPAUSED (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_DERR_Pos (11UL) /*!< IOM0 INTSTAT: DERR (Bit 11) */ +#define IOM0_INTSTAT_DERR_Msk (0x800UL) /*!< IOM0 INTSTAT: DERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_DCMP_Pos (10UL) /*!< IOM0 INTSTAT: DCMP (Bit 10) */ +#define IOM0_INTSTAT_DCMP_Msk (0x400UL) /*!< IOM0 INTSTAT: DCMP (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_ARB_Pos (9UL) /*!< IOM0 INTSTAT: ARB (Bit 9) */ +#define IOM0_INTSTAT_ARB_Msk (0x200UL) /*!< IOM0 INTSTAT: ARB (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_STOP_Pos (8UL) /*!< IOM0 INTSTAT: STOP (Bit 8) */ +#define IOM0_INTSTAT_STOP_Msk (0x100UL) /*!< IOM0 INTSTAT: STOP (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_START_Pos (7UL) /*!< IOM0 INTSTAT: START (Bit 7) */ +#define IOM0_INTSTAT_START_Msk (0x80UL) /*!< IOM0 INTSTAT: START (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_ICMD_Pos (6UL) /*!< IOM0 INTSTAT: ICMD (Bit 6) */ +#define IOM0_INTSTAT_ICMD_Msk (0x40UL) /*!< IOM0 INTSTAT: ICMD (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_IACC_Pos (5UL) /*!< IOM0 INTSTAT: IACC (Bit 5) */ +#define IOM0_INTSTAT_IACC_Msk (0x20UL) /*!< IOM0 INTSTAT: IACC (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_NAK_Pos (4UL) /*!< IOM0 INTSTAT: NAK (Bit 4) */ +#define IOM0_INTSTAT_NAK_Msk (0x10UL) /*!< IOM0 INTSTAT: NAK (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_FOVFL_Pos (3UL) /*!< IOM0 INTSTAT: FOVFL (Bit 3) */ +#define IOM0_INTSTAT_FOVFL_Msk (0x8UL) /*!< IOM0 INTSTAT: FOVFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_FUNDFL_Pos (2UL) /*!< IOM0 INTSTAT: FUNDFL (Bit 2) */ +#define IOM0_INTSTAT_FUNDFL_Msk (0x4UL) /*!< IOM0 INTSTAT: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_THR_Pos (1UL) /*!< IOM0 INTSTAT: THR (Bit 1) */ +#define IOM0_INTSTAT_THR_Msk (0x2UL) /*!< IOM0 INTSTAT: THR (Bitfield-Mask: 0x01) */ +#define IOM0_INTSTAT_CMDCMP_Pos (0UL) /*!< IOM0 INTSTAT: CMDCMP (Bit 0) */ +#define IOM0_INTSTAT_CMDCMP_Msk (0x1UL) /*!< IOM0 INTSTAT: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define IOM0_INTCLR_CQERR_Pos (14UL) /*!< IOM0 INTCLR: CQERR (Bit 14) */ +#define IOM0_INTCLR_CQERR_Msk (0x4000UL) /*!< IOM0 INTCLR: CQERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_CQUPD_Pos (13UL) /*!< IOM0 INTCLR: CQUPD (Bit 13) */ +#define IOM0_INTCLR_CQUPD_Msk (0x2000UL) /*!< IOM0 INTCLR: CQUPD (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_CQPAUSED_Pos (12UL) /*!< IOM0 INTCLR: CQPAUSED (Bit 12) */ +#define IOM0_INTCLR_CQPAUSED_Msk (0x1000UL) /*!< IOM0 INTCLR: CQPAUSED (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_DERR_Pos (11UL) /*!< IOM0 INTCLR: DERR (Bit 11) */ +#define IOM0_INTCLR_DERR_Msk (0x800UL) /*!< IOM0 INTCLR: DERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_DCMP_Pos (10UL) /*!< IOM0 INTCLR: DCMP (Bit 10) */ +#define IOM0_INTCLR_DCMP_Msk (0x400UL) /*!< IOM0 INTCLR: DCMP (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_ARB_Pos (9UL) /*!< IOM0 INTCLR: ARB (Bit 9) */ +#define IOM0_INTCLR_ARB_Msk (0x200UL) /*!< IOM0 INTCLR: ARB (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_STOP_Pos (8UL) /*!< IOM0 INTCLR: STOP (Bit 8) */ +#define IOM0_INTCLR_STOP_Msk (0x100UL) /*!< IOM0 INTCLR: STOP (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_START_Pos (7UL) /*!< IOM0 INTCLR: START (Bit 7) */ +#define IOM0_INTCLR_START_Msk (0x80UL) /*!< IOM0 INTCLR: START (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_ICMD_Pos (6UL) /*!< IOM0 INTCLR: ICMD (Bit 6) */ +#define IOM0_INTCLR_ICMD_Msk (0x40UL) /*!< IOM0 INTCLR: ICMD (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_IACC_Pos (5UL) /*!< IOM0 INTCLR: IACC (Bit 5) */ +#define IOM0_INTCLR_IACC_Msk (0x20UL) /*!< IOM0 INTCLR: IACC (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_NAK_Pos (4UL) /*!< IOM0 INTCLR: NAK (Bit 4) */ +#define IOM0_INTCLR_NAK_Msk (0x10UL) /*!< IOM0 INTCLR: NAK (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_FOVFL_Pos (3UL) /*!< IOM0 INTCLR: FOVFL (Bit 3) */ +#define IOM0_INTCLR_FOVFL_Msk (0x8UL) /*!< IOM0 INTCLR: FOVFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_FUNDFL_Pos (2UL) /*!< IOM0 INTCLR: FUNDFL (Bit 2) */ +#define IOM0_INTCLR_FUNDFL_Msk (0x4UL) /*!< IOM0 INTCLR: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_THR_Pos (1UL) /*!< IOM0 INTCLR: THR (Bit 1) */ +#define IOM0_INTCLR_THR_Msk (0x2UL) /*!< IOM0 INTCLR: THR (Bitfield-Mask: 0x01) */ +#define IOM0_INTCLR_CMDCMP_Pos (0UL) /*!< IOM0 INTCLR: CMDCMP (Bit 0) */ +#define IOM0_INTCLR_CMDCMP_Msk (0x1UL) /*!< IOM0 INTCLR: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define IOM0_INTSET_CQERR_Pos (14UL) /*!< IOM0 INTSET: CQERR (Bit 14) */ +#define IOM0_INTSET_CQERR_Msk (0x4000UL) /*!< IOM0 INTSET: CQERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_CQUPD_Pos (13UL) /*!< IOM0 INTSET: CQUPD (Bit 13) */ +#define IOM0_INTSET_CQUPD_Msk (0x2000UL) /*!< IOM0 INTSET: CQUPD (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_CQPAUSED_Pos (12UL) /*!< IOM0 INTSET: CQPAUSED (Bit 12) */ +#define IOM0_INTSET_CQPAUSED_Msk (0x1000UL) /*!< IOM0 INTSET: CQPAUSED (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_DERR_Pos (11UL) /*!< IOM0 INTSET: DERR (Bit 11) */ +#define IOM0_INTSET_DERR_Msk (0x800UL) /*!< IOM0 INTSET: DERR (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_DCMP_Pos (10UL) /*!< IOM0 INTSET: DCMP (Bit 10) */ +#define IOM0_INTSET_DCMP_Msk (0x400UL) /*!< IOM0 INTSET: DCMP (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_ARB_Pos (9UL) /*!< IOM0 INTSET: ARB (Bit 9) */ +#define IOM0_INTSET_ARB_Msk (0x200UL) /*!< IOM0 INTSET: ARB (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_STOP_Pos (8UL) /*!< IOM0 INTSET: STOP (Bit 8) */ +#define IOM0_INTSET_STOP_Msk (0x100UL) /*!< IOM0 INTSET: STOP (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_START_Pos (7UL) /*!< IOM0 INTSET: START (Bit 7) */ +#define IOM0_INTSET_START_Msk (0x80UL) /*!< IOM0 INTSET: START (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_ICMD_Pos (6UL) /*!< IOM0 INTSET: ICMD (Bit 6) */ +#define IOM0_INTSET_ICMD_Msk (0x40UL) /*!< IOM0 INTSET: ICMD (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_IACC_Pos (5UL) /*!< IOM0 INTSET: IACC (Bit 5) */ +#define IOM0_INTSET_IACC_Msk (0x20UL) /*!< IOM0 INTSET: IACC (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_NAK_Pos (4UL) /*!< IOM0 INTSET: NAK (Bit 4) */ +#define IOM0_INTSET_NAK_Msk (0x10UL) /*!< IOM0 INTSET: NAK (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_FOVFL_Pos (3UL) /*!< IOM0 INTSET: FOVFL (Bit 3) */ +#define IOM0_INTSET_FOVFL_Msk (0x8UL) /*!< IOM0 INTSET: FOVFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_FUNDFL_Pos (2UL) /*!< IOM0 INTSET: FUNDFL (Bit 2) */ +#define IOM0_INTSET_FUNDFL_Msk (0x4UL) /*!< IOM0 INTSET: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_THR_Pos (1UL) /*!< IOM0 INTSET: THR (Bit 1) */ +#define IOM0_INTSET_THR_Msk (0x2UL) /*!< IOM0 INTSET: THR (Bitfield-Mask: 0x01) */ +#define IOM0_INTSET_CMDCMP_Pos (0UL) /*!< IOM0 INTSET: CMDCMP (Bit 0) */ +#define IOM0_INTSET_CMDCMP_Msk (0x1UL) /*!< IOM0 INTSET: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== CLKCFG ========================================================= */ +#define IOM0_CLKCFG_TOTPER_Pos (24UL) /*!< IOM0 CLKCFG: TOTPER (Bit 24) */ +#define IOM0_CLKCFG_TOTPER_Msk (0xff000000UL) /*!< IOM0 CLKCFG: TOTPER (Bitfield-Mask: 0xff) */ +#define IOM0_CLKCFG_LOWPER_Pos (16UL) /*!< IOM0 CLKCFG: LOWPER (Bit 16) */ +#define IOM0_CLKCFG_LOWPER_Msk (0xff0000UL) /*!< IOM0 CLKCFG: LOWPER (Bitfield-Mask: 0xff) */ +#define IOM0_CLKCFG_DIVEN_Pos (12UL) /*!< IOM0 CLKCFG: DIVEN (Bit 12) */ +#define IOM0_CLKCFG_DIVEN_Msk (0x1000UL) /*!< IOM0 CLKCFG: DIVEN (Bitfield-Mask: 0x01) */ +#define IOM0_CLKCFG_DIV3_Pos (11UL) /*!< IOM0 CLKCFG: DIV3 (Bit 11) */ +#define IOM0_CLKCFG_DIV3_Msk (0x800UL) /*!< IOM0 CLKCFG: DIV3 (Bitfield-Mask: 0x01) */ +#define IOM0_CLKCFG_FSEL_Pos (8UL) /*!< IOM0 CLKCFG: FSEL (Bit 8) */ +#define IOM0_CLKCFG_FSEL_Msk (0x700UL) /*!< IOM0 CLKCFG: FSEL (Bitfield-Mask: 0x07) */ +#define IOM0_CLKCFG_IOCLKEN_Pos (0UL) /*!< IOM0 CLKCFG: IOCLKEN (Bit 0) */ +#define IOM0_CLKCFG_IOCLKEN_Msk (0x1UL) /*!< IOM0 CLKCFG: IOCLKEN (Bitfield-Mask: 0x01) */ +/* ====================================================== SUBMODCTRL ======================================================= */ +#define IOM0_SUBMODCTRL_SMOD1TYPE_Pos (5UL) /*!< IOM0 SUBMODCTRL: SMOD1TYPE (Bit 5) */ +#define IOM0_SUBMODCTRL_SMOD1TYPE_Msk (0xe0UL) /*!< IOM0 SUBMODCTRL: SMOD1TYPE (Bitfield-Mask: 0x07) */ +#define IOM0_SUBMODCTRL_SMOD1EN_Pos (4UL) /*!< IOM0 SUBMODCTRL: SMOD1EN (Bit 4) */ +#define IOM0_SUBMODCTRL_SMOD1EN_Msk (0x10UL) /*!< IOM0 SUBMODCTRL: SMOD1EN (Bitfield-Mask: 0x01) */ +#define IOM0_SUBMODCTRL_SMOD0TYPE_Pos (1UL) /*!< IOM0 SUBMODCTRL: SMOD0TYPE (Bit 1) */ +#define IOM0_SUBMODCTRL_SMOD0TYPE_Msk (0xeUL) /*!< IOM0 SUBMODCTRL: SMOD0TYPE (Bitfield-Mask: 0x07) */ +#define IOM0_SUBMODCTRL_SMOD0EN_Pos (0UL) /*!< IOM0 SUBMODCTRL: SMOD0EN (Bit 0) */ +#define IOM0_SUBMODCTRL_SMOD0EN_Msk (0x1UL) /*!< IOM0 SUBMODCTRL: SMOD0EN (Bitfield-Mask: 0x01) */ +/* ========================================================== CMD ========================================================== */ +#define IOM0_CMD_OFFSETLO_Pos (24UL) /*!< IOM0 CMD: OFFSETLO (Bit 24) */ +#define IOM0_CMD_OFFSETLO_Msk (0xff000000UL) /*!< IOM0 CMD: OFFSETLO (Bitfield-Mask: 0xff) */ +#define IOM0_CMD_CMDSEL_Pos (20UL) /*!< IOM0 CMD: CMDSEL (Bit 20) */ +#define IOM0_CMD_CMDSEL_Msk (0x300000UL) /*!< IOM0 CMD: CMDSEL (Bitfield-Mask: 0x03) */ +#define IOM0_CMD_TSIZE_Pos (8UL) /*!< IOM0 CMD: TSIZE (Bit 8) */ +#define IOM0_CMD_TSIZE_Msk (0xfff00UL) /*!< IOM0 CMD: TSIZE (Bitfield-Mask: 0xfff) */ +#define IOM0_CMD_CONT_Pos (7UL) /*!< IOM0 CMD: CONT (Bit 7) */ +#define IOM0_CMD_CONT_Msk (0x80UL) /*!< IOM0 CMD: CONT (Bitfield-Mask: 0x01) */ +#define IOM0_CMD_OFFSETCNT_Pos (5UL) /*!< IOM0 CMD: OFFSETCNT (Bit 5) */ +#define IOM0_CMD_OFFSETCNT_Msk (0x60UL) /*!< IOM0 CMD: OFFSETCNT (Bitfield-Mask: 0x03) */ +#define IOM0_CMD_CMD_Pos (0UL) /*!< IOM0 CMD: CMD (Bit 0) */ +#define IOM0_CMD_CMD_Msk (0x1fUL) /*!< IOM0 CMD: CMD (Bitfield-Mask: 0x1f) */ +/* ========================================================== DCX ========================================================== */ +#define IOM0_DCX_DCXEN_Pos (4UL) /*!< IOM0 DCX: DCXEN (Bit 4) */ +#define IOM0_DCX_DCXEN_Msk (0x10UL) /*!< IOM0 DCX: DCXEN (Bitfield-Mask: 0x01) */ +#define IOM0_DCX_CE3OUT_Pos (3UL) /*!< IOM0 DCX: CE3OUT (Bit 3) */ +#define IOM0_DCX_CE3OUT_Msk (0x8UL) /*!< IOM0 DCX: CE3OUT (Bitfield-Mask: 0x01) */ +#define IOM0_DCX_CE2OUT_Pos (2UL) /*!< IOM0 DCX: CE2OUT (Bit 2) */ +#define IOM0_DCX_CE2OUT_Msk (0x4UL) /*!< IOM0 DCX: CE2OUT (Bitfield-Mask: 0x01) */ +#define IOM0_DCX_CE1OUT_Pos (1UL) /*!< IOM0 DCX: CE1OUT (Bit 1) */ +#define IOM0_DCX_CE1OUT_Msk (0x2UL) /*!< IOM0 DCX: CE1OUT (Bitfield-Mask: 0x01) */ +#define IOM0_DCX_CE0OUT_Pos (0UL) /*!< IOM0 DCX: CE0OUT (Bit 0) */ +#define IOM0_DCX_CE0OUT_Msk (0x1UL) /*!< IOM0 DCX: CE0OUT (Bitfield-Mask: 0x01) */ +/* ======================================================= OFFSETHI ======================================================== */ +#define IOM0_OFFSETHI_OFFSETHI_Pos (0UL) /*!< IOM0 OFFSETHI: OFFSETHI (Bit 0) */ +#define IOM0_OFFSETHI_OFFSETHI_Msk (0xffffUL) /*!< IOM0 OFFSETHI: OFFSETHI (Bitfield-Mask: 0xffff) */ +/* ======================================================== CMDSTAT ======================================================== */ +#define IOM0_CMDSTAT_CTSIZE_Pos (8UL) /*!< IOM0 CMDSTAT: CTSIZE (Bit 8) */ +#define IOM0_CMDSTAT_CTSIZE_Msk (0xfff00UL) /*!< IOM0 CMDSTAT: CTSIZE (Bitfield-Mask: 0xfff) */ +#define IOM0_CMDSTAT_CMDSTAT_Pos (5UL) /*!< IOM0 CMDSTAT: CMDSTAT (Bit 5) */ +#define IOM0_CMDSTAT_CMDSTAT_Msk (0xe0UL) /*!< IOM0 CMDSTAT: CMDSTAT (Bitfield-Mask: 0x07) */ +#define IOM0_CMDSTAT_CCMD_Pos (0UL) /*!< IOM0 CMDSTAT: CCMD (Bit 0) */ +#define IOM0_CMDSTAT_CCMD_Msk (0x1fUL) /*!< IOM0 CMDSTAT: CCMD (Bitfield-Mask: 0x1f) */ +/* ======================================================= DMATRIGEN ======================================================= */ +#define IOM0_DMATRIGEN_DTHREN_Pos (1UL) /*!< IOM0 DMATRIGEN: DTHREN (Bit 1) */ +#define IOM0_DMATRIGEN_DTHREN_Msk (0x2UL) /*!< IOM0 DMATRIGEN: DTHREN (Bitfield-Mask: 0x01) */ +#define IOM0_DMATRIGEN_DCMDCMPEN_Pos (0UL) /*!< IOM0 DMATRIGEN: DCMDCMPEN (Bit 0) */ +#define IOM0_DMATRIGEN_DCMDCMPEN_Msk (0x1UL) /*!< IOM0 DMATRIGEN: DCMDCMPEN (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +#define IOM0_DMATRIGSTAT_DTOTCMP_Pos (2UL) /*!< IOM0 DMATRIGSTAT: DTOTCMP (Bit 2) */ +#define IOM0_DMATRIGSTAT_DTOTCMP_Msk (0x4UL) /*!< IOM0 DMATRIGSTAT: DTOTCMP (Bitfield-Mask: 0x01) */ +#define IOM0_DMATRIGSTAT_DTHR_Pos (1UL) /*!< IOM0 DMATRIGSTAT: DTHR (Bit 1) */ +#define IOM0_DMATRIGSTAT_DTHR_Msk (0x2UL) /*!< IOM0 DMATRIGSTAT: DTHR (Bitfield-Mask: 0x01) */ +#define IOM0_DMATRIGSTAT_DCMDCMP_Pos (0UL) /*!< IOM0 DMATRIGSTAT: DCMDCMP (Bit 0) */ +#define IOM0_DMATRIGSTAT_DCMDCMP_Msk (0x1UL) /*!< IOM0 DMATRIGSTAT: DCMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== DMACFG ========================================================= */ +#define IOM0_DMACFG_DPWROFF_Pos (9UL) /*!< IOM0 DMACFG: DPWROFF (Bit 9) */ +#define IOM0_DMACFG_DPWROFF_Msk (0x200UL) /*!< IOM0 DMACFG: DPWROFF (Bitfield-Mask: 0x01) */ +#define IOM0_DMACFG_DMAPRI_Pos (8UL) /*!< IOM0 DMACFG: DMAPRI (Bit 8) */ +#define IOM0_DMACFG_DMAPRI_Msk (0x100UL) /*!< IOM0 DMACFG: DMAPRI (Bitfield-Mask: 0x01) */ +#define IOM0_DMACFG_DMADIR_Pos (1UL) /*!< IOM0 DMACFG: DMADIR (Bit 1) */ +#define IOM0_DMACFG_DMADIR_Msk (0x2UL) /*!< IOM0 DMACFG: DMADIR (Bitfield-Mask: 0x01) */ +#define IOM0_DMACFG_DMAEN_Pos (0UL) /*!< IOM0 DMACFG: DMAEN (Bit 0) */ +#define IOM0_DMACFG_DMAEN_Msk (0x1UL) /*!< IOM0 DMACFG: DMAEN (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATOTCOUNT ====================================================== */ +#define IOM0_DMATOTCOUNT_TOTCOUNT_Pos (0UL) /*!< IOM0 DMATOTCOUNT: TOTCOUNT (Bit 0) */ +#define IOM0_DMATOTCOUNT_TOTCOUNT_Msk (0xfffUL) /*!< IOM0 DMATOTCOUNT: TOTCOUNT (Bitfield-Mask: 0xfff) */ +/* ====================================================== DMATARGADDR ====================================================== */ +#define IOM0_DMATARGADDR_TARGADDR28_Pos (28UL) /*!< IOM0 DMATARGADDR: TARGADDR28 (Bit 28) */ +#define IOM0_DMATARGADDR_TARGADDR28_Msk (0x10000000UL) /*!< IOM0 DMATARGADDR: TARGADDR28 (Bitfield-Mask: 0x01) */ +#define IOM0_DMATARGADDR_TARGADDR_Pos (0UL) /*!< IOM0 DMATARGADDR: TARGADDR (Bit 0) */ +#define IOM0_DMATARGADDR_TARGADDR_Msk (0x1fffffUL) /*!< IOM0 DMATARGADDR: TARGADDR (Bitfield-Mask: 0x1fffff) */ +/* ======================================================== DMASTAT ======================================================== */ +#define IOM0_DMASTAT_DMAERR_Pos (2UL) /*!< IOM0 DMASTAT: DMAERR (Bit 2) */ +#define IOM0_DMASTAT_DMAERR_Msk (0x4UL) /*!< IOM0 DMASTAT: DMAERR (Bitfield-Mask: 0x01) */ +#define IOM0_DMASTAT_DMACPL_Pos (1UL) /*!< IOM0 DMASTAT: DMACPL (Bit 1) */ +#define IOM0_DMASTAT_DMACPL_Msk (0x2UL) /*!< IOM0 DMASTAT: DMACPL (Bitfield-Mask: 0x01) */ +#define IOM0_DMASTAT_DMATIP_Pos (0UL) /*!< IOM0 DMASTAT: DMATIP (Bit 0) */ +#define IOM0_DMASTAT_DMATIP_Msk (0x1UL) /*!< IOM0 DMASTAT: DMATIP (Bitfield-Mask: 0x01) */ +/* ========================================================= CQCFG ========================================================= */ +#define IOM0_CQCFG_MSPIFLGSEL_Pos (2UL) /*!< IOM0 CQCFG: MSPIFLGSEL (Bit 2) */ +#define IOM0_CQCFG_MSPIFLGSEL_Msk (0xcUL) /*!< IOM0 CQCFG: MSPIFLGSEL (Bitfield-Mask: 0x03) */ +#define IOM0_CQCFG_CQPRI_Pos (1UL) /*!< IOM0 CQCFG: CQPRI (Bit 1) */ +#define IOM0_CQCFG_CQPRI_Msk (0x2UL) /*!< IOM0 CQCFG: CQPRI (Bitfield-Mask: 0x01) */ +#define IOM0_CQCFG_CQEN_Pos (0UL) /*!< IOM0 CQCFG: CQEN (Bit 0) */ +#define IOM0_CQCFG_CQEN_Msk (0x1UL) /*!< IOM0 CQCFG: CQEN (Bitfield-Mask: 0x01) */ +/* ======================================================== CQADDR ========================================================= */ +#define IOM0_CQADDR_CQADDR28_Pos (28UL) /*!< IOM0 CQADDR: CQADDR28 (Bit 28) */ +#define IOM0_CQADDR_CQADDR28_Msk (0x10000000UL) /*!< IOM0 CQADDR: CQADDR28 (Bitfield-Mask: 0x01) */ +#define IOM0_CQADDR_CQADDR_Pos (2UL) /*!< IOM0 CQADDR: CQADDR (Bit 2) */ +#define IOM0_CQADDR_CQADDR_Msk (0x1ffffcUL) /*!< IOM0 CQADDR: CQADDR (Bitfield-Mask: 0x7ffff) */ +/* ======================================================== CQSTAT ========================================================= */ +#define IOM0_CQSTAT_CQERR_Pos (2UL) /*!< IOM0 CQSTAT: CQERR (Bit 2) */ +#define IOM0_CQSTAT_CQERR_Msk (0x4UL) /*!< IOM0 CQSTAT: CQERR (Bitfield-Mask: 0x01) */ +#define IOM0_CQSTAT_CQPAUSED_Pos (1UL) /*!< IOM0 CQSTAT: CQPAUSED (Bit 1) */ +#define IOM0_CQSTAT_CQPAUSED_Msk (0x2UL) /*!< IOM0 CQSTAT: CQPAUSED (Bitfield-Mask: 0x01) */ +#define IOM0_CQSTAT_CQTIP_Pos (0UL) /*!< IOM0 CQSTAT: CQTIP (Bit 0) */ +#define IOM0_CQSTAT_CQTIP_Msk (0x1UL) /*!< IOM0 CQSTAT: CQTIP (Bitfield-Mask: 0x01) */ +/* ======================================================== CQFLAGS ======================================================== */ +#define IOM0_CQFLAGS_CQIRQMASK_Pos (16UL) /*!< IOM0 CQFLAGS: CQIRQMASK (Bit 16) */ +#define IOM0_CQFLAGS_CQIRQMASK_Msk (0xffff0000UL) /*!< IOM0 CQFLAGS: CQIRQMASK (Bitfield-Mask: 0xffff) */ +#define IOM0_CQFLAGS_CQFLAGS_Pos (0UL) /*!< IOM0 CQFLAGS: CQFLAGS (Bit 0) */ +#define IOM0_CQFLAGS_CQFLAGS_Msk (0xffffUL) /*!< IOM0 CQFLAGS: CQFLAGS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CQSETCLEAR ======================================================= */ +#define IOM0_CQSETCLEAR_CQFCLR_Pos (16UL) /*!< IOM0 CQSETCLEAR: CQFCLR (Bit 16) */ +#define IOM0_CQSETCLEAR_CQFCLR_Msk (0xff0000UL) /*!< IOM0 CQSETCLEAR: CQFCLR (Bitfield-Mask: 0xff) */ +#define IOM0_CQSETCLEAR_CQFTGL_Pos (8UL) /*!< IOM0 CQSETCLEAR: CQFTGL (Bit 8) */ +#define IOM0_CQSETCLEAR_CQFTGL_Msk (0xff00UL) /*!< IOM0 CQSETCLEAR: CQFTGL (Bitfield-Mask: 0xff) */ +#define IOM0_CQSETCLEAR_CQFSET_Pos (0UL) /*!< IOM0 CQSETCLEAR: CQFSET (Bit 0) */ +#define IOM0_CQSETCLEAR_CQFSET_Msk (0xffUL) /*!< IOM0 CQSETCLEAR: CQFSET (Bitfield-Mask: 0xff) */ +/* ======================================================= CQPAUSEEN ======================================================= */ +#define IOM0_CQPAUSEEN_CQPEN_Pos (0UL) /*!< IOM0 CQPAUSEEN: CQPEN (Bit 0) */ +#define IOM0_CQPAUSEEN_CQPEN_Msk (0xffffUL) /*!< IOM0 CQPAUSEEN: CQPEN (Bitfield-Mask: 0xffff) */ +/* ======================================================= CQCURIDX ======================================================== */ +#define IOM0_CQCURIDX_CQCURIDX_Pos (0UL) /*!< IOM0 CQCURIDX: CQCURIDX (Bit 0) */ +#define IOM0_CQCURIDX_CQCURIDX_Msk (0xffUL) /*!< IOM0 CQCURIDX: CQCURIDX (Bitfield-Mask: 0xff) */ +/* ======================================================= CQENDIDX ======================================================== */ +#define IOM0_CQENDIDX_CQENDIDX_Pos (0UL) /*!< IOM0 CQENDIDX: CQENDIDX (Bit 0) */ +#define IOM0_CQENDIDX_CQENDIDX_Msk (0xffUL) /*!< IOM0 CQENDIDX: CQENDIDX (Bitfield-Mask: 0xff) */ +/* ======================================================== STATUS ========================================================= */ +#define IOM0_STATUS_IDLEST_Pos (2UL) /*!< IOM0 STATUS: IDLEST (Bit 2) */ +#define IOM0_STATUS_IDLEST_Msk (0x4UL) /*!< IOM0 STATUS: IDLEST (Bitfield-Mask: 0x01) */ +#define IOM0_STATUS_CMDACT_Pos (1UL) /*!< IOM0 STATUS: CMDACT (Bit 1) */ +#define IOM0_STATUS_CMDACT_Msk (0x2UL) /*!< IOM0 STATUS: CMDACT (Bitfield-Mask: 0x01) */ +#define IOM0_STATUS_ERR_Pos (0UL) /*!< IOM0 STATUS: ERR (Bit 0) */ +#define IOM0_STATUS_ERR_Msk (0x1UL) /*!< IOM0 STATUS: ERR (Bitfield-Mask: 0x01) */ +/* ======================================================== MSPICFG ======================================================== */ +#define IOM0_MSPICFG_MSPIRST_Pos (30UL) /*!< IOM0 MSPICFG: MSPIRST (Bit 30) */ +#define IOM0_MSPICFG_MSPIRST_Msk (0x40000000UL) /*!< IOM0 MSPICFG: MSPIRST (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_DOUTDLY_Pos (27UL) /*!< IOM0 MSPICFG: DOUTDLY (Bit 27) */ +#define IOM0_MSPICFG_DOUTDLY_Msk (0x38000000UL) /*!< IOM0 MSPICFG: DOUTDLY (Bitfield-Mask: 0x07) */ +#define IOM0_MSPICFG_DINDLY_Pos (24UL) /*!< IOM0 MSPICFG: DINDLY (Bit 24) */ +#define IOM0_MSPICFG_DINDLY_Msk (0x7000000UL) /*!< IOM0 MSPICFG: DINDLY (Bitfield-Mask: 0x07) */ +#define IOM0_MSPICFG_SPILSB_Pos (23UL) /*!< IOM0 MSPICFG: SPILSB (Bit 23) */ +#define IOM0_MSPICFG_SPILSB_Msk (0x800000UL) /*!< IOM0 MSPICFG: SPILSB (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_RDFCPOL_Pos (22UL) /*!< IOM0 MSPICFG: RDFCPOL (Bit 22) */ +#define IOM0_MSPICFG_RDFCPOL_Msk (0x400000UL) /*!< IOM0 MSPICFG: RDFCPOL (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_WTFCPOL_Pos (21UL) /*!< IOM0 MSPICFG: WTFCPOL (Bit 21) */ +#define IOM0_MSPICFG_WTFCPOL_Msk (0x200000UL) /*!< IOM0 MSPICFG: WTFCPOL (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_WTFCIRQ_Pos (20UL) /*!< IOM0 MSPICFG: WTFCIRQ (Bit 20) */ +#define IOM0_MSPICFG_WTFCIRQ_Msk (0x100000UL) /*!< IOM0 MSPICFG: WTFCIRQ (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_MOSIINV_Pos (18UL) /*!< IOM0 MSPICFG: MOSIINV (Bit 18) */ +#define IOM0_MSPICFG_MOSIINV_Msk (0x40000UL) /*!< IOM0 MSPICFG: MOSIINV (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_RDFC_Pos (17UL) /*!< IOM0 MSPICFG: RDFC (Bit 17) */ +#define IOM0_MSPICFG_RDFC_Msk (0x20000UL) /*!< IOM0 MSPICFG: RDFC (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_WTFC_Pos (16UL) /*!< IOM0 MSPICFG: WTFC (Bit 16) */ +#define IOM0_MSPICFG_WTFC_Msk (0x10000UL) /*!< IOM0 MSPICFG: WTFC (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_FULLDUP_Pos (2UL) /*!< IOM0 MSPICFG: FULLDUP (Bit 2) */ +#define IOM0_MSPICFG_FULLDUP_Msk (0x4UL) /*!< IOM0 MSPICFG: FULLDUP (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_SPHA_Pos (1UL) /*!< IOM0 MSPICFG: SPHA (Bit 1) */ +#define IOM0_MSPICFG_SPHA_Msk (0x2UL) /*!< IOM0 MSPICFG: SPHA (Bitfield-Mask: 0x01) */ +#define IOM0_MSPICFG_SPOL_Pos (0UL) /*!< IOM0 MSPICFG: SPOL (Bit 0) */ +#define IOM0_MSPICFG_SPOL_Msk (0x1UL) /*!< IOM0 MSPICFG: SPOL (Bitfield-Mask: 0x01) */ +/* ======================================================== MI2CCFG ======================================================== */ +#define IOM0_MI2CCFG_STRDIS_Pos (24UL) /*!< IOM0 MI2CCFG: STRDIS (Bit 24) */ +#define IOM0_MI2CCFG_STRDIS_Msk (0x1000000UL) /*!< IOM0 MI2CCFG: STRDIS (Bitfield-Mask: 0x01) */ +#define IOM0_MI2CCFG_SMPCNT_Pos (16UL) /*!< IOM0 MI2CCFG: SMPCNT (Bit 16) */ +#define IOM0_MI2CCFG_SMPCNT_Msk (0xff0000UL) /*!< IOM0 MI2CCFG: SMPCNT (Bitfield-Mask: 0xff) */ +#define IOM0_MI2CCFG_SDAENDLY_Pos (12UL) /*!< IOM0 MI2CCFG: SDAENDLY (Bit 12) */ +#define IOM0_MI2CCFG_SDAENDLY_Msk (0xf000UL) /*!< IOM0 MI2CCFG: SDAENDLY (Bitfield-Mask: 0x0f) */ +#define IOM0_MI2CCFG_SCLENDLY_Pos (8UL) /*!< IOM0 MI2CCFG: SCLENDLY (Bit 8) */ +#define IOM0_MI2CCFG_SCLENDLY_Msk (0xf00UL) /*!< IOM0 MI2CCFG: SCLENDLY (Bitfield-Mask: 0x0f) */ +#define IOM0_MI2CCFG_MI2CRST_Pos (6UL) /*!< IOM0 MI2CCFG: MI2CRST (Bit 6) */ +#define IOM0_MI2CCFG_MI2CRST_Msk (0x40UL) /*!< IOM0 MI2CCFG: MI2CRST (Bitfield-Mask: 0x01) */ +#define IOM0_MI2CCFG_SDADLY_Pos (4UL) /*!< IOM0 MI2CCFG: SDADLY (Bit 4) */ +#define IOM0_MI2CCFG_SDADLY_Msk (0x30UL) /*!< IOM0 MI2CCFG: SDADLY (Bitfield-Mask: 0x03) */ +#define IOM0_MI2CCFG_ARBEN_Pos (2UL) /*!< IOM0 MI2CCFG: ARBEN (Bit 2) */ +#define IOM0_MI2CCFG_ARBEN_Msk (0x4UL) /*!< IOM0 MI2CCFG: ARBEN (Bitfield-Mask: 0x01) */ +#define IOM0_MI2CCFG_I2CLSB_Pos (1UL) /*!< IOM0 MI2CCFG: I2CLSB (Bit 1) */ +#define IOM0_MI2CCFG_I2CLSB_Msk (0x2UL) /*!< IOM0 MI2CCFG: I2CLSB (Bitfield-Mask: 0x01) */ +#define IOM0_MI2CCFG_ADDRSZ_Pos (0UL) /*!< IOM0 MI2CCFG: ADDRSZ (Bit 0) */ +#define IOM0_MI2CCFG_ADDRSZ_Msk (0x1UL) /*!< IOM0 MI2CCFG: ADDRSZ (Bitfield-Mask: 0x01) */ +/* ======================================================== DEVCFG ========================================================= */ +#define IOM0_DEVCFG_DEVADDR_Pos (0UL) /*!< IOM0 DEVCFG: DEVADDR (Bit 0) */ +#define IOM0_DEVCFG_DEVADDR_Msk (0x3ffUL) /*!< IOM0 DEVCFG: DEVADDR (Bitfield-Mask: 0x3ff) */ +/* ======================================================== IOMDBG ========================================================= */ +#define IOM0_IOMDBG_DBGDATA_Pos (3UL) /*!< IOM0 IOMDBG: DBGDATA (Bit 3) */ +#define IOM0_IOMDBG_DBGDATA_Msk (0xfffffff8UL) /*!< IOM0 IOMDBG: DBGDATA (Bitfield-Mask: 0x1fffffff) */ +#define IOM0_IOMDBG_APBCLKON_Pos (2UL) /*!< IOM0 IOMDBG: APBCLKON (Bit 2) */ +#define IOM0_IOMDBG_APBCLKON_Msk (0x4UL) /*!< IOM0 IOMDBG: APBCLKON (Bitfield-Mask: 0x01) */ +#define IOM0_IOMDBG_IOCLKON_Pos (1UL) /*!< IOM0 IOMDBG: IOCLKON (Bit 1) */ +#define IOM0_IOMDBG_IOCLKON_Msk (0x2UL) /*!< IOM0 IOMDBG: IOCLKON (Bitfield-Mask: 0x01) */ +#define IOM0_IOMDBG_DBGEN_Pos (0UL) /*!< IOM0 IOMDBG: DBGEN (Bit 0) */ +#define IOM0_IOMDBG_DBGEN_Msk (0x1UL) /*!< IOM0 IOMDBG: DBGEN (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ IOSLAVE ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== FIFOPTR ======================================================== */ +#define IOSLAVE_FIFOPTR_FIFOSIZ_Pos (8UL) /*!< IOSLAVE FIFOPTR: FIFOSIZ (Bit 8) */ +#define IOSLAVE_FIFOPTR_FIFOSIZ_Msk (0xff00UL) /*!< IOSLAVE FIFOPTR: FIFOSIZ (Bitfield-Mask: 0xff) */ +#define IOSLAVE_FIFOPTR_FIFOPTR_Pos (0UL) /*!< IOSLAVE FIFOPTR: FIFOPTR (Bit 0) */ +#define IOSLAVE_FIFOPTR_FIFOPTR_Msk (0xffUL) /*!< IOSLAVE FIFOPTR: FIFOPTR (Bitfield-Mask: 0xff) */ +/* ======================================================== FIFOCFG ======================================================== */ +#define IOSLAVE_FIFOCFG_ROBASE_Pos (24UL) /*!< IOSLAVE FIFOCFG: ROBASE (Bit 24) */ +#define IOSLAVE_FIFOCFG_ROBASE_Msk (0x3f000000UL) /*!< IOSLAVE FIFOCFG: ROBASE (Bitfield-Mask: 0x3f) */ +#define IOSLAVE_FIFOCFG_FIFOMAX_Pos (8UL) /*!< IOSLAVE FIFOCFG: FIFOMAX (Bit 8) */ +#define IOSLAVE_FIFOCFG_FIFOMAX_Msk (0x3f00UL) /*!< IOSLAVE FIFOCFG: FIFOMAX (Bitfield-Mask: 0x3f) */ +#define IOSLAVE_FIFOCFG_FIFOBASE_Pos (0UL) /*!< IOSLAVE FIFOCFG: FIFOBASE (Bit 0) */ +#define IOSLAVE_FIFOCFG_FIFOBASE_Msk (0x1fUL) /*!< IOSLAVE FIFOCFG: FIFOBASE (Bitfield-Mask: 0x1f) */ +/* ======================================================== FIFOTHR ======================================================== */ +#define IOSLAVE_FIFOTHR_FIFOTHR_Pos (0UL) /*!< IOSLAVE FIFOTHR: FIFOTHR (Bit 0) */ +#define IOSLAVE_FIFOTHR_FIFOTHR_Msk (0xffUL) /*!< IOSLAVE FIFOTHR: FIFOTHR (Bitfield-Mask: 0xff) */ +/* ========================================================= FUPD ========================================================== */ +#define IOSLAVE_FUPD_IOREAD_Pos (1UL) /*!< IOSLAVE FUPD: IOREAD (Bit 1) */ +#define IOSLAVE_FUPD_IOREAD_Msk (0x2UL) /*!< IOSLAVE FUPD: IOREAD (Bitfield-Mask: 0x01) */ +#define IOSLAVE_FUPD_FIFOUPD_Pos (0UL) /*!< IOSLAVE FUPD: FIFOUPD (Bit 0) */ +#define IOSLAVE_FUPD_FIFOUPD_Msk (0x1UL) /*!< IOSLAVE FUPD: FIFOUPD (Bitfield-Mask: 0x01) */ +/* ======================================================== FIFOCTR ======================================================== */ +#define IOSLAVE_FIFOCTR_FIFOCTR_Pos (0UL) /*!< IOSLAVE FIFOCTR: FIFOCTR (Bit 0) */ +#define IOSLAVE_FIFOCTR_FIFOCTR_Msk (0x3ffUL) /*!< IOSLAVE FIFOCTR: FIFOCTR (Bitfield-Mask: 0x3ff) */ +/* ======================================================== FIFOINC ======================================================== */ +#define IOSLAVE_FIFOINC_FIFOINC_Pos (0UL) /*!< IOSLAVE FIFOINC: FIFOINC (Bit 0) */ +#define IOSLAVE_FIFOINC_FIFOINC_Msk (0x3ffUL) /*!< IOSLAVE FIFOINC: FIFOINC (Bitfield-Mask: 0x3ff) */ +/* ========================================================== CFG ========================================================== */ +#define IOSLAVE_CFG_IFCEN_Pos (31UL) /*!< IOSLAVE CFG: IFCEN (Bit 31) */ +#define IOSLAVE_CFG_IFCEN_Msk (0x80000000UL) /*!< IOSLAVE CFG: IFCEN (Bitfield-Mask: 0x01) */ +#define IOSLAVE_CFG_I2CADDR_Pos (8UL) /*!< IOSLAVE CFG: I2CADDR (Bit 8) */ +#define IOSLAVE_CFG_I2CADDR_Msk (0xfff00UL) /*!< IOSLAVE CFG: I2CADDR (Bitfield-Mask: 0xfff) */ +#define IOSLAVE_CFG_STARTRD_Pos (4UL) /*!< IOSLAVE CFG: STARTRD (Bit 4) */ +#define IOSLAVE_CFG_STARTRD_Msk (0x10UL) /*!< IOSLAVE CFG: STARTRD (Bitfield-Mask: 0x01) */ +#define IOSLAVE_CFG_LSB_Pos (2UL) /*!< IOSLAVE CFG: LSB (Bit 2) */ +#define IOSLAVE_CFG_LSB_Msk (0x4UL) /*!< IOSLAVE CFG: LSB (Bitfield-Mask: 0x01) */ +#define IOSLAVE_CFG_SPOL_Pos (1UL) /*!< IOSLAVE CFG: SPOL (Bit 1) */ +#define IOSLAVE_CFG_SPOL_Msk (0x2UL) /*!< IOSLAVE CFG: SPOL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_CFG_IFCSEL_Pos (0UL) /*!< IOSLAVE CFG: IFCSEL (Bit 0) */ +#define IOSLAVE_CFG_IFCSEL_Msk (0x1UL) /*!< IOSLAVE CFG: IFCSEL (Bitfield-Mask: 0x01) */ +/* ========================================================= PRENC ========================================================= */ +#define IOSLAVE_PRENC_PRENC_Pos (0UL) /*!< IOSLAVE PRENC: PRENC (Bit 0) */ +#define IOSLAVE_PRENC_PRENC_Msk (0x1fUL) /*!< IOSLAVE PRENC: PRENC (Bitfield-Mask: 0x1f) */ +/* ======================================================= IOINTCTL ======================================================== */ +#define IOSLAVE_IOINTCTL_IOINTSET_Pos (24UL) /*!< IOSLAVE IOINTCTL: IOINTSET (Bit 24) */ +#define IOSLAVE_IOINTCTL_IOINTSET_Msk (0xff000000UL) /*!< IOSLAVE IOINTCTL: IOINTSET (Bitfield-Mask: 0xff) */ +#define IOSLAVE_IOINTCTL_IOINTCLR_Pos (16UL) /*!< IOSLAVE IOINTCTL: IOINTCLR (Bit 16) */ +#define IOSLAVE_IOINTCTL_IOINTCLR_Msk (0x10000UL) /*!< IOSLAVE IOINTCTL: IOINTCLR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_IOINTCTL_IOINT_Pos (8UL) /*!< IOSLAVE IOINTCTL: IOINT (Bit 8) */ +#define IOSLAVE_IOINTCTL_IOINT_Msk (0xff00UL) /*!< IOSLAVE IOINTCTL: IOINT (Bitfield-Mask: 0xff) */ +#define IOSLAVE_IOINTCTL_IOINTEN_Pos (0UL) /*!< IOSLAVE IOINTCTL: IOINTEN (Bit 0) */ +#define IOSLAVE_IOINTCTL_IOINTEN_Msk (0xffUL) /*!< IOSLAVE IOINTCTL: IOINTEN (Bitfield-Mask: 0xff) */ +/* ======================================================== GENADD ========================================================= */ +#define IOSLAVE_GENADD_GADATA_Pos (0UL) /*!< IOSLAVE GENADD: GADATA (Bit 0) */ +#define IOSLAVE_GENADD_GADATA_Msk (0xffUL) /*!< IOSLAVE GENADD: GADATA (Bitfield-Mask: 0xff) */ +/* ========================================================= INTEN ========================================================= */ +#define IOSLAVE_INTEN_XCMPWR_Pos (9UL) /*!< IOSLAVE INTEN: XCMPWR (Bit 9) */ +#define IOSLAVE_INTEN_XCMPWR_Msk (0x200UL) /*!< IOSLAVE INTEN: XCMPWR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_XCMPWF_Pos (8UL) /*!< IOSLAVE INTEN: XCMPWF (Bit 8) */ +#define IOSLAVE_INTEN_XCMPWF_Msk (0x100UL) /*!< IOSLAVE INTEN: XCMPWF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_XCMPRR_Pos (7UL) /*!< IOSLAVE INTEN: XCMPRR (Bit 7) */ +#define IOSLAVE_INTEN_XCMPRR_Msk (0x80UL) /*!< IOSLAVE INTEN: XCMPRR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_XCMPRF_Pos (6UL) /*!< IOSLAVE INTEN: XCMPRF (Bit 6) */ +#define IOSLAVE_INTEN_XCMPRF_Msk (0x40UL) /*!< IOSLAVE INTEN: XCMPRF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_IOINTW_Pos (5UL) /*!< IOSLAVE INTEN: IOINTW (Bit 5) */ +#define IOSLAVE_INTEN_IOINTW_Msk (0x20UL) /*!< IOSLAVE INTEN: IOINTW (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_GENAD_Pos (4UL) /*!< IOSLAVE INTEN: GENAD (Bit 4) */ +#define IOSLAVE_INTEN_GENAD_Msk (0x10UL) /*!< IOSLAVE INTEN: GENAD (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_FRDERR_Pos (3UL) /*!< IOSLAVE INTEN: FRDERR (Bit 3) */ +#define IOSLAVE_INTEN_FRDERR_Msk (0x8UL) /*!< IOSLAVE INTEN: FRDERR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_FUNDFL_Pos (2UL) /*!< IOSLAVE INTEN: FUNDFL (Bit 2) */ +#define IOSLAVE_INTEN_FUNDFL_Msk (0x4UL) /*!< IOSLAVE INTEN: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_FOVFL_Pos (1UL) /*!< IOSLAVE INTEN: FOVFL (Bit 1) */ +#define IOSLAVE_INTEN_FOVFL_Msk (0x2UL) /*!< IOSLAVE INTEN: FOVFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTEN_FSIZE_Pos (0UL) /*!< IOSLAVE INTEN: FSIZE (Bit 0) */ +#define IOSLAVE_INTEN_FSIZE_Msk (0x1UL) /*!< IOSLAVE INTEN: FSIZE (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define IOSLAVE_INTSTAT_XCMPWR_Pos (9UL) /*!< IOSLAVE INTSTAT: XCMPWR (Bit 9) */ +#define IOSLAVE_INTSTAT_XCMPWR_Msk (0x200UL) /*!< IOSLAVE INTSTAT: XCMPWR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_XCMPWF_Pos (8UL) /*!< IOSLAVE INTSTAT: XCMPWF (Bit 8) */ +#define IOSLAVE_INTSTAT_XCMPWF_Msk (0x100UL) /*!< IOSLAVE INTSTAT: XCMPWF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_XCMPRR_Pos (7UL) /*!< IOSLAVE INTSTAT: XCMPRR (Bit 7) */ +#define IOSLAVE_INTSTAT_XCMPRR_Msk (0x80UL) /*!< IOSLAVE INTSTAT: XCMPRR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_XCMPRF_Pos (6UL) /*!< IOSLAVE INTSTAT: XCMPRF (Bit 6) */ +#define IOSLAVE_INTSTAT_XCMPRF_Msk (0x40UL) /*!< IOSLAVE INTSTAT: XCMPRF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_IOINTW_Pos (5UL) /*!< IOSLAVE INTSTAT: IOINTW (Bit 5) */ +#define IOSLAVE_INTSTAT_IOINTW_Msk (0x20UL) /*!< IOSLAVE INTSTAT: IOINTW (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_GENAD_Pos (4UL) /*!< IOSLAVE INTSTAT: GENAD (Bit 4) */ +#define IOSLAVE_INTSTAT_GENAD_Msk (0x10UL) /*!< IOSLAVE INTSTAT: GENAD (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_FRDERR_Pos (3UL) /*!< IOSLAVE INTSTAT: FRDERR (Bit 3) */ +#define IOSLAVE_INTSTAT_FRDERR_Msk (0x8UL) /*!< IOSLAVE INTSTAT: FRDERR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_FUNDFL_Pos (2UL) /*!< IOSLAVE INTSTAT: FUNDFL (Bit 2) */ +#define IOSLAVE_INTSTAT_FUNDFL_Msk (0x4UL) /*!< IOSLAVE INTSTAT: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_FOVFL_Pos (1UL) /*!< IOSLAVE INTSTAT: FOVFL (Bit 1) */ +#define IOSLAVE_INTSTAT_FOVFL_Msk (0x2UL) /*!< IOSLAVE INTSTAT: FOVFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSTAT_FSIZE_Pos (0UL) /*!< IOSLAVE INTSTAT: FSIZE (Bit 0) */ +#define IOSLAVE_INTSTAT_FSIZE_Msk (0x1UL) /*!< IOSLAVE INTSTAT: FSIZE (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define IOSLAVE_INTCLR_XCMPWR_Pos (9UL) /*!< IOSLAVE INTCLR: XCMPWR (Bit 9) */ +#define IOSLAVE_INTCLR_XCMPWR_Msk (0x200UL) /*!< IOSLAVE INTCLR: XCMPWR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_XCMPWF_Pos (8UL) /*!< IOSLAVE INTCLR: XCMPWF (Bit 8) */ +#define IOSLAVE_INTCLR_XCMPWF_Msk (0x100UL) /*!< IOSLAVE INTCLR: XCMPWF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_XCMPRR_Pos (7UL) /*!< IOSLAVE INTCLR: XCMPRR (Bit 7) */ +#define IOSLAVE_INTCLR_XCMPRR_Msk (0x80UL) /*!< IOSLAVE INTCLR: XCMPRR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_XCMPRF_Pos (6UL) /*!< IOSLAVE INTCLR: XCMPRF (Bit 6) */ +#define IOSLAVE_INTCLR_XCMPRF_Msk (0x40UL) /*!< IOSLAVE INTCLR: XCMPRF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_IOINTW_Pos (5UL) /*!< IOSLAVE INTCLR: IOINTW (Bit 5) */ +#define IOSLAVE_INTCLR_IOINTW_Msk (0x20UL) /*!< IOSLAVE INTCLR: IOINTW (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_GENAD_Pos (4UL) /*!< IOSLAVE INTCLR: GENAD (Bit 4) */ +#define IOSLAVE_INTCLR_GENAD_Msk (0x10UL) /*!< IOSLAVE INTCLR: GENAD (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_FRDERR_Pos (3UL) /*!< IOSLAVE INTCLR: FRDERR (Bit 3) */ +#define IOSLAVE_INTCLR_FRDERR_Msk (0x8UL) /*!< IOSLAVE INTCLR: FRDERR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_FUNDFL_Pos (2UL) /*!< IOSLAVE INTCLR: FUNDFL (Bit 2) */ +#define IOSLAVE_INTCLR_FUNDFL_Msk (0x4UL) /*!< IOSLAVE INTCLR: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_FOVFL_Pos (1UL) /*!< IOSLAVE INTCLR: FOVFL (Bit 1) */ +#define IOSLAVE_INTCLR_FOVFL_Msk (0x2UL) /*!< IOSLAVE INTCLR: FOVFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTCLR_FSIZE_Pos (0UL) /*!< IOSLAVE INTCLR: FSIZE (Bit 0) */ +#define IOSLAVE_INTCLR_FSIZE_Msk (0x1UL) /*!< IOSLAVE INTCLR: FSIZE (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define IOSLAVE_INTSET_XCMPWR_Pos (9UL) /*!< IOSLAVE INTSET: XCMPWR (Bit 9) */ +#define IOSLAVE_INTSET_XCMPWR_Msk (0x200UL) /*!< IOSLAVE INTSET: XCMPWR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_XCMPWF_Pos (8UL) /*!< IOSLAVE INTSET: XCMPWF (Bit 8) */ +#define IOSLAVE_INTSET_XCMPWF_Msk (0x100UL) /*!< IOSLAVE INTSET: XCMPWF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_XCMPRR_Pos (7UL) /*!< IOSLAVE INTSET: XCMPRR (Bit 7) */ +#define IOSLAVE_INTSET_XCMPRR_Msk (0x80UL) /*!< IOSLAVE INTSET: XCMPRR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_XCMPRF_Pos (6UL) /*!< IOSLAVE INTSET: XCMPRF (Bit 6) */ +#define IOSLAVE_INTSET_XCMPRF_Msk (0x40UL) /*!< IOSLAVE INTSET: XCMPRF (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_IOINTW_Pos (5UL) /*!< IOSLAVE INTSET: IOINTW (Bit 5) */ +#define IOSLAVE_INTSET_IOINTW_Msk (0x20UL) /*!< IOSLAVE INTSET: IOINTW (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_GENAD_Pos (4UL) /*!< IOSLAVE INTSET: GENAD (Bit 4) */ +#define IOSLAVE_INTSET_GENAD_Msk (0x10UL) /*!< IOSLAVE INTSET: GENAD (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_FRDERR_Pos (3UL) /*!< IOSLAVE INTSET: FRDERR (Bit 3) */ +#define IOSLAVE_INTSET_FRDERR_Msk (0x8UL) /*!< IOSLAVE INTSET: FRDERR (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_FUNDFL_Pos (2UL) /*!< IOSLAVE INTSET: FUNDFL (Bit 2) */ +#define IOSLAVE_INTSET_FUNDFL_Msk (0x4UL) /*!< IOSLAVE INTSET: FUNDFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_FOVFL_Pos (1UL) /*!< IOSLAVE INTSET: FOVFL (Bit 1) */ +#define IOSLAVE_INTSET_FOVFL_Msk (0x2UL) /*!< IOSLAVE INTSET: FOVFL (Bitfield-Mask: 0x01) */ +#define IOSLAVE_INTSET_FSIZE_Pos (0UL) /*!< IOSLAVE INTSET: FSIZE (Bit 0) */ +#define IOSLAVE_INTSET_FSIZE_Msk (0x1UL) /*!< IOSLAVE INTSET: FSIZE (Bitfield-Mask: 0x01) */ +/* ====================================================== REGACCINTEN ====================================================== */ +#define IOSLAVE_REGACCINTEN_REGACC_Pos (0UL) /*!< IOSLAVE REGACCINTEN: REGACC (Bit 0) */ +#define IOSLAVE_REGACCINTEN_REGACC_Msk (0xffffffffUL) /*!< IOSLAVE REGACCINTEN: REGACC (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== REGACCINTSTAT ===================================================== */ +#define IOSLAVE_REGACCINTSTAT_REGACC_Pos (0UL) /*!< IOSLAVE REGACCINTSTAT: REGACC (Bit 0) */ +#define IOSLAVE_REGACCINTSTAT_REGACC_Msk (0xffffffffUL) /*!< IOSLAVE REGACCINTSTAT: REGACC (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== REGACCINTCLR ====================================================== */ +#define IOSLAVE_REGACCINTCLR_REGACC_Pos (0UL) /*!< IOSLAVE REGACCINTCLR: REGACC (Bit 0) */ +#define IOSLAVE_REGACCINTCLR_REGACC_Msk (0xffffffffUL) /*!< IOSLAVE REGACCINTCLR: REGACC (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== REGACCINTSET ====================================================== */ +#define IOSLAVE_REGACCINTSET_REGACC_Pos (0UL) /*!< IOSLAVE REGACCINTSET: REGACC (Bit 0) */ +#define IOSLAVE_REGACCINTSET_REGACC_Msk (0xffffffffUL) /*!< IOSLAVE REGACCINTSET: REGACC (Bitfield-Mask: 0xffffffff) */ + + +/* =========================================================================================================================== */ +/* ================ MCUCTRL ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CHIPPN ========================================================= */ +#define MCUCTRL_CHIPPN_PARTNUM_Pos (0UL) /*!< MCUCTRL CHIPPN: PARTNUM (Bit 0) */ +#define MCUCTRL_CHIPPN_PARTNUM_Msk (0xffffffffUL) /*!< MCUCTRL CHIPPN: PARTNUM (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CHIPID0 ======================================================== */ +#define MCUCTRL_CHIPID0_CHIPID0_Pos (0UL) /*!< MCUCTRL CHIPID0: CHIPID0 (Bit 0) */ +#define MCUCTRL_CHIPID0_CHIPID0_Msk (0xffffffffUL) /*!< MCUCTRL CHIPID0: CHIPID0 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CHIPID1 ======================================================== */ +#define MCUCTRL_CHIPID1_CHIPID1_Pos (0UL) /*!< MCUCTRL CHIPID1: CHIPID1 (Bit 0) */ +#define MCUCTRL_CHIPID1_CHIPID1_Msk (0xffffffffUL) /*!< MCUCTRL CHIPID1: CHIPID1 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CHIPREV ======================================================== */ +#define MCUCTRL_CHIPREV_SIPART_Pos (8UL) /*!< MCUCTRL CHIPREV: SIPART (Bit 8) */ +#define MCUCTRL_CHIPREV_SIPART_Msk (0xfff00UL) /*!< MCUCTRL CHIPREV: SIPART (Bitfield-Mask: 0xfff) */ +#define MCUCTRL_CHIPREV_REVMAJ_Pos (4UL) /*!< MCUCTRL CHIPREV: REVMAJ (Bit 4) */ +#define MCUCTRL_CHIPREV_REVMAJ_Msk (0xf0UL) /*!< MCUCTRL CHIPREV: REVMAJ (Bitfield-Mask: 0x0f) */ +#define MCUCTRL_CHIPREV_REVMIN_Pos (0UL) /*!< MCUCTRL CHIPREV: REVMIN (Bit 0) */ +#define MCUCTRL_CHIPREV_REVMIN_Msk (0xfUL) /*!< MCUCTRL CHIPREV: REVMIN (Bitfield-Mask: 0x0f) */ +/* ======================================================= VENDORID ======================================================== */ +#define MCUCTRL_VENDORID_VENDORID_Pos (0UL) /*!< MCUCTRL VENDORID: VENDORID (Bit 0) */ +#define MCUCTRL_VENDORID_VENDORID_Msk (0xffffffffUL) /*!< MCUCTRL VENDORID: VENDORID (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== SKU ========================================================== */ +#define MCUCTRL_SKU_SECBOOT_Pos (2UL) /*!< MCUCTRL SKU: SECBOOT (Bit 2) */ +#define MCUCTRL_SKU_SECBOOT_Msk (0x4UL) /*!< MCUCTRL SKU: SECBOOT (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SKU_ALLOWBLE_Pos (1UL) /*!< MCUCTRL SKU: ALLOWBLE (Bit 1) */ +#define MCUCTRL_SKU_ALLOWBLE_Msk (0x2UL) /*!< MCUCTRL SKU: ALLOWBLE (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SKU_ALLOWBURST_Pos (0UL) /*!< MCUCTRL SKU: ALLOWBURST (Bit 0) */ +#define MCUCTRL_SKU_ALLOWBURST_Msk (0x1UL) /*!< MCUCTRL SKU: ALLOWBURST (Bitfield-Mask: 0x01) */ +/* ===================================================== FEATUREENABLE ===================================================== */ +#define MCUCTRL_FEATUREENABLE_BURSTAVAIL_Pos (6UL) /*!< MCUCTRL FEATUREENABLE: BURSTAVAIL (Bit 6) */ +#define MCUCTRL_FEATUREENABLE_BURSTAVAIL_Msk (0x40UL) /*!< MCUCTRL FEATUREENABLE: BURSTAVAIL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FEATUREENABLE_BURSTACK_Pos (5UL) /*!< MCUCTRL FEATUREENABLE: BURSTACK (Bit 5) */ +#define MCUCTRL_FEATUREENABLE_BURSTACK_Msk (0x20UL) /*!< MCUCTRL FEATUREENABLE: BURSTACK (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FEATUREENABLE_BURSTREQ_Pos (4UL) /*!< MCUCTRL FEATUREENABLE: BURSTREQ (Bit 4) */ +#define MCUCTRL_FEATUREENABLE_BURSTREQ_Msk (0x10UL) /*!< MCUCTRL FEATUREENABLE: BURSTREQ (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FEATUREENABLE_BLEAVAIL_Pos (2UL) /*!< MCUCTRL FEATUREENABLE: BLEAVAIL (Bit 2) */ +#define MCUCTRL_FEATUREENABLE_BLEAVAIL_Msk (0x4UL) /*!< MCUCTRL FEATUREENABLE: BLEAVAIL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FEATUREENABLE_BLEACK_Pos (1UL) /*!< MCUCTRL FEATUREENABLE: BLEACK (Bit 1) */ +#define MCUCTRL_FEATUREENABLE_BLEACK_Msk (0x2UL) /*!< MCUCTRL FEATUREENABLE: BLEACK (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FEATUREENABLE_BLEREQ_Pos (0UL) /*!< MCUCTRL FEATUREENABLE: BLEREQ (Bit 0) */ +#define MCUCTRL_FEATUREENABLE_BLEREQ_Msk (0x1UL) /*!< MCUCTRL FEATUREENABLE: BLEREQ (Bitfield-Mask: 0x01) */ +/* ======================================================= DEBUGGER ======================================================== */ +#define MCUCTRL_DEBUGGER_LOCKOUT_Pos (0UL) /*!< MCUCTRL DEBUGGER: LOCKOUT (Bit 0) */ +#define MCUCTRL_DEBUGGER_LOCKOUT_Msk (0x1UL) /*!< MCUCTRL DEBUGGER: LOCKOUT (Bitfield-Mask: 0x01) */ +/* ================================================= DMASRAMWRITEPROTECT2 ================================================== */ +#define MCUCTRL_DMASRAMWRITEPROTECT2_DMA_WPROT2_Pos (0UL) /*!< MCUCTRL DMASRAMWRITEPROTECT2: DMA_WPROT2 (Bit 0) */ +#define MCUCTRL_DMASRAMWRITEPROTECT2_DMA_WPROT2_Msk (0xffffffffUL) /*!< MCUCTRL DMASRAMWRITEPROTECT2: DMA_WPROT2 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== BODCTRL ======================================================== */ +#define MCUCTRL_BODCTRL_BODHVREFSEL_Pos (5UL) /*!< MCUCTRL BODCTRL: BODHVREFSEL (Bit 5) */ +#define MCUCTRL_BODCTRL_BODHVREFSEL_Msk (0x20UL) /*!< MCUCTRL BODCTRL: BODHVREFSEL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BODCTRL_BODLVREFSEL_Pos (4UL) /*!< MCUCTRL BODCTRL: BODLVREFSEL (Bit 4) */ +#define MCUCTRL_BODCTRL_BODLVREFSEL_Msk (0x10UL) /*!< MCUCTRL BODCTRL: BODLVREFSEL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BODCTRL_BODFPWD_Pos (3UL) /*!< MCUCTRL BODCTRL: BODFPWD (Bit 3) */ +#define MCUCTRL_BODCTRL_BODFPWD_Msk (0x8UL) /*!< MCUCTRL BODCTRL: BODFPWD (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BODCTRL_BODCPWD_Pos (2UL) /*!< MCUCTRL BODCTRL: BODCPWD (Bit 2) */ +#define MCUCTRL_BODCTRL_BODCPWD_Msk (0x4UL) /*!< MCUCTRL BODCTRL: BODCPWD (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BODCTRL_BODHPWD_Pos (1UL) /*!< MCUCTRL BODCTRL: BODHPWD (Bit 1) */ +#define MCUCTRL_BODCTRL_BODHPWD_Msk (0x2UL) /*!< MCUCTRL BODCTRL: BODHPWD (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BODCTRL_BODLPWD_Pos (0UL) /*!< MCUCTRL BODCTRL: BODLPWD (Bit 0) */ +#define MCUCTRL_BODCTRL_BODLPWD_Msk (0x1UL) /*!< MCUCTRL BODCTRL: BODLPWD (Bitfield-Mask: 0x01) */ +/* ======================================================= ADCPWRDLY ======================================================= */ +#define MCUCTRL_ADCPWRDLY_ADCPWR1_Pos (8UL) /*!< MCUCTRL ADCPWRDLY: ADCPWR1 (Bit 8) */ +#define MCUCTRL_ADCPWRDLY_ADCPWR1_Msk (0xff00UL) /*!< MCUCTRL ADCPWRDLY: ADCPWR1 (Bitfield-Mask: 0xff) */ +#define MCUCTRL_ADCPWRDLY_ADCPWR0_Pos (0UL) /*!< MCUCTRL ADCPWRDLY: ADCPWR0 (Bit 0) */ +#define MCUCTRL_ADCPWRDLY_ADCPWR0_Msk (0xffUL) /*!< MCUCTRL ADCPWRDLY: ADCPWR0 (Bitfield-Mask: 0xff) */ +/* ======================================================== ADCCAL ========================================================= */ +#define MCUCTRL_ADCCAL_ADCCALIBRATED_Pos (1UL) /*!< MCUCTRL ADCCAL: ADCCALIBRATED (Bit 1) */ +#define MCUCTRL_ADCCAL_ADCCALIBRATED_Msk (0x2UL) /*!< MCUCTRL ADCCAL: ADCCALIBRATED (Bitfield-Mask: 0x01) */ +#define MCUCTRL_ADCCAL_CALONPWRUP_Pos (0UL) /*!< MCUCTRL ADCCAL: CALONPWRUP (Bit 0) */ +#define MCUCTRL_ADCCAL_CALONPWRUP_Msk (0x1UL) /*!< MCUCTRL ADCCAL: CALONPWRUP (Bitfield-Mask: 0x01) */ +/* ====================================================== ADCBATTLOAD ====================================================== */ +#define MCUCTRL_ADCBATTLOAD_BATTLOAD_Pos (0UL) /*!< MCUCTRL ADCBATTLOAD: BATTLOAD (Bit 0) */ +#define MCUCTRL_ADCBATTLOAD_BATTLOAD_Msk (0x1UL) /*!< MCUCTRL ADCBATTLOAD: BATTLOAD (Bitfield-Mask: 0x01) */ +/* ======================================================== ADCTRIM ======================================================== */ +#define MCUCTRL_ADCTRIM_ADCRFBUFIBTRIM_Pos (11UL) /*!< MCUCTRL ADCTRIM: ADCRFBUFIBTRIM (Bit 11) */ +#define MCUCTRL_ADCTRIM_ADCRFBUFIBTRIM_Msk (0x1800UL) /*!< MCUCTRL ADCTRIM: ADCRFBUFIBTRIM (Bitfield-Mask: 0x03) */ +#define MCUCTRL_ADCTRIM_ADCREFBUFTRIM_Pos (6UL) /*!< MCUCTRL ADCTRIM: ADCREFBUFTRIM (Bit 6) */ +#define MCUCTRL_ADCTRIM_ADCREFBUFTRIM_Msk (0x7c0UL) /*!< MCUCTRL ADCTRIM: ADCREFBUFTRIM (Bitfield-Mask: 0x1f) */ +#define MCUCTRL_ADCTRIM_ADCREFKEEPIBTRIM_Pos (0UL) /*!< MCUCTRL ADCTRIM: ADCREFKEEPIBTRIM (Bit 0) */ +#define MCUCTRL_ADCTRIM_ADCREFKEEPIBTRIM_Msk (0x3UL) /*!< MCUCTRL ADCTRIM: ADCREFKEEPIBTRIM (Bitfield-Mask: 0x03) */ +/* ====================================================== ADCREFCOMP ======================================================= */ +#define MCUCTRL_ADCREFCOMP_ADCRFCMPEN_Pos (16UL) /*!< MCUCTRL ADCREFCOMP: ADCRFCMPEN (Bit 16) */ +#define MCUCTRL_ADCREFCOMP_ADCRFCMPEN_Msk (0x10000UL) /*!< MCUCTRL ADCREFCOMP: ADCRFCMPEN (Bitfield-Mask: 0x01) */ +#define MCUCTRL_ADCREFCOMP_ADCREFKEEPTRIM_Pos (8UL) /*!< MCUCTRL ADCREFCOMP: ADCREFKEEPTRIM (Bit 8) */ +#define MCUCTRL_ADCREFCOMP_ADCREFKEEPTRIM_Msk (0x1f00UL) /*!< MCUCTRL ADCREFCOMP: ADCREFKEEPTRIM (Bitfield-Mask: 0x1f) */ +#define MCUCTRL_ADCREFCOMP_ADC_REFCOMP_OUT_Pos (0UL) /*!< MCUCTRL ADCREFCOMP: ADC_REFCOMP_OUT (Bit 0) */ +#define MCUCTRL_ADCREFCOMP_ADC_REFCOMP_OUT_Msk (0x1UL) /*!< MCUCTRL ADCREFCOMP: ADC_REFCOMP_OUT (Bitfield-Mask: 0x01) */ +/* ======================================================= XTALCTRL ======================================================== */ +#define MCUCTRL_XTALCTRL_XTALICOMPTRIM_Pos (8UL) /*!< MCUCTRL XTALCTRL: XTALICOMPTRIM (Bit 8) */ +#define MCUCTRL_XTALCTRL_XTALICOMPTRIM_Msk (0x300UL) /*!< MCUCTRL XTALCTRL: XTALICOMPTRIM (Bitfield-Mask: 0x03) */ +#define MCUCTRL_XTALCTRL_XTALIBUFTRIM_Pos (6UL) /*!< MCUCTRL XTALCTRL: XTALIBUFTRIM (Bit 6) */ +#define MCUCTRL_XTALCTRL_XTALIBUFTRIM_Msk (0xc0UL) /*!< MCUCTRL XTALCTRL: XTALIBUFTRIM (Bitfield-Mask: 0x03) */ +#define MCUCTRL_XTALCTRL_PWDBODXTAL_Pos (5UL) /*!< MCUCTRL XTALCTRL: PWDBODXTAL (Bit 5) */ +#define MCUCTRL_XTALCTRL_PWDBODXTAL_Msk (0x20UL) /*!< MCUCTRL XTALCTRL: PWDBODXTAL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_XTALCTRL_PDNBCMPRXTAL_Pos (4UL) /*!< MCUCTRL XTALCTRL: PDNBCMPRXTAL (Bit 4) */ +#define MCUCTRL_XTALCTRL_PDNBCMPRXTAL_Msk (0x10UL) /*!< MCUCTRL XTALCTRL: PDNBCMPRXTAL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_XTALCTRL_PDNBCOREXTAL_Pos (3UL) /*!< MCUCTRL XTALCTRL: PDNBCOREXTAL (Bit 3) */ +#define MCUCTRL_XTALCTRL_PDNBCOREXTAL_Msk (0x8UL) /*!< MCUCTRL XTALCTRL: PDNBCOREXTAL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_XTALCTRL_BYPCMPRXTAL_Pos (2UL) /*!< MCUCTRL XTALCTRL: BYPCMPRXTAL (Bit 2) */ +#define MCUCTRL_XTALCTRL_BYPCMPRXTAL_Msk (0x4UL) /*!< MCUCTRL XTALCTRL: BYPCMPRXTAL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_XTALCTRL_FDBKDSBLXTAL_Pos (1UL) /*!< MCUCTRL XTALCTRL: FDBKDSBLXTAL (Bit 1) */ +#define MCUCTRL_XTALCTRL_FDBKDSBLXTAL_Msk (0x2UL) /*!< MCUCTRL XTALCTRL: FDBKDSBLXTAL (Bitfield-Mask: 0x01) */ +#define MCUCTRL_XTALCTRL_XTALSWE_Pos (0UL) /*!< MCUCTRL XTALCTRL: XTALSWE (Bit 0) */ +#define MCUCTRL_XTALCTRL_XTALSWE_Msk (0x1UL) /*!< MCUCTRL XTALCTRL: XTALSWE (Bitfield-Mask: 0x01) */ +/* ====================================================== XTALGENCTRL ====================================================== */ +#define MCUCTRL_XTALGENCTRL_XTALKSBIASTRIM_Pos (8UL) /*!< MCUCTRL XTALGENCTRL: XTALKSBIASTRIM (Bit 8) */ +#define MCUCTRL_XTALGENCTRL_XTALKSBIASTRIM_Msk (0x3f00UL) /*!< MCUCTRL XTALGENCTRL: XTALKSBIASTRIM (Bitfield-Mask: 0x3f) */ +#define MCUCTRL_XTALGENCTRL_XTALBIASTRIM_Pos (2UL) /*!< MCUCTRL XTALGENCTRL: XTALBIASTRIM (Bit 2) */ +#define MCUCTRL_XTALGENCTRL_XTALBIASTRIM_Msk (0xfcUL) /*!< MCUCTRL XTALGENCTRL: XTALBIASTRIM (Bitfield-Mask: 0x3f) */ +#define MCUCTRL_XTALGENCTRL_ACWARMUP_Pos (0UL) /*!< MCUCTRL XTALGENCTRL: ACWARMUP (Bit 0) */ +#define MCUCTRL_XTALGENCTRL_ACWARMUP_Msk (0x3UL) /*!< MCUCTRL XTALGENCTRL: ACWARMUP (Bitfield-Mask: 0x03) */ +/* ======================================================= MISCCTRL ======================================================== */ +#define MCUCTRL_MISCCTRL_BLE_RESETN_Pos (5UL) /*!< MCUCTRL MISCCTRL: BLE_RESETN (Bit 5) */ +#define MCUCTRL_MISCCTRL_BLE_RESETN_Msk (0x20UL) /*!< MCUCTRL MISCCTRL: BLE_RESETN (Bitfield-Mask: 0x01) */ +#define MCUCTRL_MISCCTRL_RESERVED_RW_0_Pos (0UL) /*!< MCUCTRL MISCCTRL: RESERVED_RW_0 (Bit 0) */ +#define MCUCTRL_MISCCTRL_RESERVED_RW_0_Msk (0x1fUL) /*!< MCUCTRL MISCCTRL: RESERVED_RW_0 (Bitfield-Mask: 0x1f) */ +/* ====================================================== BOOTLOADER ======================================================= */ +#define MCUCTRL_BOOTLOADER_SECBOOTONRST_Pos (30UL) /*!< MCUCTRL BOOTLOADER: SECBOOTONRST (Bit 30) */ +#define MCUCTRL_BOOTLOADER_SECBOOTONRST_Msk (0xc0000000UL) /*!< MCUCTRL BOOTLOADER: SECBOOTONRST (Bitfield-Mask: 0x03) */ +#define MCUCTRL_BOOTLOADER_SECBOOT_Pos (28UL) /*!< MCUCTRL BOOTLOADER: SECBOOT (Bit 28) */ +#define MCUCTRL_BOOTLOADER_SECBOOT_Msk (0x30000000UL) /*!< MCUCTRL BOOTLOADER: SECBOOT (Bitfield-Mask: 0x03) */ +#define MCUCTRL_BOOTLOADER_SECBOOTFEATURE_Pos (26UL) /*!< MCUCTRL BOOTLOADER: SECBOOTFEATURE (Bit 26) */ +#define MCUCTRL_BOOTLOADER_SECBOOTFEATURE_Msk (0xc000000UL) /*!< MCUCTRL BOOTLOADER: SECBOOTFEATURE (Bitfield-Mask: 0x03) */ +#define MCUCTRL_BOOTLOADER_PROTLOCK_Pos (2UL) /*!< MCUCTRL BOOTLOADER: PROTLOCK (Bit 2) */ +#define MCUCTRL_BOOTLOADER_PROTLOCK_Msk (0x4UL) /*!< MCUCTRL BOOTLOADER: PROTLOCK (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BOOTLOADER_SBLOCK_Pos (1UL) /*!< MCUCTRL BOOTLOADER: SBLOCK (Bit 1) */ +#define MCUCTRL_BOOTLOADER_SBLOCK_Msk (0x2UL) /*!< MCUCTRL BOOTLOADER: SBLOCK (Bitfield-Mask: 0x01) */ +#define MCUCTRL_BOOTLOADER_BOOTLOADERLOW_Pos (0UL) /*!< MCUCTRL BOOTLOADER: BOOTLOADERLOW (Bit 0) */ +#define MCUCTRL_BOOTLOADER_BOOTLOADERLOW_Msk (0x1UL) /*!< MCUCTRL BOOTLOADER: BOOTLOADERLOW (Bitfield-Mask: 0x01) */ +/* ====================================================== SHADOWVALID ====================================================== */ +#define MCUCTRL_SHADOWVALID_INFO0_VALID_Pos (2UL) /*!< MCUCTRL SHADOWVALID: INFO0_VALID (Bit 2) */ +#define MCUCTRL_SHADOWVALID_INFO0_VALID_Msk (0x4UL) /*!< MCUCTRL SHADOWVALID: INFO0_VALID (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SHADOWVALID_BLDSLEEP_Pos (1UL) /*!< MCUCTRL SHADOWVALID: BLDSLEEP (Bit 1) */ +#define MCUCTRL_SHADOWVALID_BLDSLEEP_Msk (0x2UL) /*!< MCUCTRL SHADOWVALID: BLDSLEEP (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SHADOWVALID_VALID_Pos (0UL) /*!< MCUCTRL SHADOWVALID: VALID (Bit 0) */ +#define MCUCTRL_SHADOWVALID_VALID_Msk (0x1UL) /*!< MCUCTRL SHADOWVALID: VALID (Bitfield-Mask: 0x01) */ +/* ======================================================= SCRATCH0 ======================================================== */ +#define MCUCTRL_SCRATCH0_SCRATCH0_Pos (0UL) /*!< MCUCTRL SCRATCH0: SCRATCH0 (Bit 0) */ +#define MCUCTRL_SCRATCH0_SCRATCH0_Msk (0xffffffffUL) /*!< MCUCTRL SCRATCH0: SCRATCH0 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= SCRATCH1 ======================================================== */ +#define MCUCTRL_SCRATCH1_SCRATCH1_Pos (0UL) /*!< MCUCTRL SCRATCH1: SCRATCH1 (Bit 0) */ +#define MCUCTRL_SCRATCH1_SCRATCH1_Msk (0xffffffffUL) /*!< MCUCTRL SCRATCH1: SCRATCH1 (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== ICODEFAULTADDR ===================================================== */ +#define MCUCTRL_ICODEFAULTADDR_ICODEFAULTADDR_Pos (0UL) /*!< MCUCTRL ICODEFAULTADDR: ICODEFAULTADDR (Bit 0) */ +#define MCUCTRL_ICODEFAULTADDR_ICODEFAULTADDR_Msk (0xffffffffUL) /*!< MCUCTRL ICODEFAULTADDR: ICODEFAULTADDR (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DCODEFAULTADDR ===================================================== */ +#define MCUCTRL_DCODEFAULTADDR_DCODEFAULTADDR_Pos (0UL) /*!< MCUCTRL DCODEFAULTADDR: DCODEFAULTADDR (Bit 0) */ +#define MCUCTRL_DCODEFAULTADDR_DCODEFAULTADDR_Msk (0xffffffffUL) /*!< MCUCTRL DCODEFAULTADDR: DCODEFAULTADDR (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== SYSFAULTADDR ====================================================== */ +#define MCUCTRL_SYSFAULTADDR_SYSFAULTADDR_Pos (0UL) /*!< MCUCTRL SYSFAULTADDR: SYSFAULTADDR (Bit 0) */ +#define MCUCTRL_SYSFAULTADDR_SYSFAULTADDR_Msk (0xffffffffUL) /*!< MCUCTRL SYSFAULTADDR: SYSFAULTADDR (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FAULTSTATUS ====================================================== */ +#define MCUCTRL_FAULTSTATUS_SYSFAULT_Pos (2UL) /*!< MCUCTRL FAULTSTATUS: SYSFAULT (Bit 2) */ +#define MCUCTRL_FAULTSTATUS_SYSFAULT_Msk (0x4UL) /*!< MCUCTRL FAULTSTATUS: SYSFAULT (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FAULTSTATUS_DCODEFAULT_Pos (1UL) /*!< MCUCTRL FAULTSTATUS: DCODEFAULT (Bit 1) */ +#define MCUCTRL_FAULTSTATUS_DCODEFAULT_Msk (0x2UL) /*!< MCUCTRL FAULTSTATUS: DCODEFAULT (Bitfield-Mask: 0x01) */ +#define MCUCTRL_FAULTSTATUS_ICODEFAULT_Pos (0UL) /*!< MCUCTRL FAULTSTATUS: ICODEFAULT (Bit 0) */ +#define MCUCTRL_FAULTSTATUS_ICODEFAULT_Msk (0x1UL) /*!< MCUCTRL FAULTSTATUS: ICODEFAULT (Bitfield-Mask: 0x01) */ +/* ==================================================== FAULTCAPTUREEN ===================================================== */ +#define MCUCTRL_FAULTCAPTUREEN_FAULTCAPTUREEN_Pos (0UL) /*!< MCUCTRL FAULTCAPTUREEN: FAULTCAPTUREEN (Bit 0) */ +#define MCUCTRL_FAULTCAPTUREEN_FAULTCAPTUREEN_Msk (0x1UL) /*!< MCUCTRL FAULTCAPTUREEN: FAULTCAPTUREEN (Bitfield-Mask: 0x01) */ +/* ========================================================= DBGR1 ========================================================= */ +#define MCUCTRL_DBGR1_ONETO8_Pos (0UL) /*!< MCUCTRL DBGR1: ONETO8 (Bit 0) */ +#define MCUCTRL_DBGR1_ONETO8_Msk (0xffffffffUL) /*!< MCUCTRL DBGR1: ONETO8 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DBGR2 ========================================================= */ +#define MCUCTRL_DBGR2_COOLCODE_Pos (0UL) /*!< MCUCTRL DBGR2: COOLCODE (Bit 0) */ +#define MCUCTRL_DBGR2_COOLCODE_Msk (0xffffffffUL) /*!< MCUCTRL DBGR2: COOLCODE (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= PMUENABLE ======================================================= */ +#define MCUCTRL_PMUENABLE_ENABLE_Pos (0UL) /*!< MCUCTRL PMUENABLE: ENABLE (Bit 0) */ +#define MCUCTRL_PMUENABLE_ENABLE_Msk (0x1UL) /*!< MCUCTRL PMUENABLE: ENABLE (Bitfield-Mask: 0x01) */ +/* ======================================================= TPIUCTRL ======================================================== */ +#define MCUCTRL_TPIUCTRL_CLKSEL_Pos (8UL) /*!< MCUCTRL TPIUCTRL: CLKSEL (Bit 8) */ +#define MCUCTRL_TPIUCTRL_CLKSEL_Msk (0x700UL) /*!< MCUCTRL TPIUCTRL: CLKSEL (Bitfield-Mask: 0x07) */ +#define MCUCTRL_TPIUCTRL_ENABLE_Pos (0UL) /*!< MCUCTRL TPIUCTRL: ENABLE (Bit 0) */ +#define MCUCTRL_TPIUCTRL_ENABLE_Msk (0x1UL) /*!< MCUCTRL TPIUCTRL: ENABLE (Bitfield-Mask: 0x01) */ +/* ====================================================== OTAPOINTER ======================================================= */ +#define MCUCTRL_OTAPOINTER_OTAPOINTER_Pos (2UL) /*!< MCUCTRL OTAPOINTER: OTAPOINTER (Bit 2) */ +#define MCUCTRL_OTAPOINTER_OTAPOINTER_Msk (0xfffffffcUL) /*!< MCUCTRL OTAPOINTER: OTAPOINTER (Bitfield-Mask: 0x3fffffff) */ +#define MCUCTRL_OTAPOINTER_OTASBLUPDATE_Pos (1UL) /*!< MCUCTRL OTAPOINTER: OTASBLUPDATE (Bit 1) */ +#define MCUCTRL_OTAPOINTER_OTASBLUPDATE_Msk (0x2UL) /*!< MCUCTRL OTAPOINTER: OTASBLUPDATE (Bitfield-Mask: 0x01) */ +#define MCUCTRL_OTAPOINTER_OTAVALID_Pos (0UL) /*!< MCUCTRL OTAPOINTER: OTAVALID (Bit 0) */ +#define MCUCTRL_OTAPOINTER_OTAVALID_Msk (0x1UL) /*!< MCUCTRL OTAPOINTER: OTAVALID (Bitfield-Mask: 0x01) */ +/* ====================================================== APBDMACTRL ======================================================= */ +#define MCUCTRL_APBDMACTRL_HYSTERESIS_Pos (8UL) /*!< MCUCTRL APBDMACTRL: HYSTERESIS (Bit 8) */ +#define MCUCTRL_APBDMACTRL_HYSTERESIS_Msk (0xff00UL) /*!< MCUCTRL APBDMACTRL: HYSTERESIS (Bitfield-Mask: 0xff) */ +#define MCUCTRL_APBDMACTRL_DMAOPT_Pos (2UL) /*!< MCUCTRL APBDMACTRL: DMAOPT (Bit 2) */ +#define MCUCTRL_APBDMACTRL_DMAOPT_Msk (0x4UL) /*!< MCUCTRL APBDMACTRL: DMAOPT (Bitfield-Mask: 0x01) */ +#define MCUCTRL_APBDMACTRL_DECODEABORT_Pos (1UL) /*!< MCUCTRL APBDMACTRL: DECODEABORT (Bit 1) */ +#define MCUCTRL_APBDMACTRL_DECODEABORT_Msk (0x2UL) /*!< MCUCTRL APBDMACTRL: DECODEABORT (Bitfield-Mask: 0x01) */ +#define MCUCTRL_APBDMACTRL_DMA_ENABLE_Pos (0UL) /*!< MCUCTRL APBDMACTRL: DMA_ENABLE (Bit 0) */ +#define MCUCTRL_APBDMACTRL_DMA_ENABLE_Msk (0x1UL) /*!< MCUCTRL APBDMACTRL: DMA_ENABLE (Bitfield-Mask: 0x01) */ +/* ======================================================= SRAMMODE ======================================================== */ +#define MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Pos (5UL) /*!< MCUCTRL SRAMMODE: DPREFETCH_CACHE (Bit 5) */ +#define MCUCTRL_SRAMMODE_DPREFETCH_CACHE_Msk (0x20UL) /*!< MCUCTRL SRAMMODE: DPREFETCH_CACHE (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SRAMMODE_DPREFETCH_Pos (4UL) /*!< MCUCTRL SRAMMODE: DPREFETCH (Bit 4) */ +#define MCUCTRL_SRAMMODE_DPREFETCH_Msk (0x10UL) /*!< MCUCTRL SRAMMODE: DPREFETCH (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Pos (1UL) /*!< MCUCTRL SRAMMODE: IPREFETCH_CACHE (Bit 1) */ +#define MCUCTRL_SRAMMODE_IPREFETCH_CACHE_Msk (0x2UL) /*!< MCUCTRL SRAMMODE: IPREFETCH_CACHE (Bitfield-Mask: 0x01) */ +#define MCUCTRL_SRAMMODE_IPREFETCH_Pos (0UL) /*!< MCUCTRL SRAMMODE: IPREFETCH (Bit 0) */ +#define MCUCTRL_SRAMMODE_IPREFETCH_Msk (0x1UL) /*!< MCUCTRL SRAMMODE: IPREFETCH (Bitfield-Mask: 0x01) */ +/* ====================================================== KEXTCLKSEL ======================================================= */ +#define MCUCTRL_KEXTCLKSEL_KEXTCLKSEL_Pos (0UL) /*!< MCUCTRL KEXTCLKSEL: KEXTCLKSEL (Bit 0) */ +#define MCUCTRL_KEXTCLKSEL_KEXTCLKSEL_Msk (0xffffffffUL) /*!< MCUCTRL KEXTCLKSEL: KEXTCLKSEL (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= SIMOBUCK4 ======================================================= */ +#define MCUCTRL_SIMOBUCK4_SIMOBUCKCLKDIVSEL_Pos (21UL) /*!< MCUCTRL SIMOBUCK4: SIMOBUCKCLKDIVSEL (Bit 21) */ +#define MCUCTRL_SIMOBUCK4_SIMOBUCKCLKDIVSEL_Msk (0x600000UL) /*!< MCUCTRL SIMOBUCK4: SIMOBUCKCLKDIVSEL (Bitfield-Mask: 0x03) */ +/* ======================================================= BLEBUCK2 ======================================================== */ +#define MCUCTRL_BLEBUCK2_BLEBUCKTOND2ATRIM_Pos (12UL) /*!< MCUCTRL BLEBUCK2: BLEBUCKTOND2ATRIM (Bit 12) */ +#define MCUCTRL_BLEBUCK2_BLEBUCKTOND2ATRIM_Msk (0x3f000UL) /*!< MCUCTRL BLEBUCK2: BLEBUCKTOND2ATRIM (Bitfield-Mask: 0x3f) */ +#define MCUCTRL_BLEBUCK2_BLEBUCKTONHITRIM_Pos (6UL) /*!< MCUCTRL BLEBUCK2: BLEBUCKTONHITRIM (Bit 6) */ +#define MCUCTRL_BLEBUCK2_BLEBUCKTONHITRIM_Msk (0xfc0UL) /*!< MCUCTRL BLEBUCK2: BLEBUCKTONHITRIM (Bitfield-Mask: 0x3f) */ +#define MCUCTRL_BLEBUCK2_BLEBUCKTONLOWTRIM_Pos (0UL) /*!< MCUCTRL BLEBUCK2: BLEBUCKTONLOWTRIM (Bit 0) */ +#define MCUCTRL_BLEBUCK2_BLEBUCKTONLOWTRIM_Msk (0x3fUL) /*!< MCUCTRL BLEBUCK2: BLEBUCKTONLOWTRIM (Bitfield-Mask: 0x3f) */ +/* ====================================================== FLASHWPROT0 ====================================================== */ +#define MCUCTRL_FLASHWPROT0_FW0BITS_Pos (0UL) /*!< MCUCTRL FLASHWPROT0: FW0BITS (Bit 0) */ +#define MCUCTRL_FLASHWPROT0_FW0BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHWPROT0: FW0BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHWPROT1 ====================================================== */ +#define MCUCTRL_FLASHWPROT1_FW1BITS_Pos (0UL) /*!< MCUCTRL FLASHWPROT1: FW1BITS (Bit 0) */ +#define MCUCTRL_FLASHWPROT1_FW1BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHWPROT1: FW1BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHWPROT2 ====================================================== */ +#define MCUCTRL_FLASHWPROT2_FW2BITS_Pos (0UL) /*!< MCUCTRL FLASHWPROT2: FW2BITS (Bit 0) */ +#define MCUCTRL_FLASHWPROT2_FW2BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHWPROT2: FW2BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHWPROT3 ====================================================== */ +#define MCUCTRL_FLASHWPROT3_FW3BITS_Pos (0UL) /*!< MCUCTRL FLASHWPROT3: FW3BITS (Bit 0) */ +#define MCUCTRL_FLASHWPROT3_FW3BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHWPROT3: FW3BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHRPROT0 ====================================================== */ +#define MCUCTRL_FLASHRPROT0_FR0BITS_Pos (0UL) /*!< MCUCTRL FLASHRPROT0: FR0BITS (Bit 0) */ +#define MCUCTRL_FLASHRPROT0_FR0BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHRPROT0: FR0BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHRPROT1 ====================================================== */ +#define MCUCTRL_FLASHRPROT1_FR1BITS_Pos (0UL) /*!< MCUCTRL FLASHRPROT1: FR1BITS (Bit 0) */ +#define MCUCTRL_FLASHRPROT1_FR1BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHRPROT1: FR1BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHRPROT2 ====================================================== */ +#define MCUCTRL_FLASHRPROT2_FR2BITS_Pos (0UL) /*!< MCUCTRL FLASHRPROT2: FR2BITS (Bit 0) */ +#define MCUCTRL_FLASHRPROT2_FR2BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHRPROT2: FR2BITS (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== FLASHRPROT3 ====================================================== */ +#define MCUCTRL_FLASHRPROT3_FR3BITS_Pos (0UL) /*!< MCUCTRL FLASHRPROT3: FR3BITS (Bit 0) */ +#define MCUCTRL_FLASHRPROT3_FR3BITS_Msk (0xffffffffUL) /*!< MCUCTRL FLASHRPROT3: FR3BITS (Bitfield-Mask: 0xffffffff) */ +/* ================================================= DMASRAMWRITEPROTECT0 ================================================== */ +#define MCUCTRL_DMASRAMWRITEPROTECT0_DMA_WPROT0_Pos (0UL) /*!< MCUCTRL DMASRAMWRITEPROTECT0: DMA_WPROT0 (Bit 0) */ +#define MCUCTRL_DMASRAMWRITEPROTECT0_DMA_WPROT0_Msk (0xffffffffUL) /*!< MCUCTRL DMASRAMWRITEPROTECT0: DMA_WPROT0 (Bitfield-Mask: 0xffffffff) */ +/* ================================================= DMASRAMWRITEPROTECT1 ================================================== */ +#define MCUCTRL_DMASRAMWRITEPROTECT1_DMA_WPROT1_Pos (0UL) /*!< MCUCTRL DMASRAMWRITEPROTECT1: DMA_WPROT1 (Bit 0) */ +#define MCUCTRL_DMASRAMWRITEPROTECT1_DMA_WPROT1_Msk (0xffffffffUL) /*!< MCUCTRL DMASRAMWRITEPROTECT1: DMA_WPROT1 (Bitfield-Mask: 0xffffffff) */ +/* ================================================== DMASRAMREADPROTECT0 ================================================== */ +#define MCUCTRL_DMASRAMREADPROTECT0_DMA_RPROT0_Pos (0UL) /*!< MCUCTRL DMASRAMREADPROTECT0: DMA_RPROT0 (Bit 0) */ +#define MCUCTRL_DMASRAMREADPROTECT0_DMA_RPROT0_Msk (0xffffffffUL) /*!< MCUCTRL DMASRAMREADPROTECT0: DMA_RPROT0 (Bitfield-Mask: 0xffffffff) */ +/* ================================================== DMASRAMREADPROTECT1 ================================================== */ +#define MCUCTRL_DMASRAMREADPROTECT1_DMA_RPROT1_Pos (0UL) /*!< MCUCTRL DMASRAMREADPROTECT1: DMA_RPROT1 (Bit 0) */ +#define MCUCTRL_DMASRAMREADPROTECT1_DMA_RPROT1_Msk (0xffffffffUL) /*!< MCUCTRL DMASRAMREADPROTECT1: DMA_RPROT1 (Bitfield-Mask: 0xffffffff) */ +/* ================================================== DMASRAMREADPROTECT2 ================================================== */ +#define MCUCTRL_DMASRAMREADPROTECT2_DMA_RPROT2_Pos (0UL) /*!< MCUCTRL DMASRAMREADPROTECT2: DMA_RPROT2 (Bit 0) */ +#define MCUCTRL_DMASRAMREADPROTECT2_DMA_RPROT2_Msk (0xffffffffUL) /*!< MCUCTRL DMASRAMREADPROTECT2: DMA_RPROT2 (Bitfield-Mask: 0xffffffff) */ + + +/* =========================================================================================================================== */ +/* ================ MSPI0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CTRL ========================================================== */ +#define MSPI0_CTRL_XFERBYTES_Pos (16UL) /*!< MSPI0 CTRL: XFERBYTES (Bit 16) */ +#define MSPI0_CTRL_XFERBYTES_Msk (0xffff0000UL) /*!< MSPI0 CTRL: XFERBYTES (Bitfield-Mask: 0xffff) */ +#define MSPI0_CTRL_ENDCX_Pos (12UL) /*!< MSPI0 CTRL: ENDCX (Bit 12) */ +#define MSPI0_CTRL_ENDCX_Msk (0x1000UL) /*!< MSPI0 CTRL: ENDCX (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_PIOSCRAMBLE_Pos (11UL) /*!< MSPI0 CTRL: PIOSCRAMBLE (Bit 11) */ +#define MSPI0_CTRL_PIOSCRAMBLE_Msk (0x800UL) /*!< MSPI0 CTRL: PIOSCRAMBLE (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_TXRX_Pos (10UL) /*!< MSPI0 CTRL: TXRX (Bit 10) */ +#define MSPI0_CTRL_TXRX_Msk (0x400UL) /*!< MSPI0 CTRL: TXRX (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_SENDI_Pos (9UL) /*!< MSPI0 CTRL: SENDI (Bit 9) */ +#define MSPI0_CTRL_SENDI_Msk (0x200UL) /*!< MSPI0 CTRL: SENDI (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_SENDA_Pos (8UL) /*!< MSPI0 CTRL: SENDA (Bit 8) */ +#define MSPI0_CTRL_SENDA_Msk (0x100UL) /*!< MSPI0 CTRL: SENDA (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_ENTURN_Pos (7UL) /*!< MSPI0 CTRL: ENTURN (Bit 7) */ +#define MSPI0_CTRL_ENTURN_Msk (0x80UL) /*!< MSPI0 CTRL: ENTURN (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_BIGENDIAN_Pos (6UL) /*!< MSPI0 CTRL: BIGENDIAN (Bit 6) */ +#define MSPI0_CTRL_BIGENDIAN_Msk (0x40UL) /*!< MSPI0 CTRL: BIGENDIAN (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_CONT_Pos (5UL) /*!< MSPI0 CTRL: CONT (Bit 5) */ +#define MSPI0_CTRL_CONT_Msk (0x20UL) /*!< MSPI0 CTRL: CONT (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_ENWLAT_Pos (4UL) /*!< MSPI0 CTRL: ENWLAT (Bit 4) */ +#define MSPI0_CTRL_ENWLAT_Msk (0x10UL) /*!< MSPI0 CTRL: ENWLAT (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_QUADCMD_Pos (3UL) /*!< MSPI0 CTRL: QUADCMD (Bit 3) */ +#define MSPI0_CTRL_QUADCMD_Msk (0x8UL) /*!< MSPI0 CTRL: QUADCMD (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_BUSY_Pos (2UL) /*!< MSPI0 CTRL: BUSY (Bit 2) */ +#define MSPI0_CTRL_BUSY_Msk (0x4UL) /*!< MSPI0 CTRL: BUSY (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_STATUS_Pos (1UL) /*!< MSPI0 CTRL: STATUS (Bit 1) */ +#define MSPI0_CTRL_STATUS_Msk (0x2UL) /*!< MSPI0 CTRL: STATUS (Bitfield-Mask: 0x01) */ +#define MSPI0_CTRL_START_Pos (0UL) /*!< MSPI0 CTRL: START (Bit 0) */ +#define MSPI0_CTRL_START_Msk (0x1UL) /*!< MSPI0 CTRL: START (Bitfield-Mask: 0x01) */ +/* ========================================================== CFG ========================================================== */ +#define MSPI0_CFG_WRITELATENCY_Pos (20UL) /*!< MSPI0 CFG: WRITELATENCY (Bit 20) */ +#define MSPI0_CFG_WRITELATENCY_Msk (0x3f00000UL) /*!< MSPI0 CFG: WRITELATENCY (Bitfield-Mask: 0x3f) */ +#define MSPI0_CFG_CPOL_Pos (17UL) /*!< MSPI0 CFG: CPOL (Bit 17) */ +#define MSPI0_CFG_CPOL_Msk (0x20000UL) /*!< MSPI0 CFG: CPOL (Bitfield-Mask: 0x01) */ +#define MSPI0_CFG_CPHA_Pos (16UL) /*!< MSPI0 CFG: CPHA (Bit 16) */ +#define MSPI0_CFG_CPHA_Msk (0x10000UL) /*!< MSPI0 CFG: CPHA (Bitfield-Mask: 0x01) */ +#define MSPI0_CFG_TURNAROUND_Pos (8UL) /*!< MSPI0 CFG: TURNAROUND (Bit 8) */ +#define MSPI0_CFG_TURNAROUND_Msk (0x3f00UL) /*!< MSPI0 CFG: TURNAROUND (Bitfield-Mask: 0x3f) */ +#define MSPI0_CFG_SEPIO_Pos (7UL) /*!< MSPI0 CFG: SEPIO (Bit 7) */ +#define MSPI0_CFG_SEPIO_Msk (0x80UL) /*!< MSPI0 CFG: SEPIO (Bitfield-Mask: 0x01) */ +#define MSPI0_CFG_ISIZE_Pos (6UL) /*!< MSPI0 CFG: ISIZE (Bit 6) */ +#define MSPI0_CFG_ISIZE_Msk (0x40UL) /*!< MSPI0 CFG: ISIZE (Bitfield-Mask: 0x01) */ +#define MSPI0_CFG_ASIZE_Pos (4UL) /*!< MSPI0 CFG: ASIZE (Bit 4) */ +#define MSPI0_CFG_ASIZE_Msk (0x30UL) /*!< MSPI0 CFG: ASIZE (Bitfield-Mask: 0x03) */ +#define MSPI0_CFG_DEVCFG_Pos (0UL) /*!< MSPI0 CFG: DEVCFG (Bit 0) */ +#define MSPI0_CFG_DEVCFG_Msk (0xfUL) /*!< MSPI0 CFG: DEVCFG (Bitfield-Mask: 0x0f) */ +/* ========================================================= ADDR ========================================================== */ +#define MSPI0_ADDR_ADDR_Pos (0UL) /*!< MSPI0 ADDR: ADDR (Bit 0) */ +#define MSPI0_ADDR_ADDR_Msk (0xffffffffUL) /*!< MSPI0 ADDR: ADDR (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= INSTR ========================================================= */ +#define MSPI0_INSTR_INSTR_Pos (0UL) /*!< MSPI0 INSTR: INSTR (Bit 0) */ +#define MSPI0_INSTR_INSTR_Msk (0xffffUL) /*!< MSPI0 INSTR: INSTR (Bitfield-Mask: 0xffff) */ +/* ======================================================== TXFIFO ========================================================= */ +#define MSPI0_TXFIFO_TXFIFO_Pos (0UL) /*!< MSPI0 TXFIFO: TXFIFO (Bit 0) */ +#define MSPI0_TXFIFO_TXFIFO_Msk (0xffffffffUL) /*!< MSPI0 TXFIFO: TXFIFO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== RXFIFO ========================================================= */ +#define MSPI0_RXFIFO_RXFIFO_Pos (0UL) /*!< MSPI0 RXFIFO: RXFIFO (Bit 0) */ +#define MSPI0_RXFIFO_RXFIFO_Msk (0xffffffffUL) /*!< MSPI0 RXFIFO: RXFIFO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= TXENTRIES ======================================================= */ +#define MSPI0_TXENTRIES_TXENTRIES_Pos (0UL) /*!< MSPI0 TXENTRIES: TXENTRIES (Bit 0) */ +#define MSPI0_TXENTRIES_TXENTRIES_Msk (0x3fUL) /*!< MSPI0 TXENTRIES: TXENTRIES (Bitfield-Mask: 0x3f) */ +/* ======================================================= RXENTRIES ======================================================= */ +#define MSPI0_RXENTRIES_RXENTRIES_Pos (0UL) /*!< MSPI0 RXENTRIES: RXENTRIES (Bit 0) */ +#define MSPI0_RXENTRIES_RXENTRIES_Msk (0x3fUL) /*!< MSPI0 RXENTRIES: RXENTRIES (Bitfield-Mask: 0x3f) */ +/* ======================================================= THRESHOLD ======================================================= */ +#define MSPI0_THRESHOLD_RXTHRESH_Pos (8UL) /*!< MSPI0 THRESHOLD: RXTHRESH (Bit 8) */ +#define MSPI0_THRESHOLD_RXTHRESH_Msk (0x3f00UL) /*!< MSPI0 THRESHOLD: RXTHRESH (Bitfield-Mask: 0x3f) */ +#define MSPI0_THRESHOLD_TXTHRESH_Pos (0UL) /*!< MSPI0 THRESHOLD: TXTHRESH (Bit 0) */ +#define MSPI0_THRESHOLD_TXTHRESH_Msk (0x3fUL) /*!< MSPI0 THRESHOLD: TXTHRESH (Bitfield-Mask: 0x3f) */ +/* ======================================================== MSPICFG ======================================================== */ +#define MSPI0_MSPICFG_PRSTN_Pos (31UL) /*!< MSPI0 MSPICFG: PRSTN (Bit 31) */ +#define MSPI0_MSPICFG_PRSTN_Msk (0x80000000UL) /*!< MSPI0 MSPICFG: PRSTN (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPICFG_IPRSTN_Pos (30UL) /*!< MSPI0 MSPICFG: IPRSTN (Bit 30) */ +#define MSPI0_MSPICFG_IPRSTN_Msk (0x40000000UL) /*!< MSPI0 MSPICFG: IPRSTN (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPICFG_FIFORESET_Pos (29UL) /*!< MSPI0 MSPICFG: FIFORESET (Bit 29) */ +#define MSPI0_MSPICFG_FIFORESET_Msk (0x20000000UL) /*!< MSPI0 MSPICFG: FIFORESET (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPICFG_CLKDIV_Pos (8UL) /*!< MSPI0 MSPICFG: CLKDIV (Bit 8) */ +#define MSPI0_MSPICFG_CLKDIV_Msk (0x3f00UL) /*!< MSPI0 MSPICFG: CLKDIV (Bitfield-Mask: 0x3f) */ +#define MSPI0_MSPICFG_IOMSEL_Pos (4UL) /*!< MSPI0 MSPICFG: IOMSEL (Bit 4) */ +#define MSPI0_MSPICFG_IOMSEL_Msk (0xf0UL) /*!< MSPI0 MSPICFG: IOMSEL (Bitfield-Mask: 0x0f) */ +#define MSPI0_MSPICFG_TXNEG_Pos (3UL) /*!< MSPI0 MSPICFG: TXNEG (Bit 3) */ +#define MSPI0_MSPICFG_TXNEG_Msk (0x8UL) /*!< MSPI0 MSPICFG: TXNEG (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPICFG_RXNEG_Pos (2UL) /*!< MSPI0 MSPICFG: RXNEG (Bit 2) */ +#define MSPI0_MSPICFG_RXNEG_Msk (0x4UL) /*!< MSPI0 MSPICFG: RXNEG (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPICFG_RXCAP_Pos (1UL) /*!< MSPI0 MSPICFG: RXCAP (Bit 1) */ +#define MSPI0_MSPICFG_RXCAP_Msk (0x2UL) /*!< MSPI0 MSPICFG: RXCAP (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPICFG_APBCLK_Pos (0UL) /*!< MSPI0 MSPICFG: APBCLK (Bit 0) */ +#define MSPI0_MSPICFG_APBCLK_Msk (0x1UL) /*!< MSPI0 MSPICFG: APBCLK (Bitfield-Mask: 0x01) */ +/* ======================================================== MSPIDDR ======================================================== */ +#define MSPI0_MSPIDDR_TXDQSDELAY_Pos (16UL) /*!< MSPI0 MSPIDDR: TXDQSDELAY (Bit 16) */ +#define MSPI0_MSPIDDR_TXDQSDELAY_Msk (0x1f0000UL) /*!< MSPI0 MSPIDDR: TXDQSDELAY (Bitfield-Mask: 0x1f) */ +#define MSPI0_MSPIDDR_RXDQSDELAY_Pos (8UL) /*!< MSPI0 MSPIDDR: RXDQSDELAY (Bit 8) */ +#define MSPI0_MSPIDDR_RXDQSDELAY_Msk (0x1f00UL) /*!< MSPI0 MSPIDDR: RXDQSDELAY (Bitfield-Mask: 0x1f) */ +#define MSPI0_MSPIDDR_ENABLEFINEDELAY_Pos (6UL) /*!< MSPI0 MSPIDDR: ENABLEFINEDELAY (Bit 6) */ +#define MSPI0_MSPIDDR_ENABLEFINEDELAY_Msk (0x40UL) /*!< MSPI0 MSPIDDR: ENABLEFINEDELAY (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPIDDR_OVERRIDEDDRCLKOUTDELAY_Pos (5UL) /*!< MSPI0 MSPIDDR: OVERRIDEDDRCLKOUTDELAY (Bit 5) */ +#define MSPI0_MSPIDDR_OVERRIDEDDRCLKOUTDELAY_Msk (0x20UL) /*!< MSPI0 MSPIDDR: OVERRIDEDDRCLKOUTDELAY (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPIDDR_OVERRIDERXDQSDELAY_Pos (4UL) /*!< MSPI0 MSPIDDR: OVERRIDERXDQSDELAY (Bit 4) */ +#define MSPI0_MSPIDDR_OVERRIDERXDQSDELAY_Msk (0x10UL) /*!< MSPI0 MSPIDDR: OVERRIDERXDQSDELAY (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPIDDR_DQSSYNCNEG_Pos (3UL) /*!< MSPI0 MSPIDDR: DQSSYNCNEG (Bit 3) */ +#define MSPI0_MSPIDDR_DQSSYNCNEG_Msk (0x8UL) /*!< MSPI0 MSPIDDR: DQSSYNCNEG (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPIDDR_ENABLEDQS_Pos (2UL) /*!< MSPI0 MSPIDDR: ENABLEDQS (Bit 2) */ +#define MSPI0_MSPIDDR_ENABLEDQS_Msk (0x4UL) /*!< MSPI0 MSPIDDR: ENABLEDQS (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPIDDR_QUADDDR_Pos (1UL) /*!< MSPI0 MSPIDDR: QUADDDR (Bit 1) */ +#define MSPI0_MSPIDDR_QUADDDR_Msk (0x2UL) /*!< MSPI0 MSPIDDR: QUADDDR (Bitfield-Mask: 0x01) */ +#define MSPI0_MSPIDDR_EMULATEDDR_Pos (0UL) /*!< MSPI0 MSPIDDR: EMULATEDDR (Bit 0) */ +#define MSPI0_MSPIDDR_EMULATEDDR_Msk (0x1UL) /*!< MSPI0 MSPIDDR: EMULATEDDR (Bitfield-Mask: 0x01) */ +/* ======================================================== PADCFG ========================================================= */ +#define MSPI0_PADCFG_REVCS_Pos (21UL) /*!< MSPI0 PADCFG: REVCS (Bit 21) */ +#define MSPI0_PADCFG_REVCS_Msk (0x200000UL) /*!< MSPI0 PADCFG: REVCS (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_IN3_Pos (20UL) /*!< MSPI0 PADCFG: IN3 (Bit 20) */ +#define MSPI0_PADCFG_IN3_Msk (0x100000UL) /*!< MSPI0 PADCFG: IN3 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_IN2_Pos (19UL) /*!< MSPI0 PADCFG: IN2 (Bit 19) */ +#define MSPI0_PADCFG_IN2_Msk (0x80000UL) /*!< MSPI0 PADCFG: IN2 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_IN1_Pos (18UL) /*!< MSPI0 PADCFG: IN1 (Bit 18) */ +#define MSPI0_PADCFG_IN1_Msk (0x40000UL) /*!< MSPI0 PADCFG: IN1 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_IN0_Pos (16UL) /*!< MSPI0 PADCFG: IN0 (Bit 16) */ +#define MSPI0_PADCFG_IN0_Msk (0x30000UL) /*!< MSPI0 PADCFG: IN0 (Bitfield-Mask: 0x03) */ +#define MSPI0_PADCFG_OUT7_Pos (4UL) /*!< MSPI0 PADCFG: OUT7 (Bit 4) */ +#define MSPI0_PADCFG_OUT7_Msk (0x10UL) /*!< MSPI0 PADCFG: OUT7 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_OUT6_Pos (3UL) /*!< MSPI0 PADCFG: OUT6 (Bit 3) */ +#define MSPI0_PADCFG_OUT6_Msk (0x8UL) /*!< MSPI0 PADCFG: OUT6 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_OUT5_Pos (2UL) /*!< MSPI0 PADCFG: OUT5 (Bit 2) */ +#define MSPI0_PADCFG_OUT5_Msk (0x4UL) /*!< MSPI0 PADCFG: OUT5 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_OUT4_Pos (1UL) /*!< MSPI0 PADCFG: OUT4 (Bit 1) */ +#define MSPI0_PADCFG_OUT4_Msk (0x2UL) /*!< MSPI0 PADCFG: OUT4 (Bitfield-Mask: 0x01) */ +#define MSPI0_PADCFG_OUT3_Pos (0UL) /*!< MSPI0 PADCFG: OUT3 (Bit 0) */ +#define MSPI0_PADCFG_OUT3_Msk (0x1UL) /*!< MSPI0 PADCFG: OUT3 (Bitfield-Mask: 0x01) */ +/* ======================================================= PADOUTEN ======================================================== */ +#define MSPI0_PADOUTEN_OUTEN_Pos (0UL) /*!< MSPI0 PADOUTEN: OUTEN (Bit 0) */ +#define MSPI0_PADOUTEN_OUTEN_Msk (0x3ffUL) /*!< MSPI0 PADOUTEN: OUTEN (Bitfield-Mask: 0x3ff) */ +/* ======================================================= PADOVEREN ======================================================= */ +#define MSPI0_PADOVEREN_OVERRIDEEN_Pos (0UL) /*!< MSPI0 PADOVEREN: OVERRIDEEN (Bit 0) */ +#define MSPI0_PADOVEREN_OVERRIDEEN_Msk (0x3ffUL) /*!< MSPI0 PADOVEREN: OVERRIDEEN (Bitfield-Mask: 0x3ff) */ +/* ======================================================== PADOVER ======================================================== */ +#define MSPI0_PADOVER_OVERRIDE_Pos (0UL) /*!< MSPI0 PADOVER: OVERRIDE (Bit 0) */ +#define MSPI0_PADOVER_OVERRIDE_Msk (0x3ffUL) /*!< MSPI0 PADOVER: OVERRIDE (Bitfield-Mask: 0x3ff) */ +/* ========================================================= FLASH ========================================================= */ +#define MSPI0_FLASH_XIPENWLAT_Pos (11UL) /*!< MSPI0 FLASH: XIPENWLAT (Bit 11) */ +#define MSPI0_FLASH_XIPENWLAT_Msk (0x800UL) /*!< MSPI0 FLASH: XIPENWLAT (Bitfield-Mask: 0x01) */ +#define MSPI0_FLASH_XIPMIXED_Pos (8UL) /*!< MSPI0 FLASH: XIPMIXED (Bit 8) */ +#define MSPI0_FLASH_XIPMIXED_Msk (0x700UL) /*!< MSPI0 FLASH: XIPMIXED (Bitfield-Mask: 0x07) */ +#define MSPI0_FLASH_XIPSENDI_Pos (7UL) /*!< MSPI0 FLASH: XIPSENDI (Bit 7) */ +#define MSPI0_FLASH_XIPSENDI_Msk (0x80UL) /*!< MSPI0 FLASH: XIPSENDI (Bitfield-Mask: 0x01) */ +#define MSPI0_FLASH_XIPSENDA_Pos (6UL) /*!< MSPI0 FLASH: XIPSENDA (Bit 6) */ +#define MSPI0_FLASH_XIPSENDA_Msk (0x40UL) /*!< MSPI0 FLASH: XIPSENDA (Bitfield-Mask: 0x01) */ +#define MSPI0_FLASH_XIPENTURN_Pos (5UL) /*!< MSPI0 FLASH: XIPENTURN (Bit 5) */ +#define MSPI0_FLASH_XIPENTURN_Msk (0x20UL) /*!< MSPI0 FLASH: XIPENTURN (Bitfield-Mask: 0x01) */ +#define MSPI0_FLASH_XIPBIGENDIAN_Pos (4UL) /*!< MSPI0 FLASH: XIPBIGENDIAN (Bit 4) */ +#define MSPI0_FLASH_XIPBIGENDIAN_Msk (0x10UL) /*!< MSPI0 FLASH: XIPBIGENDIAN (Bitfield-Mask: 0x01) */ +#define MSPI0_FLASH_XIPACK_Pos (2UL) /*!< MSPI0 FLASH: XIPACK (Bit 2) */ +#define MSPI0_FLASH_XIPACK_Msk (0xcUL) /*!< MSPI0 FLASH: XIPACK (Bitfield-Mask: 0x03) */ +#define MSPI0_FLASH_XIPENDCX_Pos (1UL) /*!< MSPI0 FLASH: XIPENDCX (Bit 1) */ +#define MSPI0_FLASH_XIPENDCX_Msk (0x2UL) /*!< MSPI0 FLASH: XIPENDCX (Bitfield-Mask: 0x01) */ +#define MSPI0_FLASH_XIPEN_Pos (0UL) /*!< MSPI0 FLASH: XIPEN (Bit 0) */ +#define MSPI0_FLASH_XIPEN_Msk (0x1UL) /*!< MSPI0 FLASH: XIPEN (Bitfield-Mask: 0x01) */ +/* ======================================================= XIPINSTR ======================================================== */ +#define MSPI0_XIPINSTR_READINSTR_Pos (16UL) /*!< MSPI0 XIPINSTR: READINSTR (Bit 16) */ +#define MSPI0_XIPINSTR_READINSTR_Msk (0xffff0000UL) /*!< MSPI0 XIPINSTR: READINSTR (Bitfield-Mask: 0xffff) */ +#define MSPI0_XIPINSTR_WRITEINSTR_Pos (0UL) /*!< MSPI0 XIPINSTR: WRITEINSTR (Bit 0) */ +#define MSPI0_XIPINSTR_WRITEINSTR_Msk (0xffffUL) /*!< MSPI0 XIPINSTR: WRITEINSTR (Bitfield-Mask: 0xffff) */ +/* ====================================================== SCRAMBLING ======================================================= */ +#define MSPI0_SCRAMBLING_SCRENABLE_Pos (31UL) /*!< MSPI0 SCRAMBLING: SCRENABLE (Bit 31) */ +#define MSPI0_SCRAMBLING_SCRENABLE_Msk (0x80000000UL) /*!< MSPI0 SCRAMBLING: SCRENABLE (Bitfield-Mask: 0x01) */ +#define MSPI0_SCRAMBLING_SCREND_Pos (16UL) /*!< MSPI0 SCRAMBLING: SCREND (Bit 16) */ +#define MSPI0_SCRAMBLING_SCREND_Msk (0x3ff0000UL) /*!< MSPI0 SCRAMBLING: SCREND (Bitfield-Mask: 0x3ff) */ +#define MSPI0_SCRAMBLING_SCRSTART_Pos (0UL) /*!< MSPI0 SCRAMBLING: SCRSTART (Bit 0) */ +#define MSPI0_SCRAMBLING_SCRSTART_Msk (0x3ffUL) /*!< MSPI0 SCRAMBLING: SCRSTART (Bitfield-Mask: 0x3ff) */ +/* ========================================================= INTEN ========================================================= */ +#define MSPI0_INTEN_SCRERR_Pos (12UL) /*!< MSPI0 INTEN: SCRERR (Bit 12) */ +#define MSPI0_INTEN_SCRERR_Msk (0x1000UL) /*!< MSPI0 INTEN: SCRERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_CQERR_Pos (11UL) /*!< MSPI0 INTEN: CQERR (Bit 11) */ +#define MSPI0_INTEN_CQERR_Msk (0x800UL) /*!< MSPI0 INTEN: CQERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_CQPAUSED_Pos (10UL) /*!< MSPI0 INTEN: CQPAUSED (Bit 10) */ +#define MSPI0_INTEN_CQPAUSED_Msk (0x400UL) /*!< MSPI0 INTEN: CQPAUSED (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_CQUPD_Pos (9UL) /*!< MSPI0 INTEN: CQUPD (Bit 9) */ +#define MSPI0_INTEN_CQUPD_Msk (0x200UL) /*!< MSPI0 INTEN: CQUPD (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_CQCMP_Pos (8UL) /*!< MSPI0 INTEN: CQCMP (Bit 8) */ +#define MSPI0_INTEN_CQCMP_Msk (0x100UL) /*!< MSPI0 INTEN: CQCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_DERR_Pos (7UL) /*!< MSPI0 INTEN: DERR (Bit 7) */ +#define MSPI0_INTEN_DERR_Msk (0x80UL) /*!< MSPI0 INTEN: DERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_DCMP_Pos (6UL) /*!< MSPI0 INTEN: DCMP (Bit 6) */ +#define MSPI0_INTEN_DCMP_Msk (0x40UL) /*!< MSPI0 INTEN: DCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_RXF_Pos (5UL) /*!< MSPI0 INTEN: RXF (Bit 5) */ +#define MSPI0_INTEN_RXF_Msk (0x20UL) /*!< MSPI0 INTEN: RXF (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_RXO_Pos (4UL) /*!< MSPI0 INTEN: RXO (Bit 4) */ +#define MSPI0_INTEN_RXO_Msk (0x10UL) /*!< MSPI0 INTEN: RXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_RXU_Pos (3UL) /*!< MSPI0 INTEN: RXU (Bit 3) */ +#define MSPI0_INTEN_RXU_Msk (0x8UL) /*!< MSPI0 INTEN: RXU (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_TXO_Pos (2UL) /*!< MSPI0 INTEN: TXO (Bit 2) */ +#define MSPI0_INTEN_TXO_Msk (0x4UL) /*!< MSPI0 INTEN: TXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_TXE_Pos (1UL) /*!< MSPI0 INTEN: TXE (Bit 1) */ +#define MSPI0_INTEN_TXE_Msk (0x2UL) /*!< MSPI0 INTEN: TXE (Bitfield-Mask: 0x01) */ +#define MSPI0_INTEN_CMDCMP_Pos (0UL) /*!< MSPI0 INTEN: CMDCMP (Bit 0) */ +#define MSPI0_INTEN_CMDCMP_Msk (0x1UL) /*!< MSPI0 INTEN: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define MSPI0_INTSTAT_SCRERR_Pos (12UL) /*!< MSPI0 INTSTAT: SCRERR (Bit 12) */ +#define MSPI0_INTSTAT_SCRERR_Msk (0x1000UL) /*!< MSPI0 INTSTAT: SCRERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_CQERR_Pos (11UL) /*!< MSPI0 INTSTAT: CQERR (Bit 11) */ +#define MSPI0_INTSTAT_CQERR_Msk (0x800UL) /*!< MSPI0 INTSTAT: CQERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_CQPAUSED_Pos (10UL) /*!< MSPI0 INTSTAT: CQPAUSED (Bit 10) */ +#define MSPI0_INTSTAT_CQPAUSED_Msk (0x400UL) /*!< MSPI0 INTSTAT: CQPAUSED (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_CQUPD_Pos (9UL) /*!< MSPI0 INTSTAT: CQUPD (Bit 9) */ +#define MSPI0_INTSTAT_CQUPD_Msk (0x200UL) /*!< MSPI0 INTSTAT: CQUPD (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_CQCMP_Pos (8UL) /*!< MSPI0 INTSTAT: CQCMP (Bit 8) */ +#define MSPI0_INTSTAT_CQCMP_Msk (0x100UL) /*!< MSPI0 INTSTAT: CQCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_DERR_Pos (7UL) /*!< MSPI0 INTSTAT: DERR (Bit 7) */ +#define MSPI0_INTSTAT_DERR_Msk (0x80UL) /*!< MSPI0 INTSTAT: DERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_DCMP_Pos (6UL) /*!< MSPI0 INTSTAT: DCMP (Bit 6) */ +#define MSPI0_INTSTAT_DCMP_Msk (0x40UL) /*!< MSPI0 INTSTAT: DCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_RXF_Pos (5UL) /*!< MSPI0 INTSTAT: RXF (Bit 5) */ +#define MSPI0_INTSTAT_RXF_Msk (0x20UL) /*!< MSPI0 INTSTAT: RXF (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_RXO_Pos (4UL) /*!< MSPI0 INTSTAT: RXO (Bit 4) */ +#define MSPI0_INTSTAT_RXO_Msk (0x10UL) /*!< MSPI0 INTSTAT: RXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_RXU_Pos (3UL) /*!< MSPI0 INTSTAT: RXU (Bit 3) */ +#define MSPI0_INTSTAT_RXU_Msk (0x8UL) /*!< MSPI0 INTSTAT: RXU (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_TXO_Pos (2UL) /*!< MSPI0 INTSTAT: TXO (Bit 2) */ +#define MSPI0_INTSTAT_TXO_Msk (0x4UL) /*!< MSPI0 INTSTAT: TXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_TXE_Pos (1UL) /*!< MSPI0 INTSTAT: TXE (Bit 1) */ +#define MSPI0_INTSTAT_TXE_Msk (0x2UL) /*!< MSPI0 INTSTAT: TXE (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSTAT_CMDCMP_Pos (0UL) /*!< MSPI0 INTSTAT: CMDCMP (Bit 0) */ +#define MSPI0_INTSTAT_CMDCMP_Msk (0x1UL) /*!< MSPI0 INTSTAT: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define MSPI0_INTCLR_SCRERR_Pos (12UL) /*!< MSPI0 INTCLR: SCRERR (Bit 12) */ +#define MSPI0_INTCLR_SCRERR_Msk (0x1000UL) /*!< MSPI0 INTCLR: SCRERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_CQERR_Pos (11UL) /*!< MSPI0 INTCLR: CQERR (Bit 11) */ +#define MSPI0_INTCLR_CQERR_Msk (0x800UL) /*!< MSPI0 INTCLR: CQERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_CQPAUSED_Pos (10UL) /*!< MSPI0 INTCLR: CQPAUSED (Bit 10) */ +#define MSPI0_INTCLR_CQPAUSED_Msk (0x400UL) /*!< MSPI0 INTCLR: CQPAUSED (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_CQUPD_Pos (9UL) /*!< MSPI0 INTCLR: CQUPD (Bit 9) */ +#define MSPI0_INTCLR_CQUPD_Msk (0x200UL) /*!< MSPI0 INTCLR: CQUPD (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_CQCMP_Pos (8UL) /*!< MSPI0 INTCLR: CQCMP (Bit 8) */ +#define MSPI0_INTCLR_CQCMP_Msk (0x100UL) /*!< MSPI0 INTCLR: CQCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_DERR_Pos (7UL) /*!< MSPI0 INTCLR: DERR (Bit 7) */ +#define MSPI0_INTCLR_DERR_Msk (0x80UL) /*!< MSPI0 INTCLR: DERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_DCMP_Pos (6UL) /*!< MSPI0 INTCLR: DCMP (Bit 6) */ +#define MSPI0_INTCLR_DCMP_Msk (0x40UL) /*!< MSPI0 INTCLR: DCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_RXF_Pos (5UL) /*!< MSPI0 INTCLR: RXF (Bit 5) */ +#define MSPI0_INTCLR_RXF_Msk (0x20UL) /*!< MSPI0 INTCLR: RXF (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_RXO_Pos (4UL) /*!< MSPI0 INTCLR: RXO (Bit 4) */ +#define MSPI0_INTCLR_RXO_Msk (0x10UL) /*!< MSPI0 INTCLR: RXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_RXU_Pos (3UL) /*!< MSPI0 INTCLR: RXU (Bit 3) */ +#define MSPI0_INTCLR_RXU_Msk (0x8UL) /*!< MSPI0 INTCLR: RXU (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_TXO_Pos (2UL) /*!< MSPI0 INTCLR: TXO (Bit 2) */ +#define MSPI0_INTCLR_TXO_Msk (0x4UL) /*!< MSPI0 INTCLR: TXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_TXE_Pos (1UL) /*!< MSPI0 INTCLR: TXE (Bit 1) */ +#define MSPI0_INTCLR_TXE_Msk (0x2UL) /*!< MSPI0 INTCLR: TXE (Bitfield-Mask: 0x01) */ +#define MSPI0_INTCLR_CMDCMP_Pos (0UL) /*!< MSPI0 INTCLR: CMDCMP (Bit 0) */ +#define MSPI0_INTCLR_CMDCMP_Msk (0x1UL) /*!< MSPI0 INTCLR: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define MSPI0_INTSET_SCRERR_Pos (12UL) /*!< MSPI0 INTSET: SCRERR (Bit 12) */ +#define MSPI0_INTSET_SCRERR_Msk (0x1000UL) /*!< MSPI0 INTSET: SCRERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_CQERR_Pos (11UL) /*!< MSPI0 INTSET: CQERR (Bit 11) */ +#define MSPI0_INTSET_CQERR_Msk (0x800UL) /*!< MSPI0 INTSET: CQERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_CQPAUSED_Pos (10UL) /*!< MSPI0 INTSET: CQPAUSED (Bit 10) */ +#define MSPI0_INTSET_CQPAUSED_Msk (0x400UL) /*!< MSPI0 INTSET: CQPAUSED (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_CQUPD_Pos (9UL) /*!< MSPI0 INTSET: CQUPD (Bit 9) */ +#define MSPI0_INTSET_CQUPD_Msk (0x200UL) /*!< MSPI0 INTSET: CQUPD (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_CQCMP_Pos (8UL) /*!< MSPI0 INTSET: CQCMP (Bit 8) */ +#define MSPI0_INTSET_CQCMP_Msk (0x100UL) /*!< MSPI0 INTSET: CQCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_DERR_Pos (7UL) /*!< MSPI0 INTSET: DERR (Bit 7) */ +#define MSPI0_INTSET_DERR_Msk (0x80UL) /*!< MSPI0 INTSET: DERR (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_DCMP_Pos (6UL) /*!< MSPI0 INTSET: DCMP (Bit 6) */ +#define MSPI0_INTSET_DCMP_Msk (0x40UL) /*!< MSPI0 INTSET: DCMP (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_RXF_Pos (5UL) /*!< MSPI0 INTSET: RXF (Bit 5) */ +#define MSPI0_INTSET_RXF_Msk (0x20UL) /*!< MSPI0 INTSET: RXF (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_RXO_Pos (4UL) /*!< MSPI0 INTSET: RXO (Bit 4) */ +#define MSPI0_INTSET_RXO_Msk (0x10UL) /*!< MSPI0 INTSET: RXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_RXU_Pos (3UL) /*!< MSPI0 INTSET: RXU (Bit 3) */ +#define MSPI0_INTSET_RXU_Msk (0x8UL) /*!< MSPI0 INTSET: RXU (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_TXO_Pos (2UL) /*!< MSPI0 INTSET: TXO (Bit 2) */ +#define MSPI0_INTSET_TXO_Msk (0x4UL) /*!< MSPI0 INTSET: TXO (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_TXE_Pos (1UL) /*!< MSPI0 INTSET: TXE (Bit 1) */ +#define MSPI0_INTSET_TXE_Msk (0x2UL) /*!< MSPI0 INTSET: TXE (Bitfield-Mask: 0x01) */ +#define MSPI0_INTSET_CMDCMP_Pos (0UL) /*!< MSPI0 INTSET: CMDCMP (Bit 0) */ +#define MSPI0_INTSET_CMDCMP_Msk (0x1UL) /*!< MSPI0 INTSET: CMDCMP (Bitfield-Mask: 0x01) */ +/* ======================================================== DMACFG ========================================================= */ +#define MSPI0_DMACFG_DMAPWROFF_Pos (18UL) /*!< MSPI0 DMACFG: DMAPWROFF (Bit 18) */ +#define MSPI0_DMACFG_DMAPWROFF_Msk (0x40000UL) /*!< MSPI0 DMACFG: DMAPWROFF (Bitfield-Mask: 0x01) */ +#define MSPI0_DMACFG_DMAPRI_Pos (3UL) /*!< MSPI0 DMACFG: DMAPRI (Bit 3) */ +#define MSPI0_DMACFG_DMAPRI_Msk (0x18UL) /*!< MSPI0 DMACFG: DMAPRI (Bitfield-Mask: 0x03) */ +#define MSPI0_DMACFG_DMADIR_Pos (2UL) /*!< MSPI0 DMACFG: DMADIR (Bit 2) */ +#define MSPI0_DMACFG_DMADIR_Msk (0x4UL) /*!< MSPI0 DMACFG: DMADIR (Bitfield-Mask: 0x01) */ +#define MSPI0_DMACFG_DMAEN_Pos (0UL) /*!< MSPI0 DMACFG: DMAEN (Bit 0) */ +#define MSPI0_DMACFG_DMAEN_Msk (0x3UL) /*!< MSPI0 DMACFG: DMAEN (Bitfield-Mask: 0x03) */ +/* ======================================================== DMASTAT ======================================================== */ +#define MSPI0_DMASTAT_SCRERR_Pos (3UL) /*!< MSPI0 DMASTAT: SCRERR (Bit 3) */ +#define MSPI0_DMASTAT_SCRERR_Msk (0x8UL) /*!< MSPI0 DMASTAT: SCRERR (Bitfield-Mask: 0x01) */ +#define MSPI0_DMASTAT_DMAERR_Pos (2UL) /*!< MSPI0 DMASTAT: DMAERR (Bit 2) */ +#define MSPI0_DMASTAT_DMAERR_Msk (0x4UL) /*!< MSPI0 DMASTAT: DMAERR (Bitfield-Mask: 0x01) */ +#define MSPI0_DMASTAT_DMACPL_Pos (1UL) /*!< MSPI0 DMASTAT: DMACPL (Bit 1) */ +#define MSPI0_DMASTAT_DMACPL_Msk (0x2UL) /*!< MSPI0 DMASTAT: DMACPL (Bitfield-Mask: 0x01) */ +#define MSPI0_DMASTAT_DMATIP_Pos (0UL) /*!< MSPI0 DMASTAT: DMATIP (Bit 0) */ +#define MSPI0_DMASTAT_DMATIP_Msk (0x1UL) /*!< MSPI0 DMASTAT: DMATIP (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATARGADDR ====================================================== */ +#define MSPI0_DMATARGADDR_TARGADDR_Pos (0UL) /*!< MSPI0 DMATARGADDR: TARGADDR (Bit 0) */ +#define MSPI0_DMATARGADDR_TARGADDR_Msk (0xffffffffUL) /*!< MSPI0 DMATARGADDR: TARGADDR (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== DMADEVADDR ======================================================= */ +#define MSPI0_DMADEVADDR_DEVADDR_Pos (0UL) /*!< MSPI0 DMADEVADDR: DEVADDR (Bit 0) */ +#define MSPI0_DMADEVADDR_DEVADDR_Msk (0xffffffffUL) /*!< MSPI0 DMADEVADDR: DEVADDR (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== DMATOTCOUNT ====================================================== */ +#define MSPI0_DMATOTCOUNT_TOTCOUNT_Pos (0UL) /*!< MSPI0 DMATOTCOUNT: TOTCOUNT (Bit 0) */ +#define MSPI0_DMATOTCOUNT_TOTCOUNT_Msk (0xffffffUL) /*!< MSPI0 DMATOTCOUNT: TOTCOUNT (Bitfield-Mask: 0xffffff) */ +/* ======================================================= DMABCOUNT ======================================================= */ +#define MSPI0_DMABCOUNT_BCOUNT_Pos (0UL) /*!< MSPI0 DMABCOUNT: BCOUNT (Bit 0) */ +#define MSPI0_DMABCOUNT_BCOUNT_Msk (0xffUL) /*!< MSPI0 DMABCOUNT: BCOUNT (Bitfield-Mask: 0xff) */ +/* ======================================================= DMATHRESH ======================================================= */ +#define MSPI0_DMATHRESH_DMARXTHRESH_Pos (8UL) /*!< MSPI0 DMATHRESH: DMARXTHRESH (Bit 8) */ +#define MSPI0_DMATHRESH_DMARXTHRESH_Msk (0x1f00UL) /*!< MSPI0 DMATHRESH: DMARXTHRESH (Bitfield-Mask: 0x1f) */ +#define MSPI0_DMATHRESH_DMATXTHRESH_Pos (0UL) /*!< MSPI0 DMATHRESH: DMATXTHRESH (Bit 0) */ +#define MSPI0_DMATHRESH_DMATXTHRESH_Msk (0x1fUL) /*!< MSPI0 DMATHRESH: DMATXTHRESH (Bitfield-Mask: 0x1f) */ +/* ====================================================== DMABOUNDARY ====================================================== */ +#define MSPI0_DMABOUNDARY_DMABOUND_Pos (12UL) /*!< MSPI0 DMABOUNDARY: DMABOUND (Bit 12) */ +#define MSPI0_DMABOUNDARY_DMABOUND_Msk (0xf000UL) /*!< MSPI0 DMABOUNDARY: DMABOUND (Bitfield-Mask: 0x0f) */ +#define MSPI0_DMABOUNDARY_DMATIMELIMIT_Pos (0UL) /*!< MSPI0 DMABOUNDARY: DMATIMELIMIT (Bit 0) */ +#define MSPI0_DMABOUNDARY_DMATIMELIMIT_Msk (0xfffUL) /*!< MSPI0 DMABOUNDARY: DMATIMELIMIT (Bitfield-Mask: 0xfff) */ +/* ========================================================= CQCFG ========================================================= */ +#define MSPI0_CQCFG_CQAUTOCLEARMASK_Pos (3UL) /*!< MSPI0 CQCFG: CQAUTOCLEARMASK (Bit 3) */ +#define MSPI0_CQCFG_CQAUTOCLEARMASK_Msk (0x8UL) /*!< MSPI0 CQCFG: CQAUTOCLEARMASK (Bitfield-Mask: 0x01) */ +#define MSPI0_CQCFG_CQPWROFF_Pos (2UL) /*!< MSPI0 CQCFG: CQPWROFF (Bit 2) */ +#define MSPI0_CQCFG_CQPWROFF_Msk (0x4UL) /*!< MSPI0 CQCFG: CQPWROFF (Bitfield-Mask: 0x01) */ +#define MSPI0_CQCFG_CQPRI_Pos (1UL) /*!< MSPI0 CQCFG: CQPRI (Bit 1) */ +#define MSPI0_CQCFG_CQPRI_Msk (0x2UL) /*!< MSPI0 CQCFG: CQPRI (Bitfield-Mask: 0x01) */ +#define MSPI0_CQCFG_CQEN_Pos (0UL) /*!< MSPI0 CQCFG: CQEN (Bit 0) */ +#define MSPI0_CQCFG_CQEN_Msk (0x1UL) /*!< MSPI0 CQCFG: CQEN (Bitfield-Mask: 0x01) */ +/* ======================================================== CQADDR ========================================================= */ +#define MSPI0_CQADDR_CQADDR_Pos (0UL) /*!< MSPI0 CQADDR: CQADDR (Bit 0) */ +#define MSPI0_CQADDR_CQADDR_Msk (0x1fffffffUL) /*!< MSPI0 CQADDR: CQADDR (Bitfield-Mask: 0x1fffffff) */ +/* ======================================================== CQSTAT ========================================================= */ +#define MSPI0_CQSTAT_CQPAUSED_Pos (3UL) /*!< MSPI0 CQSTAT: CQPAUSED (Bit 3) */ +#define MSPI0_CQSTAT_CQPAUSED_Msk (0x8UL) /*!< MSPI0 CQSTAT: CQPAUSED (Bitfield-Mask: 0x01) */ +#define MSPI0_CQSTAT_CQERR_Pos (2UL) /*!< MSPI0 CQSTAT: CQERR (Bit 2) */ +#define MSPI0_CQSTAT_CQERR_Msk (0x4UL) /*!< MSPI0 CQSTAT: CQERR (Bitfield-Mask: 0x01) */ +#define MSPI0_CQSTAT_CQCPL_Pos (1UL) /*!< MSPI0 CQSTAT: CQCPL (Bit 1) */ +#define MSPI0_CQSTAT_CQCPL_Msk (0x2UL) /*!< MSPI0 CQSTAT: CQCPL (Bitfield-Mask: 0x01) */ +#define MSPI0_CQSTAT_CQTIP_Pos (0UL) /*!< MSPI0 CQSTAT: CQTIP (Bit 0) */ +#define MSPI0_CQSTAT_CQTIP_Msk (0x1UL) /*!< MSPI0 CQSTAT: CQTIP (Bitfield-Mask: 0x01) */ +/* ======================================================== CQFLAGS ======================================================== */ +#define MSPI0_CQFLAGS_CQFLAGS_Pos (0UL) /*!< MSPI0 CQFLAGS: CQFLAGS (Bit 0) */ +#define MSPI0_CQFLAGS_CQFLAGS_Msk (0xffffUL) /*!< MSPI0 CQFLAGS: CQFLAGS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CQSETCLEAR ======================================================= */ +#define MSPI0_CQSETCLEAR_CQFCLR_Pos (16UL) /*!< MSPI0 CQSETCLEAR: CQFCLR (Bit 16) */ +#define MSPI0_CQSETCLEAR_CQFCLR_Msk (0xff0000UL) /*!< MSPI0 CQSETCLEAR: CQFCLR (Bitfield-Mask: 0xff) */ +#define MSPI0_CQSETCLEAR_CQFTOGGLE_Pos (8UL) /*!< MSPI0 CQSETCLEAR: CQFTOGGLE (Bit 8) */ +#define MSPI0_CQSETCLEAR_CQFTOGGLE_Msk (0xff00UL) /*!< MSPI0 CQSETCLEAR: CQFTOGGLE (Bitfield-Mask: 0xff) */ +#define MSPI0_CQSETCLEAR_CQFSET_Pos (0UL) /*!< MSPI0 CQSETCLEAR: CQFSET (Bit 0) */ +#define MSPI0_CQSETCLEAR_CQFSET_Msk (0xffUL) /*!< MSPI0 CQSETCLEAR: CQFSET (Bitfield-Mask: 0xff) */ +/* ======================================================== CQPAUSE ======================================================== */ +#define MSPI0_CQPAUSE_CQMASK_Pos (0UL) /*!< MSPI0 CQPAUSE: CQMASK (Bit 0) */ +#define MSPI0_CQPAUSE_CQMASK_Msk (0xffffUL) /*!< MSPI0 CQPAUSE: CQMASK (Bitfield-Mask: 0xffff) */ +/* ======================================================= CQCURIDX ======================================================== */ +#define MSPI0_CQCURIDX_CQCURIDX_Pos (0UL) /*!< MSPI0 CQCURIDX: CQCURIDX (Bit 0) */ +#define MSPI0_CQCURIDX_CQCURIDX_Msk (0xffUL) /*!< MSPI0 CQCURIDX: CQCURIDX (Bitfield-Mask: 0xff) */ +/* ======================================================= CQENDIDX ======================================================== */ +#define MSPI0_CQENDIDX_CQENDIDX_Pos (0UL) /*!< MSPI0 CQENDIDX: CQENDIDX (Bit 0) */ +#define MSPI0_CQENDIDX_CQENDIDX_Msk (0xffUL) /*!< MSPI0 CQENDIDX: CQENDIDX (Bitfield-Mask: 0xff) */ + + +/* =========================================================================================================================== */ +/* ================ PDM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= PCFG ========================================================== */ +#define PDM_PCFG_LRSWAP_Pos (31UL) /*!< PDM PCFG: LRSWAP (Bit 31) */ +#define PDM_PCFG_LRSWAP_Msk (0x80000000UL) /*!< PDM PCFG: LRSWAP (Bitfield-Mask: 0x01) */ +#define PDM_PCFG_PGARIGHT_Pos (26UL) /*!< PDM PCFG: PGARIGHT (Bit 26) */ +#define PDM_PCFG_PGARIGHT_Msk (0x7c000000UL) /*!< PDM PCFG: PGARIGHT (Bitfield-Mask: 0x1f) */ +#define PDM_PCFG_PGALEFT_Pos (21UL) /*!< PDM PCFG: PGALEFT (Bit 21) */ +#define PDM_PCFG_PGALEFT_Msk (0x3e00000UL) /*!< PDM PCFG: PGALEFT (Bitfield-Mask: 0x1f) */ +#define PDM_PCFG_MCLKDIV_Pos (17UL) /*!< PDM PCFG: MCLKDIV (Bit 17) */ +#define PDM_PCFG_MCLKDIV_Msk (0x60000UL) /*!< PDM PCFG: MCLKDIV (Bitfield-Mask: 0x03) */ +#define PDM_PCFG_SINCRATE_Pos (10UL) /*!< PDM PCFG: SINCRATE (Bit 10) */ +#define PDM_PCFG_SINCRATE_Msk (0x1fc00UL) /*!< PDM PCFG: SINCRATE (Bitfield-Mask: 0x7f) */ +#define PDM_PCFG_ADCHPD_Pos (9UL) /*!< PDM PCFG: ADCHPD (Bit 9) */ +#define PDM_PCFG_ADCHPD_Msk (0x200UL) /*!< PDM PCFG: ADCHPD (Bitfield-Mask: 0x01) */ +#define PDM_PCFG_HPCUTOFF_Pos (5UL) /*!< PDM PCFG: HPCUTOFF (Bit 5) */ +#define PDM_PCFG_HPCUTOFF_Msk (0x1e0UL) /*!< PDM PCFG: HPCUTOFF (Bitfield-Mask: 0x0f) */ +#define PDM_PCFG_CYCLES_Pos (2UL) /*!< PDM PCFG: CYCLES (Bit 2) */ +#define PDM_PCFG_CYCLES_Msk (0x1cUL) /*!< PDM PCFG: CYCLES (Bitfield-Mask: 0x07) */ +#define PDM_PCFG_SOFTMUTE_Pos (1UL) /*!< PDM PCFG: SOFTMUTE (Bit 1) */ +#define PDM_PCFG_SOFTMUTE_Msk (0x2UL) /*!< PDM PCFG: SOFTMUTE (Bitfield-Mask: 0x01) */ +#define PDM_PCFG_PDMCOREEN_Pos (0UL) /*!< PDM PCFG: PDMCOREEN (Bit 0) */ +#define PDM_PCFG_PDMCOREEN_Msk (0x1UL) /*!< PDM PCFG: PDMCOREEN (Bitfield-Mask: 0x01) */ +/* ========================================================= VCFG ========================================================== */ +#define PDM_VCFG_IOCLKEN_Pos (31UL) /*!< PDM VCFG: IOCLKEN (Bit 31) */ +#define PDM_VCFG_IOCLKEN_Msk (0x80000000UL) /*!< PDM VCFG: IOCLKEN (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_RSTB_Pos (30UL) /*!< PDM VCFG: RSTB (Bit 30) */ +#define PDM_VCFG_RSTB_Msk (0x40000000UL) /*!< PDM VCFG: RSTB (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_PDMCLKSEL_Pos (27UL) /*!< PDM VCFG: PDMCLKSEL (Bit 27) */ +#define PDM_VCFG_PDMCLKSEL_Msk (0x38000000UL) /*!< PDM VCFG: PDMCLKSEL (Bitfield-Mask: 0x07) */ +#define PDM_VCFG_PDMCLKEN_Pos (26UL) /*!< PDM VCFG: PDMCLKEN (Bit 26) */ +#define PDM_VCFG_PDMCLKEN_Msk (0x4000000UL) /*!< PDM VCFG: PDMCLKEN (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_I2SEN_Pos (20UL) /*!< PDM VCFG: I2SEN (Bit 20) */ +#define PDM_VCFG_I2SEN_Msk (0x100000UL) /*!< PDM VCFG: I2SEN (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_BCLKINV_Pos (19UL) /*!< PDM VCFG: BCLKINV (Bit 19) */ +#define PDM_VCFG_BCLKINV_Msk (0x80000UL) /*!< PDM VCFG: BCLKINV (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_DMICKDEL_Pos (17UL) /*!< PDM VCFG: DMICKDEL (Bit 17) */ +#define PDM_VCFG_DMICKDEL_Msk (0x20000UL) /*!< PDM VCFG: DMICKDEL (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_SELAP_Pos (16UL) /*!< PDM VCFG: SELAP (Bit 16) */ +#define PDM_VCFG_SELAP_Msk (0x10000UL) /*!< PDM VCFG: SELAP (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_PCMPACK_Pos (8UL) /*!< PDM VCFG: PCMPACK (Bit 8) */ +#define PDM_VCFG_PCMPACK_Msk (0x100UL) /*!< PDM VCFG: PCMPACK (Bitfield-Mask: 0x01) */ +#define PDM_VCFG_CHSET_Pos (3UL) /*!< PDM VCFG: CHSET (Bit 3) */ +#define PDM_VCFG_CHSET_Msk (0x18UL) /*!< PDM VCFG: CHSET (Bitfield-Mask: 0x03) */ +/* ======================================================= VOICESTAT ======================================================= */ +#define PDM_VOICESTAT_FIFOCNT_Pos (0UL) /*!< PDM VOICESTAT: FIFOCNT (Bit 0) */ +#define PDM_VOICESTAT_FIFOCNT_Msk (0x3fUL) /*!< PDM VOICESTAT: FIFOCNT (Bitfield-Mask: 0x3f) */ +/* ======================================================= FIFOREAD ======================================================== */ +#define PDM_FIFOREAD_FIFOREAD_Pos (0UL) /*!< PDM FIFOREAD: FIFOREAD (Bit 0) */ +#define PDM_FIFOREAD_FIFOREAD_Msk (0xffffffffUL) /*!< PDM FIFOREAD: FIFOREAD (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= FIFOFLUSH ======================================================= */ +#define PDM_FIFOFLUSH_FIFOFLUSH_Pos (0UL) /*!< PDM FIFOFLUSH: FIFOFLUSH (Bit 0) */ +#define PDM_FIFOFLUSH_FIFOFLUSH_Msk (0x1UL) /*!< PDM FIFOFLUSH: FIFOFLUSH (Bitfield-Mask: 0x01) */ +/* ======================================================== FIFOTHR ======================================================== */ +#define PDM_FIFOTHR_FIFOTHR_Pos (0UL) /*!< PDM FIFOTHR: FIFOTHR (Bit 0) */ +#define PDM_FIFOTHR_FIFOTHR_Msk (0x1fUL) /*!< PDM FIFOTHR: FIFOTHR (Bitfield-Mask: 0x1f) */ +/* ========================================================= INTEN ========================================================= */ +#define PDM_INTEN_DERR_Pos (4UL) /*!< PDM INTEN: DERR (Bit 4) */ +#define PDM_INTEN_DERR_Msk (0x10UL) /*!< PDM INTEN: DERR (Bitfield-Mask: 0x01) */ +#define PDM_INTEN_DCMP_Pos (3UL) /*!< PDM INTEN: DCMP (Bit 3) */ +#define PDM_INTEN_DCMP_Msk (0x8UL) /*!< PDM INTEN: DCMP (Bitfield-Mask: 0x01) */ +#define PDM_INTEN_UNDFL_Pos (2UL) /*!< PDM INTEN: UNDFL (Bit 2) */ +#define PDM_INTEN_UNDFL_Msk (0x4UL) /*!< PDM INTEN: UNDFL (Bitfield-Mask: 0x01) */ +#define PDM_INTEN_OVF_Pos (1UL) /*!< PDM INTEN: OVF (Bit 1) */ +#define PDM_INTEN_OVF_Msk (0x2UL) /*!< PDM INTEN: OVF (Bitfield-Mask: 0x01) */ +#define PDM_INTEN_THR_Pos (0UL) /*!< PDM INTEN: THR (Bit 0) */ +#define PDM_INTEN_THR_Msk (0x1UL) /*!< PDM INTEN: THR (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define PDM_INTSTAT_DERR_Pos (4UL) /*!< PDM INTSTAT: DERR (Bit 4) */ +#define PDM_INTSTAT_DERR_Msk (0x10UL) /*!< PDM INTSTAT: DERR (Bitfield-Mask: 0x01) */ +#define PDM_INTSTAT_DCMP_Pos (3UL) /*!< PDM INTSTAT: DCMP (Bit 3) */ +#define PDM_INTSTAT_DCMP_Msk (0x8UL) /*!< PDM INTSTAT: DCMP (Bitfield-Mask: 0x01) */ +#define PDM_INTSTAT_UNDFL_Pos (2UL) /*!< PDM INTSTAT: UNDFL (Bit 2) */ +#define PDM_INTSTAT_UNDFL_Msk (0x4UL) /*!< PDM INTSTAT: UNDFL (Bitfield-Mask: 0x01) */ +#define PDM_INTSTAT_OVF_Pos (1UL) /*!< PDM INTSTAT: OVF (Bit 1) */ +#define PDM_INTSTAT_OVF_Msk (0x2UL) /*!< PDM INTSTAT: OVF (Bitfield-Mask: 0x01) */ +#define PDM_INTSTAT_THR_Pos (0UL) /*!< PDM INTSTAT: THR (Bit 0) */ +#define PDM_INTSTAT_THR_Msk (0x1UL) /*!< PDM INTSTAT: THR (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define PDM_INTCLR_DERR_Pos (4UL) /*!< PDM INTCLR: DERR (Bit 4) */ +#define PDM_INTCLR_DERR_Msk (0x10UL) /*!< PDM INTCLR: DERR (Bitfield-Mask: 0x01) */ +#define PDM_INTCLR_DCMP_Pos (3UL) /*!< PDM INTCLR: DCMP (Bit 3) */ +#define PDM_INTCLR_DCMP_Msk (0x8UL) /*!< PDM INTCLR: DCMP (Bitfield-Mask: 0x01) */ +#define PDM_INTCLR_UNDFL_Pos (2UL) /*!< PDM INTCLR: UNDFL (Bit 2) */ +#define PDM_INTCLR_UNDFL_Msk (0x4UL) /*!< PDM INTCLR: UNDFL (Bitfield-Mask: 0x01) */ +#define PDM_INTCLR_OVF_Pos (1UL) /*!< PDM INTCLR: OVF (Bit 1) */ +#define PDM_INTCLR_OVF_Msk (0x2UL) /*!< PDM INTCLR: OVF (Bitfield-Mask: 0x01) */ +#define PDM_INTCLR_THR_Pos (0UL) /*!< PDM INTCLR: THR (Bit 0) */ +#define PDM_INTCLR_THR_Msk (0x1UL) /*!< PDM INTCLR: THR (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define PDM_INTSET_DERR_Pos (4UL) /*!< PDM INTSET: DERR (Bit 4) */ +#define PDM_INTSET_DERR_Msk (0x10UL) /*!< PDM INTSET: DERR (Bitfield-Mask: 0x01) */ +#define PDM_INTSET_DCMP_Pos (3UL) /*!< PDM INTSET: DCMP (Bit 3) */ +#define PDM_INTSET_DCMP_Msk (0x8UL) /*!< PDM INTSET: DCMP (Bitfield-Mask: 0x01) */ +#define PDM_INTSET_UNDFL_Pos (2UL) /*!< PDM INTSET: UNDFL (Bit 2) */ +#define PDM_INTSET_UNDFL_Msk (0x4UL) /*!< PDM INTSET: UNDFL (Bitfield-Mask: 0x01) */ +#define PDM_INTSET_OVF_Pos (1UL) /*!< PDM INTSET: OVF (Bit 1) */ +#define PDM_INTSET_OVF_Msk (0x2UL) /*!< PDM INTSET: OVF (Bitfield-Mask: 0x01) */ +#define PDM_INTSET_THR_Pos (0UL) /*!< PDM INTSET: THR (Bit 0) */ +#define PDM_INTSET_THR_Msk (0x1UL) /*!< PDM INTSET: THR (Bitfield-Mask: 0x01) */ +/* ======================================================= DMATRIGEN ======================================================= */ +#define PDM_DMATRIGEN_DTHR90_Pos (1UL) /*!< PDM DMATRIGEN: DTHR90 (Bit 1) */ +#define PDM_DMATRIGEN_DTHR90_Msk (0x2UL) /*!< PDM DMATRIGEN: DTHR90 (Bitfield-Mask: 0x01) */ +#define PDM_DMATRIGEN_DTHR_Pos (0UL) /*!< PDM DMATRIGEN: DTHR (Bit 0) */ +#define PDM_DMATRIGEN_DTHR_Msk (0x1UL) /*!< PDM DMATRIGEN: DTHR (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +#define PDM_DMATRIGSTAT_DTHR90STAT_Pos (1UL) /*!< PDM DMATRIGSTAT: DTHR90STAT (Bit 1) */ +#define PDM_DMATRIGSTAT_DTHR90STAT_Msk (0x2UL) /*!< PDM DMATRIGSTAT: DTHR90STAT (Bitfield-Mask: 0x01) */ +#define PDM_DMATRIGSTAT_DTHRSTAT_Pos (0UL) /*!< PDM DMATRIGSTAT: DTHRSTAT (Bit 0) */ +#define PDM_DMATRIGSTAT_DTHRSTAT_Msk (0x1UL) /*!< PDM DMATRIGSTAT: DTHRSTAT (Bitfield-Mask: 0x01) */ +/* ======================================================== DMACFG ========================================================= */ +#define PDM_DMACFG_DPWROFF_Pos (10UL) /*!< PDM DMACFG: DPWROFF (Bit 10) */ +#define PDM_DMACFG_DPWROFF_Msk (0x400UL) /*!< PDM DMACFG: DPWROFF (Bitfield-Mask: 0x01) */ +#define PDM_DMACFG_DAUTOHIP_Pos (9UL) /*!< PDM DMACFG: DAUTOHIP (Bit 9) */ +#define PDM_DMACFG_DAUTOHIP_Msk (0x200UL) /*!< PDM DMACFG: DAUTOHIP (Bitfield-Mask: 0x01) */ +#define PDM_DMACFG_DMAPRI_Pos (8UL) /*!< PDM DMACFG: DMAPRI (Bit 8) */ +#define PDM_DMACFG_DMAPRI_Msk (0x100UL) /*!< PDM DMACFG: DMAPRI (Bitfield-Mask: 0x01) */ +#define PDM_DMACFG_DMADIR_Pos (2UL) /*!< PDM DMACFG: DMADIR (Bit 2) */ +#define PDM_DMACFG_DMADIR_Msk (0x4UL) /*!< PDM DMACFG: DMADIR (Bitfield-Mask: 0x01) */ +#define PDM_DMACFG_DMAEN_Pos (0UL) /*!< PDM DMACFG: DMAEN (Bit 0) */ +#define PDM_DMACFG_DMAEN_Msk (0x1UL) /*!< PDM DMACFG: DMAEN (Bitfield-Mask: 0x01) */ +/* ====================================================== DMATOTCOUNT ====================================================== */ +#define PDM_DMATOTCOUNT_TOTCOUNT_Pos (0UL) /*!< PDM DMATOTCOUNT: TOTCOUNT (Bit 0) */ +#define PDM_DMATOTCOUNT_TOTCOUNT_Msk (0xfffffUL) /*!< PDM DMATOTCOUNT: TOTCOUNT (Bitfield-Mask: 0xfffff) */ +/* ====================================================== DMATARGADDR ====================================================== */ +#define PDM_DMATARGADDR_UTARGADDR_Pos (21UL) /*!< PDM DMATARGADDR: UTARGADDR (Bit 21) */ +#define PDM_DMATARGADDR_UTARGADDR_Msk (0xffe00000UL) /*!< PDM DMATARGADDR: UTARGADDR (Bitfield-Mask: 0x7ff) */ +#define PDM_DMATARGADDR_LTARGADDR_Pos (0UL) /*!< PDM DMATARGADDR: LTARGADDR (Bit 0) */ +#define PDM_DMATARGADDR_LTARGADDR_Msk (0x1fffffUL) /*!< PDM DMATARGADDR: LTARGADDR (Bitfield-Mask: 0x1fffff) */ +/* ======================================================== DMASTAT ======================================================== */ +#define PDM_DMASTAT_DMAERR_Pos (2UL) /*!< PDM DMASTAT: DMAERR (Bit 2) */ +#define PDM_DMASTAT_DMAERR_Msk (0x4UL) /*!< PDM DMASTAT: DMAERR (Bitfield-Mask: 0x01) */ +#define PDM_DMASTAT_DMACPL_Pos (1UL) /*!< PDM DMASTAT: DMACPL (Bit 1) */ +#define PDM_DMASTAT_DMACPL_Msk (0x2UL) /*!< PDM DMASTAT: DMACPL (Bitfield-Mask: 0x01) */ +#define PDM_DMASTAT_DMATIP_Pos (0UL) /*!< PDM DMASTAT: DMATIP (Bit 0) */ +#define PDM_DMASTAT_DMATIP_Msk (0x1UL) /*!< PDM DMASTAT: DMATIP (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ PWRCTRL ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= SUPPLYSRC ======================================================= */ +#define PWRCTRL_SUPPLYSRC_BLEBUCKEN_Pos (0UL) /*!< PWRCTRL SUPPLYSRC: BLEBUCKEN (Bit 0) */ +#define PWRCTRL_SUPPLYSRC_BLEBUCKEN_Msk (0x1UL) /*!< PWRCTRL SUPPLYSRC: BLEBUCKEN (Bitfield-Mask: 0x01) */ +/* ===================================================== SUPPLYSTATUS ====================================================== */ +#define PWRCTRL_SUPPLYSTATUS_BLEBUCKON_Pos (1UL) /*!< PWRCTRL SUPPLYSTATUS: BLEBUCKON (Bit 1) */ +#define PWRCTRL_SUPPLYSTATUS_BLEBUCKON_Msk (0x2UL) /*!< PWRCTRL SUPPLYSTATUS: BLEBUCKON (Bitfield-Mask: 0x01) */ +#define PWRCTRL_SUPPLYSTATUS_SIMOBUCKON_Pos (0UL) /*!< PWRCTRL SUPPLYSTATUS: SIMOBUCKON (Bit 0) */ +#define PWRCTRL_SUPPLYSTATUS_SIMOBUCKON_Msk (0x1UL) /*!< PWRCTRL SUPPLYSTATUS: SIMOBUCKON (Bitfield-Mask: 0x01) */ +/* ======================================================= DEVPWREN ======================================================== */ +#define PWRCTRL_DEVPWREN_PWRBLEL_Pos (15UL) /*!< PWRCTRL DEVPWREN: PWRBLEL (Bit 15) */ +#define PWRCTRL_DEVPWREN_PWRBLEL_Msk (0x8000UL) /*!< PWRCTRL DEVPWREN: PWRBLEL (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRPDM_Pos (14UL) /*!< PWRCTRL DEVPWREN: PWRPDM (Bit 14) */ +#define PWRCTRL_DEVPWREN_PWRPDM_Msk (0x4000UL) /*!< PWRCTRL DEVPWREN: PWRPDM (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRMSPI2_Pos (13UL) /*!< PWRCTRL DEVPWREN: PWRMSPI2 (Bit 13) */ +#define PWRCTRL_DEVPWREN_PWRMSPI2_Msk (0x2000UL) /*!< PWRCTRL DEVPWREN: PWRMSPI2 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRMSPI1_Pos (12UL) /*!< PWRCTRL DEVPWREN: PWRMSPI1 (Bit 12) */ +#define PWRCTRL_DEVPWREN_PWRMSPI1_Msk (0x1000UL) /*!< PWRCTRL DEVPWREN: PWRMSPI1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRMSPI0_Pos (11UL) /*!< PWRCTRL DEVPWREN: PWRMSPI0 (Bit 11) */ +#define PWRCTRL_DEVPWREN_PWRMSPI0_Msk (0x800UL) /*!< PWRCTRL DEVPWREN: PWRMSPI0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRSCARD_Pos (10UL) /*!< PWRCTRL DEVPWREN: PWRSCARD (Bit 10) */ +#define PWRCTRL_DEVPWREN_PWRSCARD_Msk (0x400UL) /*!< PWRCTRL DEVPWREN: PWRSCARD (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRADC_Pos (9UL) /*!< PWRCTRL DEVPWREN: PWRADC (Bit 9) */ +#define PWRCTRL_DEVPWREN_PWRADC_Msk (0x200UL) /*!< PWRCTRL DEVPWREN: PWRADC (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRUART1_Pos (8UL) /*!< PWRCTRL DEVPWREN: PWRUART1 (Bit 8) */ +#define PWRCTRL_DEVPWREN_PWRUART1_Msk (0x100UL) /*!< PWRCTRL DEVPWREN: PWRUART1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRUART0_Pos (7UL) /*!< PWRCTRL DEVPWREN: PWRUART0 (Bit 7) */ +#define PWRCTRL_DEVPWREN_PWRUART0_Msk (0x80UL) /*!< PWRCTRL DEVPWREN: PWRUART0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOM5_Pos (6UL) /*!< PWRCTRL DEVPWREN: PWRIOM5 (Bit 6) */ +#define PWRCTRL_DEVPWREN_PWRIOM5_Msk (0x40UL) /*!< PWRCTRL DEVPWREN: PWRIOM5 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOM4_Pos (5UL) /*!< PWRCTRL DEVPWREN: PWRIOM4 (Bit 5) */ +#define PWRCTRL_DEVPWREN_PWRIOM4_Msk (0x20UL) /*!< PWRCTRL DEVPWREN: PWRIOM4 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOM3_Pos (4UL) /*!< PWRCTRL DEVPWREN: PWRIOM3 (Bit 4) */ +#define PWRCTRL_DEVPWREN_PWRIOM3_Msk (0x10UL) /*!< PWRCTRL DEVPWREN: PWRIOM3 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOM2_Pos (3UL) /*!< PWRCTRL DEVPWREN: PWRIOM2 (Bit 3) */ +#define PWRCTRL_DEVPWREN_PWRIOM2_Msk (0x8UL) /*!< PWRCTRL DEVPWREN: PWRIOM2 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOM1_Pos (2UL) /*!< PWRCTRL DEVPWREN: PWRIOM1 (Bit 2) */ +#define PWRCTRL_DEVPWREN_PWRIOM1_Msk (0x4UL) /*!< PWRCTRL DEVPWREN: PWRIOM1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOM0_Pos (1UL) /*!< PWRCTRL DEVPWREN: PWRIOM0 (Bit 1) */ +#define PWRCTRL_DEVPWREN_PWRIOM0_Msk (0x2UL) /*!< PWRCTRL DEVPWREN: PWRIOM0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREN_PWRIOS_Pos (0UL) /*!< PWRCTRL DEVPWREN: PWRIOS (Bit 0) */ +#define PWRCTRL_DEVPWREN_PWRIOS_Msk (0x1UL) /*!< PWRCTRL DEVPWREN: PWRIOS (Bitfield-Mask: 0x01) */ +/* ===================================================== MEMPWDINSLEEP ===================================================== */ +#define PWRCTRL_MEMPWDINSLEEP_CACHEPWDSLP_Pos (31UL) /*!< PWRCTRL MEMPWDINSLEEP: CACHEPWDSLP (Bit 31) */ +#define PWRCTRL_MEMPWDINSLEEP_CACHEPWDSLP_Msk (0x80000000UL) /*!< PWRCTRL MEMPWDINSLEEP: CACHEPWDSLP (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWDINSLEEP_FLASH1PWDSLP_Pos (14UL) /*!< PWRCTRL MEMPWDINSLEEP: FLASH1PWDSLP (Bit 14) */ +#define PWRCTRL_MEMPWDINSLEEP_FLASH1PWDSLP_Msk (0x4000UL) /*!< PWRCTRL MEMPWDINSLEEP: FLASH1PWDSLP (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWDINSLEEP_FLASH0PWDSLP_Pos (13UL) /*!< PWRCTRL MEMPWDINSLEEP: FLASH0PWDSLP (Bit 13) */ +#define PWRCTRL_MEMPWDINSLEEP_FLASH0PWDSLP_Msk (0x2000UL) /*!< PWRCTRL MEMPWDINSLEEP: FLASH0PWDSLP (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_Pos (3UL) /*!< PWRCTRL MEMPWDINSLEEP: SRAMPWDSLP (Bit 3) */ +#define PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_Msk (0x1ff8UL) /*!< PWRCTRL MEMPWDINSLEEP: SRAMPWDSLP (Bitfield-Mask: 0x3ff) */ +#define PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_Pos (0UL) /*!< PWRCTRL MEMPWDINSLEEP: DTCMPWDSLP (Bit 0) */ +#define PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_Msk (0x7UL) /*!< PWRCTRL MEMPWDINSLEEP: DTCMPWDSLP (Bitfield-Mask: 0x07) */ +/* ======================================================= MEMPWREN ======================================================== */ +#define PWRCTRL_MEMPWREN_CACHEB2_Pos (31UL) /*!< PWRCTRL MEMPWREN: CACHEB2 (Bit 31) */ +#define PWRCTRL_MEMPWREN_CACHEB2_Msk (0x80000000UL) /*!< PWRCTRL MEMPWREN: CACHEB2 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREN_CACHEB0_Pos (30UL) /*!< PWRCTRL MEMPWREN: CACHEB0 (Bit 30) */ +#define PWRCTRL_MEMPWREN_CACHEB0_Msk (0x40000000UL) /*!< PWRCTRL MEMPWREN: CACHEB0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREN_FLASH1_Pos (14UL) /*!< PWRCTRL MEMPWREN: FLASH1 (Bit 14) */ +#define PWRCTRL_MEMPWREN_FLASH1_Msk (0x4000UL) /*!< PWRCTRL MEMPWREN: FLASH1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREN_FLASH0_Pos (13UL) /*!< PWRCTRL MEMPWREN: FLASH0 (Bit 13) */ +#define PWRCTRL_MEMPWREN_FLASH0_Msk (0x2000UL) /*!< PWRCTRL MEMPWREN: FLASH0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREN_SRAM_Pos (3UL) /*!< PWRCTRL MEMPWREN: SRAM (Bit 3) */ +#define PWRCTRL_MEMPWREN_SRAM_Msk (0x1ff8UL) /*!< PWRCTRL MEMPWREN: SRAM (Bitfield-Mask: 0x3ff) */ +#define PWRCTRL_MEMPWREN_DTCM_Pos (0UL) /*!< PWRCTRL MEMPWREN: DTCM (Bit 0) */ +#define PWRCTRL_MEMPWREN_DTCM_Msk (0x7UL) /*!< PWRCTRL MEMPWREN: DTCM (Bitfield-Mask: 0x07) */ +/* ===================================================== MEMPWRSTATUS ====================================================== */ +#define PWRCTRL_MEMPWRSTATUS_CACHEB2_Pos (16UL) /*!< PWRCTRL MEMPWRSTATUS: CACHEB2 (Bit 16) */ +#define PWRCTRL_MEMPWRSTATUS_CACHEB2_Msk (0x10000UL) /*!< PWRCTRL MEMPWRSTATUS: CACHEB2 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_CACHEB0_Pos (15UL) /*!< PWRCTRL MEMPWRSTATUS: CACHEB0 (Bit 15) */ +#define PWRCTRL_MEMPWRSTATUS_CACHEB0_Msk (0x8000UL) /*!< PWRCTRL MEMPWRSTATUS: CACHEB0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_FLASH1_Pos (14UL) /*!< PWRCTRL MEMPWRSTATUS: FLASH1 (Bit 14) */ +#define PWRCTRL_MEMPWRSTATUS_FLASH1_Msk (0x4000UL) /*!< PWRCTRL MEMPWRSTATUS: FLASH1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_FLASH0_Pos (13UL) /*!< PWRCTRL MEMPWRSTATUS: FLASH0 (Bit 13) */ +#define PWRCTRL_MEMPWRSTATUS_FLASH0_Msk (0x2000UL) /*!< PWRCTRL MEMPWRSTATUS: FLASH0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM9_Pos (12UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM9 (Bit 12) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM9_Msk (0x1000UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM9 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM8_Pos (11UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM8 (Bit 11) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM8_Msk (0x800UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM8 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM7_Pos (10UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM7 (Bit 10) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM7_Msk (0x400UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM7 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM6_Pos (9UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM6 (Bit 9) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM6_Msk (0x200UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM6 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM5_Pos (8UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM5 (Bit 8) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM5_Msk (0x100UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM5 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM4_Pos (7UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM4 (Bit 7) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM4_Msk (0x80UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM4 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM3_Pos (6UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM3 (Bit 6) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM3_Msk (0x40UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM3 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM2_Pos (5UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM2 (Bit 5) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM2_Msk (0x20UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM2 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM1_Pos (4UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM1 (Bit 4) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM1_Msk (0x10UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM0_Pos (3UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM0 (Bit 3) */ +#define PWRCTRL_MEMPWRSTATUS_SRAM0_Msk (0x8UL) /*!< PWRCTRL MEMPWRSTATUS: SRAM0 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_DTCM1_Pos (2UL) /*!< PWRCTRL MEMPWRSTATUS: DTCM1 (Bit 2) */ +#define PWRCTRL_MEMPWRSTATUS_DTCM1_Msk (0x4UL) /*!< PWRCTRL MEMPWRSTATUS: DTCM1 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_DTCM01_Pos (1UL) /*!< PWRCTRL MEMPWRSTATUS: DTCM01 (Bit 1) */ +#define PWRCTRL_MEMPWRSTATUS_DTCM01_Msk (0x2UL) /*!< PWRCTRL MEMPWRSTATUS: DTCM01 (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWRSTATUS_DTCM00_Pos (0UL) /*!< PWRCTRL MEMPWRSTATUS: DTCM00 (Bit 0) */ +#define PWRCTRL_MEMPWRSTATUS_DTCM00_Msk (0x1UL) /*!< PWRCTRL MEMPWRSTATUS: DTCM00 (Bitfield-Mask: 0x01) */ +/* ===================================================== DEVPWRSTATUS ====================================================== */ +#define PWRCTRL_DEVPWRSTATUS_BLEH_Pos (9UL) /*!< PWRCTRL DEVPWRSTATUS: BLEH (Bit 9) */ +#define PWRCTRL_DEVPWRSTATUS_BLEH_Msk (0x200UL) /*!< PWRCTRL DEVPWRSTATUS: BLEH (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_BLEL_Pos (8UL) /*!< PWRCTRL DEVPWRSTATUS: BLEL (Bit 8) */ +#define PWRCTRL_DEVPWRSTATUS_BLEL_Msk (0x100UL) /*!< PWRCTRL DEVPWRSTATUS: BLEL (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_PWRPDM_Pos (7UL) /*!< PWRCTRL DEVPWRSTATUS: PWRPDM (Bit 7) */ +#define PWRCTRL_DEVPWRSTATUS_PWRPDM_Msk (0x80UL) /*!< PWRCTRL DEVPWRSTATUS: PWRPDM (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_PWRMSPI_Pos (6UL) /*!< PWRCTRL DEVPWRSTATUS: PWRMSPI (Bit 6) */ +#define PWRCTRL_DEVPWRSTATUS_PWRMSPI_Msk (0x40UL) /*!< PWRCTRL DEVPWRSTATUS: PWRMSPI (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_PWRADC_Pos (5UL) /*!< PWRCTRL DEVPWRSTATUS: PWRADC (Bit 5) */ +#define PWRCTRL_DEVPWRSTATUS_PWRADC_Msk (0x20UL) /*!< PWRCTRL DEVPWRSTATUS: PWRADC (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_HCPC_Pos (4UL) /*!< PWRCTRL DEVPWRSTATUS: HCPC (Bit 4) */ +#define PWRCTRL_DEVPWRSTATUS_HCPC_Msk (0x10UL) /*!< PWRCTRL DEVPWRSTATUS: HCPC (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_HCPB_Pos (3UL) /*!< PWRCTRL DEVPWRSTATUS: HCPB (Bit 3) */ +#define PWRCTRL_DEVPWRSTATUS_HCPB_Msk (0x8UL) /*!< PWRCTRL DEVPWRSTATUS: HCPB (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_HCPA_Pos (2UL) /*!< PWRCTRL DEVPWRSTATUS: HCPA (Bit 2) */ +#define PWRCTRL_DEVPWRSTATUS_HCPA_Msk (0x4UL) /*!< PWRCTRL DEVPWRSTATUS: HCPA (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_MCUH_Pos (1UL) /*!< PWRCTRL DEVPWRSTATUS: MCUH (Bit 1) */ +#define PWRCTRL_DEVPWRSTATUS_MCUH_Msk (0x2UL) /*!< PWRCTRL DEVPWRSTATUS: MCUH (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWRSTATUS_MCUL_Pos (0UL) /*!< PWRCTRL DEVPWRSTATUS: MCUL (Bit 0) */ +#define PWRCTRL_DEVPWRSTATUS_MCUL_Msk (0x1UL) /*!< PWRCTRL DEVPWRSTATUS: MCUL (Bitfield-Mask: 0x01) */ +/* ======================================================= SRAMCTRL ======================================================== */ +#define PWRCTRL_SRAMCTRL_SRAMLIGHTSLEEP_Pos (8UL) /*!< PWRCTRL SRAMCTRL: SRAMLIGHTSLEEP (Bit 8) */ +#define PWRCTRL_SRAMCTRL_SRAMLIGHTSLEEP_Msk (0xfff00UL) /*!< PWRCTRL SRAMCTRL: SRAMLIGHTSLEEP (Bitfield-Mask: 0xfff) */ +#define PWRCTRL_SRAMCTRL_SRAMMASTERCLKGATE_Pos (2UL) /*!< PWRCTRL SRAMCTRL: SRAMMASTERCLKGATE (Bit 2) */ +#define PWRCTRL_SRAMCTRL_SRAMMASTERCLKGATE_Msk (0x4UL) /*!< PWRCTRL SRAMCTRL: SRAMMASTERCLKGATE (Bitfield-Mask: 0x01) */ +#define PWRCTRL_SRAMCTRL_SRAMCLKGATE_Pos (1UL) /*!< PWRCTRL SRAMCTRL: SRAMCLKGATE (Bit 1) */ +#define PWRCTRL_SRAMCTRL_SRAMCLKGATE_Msk (0x2UL) /*!< PWRCTRL SRAMCTRL: SRAMCLKGATE (Bitfield-Mask: 0x01) */ +/* ======================================================= ADCSTATUS ======================================================= */ +#define PWRCTRL_ADCSTATUS_REFBUFPWD_Pos (5UL) /*!< PWRCTRL ADCSTATUS: REFBUFPWD (Bit 5) */ +#define PWRCTRL_ADCSTATUS_REFBUFPWD_Msk (0x20UL) /*!< PWRCTRL ADCSTATUS: REFBUFPWD (Bitfield-Mask: 0x01) */ +#define PWRCTRL_ADCSTATUS_REFKEEPPWD_Pos (4UL) /*!< PWRCTRL ADCSTATUS: REFKEEPPWD (Bit 4) */ +#define PWRCTRL_ADCSTATUS_REFKEEPPWD_Msk (0x10UL) /*!< PWRCTRL ADCSTATUS: REFKEEPPWD (Bitfield-Mask: 0x01) */ +#define PWRCTRL_ADCSTATUS_VBATPWD_Pos (3UL) /*!< PWRCTRL ADCSTATUS: VBATPWD (Bit 3) */ +#define PWRCTRL_ADCSTATUS_VBATPWD_Msk (0x8UL) /*!< PWRCTRL ADCSTATUS: VBATPWD (Bitfield-Mask: 0x01) */ +#define PWRCTRL_ADCSTATUS_VPTATPWD_Pos (2UL) /*!< PWRCTRL ADCSTATUS: VPTATPWD (Bit 2) */ +#define PWRCTRL_ADCSTATUS_VPTATPWD_Msk (0x4UL) /*!< PWRCTRL ADCSTATUS: VPTATPWD (Bitfield-Mask: 0x01) */ +#define PWRCTRL_ADCSTATUS_BGTPWD_Pos (1UL) /*!< PWRCTRL ADCSTATUS: BGTPWD (Bit 1) */ +#define PWRCTRL_ADCSTATUS_BGTPWD_Msk (0x2UL) /*!< PWRCTRL ADCSTATUS: BGTPWD (Bitfield-Mask: 0x01) */ +#define PWRCTRL_ADCSTATUS_ADCPWD_Pos (0UL) /*!< PWRCTRL ADCSTATUS: ADCPWD (Bit 0) */ +#define PWRCTRL_ADCSTATUS_ADCPWD_Msk (0x1UL) /*!< PWRCTRL ADCSTATUS: ADCPWD (Bitfield-Mask: 0x01) */ +/* ========================================================= MISC ========================================================== */ +#define PWRCTRL_MISC_MEMVRLPBLE_Pos (6UL) /*!< PWRCTRL MISC: MEMVRLPBLE (Bit 6) */ +#define PWRCTRL_MISC_MEMVRLPBLE_Msk (0x40UL) /*!< PWRCTRL MISC: MEMVRLPBLE (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MISC_FORCEMEMVRLPTIMERS_Pos (3UL) /*!< PWRCTRL MISC: FORCEMEMVRLPTIMERS (Bit 3) */ +#define PWRCTRL_MISC_FORCEMEMVRLPTIMERS_Msk (0x8UL) /*!< PWRCTRL MISC: FORCEMEMVRLPTIMERS (Bitfield-Mask: 0x01) */ +/* ===================================================== DEVPWREVENTEN ===================================================== */ +#define PWRCTRL_DEVPWREVENTEN_BURSTEVEN_Pos (31UL) /*!< PWRCTRL DEVPWREVENTEN: BURSTEVEN (Bit 31) */ +#define PWRCTRL_DEVPWREVENTEN_BURSTEVEN_Msk (0x80000000UL) /*!< PWRCTRL DEVPWREVENTEN: BURSTEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_BURSTFEATUREEVEN_Pos (30UL) /*!< PWRCTRL DEVPWREVENTEN: BURSTFEATUREEVEN (Bit 30) */ +#define PWRCTRL_DEVPWREVENTEN_BURSTFEATUREEVEN_Msk (0x40000000UL) /*!< PWRCTRL DEVPWREVENTEN: BURSTFEATUREEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_BLEFEATUREEVEN_Pos (29UL) /*!< PWRCTRL DEVPWREVENTEN: BLEFEATUREEVEN (Bit 29) */ +#define PWRCTRL_DEVPWREVENTEN_BLEFEATUREEVEN_Msk (0x20000000UL) /*!< PWRCTRL DEVPWREVENTEN: BLEFEATUREEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_BLELEVEN_Pos (8UL) /*!< PWRCTRL DEVPWREVENTEN: BLELEVEN (Bit 8) */ +#define PWRCTRL_DEVPWREVENTEN_BLELEVEN_Msk (0x100UL) /*!< PWRCTRL DEVPWREVENTEN: BLELEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_PDMEVEN_Pos (7UL) /*!< PWRCTRL DEVPWREVENTEN: PDMEVEN (Bit 7) */ +#define PWRCTRL_DEVPWREVENTEN_PDMEVEN_Msk (0x80UL) /*!< PWRCTRL DEVPWREVENTEN: PDMEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_MSPIEVEN_Pos (6UL) /*!< PWRCTRL DEVPWREVENTEN: MSPIEVEN (Bit 6) */ +#define PWRCTRL_DEVPWREVENTEN_MSPIEVEN_Msk (0x40UL) /*!< PWRCTRL DEVPWREVENTEN: MSPIEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_ADCEVEN_Pos (5UL) /*!< PWRCTRL DEVPWREVENTEN: ADCEVEN (Bit 5) */ +#define PWRCTRL_DEVPWREVENTEN_ADCEVEN_Msk (0x20UL) /*!< PWRCTRL DEVPWREVENTEN: ADCEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_HCPCEVEN_Pos (4UL) /*!< PWRCTRL DEVPWREVENTEN: HCPCEVEN (Bit 4) */ +#define PWRCTRL_DEVPWREVENTEN_HCPCEVEN_Msk (0x10UL) /*!< PWRCTRL DEVPWREVENTEN: HCPCEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_HCPBEVEN_Pos (3UL) /*!< PWRCTRL DEVPWREVENTEN: HCPBEVEN (Bit 3) */ +#define PWRCTRL_DEVPWREVENTEN_HCPBEVEN_Msk (0x8UL) /*!< PWRCTRL DEVPWREVENTEN: HCPBEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_HCPAEVEN_Pos (2UL) /*!< PWRCTRL DEVPWREVENTEN: HCPAEVEN (Bit 2) */ +#define PWRCTRL_DEVPWREVENTEN_HCPAEVEN_Msk (0x4UL) /*!< PWRCTRL DEVPWREVENTEN: HCPAEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_MCUHEVEN_Pos (1UL) /*!< PWRCTRL DEVPWREVENTEN: MCUHEVEN (Bit 1) */ +#define PWRCTRL_DEVPWREVENTEN_MCUHEVEN_Msk (0x2UL) /*!< PWRCTRL DEVPWREVENTEN: MCUHEVEN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_DEVPWREVENTEN_MCULEVEN_Pos (0UL) /*!< PWRCTRL DEVPWREVENTEN: MCULEVEN (Bit 0) */ +#define PWRCTRL_DEVPWREVENTEN_MCULEVEN_Msk (0x1UL) /*!< PWRCTRL DEVPWREVENTEN: MCULEVEN (Bitfield-Mask: 0x01) */ +/* ===================================================== MEMPWREVENTEN ===================================================== */ +#define PWRCTRL_MEMPWREVENTEN_CACHEB2EN_Pos (31UL) /*!< PWRCTRL MEMPWREVENTEN: CACHEB2EN (Bit 31) */ +#define PWRCTRL_MEMPWREVENTEN_CACHEB2EN_Msk (0x80000000UL) /*!< PWRCTRL MEMPWREVENTEN: CACHEB2EN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREVENTEN_CACHEB0EN_Pos (30UL) /*!< PWRCTRL MEMPWREVENTEN: CACHEB0EN (Bit 30) */ +#define PWRCTRL_MEMPWREVENTEN_CACHEB0EN_Msk (0x40000000UL) /*!< PWRCTRL MEMPWREVENTEN: CACHEB0EN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREVENTEN_FLASH1EN_Pos (14UL) /*!< PWRCTRL MEMPWREVENTEN: FLASH1EN (Bit 14) */ +#define PWRCTRL_MEMPWREVENTEN_FLASH1EN_Msk (0x4000UL) /*!< PWRCTRL MEMPWREVENTEN: FLASH1EN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREVENTEN_FLASH0EN_Pos (13UL) /*!< PWRCTRL MEMPWREVENTEN: FLASH0EN (Bit 13) */ +#define PWRCTRL_MEMPWREVENTEN_FLASH0EN_Msk (0x2000UL) /*!< PWRCTRL MEMPWREVENTEN: FLASH0EN (Bitfield-Mask: 0x01) */ +#define PWRCTRL_MEMPWREVENTEN_SRAMEN_Pos (3UL) /*!< PWRCTRL MEMPWREVENTEN: SRAMEN (Bit 3) */ +#define PWRCTRL_MEMPWREVENTEN_SRAMEN_Msk (0x1ff8UL) /*!< PWRCTRL MEMPWREVENTEN: SRAMEN (Bitfield-Mask: 0x3ff) */ +#define PWRCTRL_MEMPWREVENTEN_DTCMEN_Pos (0UL) /*!< PWRCTRL MEMPWREVENTEN: DTCMEN (Bit 0) */ +#define PWRCTRL_MEMPWREVENTEN_DTCMEN_Msk (0x7UL) /*!< PWRCTRL MEMPWREVENTEN: DTCMEN (Bitfield-Mask: 0x07) */ + + +/* =========================================================================================================================== */ +/* ================ RSTGEN ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +#define RSTGEN_CFG_WDREN_Pos (1UL) /*!< RSTGEN CFG: WDREN (Bit 1) */ +#define RSTGEN_CFG_WDREN_Msk (0x2UL) /*!< RSTGEN CFG: WDREN (Bitfield-Mask: 0x01) */ +#define RSTGEN_CFG_BODHREN_Pos (0UL) /*!< RSTGEN CFG: BODHREN (Bit 0) */ +#define RSTGEN_CFG_BODHREN_Msk (0x1UL) /*!< RSTGEN CFG: BODHREN (Bitfield-Mask: 0x01) */ +/* ========================================================= SWPOI ========================================================= */ +#define RSTGEN_SWPOI_SWPOIKEY_Pos (0UL) /*!< RSTGEN SWPOI: SWPOIKEY (Bit 0) */ +#define RSTGEN_SWPOI_SWPOIKEY_Msk (0xffUL) /*!< RSTGEN SWPOI: SWPOIKEY (Bitfield-Mask: 0xff) */ +/* ========================================================= SWPOR ========================================================= */ +#define RSTGEN_SWPOR_SWPORKEY_Pos (0UL) /*!< RSTGEN SWPOR: SWPORKEY (Bit 0) */ +#define RSTGEN_SWPOR_SWPORKEY_Msk (0xffUL) /*!< RSTGEN SWPOR: SWPORKEY (Bitfield-Mask: 0xff) */ +/* ======================================================== TPIURST ======================================================== */ +#define RSTGEN_TPIURST_TPIURST_Pos (0UL) /*!< RSTGEN TPIURST: TPIURST (Bit 0) */ +#define RSTGEN_TPIURST_TPIURST_Msk (0x1UL) /*!< RSTGEN TPIURST: TPIURST (Bitfield-Mask: 0x01) */ +/* ========================================================= INTEN ========================================================= */ +#define RSTGEN_INTEN_BODH_Pos (0UL) /*!< RSTGEN INTEN: BODH (Bit 0) */ +#define RSTGEN_INTEN_BODH_Msk (0x1UL) /*!< RSTGEN INTEN: BODH (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define RSTGEN_INTSTAT_BODH_Pos (0UL) /*!< RSTGEN INTSTAT: BODH (Bit 0) */ +#define RSTGEN_INTSTAT_BODH_Msk (0x1UL) /*!< RSTGEN INTSTAT: BODH (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define RSTGEN_INTCLR_BODH_Pos (0UL) /*!< RSTGEN INTCLR: BODH (Bit 0) */ +#define RSTGEN_INTCLR_BODH_Msk (0x1UL) /*!< RSTGEN INTCLR: BODH (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define RSTGEN_INTSET_BODH_Pos (0UL) /*!< RSTGEN INTSET: BODH (Bit 0) */ +#define RSTGEN_INTSET_BODH_Msk (0x1UL) /*!< RSTGEN INTSET: BODH (Bitfield-Mask: 0x01) */ +/* ========================================================= STAT ========================================================== */ +#define RSTGEN_STAT_SBOOT_Pos (31UL) /*!< RSTGEN STAT: SBOOT (Bit 31) */ +#define RSTGEN_STAT_SBOOT_Msk (0x80000000UL) /*!< RSTGEN STAT: SBOOT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_FBOOT_Pos (30UL) /*!< RSTGEN STAT: FBOOT (Bit 30) */ +#define RSTGEN_STAT_FBOOT_Msk (0x40000000UL) /*!< RSTGEN STAT: FBOOT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_BOBSTAT_Pos (10UL) /*!< RSTGEN STAT: BOBSTAT (Bit 10) */ +#define RSTGEN_STAT_BOBSTAT_Msk (0x400UL) /*!< RSTGEN STAT: BOBSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_BOFSTAT_Pos (9UL) /*!< RSTGEN STAT: BOFSTAT (Bit 9) */ +#define RSTGEN_STAT_BOFSTAT_Msk (0x200UL) /*!< RSTGEN STAT: BOFSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_BOCSTAT_Pos (8UL) /*!< RSTGEN STAT: BOCSTAT (Bit 8) */ +#define RSTGEN_STAT_BOCSTAT_Msk (0x100UL) /*!< RSTGEN STAT: BOCSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_BOUSTAT_Pos (7UL) /*!< RSTGEN STAT: BOUSTAT (Bit 7) */ +#define RSTGEN_STAT_BOUSTAT_Msk (0x80UL) /*!< RSTGEN STAT: BOUSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_WDRSTAT_Pos (6UL) /*!< RSTGEN STAT: WDRSTAT (Bit 6) */ +#define RSTGEN_STAT_WDRSTAT_Msk (0x40UL) /*!< RSTGEN STAT: WDRSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_DBGRSTAT_Pos (5UL) /*!< RSTGEN STAT: DBGRSTAT (Bit 5) */ +#define RSTGEN_STAT_DBGRSTAT_Msk (0x20UL) /*!< RSTGEN STAT: DBGRSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_POIRSTAT_Pos (4UL) /*!< RSTGEN STAT: POIRSTAT (Bit 4) */ +#define RSTGEN_STAT_POIRSTAT_Msk (0x10UL) /*!< RSTGEN STAT: POIRSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_SWRSTAT_Pos (3UL) /*!< RSTGEN STAT: SWRSTAT (Bit 3) */ +#define RSTGEN_STAT_SWRSTAT_Msk (0x8UL) /*!< RSTGEN STAT: SWRSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_BORSTAT_Pos (2UL) /*!< RSTGEN STAT: BORSTAT (Bit 2) */ +#define RSTGEN_STAT_BORSTAT_Msk (0x4UL) /*!< RSTGEN STAT: BORSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_PORSTAT_Pos (1UL) /*!< RSTGEN STAT: PORSTAT (Bit 1) */ +#define RSTGEN_STAT_PORSTAT_Msk (0x2UL) /*!< RSTGEN STAT: PORSTAT (Bitfield-Mask: 0x01) */ +#define RSTGEN_STAT_EXRSTAT_Pos (0UL) /*!< RSTGEN STAT: EXRSTAT (Bit 0) */ +#define RSTGEN_STAT_EXRSTAT_Msk (0x1UL) /*!< RSTGEN STAT: EXRSTAT (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ RTC ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CTRLOW ========================================================= */ +#define RTC_CTRLOW_CTRHR_Pos (24UL) /*!< RTC CTRLOW: CTRHR (Bit 24) */ +#define RTC_CTRLOW_CTRHR_Msk (0x3f000000UL) /*!< RTC CTRLOW: CTRHR (Bitfield-Mask: 0x3f) */ +#define RTC_CTRLOW_CTRMIN_Pos (16UL) /*!< RTC CTRLOW: CTRMIN (Bit 16) */ +#define RTC_CTRLOW_CTRMIN_Msk (0x7f0000UL) /*!< RTC CTRLOW: CTRMIN (Bitfield-Mask: 0x7f) */ +#define RTC_CTRLOW_CTRSEC_Pos (8UL) /*!< RTC CTRLOW: CTRSEC (Bit 8) */ +#define RTC_CTRLOW_CTRSEC_Msk (0x7f00UL) /*!< RTC CTRLOW: CTRSEC (Bitfield-Mask: 0x7f) */ +#define RTC_CTRLOW_CTR100_Pos (0UL) /*!< RTC CTRLOW: CTR100 (Bit 0) */ +#define RTC_CTRLOW_CTR100_Msk (0xffUL) /*!< RTC CTRLOW: CTR100 (Bitfield-Mask: 0xff) */ +/* ========================================================= CTRUP ========================================================= */ +#define RTC_CTRUP_CTERR_Pos (31UL) /*!< RTC CTRUP: CTERR (Bit 31) */ +#define RTC_CTRUP_CTERR_Msk (0x80000000UL) /*!< RTC CTRUP: CTERR (Bitfield-Mask: 0x01) */ +#define RTC_CTRUP_CEB_Pos (28UL) /*!< RTC CTRUP: CEB (Bit 28) */ +#define RTC_CTRUP_CEB_Msk (0x10000000UL) /*!< RTC CTRUP: CEB (Bitfield-Mask: 0x01) */ +#define RTC_CTRUP_CB_Pos (27UL) /*!< RTC CTRUP: CB (Bit 27) */ +#define RTC_CTRUP_CB_Msk (0x8000000UL) /*!< RTC CTRUP: CB (Bitfield-Mask: 0x01) */ +#define RTC_CTRUP_CTRWKDY_Pos (24UL) /*!< RTC CTRUP: CTRWKDY (Bit 24) */ +#define RTC_CTRUP_CTRWKDY_Msk (0x7000000UL) /*!< RTC CTRUP: CTRWKDY (Bitfield-Mask: 0x07) */ +#define RTC_CTRUP_CTRYR_Pos (16UL) /*!< RTC CTRUP: CTRYR (Bit 16) */ +#define RTC_CTRUP_CTRYR_Msk (0xff0000UL) /*!< RTC CTRUP: CTRYR (Bitfield-Mask: 0xff) */ +#define RTC_CTRUP_CTRMO_Pos (8UL) /*!< RTC CTRUP: CTRMO (Bit 8) */ +#define RTC_CTRUP_CTRMO_Msk (0x1f00UL) /*!< RTC CTRUP: CTRMO (Bitfield-Mask: 0x1f) */ +#define RTC_CTRUP_CTRDATE_Pos (0UL) /*!< RTC CTRUP: CTRDATE (Bit 0) */ +#define RTC_CTRUP_CTRDATE_Msk (0x3fUL) /*!< RTC CTRUP: CTRDATE (Bitfield-Mask: 0x3f) */ +/* ======================================================== ALMLOW ========================================================= */ +#define RTC_ALMLOW_ALMHR_Pos (24UL) /*!< RTC ALMLOW: ALMHR (Bit 24) */ +#define RTC_ALMLOW_ALMHR_Msk (0x3f000000UL) /*!< RTC ALMLOW: ALMHR (Bitfield-Mask: 0x3f) */ +#define RTC_ALMLOW_ALMMIN_Pos (16UL) /*!< RTC ALMLOW: ALMMIN (Bit 16) */ +#define RTC_ALMLOW_ALMMIN_Msk (0x7f0000UL) /*!< RTC ALMLOW: ALMMIN (Bitfield-Mask: 0x7f) */ +#define RTC_ALMLOW_ALMSEC_Pos (8UL) /*!< RTC ALMLOW: ALMSEC (Bit 8) */ +#define RTC_ALMLOW_ALMSEC_Msk (0x7f00UL) /*!< RTC ALMLOW: ALMSEC (Bitfield-Mask: 0x7f) */ +#define RTC_ALMLOW_ALM100_Pos (0UL) /*!< RTC ALMLOW: ALM100 (Bit 0) */ +#define RTC_ALMLOW_ALM100_Msk (0xffUL) /*!< RTC ALMLOW: ALM100 (Bitfield-Mask: 0xff) */ +/* ========================================================= ALMUP ========================================================= */ +#define RTC_ALMUP_ALMWKDY_Pos (16UL) /*!< RTC ALMUP: ALMWKDY (Bit 16) */ +#define RTC_ALMUP_ALMWKDY_Msk (0x70000UL) /*!< RTC ALMUP: ALMWKDY (Bitfield-Mask: 0x07) */ +#define RTC_ALMUP_ALMMO_Pos (8UL) /*!< RTC ALMUP: ALMMO (Bit 8) */ +#define RTC_ALMUP_ALMMO_Msk (0x1f00UL) /*!< RTC ALMUP: ALMMO (Bitfield-Mask: 0x1f) */ +#define RTC_ALMUP_ALMDATE_Pos (0UL) /*!< RTC ALMUP: ALMDATE (Bit 0) */ +#define RTC_ALMUP_ALMDATE_Msk (0x3fUL) /*!< RTC ALMUP: ALMDATE (Bitfield-Mask: 0x3f) */ +/* ======================================================== RTCCTL ========================================================= */ +#define RTC_RTCCTL_HR1224_Pos (5UL) /*!< RTC RTCCTL: HR1224 (Bit 5) */ +#define RTC_RTCCTL_HR1224_Msk (0x20UL) /*!< RTC RTCCTL: HR1224 (Bitfield-Mask: 0x01) */ +#define RTC_RTCCTL_RSTOP_Pos (4UL) /*!< RTC RTCCTL: RSTOP (Bit 4) */ +#define RTC_RTCCTL_RSTOP_Msk (0x10UL) /*!< RTC RTCCTL: RSTOP (Bitfield-Mask: 0x01) */ +#define RTC_RTCCTL_RPT_Pos (1UL) /*!< RTC RTCCTL: RPT (Bit 1) */ +#define RTC_RTCCTL_RPT_Msk (0xeUL) /*!< RTC RTCCTL: RPT (Bitfield-Mask: 0x07) */ +#define RTC_RTCCTL_WRTC_Pos (0UL) /*!< RTC RTCCTL: WRTC (Bit 0) */ +#define RTC_RTCCTL_WRTC_Msk (0x1UL) /*!< RTC RTCCTL: WRTC (Bitfield-Mask: 0x01) */ +/* ========================================================= INTEN ========================================================= */ +#define RTC_INTEN_ALM_Pos (0UL) /*!< RTC INTEN: ALM (Bit 0) */ +#define RTC_INTEN_ALM_Msk (0x1UL) /*!< RTC INTEN: ALM (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define RTC_INTSTAT_ALM_Pos (0UL) /*!< RTC INTSTAT: ALM (Bit 0) */ +#define RTC_INTSTAT_ALM_Msk (0x1UL) /*!< RTC INTSTAT: ALM (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define RTC_INTCLR_ALM_Pos (0UL) /*!< RTC INTCLR: ALM (Bit 0) */ +#define RTC_INTCLR_ALM_Msk (0x1UL) /*!< RTC INTCLR: ALM (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define RTC_INTSET_ALM_Pos (0UL) /*!< RTC INTSET: ALM (Bit 0) */ +#define RTC_INTSET_ALM_Msk (0x1UL) /*!< RTC INTSET: ALM (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ SCARD ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== SR =========================================================== */ +#define SCARD_SR_FHF_Pos (6UL) /*!< SCARD SR: FHF (Bit 6) */ +#define SCARD_SR_FHF_Msk (0x40UL) /*!< SCARD SR: FHF (Bitfield-Mask: 0x01) */ +#define SCARD_SR_FT2REND_Pos (5UL) /*!< SCARD SR: FT2REND (Bit 5) */ +#define SCARD_SR_FT2REND_Msk (0x20UL) /*!< SCARD SR: FT2REND (Bitfield-Mask: 0x01) */ +#define SCARD_SR_PE_Pos (4UL) /*!< SCARD SR: PE (Bit 4) */ +#define SCARD_SR_PE_Msk (0x10UL) /*!< SCARD SR: PE (Bitfield-Mask: 0x01) */ +#define SCARD_SR_OVR_Pos (3UL) /*!< SCARD SR: OVR (Bit 3) */ +#define SCARD_SR_OVR_Msk (0x8UL) /*!< SCARD SR: OVR (Bitfield-Mask: 0x01) */ +#define SCARD_SR_FER_Pos (2UL) /*!< SCARD SR: FER (Bit 2) */ +#define SCARD_SR_FER_Msk (0x4UL) /*!< SCARD SR: FER (Bitfield-Mask: 0x01) */ +#define SCARD_SR_TBERBF_Pos (1UL) /*!< SCARD SR: TBERBF (Bit 1) */ +#define SCARD_SR_TBERBF_Msk (0x2UL) /*!< SCARD SR: TBERBF (Bitfield-Mask: 0x01) */ +#define SCARD_SR_FNE_Pos (0UL) /*!< SCARD SR: FNE (Bit 0) */ +#define SCARD_SR_FNE_Msk (0x1UL) /*!< SCARD SR: FNE (Bitfield-Mask: 0x01) */ +/* ========================================================== IER ========================================================== */ +#define SCARD_IER_FHFEN_Pos (6UL) /*!< SCARD IER: FHFEN (Bit 6) */ +#define SCARD_IER_FHFEN_Msk (0x40UL) /*!< SCARD IER: FHFEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_FT2RENDEN_Pos (5UL) /*!< SCARD IER: FT2RENDEN (Bit 5) */ +#define SCARD_IER_FT2RENDEN_Msk (0x20UL) /*!< SCARD IER: FT2RENDEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_PEEN_Pos (4UL) /*!< SCARD IER: PEEN (Bit 4) */ +#define SCARD_IER_PEEN_Msk (0x10UL) /*!< SCARD IER: PEEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_OVREN_Pos (3UL) /*!< SCARD IER: OVREN (Bit 3) */ +#define SCARD_IER_OVREN_Msk (0x8UL) /*!< SCARD IER: OVREN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_FEREN_Pos (2UL) /*!< SCARD IER: FEREN (Bit 2) */ +#define SCARD_IER_FEREN_Msk (0x4UL) /*!< SCARD IER: FEREN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_TBERBFEN_Pos (1UL) /*!< SCARD IER: TBERBFEN (Bit 1) */ +#define SCARD_IER_TBERBFEN_Msk (0x2UL) /*!< SCARD IER: TBERBFEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER_FNEEN_Pos (0UL) /*!< SCARD IER: FNEEN (Bit 0) */ +#define SCARD_IER_FNEEN_Msk (0x1UL) /*!< SCARD IER: FNEEN (Bitfield-Mask: 0x01) */ +/* ========================================================== TCR ========================================================== */ +#define SCARD_TCR_DMAMD_Pos (7UL) /*!< SCARD TCR: DMAMD (Bit 7) */ +#define SCARD_TCR_DMAMD_Msk (0x80UL) /*!< SCARD TCR: DMAMD (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_FIP_Pos (6UL) /*!< SCARD TCR: FIP (Bit 6) */ +#define SCARD_TCR_FIP_Msk (0x40UL) /*!< SCARD TCR: FIP (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_AUTOCONV_Pos (5UL) /*!< SCARD TCR: AUTOCONV (Bit 5) */ +#define SCARD_TCR_AUTOCONV_Msk (0x20UL) /*!< SCARD TCR: AUTOCONV (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_PROT_Pos (4UL) /*!< SCARD TCR: PROT (Bit 4) */ +#define SCARD_TCR_PROT_Msk (0x10UL) /*!< SCARD TCR: PROT (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_TR_Pos (3UL) /*!< SCARD TCR: TR (Bit 3) */ +#define SCARD_TCR_TR_Msk (0x8UL) /*!< SCARD TCR: TR (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_LCT_Pos (2UL) /*!< SCARD TCR: LCT (Bit 2) */ +#define SCARD_TCR_LCT_Msk (0x4UL) /*!< SCARD TCR: LCT (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_SS_Pos (1UL) /*!< SCARD TCR: SS (Bit 1) */ +#define SCARD_TCR_SS_Msk (0x2UL) /*!< SCARD TCR: SS (Bitfield-Mask: 0x01) */ +#define SCARD_TCR_CONV_Pos (0UL) /*!< SCARD TCR: CONV (Bit 0) */ +#define SCARD_TCR_CONV_Msk (0x1UL) /*!< SCARD TCR: CONV (Bitfield-Mask: 0x01) */ +/* ========================================================== UCR ========================================================== */ +#define SCARD_UCR_RETXEN_Pos (3UL) /*!< SCARD UCR: RETXEN (Bit 3) */ +#define SCARD_UCR_RETXEN_Msk (0x8UL) /*!< SCARD UCR: RETXEN (Bitfield-Mask: 0x01) */ +#define SCARD_UCR_RSTIN_Pos (2UL) /*!< SCARD UCR: RSTIN (Bit 2) */ +#define SCARD_UCR_RSTIN_Msk (0x4UL) /*!< SCARD UCR: RSTIN (Bitfield-Mask: 0x01) */ +#define SCARD_UCR_RIU_Pos (1UL) /*!< SCARD UCR: RIU (Bit 1) */ +#define SCARD_UCR_RIU_Msk (0x2UL) /*!< SCARD UCR: RIU (Bitfield-Mask: 0x01) */ +#define SCARD_UCR_CST_Pos (0UL) /*!< SCARD UCR: CST (Bit 0) */ +#define SCARD_UCR_CST_Msk (0x1UL) /*!< SCARD UCR: CST (Bitfield-Mask: 0x01) */ +/* ========================================================== DR =========================================================== */ +#define SCARD_DR_DR_Pos (0UL) /*!< SCARD DR: DR (Bit 0) */ +#define SCARD_DR_DR_Msk (0xffUL) /*!< SCARD DR: DR (Bitfield-Mask: 0xff) */ +/* ========================================================= BPRL ========================================================== */ +#define SCARD_BPRL_BPRL_Pos (0UL) /*!< SCARD BPRL: BPRL (Bit 0) */ +#define SCARD_BPRL_BPRL_Msk (0xffUL) /*!< SCARD BPRL: BPRL (Bitfield-Mask: 0xff) */ +/* ========================================================= BPRH ========================================================== */ +#define SCARD_BPRH_BPRH_Pos (0UL) /*!< SCARD BPRH: BPRH (Bit 0) */ +#define SCARD_BPRH_BPRH_Msk (0xfUL) /*!< SCARD BPRH: BPRH (Bitfield-Mask: 0x0f) */ +/* ========================================================= UCR1 ========================================================== */ +#define SCARD_UCR1_ENLASTB_Pos (5UL) /*!< SCARD UCR1: ENLASTB (Bit 5) */ +#define SCARD_UCR1_ENLASTB_Msk (0x20UL) /*!< SCARD UCR1: ENLASTB (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_CLKIOV_Pos (4UL) /*!< SCARD UCR1: CLKIOV (Bit 4) */ +#define SCARD_UCR1_CLKIOV_Msk (0x10UL) /*!< SCARD UCR1: CLKIOV (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_T1PAREN_Pos (3UL) /*!< SCARD UCR1: T1PAREN (Bit 3) */ +#define SCARD_UCR1_T1PAREN_Msk (0x8UL) /*!< SCARD UCR1: T1PAREN (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_STSP_Pos (2UL) /*!< SCARD UCR1: STSP (Bit 2) */ +#define SCARD_UCR1_STSP_Msk (0x4UL) /*!< SCARD UCR1: STSP (Bitfield-Mask: 0x01) */ +#define SCARD_UCR1_PR_Pos (0UL) /*!< SCARD UCR1: PR (Bit 0) */ +#define SCARD_UCR1_PR_Msk (0x1UL) /*!< SCARD UCR1: PR (Bitfield-Mask: 0x01) */ +/* ========================================================== SR1 ========================================================== */ +#define SCARD_SR1_IDLE_Pos (3UL) /*!< SCARD SR1: IDLE (Bit 3) */ +#define SCARD_SR1_IDLE_Msk (0x8UL) /*!< SCARD SR1: IDLE (Bitfield-Mask: 0x01) */ +#define SCARD_SR1_SYNCEND_Pos (2UL) /*!< SCARD SR1: SYNCEND (Bit 2) */ +#define SCARD_SR1_SYNCEND_Msk (0x4UL) /*!< SCARD SR1: SYNCEND (Bitfield-Mask: 0x01) */ +#define SCARD_SR1_PRL_Pos (1UL) /*!< SCARD SR1: PRL (Bit 1) */ +#define SCARD_SR1_PRL_Msk (0x2UL) /*!< SCARD SR1: PRL (Bitfield-Mask: 0x01) */ +#define SCARD_SR1_ECNTOVER_Pos (0UL) /*!< SCARD SR1: ECNTOVER (Bit 0) */ +#define SCARD_SR1_ECNTOVER_Msk (0x1UL) /*!< SCARD SR1: ECNTOVER (Bitfield-Mask: 0x01) */ +/* ========================================================= IER1 ========================================================== */ +#define SCARD_IER1_SYNCENDEN_Pos (2UL) /*!< SCARD IER1: SYNCENDEN (Bit 2) */ +#define SCARD_IER1_SYNCENDEN_Msk (0x4UL) /*!< SCARD IER1: SYNCENDEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER1_PRLEN_Pos (1UL) /*!< SCARD IER1: PRLEN (Bit 1) */ +#define SCARD_IER1_PRLEN_Msk (0x2UL) /*!< SCARD IER1: PRLEN (Bitfield-Mask: 0x01) */ +#define SCARD_IER1_ECNTOVEREN_Pos (0UL) /*!< SCARD IER1: ECNTOVEREN (Bit 0) */ +#define SCARD_IER1_ECNTOVEREN_Msk (0x1UL) /*!< SCARD IER1: ECNTOVEREN (Bitfield-Mask: 0x01) */ +/* ========================================================= ECNTL ========================================================= */ +#define SCARD_ECNTL_ECNTL_Pos (0UL) /*!< SCARD ECNTL: ECNTL (Bit 0) */ +#define SCARD_ECNTL_ECNTL_Msk (0xffUL) /*!< SCARD ECNTL: ECNTL (Bitfield-Mask: 0xff) */ +/* ========================================================= ECNTH ========================================================= */ +#define SCARD_ECNTH_ECNTH_Pos (0UL) /*!< SCARD ECNTH: ECNTH (Bit 0) */ +#define SCARD_ECNTH_ECNTH_Msk (0xffUL) /*!< SCARD ECNTH: ECNTH (Bitfield-Mask: 0xff) */ +/* ========================================================== GTR ========================================================== */ +#define SCARD_GTR_GTR_Pos (0UL) /*!< SCARD GTR: GTR (Bit 0) */ +#define SCARD_GTR_GTR_Msk (0xffUL) /*!< SCARD GTR: GTR (Bitfield-Mask: 0xff) */ +/* ======================================================== RETXCNT ======================================================== */ +#define SCARD_RETXCNT_RETXCNT_Pos (0UL) /*!< SCARD RETXCNT: RETXCNT (Bit 0) */ +#define SCARD_RETXCNT_RETXCNT_Msk (0xfUL) /*!< SCARD RETXCNT: RETXCNT (Bitfield-Mask: 0x0f) */ +/* ====================================================== RETXCNTRMI ======================================================= */ +#define SCARD_RETXCNTRMI_RETXCNTRMI_Pos (0UL) /*!< SCARD RETXCNTRMI: RETXCNTRMI (Bit 0) */ +#define SCARD_RETXCNTRMI_RETXCNTRMI_Msk (0xfUL) /*!< SCARD RETXCNTRMI: RETXCNTRMI (Bitfield-Mask: 0x0f) */ +/* ======================================================== CLKCTRL ======================================================== */ +#define SCARD_CLKCTRL_APBCLKEN_Pos (1UL) /*!< SCARD CLKCTRL: APBCLKEN (Bit 1) */ +#define SCARD_CLKCTRL_APBCLKEN_Msk (0x2UL) /*!< SCARD CLKCTRL: APBCLKEN (Bitfield-Mask: 0x01) */ +#define SCARD_CLKCTRL_CLKEN_Pos (0UL) /*!< SCARD CLKCTRL: CLKEN (Bit 0) */ +#define SCARD_CLKCTRL_CLKEN_Msk (0x1UL) /*!< SCARD CLKCTRL: CLKEN (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ SECURITY ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CTRL ========================================================== */ +#define SECURITY_CTRL_CRCERROR_Pos (31UL) /*!< SECURITY CTRL: CRCERROR (Bit 31) */ +#define SECURITY_CTRL_CRCERROR_Msk (0x80000000UL) /*!< SECURITY CTRL: CRCERROR (Bitfield-Mask: 0x01) */ +#define SECURITY_CTRL_FUNCTION_Pos (4UL) /*!< SECURITY CTRL: FUNCTION (Bit 4) */ +#define SECURITY_CTRL_FUNCTION_Msk (0xf0UL) /*!< SECURITY CTRL: FUNCTION (Bitfield-Mask: 0x0f) */ +#define SECURITY_CTRL_ENABLE_Pos (0UL) /*!< SECURITY CTRL: ENABLE (Bit 0) */ +#define SECURITY_CTRL_ENABLE_Msk (0x1UL) /*!< SECURITY CTRL: ENABLE (Bitfield-Mask: 0x01) */ +/* ======================================================== SRCADDR ======================================================== */ +#define SECURITY_SRCADDR_ADDR_Pos (0UL) /*!< SECURITY SRCADDR: ADDR (Bit 0) */ +#define SECURITY_SRCADDR_ADDR_Msk (0xffffffffUL) /*!< SECURITY SRCADDR: ADDR (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== LEN ========================================================== */ +#define SECURITY_LEN_LEN_Pos (2UL) /*!< SECURITY LEN: LEN (Bit 2) */ +#define SECURITY_LEN_LEN_Msk (0xfffffcUL) /*!< SECURITY LEN: LEN (Bitfield-Mask: 0x3fffff) */ +/* ======================================================== RESULT ========================================================= */ +#define SECURITY_RESULT_CRC_Pos (0UL) /*!< SECURITY RESULT: CRC (Bit 0) */ +#define SECURITY_RESULT_CRC_Msk (0xffffffffUL) /*!< SECURITY RESULT: CRC (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= LOCKCTRL ======================================================== */ +#define SECURITY_LOCKCTRL_SELECT_Pos (0UL) /*!< SECURITY LOCKCTRL: SELECT (Bit 0) */ +#define SECURITY_LOCKCTRL_SELECT_Msk (0xffUL) /*!< SECURITY LOCKCTRL: SELECT (Bitfield-Mask: 0xff) */ +/* ======================================================= LOCKSTAT ======================================================== */ +#define SECURITY_LOCKSTAT_STATUS_Pos (0UL) /*!< SECURITY LOCKSTAT: STATUS (Bit 0) */ +#define SECURITY_LOCKSTAT_STATUS_Msk (0xffffffffUL) /*!< SECURITY LOCKSTAT: STATUS (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= KEY0 ========================================================== */ +#define SECURITY_KEY0_KEY0_Pos (0UL) /*!< SECURITY KEY0: KEY0 (Bit 0) */ +#define SECURITY_KEY0_KEY0_Msk (0xffffffffUL) /*!< SECURITY KEY0: KEY0 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= KEY1 ========================================================== */ +#define SECURITY_KEY1_KEY1_Pos (0UL) /*!< SECURITY KEY1: KEY1 (Bit 0) */ +#define SECURITY_KEY1_KEY1_Msk (0xffffffffUL) /*!< SECURITY KEY1: KEY1 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= KEY2 ========================================================== */ +#define SECURITY_KEY2_KEY2_Pos (0UL) /*!< SECURITY KEY2: KEY2 (Bit 0) */ +#define SECURITY_KEY2_KEY2_Msk (0xffffffffUL) /*!< SECURITY KEY2: KEY2 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= KEY3 ========================================================== */ +#define SECURITY_KEY3_KEY3_Pos (0UL) /*!< SECURITY KEY3: KEY3 (Bit 0) */ +#define SECURITY_KEY3_KEY3_Msk (0xffffffffUL) /*!< SECURITY KEY3: KEY3 (Bitfield-Mask: 0xffffffff) */ + + +/* =========================================================================================================================== */ +/* ================ UART0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== DR =========================================================== */ +#define UART0_DR_OEDATA_Pos (11UL) /*!< UART0 DR: OEDATA (Bit 11) */ +#define UART0_DR_OEDATA_Msk (0x800UL) /*!< UART0 DR: OEDATA (Bitfield-Mask: 0x01) */ +#define UART0_DR_BEDATA_Pos (10UL) /*!< UART0 DR: BEDATA (Bit 10) */ +#define UART0_DR_BEDATA_Msk (0x400UL) /*!< UART0 DR: BEDATA (Bitfield-Mask: 0x01) */ +#define UART0_DR_PEDATA_Pos (9UL) /*!< UART0 DR: PEDATA (Bit 9) */ +#define UART0_DR_PEDATA_Msk (0x200UL) /*!< UART0 DR: PEDATA (Bitfield-Mask: 0x01) */ +#define UART0_DR_FEDATA_Pos (8UL) /*!< UART0 DR: FEDATA (Bit 8) */ +#define UART0_DR_FEDATA_Msk (0x100UL) /*!< UART0 DR: FEDATA (Bitfield-Mask: 0x01) */ +#define UART0_DR_DATA_Pos (0UL) /*!< UART0 DR: DATA (Bit 0) */ +#define UART0_DR_DATA_Msk (0xffUL) /*!< UART0 DR: DATA (Bitfield-Mask: 0xff) */ +/* ========================================================== RSR ========================================================== */ +#define UART0_RSR_OESTAT_Pos (3UL) /*!< UART0 RSR: OESTAT (Bit 3) */ +#define UART0_RSR_OESTAT_Msk (0x8UL) /*!< UART0 RSR: OESTAT (Bitfield-Mask: 0x01) */ +#define UART0_RSR_BESTAT_Pos (2UL) /*!< UART0 RSR: BESTAT (Bit 2) */ +#define UART0_RSR_BESTAT_Msk (0x4UL) /*!< UART0 RSR: BESTAT (Bitfield-Mask: 0x01) */ +#define UART0_RSR_PESTAT_Pos (1UL) /*!< UART0 RSR: PESTAT (Bit 1) */ +#define UART0_RSR_PESTAT_Msk (0x2UL) /*!< UART0 RSR: PESTAT (Bitfield-Mask: 0x01) */ +#define UART0_RSR_FESTAT_Pos (0UL) /*!< UART0 RSR: FESTAT (Bit 0) */ +#define UART0_RSR_FESTAT_Msk (0x1UL) /*!< UART0 RSR: FESTAT (Bitfield-Mask: 0x01) */ +/* ========================================================== FR =========================================================== */ +#define UART0_FR_TXBUSY_Pos (8UL) /*!< UART0 FR: TXBUSY (Bit 8) */ +#define UART0_FR_TXBUSY_Msk (0x100UL) /*!< UART0 FR: TXBUSY (Bitfield-Mask: 0x01) */ +#define UART0_FR_TXFE_Pos (7UL) /*!< UART0 FR: TXFE (Bit 7) */ +#define UART0_FR_TXFE_Msk (0x80UL) /*!< UART0 FR: TXFE (Bitfield-Mask: 0x01) */ +#define UART0_FR_RXFF_Pos (6UL) /*!< UART0 FR: RXFF (Bit 6) */ +#define UART0_FR_RXFF_Msk (0x40UL) /*!< UART0 FR: RXFF (Bitfield-Mask: 0x01) */ +#define UART0_FR_TXFF_Pos (5UL) /*!< UART0 FR: TXFF (Bit 5) */ +#define UART0_FR_TXFF_Msk (0x20UL) /*!< UART0 FR: TXFF (Bitfield-Mask: 0x01) */ +#define UART0_FR_RXFE_Pos (4UL) /*!< UART0 FR: RXFE (Bit 4) */ +#define UART0_FR_RXFE_Msk (0x10UL) /*!< UART0 FR: RXFE (Bitfield-Mask: 0x01) */ +#define UART0_FR_BUSY_Pos (3UL) /*!< UART0 FR: BUSY (Bit 3) */ +#define UART0_FR_BUSY_Msk (0x8UL) /*!< UART0 FR: BUSY (Bitfield-Mask: 0x01) */ +#define UART0_FR_DCD_Pos (2UL) /*!< UART0 FR: DCD (Bit 2) */ +#define UART0_FR_DCD_Msk (0x4UL) /*!< UART0 FR: DCD (Bitfield-Mask: 0x01) */ +#define UART0_FR_DSR_Pos (1UL) /*!< UART0 FR: DSR (Bit 1) */ +#define UART0_FR_DSR_Msk (0x2UL) /*!< UART0 FR: DSR (Bitfield-Mask: 0x01) */ +#define UART0_FR_CTS_Pos (0UL) /*!< UART0 FR: CTS (Bit 0) */ +#define UART0_FR_CTS_Msk (0x1UL) /*!< UART0 FR: CTS (Bitfield-Mask: 0x01) */ +/* ========================================================= ILPR ========================================================== */ +#define UART0_ILPR_ILPDVSR_Pos (0UL) /*!< UART0 ILPR: ILPDVSR (Bit 0) */ +#define UART0_ILPR_ILPDVSR_Msk (0xffUL) /*!< UART0 ILPR: ILPDVSR (Bitfield-Mask: 0xff) */ +/* ========================================================= IBRD ========================================================== */ +#define UART0_IBRD_DIVINT_Pos (0UL) /*!< UART0 IBRD: DIVINT (Bit 0) */ +#define UART0_IBRD_DIVINT_Msk (0xffffUL) /*!< UART0 IBRD: DIVINT (Bitfield-Mask: 0xffff) */ +/* ========================================================= FBRD ========================================================== */ +#define UART0_FBRD_DIVFRAC_Pos (0UL) /*!< UART0 FBRD: DIVFRAC (Bit 0) */ +#define UART0_FBRD_DIVFRAC_Msk (0x3fUL) /*!< UART0 FBRD: DIVFRAC (Bitfield-Mask: 0x3f) */ +/* ========================================================= LCRH ========================================================== */ +#define UART0_LCRH_SPS_Pos (7UL) /*!< UART0 LCRH: SPS (Bit 7) */ +#define UART0_LCRH_SPS_Msk (0x80UL) /*!< UART0 LCRH: SPS (Bitfield-Mask: 0x01) */ +#define UART0_LCRH_WLEN_Pos (5UL) /*!< UART0 LCRH: WLEN (Bit 5) */ +#define UART0_LCRH_WLEN_Msk (0x60UL) /*!< UART0 LCRH: WLEN (Bitfield-Mask: 0x03) */ +#define UART0_LCRH_FEN_Pos (4UL) /*!< UART0 LCRH: FEN (Bit 4) */ +#define UART0_LCRH_FEN_Msk (0x10UL) /*!< UART0 LCRH: FEN (Bitfield-Mask: 0x01) */ +#define UART0_LCRH_STP2_Pos (3UL) /*!< UART0 LCRH: STP2 (Bit 3) */ +#define UART0_LCRH_STP2_Msk (0x8UL) /*!< UART0 LCRH: STP2 (Bitfield-Mask: 0x01) */ +#define UART0_LCRH_EPS_Pos (2UL) /*!< UART0 LCRH: EPS (Bit 2) */ +#define UART0_LCRH_EPS_Msk (0x4UL) /*!< UART0 LCRH: EPS (Bitfield-Mask: 0x01) */ +#define UART0_LCRH_PEN_Pos (1UL) /*!< UART0 LCRH: PEN (Bit 1) */ +#define UART0_LCRH_PEN_Msk (0x2UL) /*!< UART0 LCRH: PEN (Bitfield-Mask: 0x01) */ +#define UART0_LCRH_BRK_Pos (0UL) /*!< UART0 LCRH: BRK (Bit 0) */ +#define UART0_LCRH_BRK_Msk (0x1UL) /*!< UART0 LCRH: BRK (Bitfield-Mask: 0x01) */ +/* ========================================================== CR =========================================================== */ +#define UART0_CR_CTSEN_Pos (15UL) /*!< UART0 CR: CTSEN (Bit 15) */ +#define UART0_CR_CTSEN_Msk (0x8000UL) /*!< UART0 CR: CTSEN (Bitfield-Mask: 0x01) */ +#define UART0_CR_RTSEN_Pos (14UL) /*!< UART0 CR: RTSEN (Bit 14) */ +#define UART0_CR_RTSEN_Msk (0x4000UL) /*!< UART0 CR: RTSEN (Bitfield-Mask: 0x01) */ +#define UART0_CR_OUT2_Pos (13UL) /*!< UART0 CR: OUT2 (Bit 13) */ +#define UART0_CR_OUT2_Msk (0x2000UL) /*!< UART0 CR: OUT2 (Bitfield-Mask: 0x01) */ +#define UART0_CR_OUT1_Pos (12UL) /*!< UART0 CR: OUT1 (Bit 12) */ +#define UART0_CR_OUT1_Msk (0x1000UL) /*!< UART0 CR: OUT1 (Bitfield-Mask: 0x01) */ +#define UART0_CR_RTS_Pos (11UL) /*!< UART0 CR: RTS (Bit 11) */ +#define UART0_CR_RTS_Msk (0x800UL) /*!< UART0 CR: RTS (Bitfield-Mask: 0x01) */ +#define UART0_CR_DTR_Pos (10UL) /*!< UART0 CR: DTR (Bit 10) */ +#define UART0_CR_DTR_Msk (0x400UL) /*!< UART0 CR: DTR (Bitfield-Mask: 0x01) */ +#define UART0_CR_RXE_Pos (9UL) /*!< UART0 CR: RXE (Bit 9) */ +#define UART0_CR_RXE_Msk (0x200UL) /*!< UART0 CR: RXE (Bitfield-Mask: 0x01) */ +#define UART0_CR_TXE_Pos (8UL) /*!< UART0 CR: TXE (Bit 8) */ +#define UART0_CR_TXE_Msk (0x100UL) /*!< UART0 CR: TXE (Bitfield-Mask: 0x01) */ +#define UART0_CR_LBE_Pos (7UL) /*!< UART0 CR: LBE (Bit 7) */ +#define UART0_CR_LBE_Msk (0x80UL) /*!< UART0 CR: LBE (Bitfield-Mask: 0x01) */ +#define UART0_CR_CLKSEL_Pos (4UL) /*!< UART0 CR: CLKSEL (Bit 4) */ +#define UART0_CR_CLKSEL_Msk (0x70UL) /*!< UART0 CR: CLKSEL (Bitfield-Mask: 0x07) */ +#define UART0_CR_CLKEN_Pos (3UL) /*!< UART0 CR: CLKEN (Bit 3) */ +#define UART0_CR_CLKEN_Msk (0x8UL) /*!< UART0 CR: CLKEN (Bitfield-Mask: 0x01) */ +#define UART0_CR_SIRLP_Pos (2UL) /*!< UART0 CR: SIRLP (Bit 2) */ +#define UART0_CR_SIRLP_Msk (0x4UL) /*!< UART0 CR: SIRLP (Bitfield-Mask: 0x01) */ +#define UART0_CR_SIREN_Pos (1UL) /*!< UART0 CR: SIREN (Bit 1) */ +#define UART0_CR_SIREN_Msk (0x2UL) /*!< UART0 CR: SIREN (Bitfield-Mask: 0x01) */ +#define UART0_CR_UARTEN_Pos (0UL) /*!< UART0 CR: UARTEN (Bit 0) */ +#define UART0_CR_UARTEN_Msk (0x1UL) /*!< UART0 CR: UARTEN (Bitfield-Mask: 0x01) */ +/* ========================================================= IFLS ========================================================== */ +#define UART0_IFLS_RXIFLSEL_Pos (3UL) /*!< UART0 IFLS: RXIFLSEL (Bit 3) */ +#define UART0_IFLS_RXIFLSEL_Msk (0x38UL) /*!< UART0 IFLS: RXIFLSEL (Bitfield-Mask: 0x07) */ +#define UART0_IFLS_TXIFLSEL_Pos (0UL) /*!< UART0 IFLS: TXIFLSEL (Bit 0) */ +#define UART0_IFLS_TXIFLSEL_Msk (0x7UL) /*!< UART0 IFLS: TXIFLSEL (Bitfield-Mask: 0x07) */ +/* ========================================================== IER ========================================================== */ +#define UART0_IER_OEIM_Pos (10UL) /*!< UART0 IER: OEIM (Bit 10) */ +#define UART0_IER_OEIM_Msk (0x400UL) /*!< UART0 IER: OEIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_BEIM_Pos (9UL) /*!< UART0 IER: BEIM (Bit 9) */ +#define UART0_IER_BEIM_Msk (0x200UL) /*!< UART0 IER: BEIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_PEIM_Pos (8UL) /*!< UART0 IER: PEIM (Bit 8) */ +#define UART0_IER_PEIM_Msk (0x100UL) /*!< UART0 IER: PEIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_FEIM_Pos (7UL) /*!< UART0 IER: FEIM (Bit 7) */ +#define UART0_IER_FEIM_Msk (0x80UL) /*!< UART0 IER: FEIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_RTIM_Pos (6UL) /*!< UART0 IER: RTIM (Bit 6) */ +#define UART0_IER_RTIM_Msk (0x40UL) /*!< UART0 IER: RTIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_TXIM_Pos (5UL) /*!< UART0 IER: TXIM (Bit 5) */ +#define UART0_IER_TXIM_Msk (0x20UL) /*!< UART0 IER: TXIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_RXIM_Pos (4UL) /*!< UART0 IER: RXIM (Bit 4) */ +#define UART0_IER_RXIM_Msk (0x10UL) /*!< UART0 IER: RXIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_DSRMIM_Pos (3UL) /*!< UART0 IER: DSRMIM (Bit 3) */ +#define UART0_IER_DSRMIM_Msk (0x8UL) /*!< UART0 IER: DSRMIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_DCDMIM_Pos (2UL) /*!< UART0 IER: DCDMIM (Bit 2) */ +#define UART0_IER_DCDMIM_Msk (0x4UL) /*!< UART0 IER: DCDMIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_CTSMIM_Pos (1UL) /*!< UART0 IER: CTSMIM (Bit 1) */ +#define UART0_IER_CTSMIM_Msk (0x2UL) /*!< UART0 IER: CTSMIM (Bitfield-Mask: 0x01) */ +#define UART0_IER_TXCMPMIM_Pos (0UL) /*!< UART0 IER: TXCMPMIM (Bit 0) */ +#define UART0_IER_TXCMPMIM_Msk (0x1UL) /*!< UART0 IER: TXCMPMIM (Bitfield-Mask: 0x01) */ +/* ========================================================== IES ========================================================== */ +#define UART0_IES_OERIS_Pos (10UL) /*!< UART0 IES: OERIS (Bit 10) */ +#define UART0_IES_OERIS_Msk (0x400UL) /*!< UART0 IES: OERIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_BERIS_Pos (9UL) /*!< UART0 IES: BERIS (Bit 9) */ +#define UART0_IES_BERIS_Msk (0x200UL) /*!< UART0 IES: BERIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_PERIS_Pos (8UL) /*!< UART0 IES: PERIS (Bit 8) */ +#define UART0_IES_PERIS_Msk (0x100UL) /*!< UART0 IES: PERIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_FERIS_Pos (7UL) /*!< UART0 IES: FERIS (Bit 7) */ +#define UART0_IES_FERIS_Msk (0x80UL) /*!< UART0 IES: FERIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_RTRIS_Pos (6UL) /*!< UART0 IES: RTRIS (Bit 6) */ +#define UART0_IES_RTRIS_Msk (0x40UL) /*!< UART0 IES: RTRIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_TXRIS_Pos (5UL) /*!< UART0 IES: TXRIS (Bit 5) */ +#define UART0_IES_TXRIS_Msk (0x20UL) /*!< UART0 IES: TXRIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_RXRIS_Pos (4UL) /*!< UART0 IES: RXRIS (Bit 4) */ +#define UART0_IES_RXRIS_Msk (0x10UL) /*!< UART0 IES: RXRIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_DSRMRIS_Pos (3UL) /*!< UART0 IES: DSRMRIS (Bit 3) */ +#define UART0_IES_DSRMRIS_Msk (0x8UL) /*!< UART0 IES: DSRMRIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_DCDMRIS_Pos (2UL) /*!< UART0 IES: DCDMRIS (Bit 2) */ +#define UART0_IES_DCDMRIS_Msk (0x4UL) /*!< UART0 IES: DCDMRIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_CTSMRIS_Pos (1UL) /*!< UART0 IES: CTSMRIS (Bit 1) */ +#define UART0_IES_CTSMRIS_Msk (0x2UL) /*!< UART0 IES: CTSMRIS (Bitfield-Mask: 0x01) */ +#define UART0_IES_TXCMPMRIS_Pos (0UL) /*!< UART0 IES: TXCMPMRIS (Bit 0) */ +#define UART0_IES_TXCMPMRIS_Msk (0x1UL) /*!< UART0 IES: TXCMPMRIS (Bitfield-Mask: 0x01) */ +/* ========================================================== MIS ========================================================== */ +#define UART0_MIS_OEMIS_Pos (10UL) /*!< UART0 MIS: OEMIS (Bit 10) */ +#define UART0_MIS_OEMIS_Msk (0x400UL) /*!< UART0 MIS: OEMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_BEMIS_Pos (9UL) /*!< UART0 MIS: BEMIS (Bit 9) */ +#define UART0_MIS_BEMIS_Msk (0x200UL) /*!< UART0 MIS: BEMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_PEMIS_Pos (8UL) /*!< UART0 MIS: PEMIS (Bit 8) */ +#define UART0_MIS_PEMIS_Msk (0x100UL) /*!< UART0 MIS: PEMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_FEMIS_Pos (7UL) /*!< UART0 MIS: FEMIS (Bit 7) */ +#define UART0_MIS_FEMIS_Msk (0x80UL) /*!< UART0 MIS: FEMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_RTMIS_Pos (6UL) /*!< UART0 MIS: RTMIS (Bit 6) */ +#define UART0_MIS_RTMIS_Msk (0x40UL) /*!< UART0 MIS: RTMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_TXMIS_Pos (5UL) /*!< UART0 MIS: TXMIS (Bit 5) */ +#define UART0_MIS_TXMIS_Msk (0x20UL) /*!< UART0 MIS: TXMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_RXMIS_Pos (4UL) /*!< UART0 MIS: RXMIS (Bit 4) */ +#define UART0_MIS_RXMIS_Msk (0x10UL) /*!< UART0 MIS: RXMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_DSRMMIS_Pos (3UL) /*!< UART0 MIS: DSRMMIS (Bit 3) */ +#define UART0_MIS_DSRMMIS_Msk (0x8UL) /*!< UART0 MIS: DSRMMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_DCDMMIS_Pos (2UL) /*!< UART0 MIS: DCDMMIS (Bit 2) */ +#define UART0_MIS_DCDMMIS_Msk (0x4UL) /*!< UART0 MIS: DCDMMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_CTSMMIS_Pos (1UL) /*!< UART0 MIS: CTSMMIS (Bit 1) */ +#define UART0_MIS_CTSMMIS_Msk (0x2UL) /*!< UART0 MIS: CTSMMIS (Bitfield-Mask: 0x01) */ +#define UART0_MIS_TXCMPMMIS_Pos (0UL) /*!< UART0 MIS: TXCMPMMIS (Bit 0) */ +#define UART0_MIS_TXCMPMMIS_Msk (0x1UL) /*!< UART0 MIS: TXCMPMMIS (Bitfield-Mask: 0x01) */ +/* ========================================================== IEC ========================================================== */ +#define UART0_IEC_OEIC_Pos (10UL) /*!< UART0 IEC: OEIC (Bit 10) */ +#define UART0_IEC_OEIC_Msk (0x400UL) /*!< UART0 IEC: OEIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_BEIC_Pos (9UL) /*!< UART0 IEC: BEIC (Bit 9) */ +#define UART0_IEC_BEIC_Msk (0x200UL) /*!< UART0 IEC: BEIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_PEIC_Pos (8UL) /*!< UART0 IEC: PEIC (Bit 8) */ +#define UART0_IEC_PEIC_Msk (0x100UL) /*!< UART0 IEC: PEIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_FEIC_Pos (7UL) /*!< UART0 IEC: FEIC (Bit 7) */ +#define UART0_IEC_FEIC_Msk (0x80UL) /*!< UART0 IEC: FEIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_RTIC_Pos (6UL) /*!< UART0 IEC: RTIC (Bit 6) */ +#define UART0_IEC_RTIC_Msk (0x40UL) /*!< UART0 IEC: RTIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_TXIC_Pos (5UL) /*!< UART0 IEC: TXIC (Bit 5) */ +#define UART0_IEC_TXIC_Msk (0x20UL) /*!< UART0 IEC: TXIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_RXIC_Pos (4UL) /*!< UART0 IEC: RXIC (Bit 4) */ +#define UART0_IEC_RXIC_Msk (0x10UL) /*!< UART0 IEC: RXIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_DSRMIC_Pos (3UL) /*!< UART0 IEC: DSRMIC (Bit 3) */ +#define UART0_IEC_DSRMIC_Msk (0x8UL) /*!< UART0 IEC: DSRMIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_DCDMIC_Pos (2UL) /*!< UART0 IEC: DCDMIC (Bit 2) */ +#define UART0_IEC_DCDMIC_Msk (0x4UL) /*!< UART0 IEC: DCDMIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_CTSMIC_Pos (1UL) /*!< UART0 IEC: CTSMIC (Bit 1) */ +#define UART0_IEC_CTSMIC_Msk (0x2UL) /*!< UART0 IEC: CTSMIC (Bitfield-Mask: 0x01) */ +#define UART0_IEC_TXCMPMIC_Pos (0UL) /*!< UART0 IEC: TXCMPMIC (Bit 0) */ +#define UART0_IEC_TXCMPMIC_Msk (0x1UL) /*!< UART0 IEC: TXCMPMIC (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ VCOMP ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +#define VCOMP_CFG_LVLSEL_Pos (16UL) /*!< VCOMP CFG: LVLSEL (Bit 16) */ +#define VCOMP_CFG_LVLSEL_Msk (0xf0000UL) /*!< VCOMP CFG: LVLSEL (Bitfield-Mask: 0x0f) */ +#define VCOMP_CFG_NSEL_Pos (8UL) /*!< VCOMP CFG: NSEL (Bit 8) */ +#define VCOMP_CFG_NSEL_Msk (0x300UL) /*!< VCOMP CFG: NSEL (Bitfield-Mask: 0x03) */ +#define VCOMP_CFG_PSEL_Pos (0UL) /*!< VCOMP CFG: PSEL (Bit 0) */ +#define VCOMP_CFG_PSEL_Msk (0x3UL) /*!< VCOMP CFG: PSEL (Bitfield-Mask: 0x03) */ +/* ========================================================= STAT ========================================================== */ +#define VCOMP_STAT_PWDSTAT_Pos (1UL) /*!< VCOMP STAT: PWDSTAT (Bit 1) */ +#define VCOMP_STAT_PWDSTAT_Msk (0x2UL) /*!< VCOMP STAT: PWDSTAT (Bitfield-Mask: 0x01) */ +#define VCOMP_STAT_CMPOUT_Pos (0UL) /*!< VCOMP STAT: CMPOUT (Bit 0) */ +#define VCOMP_STAT_CMPOUT_Msk (0x1UL) /*!< VCOMP STAT: CMPOUT (Bitfield-Mask: 0x01) */ +/* ======================================================== PWDKEY ========================================================= */ +#define VCOMP_PWDKEY_PWDKEY_Pos (0UL) /*!< VCOMP PWDKEY: PWDKEY (Bit 0) */ +#define VCOMP_PWDKEY_PWDKEY_Msk (0xffffffffUL) /*!< VCOMP PWDKEY: PWDKEY (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= INTEN ========================================================= */ +#define VCOMP_INTEN_OUTHI_Pos (1UL) /*!< VCOMP INTEN: OUTHI (Bit 1) */ +#define VCOMP_INTEN_OUTHI_Msk (0x2UL) /*!< VCOMP INTEN: OUTHI (Bitfield-Mask: 0x01) */ +#define VCOMP_INTEN_OUTLOW_Pos (0UL) /*!< VCOMP INTEN: OUTLOW (Bit 0) */ +#define VCOMP_INTEN_OUTLOW_Msk (0x1UL) /*!< VCOMP INTEN: OUTLOW (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define VCOMP_INTSTAT_OUTHI_Pos (1UL) /*!< VCOMP INTSTAT: OUTHI (Bit 1) */ +#define VCOMP_INTSTAT_OUTHI_Msk (0x2UL) /*!< VCOMP INTSTAT: OUTHI (Bitfield-Mask: 0x01) */ +#define VCOMP_INTSTAT_OUTLOW_Pos (0UL) /*!< VCOMP INTSTAT: OUTLOW (Bit 0) */ +#define VCOMP_INTSTAT_OUTLOW_Msk (0x1UL) /*!< VCOMP INTSTAT: OUTLOW (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define VCOMP_INTCLR_OUTHI_Pos (1UL) /*!< VCOMP INTCLR: OUTHI (Bit 1) */ +#define VCOMP_INTCLR_OUTHI_Msk (0x2UL) /*!< VCOMP INTCLR: OUTHI (Bitfield-Mask: 0x01) */ +#define VCOMP_INTCLR_OUTLOW_Pos (0UL) /*!< VCOMP INTCLR: OUTLOW (Bit 0) */ +#define VCOMP_INTCLR_OUTLOW_Msk (0x1UL) /*!< VCOMP INTCLR: OUTLOW (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define VCOMP_INTSET_OUTHI_Pos (1UL) /*!< VCOMP INTSET: OUTHI (Bit 1) */ +#define VCOMP_INTSET_OUTHI_Msk (0x2UL) /*!< VCOMP INTSET: OUTHI (Bitfield-Mask: 0x01) */ +#define VCOMP_INTSET_OUTLOW_Pos (0UL) /*!< VCOMP INTSET: OUTLOW (Bit 0) */ +#define VCOMP_INTSET_OUTLOW_Msk (0x1UL) /*!< VCOMP INTSET: OUTLOW (Bitfield-Mask: 0x01) */ + + +/* =========================================================================================================================== */ +/* ================ WDT ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +#define WDT_CFG_CLKSEL_Pos (24UL) /*!< WDT CFG: CLKSEL (Bit 24) */ +#define WDT_CFG_CLKSEL_Msk (0x7000000UL) /*!< WDT CFG: CLKSEL (Bitfield-Mask: 0x07) */ +#define WDT_CFG_INTVAL_Pos (16UL) /*!< WDT CFG: INTVAL (Bit 16) */ +#define WDT_CFG_INTVAL_Msk (0xff0000UL) /*!< WDT CFG: INTVAL (Bitfield-Mask: 0xff) */ +#define WDT_CFG_RESVAL_Pos (8UL) /*!< WDT CFG: RESVAL (Bit 8) */ +#define WDT_CFG_RESVAL_Msk (0xff00UL) /*!< WDT CFG: RESVAL (Bitfield-Mask: 0xff) */ +#define WDT_CFG_RESEN_Pos (2UL) /*!< WDT CFG: RESEN (Bit 2) */ +#define WDT_CFG_RESEN_Msk (0x4UL) /*!< WDT CFG: RESEN (Bitfield-Mask: 0x01) */ +#define WDT_CFG_INTEN_Pos (1UL) /*!< WDT CFG: INTEN (Bit 1) */ +#define WDT_CFG_INTEN_Msk (0x2UL) /*!< WDT CFG: INTEN (Bitfield-Mask: 0x01) */ +#define WDT_CFG_WDTEN_Pos (0UL) /*!< WDT CFG: WDTEN (Bit 0) */ +#define WDT_CFG_WDTEN_Msk (0x1UL) /*!< WDT CFG: WDTEN (Bitfield-Mask: 0x01) */ +/* ========================================================= RSTRT ========================================================= */ +#define WDT_RSTRT_RSTRT_Pos (0UL) /*!< WDT RSTRT: RSTRT (Bit 0) */ +#define WDT_RSTRT_RSTRT_Msk (0xffUL) /*!< WDT RSTRT: RSTRT (Bitfield-Mask: 0xff) */ +/* ========================================================= LOCK ========================================================== */ +#define WDT_LOCK_LOCK_Pos (0UL) /*!< WDT LOCK: LOCK (Bit 0) */ +#define WDT_LOCK_LOCK_Msk (0xffUL) /*!< WDT LOCK: LOCK (Bitfield-Mask: 0xff) */ +/* ========================================================= COUNT ========================================================= */ +#define WDT_COUNT_COUNT_Pos (0UL) /*!< WDT COUNT: COUNT (Bit 0) */ +#define WDT_COUNT_COUNT_Msk (0xffUL) /*!< WDT COUNT: COUNT (Bitfield-Mask: 0xff) */ +/* ========================================================= INTEN ========================================================= */ +#define WDT_INTEN_WDTINT_Pos (0UL) /*!< WDT INTEN: WDTINT (Bit 0) */ +#define WDT_INTEN_WDTINT_Msk (0x1UL) /*!< WDT INTEN: WDTINT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTAT ======================================================== */ +#define WDT_INTSTAT_WDTINT_Pos (0UL) /*!< WDT INTSTAT: WDTINT (Bit 0) */ +#define WDT_INTSTAT_WDTINT_Msk (0x1UL) /*!< WDT INTSTAT: WDTINT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTCLR ========================================================= */ +#define WDT_INTCLR_WDTINT_Pos (0UL) /*!< WDT INTCLR: WDTINT (Bit 0) */ +#define WDT_INTCLR_WDTINT_Msk (0x1UL) /*!< WDT INTCLR: WDTINT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSET ========================================================= */ +#define WDT_INTSET_WDTINT_Pos (0UL) /*!< WDT INTSET: WDTINT (Bit 0) */ +#define WDT_INTSET_WDTINT_Msk (0x1UL) /*!< WDT INTSET: WDTINT (Bitfield-Mask: 0x01) */ + +/** @} */ /* End of group PosMask_peripherals */ + + +/* =========================================================================================================================== */ +/* ================ Enumerated Values Peripheral Section ================ */ +/* =========================================================================================================================== */ + + +/** @addtogroup EnumValue_peripherals + * @{ + */ + + + +/* =========================================================================================================================== */ +/* ================ ADC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +/* ================================================ ADC CFG CLKSEL [24..25] ================================================ */ +typedef enum { /*!< ADC_CFG_CLKSEL */ + ADC_CFG_CLKSEL_OFF = 0, /*!< OFF : Off mode. The HFRC or HFRC_DIV2 clock must be selected + for the ADC to function. The ADC controller + automatically shuts off the clock in it's + low power modes. When setting ADCEN to '0', + the CLKSEL should remain set to one of the + two clock selects for proper power down + sequencing. */ + ADC_CFG_CLKSEL_HFRC = 1, /*!< HFRC : HFRC Core Clock divided by (CORESEL+1) */ + ADC_CFG_CLKSEL_HFRC_DIV2 = 2, /*!< HFRC_DIV2 : HFRC Core Clock / 2 further divided by (CORESEL+1) */ +} ADC_CFG_CLKSEL_Enum; + +/* =============================================== ADC CFG TRIGPOL [19..19] ================================================ */ +typedef enum { /*!< ADC_CFG_TRIGPOL */ + ADC_CFG_TRIGPOL_RISING_EDGE = 0, /*!< RISING_EDGE : Trigger on rising edge. */ + ADC_CFG_TRIGPOL_FALLING_EDGE = 1, /*!< FALLING_EDGE : Trigger on falling edge. */ +} ADC_CFG_TRIGPOL_Enum; + +/* =============================================== ADC CFG TRIGSEL [16..18] ================================================ */ +typedef enum { /*!< ADC_CFG_TRIGSEL */ + ADC_CFG_TRIGSEL_EXT0 = 0, /*!< EXT0 : Off chip External Trigger0 (ADC_ET0) */ + ADC_CFG_TRIGSEL_EXT1 = 1, /*!< EXT1 : Off chip External Trigger1 (ADC_ET1) */ + ADC_CFG_TRIGSEL_EXT2 = 2, /*!< EXT2 : Off chip External Trigger2 (ADC_ET2) */ + ADC_CFG_TRIGSEL_EXT3 = 3, /*!< EXT3 : Off chip External Trigger3 (ADC_ET3) */ + ADC_CFG_TRIGSEL_VCOMP = 4, /*!< VCOMP : Voltage Comparator Output */ + ADC_CFG_TRIGSEL_SWT = 7, /*!< SWT : Software Trigger */ +} ADC_CFG_TRIGSEL_Enum; + +/* ============================================== ADC CFG DFIFORDEN [12..12] =============================================== */ +typedef enum { /*!< ADC_CFG_DFIFORDEN */ + ADC_CFG_DFIFORDEN_DIS = 0, /*!< DIS : Destructive Reads are prevented. Reads to the FIFOPR register + will not POP an entry off the FIFO. */ + ADC_CFG_DFIFORDEN_EN = 1, /*!< EN : Reads to the FIFOPR registger will automatically pop an + entry off the FIFO. */ +} ADC_CFG_DFIFORDEN_Enum; + +/* ================================================= ADC CFG REFSEL [8..9] ================================================= */ +typedef enum { /*!< ADC_CFG_REFSEL */ + ADC_CFG_REFSEL_INT2P0 = 0, /*!< INT2P0 : Internal 2.0V Bandgap Reference Voltage */ + ADC_CFG_REFSEL_INT1P5 = 1, /*!< INT1P5 : Internal 1.5V Bandgap Reference Voltage */ + ADC_CFG_REFSEL_EXT2P0 = 2, /*!< EXT2P0 : Off Chip 2.0V Reference */ + ADC_CFG_REFSEL_EXT1P5 = 3, /*!< EXT1P5 : Off Chip 1.5V Reference */ +} ADC_CFG_REFSEL_Enum; + +/* ================================================= ADC CFG CKMODE [4..4] ================================================= */ +typedef enum { /*!< ADC_CFG_CKMODE */ + ADC_CFG_CKMODE_LPCKMODE = 0, /*!< LPCKMODE : Disable the clock between scans for LPMODE0. Set + LPCKMODE to 0x1 while configuring the ADC. */ + ADC_CFG_CKMODE_LLCKMODE = 1, /*!< LLCKMODE : Low Latency Clock Mode. When set, HFRC and the adc_clk + will remain on while in functioning in LPMODE0. */ +} ADC_CFG_CKMODE_Enum; + +/* ================================================= ADC CFG LPMODE [3..3] ================================================= */ +typedef enum { /*!< ADC_CFG_LPMODE */ + ADC_CFG_LPMODE_MODE0 = 0, /*!< MODE0 : Low Power Mode 0. Leaves the ADC fully powered between + scans with minimum latency between a trigger event and + sample data collection. */ + ADC_CFG_LPMODE_MODE1 = 1, /*!< MODE1 : Low Power Mode 1. Powers down all circuity and clocks + associated with the ADC until the next trigger event. Between + scans, the reference buffer requires up to 50us of delay + from a scan trigger event before the conversion will commence + while operating in this mode. */ +} ADC_CFG_LPMODE_Enum; + +/* ================================================= ADC CFG RPTEN [2..2] ================================================== */ +typedef enum { /*!< ADC_CFG_RPTEN */ + ADC_CFG_RPTEN_SINGLE_SCAN = 0, /*!< SINGLE_SCAN : In Single Scan Mode, the ADC will complete a single + scan upon each trigger event. */ + ADC_CFG_RPTEN_REPEATING_SCAN = 1, /*!< REPEATING_SCAN : In Repeating Scan Mode, the ADC will complete + it's first scan upon the initial trigger event and all + subsequent scans will occur at regular intervals defined + by the configuration programmed for the CTTMRA3 internal + timer until the timer is disabled or the ADC is disabled. + When disabling the ADC (setting ADCEN to '0'), the RPTEN + bit should be cleared. */ +} ADC_CFG_RPTEN_Enum; + +/* ================================================= ADC CFG ADCEN [0..0] ================================================== */ +typedef enum { /*!< ADC_CFG_ADCEN */ + ADC_CFG_ADCEN_DIS = 0, /*!< DIS : Disable the ADC module. */ + ADC_CFG_ADCEN_EN = 1, /*!< EN : Enable the ADC module. */ +} ADC_CFG_ADCEN_Enum; + +/* ========================================================= STAT ========================================================== */ +/* ================================================ ADC STAT PWDSTAT [0..0] ================================================ */ +typedef enum { /*!< ADC_STAT_PWDSTAT */ + ADC_STAT_PWDSTAT_ON = 0, /*!< ON : Powered on. */ + ADC_STAT_PWDSTAT_POWERED_DOWN = 1, /*!< POWERED_DOWN : ADC Low Power Mode 1. */ +} ADC_STAT_PWDSTAT_Enum; + +/* ========================================================== SWT ========================================================== */ +/* ================================================== ADC SWT SWT [0..7] =================================================== */ +typedef enum { /*!< ADC_SWT_SWT */ + ADC_SWT_SWT_GEN_SW_TRIGGER = 55, /*!< GEN_SW_TRIGGER : Writing this value generates a software trigger. */ +} ADC_SWT_SWT_Enum; + +/* ======================================================== SL0CFG ========================================================= */ +/* ============================================== ADC SL0CFG ADSEL0 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL0CFG_ADSEL0 */ + ADC_SL0CFG_ADSEL0_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL0CFG_ADSEL0_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL0CFG_ADSEL0_Enum; + +/* ============================================== ADC SL0CFG PRMODE0 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL0CFG_PRMODE0 */ + ADC_SL0CFG_PRMODE0_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL0CFG_PRMODE0_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL0CFG_PRMODE0_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL0CFG_PRMODE0_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL0CFG_PRMODE0_Enum; + +/* =============================================== ADC SL0CFG CHSEL0 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL0CFG_CHSEL0 */ + ADC_SL0CFG_CHSEL0_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL0CFG_CHSEL0_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL0CFG_CHSEL0_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL0CFG_CHSEL0_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL0CFG_CHSEL0_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL0CFG_CHSEL0_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL0CFG_CHSEL0_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL0CFG_CHSEL0_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL0CFG_CHSEL0_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL0CFG_CHSEL0_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL0CFG_CHSEL0_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL0CFG_CHSEL0_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL0CFG_CHSEL0_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL0CFG_CHSEL0_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL0CFG_CHSEL0_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL0CFG_CHSEL0_Enum; + +/* ================================================ ADC SL0CFG WCEN0 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL0CFG_WCEN0 */ + ADC_SL0CFG_WCEN0_WCEN = 1, /*!< WCEN : Enable the window compare for slot 0. */ +} ADC_SL0CFG_WCEN0_Enum; + +/* ================================================ ADC SL0CFG SLEN0 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL0CFG_SLEN0 */ + ADC_SL0CFG_SLEN0_SLEN = 1, /*!< SLEN : Enable slot 0 for ADC conversions. */ +} ADC_SL0CFG_SLEN0_Enum; + +/* ======================================================== SL1CFG ========================================================= */ +/* ============================================== ADC SL1CFG ADSEL1 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL1CFG_ADSEL1 */ + ADC_SL1CFG_ADSEL1_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL1CFG_ADSEL1_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL1CFG_ADSEL1_Enum; + +/* ============================================== ADC SL1CFG PRMODE1 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL1CFG_PRMODE1 */ + ADC_SL1CFG_PRMODE1_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL1CFG_PRMODE1_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL1CFG_PRMODE1_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL1CFG_PRMODE1_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL1CFG_PRMODE1_Enum; + +/* =============================================== ADC SL1CFG CHSEL1 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL1CFG_CHSEL1 */ + ADC_SL1CFG_CHSEL1_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL1CFG_CHSEL1_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL1CFG_CHSEL1_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL1CFG_CHSEL1_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL1CFG_CHSEL1_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL1CFG_CHSEL1_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL1CFG_CHSEL1_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL1CFG_CHSEL1_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL1CFG_CHSEL1_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL1CFG_CHSEL1_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL1CFG_CHSEL1_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL1CFG_CHSEL1_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL1CFG_CHSEL1_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL1CFG_CHSEL1_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL1CFG_CHSEL1_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL1CFG_CHSEL1_Enum; + +/* ================================================ ADC SL1CFG WCEN1 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL1CFG_WCEN1 */ + ADC_SL1CFG_WCEN1_WCEN = 1, /*!< WCEN : Enable the window compare for slot 1. */ +} ADC_SL1CFG_WCEN1_Enum; + +/* ================================================ ADC SL1CFG SLEN1 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL1CFG_SLEN1 */ + ADC_SL1CFG_SLEN1_SLEN = 1, /*!< SLEN : Enable slot 1 for ADC conversions. */ +} ADC_SL1CFG_SLEN1_Enum; + +/* ======================================================== SL2CFG ========================================================= */ +/* ============================================== ADC SL2CFG ADSEL2 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL2CFG_ADSEL2 */ + ADC_SL2CFG_ADSEL2_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL2CFG_ADSEL2_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL2CFG_ADSEL2_Enum; + +/* ============================================== ADC SL2CFG PRMODE2 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL2CFG_PRMODE2 */ + ADC_SL2CFG_PRMODE2_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL2CFG_PRMODE2_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL2CFG_PRMODE2_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL2CFG_PRMODE2_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL2CFG_PRMODE2_Enum; + +/* =============================================== ADC SL2CFG CHSEL2 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL2CFG_CHSEL2 */ + ADC_SL2CFG_CHSEL2_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL2CFG_CHSEL2_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL2CFG_CHSEL2_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL2CFG_CHSEL2_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL2CFG_CHSEL2_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL2CFG_CHSEL2_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL2CFG_CHSEL2_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL2CFG_CHSEL2_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL2CFG_CHSEL2_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL2CFG_CHSEL2_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL2CFG_CHSEL2_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL2CFG_CHSEL2_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL2CFG_CHSEL2_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL2CFG_CHSEL2_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL2CFG_CHSEL2_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL2CFG_CHSEL2_Enum; + +/* ================================================ ADC SL2CFG WCEN2 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL2CFG_WCEN2 */ + ADC_SL2CFG_WCEN2_WCEN = 1, /*!< WCEN : Enable the window compare for slot 2. */ +} ADC_SL2CFG_WCEN2_Enum; + +/* ================================================ ADC SL2CFG SLEN2 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL2CFG_SLEN2 */ + ADC_SL2CFG_SLEN2_SLEN = 1, /*!< SLEN : Enable slot 2 for ADC conversions. */ +} ADC_SL2CFG_SLEN2_Enum; + +/* ======================================================== SL3CFG ========================================================= */ +/* ============================================== ADC SL3CFG ADSEL3 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL3CFG_ADSEL3 */ + ADC_SL3CFG_ADSEL3_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL3CFG_ADSEL3_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL3CFG_ADSEL3_Enum; + +/* ============================================== ADC SL3CFG PRMODE3 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL3CFG_PRMODE3 */ + ADC_SL3CFG_PRMODE3_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL3CFG_PRMODE3_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL3CFG_PRMODE3_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL3CFG_PRMODE3_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL3CFG_PRMODE3_Enum; + +/* =============================================== ADC SL3CFG CHSEL3 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL3CFG_CHSEL3 */ + ADC_SL3CFG_CHSEL3_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL3CFG_CHSEL3_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL3CFG_CHSEL3_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL3CFG_CHSEL3_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL3CFG_CHSEL3_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL3CFG_CHSEL3_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL3CFG_CHSEL3_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL3CFG_CHSEL3_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL3CFG_CHSEL3_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL3CFG_CHSEL3_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL3CFG_CHSEL3_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL3CFG_CHSEL3_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL3CFG_CHSEL3_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL3CFG_CHSEL3_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL3CFG_CHSEL3_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL3CFG_CHSEL3_Enum; + +/* ================================================ ADC SL3CFG WCEN3 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL3CFG_WCEN3 */ + ADC_SL3CFG_WCEN3_WCEN = 1, /*!< WCEN : Enable the window compare for slot 3. */ +} ADC_SL3CFG_WCEN3_Enum; + +/* ================================================ ADC SL3CFG SLEN3 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL3CFG_SLEN3 */ + ADC_SL3CFG_SLEN3_SLEN = 1, /*!< SLEN : Enable slot 3 for ADC conversions. */ +} ADC_SL3CFG_SLEN3_Enum; + +/* ======================================================== SL4CFG ========================================================= */ +/* ============================================== ADC SL4CFG ADSEL4 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL4CFG_ADSEL4 */ + ADC_SL4CFG_ADSEL4_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL4CFG_ADSEL4_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL4CFG_ADSEL4_Enum; + +/* ============================================== ADC SL4CFG PRMODE4 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL4CFG_PRMODE4 */ + ADC_SL4CFG_PRMODE4_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL4CFG_PRMODE4_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL4CFG_PRMODE4_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL4CFG_PRMODE4_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL4CFG_PRMODE4_Enum; + +/* =============================================== ADC SL4CFG CHSEL4 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL4CFG_CHSEL4 */ + ADC_SL4CFG_CHSEL4_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL4CFG_CHSEL4_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL4CFG_CHSEL4_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL4CFG_CHSEL4_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL4CFG_CHSEL4_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL4CFG_CHSEL4_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL4CFG_CHSEL4_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL4CFG_CHSEL4_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL4CFG_CHSEL4_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL4CFG_CHSEL4_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL4CFG_CHSEL4_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL4CFG_CHSEL4_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL4CFG_CHSEL4_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL4CFG_CHSEL4_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL4CFG_CHSEL4_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL4CFG_CHSEL4_Enum; + +/* ================================================ ADC SL4CFG WCEN4 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL4CFG_WCEN4 */ + ADC_SL4CFG_WCEN4_WCEN = 1, /*!< WCEN : Enable the window compare for slot 4. */ +} ADC_SL4CFG_WCEN4_Enum; + +/* ================================================ ADC SL4CFG SLEN4 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL4CFG_SLEN4 */ + ADC_SL4CFG_SLEN4_SLEN = 1, /*!< SLEN : Enable slot 4 for ADC conversions. */ +} ADC_SL4CFG_SLEN4_Enum; + +/* ======================================================== SL5CFG ========================================================= */ +/* ============================================== ADC SL5CFG ADSEL5 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL5CFG_ADSEL5 */ + ADC_SL5CFG_ADSEL5_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL5CFG_ADSEL5_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL5CFG_ADSEL5_Enum; + +/* ============================================== ADC SL5CFG PRMODE5 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL5CFG_PRMODE5 */ + ADC_SL5CFG_PRMODE5_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL5CFG_PRMODE5_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL5CFG_PRMODE5_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL5CFG_PRMODE5_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL5CFG_PRMODE5_Enum; + +/* =============================================== ADC SL5CFG CHSEL5 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL5CFG_CHSEL5 */ + ADC_SL5CFG_CHSEL5_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL5CFG_CHSEL5_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL5CFG_CHSEL5_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL5CFG_CHSEL5_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL5CFG_CHSEL5_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL5CFG_CHSEL5_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL5CFG_CHSEL5_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL5CFG_CHSEL5_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL5CFG_CHSEL5_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL5CFG_CHSEL5_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL5CFG_CHSEL5_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL5CFG_CHSEL5_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL5CFG_CHSEL5_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL5CFG_CHSEL5_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL5CFG_CHSEL5_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL5CFG_CHSEL5_Enum; + +/* ================================================ ADC SL5CFG WCEN5 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL5CFG_WCEN5 */ + ADC_SL5CFG_WCEN5_WCEN = 1, /*!< WCEN : Enable the window compare for slot 5. */ +} ADC_SL5CFG_WCEN5_Enum; + +/* ================================================ ADC SL5CFG SLEN5 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL5CFG_SLEN5 */ + ADC_SL5CFG_SLEN5_SLEN = 1, /*!< SLEN : Enable slot 5 for ADC conversions. */ +} ADC_SL5CFG_SLEN5_Enum; + +/* ======================================================== SL6CFG ========================================================= */ +/* ============================================== ADC SL6CFG ADSEL6 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL6CFG_ADSEL6 */ + ADC_SL6CFG_ADSEL6_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL6CFG_ADSEL6_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL6CFG_ADSEL6_Enum; + +/* ============================================== ADC SL6CFG PRMODE6 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL6CFG_PRMODE6 */ + ADC_SL6CFG_PRMODE6_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL6CFG_PRMODE6_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL6CFG_PRMODE6_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL6CFG_PRMODE6_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL6CFG_PRMODE6_Enum; + +/* =============================================== ADC SL6CFG CHSEL6 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL6CFG_CHSEL6 */ + ADC_SL6CFG_CHSEL6_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL6CFG_CHSEL6_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL6CFG_CHSEL6_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL6CFG_CHSEL6_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL6CFG_CHSEL6_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL6CFG_CHSEL6_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL6CFG_CHSEL6_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL6CFG_CHSEL6_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL6CFG_CHSEL6_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL6CFG_CHSEL6_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL6CFG_CHSEL6_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL6CFG_CHSEL6_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL6CFG_CHSEL6_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL6CFG_CHSEL6_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL6CFG_CHSEL6_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL6CFG_CHSEL6_Enum; + +/* ================================================ ADC SL6CFG WCEN6 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL6CFG_WCEN6 */ + ADC_SL6CFG_WCEN6_WCEN = 1, /*!< WCEN : Enable the window compare for slot 6. */ +} ADC_SL6CFG_WCEN6_Enum; + +/* ================================================ ADC SL6CFG SLEN6 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL6CFG_SLEN6 */ + ADC_SL6CFG_SLEN6_SLEN = 1, /*!< SLEN : Enable slot 6 for ADC conversions. */ +} ADC_SL6CFG_SLEN6_Enum; + +/* ======================================================== SL7CFG ========================================================= */ +/* ============================================== ADC SL7CFG ADSEL7 [24..26] =============================================== */ +typedef enum { /*!< ADC_SL7CFG_ADSEL7 */ + ADC_SL7CFG_ADSEL7_AVG_1_MSRMT = 0, /*!< AVG_1_MSRMT : Average in 1 measurement in the accumulate divide + module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_2_MSRMTS = 1, /*!< AVG_2_MSRMTS : Average in 2 measurements in the accumulate divide + module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_4_MSRMTS = 2, /*!< AVG_4_MSRMTS : Average in 4 measurements in the accumulate divide + module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_8_MSRMT = 3, /*!< AVG_8_MSRMT : Average in 8 measurements in the accumulate divide + module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_16_MSRMTS = 4, /*!< AVG_16_MSRMTS : Average in 16 measurements in the accumulate + divide module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_32_MSRMTS = 5, /*!< AVG_32_MSRMTS : Average in 32 measurements in the accumulate + divide module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_64_MSRMTS = 6, /*!< AVG_64_MSRMTS : Average in 64 measurements in the accumulate + divide module for this slot. */ + ADC_SL7CFG_ADSEL7_AVG_128_MSRMTS = 7, /*!< AVG_128_MSRMTS : Average in 128 measurements in the accumulate + divide module for this slot. */ +} ADC_SL7CFG_ADSEL7_Enum; + +/* ============================================== ADC SL7CFG PRMODE7 [16..17] ============================================== */ +typedef enum { /*!< ADC_SL7CFG_PRMODE7 */ + ADC_SL7CFG_PRMODE7_P14B = 0, /*!< P14B : 14-bit precision mode */ + ADC_SL7CFG_PRMODE7_P12B = 1, /*!< P12B : 12-bit precision mode */ + ADC_SL7CFG_PRMODE7_P10B = 2, /*!< P10B : 10-bit precision mode */ + ADC_SL7CFG_PRMODE7_P8B = 3, /*!< P8B : 8-bit precision mode */ +} ADC_SL7CFG_PRMODE7_Enum; + +/* =============================================== ADC SL7CFG CHSEL7 [8..11] =============================================== */ +typedef enum { /*!< ADC_SL7CFG_CHSEL7 */ + ADC_SL7CFG_CHSEL7_SE0 = 0, /*!< SE0 : single ended external GPIO connection to pad16. */ + ADC_SL7CFG_CHSEL7_SE1 = 1, /*!< SE1 : single ended external GPIO connection to pad29. */ + ADC_SL7CFG_CHSEL7_SE2 = 2, /*!< SE2 : single ended external GPIO connection to pad11. */ + ADC_SL7CFG_CHSEL7_SE3 = 3, /*!< SE3 : single ended external GPIO connection to pad31. */ + ADC_SL7CFG_CHSEL7_SE4 = 4, /*!< SE4 : single ended external GPIO connection to pad32. */ + ADC_SL7CFG_CHSEL7_SE5 = 5, /*!< SE5 : single ended external GPIO connection to pad33. */ + ADC_SL7CFG_CHSEL7_SE6 = 6, /*!< SE6 : single ended external GPIO connection to pad34. */ + ADC_SL7CFG_CHSEL7_SE7 = 7, /*!< SE7 : single ended external GPIO connection to pad35. */ + ADC_SL7CFG_CHSEL7_SE8 = 8, /*!< SE8 : single ended external GPIO connection to pad13. */ + ADC_SL7CFG_CHSEL7_SE9 = 9, /*!< SE9 : single ended external GPIO connection to pad12. */ + ADC_SL7CFG_CHSEL7_DF0 = 10, /*!< DF0 : differential external GPIO connections to pad12(N) and + pad13(P). */ + ADC_SL7CFG_CHSEL7_DF1 = 11, /*!< DF1 : differential external GPIO connections to pad15(N) and + pad14(P). */ + ADC_SL7CFG_CHSEL7_TEMP = 12, /*!< TEMP : internal temperature sensor. */ + ADC_SL7CFG_CHSEL7_BATT = 13, /*!< BATT : internal voltage divide-by-3 connection. */ + ADC_SL7CFG_CHSEL7_VSS = 14, /*!< VSS : Input VSS */ +} ADC_SL7CFG_CHSEL7_Enum; + +/* ================================================ ADC SL7CFG WCEN7 [1..1] ================================================ */ +typedef enum { /*!< ADC_SL7CFG_WCEN7 */ + ADC_SL7CFG_WCEN7_WCEN = 1, /*!< WCEN : Enable the window compare for slot 7. */ +} ADC_SL7CFG_WCEN7_Enum; + +/* ================================================ ADC SL7CFG SLEN7 [0..0] ================================================ */ +typedef enum { /*!< ADC_SL7CFG_SLEN7 */ + ADC_SL7CFG_SLEN7_SLEN = 1, /*!< SLEN : Enable slot 7 for ADC conversions. */ +} ADC_SL7CFG_SLEN7_Enum; + +/* ========================================================= WULIM ========================================================= */ +/* ========================================================= WLLIM ========================================================= */ +/* ======================================================== SCWLIM ========================================================= */ +/* ========================================================= FIFO ========================================================== */ +/* ======================================================== FIFOPR ========================================================= */ +/* ========================================================= INTEN ========================================================= */ +/* ================================================= ADC INTEN DERR [7..7] ================================================= */ +typedef enum { /*!< ADC_INTEN_DERR */ + ADC_INTEN_DERR_DMAERROR = 1, /*!< DMAERROR : DMA Error Condition Occurred */ +} ADC_INTEN_DERR_Enum; + +/* ================================================= ADC INTEN DCMP [6..6] ================================================= */ +typedef enum { /*!< ADC_INTEN_DCMP */ + ADC_INTEN_DCMP_DMACOMPLETE = 1, /*!< DMACOMPLETE : DMA Completed a transfer */ +} ADC_INTEN_DCMP_Enum; + +/* ================================================ ADC INTEN WCINC [5..5] ================================================= */ +typedef enum { /*!< ADC_INTEN_WCINC */ + ADC_INTEN_WCINC_WCINCINT = 1, /*!< WCINCINT : Window comparitor voltage incursion interrupt. */ +} ADC_INTEN_WCINC_Enum; + +/* ================================================ ADC INTEN WCEXC [4..4] ================================================= */ +typedef enum { /*!< ADC_INTEN_WCEXC */ + ADC_INTEN_WCEXC_WCEXCINT = 1, /*!< WCEXCINT : Window comparitor voltage excursion interrupt. */ +} ADC_INTEN_WCEXC_Enum; + +/* =============================================== ADC INTEN FIFOOVR2 [3..3] =============================================== */ +typedef enum { /*!< ADC_INTEN_FIFOOVR2 */ + ADC_INTEN_FIFOOVR2_FIFOFULLINT = 1, /*!< FIFOFULLINT : FIFO 100 percent full interrupt. */ +} ADC_INTEN_FIFOOVR2_Enum; + +/* =============================================== ADC INTEN FIFOOVR1 [2..2] =============================================== */ +typedef enum { /*!< ADC_INTEN_FIFOOVR1 */ + ADC_INTEN_FIFOOVR1_FIFO75INT = 1, /*!< FIFO75INT : FIFO 75 percent full interrupt. */ +} ADC_INTEN_FIFOOVR1_Enum; + +/* ================================================ ADC INTEN SCNCMP [1..1] ================================================ */ +typedef enum { /*!< ADC_INTEN_SCNCMP */ + ADC_INTEN_SCNCMP_SCNCMPINT = 1, /*!< SCNCMPINT : ADC scan complete interrupt. */ +} ADC_INTEN_SCNCMP_Enum; + +/* ================================================ ADC INTEN CNVCMP [0..0] ================================================ */ +typedef enum { /*!< ADC_INTEN_CNVCMP */ + ADC_INTEN_CNVCMP_CNVCMPINT = 1, /*!< CNVCMPINT : ADC conversion complete interrupt. */ +} ADC_INTEN_CNVCMP_Enum; + +/* ======================================================== INTSTAT ======================================================== */ +/* ================================================ ADC INTSTAT DERR [7..7] ================================================ */ +typedef enum { /*!< ADC_INTSTAT_DERR */ + ADC_INTSTAT_DERR_DMAERROR = 1, /*!< DMAERROR : DMA Error Condition Occurred */ +} ADC_INTSTAT_DERR_Enum; + +/* ================================================ ADC INTSTAT DCMP [6..6] ================================================ */ +typedef enum { /*!< ADC_INTSTAT_DCMP */ + ADC_INTSTAT_DCMP_DMACOMPLETE = 1, /*!< DMACOMPLETE : DMA Completed a transfer */ +} ADC_INTSTAT_DCMP_Enum; + +/* =============================================== ADC INTSTAT WCINC [5..5] ================================================ */ +typedef enum { /*!< ADC_INTSTAT_WCINC */ + ADC_INTSTAT_WCINC_WCINCINT = 1, /*!< WCINCINT : Window comparitor voltage incursion interrupt. */ +} ADC_INTSTAT_WCINC_Enum; + +/* =============================================== ADC INTSTAT WCEXC [4..4] ================================================ */ +typedef enum { /*!< ADC_INTSTAT_WCEXC */ + ADC_INTSTAT_WCEXC_WCEXCINT = 1, /*!< WCEXCINT : Window comparitor voltage excursion interrupt. */ +} ADC_INTSTAT_WCEXC_Enum; + +/* ============================================== ADC INTSTAT FIFOOVR2 [3..3] ============================================== */ +typedef enum { /*!< ADC_INTSTAT_FIFOOVR2 */ + ADC_INTSTAT_FIFOOVR2_FIFOFULLINT = 1, /*!< FIFOFULLINT : FIFO 100 percent full interrupt. */ +} ADC_INTSTAT_FIFOOVR2_Enum; + +/* ============================================== ADC INTSTAT FIFOOVR1 [2..2] ============================================== */ +typedef enum { /*!< ADC_INTSTAT_FIFOOVR1 */ + ADC_INTSTAT_FIFOOVR1_FIFO75INT = 1, /*!< FIFO75INT : FIFO 75 percent full interrupt. */ +} ADC_INTSTAT_FIFOOVR1_Enum; + +/* =============================================== ADC INTSTAT SCNCMP [1..1] =============================================== */ +typedef enum { /*!< ADC_INTSTAT_SCNCMP */ + ADC_INTSTAT_SCNCMP_SCNCMPINT = 1, /*!< SCNCMPINT : ADC scan complete interrupt. */ +} ADC_INTSTAT_SCNCMP_Enum; + +/* =============================================== ADC INTSTAT CNVCMP [0..0] =============================================== */ +typedef enum { /*!< ADC_INTSTAT_CNVCMP */ + ADC_INTSTAT_CNVCMP_CNVCMPINT = 1, /*!< CNVCMPINT : ADC conversion complete interrupt. */ +} ADC_INTSTAT_CNVCMP_Enum; + +/* ======================================================== INTCLR ========================================================= */ +/* ================================================ ADC INTCLR DERR [7..7] ================================================= */ +typedef enum { /*!< ADC_INTCLR_DERR */ + ADC_INTCLR_DERR_DMAERROR = 1, /*!< DMAERROR : DMA Error Condition Occurred */ +} ADC_INTCLR_DERR_Enum; + +/* ================================================ ADC INTCLR DCMP [6..6] ================================================= */ +typedef enum { /*!< ADC_INTCLR_DCMP */ + ADC_INTCLR_DCMP_DMACOMPLETE = 1, /*!< DMACOMPLETE : DMA Completed a transfer */ +} ADC_INTCLR_DCMP_Enum; + +/* ================================================ ADC INTCLR WCINC [5..5] ================================================ */ +typedef enum { /*!< ADC_INTCLR_WCINC */ + ADC_INTCLR_WCINC_WCINCINT = 1, /*!< WCINCINT : Window comparitor voltage incursion interrupt. */ +} ADC_INTCLR_WCINC_Enum; + +/* ================================================ ADC INTCLR WCEXC [4..4] ================================================ */ +typedef enum { /*!< ADC_INTCLR_WCEXC */ + ADC_INTCLR_WCEXC_WCEXCINT = 1, /*!< WCEXCINT : Window comparitor voltage excursion interrupt. */ +} ADC_INTCLR_WCEXC_Enum; + +/* ============================================== ADC INTCLR FIFOOVR2 [3..3] =============================================== */ +typedef enum { /*!< ADC_INTCLR_FIFOOVR2 */ + ADC_INTCLR_FIFOOVR2_FIFOFULLINT = 1, /*!< FIFOFULLINT : FIFO 100 percent full interrupt. */ +} ADC_INTCLR_FIFOOVR2_Enum; + +/* ============================================== ADC INTCLR FIFOOVR1 [2..2] =============================================== */ +typedef enum { /*!< ADC_INTCLR_FIFOOVR1 */ + ADC_INTCLR_FIFOOVR1_FIFO75INT = 1, /*!< FIFO75INT : FIFO 75 percent full interrupt. */ +} ADC_INTCLR_FIFOOVR1_Enum; + +/* =============================================== ADC INTCLR SCNCMP [1..1] ================================================ */ +typedef enum { /*!< ADC_INTCLR_SCNCMP */ + ADC_INTCLR_SCNCMP_SCNCMPINT = 1, /*!< SCNCMPINT : ADC scan complete interrupt. */ +} ADC_INTCLR_SCNCMP_Enum; + +/* =============================================== ADC INTCLR CNVCMP [0..0] ================================================ */ +typedef enum { /*!< ADC_INTCLR_CNVCMP */ + ADC_INTCLR_CNVCMP_CNVCMPINT = 1, /*!< CNVCMPINT : ADC conversion complete interrupt. */ +} ADC_INTCLR_CNVCMP_Enum; + +/* ======================================================== INTSET ========================================================= */ +/* ================================================ ADC INTSET DERR [7..7] ================================================= */ +typedef enum { /*!< ADC_INTSET_DERR */ + ADC_INTSET_DERR_DMAERROR = 1, /*!< DMAERROR : DMA Error Condition Occurred */ +} ADC_INTSET_DERR_Enum; + +/* ================================================ ADC INTSET DCMP [6..6] ================================================= */ +typedef enum { /*!< ADC_INTSET_DCMP */ + ADC_INTSET_DCMP_DMACOMPLETE = 1, /*!< DMACOMPLETE : DMA Completed a transfer */ +} ADC_INTSET_DCMP_Enum; + +/* ================================================ ADC INTSET WCINC [5..5] ================================================ */ +typedef enum { /*!< ADC_INTSET_WCINC */ + ADC_INTSET_WCINC_WCINCINT = 1, /*!< WCINCINT : Window comparitor voltage incursion interrupt. */ +} ADC_INTSET_WCINC_Enum; + +/* ================================================ ADC INTSET WCEXC [4..4] ================================================ */ +typedef enum { /*!< ADC_INTSET_WCEXC */ + ADC_INTSET_WCEXC_WCEXCINT = 1, /*!< WCEXCINT : Window comparitor voltage excursion interrupt. */ +} ADC_INTSET_WCEXC_Enum; + +/* ============================================== ADC INTSET FIFOOVR2 [3..3] =============================================== */ +typedef enum { /*!< ADC_INTSET_FIFOOVR2 */ + ADC_INTSET_FIFOOVR2_FIFOFULLINT = 1, /*!< FIFOFULLINT : FIFO 100 percent full interrupt. */ +} ADC_INTSET_FIFOOVR2_Enum; + +/* ============================================== ADC INTSET FIFOOVR1 [2..2] =============================================== */ +typedef enum { /*!< ADC_INTSET_FIFOOVR1 */ + ADC_INTSET_FIFOOVR1_FIFO75INT = 1, /*!< FIFO75INT : FIFO 75 percent full interrupt. */ +} ADC_INTSET_FIFOOVR1_Enum; + +/* =============================================== ADC INTSET SCNCMP [1..1] ================================================ */ +typedef enum { /*!< ADC_INTSET_SCNCMP */ + ADC_INTSET_SCNCMP_SCNCMPINT = 1, /*!< SCNCMPINT : ADC scan complete interrupt. */ +} ADC_INTSET_SCNCMP_Enum; + +/* =============================================== ADC INTSET CNVCMP [0..0] ================================================ */ +typedef enum { /*!< ADC_INTSET_CNVCMP */ + ADC_INTSET_CNVCMP_CNVCMPINT = 1, /*!< CNVCMPINT : ADC conversion complete interrupt. */ +} ADC_INTSET_CNVCMP_Enum; + +/* ======================================================= DMATRIGEN ======================================================= */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +/* ======================================================== DMACFG ========================================================= */ +/* ============================================== ADC DMACFG DMAMSK [17..17] =============================================== */ +typedef enum { /*!< ADC_DMACFG_DMAMSK */ + ADC_DMACFG_DMAMSK_DIS = 0, /*!< DIS : FIFO Contents are copied directly to memory without modification. */ + ADC_DMACFG_DMAMSK_EN = 1, /*!< EN : Only the FIFODATA contents are copied to memory on DMA + transfers. The SLOTNUM and FIFOCNT contents are cleared + to zero. */ +} ADC_DMACFG_DMAMSK_Enum; + +/* ============================================ ADC DMACFG DMAHONSTAT [16..16] ============================================= */ +typedef enum { /*!< ADC_DMACFG_DMAHONSTAT */ + ADC_DMACFG_DMAHONSTAT_DIS = 0, /*!< DIS : ADC conversions will continue regardless of DMA status + register */ + ADC_DMACFG_DMAHONSTAT_EN = 1, /*!< EN : ADC conversions will not progress if DMAERR or DMACPL bits + in DMA status register are set. */ +} ADC_DMACFG_DMAHONSTAT_Enum; + +/* ============================================== ADC DMACFG DMADYNPRI [9..9] ============================================== */ +typedef enum { /*!< ADC_DMACFG_DMADYNPRI */ + ADC_DMACFG_DMADYNPRI_DIS = 0, /*!< DIS : Disable dynamic priority (use DMAPRI setting only) */ + ADC_DMACFG_DMADYNPRI_EN = 1, /*!< EN : Enable dynamic priority */ +} ADC_DMACFG_DMADYNPRI_Enum; + +/* =============================================== ADC DMACFG DMAPRI [8..8] ================================================ */ +typedef enum { /*!< ADC_DMACFG_DMAPRI */ + ADC_DMACFG_DMAPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + ADC_DMACFG_DMAPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} ADC_DMACFG_DMAPRI_Enum; + +/* =============================================== ADC DMACFG DMADIR [2..2] ================================================ */ +typedef enum { /*!< ADC_DMACFG_DMADIR */ + ADC_DMACFG_DMADIR_P2M = 0, /*!< P2M : Peripheral to Memory (SRAM) transaction */ + ADC_DMACFG_DMADIR_M2P = 1, /*!< M2P : Memory to Peripheral transaction */ +} ADC_DMACFG_DMADIR_Enum; + +/* ================================================ ADC DMACFG DMAEN [0..0] ================================================ */ +typedef enum { /*!< ADC_DMACFG_DMAEN */ + ADC_DMACFG_DMAEN_DIS = 0, /*!< DIS : Disable DMA Function */ + ADC_DMACFG_DMAEN_EN = 1, /*!< EN : Enable DMA Function */ +} ADC_DMACFG_DMAEN_Enum; + +/* ====================================================== DMATOTCOUNT ====================================================== */ +/* ====================================================== DMATARGADDR ====================================================== */ +/* ======================================================== DMASTAT ======================================================== */ + + +/* =========================================================================================================================== */ +/* ================ APBDMA ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== BBVALUE ======================================================== */ +/* ====================================================== BBSETCLEAR ======================================================= */ +/* ======================================================== BBINPUT ======================================================== */ +/* ======================================================= DEBUGDATA ======================================================= */ +/* ========================================================= DEBUG ========================================================= */ +/* ============================================== APBDMA DEBUG DEBUGEN [0..3] ============================================== */ +typedef enum { /*!< APBDMA_DEBUG_DEBUGEN */ + APBDMA_DEBUG_DEBUGEN_OFF = 0, /*!< OFF : Debug Disabled */ + APBDMA_DEBUG_DEBUGEN_ARB = 1, /*!< ARB : Debug Arb values */ +} APBDMA_DEBUG_DEBUGEN_Enum; + + + +/* =========================================================================================================================== */ +/* ================ BLEIF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= FIFO ========================================================== */ +/* ======================================================== FIFOPTR ======================================================== */ +/* ======================================================== FIFOTHR ======================================================== */ +/* ======================================================== FIFOPOP ======================================================== */ +/* ======================================================= FIFOPUSH ======================================================== */ +/* ======================================================= FIFOCTRL ======================================================== */ +/* ======================================================== FIFOLOC ======================================================== */ +/* ======================================================== CLKCFG ========================================================= */ +/* =============================================== BLEIF CLKCFG FSEL [8..10] =============================================== */ +typedef enum { /*!< BLEIF_CLKCFG_FSEL */ + BLEIF_CLKCFG_FSEL_MIN_PWR = 0, /*!< MIN_PWR : Selects the minimum power clock. This setting should + be used whenever the IOM is not active. */ + BLEIF_CLKCFG_FSEL_HFRC = 1, /*!< HFRC : Selects the HFRC as the input clock. */ + BLEIF_CLKCFG_FSEL_HFRC_DIV2 = 2, /*!< HFRC_DIV2 : Selects the HFRC / 2 as the input clock. */ + BLEIF_CLKCFG_FSEL_HFRC_DIV4 = 3, /*!< HFRC_DIV4 : Selects the HFRC / 4 as the input clock. */ + BLEIF_CLKCFG_FSEL_HFRC_DIV8 = 4, /*!< HFRC_DIV8 : Selects the HFRC / 8 as the input clock. */ + BLEIF_CLKCFG_FSEL_HFRC_DIV16 = 5, /*!< HFRC_DIV16 : Selects the HFRC / 16 as the input clock. */ + BLEIF_CLKCFG_FSEL_HFRC_DIV32 = 6, /*!< HFRC_DIV32 : Selects the HFRC / 32 as the input clock. */ + BLEIF_CLKCFG_FSEL_HFRC_DIV64 = 7, /*!< HFRC_DIV64 : Selects the HFRC / 64 as the input clock. */ +} BLEIF_CLKCFG_FSEL_Enum; + +/* ========================================================== CMD ========================================================== */ +/* ================================================= BLEIF CMD CMD [0..4] ================================================== */ +typedef enum { /*!< BLEIF_CMD_CMD */ + BLEIF_CMD_CMD_WRITE = 1, /*!< WRITE : Write command using count of offset bytes specified + in the OFFSETCNT field */ + BLEIF_CMD_CMD_READ = 2, /*!< READ : Read command using count of offset bytes specified in + the OFFSETCNT field */ +} BLEIF_CMD_CMD_Enum; + +/* ======================================================== CMDRPT ========================================================= */ +/* ======================================================= OFFSETHI ======================================================== */ +/* ======================================================== CMDSTAT ======================================================== */ +/* ============================================= BLEIF CMDSTAT CMDSTAT [5..7] ============================================== */ +typedef enum { /*!< BLEIF_CMDSTAT_CMDSTAT */ + BLEIF_CMDSTAT_CMDSTAT_ERR = 1, /*!< ERR : Error encountered with command */ + BLEIF_CMDSTAT_CMDSTAT_ACTIVE = 2, /*!< ACTIVE : Actively processing command */ + BLEIF_CMDSTAT_CMDSTAT_IDLE = 4, /*!< IDLE : Idle state, no active command, no error */ + BLEIF_CMDSTAT_CMDSTAT_WAIT = 6, /*!< WAIT : Command in progress, but waiting on data from host */ +} BLEIF_CMDSTAT_CMDSTAT_Enum; + +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ======================================================= DMATRIGEN ======================================================= */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +/* ======================================================== DMACFG ========================================================= */ +/* ============================================== BLEIF DMACFG DMAPRI [8..8] =============================================== */ +typedef enum { /*!< BLEIF_DMACFG_DMAPRI */ + BLEIF_DMACFG_DMAPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + BLEIF_DMACFG_DMAPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} BLEIF_DMACFG_DMAPRI_Enum; + +/* ============================================== BLEIF DMACFG DMADIR [1..1] =============================================== */ +typedef enum { /*!< BLEIF_DMACFG_DMADIR */ + BLEIF_DMACFG_DMADIR_P2M = 0, /*!< P2M : Peripheral to Memory (SRAM) transaction. To be set when + doing IOM read operations, ie reading data from external + devices. */ + BLEIF_DMACFG_DMADIR_M2P = 1, /*!< M2P : Memory to Peripheral transaction. To be set when doing + IOM write operations, ie writing data to external devices. */ +} BLEIF_DMACFG_DMADIR_Enum; + +/* =============================================== BLEIF DMACFG DMAEN [0..0] =============================================== */ +typedef enum { /*!< BLEIF_DMACFG_DMAEN */ + BLEIF_DMACFG_DMAEN_DIS = 0, /*!< DIS : Disable DMA Function */ + BLEIF_DMACFG_DMAEN_EN = 1, /*!< EN : Enable DMA Function */ +} BLEIF_DMACFG_DMAEN_Enum; + +/* ====================================================== DMATOTCOUNT ====================================================== */ +/* ====================================================== DMATARGADDR ====================================================== */ +/* ======================================================== DMASTAT ======================================================== */ +/* ========================================================= CQCFG ========================================================= */ +/* =============================================== BLEIF CQCFG CQPRI [1..1] ================================================ */ +typedef enum { /*!< BLEIF_CQCFG_CQPRI */ + BLEIF_CQCFG_CQPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + BLEIF_CQCFG_CQPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} BLEIF_CQCFG_CQPRI_Enum; + +/* ================================================ BLEIF CQCFG CQEN [0..0] ================================================ */ +typedef enum { /*!< BLEIF_CQCFG_CQEN */ + BLEIF_CQCFG_CQEN_DIS = 0, /*!< DIS : Disable CQ Function */ + BLEIF_CQCFG_CQEN_EN = 1, /*!< EN : Enable CQ Function */ +} BLEIF_CQCFG_CQEN_Enum; + +/* ======================================================== CQADDR ========================================================= */ +/* ======================================================== CQSTAT ========================================================= */ +/* ======================================================== CQFLAGS ======================================================== */ +/* ====================================================== CQSETCLEAR ======================================================= */ +/* ======================================================= CQPAUSEEN ======================================================= */ +/* ============================================= BLEIF CQPAUSEEN CQPEN [0..15] ============================================= */ +typedef enum { /*!< BLEIF_CQPAUSEEN_CQPEN */ + BLEIF_CQPAUSEEN_CQPEN_CNTEQ = 32768, /*!< CNTEQ : Pauses command queue processing when HWCNT matches SWCNT */ + BLEIF_CQPAUSEEN_CQPEN_BLEXOREN = 16384, /*!< BLEXOREN : Pause command queue when input BLE bit XORed with + SWFLAG4 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_IOMXOREN = 8192, /*!< IOMXOREN : Pause command queue when input IOM bit XORed with + SWFLAG3 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_GPIOXOREN = 4096, /*!< GPIOXOREN : Pause command queue when input GPIO irq_bit XORed + with SWFLAG2 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_MSPI1XNOREN = 2048, /*!< MSPI1XNOREN : Pause command queue when input MSPI1 bit XNORed + with SWFLAG1 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_MSPI0XNOREN = 1024, /*!< MSPI0XNOREN : Pause command queue when input MSPI0 bit XNORed + with SWFLAG0 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_MSPI1XOREN = 512, /*!< MSPI1XOREN : Pause command queue when input MSPI1 bit XORed + with SWFLAG1 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_MSPI0XOREN = 256, /*!< MSPI0XOREN : Pause command queue when input MSPI0 bit XORed + with SWFLAG0 is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN7 = 128, /*!< SWFLAGEN7 : Pause the command queue when software flag bit 7 + is '1'. */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN6 = 64, /*!< SWFLAGEN6 : Pause the command queue when software flag bit 7 + is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN5 = 32, /*!< SWFLAGEN5 : Pause the command queue when software flag bit 7 + is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN4 = 16, /*!< SWFLAGEN4 : Pause the command queue when software flag bit 7 + is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN3 = 8, /*!< SWFLAGEN3 : Pause the command queue when software flag bit 7 + is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN2 = 4, /*!< SWFLAGEN2 : Pause the command queue when software flag bit 7 + is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLAGEN1 = 2, /*!< SWFLAGEN1 : Pause the command queue when software flag bit 7 + is '1' */ + BLEIF_CQPAUSEEN_CQPEN_SWFLGEN0 = 1, /*!< SWFLGEN0 : Pause the command queue when software flag bit 7 + is '1' */ +} BLEIF_CQPAUSEEN_CQPEN_Enum; + +/* ======================================================= CQCURIDX ======================================================== */ +/* ======================================================= CQENDIDX ======================================================== */ +/* ======================================================== STATUS ========================================================= */ +/* ============================================== BLEIF STATUS IDLEST [2..2] =============================================== */ +typedef enum { /*!< BLEIF_STATUS_IDLEST */ + BLEIF_STATUS_IDLEST_IDLE = 1, /*!< IDLE : The I/O state machine is in the idle state. */ +} BLEIF_STATUS_IDLEST_Enum; + +/* ============================================== BLEIF STATUS CMDACT [1..1] =============================================== */ +typedef enum { /*!< BLEIF_STATUS_CMDACT */ + BLEIF_STATUS_CMDACT_ACTIVE = 1, /*!< ACTIVE : An I/O command is active. Indicates the active module + has an active command and is processing this. De-asserted + when the command is completed. */ +} BLEIF_STATUS_CMDACT_Enum; + +/* ================================================ BLEIF STATUS ERR [0..0] ================================================ */ +typedef enum { /*!< BLEIF_STATUS_ERR */ + BLEIF_STATUS_ERR_ERROR = 1, /*!< ERROR : Bit has been deprecated and will always return 0. */ +} BLEIF_STATUS_ERR_Enum; + +/* ======================================================== MSPICFG ======================================================== */ +/* ============================================= BLEIF MSPICFG SPILSB [23..23] ============================================= */ +typedef enum { /*!< BLEIF_MSPICFG_SPILSB */ + BLEIF_MSPICFG_SPILSB_MSB = 0, /*!< MSB : Send and receive MSB bit first */ + BLEIF_MSPICFG_SPILSB_LSB = 1, /*!< LSB : Send and receive LSB bit first */ +} BLEIF_MSPICFG_SPILSB_Enum; + +/* ============================================ BLEIF MSPICFG RDFCPOL [22..22] ============================================= */ +typedef enum { /*!< BLEIF_MSPICFG_RDFCPOL */ + BLEIF_MSPICFG_RDFCPOL_NORMAL = 0, /*!< NORMAL : SPI_STATUS signal from BLE Core high(1) creates flow + control and new read spi transactions will not be started + until the signal goes low.(default) */ + BLEIF_MSPICFG_RDFCPOL_INVERTED = 1, /*!< INVERTED : SPI_STATUS signal from BLE Core low(0) creates flow + control and new read spi transactions will not be started + until the signal goes high. */ +} BLEIF_MSPICFG_RDFCPOL_Enum; + +/* ============================================ BLEIF MSPICFG WTFCPOL [21..21] ============================================= */ +typedef enum { /*!< BLEIF_MSPICFG_WTFCPOL */ + BLEIF_MSPICFG_WTFCPOL_NORMAL = 0, /*!< NORMAL : SPI_STATUS signal from BLE Core high(1) creates flow + control and new write spi transactions will not be started + until the signal goes low.(default) */ + BLEIF_MSPICFG_WTFCPOL_INVERTED = 1, /*!< INVERTED : SPI_STATUS signal from BLE Core high(1) creates low(0) + control and new write spi transactions will not be started + until the signal goes high. */ +} BLEIF_MSPICFG_WTFCPOL_Enum; + +/* ============================================== BLEIF MSPICFG RDFC [17..17] ============================================== */ +typedef enum { /*!< BLEIF_MSPICFG_RDFC */ + BLEIF_MSPICFG_RDFC_DIS = 0, /*!< DIS : Read mode flow control disabled. */ + BLEIF_MSPICFG_RDFC_EN = 1, /*!< EN : Read mode flow control enabled. */ +} BLEIF_MSPICFG_RDFC_Enum; + +/* ============================================== BLEIF MSPICFG WTFC [16..16] ============================================== */ +typedef enum { /*!< BLEIF_MSPICFG_WTFC */ + BLEIF_MSPICFG_WTFC_DIS = 0, /*!< DIS : Write mode flow control disabled. */ + BLEIF_MSPICFG_WTFC_EN = 1, /*!< EN : Write mode flow control enabled. */ +} BLEIF_MSPICFG_WTFC_Enum; + +/* =============================================== BLEIF MSPICFG SPHA [1..1] =============================================== */ +typedef enum { /*!< BLEIF_MSPICFG_SPHA */ + BLEIF_MSPICFG_SPHA_SAMPLE_LEADING_EDGE = 0, /*!< SAMPLE_LEADING_EDGE : Sample on the leading (first) clock edge, + rising or falling dependant on the value of SPOL */ + BLEIF_MSPICFG_SPHA_SAMPLE_TRAILING_EDGE = 1, /*!< SAMPLE_TRAILING_EDGE : Sample on the trailing (second) clock + edge, rising of falling dependant on the value of SPOL */ +} BLEIF_MSPICFG_SPHA_Enum; + +/* =============================================== BLEIF MSPICFG SPOL [0..0] =============================================== */ +typedef enum { /*!< BLEIF_MSPICFG_SPOL */ + BLEIF_MSPICFG_SPOL_CLK_BASE_0 = 0, /*!< CLK_BASE_0 : The initial value of the clock is 0. */ + BLEIF_MSPICFG_SPOL_CLK_BASE_1 = 1, /*!< CLK_BASE_1 : The initial value of the clock is 1. */ +} BLEIF_MSPICFG_SPOL_Enum; + +/* ======================================================== BLECFG ========================================================= */ +/* ============================================ BLEIF BLECFG SPIISOCTL [14..15] ============================================ */ +typedef enum { /*!< BLEIF_BLECFG_SPIISOCTL */ + BLEIF_BLECFG_SPIISOCTL_ON = 3, /*!< ON : SPI signals from BLE Core to/from MCU Core are isolated. */ + BLEIF_BLECFG_SPIISOCTL_OFF = 2, /*!< OFF : SPI signals from BLE Core to/from MCU Core are not isolated. */ + BLEIF_BLECFG_SPIISOCTL_AUTO = 0, /*!< AUTO : SPI signals from BLE Core to/from MCU Core are automatically + isolated by the logic */ +} BLEIF_BLECFG_SPIISOCTL_Enum; + +/* ============================================ BLEIF BLECFG PWRISOCTL [12..13] ============================================ */ +typedef enum { /*!< BLEIF_BLECFG_PWRISOCTL */ + BLEIF_BLECFG_PWRISOCTL_ON = 3, /*!< ON : BLEH power signal isolation to on (isolated). */ + BLEIF_BLECFG_PWRISOCTL_OFF = 2, /*!< OFF : BLEH power signal isolation to off (not isolated). */ + BLEIF_BLECFG_PWRISOCTL_AUTO = 0, /*!< AUTO : BLEH Power signal isolation is controlled automatically + through the interface logic */ +} BLEIF_BLECFG_PWRISOCTL_Enum; + +/* ============================================ BLEIF BLECFG BLEHREQCTL [6..7] ============================================= */ +typedef enum { /*!< BLEIF_BLECFG_BLEHREQCTL */ + BLEIF_BLECFG_BLEHREQCTL_ON = 3, /*!< ON : BLEH Power-on reg signal is set to on (1). */ + BLEIF_BLECFG_BLEHREQCTL_OFF = 2, /*!< OFF : BLEH Power-on signal is set to off (0). */ + BLEIF_BLECFG_BLEHREQCTL_AUTO = 0, /*!< AUTO : BLEH Power-on signal is controlled by the PWRSM logic + and automatically controlled */ +} BLEIF_BLECFG_BLEHREQCTL_Enum; + +/* ============================================ BLEIF BLECFG DCDCFLGCTL [4..5] ============================================= */ +typedef enum { /*!< BLEIF_BLECFG_DCDCFLGCTL */ + BLEIF_BLECFG_DCDCFLGCTL_ON = 3, /*!< ON : DCDC Flag signal is set to on (1). */ + BLEIF_BLECFG_DCDCFLGCTL_OFF = 2, /*!< OFF : DCDC Flag signal is set to off (0). */ + BLEIF_BLECFG_DCDCFLGCTL_AUTO = 0, /*!< AUTO : DCDC Flag signal is controlled by the PWRSM logic and + automatically controlled */ +} BLEIF_BLECFG_DCDCFLGCTL_Enum; + +/* ============================================= BLEIF BLECFG WAKEUPCTL [2..3] ============================================= */ +typedef enum { /*!< BLEIF_BLECFG_WAKEUPCTL */ + BLEIF_BLECFG_WAKEUPCTL_ON = 3, /*!< ON : Wake signal is set to on (1). */ + BLEIF_BLECFG_WAKEUPCTL_OFF = 2, /*!< OFF : Wake signal is set to off (0). */ + BLEIF_BLECFG_WAKEUPCTL_AUTO = 0, /*!< AUTO : Wake signal is controlled by the PWRSM logic and automatically + controlled */ +} BLEIF_BLECFG_WAKEUPCTL_Enum; + +/* ============================================== BLEIF BLECFG BLERSTN [1..1] ============================================== */ +typedef enum { /*!< BLEIF_BLECFG_BLERSTN */ + BLEIF_BLECFG_BLERSTN_ACTIVE = 1, /*!< ACTIVE : The reset signal is active (0) */ + BLEIF_BLECFG_BLERSTN_INACTIVE = 0, /*!< INACTIVE : The reset signal is inactive (1) */ +} BLEIF_BLECFG_BLERSTN_Enum; + +/* ============================================== BLEIF BLECFG PWRSMEN [0..0] ============================================== */ +typedef enum { /*!< BLEIF_BLECFG_PWRSMEN */ + BLEIF_BLECFG_PWRSMEN_ON = 1, /*!< ON : Internal power state machine is enabled and will sequence + the BLEH power domain as indicated in the design document. + Overrides for the power signals are not enabled. */ + BLEIF_BLECFG_PWRSMEN_OFF = 0, /*!< OFF : Internal power state machine is disabled and will not + sequence the BLEH power domain. The values of the overrides + will be used to drive the output sequencing signals */ +} BLEIF_BLECFG_PWRSMEN_Enum; + +/* ======================================================== PWRCMD ========================================================= */ +/* ======================================================== BSTATUS ======================================================== */ +/* ============================================== BLEIF BSTATUS PWRST [8..10] ============================================== */ +typedef enum { /*!< BLEIF_BSTATUS_PWRST */ + BLEIF_BSTATUS_PWRST_OFF = 0, /*!< OFF : Internal power state machine is disabled and will not + sequence the BLEH power domain. The values of the overrides + will be used to drive the output sequencing signals */ + BLEIF_BSTATUS_PWRST_INIT = 1, /*!< INIT : Initialization state. BLEH not powered */ + BLEIF_BSTATUS_PWRST_PWRON = 2, /*!< PWRON : Waiting for the powerup of the BLEH */ + BLEIF_BSTATUS_PWRST_ACTIVE = 3, /*!< ACTIVE : The BLE Core is powered and active */ + BLEIF_BSTATUS_PWRST_SLEEP = 6, /*!< SLEEP : The BLE Core has entered sleep mode and the power request + is inactive */ + BLEIF_BSTATUS_PWRST_SHUTDOWN = 4, /*!< SHUTDOWN : The BLE Core is in shutdown mode */ +} BLEIF_BSTATUS_PWRST_Enum; + +/* ============================================= BLEIF BSTATUS B2MSTATE [0..2] ============================================= */ +typedef enum { /*!< BLEIF_BSTATUS_B2MSTATE */ + BLEIF_BSTATUS_B2MSTATE_RESET = 0, /*!< RESET : Reset State */ + BLEIF_BSTATUS_B2MSTATE_Sleep = 1, /*!< Sleep : Sleep state. */ + BLEIF_BSTATUS_B2MSTATE_Standby = 2, /*!< Standby : Standby State */ + BLEIF_BSTATUS_B2MSTATE_Idle = 3, /*!< Idle : Idle state */ + BLEIF_BSTATUS_B2MSTATE_Active = 4, /*!< Active : Active state. */ +} BLEIF_BSTATUS_B2MSTATE_Enum; + +/* ======================================================== BLEDBG ========================================================= */ + + +/* =========================================================================================================================== */ +/* ================ CACHECTRL ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= CACHECFG ======================================================== */ +/* =========================================== CACHECTRL CACHECFG CONFIG [4..7] ============================================ */ +typedef enum { /*!< CACHECTRL_CACHECFG_CONFIG */ + CACHECTRL_CACHECFG_CONFIG_W1_128B_512E = 4, /*!< W1_128B_512E : Direct mapped, 128-bit linesize, 512 entries + (4 SRAMs active) */ + CACHECTRL_CACHECFG_CONFIG_W2_128B_512E = 5, /*!< W2_128B_512E : Two-way set associative, 128-bit linesize, 512 + entries (8 SRAMs active) */ + CACHECTRL_CACHECFG_CONFIG_W1_128B_1024E = 8, /*!< W1_128B_1024E : Direct mapped, 128-bit linesize, 1024 entries + (8 SRAMs active) */ +} CACHECTRL_CACHECFG_CONFIG_Enum; + +/* ========================================================= CTRL ========================================================== */ +/* =========================================== CACHECTRL CTRL RESET_STAT [1..1] ============================================ */ +typedef enum { /*!< CACHECTRL_CTRL_RESET_STAT */ + CACHECTRL_CTRL_RESET_STAT_CLEAR = 1, /*!< CLEAR : Clear Cache Stats */ +} CACHECTRL_CTRL_RESET_STAT_Enum; + +/* ======================================================= NCR0START ======================================================= */ +/* ======================================================== NCR0END ======================================================== */ +/* ======================================================= NCR1START ======================================================= */ +/* ======================================================== NCR1END ======================================================== */ +/* ========================================================= DMON0 ========================================================= */ +/* ========================================================= DMON1 ========================================================= */ +/* ========================================================= DMON2 ========================================================= */ +/* ========================================================= DMON3 ========================================================= */ +/* ========================================================= IMON0 ========================================================= */ +/* ========================================================= IMON1 ========================================================= */ +/* ========================================================= IMON2 ========================================================= */ +/* ========================================================= IMON3 ========================================================= */ +/* ======================================================= FLASH0CFG ======================================================= */ +/* ========================================= CACHECTRL FLASH0CFG LPMMODE0 [12..13] ========================================= */ +typedef enum { /*!< CACHECTRL_FLASH0CFG_LPMMODE0 */ + CACHECTRL_FLASH0CFG_LPMMODE0_NEVER = 0, /*!< NEVER : High power mode (LPM not used). */ + CACHECTRL_FLASH0CFG_LPMMODE0_STANDBY = 1, /*!< STANDBY : Fast Standby mode. LPM deasserted for read operations, + but asserted while flash IDLE. */ + CACHECTRL_FLASH0CFG_LPMMODE0_ALWAYS = 2, /*!< ALWAYS : Low Power mode. LPM always asserted for reads. LPM_RD_WAIT + must be programmed to accomodate longer read access times. */ +} CACHECTRL_FLASH0CFG_LPMMODE0_Enum; + +/* ======================================================= FLASH1CFG ======================================================= */ +/* ========================================= CACHECTRL FLASH1CFG LPMMODE1 [12..13] ========================================= */ +typedef enum { /*!< CACHECTRL_FLASH1CFG_LPMMODE1 */ + CACHECTRL_FLASH1CFG_LPMMODE1_NEVER = 0, /*!< NEVER : High power mode (LPM not used). */ + CACHECTRL_FLASH1CFG_LPMMODE1_STANDBY = 1, /*!< STANDBY : Fast Standby mode. LPM deasserted for read operations, + but asserted while flash IDLE. */ + CACHECTRL_FLASH1CFG_LPMMODE1_ALWAYS = 2, /*!< ALWAYS : Low Power mode. LPM always asserted for reads. LPM_RD_WAIT + must be programmed to accomodate longer read access times. */ +} CACHECTRL_FLASH1CFG_LPMMODE1_Enum; + +/* ======================================================= FLASH2CFG ======================================================= */ +/* ========================================= CACHECTRL FLASH2CFG LPMMODE2 [12..13] ========================================= */ +typedef enum { /*!< CACHECTRL_FLASH2CFG_LPMMODE2 */ + CACHECTRL_FLASH2CFG_LPMMODE2_NEVER = 0, /*!< NEVER : High power mode (LPM not used). */ + CACHECTRL_FLASH2CFG_LPMMODE2_STANDBY = 1, /*!< STANDBY : Fast Standby mode. LPM deasserted for read operations, + but asserted while flash IDLE. */ + CACHECTRL_FLASH2CFG_LPMMODE2_ALWAYS = 2, /*!< ALWAYS : Low Power mode. LPM always asserted for reads. LPM_RD_WAIT + must be programmed to accomodate longer read access times. */ +} CACHECTRL_FLASH2CFG_LPMMODE2_Enum; + +/* ======================================================= FLASH3CFG ======================================================= */ +/* ========================================= CACHECTRL FLASH3CFG LPMMODE3 [12..13] ========================================= */ +typedef enum { /*!< CACHECTRL_FLASH3CFG_LPMMODE3 */ + CACHECTRL_FLASH3CFG_LPMMODE3_NEVER = 0, /*!< NEVER : High power mode (LPM not used). */ + CACHECTRL_FLASH3CFG_LPMMODE3_STANDBY = 1, /*!< STANDBY : Fast Standby mode. LPM deasserted for read operations, + but asserted while flash IDLE. */ + CACHECTRL_FLASH3CFG_LPMMODE3_ALWAYS = 2, /*!< ALWAYS : Low Power mode. LPM always asserted for reads. LPM_RD_WAIT + must be programmed to accomodate longer read access times. */ +} CACHECTRL_FLASH3CFG_LPMMODE3_Enum; + + + +/* =========================================================================================================================== */ +/* ================ CLKGEN ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CALXT ========================================================= */ +/* ========================================================= CALRC ========================================================= */ +/* ======================================================== ACALCTR ======================================================== */ +/* ========================================================= OCTRL ========================================================= */ +/* =============================================== CLKGEN OCTRL ACAL [8..10] =============================================== */ +typedef enum { /*!< CLKGEN_OCTRL_ACAL */ + CLKGEN_OCTRL_ACAL_DIS = 0, /*!< DIS : Disable Autocalibration */ + CLKGEN_OCTRL_ACAL_1024SEC = 2, /*!< 1024SEC : Autocalibrate every 1024 seconds. Once autocalibration + is done, an interrupt will be triggered at the end of 1024 + seconds. */ + CLKGEN_OCTRL_ACAL_512SEC = 3, /*!< 512SEC : Autocalibrate every 512 seconds. Once autocalibration + is done, an interrupt will be trigged at the end of 512 + seconds. */ + CLKGEN_OCTRL_ACAL_XTFREQ = 6, /*!< XTFREQ : Frequency measurement using XT. The XT clock is normally + considered much more accurate than the LFRC clock source. */ + CLKGEN_OCTRL_ACAL_EXTFREQ = 7, /*!< EXTFREQ : Frequency measurement using external clock. */ +} CLKGEN_OCTRL_ACAL_Enum; + +/* =============================================== CLKGEN OCTRL OSEL [7..7] ================================================ */ +typedef enum { /*!< CLKGEN_OCTRL_OSEL */ + CLKGEN_OCTRL_OSEL_RTC_XT = 0, /*!< RTC_XT : RTC uses the XT */ + CLKGEN_OCTRL_OSEL_RTC_LFRC = 1, /*!< RTC_LFRC : RTC uses the LFRC */ +} CLKGEN_OCTRL_OSEL_Enum; + +/* ================================================ CLKGEN OCTRL FOS [6..6] ================================================ */ +typedef enum { /*!< CLKGEN_OCTRL_FOS */ + CLKGEN_OCTRL_FOS_DIS = 0, /*!< DIS : Disable the oscillator switch on failure function. */ + CLKGEN_OCTRL_FOS_EN = 1, /*!< EN : Enable the oscillator switch on failure function. */ +} CLKGEN_OCTRL_FOS_Enum; + +/* ============================================== CLKGEN OCTRL STOPRC [1..1] =============================================== */ +typedef enum { /*!< CLKGEN_OCTRL_STOPRC */ + CLKGEN_OCTRL_STOPRC_EN = 0, /*!< EN : Enable the LFRC Oscillator to drive the RTC */ + CLKGEN_OCTRL_STOPRC_STOP = 1, /*!< STOP : Stop the LFRC Oscillator when driving the RTC */ +} CLKGEN_OCTRL_STOPRC_Enum; + +/* ============================================== CLKGEN OCTRL STOPXT [0..0] =============================================== */ +typedef enum { /*!< CLKGEN_OCTRL_STOPXT */ + CLKGEN_OCTRL_STOPXT_EN = 0, /*!< EN : Enable the XT Oscillator to drive the RTC */ + CLKGEN_OCTRL_STOPXT_STOP = 1, /*!< STOP : Stop the XT Oscillator when driving the RTC */ +} CLKGEN_OCTRL_STOPXT_Enum; + +/* ======================================================== CLKOUT ========================================================= */ +/* =============================================== CLKGEN CLKOUT CKEN [7..7] =============================================== */ +typedef enum { /*!< CLKGEN_CLKOUT_CKEN */ + CLKGEN_CLKOUT_CKEN_DIS = 0, /*!< DIS : Disable CLKOUT */ + CLKGEN_CLKOUT_CKEN_EN = 1, /*!< EN : Enable CLKOUT */ +} CLKGEN_CLKOUT_CKEN_Enum; + +/* ============================================== CLKGEN CLKOUT CKSEL [0..5] =============================================== */ +typedef enum { /*!< CLKGEN_CLKOUT_CKSEL */ + CLKGEN_CLKOUT_CKSEL_LFRC = 0, /*!< LFRC : LFRC */ + CLKGEN_CLKOUT_CKSEL_XT_DIV2 = 1, /*!< XT_DIV2 : XT / 2 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV4 = 2, /*!< XT_DIV4 : XT / 4 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV8 = 3, /*!< XT_DIV8 : XT / 8 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV16 = 4, /*!< XT_DIV16 : XT / 16 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV32 = 5, /*!< XT_DIV32 : XT / 32 */ + CLKGEN_CLKOUT_CKSEL_RTC_1Hz = 16, /*!< RTC_1Hz : 1 Hz as selected in RTC */ + CLKGEN_CLKOUT_CKSEL_XT_DIV2M = 22, /*!< XT_DIV2M : XT / 2^21 */ + CLKGEN_CLKOUT_CKSEL_XT = 23, /*!< XT : XT */ + CLKGEN_CLKOUT_CKSEL_CG_100Hz = 24, /*!< CG_100Hz : 100 Hz as selected in CLKGEN */ + CLKGEN_CLKOUT_CKSEL_HFRC = 25, /*!< HFRC : HFRC */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV4 = 26, /*!< HFRC_DIV4 : HFRC / 4 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV8 = 27, /*!< HFRC_DIV8 : HFRC / 8 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV16 = 28, /*!< HFRC_DIV16 : HFRC / 16 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV64 = 29, /*!< HFRC_DIV64 : HFRC / 64 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV128 = 30, /*!< HFRC_DIV128 : HFRC / 128 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV256 = 31, /*!< HFRC_DIV256 : HFRC / 256 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV512 = 32, /*!< HFRC_DIV512 : HFRC / 512 */ + CLKGEN_CLKOUT_CKSEL_FLASH_CLK = 34, /*!< FLASH_CLK : Flash Clock */ + CLKGEN_CLKOUT_CKSEL_LFRC_DIV2 = 35, /*!< LFRC_DIV2 : LFRC / 2 */ + CLKGEN_CLKOUT_CKSEL_LFRC_DIV32 = 36, /*!< LFRC_DIV32 : LFRC / 32 */ + CLKGEN_CLKOUT_CKSEL_LFRC_DIV512 = 37, /*!< LFRC_DIV512 : LFRC / 512 */ + CLKGEN_CLKOUT_CKSEL_LFRC_DIV32K = 38, /*!< LFRC_DIV32K : LFRC / 32768 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV256 = 39, /*!< XT_DIV256 : XT / 256 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV8K = 40, /*!< XT_DIV8K : XT / 8192 */ + CLKGEN_CLKOUT_CKSEL_XT_DIV64K = 41, /*!< XT_DIV64K : XT / 2^16 */ + CLKGEN_CLKOUT_CKSEL_ULFRC_DIV16 = 42, /*!< ULFRC_DIV16 : Uncal LFRC / 16 */ + CLKGEN_CLKOUT_CKSEL_ULFRC_DIV128 = 43, /*!< ULFRC_DIV128 : Uncal LFRC / 128 */ + CLKGEN_CLKOUT_CKSEL_ULFRC_1Hz = 44, /*!< ULFRC_1Hz : Uncal LFRC / 1024 */ + CLKGEN_CLKOUT_CKSEL_ULFRC_DIV4K = 45, /*!< ULFRC_DIV4K : Uncal LFRC / 4096 */ + CLKGEN_CLKOUT_CKSEL_ULFRC_DIV1M = 46, /*!< ULFRC_DIV1M : Uncal LFRC / 2^20 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV64K = 47, /*!< HFRC_DIV64K : HFRC / 2^16 */ + CLKGEN_CLKOUT_CKSEL_HFRC_DIV16M = 48, /*!< HFRC_DIV16M : HFRC / 2^24 */ + CLKGEN_CLKOUT_CKSEL_LFRC_DIV1M = 49, /*!< LFRC_DIV1M : LFRC / 2^20 */ + CLKGEN_CLKOUT_CKSEL_HFRCNE = 50, /*!< HFRCNE : HFRC (not autoenabled) */ + CLKGEN_CLKOUT_CKSEL_HFRCNE_DIV8 = 51, /*!< HFRCNE_DIV8 : HFRC / 8 (not autoenabled) */ + CLKGEN_CLKOUT_CKSEL_XTNE = 53, /*!< XTNE : XT (not autoenabled) */ + CLKGEN_CLKOUT_CKSEL_XTNE_DIV16 = 54, /*!< XTNE_DIV16 : XT / 16 (not autoenabled) */ + CLKGEN_CLKOUT_CKSEL_LFRCNE_DIV32 = 55, /*!< LFRCNE_DIV32 : LFRC / 32 (not autoenabled) */ + CLKGEN_CLKOUT_CKSEL_LFRCNE = 57, /*!< LFRCNE : LFRC (not autoenabled) - Default for undefined values */ +} CLKGEN_CLKOUT_CKSEL_Enum; + +/* ======================================================== CLKKEY ========================================================= */ +/* ============================================= CLKGEN CLKKEY CLKKEY [0..31] ============================================== */ +typedef enum { /*!< CLKGEN_CLKKEY_CLKKEY */ + CLKGEN_CLKKEY_CLKKEY_Key = 71, /*!< Key : Key */ +} CLKGEN_CLKKEY_CLKKEY_Enum; + +/* ========================================================= CCTRL ========================================================= */ +/* ============================================== CLKGEN CCTRL CORESEL [0..0] ============================================== */ +typedef enum { /*!< CLKGEN_CCTRL_CORESEL */ + CLKGEN_CCTRL_CORESEL_HFRC = 0, /*!< HFRC : Core Clock is HFRC */ + CLKGEN_CCTRL_CORESEL_HFRC_DIV2 = 1, /*!< HFRC_DIV2 : Core Clock is HFRC / 2 */ +} CLKGEN_CCTRL_CORESEL_Enum; + +/* ======================================================== STATUS ========================================================= */ +/* ========================================================= HFADJ ========================================================= */ +/* ============================================ CLKGEN HFADJ HFADJGAIN [21..23] ============================================ */ +typedef enum { /*!< CLKGEN_HFADJ_HFADJGAIN */ + CLKGEN_HFADJ_HFADJGAIN_Gain_of_1 = 0, /*!< Gain_of_1 : HF Adjust with Gain of 1 */ + CLKGEN_HFADJ_HFADJGAIN_Gain_of_1_in_2 = 1, /*!< Gain_of_1_in_2 : HF Adjust with Gain of 0.5 */ + CLKGEN_HFADJ_HFADJGAIN_Gain_of_1_in_4 = 2, /*!< Gain_of_1_in_4 : HF Adjust with Gain of 0.25 */ + CLKGEN_HFADJ_HFADJGAIN_Gain_of_1_in_8 = 3, /*!< Gain_of_1_in_8 : HF Adjust with Gain of 0.125 */ + CLKGEN_HFADJ_HFADJGAIN_Gain_of_1_in_16 = 4, /*!< Gain_of_1_in_16 : HF Adjust with Gain of 0.0625 */ + CLKGEN_HFADJ_HFADJGAIN_Gain_of_1_in_32 = 5, /*!< Gain_of_1_in_32 : HF Adjust with Gain of 0.03125 */ +} CLKGEN_HFADJ_HFADJGAIN_Enum; + +/* ============================================ CLKGEN HFADJ HFWARMUP [20..20] ============================================= */ +typedef enum { /*!< CLKGEN_HFADJ_HFWARMUP */ + CLKGEN_HFADJ_HFWARMUP_1SEC = 0, /*!< 1SEC : Autoadjust XT warmup period = 1-2 seconds */ + CLKGEN_HFADJ_HFWARMUP_2SEC = 1, /*!< 2SEC : Autoadjust XT warmup period = 2-4 seconds */ +} CLKGEN_HFADJ_HFWARMUP_Enum; + +/* ============================================== CLKGEN HFADJ HFADJCK [1..3] ============================================== */ +typedef enum { /*!< CLKGEN_HFADJ_HFADJCK */ + CLKGEN_HFADJ_HFADJCK_4SEC = 0, /*!< 4SEC : Autoadjust repeat period = 4 seconds */ + CLKGEN_HFADJ_HFADJCK_16SEC = 1, /*!< 16SEC : Autoadjust repeat period = 16 seconds */ + CLKGEN_HFADJ_HFADJCK_32SEC = 2, /*!< 32SEC : Autoadjust repeat period = 32 seconds */ + CLKGEN_HFADJ_HFADJCK_64SEC = 3, /*!< 64SEC : Autoadjust repeat period = 64 seconds */ + CLKGEN_HFADJ_HFADJCK_128SEC = 4, /*!< 128SEC : Autoadjust repeat period = 128 seconds */ + CLKGEN_HFADJ_HFADJCK_256SEC = 5, /*!< 256SEC : Autoadjust repeat period = 256 seconds */ + CLKGEN_HFADJ_HFADJCK_512SEC = 6, /*!< 512SEC : Autoadjust repeat period = 512 seconds */ + CLKGEN_HFADJ_HFADJCK_1024SEC = 7, /*!< 1024SEC : Autoadjust repeat period = 1024 seconds */ +} CLKGEN_HFADJ_HFADJCK_Enum; + +/* ============================================== CLKGEN HFADJ HFADJEN [0..0] ============================================== */ +typedef enum { /*!< CLKGEN_HFADJ_HFADJEN */ + CLKGEN_HFADJ_HFADJEN_DIS = 0, /*!< DIS : Disable the HFRC adjustment */ + CLKGEN_HFADJ_HFADJEN_EN = 1, /*!< EN : Enable the HFRC adjustment */ +} CLKGEN_HFADJ_HFADJEN_Enum; + +/* ====================================================== CLOCKENSTAT ====================================================== */ +/* ======================================== CLKGEN CLOCKENSTAT CLOCKENSTAT [0..31] ========================================= */ +typedef enum { /*!< CLKGEN_CLOCKENSTAT_CLOCKENSTAT */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_ADC_CLKEN = 1, /*!< ADC_CLKEN : Clock enable for the ADC. */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_ACTIVITY_CLKEN = 2,/*!< APBDMA_ACTIVITY_CLKEN : Clock enable for the APBDMA ACTIVITY */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_AOH_CLKEN = 4,/*!< APBDMA_AOH_CLKEN : Clock enable for the APBDMA AOH DOMAIN */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_AOL_CLKEN = 8,/*!< APBDMA_AOL_CLKEN : Clock enable for the APBDMA AOL DOMAIN */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_APB_CLKEN = 16,/*!< APBDMA_APB_CLKEN : Clock enable for the APBDMA_APB */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_BLEL_CLKEN = 32,/*!< APBDMA_BLEL_CLKEN : Clock enable for the APBDMA_BLEL */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_HCPA_CLKEN = 64,/*!< APBDMA_HCPA_CLKEN : Clock enable for the APBDMA_HCPA */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_HCPB_CLKEN = 128,/*!< APBDMA_HCPB_CLKEN : Clock enable for the APBDMA_HCPB */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_HCPC_CLKEN = 256,/*!< APBDMA_HCPC_CLKEN : Clock enable for the APBDMA_HCPC */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_MSPI_CLKEN = 512,/*!< APBDMA_MSPI_CLKEN : Clock enable for the APBDMA_MSPI */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_MSPI1_CLKEN = 1024,/*!< APBDMA_MSPI1_CLKEN : Clock enable for the APBDMA_MSPI1 */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_MSPI2_CLKEN = 2048,/*!< APBDMA_MSPI2_CLKEN : Clock enable for the APBDMA_MSPI2 */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_APBDMA_PDM_CLKEN = 4096,/*!< APBDMA_PDM_CLKEN : Clock enable for the APBDMA_PDM */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_BLEIF_CLK_CLKEN = 8192,/*!< BLEIF_CLK_CLKEN : Clock enable for the BLEIF */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_BLEIF_CLK32K_CLKEN = 16384,/*!< BLEIF_CLK32K_CLKEN : Clock enable for the BLEIF 32khZ CLOCK */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER_CLKEN = 32768,/*!< CTIMER_CLKEN : Clock enable for the CTIMER BLOCK */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER0A_CLKEN = 65536,/*!< CTIMER0A_CLKEN : Clock enable for the CTIMER0A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER0B_CLKEN = 131072,/*!< CTIMER0B_CLKEN : Clock enable for the CTIMER0B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER1A_CLKEN = 262144,/*!< CTIMER1A_CLKEN : Clock enable for the CTIMER1A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER1B_CLKEN = 524288,/*!< CTIMER1B_CLKEN : Clock enable for the CTIMER1B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER2A_CLKEN = 1048576,/*!< CTIMER2A_CLKEN : Clock enable for the CTIMER2A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER2B_CLKEN = 2097152,/*!< CTIMER2B_CLKEN : Clock enable for the CTIMER2B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER3A_CLKEN = 4194304,/*!< CTIMER3A_CLKEN : Clock enable for the CTIMER3A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER3B_CLKEN = 8388608,/*!< CTIMER3B_CLKEN : Clock enable for the CTIMER3B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER4A_CLKEN = 16777216,/*!< CTIMER4A_CLKEN : Clock enable for the CTIMER4A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER4B_CLKEN = 33554432,/*!< CTIMER4B_CLKEN : Clock enable for the CTIMER4B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER5A_CLKEN = 67108864,/*!< CTIMER5A_CLKEN : Clock enable for the CTIMER5A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER5B_CLKEN = 134217728,/*!< CTIMER5B_CLKEN : Clock enable for the CTIMER5B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER6A_CLKEN = 268435456,/*!< CTIMER6A_CLKEN : Clock enable for the CTIMER6A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER6B_CLKEN = 536870912,/*!< CTIMER6B_CLKEN : Clock enable for the CTIMER6B */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER7A_CLKEN = 1073741824,/*!< CTIMER7A_CLKEN : Clock enable for the CTIMER7A */ + CLKGEN_CLOCKENSTAT_CLOCKENSTAT_CTIMER7B_CLKEN = -2147483648,/*!< CTIMER7B_CLKEN : Clock enable for the CTIMER7B */ +} CLKGEN_CLOCKENSTAT_CLOCKENSTAT_Enum; + +/* ===================================================== CLOCKEN2STAT ====================================================== */ +/* ======================================= CLKGEN CLOCKEN2STAT CLOCKEN2STAT [0..31] ======================================== */ +typedef enum { /*!< CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_DAP_CLKEN = 1,/*!< DAP_CLKEN : Clock enable for the DAP */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_IOMSTRIFC0_CLKEN = 2,/*!< IOMSTRIFC0_CLKEN : Clock enable for the IO MASTER 0 IFC INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_IOMSTRIFC1_CLKEN = 4,/*!< IOMSTRIFC1_CLKEN : Clock enable for the IO MASTER 1 IFC INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_IOMSTRIFC2_CLKEN = 8,/*!< IOMSTRIFC2_CLKEN : Clock enable for the IO MASTER 2 IFC INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_IOMSTRIFC3_CLKEN = 16,/*!< IOMSTRIFC3_CLKEN : Clock enable for the IO MASTER 3 IFC INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_IOMSTRIFC4_CLKEN = 32,/*!< IOMSTRIFC4_CLKEN : Clock enable for the IO MASTER 4 IFC INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_IOMSTRIFC5_CLKEN = 64,/*!< IOMSTRIFC5_CLKEN : Clock enable for the IO MASTER 5 IFC INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_PDM_CLKEN = 128,/*!< PDM_CLKEN : Clock enable for the PDM */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_PDMIFC_CLKEN = 256,/*!< PDMIFC_CLKEN : Clock enable for the PDM INTERFACE */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_PWRCTRL_CLKEN = 512,/*!< PWRCTRL_CLKEN : Clock enable for the PWRCTRL */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_PWRCTRL_COUNT_CLKEN = 1024,/*!< PWRCTRL_COUNT_CLKEN : Clock enable for the PWRCTRL counter */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_RSTGEN_CLKEN = 2048,/*!< RSTGEN_CLKEN : Clock enable for the RSTGEN */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_SCARD_CLKEN = 4096,/*!< SCARD_CLKEN : Clock enable for the SCARD */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_SCARD_ALTAPB_CLKEN = 8192,/*!< SCARD_ALTAPB_CLKEN : Clock enable for the SCARD ALTAPB */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_STIMER_CNT_CLKEN = 16384,/*!< STIMER_CNT_CLKEN : Clock enable for the STIMER_CNT_CLKEN */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_TPIU_CLKEN = 32768,/*!< TPIU_CLKEN : Clock enable for the TPIU_CLKEN */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_UART0HF_CLKEN = 65536,/*!< UART0HF_CLKEN : Clock enable for the UART0 HF */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_UART1HF_CLKEN = 131072,/*!< UART1HF_CLKEN : Clock enable for the UART1 HF */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_WDT_CLKEN = 262144,/*!< WDT_CLKEN : Clock enable for the Watchdog timer */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_XT_32KHZ_EN = 1073741824,/*!< XT_32KHZ_EN : Clock enable for the XT 32KHZ */ + CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_FORCEHFRC = -2147483648,/*!< FORCEHFRC : HFRC is forced on Status. */ +} CLKGEN_CLOCKEN2STAT_CLOCKEN2STAT_Enum; + +/* ===================================================== CLOCKEN3STAT ====================================================== */ +/* ======================================= CLKGEN CLOCKEN3STAT CLOCKEN3STAT [0..31] ======================================== */ +typedef enum { /*!< CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_DAP_enabled = 131072,/*!< DAP_enabled : DAP clock is enabled [17] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_VCOMP_enabled = 262144,/*!< VCOMP_enabled : VCOMP powerdown indicator [18] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_XTAL_enabled = 16777216,/*!< XTAL_enabled : XTAL is enabled [24] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_HFRC_enabled = 33554432,/*!< HFRC_enabled : HFRC is enabled [25] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_HFADJEN = 67108864,/*!< HFADJEN : HFRC Adjust enabled [26] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_HFRC_en_out = 134217728,/*!< HFRC_en_out : HFRC Enabled out [27] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_RTC_XT = 268435456,/*!< RTC_XT : RTC use XT [28] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_clkout_xtal_en = 536870912,/*!< clkout_xtal_en : XTAL clkout enabled [29] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_clkout_hfrc_en = 1073741824,/*!< clkout_hfrc_en : HFRC clkout enabled [30] */ + CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_flashclk_en = -2147483648,/*!< flashclk_en : Flash clk is enabled [31] */ +} CLKGEN_CLOCKEN3STAT_CLOCKEN3STAT_Enum; + +/* ======================================================= FREQCTRL ======================================================== */ +/* ============================================ CLKGEN FREQCTRL BURSTREQ [0..0] ============================================ */ +typedef enum { /*!< CLKGEN_FREQCTRL_BURSTREQ */ + CLKGEN_FREQCTRL_BURSTREQ_DIS = 0, /*!< DIS : Frequency for ARM core stays at 48MHz */ + CLKGEN_FREQCTRL_BURSTREQ_EN = 1, /*!< EN : Frequency for ARM core is increased to 96MHz */ +} CLKGEN_FREQCTRL_BURSTREQ_Enum; + +/* ===================================================== BLEBUCKTONADJ ===================================================== */ +/* ===================================== CLKGEN BLEBUCKTONADJ ZEROLENDETECTEN [27..27] ===================================== */ +typedef enum { /*!< CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTEN */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTEN_DIS = 0, /*!< DIS : Disable Zero Length Detect */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTEN_EN = 1, /*!< EN : Enable Zero Length Detect */ +} CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTEN_Enum; + +/* ==================================== CLKGEN BLEBUCKTONADJ ZEROLENDETECTTRIM [23..26] ==================================== */ +typedef enum { /*!< CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_SetF = 15,/*!< SetF : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 81us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_SetE = 14,/*!< SetE : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 75.6us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_SetD = 13,/*!< SetD : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 70.2us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_SetC = 12,/*!< SetC : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 64.8us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_SetB = 11,/*!< SetB : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 59.4us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_SetA = 10,/*!< SetA : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 54.0us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set9 = 9,/*!< Set9 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 48.6us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set8 = 8,/*!< Set8 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 43.2us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set7 = 7,/*!< Set7 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 37.8us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set6 = 6,/*!< Set6 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 32.4us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set5 = 5,/*!< Set5 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 27.0us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set4 = 4,/*!< Set4 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 21.6us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set3 = 3,/*!< Set3 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 16.2us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set2 = 2,/*!< Set2 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 10.8us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set1 = 1,/*!< Set1 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 5.4us (10 percent margin of error) or more */ + CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Set0 = 0,/*!< Set0 : Indicator send when the BLE BUCK asserts blebuck_comp1 + for about 2.0us (10 percent margin of error) or more */ +} CLKGEN_BLEBUCKTONADJ_ZEROLENDETECTTRIM_Enum; + +/* ======================================= CLKGEN BLEBUCKTONADJ TONADJUSTEN [22..22] ======================================= */ +typedef enum { /*!< CLKGEN_BLEBUCKTONADJ_TONADJUSTEN */ + CLKGEN_BLEBUCKTONADJ_TONADJUSTEN_DIS = 0, /*!< DIS : Disable Adjust for BLE BUCK TON trim */ + CLKGEN_BLEBUCKTONADJ_TONADJUSTEN_EN = 1, /*!< EN : Enable Adjust for BLE BUCK TON trim */ +} CLKGEN_BLEBUCKTONADJ_TONADJUSTEN_Enum; + +/* ===================================== CLKGEN BLEBUCKTONADJ TONADJUSTPERIOD [20..21] ===================================== */ +typedef enum { /*!< CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD */ + CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_HFRC_3KHz = 3,/*!< HFRC_3KHz : Adjust done for every 1 3KHz period */ + CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_HFRC_12KHz = 2,/*!< HFRC_12KHz : Adjust done for every 1 12KHz period */ + CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_HFRC_47KHz = 1,/*!< HFRC_47KHz : Adjust done for every 1 47KHz period */ + CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_HFRC_94KHz = 0,/*!< HFRC_94KHz : Adjust done for every 1 94KHz period */ +} CLKGEN_BLEBUCKTONADJ_TONADJUSTPERIOD_Enum; + +/* ======================================================= INTRPTEN ======================================================== */ +/* ====================================================== INTRPTSTAT ======================================================= */ +/* ======================================================= INTRPTCLR ======================================================= */ +/* ======================================================= INTRPTSET ======================================================= */ + + +/* =========================================================================================================================== */ +/* ================ CTIMER ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= TMR0 ========================================================== */ +/* ======================================================== CMPRA0 ========================================================= */ +/* ======================================================== CMPRB0 ========================================================= */ +/* ========================================================= CTRL0 ========================================================= */ +/* ============================================= CTIMER CTRL0 CTLINK0 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_CTLINK0 */ + CTIMER_CTRL0_CTLINK0_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A0/B0 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL0_CTLINK0_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A0/B0 timers into a single 32-bit timer. */ +} CTIMER_CTRL0_CTLINK0_Enum; + +/* ============================================ CTIMER CTRL0 TMRB0POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0POL */ + CTIMER_CTRL0_TMRB0POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB0 pin is the same as the + timer output. */ + CTIMER_CTRL0_TMRB0POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB0 pin is the inverse of + the timer output. */ +} CTIMER_CTRL0_TMRB0POL_Enum; + +/* ============================================ CTIMER CTRL0 TMRB0CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0CLR */ + CTIMER_CTRL0_TMRB0CLR_RUN = 0, /*!< RUN : Allow counter/timer B0 to run */ + CTIMER_CTRL0_TMRB0CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B0 at 0x0000. */ +} CTIMER_CTRL0_TMRB0CLR_Enum; + +/* ============================================ CTIMER CTRL0 TMRB0IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0IE1 */ + CTIMER_CTRL0_TMRB0IE1_DIS = 0, /*!< DIS : Disable counter/timer B0 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL0_TMRB0IE1_EN = 1, /*!< EN : Enable counter/timer B0 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL0_TMRB0IE1_Enum; + +/* ============================================ CTIMER CTRL0 TMRB0IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0IE0 */ + CTIMER_CTRL0_TMRB0IE0_DIS = 0, /*!< DIS : Disable counter/timer B0 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL0_TMRB0IE0_EN = 1, /*!< EN : Enable counter/timer B0 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL0_TMRB0IE0_Enum; + +/* ============================================= CTIMER CTRL0 TMRB0FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0FN */ + CTIMER_CTRL0_TMRB0FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B0, stop. */ + CTIMER_CTRL0_TMRB0FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B0, restart. */ + CTIMER_CTRL0_TMRB0FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B0, assert, + count to CMPR1B0, deassert, stop. */ + CTIMER_CTRL0_TMRB0FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B0, assert, count + to CMPR1B0, deassert, restart. */ + CTIMER_CTRL0_TMRB0FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL0_TMRB0FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL0_TMRB0FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL0_TMRB0FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL0_TMRB0FN_Enum; + +/* ============================================ CTIMER CTRL0 TMRB0CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0CLK */ + CTIMER_CTRL0_TMRB0CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL0_TMRB0CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL0_TMRB0CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL0_TMRB0CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL0_TMRB0CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL0_TMRB0CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL0_TMRB0CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL0_TMRB0CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL0_TMRB0CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL0_TMRB0CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL0_TMRB0CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL0_TMRB0CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL0_TMRB0CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL0_TMRB0CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL0_TMRB0CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL0_TMRB0CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL0_TMRB0CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL0_TMRB0CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL0_TMRB0CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL0_TMRB0CLK_CTMRA0 = 20, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRB1 = 21, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRA1 = 22, /*!< CTMRA1 : Clock source is CTIMERA1 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRA2 = 23, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRB2 = 24, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRB3 = 25, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRB4 = 26, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL0_TMRB0CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL0_TMRB0CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL0_TMRB0CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL0_TMRB0CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL0_TMRB0CLK_Enum; + +/* ============================================= CTIMER CTRL0 TMRB0EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRB0EN */ + CTIMER_CTRL0_TMRB0EN_DIS = 0, /*!< DIS : Counter/Timer B0 Disable. */ + CTIMER_CTRL0_TMRB0EN_EN = 1, /*!< EN : Counter/Timer B0 Enable. */ +} CTIMER_CTRL0_TMRB0EN_Enum; + +/* ============================================ CTIMER CTRL0 TMRA0POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0POL */ + CTIMER_CTRL0_TMRA0POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA0 pin is the same as the + timer output. */ + CTIMER_CTRL0_TMRA0POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA0 pin is the inverse of + the timer output. */ +} CTIMER_CTRL0_TMRA0POL_Enum; + +/* ============================================ CTIMER CTRL0 TMRA0CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0CLR */ + CTIMER_CTRL0_TMRA0CLR_RUN = 0, /*!< RUN : Allow counter/timer A0 to run */ + CTIMER_CTRL0_TMRA0CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A0 at 0x0000. */ +} CTIMER_CTRL0_TMRA0CLR_Enum; + +/* ============================================ CTIMER CTRL0 TMRA0IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0IE1 */ + CTIMER_CTRL0_TMRA0IE1_DIS = 0, /*!< DIS : Disable counter/timer A0 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL0_TMRA0IE1_EN = 1, /*!< EN : Enable counter/timer A0 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL0_TMRA0IE1_Enum; + +/* ============================================= CTIMER CTRL0 TMRA0IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0IE0 */ + CTIMER_CTRL0_TMRA0IE0_DIS = 0, /*!< DIS : Disable counter/timer A0 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL0_TMRA0IE0_EN = 1, /*!< EN : Enable counter/timer A0 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL0_TMRA0IE0_Enum; + +/* ============================================== CTIMER CTRL0 TMRA0FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0FN */ + CTIMER_CTRL0_TMRA0FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A0, stop. */ + CTIMER_CTRL0_TMRA0FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A0, restart. */ + CTIMER_CTRL0_TMRA0FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A0, assert, + count to CMPR1A0, deassert, stop. */ + CTIMER_CTRL0_TMRA0FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A0, assert, count + to CMPR1A0, deassert, restart. */ + CTIMER_CTRL0_TMRA0FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL0_TMRA0FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL0_TMRA0FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL0_TMRA0FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL0_TMRA0FN_Enum; + +/* ============================================= CTIMER CTRL0 TMRA0CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0CLK */ + CTIMER_CTRL0_TMRA0CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL0_TMRA0CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL0_TMRA0CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL0_TMRA0CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL0_TMRA0CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL0_TMRA0CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL0_TMRA0CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL0_TMRA0CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL0_TMRA0CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL0_TMRA0CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL0_TMRA0CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL0_TMRA0CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL0_TMRA0CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL0_TMRA0CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL0_TMRA0CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL0_TMRA0CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL0_TMRA0CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL0_TMRA0CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL0_TMRA0CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL0_TMRA0CLK_CTMRB0 = 20, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRA1 = 21, /*!< CTMRA1 : Clock source is CTIMERA1 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRB1 = 22, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRA2 = 23, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRB2 = 24, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRB3 = 25, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRB4 = 26, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL0_TMRA0CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL0_TMRA0CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL0_TMRA0CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL0_TMRA0CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL0_TMRA0CLK_Enum; + +/* ============================================== CTIMER CTRL0 TMRA0EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL0_TMRA0EN */ + CTIMER_CTRL0_TMRA0EN_DIS = 0, /*!< DIS : Counter/Timer A0 Disable. */ + CTIMER_CTRL0_TMRA0EN_EN = 1, /*!< EN : Counter/Timer A0 Enable. */ +} CTIMER_CTRL0_TMRA0EN_Enum; + +/* ======================================================= CMPRAUXA0 ======================================================= */ +/* ======================================================= CMPRAUXB0 ======================================================= */ +/* ========================================================= AUX0 ========================================================== */ +/* ============================================ CTIMER AUX0 TMRB0EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX0_TMRB0EN23 */ + CTIMER_AUX0_TMRB0EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX0_TMRB0EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX0_TMRB0EN23_Enum; + +/* ============================================ CTIMER AUX0 TMRB0POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX0_TMRB0POL23 */ + CTIMER_AUX0_TMRB0POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX0_TMRB0POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX0_TMRB0POL23_Enum; + +/* ============================================ CTIMER AUX0 TMRB0TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX0_TMRB0TINV */ + CTIMER_AUX0_TMRB0TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX0_TMRB0TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX0_TMRB0TINV_Enum; + +/* =========================================== CTIMER AUX0 TMRB0NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX0_TMRB0NOSYNC */ + CTIMER_AUX0_TMRB0NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX0_TMRB0NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX0_TMRB0NOSYNC_Enum; + +/* ============================================ CTIMER AUX0 TMRB0TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX0_TMRB0TRIG */ + CTIMER_AUX0_TMRB0TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX0_TMRB0TRIG_A0OUT = 1, /*!< A0OUT : Trigger source is CTIMERA0 OUT. */ + CTIMER_AUX0_TMRB0TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX0_TMRB0TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX0_TMRB0TRIG_B2OUT = 4, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX0_TMRB0TRIG_B5OUT = 5, /*!< B5OUT : Trigger source is CTIMERB5 OUT. */ + CTIMER_AUX0_TMRB0TRIG_A4OUT = 6, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX0_TMRB0TRIG_B4OUT = 7, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX0_TMRB0TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX0_TMRB0TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX0_TMRB0TRIG_B7OUT2 = 10, /*!< B7OUT2 : Trigger source is CTIMERB7 OUT2. */ + CTIMER_AUX0_TMRB0TRIG_A2OUT2 = 11, /*!< A2OUT2 : Trigger source is CTIMERA2 OUT2. */ + CTIMER_AUX0_TMRB0TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX0_TMRB0TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX0_TMRB0TRIG_B5OUT2DUAL = 14, /*!< B5OUT2DUAL : Trigger source is CTIMERB5 OUT2, dual edge. */ + CTIMER_AUX0_TMRB0TRIG_A5OUT2DUAL = 15, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ +} CTIMER_AUX0_TMRB0TRIG_Enum; + +/* ============================================ CTIMER AUX0 TMRA0EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX0_TMRA0EN23 */ + CTIMER_AUX0_TMRA0EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX0_TMRA0EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX0_TMRA0EN23_Enum; + +/* ============================================ CTIMER AUX0 TMRA0POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX0_TMRA0POL23 */ + CTIMER_AUX0_TMRA0POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX0_TMRA0POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX0_TMRA0POL23_Enum; + +/* ============================================ CTIMER AUX0 TMRA0TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX0_TMRA0TINV */ + CTIMER_AUX0_TMRA0TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX0_TMRA0TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX0_TMRA0TINV_Enum; + +/* =========================================== CTIMER AUX0 TMRA0NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX0_TMRA0NOSYNC */ + CTIMER_AUX0_TMRA0NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX0_TMRA0NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX0_TMRA0NOSYNC_Enum; + +/* ============================================= CTIMER AUX0 TMRA0TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX0_TMRA0TRIG */ + CTIMER_AUX0_TMRA0TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX0_TMRA0TRIG_B0OUT = 1, /*!< B0OUT : Trigger source is CTIMERB0 OUT. */ + CTIMER_AUX0_TMRA0TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX0_TMRA0TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX0_TMRA0TRIG_A1OUT = 4, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX0_TMRA0TRIG_B1OUT = 5, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX0_TMRA0TRIG_A5OUT = 6, /*!< A5OUT : Trigger source is CTIMERA5 OUT. */ + CTIMER_AUX0_TMRA0TRIG_B5OUT = 7, /*!< B5OUT : Trigger source is CTIMERB5 OUT. */ + CTIMER_AUX0_TMRA0TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX0_TMRA0TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX0_TMRA0TRIG_B6OUT2 = 10, /*!< B6OUT2 : Trigger source is CTIMERB6 OUT2. */ + CTIMER_AUX0_TMRA0TRIG_A2OUT2 = 11, /*!< A2OUT2 : Trigger source is CTIMERA2 OUT2. */ + CTIMER_AUX0_TMRA0TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX0_TMRA0TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX0_TMRA0TRIG_B4OUT2DUAL = 14, /*!< B4OUT2DUAL : Trigger source is CTIMERB4 OUT2, dual edge. */ + CTIMER_AUX0_TMRA0TRIG_A4OUT2DUAL = 15, /*!< A4OUT2DUAL : Trigger source is CTIMERA4 OUT2, dual edge. */ +} CTIMER_AUX0_TMRA0TRIG_Enum; + +/* ========================================================= TMR1 ========================================================== */ +/* ======================================================== CMPRA1 ========================================================= */ +/* ======================================================== CMPRB1 ========================================================= */ +/* ========================================================= CTRL1 ========================================================= */ +/* ============================================= CTIMER CTRL1 CTLINK1 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_CTLINK1 */ + CTIMER_CTRL1_CTLINK1_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A1/B1 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL1_CTLINK1_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A1/B1 timers into a single 32-bit timer. */ +} CTIMER_CTRL1_CTLINK1_Enum; + +/* ============================================ CTIMER CTRL1 TMRB1POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1POL */ + CTIMER_CTRL1_TMRB1POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB1 pin is the same as the + timer output. */ + CTIMER_CTRL1_TMRB1POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB1 pin is the inverse of + the timer output. */ +} CTIMER_CTRL1_TMRB1POL_Enum; + +/* ============================================ CTIMER CTRL1 TMRB1CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1CLR */ + CTIMER_CTRL1_TMRB1CLR_RUN = 0, /*!< RUN : Allow counter/timer B1 to run */ + CTIMER_CTRL1_TMRB1CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B1 at 0x0000. */ +} CTIMER_CTRL1_TMRB1CLR_Enum; + +/* ============================================ CTIMER CTRL1 TMRB1IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1IE1 */ + CTIMER_CTRL1_TMRB1IE1_DIS = 0, /*!< DIS : Disable counter/timer B1 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL1_TMRB1IE1_EN = 1, /*!< EN : Enable counter/timer B1 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL1_TMRB1IE1_Enum; + +/* ============================================ CTIMER CTRL1 TMRB1IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1IE0 */ + CTIMER_CTRL1_TMRB1IE0_DIS = 0, /*!< DIS : Disable counter/timer B1 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL1_TMRB1IE0_EN = 1, /*!< EN : Enable counter/timer B1 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL1_TMRB1IE0_Enum; + +/* ============================================= CTIMER CTRL1 TMRB1FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1FN */ + CTIMER_CTRL1_TMRB1FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B1, stop. */ + CTIMER_CTRL1_TMRB1FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B1, restart. */ + CTIMER_CTRL1_TMRB1FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B1, assert, + count to CMPR1B1, deassert, stop. */ + CTIMER_CTRL1_TMRB1FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B1, assert, count + to CMPR1B1, deassert, restart. */ + CTIMER_CTRL1_TMRB1FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL1_TMRB1FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL1_TMRB1FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL1_TMRB1FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL1_TMRB1FN_Enum; + +/* ============================================ CTIMER CTRL1 TMRB1CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1CLK */ + CTIMER_CTRL1_TMRB1CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL1_TMRB1CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL1_TMRB1CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL1_TMRB1CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL1_TMRB1CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL1_TMRB1CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL1_TMRB1CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL1_TMRB1CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL1_TMRB1CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL1_TMRB1CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL1_TMRB1CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL1_TMRB1CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL1_TMRB1CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL1_TMRB1CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL1_TMRB1CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL1_TMRB1CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL1_TMRB1CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL1_TMRB1CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL1_TMRB1CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL1_TMRB1CLK_CTMRA1 = 20, /*!< CTMRA1 : Clock source is CTIMERA1 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRA0 = 21, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRB0 = 22, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRA2 = 23, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRB2 = 24, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRB3 = 25, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRB4 = 26, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL1_TMRB1CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL1_TMRB1CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL1_TMRB1CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL1_TMRB1CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL1_TMRB1CLK_Enum; + +/* ============================================= CTIMER CTRL1 TMRB1EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRB1EN */ + CTIMER_CTRL1_TMRB1EN_DIS = 0, /*!< DIS : Counter/Timer B1 Disable. */ + CTIMER_CTRL1_TMRB1EN_EN = 1, /*!< EN : Counter/Timer B1 Enable. */ +} CTIMER_CTRL1_TMRB1EN_Enum; + +/* ============================================ CTIMER CTRL1 TMRA1POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1POL */ + CTIMER_CTRL1_TMRA1POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA1 pin is the same as the + timer output. */ + CTIMER_CTRL1_TMRA1POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA1 pin is the inverse of + the timer output. */ +} CTIMER_CTRL1_TMRA1POL_Enum; + +/* ============================================ CTIMER CTRL1 TMRA1CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1CLR */ + CTIMER_CTRL1_TMRA1CLR_RUN = 0, /*!< RUN : Allow counter/timer A1 to run */ + CTIMER_CTRL1_TMRA1CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A1 at 0x0000. */ +} CTIMER_CTRL1_TMRA1CLR_Enum; + +/* ============================================ CTIMER CTRL1 TMRA1IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1IE1 */ + CTIMER_CTRL1_TMRA1IE1_DIS = 0, /*!< DIS : Disable counter/timer A1 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL1_TMRA1IE1_EN = 1, /*!< EN : Enable counter/timer A1 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL1_TMRA1IE1_Enum; + +/* ============================================= CTIMER CTRL1 TMRA1IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1IE0 */ + CTIMER_CTRL1_TMRA1IE0_DIS = 0, /*!< DIS : Disable counter/timer A1 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL1_TMRA1IE0_EN = 1, /*!< EN : Enable counter/timer A1 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL1_TMRA1IE0_Enum; + +/* ============================================== CTIMER CTRL1 TMRA1FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1FN */ + CTIMER_CTRL1_TMRA1FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A1, stop. */ + CTIMER_CTRL1_TMRA1FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A1, restart. */ + CTIMER_CTRL1_TMRA1FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A1, assert, + count to CMPR1A1, deassert, stop. */ + CTIMER_CTRL1_TMRA1FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A1, assert, count + to CMPR1A1, deassert, restart. */ + CTIMER_CTRL1_TMRA1FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL1_TMRA1FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL1_TMRA1FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL1_TMRA1FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL1_TMRA1FN_Enum; + +/* ============================================= CTIMER CTRL1 TMRA1CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1CLK */ + CTIMER_CTRL1_TMRA1CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL1_TMRA1CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL1_TMRA1CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL1_TMRA1CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL1_TMRA1CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL1_TMRA1CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL1_TMRA1CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL1_TMRA1CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL1_TMRA1CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL1_TMRA1CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL1_TMRA1CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL1_TMRA1CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL1_TMRA1CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL1_TMRA1CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL1_TMRA1CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL1_TMRA1CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL1_TMRA1CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL1_TMRA1CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL1_TMRA1CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL1_TMRA1CLK_CTMRB1 = 20, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRA0 = 21, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRB0 = 22, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRA2 = 23, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRB2 = 24, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRB3 = 25, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRB4 = 26, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL1_TMRA1CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL1_TMRA1CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL1_TMRA1CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL1_TMRA1CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL1_TMRA1CLK_Enum; + +/* ============================================== CTIMER CTRL1 TMRA1EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL1_TMRA1EN */ + CTIMER_CTRL1_TMRA1EN_DIS = 0, /*!< DIS : Counter/Timer A1 Disable. */ + CTIMER_CTRL1_TMRA1EN_EN = 1, /*!< EN : Counter/Timer A1 Enable. */ +} CTIMER_CTRL1_TMRA1EN_Enum; + +/* ======================================================= CMPRAUXA1 ======================================================= */ +/* ======================================================= CMPRAUXB1 ======================================================= */ +/* ========================================================= AUX1 ========================================================== */ +/* ============================================ CTIMER AUX1 TMRB1EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX1_TMRB1EN23 */ + CTIMER_AUX1_TMRB1EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX1_TMRB1EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX1_TMRB1EN23_Enum; + +/* ============================================ CTIMER AUX1 TMRB1POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX1_TMRB1POL23 */ + CTIMER_AUX1_TMRB1POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX1_TMRB1POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX1_TMRB1POL23_Enum; + +/* ============================================ CTIMER AUX1 TMRB1TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX1_TMRB1TINV */ + CTIMER_AUX1_TMRB1TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX1_TMRB1TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX1_TMRB1TINV_Enum; + +/* =========================================== CTIMER AUX1 TMRB1NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX1_TMRB1NOSYNC */ + CTIMER_AUX1_TMRB1NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX1_TMRB1NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX1_TMRB1NOSYNC_Enum; + +/* ============================================ CTIMER AUX1 TMRB1TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX1_TMRB1TRIG */ + CTIMER_AUX1_TMRB1TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX1_TMRB1TRIG_A1OUT = 1, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX1_TMRB1TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX1_TMRB1TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX1_TMRB1TRIG_A6OUT = 4, /*!< A6OUT : Trigger source is CTIMERA6 OUT. */ + CTIMER_AUX1_TMRB1TRIG_B6OUT = 5, /*!< B6OUT : Trigger source is CTIMERB6 OUT. */ + CTIMER_AUX1_TMRB1TRIG_A0OUT = 6, /*!< A0OUT : Trigger source is CTIMERA0 OUT. */ + CTIMER_AUX1_TMRB1TRIG_B0OUT = 7, /*!< B0OUT : Trigger source is CTIMERB0 OUT. */ + CTIMER_AUX1_TMRB1TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX1_TMRB1TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX1_TMRB1TRIG_A4OUT2 = 10, /*!< A4OUT2 : Trigger source is CTIMERA4 OUT2. */ + CTIMER_AUX1_TMRB1TRIG_B4OUT2 = 11, /*!< B4OUT2 : Trigger source is CTIMERB4 OUT2. */ + CTIMER_AUX1_TMRB1TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX1_TMRB1TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX1_TMRB1TRIG_B5OUT2DUAL = 14, /*!< B5OUT2DUAL : Trigger source is CTIMERB5 OUT2, dual edge. */ + CTIMER_AUX1_TMRB1TRIG_A5OUT2DUAL = 15, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ +} CTIMER_AUX1_TMRB1TRIG_Enum; + +/* ============================================ CTIMER AUX1 TMRA1EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX1_TMRA1EN23 */ + CTIMER_AUX1_TMRA1EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX1_TMRA1EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX1_TMRA1EN23_Enum; + +/* ============================================ CTIMER AUX1 TMRA1POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX1_TMRA1POL23 */ + CTIMER_AUX1_TMRA1POL23_NORMAL = 0, /*!< NORMAL : Upper output normal polarity */ + CTIMER_AUX1_TMRA1POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX1_TMRA1POL23_Enum; + +/* ============================================ CTIMER AUX1 TMRA1TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX1_TMRA1TINV */ + CTIMER_AUX1_TMRA1TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX1_TMRA1TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX1_TMRA1TINV_Enum; + +/* =========================================== CTIMER AUX1 TMRA1NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX1_TMRA1NOSYNC */ + CTIMER_AUX1_TMRA1NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX1_TMRA1NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX1_TMRA1NOSYNC_Enum; + +/* ============================================= CTIMER AUX1 TMRA1TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX1_TMRA1TRIG */ + CTIMER_AUX1_TMRA1TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX1_TMRA1TRIG_B1OUT = 1, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX1_TMRA1TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX1_TMRA1TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX1_TMRA1TRIG_A0OUT = 4, /*!< A0OUT : Trigger source is CTIMERA0 OUT. */ + CTIMER_AUX1_TMRA1TRIG_B0OUT = 5, /*!< B0OUT : Trigger source is CTIMERB0 OUT. */ + CTIMER_AUX1_TMRA1TRIG_A5OUT = 6, /*!< A5OUT : Trigger source is CTIMERA5 OUT. */ + CTIMER_AUX1_TMRA1TRIG_B5OUT = 7, /*!< B5OUT : Trigger source is CTIMERB5 OUT. */ + CTIMER_AUX1_TMRA1TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX1_TMRA1TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX1_TMRA1TRIG_A4OUT2 = 10, /*!< A4OUT2 : Trigger source is CTIMERA4 OUT2. */ + CTIMER_AUX1_TMRA1TRIG_B4OUT2 = 11, /*!< B4OUT2 : Trigger source is CTIMERB4 OUT2. */ + CTIMER_AUX1_TMRA1TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX1_TMRA1TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX1_TMRA1TRIG_B5OUT2DUAL = 14, /*!< B5OUT2DUAL : Trigger source is CTIMERB5 OUT2, dual edge. */ + CTIMER_AUX1_TMRA1TRIG_A5OUT2DUAL = 15, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ +} CTIMER_AUX1_TMRA1TRIG_Enum; + +/* ========================================================= TMR2 ========================================================== */ +/* ======================================================== CMPRA2 ========================================================= */ +/* ======================================================== CMPRB2 ========================================================= */ +/* ========================================================= CTRL2 ========================================================= */ +/* ============================================= CTIMER CTRL2 CTLINK2 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_CTLINK2 */ + CTIMER_CTRL2_CTLINK2_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A2/B2 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL2_CTLINK2_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A2/B2 timers into a single 32-bit timer. */ +} CTIMER_CTRL2_CTLINK2_Enum; + +/* ============================================ CTIMER CTRL2 TMRB2POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2POL */ + CTIMER_CTRL2_TMRB2POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB2 pin is the same as the + timer output. */ + CTIMER_CTRL2_TMRB2POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB2 pin is the inverse of + the timer output. */ +} CTIMER_CTRL2_TMRB2POL_Enum; + +/* ============================================ CTIMER CTRL2 TMRB2CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2CLR */ + CTIMER_CTRL2_TMRB2CLR_RUN = 0, /*!< RUN : Allow counter/timer B2 to run */ + CTIMER_CTRL2_TMRB2CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B2 at 0x0000. */ +} CTIMER_CTRL2_TMRB2CLR_Enum; + +/* ============================================ CTIMER CTRL2 TMRB2IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2IE1 */ + CTIMER_CTRL2_TMRB2IE1_DIS = 0, /*!< DIS : Disable counter/timer B2 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL2_TMRB2IE1_EN = 1, /*!< EN : Enable counter/timer B2 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL2_TMRB2IE1_Enum; + +/* ============================================ CTIMER CTRL2 TMRB2IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2IE0 */ + CTIMER_CTRL2_TMRB2IE0_DIS = 0, /*!< DIS : Disable counter/timer B2 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL2_TMRB2IE0_EN = 1, /*!< EN : Enable counter/timer B2 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL2_TMRB2IE0_Enum; + +/* ============================================= CTIMER CTRL2 TMRB2FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2FN */ + CTIMER_CTRL2_TMRB2FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B2, stop. */ + CTIMER_CTRL2_TMRB2FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B2, restart. */ + CTIMER_CTRL2_TMRB2FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B2, assert, + count to CMPR1B2, deassert, stop. */ + CTIMER_CTRL2_TMRB2FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B2, assert, count + to CMPR1B2, deassert, restart. */ + CTIMER_CTRL2_TMRB2FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL2_TMRB2FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL2_TMRB2FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL2_TMRB2FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL2_TMRB2FN_Enum; + +/* ============================================ CTIMER CTRL2 TMRB2CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2CLK */ + CTIMER_CTRL2_TMRB2CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL2_TMRB2CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL2_TMRB2CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL2_TMRB2CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL2_TMRB2CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL2_TMRB2CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL2_TMRB2CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL2_TMRB2CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL2_TMRB2CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL2_TMRB2CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL2_TMRB2CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL2_TMRB2CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL2_TMRB2CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL2_TMRB2CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL2_TMRB2CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL2_TMRB2CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL2_TMRB2CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL2_TMRB2CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL2_TMRB2CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL2_TMRB2CLK_CTMRA2 = 20, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRB3 = 21, /*!< CTMRB3 : Clock source is CTIMERA3 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRA3 = 22, /*!< CTMRA3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRA4 = 23, /*!< CTMRA4 : Clock source is CTIMERA4 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRB4 = 24, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRB1 = 26, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL2_TMRB2CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL2_TMRB2CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL2_TMRB2CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL2_TMRB2CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL2_TMRB2CLK_Enum; + +/* ============================================= CTIMER CTRL2 TMRB2EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRB2EN */ + CTIMER_CTRL2_TMRB2EN_DIS = 0, /*!< DIS : Counter/Timer B2 Disable. */ + CTIMER_CTRL2_TMRB2EN_EN = 1, /*!< EN : Counter/Timer B2 Enable. */ +} CTIMER_CTRL2_TMRB2EN_Enum; + +/* ============================================ CTIMER CTRL2 TMRA2POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2POL */ + CTIMER_CTRL2_TMRA2POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA2 pin is the same as the + timer output. */ + CTIMER_CTRL2_TMRA2POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA2 pin is the inverse of + the timer output. */ +} CTIMER_CTRL2_TMRA2POL_Enum; + +/* ============================================ CTIMER CTRL2 TMRA2CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2CLR */ + CTIMER_CTRL2_TMRA2CLR_RUN = 0, /*!< RUN : Allow counter/timer A2 to run */ + CTIMER_CTRL2_TMRA2CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A2 at 0x0000. */ +} CTIMER_CTRL2_TMRA2CLR_Enum; + +/* ============================================ CTIMER CTRL2 TMRA2IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2IE1 */ + CTIMER_CTRL2_TMRA2IE1_DIS = 0, /*!< DIS : Disable counter/timer A2 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL2_TMRA2IE1_EN = 1, /*!< EN : Enable counter/timer A2 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL2_TMRA2IE1_Enum; + +/* ============================================= CTIMER CTRL2 TMRA2IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2IE0 */ + CTIMER_CTRL2_TMRA2IE0_DIS = 0, /*!< DIS : Disable counter/timer A2 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL2_TMRA2IE0_EN = 1, /*!< EN : Enable counter/timer A2 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL2_TMRA2IE0_Enum; + +/* ============================================== CTIMER CTRL2 TMRA2FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2FN */ + CTIMER_CTRL2_TMRA2FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A2, stop. */ + CTIMER_CTRL2_TMRA2FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A2, restart. */ + CTIMER_CTRL2_TMRA2FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A2, assert, + count to CMPR1A2, deassert, stop. */ + CTIMER_CTRL2_TMRA2FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A2, assert, count + to CMPR1A2, deassert, restart. */ + CTIMER_CTRL2_TMRA2FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL2_TMRA2FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL2_TMRA2FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL2_TMRA2FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL2_TMRA2FN_Enum; + +/* ============================================= CTIMER CTRL2 TMRA2CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2CLK */ + CTIMER_CTRL2_TMRA2CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL2_TMRA2CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL2_TMRA2CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL2_TMRA2CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL2_TMRA2CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL2_TMRA2CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL2_TMRA2CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL2_TMRA2CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL2_TMRA2CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL2_TMRA2CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL2_TMRA2CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL2_TMRA2CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL2_TMRA2CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL2_TMRA2CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL2_TMRA2CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL2_TMRA2CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL2_TMRA2CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL2_TMRA2CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL2_TMRA2CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL2_TMRA2CLK_CTMRB2 = 20, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRB3 = 21, /*!< CTMRB3 : Clock source is CTIMERA3 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRA3 = 22, /*!< CTMRA3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRA4 = 23, /*!< CTMRA4 : Clock source is CTIMERA4 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRB4 = 24, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRB1 = 26, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL2_TMRA2CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL2_TMRA2CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL2_TMRA2CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL2_TMRA2CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL2_TMRA2CLK_Enum; + +/* ============================================== CTIMER CTRL2 TMRA2EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL2_TMRA2EN */ + CTIMER_CTRL2_TMRA2EN_DIS = 0, /*!< DIS : Counter/Timer A2 Disable. */ + CTIMER_CTRL2_TMRA2EN_EN = 1, /*!< EN : Counter/Timer A2 Enable. */ +} CTIMER_CTRL2_TMRA2EN_Enum; + +/* ======================================================= CMPRAUXA2 ======================================================= */ +/* ======================================================= CMPRAUXB2 ======================================================= */ +/* ========================================================= AUX2 ========================================================== */ +/* ============================================ CTIMER AUX2 TMRB2EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX2_TMRB2EN23 */ + CTIMER_AUX2_TMRB2EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX2_TMRB2EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX2_TMRB2EN23_Enum; + +/* ============================================ CTIMER AUX2 TMRB2POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX2_TMRB2POL23 */ + CTIMER_AUX2_TMRB2POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX2_TMRB2POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX2_TMRB2POL23_Enum; + +/* ============================================ CTIMER AUX2 TMRB2TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX2_TMRB2TINV */ + CTIMER_AUX2_TMRB2TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX2_TMRB2TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX2_TMRB2TINV_Enum; + +/* =========================================== CTIMER AUX2 TMRB2NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX2_TMRB2NOSYNC */ + CTIMER_AUX2_TMRB2NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX2_TMRB2NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX2_TMRB2NOSYNC_Enum; + +/* ============================================ CTIMER AUX2 TMRB2TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX2_TMRB2TRIG */ + CTIMER_AUX2_TMRB2TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX2_TMRB2TRIG_A2OUT = 1, /*!< A2OUT : Trigger source is CTIMERA2 OUT. */ + CTIMER_AUX2_TMRB2TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX2_TMRB2TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX2_TMRB2TRIG_A1OUT = 4, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX2_TMRB2TRIG_B1OUT = 5, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX2_TMRB2TRIG_A4OUT = 6, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX2_TMRB2TRIG_B4OUT = 7, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX2_TMRB2TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX2_TMRB2TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX2_TMRB2TRIG_A5OUT2 = 10, /*!< A5OUT2 : Trigger source is CTIMERA5 OUT2. */ + CTIMER_AUX2_TMRB2TRIG_B5OUT2 = 11, /*!< B5OUT2 : Trigger source is CTIMERB5 OUT2. */ + CTIMER_AUX2_TMRB2TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX2_TMRB2TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX2_TMRB2TRIG_B4OUT2DUAL = 14, /*!< B4OUT2DUAL : Trigger source is CTIMERB4 OUT2, dual edge. */ + CTIMER_AUX2_TMRB2TRIG_A4OUT2DUAL = 15, /*!< A4OUT2DUAL : Trigger source is CTIMERA4 OUT2, dual edge. */ +} CTIMER_AUX2_TMRB2TRIG_Enum; + +/* ============================================ CTIMER AUX2 TMRA2EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX2_TMRA2EN23 */ + CTIMER_AUX2_TMRA2EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX2_TMRA2EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX2_TMRA2EN23_Enum; + +/* ============================================ CTIMER AUX2 TMRA2POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX2_TMRA2POL23 */ + CTIMER_AUX2_TMRA2POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX2_TMRA2POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX2_TMRA2POL23_Enum; + +/* ============================================ CTIMER AUX2 TMRA2TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX2_TMRA2TINV */ + CTIMER_AUX2_TMRA2TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX2_TMRA2TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX2_TMRA2TINV_Enum; + +/* =========================================== CTIMER AUX2 TMRA2NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX2_TMRA2NOSYNC */ + CTIMER_AUX2_TMRA2NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX2_TMRA2NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX2_TMRA2NOSYNC_Enum; + +/* ============================================= CTIMER AUX2 TMRA2TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX2_TMRA2TRIG */ + CTIMER_AUX2_TMRA2TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX2_TMRA2TRIG_B2OUT = 1, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX2_TMRA2TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX2_TMRA2TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX2_TMRA2TRIG_A0OUT = 4, /*!< A0OUT : Trigger source is CTIMERA0 OUT. */ + CTIMER_AUX2_TMRA2TRIG_B0OUT = 5, /*!< B0OUT : Trigger source is CTIMERB0 OUT. */ + CTIMER_AUX2_TMRA2TRIG_A4OUT = 6, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX2_TMRA2TRIG_B4OUT = 7, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX2_TMRA2TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX2_TMRA2TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX2_TMRA2TRIG_A5OUT2 = 10, /*!< A5OUT2 : Trigger source is CTIMERA5 OUT2. */ + CTIMER_AUX2_TMRA2TRIG_B5OUT2 = 11, /*!< B5OUT2 : Trigger source is CTIMERB5 OUT2. */ + CTIMER_AUX2_TMRA2TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX2_TMRA2TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX2_TMRA2TRIG_B4OUT2DUAL = 14, /*!< B4OUT2DUAL : Trigger source is CTIMERB4 OUT2, dual edge. */ + CTIMER_AUX2_TMRA2TRIG_A4OUT2DUAL = 15, /*!< A4OUT2DUAL : Trigger source is CTIMERA4 OUT2, dual edge. */ +} CTIMER_AUX2_TMRA2TRIG_Enum; + +/* ========================================================= TMR3 ========================================================== */ +/* ======================================================== CMPRA3 ========================================================= */ +/* ======================================================== CMPRB3 ========================================================= */ +/* ========================================================= CTRL3 ========================================================= */ +/* ============================================= CTIMER CTRL3 CTLINK3 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_CTLINK3 */ + CTIMER_CTRL3_CTLINK3_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A3/B3 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL3_CTLINK3_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A3/B3 timers into a single 32-bit timer. */ +} CTIMER_CTRL3_CTLINK3_Enum; + +/* ============================================ CTIMER CTRL3 TMRB3POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3POL */ + CTIMER_CTRL3_TMRB3POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB3 pin is the same as the + timer output. */ + CTIMER_CTRL3_TMRB3POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB3 pin is the inverse of + the timer output. */ +} CTIMER_CTRL3_TMRB3POL_Enum; + +/* ============================================ CTIMER CTRL3 TMRB3CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3CLR */ + CTIMER_CTRL3_TMRB3CLR_RUN = 0, /*!< RUN : Allow counter/timer B3 to run */ + CTIMER_CTRL3_TMRB3CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B3 at 0x0000. */ +} CTIMER_CTRL3_TMRB3CLR_Enum; + +/* ============================================ CTIMER CTRL3 TMRB3IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3IE1 */ + CTIMER_CTRL3_TMRB3IE1_DIS = 0, /*!< DIS : Disable counter/timer B3 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL3_TMRB3IE1_EN = 1, /*!< EN : Enable counter/timer B3 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL3_TMRB3IE1_Enum; + +/* ============================================ CTIMER CTRL3 TMRB3IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3IE0 */ + CTIMER_CTRL3_TMRB3IE0_DIS = 0, /*!< DIS : Disable counter/timer B3 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL3_TMRB3IE0_EN = 1, /*!< EN : Enable counter/timer B3 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL3_TMRB3IE0_Enum; + +/* ============================================= CTIMER CTRL3 TMRB3FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3FN */ + CTIMER_CTRL3_TMRB3FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B3, stop. */ + CTIMER_CTRL3_TMRB3FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B3, restart. */ + CTIMER_CTRL3_TMRB3FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B3, assert, + count to CMPR1B3, deassert, stop. */ + CTIMER_CTRL3_TMRB3FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B3, assert, count + to CMPR1B3, deassert, restart. */ + CTIMER_CTRL3_TMRB3FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL3_TMRB3FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL3_TMRB3FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL3_TMRB3FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL3_TMRB3FN_Enum; + +/* ============================================ CTIMER CTRL3 TMRB3CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3CLK */ + CTIMER_CTRL3_TMRB3CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL3_TMRB3CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL3_TMRB3CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL3_TMRB3CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL3_TMRB3CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL3_TMRB3CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL3_TMRB3CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL3_TMRB3CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL3_TMRB3CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL3_TMRB3CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL3_TMRB3CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL3_TMRB3CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL3_TMRB3CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL3_TMRB3CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL3_TMRB3CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL3_TMRB3CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL3_TMRB3CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL3_TMRB3CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL3_TMRB3CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL3_TMRB3CLK_CTMRA3 = 20, /*!< CTMRA3 : Clock source is CTIMERA3 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRA2 = 21, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRB2 = 22, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRA4 = 23, /*!< CTMRA4 : Clock source is CTIMERA4 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRB4 = 24, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRB1 = 26, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL3_TMRB3CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL3_TMRB3CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL3_TMRB3CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL3_TMRB3CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL3_TMRB3CLK_Enum; + +/* ============================================= CTIMER CTRL3 TMRB3EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRB3EN */ + CTIMER_CTRL3_TMRB3EN_DIS = 0, /*!< DIS : Counter/Timer B3 Disable. */ + CTIMER_CTRL3_TMRB3EN_EN = 1, /*!< EN : Counter/Timer B3 Enable. */ +} CTIMER_CTRL3_TMRB3EN_Enum; + +/* ============================================ CTIMER CTRL3 TMRA3POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3POL */ + CTIMER_CTRL3_TMRA3POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA3 pin is the same as the + timer output. */ + CTIMER_CTRL3_TMRA3POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA3 pin is the inverse of + the timer output. */ +} CTIMER_CTRL3_TMRA3POL_Enum; + +/* ============================================ CTIMER CTRL3 TMRA3CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3CLR */ + CTIMER_CTRL3_TMRA3CLR_RUN = 0, /*!< RUN : Allow counter/timer A3 to run */ + CTIMER_CTRL3_TMRA3CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A3 at 0x0000. */ +} CTIMER_CTRL3_TMRA3CLR_Enum; + +/* ============================================ CTIMER CTRL3 TMRA3IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3IE1 */ + CTIMER_CTRL3_TMRA3IE1_DIS = 0, /*!< DIS : Disable counter/timer A3 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL3_TMRA3IE1_EN = 1, /*!< EN : Enable counter/timer A3 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL3_TMRA3IE1_Enum; + +/* ============================================= CTIMER CTRL3 TMRA3IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3IE0 */ + CTIMER_CTRL3_TMRA3IE0_DIS = 0, /*!< DIS : Disable counter/timer A3 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL3_TMRA3IE0_EN = 1, /*!< EN : Enable counter/timer A3 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL3_TMRA3IE0_Enum; + +/* ============================================== CTIMER CTRL3 TMRA3FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3FN */ + CTIMER_CTRL3_TMRA3FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A3, stop. */ + CTIMER_CTRL3_TMRA3FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A3, restart. */ + CTIMER_CTRL3_TMRA3FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A3, assert, + count to CMPR1A3, deassert, stop. */ + CTIMER_CTRL3_TMRA3FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A3, assert, count + to CMPR1A3, deassert, restart. */ + CTIMER_CTRL3_TMRA3FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL3_TMRA3FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL3_TMRA3FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL3_TMRA3FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL3_TMRA3FN_Enum; + +/* ============================================= CTIMER CTRL3 TMRA3CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3CLK */ + CTIMER_CTRL3_TMRA3CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL3_TMRA3CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL3_TMRA3CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL3_TMRA3CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL3_TMRA3CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL3_TMRA3CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL3_TMRA3CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL3_TMRA3CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL3_TMRA3CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL3_TMRA3CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL3_TMRA3CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL3_TMRA3CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL3_TMRA3CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL3_TMRA3CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL3_TMRA3CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL3_TMRA3CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL3_TMRA3CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL3_TMRA3CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL3_TMRA3CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL3_TMRA3CLK_CTMRB3 = 20, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRA2 = 21, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRB2 = 22, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRA4 = 23, /*!< CTMRA4 : Clock source is CTIMERA4 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRB4 = 24, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRB1 = 26, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRB5 = 27, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL3_TMRA3CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL3_TMRA3CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL3_TMRA3CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL3_TMRA3CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL3_TMRA3CLK_Enum; + +/* ============================================== CTIMER CTRL3 TMRA3EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL3_TMRA3EN */ + CTIMER_CTRL3_TMRA3EN_DIS = 0, /*!< DIS : Counter/Timer A3 Disable. */ + CTIMER_CTRL3_TMRA3EN_EN = 1, /*!< EN : Counter/Timer A3 Enable. */ +} CTIMER_CTRL3_TMRA3EN_Enum; + +/* ======================================================= CMPRAUXA3 ======================================================= */ +/* ======================================================= CMPRAUXB3 ======================================================= */ +/* ========================================================= AUX3 ========================================================== */ +/* ============================================ CTIMER AUX3 TMRB3EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX3_TMRB3EN23 */ + CTIMER_AUX3_TMRB3EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX3_TMRB3EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX3_TMRB3EN23_Enum; + +/* ============================================ CTIMER AUX3 TMRB3POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX3_TMRB3POL23 */ + CTIMER_AUX3_TMRB3POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX3_TMRB3POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX3_TMRB3POL23_Enum; + +/* ============================================ CTIMER AUX3 TMRB3TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX3_TMRB3TINV */ + CTIMER_AUX3_TMRB3TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX3_TMRB3TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX3_TMRB3TINV_Enum; + +/* =========================================== CTIMER AUX3 TMRB3NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX3_TMRB3NOSYNC */ + CTIMER_AUX3_TMRB3NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX3_TMRB3NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX3_TMRB3NOSYNC_Enum; + +/* ============================================ CTIMER AUX3 TMRB3TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX3_TMRB3TRIG */ + CTIMER_AUX3_TMRB3TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX3_TMRB3TRIG_A3OUT = 1, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX3_TMRB3TRIG_B2OUT = 2, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX3_TMRB3TRIG_A2OUT = 3, /*!< A2OUT : Trigger source is CTIMERA2 OUT. */ + CTIMER_AUX3_TMRB3TRIG_A4OUT = 4, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX3_TMRB3TRIG_B4OUT = 5, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX3_TMRB3TRIG_A6OUT = 6, /*!< A6OUT : Trigger source is CTIMERA6 OUT. */ + CTIMER_AUX3_TMRB3TRIG_B6OUT = 7, /*!< B6OUT : Trigger source is CTIMERB6 OUT. */ + CTIMER_AUX3_TMRB3TRIG_B5OUT2 = 8, /*!< B5OUT2 : Trigger source is CTIMERB5 OUT2. */ + CTIMER_AUX3_TMRB3TRIG_A5OUT2 = 9, /*!< A5OUT2 : Trigger source is CTIMERA5 OUT2. */ + CTIMER_AUX3_TMRB3TRIG_A1OUT2 = 10, /*!< A1OUT2 : Trigger source is CTIMERA1 OUT2. */ + CTIMER_AUX3_TMRB3TRIG_B1OUT2 = 11, /*!< B1OUT2 : Trigger source is CTIMERB1 OUT2. */ + CTIMER_AUX3_TMRB3TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX3_TMRB3TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX3_TMRB3TRIG_B2OUT2DUAL = 14, /*!< B2OUT2DUAL : Trigger source is CTIMERB2 OUT2, dual edge. */ + CTIMER_AUX3_TMRB3TRIG_A2OUT2DUAL = 15, /*!< A2OUT2DUAL : Trigger source is CTIMERA2 OUT2, dual edge. */ +} CTIMER_AUX3_TMRB3TRIG_Enum; + +/* ============================================ CTIMER AUX3 TMRA3EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX3_TMRA3EN23 */ + CTIMER_AUX3_TMRA3EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX3_TMRA3EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX3_TMRA3EN23_Enum; + +/* ============================================ CTIMER AUX3 TMRA3POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX3_TMRA3POL23 */ + CTIMER_AUX3_TMRA3POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX3_TMRA3POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX3_TMRA3POL23_Enum; + +/* ============================================ CTIMER AUX3 TMRA3TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX3_TMRA3TINV */ + CTIMER_AUX3_TMRA3TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX3_TMRA3TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX3_TMRA3TINV_Enum; + +/* =========================================== CTIMER AUX3 TMRA3NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX3_TMRA3NOSYNC */ + CTIMER_AUX3_TMRA3NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX3_TMRA3NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX3_TMRA3NOSYNC_Enum; + +/* ============================================= CTIMER AUX3 TMRA3TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX3_TMRA3TRIG */ + CTIMER_AUX3_TMRA3TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX3_TMRA3TRIG_B3OUT = 1, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX3_TMRA3TRIG_B2OUT = 2, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX3_TMRA3TRIG_A2OUT = 3, /*!< A2OUT : Trigger source is CTIMERA2 OUT. */ + CTIMER_AUX3_TMRA3TRIG_A4OUT = 4, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX3_TMRA3TRIG_B4OUT = 5, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX3_TMRA3TRIG_A7OUT = 6, /*!< A7OUT : Trigger source is CTIMERA7 OUT. */ + CTIMER_AUX3_TMRA3TRIG_B7OUT = 7, /*!< B7OUT : Trigger source is CTIMERB7 OUT. */ + CTIMER_AUX3_TMRA3TRIG_B5OUT2 = 8, /*!< B5OUT2 : Trigger source is CTIMERB5 OUT2. */ + CTIMER_AUX3_TMRA3TRIG_A5OUT2 = 9, /*!< A5OUT2 : Trigger source is CTIMERA5 OUT2. */ + CTIMER_AUX3_TMRA3TRIG_A1OUT2 = 10, /*!< A1OUT2 : Trigger source is CTIMERA1 OUT2. */ + CTIMER_AUX3_TMRA3TRIG_B1OUT2 = 11, /*!< B1OUT2 : Trigger source is CTIMERB1 OUT2. */ + CTIMER_AUX3_TMRA3TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX3_TMRA3TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX3_TMRA3TRIG_B2OUT2DUAL = 14, /*!< B2OUT2DUAL : Trigger source is CTIMERB2 OUT2, dual edge. */ + CTIMER_AUX3_TMRA3TRIG_A2OUT2DUAL = 15, /*!< A2OUT2DUAL : Trigger source is CTIMERA2 OUT2, dual edge. */ +} CTIMER_AUX3_TMRA3TRIG_Enum; + +/* ========================================================= TMR4 ========================================================== */ +/* ======================================================== CMPRA4 ========================================================= */ +/* ======================================================== CMPRB4 ========================================================= */ +/* ========================================================= CTRL4 ========================================================= */ +/* ============================================= CTIMER CTRL4 CTLINK4 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_CTLINK4 */ + CTIMER_CTRL4_CTLINK4_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A4/B4 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL4_CTLINK4_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A4/B4 timers into a single 32-bit timer. */ +} CTIMER_CTRL4_CTLINK4_Enum; + +/* ============================================ CTIMER CTRL4 TMRB4POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4POL */ + CTIMER_CTRL4_TMRB4POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB4 pin is the same as the + timer output. */ + CTIMER_CTRL4_TMRB4POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB4 pin is the inverse of + the timer output. */ +} CTIMER_CTRL4_TMRB4POL_Enum; + +/* ============================================ CTIMER CTRL4 TMRB4CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4CLR */ + CTIMER_CTRL4_TMRB4CLR_RUN = 0, /*!< RUN : Allow counter/timer B4 to run */ + CTIMER_CTRL4_TMRB4CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B4 at 0x0000. */ +} CTIMER_CTRL4_TMRB4CLR_Enum; + +/* ============================================ CTIMER CTRL4 TMRB4IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4IE1 */ + CTIMER_CTRL4_TMRB4IE1_DIS = 0, /*!< DIS : Disable counter/timer B4 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL4_TMRB4IE1_EN = 1, /*!< EN : Enable counter/timer B4 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL4_TMRB4IE1_Enum; + +/* ============================================ CTIMER CTRL4 TMRB4IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4IE0 */ + CTIMER_CTRL4_TMRB4IE0_DIS = 0, /*!< DIS : Disable counter/timer B4 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL4_TMRB4IE0_EN = 1, /*!< EN : Enable counter/timer B4 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL4_TMRB4IE0_Enum; + +/* ============================================= CTIMER CTRL4 TMRB4FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4FN */ + CTIMER_CTRL4_TMRB4FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B4, stop. */ + CTIMER_CTRL4_TMRB4FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B4, restart. */ + CTIMER_CTRL4_TMRB4FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B4, assert, + count to CMPR1B4, deassert, stop. */ + CTIMER_CTRL4_TMRB4FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B4, assert, count + to CMPR1B4, deassert, restart. */ + CTIMER_CTRL4_TMRB4FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL4_TMRB4FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL4_TMRB4FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL4_TMRB4FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL4_TMRB4FN_Enum; + +/* ============================================ CTIMER CTRL4 TMRB4CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4CLK */ + CTIMER_CTRL4_TMRB4CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL4_TMRB4CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL4_TMRB4CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL4_TMRB4CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL4_TMRB4CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL4_TMRB4CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL4_TMRB4CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL4_TMRB4CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL4_TMRB4CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL4_TMRB4CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL4_TMRB4CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL4_TMRB4CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL4_TMRB4CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL4_TMRB4CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL4_TMRB4CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL4_TMRB4CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL4_TMRB4CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL4_TMRB4CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL4_TMRB4CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL4_TMRB4CLK_CTMRA4 = 20, /*!< CTMRA4 : Clock source is CTIMERA4 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRA1 = 21, /*!< CTMRA1 : Clock source is CTIMERA1 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRB1 = 22, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRA5 = 23, /*!< CTMRA5 : Clock source is CTIMERA5 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRB5 = 24, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRB2 = 26, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRB3 = 27, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL4_TMRB4CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL4_TMRB4CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL4_TMRB4CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL4_TMRB4CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL4_TMRB4CLK_Enum; + +/* ============================================= CTIMER CTRL4 TMRB4EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRB4EN */ + CTIMER_CTRL4_TMRB4EN_DIS = 0, /*!< DIS : Counter/Timer B4 Disable. */ + CTIMER_CTRL4_TMRB4EN_EN = 1, /*!< EN : Counter/Timer B4 Enable. */ +} CTIMER_CTRL4_TMRB4EN_Enum; + +/* ============================================ CTIMER CTRL4 TMRA4POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4POL */ + CTIMER_CTRL4_TMRA4POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA4 pin is the same as the + timer output. */ + CTIMER_CTRL4_TMRA4POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA4 pin is the inverse of + the timer output. */ +} CTIMER_CTRL4_TMRA4POL_Enum; + +/* ============================================ CTIMER CTRL4 TMRA4CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4CLR */ + CTIMER_CTRL4_TMRA4CLR_RUN = 0, /*!< RUN : Allow counter/timer A4 to run */ + CTIMER_CTRL4_TMRA4CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A4 at 0x0000. */ +} CTIMER_CTRL4_TMRA4CLR_Enum; + +/* ============================================ CTIMER CTRL4 TMRA4IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4IE1 */ + CTIMER_CTRL4_TMRA4IE1_DIS = 0, /*!< DIS : Disable counter/timer A4 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL4_TMRA4IE1_EN = 1, /*!< EN : Enable counter/timer A4 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL4_TMRA4IE1_Enum; + +/* ============================================= CTIMER CTRL4 TMRA4IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4IE0 */ + CTIMER_CTRL4_TMRA4IE0_DIS = 0, /*!< DIS : Disable counter/timer A4 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL4_TMRA4IE0_EN = 1, /*!< EN : Enable counter/timer A4 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL4_TMRA4IE0_Enum; + +/* ============================================== CTIMER CTRL4 TMRA4FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4FN */ + CTIMER_CTRL4_TMRA4FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A4, stop. */ + CTIMER_CTRL4_TMRA4FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A4, restart. */ + CTIMER_CTRL4_TMRA4FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A4, assert, + count to CMPR1A4, deassert, stop. */ + CTIMER_CTRL4_TMRA4FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A4, assert, count + to CMPR1A4, deassert, restart. */ + CTIMER_CTRL4_TMRA4FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL4_TMRA4FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL4_TMRA4FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL4_TMRA4FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL4_TMRA4FN_Enum; + +/* ============================================= CTIMER CTRL4 TMRA4CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4CLK */ + CTIMER_CTRL4_TMRA4CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL4_TMRA4CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL4_TMRA4CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL4_TMRA4CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL4_TMRA4CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL4_TMRA4CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL4_TMRA4CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL4_TMRA4CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL4_TMRA4CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL4_TMRA4CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL4_TMRA4CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL4_TMRA4CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL4_TMRA4CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL4_TMRA4CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL4_TMRA4CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL4_TMRA4CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4. (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL4_TMRA4CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL4_TMRA4CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL4_TMRA4CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL4_TMRA4CLK_CTMRB4 = 20, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRA1 = 21, /*!< CTMRA1 : Clock source is CTIMERA1 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRB1 = 22, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRA5 = 23, /*!< CTMRA5 : Clock source is CTIMERA5 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRB5 = 24, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRB2 = 26, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRB3 = 27, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL4_TMRA4CLK_CTMRB6 = 28, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL4_TMRA4CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL4_TMRA4CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL4_TMRA4CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL4_TMRA4CLK_Enum; + +/* ============================================== CTIMER CTRL4 TMRA4EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL4_TMRA4EN */ + CTIMER_CTRL4_TMRA4EN_DIS = 0, /*!< DIS : Counter/Timer A4 Disable. */ + CTIMER_CTRL4_TMRA4EN_EN = 1, /*!< EN : Counter/Timer A4 Enable. */ +} CTIMER_CTRL4_TMRA4EN_Enum; + +/* ======================================================= CMPRAUXA4 ======================================================= */ +/* ======================================================= CMPRAUXB4 ======================================================= */ +/* ========================================================= AUX4 ========================================================== */ +/* ============================================ CTIMER AUX4 TMRB4EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX4_TMRB4EN23 */ + CTIMER_AUX4_TMRB4EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX4_TMRB4EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX4_TMRB4EN23_Enum; + +/* ============================================ CTIMER AUX4 TMRB4POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX4_TMRB4POL23 */ + CTIMER_AUX4_TMRB4POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX4_TMRB4POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX4_TMRB4POL23_Enum; + +/* ============================================ CTIMER AUX4 TMRB4TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX4_TMRB4TINV */ + CTIMER_AUX4_TMRB4TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX4_TMRB4TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX4_TMRB4TINV_Enum; + +/* =========================================== CTIMER AUX4 TMRB4NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX4_TMRB4NOSYNC */ + CTIMER_AUX4_TMRB4NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX4_TMRB4NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX4_TMRB4NOSYNC_Enum; + +/* ============================================ CTIMER AUX4 TMRB4TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX4_TMRB4TRIG */ + CTIMER_AUX4_TMRB4TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX4_TMRB4TRIG_A4OUT = 1, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX4_TMRB4TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX4_TMRB4TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX4_TMRB4TRIG_A7OUT = 4, /*!< A7OUT : Trigger source is CTIMERA7 OUT. */ + CTIMER_AUX4_TMRB4TRIG_B7OUT = 5, /*!< B7OUT : Trigger source is CTIMERB7 OUT. */ + CTIMER_AUX4_TMRB4TRIG_A1OUT = 6, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX4_TMRB4TRIG_B1OUT = 7, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX4_TMRB4TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX4_TMRB4TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX4_TMRB4TRIG_A1OUT2 = 10, /*!< A1OUT2 : Trigger source is CTIMERA1 OUT2. */ + CTIMER_AUX4_TMRB4TRIG_B1OUT2 = 11, /*!< B1OUT2 : Trigger source is CTIMERB1 OUT2. */ + CTIMER_AUX4_TMRB4TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX4_TMRB4TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX4_TMRB4TRIG_B5OUT2DUAL = 14, /*!< B5OUT2DUAL : Trigger source is CTIMERB5 OUT2, dual edge. */ + CTIMER_AUX4_TMRB4TRIG_A5OUT2DUAL = 15, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ +} CTIMER_AUX4_TMRB4TRIG_Enum; + +/* ============================================ CTIMER AUX4 TMRA4EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX4_TMRA4EN23 */ + CTIMER_AUX4_TMRA4EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX4_TMRA4EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX4_TMRA4EN23_Enum; + +/* ============================================ CTIMER AUX4 TMRA4POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX4_TMRA4POL23 */ + CTIMER_AUX4_TMRA4POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX4_TMRA4POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX4_TMRA4POL23_Enum; + +/* ============================================ CTIMER AUX4 TMRA4TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX4_TMRA4TINV */ + CTIMER_AUX4_TMRA4TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX4_TMRA4TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX4_TMRA4TINV_Enum; + +/* =========================================== CTIMER AUX4 TMRA4NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX4_TMRA4NOSYNC */ + CTIMER_AUX4_TMRA4NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX4_TMRA4NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX4_TMRA4NOSYNC_Enum; + +/* ============================================= CTIMER AUX4 TMRA4TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX4_TMRA4TRIG */ + CTIMER_AUX4_TMRA4TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX4_TMRA4TRIG_STIMER = 1, /*!< STIMER : Trigger source is STimer Interrupt. Only Active When + CTLINK==1 and TMRB4TRIG!=0. TMRB4TRIG selects an STIMER + interrupt */ + CTIMER_AUX4_TMRA4TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX4_TMRA4TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX4_TMRA4TRIG_A6OUT = 4, /*!< A6OUT : Trigger source is CTIMERA6 OUT. */ + CTIMER_AUX4_TMRA4TRIG_B6OUT = 5, /*!< B6OUT : Trigger source is CTIMERB6 OUT. */ + CTIMER_AUX4_TMRA4TRIG_A2OUT = 6, /*!< A2OUT : Trigger source is CTIMERA2 OUT. */ + CTIMER_AUX4_TMRA4TRIG_B2OUT = 7, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX4_TMRA4TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX4_TMRA4TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX4_TMRA4TRIG_A1OUT2 = 10, /*!< A1OUT2 : Trigger source is CTIMERA1 OUT2. */ + CTIMER_AUX4_TMRA4TRIG_B1OUT2 = 11, /*!< B1OUT2 : Trigger source is CTIMERB1 OUT2. */ + CTIMER_AUX4_TMRA4TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX4_TMRA4TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX4_TMRA4TRIG_B5OUT2DUAL = 14, /*!< B5OUT2DUAL : Trigger source is CTIMERB5 OUT2, dual edge. */ + CTIMER_AUX4_TMRA4TRIG_A5OUT2DUAL = 15, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ +} CTIMER_AUX4_TMRA4TRIG_Enum; + +/* ========================================================= TMR5 ========================================================== */ +/* ======================================================== CMPRA5 ========================================================= */ +/* ======================================================== CMPRB5 ========================================================= */ +/* ========================================================= CTRL5 ========================================================= */ +/* ============================================= CTIMER CTRL5 CTLINK5 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_CTLINK5 */ + CTIMER_CTRL5_CTLINK5_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A5/B5 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL5_CTLINK5_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A5/B5 timers into a single 32-bit timer. */ +} CTIMER_CTRL5_CTLINK5_Enum; + +/* ============================================ CTIMER CTRL5 TMRB5POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5POL */ + CTIMER_CTRL5_TMRB5POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB5 pin is the same as the + timer output. */ + CTIMER_CTRL5_TMRB5POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB5 pin is the inverse of + the timer output. */ +} CTIMER_CTRL5_TMRB5POL_Enum; + +/* ============================================ CTIMER CTRL5 TMRB5CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5CLR */ + CTIMER_CTRL5_TMRB5CLR_RUN = 0, /*!< RUN : Allow counter/timer B5 to run */ + CTIMER_CTRL5_TMRB5CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B5 at 0x0000. */ +} CTIMER_CTRL5_TMRB5CLR_Enum; + +/* ============================================ CTIMER CTRL5 TMRB5IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5IE1 */ + CTIMER_CTRL5_TMRB5IE1_DIS = 0, /*!< DIS : Disable counter/timer B5 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL5_TMRB5IE1_EN = 1, /*!< EN : Enable counter/timer B5 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL5_TMRB5IE1_Enum; + +/* ============================================ CTIMER CTRL5 TMRB5IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5IE0 */ + CTIMER_CTRL5_TMRB5IE0_DIS = 0, /*!< DIS : Disable counter/timer B5 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL5_TMRB5IE0_EN = 1, /*!< EN : Enable counter/timer B5 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL5_TMRB5IE0_Enum; + +/* ============================================= CTIMER CTRL5 TMRB5FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5FN */ + CTIMER_CTRL5_TMRB5FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B5, stop. */ + CTIMER_CTRL5_TMRB5FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B5, restart. */ + CTIMER_CTRL5_TMRB5FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B5, assert, + count to CMPR1B5, deassert, stop. */ + CTIMER_CTRL5_TMRB5FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B5, assert, count + to CMPR1B5, deassert, restart. */ + CTIMER_CTRL5_TMRB5FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL5_TMRB5FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL5_TMRB5FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL5_TMRB5FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL5_TMRB5FN_Enum; + +/* ============================================ CTIMER CTRL5 TMRB5CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5CLK */ + CTIMER_CTRL5_TMRB5CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL5_TMRB5CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL5_TMRB5CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL5_TMRB5CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL5_TMRB5CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL5_TMRB5CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL5_TMRB5CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL5_TMRB5CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL5_TMRB5CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL5_TMRB5CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL5_TMRB5CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL5_TMRB5CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL5_TMRB5CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL5_TMRB5CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL5_TMRB5CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL5_TMRB5CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL5_TMRB5CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL5_TMRB5CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL5_TMRB5CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL5_TMRB5CLK_CTMRA5 = 20, /*!< CTMRA5 : Clock source is CTIMERA5 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRA0 = 21, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRB0 = 22, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRA6 = 23, /*!< CTMRA6 : Clock source is CTIMERA6 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRB6 = 24, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRB1 = 25, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRB2 = 26, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRB3 = 27, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL5_TMRB5CLK_CTMRB4 = 28, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL5_TMRB5CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL5_TMRB5CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL5_TMRB5CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL5_TMRB5CLK_Enum; + +/* ============================================= CTIMER CTRL5 TMRB5EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRB5EN */ + CTIMER_CTRL5_TMRB5EN_DIS = 0, /*!< DIS : Counter/Timer B5 Disable. */ + CTIMER_CTRL5_TMRB5EN_EN = 1, /*!< EN : Counter/Timer B5 Enable. */ +} CTIMER_CTRL5_TMRB5EN_Enum; + +/* ============================================ CTIMER CTRL5 TMRA5POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5POL */ + CTIMER_CTRL5_TMRA5POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA5 pin is the same as the + timer output. */ + CTIMER_CTRL5_TMRA5POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA5 pin is the inverse of + the timer output. */ +} CTIMER_CTRL5_TMRA5POL_Enum; + +/* ============================================ CTIMER CTRL5 TMRA5CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5CLR */ + CTIMER_CTRL5_TMRA5CLR_RUN = 0, /*!< RUN : Allow counter/timer A5 to run */ + CTIMER_CTRL5_TMRA5CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A5 at 0x0000. */ +} CTIMER_CTRL5_TMRA5CLR_Enum; + +/* ============================================ CTIMER CTRL5 TMRA5IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5IE1 */ + CTIMER_CTRL5_TMRA5IE1_DIS = 0, /*!< DIS : Disable counter/timer A5 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL5_TMRA5IE1_EN = 1, /*!< EN : Enable counter/timer A5 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL5_TMRA5IE1_Enum; + +/* ============================================= CTIMER CTRL5 TMRA5IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5IE0 */ + CTIMER_CTRL5_TMRA5IE0_DIS = 0, /*!< DIS : Disable counter/timer A5 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL5_TMRA5IE0_EN = 1, /*!< EN : Enable counter/timer A5 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL5_TMRA5IE0_Enum; + +/* ============================================== CTIMER CTRL5 TMRA5FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5FN */ + CTIMER_CTRL5_TMRA5FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A5, stop. */ + CTIMER_CTRL5_TMRA5FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A5, restart. */ + CTIMER_CTRL5_TMRA5FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A5, assert, + count to CMPR1A5, deassert, stop. */ + CTIMER_CTRL5_TMRA5FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A5, assert, count + to CMPR1A5, deassert, restart. */ + CTIMER_CTRL5_TMRA5FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL5_TMRA5FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL5_TMRA5FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL5_TMRA5FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL5_TMRA5FN_Enum; + +/* ============================================= CTIMER CTRL5 TMRA5CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5CLK */ + CTIMER_CTRL5_TMRA5CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL5_TMRA5CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL5_TMRA5CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL5_TMRA5CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL5_TMRA5CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL5_TMRA5CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL5_TMRA5CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL5_TMRA5CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL5_TMRA5CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL5_TMRA5CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL5_TMRA5CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL5_TMRA5CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL5_TMRA5CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL5_TMRA5CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL5_TMRA5CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL5_TMRA5CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL5_TMRA5CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL5_TMRA5CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL5_TMRA5CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL5_TMRA5CLK_CTMRB5 = 20, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRA0 = 21, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRB0 = 22, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRA6 = 23, /*!< CTMRA6 : Clock source is CTIMERA6 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRB6 = 24, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRB1 = 25, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRB2 = 26, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRB3 = 27, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL5_TMRA5CLK_CTMRB4 = 28, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL5_TMRA5CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL5_TMRA5CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL5_TMRA5CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL5_TMRA5CLK_Enum; + +/* ============================================== CTIMER CTRL5 TMRA5EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL5_TMRA5EN */ + CTIMER_CTRL5_TMRA5EN_DIS = 0, /*!< DIS : Counter/Timer A5 Disable. */ + CTIMER_CTRL5_TMRA5EN_EN = 1, /*!< EN : Counter/Timer A5 Enable. */ +} CTIMER_CTRL5_TMRA5EN_Enum; + +/* ======================================================= CMPRAUXA5 ======================================================= */ +/* ======================================================= CMPRAUXB5 ======================================================= */ +/* ========================================================= AUX5 ========================================================== */ +/* ============================================ CTIMER AUX5 TMRB5EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX5_TMRB5EN23 */ + CTIMER_AUX5_TMRB5EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX5_TMRB5EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX5_TMRB5EN23_Enum; + +/* ============================================ CTIMER AUX5 TMRB5POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX5_TMRB5POL23 */ + CTIMER_AUX5_TMRB5POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX5_TMRB5POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX5_TMRB5POL23_Enum; + +/* ============================================ CTIMER AUX5 TMRB5TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX5_TMRB5TINV */ + CTIMER_AUX5_TMRB5TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX5_TMRB5TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX5_TMRB5TINV_Enum; + +/* =========================================== CTIMER AUX5 TMRB5NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX5_TMRB5NOSYNC */ + CTIMER_AUX5_TMRB5NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX5_TMRB5NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX5_TMRB5NOSYNC_Enum; + +/* ============================================ CTIMER AUX5 TMRB5TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX5_TMRB5TRIG */ + CTIMER_AUX5_TMRB5TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX5_TMRB5TRIG_A5OUT = 1, /*!< A5OUT : Trigger source is CTIMERA5 OUT. */ + CTIMER_AUX5_TMRB5TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX5_TMRB5TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX5_TMRB5TRIG_A6OUT = 4, /*!< A6OUT : Trigger source is CTIMERA6 OUT. */ + CTIMER_AUX5_TMRB5TRIG_B6OUT = 5, /*!< B6OUT : Trigger source is CTIMERB6 OUT. */ + CTIMER_AUX5_TMRB5TRIG_A1OUT = 6, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX5_TMRB5TRIG_B1OUT = 7, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX5_TMRB5TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX5_TMRB5TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX5_TMRB5TRIG_A0OUT2 = 10, /*!< A0OUT2 : Trigger source is CTIMERA0 OUT2. */ + CTIMER_AUX5_TMRB5TRIG_B0OUT2 = 11, /*!< B0OUT2 : Trigger source is CTIMERB0 OUT2. */ + CTIMER_AUX5_TMRB5TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX5_TMRB5TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX5_TMRB5TRIG_B4OUT2DUAL = 14, /*!< B4OUT2DUAL : Trigger source is CTIMERB4 OUT2, dual edge. */ + CTIMER_AUX5_TMRB5TRIG_A4OUT2DUAL = 15, /*!< A4OUT2DUAL : Trigger source is CTIMERA4 OUT2, dual edge. */ +} CTIMER_AUX5_TMRB5TRIG_Enum; + +/* ============================================ CTIMER AUX5 TMRA5EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX5_TMRA5EN23 */ + CTIMER_AUX5_TMRA5EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX5_TMRA5EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX5_TMRA5EN23_Enum; + +/* ============================================ CTIMER AUX5 TMRA5POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX5_TMRA5POL23 */ + CTIMER_AUX5_TMRA5POL23_NORMAL = 0, /*!< NORMAL : Upper output normal polarity */ + CTIMER_AUX5_TMRA5POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX5_TMRA5POL23_Enum; + +/* ============================================ CTIMER AUX5 TMRA5TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX5_TMRA5TINV */ + CTIMER_AUX5_TMRA5TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX5_TMRA5TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX5_TMRA5TINV_Enum; + +/* =========================================== CTIMER AUX5 TMRA5NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX5_TMRA5NOSYNC */ + CTIMER_AUX5_TMRA5NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX5_TMRA5NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX5_TMRA5NOSYNC_Enum; + +/* ============================================= CTIMER AUX5 TMRA5TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX5_TMRA5TRIG */ + CTIMER_AUX5_TMRA5TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX5_TMRA5TRIG_STIMER = 1, /*!< STIMER : Trigger source is STimer Interrupt. Only Active When + CTLINK==1 and TMRB5TRIG!=0. TMRB5TRIG selects an STIMER + interrupt */ + CTIMER_AUX5_TMRA5TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX5_TMRA5TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX5_TMRA5TRIG_A4OUT = 4, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX5_TMRA5TRIG_B4OUT = 5, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX5_TMRA5TRIG_A2OUT = 6, /*!< A2OUT : Trigger source is CTIMERA2 OUT. */ + CTIMER_AUX5_TMRA5TRIG_B2OUT = 7, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX5_TMRA5TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX5_TMRA5TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX5_TMRA5TRIG_A0OUT2 = 10, /*!< A0OUT2 : Trigger source is CTIMERA0 OUT2. */ + CTIMER_AUX5_TMRA5TRIG_B0OUT2 = 11, /*!< B0OUT2 : Trigger source is CTIMERB0 OUT2. */ + CTIMER_AUX5_TMRA5TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX5_TMRA5TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX5_TMRA5TRIG_B4OUT2DUAL = 14, /*!< B4OUT2DUAL : Trigger source is CTIMERB4 OUT2, dual edge. */ + CTIMER_AUX5_TMRA5TRIG_A4OUT2DUAL = 15, /*!< A4OUT2DUAL : Trigger source is CTIMERA4 OUT2, dual edge. */ +} CTIMER_AUX5_TMRA5TRIG_Enum; + +/* ========================================================= TMR6 ========================================================== */ +/* ======================================================== CMPRA6 ========================================================= */ +/* ======================================================== CMPRB6 ========================================================= */ +/* ========================================================= CTRL6 ========================================================= */ +/* ============================================= CTIMER CTRL6 CTLINK6 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_CTLINK6 */ + CTIMER_CTRL6_CTLINK6_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A6/B6 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL6_CTLINK6_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A6/B6 timers into a single 32-bit timer. */ +} CTIMER_CTRL6_CTLINK6_Enum; + +/* ============================================ CTIMER CTRL6 TMRB6POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6POL */ + CTIMER_CTRL6_TMRB6POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB6 pin is the same as the + timer output. */ + CTIMER_CTRL6_TMRB6POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB6 pin is the inverse of + the timer output. */ +} CTIMER_CTRL6_TMRB6POL_Enum; + +/* ============================================ CTIMER CTRL6 TMRB6CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6CLR */ + CTIMER_CTRL6_TMRB6CLR_RUN = 0, /*!< RUN : Allow counter/timer B6 to run */ + CTIMER_CTRL6_TMRB6CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B6 at 0x0000. */ +} CTIMER_CTRL6_TMRB6CLR_Enum; + +/* ============================================ CTIMER CTRL6 TMRB6IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6IE1 */ + CTIMER_CTRL6_TMRB6IE1_DIS = 0, /*!< DIS : Disable counter/timer B6 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL6_TMRB6IE1_EN = 1, /*!< EN : Enable counter/timer B6 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL6_TMRB6IE1_Enum; + +/* ============================================ CTIMER CTRL6 TMRB6IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6IE0 */ + CTIMER_CTRL6_TMRB6IE0_DIS = 0, /*!< DIS : Disable counter/timer B6 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL6_TMRB6IE0_EN = 1, /*!< EN : Enable counter/timer B6 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL6_TMRB6IE0_Enum; + +/* ============================================= CTIMER CTRL6 TMRB6FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6FN */ + CTIMER_CTRL6_TMRB6FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B6, stop. */ + CTIMER_CTRL6_TMRB6FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B6, restart. */ + CTIMER_CTRL6_TMRB6FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B6, assert, + count to CMPR1B6, deassert, stop. */ + CTIMER_CTRL6_TMRB6FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B6, assert, count + to CMPR1B6, deassert, restart. */ + CTIMER_CTRL6_TMRB6FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL6_TMRB6FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL6_TMRB6FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL6_TMRB6FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL6_TMRB6FN_Enum; + +/* ============================================ CTIMER CTRL6 TMRB6CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6CLK */ + CTIMER_CTRL6_TMRB6CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL6_TMRB6CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL6_TMRB6CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL6_TMRB6CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL6_TMRB6CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL6_TMRB6CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL6_TMRB6CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL6_TMRB6CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL6_TMRB6CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL6_TMRB6CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL6_TMRB6CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL6_TMRB6CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL6_TMRB6CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL6_TMRB6CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL6_TMRB6CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL6_TMRB6CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL6_TMRB6CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL6_TMRB6CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL6_TMRB6CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL6_TMRB6CLK_CTMRA6 = 20, /*!< CTMRA6 : Clock source is CTIMERA6 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRA3 = 21, /*!< CTMRA3 : Clock source is CTIMERA3 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRB3 = 22, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRA7 = 23, /*!< CTMRA7 : Clock source is CTIMERA7 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRB7 = 24, /*!< CTMRB7 : Clock source is CTIMERB7 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRB1 = 26, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRB2 = 27, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL6_TMRB6CLK_CTMRB4 = 28, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL6_TMRB6CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL6_TMRB6CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL6_TMRB6CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL6_TMRB6CLK_Enum; + +/* ============================================= CTIMER CTRL6 TMRB6EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRB6EN */ + CTIMER_CTRL6_TMRB6EN_DIS = 0, /*!< DIS : Counter/Timer B6 Disable. */ + CTIMER_CTRL6_TMRB6EN_EN = 1, /*!< EN : Counter/Timer B6 Enable. */ +} CTIMER_CTRL6_TMRB6EN_Enum; + +/* ============================================ CTIMER CTRL6 TMRA6POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6POL */ + CTIMER_CTRL6_TMRA6POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA6 pin is the same as the + timer output. */ + CTIMER_CTRL6_TMRA6POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA6 pin is the inverse of + the timer output. */ +} CTIMER_CTRL6_TMRA6POL_Enum; + +/* ============================================ CTIMER CTRL6 TMRA6CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6CLR */ + CTIMER_CTRL6_TMRA6CLR_RUN = 0, /*!< RUN : Allow counter/timer A6 to run */ + CTIMER_CTRL6_TMRA6CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A6 at 0x0000. */ +} CTIMER_CTRL6_TMRA6CLR_Enum; + +/* ============================================ CTIMER CTRL6 TMRA6IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6IE1 */ + CTIMER_CTRL6_TMRA6IE1_DIS = 0, /*!< DIS : Disable counter/timer A6 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL6_TMRA6IE1_EN = 1, /*!< EN : Enable counter/timer A6 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL6_TMRA6IE1_Enum; + +/* ============================================= CTIMER CTRL6 TMRA6IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6IE0 */ + CTIMER_CTRL6_TMRA6IE0_DIS = 0, /*!< DIS : Disable counter/timer A6 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL6_TMRA6IE0_EN = 1, /*!< EN : Enable counter/timer A6 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL6_TMRA6IE0_Enum; + +/* ============================================== CTIMER CTRL6 TMRA6FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6FN */ + CTIMER_CTRL6_TMRA6FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A6, stop. */ + CTIMER_CTRL6_TMRA6FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A6, restart. */ + CTIMER_CTRL6_TMRA6FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A6, assert, + count to CMPR1A6, deassert, stop. */ + CTIMER_CTRL6_TMRA6FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A6, assert, count + to CMPR1A6, deassert, restart. */ + CTIMER_CTRL6_TMRA6FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL6_TMRA6FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL6_TMRA6FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL6_TMRA6FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL6_TMRA6FN_Enum; + +/* ============================================= CTIMER CTRL6 TMRA6CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6CLK */ + CTIMER_CTRL6_TMRA6CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL6_TMRA6CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL6_TMRA6CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL6_TMRA6CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL6_TMRA6CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL6_TMRA6CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL6_TMRA6CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL6_TMRA6CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL6_TMRA6CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL6_TMRA6CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL6_TMRA6CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL6_TMRA6CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL6_TMRA6CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL6_TMRA6CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL6_TMRA6CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL6_TMRA6CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL6_TMRA6CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL6_TMRA6CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL6_TMRA6CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL6_TMRA6CLK_CTMRB6 = 20, /*!< CTMRB6 : Clock source is CTIMERB6 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRA3 = 21, /*!< CTMRA3 : Clock source is CTIMERA3 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRB3 = 22, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRA7 = 23, /*!< CTMRA7 : Clock source is CTIMERA7 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRB7 = 24, /*!< CTMRB7 : Clock source is CTIMERB7 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRB0 = 25, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRB1 = 26, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRB2 = 27, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL6_TMRA6CLK_CTMRB4 = 28, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL6_TMRA6CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL6_TMRA6CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL6_TMRA6CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL6_TMRA6CLK_Enum; + +/* ============================================== CTIMER CTRL6 TMRA6EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL6_TMRA6EN */ + CTIMER_CTRL6_TMRA6EN_DIS = 0, /*!< DIS : Counter/Timer A6 Disable. */ + CTIMER_CTRL6_TMRA6EN_EN = 1, /*!< EN : Counter/Timer A6 Enable. */ +} CTIMER_CTRL6_TMRA6EN_Enum; + +/* ======================================================= CMPRAUXA6 ======================================================= */ +/* ======================================================= CMPRAUXB6 ======================================================= */ +/* ========================================================= AUX6 ========================================================== */ +/* ============================================ CTIMER AUX6 TMRB6EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX6_TMRB6EN23 */ + CTIMER_AUX6_TMRB6EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX6_TMRB6EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX6_TMRB6EN23_Enum; + +/* ============================================ CTIMER AUX6 TMRB6POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX6_TMRB6POL23 */ + CTIMER_AUX6_TMRB6POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX6_TMRB6POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX6_TMRB6POL23_Enum; + +/* ============================================ CTIMER AUX6 TMRB6TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX6_TMRB6TINV */ + CTIMER_AUX6_TMRB6TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX6_TMRB6TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX6_TMRB6TINV_Enum; + +/* =========================================== CTIMER AUX6 TMRB6NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX6_TMRB6NOSYNC */ + CTIMER_AUX6_TMRB6NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX6_TMRB6NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX6_TMRB6NOSYNC_Enum; + +/* ============================================ CTIMER AUX6 TMRB6TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX6_TMRB6TRIG */ + CTIMER_AUX6_TMRB6TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX6_TMRB6TRIG_A6OUT = 1, /*!< A6OUT : Trigger source is CTIMERA6 OUT. */ + CTIMER_AUX6_TMRB6TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX6_TMRB6TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX6_TMRB6TRIG_A4OUT = 4, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX6_TMRB6TRIG_B4OUT = 5, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX6_TMRB6TRIG_A1OUT = 6, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX6_TMRB6TRIG_B1OUT = 7, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX6_TMRB6TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX6_TMRB6TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX6_TMRB6TRIG_A2OUT2 = 10, /*!< A2OUT2 : Trigger source is CTIMERA2 OUT2. */ + CTIMER_AUX6_TMRB6TRIG_B2OUT2 = 11, /*!< B2OUT2 : Trigger source is CTIMERB2 OUT2. */ + CTIMER_AUX6_TMRB6TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX6_TMRB6TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX6_TMRB6TRIG_B0OUT2DUAL = 14, /*!< B0OUT2DUAL : Trigger source is CTIMERB0 OUT2, dual edge. */ + CTIMER_AUX6_TMRB6TRIG_A0OUT2DUAL = 15, /*!< A0OUT2DUAL : Trigger source is CTIMERA0 OUT2, dual edge. */ +} CTIMER_AUX6_TMRB6TRIG_Enum; + +/* ============================================ CTIMER AUX6 TMRA6EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX6_TMRA6EN23 */ + CTIMER_AUX6_TMRA6EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX6_TMRA6EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX6_TMRA6EN23_Enum; + +/* ============================================ CTIMER AUX6 TMRA6POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX6_TMRA6POL23 */ + CTIMER_AUX6_TMRA6POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX6_TMRA6POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX6_TMRA6POL23_Enum; + +/* ============================================ CTIMER AUX6 TMRA6TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX6_TMRA6TINV */ + CTIMER_AUX6_TMRA6TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX6_TMRA6TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX6_TMRA6TINV_Enum; + +/* =========================================== CTIMER AUX6 TMRA6NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX6_TMRA6NOSYNC */ + CTIMER_AUX6_TMRA6NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX6_TMRA6NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX6_TMRA6NOSYNC_Enum; + +/* ============================================= CTIMER AUX6 TMRA6TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX6_TMRA6TRIG */ + CTIMER_AUX6_TMRA6TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX6_TMRA6TRIG_B6OUT = 1, /*!< B6OUT : Trigger source is CTIMERB6 OUT. */ + CTIMER_AUX6_TMRA6TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX6_TMRA6TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX6_TMRA6TRIG_A5OUT = 4, /*!< A5OUT : Trigger source is CTIMERA5 OUT. */ + CTIMER_AUX6_TMRA6TRIG_B5OUT = 5, /*!< B5OUT : Trigger source is CTIMERB5 OUT. */ + CTIMER_AUX6_TMRA6TRIG_A1OUT = 6, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX6_TMRA6TRIG_B1OUT = 7, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX6_TMRA6TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX6_TMRA6TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX6_TMRA6TRIG_A2OUT2 = 10, /*!< A2OUT2 : Trigger source is CTIMERA2 OUT2. */ + CTIMER_AUX6_TMRA6TRIG_B2OUT2 = 11, /*!< B2OUT2 : Trigger source is CTIMERBb OUT2. */ + CTIMER_AUX6_TMRA6TRIG_A5OUT2DUAL = 12, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ + CTIMER_AUX6_TMRA6TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX6_TMRA6TRIG_B0OUT2DUAL = 14, /*!< B0OUT2DUAL : Trigger source is CTIMERB0 OUT2, dual edge. */ + CTIMER_AUX6_TMRA6TRIG_A0OUT2DUAL = 15, /*!< A0OUT2DUAL : Trigger source is CTIMERA0 OUT2, dual edge. */ +} CTIMER_AUX6_TMRA6TRIG_Enum; + +/* ========================================================= TMR7 ========================================================== */ +/* ======================================================== CMPRA7 ========================================================= */ +/* ======================================================== CMPRB7 ========================================================= */ +/* ========================================================= CTRL7 ========================================================= */ +/* ============================================= CTIMER CTRL7 CTLINK7 [31..31] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_CTLINK7 */ + CTIMER_CTRL7_CTLINK7_TWO_16BIT_TIMERS = 0, /*!< TWO_16BIT_TIMERS : Use A7/B7 timers as two independent 16-bit + timers (default). */ + CTIMER_CTRL7_CTLINK7_32BIT_TIMER = 1, /*!< 32BIT_TIMER : Link A7/B7 timers into a single 32-bit timer. */ +} CTIMER_CTRL7_CTLINK7_Enum; + +/* ============================================ CTIMER CTRL7 TMRB7POL [28..28] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7POL */ + CTIMER_CTRL7_TMRB7POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINB7 pin is the same as the + timer output. */ + CTIMER_CTRL7_TMRB7POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINB7 pin is the inverse of + the timer output. */ +} CTIMER_CTRL7_TMRB7POL_Enum; + +/* ============================================ CTIMER CTRL7 TMRB7CLR [27..27] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7CLR */ + CTIMER_CTRL7_TMRB7CLR_RUN = 0, /*!< RUN : Allow counter/timer B7 to run */ + CTIMER_CTRL7_TMRB7CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer B7 at 0x0000. */ +} CTIMER_CTRL7_TMRB7CLR_Enum; + +/* ============================================ CTIMER CTRL7 TMRB7IE1 [26..26] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7IE1 */ + CTIMER_CTRL7_TMRB7IE1_DIS = 0, /*!< DIS : Disable counter/timer B7 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL7_TMRB7IE1_EN = 1, /*!< EN : Enable counter/timer B7 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL7_TMRB7IE1_Enum; + +/* ============================================ CTIMER CTRL7 TMRB7IE0 [25..25] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7IE0 */ + CTIMER_CTRL7_TMRB7IE0_DIS = 0, /*!< DIS : Disable counter/timer B7 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL7_TMRB7IE0_EN = 1, /*!< EN : Enable counter/timer B7 to generate an interrupt based + on COMPR0 */ +} CTIMER_CTRL7_TMRB7IE0_Enum; + +/* ============================================= CTIMER CTRL7 TMRB7FN [22..24] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7FN */ + CTIMER_CTRL7_TMRB7FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0B7, stop. */ + CTIMER_CTRL7_TMRB7FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0B7, restart. */ + CTIMER_CTRL7_TMRB7FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0B7, assert, + count to CMPR1B7, deassert, stop. */ + CTIMER_CTRL7_TMRB7FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0B7, assert, count + to CMPR1B7, deassert, restart. */ + CTIMER_CTRL7_TMRB7FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL7_TMRB7FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL7_TMRB7FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL7_TMRB7FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL7_TMRB7FN_Enum; + +/* ============================================ CTIMER CTRL7 TMRB7CLK [17..21] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7CLK */ + CTIMER_CTRL7_TMRB7CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINB. */ + CTIMER_CTRL7_TMRB7CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL7_TMRB7CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL7_TMRB7CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL7_TMRB7CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL7_TMRB7CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL7_TMRB7CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL7_TMRB7CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL7_TMRB7CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL7_TMRB7CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL7_TMRB7CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL7_TMRB7CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL7_TMRB7CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL7_TMRB7CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL7_TMRB7CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL7_TMRB7CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL7_TMRB7CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL7_TMRB7CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL7_TMRB7CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL7_TMRB7CLK_CTMRA7 = 20, /*!< CTMRA7 : Clock source is CTIMERA7 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRA2 = 21, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRB2 = 22, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRA0 = 23, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRB0 = 24, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRB1 = 25, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRB3 = 26, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRB4 = 27, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL7_TMRB7CLK_CTMRB5 = 28, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL7_TMRB7CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL7_TMRB7CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL7_TMRB7CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL7_TMRB7CLK_Enum; + +/* ============================================= CTIMER CTRL7 TMRB7EN [16..16] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRB7EN */ + CTIMER_CTRL7_TMRB7EN_DIS = 0, /*!< DIS : Counter/Timer B7 Disable. */ + CTIMER_CTRL7_TMRB7EN_EN = 1, /*!< EN : Counter/Timer B7 Enable. */ +} CTIMER_CTRL7_TMRB7EN_Enum; + +/* ============================================ CTIMER CTRL7 TMRA7POL [12..12] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7POL */ + CTIMER_CTRL7_TMRA7POL_NORMAL = 0, /*!< NORMAL : The polarity of the TMRPINA7 pin is the same as the + timer output. */ + CTIMER_CTRL7_TMRA7POL_INVERTED = 1, /*!< INVERTED : The polarity of the TMRPINA7 pin is the inverse of + the timer output. */ +} CTIMER_CTRL7_TMRA7POL_Enum; + +/* ============================================ CTIMER CTRL7 TMRA7CLR [11..11] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7CLR */ + CTIMER_CTRL7_TMRA7CLR_RUN = 0, /*!< RUN : Allow counter/timer A7 to run */ + CTIMER_CTRL7_TMRA7CLR_CLEAR = 1, /*!< CLEAR : Holds counter/timer A7 at 0x0000. */ +} CTIMER_CTRL7_TMRA7CLR_Enum; + +/* ============================================ CTIMER CTRL7 TMRA7IE1 [10..10] ============================================= */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7IE1 */ + CTIMER_CTRL7_TMRA7IE1_DIS = 0, /*!< DIS : Disable counter/timer A7 from generating an interrupt + based on COMPR1. */ + CTIMER_CTRL7_TMRA7IE1_EN = 1, /*!< EN : Enable counter/timer A7 to generate an interrupt based + on COMPR1. */ +} CTIMER_CTRL7_TMRA7IE1_Enum; + +/* ============================================= CTIMER CTRL7 TMRA7IE0 [9..9] ============================================== */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7IE0 */ + CTIMER_CTRL7_TMRA7IE0_DIS = 0, /*!< DIS : Disable counter/timer A7 from generating an interrupt + based on COMPR0. */ + CTIMER_CTRL7_TMRA7IE0_EN = 1, /*!< EN : Enable counter/timer A7 to generate an interrupt based + on COMPR0. */ +} CTIMER_CTRL7_TMRA7IE0_Enum; + +/* ============================================== CTIMER CTRL7 TMRA7FN [6..8] ============================================== */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7FN */ + CTIMER_CTRL7_TMRA7FN_SINGLECOUNT = 0, /*!< SINGLECOUNT : Single count (output toggles and sticks). Count + to CMPR0A7, stop. */ + CTIMER_CTRL7_TMRA7FN_REPEATEDCOUNT = 1, /*!< REPEATEDCOUNT : Repeated count (periodic 1-clock-cycle-wide + pulses). Count to CMPR0A7, restart. */ + CTIMER_CTRL7_TMRA7FN_PULSE_ONCE = 2, /*!< PULSE_ONCE : Pulse once (aka one-shot). Count to CMPR0A7, assert, + count to CMPR1A7, deassert, stop. */ + CTIMER_CTRL7_TMRA7FN_PULSE_CONT = 3, /*!< PULSE_CONT : Pulse continously. Count to CMPR0A7, assert, count + to CMPR1A7, deassert, restart. */ + CTIMER_CTRL7_TMRA7FN_SINGLEPATTERN = 4, /*!< SINGLEPATTERN : Single pattern. */ + CTIMER_CTRL7_TMRA7FN_REPEATPATTERN = 5, /*!< REPEATPATTERN : Repeated pattern. */ + CTIMER_CTRL7_TMRA7FN_CONTINUOUS = 6, /*!< CONTINUOUS : Continuous run (aka Free Run). Count continuously. */ + CTIMER_CTRL7_TMRA7FN_ALTPWN = 7, /*!< ALTPWN : Alternate PWM */ +} CTIMER_CTRL7_TMRA7FN_Enum; + +/* ============================================= CTIMER CTRL7 TMRA7CLK [1..5] ============================================== */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7CLK */ + CTIMER_CTRL7_TMRA7CLK_TMRPIN = 0, /*!< TMRPIN : Clock source is TMRPINA. */ + CTIMER_CTRL7_TMRA7CLK_HFRC_DIV4 = 1, /*!< HFRC_DIV4 : Clock source is the HFRC / 4 */ + CTIMER_CTRL7_TMRA7CLK_HFRC_DIV16 = 2, /*!< HFRC_DIV16 : Clock source is HFRC / 16 */ + CTIMER_CTRL7_TMRA7CLK_HFRC_DIV256 = 3, /*!< HFRC_DIV256 : Clock source is HFRC / 256 */ + CTIMER_CTRL7_TMRA7CLK_HFRC_DIV1024 = 4, /*!< HFRC_DIV1024 : Clock source is HFRC / 1024 */ + CTIMER_CTRL7_TMRA7CLK_HFRC_DIV4K = 5, /*!< HFRC_DIV4K : Clock source is HFRC / 4096 */ + CTIMER_CTRL7_TMRA7CLK_XT = 6, /*!< XT : Clock source is the XT (uncalibrated). */ + CTIMER_CTRL7_TMRA7CLK_XT_DIV2 = 7, /*!< XT_DIV2 : Clock source is XT / 2 */ + CTIMER_CTRL7_TMRA7CLK_XT_DIV16 = 8, /*!< XT_DIV16 : Clock source is XT / 16 */ + CTIMER_CTRL7_TMRA7CLK_XT_DIV128 = 9, /*!< XT_DIV128 : Clock source is XT / 128 */ + CTIMER_CTRL7_TMRA7CLK_LFRC_DIV2 = 10, /*!< LFRC_DIV2 : Clock source is LFRC / 2 */ + CTIMER_CTRL7_TMRA7CLK_LFRC_DIV32 = 11, /*!< LFRC_DIV32 : Clock source is LFRC / 32 */ + CTIMER_CTRL7_TMRA7CLK_LFRC_DIV1K = 12, /*!< LFRC_DIV1K : Clock source is LFRC / 1024 */ + CTIMER_CTRL7_TMRA7CLK_LFRC = 13, /*!< LFRC : Clock source is LFRC */ + CTIMER_CTRL7_TMRA7CLK_RTC_100HZ = 14, /*!< RTC_100HZ : Clock source is 100 Hz from the current RTC oscillator. */ + CTIMER_CTRL7_TMRA7CLK_HCLK_DIV4 = 15, /*!< HCLK_DIV4 : Clock source is HCLK / 4 (note: this clock is only + available when MCU is in active mode) */ + CTIMER_CTRL7_TMRA7CLK_XT_DIV4 = 16, /*!< XT_DIV4 : Clock source is XT / 4 */ + CTIMER_CTRL7_TMRA7CLK_XT_DIV8 = 17, /*!< XT_DIV8 : Clock source is XT / 8 */ + CTIMER_CTRL7_TMRA7CLK_XT_DIV32 = 18, /*!< XT_DIV32 : Clock source is XT / 32 */ + CTIMER_CTRL7_TMRA7CLK_CTMRB7 = 20, /*!< CTMRB7 : Clock source is CTIMERB7 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRA2 = 21, /*!< CTMRA2 : Clock source is CTIMERA2 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRB2 = 22, /*!< CTMRB2 : Clock source is CTIMERB2 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRA0 = 23, /*!< CTMRA0 : Clock source is CTIMERA0 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRB0 = 24, /*!< CTMRB0 : Clock source is CTIMERB0 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRB1 = 25, /*!< CTMRB1 : Clock source is CTIMERB1 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRB3 = 26, /*!< CTMRB3 : Clock source is CTIMERB3 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRB4 = 27, /*!< CTMRB4 : Clock source is CTIMERB4 OUT. */ + CTIMER_CTRL7_TMRA7CLK_CTMRB5 = 28, /*!< CTMRB5 : Clock source is CTIMERB5 OUT. */ + CTIMER_CTRL7_TMRA7CLK_BUCKBLE = 29, /*!< BUCKBLE : Clock source is BLE buck converter TON pulses. */ + CTIMER_CTRL7_TMRA7CLK_BUCKB = 30, /*!< BUCKB : Clock source is Memory buck converter TON pulses. */ + CTIMER_CTRL7_TMRA7CLK_BUCKA = 31, /*!< BUCKA : Clock source is CPU buck converter TON pulses. */ +} CTIMER_CTRL7_TMRA7CLK_Enum; + +/* ============================================== CTIMER CTRL7 TMRA7EN [0..0] ============================================== */ +typedef enum { /*!< CTIMER_CTRL7_TMRA7EN */ + CTIMER_CTRL7_TMRA7EN_DIS = 0, /*!< DIS : Counter/Timer A7 Disable. */ + CTIMER_CTRL7_TMRA7EN_EN = 1, /*!< EN : Counter/Timer A7 Enable. */ +} CTIMER_CTRL7_TMRA7EN_Enum; + +/* ======================================================= CMPRAUXA7 ======================================================= */ +/* ======================================================= CMPRAUXB7 ======================================================= */ +/* ========================================================= AUX7 ========================================================== */ +/* ============================================ CTIMER AUX7 TMRB7EN23 [30..30] ============================================= */ +typedef enum { /*!< CTIMER_AUX7_TMRB7EN23 */ + CTIMER_AUX7_TMRB7EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX7_TMRB7EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX7_TMRB7EN23_Enum; + +/* ============================================ CTIMER AUX7 TMRB7POL23 [29..29] ============================================ */ +typedef enum { /*!< CTIMER_AUX7_TMRB7POL23 */ + CTIMER_AUX7_TMRB7POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX7_TMRB7POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX7_TMRB7POL23_Enum; + +/* ============================================ CTIMER AUX7 TMRB7TINV [28..28] ============================================= */ +typedef enum { /*!< CTIMER_AUX7_TMRB7TINV */ + CTIMER_AUX7_TMRB7TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX7_TMRB7TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX7_TMRB7TINV_Enum; + +/* =========================================== CTIMER AUX7 TMRB7NOSYNC [27..27] ============================================ */ +typedef enum { /*!< CTIMER_AUX7_TMRB7NOSYNC */ + CTIMER_AUX7_TMRB7NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX7_TMRB7NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX7_TMRB7NOSYNC_Enum; + +/* ============================================ CTIMER AUX7 TMRB7TRIG [23..26] ============================================= */ +typedef enum { /*!< CTIMER_AUX7_TMRB7TRIG */ + CTIMER_AUX7_TMRB7TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX7_TMRB7TRIG_A7OUT = 1, /*!< A7OUT : Trigger source is CTIMERA7 OUT. */ + CTIMER_AUX7_TMRB7TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX7_TMRB7TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX7_TMRB7TRIG_A5OUT = 4, /*!< A5OUT : Trigger source is CTIMERA5 OUT. */ + CTIMER_AUX7_TMRB7TRIG_B5OUT = 5, /*!< B5OUT : Trigger source is CTIMERB5 OUT. */ + CTIMER_AUX7_TMRB7TRIG_A2OUT = 6, /*!< A2OUT : Trigger source is CTIMERA2 OUT. */ + CTIMER_AUX7_TMRB7TRIG_B2OUT = 7, /*!< B2OUT : Trigger source is CTIMERB2 OUT. */ + CTIMER_AUX7_TMRB7TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX7_TMRB7TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX7_TMRB7TRIG_A2OUT2 = 10, /*!< A2OUT2 : Trigger source is CTIMERA2 OUT2. */ + CTIMER_AUX7_TMRB7TRIG_B2OUT2 = 11, /*!< B2OUT2 : Trigger source is CTIMERB2 OUT2. */ + CTIMER_AUX7_TMRB7TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX7_TMRB7TRIG_A7OUT2DUAL = 13, /*!< A7OUT2DUAL : Trigger source is CTIMERA7 OUT2, dual edge. */ + CTIMER_AUX7_TMRB7TRIG_B1OUT2DUAL = 14, /*!< B1OUT2DUAL : Trigger source is CTIMERB1 OUT2, dual edge. */ + CTIMER_AUX7_TMRB7TRIG_A1OUT2DUAL = 15, /*!< A1OUT2DUAL : Trigger source is CTIMERA1 OUT2, dual edge. */ +} CTIMER_AUX7_TMRB7TRIG_Enum; + +/* ============================================ CTIMER AUX7 TMRA7EN23 [14..14] ============================================= */ +typedef enum { /*!< CTIMER_AUX7_TMRA7EN23 */ + CTIMER_AUX7_TMRA7EN23_DIS = 1, /*!< DIS : Disable enhanced functions. */ + CTIMER_AUX7_TMRA7EN23_EN = 0, /*!< EN : Enable enhanced functions. */ +} CTIMER_AUX7_TMRA7EN23_Enum; + +/* ============================================ CTIMER AUX7 TMRA7POL23 [13..13] ============================================ */ +typedef enum { /*!< CTIMER_AUX7_TMRA7POL23 */ + CTIMER_AUX7_TMRA7POL23_NORM = 0, /*!< NORM : Upper output normal polarity */ + CTIMER_AUX7_TMRA7POL23_INV = 1, /*!< INV : Upper output inverted polarity. */ +} CTIMER_AUX7_TMRA7POL23_Enum; + +/* ============================================ CTIMER AUX7 TMRA7TINV [12..12] ============================================= */ +typedef enum { /*!< CTIMER_AUX7_TMRA7TINV */ + CTIMER_AUX7_TMRA7TINV_DIS = 0, /*!< DIS : Disable invert on trigger */ + CTIMER_AUX7_TMRA7TINV_EN = 1, /*!< EN : Enable invert on trigger */ +} CTIMER_AUX7_TMRA7TINV_Enum; + +/* =========================================== CTIMER AUX7 TMRA7NOSYNC [11..11] ============================================ */ +typedef enum { /*!< CTIMER_AUX7_TMRA7NOSYNC */ + CTIMER_AUX7_TMRA7NOSYNC_DIS = 0, /*!< DIS : Synchronization on source clock */ + CTIMER_AUX7_TMRA7NOSYNC_NOSYNC = 1, /*!< NOSYNC : No synchronization on source clock */ +} CTIMER_AUX7_TMRA7NOSYNC_Enum; + +/* ============================================= CTIMER AUX7 TMRA7TRIG [7..10] ============================================= */ +typedef enum { /*!< CTIMER_AUX7_TMRA7TRIG */ + CTIMER_AUX7_TMRA7TRIG_DIS = 0, /*!< DIS : Trigger source is disabled. */ + CTIMER_AUX7_TMRA7TRIG_B7OUT = 1, /*!< B7OUT : Trigger source is CTIMERB7 OUT. */ + CTIMER_AUX7_TMRA7TRIG_B3OUT = 2, /*!< B3OUT : Trigger source is CTIMERB3 OUT. */ + CTIMER_AUX7_TMRA7TRIG_A3OUT = 3, /*!< A3OUT : Trigger source is CTIMERA3 OUT. */ + CTIMER_AUX7_TMRA7TRIG_A1OUT = 4, /*!< A1OUT : Trigger source is CTIMERA1 OUT. */ + CTIMER_AUX7_TMRA7TRIG_B1OUT = 5, /*!< B1OUT : Trigger source is CTIMERB1 OUT. */ + CTIMER_AUX7_TMRA7TRIG_A4OUT = 6, /*!< A4OUT : Trigger source is CTIMERA4 OUT. */ + CTIMER_AUX7_TMRA7TRIG_B4OUT = 7, /*!< B4OUT : Trigger source is CTIMERB4 OUT. */ + CTIMER_AUX7_TMRA7TRIG_B3OUT2 = 8, /*!< B3OUT2 : Trigger source is CTIMERB3 OUT2. */ + CTIMER_AUX7_TMRA7TRIG_A3OUT2 = 9, /*!< A3OUT2 : Trigger source is CTIMERA3 OUT2. */ + CTIMER_AUX7_TMRA7TRIG_A2OUT2 = 10, /*!< A2OUT2 : Trigger source is CTIMERA2 OUT2. */ + CTIMER_AUX7_TMRA7TRIG_B2OUT2 = 11, /*!< B2OUT2 : Trigger source is CTIMERB2 OUT2. */ + CTIMER_AUX7_TMRA7TRIG_A6OUT2DUAL = 12, /*!< A6OUT2DUAL : Trigger source is CTIMERA6 OUT2, dual edge. */ + CTIMER_AUX7_TMRA7TRIG_A5OUT2DUAL = 13, /*!< A5OUT2DUAL : Trigger source is CTIMERA5 OUT2, dual edge. */ + CTIMER_AUX7_TMRA7TRIG_B4OUT2DUAL = 14, /*!< B4OUT2DUAL : Trigger source is CTIMERB4 OUT2, dual edge. */ + CTIMER_AUX7_TMRA7TRIG_A4OUT2DUAL = 15, /*!< A4OUT2DUAL : Trigger source is CTIMERA4 OUT2, dual edge. */ +} CTIMER_AUX7_TMRA7TRIG_Enum; + +/* ======================================================== GLOBEN ========================================================= */ +/* ============================================== CTIMER GLOBEN ENB7 [15..15] ============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB7 */ + CTIMER_GLOBEN_ENB7_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB7_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB7_Enum; + +/* ============================================== CTIMER GLOBEN ENA7 [14..14] ============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA7 */ + CTIMER_GLOBEN_ENA7_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA7_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA7_Enum; + +/* ============================================== CTIMER GLOBEN ENB6 [13..13] ============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB6 */ + CTIMER_GLOBEN_ENB6_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB6_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB6_Enum; + +/* ============================================== CTIMER GLOBEN ENA6 [12..12] ============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA6 */ + CTIMER_GLOBEN_ENA6_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA6_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA6_Enum; + +/* ============================================== CTIMER GLOBEN ENB5 [11..11] ============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB5 */ + CTIMER_GLOBEN_ENB5_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB5_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB5_Enum; + +/* ============================================== CTIMER GLOBEN ENA5 [10..10] ============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA5 */ + CTIMER_GLOBEN_ENA5_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA5_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA5_Enum; + +/* =============================================== CTIMER GLOBEN ENB4 [9..9] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB4 */ + CTIMER_GLOBEN_ENB4_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB4_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB4_Enum; + +/* =============================================== CTIMER GLOBEN ENA4 [8..8] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA4 */ + CTIMER_GLOBEN_ENA4_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA4_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA4_Enum; + +/* =============================================== CTIMER GLOBEN ENB3 [7..7] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB3 */ + CTIMER_GLOBEN_ENB3_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB3_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB3_Enum; + +/* =============================================== CTIMER GLOBEN ENA3 [6..6] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA3 */ + CTIMER_GLOBEN_ENA3_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA3_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA3_Enum; + +/* =============================================== CTIMER GLOBEN ENB2 [5..5] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB2 */ + CTIMER_GLOBEN_ENB2_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB2_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB2_Enum; + +/* =============================================== CTIMER GLOBEN ENA2 [4..4] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA2 */ + CTIMER_GLOBEN_ENA2_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA2_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA2_Enum; + +/* =============================================== CTIMER GLOBEN ENB1 [3..3] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB1 */ + CTIMER_GLOBEN_ENB1_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB1_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB1_Enum; + +/* =============================================== CTIMER GLOBEN ENA1 [2..2] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA1 */ + CTIMER_GLOBEN_ENA1_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA1_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA1_Enum; + +/* =============================================== CTIMER GLOBEN ENB0 [1..1] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENB0 */ + CTIMER_GLOBEN_ENB0_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENB0_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENB0_Enum; + +/* =============================================== CTIMER GLOBEN ENA0 [0..0] =============================================== */ +typedef enum { /*!< CTIMER_GLOBEN_ENA0 */ + CTIMER_GLOBEN_ENA0_LCO = 1, /*!< LCO : Use local enable. */ + CTIMER_GLOBEN_ENA0_DIS = 0, /*!< DIS : Disable CTIMER. */ +} CTIMER_GLOBEN_ENA0_Enum; + +/* ======================================================== OUTCFG0 ======================================================== */ +/* ============================================= CTIMER OUTCFG0 CFG9 [28..30] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG9 */ + CTIMER_OUTCFG0_CFG9_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG9_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG9_B0OUT = 5, /*!< B0OUT : Output is B0OUT. */ + CTIMER_OUTCFG0_CFG9_A4OUT = 4, /*!< A4OUT : Output is A4OUT. */ + CTIMER_OUTCFG0_CFG9_A2OUT = 3, /*!< A2OUT : Output is A2OUT. */ + CTIMER_OUTCFG0_CFG9_A2OUT2 = 2, /*!< A2OUT2 : Output is A2OUT2 */ + CTIMER_OUTCFG0_CFG9_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG9_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG9_Enum; + +/* ============================================= CTIMER OUTCFG0 CFG8 [25..27] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG8 */ + CTIMER_OUTCFG0_CFG8_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG8_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG8_B6OUT = 5, /*!< B6OUT : Output is B6OUT. */ + CTIMER_OUTCFG0_CFG8_A4OUT2 = 4, /*!< A4OUT2 : Output is A4OUT2. */ + CTIMER_OUTCFG0_CFG8_A3OUT2 = 3, /*!< A3OUT2 : Output is A3OUT. */ + CTIMER_OUTCFG0_CFG8_A2OUT = 2, /*!< A2OUT : Output is A2OUT */ + CTIMER_OUTCFG0_CFG8_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG8_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG8_Enum; + +/* ============================================= CTIMER OUTCFG0 CFG7 [22..24] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG7 */ + CTIMER_OUTCFG0_CFG7_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG7_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG7_A7OUT = 5, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG0_CFG7_B5OUT = 4, /*!< B5OUT : Output is B5OUT. */ + CTIMER_OUTCFG0_CFG7_B1OUT = 3, /*!< B1OUT : Output is B1OUT. */ + CTIMER_OUTCFG0_CFG7_B1OUT2 = 2, /*!< B1OUT2 : Output is B1OUT2 */ + CTIMER_OUTCFG0_CFG7_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG7_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG7_Enum; + +/* ============================================= CTIMER OUTCFG0 CFG6 [19..21] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG6 */ + CTIMER_OUTCFG0_CFG6_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG6_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG6_B7OUT = 5, /*!< B7OUT : Output is B7OUT. */ + CTIMER_OUTCFG0_CFG6_B5OUT2 = 4, /*!< B5OUT2 : Output is B5OUT2. */ + CTIMER_OUTCFG0_CFG6_A1OUT = 3, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG0_CFG6_B1OUT = 2, /*!< B1OUT : Output is B1OUT */ + CTIMER_OUTCFG0_CFG6_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG6_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG6_Enum; + +/* ============================================= CTIMER OUTCFG0 CFG5 [16..18] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG5 */ + CTIMER_OUTCFG0_CFG5_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG5_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG5_A7OUT = 5, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG0_CFG5_B6OUT = 4, /*!< B6OUT : Output is A5OUT. */ + CTIMER_OUTCFG0_CFG5_A1OUT = 3, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG0_CFG5_A1OUT2 = 2, /*!< A1OUT2 : Output is A1OUT2 */ + CTIMER_OUTCFG0_CFG5_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG5_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG5_Enum; + +/* ============================================= CTIMER OUTCFG0 CFG4 [12..14] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG4 */ + CTIMER_OUTCFG0_CFG4_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG4_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG4_B5OUT = 5, /*!< B5OUT : Output is B5OUT. */ + CTIMER_OUTCFG0_CFG4_A5OUT2 = 4, /*!< A5OUT2 : Output is A5OUT2. */ + CTIMER_OUTCFG0_CFG4_A2OUT2 = 3, /*!< A2OUT2 : Output is A2OUT2. */ + CTIMER_OUTCFG0_CFG4_A1OUT = 2, /*!< A1OUT : Output is A1OUT */ + CTIMER_OUTCFG0_CFG4_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG4_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG4_Enum; + +/* ============================================== CTIMER OUTCFG0 CFG3 [9..11] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG3 */ + CTIMER_OUTCFG0_CFG3_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG3_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG3_A6OUT = 5, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG0_CFG3_A1OUT = 4, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG0_CFG3_B0OUT = 3, /*!< B0OUT : Output is B0OUT. */ + CTIMER_OUTCFG0_CFG3_B0OUT2 = 2, /*!< B0OUT2 : Output is B0OUT2 */ + CTIMER_OUTCFG0_CFG3_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG3_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG3_Enum; + +/* ============================================== CTIMER OUTCFG0 CFG2 [6..8] =============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG2 */ + CTIMER_OUTCFG0_CFG2_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG2_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG2_A7OUT = 5, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG0_CFG2_B6OUT2 = 4, /*!< B6OUT2 : Output is B6OUT2. */ + CTIMER_OUTCFG0_CFG2_B1OUT2 = 3, /*!< B1OUT2 : Output is B1OUT2. */ + CTIMER_OUTCFG0_CFG2_B0OUT = 2, /*!< B0OUT : Output is B0OUT */ + CTIMER_OUTCFG0_CFG2_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG2_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG2_Enum; + +/* ============================================== CTIMER OUTCFG0 CFG1 [3..5] =============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG1 */ + CTIMER_OUTCFG0_CFG1_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG1_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG1_B7OUT2 = 5, /*!< B7OUT2 : Output is B7OUT2. */ + CTIMER_OUTCFG0_CFG1_A5OUT = 4, /*!< A5OUT : Output is A5OUT. */ + CTIMER_OUTCFG0_CFG1_A0OUT = 3, /*!< A0OUT : Output is A0OUT. */ + CTIMER_OUTCFG0_CFG1_A0OUT2 = 2, /*!< A0OUT2 : Output is A0OUT2 */ + CTIMER_OUTCFG0_CFG1_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG1_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG1_Enum; + +/* ============================================== CTIMER OUTCFG0 CFG0 [0..2] =============================================== */ +typedef enum { /*!< CTIMER_OUTCFG0_CFG0 */ + CTIMER_OUTCFG0_CFG0_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG0_CFG0_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG0_CFG0_A6OUT = 5, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG0_CFG0_A5OUT2 = 4, /*!< A5OUT2 : Output is A5OUT2. */ + CTIMER_OUTCFG0_CFG0_B2OUT2 = 3, /*!< B2OUT2 : Output is B2OUT2. */ + CTIMER_OUTCFG0_CFG0_A0OUT = 2, /*!< A0OUT : Output is A0OUT */ + CTIMER_OUTCFG0_CFG0_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG0_CFG0_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG0_CFG0_Enum; + +/* ======================================================== OUTCFG1 ======================================================== */ +/* ============================================= CTIMER OUTCFG1 CFG19 [28..30] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG19 */ + CTIMER_OUTCFG1_CFG19_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG19_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG19_B1OUT2 = 5, /*!< B1OUT2 : Output is B1OUT2. */ + CTIMER_OUTCFG1_CFG19_B4OUT = 4, /*!< B4OUT : Output is B4OUT. */ + CTIMER_OUTCFG1_CFG19_A2OUT = 3, /*!< A2OUT : Output is A2OUT. */ + CTIMER_OUTCFG1_CFG19_B4OUT2 = 2, /*!< B4OUT2 : Output is B4OUT2 */ + CTIMER_OUTCFG1_CFG19_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG19_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG19_Enum; + +/* ============================================= CTIMER OUTCFG1 CFG18 [25..27] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG18 */ + CTIMER_OUTCFG1_CFG18_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG18_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG18_A3OUT2 = 5, /*!< A3OUT2 : Output is A3OUT2. */ + CTIMER_OUTCFG1_CFG18_A0OUT = 4, /*!< A0OUT : Output is A0OUT. */ + CTIMER_OUTCFG1_CFG18_B0OUT = 3, /*!< B0OUT : Output is B0OUT. */ + CTIMER_OUTCFG1_CFG18_B4OUT = 2, /*!< B4OUT : Output is B4OUT */ + CTIMER_OUTCFG1_CFG18_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG18_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG18_Enum; + +/* ============================================= CTIMER OUTCFG1 CFG17 [22..24] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG17 */ + CTIMER_OUTCFG1_CFG17_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG17_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG17_A1OUT2 = 5, /*!< A1OUT2 : Output is A1OUT2. */ + CTIMER_OUTCFG1_CFG17_A4OUT = 4, /*!< A4OUT : Output is A4OUT. */ + CTIMER_OUTCFG1_CFG17_B7OUT = 3, /*!< B7OUT : Output is B7OUT. */ + CTIMER_OUTCFG1_CFG17_A4OUT2 = 2, /*!< A4OUT2 : Output is A4OUT2 */ + CTIMER_OUTCFG1_CFG17_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG17_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG17_Enum; + +/* ============================================= CTIMER OUTCFG1 CFG16 [19..21] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG16 */ + CTIMER_OUTCFG1_CFG16_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG16_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG16_B3OUT2 = 5, /*!< B3OUT2 : Output is B3OUT2. */ + CTIMER_OUTCFG1_CFG16_A0OUT2 = 4, /*!< A0OUT2 : Output is A0OUT2. */ + CTIMER_OUTCFG1_CFG16_A0OUT = 3, /*!< A0OUT : Output is A0OUT. */ + CTIMER_OUTCFG1_CFG16_A4OUT = 2, /*!< A4OUT : Output is A4OUT */ + CTIMER_OUTCFG1_CFG16_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG16_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG16_Enum; + +/* ============================================= CTIMER OUTCFG1 CFG15 [16..18] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG15 */ + CTIMER_OUTCFG1_CFG15_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG15_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG15_A4OUT2 = 5, /*!< A4OUT2 : Output is A4OUT2. */ + CTIMER_OUTCFG1_CFG15_A7OUT = 4, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG1_CFG15_B3OUT = 3, /*!< B3OUT : Output is B3OUT. */ + CTIMER_OUTCFG1_CFG15_B3OUT2 = 2, /*!< B3OUT2 : Output is B3OUT2 */ + CTIMER_OUTCFG1_CFG15_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG15_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG15_Enum; + +/* ============================================= CTIMER OUTCFG1 CFG14 [12..14] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG14 */ + CTIMER_OUTCFG1_CFG14_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG14_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG14_A7OUT = 5, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG1_CFG14_B7OUT2 = 4, /*!< B7OUT2 : Output is B7OUT2. */ + CTIMER_OUTCFG1_CFG14_B1OUT = 3, /*!< B1OUT : Output is B1OUT. */ + CTIMER_OUTCFG1_CFG14_B3OUT = 2, /*!< B3OUT : Output is B3OUT */ + CTIMER_OUTCFG1_CFG14_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG14_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG14_Enum; + +/* ============================================= CTIMER OUTCFG1 CFG13 [9..11] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG13 */ + CTIMER_OUTCFG1_CFG13_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG13_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG13_B4OUT2 = 5, /*!< B4OUT2 : Output is B4OUT2. */ + CTIMER_OUTCFG1_CFG13_A6OUT = 4, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG1_CFG13_A3OUT = 3, /*!< A3OUT : Output is A3OUT. */ + CTIMER_OUTCFG1_CFG13_A3OUT2 = 2, /*!< A3OUT2 : Output is A3OUT2 */ + CTIMER_OUTCFG1_CFG13_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG13_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG13_Enum; + +/* ============================================== CTIMER OUTCFG1 CFG12 [6..8] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG12 */ + CTIMER_OUTCFG1_CFG12_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG12_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG12_B6OUT2 = 5, /*!< B6OUT2 : Output is B6OUT2. */ + CTIMER_OUTCFG1_CFG12_B0OUT2 = 4, /*!< B0OUT2 : Output is B0OUT2. */ + CTIMER_OUTCFG1_CFG12_B1OUT = 3, /*!< B1OUT : Output is B1OUT. */ + CTIMER_OUTCFG1_CFG12_A3OUT = 2, /*!< A3OUT : Output is A3OUT */ + CTIMER_OUTCFG1_CFG12_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG12_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG12_Enum; + +/* ============================================== CTIMER OUTCFG1 CFG11 [3..5] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG11 */ + CTIMER_OUTCFG1_CFG11_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG11_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG11_B5OUT2 = 5, /*!< B5OUT2 : Output is B5OUT2. */ + CTIMER_OUTCFG1_CFG11_B4OUT = 4, /*!< B4OUT : Output is B4OUT. */ + CTIMER_OUTCFG1_CFG11_B2OUT = 3, /*!< B2OUT : Output is B2OUT. */ + CTIMER_OUTCFG1_CFG11_B2OUT2 = 2, /*!< B2OUT2 : Output is B2OUT2 */ + CTIMER_OUTCFG1_CFG11_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG11_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG11_Enum; + +/* ============================================== CTIMER OUTCFG1 CFG10 [0..2] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG1_CFG10 */ + CTIMER_OUTCFG1_CFG10_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG1_CFG10_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG1_CFG10_A6OUT = 5, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG1_CFG10_B4OUT2 = 4, /*!< B4OUT2 : Output is B4OUT2. */ + CTIMER_OUTCFG1_CFG10_B3OUT2 = 3, /*!< B3OUT2 : Output is B3OUT2. */ + CTIMER_OUTCFG1_CFG10_B2OUT = 2, /*!< B2OUT : Output is B2OUT */ + CTIMER_OUTCFG1_CFG10_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG1_CFG10_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG1_CFG10_Enum; + +/* ======================================================== OUTCFG2 ======================================================== */ +/* ============================================= CTIMER OUTCFG2 CFG29 [28..30] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG29 */ + CTIMER_OUTCFG2_CFG29_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG29_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG29_A3OUT2 = 5, /*!< A3OUT2 : Output is A3OUT2. */ + CTIMER_OUTCFG2_CFG29_A7OUT = 4, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG2_CFG29_A1OUT = 3, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG2_CFG29_B5OUT2 = 2, /*!< B5OUT2 : Output is B5OUT2 */ + CTIMER_OUTCFG2_CFG29_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG29_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG29_Enum; + +/* ============================================= CTIMER OUTCFG2 CFG28 [25..27] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG28 */ + CTIMER_OUTCFG2_CFG28_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG28_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG28_B0OUT2 = 5, /*!< B0OUT2 : Output is B0OUT2. */ + CTIMER_OUTCFG2_CFG28_A5OUT2 = 4, /*!< A5OUT2 : Output is A5OUT2. */ + CTIMER_OUTCFG2_CFG28_A3OUT = 3, /*!< A3OUT : Output is A3OUT. */ + CTIMER_OUTCFG2_CFG28_A7OUT = 2, /*!< A7OUT : Output is A7OUT */ + CTIMER_OUTCFG2_CFG28_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG28_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG28_Enum; + +/* ============================================= CTIMER OUTCFG2 CFG27 [22..24] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG27 */ + CTIMER_OUTCFG2_CFG27_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG27_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG27_B2OUT2 = 5, /*!< B2OUT2 : Output is B2OUT2. */ + CTIMER_OUTCFG2_CFG27_B6OUT = 4, /*!< B6OUT : Output is B6OUT. */ + CTIMER_OUTCFG2_CFG27_A1OUT = 3, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG2_CFG27_B6OUT2 = 2, /*!< B6OUT2 : Output is B6OUT2 */ + CTIMER_OUTCFG2_CFG27_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG27_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG27_Enum; + +/* ============================================= CTIMER OUTCFG2 CFG26 [19..21] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG26 */ + CTIMER_OUTCFG2_CFG26_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG26_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG26_A1OUT2 = 5, /*!< A1OUT2 : Output is A1OUT2. */ + CTIMER_OUTCFG2_CFG26_A5OUT = 4, /*!< A5OUT : Output is A5OUT. */ + CTIMER_OUTCFG2_CFG26_B2OUT = 3, /*!< B2OUT : Output is B2OUT. */ + CTIMER_OUTCFG2_CFG26_B6OUT = 2, /*!< B6OUT : Output is B6OUT */ + CTIMER_OUTCFG2_CFG26_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG26_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG26_Enum; + +/* ============================================= CTIMER OUTCFG2 CFG25 [16..18] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG25 */ + CTIMER_OUTCFG2_CFG25_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG25_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG25_A2OUT2 = 5, /*!< A2OUT2 : Output is A2OUT2. */ + CTIMER_OUTCFG2_CFG25_A6OUT = 4, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG2_CFG25_B2OUT = 3, /*!< B2OUT : Output is B2OUT. */ + CTIMER_OUTCFG2_CFG25_B4OUT2 = 2, /*!< B4OUT2 : Output is B4OUT2 */ + CTIMER_OUTCFG2_CFG25_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG25_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG25_Enum; + +/* ============================================= CTIMER OUTCFG2 CFG24 [12..14] ============================================= */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG24 */ + CTIMER_OUTCFG2_CFG24_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG24_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG24_B1OUT2 = 5, /*!< B1OUT2 : Output is B1OUT2. */ + CTIMER_OUTCFG2_CFG24_A1OUT = 4, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG2_CFG24_A2OUT = 3, /*!< A2OUT : Output is A2OUT. */ + CTIMER_OUTCFG2_CFG24_A6OUT = 2, /*!< A6OUT : Output is A6OUT */ + CTIMER_OUTCFG2_CFG24_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG24_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG24_Enum; + +/* ============================================= CTIMER OUTCFG2 CFG23 [9..11] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG23 */ + CTIMER_OUTCFG2_CFG23_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG23_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG23_B0OUT2 = 5, /*!< B0OUT2 : Output is B0OUT2. */ + CTIMER_OUTCFG2_CFG23_A5OUT = 4, /*!< A5OUT : Output is A5OUT. */ + CTIMER_OUTCFG2_CFG23_A7OUT = 3, /*!< A7OUT : Output is A7OUT. */ + CTIMER_OUTCFG2_CFG23_B5OUT2 = 2, /*!< B5OUT2 : Output is B5OUT2 */ + CTIMER_OUTCFG2_CFG23_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG23_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG23_Enum; + +/* ============================================== CTIMER OUTCFG2 CFG22 [6..8] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG22 */ + CTIMER_OUTCFG2_CFG22_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG22_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG22_A2OUT2 = 5, /*!< A2OUT2 : Output is A2OUT2. */ + CTIMER_OUTCFG2_CFG22_A1OUT = 4, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG2_CFG22_A6OUT = 3, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG2_CFG22_B5OUT = 2, /*!< B5OUT : Output is B5OUT */ + CTIMER_OUTCFG2_CFG22_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG22_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG22_Enum; + +/* ============================================== CTIMER OUTCFG2 CFG21 [3..5] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG21 */ + CTIMER_OUTCFG2_CFG21_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG21_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG21_A0OUT2 = 5, /*!< A0OUT2 : Output is A0OUT2. */ + CTIMER_OUTCFG2_CFG21_B5OUT = 4, /*!< B5OUT : Output is B5OUT. */ + CTIMER_OUTCFG2_CFG21_A1OUT = 3, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG2_CFG21_A5OUT2 = 2, /*!< A5OUT2 : Output is A5OUT2 */ + CTIMER_OUTCFG2_CFG21_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG21_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG21_Enum; + +/* ============================================== CTIMER OUTCFG2 CFG20 [0..2] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG2_CFG20 */ + CTIMER_OUTCFG2_CFG20_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG2_CFG20_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG2_CFG20_B2OUT2 = 5, /*!< B2OUT2 : Output is B2OUT2. */ + CTIMER_OUTCFG2_CFG20_A1OUT2 = 4, /*!< A1OUT2 : Output is A1OUT2. */ + CTIMER_OUTCFG2_CFG20_A1OUT = 3, /*!< A1OUT : Output is A1OUT. */ + CTIMER_OUTCFG2_CFG20_A5OUT = 2, /*!< A5OUT : Output is A5OUT */ + CTIMER_OUTCFG2_CFG20_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG2_CFG20_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG2_CFG20_Enum; + +/* ======================================================== OUTCFG3 ======================================================== */ +/* ============================================== CTIMER OUTCFG3 CFG31 [3..5] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG3_CFG31 */ + CTIMER_OUTCFG3_CFG31_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG3_CFG31_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG3_CFG31_B3OUT2 = 5, /*!< B3OUT2 : Output is B3OUT2. */ + CTIMER_OUTCFG3_CFG31_B7OUT = 4, /*!< B7OUT : Output is B7OUT. */ + CTIMER_OUTCFG3_CFG31_A6OUT = 3, /*!< A6OUT : Output is A6OUT. */ + CTIMER_OUTCFG3_CFG31_B7OUT2 = 2, /*!< B7OUT2 : Output is B7OUT2 */ + CTIMER_OUTCFG3_CFG31_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG3_CFG31_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG3_CFG31_Enum; + +/* ============================================== CTIMER OUTCFG3 CFG30 [0..2] ============================================== */ +typedef enum { /*!< CTIMER_OUTCFG3_CFG30 */ + CTIMER_OUTCFG3_CFG30_A7OUT2 = 7, /*!< A7OUT2 : Output is A7OUT2. */ + CTIMER_OUTCFG3_CFG30_A6OUT2 = 6, /*!< A6OUT2 : Output is A6OUT2. */ + CTIMER_OUTCFG3_CFG30_A0OUT2 = 5, /*!< A0OUT2 : Output is A0OUT2. */ + CTIMER_OUTCFG3_CFG30_A4OUT2 = 4, /*!< A4OUT2 : Output is A4OUT2. */ + CTIMER_OUTCFG3_CFG30_B3OUT = 3, /*!< B3OUT : Output is B3OUT. */ + CTIMER_OUTCFG3_CFG30_B7OUT = 2, /*!< B7OUT : Output is B7OUT */ + CTIMER_OUTCFG3_CFG30_ONE = 1, /*!< ONE : Force output to 1. */ + CTIMER_OUTCFG3_CFG30_ZERO = 0, /*!< ZERO : Force output to 0 */ +} CTIMER_OUTCFG3_CFG30_Enum; + +/* ========================================================= INCFG ========================================================= */ +/* ============================================== CTIMER INCFG CFGB7 [15..15] ============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB7 */ + CTIMER_INCFG_CFGB7_CT31 = 1, /*!< CT31 : Input is CT31 */ + CTIMER_INCFG_CFGB7_CT30 = 0, /*!< CT30 : Input is CT30 */ +} CTIMER_INCFG_CFGB7_Enum; + +/* ============================================== CTIMER INCFG CFGA7 [14..14] ============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA7 */ + CTIMER_INCFG_CFGA7_CT29 = 1, /*!< CT29 : Input is CT29 */ + CTIMER_INCFG_CFGA7_CT28 = 0, /*!< CT28 : Input is CT28 */ +} CTIMER_INCFG_CFGA7_Enum; + +/* ============================================== CTIMER INCFG CFGB6 [13..13] ============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB6 */ + CTIMER_INCFG_CFGB6_CT27 = 1, /*!< CT27 : Input is CT27 */ + CTIMER_INCFG_CFGB6_CT26 = 0, /*!< CT26 : Input is CT26 */ +} CTIMER_INCFG_CFGB6_Enum; + +/* ============================================== CTIMER INCFG CFGA6 [12..12] ============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA6 */ + CTIMER_INCFG_CFGA6_CT25 = 1, /*!< CT25 : Input is CT25 */ + CTIMER_INCFG_CFGA6_CT24 = 0, /*!< CT24 : Input is CT24 */ +} CTIMER_INCFG_CFGA6_Enum; + +/* ============================================== CTIMER INCFG CFGB5 [11..11] ============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB5 */ + CTIMER_INCFG_CFGB5_CT23 = 1, /*!< CT23 : Input is CT23 */ + CTIMER_INCFG_CFGB5_CT22 = 0, /*!< CT22 : Input is CT22 */ +} CTIMER_INCFG_CFGB5_Enum; + +/* ============================================== CTIMER INCFG CFGA5 [10..10] ============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA5 */ + CTIMER_INCFG_CFGA5_CT21 = 1, /*!< CT21 : Input is CT21 */ + CTIMER_INCFG_CFGA5_CT20 = 0, /*!< CT20 : Input is CT20 */ +} CTIMER_INCFG_CFGA5_Enum; + +/* =============================================== CTIMER INCFG CFGB4 [9..9] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB4 */ + CTIMER_INCFG_CFGB4_CT19 = 1, /*!< CT19 : Input is CT19 */ + CTIMER_INCFG_CFGB4_CT18 = 0, /*!< CT18 : Input is CT18 */ +} CTIMER_INCFG_CFGB4_Enum; + +/* =============================================== CTIMER INCFG CFGA4 [8..8] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA4 */ + CTIMER_INCFG_CFGA4_CT17 = 1, /*!< CT17 : Input is CT17 */ + CTIMER_INCFG_CFGA4_CT16 = 0, /*!< CT16 : Input is CT16 */ +} CTIMER_INCFG_CFGA4_Enum; + +/* =============================================== CTIMER INCFG CFGB3 [7..7] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB3 */ + CTIMER_INCFG_CFGB3_CT15 = 1, /*!< CT15 : Input is CT15 */ + CTIMER_INCFG_CFGB3_CT14 = 0, /*!< CT14 : Input is CT14 */ +} CTIMER_INCFG_CFGB3_Enum; + +/* =============================================== CTIMER INCFG CFGA3 [6..6] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA3 */ + CTIMER_INCFG_CFGA3_CT13 = 1, /*!< CT13 : Input is CT13 */ + CTIMER_INCFG_CFGA3_CT12 = 0, /*!< CT12 : Input is CT12 */ +} CTIMER_INCFG_CFGA3_Enum; + +/* =============================================== CTIMER INCFG CFGB2 [5..5] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB2 */ + CTIMER_INCFG_CFGB2_CT11 = 1, /*!< CT11 : Input is CT11 */ + CTIMER_INCFG_CFGB2_CT10 = 0, /*!< CT10 : Input is CT10 */ +} CTIMER_INCFG_CFGB2_Enum; + +/* =============================================== CTIMER INCFG CFGA2 [4..4] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA2 */ + CTIMER_INCFG_CFGA2_CT9 = 1, /*!< CT9 : Input is CT9 */ + CTIMER_INCFG_CFGA2_CT8 = 0, /*!< CT8 : Input is CT8 */ +} CTIMER_INCFG_CFGA2_Enum; + +/* =============================================== CTIMER INCFG CFGB1 [3..3] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB1 */ + CTIMER_INCFG_CFGB1_CT7 = 1, /*!< CT7 : Input is CT7 */ + CTIMER_INCFG_CFGB1_CT6 = 0, /*!< CT6 : Input is CT6 */ +} CTIMER_INCFG_CFGB1_Enum; + +/* =============================================== CTIMER INCFG CFGA1 [2..2] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA1 */ + CTIMER_INCFG_CFGA1_CT5 = 1, /*!< CT5 : Input is CT5 */ + CTIMER_INCFG_CFGA1_CT4 = 0, /*!< CT4 : Input is CT4 */ +} CTIMER_INCFG_CFGA1_Enum; + +/* =============================================== CTIMER INCFG CFGB0 [1..1] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGB0 */ + CTIMER_INCFG_CFGB0_CT3 = 1, /*!< CT3 : Input is CT3 */ + CTIMER_INCFG_CFGB0_CT2 = 0, /*!< CT2 : Input is CT2 */ +} CTIMER_INCFG_CFGB0_Enum; + +/* =============================================== CTIMER INCFG CFGA0 [0..0] =============================================== */ +typedef enum { /*!< CTIMER_INCFG_CFGA0 */ + CTIMER_INCFG_CFGA0_CT1 = 1, /*!< CT1 : Input is CT1 */ + CTIMER_INCFG_CFGA0_CT0 = 0, /*!< CT0 : Input is CT0 */ +} CTIMER_INCFG_CFGA0_Enum; + +/* ========================================================= STCFG ========================================================= */ +/* ============================================= CTIMER STCFG FREEZE [31..31] ============================================== */ +typedef enum { /*!< CTIMER_STCFG_FREEZE */ + CTIMER_STCFG_FREEZE_THAW = 0, /*!< THAW : Let the COUNTER register run on its input clock. */ + CTIMER_STCFG_FREEZE_FREEZE = 1, /*!< FREEZE : Stop the COUNTER register for loading. */ +} CTIMER_STCFG_FREEZE_Enum; + +/* ============================================== CTIMER STCFG CLEAR [30..30] ============================================== */ +typedef enum { /*!< CTIMER_STCFG_CLEAR */ + CTIMER_STCFG_CLEAR_RUN = 0, /*!< RUN : Let the COUNTER register run on its input clock. */ + CTIMER_STCFG_CLEAR_CLEAR = 1, /*!< CLEAR : Stop the COUNTER register for loading. */ +} CTIMER_STCFG_CLEAR_Enum; + +/* ========================================== CTIMER STCFG COMPARE_H_EN [15..15] =========================================== */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_H_EN */ + CTIMER_STCFG_COMPARE_H_EN_DISABLE = 0, /*!< DISABLE : Compare H disabled. */ + CTIMER_STCFG_COMPARE_H_EN_ENABLE = 1, /*!< ENABLE : Compare H enabled. */ +} CTIMER_STCFG_COMPARE_H_EN_Enum; + +/* ========================================== CTIMER STCFG COMPARE_G_EN [14..14] =========================================== */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_G_EN */ + CTIMER_STCFG_COMPARE_G_EN_DISABLE = 0, /*!< DISABLE : Compare G disabled. */ + CTIMER_STCFG_COMPARE_G_EN_ENABLE = 1, /*!< ENABLE : Compare G enabled. */ +} CTIMER_STCFG_COMPARE_G_EN_Enum; + +/* ========================================== CTIMER STCFG COMPARE_F_EN [13..13] =========================================== */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_F_EN */ + CTIMER_STCFG_COMPARE_F_EN_DISABLE = 0, /*!< DISABLE : Compare F disabled. */ + CTIMER_STCFG_COMPARE_F_EN_ENABLE = 1, /*!< ENABLE : Compare F enabled. */ +} CTIMER_STCFG_COMPARE_F_EN_Enum; + +/* ========================================== CTIMER STCFG COMPARE_E_EN [12..12] =========================================== */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_E_EN */ + CTIMER_STCFG_COMPARE_E_EN_DISABLE = 0, /*!< DISABLE : Compare E disabled. */ + CTIMER_STCFG_COMPARE_E_EN_ENABLE = 1, /*!< ENABLE : Compare E enabled. */ +} CTIMER_STCFG_COMPARE_E_EN_Enum; + +/* ========================================== CTIMER STCFG COMPARE_D_EN [11..11] =========================================== */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_D_EN */ + CTIMER_STCFG_COMPARE_D_EN_DISABLE = 0, /*!< DISABLE : Compare D disabled. */ + CTIMER_STCFG_COMPARE_D_EN_ENABLE = 1, /*!< ENABLE : Compare D enabled. */ +} CTIMER_STCFG_COMPARE_D_EN_Enum; + +/* ========================================== CTIMER STCFG COMPARE_C_EN [10..10] =========================================== */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_C_EN */ + CTIMER_STCFG_COMPARE_C_EN_DISABLE = 0, /*!< DISABLE : Compare C disabled. */ + CTIMER_STCFG_COMPARE_C_EN_ENABLE = 1, /*!< ENABLE : Compare C enabled. */ +} CTIMER_STCFG_COMPARE_C_EN_Enum; + +/* =========================================== CTIMER STCFG COMPARE_B_EN [9..9] ============================================ */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_B_EN */ + CTIMER_STCFG_COMPARE_B_EN_DISABLE = 0, /*!< DISABLE : Compare B disabled. */ + CTIMER_STCFG_COMPARE_B_EN_ENABLE = 1, /*!< ENABLE : Compare B enabled. */ +} CTIMER_STCFG_COMPARE_B_EN_Enum; + +/* =========================================== CTIMER STCFG COMPARE_A_EN [8..8] ============================================ */ +typedef enum { /*!< CTIMER_STCFG_COMPARE_A_EN */ + CTIMER_STCFG_COMPARE_A_EN_DISABLE = 0, /*!< DISABLE : Compare A disabled. */ + CTIMER_STCFG_COMPARE_A_EN_ENABLE = 1, /*!< ENABLE : Compare A enabled. */ +} CTIMER_STCFG_COMPARE_A_EN_Enum; + +/* ============================================== CTIMER STCFG CLKSEL [0..3] =============================================== */ +typedef enum { /*!< CTIMER_STCFG_CLKSEL */ + CTIMER_STCFG_CLKSEL_NOCLK = 0, /*!< NOCLK : No clock enabled. */ + CTIMER_STCFG_CLKSEL_HFRC_DIV16 = 1, /*!< HFRC_DIV16 : 3MHz from the HFRC clock divider. */ + CTIMER_STCFG_CLKSEL_HFRC_DIV256 = 2, /*!< HFRC_DIV256 : 187.5KHz from the HFRC clock divider. */ + CTIMER_STCFG_CLKSEL_XTAL_DIV1 = 3, /*!< XTAL_DIV1 : 32768Hz from the crystal oscillator. */ + CTIMER_STCFG_CLKSEL_XTAL_DIV2 = 4, /*!< XTAL_DIV2 : 16384Hz from the crystal oscillator. */ + CTIMER_STCFG_CLKSEL_XTAL_DIV32 = 5, /*!< XTAL_DIV32 : 1024Hz from the crystal oscillator. */ + CTIMER_STCFG_CLKSEL_LFRC_DIV1 = 6, /*!< LFRC_DIV1 : Approximately 1KHz from the LFRC oscillator (uncalibrated). */ + CTIMER_STCFG_CLKSEL_CTIMER0A = 7, /*!< CTIMER0A : Use CTIMER 0 section A as a prescaler for the clock + source. */ + CTIMER_STCFG_CLKSEL_CTIMER0B = 8, /*!< CTIMER0B : Use CTIMER 0 section B (or A and B linked together) + as a prescaler for the clock source. */ +} CTIMER_STCFG_CLKSEL_Enum; + +/* ========================================================= STTMR ========================================================= */ +/* ==================================================== CAPTURECONTROL ===================================================== */ +/* ========================================= CTIMER CAPTURECONTROL CAPTURE3 [3..3] ========================================= */ +typedef enum { /*!< CTIMER_CAPTURECONTROL_CAPTURE3 */ + CTIMER_CAPTURECONTROL_CAPTURE3_DISABLE = 0, /*!< DISABLE : Capture function disabled. */ + CTIMER_CAPTURECONTROL_CAPTURE3_ENABLE = 1, /*!< ENABLE : Capture function enabled. */ +} CTIMER_CAPTURECONTROL_CAPTURE3_Enum; + +/* ========================================= CTIMER CAPTURECONTROL CAPTURE2 [2..2] ========================================= */ +typedef enum { /*!< CTIMER_CAPTURECONTROL_CAPTURE2 */ + CTIMER_CAPTURECONTROL_CAPTURE2_DISABLE = 0, /*!< DISABLE : Capture function disabled. */ + CTIMER_CAPTURECONTROL_CAPTURE2_ENABLE = 1, /*!< ENABLE : Capture function enabled. */ +} CTIMER_CAPTURECONTROL_CAPTURE2_Enum; + +/* ========================================= CTIMER CAPTURECONTROL CAPTURE1 [1..1] ========================================= */ +typedef enum { /*!< CTIMER_CAPTURECONTROL_CAPTURE1 */ + CTIMER_CAPTURECONTROL_CAPTURE1_DISABLE = 0, /*!< DISABLE : Capture function disabled. */ + CTIMER_CAPTURECONTROL_CAPTURE1_ENABLE = 1, /*!< ENABLE : Capture function enabled. */ +} CTIMER_CAPTURECONTROL_CAPTURE1_Enum; + +/* ========================================= CTIMER CAPTURECONTROL CAPTURE0 [0..0] ========================================= */ +typedef enum { /*!< CTIMER_CAPTURECONTROL_CAPTURE0 */ + CTIMER_CAPTURECONTROL_CAPTURE0_DISABLE = 0, /*!< DISABLE : Capture function disabled. */ + CTIMER_CAPTURECONTROL_CAPTURE0_ENABLE = 1, /*!< ENABLE : Capture function enabled. */ +} CTIMER_CAPTURECONTROL_CAPTURE0_Enum; + +/* ======================================================== SCMPR0 ========================================================= */ +/* ======================================================== SCMPR1 ========================================================= */ +/* ======================================================== SCMPR2 ========================================================= */ +/* ======================================================== SCMPR3 ========================================================= */ +/* ======================================================== SCMPR4 ========================================================= */ +/* ======================================================== SCMPR5 ========================================================= */ +/* ======================================================== SCMPR6 ========================================================= */ +/* ======================================================== SCMPR7 ========================================================= */ +/* ======================================================== SCAPT0 ========================================================= */ +/* ======================================================== SCAPT1 ========================================================= */ +/* ======================================================== SCAPT2 ========================================================= */ +/* ======================================================== SCAPT3 ========================================================= */ +/* ========================================================= SNVR0 ========================================================= */ +/* ========================================================= SNVR1 ========================================================= */ +/* ========================================================= SNVR2 ========================================================= */ +/* ========================================================= SNVR3 ========================================================= */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ======================================================= STMINTEN ======================================================== */ +/* =========================================== CTIMER STMINTEN CAPTURED [12..12] =========================================== */ +typedef enum { /*!< CTIMER_STMINTEN_CAPTURED */ + CTIMER_STMINTEN_CAPTURED_CAPD_INT = 1, /*!< CAPD_INT : Capture D interrupt status bit was set. */ +} CTIMER_STMINTEN_CAPTURED_Enum; + +/* =========================================== CTIMER STMINTEN CAPTUREC [11..11] =========================================== */ +typedef enum { /*!< CTIMER_STMINTEN_CAPTUREC */ + CTIMER_STMINTEN_CAPTUREC_CAPC_INT = 1, /*!< CAPC_INT : CAPTURE C interrupt status bit was set. */ +} CTIMER_STMINTEN_CAPTUREC_Enum; + +/* =========================================== CTIMER STMINTEN CAPTUREB [10..10] =========================================== */ +typedef enum { /*!< CTIMER_STMINTEN_CAPTUREB */ + CTIMER_STMINTEN_CAPTUREB_CAPB_INT = 1, /*!< CAPB_INT : CAPTURE B interrupt status bit was set. */ +} CTIMER_STMINTEN_CAPTUREB_Enum; + +/* ============================================ CTIMER STMINTEN CAPTUREA [9..9] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_CAPTUREA */ + CTIMER_STMINTEN_CAPTUREA_CAPA_INT = 1, /*!< CAPA_INT : CAPTURE A interrupt status bit was set. */ +} CTIMER_STMINTEN_CAPTUREA_Enum; + +/* ============================================ CTIMER STMINTEN OVERFLOW [8..8] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_OVERFLOW */ + CTIMER_STMINTEN_OVERFLOW_OFLOW_INT = 1, /*!< OFLOW_INT : Overflow interrupt status bit was set. */ +} CTIMER_STMINTEN_OVERFLOW_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREH [7..7] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREH */ + CTIMER_STMINTEN_COMPAREH_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREH_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREG [6..6] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREG */ + CTIMER_STMINTEN_COMPAREG_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREG_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREF [5..5] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREF */ + CTIMER_STMINTEN_COMPAREF_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREF_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREE [4..4] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREE */ + CTIMER_STMINTEN_COMPAREE_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREE_Enum; + +/* ============================================ CTIMER STMINTEN COMPARED [3..3] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPARED */ + CTIMER_STMINTEN_COMPARED_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPARED_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREC [2..2] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREC */ + CTIMER_STMINTEN_COMPAREC_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREC_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREB [1..1] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREB */ + CTIMER_STMINTEN_COMPAREB_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREB_Enum; + +/* ============================================ CTIMER STMINTEN COMPAREA [0..0] ============================================ */ +typedef enum { /*!< CTIMER_STMINTEN_COMPAREA */ + CTIMER_STMINTEN_COMPAREA_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTEN_COMPAREA_Enum; + +/* ====================================================== STMINTSTAT ======================================================= */ +/* ========================================== CTIMER STMINTSTAT CAPTURED [12..12] ========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_CAPTURED */ + CTIMER_STMINTSTAT_CAPTURED_CAPD_INT = 1, /*!< CAPD_INT : Capture D interrupt status bit was set. */ +} CTIMER_STMINTSTAT_CAPTURED_Enum; + +/* ========================================== CTIMER STMINTSTAT CAPTUREC [11..11] ========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_CAPTUREC */ + CTIMER_STMINTSTAT_CAPTUREC_CAPC_INT = 1, /*!< CAPC_INT : CAPTURE C interrupt status bit was set. */ +} CTIMER_STMINTSTAT_CAPTUREC_Enum; + +/* ========================================== CTIMER STMINTSTAT CAPTUREB [10..10] ========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_CAPTUREB */ + CTIMER_STMINTSTAT_CAPTUREB_CAPB_INT = 1, /*!< CAPB_INT : CAPTURE B interrupt status bit was set. */ +} CTIMER_STMINTSTAT_CAPTUREB_Enum; + +/* =========================================== CTIMER STMINTSTAT CAPTUREA [9..9] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_CAPTUREA */ + CTIMER_STMINTSTAT_CAPTUREA_CAPA_INT = 1, /*!< CAPA_INT : CAPTURE A interrupt status bit was set. */ +} CTIMER_STMINTSTAT_CAPTUREA_Enum; + +/* =========================================== CTIMER STMINTSTAT OVERFLOW [8..8] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_OVERFLOW */ + CTIMER_STMINTSTAT_OVERFLOW_OFLOW_INT = 1, /*!< OFLOW_INT : Overflow interrupt status bit was set. */ +} CTIMER_STMINTSTAT_OVERFLOW_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREH [7..7] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREH */ + CTIMER_STMINTSTAT_COMPAREH_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREH_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREG [6..6] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREG */ + CTIMER_STMINTSTAT_COMPAREG_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREG_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREF [5..5] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREF */ + CTIMER_STMINTSTAT_COMPAREF_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREF_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREE [4..4] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREE */ + CTIMER_STMINTSTAT_COMPAREE_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREE_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPARED [3..3] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPARED */ + CTIMER_STMINTSTAT_COMPARED_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPARED_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREC [2..2] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREC */ + CTIMER_STMINTSTAT_COMPAREC_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREC_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREB [1..1] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREB */ + CTIMER_STMINTSTAT_COMPAREB_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREB_Enum; + +/* =========================================== CTIMER STMINTSTAT COMPAREA [0..0] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSTAT_COMPAREA */ + CTIMER_STMINTSTAT_COMPAREA_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSTAT_COMPAREA_Enum; + +/* ======================================================= STMINTCLR ======================================================= */ +/* ========================================== CTIMER STMINTCLR CAPTURED [12..12] =========================================== */ +typedef enum { /*!< CTIMER_STMINTCLR_CAPTURED */ + CTIMER_STMINTCLR_CAPTURED_CAPD_INT = 1, /*!< CAPD_INT : Capture D interrupt status bit was set. */ +} CTIMER_STMINTCLR_CAPTURED_Enum; + +/* ========================================== CTIMER STMINTCLR CAPTUREC [11..11] =========================================== */ +typedef enum { /*!< CTIMER_STMINTCLR_CAPTUREC */ + CTIMER_STMINTCLR_CAPTUREC_CAPC_INT = 1, /*!< CAPC_INT : CAPTURE C interrupt status bit was set. */ +} CTIMER_STMINTCLR_CAPTUREC_Enum; + +/* ========================================== CTIMER STMINTCLR CAPTUREB [10..10] =========================================== */ +typedef enum { /*!< CTIMER_STMINTCLR_CAPTUREB */ + CTIMER_STMINTCLR_CAPTUREB_CAPB_INT = 1, /*!< CAPB_INT : CAPTURE B interrupt status bit was set. */ +} CTIMER_STMINTCLR_CAPTUREB_Enum; + +/* =========================================== CTIMER STMINTCLR CAPTUREA [9..9] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_CAPTUREA */ + CTIMER_STMINTCLR_CAPTUREA_CAPA_INT = 1, /*!< CAPA_INT : CAPTURE A interrupt status bit was set. */ +} CTIMER_STMINTCLR_CAPTUREA_Enum; + +/* =========================================== CTIMER STMINTCLR OVERFLOW [8..8] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_OVERFLOW */ + CTIMER_STMINTCLR_OVERFLOW_OFLOW_INT = 1, /*!< OFLOW_INT : Overflow interrupt status bit was set. */ +} CTIMER_STMINTCLR_OVERFLOW_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREH [7..7] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREH */ + CTIMER_STMINTCLR_COMPAREH_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREH_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREG [6..6] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREG */ + CTIMER_STMINTCLR_COMPAREG_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREG_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREF [5..5] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREF */ + CTIMER_STMINTCLR_COMPAREF_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREF_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREE [4..4] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREE */ + CTIMER_STMINTCLR_COMPAREE_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREE_Enum; + +/* =========================================== CTIMER STMINTCLR COMPARED [3..3] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPARED */ + CTIMER_STMINTCLR_COMPARED_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPARED_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREC [2..2] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREC */ + CTIMER_STMINTCLR_COMPAREC_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREC_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREB [1..1] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREB */ + CTIMER_STMINTCLR_COMPAREB_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREB_Enum; + +/* =========================================== CTIMER STMINTCLR COMPAREA [0..0] ============================================ */ +typedef enum { /*!< CTIMER_STMINTCLR_COMPAREA */ + CTIMER_STMINTCLR_COMPAREA_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTCLR_COMPAREA_Enum; + +/* ======================================================= STMINTSET ======================================================= */ +/* ========================================== CTIMER STMINTSET CAPTURED [12..12] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSET_CAPTURED */ + CTIMER_STMINTSET_CAPTURED_CAPD_INT = 1, /*!< CAPD_INT : Capture D interrupt status bit was set. */ +} CTIMER_STMINTSET_CAPTURED_Enum; + +/* ========================================== CTIMER STMINTSET CAPTUREC [11..11] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSET_CAPTUREC */ + CTIMER_STMINTSET_CAPTUREC_CAPC_INT = 1, /*!< CAPC_INT : CAPTURE C interrupt status bit was set. */ +} CTIMER_STMINTSET_CAPTUREC_Enum; + +/* ========================================== CTIMER STMINTSET CAPTUREB [10..10] =========================================== */ +typedef enum { /*!< CTIMER_STMINTSET_CAPTUREB */ + CTIMER_STMINTSET_CAPTUREB_CAPB_INT = 1, /*!< CAPB_INT : CAPTURE B interrupt status bit was set. */ +} CTIMER_STMINTSET_CAPTUREB_Enum; + +/* =========================================== CTIMER STMINTSET CAPTUREA [9..9] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_CAPTUREA */ + CTIMER_STMINTSET_CAPTUREA_CAPA_INT = 1, /*!< CAPA_INT : CAPTURE A interrupt status bit was set. */ +} CTIMER_STMINTSET_CAPTUREA_Enum; + +/* =========================================== CTIMER STMINTSET OVERFLOW [8..8] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_OVERFLOW */ + CTIMER_STMINTSET_OVERFLOW_OFLOW_INT = 1, /*!< OFLOW_INT : Overflow interrupt status bit was set. */ +} CTIMER_STMINTSET_OVERFLOW_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREH [7..7] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREH */ + CTIMER_STMINTSET_COMPAREH_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREH_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREG [6..6] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREG */ + CTIMER_STMINTSET_COMPAREG_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREG_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREF [5..5] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREF */ + CTIMER_STMINTSET_COMPAREF_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREF_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREE [4..4] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREE */ + CTIMER_STMINTSET_COMPAREE_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREE_Enum; + +/* =========================================== CTIMER STMINTSET COMPARED [3..3] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPARED */ + CTIMER_STMINTSET_COMPARED_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPARED_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREC [2..2] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREC */ + CTIMER_STMINTSET_COMPAREC_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREC_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREB [1..1] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREB */ + CTIMER_STMINTSET_COMPAREB_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREB_Enum; + +/* =========================================== CTIMER STMINTSET COMPAREA [0..0] ============================================ */ +typedef enum { /*!< CTIMER_STMINTSET_COMPAREA */ + CTIMER_STMINTSET_COMPAREA_COMPARED = 1, /*!< COMPARED : COUNTER greater than or equal to COMPARE register. */ +} CTIMER_STMINTSET_COMPAREA_Enum; + + + +/* =========================================================================================================================== */ +/* ================ GPIO ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== PADREGA ======================================================== */ +/* ============================================ GPIO PADREGA PAD3PWRUP [30..30] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD3PWRUP */ + GPIO_PADREGA_PAD3PWRUP_DIS = 0, /*!< DIS : Power switch disabled */ + GPIO_PADREGA_PAD3PWRUP_EN = 1, /*!< EN : Power switch enabled (switched to VDD) */ +} GPIO_PADREGA_PAD3PWRUP_Enum; + +/* =========================================== GPIO PADREGA PAD3FNCSEL [27..29] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD3FNCSEL */ + GPIO_PADREGA_PAD3FNCSEL_UA0RTS = 0, /*!< UA0RTS : Configure as the UART0 RTS output */ + GPIO_PADREGA_PAD3FNCSEL_SLnCE = 1, /*!< SLnCE : Configure as the IOSLAVE SPI nCE signal */ + GPIO_PADREGA_PAD3FNCSEL_NCE3 = 2, /*!< NCE3 : IOM/MSPI nCE group 3 */ + GPIO_PADREGA_PAD3FNCSEL_GPIO3 = 3, /*!< GPIO3 : Configure as GPIO3 */ + GPIO_PADREGA_PAD3FNCSEL_MSPI7 = 5, /*!< MSPI7 : MSPI data connection 7 */ + GPIO_PADREGA_PAD3FNCSEL_TRIG1 = 6, /*!< TRIG1 : Configure as the ADC Trigger 1 signal */ + GPIO_PADREGA_PAD3FNCSEL_I2S_WCLK = 7, /*!< I2S_WCLK : Configure as the PDM I2S Word Clock input */ +} GPIO_PADREGA_PAD3FNCSEL_Enum; + +/* ============================================ GPIO PADREGA PAD3STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD3STRNG */ + GPIO_PADREGA_PAD3STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGA_PAD3STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGA_PAD3STRNG_Enum; + +/* ============================================ GPIO PADREGA PAD3INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD3INPEN */ + GPIO_PADREGA_PAD3INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGA_PAD3INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGA_PAD3INPEN_Enum; + +/* ============================================ GPIO PADREGA PAD3PULL [24..24] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD3PULL */ + GPIO_PADREGA_PAD3PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGA_PAD3PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGA_PAD3PULL_Enum; + +/* =========================================== GPIO PADREGA PAD2FNCSEL [19..21] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD2FNCSEL */ + GPIO_PADREGA_PAD2FNCSEL_UART1RX = 0, /*!< UART1RX : Configure as the UART1 RX input. */ + GPIO_PADREGA_PAD2FNCSEL_SLMISO = 1, /*!< SLMISO : Configure as the IOSLAVE SPI MISO signal. */ + GPIO_PADREGA_PAD2FNCSEL_UART0RX = 2, /*!< UART0RX : Configure as the UART0 RX input. */ + GPIO_PADREGA_PAD2FNCSEL_GPIO2 = 3, /*!< GPIO2 : Configure as GPIO2. */ + GPIO_PADREGA_PAD2FNCSEL_MSPI6 = 5, /*!< MSPI6 : MSPI data connection 6. */ + GPIO_PADREGA_PAD2FNCSEL_NCE2 = 7, /*!< NCE2 : IOM/MSPI nCE group 2 */ +} GPIO_PADREGA_PAD2FNCSEL_Enum; + +/* ============================================ GPIO PADREGA PAD2STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD2STRNG */ + GPIO_PADREGA_PAD2STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGA_PAD2STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGA_PAD2STRNG_Enum; + +/* ============================================ GPIO PADREGA PAD2INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD2INPEN */ + GPIO_PADREGA_PAD2INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGA_PAD2INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGA_PAD2INPEN_Enum; + +/* ============================================ GPIO PADREGA PAD2PULL [16..16] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD2PULL */ + GPIO_PADREGA_PAD2PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGA_PAD2PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGA_PAD2PULL_Enum; + +/* ============================================ GPIO PADREGA PAD1RSEL [14..15] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD1RSEL */ + GPIO_PADREGA_PAD1RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGA_PAD1RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGA_PAD1RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGA_PAD1RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGA_PAD1RSEL_Enum; + +/* =========================================== GPIO PADREGA PAD1FNCSEL [11..13] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD1FNCSEL */ + GPIO_PADREGA_PAD1FNCSEL_SLSDAWIR3 = 0, /*!< SLSDAWIR3 : Configure as the IOSLAVE I2C SDA or SPI WIR3 signal */ + GPIO_PADREGA_PAD1FNCSEL_SLMOSI = 1, /*!< SLMOSI : Configure as the IOSLAVE SPI MOSI signal */ + GPIO_PADREGA_PAD1FNCSEL_UART0TX = 2, /*!< UART0TX : Configure as the UART0 TX output signal */ + GPIO_PADREGA_PAD1FNCSEL_GPIO1 = 3, /*!< GPIO1 : Configure as GPIO1 */ + GPIO_PADREGA_PAD1FNCSEL_MSPI5 = 5, /*!< MSPI5 : MSPI data connection 5 */ + GPIO_PADREGA_PAD1FNCSEL_NCE1 = 7, /*!< NCE1 : IOM/MSPI nCE group 1 */ +} GPIO_PADREGA_PAD1FNCSEL_Enum; + +/* ============================================ GPIO PADREGA PAD1STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGA_PAD1STRNG */ + GPIO_PADREGA_PAD1STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGA_PAD1STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGA_PAD1STRNG_Enum; + +/* ============================================= GPIO PADREGA PAD1INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD1INPEN */ + GPIO_PADREGA_PAD1INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGA_PAD1INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGA_PAD1INPEN_Enum; + +/* ============================================= GPIO PADREGA PAD1PULL [8..8] ============================================== */ +typedef enum { /*!< GPIO_PADREGA_PAD1PULL */ + GPIO_PADREGA_PAD1PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGA_PAD1PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGA_PAD1PULL_Enum; + +/* ============================================= GPIO PADREGA PAD0RSEL [6..7] ============================================== */ +typedef enum { /*!< GPIO_PADREGA_PAD0RSEL */ + GPIO_PADREGA_PAD0RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGA_PAD0RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGA_PAD0RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGA_PAD0RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGA_PAD0RSEL_Enum; + +/* ============================================ GPIO PADREGA PAD0FNCSEL [3..5] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD0FNCSEL */ + GPIO_PADREGA_PAD0FNCSEL_SLSCL = 0, /*!< SLSCL : Configure as the IOSLAVE I2C SCL signal */ + GPIO_PADREGA_PAD0FNCSEL_SLSCK = 1, /*!< SLSCK : Configure as the IOSLAVE SPI SCK signal */ + GPIO_PADREGA_PAD0FNCSEL_CLKOUT = 2, /*!< CLKOUT : Configure as the CLKOUT signal */ + GPIO_PADREGA_PAD0FNCSEL_GPIO0 = 3, /*!< GPIO0 : Configure as GPIO0 */ + GPIO_PADREGA_PAD0FNCSEL_MSPI4 = 5, /*!< MSPI4 : MSPI data connection 4 */ + GPIO_PADREGA_PAD0FNCSEL_NCE0 = 7, /*!< NCE0 : IOM/MSPI nCE group 0 */ +} GPIO_PADREGA_PAD0FNCSEL_Enum; + +/* ============================================= GPIO PADREGA PAD0STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD0STRNG */ + GPIO_PADREGA_PAD0STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGA_PAD0STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGA_PAD0STRNG_Enum; + +/* ============================================= GPIO PADREGA PAD0INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGA_PAD0INPEN */ + GPIO_PADREGA_PAD0INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGA_PAD0INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGA_PAD0INPEN_Enum; + +/* ============================================= GPIO PADREGA PAD0PULL [0..0] ============================================== */ +typedef enum { /*!< GPIO_PADREGA_PAD0PULL */ + GPIO_PADREGA_PAD0PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGA_PAD0PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGA_PAD0PULL_Enum; + +/* ======================================================== PADREGB ======================================================== */ +/* =========================================== GPIO PADREGB PAD7FNCSEL [27..29] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD7FNCSEL */ + GPIO_PADREGB_PAD7FNCSEL_NCE7 = 0, /*!< NCE7 : IOM/MSPI nCE group 7 */ + GPIO_PADREGB_PAD7FNCSEL_M0MOSI = 1, /*!< M0MOSI : Configure as the IOMSTR0 SPI MOSI signal */ + GPIO_PADREGB_PAD7FNCSEL_CLKOUT = 2, /*!< CLKOUT : Configure as the CLKOUT signal */ + GPIO_PADREGB_PAD7FNCSEL_GPIO7 = 3, /*!< GPIO7 : Configure as GPIO7 */ + GPIO_PADREGB_PAD7FNCSEL_TRIG0 = 4, /*!< TRIG0 : Configure as the ADC Trigger 0 signal */ + GPIO_PADREGB_PAD7FNCSEL_UART0TX = 5, /*!< UART0TX : Configure as the UART0 TX output signal */ + GPIO_PADREGB_PAD7FNCSEL_CT19 = 7, /*!< CT19 : CTIMER connection 19 */ +} GPIO_PADREGB_PAD7FNCSEL_Enum; + +/* ============================================ GPIO PADREGB PAD7STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD7STRNG */ + GPIO_PADREGB_PAD7STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGB_PAD7STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGB_PAD7STRNG_Enum; + +/* ============================================ GPIO PADREGB PAD7INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD7INPEN */ + GPIO_PADREGB_PAD7INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGB_PAD7INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGB_PAD7INPEN_Enum; + +/* ============================================ GPIO PADREGB PAD7PULL [24..24] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD7PULL */ + GPIO_PADREGB_PAD7PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGB_PAD7PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGB_PAD7PULL_Enum; + +/* ============================================ GPIO PADREGB PAD6RSEL [22..23] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD6RSEL */ + GPIO_PADREGB_PAD6RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGB_PAD6RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGB_PAD6RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGB_PAD6RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGB_PAD6RSEL_Enum; + +/* =========================================== GPIO PADREGB PAD6FNCSEL [19..21] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD6FNCSEL */ + GPIO_PADREGB_PAD6FNCSEL_M0SDAWIR3 = 0, /*!< M0SDAWIR3 : Configure as the IOMSTR0 I2C SDA or SPI WIR3 signal */ + GPIO_PADREGB_PAD6FNCSEL_M0MISO = 1, /*!< M0MISO : Configure as the IOMSTR0 SPI MISO signal */ + GPIO_PADREGB_PAD6FNCSEL_UA0CTS = 2, /*!< UA0CTS : Configure as the UART0 CTS input signal */ + GPIO_PADREGB_PAD6FNCSEL_GPIO6 = 3, /*!< GPIO6 : Configure as GPIO6 */ + GPIO_PADREGB_PAD6FNCSEL_CT10 = 5, /*!< CT10 : CTIMER connection 10 */ + GPIO_PADREGB_PAD6FNCSEL_I2S_DAT = 7, /*!< I2S_DAT : Configure as the PDM I2S Data output signal */ +} GPIO_PADREGB_PAD6FNCSEL_Enum; + +/* ============================================ GPIO PADREGB PAD6STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD6STRNG */ + GPIO_PADREGB_PAD6STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGB_PAD6STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGB_PAD6STRNG_Enum; + +/* ============================================ GPIO PADREGB PAD6INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD6INPEN */ + GPIO_PADREGB_PAD6INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGB_PAD6INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGB_PAD6INPEN_Enum; + +/* ============================================ GPIO PADREGB PAD6PULL [16..16] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD6PULL */ + GPIO_PADREGB_PAD6PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGB_PAD6PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGB_PAD6PULL_Enum; + +/* ============================================ GPIO PADREGB PAD5RSEL [14..15] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD5RSEL */ + GPIO_PADREGB_PAD5RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGB_PAD5RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGB_PAD5RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGB_PAD5RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGB_PAD5RSEL_Enum; + +/* =========================================== GPIO PADREGB PAD5FNCSEL [11..13] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD5FNCSEL */ + GPIO_PADREGB_PAD5FNCSEL_M0SCL = 0, /*!< M0SCL : Configure as the IOMSTR0 I2C SCL signal */ + GPIO_PADREGB_PAD5FNCSEL_M0SCK = 1, /*!< M0SCK : Configure as the IOMSTR0 SPI SCK signal */ + GPIO_PADREGB_PAD5FNCSEL_UA0RTS = 2, /*!< UA0RTS : Configure as the UART0 RTS signal output */ + GPIO_PADREGB_PAD5FNCSEL_GPIO5 = 3, /*!< GPIO5 : Configure as GPIO5 */ + GPIO_PADREGB_PAD5FNCSEL_EXTHFA = 5, /*!< EXTHFA : Configure as the External HFA input clock */ + GPIO_PADREGB_PAD5FNCSEL_CT8 = 7, /*!< CT8 : CTIMER connection 8 */ +} GPIO_PADREGB_PAD5FNCSEL_Enum; + +/* ============================================ GPIO PADREGB PAD5STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGB_PAD5STRNG */ + GPIO_PADREGB_PAD5STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGB_PAD5STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGB_PAD5STRNG_Enum; + +/* ============================================= GPIO PADREGB PAD5INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD5INPEN */ + GPIO_PADREGB_PAD5INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGB_PAD5INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGB_PAD5INPEN_Enum; + +/* ============================================= GPIO PADREGB PAD5PULL [8..8] ============================================== */ +typedef enum { /*!< GPIO_PADREGB_PAD5PULL */ + GPIO_PADREGB_PAD5PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGB_PAD5PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGB_PAD5PULL_Enum; + +/* ============================================ GPIO PADREGB PAD4FNCSEL [3..5] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD4FNCSEL */ + GPIO_PADREGB_PAD4FNCSEL_UA0CTS = 0, /*!< UA0CTS : Configure as the UART0 CTS input signal */ + GPIO_PADREGB_PAD4FNCSEL_SLINT = 1, /*!< SLINT : Configure as the IOSLAVE interrupt out signal */ + GPIO_PADREGB_PAD4FNCSEL_NCE4 = 2, /*!< NCE4 : IOM/SPI nCE group 4 */ + GPIO_PADREGB_PAD4FNCSEL_GPIO4 = 3, /*!< GPIO4 : Configure as GPIO4 */ + GPIO_PADREGB_PAD4FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGB_PAD4FNCSEL_CT17 = 6, /*!< CT17 : CTIMER connection 17 */ + GPIO_PADREGB_PAD4FNCSEL_MSPI2 = 7, /*!< MSPI2 : MSPI data connection 2 */ +} GPIO_PADREGB_PAD4FNCSEL_Enum; + +/* ============================================= GPIO PADREGB PAD4STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD4STRNG */ + GPIO_PADREGB_PAD4STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGB_PAD4STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGB_PAD4STRNG_Enum; + +/* ============================================= GPIO PADREGB PAD4INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGB_PAD4INPEN */ + GPIO_PADREGB_PAD4INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGB_PAD4INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGB_PAD4INPEN_Enum; + +/* ============================================= GPIO PADREGB PAD4PULL [0..0] ============================================== */ +typedef enum { /*!< GPIO_PADREGB_PAD4PULL */ + GPIO_PADREGB_PAD4PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGB_PAD4PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGB_PAD4PULL_Enum; + +/* ======================================================== PADREGC ======================================================== */ +/* =========================================== GPIO PADREGC PAD11FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGC_PAD11FNCSEL */ + GPIO_PADREGC_PAD11FNCSEL_ADCSE2 = 0, /*!< ADCSE2 : Configure as the analog input for ADC single ended + input 2 */ + GPIO_PADREGC_PAD11FNCSEL_NCE11 = 1, /*!< NCE11 : IOM/MSPI nCE group 11 */ + GPIO_PADREGC_PAD11FNCSEL_CT31 = 2, /*!< CT31 : CTIMER connection 31 */ + GPIO_PADREGC_PAD11FNCSEL_GPIO11 = 3, /*!< GPIO11 : Configure as GPIO11 */ + GPIO_PADREGC_PAD11FNCSEL_SLINT = 4, /*!< SLINT : Configure as the IOSLAVE interrupt out signal */ + GPIO_PADREGC_PAD11FNCSEL_UA1CTS = 5, /*!< UA1CTS : Configure as the UART1 CTS input signal */ + GPIO_PADREGC_PAD11FNCSEL_UART0RX = 6, /*!< UART0RX : Configure as the UART0 RX input signal */ + GPIO_PADREGC_PAD11FNCSEL_PDM_DATA = 7, /*!< PDM_DATA : Configure as the PDM Data input signal */ +} GPIO_PADREGC_PAD11FNCSEL_Enum; + +/* =========================================== GPIO PADREGC PAD11STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD11STRNG */ + GPIO_PADREGC_PAD11STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGC_PAD11STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGC_PAD11STRNG_Enum; + +/* =========================================== GPIO PADREGC PAD11INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD11INPEN */ + GPIO_PADREGC_PAD11INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGC_PAD11INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGC_PAD11INPEN_Enum; + +/* ============================================ GPIO PADREGC PAD11PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD11PULL */ + GPIO_PADREGC_PAD11PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGC_PAD11PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGC_PAD11PULL_Enum; + +/* =========================================== GPIO PADREGC PAD10FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGC_PAD10FNCSEL */ + GPIO_PADREGC_PAD10FNCSEL_M1MOSI = 1, /*!< M1MOSI : Configure as the IOMSTR1 SPI MOSI signal */ + GPIO_PADREGC_PAD10FNCSEL_NCE10 = 2, /*!< NCE10 : IOM/MSPI nCE group 10 */ + GPIO_PADREGC_PAD10FNCSEL_GPIO10 = 3, /*!< GPIO10 : Configure as GPIO10 */ + GPIO_PADREGC_PAD10FNCSEL_PDMCLK = 4, /*!< PDMCLK : PDM serial clock out */ + GPIO_PADREGC_PAD10FNCSEL_UA1RTS = 5, /*!< UA1RTS : Configure as the UART1 RTS output signal */ +} GPIO_PADREGC_PAD10FNCSEL_Enum; + +/* =========================================== GPIO PADREGC PAD10STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD10STRNG */ + GPIO_PADREGC_PAD10STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGC_PAD10STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGC_PAD10STRNG_Enum; + +/* =========================================== GPIO PADREGC PAD10INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD10INPEN */ + GPIO_PADREGC_PAD10INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGC_PAD10INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGC_PAD10INPEN_Enum; + +/* ============================================ GPIO PADREGC PAD10PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD10PULL */ + GPIO_PADREGC_PAD10PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGC_PAD10PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGC_PAD10PULL_Enum; + +/* ============================================ GPIO PADREGC PAD9RSEL [14..15] ============================================= */ +typedef enum { /*!< GPIO_PADREGC_PAD9RSEL */ + GPIO_PADREGC_PAD9RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGC_PAD9RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGC_PAD9RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGC_PAD9RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGC_PAD9RSEL_Enum; + +/* =========================================== GPIO PADREGC PAD9FNCSEL [11..13] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD9FNCSEL */ + GPIO_PADREGC_PAD9FNCSEL_M1SDAWIR3 = 0, /*!< M1SDAWIR3 : Configure as the IOMSTR1 I2C SDA or SPI WIR3 signal */ + GPIO_PADREGC_PAD9FNCSEL_M1MISO = 1, /*!< M1MISO : Configure as the IOMSTR1 SPI MISO signal */ + GPIO_PADREGC_PAD9FNCSEL_NCE9 = 2, /*!< NCE9 : IOM/MSPI nCE group 9 */ + GPIO_PADREGC_PAD9FNCSEL_GPIO9 = 3, /*!< GPIO9 : Configure as GPIO9 */ + GPIO_PADREGC_PAD9FNCSEL_SCCIO = 4, /*!< SCCIO : SCARD data I/O connection */ + GPIO_PADREGC_PAD9FNCSEL_UART1RX = 6, /*!< UART1RX : Configure as UART1 RX input signal */ +} GPIO_PADREGC_PAD9FNCSEL_Enum; + +/* ============================================ GPIO PADREGC PAD9STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGC_PAD9STRNG */ + GPIO_PADREGC_PAD9STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGC_PAD9STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGC_PAD9STRNG_Enum; + +/* ============================================= GPIO PADREGC PAD9INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGC_PAD9INPEN */ + GPIO_PADREGC_PAD9INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGC_PAD9INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGC_PAD9INPEN_Enum; + +/* ============================================= GPIO PADREGC PAD9PULL [8..8] ============================================== */ +typedef enum { /*!< GPIO_PADREGC_PAD9PULL */ + GPIO_PADREGC_PAD9PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGC_PAD9PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGC_PAD9PULL_Enum; + +/* ============================================= GPIO PADREGC PAD8RSEL [6..7] ============================================== */ +typedef enum { /*!< GPIO_PADREGC_PAD8RSEL */ + GPIO_PADREGC_PAD8RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGC_PAD8RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGC_PAD8RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGC_PAD8RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGC_PAD8RSEL_Enum; + +/* ============================================ GPIO PADREGC PAD8FNCSEL [3..5] ============================================= */ +typedef enum { /*!< GPIO_PADREGC_PAD8FNCSEL */ + GPIO_PADREGC_PAD8FNCSEL_M1SCL = 0, /*!< M1SCL : Configure as the IOMSTR1 I2C SCL signal */ + GPIO_PADREGC_PAD8FNCSEL_M1SCK = 1, /*!< M1SCK : Configure as the IOMSTR1 SPI SCK signal */ + GPIO_PADREGC_PAD8FNCSEL_NCE8 = 2, /*!< NCE8 : IOM/MSPI nCE group 8 */ + GPIO_PADREGC_PAD8FNCSEL_GPIO8 = 3, /*!< GPIO8 : Configure as GPIO8 */ + GPIO_PADREGC_PAD8FNCSEL_SCCLK = 4, /*!< SCCLK : SCARD serial clock output */ + GPIO_PADREGC_PAD8FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output signal */ +} GPIO_PADREGC_PAD8FNCSEL_Enum; + +/* ============================================= GPIO PADREGC PAD8STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGC_PAD8STRNG */ + GPIO_PADREGC_PAD8STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGC_PAD8STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGC_PAD8STRNG_Enum; + +/* ============================================= GPIO PADREGC PAD8INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGC_PAD8INPEN */ + GPIO_PADREGC_PAD8INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGC_PAD8INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGC_PAD8INPEN_Enum; + +/* ============================================= GPIO PADREGC PAD8PULL [0..0] ============================================== */ +typedef enum { /*!< GPIO_PADREGC_PAD8PULL */ + GPIO_PADREGC_PAD8PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGC_PAD8PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGC_PAD8PULL_Enum; + +/* ======================================================== PADREGD ======================================================== */ +/* =========================================== GPIO PADREGD PAD15FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGD_PAD15FNCSEL */ + GPIO_PADREGD_PAD15FNCSEL_ADCD1N = 0, /*!< ADCD1N : Configure as the analog ADC differential pair 1 N input + signal */ + GPIO_PADREGD_PAD15FNCSEL_NCE15 = 1, /*!< NCE15 : IOM/MSPI nCE group 15 */ + GPIO_PADREGD_PAD15FNCSEL_UART1RX = 2, /*!< UART1RX : Configure as the UART1 RX signal */ + GPIO_PADREGD_PAD15FNCSEL_GPIO15 = 3, /*!< GPIO15 : Configure as GPIO15 */ + GPIO_PADREGD_PAD15FNCSEL_PDMDATA = 4, /*!< PDMDATA : PDM serial data input */ + GPIO_PADREGD_PAD15FNCSEL_EXTXT = 5, /*!< EXTXT : Configure as the external XTAL oscillator input */ + GPIO_PADREGD_PAD15FNCSEL_SWDIO = 6, /*!< SWDIO : Configure as an alternate port for the SWDIO I/O signal */ + GPIO_PADREGD_PAD15FNCSEL_SWO = 7, /*!< SWO : Configure as an SWO (Serial Wire Trace output) */ +} GPIO_PADREGD_PAD15FNCSEL_Enum; + +/* =========================================== GPIO PADREGD PAD15STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD15STRNG */ + GPIO_PADREGD_PAD15STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGD_PAD15STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGD_PAD15STRNG_Enum; + +/* =========================================== GPIO PADREGD PAD15INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD15INPEN */ + GPIO_PADREGD_PAD15INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGD_PAD15INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGD_PAD15INPEN_Enum; + +/* ============================================ GPIO PADREGD PAD15PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD15PULL */ + GPIO_PADREGD_PAD15PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGD_PAD15PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGD_PAD15PULL_Enum; + +/* =========================================== GPIO PADREGD PAD14FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGD_PAD14FNCSEL */ + GPIO_PADREGD_PAD14FNCSEL_ADCD1P = 0, /*!< ADCD1P : Configure as the analog ADC differential pair 1 P input + signal */ + GPIO_PADREGD_PAD14FNCSEL_NCE14 = 1, /*!< NCE14 : IOM/MSPI nCE group 14 */ + GPIO_PADREGD_PAD14FNCSEL_UART1TX = 2, /*!< UART1TX : Configure as the UART1 TX output signal */ + GPIO_PADREGD_PAD14FNCSEL_GPIO14 = 3, /*!< GPIO14 : Configure as GPIO14 */ + GPIO_PADREGD_PAD14FNCSEL_PDMCLK = 4, /*!< PDMCLK : PDM serial clock output */ + GPIO_PADREGD_PAD14FNCSEL_EXTHFS = 5, /*!< EXTHFS : Configure as the External HFRC oscillator input select */ + GPIO_PADREGD_PAD14FNCSEL_SWDCK = 6, /*!< SWDCK : Configure as the alternate input for the SWDCK input + signal */ + GPIO_PADREGD_PAD14FNCSEL_32kHzXT = 7, /*!< 32kHzXT : Configure as the 32kHz crystal output signal */ +} GPIO_PADREGD_PAD14FNCSEL_Enum; + +/* =========================================== GPIO PADREGD PAD14STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD14STRNG */ + GPIO_PADREGD_PAD14STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGD_PAD14STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGD_PAD14STRNG_Enum; + +/* =========================================== GPIO PADREGD PAD14INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD14INPEN */ + GPIO_PADREGD_PAD14INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGD_PAD14INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGD_PAD14INPEN_Enum; + +/* ============================================ GPIO PADREGD PAD14PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD14PULL */ + GPIO_PADREGD_PAD14PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGD_PAD14PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGD_PAD14PULL_Enum; + +/* =========================================== GPIO PADREGD PAD13FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGD_PAD13FNCSEL */ + GPIO_PADREGD_PAD13FNCSEL_ADCD0PSE8 = 0, /*!< ADCD0PSE8 : Configure as the ADC Differential pair 0 P, or Single + Ended input 8 analog input signal. Determination of the + D0P vs SE8 usage is done when the particular channel is + selected within the ADC module */ + GPIO_PADREGD_PAD13FNCSEL_NCE13 = 1, /*!< NCE13 : IOM/MSPI nCE group 13 */ + GPIO_PADREGD_PAD13FNCSEL_CT2 = 2, /*!< CT2 : CTIMER connection 2 */ + GPIO_PADREGD_PAD13FNCSEL_GPIO13 = 3, /*!< GPIO13 : Configure as GPIO13 */ + GPIO_PADREGD_PAD13FNCSEL_I2SBCLK = 4, /*!< I2SBCLK : I2C interface bit clock */ + GPIO_PADREGD_PAD13FNCSEL_EXTHFB = 5, /*!< EXTHFB : Configure as the external HFRC oscillator input */ + GPIO_PADREGD_PAD13FNCSEL_UA0RTS = 6, /*!< UA0RTS : Configure as the UART0 RTS signal output */ + GPIO_PADREGD_PAD13FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input signal */ +} GPIO_PADREGD_PAD13FNCSEL_Enum; + +/* =========================================== GPIO PADREGD PAD13STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD13STRNG */ + GPIO_PADREGD_PAD13STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGD_PAD13STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGD_PAD13STRNG_Enum; + +/* ============================================ GPIO PADREGD PAD13INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGD_PAD13INPEN */ + GPIO_PADREGD_PAD13INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGD_PAD13INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGD_PAD13INPEN_Enum; + +/* ============================================= GPIO PADREGD PAD13PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGD_PAD13PULL */ + GPIO_PADREGD_PAD13PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGD_PAD13PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGD_PAD13PULL_Enum; + +/* ============================================ GPIO PADREGD PAD12FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGD_PAD12FNCSEL */ + GPIO_PADREGD_PAD12FNCSEL_ADCD0NSE9 = 0, /*!< ADCD0NSE9 : Configure as the ADC Differential pair 0 N, or Single + Ended input 9 analog input signal. Determination of the + D0N vs SE9 usage is done when the particular channel is + selected within the ADC module */ + GPIO_PADREGD_PAD12FNCSEL_NCE12 = 1, /*!< NCE12 : IOM/MSPI nCE group 12 */ + GPIO_PADREGD_PAD12FNCSEL_CT0 = 2, /*!< CT0 : CTIMER connection 0 */ + GPIO_PADREGD_PAD12FNCSEL_GPIO12 = 3, /*!< GPIO12 : Configure as GPIO12 */ + GPIO_PADREGD_PAD12FNCSEL_SLnCE = 4, /*!< SLnCE : Configure as the IOSLAVE SPI nCE signal */ + GPIO_PADREGD_PAD12FNCSEL_PDMCLK = 5, /*!< PDMCLK : PDM serial clock output */ + GPIO_PADREGD_PAD12FNCSEL_UA0CTS = 6, /*!< UA0CTS : Configure as the UART0 CTS input signal */ + GPIO_PADREGD_PAD12FNCSEL_UART1TX = 7, /*!< UART1TX : Configure as the UART1 TX output signal */ +} GPIO_PADREGD_PAD12FNCSEL_Enum; + +/* ============================================ GPIO PADREGD PAD12STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGD_PAD12STRNG */ + GPIO_PADREGD_PAD12STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGD_PAD12STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGD_PAD12STRNG_Enum; + +/* ============================================ GPIO PADREGD PAD12INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGD_PAD12INPEN */ + GPIO_PADREGD_PAD12INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGD_PAD12INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGD_PAD12INPEN_Enum; + +/* ============================================= GPIO PADREGD PAD12PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGD_PAD12PULL */ + GPIO_PADREGD_PAD12PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGD_PAD12PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGD_PAD12PULL_Enum; + +/* ======================================================== PADREGE ======================================================== */ +/* =========================================== GPIO PADREGE PAD19FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGE_PAD19FNCSEL */ + GPIO_PADREGE_PAD19FNCSEL_CMPRF0 = 0, /*!< CMPRF0 : Configure as the analog comparator reference 0 signal */ + GPIO_PADREGE_PAD19FNCSEL_NCE19 = 1, /*!< NCE19 : IOM/MSPI nCE group 19 */ + GPIO_PADREGE_PAD19FNCSEL_CT6 = 2, /*!< CT6 : CTIMER conenction 6 */ + GPIO_PADREGE_PAD19FNCSEL_GPIO19 = 3, /*!< GPIO19 : Configure as GPIO19 */ + GPIO_PADREGE_PAD19FNCSEL_SCCLK = 4, /*!< SCCLK : SCARD serial clock */ + GPIO_PADREGE_PAD19FNCSEL_ANATEST1 = 5, /*!< ANATEST1 : Configure as the ANATEST1 I/O signal */ + GPIO_PADREGE_PAD19FNCSEL_UART1RX = 6, /*!< UART1RX : Configure as the UART1 RX input signal */ + GPIO_PADREGE_PAD19FNCSEL_I2SBCLK = 7, /*!< I2SBCLK : Configure as the PDM I2S bit clock input signal */ +} GPIO_PADREGE_PAD19FNCSEL_Enum; + +/* =========================================== GPIO PADREGE PAD19STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD19STRNG */ + GPIO_PADREGE_PAD19STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGE_PAD19STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGE_PAD19STRNG_Enum; + +/* =========================================== GPIO PADREGE PAD19INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD19INPEN */ + GPIO_PADREGE_PAD19INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGE_PAD19INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGE_PAD19INPEN_Enum; + +/* ============================================ GPIO PADREGE PAD19PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD19PULL */ + GPIO_PADREGE_PAD19PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGE_PAD19PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGE_PAD19PULL_Enum; + +/* =========================================== GPIO PADREGE PAD18FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGE_PAD18FNCSEL */ + GPIO_PADREGE_PAD18FNCSEL_CMPIN1 = 0, /*!< CMPIN1 : Configure as the analog comparator input 1 signal */ + GPIO_PADREGE_PAD18FNCSEL_NCE18 = 1, /*!< NCE18 : IOM/MSPI nCE group 18 */ + GPIO_PADREGE_PAD18FNCSEL_CT4 = 2, /*!< CT4 : CTIMER connection 4 */ + GPIO_PADREGE_PAD18FNCSEL_GPIO18 = 3, /*!< GPIO18 : Configure as GPIO18 */ + GPIO_PADREGE_PAD18FNCSEL_UA0RTS = 4, /*!< UA0RTS : Configure as UART0 RTS output signal */ + GPIO_PADREGE_PAD18FNCSEL_ANATEST2 = 5, /*!< ANATEST2 : Configure as ANATEST2 I/O signal */ + GPIO_PADREGE_PAD18FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as UART1 TX output signal */ + GPIO_PADREGE_PAD18FNCSEL_SCCIO = 7, /*!< SCCIO : SCARD data input/output connectin */ +} GPIO_PADREGE_PAD18FNCSEL_Enum; + +/* =========================================== GPIO PADREGE PAD18STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD18STRNG */ + GPIO_PADREGE_PAD18STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGE_PAD18STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGE_PAD18STRNG_Enum; + +/* =========================================== GPIO PADREGE PAD18INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD18INPEN */ + GPIO_PADREGE_PAD18INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGE_PAD18INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGE_PAD18INPEN_Enum; + +/* ============================================ GPIO PADREGE PAD18PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD18PULL */ + GPIO_PADREGE_PAD18PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGE_PAD18PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGE_PAD18PULL_Enum; + +/* =========================================== GPIO PADREGE PAD17FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGE_PAD17FNCSEL */ + GPIO_PADREGE_PAD17FNCSEL_CMPRF1 = 0, /*!< CMPRF1 : Configure as the analog comparator reference signal + 1 input signal */ + GPIO_PADREGE_PAD17FNCSEL_NCE17 = 1, /*!< NCE17 : IOM/MSPI nCE group 17 */ + GPIO_PADREGE_PAD17FNCSEL_TRIG1 = 2, /*!< TRIG1 : Configure as the ADC Trigger 1 signal */ + GPIO_PADREGE_PAD17FNCSEL_GPIO17 = 3, /*!< GPIO17 : Configure as GPIO17 */ + GPIO_PADREGE_PAD17FNCSEL_SCCCLK = 4, /*!< SCCCLK : SCARD serial clock output */ + GPIO_PADREGE_PAD17FNCSEL_UART0RX = 6, /*!< UART0RX : Configure as UART0 RX input signal */ + GPIO_PADREGE_PAD17FNCSEL_UA1CTS = 7, /*!< UA1CTS : Configure as UART1 CTS input signal */ +} GPIO_PADREGE_PAD17FNCSEL_Enum; + +/* =========================================== GPIO PADREGE PAD17STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD17STRNG */ + GPIO_PADREGE_PAD17STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGE_PAD17STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGE_PAD17STRNG_Enum; + +/* ============================================ GPIO PADREGE PAD17INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGE_PAD17INPEN */ + GPIO_PADREGE_PAD17INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGE_PAD17INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGE_PAD17INPEN_Enum; + +/* ============================================= GPIO PADREGE PAD17PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGE_PAD17PULL */ + GPIO_PADREGE_PAD17PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGE_PAD17PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGE_PAD17PULL_Enum; + +/* ============================================ GPIO PADREGE PAD16FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGE_PAD16FNCSEL */ + GPIO_PADREGE_PAD16FNCSEL_ADCSE0 = 0, /*!< ADCSE0 : Configure as the analog ADC single ended port 0 input + signal */ + GPIO_PADREGE_PAD16FNCSEL_NCE16 = 1, /*!< NCE16 : IOM/MSPI nCE group 16 */ + GPIO_PADREGE_PAD16FNCSEL_TRIG0 = 2, /*!< TRIG0 : Configure as the ADC Trigger 0 signal */ + GPIO_PADREGE_PAD16FNCSEL_GPIO16 = 3, /*!< GPIO16 : Configure as GPIO16 */ + GPIO_PADREGE_PAD16FNCSEL_SCCRST = 4, /*!< SCCRST : SCARD reset output */ + GPIO_PADREGE_PAD16FNCSEL_CMPIN0 = 5, /*!< CMPIN0 : Configure as comparator input 0 signal */ + GPIO_PADREGE_PAD16FNCSEL_UART0TX = 6, /*!< UART0TX : Configure as UART0 TX output signal */ + GPIO_PADREGE_PAD16FNCSEL_UA1RTS = 7, /*!< UA1RTS : Configure as UART1 RTS output signal */ +} GPIO_PADREGE_PAD16FNCSEL_Enum; + +/* ============================================ GPIO PADREGE PAD16STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGE_PAD16STRNG */ + GPIO_PADREGE_PAD16STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGE_PAD16STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGE_PAD16STRNG_Enum; + +/* ============================================ GPIO PADREGE PAD16INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGE_PAD16INPEN */ + GPIO_PADREGE_PAD16INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGE_PAD16INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGE_PAD16INPEN_Enum; + +/* ============================================= GPIO PADREGE PAD16PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGE_PAD16PULL */ + GPIO_PADREGE_PAD16PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGE_PAD16PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGE_PAD16PULL_Enum; + +/* ======================================================== PADREGF ======================================================== */ +/* =========================================== GPIO PADREGF PAD23FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGF_PAD23FNCSEL */ + GPIO_PADREGF_PAD23FNCSEL_UART0RX = 0, /*!< UART0RX : Configure as the UART0 RX signal */ + GPIO_PADREGF_PAD23FNCSEL_NCE23 = 1, /*!< NCE23 : IOM/MSPI nCE group 23 */ + GPIO_PADREGF_PAD23FNCSEL_CT14 = 2, /*!< CT14 : CTIMER connection 14 */ + GPIO_PADREGF_PAD23FNCSEL_GPIO23 = 3, /*!< GPIO23 : Configure as GPIO23 */ + GPIO_PADREGF_PAD23FNCSEL_I2SWCLK = 4, /*!< I2SWCLK : I2S word clock input */ + GPIO_PADREGF_PAD23FNCSEL_CMPOUT = 5, /*!< CMPOUT : Configure as voltage comparitor output */ + GPIO_PADREGF_PAD23FNCSEL_MSPI3 = 6, /*!< MSPI3 : MSPI data connection 3 */ + GPIO_PADREGF_PAD23FNCSEL_EXTXT = 7, /*!< EXTXT : External XTAL osacillatgor input */ +} GPIO_PADREGF_PAD23FNCSEL_Enum; + +/* =========================================== GPIO PADREGF PAD23STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD23STRNG */ + GPIO_PADREGF_PAD23STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGF_PAD23STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGF_PAD23STRNG_Enum; + +/* =========================================== GPIO PADREGF PAD23INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD23INPEN */ + GPIO_PADREGF_PAD23INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGF_PAD23INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGF_PAD23INPEN_Enum; + +/* ============================================ GPIO PADREGF PAD23PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD23PULL */ + GPIO_PADREGF_PAD23PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGF_PAD23PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGF_PAD23PULL_Enum; + +/* =========================================== GPIO PADREGF PAD22FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGF_PAD22FNCSEL */ + GPIO_PADREGF_PAD22FNCSEL_UART0TX = 0, /*!< UART0TX : Configure as the UART0 TX signal */ + GPIO_PADREGF_PAD22FNCSEL_NCE22 = 1, /*!< NCE22 : IOM/MSPI nCE group 22 */ + GPIO_PADREGF_PAD22FNCSEL_CT12 = 2, /*!< CT12 : CTIMER connection 12 */ + GPIO_PADREGF_PAD22FNCSEL_GPIO22 = 3, /*!< GPIO22 : Configure as GPIO22 */ + GPIO_PADREGF_PAD22FNCSEL_PDM_CLK = 4, /*!< PDM_CLK : Configure as the PDM CLK output */ + GPIO_PADREGF_PAD22FNCSEL_EXTLF = 5, /*!< EXTLF : External LFRC input */ + GPIO_PADREGF_PAD22FNCSEL_MSPI0 = 6, /*!< MSPI0 : MSPI data connection 0 */ + GPIO_PADREGF_PAD22FNCSEL_SWO = 7, /*!< SWO : Configure as the serial trace data output signal */ +} GPIO_PADREGF_PAD22FNCSEL_Enum; + +/* =========================================== GPIO PADREGF PAD22STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD22STRNG */ + GPIO_PADREGF_PAD22STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGF_PAD22STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGF_PAD22STRNG_Enum; + +/* =========================================== GPIO PADREGF PAD22INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD22INPEN */ + GPIO_PADREGF_PAD22INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGF_PAD22INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGF_PAD22INPEN_Enum; + +/* ============================================ GPIO PADREGF PAD22PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD22PULL */ + GPIO_PADREGF_PAD22PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGF_PAD22PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGF_PAD22PULL_Enum; + +/* =========================================== GPIO PADREGF PAD21FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGF_PAD21FNCSEL */ + GPIO_PADREGF_PAD21FNCSEL_SWDIO = 0, /*!< SWDIO : Configure as the serial wire debug data signal */ + GPIO_PADREGF_PAD21FNCSEL_NCE21 = 1, /*!< NCE21 : IOM/MSPI nCE group 21 */ + GPIO_PADREGF_PAD21FNCSEL_GPIO21 = 3, /*!< GPIO21 : Configure as GPIO21 */ + GPIO_PADREGF_PAD21FNCSEL_UART0RX = 4, /*!< UART0RX : Configure as UART0 RX input signal */ + GPIO_PADREGF_PAD21FNCSEL_UART1RX = 5, /*!< UART1RX : Configure as UART1 RX input signal */ + GPIO_PADREGF_PAD21FNCSEL_I2SBCLK = 6, /*!< I2SBCLK : I2S byte clock input */ + GPIO_PADREGF_PAD21FNCSEL_UA1CTS = 7, /*!< UA1CTS : Configure as UART1 CTS input signal */ +} GPIO_PADREGF_PAD21FNCSEL_Enum; + +/* =========================================== GPIO PADREGF PAD21STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD21STRNG */ + GPIO_PADREGF_PAD21STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGF_PAD21STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGF_PAD21STRNG_Enum; + +/* ============================================ GPIO PADREGF PAD21INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGF_PAD21INPEN */ + GPIO_PADREGF_PAD21INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGF_PAD21INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGF_PAD21INPEN_Enum; + +/* ============================================= GPIO PADREGF PAD21PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGF_PAD21PULL */ + GPIO_PADREGF_PAD21PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGF_PAD21PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGF_PAD21PULL_Enum; + +/* ============================================ GPIO PADREGF PAD20FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGF_PAD20FNCSEL */ + GPIO_PADREGF_PAD20FNCSEL_SWDCK = 0, /*!< SWDCK : Configure as the serial wire debug clock signal */ + GPIO_PADREGF_PAD20FNCSEL_NCE20 = 1, /*!< NCE20 : IOM/MSPI nCE group 20 */ + GPIO_PADREGF_PAD20FNCSEL_GPIO20 = 3, /*!< GPIO20 : Configure as GPIO20 */ + GPIO_PADREGF_PAD20FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as UART0 TX output signal */ + GPIO_PADREGF_PAD20FNCSEL_UART1TX = 5, /*!< UART1TX : Configure as UART1 TX output signal */ + GPIO_PADREGF_PAD20FNCSEL_I2SBCLK = 6, /*!< I2SBCLK : I2S byte clock input */ + GPIO_PADREGF_PAD20FNCSEL_UA1RTS = 7, /*!< UA1RTS : Configure as UART1 RTS output signal */ +} GPIO_PADREGF_PAD20FNCSEL_Enum; + +/* ============================================ GPIO PADREGF PAD20STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGF_PAD20STRNG */ + GPIO_PADREGF_PAD20STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGF_PAD20STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGF_PAD20STRNG_Enum; + +/* ============================================ GPIO PADREGF PAD20INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGF_PAD20INPEN */ + GPIO_PADREGF_PAD20INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGF_PAD20INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGF_PAD20INPEN_Enum; + +/* ============================================= GPIO PADREGF PAD20PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGF_PAD20PULL */ + GPIO_PADREGF_PAD20PULL_DIS = 0, /*!< DIS : Pulldown disabled */ + GPIO_PADREGF_PAD20PULL_EN = 1, /*!< EN : Pulldown enabled */ +} GPIO_PADREGF_PAD20PULL_Enum; + +/* ======================================================== PADREGG ======================================================== */ +/* ============================================ GPIO PADREGG PAD27RSEL [30..31] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD27RSEL */ + GPIO_PADREGG_PAD27RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGG_PAD27RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGG_PAD27RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGG_PAD27RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGG_PAD27RSEL_Enum; + +/* =========================================== GPIO PADREGG PAD27FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGG_PAD27FNCSEL */ + GPIO_PADREGG_PAD27FNCSEL_UART0RX = 0, /*!< UART0RX : Configure as UART0 RX input signal */ + GPIO_PADREGG_PAD27FNCSEL_NCE27 = 1, /*!< NCE27 : IOM/MSPI nCE group 27 */ + GPIO_PADREGG_PAD27FNCSEL_CT5 = 2, /*!< CT5 : CTIMER connection 5 */ + GPIO_PADREGG_PAD27FNCSEL_GPIO27 = 3, /*!< GPIO27 : Configure as GPIO27 */ + GPIO_PADREGG_PAD27FNCSEL_M2SCL = 4, /*!< M2SCL : Configure as I2C clock I/O signal from IOMSTR2 */ + GPIO_PADREGG_PAD27FNCSEL_M2SCK = 5, /*!< M2SCK : Configure as SPI clock output signal from IOMSTR2 */ +} GPIO_PADREGG_PAD27FNCSEL_Enum; + +/* =========================================== GPIO PADREGG PAD27STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD27STRNG */ + GPIO_PADREGG_PAD27STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGG_PAD27STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGG_PAD27STRNG_Enum; + +/* =========================================== GPIO PADREGG PAD27INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD27INPEN */ + GPIO_PADREGG_PAD27INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGG_PAD27INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGG_PAD27INPEN_Enum; + +/* ============================================ GPIO PADREGG PAD27PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD27PULL */ + GPIO_PADREGG_PAD27PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGG_PAD27PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGG_PAD27PULL_Enum; + +/* =========================================== GPIO PADREGG PAD26FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGG_PAD26FNCSEL */ + GPIO_PADREGG_PAD26FNCSEL_EXTHF = 0, /*!< EXTHF : Configure as the external HFRC oscillator input */ + GPIO_PADREGG_PAD26FNCSEL_NCE26 = 1, /*!< NCE26 : IOM/MSPI nCE group 26 */ + GPIO_PADREGG_PAD26FNCSEL_CT3 = 2, /*!< CT3 : CTIMER connection 3 */ + GPIO_PADREGG_PAD26FNCSEL_GPIO26 = 3, /*!< GPIO26 : Configure as GPIO26 */ + GPIO_PADREGG_PAD26FNCSEL_SCCRST = 4, /*!< SCCRST : SCARD reset output */ + GPIO_PADREGG_PAD26FNCSEL_MSPI1 = 5, /*!< MSPI1 : MSPI data connection 1 */ + GPIO_PADREGG_PAD26FNCSEL_UART0TX = 6, /*!< UART0TX : Configure as UART0 TX output signal */ + GPIO_PADREGG_PAD26FNCSEL_UA1CTS = 7, /*!< UA1CTS : Configure as UART1 CTS input signal */ +} GPIO_PADREGG_PAD26FNCSEL_Enum; + +/* =========================================== GPIO PADREGG PAD26STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD26STRNG */ + GPIO_PADREGG_PAD26STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGG_PAD26STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGG_PAD26STRNG_Enum; + +/* =========================================== GPIO PADREGG PAD26INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD26INPEN */ + GPIO_PADREGG_PAD26INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGG_PAD26INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGG_PAD26INPEN_Enum; + +/* ============================================ GPIO PADREGG PAD26PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD26PULL */ + GPIO_PADREGG_PAD26PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGG_PAD26PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGG_PAD26PULL_Enum; + +/* ============================================ GPIO PADREGG PAD25RSEL [14..15] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD25RSEL */ + GPIO_PADREGG_PAD25RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGG_PAD25RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGG_PAD25RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGG_PAD25RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGG_PAD25RSEL_Enum; + +/* =========================================== GPIO PADREGG PAD25FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGG_PAD25FNCSEL */ + GPIO_PADREGG_PAD25FNCSEL_UART1RX = 0, /*!< UART1RX : Configure as UART1 RX input signal */ + GPIO_PADREGG_PAD25FNCSEL_NCE25 = 1, /*!< NCE25 : IOM/MSPI nCE group 25 */ + GPIO_PADREGG_PAD25FNCSEL_CT1 = 2, /*!< CT1 : CTIMER connection 1 */ + GPIO_PADREGG_PAD25FNCSEL_GPIO25 = 3, /*!< GPIO25 : Configure as GPIO25 */ + GPIO_PADREGG_PAD25FNCSEL_M2SDAWIR3 = 4, /*!< M2SDAWIR3 : Configure as the IOMSTR2 I2C SDA or SPI WIR3 signal */ + GPIO_PADREGG_PAD25FNCSEL_M2MISO = 5, /*!< M2MISO : Configure as the IOMSTR2 SPI MISO input signal */ +} GPIO_PADREGG_PAD25FNCSEL_Enum; + +/* =========================================== GPIO PADREGG PAD25STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD25STRNG */ + GPIO_PADREGG_PAD25STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGG_PAD25STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGG_PAD25STRNG_Enum; + +/* ============================================ GPIO PADREGG PAD25INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGG_PAD25INPEN */ + GPIO_PADREGG_PAD25INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGG_PAD25INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGG_PAD25INPEN_Enum; + +/* ============================================= GPIO PADREGG PAD25PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGG_PAD25PULL */ + GPIO_PADREGG_PAD25PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGG_PAD25PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGG_PAD25PULL_Enum; + +/* ============================================ GPIO PADREGG PAD24FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGG_PAD24FNCSEL */ + GPIO_PADREGG_PAD24FNCSEL_UART1TX = 0, /*!< UART1TX : Configure as UART1 TX output signal */ + GPIO_PADREGG_PAD24FNCSEL_NCE24 = 1, /*!< NCE24 : IOM/MSPI nCE group 24 */ + GPIO_PADREGG_PAD24FNCSEL_MSPI8 = 2, /*!< MSPI8 : MSPI data connection 8 */ + GPIO_PADREGG_PAD24FNCSEL_GPIO24 = 3, /*!< GPIO24 : Configure as GPIO24 */ + GPIO_PADREGG_PAD24FNCSEL_UA0CTS = 4, /*!< UA0CTS : Configure as UART0 CTS input signal */ + GPIO_PADREGG_PAD24FNCSEL_CT21 = 5, /*!< CT21 : CTIMER connection 21 */ + GPIO_PADREGG_PAD24FNCSEL_32kHzXT = 6, /*!< 32kHzXT : Configure as the 32kHz crystal output signal */ + GPIO_PADREGG_PAD24FNCSEL_SWO = 7, /*!< SWO : Configure as the serial trace data output signal */ +} GPIO_PADREGG_PAD24FNCSEL_Enum; + +/* ============================================ GPIO PADREGG PAD24STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGG_PAD24STRNG */ + GPIO_PADREGG_PAD24STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGG_PAD24STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGG_PAD24STRNG_Enum; + +/* ============================================ GPIO PADREGG PAD24INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGG_PAD24INPEN */ + GPIO_PADREGG_PAD24INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGG_PAD24INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGG_PAD24INPEN_Enum; + +/* ============================================= GPIO PADREGG PAD24PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGG_PAD24PULL */ + GPIO_PADREGG_PAD24PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGG_PAD24PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGG_PAD24PULL_Enum; + +/* ======================================================== PADREGH ======================================================== */ +/* =========================================== GPIO PADREGH PAD31FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGH_PAD31FNCSEL */ + GPIO_PADREGH_PAD31FNCSEL_ADCSE3 = 0, /*!< ADCSE3 : Configure as the analog input for ADC single ended + input 3 */ + GPIO_PADREGH_PAD31FNCSEL_NCE31 = 1, /*!< NCE31 : IOM/MSPI nCE group 31 */ + GPIO_PADREGH_PAD31FNCSEL_CT13 = 2, /*!< CT13 : CTIMER connection 13 */ + GPIO_PADREGH_PAD31FNCSEL_GPIO31 = 3, /*!< GPIO31 : Configure as GPIO31 */ + GPIO_PADREGH_PAD31FNCSEL_UART0RX = 4, /*!< UART0RX : Configure as the UART0 RX input signal */ + GPIO_PADREGH_PAD31FNCSEL_SCCCLK = 5, /*!< SCCCLK : SCARD serial clock output */ + GPIO_PADREGH_PAD31FNCSEL_UA1RTS = 7, /*!< UA1RTS : Configure as UART1 RTS output signal */ +} GPIO_PADREGH_PAD31FNCSEL_Enum; + +/* =========================================== GPIO PADREGH PAD31STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD31STRNG */ + GPIO_PADREGH_PAD31STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGH_PAD31STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGH_PAD31STRNG_Enum; + +/* =========================================== GPIO PADREGH PAD31INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD31INPEN */ + GPIO_PADREGH_PAD31INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGH_PAD31INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGH_PAD31INPEN_Enum; + +/* ============================================ GPIO PADREGH PAD31PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD31PULL */ + GPIO_PADREGH_PAD31PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGH_PAD31PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGH_PAD31PULL_Enum; + +/* =========================================== GPIO PADREGH PAD30FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGH_PAD30FNCSEL */ + GPIO_PADREGH_PAD30FNCSEL_ANATEST1 = 0, /*!< ANATEST1 : Configure as the ANATEST1 I/O signal */ + GPIO_PADREGH_PAD30FNCSEL_NCE30 = 1, /*!< NCE30 : IOM/MSPI nCE group 30 */ + GPIO_PADREGH_PAD30FNCSEL_CT11 = 2, /*!< CT11 : CTIMER connection 11 */ + GPIO_PADREGH_PAD30FNCSEL_GPIO30 = 3, /*!< GPIO30 : Configure as GPIO30 */ + GPIO_PADREGH_PAD30FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as UART0 TX output signal */ + GPIO_PADREGH_PAD30FNCSEL_UA1RTS = 5, /*!< UA1RTS : Configure as UART1 RTS output signal */ + GPIO_PADREGH_PAD30FNCSEL_I2S_DAT = 7, /*!< I2S_DAT : Configure as the PDM I2S Data output signal */ +} GPIO_PADREGH_PAD30FNCSEL_Enum; + +/* =========================================== GPIO PADREGH PAD30STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD30STRNG */ + GPIO_PADREGH_PAD30STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGH_PAD30STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGH_PAD30STRNG_Enum; + +/* =========================================== GPIO PADREGH PAD30INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD30INPEN */ + GPIO_PADREGH_PAD30INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGH_PAD30INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGH_PAD30INPEN_Enum; + +/* ============================================ GPIO PADREGH PAD30PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD30PULL */ + GPIO_PADREGH_PAD30PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGH_PAD30PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGH_PAD30PULL_Enum; + +/* =========================================== GPIO PADREGH PAD29FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGH_PAD29FNCSEL */ + GPIO_PADREGH_PAD29FNCSEL_ADCSE1 = 0, /*!< ADCSE1 : Configure as the analog input for ADC single ended + input 1 */ + GPIO_PADREGH_PAD29FNCSEL_NCE29 = 1, /*!< NCE29 : IOM/MSPI nCE group 29 */ + GPIO_PADREGH_PAD29FNCSEL_CT9 = 2, /*!< CT9 : CTIMER connection 9 */ + GPIO_PADREGH_PAD29FNCSEL_GPIO29 = 3, /*!< GPIO29 : Configure as GPIO29 */ + GPIO_PADREGH_PAD29FNCSEL_UA0CTS = 4, /*!< UA0CTS : Configure as the UART0 CTS input signal */ + GPIO_PADREGH_PAD29FNCSEL_UA1CTS = 5, /*!< UA1CTS : Configure as the UART1 CTS input signal */ + GPIO_PADREGH_PAD29FNCSEL_UART0RX = 6, /*!< UART0RX : Configure as the UART0 RX input signal */ + GPIO_PADREGH_PAD29FNCSEL_PDM_DATA = 7, /*!< PDM_DATA : Configure as PDM DATA input */ +} GPIO_PADREGH_PAD29FNCSEL_Enum; + +/* =========================================== GPIO PADREGH PAD29STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD29STRNG */ + GPIO_PADREGH_PAD29STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGH_PAD29STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGH_PAD29STRNG_Enum; + +/* ============================================ GPIO PADREGH PAD29INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGH_PAD29INPEN */ + GPIO_PADREGH_PAD29INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGH_PAD29INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGH_PAD29INPEN_Enum; + +/* ============================================= GPIO PADREGH PAD29PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGH_PAD29PULL */ + GPIO_PADREGH_PAD29PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGH_PAD29PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGH_PAD29PULL_Enum; + +/* ============================================ GPIO PADREGH PAD28FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGH_PAD28FNCSEL */ + GPIO_PADREGH_PAD28FNCSEL_I2S_WCLK = 0, /*!< I2S_WCLK : Configure as the PDM I2S Word Clock input */ + GPIO_PADREGH_PAD28FNCSEL_NCE28 = 1, /*!< NCE28 : IOM/MSPI nCE group 28 */ + GPIO_PADREGH_PAD28FNCSEL_CT7 = 2, /*!< CT7 : CTIMER connection 7 */ + GPIO_PADREGH_PAD28FNCSEL_GPIO28 = 3, /*!< GPIO28 : Configure as GPIO28 */ + GPIO_PADREGH_PAD28FNCSEL_M2MOSI = 5, /*!< M2MOSI : Configure as the IOMSTR2 SPI MOSI output signal */ + GPIO_PADREGH_PAD28FNCSEL_UART0TX = 6, /*!< UART0TX : Configure as the UART0 TX output signal */ +} GPIO_PADREGH_PAD28FNCSEL_Enum; + +/* ============================================ GPIO PADREGH PAD28STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGH_PAD28STRNG */ + GPIO_PADREGH_PAD28STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGH_PAD28STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGH_PAD28STRNG_Enum; + +/* ============================================ GPIO PADREGH PAD28INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGH_PAD28INPEN */ + GPIO_PADREGH_PAD28INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGH_PAD28INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGH_PAD28INPEN_Enum; + +/* ============================================= GPIO PADREGH PAD28PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGH_PAD28PULL */ + GPIO_PADREGH_PAD28PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGH_PAD28PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGH_PAD28PULL_Enum; + +/* ======================================================== PADREGI ======================================================== */ +/* =========================================== GPIO PADREGI PAD35FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGI_PAD35FNCSEL */ + GPIO_PADREGI_PAD35FNCSEL_ADCSE7 = 0, /*!< ADCSE7 : Configure as the analog input for ADC single ended + input 7 */ + GPIO_PADREGI_PAD35FNCSEL_NCE35 = 1, /*!< NCE35 : IOM/MSPI nCE group 35 */ + GPIO_PADREGI_PAD35FNCSEL_UART1TX = 2, /*!< UART1TX : Configure as the UART1 TX signal */ + GPIO_PADREGI_PAD35FNCSEL_GPIO35 = 3, /*!< GPIO35 : Configure as GPIO35 */ + GPIO_PADREGI_PAD35FNCSEL_I2SDAT = 4, /*!< I2SDAT : I2S serial data output */ + GPIO_PADREGI_PAD35FNCSEL_CT27 = 5, /*!< CT27 : CTIMER connection 27 */ + GPIO_PADREGI_PAD35FNCSEL_UA0RTS = 6, /*!< UA0RTS : Configure as the UART0 RTS output */ +} GPIO_PADREGI_PAD35FNCSEL_Enum; + +/* =========================================== GPIO PADREGI PAD35STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD35STRNG */ + GPIO_PADREGI_PAD35STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGI_PAD35STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGI_PAD35STRNG_Enum; + +/* =========================================== GPIO PADREGI PAD35INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD35INPEN */ + GPIO_PADREGI_PAD35INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGI_PAD35INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGI_PAD35INPEN_Enum; + +/* ============================================ GPIO PADREGI PAD35PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD35PULL */ + GPIO_PADREGI_PAD35PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGI_PAD35PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGI_PAD35PULL_Enum; + +/* =========================================== GPIO PADREGI PAD34FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGI_PAD34FNCSEL */ + GPIO_PADREGI_PAD34FNCSEL_ADCSE6 = 0, /*!< ADCSE6 : Configure as the analog input for ADC single ended + input 6 */ + GPIO_PADREGI_PAD34FNCSEL_NCE34 = 1, /*!< NCE34 : IOM/MSPI nCE group 34 */ + GPIO_PADREGI_PAD34FNCSEL_UA1RTS = 2, /*!< UA1RTS : Configure as the UART1 RTS output */ + GPIO_PADREGI_PAD34FNCSEL_GPIO34 = 3, /*!< GPIO34 : Configure as GPIO34 */ + GPIO_PADREGI_PAD34FNCSEL_CMPRF2 = 4, /*!< CMPRF2 : Configure as the analog comparator reference 2 signal */ + GPIO_PADREGI_PAD34FNCSEL_UA0RTS = 5, /*!< UA0RTS : Configure as the UART0 RTS output */ + GPIO_PADREGI_PAD34FNCSEL_UART0RX = 6, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGI_PAD34FNCSEL_PDMDATA = 7, /*!< PDMDATA : PDM serial data input */ +} GPIO_PADREGI_PAD34FNCSEL_Enum; + +/* =========================================== GPIO PADREGI PAD34STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD34STRNG */ + GPIO_PADREGI_PAD34STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGI_PAD34STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGI_PAD34STRNG_Enum; + +/* =========================================== GPIO PADREGI PAD34INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD34INPEN */ + GPIO_PADREGI_PAD34INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGI_PAD34INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGI_PAD34INPEN_Enum; + +/* ============================================ GPIO PADREGI PAD34PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD34PULL */ + GPIO_PADREGI_PAD34PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGI_PAD34PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGI_PAD34PULL_Enum; + +/* =========================================== GPIO PADREGI PAD33FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGI_PAD33FNCSEL */ + GPIO_PADREGI_PAD33FNCSEL_ADCSE5 = 0, /*!< ADCSE5 : Configure as the analog ADC single ended port 5 input + signal */ + GPIO_PADREGI_PAD33FNCSEL_NCE33 = 1, /*!< NCE33 : IOM/MSPI nCE group 33 */ + GPIO_PADREGI_PAD33FNCSEL_32kHzXT = 2, /*!< 32kHzXT : Configure as the 32kHz crystal output signal */ + GPIO_PADREGI_PAD33FNCSEL_GPIO33 = 3, /*!< GPIO33 : Configure as GPIO33 */ + GPIO_PADREGI_PAD33FNCSEL_UA0CTS = 5, /*!< UA0CTS : Configure as the UART0 CTS input */ + GPIO_PADREGI_PAD33FNCSEL_CT23 = 6, /*!< CT23 : CTIMER connection 23 */ + GPIO_PADREGI_PAD33FNCSEL_SWO = 7, /*!< SWO : Configure as the serial trace data output signal */ +} GPIO_PADREGI_PAD33FNCSEL_Enum; + +/* =========================================== GPIO PADREGI PAD33STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD33STRNG */ + GPIO_PADREGI_PAD33STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGI_PAD33STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGI_PAD33STRNG_Enum; + +/* ============================================ GPIO PADREGI PAD33INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGI_PAD33INPEN */ + GPIO_PADREGI_PAD33INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGI_PAD33INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGI_PAD33INPEN_Enum; + +/* ============================================= GPIO PADREGI PAD33PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGI_PAD33PULL */ + GPIO_PADREGI_PAD33PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGI_PAD33PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGI_PAD33PULL_Enum; + +/* ============================================ GPIO PADREGI PAD32FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGI_PAD32FNCSEL */ + GPIO_PADREGI_PAD32FNCSEL_ADCSE4 = 0, /*!< ADCSE4 : Configure as the analog input for ADC single ended + input 4 */ + GPIO_PADREGI_PAD32FNCSEL_NCE32 = 1, /*!< NCE32 : IOM/MSPI nCE group 32 */ + GPIO_PADREGI_PAD32FNCSEL_CT15 = 2, /*!< CT15 : CTIMER connection 15 */ + GPIO_PADREGI_PAD32FNCSEL_GPIO32 = 3, /*!< GPIO32 : Configure as GPIO32 */ + GPIO_PADREGI_PAD32FNCSEL_SCCIO = 4, /*!< SCCIO : SCARD serial data input/output */ + GPIO_PADREGI_PAD32FNCSEL_EXTLF = 5, /*!< EXTLF : External input to the LFRC oscillator */ + GPIO_PADREGI_PAD32FNCSEL_UA1CTS = 7, /*!< UA1CTS : Configure as the UART1 CTS input */ +} GPIO_PADREGI_PAD32FNCSEL_Enum; + +/* ============================================ GPIO PADREGI PAD32STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGI_PAD32STRNG */ + GPIO_PADREGI_PAD32STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGI_PAD32STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGI_PAD32STRNG_Enum; + +/* ============================================ GPIO PADREGI PAD32INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGI_PAD32INPEN */ + GPIO_PADREGI_PAD32INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGI_PAD32INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGI_PAD32INPEN_Enum; + +/* ============================================= GPIO PADREGI PAD32PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGI_PAD32PULL */ + GPIO_PADREGI_PAD32PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGI_PAD32PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGI_PAD32PULL_Enum; + +/* ======================================================== PADREGJ ======================================================== */ +/* ============================================ GPIO PADREGJ PAD39RSEL [30..31] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD39RSEL */ + GPIO_PADREGJ_PAD39RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGJ_PAD39RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGJ_PAD39RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGJ_PAD39RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGJ_PAD39RSEL_Enum; + +/* =========================================== GPIO PADREGJ PAD39FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGJ_PAD39FNCSEL */ + GPIO_PADREGJ_PAD39FNCSEL_UART0TX = 0, /*!< UART0TX : Configure as the UART0 TX output signal */ + GPIO_PADREGJ_PAD39FNCSEL_UART1TX = 1, /*!< UART1TX : Configure as the UART1 TX output signal */ + GPIO_PADREGJ_PAD39FNCSEL_CT25 = 2, /*!< CT25 : CTIMER connection 25 */ + GPIO_PADREGJ_PAD39FNCSEL_GPIO39 = 3, /*!< GPIO39 : Configure as GPIO39 */ + GPIO_PADREGJ_PAD39FNCSEL_M4SCL = 4, /*!< M4SCL : Configure as the IOMSTR4 I2C SCL signal */ + GPIO_PADREGJ_PAD39FNCSEL_M4SCK = 5, /*!< M4SCK : Configure as the IOMSTR4 SPI SCK signal */ +} GPIO_PADREGJ_PAD39FNCSEL_Enum; + +/* =========================================== GPIO PADREGJ PAD39STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD39STRNG */ + GPIO_PADREGJ_PAD39STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGJ_PAD39STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGJ_PAD39STRNG_Enum; + +/* =========================================== GPIO PADREGJ PAD39INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD39INPEN */ + GPIO_PADREGJ_PAD39INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGJ_PAD39INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGJ_PAD39INPEN_Enum; + +/* ============================================ GPIO PADREGJ PAD39PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD39PULL */ + GPIO_PADREGJ_PAD39PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGJ_PAD39PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGJ_PAD39PULL_Enum; + +/* =========================================== GPIO PADREGJ PAD38FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGJ_PAD38FNCSEL */ + GPIO_PADREGJ_PAD38FNCSEL_TRIG3 = 0, /*!< TRIG3 : Configure as the ADC Trigger 3 signal */ + GPIO_PADREGJ_PAD38FNCSEL_NCE38 = 1, /*!< NCE38 : IOM/MSPI nCE group 38 */ + GPIO_PADREGJ_PAD38FNCSEL_UA0CTS = 2, /*!< UA0CTS : Configure as the UART0 CTS signal */ + GPIO_PADREGJ_PAD38FNCSEL_GPIO38 = 3, /*!< GPIO38 : Configure as GPIO38 */ + GPIO_PADREGJ_PAD38FNCSEL_M3MOSI = 5, /*!< M3MOSI : Configure as the IOMSTR3 SPI MOSI output signal */ + GPIO_PADREGJ_PAD38FNCSEL_UART1RX = 6, /*!< UART1RX : Configure as the UART1 RX input signal */ +} GPIO_PADREGJ_PAD38FNCSEL_Enum; + +/* =========================================== GPIO PADREGJ PAD38STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD38STRNG */ + GPIO_PADREGJ_PAD38STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGJ_PAD38STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGJ_PAD38STRNG_Enum; + +/* =========================================== GPIO PADREGJ PAD38INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD38INPEN */ + GPIO_PADREGJ_PAD38INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGJ_PAD38INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGJ_PAD38INPEN_Enum; + +/* ============================================ GPIO PADREGJ PAD38PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD38PULL */ + GPIO_PADREGJ_PAD38PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGJ_PAD38PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGJ_PAD38PULL_Enum; + +/* =========================================== GPIO PADREGJ PAD37PWRDN [15..15] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD37PWRDN */ + GPIO_PADREGJ_PAD37PWRDN_DIS = 0, /*!< DIS : Power switch disabled */ + GPIO_PADREGJ_PAD37PWRDN_EN = 1, /*!< EN : Power switch enabled (switch to GND) */ +} GPIO_PADREGJ_PAD37PWRDN_Enum; + +/* =========================================== GPIO PADREGJ PAD37FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGJ_PAD37FNCSEL */ + GPIO_PADREGJ_PAD37FNCSEL_TRIG2 = 0, /*!< TRIG2 : Configure as the ADC Trigger 2 signal */ + GPIO_PADREGJ_PAD37FNCSEL_NCE37 = 1, /*!< NCE37 : IOM/MSPI nCE group 37 */ + GPIO_PADREGJ_PAD37FNCSEL_UA0RTS = 2, /*!< UA0RTS : Configure as the UART0 RTS output signal */ + GPIO_PADREGJ_PAD37FNCSEL_GPIO37 = 3, /*!< GPIO37 : Configure as GPIO37 */ + GPIO_PADREGJ_PAD37FNCSEL_SCCIO = 4, /*!< SCCIO : SCARD serial data input/output */ + GPIO_PADREGJ_PAD37FNCSEL_UART1TX = 5, /*!< UART1TX : Configure as the UART1 TX output signal */ + GPIO_PADREGJ_PAD37FNCSEL_PDMCLK = 6, /*!< PDMCLK : Configure as the PDM CLK output signal */ + GPIO_PADREGJ_PAD37FNCSEL_CT29 = 7, /*!< CT29 : CTIMER connection 29 */ +} GPIO_PADREGJ_PAD37FNCSEL_Enum; + +/* =========================================== GPIO PADREGJ PAD37STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD37STRNG */ + GPIO_PADREGJ_PAD37STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGJ_PAD37STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGJ_PAD37STRNG_Enum; + +/* ============================================ GPIO PADREGJ PAD37INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGJ_PAD37INPEN */ + GPIO_PADREGJ_PAD37INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGJ_PAD37INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGJ_PAD37INPEN_Enum; + +/* ============================================= GPIO PADREGJ PAD37PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGJ_PAD37PULL */ + GPIO_PADREGJ_PAD37PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGJ_PAD37PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGJ_PAD37PULL_Enum; + +/* ============================================ GPIO PADREGJ PAD36FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGJ_PAD36FNCSEL */ + GPIO_PADREGJ_PAD36FNCSEL_TRIG1 = 0, /*!< TRIG1 : Configure as the ADC Trigger 1 signal */ + GPIO_PADREGJ_PAD36FNCSEL_NCE36 = 1, /*!< NCE36 : IOM/MSPI nCE group 36 */ + GPIO_PADREGJ_PAD36FNCSEL_UART1RX = 2, /*!< UART1RX : Configure as the UART1 RX input signal */ + GPIO_PADREGJ_PAD36FNCSEL_GPIO36 = 3, /*!< GPIO36 : Configure as GPIO36 */ + GPIO_PADREGJ_PAD36FNCSEL_32kHzXT = 4, /*!< 32kHzXT : Configure as the 32kHz output clock from the crystal */ + GPIO_PADREGJ_PAD36FNCSEL_UA1CTS = 5, /*!< UA1CTS : Configure as the UART1 CTS input signal */ + GPIO_PADREGJ_PAD36FNCSEL_UA0CTS = 6, /*!< UA0CTS : Configure as the UART0 CTS input signal */ + GPIO_PADREGJ_PAD36FNCSEL_PDMDATA = 7, /*!< PDMDATA : PDM serial data input */ +} GPIO_PADREGJ_PAD36FNCSEL_Enum; + +/* ============================================ GPIO PADREGJ PAD36STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGJ_PAD36STRNG */ + GPIO_PADREGJ_PAD36STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGJ_PAD36STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGJ_PAD36STRNG_Enum; + +/* ============================================ GPIO PADREGJ PAD36INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGJ_PAD36INPEN */ + GPIO_PADREGJ_PAD36INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGJ_PAD36INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGJ_PAD36INPEN_Enum; + +/* ============================================= GPIO PADREGJ PAD36PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGJ_PAD36PULL */ + GPIO_PADREGJ_PAD36PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGJ_PAD36PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGJ_PAD36PULL_Enum; + +/* ======================================================== PADREGK ======================================================== */ +/* ============================================ GPIO PADREGK PAD43RSEL [30..31] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD43RSEL */ + GPIO_PADREGK_PAD43RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGK_PAD43RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGK_PAD43RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGK_PAD43RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGK_PAD43RSEL_Enum; + +/* =========================================== GPIO PADREGK PAD43FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGK_PAD43FNCSEL */ + GPIO_PADREGK_PAD43FNCSEL_UART1RX = 0, /*!< UART1RX : Configure as the UART1 RX input signal */ + GPIO_PADREGK_PAD43FNCSEL_NCE43 = 1, /*!< NCE43 : IOM/MSPI nCE group 43 */ + GPIO_PADREGK_PAD43FNCSEL_CT18 = 2, /*!< CT18 : CTIMER connection 18 */ + GPIO_PADREGK_PAD43FNCSEL_GPIO43 = 3, /*!< GPIO43 : Configure as GPIO43 */ + GPIO_PADREGK_PAD43FNCSEL_M3SDAWIR3 = 4, /*!< M3SDAWIR3 : Configure as the IOMSTR3 I2C SDA or SPI WIR3 signal */ + GPIO_PADREGK_PAD43FNCSEL_M3MISO = 5, /*!< M3MISO : Configure as the IOMSTR3 SPI MISO signal */ +} GPIO_PADREGK_PAD43FNCSEL_Enum; + +/* =========================================== GPIO PADREGK PAD43STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD43STRNG */ + GPIO_PADREGK_PAD43STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGK_PAD43STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGK_PAD43STRNG_Enum; + +/* =========================================== GPIO PADREGK PAD43INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD43INPEN */ + GPIO_PADREGK_PAD43INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGK_PAD43INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGK_PAD43INPEN_Enum; + +/* ============================================ GPIO PADREGK PAD43PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD43PULL */ + GPIO_PADREGK_PAD43PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGK_PAD43PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGK_PAD43PULL_Enum; + +/* ============================================ GPIO PADREGK PAD42RSEL [22..23] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD42RSEL */ + GPIO_PADREGK_PAD42RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGK_PAD42RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGK_PAD42RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGK_PAD42RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGK_PAD42RSEL_Enum; + +/* =========================================== GPIO PADREGK PAD42FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGK_PAD42FNCSEL */ + GPIO_PADREGK_PAD42FNCSEL_UART1TX = 0, /*!< UART1TX : Configure as the UART1 TX output signal */ + GPIO_PADREGK_PAD42FNCSEL_NCE42 = 1, /*!< NCE42 : IOM/MSPI nCE group 42 */ + GPIO_PADREGK_PAD42FNCSEL_CT16 = 2, /*!< CT16 : CTIMER connection 16 */ + GPIO_PADREGK_PAD42FNCSEL_GPIO42 = 3, /*!< GPIO42 : Configure as GPIO42 */ + GPIO_PADREGK_PAD42FNCSEL_M3SCL = 4, /*!< M3SCL : Configure as the IOMSTR3 I2C SCL clock I/O signal */ + GPIO_PADREGK_PAD42FNCSEL_M3SCK = 5, /*!< M3SCK : Configure as the IOMSTR3 SPI SCK output */ +} GPIO_PADREGK_PAD42FNCSEL_Enum; + +/* =========================================== GPIO PADREGK PAD42STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD42STRNG */ + GPIO_PADREGK_PAD42STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGK_PAD42STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGK_PAD42STRNG_Enum; + +/* =========================================== GPIO PADREGK PAD42INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD42INPEN */ + GPIO_PADREGK_PAD42INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGK_PAD42INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGK_PAD42INPEN_Enum; + +/* ============================================ GPIO PADREGK PAD42PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD42PULL */ + GPIO_PADREGK_PAD42PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGK_PAD42PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGK_PAD42PULL_Enum; + +/* =========================================== GPIO PADREGK PAD41PWRDN [15..15] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD41PWRDN */ + GPIO_PADREGK_PAD41PWRDN_DIS = 0, /*!< DIS : Power switch disabled */ + GPIO_PADREGK_PAD41PWRDN_EN = 1, /*!< EN : Power switch enabled (Switch pad to VSS) */ +} GPIO_PADREGK_PAD41PWRDN_Enum; + +/* =========================================== GPIO PADREGK PAD41FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGK_PAD41FNCSEL */ + GPIO_PADREGK_PAD41FNCSEL_NCE41 = 0, /*!< NCE41 : IOM/MSPI nCE group 41 */ + GPIO_PADREGK_PAD41FNCSEL_SWO = 2, /*!< SWO : Configure as the serial wire debug SWO signal */ + GPIO_PADREGK_PAD41FNCSEL_GPIO41 = 3, /*!< GPIO41 : Configure as GPIO41 */ + GPIO_PADREGK_PAD41FNCSEL_I2SWCLK = 4, /*!< I2SWCLK : I2S word clock input */ + GPIO_PADREGK_PAD41FNCSEL_UA1RTS = 5, /*!< UA1RTS : Configure as the UART1 RTS output signal */ + GPIO_PADREGK_PAD41FNCSEL_UART0TX = 6, /*!< UART0TX : Configure as the UART0 TX output signal */ + GPIO_PADREGK_PAD41FNCSEL_UA0RTS = 7, /*!< UA0RTS : Configure as the UART0 RTS output signal */ +} GPIO_PADREGK_PAD41FNCSEL_Enum; + +/* =========================================== GPIO PADREGK PAD41STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD41STRNG */ + GPIO_PADREGK_PAD41STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGK_PAD41STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGK_PAD41STRNG_Enum; + +/* ============================================ GPIO PADREGK PAD41INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGK_PAD41INPEN */ + GPIO_PADREGK_PAD41INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGK_PAD41INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGK_PAD41INPEN_Enum; + +/* ============================================= GPIO PADREGK PAD41PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGK_PAD41PULL */ + GPIO_PADREGK_PAD41PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGK_PAD41PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGK_PAD41PULL_Enum; + +/* ============================================= GPIO PADREGK PAD40RSEL [6..7] ============================================= */ +typedef enum { /*!< GPIO_PADREGK_PAD40RSEL */ + GPIO_PADREGK_PAD40RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGK_PAD40RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGK_PAD40RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGK_PAD40RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGK_PAD40RSEL_Enum; + +/* ============================================ GPIO PADREGK PAD40FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGK_PAD40FNCSEL */ + GPIO_PADREGK_PAD40FNCSEL_UART0RX = 0, /*!< UART0RX : Configure as the UART0 RX input signal */ + GPIO_PADREGK_PAD40FNCSEL_UART1RX = 1, /*!< UART1RX : Configure as the UART1 RX input signal */ + GPIO_PADREGK_PAD40FNCSEL_TRIG0 = 2, /*!< TRIG0 : Configure as the ADC Trigger 0 signal */ + GPIO_PADREGK_PAD40FNCSEL_GPIO40 = 3, /*!< GPIO40 : Configure as GPIO40 */ + GPIO_PADREGK_PAD40FNCSEL_M4SDAWIR3 = 4, /*!< M4SDAWIR3 : Configure as the IOMSTR4 I2C SDA or SPI WIR3 signal */ + GPIO_PADREGK_PAD40FNCSEL_M4MISO = 5, /*!< M4MISO : Configure as the IOMSTR4 SPI MISO input signal */ +} GPIO_PADREGK_PAD40FNCSEL_Enum; + +/* ============================================ GPIO PADREGK PAD40STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGK_PAD40STRNG */ + GPIO_PADREGK_PAD40STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGK_PAD40STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGK_PAD40STRNG_Enum; + +/* ============================================ GPIO PADREGK PAD40INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGK_PAD40INPEN */ + GPIO_PADREGK_PAD40INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGK_PAD40INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGK_PAD40INPEN_Enum; + +/* ============================================= GPIO PADREGK PAD40PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGK_PAD40PULL */ + GPIO_PADREGK_PAD40PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGK_PAD40PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGK_PAD40PULL_Enum; + +/* ======================================================== PADREGL ======================================================== */ +/* =========================================== GPIO PADREGL PAD47FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGL_PAD47FNCSEL */ + GPIO_PADREGL_PAD47FNCSEL_32kHzXT = 0, /*!< 32kHzXT : Configure as the 32kHz output clock from the crystal */ + GPIO_PADREGL_PAD47FNCSEL_NCE47 = 1, /*!< NCE47 : IOM/MSPI nCE group 47 */ + GPIO_PADREGL_PAD47FNCSEL_CT26 = 2, /*!< CT26 : CTIMER connection 26 */ + GPIO_PADREGL_PAD47FNCSEL_GPIO47 = 3, /*!< GPIO47 : Configure as GPIO47 */ + GPIO_PADREGL_PAD47FNCSEL_M5MOSI = 5, /*!< M5MOSI : Configure as the IOMSTR5 SPI MOSI output signal */ + GPIO_PADREGL_PAD47FNCSEL_UART1RX = 6, /*!< UART1RX : Configure as the UART1 RX input signal */ +} GPIO_PADREGL_PAD47FNCSEL_Enum; + +/* =========================================== GPIO PADREGL PAD47STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD47STRNG */ + GPIO_PADREGL_PAD47STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGL_PAD47STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGL_PAD47STRNG_Enum; + +/* =========================================== GPIO PADREGL PAD47INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD47INPEN */ + GPIO_PADREGL_PAD47INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGL_PAD47INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGL_PAD47INPEN_Enum; + +/* ============================================ GPIO PADREGL PAD47PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD47PULL */ + GPIO_PADREGL_PAD47PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGL_PAD47PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGL_PAD47PULL_Enum; + +/* =========================================== GPIO PADREGL PAD46FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGL_PAD46FNCSEL */ + GPIO_PADREGL_PAD46FNCSEL_32khz_XT = 0, /*!< 32khz_XT : Configure as the 32kHz output clock from the crystal */ + GPIO_PADREGL_PAD46FNCSEL_NCE46 = 1, /*!< NCE46 : IOM/MSPI nCE group 46 */ + GPIO_PADREGL_PAD46FNCSEL_CT24 = 2, /*!< CT24 : CTIMER connection 24 */ + GPIO_PADREGL_PAD46FNCSEL_GPIO46 = 3, /*!< GPIO46 : Configure as GPIO46 */ + GPIO_PADREGL_PAD46FNCSEL_SCCRST = 4, /*!< SCCRST : SCARD reset output */ + GPIO_PADREGL_PAD46FNCSEL_PDMCLK = 5, /*!< PDMCLK : PDM serial clock output */ + GPIO_PADREGL_PAD46FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output signal */ + GPIO_PADREGL_PAD46FNCSEL_SWO = 7, /*!< SWO : Configure as the serial wire debug SWO signal */ +} GPIO_PADREGL_PAD46FNCSEL_Enum; + +/* =========================================== GPIO PADREGL PAD46STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD46STRNG */ + GPIO_PADREGL_PAD46STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGL_PAD46STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGL_PAD46STRNG_Enum; + +/* =========================================== GPIO PADREGL PAD46INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD46INPEN */ + GPIO_PADREGL_PAD46INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGL_PAD46INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGL_PAD46INPEN_Enum; + +/* ============================================ GPIO PADREGL PAD46PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD46PULL */ + GPIO_PADREGL_PAD46PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGL_PAD46PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGL_PAD46PULL_Enum; + +/* =========================================== GPIO PADREGL PAD45FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGL_PAD45FNCSEL */ + GPIO_PADREGL_PAD45FNCSEL_UA1CTS = 0, /*!< UA1CTS : Configure as the UART1 CTS input signal */ + GPIO_PADREGL_PAD45FNCSEL_NCE45 = 1, /*!< NCE45 : IOM/MSPI nCE group 45 */ + GPIO_PADREGL_PAD45FNCSEL_CT22 = 2, /*!< CT22 : CTIMER connection 22 */ + GPIO_PADREGL_PAD45FNCSEL_GPIO45 = 3, /*!< GPIO45 : Configure as GPIO45 */ + GPIO_PADREGL_PAD45FNCSEL_I2SDAT = 4, /*!< I2SDAT : I2S serial data output */ + GPIO_PADREGL_PAD45FNCSEL_PDMDATA = 5, /*!< PDMDATA : PDM serial data input */ + GPIO_PADREGL_PAD45FNCSEL_UART0RX = 6, /*!< UART0RX : Configure as the SPI channel 5 nCE signal from IOMSTR5 */ + GPIO_PADREGL_PAD45FNCSEL_SWO = 7, /*!< SWO : Configure as the serial wire debug SWO signal */ +} GPIO_PADREGL_PAD45FNCSEL_Enum; + +/* =========================================== GPIO PADREGL PAD45STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD45STRNG */ + GPIO_PADREGL_PAD45STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGL_PAD45STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGL_PAD45STRNG_Enum; + +/* ============================================ GPIO PADREGL PAD45INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGL_PAD45INPEN */ + GPIO_PADREGL_PAD45INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGL_PAD45INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGL_PAD45INPEN_Enum; + +/* ============================================= GPIO PADREGL PAD45PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGL_PAD45PULL */ + GPIO_PADREGL_PAD45PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGL_PAD45PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGL_PAD45PULL_Enum; + +/* ============================================ GPIO PADREGL PAD44FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGL_PAD44FNCSEL */ + GPIO_PADREGL_PAD44FNCSEL_UA1RTS = 0, /*!< UA1RTS : Configure as the UART1 RTS output signal */ + GPIO_PADREGL_PAD44FNCSEL_NCE44 = 1, /*!< NCE44 : IOM/MSPI nCE group 44 */ + GPIO_PADREGL_PAD44FNCSEL_CT20 = 2, /*!< CT20 : CTIMER connection 20 */ + GPIO_PADREGL_PAD44FNCSEL_GPIO44 = 3, /*!< GPIO44 : Configure as GPIO44 */ + GPIO_PADREGL_PAD44FNCSEL_M4MOSI = 5, /*!< M4MOSI : Configure as the IOMSTR4 SPI MOSI signal */ + GPIO_PADREGL_PAD44FNCSEL_M5nCE6 = 6, /*!< M5nCE6 : Configure as the SPI channel 6 nCE signal from IOMSTR5 */ +} GPIO_PADREGL_PAD44FNCSEL_Enum; + +/* ============================================ GPIO PADREGL PAD44STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGL_PAD44STRNG */ + GPIO_PADREGL_PAD44STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGL_PAD44STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGL_PAD44STRNG_Enum; + +/* ============================================ GPIO PADREGL PAD44INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGL_PAD44INPEN */ + GPIO_PADREGL_PAD44INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGL_PAD44INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGL_PAD44INPEN_Enum; + +/* ============================================= GPIO PADREGL PAD44PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGL_PAD44PULL */ + GPIO_PADREGL_PAD44PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGL_PAD44PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGL_PAD44PULL_Enum; + +/* ======================================================== PADREGM ======================================================== */ +/* =========================================== GPIO PADREGM PAD51FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGM_PAD51FNCSEL */ + GPIO_PADREGM_PAD51FNCSEL_MSPI1_0 = 0, /*!< MSPI1_0 : Configure as the MSPI1 0 signal */ + GPIO_PADREGM_PAD51FNCSEL_NCE51 = 1, /*!< NCE51 : IOM/MSPI nCE group 51 */ + GPIO_PADREGM_PAD51FNCSEL_CT1 = 2, /*!< CT1 : CTIMER connection 1 */ + GPIO_PADREGM_PAD51FNCSEL_GPIO51 = 3, /*!< GPIO51 : Configure as GPIO51 */ +} GPIO_PADREGM_PAD51FNCSEL_Enum; + +/* =========================================== GPIO PADREGM PAD51STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD51STRNG */ + GPIO_PADREGM_PAD51STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGM_PAD51STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGM_PAD51STRNG_Enum; + +/* =========================================== GPIO PADREGM PAD51INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD51INPEN */ + GPIO_PADREGM_PAD51INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGM_PAD51INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGM_PAD51INPEN_Enum; + +/* ============================================ GPIO PADREGM PAD51PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD51PULL */ + GPIO_PADREGM_PAD51PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGM_PAD51PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGM_PAD51PULL_Enum; + +/* =========================================== GPIO PADREGM PAD50FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGM_PAD50FNCSEL */ + GPIO_PADREGM_PAD50FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGM_PAD50FNCSEL_NCE50 = 1, /*!< NCE50 : IOM/MSPI nCE group 50 */ + GPIO_PADREGM_PAD50FNCSEL_CT0 = 2, /*!< CT0 : CTIMER connection 0 */ + GPIO_PADREGM_PAD50FNCSEL_GPIO50 = 3, /*!< GPIO50 : Configure as GPIO50 */ + GPIO_PADREGM_PAD50FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGM_PAD50FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGM_PAD50FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGM_PAD50FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGM_PAD50FNCSEL_Enum; + +/* =========================================== GPIO PADREGM PAD50STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD50STRNG */ + GPIO_PADREGM_PAD50STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGM_PAD50STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGM_PAD50STRNG_Enum; + +/* =========================================== GPIO PADREGM PAD50INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD50INPEN */ + GPIO_PADREGM_PAD50INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGM_PAD50INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGM_PAD50INPEN_Enum; + +/* ============================================ GPIO PADREGM PAD50PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD50PULL */ + GPIO_PADREGM_PAD50PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGM_PAD50PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGM_PAD50PULL_Enum; + +/* ============================================ GPIO PADREGM PAD49RSEL [14..15] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD49RSEL */ + GPIO_PADREGM_PAD49RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGM_PAD49RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGM_PAD49RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGM_PAD49RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGM_PAD49RSEL_Enum; + +/* =========================================== GPIO PADREGM PAD49FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGM_PAD49FNCSEL */ + GPIO_PADREGM_PAD49FNCSEL_UART0RX = 0, /*!< UART0RX : Configure as the UART0 RX input signal */ + GPIO_PADREGM_PAD49FNCSEL_NCE49 = 1, /*!< NCE49 : IOM/MSPPI nCE group 49 */ + GPIO_PADREGM_PAD49FNCSEL_CT30 = 2, /*!< CT30 : CTIMER connection 30 */ + GPIO_PADREGM_PAD49FNCSEL_GPIO49 = 3, /*!< GPIO49 : Configure as GPIO49 */ + GPIO_PADREGM_PAD49FNCSEL_M5SDAWIR3 = 4, /*!< M5SDAWIR3 : Configure as the IOMSTR5 I2C SDA or SPI WIR3 signal */ + GPIO_PADREGM_PAD49FNCSEL_M5MISO = 5, /*!< M5MISO : Configure as the IOMSTR5 SPI MISO input signal */ +} GPIO_PADREGM_PAD49FNCSEL_Enum; + +/* =========================================== GPIO PADREGM PAD49STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD49STRNG */ + GPIO_PADREGM_PAD49STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGM_PAD49STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGM_PAD49STRNG_Enum; + +/* ============================================ GPIO PADREGM PAD49INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGM_PAD49INPEN */ + GPIO_PADREGM_PAD49INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGM_PAD49INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGM_PAD49INPEN_Enum; + +/* ============================================= GPIO PADREGM PAD49PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGM_PAD49PULL */ + GPIO_PADREGM_PAD49PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGM_PAD49PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGM_PAD49PULL_Enum; + +/* ============================================= GPIO PADREGM PAD48RSEL [6..7] ============================================= */ +typedef enum { /*!< GPIO_PADREGM_PAD48RSEL */ + GPIO_PADREGM_PAD48RSEL_PULL1_5K = 0, /*!< PULL1_5K : Pullup is ~1.5 KOhms */ + GPIO_PADREGM_PAD48RSEL_PULL6K = 1, /*!< PULL6K : Pullup is ~6 KOhms */ + GPIO_PADREGM_PAD48RSEL_PULL12K = 2, /*!< PULL12K : Pullup is ~12 KOhms */ + GPIO_PADREGM_PAD48RSEL_PULL24K = 3, /*!< PULL24K : Pullup is ~24 KOhms */ +} GPIO_PADREGM_PAD48RSEL_Enum; + +/* ============================================ GPIO PADREGM PAD48FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGM_PAD48FNCSEL */ + GPIO_PADREGM_PAD48FNCSEL_UART0TX = 0, /*!< UART0TX : Configure as the UART0 TX output signal */ + GPIO_PADREGM_PAD48FNCSEL_NCE48 = 1, /*!< NCE48 : IOM/MSPI nCE group 48 */ + GPIO_PADREGM_PAD48FNCSEL_CT28 = 2, /*!< CT28 : CTIMER conenction 28 */ + GPIO_PADREGM_PAD48FNCSEL_GPIO48 = 3, /*!< GPIO48 : Configure as GPIO48 */ + GPIO_PADREGM_PAD48FNCSEL_M5SCL = 4, /*!< M5SCL : Configure as the IOMSTR5 I2C SCL clock I/O signal */ + GPIO_PADREGM_PAD48FNCSEL_M5SCK = 5, /*!< M5SCK : Configure as the IOMSTR5 SPI SCK output */ +} GPIO_PADREGM_PAD48FNCSEL_Enum; + +/* ============================================ GPIO PADREGM PAD48STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGM_PAD48STRNG */ + GPIO_PADREGM_PAD48STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGM_PAD48STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGM_PAD48STRNG_Enum; + +/* ============================================ GPIO PADREGM PAD48INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGM_PAD48INPEN */ + GPIO_PADREGM_PAD48INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGM_PAD48INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGM_PAD48INPEN_Enum; + +/* ============================================= GPIO PADREGM PAD48PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGM_PAD48PULL */ + GPIO_PADREGM_PAD48PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGM_PAD48PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGM_PAD48PULL_Enum; + +/* ======================================================== PADREGN ======================================================== */ +/* =========================================== GPIO PADREGN PAD55FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGN_PAD55FNCSEL */ + GPIO_PADREGN_PAD55FNCSEL_MSPI1_4 = 0, /*!< MSPI1_4 : Configure as the MSPI1 4 signal */ + GPIO_PADREGN_PAD55FNCSEL_NCE55 = 1, /*!< NCE55 : IOM/MSPI nCE group 55 */ + GPIO_PADREGN_PAD55FNCSEL_CT5 = 2, /*!< CT5 : CTIMER connection 5 */ + GPIO_PADREGN_PAD55FNCSEL_GPIO55 = 3, /*!< GPIO55 : Configure as GPIO55 */ +} GPIO_PADREGN_PAD55FNCSEL_Enum; + +/* =========================================== GPIO PADREGN PAD55STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD55STRNG */ + GPIO_PADREGN_PAD55STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGN_PAD55STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGN_PAD55STRNG_Enum; + +/* =========================================== GPIO PADREGN PAD55INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD55INPEN */ + GPIO_PADREGN_PAD55INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGN_PAD55INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGN_PAD55INPEN_Enum; + +/* ============================================ GPIO PADREGN PAD55PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD55PULL */ + GPIO_PADREGN_PAD55PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGN_PAD55PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGN_PAD55PULL_Enum; + +/* =========================================== GPIO PADREGN PAD54FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGN_PAD54FNCSEL */ + GPIO_PADREGN_PAD54FNCSEL_MSPI1_3 = 0, /*!< MSPI1_3 : Configure as the MSPI1 3 signal */ + GPIO_PADREGN_PAD54FNCSEL_NCE54 = 1, /*!< NCE54 : IOM/MSPI nCE group 54 */ + GPIO_PADREGN_PAD54FNCSEL_CT4 = 2, /*!< CT4 : CTIMER connection 4 */ + GPIO_PADREGN_PAD54FNCSEL_GPIO54 = 3, /*!< GPIO54 : Configure as GPIO54 */ +} GPIO_PADREGN_PAD54FNCSEL_Enum; + +/* =========================================== GPIO PADREGN PAD54STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD54STRNG */ + GPIO_PADREGN_PAD54STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGN_PAD54STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGN_PAD54STRNG_Enum; + +/* =========================================== GPIO PADREGN PAD54INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD54INPEN */ + GPIO_PADREGN_PAD54INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGN_PAD54INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGN_PAD54INPEN_Enum; + +/* ============================================ GPIO PADREGN PAD54PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD54PULL */ + GPIO_PADREGN_PAD54PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGN_PAD54PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGN_PAD54PULL_Enum; + +/* =========================================== GPIO PADREGN PAD53FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGN_PAD53FNCSEL */ + GPIO_PADREGN_PAD53FNCSEL_MSPI1_2 = 0, /*!< MSPI1_2 : Configure as the MSPI1 2 signal */ + GPIO_PADREGN_PAD53FNCSEL_NCE53 = 1, /*!< NCE53 : IOM/MSPI nCE group 53 */ + GPIO_PADREGN_PAD53FNCSEL_CT3 = 2, /*!< CT3 : CTIMER connection 3 */ + GPIO_PADREGN_PAD53FNCSEL_GPIO53 = 3, /*!< GPIO53 : Configure as GPIO53 */ +} GPIO_PADREGN_PAD53FNCSEL_Enum; + +/* =========================================== GPIO PADREGN PAD53STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD53STRNG */ + GPIO_PADREGN_PAD53STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGN_PAD53STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGN_PAD53STRNG_Enum; + +/* ============================================ GPIO PADREGN PAD53INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGN_PAD53INPEN */ + GPIO_PADREGN_PAD53INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGN_PAD53INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGN_PAD53INPEN_Enum; + +/* ============================================= GPIO PADREGN PAD53PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGN_PAD53PULL */ + GPIO_PADREGN_PAD53PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGN_PAD53PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGN_PAD53PULL_Enum; + +/* ============================================ GPIO PADREGN PAD52FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGN_PAD52FNCSEL */ + GPIO_PADREGN_PAD52FNCSEL_MSPI1_1 = 0, /*!< MSPI1_1 : Configure as the MSPI1 1 signal */ + GPIO_PADREGN_PAD52FNCSEL_NCE52 = 1, /*!< NCE52 : IOM/MSPI nCE group 52 */ + GPIO_PADREGN_PAD52FNCSEL_CT2 = 2, /*!< CT2 : CTIMER connection 2 */ + GPIO_PADREGN_PAD52FNCSEL_GPIO52 = 3, /*!< GPIO52 : Configure as GPIO52 */ +} GPIO_PADREGN_PAD52FNCSEL_Enum; + +/* ============================================ GPIO PADREGN PAD52STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGN_PAD52STRNG */ + GPIO_PADREGN_PAD52STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGN_PAD52STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGN_PAD52STRNG_Enum; + +/* ============================================ GPIO PADREGN PAD52INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGN_PAD52INPEN */ + GPIO_PADREGN_PAD52INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGN_PAD52INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGN_PAD52INPEN_Enum; + +/* ============================================= GPIO PADREGN PAD52PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGN_PAD52PULL */ + GPIO_PADREGN_PAD52PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGN_PAD52PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGN_PAD52PULL_Enum; + +/* ======================================================== PADREGO ======================================================== */ +/* =========================================== GPIO PADREGO PAD59FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGO_PAD59FNCSEL */ + GPIO_PADREGO_PAD59FNCSEL_MSPI1_8 = 0, /*!< MSPI1_8 : Configure as the MSPI1 8 signal */ + GPIO_PADREGO_PAD59FNCSEL_NCE59 = 1, /*!< NCE59 : IOM/MSPI nCE group 59 */ + GPIO_PADREGO_PAD59FNCSEL_CT9 = 2, /*!< CT9 : CTIMER connection 9 */ + GPIO_PADREGO_PAD59FNCSEL_GPIO59 = 3, /*!< GPIO59 : Configure as GPIO59 */ +} GPIO_PADREGO_PAD59FNCSEL_Enum; + +/* =========================================== GPIO PADREGO PAD59STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD59STRNG */ + GPIO_PADREGO_PAD59STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGO_PAD59STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGO_PAD59STRNG_Enum; + +/* =========================================== GPIO PADREGO PAD59INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD59INPEN */ + GPIO_PADREGO_PAD59INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGO_PAD59INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGO_PAD59INPEN_Enum; + +/* ============================================ GPIO PADREGO PAD59PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD59PULL */ + GPIO_PADREGO_PAD59PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGO_PAD59PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGO_PAD59PULL_Enum; + +/* =========================================== GPIO PADREGO PAD58FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGO_PAD58FNCSEL */ + GPIO_PADREGO_PAD58FNCSEL_MSPI1_7 = 0, /*!< MSPI1_7 : Configure as the MSPI1 7 signal */ + GPIO_PADREGO_PAD58FNCSEL_NCE58 = 1, /*!< NCE58 : IOM/MSPI nCE group 58 */ + GPIO_PADREGO_PAD58FNCSEL_CT8 = 2, /*!< CT8 : CTIMER connection 8 */ + GPIO_PADREGO_PAD58FNCSEL_GPIO58 = 3, /*!< GPIO58 : Configure as GPIO58 */ +} GPIO_PADREGO_PAD58FNCSEL_Enum; + +/* =========================================== GPIO PADREGO PAD58STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD58STRNG */ + GPIO_PADREGO_PAD58STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGO_PAD58STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGO_PAD58STRNG_Enum; + +/* =========================================== GPIO PADREGO PAD58INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD58INPEN */ + GPIO_PADREGO_PAD58INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGO_PAD58INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGO_PAD58INPEN_Enum; + +/* ============================================ GPIO PADREGO PAD58PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD58PULL */ + GPIO_PADREGO_PAD58PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGO_PAD58PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGO_PAD58PULL_Enum; + +/* =========================================== GPIO PADREGO PAD57FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGO_PAD57FNCSEL */ + GPIO_PADREGO_PAD57FNCSEL_MSPI1_6 = 0, /*!< MSPI1_6 : Configure as the MSPI1 6 signal */ + GPIO_PADREGO_PAD57FNCSEL_NCE57 = 1, /*!< NCE57 : IOM/MSPI nCE group 57 */ + GPIO_PADREGO_PAD57FNCSEL_CT7 = 2, /*!< CT7 : CTIMER connection 7 */ + GPIO_PADREGO_PAD57FNCSEL_GPIO57 = 3, /*!< GPIO57 : Configure as GPIO57 */ +} GPIO_PADREGO_PAD57FNCSEL_Enum; + +/* =========================================== GPIO PADREGO PAD57STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD57STRNG */ + GPIO_PADREGO_PAD57STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGO_PAD57STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGO_PAD57STRNG_Enum; + +/* ============================================ GPIO PADREGO PAD57INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGO_PAD57INPEN */ + GPIO_PADREGO_PAD57INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGO_PAD57INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGO_PAD57INPEN_Enum; + +/* ============================================= GPIO PADREGO PAD57PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGO_PAD57PULL */ + GPIO_PADREGO_PAD57PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGO_PAD57PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGO_PAD57PULL_Enum; + +/* ============================================ GPIO PADREGO PAD56FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGO_PAD56FNCSEL */ + GPIO_PADREGO_PAD56FNCSEL_MSPI1_5 = 0, /*!< MSPI1_5 : Configure as the MSPI1 5 signal */ + GPIO_PADREGO_PAD56FNCSEL_NCE56 = 1, /*!< NCE56 : IOM/MSPI nCE group 56 */ + GPIO_PADREGO_PAD56FNCSEL_CT6 = 2, /*!< CT6 : CTIMER connection 6 */ + GPIO_PADREGO_PAD56FNCSEL_GPIO56 = 3, /*!< GPIO56 : Configure as GPIO56 */ +} GPIO_PADREGO_PAD56FNCSEL_Enum; + +/* ============================================ GPIO PADREGO PAD56STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGO_PAD56STRNG */ + GPIO_PADREGO_PAD56STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGO_PAD56STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGO_PAD56STRNG_Enum; + +/* ============================================ GPIO PADREGO PAD56INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGO_PAD56INPEN */ + GPIO_PADREGO_PAD56INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGO_PAD56INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGO_PAD56INPEN_Enum; + +/* ============================================= GPIO PADREGO PAD56PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGO_PAD56PULL */ + GPIO_PADREGO_PAD56PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGO_PAD56PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGO_PAD56PULL_Enum; + +/* ======================================================== PADREGP ======================================================== */ +/* =========================================== GPIO PADREGP PAD63FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGP_PAD63FNCSEL */ + GPIO_PADREGP_PAD63FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGP_PAD63FNCSEL_NCE63 = 1, /*!< NCE63 : IOM/MSPI nCE group 63 */ + GPIO_PADREGP_PAD63FNCSEL_CT13 = 2, /*!< CT13 : CTIMER connection 13 */ + GPIO_PADREGP_PAD63FNCSEL_GPIO63 = 3, /*!< GPIO63 : Configure as GPIO63 */ + GPIO_PADREGP_PAD63FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGP_PAD63FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGP_PAD63FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGP_PAD63FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGP_PAD63FNCSEL_Enum; + +/* =========================================== GPIO PADREGP PAD63STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD63STRNG */ + GPIO_PADREGP_PAD63STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGP_PAD63STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGP_PAD63STRNG_Enum; + +/* =========================================== GPIO PADREGP PAD63INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD63INPEN */ + GPIO_PADREGP_PAD63INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGP_PAD63INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGP_PAD63INPEN_Enum; + +/* ============================================ GPIO PADREGP PAD63PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD63PULL */ + GPIO_PADREGP_PAD63PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGP_PAD63PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGP_PAD63PULL_Enum; + +/* =========================================== GPIO PADREGP PAD62FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGP_PAD62FNCSEL */ + GPIO_PADREGP_PAD62FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGP_PAD62FNCSEL_NCE62 = 1, /*!< NCE62 : IOM/MSPI nCE group 62 */ + GPIO_PADREGP_PAD62FNCSEL_CT12 = 2, /*!< CT12 : CTIMER connection 12 */ + GPIO_PADREGP_PAD62FNCSEL_GPIO62 = 3, /*!< GPIO62 : Configure as GPIO62 */ + GPIO_PADREGP_PAD62FNCSEL_UA0CTS = 4, /*!< UA0CTS : Configure as the UART0 CTS input */ + GPIO_PADREGP_PAD62FNCSEL_UA0RTS = 5, /*!< UA0RTS : Configure as the UART0 RTS output */ + GPIO_PADREGP_PAD62FNCSEL_UA1CTS = 6, /*!< UA1CTS : Configure as the UART1 CTS input */ + GPIO_PADREGP_PAD62FNCSEL_UA1RTS = 7, /*!< UA1RTS : Configure as the UART1 RTS output */ +} GPIO_PADREGP_PAD62FNCSEL_Enum; + +/* =========================================== GPIO PADREGP PAD62STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD62STRNG */ + GPIO_PADREGP_PAD62STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGP_PAD62STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGP_PAD62STRNG_Enum; + +/* =========================================== GPIO PADREGP PAD62INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD62INPEN */ + GPIO_PADREGP_PAD62INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGP_PAD62INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGP_PAD62INPEN_Enum; + +/* ============================================ GPIO PADREGP PAD62PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD62PULL */ + GPIO_PADREGP_PAD62PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGP_PAD62PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGP_PAD62PULL_Enum; + +/* =========================================== GPIO PADREGP PAD61FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGP_PAD61FNCSEL */ + GPIO_PADREGP_PAD61FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGP_PAD61FNCSEL_NCE61 = 1, /*!< NCE61 : IOM/MSPI nCE group 61 */ + GPIO_PADREGP_PAD61FNCSEL_CT11 = 2, /*!< CT11 : CTIMER connection 11 */ + GPIO_PADREGP_PAD61FNCSEL_GPIO61 = 3, /*!< GPIO61 : Configure as GPIO61 */ + GPIO_PADREGP_PAD61FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGP_PAD61FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGP_PAD61FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGP_PAD61FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGP_PAD61FNCSEL_Enum; + +/* =========================================== GPIO PADREGP PAD61STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD61STRNG */ + GPIO_PADREGP_PAD61STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGP_PAD61STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGP_PAD61STRNG_Enum; + +/* ============================================ GPIO PADREGP PAD61INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGP_PAD61INPEN */ + GPIO_PADREGP_PAD61INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGP_PAD61INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGP_PAD61INPEN_Enum; + +/* ============================================= GPIO PADREGP PAD61PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGP_PAD61PULL */ + GPIO_PADREGP_PAD61PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGP_PAD61PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGP_PAD61PULL_Enum; + +/* ============================================ GPIO PADREGP PAD60FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGP_PAD60FNCSEL */ + GPIO_PADREGP_PAD60FNCSEL_MSPI1_9 = 0, /*!< MSPI1_9 : Configure as the MSPI1 9 signal */ + GPIO_PADREGP_PAD60FNCSEL_NCE60 = 1, /*!< NCE60 : IOM/MSPI nCE group 60 */ + GPIO_PADREGP_PAD60FNCSEL_CT10 = 2, /*!< CT10 : CTIMER connection 10 */ + GPIO_PADREGP_PAD60FNCSEL_GPIO60 = 3, /*!< GPIO60 : Configure as GPIO60 */ +} GPIO_PADREGP_PAD60FNCSEL_Enum; + +/* ============================================ GPIO PADREGP PAD60STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGP_PAD60STRNG */ + GPIO_PADREGP_PAD60STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGP_PAD60STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGP_PAD60STRNG_Enum; + +/* ============================================ GPIO PADREGP PAD60INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGP_PAD60INPEN */ + GPIO_PADREGP_PAD60INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGP_PAD60INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGP_PAD60INPEN_Enum; + +/* ============================================= GPIO PADREGP PAD60PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGP_PAD60PULL */ + GPIO_PADREGP_PAD60PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGP_PAD60PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGP_PAD60PULL_Enum; + +/* ======================================================== PADREGQ ======================================================== */ +/* =========================================== GPIO PADREGQ PAD67FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGQ_PAD67FNCSEL */ + GPIO_PADREGQ_PAD67FNCSEL_MSPI2_3 = 0, /*!< MSPI2_3 : Configure as the MSPI2 3 signal */ + GPIO_PADREGQ_PAD67FNCSEL_NCE67 = 1, /*!< NCE67 : IOM/MSPI nCE group 67 */ + GPIO_PADREGQ_PAD67FNCSEL_CT17 = 2, /*!< CT17 : CTIMER connection 17 */ + GPIO_PADREGQ_PAD67FNCSEL_GPIO67 = 3, /*!< GPIO67 : Configure as GPIO67 */ +} GPIO_PADREGQ_PAD67FNCSEL_Enum; + +/* =========================================== GPIO PADREGQ PAD67STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD67STRNG */ + GPIO_PADREGQ_PAD67STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGQ_PAD67STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGQ_PAD67STRNG_Enum; + +/* =========================================== GPIO PADREGQ PAD67INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD67INPEN */ + GPIO_PADREGQ_PAD67INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGQ_PAD67INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGQ_PAD67INPEN_Enum; + +/* ============================================ GPIO PADREGQ PAD67PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD67PULL */ + GPIO_PADREGQ_PAD67PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGQ_PAD67PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGQ_PAD67PULL_Enum; + +/* =========================================== GPIO PADREGQ PAD66FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGQ_PAD66FNCSEL */ + GPIO_PADREGQ_PAD66FNCSEL_MSPI2_2 = 0, /*!< MSPI2_2 : Configure as the MSPI2 2 signal */ + GPIO_PADREGQ_PAD66FNCSEL_NCE66 = 1, /*!< NCE66 : IOM/MSPI nCE group 66 */ + GPIO_PADREGQ_PAD66FNCSEL_CT16 = 2, /*!< CT16 : CTIMER connection 16 */ + GPIO_PADREGQ_PAD66FNCSEL_GPIO66 = 3, /*!< GPIO66 : Configure as GPIO66 */ +} GPIO_PADREGQ_PAD66FNCSEL_Enum; + +/* =========================================== GPIO PADREGQ PAD66STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD66STRNG */ + GPIO_PADREGQ_PAD66STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGQ_PAD66STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGQ_PAD66STRNG_Enum; + +/* =========================================== GPIO PADREGQ PAD66INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD66INPEN */ + GPIO_PADREGQ_PAD66INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGQ_PAD66INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGQ_PAD66INPEN_Enum; + +/* ============================================ GPIO PADREGQ PAD66PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD66PULL */ + GPIO_PADREGQ_PAD66PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGQ_PAD66PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGQ_PAD66PULL_Enum; + +/* =========================================== GPIO PADREGQ PAD65FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGQ_PAD65FNCSEL */ + GPIO_PADREGQ_PAD65FNCSEL_MSPI2_1 = 0, /*!< MSPI2_1 : Configure as the MSPI2 1 signal */ + GPIO_PADREGQ_PAD65FNCSEL_NCE65 = 1, /*!< NCE65 : IOM/MSPI nCE group 65 */ + GPIO_PADREGQ_PAD65FNCSEL_CT15 = 2, /*!< CT15 : CTIMER connection 15 */ + GPIO_PADREGQ_PAD65FNCSEL_GPIO65 = 3, /*!< GPIO65 : Configure as GPIO65 */ +} GPIO_PADREGQ_PAD65FNCSEL_Enum; + +/* =========================================== GPIO PADREGQ PAD65STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD65STRNG */ + GPIO_PADREGQ_PAD65STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGQ_PAD65STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGQ_PAD65STRNG_Enum; + +/* ============================================ GPIO PADREGQ PAD65INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGQ_PAD65INPEN */ + GPIO_PADREGQ_PAD65INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGQ_PAD65INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGQ_PAD65INPEN_Enum; + +/* ============================================= GPIO PADREGQ PAD65PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGQ_PAD65PULL */ + GPIO_PADREGQ_PAD65PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGQ_PAD65PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGQ_PAD65PULL_Enum; + +/* ============================================ GPIO PADREGQ PAD64FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGQ_PAD64FNCSEL */ + GPIO_PADREGQ_PAD64FNCSEL_MSPI2_0 = 0, /*!< MSPI2_0 : Configure as the MSPI2 0 signal */ + GPIO_PADREGQ_PAD64FNCSEL_NCE64 = 1, /*!< NCE64 : IOM/MSPI nCE group 64 */ + GPIO_PADREGQ_PAD64FNCSEL_CT14 = 2, /*!< CT14 : CTIMER connection 14 */ + GPIO_PADREGQ_PAD64FNCSEL_GPIO64 = 3, /*!< GPIO64 : Configure as GPIO64 */ +} GPIO_PADREGQ_PAD64FNCSEL_Enum; + +/* ============================================ GPIO PADREGQ PAD64STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGQ_PAD64STRNG */ + GPIO_PADREGQ_PAD64STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGQ_PAD64STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGQ_PAD64STRNG_Enum; + +/* ============================================ GPIO PADREGQ PAD64INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGQ_PAD64INPEN */ + GPIO_PADREGQ_PAD64INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGQ_PAD64INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGQ_PAD64INPEN_Enum; + +/* ============================================= GPIO PADREGQ PAD64PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGQ_PAD64PULL */ + GPIO_PADREGQ_PAD64PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGQ_PAD64PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGQ_PAD64PULL_Enum; + +/* ======================================================== PADREGR ======================================================== */ +/* =========================================== GPIO PADREGR PAD71FNCSEL [27..29] =========================================== */ +typedef enum { /*!< GPIO_PADREGR_PAD71FNCSEL */ + GPIO_PADREGR_PAD71FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGR_PAD71FNCSEL_NCE71 = 1, /*!< NCE71 : IOM/MSPI nCE group 71 */ + GPIO_PADREGR_PAD71FNCSEL_CT21 = 2, /*!< CT21 : CTIMER connection 21 */ + GPIO_PADREGR_PAD71FNCSEL_GPIO71 = 3, /*!< GPIO71 : Configure as GPIO71 */ + GPIO_PADREGR_PAD71FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGR_PAD71FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGR_PAD71FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGR_PAD71FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGR_PAD71FNCSEL_Enum; + +/* =========================================== GPIO PADREGR PAD71STRNG [26..26] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD71STRNG */ + GPIO_PADREGR_PAD71STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGR_PAD71STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGR_PAD71STRNG_Enum; + +/* =========================================== GPIO PADREGR PAD71INPEN [25..25] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD71INPEN */ + GPIO_PADREGR_PAD71INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGR_PAD71INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGR_PAD71INPEN_Enum; + +/* ============================================ GPIO PADREGR PAD71PULL [24..24] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD71PULL */ + GPIO_PADREGR_PAD71PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGR_PAD71PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGR_PAD71PULL_Enum; + +/* =========================================== GPIO PADREGR PAD70FNCSEL [19..21] =========================================== */ +typedef enum { /*!< GPIO_PADREGR_PAD70FNCSEL */ + GPIO_PADREGR_PAD70FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGR_PAD70FNCSEL_NCE70 = 1, /*!< NCE70 : IOM/MSPI nCE group 70 */ + GPIO_PADREGR_PAD70FNCSEL_CT20 = 2, /*!< CT20 : CTIMER connection 20 */ + GPIO_PADREGR_PAD70FNCSEL_GPIO70 = 3, /*!< GPIO70 : Configure as GPIO70 */ + GPIO_PADREGR_PAD70FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGR_PAD70FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGR_PAD70FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGR_PAD70FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGR_PAD70FNCSEL_Enum; + +/* =========================================== GPIO PADREGR PAD70STRNG [18..18] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD70STRNG */ + GPIO_PADREGR_PAD70STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGR_PAD70STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGR_PAD70STRNG_Enum; + +/* =========================================== GPIO PADREGR PAD70INPEN [17..17] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD70INPEN */ + GPIO_PADREGR_PAD70INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGR_PAD70INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGR_PAD70INPEN_Enum; + +/* ============================================ GPIO PADREGR PAD70PULL [16..16] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD70PULL */ + GPIO_PADREGR_PAD70PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGR_PAD70PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGR_PAD70PULL_Enum; + +/* =========================================== GPIO PADREGR PAD69FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGR_PAD69FNCSEL */ + GPIO_PADREGR_PAD69FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGR_PAD69FNCSEL_NCE69 = 1, /*!< NCE69 : IOM/MSPI nCE group 69 */ + GPIO_PADREGR_PAD69FNCSEL_CT19 = 2, /*!< CT19 : CTIMER connection 19 */ + GPIO_PADREGR_PAD69FNCSEL_GPIO69 = 3, /*!< GPIO69 : Configure as GPIO69 */ + GPIO_PADREGR_PAD69FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGR_PAD69FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGR_PAD69FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGR_PAD69FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGR_PAD69FNCSEL_Enum; + +/* =========================================== GPIO PADREGR PAD69STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD69STRNG */ + GPIO_PADREGR_PAD69STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGR_PAD69STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGR_PAD69STRNG_Enum; + +/* ============================================ GPIO PADREGR PAD69INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGR_PAD69INPEN */ + GPIO_PADREGR_PAD69INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGR_PAD69INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGR_PAD69INPEN_Enum; + +/* ============================================= GPIO PADREGR PAD69PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGR_PAD69PULL */ + GPIO_PADREGR_PAD69PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGR_PAD69PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGR_PAD69PULL_Enum; + +/* ============================================ GPIO PADREGR PAD68FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGR_PAD68FNCSEL */ + GPIO_PADREGR_PAD68FNCSEL_MSPI2_4 = 0, /*!< MSPI2_4 : Configure as the MSPI2 4 signal */ + GPIO_PADREGR_PAD68FNCSEL_NCE68 = 1, /*!< NCE68 : IOM/MSPI nCE group 68 */ + GPIO_PADREGR_PAD68FNCSEL_CT18 = 2, /*!< CT18 : CTIMER connection 18 */ + GPIO_PADREGR_PAD68FNCSEL_GPIO68 = 3, /*!< GPIO68 : Configure as GPIO68 */ +} GPIO_PADREGR_PAD68FNCSEL_Enum; + +/* ============================================ GPIO PADREGR PAD68STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGR_PAD68STRNG */ + GPIO_PADREGR_PAD68STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGR_PAD68STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGR_PAD68STRNG_Enum; + +/* ============================================ GPIO PADREGR PAD68INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGR_PAD68INPEN */ + GPIO_PADREGR_PAD68INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGR_PAD68INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGR_PAD68INPEN_Enum; + +/* ============================================= GPIO PADREGR PAD68PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGR_PAD68PULL */ + GPIO_PADREGR_PAD68PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGR_PAD68PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGR_PAD68PULL_Enum; + +/* ======================================================== PADREGS ======================================================== */ +/* =========================================== GPIO PADREGS PAD73FNCSEL [11..13] =========================================== */ +typedef enum { /*!< GPIO_PADREGS_PAD73FNCSEL */ + GPIO_PADREGS_PAD73FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGS_PAD73FNCSEL_NCE73 = 1, /*!< NCE73 : IOM/MSPI nCE group 73 */ + GPIO_PADREGS_PAD73FNCSEL_CT23 = 2, /*!< CT23 : CTIMER connection 23 */ + GPIO_PADREGS_PAD73FNCSEL_GPIO73 = 3, /*!< GPIO73 : Configure as GPIO73 */ + GPIO_PADREGS_PAD73FNCSEL_UA0CTS = 4, /*!< UA0CTS : Configure as the UART0 CTS input */ + GPIO_PADREGS_PAD73FNCSEL_UA0RTS = 5, /*!< UA0RTS : Configure as the UART0 RTS output */ + GPIO_PADREGS_PAD73FNCSEL_UA1CTS = 6, /*!< UA1CTS : Configure as the UART1 CTS input */ + GPIO_PADREGS_PAD73FNCSEL_UA1RTS = 7, /*!< UA1RTS : Configure as the UART1 RTS output */ +} GPIO_PADREGS_PAD73FNCSEL_Enum; + +/* =========================================== GPIO PADREGS PAD73STRNG [10..10] ============================================ */ +typedef enum { /*!< GPIO_PADREGS_PAD73STRNG */ + GPIO_PADREGS_PAD73STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGS_PAD73STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGS_PAD73STRNG_Enum; + +/* ============================================ GPIO PADREGS PAD73INPEN [9..9] ============================================= */ +typedef enum { /*!< GPIO_PADREGS_PAD73INPEN */ + GPIO_PADREGS_PAD73INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGS_PAD73INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGS_PAD73INPEN_Enum; + +/* ============================================= GPIO PADREGS PAD73PULL [8..8] ============================================= */ +typedef enum { /*!< GPIO_PADREGS_PAD73PULL */ + GPIO_PADREGS_PAD73PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGS_PAD73PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGS_PAD73PULL_Enum; + +/* ============================================ GPIO PADREGS PAD72FNCSEL [3..5] ============================================ */ +typedef enum { /*!< GPIO_PADREGS_PAD72FNCSEL */ + GPIO_PADREGS_PAD72FNCSEL_SWO = 0, /*!< SWO : Configure as the SWO output */ + GPIO_PADREGS_PAD72FNCSEL_NCE72 = 1, /*!< NCE72 : IOM/MSPI nCE group 72 */ + GPIO_PADREGS_PAD72FNCSEL_CT22 = 2, /*!< CT22 : CTIMER connection 22 */ + GPIO_PADREGS_PAD72FNCSEL_GPIO72 = 3, /*!< GPIO72 : Configure as GPIO72 */ + GPIO_PADREGS_PAD72FNCSEL_UART0TX = 4, /*!< UART0TX : Configure as the UART0 TX output */ + GPIO_PADREGS_PAD72FNCSEL_UART0RX = 5, /*!< UART0RX : Configure as the UART0 RX input */ + GPIO_PADREGS_PAD72FNCSEL_UART1TX = 6, /*!< UART1TX : Configure as the UART1 TX output */ + GPIO_PADREGS_PAD72FNCSEL_UART1RX = 7, /*!< UART1RX : Configure as the UART1 RX input */ +} GPIO_PADREGS_PAD72FNCSEL_Enum; + +/* ============================================ GPIO PADREGS PAD72STRNG [2..2] ============================================= */ +typedef enum { /*!< GPIO_PADREGS_PAD72STRNG */ + GPIO_PADREGS_PAD72STRNG_LOW = 0, /*!< LOW : Low drive strength */ + GPIO_PADREGS_PAD72STRNG_HIGH = 1, /*!< HIGH : High drive strength */ +} GPIO_PADREGS_PAD72STRNG_Enum; + +/* ============================================ GPIO PADREGS PAD72INPEN [1..1] ============================================= */ +typedef enum { /*!< GPIO_PADREGS_PAD72INPEN */ + GPIO_PADREGS_PAD72INPEN_DIS = 0, /*!< DIS : Pad input disabled */ + GPIO_PADREGS_PAD72INPEN_EN = 1, /*!< EN : Pad input enabled */ +} GPIO_PADREGS_PAD72INPEN_Enum; + +/* ============================================= GPIO PADREGS PAD72PULL [0..0] ============================================= */ +typedef enum { /*!< GPIO_PADREGS_PAD72PULL */ + GPIO_PADREGS_PAD72PULL_DIS = 0, /*!< DIS : Pullup disabled */ + GPIO_PADREGS_PAD72PULL_EN = 1, /*!< EN : Pullup enabled */ +} GPIO_PADREGS_PAD72PULL_Enum; + +/* ========================================================= CFGA ========================================================== */ +/* ============================================= GPIO CFGA GPIO7INTD [31..31] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO7INTD */ + GPIO_CFGA_GPIO7INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD7FNCSEL = NCE7 - nCE polarity active + low */ + GPIO_CFGA_GPIO7INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD7FNCSEL = NCE7 - nCE polarity active + high */ +} GPIO_CFGA_GPIO7INTD_Enum; + +/* ============================================ GPIO CFGA GPIO7OUTCFG [29..30] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO7OUTCFG */ + GPIO_CFGA_GPIO7OUTCFG_DIS = 0, /*!< DIS : Applies when PAD7FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO7OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD7FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO7OUTCFG_OD = 2, /*!< OD : Applies when PAD7FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO7OUTCFG_TS = 3, /*!< TS : Applies when PAD7FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO7OUTCFG_Enum; + +/* ============================================= GPIO CFGA GPIO7INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO7INCFG */ + GPIO_CFGA_GPIO7INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO7INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO7INCFG_Enum; + +/* ============================================= GPIO CFGA GPIO6INTD [27..27] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO6INTD */ + GPIO_CFGA_GPIO6INTD_INTDIS = 0, /*!< INTDIS : Applies when GPIO6INCFG = 1 - No interrupt on GPIO + transition */ + GPIO_CFGA_GPIO6INTD_INTBOTH = 1, /*!< INTBOTH : Applies when GPIO6INCFG = 1 - Interrupt on either + low to high or high to low GPIO transition */ +} GPIO_CFGA_GPIO6INTD_Enum; + +/* ============================================ GPIO CFGA GPIO6OUTCFG [25..26] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO6OUTCFG */ + GPIO_CFGA_GPIO6OUTCFG_DIS = 0, /*!< DIS : Applies when PAD6FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO6OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD6FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO6OUTCFG_OD = 2, /*!< OD : Applies when PAD6FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO6OUTCFG_TS = 3, /*!< TS : Applies when PAD6FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO6OUTCFG_Enum; + +/* ============================================= GPIO CFGA GPIO6INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO6INCFG */ + GPIO_CFGA_GPIO6INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO6INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO6INCFG_Enum; + +/* ============================================= GPIO CFGA GPIO5INTD [23..23] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO5INTD */ + GPIO_CFGA_GPIO5INTD_INTDIS = 0, /*!< INTDIS : Applies when GPIO5INCFG = 1 - No interrupt on GPIO + transition */ + GPIO_CFGA_GPIO5INTD_INTBOTH = 1, /*!< INTBOTH : Applies when GPIO5INCFG = 1 - Interrupt on either + low to high or high to low GPIO transition */ +} GPIO_CFGA_GPIO5INTD_Enum; + +/* ============================================ GPIO CFGA GPIO5OUTCFG [21..22] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO5OUTCFG */ + GPIO_CFGA_GPIO5OUTCFG_DIS = 0, /*!< DIS : Applies when PAD5FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO5OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD5FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO5OUTCFG_OD = 2, /*!< OD : Applies when PAD5FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO5OUTCFG_TS = 3, /*!< TS : Applies when PAD5FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO5OUTCFG_Enum; + +/* ============================================= GPIO CFGA GPIO5INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO5INCFG */ + GPIO_CFGA_GPIO5INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO5INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO5INCFG_Enum; + +/* ============================================= GPIO CFGA GPIO4INTD [19..19] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO4INTD */ + GPIO_CFGA_GPIO4INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD4FNCSEL = NCE4 - nCE polarity active + low */ + GPIO_CFGA_GPIO4INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD4FNCSEL = NCE4 - nCE polarity active + high */ +} GPIO_CFGA_GPIO4INTD_Enum; + +/* ============================================ GPIO CFGA GPIO4OUTCFG [17..18] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO4OUTCFG */ + GPIO_CFGA_GPIO4OUTCFG_DIS = 0, /*!< DIS : Applies when PAD4FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO4OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD4FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO4OUTCFG_OD = 2, /*!< OD : Applies when PAD4FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO4OUTCFG_TS = 3, /*!< TS : Applies when PAD4FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO4OUTCFG_Enum; + +/* ============================================= GPIO CFGA GPIO4INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO4INCFG */ + GPIO_CFGA_GPIO4INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO4INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO4INCFG_Enum; + +/* ============================================= GPIO CFGA GPIO3INTD [15..15] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO3INTD */ + GPIO_CFGA_GPIO3INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD3FNCSEL = NCE3 - nCE polarity active + low */ + GPIO_CFGA_GPIO3INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD3FNCSEL = NCE3 - nCE polarity active + high */ +} GPIO_CFGA_GPIO3INTD_Enum; + +/* ============================================ GPIO CFGA GPIO3OUTCFG [13..14] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO3OUTCFG */ + GPIO_CFGA_GPIO3OUTCFG_DIS = 0, /*!< DIS : Applies when PAD3FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO3OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD3FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO3OUTCFG_OD = 2, /*!< OD : Applies when PAD3FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO3OUTCFG_TS = 3, /*!< TS : Applies when PAD3FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO3OUTCFG_Enum; + +/* ============================================= GPIO CFGA GPIO3INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO3INCFG */ + GPIO_CFGA_GPIO3INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO3INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO3INCFG_Enum; + +/* ============================================= GPIO CFGA GPIO2INTD [11..11] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO2INTD */ + GPIO_CFGA_GPIO2INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD2FNCSEL = NCE2 - nCE polarity active + low */ + GPIO_CFGA_GPIO2INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD2FNCSEL = NCE2 - nCE polarity active + high */ +} GPIO_CFGA_GPIO2INTD_Enum; + +/* ============================================= GPIO CFGA GPIO2OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGA_GPIO2OUTCFG */ + GPIO_CFGA_GPIO2OUTCFG_DIS = 0, /*!< DIS : Applies when PAD2FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO2OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD2FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO2OUTCFG_OD = 2, /*!< OD : Applies when PAD2FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO2OUTCFG_TS = 3, /*!< TS : Applies when PAD2FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO2OUTCFG_Enum; + +/* ============================================== GPIO CFGA GPIO2INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO2INCFG */ + GPIO_CFGA_GPIO2INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO2INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO2INCFG_Enum; + +/* ============================================== GPIO CFGA GPIO1INTD [7..7] =============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO1INTD */ + GPIO_CFGA_GPIO1INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD1FNCSEL = NCE1 - nCE polarity active + low */ + GPIO_CFGA_GPIO1INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD1FNCSEL = NCE1 - nCE polarity active + high */ +} GPIO_CFGA_GPIO1INTD_Enum; + +/* ============================================= GPIO CFGA GPIO1OUTCFG [5..6] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO1OUTCFG */ + GPIO_CFGA_GPIO1OUTCFG_DIS = 0, /*!< DIS : Applies when PAD1FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO1OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD1FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO1OUTCFG_OD = 2, /*!< OD : Applies when PAD1FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO1OUTCFG_TS = 3, /*!< TS : Applies when PAD1FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO1OUTCFG_Enum; + +/* ============================================== GPIO CFGA GPIO1INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO1INCFG */ + GPIO_CFGA_GPIO1INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO1INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO1INCFG_Enum; + +/* ============================================== GPIO CFGA GPIO0INTD [3..3] =============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO0INTD */ + GPIO_CFGA_GPIO0INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD0FNCSEL = NCE0 - nCE polarity active + low */ + GPIO_CFGA_GPIO0INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD0FNCSEL = NCE0 - nCE polarity active + high */ +} GPIO_CFGA_GPIO0INTD_Enum; + +/* ============================================= GPIO CFGA GPIO0OUTCFG [1..2] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO0OUTCFG */ + GPIO_CFGA_GPIO0OUTCFG_DIS = 0, /*!< DIS : Applies when PAD0FNCSEL = GPIO - Output disabled */ + GPIO_CFGA_GPIO0OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD0FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGA_GPIO0OUTCFG_OD = 2, /*!< OD : Applies when PAD0FNCSEL = GPIO - Output is open drain */ + GPIO_CFGA_GPIO0OUTCFG_TS = 3, /*!< TS : Applies when PAD0FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGA_GPIO0OUTCFG_Enum; + +/* ============================================== GPIO CFGA GPIO0INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGA_GPIO0INCFG */ + GPIO_CFGA_GPIO0INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGA_GPIO0INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGA_GPIO0INCFG_Enum; + +/* ========================================================= CFGB ========================================================== */ +/* ============================================= GPIO CFGB GPIO15INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO15INTD */ + GPIO_CFGB_GPIO15INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD15FNCSEL = NCE15 - nCE polarity active + low */ + GPIO_CFGB_GPIO15INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD15FNCSEL = NCE15 - nCE polarity active + high */ +} GPIO_CFGB_GPIO15INTD_Enum; + +/* ============================================ GPIO CFGB GPIO15OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGB_GPIO15OUTCFG */ + GPIO_CFGB_GPIO15OUTCFG_DIS = 0, /*!< DIS : Applies when PAD15FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO15OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD15FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO15OUTCFG_OD = 2, /*!< OD : Applies when PAD15FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO15OUTCFG_TS = 3, /*!< TS : Applies when PAD15FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO15OUTCFG_Enum; + +/* ============================================ GPIO CFGB GPIO15INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO15INCFG */ + GPIO_CFGB_GPIO15INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO15INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO15INCFG_Enum; + +/* ============================================= GPIO CFGB GPIO14INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO14INTD */ + GPIO_CFGB_GPIO14INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD14FNCSEL = NCE14 - nCE polarity active + low */ + GPIO_CFGB_GPIO14INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD14FNCSEL = NCE14 - nCE polarity active + high */ +} GPIO_CFGB_GPIO14INTD_Enum; + +/* ============================================ GPIO CFGB GPIO14OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGB_GPIO14OUTCFG */ + GPIO_CFGB_GPIO14OUTCFG_DIS = 0, /*!< DIS : Applies when PAD14FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO14OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD14FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO14OUTCFG_OD = 2, /*!< OD : Applies when PAD14FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO14OUTCFG_TS = 3, /*!< TS : Applies when PAD14FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO14OUTCFG_Enum; + +/* ============================================ GPIO CFGB GPIO14INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO14INCFG */ + GPIO_CFGB_GPIO14INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO14INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO14INCFG_Enum; + +/* ============================================= GPIO CFGB GPIO13INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO13INTD */ + GPIO_CFGB_GPIO13INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD13FNCSEL = NCE13 - nCE polarity active + low */ + GPIO_CFGB_GPIO13INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD13FNCSEL = NCE13 - nCE polarity active + high */ +} GPIO_CFGB_GPIO13INTD_Enum; + +/* ============================================ GPIO CFGB GPIO13OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGB_GPIO13OUTCFG */ + GPIO_CFGB_GPIO13OUTCFG_DIS = 0, /*!< DIS : Applies when PAD13FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO13OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD13FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO13OUTCFG_OD = 2, /*!< OD : Applies when PAD13FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO13OUTCFG_TS = 3, /*!< TS : Applies when PAD13FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO13OUTCFG_Enum; + +/* ============================================ GPIO CFGB GPIO13INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO13INCFG */ + GPIO_CFGB_GPIO13INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO13INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO13INCFG_Enum; + +/* ============================================= GPIO CFGB GPIO12INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO12INTD */ + GPIO_CFGB_GPIO12INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD12FNCSEL = NCE12 - nCE polarity active + low */ + GPIO_CFGB_GPIO12INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD12FNCSEL = NCE12 - nCE polarity active + high */ +} GPIO_CFGB_GPIO12INTD_Enum; + +/* ============================================ GPIO CFGB GPIO12OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGB_GPIO12OUTCFG */ + GPIO_CFGB_GPIO12OUTCFG_DIS = 0, /*!< DIS : Applies when PAD12FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO12OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD12FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO12OUTCFG_OD = 2, /*!< OD : Applies when PAD12FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO12OUTCFG_TS = 3, /*!< TS : Applies when PAD12FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO12OUTCFG_Enum; + +/* ============================================ GPIO CFGB GPIO12INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO12INCFG */ + GPIO_CFGB_GPIO12INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO12INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO12INCFG_Enum; + +/* ============================================= GPIO CFGB GPIO11INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO11INTD */ + GPIO_CFGB_GPIO11INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD11FNCSEL = NCE11 - nCE polarity active + low */ + GPIO_CFGB_GPIO11INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD11FNCSEL = NCE11 - nCE polarity active + high */ +} GPIO_CFGB_GPIO11INTD_Enum; + +/* ============================================ GPIO CFGB GPIO11OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGB_GPIO11OUTCFG */ + GPIO_CFGB_GPIO11OUTCFG_DIS = 0, /*!< DIS : Applies when PAD11FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO11OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD11FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO11OUTCFG_OD = 2, /*!< OD : Applies when PAD11FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO11OUTCFG_TS = 3, /*!< TS : Applies when PAD11FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO11OUTCFG_Enum; + +/* ============================================ GPIO CFGB GPIO11INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO11INCFG */ + GPIO_CFGB_GPIO11INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO11INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO11INCFG_Enum; + +/* ============================================= GPIO CFGB GPIO10INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO10INTD */ + GPIO_CFGB_GPIO10INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD10FNCSEL = NCE10 - nCE polarity active + low */ + GPIO_CFGB_GPIO10INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD10FNCSEL = NCE10 - nCE polarity active + high */ +} GPIO_CFGB_GPIO10INTD_Enum; + +/* ============================================ GPIO CFGB GPIO10OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGB_GPIO10OUTCFG */ + GPIO_CFGB_GPIO10OUTCFG_DIS = 0, /*!< DIS : Applies when PAD10FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO10OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD10FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO10OUTCFG_OD = 2, /*!< OD : Applies when PAD10FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO10OUTCFG_TS = 3, /*!< TS : Applies when PAD10FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO10OUTCFG_Enum; + +/* ============================================= GPIO CFGB GPIO10INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO10INCFG */ + GPIO_CFGB_GPIO10INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO10INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO10INCFG_Enum; + +/* ============================================== GPIO CFGB GPIO9INTD [7..7] =============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO9INTD */ + GPIO_CFGB_GPIO9INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD9FNCSEL = NCE9 - nCE polarity active + low */ + GPIO_CFGB_GPIO9INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD9FNCSEL = NCE9 - nCE polarity active + high */ +} GPIO_CFGB_GPIO9INTD_Enum; + +/* ============================================= GPIO CFGB GPIO9OUTCFG [5..6] ============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO9OUTCFG */ + GPIO_CFGB_GPIO9OUTCFG_DIS = 0, /*!< DIS : Applies when PAD9FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO9OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD9FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO9OUTCFG_OD = 2, /*!< OD : Applies when PAD9FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO9OUTCFG_TS = 3, /*!< TS : Applies when PAD9FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO9OUTCFG_Enum; + +/* ============================================== GPIO CFGB GPIO9INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO9INCFG */ + GPIO_CFGB_GPIO9INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO9INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO9INCFG_Enum; + +/* ============================================== GPIO CFGB GPIO8INTD [3..3] =============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO8INTD */ + GPIO_CFGB_GPIO8INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD8FNCSEL = NCE8 - nCE polarity active + low */ + GPIO_CFGB_GPIO8INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD8FNCSEL = NCE8 - nCE polarity active + high */ +} GPIO_CFGB_GPIO8INTD_Enum; + +/* ============================================= GPIO CFGB GPIO8OUTCFG [1..2] ============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO8OUTCFG */ + GPIO_CFGB_GPIO8OUTCFG_DIS = 0, /*!< DIS : Applies when PAD8FNCSEL = GPIO - Output disabled */ + GPIO_CFGB_GPIO8OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD8FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGB_GPIO8OUTCFG_OD = 2, /*!< OD : Applies when PAD8FNCSEL = GPIO - Output is open drain */ + GPIO_CFGB_GPIO8OUTCFG_TS = 3, /*!< TS : Applies when PAD8FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGB_GPIO8OUTCFG_Enum; + +/* ============================================== GPIO CFGB GPIO8INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGB_GPIO8INCFG */ + GPIO_CFGB_GPIO8INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGB_GPIO8INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGB_GPIO8INCFG_Enum; + +/* ========================================================= CFGC ========================================================== */ +/* ============================================= GPIO CFGC GPIO23INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO23INTD */ + GPIO_CFGC_GPIO23INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD23FNCSEL = NCE23 - nCE polarity active + low */ + GPIO_CFGC_GPIO23INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD23FNCSEL = NCE23 - nCE polarity active + high */ +} GPIO_CFGC_GPIO23INTD_Enum; + +/* ============================================ GPIO CFGC GPIO23OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGC_GPIO23OUTCFG */ + GPIO_CFGC_GPIO23OUTCFG_DIS = 0, /*!< DIS : Applies when PAD23FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO23OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD23FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO23OUTCFG_OD = 2, /*!< OD : Applies when PAD23FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO23OUTCFG_TS = 3, /*!< TS : Applies when PAD23FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO23OUTCFG_Enum; + +/* ============================================ GPIO CFGC GPIO23INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO23INCFG */ + GPIO_CFGC_GPIO23INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO23INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO23INCFG_Enum; + +/* ============================================= GPIO CFGC GPIO22INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO22INTD */ + GPIO_CFGC_GPIO22INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD22FNCSEL = NCE22 - nCE polarity active + low */ + GPIO_CFGC_GPIO22INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD22FNCSEL = NCE22 - nCE polarity active + high */ +} GPIO_CFGC_GPIO22INTD_Enum; + +/* ============================================ GPIO CFGC GPIO22OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGC_GPIO22OUTCFG */ + GPIO_CFGC_GPIO22OUTCFG_DIS = 0, /*!< DIS : Applies when PAD22FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO22OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD22FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO22OUTCFG_OD = 2, /*!< OD : Applies when PAD22FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO22OUTCFG_TS = 3, /*!< TS : Applies when PAD22FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO22OUTCFG_Enum; + +/* ============================================ GPIO CFGC GPIO22INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO22INCFG */ + GPIO_CFGC_GPIO22INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO22INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO22INCFG_Enum; + +/* ============================================= GPIO CFGC GPIO21INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO21INTD */ + GPIO_CFGC_GPIO21INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD21FNCSEL = NCE21 - nCE polarity active + low */ + GPIO_CFGC_GPIO21INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD21FNCSEL = NCE21 - nCE polarity active + high */ +} GPIO_CFGC_GPIO21INTD_Enum; + +/* ============================================ GPIO CFGC GPIO21OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGC_GPIO21OUTCFG */ + GPIO_CFGC_GPIO21OUTCFG_DIS = 0, /*!< DIS : Applies when PAD21FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO21OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD21FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO21OUTCFG_OD = 2, /*!< OD : Applies when PAD21FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO21OUTCFG_TS = 3, /*!< TS : Applies when PAD21FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO21OUTCFG_Enum; + +/* ============================================ GPIO CFGC GPIO21INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO21INCFG */ + GPIO_CFGC_GPIO21INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO21INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO21INCFG_Enum; + +/* ============================================= GPIO CFGC GPIO20INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO20INTD */ + GPIO_CFGC_GPIO20INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD20FNCSEL = NCE20 - nCE polarity active + low */ + GPIO_CFGC_GPIO20INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD20FNCSEL = NCE20 - nCE polarity active + high */ +} GPIO_CFGC_GPIO20INTD_Enum; + +/* ============================================ GPIO CFGC GPIO20OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGC_GPIO20OUTCFG */ + GPIO_CFGC_GPIO20OUTCFG_DIS = 0, /*!< DIS : Applies when PAD20FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO20OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD20FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO20OUTCFG_OD = 2, /*!< OD : Applies when PAD20FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO20OUTCFG_TS = 3, /*!< TS : Applies when PAD20FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO20OUTCFG_Enum; + +/* ============================================ GPIO CFGC GPIO20INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO20INCFG */ + GPIO_CFGC_GPIO20INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO20INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO20INCFG_Enum; + +/* ============================================= GPIO CFGC GPIO19INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO19INTD */ + GPIO_CFGC_GPIO19INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD19FNCSEL = NCE19 - nCE polarity active + low */ + GPIO_CFGC_GPIO19INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD19FNCSEL = NCE19 - nCE polarity active + high */ +} GPIO_CFGC_GPIO19INTD_Enum; + +/* ============================================ GPIO CFGC GPIO19OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGC_GPIO19OUTCFG */ + GPIO_CFGC_GPIO19OUTCFG_DIS = 0, /*!< DIS : Applies when PAD19FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO19OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD19FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO19OUTCFG_OD = 2, /*!< OD : Applies when PAD19FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO19OUTCFG_TS = 3, /*!< TS : Applies when PAD19FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO19OUTCFG_Enum; + +/* ============================================ GPIO CFGC GPIO19INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO19INCFG */ + GPIO_CFGC_GPIO19INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO19INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO19INCFG_Enum; + +/* ============================================= GPIO CFGC GPIO18INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO18INTD */ + GPIO_CFGC_GPIO18INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD18FNCSEL = NCE18 - nCE polarity active + low */ + GPIO_CFGC_GPIO18INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD18FNCSEL = NCE18 - nCE polarity active + high */ +} GPIO_CFGC_GPIO18INTD_Enum; + +/* ============================================ GPIO CFGC GPIO18OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO18OUTCFG */ + GPIO_CFGC_GPIO18OUTCFG_DIS = 0, /*!< DIS : Applies when PAD18FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO18OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD18FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO18OUTCFG_OD = 2, /*!< OD : Applies when PAD18FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO18OUTCFG_TS = 3, /*!< TS : Applies when PAD18FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO18OUTCFG_Enum; + +/* ============================================= GPIO CFGC GPIO18INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGC_GPIO18INCFG */ + GPIO_CFGC_GPIO18INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO18INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO18INCFG_Enum; + +/* ============================================== GPIO CFGC GPIO17INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGC_GPIO17INTD */ + GPIO_CFGC_GPIO17INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD17FNCSEL = NCE17 - nCE polarity active + low */ + GPIO_CFGC_GPIO17INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD17FNCSEL = NCE17 - nCE polarity active + high */ +} GPIO_CFGC_GPIO17INTD_Enum; + +/* ============================================= GPIO CFGC GPIO17OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO17OUTCFG */ + GPIO_CFGC_GPIO17OUTCFG_DIS = 0, /*!< DIS : Applies when PAD17FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO17OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD17FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO17OUTCFG_OD = 2, /*!< OD : Applies when PAD17FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO17OUTCFG_TS = 3, /*!< TS : Applies when PAD17FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO17OUTCFG_Enum; + +/* ============================================= GPIO CFGC GPIO17INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGC_GPIO17INCFG */ + GPIO_CFGC_GPIO17INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO17INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO17INCFG_Enum; + +/* ============================================== GPIO CFGC GPIO16INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGC_GPIO16INTD */ + GPIO_CFGC_GPIO16INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD16FNCSEL = NCE16 - nCE polarity active + low */ + GPIO_CFGC_GPIO16INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD16FNCSEL = NCE16 - nCE polarity active + high */ +} GPIO_CFGC_GPIO16INTD_Enum; + +/* ============================================= GPIO CFGC GPIO16OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGC_GPIO16OUTCFG */ + GPIO_CFGC_GPIO16OUTCFG_DIS = 0, /*!< DIS : Applies when PAD16FNCSEL = GPIO - Output disabled */ + GPIO_CFGC_GPIO16OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD16FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGC_GPIO16OUTCFG_OD = 2, /*!< OD : Applies when PAD16FNCSEL = GPIO - Output is open drain */ + GPIO_CFGC_GPIO16OUTCFG_TS = 3, /*!< TS : Applies when PAD16FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGC_GPIO16OUTCFG_Enum; + +/* ============================================= GPIO CFGC GPIO16INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGC_GPIO16INCFG */ + GPIO_CFGC_GPIO16INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGC_GPIO16INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGC_GPIO16INCFG_Enum; + +/* ========================================================= CFGD ========================================================== */ +/* ============================================= GPIO CFGD GPIO31INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO31INTD */ + GPIO_CFGD_GPIO31INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD31FNCSEL = NCE31 - nCE polarity active + low */ + GPIO_CFGD_GPIO31INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD31FNCSEL = NCE31 - nCE polarity active + high */ +} GPIO_CFGD_GPIO31INTD_Enum; + +/* ============================================ GPIO CFGD GPIO31OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGD_GPIO31OUTCFG */ + GPIO_CFGD_GPIO31OUTCFG_DIS = 0, /*!< DIS : Applies when PAD31FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO31OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD31FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO31OUTCFG_OD = 2, /*!< OD : Applies when PAD31FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO31OUTCFG_TS = 3, /*!< TS : Applies when PAD31FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO31OUTCFG_Enum; + +/* ============================================ GPIO CFGD GPIO31INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO31INCFG */ + GPIO_CFGD_GPIO31INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO31INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO31INCFG_Enum; + +/* ============================================= GPIO CFGD GPIO30INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO30INTD */ + GPIO_CFGD_GPIO30INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD30FNCSEL = NCE30 - nCE polarity active + low */ + GPIO_CFGD_GPIO30INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD30FNCSEL = NCE30 - nCE polarity active + high */ +} GPIO_CFGD_GPIO30INTD_Enum; + +/* ============================================ GPIO CFGD GPIO30OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGD_GPIO30OUTCFG */ + GPIO_CFGD_GPIO30OUTCFG_DIS = 0, /*!< DIS : Applies when PAD30FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO30OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD30FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO30OUTCFG_OD = 2, /*!< OD : Applies when PAD30FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO30OUTCFG_TS = 3, /*!< TS : Applies when PAD30FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO30OUTCFG_Enum; + +/* ============================================ GPIO CFGD GPIO30INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO30INCFG */ + GPIO_CFGD_GPIO30INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO30INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO30INCFG_Enum; + +/* ============================================= GPIO CFGD GPIO29INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO29INTD */ + GPIO_CFGD_GPIO29INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD29FNCSEL = NCE29 - nCE polarity active + low */ + GPIO_CFGD_GPIO29INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD29FNCSEL = NCE29 - nCE polarity active + high */ +} GPIO_CFGD_GPIO29INTD_Enum; + +/* ============================================ GPIO CFGD GPIO29OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGD_GPIO29OUTCFG */ + GPIO_CFGD_GPIO29OUTCFG_DIS = 0, /*!< DIS : Applies when PAD29FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO29OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD29FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO29OUTCFG_OD = 2, /*!< OD : Applies when PAD29FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO29OUTCFG_TS = 3, /*!< TS : Applies when PAD29FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO29OUTCFG_Enum; + +/* ============================================ GPIO CFGD GPIO29INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO29INCFG */ + GPIO_CFGD_GPIO29INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO29INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO29INCFG_Enum; + +/* ============================================= GPIO CFGD GPIO28INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO28INTD */ + GPIO_CFGD_GPIO28INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD28FNCSEL = NCE28 - nCE polarity active + low */ + GPIO_CFGD_GPIO28INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD28FNCSEL = NCE28 - nCE polarity active + high */ +} GPIO_CFGD_GPIO28INTD_Enum; + +/* ============================================ GPIO CFGD GPIO28OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGD_GPIO28OUTCFG */ + GPIO_CFGD_GPIO28OUTCFG_DIS = 0, /*!< DIS : Applies when PAD28FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO28OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD28FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO28OUTCFG_OD = 2, /*!< OD : Applies when PAD28FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO28OUTCFG_TS = 3, /*!< TS : Applies when PAD28FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO28OUTCFG_Enum; + +/* ============================================ GPIO CFGD GPIO28INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO28INCFG */ + GPIO_CFGD_GPIO28INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO28INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO28INCFG_Enum; + +/* ============================================= GPIO CFGD GPIO27INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO27INTD */ + GPIO_CFGD_GPIO27INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD27FNCSEL = NCE27 - nCE polarity active + low */ + GPIO_CFGD_GPIO27INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD27FNCSEL = NCE27 - nCE polarity active + high */ +} GPIO_CFGD_GPIO27INTD_Enum; + +/* ============================================ GPIO CFGD GPIO27OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGD_GPIO27OUTCFG */ + GPIO_CFGD_GPIO27OUTCFG_DIS = 0, /*!< DIS : Applies when PAD27FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO27OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD27FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO27OUTCFG_OD = 2, /*!< OD : Applies when PAD27FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO27OUTCFG_TS = 3, /*!< TS : Applies when PAD27FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO27OUTCFG_Enum; + +/* ============================================ GPIO CFGD GPIO27INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO27INCFG */ + GPIO_CFGD_GPIO27INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO27INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO27INCFG_Enum; + +/* ============================================= GPIO CFGD GPIO26INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO26INTD */ + GPIO_CFGD_GPIO26INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD26FNCSEL = NCE26 - nCE polarity active + low */ + GPIO_CFGD_GPIO26INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD26FNCSEL = NCE26 - nCE polarity active + high */ +} GPIO_CFGD_GPIO26INTD_Enum; + +/* ============================================ GPIO CFGD GPIO26OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO26OUTCFG */ + GPIO_CFGD_GPIO26OUTCFG_DIS = 0, /*!< DIS : Applies when PAD26FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO26OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD26FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO26OUTCFG_OD = 2, /*!< OD : Applies when PAD26FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO26OUTCFG_TS = 3, /*!< TS : Applies when PAD26FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO26OUTCFG_Enum; + +/* ============================================= GPIO CFGD GPIO26INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGD_GPIO26INCFG */ + GPIO_CFGD_GPIO26INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO26INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO26INCFG_Enum; + +/* ============================================== GPIO CFGD GPIO25INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGD_GPIO25INTD */ + GPIO_CFGD_GPIO25INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD25FNCSEL = NCE25 - nCE polarity active + low */ + GPIO_CFGD_GPIO25INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD25FNCSEL = NCE25 - nCE polarity active + high */ +} GPIO_CFGD_GPIO25INTD_Enum; + +/* ============================================= GPIO CFGD GPIO25OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO25OUTCFG */ + GPIO_CFGD_GPIO25OUTCFG_DIS = 0, /*!< DIS : Applies when PAD25FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO25OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD25FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO25OUTCFG_OD = 2, /*!< OD : Applies when PAD25FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO25OUTCFG_TS = 3, /*!< TS : Applies when PAD25FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO25OUTCFG_Enum; + +/* ============================================= GPIO CFGD GPIO25INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGD_GPIO25INCFG */ + GPIO_CFGD_GPIO25INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO25INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO25INCFG_Enum; + +/* ============================================== GPIO CFGD GPIO24INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGD_GPIO24INTD */ + GPIO_CFGD_GPIO24INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD24FNCSEL = NCE24 - nCE polarity active + low */ + GPIO_CFGD_GPIO24INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD24FNCSEL = NCE24 - nCE polarity active + high */ +} GPIO_CFGD_GPIO24INTD_Enum; + +/* ============================================= GPIO CFGD GPIO24OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGD_GPIO24OUTCFG */ + GPIO_CFGD_GPIO24OUTCFG_DIS = 0, /*!< DIS : Applies when PAD24FNCSEL = GPIO - Output disabled */ + GPIO_CFGD_GPIO24OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD24FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGD_GPIO24OUTCFG_OD = 2, /*!< OD : Applies when PAD24FNCSEL = GPIO - Output is open drain */ + GPIO_CFGD_GPIO24OUTCFG_TS = 3, /*!< TS : Applies when PAD24FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGD_GPIO24OUTCFG_Enum; + +/* ============================================= GPIO CFGD GPIO24INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGD_GPIO24INCFG */ + GPIO_CFGD_GPIO24INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGD_GPIO24INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGD_GPIO24INCFG_Enum; + +/* ========================================================= CFGE ========================================================== */ +/* ============================================= GPIO CFGE GPIO39INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO39INTD */ + GPIO_CFGE_GPIO39INTD_INTDIS = 0, /*!< INTDIS : Applies when GPIO39INCFG = 1 - No interrupt on GPIO + transition */ + GPIO_CFGE_GPIO39INTD_INTBOTH = 1, /*!< INTBOTH : Applies when GPIO39INCFG = 1 - Interrupt on either + low to high or high to low GPIO transition */ +} GPIO_CFGE_GPIO39INTD_Enum; + +/* ============================================ GPIO CFGE GPIO39OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGE_GPIO39OUTCFG */ + GPIO_CFGE_GPIO39OUTCFG_DIS = 0, /*!< DIS : Applies when PAD39FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO39OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD39FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO39OUTCFG_OD = 2, /*!< OD : Applies when PAD39FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO39OUTCFG_TS = 3, /*!< TS : Applies when PAD39FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO39OUTCFG_Enum; + +/* ============================================ GPIO CFGE GPIO39INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO39INCFG */ + GPIO_CFGE_GPIO39INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO39INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO39INCFG_Enum; + +/* ============================================= GPIO CFGE GPIO38INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO38INTD */ + GPIO_CFGE_GPIO38INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD38FNCSEL = NCE38 - nCE polarity active + low */ + GPIO_CFGE_GPIO38INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD38FNCSEL = NCE38 - nCE polarity active + high */ +} GPIO_CFGE_GPIO38INTD_Enum; + +/* ============================================ GPIO CFGE GPIO38OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGE_GPIO38OUTCFG */ + GPIO_CFGE_GPIO38OUTCFG_DIS = 0, /*!< DIS : Applies when PAD38FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO38OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD38FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO38OUTCFG_OD = 2, /*!< OD : Applies when PAD38FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO38OUTCFG_TS = 3, /*!< TS : Applies when PAD38FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO38OUTCFG_Enum; + +/* ============================================ GPIO CFGE GPIO38INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO38INCFG */ + GPIO_CFGE_GPIO38INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO38INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO38INCFG_Enum; + +/* ============================================= GPIO CFGE GPIO37INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO37INTD */ + GPIO_CFGE_GPIO37INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD37FNCSEL = NCE37 - nCE polarity active + low */ + GPIO_CFGE_GPIO37INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD37FNCSEL = NCE37 - nCE polarity active + high */ +} GPIO_CFGE_GPIO37INTD_Enum; + +/* ============================================ GPIO CFGE GPIO37OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGE_GPIO37OUTCFG */ + GPIO_CFGE_GPIO37OUTCFG_DIS = 0, /*!< DIS : Applies when PAD37FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO37OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD37FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO37OUTCFG_OD = 2, /*!< OD : Applies when PAD37FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO37OUTCFG_TS = 3, /*!< TS : Applies when PAD37FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO37OUTCFG_Enum; + +/* ============================================ GPIO CFGE GPIO37INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO37INCFG */ + GPIO_CFGE_GPIO37INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO37INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO37INCFG_Enum; + +/* ============================================= GPIO CFGE GPIO36INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO36INTD */ + GPIO_CFGE_GPIO36INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD36FNCSEL = NCE36 - nCE polarity active + low */ + GPIO_CFGE_GPIO36INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD36FNCSEL = NCE36 - nCE polarity active + high */ +} GPIO_CFGE_GPIO36INTD_Enum; + +/* ============================================ GPIO CFGE GPIO36OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGE_GPIO36OUTCFG */ + GPIO_CFGE_GPIO36OUTCFG_DIS = 0, /*!< DIS : Applies when PAD36FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO36OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD36FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO36OUTCFG_OD = 2, /*!< OD : Applies when PAD36FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO36OUTCFG_TS = 3, /*!< TS : Applies when PAD36FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO36OUTCFG_Enum; + +/* ============================================ GPIO CFGE GPIO36INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO36INCFG */ + GPIO_CFGE_GPIO36INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO36INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO36INCFG_Enum; + +/* ============================================= GPIO CFGE GPIO35INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO35INTD */ + GPIO_CFGE_GPIO35INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD35FNCSEL = NCE35 - nCE polarity active + low */ + GPIO_CFGE_GPIO35INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD35FNCSEL = NCE35 - nCE polarity active + high */ +} GPIO_CFGE_GPIO35INTD_Enum; + +/* ============================================ GPIO CFGE GPIO35OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGE_GPIO35OUTCFG */ + GPIO_CFGE_GPIO35OUTCFG_DIS = 0, /*!< DIS : Applies when PAD35FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO35OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD35FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO35OUTCFG_OD = 2, /*!< OD : Applies when PAD35FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO35OUTCFG_TS = 3, /*!< TS : Applies when PAD35FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO35OUTCFG_Enum; + +/* ============================================ GPIO CFGE GPIO35INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO35INCFG */ + GPIO_CFGE_GPIO35INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO35INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO35INCFG_Enum; + +/* ============================================= GPIO CFGE GPIO34INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO34INTD */ + GPIO_CFGE_GPIO34INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD34FNCSEL = NCE34 - nCE polarity active + low */ + GPIO_CFGE_GPIO34INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD34FNCSEL = NCE34 - nCE polarity active + high */ +} GPIO_CFGE_GPIO34INTD_Enum; + +/* ============================================ GPIO CFGE GPIO34OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO34OUTCFG */ + GPIO_CFGE_GPIO34OUTCFG_DIS = 0, /*!< DIS : Applies when PAD34FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO34OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD34FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO34OUTCFG_OD = 2, /*!< OD : Applies when PAD34FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO34OUTCFG_TS = 3, /*!< TS : Applies when PAD34FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO34OUTCFG_Enum; + +/* ============================================= GPIO CFGE GPIO34INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGE_GPIO34INCFG */ + GPIO_CFGE_GPIO34INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO34INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO34INCFG_Enum; + +/* ============================================== GPIO CFGE GPIO33INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGE_GPIO33INTD */ + GPIO_CFGE_GPIO33INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD33FNCSEL = NCE33 - nCE polarity active + low */ + GPIO_CFGE_GPIO33INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD33FNCSEL = NCE33 - nCE polarity active + high */ +} GPIO_CFGE_GPIO33INTD_Enum; + +/* ============================================= GPIO CFGE GPIO33OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO33OUTCFG */ + GPIO_CFGE_GPIO33OUTCFG_DIS = 0, /*!< DIS : Applies when PAD33FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO33OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD33FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO33OUTCFG_OD = 2, /*!< OD : Applies when PAD33FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO33OUTCFG_TS = 3, /*!< TS : Applies when PAD33FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO33OUTCFG_Enum; + +/* ============================================= GPIO CFGE GPIO33INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGE_GPIO33INCFG */ + GPIO_CFGE_GPIO33INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO33INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO33INCFG_Enum; + +/* ============================================== GPIO CFGE GPIO32INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGE_GPIO32INTD */ + GPIO_CFGE_GPIO32INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD32FNCSEL = NCE32 - nCE polarity active + low */ + GPIO_CFGE_GPIO32INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD32FNCSEL = NCE32 - nCE polarity active + high */ +} GPIO_CFGE_GPIO32INTD_Enum; + +/* ============================================= GPIO CFGE GPIO32OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGE_GPIO32OUTCFG */ + GPIO_CFGE_GPIO32OUTCFG_DIS = 0, /*!< DIS : Applies when PAD32FNCSEL = GPIO - Output disabled */ + GPIO_CFGE_GPIO32OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD32FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGE_GPIO32OUTCFG_OD = 2, /*!< OD : Applies when PAD32FNCSEL = GPIO - Output is open drain */ + GPIO_CFGE_GPIO32OUTCFG_TS = 3, /*!< TS : Applies when PAD32FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGE_GPIO32OUTCFG_Enum; + +/* ============================================= GPIO CFGE GPIO32INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGE_GPIO32INCFG */ + GPIO_CFGE_GPIO32INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGE_GPIO32INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGE_GPIO32INCFG_Enum; + +/* ========================================================= CFGF ========================================================== */ +/* ============================================= GPIO CFGF GPIO47INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO47INTD */ + GPIO_CFGF_GPIO47INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD47FNCSEL = NCE47 - nCE polarity active + low */ + GPIO_CFGF_GPIO47INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD47FNCSEL = NCE47 - nCE polarity active + high */ +} GPIO_CFGF_GPIO47INTD_Enum; + +/* ============================================ GPIO CFGF GPIO47OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGF_GPIO47OUTCFG */ + GPIO_CFGF_GPIO47OUTCFG_DIS = 0, /*!< DIS : Applies when PAD47FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO47OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD47FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO47OUTCFG_OD = 2, /*!< OD : Applies when PAD47FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO47OUTCFG_TS = 3, /*!< TS : Applies when PAD47FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO47OUTCFG_Enum; + +/* ============================================ GPIO CFGF GPIO47INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO47INCFG */ + GPIO_CFGF_GPIO47INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO47INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO47INCFG_Enum; + +/* ============================================= GPIO CFGF GPIO46INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO46INTD */ + GPIO_CFGF_GPIO46INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD46FNCSEL = NCE46 - nCE polarity active + low */ + GPIO_CFGF_GPIO46INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD46FNCSEL = NCE46 - nCE polarity active + high */ +} GPIO_CFGF_GPIO46INTD_Enum; + +/* ============================================ GPIO CFGF GPIO46OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGF_GPIO46OUTCFG */ + GPIO_CFGF_GPIO46OUTCFG_DIS = 0, /*!< DIS : Applies when PAD46FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO46OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD46FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO46OUTCFG_OD = 2, /*!< OD : Applies when PAD46FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO46OUTCFG_TS = 3, /*!< TS : Applies when PAD46FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO46OUTCFG_Enum; + +/* ============================================ GPIO CFGF GPIO46INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO46INCFG */ + GPIO_CFGF_GPIO46INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO46INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO46INCFG_Enum; + +/* ============================================= GPIO CFGF GPIO45INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO45INTD */ + GPIO_CFGF_GPIO45INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD45FNCSEL = NCE45 - nCE polarity active + low */ + GPIO_CFGF_GPIO45INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD45FNCSEL = NCE45 - nCE polarity active + high */ +} GPIO_CFGF_GPIO45INTD_Enum; + +/* ============================================ GPIO CFGF GPIO45OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGF_GPIO45OUTCFG */ + GPIO_CFGF_GPIO45OUTCFG_DIS = 0, /*!< DIS : Applies when PAD45FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO45OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD45FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO45OUTCFG_OD = 2, /*!< OD : Applies when PAD45FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO45OUTCFG_TS = 3, /*!< TS : Applies when PAD45FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO45OUTCFG_Enum; + +/* ============================================ GPIO CFGF GPIO45INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO45INCFG */ + GPIO_CFGF_GPIO45INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO45INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO45INCFG_Enum; + +/* ============================================= GPIO CFGF GPIO44INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO44INTD */ + GPIO_CFGF_GPIO44INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD44FNCSEL = NCE44 - nCE polarity active + low */ + GPIO_CFGF_GPIO44INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD44FNCSEL = NCE44 - nCE polarity active + high */ +} GPIO_CFGF_GPIO44INTD_Enum; + +/* ============================================ GPIO CFGF GPIO44OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGF_GPIO44OUTCFG */ + GPIO_CFGF_GPIO44OUTCFG_DIS = 0, /*!< DIS : Applies when PAD44FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO44OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD44FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO44OUTCFG_OD = 2, /*!< OD : Applies when PAD44FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO44OUTCFG_TS = 3, /*!< TS : Applies when PAD44FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO44OUTCFG_Enum; + +/* ============================================ GPIO CFGF GPIO44INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO44INCFG */ + GPIO_CFGF_GPIO44INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO44INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO44INCFG_Enum; + +/* ============================================= GPIO CFGF GPIO43INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO43INTD */ + GPIO_CFGF_GPIO43INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD43FNCSEL = NCE43 - nCE polarity active + low */ + GPIO_CFGF_GPIO43INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD43FNCSEL = NCE43 - nCE polarity active + high */ +} GPIO_CFGF_GPIO43INTD_Enum; + +/* ============================================ GPIO CFGF GPIO43OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGF_GPIO43OUTCFG */ + GPIO_CFGF_GPIO43OUTCFG_DIS = 0, /*!< DIS : Applies when PAD43FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO43OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD43FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO43OUTCFG_OD = 2, /*!< OD : Applies when PAD43FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO43OUTCFG_TS = 3, /*!< TS : Applies when PAD43FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO43OUTCFG_Enum; + +/* ============================================ GPIO CFGF GPIO43INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO43INCFG */ + GPIO_CFGF_GPIO43INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO43INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO43INCFG_Enum; + +/* ============================================= GPIO CFGF GPIO42INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO42INTD */ + GPIO_CFGF_GPIO42INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD42FNCSEL = NCE42 - nCE polarity active + low */ + GPIO_CFGF_GPIO42INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD42FNCSEL = NCE42 - nCE polarity active + high */ +} GPIO_CFGF_GPIO42INTD_Enum; + +/* ============================================ GPIO CFGF GPIO42OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO42OUTCFG */ + GPIO_CFGF_GPIO42OUTCFG_DIS = 0, /*!< DIS : Applies when PAD42FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO42OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD42FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO42OUTCFG_OD = 2, /*!< OD : Applies when PAD42FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO42OUTCFG_TS = 3, /*!< TS : Applies when PAD42FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO42OUTCFG_Enum; + +/* ============================================= GPIO CFGF GPIO42INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGF_GPIO42INCFG */ + GPIO_CFGF_GPIO42INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO42INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO42INCFG_Enum; + +/* ============================================== GPIO CFGF GPIO41INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGF_GPIO41INTD */ + GPIO_CFGF_GPIO41INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD41FNCSEL = NCE41 - nCE polarity active + low */ + GPIO_CFGF_GPIO41INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD41FNCSEL = NCE41 - nCE polarity active + high */ +} GPIO_CFGF_GPIO41INTD_Enum; + +/* ============================================= GPIO CFGF GPIO41OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO41OUTCFG */ + GPIO_CFGF_GPIO41OUTCFG_DIS = 0, /*!< DIS : Applies when PAD41FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO41OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD41FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO41OUTCFG_OD = 2, /*!< OD : Applies when PAD41FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO41OUTCFG_TS = 3, /*!< TS : Applies when PAD41FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO41OUTCFG_Enum; + +/* ============================================= GPIO CFGF GPIO41INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGF_GPIO41INCFG */ + GPIO_CFGF_GPIO41INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO41INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO41INCFG_Enum; + +/* ============================================== GPIO CFGF GPIO40INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGF_GPIO40INTD */ + GPIO_CFGF_GPIO40INTD_INTDIS = 0, /*!< INTDIS : Applies when GPIO40INCFG = 1 - No interrupt on GPIO + transition */ + GPIO_CFGF_GPIO40INTD_INTBOTH = 1, /*!< INTBOTH : Applies when GPIO40INCFG = 1 - Interrupt on either + low to high or high to low GPIO transition */ +} GPIO_CFGF_GPIO40INTD_Enum; + +/* ============================================= GPIO CFGF GPIO40OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGF_GPIO40OUTCFG */ + GPIO_CFGF_GPIO40OUTCFG_DIS = 0, /*!< DIS : Applies when PAD40FNCSEL = GPIO - Output disabled */ + GPIO_CFGF_GPIO40OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD40FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGF_GPIO40OUTCFG_OD = 2, /*!< OD : Applies when PAD40FNCSEL = GPIO - Output is open drain */ + GPIO_CFGF_GPIO40OUTCFG_TS = 3, /*!< TS : Applies when PAD40FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGF_GPIO40OUTCFG_Enum; + +/* ============================================= GPIO CFGF GPIO40INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGF_GPIO40INCFG */ + GPIO_CFGF_GPIO40INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGF_GPIO40INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGF_GPIO40INCFG_Enum; + +/* ========================================================= CFGG ========================================================== */ +/* ============================================= GPIO CFGG GPIO55INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO55INTD */ + GPIO_CFGG_GPIO55INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD55FNCSEL = NCE55 - nCE polarity active + low */ + GPIO_CFGG_GPIO55INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD55FNCSEL = NCE55 - nCE polarity active + high */ +} GPIO_CFGG_GPIO55INTD_Enum; + +/* ============================================ GPIO CFGG GPIO55OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGG_GPIO55OUTCFG */ + GPIO_CFGG_GPIO55OUTCFG_DIS = 0, /*!< DIS : Applies when PAD55FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO55OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD55FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO55OUTCFG_OD = 2, /*!< OD : Applies when PAD55FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO55OUTCFG_TS = 3, /*!< TS : Applies when PAD55FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO55OUTCFG_Enum; + +/* ============================================ GPIO CFGG GPIO55INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO55INCFG */ + GPIO_CFGG_GPIO55INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO55INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO55INCFG_Enum; + +/* ============================================= GPIO CFGG GPIO54INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO54INTD */ + GPIO_CFGG_GPIO54INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD54FNCSEL = NCE54 - nCE polarity active + low */ + GPIO_CFGG_GPIO54INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD54FNCSEL = NCE54 - nCE polarity active + high */ +} GPIO_CFGG_GPIO54INTD_Enum; + +/* ============================================ GPIO CFGG GPIO54OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGG_GPIO54OUTCFG */ + GPIO_CFGG_GPIO54OUTCFG_DIS = 0, /*!< DIS : Applies when PAD54FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO54OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD54FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO54OUTCFG_OD = 2, /*!< OD : Applies when PAD54FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO54OUTCFG_TS = 3, /*!< TS : Applies when PAD54FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO54OUTCFG_Enum; + +/* ============================================ GPIO CFGG GPIO54INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO54INCFG */ + GPIO_CFGG_GPIO54INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO54INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO54INCFG_Enum; + +/* ============================================= GPIO CFGG GPIO53INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO53INTD */ + GPIO_CFGG_GPIO53INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD53FNCSEL = NCE53 - nCE polarity active + low */ + GPIO_CFGG_GPIO53INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD53FNCSEL = NCE53 - nCE polarity active + high */ +} GPIO_CFGG_GPIO53INTD_Enum; + +/* ============================================ GPIO CFGG GPIO53OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGG_GPIO53OUTCFG */ + GPIO_CFGG_GPIO53OUTCFG_DIS = 0, /*!< DIS : Applies when PAD53FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO53OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD53FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO53OUTCFG_OD = 2, /*!< OD : Applies when PAD53FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO53OUTCFG_TS = 3, /*!< TS : Applies when PAD53FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO53OUTCFG_Enum; + +/* ============================================ GPIO CFGG GPIO53INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO53INCFG */ + GPIO_CFGG_GPIO53INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO53INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO53INCFG_Enum; + +/* ============================================= GPIO CFGG GPIO52INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO52INTD */ + GPIO_CFGG_GPIO52INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD52FNCSEL = NCE52 - nCE polarity active + low */ + GPIO_CFGG_GPIO52INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD52FNCSEL = NCE52 - nCE polarity active + high */ +} GPIO_CFGG_GPIO52INTD_Enum; + +/* ============================================ GPIO CFGG GPIO52OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGG_GPIO52OUTCFG */ + GPIO_CFGG_GPIO52OUTCFG_DIS = 0, /*!< DIS : Applies when PAD52FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO52OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD52FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO52OUTCFG_OD = 2, /*!< OD : Applies when PAD52FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO52OUTCFG_TS = 3, /*!< TS : Applies when PAD52FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO52OUTCFG_Enum; + +/* ============================================ GPIO CFGG GPIO52INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO52INCFG */ + GPIO_CFGG_GPIO52INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO52INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO52INCFG_Enum; + +/* ============================================= GPIO CFGG GPIO51INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO51INTD */ + GPIO_CFGG_GPIO51INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD51FNCSEL = NCE51 - nCE polarity active + low */ + GPIO_CFGG_GPIO51INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD51FNCSEL = NCE51 - nCE polarity active + high */ +} GPIO_CFGG_GPIO51INTD_Enum; + +/* ============================================ GPIO CFGG GPIO51OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGG_GPIO51OUTCFG */ + GPIO_CFGG_GPIO51OUTCFG_DIS = 0, /*!< DIS : Applies when PAD51FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO51OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD51FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO51OUTCFG_OD = 2, /*!< OD : Applies when PAD51FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO51OUTCFG_TS = 3, /*!< TS : Applies when PAD51FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO51OUTCFG_Enum; + +/* ============================================ GPIO CFGG GPIO51INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO51INCFG */ + GPIO_CFGG_GPIO51INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO51INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO51INCFG_Enum; + +/* ============================================= GPIO CFGG GPIO50INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO50INTD */ + GPIO_CFGG_GPIO50INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD50FNCSEL = NCE50 - nCE polarity active + low */ + GPIO_CFGG_GPIO50INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD50FNCSEL = NCE50 - nCE polarity active + high */ +} GPIO_CFGG_GPIO50INTD_Enum; + +/* ============================================ GPIO CFGG GPIO50OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO50OUTCFG */ + GPIO_CFGG_GPIO50OUTCFG_DIS = 0, /*!< DIS : Applies when PAD50FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO50OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD50FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO50OUTCFG_OD = 2, /*!< OD : Applies when PAD50FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO50OUTCFG_TS = 3, /*!< TS : Applies when PAD50FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO50OUTCFG_Enum; + +/* ============================================= GPIO CFGG GPIO50INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGG_GPIO50INCFG */ + GPIO_CFGG_GPIO50INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO50INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO50INCFG_Enum; + +/* ============================================== GPIO CFGG GPIO49INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGG_GPIO49INTD */ + GPIO_CFGG_GPIO49INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD49FNCSEL = NCE49 - nCE polarity active + low */ + GPIO_CFGG_GPIO49INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD49FNCSEL = NCE49 - nCE polarity active + high */ +} GPIO_CFGG_GPIO49INTD_Enum; + +/* ============================================= GPIO CFGG GPIO49OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO49OUTCFG */ + GPIO_CFGG_GPIO49OUTCFG_DIS = 0, /*!< DIS : Applies when PAD49FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO49OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD49FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO49OUTCFG_OD = 2, /*!< OD : Applies when PAD49FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO49OUTCFG_TS = 3, /*!< TS : Applies when PAD49FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO49OUTCFG_Enum; + +/* ============================================= GPIO CFGG GPIO49INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGG_GPIO49INCFG */ + GPIO_CFGG_GPIO49INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO49INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO49INCFG_Enum; + +/* ============================================== GPIO CFGG GPIO48INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGG_GPIO48INTD */ + GPIO_CFGG_GPIO48INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD48FNCSEL = NCE48 - nCE polarity active + low */ + GPIO_CFGG_GPIO48INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD48FNCSEL = NCE48 - nCE polarity active + high */ +} GPIO_CFGG_GPIO48INTD_Enum; + +/* ============================================= GPIO CFGG GPIO48OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGG_GPIO48OUTCFG */ + GPIO_CFGG_GPIO48OUTCFG_DIS = 0, /*!< DIS : Applies when PAD48FNCSEL = GPIO - Output disabled */ + GPIO_CFGG_GPIO48OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD48FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGG_GPIO48OUTCFG_OD = 2, /*!< OD : Applies when PAD48FNCSEL = GPIO - Output is open drain */ + GPIO_CFGG_GPIO48OUTCFG_TS = 3, /*!< TS : Applies when PAD48FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGG_GPIO48OUTCFG_Enum; + +/* ============================================= GPIO CFGG GPIO48INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGG_GPIO48INCFG */ + GPIO_CFGG_GPIO48INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGG_GPIO48INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGG_GPIO48INCFG_Enum; + +/* ========================================================= CFGH ========================================================== */ +/* ============================================= GPIO CFGH GPIO63INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO63INTD */ + GPIO_CFGH_GPIO63INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD63FNCSEL = NCE63 - nCE polarity active + low */ + GPIO_CFGH_GPIO63INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD63FNCSEL = NCE63 - nCE polarity active + high */ +} GPIO_CFGH_GPIO63INTD_Enum; + +/* ============================================ GPIO CFGH GPIO63OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGH_GPIO63OUTCFG */ + GPIO_CFGH_GPIO63OUTCFG_DIS = 0, /*!< DIS : Applies when PAD63FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO63OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD63FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO63OUTCFG_OD = 2, /*!< OD : Applies when PAD63FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO63OUTCFG_TS = 3, /*!< TS : Applies when PAD63FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO63OUTCFG_Enum; + +/* ============================================ GPIO CFGH GPIO63INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO63INCFG */ + GPIO_CFGH_GPIO63INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO63INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO63INCFG_Enum; + +/* ============================================= GPIO CFGH GPIO62INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO62INTD */ + GPIO_CFGH_GPIO62INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD62FNCSEL = NCE62 - nCE polarity active + low */ + GPIO_CFGH_GPIO62INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD62FNCSEL = NCE62 - nCE polarity active + high */ +} GPIO_CFGH_GPIO62INTD_Enum; + +/* ============================================ GPIO CFGH GPIO62OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGH_GPIO62OUTCFG */ + GPIO_CFGH_GPIO62OUTCFG_DIS = 0, /*!< DIS : Applies when PAD62FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO62OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD62FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO62OUTCFG_OD = 2, /*!< OD : Applies when PAD62FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO62OUTCFG_TS = 3, /*!< TS : Applies when PAD62FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO62OUTCFG_Enum; + +/* ============================================ GPIO CFGH GPIO62INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO62INCFG */ + GPIO_CFGH_GPIO62INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO62INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO62INCFG_Enum; + +/* ============================================= GPIO CFGH GPIO61INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO61INTD */ + GPIO_CFGH_GPIO61INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD61FNCSEL = NCE61 - nCE polarity active + low */ + GPIO_CFGH_GPIO61INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD61FNCSEL = NCE61 - nCE polarity active + high */ +} GPIO_CFGH_GPIO61INTD_Enum; + +/* ============================================ GPIO CFGH GPIO61OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGH_GPIO61OUTCFG */ + GPIO_CFGH_GPIO61OUTCFG_DIS = 0, /*!< DIS : Applies when PAD61FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO61OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD61FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO61OUTCFG_OD = 2, /*!< OD : Applies when PAD61FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO61OUTCFG_TS = 3, /*!< TS : Applies when PAD61FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO61OUTCFG_Enum; + +/* ============================================ GPIO CFGH GPIO61INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO61INCFG */ + GPIO_CFGH_GPIO61INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO61INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO61INCFG_Enum; + +/* ============================================= GPIO CFGH GPIO60INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO60INTD */ + GPIO_CFGH_GPIO60INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD60FNCSEL = NCE60 - nCE polarity active + low */ + GPIO_CFGH_GPIO60INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD60FNCSEL = NCE60 - nCE polarity active + high */ +} GPIO_CFGH_GPIO60INTD_Enum; + +/* ============================================ GPIO CFGH GPIO60OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGH_GPIO60OUTCFG */ + GPIO_CFGH_GPIO60OUTCFG_DIS = 0, /*!< DIS : Applies when PAD60FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO60OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD60FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO60OUTCFG_OD = 2, /*!< OD : Applies when PAD60FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO60OUTCFG_TS = 3, /*!< TS : Applies when PAD60FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO60OUTCFG_Enum; + +/* ============================================ GPIO CFGH GPIO60INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO60INCFG */ + GPIO_CFGH_GPIO60INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO60INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO60INCFG_Enum; + +/* ============================================= GPIO CFGH GPIO59INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO59INTD */ + GPIO_CFGH_GPIO59INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD59FNCSEL = NCE59 - nCE polarity active + low */ + GPIO_CFGH_GPIO59INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD59FNCSEL = NCE59 - nCE polarity active + high */ +} GPIO_CFGH_GPIO59INTD_Enum; + +/* ============================================ GPIO CFGH GPIO59OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGH_GPIO59OUTCFG */ + GPIO_CFGH_GPIO59OUTCFG_DIS = 0, /*!< DIS : Applies when PAD59FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO59OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD59FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO59OUTCFG_OD = 2, /*!< OD : Applies when PAD59FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO59OUTCFG_TS = 3, /*!< TS : Applies when PAD59FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO59OUTCFG_Enum; + +/* ============================================ GPIO CFGH GPIO59INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO59INCFG */ + GPIO_CFGH_GPIO59INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO59INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO59INCFG_Enum; + +/* ============================================= GPIO CFGH GPIO58INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO58INTD */ + GPIO_CFGH_GPIO58INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD58FNCSEL = NCE58 - nCE polarity active + low */ + GPIO_CFGH_GPIO58INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD58FNCSEL = NCE58 - nCE polarity active + high */ +} GPIO_CFGH_GPIO58INTD_Enum; + +/* ============================================ GPIO CFGH GPIO58OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO58OUTCFG */ + GPIO_CFGH_GPIO58OUTCFG_DIS = 0, /*!< DIS : Applies when PAD58FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO58OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD58FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO58OUTCFG_OD = 2, /*!< OD : Applies when PAD58FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO58OUTCFG_TS = 3, /*!< TS : Applies when PAD58FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO58OUTCFG_Enum; + +/* ============================================= GPIO CFGH GPIO58INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGH_GPIO58INCFG */ + GPIO_CFGH_GPIO58INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO58INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO58INCFG_Enum; + +/* ============================================== GPIO CFGH GPIO57INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGH_GPIO57INTD */ + GPIO_CFGH_GPIO57INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD57FNCSEL = NCE57 - nCE polarity active + low */ + GPIO_CFGH_GPIO57INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD57FNCSEL = NCE57 - nCE polarity active + high */ +} GPIO_CFGH_GPIO57INTD_Enum; + +/* ============================================= GPIO CFGH GPIO57OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO57OUTCFG */ + GPIO_CFGH_GPIO57OUTCFG_DIS = 0, /*!< DIS : Applies when PAD57FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO57OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD57FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO57OUTCFG_OD = 2, /*!< OD : Applies when PAD57FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO57OUTCFG_TS = 3, /*!< TS : Applies when PAD57FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO57OUTCFG_Enum; + +/* ============================================= GPIO CFGH GPIO57INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGH_GPIO57INCFG */ + GPIO_CFGH_GPIO57INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO57INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO57INCFG_Enum; + +/* ============================================== GPIO CFGH GPIO56INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGH_GPIO56INTD */ + GPIO_CFGH_GPIO56INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD56FNCSEL = NCE56 - nCE polarity active + low */ + GPIO_CFGH_GPIO56INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD56FNCSEL = NCE56 - nCE polarity active + high */ +} GPIO_CFGH_GPIO56INTD_Enum; + +/* ============================================= GPIO CFGH GPIO56OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGH_GPIO56OUTCFG */ + GPIO_CFGH_GPIO56OUTCFG_DIS = 0, /*!< DIS : Applies when PAD56FNCSEL = GPIO - Output disabled */ + GPIO_CFGH_GPIO56OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD56FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGH_GPIO56OUTCFG_OD = 2, /*!< OD : Applies when PAD56FNCSEL = GPIO - Output is open drain */ + GPIO_CFGH_GPIO56OUTCFG_TS = 3, /*!< TS : Applies when PAD56FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGH_GPIO56OUTCFG_Enum; + +/* ============================================= GPIO CFGH GPIO56INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGH_GPIO56INCFG */ + GPIO_CFGH_GPIO56INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGH_GPIO56INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGH_GPIO56INCFG_Enum; + +/* ========================================================= CFGI ========================================================== */ +/* ============================================= GPIO CFGI GPIO71INTD [31..31] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO71INTD */ + GPIO_CFGI_GPIO71INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD71FNCSEL = NCE71 - nCE polarity active + low */ + GPIO_CFGI_GPIO71INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD71FNCSEL = NCE71 - nCE polarity active + high */ +} GPIO_CFGI_GPIO71INTD_Enum; + +/* ============================================ GPIO CFGI GPIO71OUTCFG [29..30] ============================================ */ +typedef enum { /*!< GPIO_CFGI_GPIO71OUTCFG */ + GPIO_CFGI_GPIO71OUTCFG_DIS = 0, /*!< DIS : Applies when PAD71FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO71OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD71FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO71OUTCFG_OD = 2, /*!< OD : Applies when PAD71FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO71OUTCFG_TS = 3, /*!< TS : Applies when PAD71FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO71OUTCFG_Enum; + +/* ============================================ GPIO CFGI GPIO71INCFG [28..28] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO71INCFG */ + GPIO_CFGI_GPIO71INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO71INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO71INCFG_Enum; + +/* ============================================= GPIO CFGI GPIO70INTD [27..27] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO70INTD */ + GPIO_CFGI_GPIO70INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD70FNCSEL = NCE70 - nCE polarity active + low */ + GPIO_CFGI_GPIO70INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD70FNCSEL = NCE70 - nCE polarity active + high */ +} GPIO_CFGI_GPIO70INTD_Enum; + +/* ============================================ GPIO CFGI GPIO70OUTCFG [25..26] ============================================ */ +typedef enum { /*!< GPIO_CFGI_GPIO70OUTCFG */ + GPIO_CFGI_GPIO70OUTCFG_DIS = 0, /*!< DIS : Applies when PAD70FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO70OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD70FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO70OUTCFG_OD = 2, /*!< OD : Applies when PAD70FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO70OUTCFG_TS = 3, /*!< TS : Applies when PAD70FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO70OUTCFG_Enum; + +/* ============================================ GPIO CFGI GPIO70INCFG [24..24] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO70INCFG */ + GPIO_CFGI_GPIO70INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO70INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO70INCFG_Enum; + +/* ============================================= GPIO CFGI GPIO69INTD [23..23] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO69INTD */ + GPIO_CFGI_GPIO69INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD69FNCSEL = NCE69 - nCE polarity active + low */ + GPIO_CFGI_GPIO69INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD69FNCSEL = NCE69 - nCE polarity active + high */ +} GPIO_CFGI_GPIO69INTD_Enum; + +/* ============================================ GPIO CFGI GPIO69OUTCFG [21..22] ============================================ */ +typedef enum { /*!< GPIO_CFGI_GPIO69OUTCFG */ + GPIO_CFGI_GPIO69OUTCFG_DIS = 0, /*!< DIS : Applies when PAD69FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO69OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD69FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO69OUTCFG_OD = 2, /*!< OD : Applies when PAD69FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO69OUTCFG_TS = 3, /*!< TS : Applies when PAD69FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO69OUTCFG_Enum; + +/* ============================================ GPIO CFGI GPIO69INCFG [20..20] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO69INCFG */ + GPIO_CFGI_GPIO69INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO69INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO69INCFG_Enum; + +/* ============================================= GPIO CFGI GPIO68INTD [19..19] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO68INTD */ + GPIO_CFGI_GPIO68INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD68FNCSEL = NCE68 - nCE polarity active + low */ + GPIO_CFGI_GPIO68INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD68FNCSEL = NCE68 - nCE polarity active + high */ +} GPIO_CFGI_GPIO68INTD_Enum; + +/* ============================================ GPIO CFGI GPIO68OUTCFG [17..18] ============================================ */ +typedef enum { /*!< GPIO_CFGI_GPIO68OUTCFG */ + GPIO_CFGI_GPIO68OUTCFG_DIS = 0, /*!< DIS : Applies when PAD68FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO68OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD68FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO68OUTCFG_OD = 2, /*!< OD : Applies when PAD68FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO68OUTCFG_TS = 3, /*!< TS : Applies when PAD68FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO68OUTCFG_Enum; + +/* ============================================ GPIO CFGI GPIO68INCFG [16..16] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO68INCFG */ + GPIO_CFGI_GPIO68INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO68INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO68INCFG_Enum; + +/* ============================================= GPIO CFGI GPIO67INTD [15..15] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO67INTD */ + GPIO_CFGI_GPIO67INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD67FNCSEL = NCE67 - nCE polarity active + low */ + GPIO_CFGI_GPIO67INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD67FNCSEL = NCE67 - nCE polarity active + high */ +} GPIO_CFGI_GPIO67INTD_Enum; + +/* ============================================ GPIO CFGI GPIO67OUTCFG [13..14] ============================================ */ +typedef enum { /*!< GPIO_CFGI_GPIO67OUTCFG */ + GPIO_CFGI_GPIO67OUTCFG_DIS = 0, /*!< DIS : Applies when PAD67FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO67OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD67FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO67OUTCFG_OD = 2, /*!< OD : Applies when PAD67FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO67OUTCFG_TS = 3, /*!< TS : Applies when PAD67FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO67OUTCFG_Enum; + +/* ============================================ GPIO CFGI GPIO67INCFG [12..12] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO67INCFG */ + GPIO_CFGI_GPIO67INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO67INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO67INCFG_Enum; + +/* ============================================= GPIO CFGI GPIO66INTD [11..11] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO66INTD */ + GPIO_CFGI_GPIO66INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD66FNCSEL = NCE66 - nCE polarity active + low */ + GPIO_CFGI_GPIO66INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD66FNCSEL = NCE66 - nCE polarity active + high */ +} GPIO_CFGI_GPIO66INTD_Enum; + +/* ============================================ GPIO CFGI GPIO66OUTCFG [9..10] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO66OUTCFG */ + GPIO_CFGI_GPIO66OUTCFG_DIS = 0, /*!< DIS : Applies when PAD66FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO66OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD66FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO66OUTCFG_OD = 2, /*!< OD : Applies when PAD66FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO66OUTCFG_TS = 3, /*!< TS : Applies when PAD66FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO66OUTCFG_Enum; + +/* ============================================= GPIO CFGI GPIO66INCFG [8..8] ============================================== */ +typedef enum { /*!< GPIO_CFGI_GPIO66INCFG */ + GPIO_CFGI_GPIO66INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO66INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO66INCFG_Enum; + +/* ============================================== GPIO CFGI GPIO65INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGI_GPIO65INTD */ + GPIO_CFGI_GPIO65INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD65FNCSEL = NCE65 - nCE polarity active + low */ + GPIO_CFGI_GPIO65INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD65FNCSEL = NCE65 - nCE polarity active + high */ +} GPIO_CFGI_GPIO65INTD_Enum; + +/* ============================================= GPIO CFGI GPIO65OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO65OUTCFG */ + GPIO_CFGI_GPIO65OUTCFG_DIS = 0, /*!< DIS : Applies when PAD65FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO65OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD65FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO65OUTCFG_OD = 2, /*!< OD : Applies when PAD65FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO65OUTCFG_TS = 3, /*!< TS : Applies when PAD65FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO65OUTCFG_Enum; + +/* ============================================= GPIO CFGI GPIO65INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGI_GPIO65INCFG */ + GPIO_CFGI_GPIO65INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO65INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO65INCFG_Enum; + +/* ============================================== GPIO CFGI GPIO64INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGI_GPIO64INTD */ + GPIO_CFGI_GPIO64INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD64FNCSEL = NCE64 - nCE polarity active + low */ + GPIO_CFGI_GPIO64INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD64FNCSEL = NCE64 - nCE polarity active + high */ +} GPIO_CFGI_GPIO64INTD_Enum; + +/* ============================================= GPIO CFGI GPIO64OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGI_GPIO64OUTCFG */ + GPIO_CFGI_GPIO64OUTCFG_DIS = 0, /*!< DIS : Applies when PAD64FNCSEL = GPIO - Output disabled */ + GPIO_CFGI_GPIO64OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD64FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGI_GPIO64OUTCFG_OD = 2, /*!< OD : Applies when PAD64FNCSEL = GPIO - Output is open drain */ + GPIO_CFGI_GPIO64OUTCFG_TS = 3, /*!< TS : Applies when PAD64FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGI_GPIO64OUTCFG_Enum; + +/* ============================================= GPIO CFGI GPIO64INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGI_GPIO64INCFG */ + GPIO_CFGI_GPIO64INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGI_GPIO64INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGI_GPIO64INCFG_Enum; + +/* ========================================================= CFGJ ========================================================== */ +/* ============================================== GPIO CFGJ GPIO73INTD [7..7] ============================================== */ +typedef enum { /*!< GPIO_CFGJ_GPIO73INTD */ + GPIO_CFGJ_GPIO73INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD73FNCSEL = NCE73 - nCE polarity active + low */ + GPIO_CFGJ_GPIO73INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD73FNCSEL = NCE73 - nCE polarity active + high */ +} GPIO_CFGJ_GPIO73INTD_Enum; + +/* ============================================= GPIO CFGJ GPIO73OUTCFG [5..6] ============================================= */ +typedef enum { /*!< GPIO_CFGJ_GPIO73OUTCFG */ + GPIO_CFGJ_GPIO73OUTCFG_DIS = 0, /*!< DIS : Applies when PAD73FNCSEL = GPIO - Output disabled */ + GPIO_CFGJ_GPIO73OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD73FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGJ_GPIO73OUTCFG_OD = 2, /*!< OD : Applies when PAD73FNCSEL = GPIO - Output is open drain */ + GPIO_CFGJ_GPIO73OUTCFG_TS = 3, /*!< TS : Applies when PAD73FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGJ_GPIO73OUTCFG_Enum; + +/* ============================================= GPIO CFGJ GPIO73INCFG [4..4] ============================================== */ +typedef enum { /*!< GPIO_CFGJ_GPIO73INCFG */ + GPIO_CFGJ_GPIO73INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGJ_GPIO73INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGJ_GPIO73INCFG_Enum; + +/* ============================================== GPIO CFGJ GPIO72INTD [3..3] ============================================== */ +typedef enum { /*!< GPIO_CFGJ_GPIO72INTD */ + GPIO_CFGJ_GPIO72INTD_nCELOW = 0, /*!< nCELOW : Applies when PAD72FNCSEL = NCE72 - nCE polarity active + low */ + GPIO_CFGJ_GPIO72INTD_nCEHIGH = 1, /*!< nCEHIGH : Applies when PAD72FNCSEL = NCE72 - nCE polarity active + high */ +} GPIO_CFGJ_GPIO72INTD_Enum; + +/* ============================================= GPIO CFGJ GPIO72OUTCFG [1..2] ============================================= */ +typedef enum { /*!< GPIO_CFGJ_GPIO72OUTCFG */ + GPIO_CFGJ_GPIO72OUTCFG_DIS = 0, /*!< DIS : Applies when PAD72FNCSEL = GPIO - Output disabled */ + GPIO_CFGJ_GPIO72OUTCFG_PUSHPULL = 1, /*!< PUSHPULL : Applies when PAD72FNCSEL = GPIO - Output is push-pull */ + GPIO_CFGJ_GPIO72OUTCFG_OD = 2, /*!< OD : Applies when PAD72FNCSEL = GPIO - Output is open drain */ + GPIO_CFGJ_GPIO72OUTCFG_TS = 3, /*!< TS : Applies when PAD72FNCSEL = GPIO - Output is tri-state */ +} GPIO_CFGJ_GPIO72OUTCFG_Enum; + +/* ============================================= GPIO CFGJ GPIO72INCFG [0..0] ============================================== */ +typedef enum { /*!< GPIO_CFGJ_GPIO72INCFG */ + GPIO_CFGJ_GPIO72INCFG_READ = 0, /*!< READ : Read the GPIO pin data */ + GPIO_CFGJ_GPIO72INCFG_RDZERO = 1, /*!< RDZERO : INTD = 0 - Readback will always be zero */ +} GPIO_CFGJ_GPIO72INCFG_Enum; + +/* ======================================================== PADKEY ========================================================= */ +/* ============================================== GPIO PADKEY PADKEY [0..31] =============================================== */ +typedef enum { /*!< GPIO_PADKEY_PADKEY */ + GPIO_PADKEY_PADKEY_Key = 115, /*!< Key : Key */ +} GPIO_PADKEY_PADKEY_Enum; + +/* ========================================================== RDA ========================================================== */ +/* ========================================================== RDB ========================================================== */ +/* ========================================================== RDC ========================================================== */ +/* ========================================================== WTA ========================================================== */ +/* ========================================================== WTB ========================================================== */ +/* ========================================================== WTC ========================================================== */ +/* ========================================================= WTSA ========================================================== */ +/* ========================================================= WTSB ========================================================== */ +/* ========================================================= WTSC ========================================================== */ +/* ========================================================= WTCA ========================================================== */ +/* ========================================================= WTCB ========================================================== */ +/* ========================================================= WTCC ========================================================== */ +/* ========================================================== ENA ========================================================== */ +/* ========================================================== ENB ========================================================== */ +/* ========================================================== ENC ========================================================== */ +/* ========================================================= ENSA ========================================================== */ +/* ========================================================= ENSB ========================================================== */ +/* ========================================================= ENSC ========================================================== */ +/* ========================================================= ENCA ========================================================== */ +/* ========================================================= ENCB ========================================================== */ +/* ========================================================= ENCC ========================================================== */ +/* ======================================================== STMRCAP ======================================================== */ +/* ============================================= GPIO STMRCAP STPOL3 [31..31] ============================================== */ +typedef enum { /*!< GPIO_STMRCAP_STPOL3 */ + GPIO_STMRCAP_STPOL3_CAPLH = 0, /*!< CAPLH : Capture on low to high GPIO transition */ + GPIO_STMRCAP_STPOL3_CAPHL = 1, /*!< CAPHL : Capture on high to low GPIO transition */ +} GPIO_STMRCAP_STPOL3_Enum; + +/* ============================================= GPIO STMRCAP STPOL2 [23..23] ============================================== */ +typedef enum { /*!< GPIO_STMRCAP_STPOL2 */ + GPIO_STMRCAP_STPOL2_CAPLH = 0, /*!< CAPLH : Capture on low to high GPIO transition */ + GPIO_STMRCAP_STPOL2_CAPHL = 1, /*!< CAPHL : Capture on high to low GPIO transition */ +} GPIO_STMRCAP_STPOL2_Enum; + +/* ============================================= GPIO STMRCAP STPOL1 [15..15] ============================================== */ +typedef enum { /*!< GPIO_STMRCAP_STPOL1 */ + GPIO_STMRCAP_STPOL1_CAPLH = 0, /*!< CAPLH : Capture on low to high GPIO transition */ + GPIO_STMRCAP_STPOL1_CAPHL = 1, /*!< CAPHL : Capture on high to low GPIO transition */ +} GPIO_STMRCAP_STPOL1_Enum; + +/* ============================================== GPIO STMRCAP STPOL0 [7..7] =============================================== */ +typedef enum { /*!< GPIO_STMRCAP_STPOL0 */ + GPIO_STMRCAP_STPOL0_CAPLH = 0, /*!< CAPLH : Capture on low to high GPIO transition */ + GPIO_STMRCAP_STPOL0_CAPHL = 1, /*!< CAPHL : Capture on high to low GPIO transition */ +} GPIO_STMRCAP_STPOL0_Enum; + +/* ======================================================== IOM0IRQ ======================================================== */ +/* ======================================================== IOM1IRQ ======================================================== */ +/* ======================================================== IOM2IRQ ======================================================== */ +/* ======================================================== IOM3IRQ ======================================================== */ +/* ======================================================== IOM4IRQ ======================================================== */ +/* ======================================================== IOM5IRQ ======================================================== */ +/* ======================================================= BLEIFIRQ ======================================================== */ +/* ======================================================== GPIOOBS ======================================================== */ +/* ====================================================== ALTPADCFGA ======================================================= */ +/* =========================================== GPIO ALTPADCFGA PAD3_SR [28..28] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGA_PAD3_SR */ + GPIO_ALTPADCFGA_PAD3_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGA_PAD3_SR_Enum; + +/* =========================================== GPIO ALTPADCFGA PAD2_SR [20..20] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGA_PAD2_SR */ + GPIO_ALTPADCFGA_PAD2_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGA_PAD2_SR_Enum; + +/* =========================================== GPIO ALTPADCFGA PAD1_SR [12..12] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGA_PAD1_SR */ + GPIO_ALTPADCFGA_PAD1_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGA_PAD1_SR_Enum; + +/* ============================================ GPIO ALTPADCFGA PAD0_SR [4..4] ============================================= */ +typedef enum { /*!< GPIO_ALTPADCFGA_PAD0_SR */ + GPIO_ALTPADCFGA_PAD0_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGA_PAD0_SR_Enum; + +/* ====================================================== ALTPADCFGB ======================================================= */ +/* =========================================== GPIO ALTPADCFGB PAD7_SR [28..28] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGB_PAD7_SR */ + GPIO_ALTPADCFGB_PAD7_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGB_PAD7_SR_Enum; + +/* =========================================== GPIO ALTPADCFGB PAD6_SR [20..20] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGB_PAD6_SR */ + GPIO_ALTPADCFGB_PAD6_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGB_PAD6_SR_Enum; + +/* =========================================== GPIO ALTPADCFGB PAD5_SR [12..12] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGB_PAD5_SR */ + GPIO_ALTPADCFGB_PAD5_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGB_PAD5_SR_Enum; + +/* ============================================ GPIO ALTPADCFGB PAD4_SR [4..4] ============================================= */ +typedef enum { /*!< GPIO_ALTPADCFGB_PAD4_SR */ + GPIO_ALTPADCFGB_PAD4_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGB_PAD4_SR_Enum; + +/* ====================================================== ALTPADCFGC ======================================================= */ +/* =========================================== GPIO ALTPADCFGC PAD11_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGC_PAD11_SR */ + GPIO_ALTPADCFGC_PAD11_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGC_PAD11_SR_Enum; + +/* =========================================== GPIO ALTPADCFGC PAD10_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGC_PAD10_SR */ + GPIO_ALTPADCFGC_PAD10_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGC_PAD10_SR_Enum; + +/* =========================================== GPIO ALTPADCFGC PAD9_SR [12..12] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGC_PAD9_SR */ + GPIO_ALTPADCFGC_PAD9_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGC_PAD9_SR_Enum; + +/* ============================================ GPIO ALTPADCFGC PAD8_SR [4..4] ============================================= */ +typedef enum { /*!< GPIO_ALTPADCFGC_PAD8_SR */ + GPIO_ALTPADCFGC_PAD8_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGC_PAD8_SR_Enum; + +/* ====================================================== ALTPADCFGD ======================================================= */ +/* =========================================== GPIO ALTPADCFGD PAD15_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGD_PAD15_SR */ + GPIO_ALTPADCFGD_PAD15_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGD_PAD15_SR_Enum; + +/* =========================================== GPIO ALTPADCFGD PAD14_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGD_PAD14_SR */ + GPIO_ALTPADCFGD_PAD14_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGD_PAD14_SR_Enum; + +/* =========================================== GPIO ALTPADCFGD PAD13_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGD_PAD13_SR */ + GPIO_ALTPADCFGD_PAD13_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGD_PAD13_SR_Enum; + +/* ============================================ GPIO ALTPADCFGD PAD12_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGD_PAD12_SR */ + GPIO_ALTPADCFGD_PAD12_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGD_PAD12_SR_Enum; + +/* ====================================================== ALTPADCFGE ======================================================= */ +/* =========================================== GPIO ALTPADCFGE PAD19_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGE_PAD19_SR */ + GPIO_ALTPADCFGE_PAD19_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGE_PAD19_SR_Enum; + +/* =========================================== GPIO ALTPADCFGE PAD18_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGE_PAD18_SR */ + GPIO_ALTPADCFGE_PAD18_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGE_PAD18_SR_Enum; + +/* =========================================== GPIO ALTPADCFGE PAD17_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGE_PAD17_SR */ + GPIO_ALTPADCFGE_PAD17_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGE_PAD17_SR_Enum; + +/* ============================================ GPIO ALTPADCFGE PAD16_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGE_PAD16_SR */ + GPIO_ALTPADCFGE_PAD16_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGE_PAD16_SR_Enum; + +/* ====================================================== ALTPADCFGF ======================================================= */ +/* =========================================== GPIO ALTPADCFGF PAD23_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGF_PAD23_SR */ + GPIO_ALTPADCFGF_PAD23_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGF_PAD23_SR_Enum; + +/* =========================================== GPIO ALTPADCFGF PAD22_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGF_PAD22_SR */ + GPIO_ALTPADCFGF_PAD22_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGF_PAD22_SR_Enum; + +/* =========================================== GPIO ALTPADCFGF PAD21_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGF_PAD21_SR */ + GPIO_ALTPADCFGF_PAD21_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGF_PAD21_SR_Enum; + +/* ============================================ GPIO ALTPADCFGF PAD20_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGF_PAD20_SR */ + GPIO_ALTPADCFGF_PAD20_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGF_PAD20_SR_Enum; + +/* ====================================================== ALTPADCFGG ======================================================= */ +/* =========================================== GPIO ALTPADCFGG PAD27_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGG_PAD27_SR */ + GPIO_ALTPADCFGG_PAD27_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGG_PAD27_SR_Enum; + +/* =========================================== GPIO ALTPADCFGG PAD26_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGG_PAD26_SR */ + GPIO_ALTPADCFGG_PAD26_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGG_PAD26_SR_Enum; + +/* =========================================== GPIO ALTPADCFGG PAD25_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGG_PAD25_SR */ + GPIO_ALTPADCFGG_PAD25_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGG_PAD25_SR_Enum; + +/* ============================================ GPIO ALTPADCFGG PAD24_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGG_PAD24_SR */ + GPIO_ALTPADCFGG_PAD24_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGG_PAD24_SR_Enum; + +/* ====================================================== ALTPADCFGH ======================================================= */ +/* =========================================== GPIO ALTPADCFGH PAD31_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGH_PAD31_SR */ + GPIO_ALTPADCFGH_PAD31_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGH_PAD31_SR_Enum; + +/* =========================================== GPIO ALTPADCFGH PAD30_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGH_PAD30_SR */ + GPIO_ALTPADCFGH_PAD30_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGH_PAD30_SR_Enum; + +/* =========================================== GPIO ALTPADCFGH PAD29_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGH_PAD29_SR */ + GPIO_ALTPADCFGH_PAD29_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGH_PAD29_SR_Enum; + +/* ============================================ GPIO ALTPADCFGH PAD28_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGH_PAD28_SR */ + GPIO_ALTPADCFGH_PAD28_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGH_PAD28_SR_Enum; + +/* ====================================================== ALTPADCFGI ======================================================= */ +/* =========================================== GPIO ALTPADCFGI PAD35_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGI_PAD35_SR */ + GPIO_ALTPADCFGI_PAD35_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGI_PAD35_SR_Enum; + +/* =========================================== GPIO ALTPADCFGI PAD34_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGI_PAD34_SR */ + GPIO_ALTPADCFGI_PAD34_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGI_PAD34_SR_Enum; + +/* =========================================== GPIO ALTPADCFGI PAD33_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGI_PAD33_SR */ + GPIO_ALTPADCFGI_PAD33_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGI_PAD33_SR_Enum; + +/* ============================================ GPIO ALTPADCFGI PAD32_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGI_PAD32_SR */ + GPIO_ALTPADCFGI_PAD32_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGI_PAD32_SR_Enum; + +/* ====================================================== ALTPADCFGJ ======================================================= */ +/* =========================================== GPIO ALTPADCFGJ PAD39_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGJ_PAD39_SR */ + GPIO_ALTPADCFGJ_PAD39_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGJ_PAD39_SR_Enum; + +/* =========================================== GPIO ALTPADCFGJ PAD38_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGJ_PAD38_SR */ + GPIO_ALTPADCFGJ_PAD38_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGJ_PAD38_SR_Enum; + +/* =========================================== GPIO ALTPADCFGJ PAD37_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGJ_PAD37_SR */ + GPIO_ALTPADCFGJ_PAD37_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGJ_PAD37_SR_Enum; + +/* ============================================ GPIO ALTPADCFGJ PAD36_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGJ_PAD36_SR */ + GPIO_ALTPADCFGJ_PAD36_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGJ_PAD36_SR_Enum; + +/* ====================================================== ALTPADCFGK ======================================================= */ +/* =========================================== GPIO ALTPADCFGK PAD43_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGK_PAD43_SR */ + GPIO_ALTPADCFGK_PAD43_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGK_PAD43_SR_Enum; + +/* =========================================== GPIO ALTPADCFGK PAD42_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGK_PAD42_SR */ + GPIO_ALTPADCFGK_PAD42_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGK_PAD42_SR_Enum; + +/* =========================================== GPIO ALTPADCFGK PAD41_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGK_PAD41_SR */ + GPIO_ALTPADCFGK_PAD41_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGK_PAD41_SR_Enum; + +/* ============================================ GPIO ALTPADCFGK PAD40_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGK_PAD40_SR */ + GPIO_ALTPADCFGK_PAD40_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGK_PAD40_SR_Enum; + +/* ====================================================== ALTPADCFGL ======================================================= */ +/* =========================================== GPIO ALTPADCFGL PAD47_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGL_PAD47_SR */ + GPIO_ALTPADCFGL_PAD47_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGL_PAD47_SR_Enum; + +/* =========================================== GPIO ALTPADCFGL PAD46_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGL_PAD46_SR */ + GPIO_ALTPADCFGL_PAD46_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGL_PAD46_SR_Enum; + +/* =========================================== GPIO ALTPADCFGL PAD45_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGL_PAD45_SR */ + GPIO_ALTPADCFGL_PAD45_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGL_PAD45_SR_Enum; + +/* ============================================ GPIO ALTPADCFGL PAD44_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGL_PAD44_SR */ + GPIO_ALTPADCFGL_PAD44_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGL_PAD44_SR_Enum; + +/* ====================================================== ALTPADCFGM ======================================================= */ +/* =========================================== GPIO ALTPADCFGM PAD51_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGM_PAD51_SR */ + GPIO_ALTPADCFGM_PAD51_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGM_PAD51_SR_Enum; + +/* =========================================== GPIO ALTPADCFGM PAD50_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGM_PAD50_SR */ + GPIO_ALTPADCFGM_PAD50_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGM_PAD50_SR_Enum; + +/* =========================================== GPIO ALTPADCFGM PAD49_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGM_PAD49_SR */ + GPIO_ALTPADCFGM_PAD49_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGM_PAD49_SR_Enum; + +/* ============================================ GPIO ALTPADCFGM PAD48_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGM_PAD48_SR */ + GPIO_ALTPADCFGM_PAD48_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGM_PAD48_SR_Enum; + +/* ====================================================== ALTPADCFGN ======================================================= */ +/* =========================================== GPIO ALTPADCFGN PAD55_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGN_PAD55_SR */ + GPIO_ALTPADCFGN_PAD55_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGN_PAD55_SR_Enum; + +/* =========================================== GPIO ALTPADCFGN PAD54_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGN_PAD54_SR */ + GPIO_ALTPADCFGN_PAD54_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGN_PAD54_SR_Enum; + +/* =========================================== GPIO ALTPADCFGN PAD53_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGN_PAD53_SR */ + GPIO_ALTPADCFGN_PAD53_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGN_PAD53_SR_Enum; + +/* ============================================ GPIO ALTPADCFGN PAD52_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGN_PAD52_SR */ + GPIO_ALTPADCFGN_PAD52_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGN_PAD52_SR_Enum; + +/* ====================================================== ALTPADCFGO ======================================================= */ +/* =========================================== GPIO ALTPADCFGO PAD59_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGO_PAD59_SR */ + GPIO_ALTPADCFGO_PAD59_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGO_PAD59_SR_Enum; + +/* =========================================== GPIO ALTPADCFGO PAD58_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGO_PAD58_SR */ + GPIO_ALTPADCFGO_PAD58_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGO_PAD58_SR_Enum; + +/* =========================================== GPIO ALTPADCFGO PAD57_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGO_PAD57_SR */ + GPIO_ALTPADCFGO_PAD57_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGO_PAD57_SR_Enum; + +/* ============================================ GPIO ALTPADCFGO PAD56_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGO_PAD56_SR */ + GPIO_ALTPADCFGO_PAD56_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGO_PAD56_SR_Enum; + +/* ====================================================== ALTPADCFGP ======================================================= */ +/* =========================================== GPIO ALTPADCFGP PAD63_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGP_PAD63_SR */ + GPIO_ALTPADCFGP_PAD63_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGP_PAD63_SR_Enum; + +/* =========================================== GPIO ALTPADCFGP PAD62_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGP_PAD62_SR */ + GPIO_ALTPADCFGP_PAD62_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGP_PAD62_SR_Enum; + +/* =========================================== GPIO ALTPADCFGP PAD61_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGP_PAD61_SR */ + GPIO_ALTPADCFGP_PAD61_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGP_PAD61_SR_Enum; + +/* ============================================ GPIO ALTPADCFGP PAD60_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGP_PAD60_SR */ + GPIO_ALTPADCFGP_PAD60_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGP_PAD60_SR_Enum; + +/* ====================================================== ALTPADCFGQ ======================================================= */ +/* =========================================== GPIO ALTPADCFGQ PAD67_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGQ_PAD67_SR */ + GPIO_ALTPADCFGQ_PAD67_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGQ_PAD67_SR_Enum; + +/* =========================================== GPIO ALTPADCFGQ PAD66_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGQ_PAD66_SR */ + GPIO_ALTPADCFGQ_PAD66_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGQ_PAD66_SR_Enum; + +/* =========================================== GPIO ALTPADCFGQ PAD65_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGQ_PAD65_SR */ + GPIO_ALTPADCFGQ_PAD65_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGQ_PAD65_SR_Enum; + +/* ============================================ GPIO ALTPADCFGQ PAD64_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGQ_PAD64_SR */ + GPIO_ALTPADCFGQ_PAD64_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGQ_PAD64_SR_Enum; + +/* ====================================================== ALTPADCFGR ======================================================= */ +/* =========================================== GPIO ALTPADCFGR PAD71_SR [28..28] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGR_PAD71_SR */ + GPIO_ALTPADCFGR_PAD71_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGR_PAD71_SR_Enum; + +/* =========================================== GPIO ALTPADCFGR PAD70_SR [20..20] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGR_PAD70_SR */ + GPIO_ALTPADCFGR_PAD70_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGR_PAD70_SR_Enum; + +/* =========================================== GPIO ALTPADCFGR PAD69_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGR_PAD69_SR */ + GPIO_ALTPADCFGR_PAD69_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGR_PAD69_SR_Enum; + +/* ============================================ GPIO ALTPADCFGR PAD68_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGR_PAD68_SR */ + GPIO_ALTPADCFGR_PAD68_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGR_PAD68_SR_Enum; + +/* ====================================================== ALTPADCFGS ======================================================= */ +/* =========================================== GPIO ALTPADCFGS PAD73_SR [12..12] =========================================== */ +typedef enum { /*!< GPIO_ALTPADCFGS_PAD73_SR */ + GPIO_ALTPADCFGS_PAD73_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGS_PAD73_SR_Enum; + +/* ============================================ GPIO ALTPADCFGS PAD72_SR [4..4] ============================================ */ +typedef enum { /*!< GPIO_ALTPADCFGS_PAD72_SR */ + GPIO_ALTPADCFGS_PAD72_SR_SR_EN = 1, /*!< SR_EN : Enables Slew rate control on pad */ +} GPIO_ALTPADCFGS_PAD72_SR_Enum; + +/* ========================================================= SCDET ========================================================= */ +/* ======================================================== CTENCFG ======================================================== */ +/* ============================================== GPIO CTENCFG EN31 [31..31] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN31 */ + GPIO_CTENCFG_EN31_DIS = 1, /*!< DIS : Disable CT31 for output */ + GPIO_CTENCFG_EN31_EN = 0, /*!< EN : Enable CT31 for output */ +} GPIO_CTENCFG_EN31_Enum; + +/* ============================================== GPIO CTENCFG EN30 [30..30] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN30 */ + GPIO_CTENCFG_EN30_DIS = 1, /*!< DIS : Disable CT30 for output */ + GPIO_CTENCFG_EN30_EN = 0, /*!< EN : Enable CT30 for output */ +} GPIO_CTENCFG_EN30_Enum; + +/* ============================================== GPIO CTENCFG EN29 [29..29] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN29 */ + GPIO_CTENCFG_EN29_DIS = 1, /*!< DIS : Disable CT29 for output */ + GPIO_CTENCFG_EN29_EN = 0, /*!< EN : Enable CT29 for output */ +} GPIO_CTENCFG_EN29_Enum; + +/* ============================================== GPIO CTENCFG EN28 [28..28] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN28 */ + GPIO_CTENCFG_EN28_DIS = 1, /*!< DIS : Disable CT28 for output */ + GPIO_CTENCFG_EN28_EN = 0, /*!< EN : Enable CT28 for output */ +} GPIO_CTENCFG_EN28_Enum; + +/* ============================================== GPIO CTENCFG EN27 [27..27] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN27 */ + GPIO_CTENCFG_EN27_DIS = 1, /*!< DIS : Disable CT27 for output */ + GPIO_CTENCFG_EN27_EN = 0, /*!< EN : Enable CT27 for output */ +} GPIO_CTENCFG_EN27_Enum; + +/* ============================================== GPIO CTENCFG EN26 [26..26] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN26 */ + GPIO_CTENCFG_EN26_DIS = 1, /*!< DIS : Disable CT26 for output */ + GPIO_CTENCFG_EN26_EN = 0, /*!< EN : Enable CT26 for output */ +} GPIO_CTENCFG_EN26_Enum; + +/* ============================================== GPIO CTENCFG EN25 [25..25] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN25 */ + GPIO_CTENCFG_EN25_DIS = 1, /*!< DIS : Disable CT25 for output */ + GPIO_CTENCFG_EN25_EN = 0, /*!< EN : Enable CT25 for output */ +} GPIO_CTENCFG_EN25_Enum; + +/* ============================================== GPIO CTENCFG EN24 [24..24] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN24 */ + GPIO_CTENCFG_EN24_DIS = 1, /*!< DIS : Disable CT24 for output */ + GPIO_CTENCFG_EN24_EN = 0, /*!< EN : Enable CT24 for output */ +} GPIO_CTENCFG_EN24_Enum; + +/* ============================================== GPIO CTENCFG EN23 [23..23] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN23 */ + GPIO_CTENCFG_EN23_DIS = 1, /*!< DIS : Disable CT23 for output */ + GPIO_CTENCFG_EN23_EN = 0, /*!< EN : Enable CT23 for output */ +} GPIO_CTENCFG_EN23_Enum; + +/* ============================================== GPIO CTENCFG EN22 [22..22] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN22 */ + GPIO_CTENCFG_EN22_DIS = 1, /*!< DIS : Disable CT22 for output */ + GPIO_CTENCFG_EN22_EN = 0, /*!< EN : Enable CT22 for output */ +} GPIO_CTENCFG_EN22_Enum; + +/* ============================================== GPIO CTENCFG EN21 [21..21] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN21 */ + GPIO_CTENCFG_EN21_DIS = 1, /*!< DIS : Disable CT21 for output */ + GPIO_CTENCFG_EN21_EN = 0, /*!< EN : Enable CT21 for output */ +} GPIO_CTENCFG_EN21_Enum; + +/* ============================================== GPIO CTENCFG EN20 [20..20] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN20 */ + GPIO_CTENCFG_EN20_DIS = 1, /*!< DIS : Disable CT20 for output */ + GPIO_CTENCFG_EN20_EN = 0, /*!< EN : Enable CT20 for output */ +} GPIO_CTENCFG_EN20_Enum; + +/* ============================================== GPIO CTENCFG EN19 [19..19] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN19 */ + GPIO_CTENCFG_EN19_DIS = 1, /*!< DIS : Disable CT19 for output */ + GPIO_CTENCFG_EN19_EN = 0, /*!< EN : Enable CT19 for output */ +} GPIO_CTENCFG_EN19_Enum; + +/* ============================================== GPIO CTENCFG EN18 [18..18] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN18 */ + GPIO_CTENCFG_EN18_DIS = 1, /*!< DIS : Disable CT18 for output */ + GPIO_CTENCFG_EN18_EN = 0, /*!< EN : Enable CT18 for output */ +} GPIO_CTENCFG_EN18_Enum; + +/* ============================================== GPIO CTENCFG EN17 [17..17] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN17 */ + GPIO_CTENCFG_EN17_DIS = 1, /*!< DIS : Disable CT17 for output */ + GPIO_CTENCFG_EN17_EN = 0, /*!< EN : Enable CT17 for output */ +} GPIO_CTENCFG_EN17_Enum; + +/* ============================================== GPIO CTENCFG EN16 [16..16] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN16 */ + GPIO_CTENCFG_EN16_DIS = 1, /*!< DIS : Disable CT16 for output */ + GPIO_CTENCFG_EN16_EN = 0, /*!< EN : Enable CT16 for output */ +} GPIO_CTENCFG_EN16_Enum; + +/* ============================================== GPIO CTENCFG EN15 [15..15] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN15 */ + GPIO_CTENCFG_EN15_DIS = 1, /*!< DIS : Disable CT15 for output */ + GPIO_CTENCFG_EN15_EN = 0, /*!< EN : Enable CT15 for output */ +} GPIO_CTENCFG_EN15_Enum; + +/* ============================================== GPIO CTENCFG EN14 [14..14] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN14 */ + GPIO_CTENCFG_EN14_DIS = 1, /*!< DIS : Disable CT14 for output */ + GPIO_CTENCFG_EN14_EN = 0, /*!< EN : Enable CT14 for output */ +} GPIO_CTENCFG_EN14_Enum; + +/* ============================================== GPIO CTENCFG EN13 [13..13] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN13 */ + GPIO_CTENCFG_EN13_DIS = 1, /*!< DIS : Disable CT13 for output */ + GPIO_CTENCFG_EN13_EN = 0, /*!< EN : Enable CT13 for output */ +} GPIO_CTENCFG_EN13_Enum; + +/* ============================================== GPIO CTENCFG EN12 [12..12] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN12 */ + GPIO_CTENCFG_EN12_DIS = 1, /*!< DIS : Disable CT12 for output */ + GPIO_CTENCFG_EN12_EN = 0, /*!< EN : Enable CT12 for output */ +} GPIO_CTENCFG_EN12_Enum; + +/* ============================================== GPIO CTENCFG EN11 [11..11] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN11 */ + GPIO_CTENCFG_EN11_DIS = 1, /*!< DIS : Disable CT11 for output */ + GPIO_CTENCFG_EN11_EN = 0, /*!< EN : Enable CT11 for output */ +} GPIO_CTENCFG_EN11_Enum; + +/* ============================================== GPIO CTENCFG EN10 [10..10] =============================================== */ +typedef enum { /*!< GPIO_CTENCFG_EN10 */ + GPIO_CTENCFG_EN10_DIS = 1, /*!< DIS : Disable CT10 for output */ + GPIO_CTENCFG_EN10_EN = 0, /*!< EN : Enable CT10 for output */ +} GPIO_CTENCFG_EN10_Enum; + +/* ================================================ GPIO CTENCFG EN9 [9..9] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN9 */ + GPIO_CTENCFG_EN9_DIS = 0, /*!< DIS : Disable CT9 for output */ +} GPIO_CTENCFG_EN9_Enum; + +/* ================================================ GPIO CTENCFG EN8 [8..8] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN8 */ + GPIO_CTENCFG_EN8_DIS = 1, /*!< DIS : Disable CT8 for output */ + GPIO_CTENCFG_EN8_EN = 0, /*!< EN : Enable CT8 for output */ +} GPIO_CTENCFG_EN8_Enum; + +/* ================================================ GPIO CTENCFG EN7 [7..7] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN7 */ + GPIO_CTENCFG_EN7_DIS = 1, /*!< DIS : Disable CT7 for output */ + GPIO_CTENCFG_EN7_EN = 0, /*!< EN : Enable CT7 for output */ +} GPIO_CTENCFG_EN7_Enum; + +/* ================================================ GPIO CTENCFG EN6 [6..6] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN6 */ + GPIO_CTENCFG_EN6_DIS = 1, /*!< DIS : Disable CT6 for output */ + GPIO_CTENCFG_EN6_EN = 0, /*!< EN : Enable CT6 for output */ +} GPIO_CTENCFG_EN6_Enum; + +/* ================================================ GPIO CTENCFG EN5 [5..5] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN5 */ + GPIO_CTENCFG_EN5_DIS = 1, /*!< DIS : Disable CT5 for output */ + GPIO_CTENCFG_EN5_EN = 0, /*!< EN : Enable CT5 for output */ +} GPIO_CTENCFG_EN5_Enum; + +/* ================================================ GPIO CTENCFG EN4 [4..4] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN4 */ + GPIO_CTENCFG_EN4_DIS = 1, /*!< DIS : Disable CT4 for output */ + GPIO_CTENCFG_EN4_EN = 0, /*!< EN : Enable CT4 for output */ +} GPIO_CTENCFG_EN4_Enum; + +/* ================================================ GPIO CTENCFG EN3 [3..3] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN3 */ + GPIO_CTENCFG_EN3_DIS = 1, /*!< DIS : Disable CT3 for output */ + GPIO_CTENCFG_EN3_EN = 0, /*!< EN : Enable CT3 for output */ +} GPIO_CTENCFG_EN3_Enum; + +/* ================================================ GPIO CTENCFG EN2 [2..2] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN2 */ + GPIO_CTENCFG_EN2_DIS = 1, /*!< DIS : Disable CT2 for output */ + GPIO_CTENCFG_EN2_EN = 0, /*!< EN : Enable CT2 for output */ +} GPIO_CTENCFG_EN2_Enum; + +/* ================================================ GPIO CTENCFG EN1 [1..1] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN1 */ + GPIO_CTENCFG_EN1_DIS = 1, /*!< DIS : Disable CT1 for output */ + GPIO_CTENCFG_EN1_EN = 0, /*!< EN : Enable CT1 for output */ +} GPIO_CTENCFG_EN1_Enum; + +/* ================================================ GPIO CTENCFG EN0 [0..0] ================================================ */ +typedef enum { /*!< GPIO_CTENCFG_EN0 */ + GPIO_CTENCFG_EN0_DIS = 1, /*!< DIS : Disable CT0 for output */ + GPIO_CTENCFG_EN0_EN = 0, /*!< EN : Enable CT0 for output */ +} GPIO_CTENCFG_EN0_Enum; + +/* ======================================================== INT0EN ========================================================= */ +/* ======================================================= INT0STAT ======================================================== */ +/* ======================================================== INT0CLR ======================================================== */ +/* ======================================================== INT0SET ======================================================== */ +/* ======================================================== INT1EN ========================================================= */ +/* ======================================================= INT1STAT ======================================================== */ +/* ======================================================== INT1CLR ======================================================== */ +/* ======================================================== INT1SET ======================================================== */ +/* ======================================================== INT2EN ========================================================= */ +/* ======================================================= INT2STAT ======================================================== */ +/* ======================================================== INT2CLR ======================================================== */ +/* ======================================================== INT2SET ======================================================== */ +/* ======================================================== DBGCTRL ======================================================== */ + + +/* =========================================================================================================================== */ +/* ================ IOM0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= FIFO ========================================================== */ +/* ======================================================== FIFOPTR ======================================================== */ +/* ======================================================== FIFOTHR ======================================================== */ +/* ======================================================== FIFOPOP ======================================================== */ +/* ======================================================= FIFOPUSH ======================================================== */ +/* ======================================================= FIFOCTRL ======================================================== */ +/* ======================================================== FIFOLOC ======================================================== */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ======================================================== CLKCFG ========================================================= */ +/* ============================================== IOM0 CLKCFG DIVEN [12..12] =============================================== */ +typedef enum { /*!< IOM0_CLKCFG_DIVEN */ + IOM0_CLKCFG_DIVEN_DIS = 0, /*!< DIS : Disable TOTPER division. */ + IOM0_CLKCFG_DIVEN_EN = 1, /*!< EN : Enable TOTPER division. */ +} IOM0_CLKCFG_DIVEN_Enum; + +/* =============================================== IOM0 CLKCFG DIV3 [11..11] =============================================== */ +typedef enum { /*!< IOM0_CLKCFG_DIV3 */ + IOM0_CLKCFG_DIV3_DIS = 0, /*!< DIS : Select divide by 1. */ + IOM0_CLKCFG_DIV3_EN = 1, /*!< EN : Select divide by 3. */ +} IOM0_CLKCFG_DIV3_Enum; + +/* =============================================== IOM0 CLKCFG FSEL [8..10] ================================================ */ +typedef enum { /*!< IOM0_CLKCFG_FSEL */ + IOM0_CLKCFG_FSEL_MIN_PWR = 0, /*!< MIN_PWR : Selects the minimum power clock. This setting should + be used whenever the IOM is not active. */ + IOM0_CLKCFG_FSEL_HFRC = 1, /*!< HFRC : Selects the HFRC as the input clock. */ + IOM0_CLKCFG_FSEL_HFRC_DIV2 = 2, /*!< HFRC_DIV2 : Selects the HFRC / 2 as the input clock. */ + IOM0_CLKCFG_FSEL_HFRC_DIV4 = 3, /*!< HFRC_DIV4 : Selects the HFRC / 4 as the input clock. */ + IOM0_CLKCFG_FSEL_HFRC_DIV8 = 4, /*!< HFRC_DIV8 : Selects the HFRC / 8 as the input clock. */ + IOM0_CLKCFG_FSEL_HFRC_DIV16 = 5, /*!< HFRC_DIV16 : Selects the HFRC / 16 as the input clock. */ + IOM0_CLKCFG_FSEL_HFRC_DIV32 = 6, /*!< HFRC_DIV32 : Selects the HFRC / 32 as the input clock. */ + IOM0_CLKCFG_FSEL_HFRC_DIV64 = 7, /*!< HFRC_DIV64 : Selects the HFRC / 64 as the input clock. */ +} IOM0_CLKCFG_FSEL_Enum; + +/* ====================================================== SUBMODCTRL ======================================================= */ +/* =========================================== IOM0 SUBMODCTRL SMOD1TYPE [5..7] ============================================ */ +typedef enum { /*!< IOM0_SUBMODCTRL_SMOD1TYPE */ + IOM0_SUBMODCTRL_SMOD1TYPE_MSPI = 0, /*!< MSPI : SPI Master submodule */ + IOM0_SUBMODCTRL_SMOD1TYPE_I2C_MASTER = 1, /*!< I2C_MASTER : MI2C submodule */ + IOM0_SUBMODCTRL_SMOD1TYPE_SSPI = 2, /*!< SSPI : SPI Slave submodule */ + IOM0_SUBMODCTRL_SMOD1TYPE_SI2C = 3, /*!< SI2C : I2C Slave submodule */ + IOM0_SUBMODCTRL_SMOD1TYPE_NA = 7, /*!< NA : NOT INSTALLED */ +} IOM0_SUBMODCTRL_SMOD1TYPE_Enum; + +/* =========================================== IOM0 SUBMODCTRL SMOD0TYPE [1..3] ============================================ */ +typedef enum { /*!< IOM0_SUBMODCTRL_SMOD0TYPE */ + IOM0_SUBMODCTRL_SMOD0TYPE_SPI_MASTER = 0, /*!< SPI_MASTER : MSPI submodule */ + IOM0_SUBMODCTRL_SMOD0TYPE_I2C_MASTER = 1, /*!< I2C_MASTER : I2C Master submodule */ + IOM0_SUBMODCTRL_SMOD0TYPE_SSPI = 2, /*!< SSPI : SPI Slave submodule */ + IOM0_SUBMODCTRL_SMOD0TYPE_SI2C = 3, /*!< SI2C : I2C Slave submodule */ + IOM0_SUBMODCTRL_SMOD0TYPE_NA = 7, /*!< NA : NOT INSTALLED */ +} IOM0_SUBMODCTRL_SMOD0TYPE_Enum; + +/* ========================================================== CMD ========================================================== */ +/* ================================================== IOM0 CMD CMD [0..4] ================================================== */ +typedef enum { /*!< IOM0_CMD_CMD */ + IOM0_CMD_CMD_WRITE = 1, /*!< WRITE : Write command using count of offset bytes specified + in the OFFSETCNT field */ + IOM0_CMD_CMD_READ = 2, /*!< READ : Read command using count of offset bytes specified in + the OFFSETCNT field */ + IOM0_CMD_CMD_TMW = 3, /*!< TMW : SPI only. Test mode to do constant write operations. Useful + for debug and power measurements. Will continually send + data in OFFSET field */ + IOM0_CMD_CMD_TMR = 4, /*!< TMR : SPI Only. Test mode to do constant read operations. Useful + for debug and power measurements. Will continually read + data from external input */ +} IOM0_CMD_CMD_Enum; + +/* ========================================================== DCX ========================================================== */ +/* ================================================= IOM0 DCX DCXEN [4..4] ================================================= */ +typedef enum { /*!< IOM0_DCX_DCXEN */ + IOM0_DCX_DCXEN_DIS = 0, /*!< DIS : Disable DCX. */ +} IOM0_DCX_DCXEN_Enum; + +/* ======================================================= OFFSETHI ======================================================== */ +/* ======================================================== CMDSTAT ======================================================== */ +/* ============================================== IOM0 CMDSTAT CMDSTAT [5..7] ============================================== */ +typedef enum { /*!< IOM0_CMDSTAT_CMDSTAT */ + IOM0_CMDSTAT_CMDSTAT_ERR = 1, /*!< ERR : Error encountered with command */ + IOM0_CMDSTAT_CMDSTAT_ACTIVE = 2, /*!< ACTIVE : Actively processing command */ + IOM0_CMDSTAT_CMDSTAT_IDLE = 4, /*!< IDLE : Idle state, no active command, no error */ + IOM0_CMDSTAT_CMDSTAT_WAIT = 6, /*!< WAIT : Command in progress, but waiting on data from host */ +} IOM0_CMDSTAT_CMDSTAT_Enum; + +/* ======================================================= DMATRIGEN ======================================================= */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +/* ======================================================== DMACFG ========================================================= */ +/* ============================================== IOM0 DMACFG DPWROFF [9..9] =============================================== */ +typedef enum { /*!< IOM0_DMACFG_DPWROFF */ + IOM0_DMACFG_DPWROFF_DIS = 0, /*!< DIS : Power off disabled */ + IOM0_DMACFG_DPWROFF_EN = 1, /*!< EN : Power off enabled */ +} IOM0_DMACFG_DPWROFF_Enum; + +/* =============================================== IOM0 DMACFG DMAPRI [8..8] =============================================== */ +typedef enum { /*!< IOM0_DMACFG_DMAPRI */ + IOM0_DMACFG_DMAPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + IOM0_DMACFG_DMAPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} IOM0_DMACFG_DMAPRI_Enum; + +/* =============================================== IOM0 DMACFG DMADIR [1..1] =============================================== */ +typedef enum { /*!< IOM0_DMACFG_DMADIR */ + IOM0_DMACFG_DMADIR_P2M = 0, /*!< P2M : Peripheral to Memory (SRAM) transaction. To be set when + doing IOM read operations, ie reading data from external + devices. */ + IOM0_DMACFG_DMADIR_M2P = 1, /*!< M2P : Memory to Peripheral transaction. To be set when doing + IOM write operations, ie writing data to external devices. */ +} IOM0_DMACFG_DMADIR_Enum; + +/* =============================================== IOM0 DMACFG DMAEN [0..0] ================================================ */ +typedef enum { /*!< IOM0_DMACFG_DMAEN */ + IOM0_DMACFG_DMAEN_DIS = 0, /*!< DIS : Disable DMA Function */ + IOM0_DMACFG_DMAEN_EN = 1, /*!< EN : Enable DMA Function */ +} IOM0_DMACFG_DMAEN_Enum; + +/* ====================================================== DMATOTCOUNT ====================================================== */ +/* ====================================================== DMATARGADDR ====================================================== */ +/* ======================================================== DMASTAT ======================================================== */ +/* ========================================================= CQCFG ========================================================= */ +/* ============================================= IOM0 CQCFG MSPIFLGSEL [2..3] ============================================== */ +typedef enum { /*!< IOM0_CQCFG_MSPIFLGSEL */ + IOM0_CQCFG_MSPIFLGSEL_MSPI0FLGSEL = 0, /*!< MSPI0FLGSEL : Selects MPSI0 as source of signals used in CGFLAG[11:8]. */ + IOM0_CQCFG_MSPIFLGSEL_MSPI1FLGSEL = 1, /*!< MSPI1FLGSEL : Selects MPSI1 as source of signals used in CGFLAG[11:8]. */ + IOM0_CQCFG_MSPIFLGSEL_MSPI2FLGSEL = 2, /*!< MSPI2FLGSEL : Selects MPSI2 as source of signals used in CGFLAG[11:8]. */ +} IOM0_CQCFG_MSPIFLGSEL_Enum; + +/* ================================================ IOM0 CQCFG CQPRI [1..1] ================================================ */ +typedef enum { /*!< IOM0_CQCFG_CQPRI */ + IOM0_CQCFG_CQPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + IOM0_CQCFG_CQPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} IOM0_CQCFG_CQPRI_Enum; + +/* ================================================ IOM0 CQCFG CQEN [0..0] ================================================= */ +typedef enum { /*!< IOM0_CQCFG_CQEN */ + IOM0_CQCFG_CQEN_DIS = 0, /*!< DIS : Disable CQ Function */ + IOM0_CQCFG_CQEN_EN = 1, /*!< EN : Enable CQ Function */ +} IOM0_CQCFG_CQEN_Enum; + +/* ======================================================== CQADDR ========================================================= */ +/* ======================================================== CQSTAT ========================================================= */ +/* ======================================================== CQFLAGS ======================================================== */ +/* ====================================================== CQSETCLEAR ======================================================= */ +/* ======================================================= CQPAUSEEN ======================================================= */ +/* ============================================= IOM0 CQPAUSEEN CQPEN [0..15] ============================================== */ +typedef enum { /*!< IOM0_CQPAUSEEN_CQPEN */ + IOM0_CQPAUSEEN_CQPEN_IDXEQ = 32768, /*!< IDXEQ : Pauses the command queue when the current index matches + the last index */ + IOM0_CQPAUSEEN_CQPEN_BLEXOREN = 16384, /*!< BLEXOREN : Pause command queue when input BLE bit XORed with + SWFLAG4 is '1' */ + IOM0_CQPAUSEEN_CQPEN_IOMXOREN = 8192, /*!< IOMXOREN : Pause command queue when input IOM bit XORed with + SWFLAG3 is '1' */ + IOM0_CQPAUSEEN_CQPEN_GPIOXOREN = 4096, /*!< GPIOXOREN : Pause command queue when input GPIO irq_bit XORed + with SWFLAG2 is '1' */ + IOM0_CQPAUSEEN_CQPEN_MSPI1XNOREN = 2048, /*!< MSPI1XNOREN : Pause command queue when selected MSPI input bit + 1 (buffer 1 ready) XNORed with SWFLAG1 is '1'. MSPI used + is selected in CQCFG.MSPIFLGSEL field. */ + IOM0_CQPAUSEEN_CQPEN_MSPI0XNOREN = 1024, /*!< MSPI0XNOREN : Pause command queue when selected MSPI input bit + 0 (buffer 0 ready) XNORed with SWFLAG1 is '1'. MSPI used + is selected in CQCFG.MSPIFLGSEL field. */ + IOM0_CQPAUSEEN_CQPEN_MSPI1XOREN = 512, /*!< MSPI1XOREN : Pause command queue when selected MSPI input bit + 1 (buffer 1 ready) XORed with SWFLAG1 is '1'. MSPI used + is selected in CQCFG.MSPIFLGSEL field. */ + IOM0_CQPAUSEEN_CQPEN_MSPI0XOREN = 256, /*!< MSPI0XOREN : Pause command queue when selected MSPI input bit + 0 (buffer 0 ready) XORed with SWFLAG1 is '1'. MSPI used + is selected in CQCFG.MSPIFLGSEL field. */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN7 = 128, /*!< SWFLAGEN7 : Pause the command queue when software flag bit 7 + is '1'. */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN6 = 64, /*!< SWFLAGEN6 : Pause the command queue when software flag bit 6 + is '1' */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN5 = 32, /*!< SWFLAGEN5 : Pause the command queue when software flag bit 5 + is '1' */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN4 = 16, /*!< SWFLAGEN4 : Pause the command queue when software flag bit 4 + is '1' */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN3 = 8, /*!< SWFLAGEN3 : Pause the command queue when software flag bit 3 + is '1' */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN2 = 4, /*!< SWFLAGEN2 : Pause the command queue when software flag bit 2 + is '1' */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN1 = 2, /*!< SWFLAGEN1 : Pause the command queue when software flag bit 1 + is '1' */ + IOM0_CQPAUSEEN_CQPEN_SWFLAGEN0 = 1, /*!< SWFLAGEN0 : Pause the command queue when software flag bit 0 + is '1' */ +} IOM0_CQPAUSEEN_CQPEN_Enum; + +/* ======================================================= CQCURIDX ======================================================== */ +/* ======================================================= CQENDIDX ======================================================== */ +/* ======================================================== STATUS ========================================================= */ +/* =============================================== IOM0 STATUS IDLEST [2..2] =============================================== */ +typedef enum { /*!< IOM0_STATUS_IDLEST */ + IOM0_STATUS_IDLEST_IDLE = 1, /*!< IDLE : The I/O state machine is in the idle state. */ +} IOM0_STATUS_IDLEST_Enum; + +/* =============================================== IOM0 STATUS CMDACT [1..1] =============================================== */ +typedef enum { /*!< IOM0_STATUS_CMDACT */ + IOM0_STATUS_CMDACT_ACTIVE = 1, /*!< ACTIVE : An I/O command is active. Indicates the active module + has an active command and is processing this. De-asserted + when the command is completed. */ +} IOM0_STATUS_CMDACT_Enum; + +/* ================================================ IOM0 STATUS ERR [0..0] ================================================= */ +typedef enum { /*!< IOM0_STATUS_ERR */ + IOM0_STATUS_ERR_ERROR = 1, /*!< ERROR : Bit has been deprecated and will always return 0. */ +} IOM0_STATUS_ERR_Enum; + +/* ======================================================== MSPICFG ======================================================== */ +/* ============================================= IOM0 MSPICFG SPILSB [23..23] ============================================== */ +typedef enum { /*!< IOM0_MSPICFG_SPILSB */ + IOM0_MSPICFG_SPILSB_MSB = 0, /*!< MSB : Send and receive MSB bit first */ + IOM0_MSPICFG_SPILSB_LSB = 1, /*!< LSB : Send and receive LSB bit first */ +} IOM0_MSPICFG_SPILSB_Enum; + +/* ============================================= IOM0 MSPICFG RDFCPOL [22..22] ============================================= */ +typedef enum { /*!< IOM0_MSPICFG_RDFCPOL */ + IOM0_MSPICFG_RDFCPOL_HIGH = 0, /*!< HIGH : Flow control signal high creates flow control. */ + IOM0_MSPICFG_RDFCPOL_LOW = 1, /*!< LOW : Flow control signal low creates flow control. */ +} IOM0_MSPICFG_RDFCPOL_Enum; + +/* ============================================= IOM0 MSPICFG WTFCPOL [21..21] ============================================= */ +typedef enum { /*!< IOM0_MSPICFG_WTFCPOL */ + IOM0_MSPICFG_WTFCPOL_HIGH = 0, /*!< HIGH : Flow control signal high(1) creates flow control and + byte transfers will stop until the flow control signal + goes low. */ + IOM0_MSPICFG_WTFCPOL_LOW = 1, /*!< LOW : Flow control signal low(0) creates flow control and byte + transfers will stop until the flow control signal goes + high(1). */ +} IOM0_MSPICFG_WTFCPOL_Enum; + +/* ============================================= IOM0 MSPICFG WTFCIRQ [20..20] ============================================= */ +typedef enum { /*!< IOM0_MSPICFG_WTFCIRQ */ + IOM0_MSPICFG_WTFCIRQ_MISO = 0, /*!< MISO : MISO is used as the write mode flow control signal. */ + IOM0_MSPICFG_WTFCIRQ_IRQ = 1, /*!< IRQ : IRQ is used as the write mode flow control signal. */ +} IOM0_MSPICFG_WTFCIRQ_Enum; + +/* ============================================= IOM0 MSPICFG MOSIINV [18..18] ============================================= */ +typedef enum { /*!< IOM0_MSPICFG_MOSIINV */ + IOM0_MSPICFG_MOSIINV_NORMAL = 0, /*!< NORMAL : MOSI is set to 0 in read mode and 1 in write mode. */ + IOM0_MSPICFG_MOSIINV_INVERT = 1, /*!< INVERT : MOSI is set to 1 in read mode and 0 in write mode. */ +} IOM0_MSPICFG_MOSIINV_Enum; + +/* ============================================== IOM0 MSPICFG RDFC [17..17] =============================================== */ +typedef enum { /*!< IOM0_MSPICFG_RDFC */ + IOM0_MSPICFG_RDFC_DIS = 0, /*!< DIS : Read mode flow control disabled. */ + IOM0_MSPICFG_RDFC_EN = 1, /*!< EN : Read mode flow control enabled. */ +} IOM0_MSPICFG_RDFC_Enum; + +/* ============================================== IOM0 MSPICFG WTFC [16..16] =============================================== */ +typedef enum { /*!< IOM0_MSPICFG_WTFC */ + IOM0_MSPICFG_WTFC_DIS = 0, /*!< DIS : Write mode flow control disabled. */ + IOM0_MSPICFG_WTFC_EN = 1, /*!< EN : Write mode flow control enabled. */ +} IOM0_MSPICFG_WTFC_Enum; + +/* =============================================== IOM0 MSPICFG SPHA [1..1] ================================================ */ +typedef enum { /*!< IOM0_MSPICFG_SPHA */ + IOM0_MSPICFG_SPHA_SAMPLE_LEADING_EDGE = 0, /*!< SAMPLE_LEADING_EDGE : Sample on the leading (first) clock edge. */ + IOM0_MSPICFG_SPHA_SAMPLE_TRAILING_EDGE = 1, /*!< SAMPLE_TRAILING_EDGE : Sample on the trailing (second) clock + edge. */ +} IOM0_MSPICFG_SPHA_Enum; + +/* =============================================== IOM0 MSPICFG SPOL [0..0] ================================================ */ +typedef enum { /*!< IOM0_MSPICFG_SPOL */ + IOM0_MSPICFG_SPOL_CLK_BASE_0 = 0, /*!< CLK_BASE_0 : The base value of the clock is 0. */ + IOM0_MSPICFG_SPOL_CLK_BASE_1 = 1, /*!< CLK_BASE_1 : The base value of the clock is 1. */ +} IOM0_MSPICFG_SPOL_Enum; + +/* ======================================================== MI2CCFG ======================================================== */ +/* =============================================== IOM0 MI2CCFG ARBEN [2..2] =============================================== */ +typedef enum { /*!< IOM0_MI2CCFG_ARBEN */ + IOM0_MI2CCFG_ARBEN_ARBEN = 1, /*!< ARBEN : Enable multi-master bus arbitration support for this + i2c master */ + IOM0_MI2CCFG_ARBEN_ARBDIS = 0, /*!< ARBDIS : Disable multi-master bus arbitration support for this + i2c master */ +} IOM0_MI2CCFG_ARBEN_Enum; + +/* ============================================== IOM0 MI2CCFG I2CLSB [1..1] =============================================== */ +typedef enum { /*!< IOM0_MI2CCFG_I2CLSB */ + IOM0_MI2CCFG_I2CLSB_MSBFIRST = 0, /*!< MSBFIRST : Byte data is transmitted MSB first onto the bus/read + from the bus */ + IOM0_MI2CCFG_I2CLSB_LSBFIRST = 1, /*!< LSBFIRST : Byte data is transmitted LSB first onto the bus/read + from the bus */ +} IOM0_MI2CCFG_I2CLSB_Enum; + +/* ============================================== IOM0 MI2CCFG ADDRSZ [0..0] =============================================== */ +typedef enum { /*!< IOM0_MI2CCFG_ADDRSZ */ + IOM0_MI2CCFG_ADDRSZ_ADDRSZ7 = 0, /*!< ADDRSZ7 : Use 7b addressing for I2C master transactions */ + IOM0_MI2CCFG_ADDRSZ_ADDRSZ10 = 1, /*!< ADDRSZ10 : Use 10b addressing for I2C master transactions */ +} IOM0_MI2CCFG_ADDRSZ_Enum; + +/* ======================================================== DEVCFG ========================================================= */ +/* ======================================================== IOMDBG ========================================================= */ + + +/* =========================================================================================================================== */ +/* ================ IOSLAVE ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== FIFOPTR ======================================================== */ +/* ======================================================== FIFOCFG ======================================================== */ +/* ======================================================== FIFOTHR ======================================================== */ +/* ========================================================= FUPD ========================================================== */ +/* ======================================================== FIFOCTR ======================================================== */ +/* ======================================================== FIFOINC ======================================================== */ +/* ========================================================== CFG ========================================================== */ +/* ============================================== IOSLAVE CFG IFCEN [31..31] =============================================== */ +typedef enum { /*!< IOSLAVE_CFG_IFCEN */ + IOSLAVE_CFG_IFCEN_DIS = 0, /*!< DIS : Disable the IOSLAVE */ + IOSLAVE_CFG_IFCEN_EN = 1, /*!< EN : Enable the IOSLAVE */ +} IOSLAVE_CFG_IFCEN_Enum; + +/* ============================================== IOSLAVE CFG STARTRD [4..4] =============================================== */ +typedef enum { /*!< IOSLAVE_CFG_STARTRD */ + IOSLAVE_CFG_STARTRD_LATE = 0, /*!< LATE : Initiate I/O RAM read late in each transferred byte. */ + IOSLAVE_CFG_STARTRD_EARLY = 1, /*!< EARLY : Initiate I/O RAM read early in each transferred byte. */ +} IOSLAVE_CFG_STARTRD_Enum; + +/* ================================================ IOSLAVE CFG LSB [2..2] ================================================= */ +typedef enum { /*!< IOSLAVE_CFG_LSB */ + IOSLAVE_CFG_LSB_MSB_FIRST = 0, /*!< MSB_FIRST : Data is assumed to be sent and received with MSB + first. */ + IOSLAVE_CFG_LSB_LSB_FIRST = 1, /*!< LSB_FIRST : Data is assumed to be sent and received with LSB + first. */ +} IOSLAVE_CFG_LSB_Enum; + +/* ================================================ IOSLAVE CFG SPOL [1..1] ================================================ */ +typedef enum { /*!< IOSLAVE_CFG_SPOL */ + IOSLAVE_CFG_SPOL_SPI_MODES_0_3 = 0, /*!< SPI_MODES_0_3 : Polarity 0, handles SPI modes 0 and 3. */ + IOSLAVE_CFG_SPOL_SPI_MODES_1_2 = 1, /*!< SPI_MODES_1_2 : Polarity 1, handles SPI modes 1 and 2. */ +} IOSLAVE_CFG_SPOL_Enum; + +/* =============================================== IOSLAVE CFG IFCSEL [0..0] =============================================== */ +typedef enum { /*!< IOSLAVE_CFG_IFCSEL */ + IOSLAVE_CFG_IFCSEL_I2C = 0, /*!< I2C : Selects I2C interface for the IO Slave. */ + IOSLAVE_CFG_IFCSEL_SPI = 1, /*!< SPI : Selects SPI interface for the IO Slave. */ +} IOSLAVE_CFG_IFCSEL_Enum; + +/* ========================================================= PRENC ========================================================= */ +/* ======================================================= IOINTCTL ======================================================== */ +/* ======================================================== GENADD ========================================================= */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ====================================================== REGACCINTEN ====================================================== */ +/* ===================================================== REGACCINTSTAT ===================================================== */ +/* ===================================================== REGACCINTCLR ====================================================== */ +/* ===================================================== REGACCINTSET ====================================================== */ + + +/* =========================================================================================================================== */ +/* ================ MCUCTRL ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CHIPPN ========================================================= */ +/* ============================================ MCUCTRL CHIPPN PARTNUM [0..31] ============================================= */ +typedef enum { /*!< MCUCTRL_CHIPPN_PARTNUM */ + MCUCTRL_CHIPPN_PARTNUM_APOLLO3 = 100663296,/*!< APOLLO3 : Apollo3 part number is 0x06xxxxxx. */ + MCUCTRL_CHIPPN_PARTNUM_APOLLO2 = 50331648,/*!< APOLLO2 : Apollo2 part number is 0x03xxxxxx. */ + MCUCTRL_CHIPPN_PARTNUM_APOLLO = 16777216,/*!< APOLLO : Apollo part number is 0x01xxxxxx. */ + MCUCTRL_CHIPPN_PARTNUM_PN_M = -16777216,/*!< PN_M : Mask for the part number field. */ + MCUCTRL_CHIPPN_PARTNUM_PN_S = 24, /*!< PN_S : Bit position for the part number field. */ + MCUCTRL_CHIPPN_PARTNUM_FLASHSIZE_M = 15728640,/*!< FLASHSIZE_M : Mask for the FLASH_SIZE field.Values:0: 16KB1: + 32KB2: 64KB3: 128KB4: 256KB5: 512KB6: 1MB7: 2MB8: 1.5MB */ + MCUCTRL_CHIPPN_PARTNUM_FLASHSIZE_S = 20, /*!< FLASHSIZE_S : Bit position for the FLASH_SIZE field. */ + MCUCTRL_CHIPPN_PARTNUM_SRAMSIZE_M = 983040,/*!< SRAMSIZE_M : Mask for the SRAM_SIZE field.Values:0: 16KB1: 32KB2: + 64KB3: 128KB4: 256KB5: 512KB6: 1MB7: 384KB8: 768KB */ + MCUCTRL_CHIPPN_PARTNUM_SRAMSIZE_S = 16, /*!< SRAMSIZE_S : Bit position for the SRAM_SIZE field. */ + MCUCTRL_CHIPPN_PARTNUM_REV_M = 65280, /*!< REV_M : Mask for the revision field. Bits [15:12] are major + rev, [11:8] are minor rev.Values:0: Major Rev A, Minor + Rev 01: Major Rev B, Minor Rev 1 */ + MCUCTRL_CHIPPN_PARTNUM_REV_S = 8, /*!< REV_S : Bit position for the revision field. */ + MCUCTRL_CHIPPN_PARTNUM_PKG_M = 192, /*!< PKG_M : Mask for the package field.Values:0: SIP1: QFN2: BGA3: + CSP */ + MCUCTRL_CHIPPN_PARTNUM_PKG_S = 6, /*!< PKG_S : Bit position for the package field. */ + MCUCTRL_CHIPPN_PARTNUM_PINS_M = 56, /*!< PINS_M : Mask for the pins field.Values:0: 25 pins1: 49 pins2: + 64 pins3: 81 pins */ + MCUCTRL_CHIPPN_PARTNUM_PINS_S = 3, /*!< PINS_S : Bit position for the pins field. */ + MCUCTRL_CHIPPN_PARTNUM_TEMP_S = 1, /*!< TEMP_S : Bit position for the temperature field. */ + MCUCTRL_CHIPPN_PARTNUM_QUAL_S = 0, /*!< QUAL_S : Bit position for the qualified field. */ +} MCUCTRL_CHIPPN_PARTNUM_Enum; + +/* ======================================================== CHIPID0 ======================================================== */ +/* ============================================ MCUCTRL CHIPID0 CHIPID0 [0..31] ============================================ */ +typedef enum { /*!< MCUCTRL_CHIPID0_CHIPID0 */ + MCUCTRL_CHIPID0_CHIPID0_APOLLO3 = 0, /*!< APOLLO3 : Apollo3 CHIPID0. */ +} MCUCTRL_CHIPID0_CHIPID0_Enum; + +/* ======================================================== CHIPID1 ======================================================== */ +/* ============================================ MCUCTRL CHIPID1 CHIPID1 [0..31] ============================================ */ +typedef enum { /*!< MCUCTRL_CHIPID1_CHIPID1 */ + MCUCTRL_CHIPID1_CHIPID1_APOLLO3 = 0, /*!< APOLLO3 : Apollo3 CHIPID1. */ +} MCUCTRL_CHIPID1_CHIPID1_Enum; + +/* ======================================================== CHIPREV ======================================================== */ +/* ============================================= MCUCTRL CHIPREV REVMAJ [4..7] ============================================= */ +typedef enum { /*!< MCUCTRL_CHIPREV_REVMAJ */ + MCUCTRL_CHIPREV_REVMAJ_C = 3, /*!< C : Apollo3 revision C */ + MCUCTRL_CHIPREV_REVMAJ_B = 2, /*!< B : Apollo3 revision B */ + MCUCTRL_CHIPREV_REVMAJ_A = 1, /*!< A : Apollo3 revision A */ +} MCUCTRL_CHIPREV_REVMAJ_Enum; + +/* ============================================= MCUCTRL CHIPREV REVMIN [0..3] ============================================= */ +typedef enum { /*!< MCUCTRL_CHIPREV_REVMIN */ + MCUCTRL_CHIPREV_REVMIN_REV1 = 2, /*!< REV1 : Apollo3 minor rev 1. */ + MCUCTRL_CHIPREV_REVMIN_REV0 = 1, /*!< REV0 : Apollo3 minor rev 0. Minor revision value, succeeding + minor revisions will increment from this value. */ +} MCUCTRL_CHIPREV_REVMIN_Enum; + +/* ======================================================= VENDORID ======================================================== */ +/* =========================================== MCUCTRL VENDORID VENDORID [0..31] =========================================== */ +typedef enum { /*!< MCUCTRL_VENDORID_VENDORID */ + MCUCTRL_VENDORID_VENDORID_AMBIQ = 1095582289,/*!< AMBIQ : Ambiq Vendor ID 'AMBQ' */ +} MCUCTRL_VENDORID_VENDORID_Enum; + +/* ========================================================== SKU ========================================================== */ +/* ===================================================== FEATUREENABLE ===================================================== */ +/* ======================================== MCUCTRL FEATUREENABLE BURSTAVAIL [6..6] ======================================== */ +typedef enum { /*!< MCUCTRL_FEATUREENABLE_BURSTAVAIL */ + MCUCTRL_FEATUREENABLE_BURSTAVAIL_AVAIL = 1, /*!< AVAIL : Burst functionality available */ + MCUCTRL_FEATUREENABLE_BURSTAVAIL_NOTAVAIL = 0,/*!< NOTAVAIL : Burst functionality not available */ +} MCUCTRL_FEATUREENABLE_BURSTAVAIL_Enum; + +/* ========================================= MCUCTRL FEATUREENABLE BURSTREQ [4..4] ========================================= */ +typedef enum { /*!< MCUCTRL_FEATUREENABLE_BURSTREQ */ + MCUCTRL_FEATUREENABLE_BURSTREQ_EN = 1, /*!< EN : Enable the Burst functionality */ + MCUCTRL_FEATUREENABLE_BURSTREQ_DIS = 0, /*!< DIS : Disable the Burst functionality */ +} MCUCTRL_FEATUREENABLE_BURSTREQ_Enum; + +/* ========================================= MCUCTRL FEATUREENABLE BLEAVAIL [2..2] ========================================= */ +typedef enum { /*!< MCUCTRL_FEATUREENABLE_BLEAVAIL */ + MCUCTRL_FEATUREENABLE_BLEAVAIL_AVAIL = 1, /*!< AVAIL : BLE functionality available */ + MCUCTRL_FEATUREENABLE_BLEAVAIL_NOTAVAIL = 0, /*!< NOTAVAIL : BLE functionality not available */ +} MCUCTRL_FEATUREENABLE_BLEAVAIL_Enum; + +/* ========================================== MCUCTRL FEATUREENABLE BLEREQ [0..0] ========================================== */ +typedef enum { /*!< MCUCTRL_FEATUREENABLE_BLEREQ */ + MCUCTRL_FEATUREENABLE_BLEREQ_EN = 1, /*!< EN : Enable the BLE functionality */ + MCUCTRL_FEATUREENABLE_BLEREQ_DIS = 0, /*!< DIS : Disable the BLE functionality */ +} MCUCTRL_FEATUREENABLE_BLEREQ_Enum; + +/* ======================================================= DEBUGGER ======================================================== */ +/* ================================================= DMASRAMWRITEPROTECT2 ================================================== */ +/* ======================================================== BODCTRL ======================================================== */ +/* ======================================================= ADCPWRDLY ======================================================= */ +/* ======================================================== ADCCAL ========================================================= */ +/* ========================================== MCUCTRL ADCCAL ADCCALIBRATED [1..1] ========================================== */ +typedef enum { /*!< MCUCTRL_ADCCAL_ADCCALIBRATED */ + MCUCTRL_ADCCAL_ADCCALIBRATED_FALSE = 0, /*!< FALSE : ADC is not calibrated */ + MCUCTRL_ADCCAL_ADCCALIBRATED_TRUE = 1, /*!< TRUE : ADC is calibrated */ +} MCUCTRL_ADCCAL_ADCCALIBRATED_Enum; + +/* =========================================== MCUCTRL ADCCAL CALONPWRUP [0..0] ============================================ */ +typedef enum { /*!< MCUCTRL_ADCCAL_CALONPWRUP */ + MCUCTRL_ADCCAL_CALONPWRUP_DIS = 0, /*!< DIS : Disable automatic calibration on initial power up */ + MCUCTRL_ADCCAL_CALONPWRUP_EN = 1, /*!< EN : Enable automatic calibration on initial power up */ +} MCUCTRL_ADCCAL_CALONPWRUP_Enum; + +/* ====================================================== ADCBATTLOAD ====================================================== */ +/* ========================================== MCUCTRL ADCBATTLOAD BATTLOAD [0..0] ========================================== */ +typedef enum { /*!< MCUCTRL_ADCBATTLOAD_BATTLOAD */ + MCUCTRL_ADCBATTLOAD_BATTLOAD_DIS = 0, /*!< DIS : Battery load is disconnected */ + MCUCTRL_ADCBATTLOAD_BATTLOAD_EN = 1, /*!< EN : Battery load is enabled */ +} MCUCTRL_ADCBATTLOAD_BATTLOAD_Enum; + +/* ======================================================== ADCTRIM ======================================================== */ +/* ====================================================== ADCREFCOMP ======================================================= */ +/* ======================================================= XTALCTRL ======================================================== */ +/* ========================================== MCUCTRL XTALCTRL PWDBODXTAL [5..5] =========================================== */ +typedef enum { /*!< MCUCTRL_XTALCTRL_PWDBODXTAL */ + MCUCTRL_XTALCTRL_PWDBODXTAL_PWRUPBOD = 0, /*!< PWRUPBOD : Power up xtal on BOD */ + MCUCTRL_XTALCTRL_PWDBODXTAL_PWRDNBOD = 1, /*!< PWRDNBOD : Power down XTAL on BOD. */ +} MCUCTRL_XTALCTRL_PWDBODXTAL_Enum; + +/* ========================================= MCUCTRL XTALCTRL PDNBCMPRXTAL [4..4] ========================================== */ +typedef enum { /*!< MCUCTRL_XTALCTRL_PDNBCMPRXTAL */ + MCUCTRL_XTALCTRL_PDNBCMPRXTAL_PWRUPCOMP = 1, /*!< PWRUPCOMP : Power up XTAL oscillator comparator. */ + MCUCTRL_XTALCTRL_PDNBCMPRXTAL_PWRDNCOMP = 0, /*!< PWRDNCOMP : Power down XTAL oscillator comparator. */ +} MCUCTRL_XTALCTRL_PDNBCMPRXTAL_Enum; + +/* ========================================= MCUCTRL XTALCTRL PDNBCOREXTAL [3..3] ========================================== */ +typedef enum { /*!< MCUCTRL_XTALCTRL_PDNBCOREXTAL */ + MCUCTRL_XTALCTRL_PDNBCOREXTAL_PWRUPCORE = 1, /*!< PWRUPCORE : Power up XTAL oscillator core. */ + MCUCTRL_XTALCTRL_PDNBCOREXTAL_PWRDNCORE = 0, /*!< PWRDNCORE : Power down XTAL oscillator core. */ +} MCUCTRL_XTALCTRL_PDNBCOREXTAL_Enum; + +/* ========================================== MCUCTRL XTALCTRL BYPCMPRXTAL [2..2] ========================================== */ +typedef enum { /*!< MCUCTRL_XTALCTRL_BYPCMPRXTAL */ + MCUCTRL_XTALCTRL_BYPCMPRXTAL_USECOMP = 0, /*!< USECOMP : Use the XTAL oscillator comparator. */ + MCUCTRL_XTALCTRL_BYPCMPRXTAL_BYPCOMP = 1, /*!< BYPCOMP : Bypass the XTAL oscillator comparator. */ +} MCUCTRL_XTALCTRL_BYPCMPRXTAL_Enum; + +/* ========================================= MCUCTRL XTALCTRL FDBKDSBLXTAL [1..1] ========================================== */ +typedef enum { /*!< MCUCTRL_XTALCTRL_FDBKDSBLXTAL */ + MCUCTRL_XTALCTRL_FDBKDSBLXTAL_EN = 0, /*!< EN : Enable XTAL oscillator comparator. */ + MCUCTRL_XTALCTRL_FDBKDSBLXTAL_DIS = 1, /*!< DIS : Disable XTAL oscillator comparator. */ +} MCUCTRL_XTALCTRL_FDBKDSBLXTAL_Enum; + +/* ============================================ MCUCTRL XTALCTRL XTALSWE [0..0] ============================================ */ +typedef enum { /*!< MCUCTRL_XTALCTRL_XTALSWE */ + MCUCTRL_XTALCTRL_XTALSWE_OVERRIDE_DIS = 0, /*!< OVERRIDE_DIS : XTAL Software Override Disable. */ + MCUCTRL_XTALCTRL_XTALSWE_OVERRIDE_EN = 1, /*!< OVERRIDE_EN : XTAL Software Override Enable. */ +} MCUCTRL_XTALCTRL_XTALSWE_Enum; + +/* ====================================================== XTALGENCTRL ====================================================== */ +/* ========================================== MCUCTRL XTALGENCTRL ACWARMUP [0..1] ========================================== */ +typedef enum { /*!< MCUCTRL_XTALGENCTRL_ACWARMUP */ + MCUCTRL_XTALGENCTRL_ACWARMUP_SEC1 = 0, /*!< SEC1 : Warmup period of 1-2 seconds */ + MCUCTRL_XTALGENCTRL_ACWARMUP_SEC2 = 1, /*!< SEC2 : Warmup period of 2-4 seconds */ + MCUCTRL_XTALGENCTRL_ACWARMUP_SEC4 = 2, /*!< SEC4 : Warmup period of 4-8 seconds */ + MCUCTRL_XTALGENCTRL_ACWARMUP_SEC8 = 3, /*!< SEC8 : Warmup period of 8-16 seconds */ +} MCUCTRL_XTALGENCTRL_ACWARMUP_Enum; + +/* ======================================================= MISCCTRL ======================================================== */ +/* ====================================================== BOOTLOADER ======================================================= */ +/* ======================================= MCUCTRL BOOTLOADER SECBOOTONRST [30..31] ======================================== */ +typedef enum { /*!< MCUCTRL_BOOTLOADER_SECBOOTONRST */ + MCUCTRL_BOOTLOADER_SECBOOTONRST_DISABLED = 0, /*!< DISABLED : Secure boot disabled */ + MCUCTRL_BOOTLOADER_SECBOOTONRST_ENABLED = 1, /*!< ENABLED : Secure boot enabled */ + MCUCTRL_BOOTLOADER_SECBOOTONRST_ERROR = 2, /*!< ERROR : Error in secure boot configuration */ +} MCUCTRL_BOOTLOADER_SECBOOTONRST_Enum; + +/* ========================================== MCUCTRL BOOTLOADER SECBOOT [28..29] ========================================== */ +typedef enum { /*!< MCUCTRL_BOOTLOADER_SECBOOT */ + MCUCTRL_BOOTLOADER_SECBOOT_DISABLED = 0, /*!< DISABLED : Secure boot disabled */ + MCUCTRL_BOOTLOADER_SECBOOT_ENABLED = 1, /*!< ENABLED : Secure boot enabled */ + MCUCTRL_BOOTLOADER_SECBOOT_ERROR = 2, /*!< ERROR : Error in secure boot configuration */ +} MCUCTRL_BOOTLOADER_SECBOOT_Enum; + +/* ====================================== MCUCTRL BOOTLOADER SECBOOTFEATURE [26..27] ======================================= */ +typedef enum { /*!< MCUCTRL_BOOTLOADER_SECBOOTFEATURE */ + MCUCTRL_BOOTLOADER_SECBOOTFEATURE_DISABLED = 0,/*!< DISABLED : Secure boot disabled */ + MCUCTRL_BOOTLOADER_SECBOOTFEATURE_ENABLED = 1,/*!< ENABLED : Secure boot enabled */ + MCUCTRL_BOOTLOADER_SECBOOTFEATURE_ERROR = 2, /*!< ERROR : Error in secure boot configuration */ +} MCUCTRL_BOOTLOADER_SECBOOTFEATURE_Enum; + +/* ========================================== MCUCTRL BOOTLOADER PROTLOCK [2..2] =========================================== */ +typedef enum { /*!< MCUCTRL_BOOTLOADER_PROTLOCK */ + MCUCTRL_BOOTLOADER_PROTLOCK_LOCK = 1, /*!< LOCK : Enable the secure boot lock */ +} MCUCTRL_BOOTLOADER_PROTLOCK_Enum; + +/* =========================================== MCUCTRL BOOTLOADER SBLOCK [1..1] ============================================ */ +typedef enum { /*!< MCUCTRL_BOOTLOADER_SBLOCK */ + MCUCTRL_BOOTLOADER_SBLOCK_LOCK = 1, /*!< LOCK : Enable the secure boot lock */ +} MCUCTRL_BOOTLOADER_SBLOCK_Enum; + +/* ======================================== MCUCTRL BOOTLOADER BOOTLOADERLOW [0..0] ======================================== */ +typedef enum { /*!< MCUCTRL_BOOTLOADER_BOOTLOADERLOW */ + MCUCTRL_BOOTLOADER_BOOTLOADERLOW_ADDR0 = 1, /*!< ADDR0 : Bootloader code at 0x00000000. */ +} MCUCTRL_BOOTLOADER_BOOTLOADERLOW_Enum; + +/* ====================================================== SHADOWVALID ====================================================== */ +/* ======================================== MCUCTRL SHADOWVALID INFO0_VALID [2..2] ========================================= */ +typedef enum { /*!< MCUCTRL_SHADOWVALID_INFO0_VALID */ + MCUCTRL_SHADOWVALID_INFO0_VALID_VALID = 1, /*!< VALID : Flash info0 (customer) space contains valid data. */ +} MCUCTRL_SHADOWVALID_INFO0_VALID_Enum; + +/* ========================================== MCUCTRL SHADOWVALID BLDSLEEP [1..1] ========================================== */ +typedef enum { /*!< MCUCTRL_SHADOWVALID_BLDSLEEP */ + MCUCTRL_SHADOWVALID_BLDSLEEP_DEEPSLEEP = 1, /*!< DEEPSLEEP : Bootloader will go to deep sleep if no flash image + loaded */ +} MCUCTRL_SHADOWVALID_BLDSLEEP_Enum; + +/* =========================================== MCUCTRL SHADOWVALID VALID [0..0] ============================================ */ +typedef enum { /*!< MCUCTRL_SHADOWVALID_VALID */ + MCUCTRL_SHADOWVALID_VALID_VALID = 1, /*!< VALID : Flash information space contains valid data. */ +} MCUCTRL_SHADOWVALID_VALID_Enum; + +/* ======================================================= SCRATCH0 ======================================================== */ +/* ======================================================= SCRATCH1 ======================================================== */ +/* ==================================================== ICODEFAULTADDR ===================================================== */ +/* ==================================================== DCODEFAULTADDR ===================================================== */ +/* ===================================================== SYSFAULTADDR ====================================================== */ +/* ====================================================== FAULTSTATUS ====================================================== */ +/* ========================================== MCUCTRL FAULTSTATUS SYSFAULT [2..2] ========================================== */ +typedef enum { /*!< MCUCTRL_FAULTSTATUS_SYSFAULT */ + MCUCTRL_FAULTSTATUS_SYSFAULT_NOFAULT = 0, /*!< NOFAULT : No bus fault has been detected. */ + MCUCTRL_FAULTSTATUS_SYSFAULT_FAULT = 1, /*!< FAULT : Bus fault detected. */ +} MCUCTRL_FAULTSTATUS_SYSFAULT_Enum; + +/* ========================================= MCUCTRL FAULTSTATUS DCODEFAULT [1..1] ========================================= */ +typedef enum { /*!< MCUCTRL_FAULTSTATUS_DCODEFAULT */ + MCUCTRL_FAULTSTATUS_DCODEFAULT_NOFAULT = 0, /*!< NOFAULT : No DCODE fault has been detected. */ + MCUCTRL_FAULTSTATUS_DCODEFAULT_FAULT = 1, /*!< FAULT : DCODE fault detected. */ +} MCUCTRL_FAULTSTATUS_DCODEFAULT_Enum; + +/* ========================================= MCUCTRL FAULTSTATUS ICODEFAULT [0..0] ========================================= */ +typedef enum { /*!< MCUCTRL_FAULTSTATUS_ICODEFAULT */ + MCUCTRL_FAULTSTATUS_ICODEFAULT_NOFAULT = 0, /*!< NOFAULT : No ICODE fault has been detected. */ + MCUCTRL_FAULTSTATUS_ICODEFAULT_FAULT = 1, /*!< FAULT : ICODE fault detected. */ +} MCUCTRL_FAULTSTATUS_ICODEFAULT_Enum; + +/* ==================================================== FAULTCAPTUREEN ===================================================== */ +/* ===================================== MCUCTRL FAULTCAPTUREEN FAULTCAPTUREEN [0..0] ====================================== */ +typedef enum { /*!< MCUCTRL_FAULTCAPTUREEN_FAULTCAPTUREEN */ + MCUCTRL_FAULTCAPTUREEN_FAULTCAPTUREEN_DIS = 0,/*!< DIS : Disable fault capture. */ + MCUCTRL_FAULTCAPTUREEN_FAULTCAPTUREEN_EN = 1, /*!< EN : Enable fault capture. */ +} MCUCTRL_FAULTCAPTUREEN_FAULTCAPTUREEN_Enum; + +/* ========================================================= DBGR1 ========================================================= */ +/* ========================================================= DBGR2 ========================================================= */ +/* ======================================================= PMUENABLE ======================================================= */ +/* ============================================ MCUCTRL PMUENABLE ENABLE [0..0] ============================================ */ +typedef enum { /*!< MCUCTRL_PMUENABLE_ENABLE */ + MCUCTRL_PMUENABLE_ENABLE_DIS = 0, /*!< DIS : Disable MCU power management. */ + MCUCTRL_PMUENABLE_ENABLE_EN = 1, /*!< EN : Enable MCU power management. */ +} MCUCTRL_PMUENABLE_ENABLE_Enum; + +/* ======================================================= TPIUCTRL ======================================================== */ +/* ============================================ MCUCTRL TPIUCTRL CLKSEL [8..10] ============================================ */ +typedef enum { /*!< MCUCTRL_TPIUCTRL_CLKSEL */ + MCUCTRL_TPIUCTRL_CLKSEL_LOWPWR = 0, /*!< LOWPWR : Low power state. */ + MCUCTRL_TPIUCTRL_CLKSEL_HFRCDIV2 = 1, /*!< HFRCDIV2 : Selects HFRC divided by 2 as the source TPIU clk */ + MCUCTRL_TPIUCTRL_CLKSEL_HFRCDIV8 = 2, /*!< HFRCDIV8 : Selects HFRC divided by 8 as the source TPIU clk */ + MCUCTRL_TPIUCTRL_CLKSEL_HFRCDIV16 = 3, /*!< HFRCDIV16 : Selects HFRC divided by 16 as the source TPIU clk */ + MCUCTRL_TPIUCTRL_CLKSEL_HFRCDIV32 = 4, /*!< HFRCDIV32 : Selects HFRC divided by 32 as the source TPIU clk */ +} MCUCTRL_TPIUCTRL_CLKSEL_Enum; + +/* ============================================ MCUCTRL TPIUCTRL ENABLE [0..0] ============================================= */ +typedef enum { /*!< MCUCTRL_TPIUCTRL_ENABLE */ + MCUCTRL_TPIUCTRL_ENABLE_DIS = 0, /*!< DIS : Disable the TPIU. */ + MCUCTRL_TPIUCTRL_ENABLE_EN = 1, /*!< EN : Enable the TPIU. */ +} MCUCTRL_TPIUCTRL_ENABLE_Enum; + +/* ====================================================== OTAPOINTER ======================================================= */ +/* ====================================================== APBDMACTRL ======================================================= */ +/* =========================================== MCUCTRL APBDMACTRL DMAOPT [2..2] ============================================ */ +typedef enum { /*!< MCUCTRL_APBDMACTRL_DMAOPT */ + MCUCTRL_APBDMACTRL_DMAOPT_DISABLE = 0, /*!< DISABLE : DMA will fully serialize DMA operations (Apollo3 A/B + behavior) */ + MCUCTRL_APBDMACTRL_DMAOPT_ENABLE = 1, /*!< ENABLE : DMA will optimize DMA operations to minimize DMA latenchy */ +} MCUCTRL_APBDMACTRL_DMAOPT_Enum; + +/* ========================================= MCUCTRL APBDMACTRL DECODEABORT [1..1] ========================================= */ +typedef enum { /*!< MCUCTRL_APBDMACTRL_DECODEABORT */ + MCUCTRL_APBDMACTRL_DECODEABORT_DISABLE = 0, /*!< DISABLE : Bus operations to powered down peripherals are quietly + discarded */ + MCUCTRL_APBDMACTRL_DECODEABORT_ENABLE = 1, /*!< ENABLE : Bus operations to powered down peripherals result in + a bus fault. */ +} MCUCTRL_APBDMACTRL_DECODEABORT_Enum; + +/* ========================================= MCUCTRL APBDMACTRL DMA_ENABLE [0..0] ========================================== */ +typedef enum { /*!< MCUCTRL_APBDMACTRL_DMA_ENABLE */ + MCUCTRL_APBDMACTRL_DMA_ENABLE_DISABLE = 0, /*!< DISABLE : DMA operations disabled */ + MCUCTRL_APBDMACTRL_DMA_ENABLE_ENABLE = 1, /*!< ENABLE : DMA operations enabled */ +} MCUCTRL_APBDMACTRL_DMA_ENABLE_Enum; + +/* ======================================================= SRAMMODE ======================================================== */ +/* ====================================================== KEXTCLKSEL ======================================================= */ +/* ========================================= MCUCTRL KEXTCLKSEL KEXTCLKSEL [0..31] ========================================= */ +typedef enum { /*!< MCUCTRL_KEXTCLKSEL_KEXTCLKSEL */ + MCUCTRL_KEXTCLKSEL_KEXTCLKSEL_Key = 83, /*!< Key : Key */ +} MCUCTRL_KEXTCLKSEL_KEXTCLKSEL_Enum; + +/* ======================================================= SIMOBUCK4 ======================================================= */ +/* ======================================================= BLEBUCK2 ======================================================== */ +/* ====================================================== FLASHWPROT0 ====================================================== */ +/* ====================================================== FLASHWPROT1 ====================================================== */ +/* ====================================================== FLASHWPROT2 ====================================================== */ +/* ====================================================== FLASHWPROT3 ====================================================== */ +/* ====================================================== FLASHRPROT0 ====================================================== */ +/* ====================================================== FLASHRPROT1 ====================================================== */ +/* ====================================================== FLASHRPROT2 ====================================================== */ +/* ====================================================== FLASHRPROT3 ====================================================== */ +/* ================================================= DMASRAMWRITEPROTECT0 ================================================== */ +/* ================================================= DMASRAMWRITEPROTECT1 ================================================== */ +/* ================================================== DMASRAMREADPROTECT0 ================================================== */ +/* ================================================== DMASRAMREADPROTECT1 ================================================== */ +/* ================================================== DMASRAMREADPROTECT2 ================================================== */ + + +/* =========================================================================================================================== */ +/* ================ MSPI0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CTRL ========================================================== */ +/* ========================================================== CFG ========================================================== */ +/* ================================================ MSPI0 CFG CPOL [17..17] ================================================ */ +typedef enum { /*!< MSPI0_CFG_CPOL */ + MSPI0_CFG_CPOL_LOW = 0, /*!< LOW : Clock inactive state is low. */ + MSPI0_CFG_CPOL_HIGH = 1, /*!< HIGH : Clock inactive state is high. */ +} MSPI0_CFG_CPOL_Enum; + +/* ================================================ MSPI0 CFG CPHA [16..16] ================================================ */ +typedef enum { /*!< MSPI0_CFG_CPHA */ + MSPI0_CFG_CPHA_MIDDLE = 0, /*!< MIDDLE : Clock toggles in middle of data bit. */ + MSPI0_CFG_CPHA_START = 1, /*!< START : Clock toggles at start of data bit. */ +} MSPI0_CFG_CPHA_Enum; + +/* ================================================ MSPI0 CFG ASIZE [4..5] ================================================= */ +typedef enum { /*!< MSPI0_CFG_ASIZE */ + MSPI0_CFG_ASIZE_A1 = 0, /*!< A1 : Send one address byte */ + MSPI0_CFG_ASIZE_A2 = 1, /*!< A2 : Send two address bytes */ + MSPI0_CFG_ASIZE_A3 = 2, /*!< A3 : Send three address bytes */ + MSPI0_CFG_ASIZE_A4 = 3, /*!< A4 : Send four address bytes */ +} MSPI0_CFG_ASIZE_Enum; + +/* ================================================ MSPI0 CFG DEVCFG [0..3] ================================================ */ +typedef enum { /*!< MSPI0_CFG_DEVCFG */ + MSPI0_CFG_DEVCFG_SERIAL0 = 1, /*!< SERIAL0 : Single bit SPI flash on chip select 0 */ + MSPI0_CFG_DEVCFG_SERIAL1 = 2, /*!< SERIAL1 : Single bit SPI flash on chip select 1 */ + MSPI0_CFG_DEVCFG_DUAL0 = 5, /*!< DUAL0 : Dual SPI flash on chip select 0 */ + MSPI0_CFG_DEVCFG_DUAL1 = 6, /*!< DUAL1 : Dual bit SPI flash on chip select 1 */ + MSPI0_CFG_DEVCFG_QUAD0 = 9, /*!< QUAD0 : Quad SPI flash on chip select 0 */ + MSPI0_CFG_DEVCFG_QUAD1 = 10, /*!< QUAD1 : Quad SPI flash on chip select 1 */ + MSPI0_CFG_DEVCFG_OCTAL0 = 13, /*!< OCTAL0 : Octal SPI flash on chip select 0 */ + MSPI0_CFG_DEVCFG_OCTAL1 = 14, /*!< OCTAL1 : Octal SPI flash on chip select 1 */ + MSPI0_CFG_DEVCFG_QUADPAIRED = 15, /*!< QUADPAIRED : Dual Quad SPI flash on chip selects 0/1. */ + MSPI0_CFG_DEVCFG_QUADPAIRED_SERIAL = 3, /*!< QUADPAIRED_SERIAL : Dual Quad SPI flash on chip selects 0/1, + but transmit in serial mode for initialization operations */ +} MSPI0_CFG_DEVCFG_Enum; + +/* ========================================================= ADDR ========================================================== */ +/* ========================================================= INSTR ========================================================= */ +/* ======================================================== TXFIFO ========================================================= */ +/* ======================================================== RXFIFO ========================================================= */ +/* ======================================================= TXENTRIES ======================================================= */ +/* ======================================================= RXENTRIES ======================================================= */ +/* ======================================================= THRESHOLD ======================================================= */ +/* ======================================================== MSPICFG ======================================================== */ +/* ============================================= MSPI0 MSPICFG CLKDIV [8..13] ============================================== */ +typedef enum { /*!< MSPI0_MSPICFG_CLKDIV */ + MSPI0_MSPICFG_CLKDIV_CLK24 = 2, /*!< CLK24 : 24 MHz MSPI clock */ + MSPI0_MSPICFG_CLKDIV_CLK12 = 4, /*!< CLK12 : 12 MHz MSPI clock */ + MSPI0_MSPICFG_CLKDIV_CLK6 = 8, /*!< CLK6 : 6 MHz MSPI clock */ + MSPI0_MSPICFG_CLKDIV_CLK3 = 16, /*!< CLK3 : 3 MHz MSPI clock */ + MSPI0_MSPICFG_CLKDIV_CLK1_5 = 32, /*!< CLK1_5 : 1.5 MHz MSPI clock */ +} MSPI0_MSPICFG_CLKDIV_Enum; + +/* ============================================== MSPI0 MSPICFG IOMSEL [4..7] ============================================== */ +typedef enum { /*!< MSPI0_MSPICFG_IOMSEL */ + MSPI0_MSPICFG_IOMSEL_IOM0 = 0, /*!< IOM0 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_IOM1 = 1, /*!< IOM1 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_IOM2 = 2, /*!< IOM2 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_IOM3 = 3, /*!< IOM3 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_IOM4 = 4, /*!< IOM4 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_IOM5 = 5, /*!< IOM5 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_MSPI0 = 8, /*!< MSPI0 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_MSPI1 = 9, /*!< MSPI1 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_MSPI2 = 10, /*!< MSPI2 : ERROR: desc VALUE MISSING */ + MSPI0_MSPICFG_IOMSEL_DISABLED = 7, /*!< DISABLED : No IOM selected. Signals always zero. */ +} MSPI0_MSPICFG_IOMSEL_Enum; + +/* ============================================== MSPI0 MSPICFG TXNEG [3..3] =============================================== */ +typedef enum { /*!< MSPI0_MSPICFG_TXNEG */ + MSPI0_MSPICFG_TXNEG_NORMAL = 0, /*!< NORMAL : TX launched from posedge internal clock */ + MSPI0_MSPICFG_TXNEG_NEGEDGE = 1, /*!< NEGEDGE : TX data launched from negedge of internal clock */ +} MSPI0_MSPICFG_TXNEG_Enum; + +/* ============================================== MSPI0 MSPICFG RXNEG [2..2] =============================================== */ +typedef enum { /*!< MSPI0_MSPICFG_RXNEG */ + MSPI0_MSPICFG_RXNEG_NORMAL = 0, /*!< NORMAL : RX data sampled on posedge of internal clock */ + MSPI0_MSPICFG_RXNEG_NEGEDGE = 1, /*!< NEGEDGE : RX data sampled on negedge of internal clock */ +} MSPI0_MSPICFG_RXNEG_Enum; + +/* ============================================== MSPI0 MSPICFG RXCAP [1..1] =============================================== */ +typedef enum { /*!< MSPI0_MSPICFG_RXCAP */ + MSPI0_MSPICFG_RXCAP_NORMAL = 0, /*!< NORMAL : RX Capture phase aligns with CPHA setting */ + MSPI0_MSPICFG_RXCAP_DELAY = 1, /*!< DELAY : RX Capture phase is delayed from CPHA setting by one + clock edge */ +} MSPI0_MSPICFG_RXCAP_Enum; + +/* ============================================== MSPI0 MSPICFG APBCLK [0..0] ============================================== */ +typedef enum { /*!< MSPI0_MSPICFG_APBCLK */ + MSPI0_MSPICFG_APBCLK_DIS = 0, /*!< DIS : Disable continuous clock. */ + MSPI0_MSPICFG_APBCLK_EN = 1, /*!< EN : Enable continuous clock. */ +} MSPI0_MSPICFG_APBCLK_Enum; + +/* ======================================================== MSPIDDR ======================================================== */ +/* ======================================================== PADCFG ========================================================= */ +/* ======================================================= PADOUTEN ======================================================== */ +/* ============================================== MSPI0 PADOUTEN OUTEN [0..9] ============================================== */ +typedef enum { /*!< MSPI0_PADOUTEN_OUTEN */ + MSPI0_PADOUTEN_OUTEN_QUAD0 = 271, /*!< QUAD0 : Quad0 (4 data + 1 clock) */ + MSPI0_PADOUTEN_OUTEN_QUAD1 = 496, /*!< QUAD1 : Quad1 (4 data + 1 clock) */ + MSPI0_PADOUTEN_OUTEN_OCTAL = 1023, /*!< OCTAL : Octal (8 data + 1 clock) */ + MSPI0_PADOUTEN_OUTEN_SERIAL0 = 259, /*!< SERIAL0 : Serial (2 data + 1 clock) */ +} MSPI0_PADOUTEN_OUTEN_Enum; + +/* ======================================================= PADOVEREN ======================================================= */ +/* ======================================================== PADOVER ======================================================== */ +/* ========================================================= FLASH ========================================================= */ +/* ============================================= MSPI0 FLASH XIPMIXED [8..10] ============================================== */ +typedef enum { /*!< MSPI0_FLASH_XIPMIXED */ + MSPI0_FLASH_XIPMIXED_NORMAL = 0, /*!< NORMAL : Transfers all proceed using the settings in DEVCFG + register (everything in the same data rate) */ + MSPI0_FLASH_XIPMIXED_D2 = 1, /*!< D2 : Data operations proceed in dual data rate */ + MSPI0_FLASH_XIPMIXED_AD2 = 3, /*!< AD2 : Address and Data operations proceed in dual data rate */ + MSPI0_FLASH_XIPMIXED_D4 = 5, /*!< D4 : Data operations proceed in quad data rate */ + MSPI0_FLASH_XIPMIXED_AD4 = 7, /*!< AD4 : Address and Data operations proceed in quad data rate */ +} MSPI0_FLASH_XIPMIXED_Enum; + +/* =============================================== MSPI0 FLASH XIPACK [2..3] =============================================== */ +typedef enum { /*!< MSPI0_FLASH_XIPACK */ + MSPI0_FLASH_XIPACK_NOACK = 0, /*!< NOACK : No acknowledege sent. Data IOs are tristated the first + turnaround cycle */ + MSPI0_FLASH_XIPACK_ACK = 2, /*!< ACK : Positive acknowledege sent. Data IOs are driven to 0 the + first turnaround cycle to acknowledge XIP mode */ + MSPI0_FLASH_XIPACK_TERMINATE = 3, /*!< TERMINATE : Negative acknowledege sent. Data IOs are driven + to 1 the first turnaround cycle to terminate XIP mode. + XIPSENDI should be reenabled for the next transfer */ +} MSPI0_FLASH_XIPACK_Enum; + +/* ======================================================= XIPINSTR ======================================================== */ +/* ====================================================== SCRAMBLING ======================================================= */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ======================================================== DMACFG ========================================================= */ +/* ============================================== MSPI0 DMACFG DMAPRI [3..4] =============================================== */ +typedef enum { /*!< MSPI0_DMACFG_DMAPRI */ + MSPI0_DMACFG_DMAPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + MSPI0_DMACFG_DMAPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ + MSPI0_DMACFG_DMAPRI_AUTO = 2, /*!< AUTO : Auto Priority (priority raised once TX FIFO empties or + RX FIFO fills) */ +} MSPI0_DMACFG_DMAPRI_Enum; + +/* ============================================== MSPI0 DMACFG DMADIR [2..2] =============================================== */ +typedef enum { /*!< MSPI0_DMACFG_DMADIR */ + MSPI0_DMACFG_DMADIR_P2M = 0, /*!< P2M : Peripheral to Memory (SRAM) transaction */ + MSPI0_DMACFG_DMADIR_M2P = 1, /*!< M2P : Memory to Peripheral transaction */ +} MSPI0_DMACFG_DMADIR_Enum; + +/* =============================================== MSPI0 DMACFG DMAEN [0..1] =============================================== */ +typedef enum { /*!< MSPI0_DMACFG_DMAEN */ + MSPI0_DMACFG_DMAEN_DIS = 0, /*!< DIS : Disable DMA Function */ + MSPI0_DMACFG_DMAEN_EN = 3, /*!< EN : Enable HW controlled DMA Function to manage DMA to flash + devices. HW will automatically handle issuance of instruction/address + bytes based on settings in the FLASH register. */ +} MSPI0_DMACFG_DMAEN_Enum; + +/* ======================================================== DMASTAT ======================================================== */ +/* ====================================================== DMATARGADDR ====================================================== */ +/* ====================================================== DMADEVADDR ======================================================= */ +/* ====================================================== DMATOTCOUNT ====================================================== */ +/* ======================================================= DMABCOUNT ======================================================= */ +/* ======================================================= DMATHRESH ======================================================= */ +/* ====================================================== DMABOUNDARY ====================================================== */ +/* ========================================== MSPI0 DMABOUNDARY DMABOUND [12..15] ========================================== */ +typedef enum { /*!< MSPI0_DMABOUNDARY_DMABOUND */ + MSPI0_DMABOUNDARY_DMABOUND_NONE = 0, /*!< NONE : Disable DMA address boundary breaks */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK32 = 1, /*!< BREAK32 : Break at 32 byte boundary (0x20 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK64 = 2, /*!< BREAK64 : Break at 64 byte boundary (0x40 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK128 = 3, /*!< BREAK128 : Break at 128 byte boundary (0x80 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK256 = 4, /*!< BREAK256 : Break at 256 byte boundary (0x100 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK512 = 5, /*!< BREAK512 : Break at 512 byte boundary (0x200 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK1K = 6, /*!< BREAK1K : Break at 1KB boundary (0x400 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK2K = 7, /*!< BREAK2K : Break at 2KB boundary (0x800 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK4K = 8, /*!< BREAK4K : Break at 4KB boundary (0x1000 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK8K = 9, /*!< BREAK8K : Break at 8KB boundary (0x2000 increments) */ + MSPI0_DMABOUNDARY_DMABOUND_BREAK16K = 10, /*!< BREAK16K : Break at 16KB boundary (0x4000 increments) */ +} MSPI0_DMABOUNDARY_DMABOUND_Enum; + +/* ========================================================= CQCFG ========================================================= */ +/* =============================================== MSPI0 CQCFG CQPRI [1..1] ================================================ */ +typedef enum { /*!< MSPI0_CQCFG_CQPRI */ + MSPI0_CQCFG_CQPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + MSPI0_CQCFG_CQPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} MSPI0_CQCFG_CQPRI_Enum; + +/* ================================================ MSPI0 CQCFG CQEN [0..0] ================================================ */ +typedef enum { /*!< MSPI0_CQCFG_CQEN */ + MSPI0_CQCFG_CQEN_DIS = 0, /*!< DIS : Disable CQ Function */ + MSPI0_CQCFG_CQEN_EN = 1, /*!< EN : Enable CQ Function */ +} MSPI0_CQCFG_CQEN_Enum; + +/* ======================================================== CQADDR ========================================================= */ +/* ======================================================== CQSTAT ========================================================= */ +/* ======================================================== CQFLAGS ======================================================== */ +/* ============================================= MSPI0 CQFLAGS CQFLAGS [0..15] ============================================= */ +typedef enum { /*!< MSPI0_CQFLAGS_CQFLAGS */ + MSPI0_CQFLAGS_CQFLAGS_STOP = 32768, /*!< STOP : CQ Stop Flag. When set, CQ processing will complete. */ + MSPI0_CQFLAGS_CQFLAGS_CQIDX = 16384, /*!< CQIDX : CQ Index Pointers (CURIDX/ENDIDX) match. */ + MSPI0_CQFLAGS_CQFLAGS_BUF1XOREN = 8192, /*!< BUF1XOREN : Buffer 1 Ready Status (from selected IOM/MSPI). + This status is the result of XOR'ing the IOM1START with + the incoming status from the IOM. When high, MSPI can transfer + the buffer. */ + MSPI0_CQFLAGS_CQFLAGS_BUF0XOREN = 4096, /*!< BUF0XOREN : Buffer 0 Ready Status (from selected IOM/MSPI). + This status is the result of XOR'ing the IOM0START with + the incoming status from the IOM. When high, MSPI can transfer + the buffer. */ + MSPI0_CQFLAGS_CQFLAGS_DMACPL = 2048, /*!< DMACPL : DMA Complete Status (hardwired DMACPL bit in DMASTAT) */ + MSPI0_CQFLAGS_CQFLAGS_CMDCPL = 1024, /*!< CMDCPL : PIO Operation completed (STATUS bit in CTRL register) */ + MSPI0_CQFLAGS_CQFLAGS_IOM1READY = 512, /*!< IOM1READY : IOM Buffer 1 Ready Status (from selected IOM). This + status is the result of XNOR'ing the IOM0START with the + incoming status from the IOM. When high, MSPI can send + to the buffer. */ + MSPI0_CQFLAGS_CQFLAGS_IOM0READY = 256, /*!< IOM0READY : IOM Buffer 0 Ready Status (from selected IOM). This + status is the result of XNOR'ing the IOM0START with the + incoming status from the IOM. When high, MSPI can send + to the buffer. */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG7 = 128, /*!< SWFLAG7 : Software flag 7. Can be used by software to start/pause + operations */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG6 = 64, /*!< SWFLAG6 : Software flag 6. Can be used by software to start/pause + operatoins */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG5 = 32, /*!< SWFLAG5 : Software flag 5. Can be used by software to start/pause + operations */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG4 = 16, /*!< SWFLAG4 : Software flag 4. Can be used by software to start/pause + operatoins */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG3 = 8, /*!< SWFLAG3 : Software flag 3. Can be used by software to start/pause + operations */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG2 = 4, /*!< SWFLAG2 : Software flag 2. Can be used by software to start/pause + operatoins */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG1 = 2, /*!< SWFLAG1 : Software flag 1. Can be used by software to start/pause + operations */ + MSPI0_CQFLAGS_CQFLAGS_SWFLAG0 = 1, /*!< SWFLAG0 : Software flag 0. Can be used by software to start/pause + operatoins */ +} MSPI0_CQFLAGS_CQFLAGS_Enum; + +/* ====================================================== CQSETCLEAR ======================================================= */ +/* ======================================================== CQPAUSE ======================================================== */ +/* ============================================= MSPI0 CQPAUSE CQMASK [0..15] ============================================== */ +typedef enum { /*!< MSPI0_CQPAUSE_CQMASK */ + MSPI0_CQPAUSE_CQMASK_STOP = 32768, /*!< STOP : CQ Stop Flag. When set, CQ processing will complete. */ + MSPI0_CQPAUSE_CQMASK_CQIDX = 16384, /*!< CQIDX : CQ Index Pointers (CURIDX/ENDIDX) match. */ + MSPI0_CQPAUSE_CQMASK_BUF1XOREN = 8192, /*!< BUF1XOREN : Buffer 1 Ready Status (from selected IOM/MSPI). + This status is the result of XOR'ing the IOM1START with + the incoming status from the IOM. When high, MSPI can transfer + the buffer. */ + MSPI0_CQPAUSE_CQMASK_BUF0XOREN = 4096, /*!< BUF0XOREN : Buffer 0 Ready Status (from selected IOM/MSPI). + This status is the result of XOR'ing the IOM0START with + the incoming status from the IOM. When high, MSPI can transfer + the buffer. */ + MSPI0_CQPAUSE_CQMASK_DMACPL = 2048, /*!< DMACPL : DMA Complete Status (hardwired DMACPL bit in DMASTAT) */ + MSPI0_CQPAUSE_CQMASK_CMDCPL = 1024, /*!< CMDCPL : PIO Operation completed (STATUS bit in CTRL register) */ + MSPI0_CQPAUSE_CQMASK_IOM1READY = 512, /*!< IOM1READY : IOM Buffer 1 Ready Status (from selected IOM). This + status is the result of XNOR'ing the IOM0START with the + incoming status from the IOM. When high, MSPI can send + to the buffer. */ + MSPI0_CQPAUSE_CQMASK_IOM0READY = 256, /*!< IOM0READY : IOM Buffer 0 Ready Status (from selected IOM). This + status is the result of XNOR'ing the IOM0START with the + incoming status from the IOM. When high, MSPI can send + to the buffer. */ + MSPI0_CQPAUSE_CQMASK_SWFLAG7 = 128, /*!< SWFLAG7 : Software flag 7. Can be used by software to start/pause + operations */ + MSPI0_CQPAUSE_CQMASK_SWFLAG6 = 64, /*!< SWFLAG6 : Software flag 6. Can be used by software to start/pause + operatoins */ + MSPI0_CQPAUSE_CQMASK_SWFLAG5 = 32, /*!< SWFLAG5 : Software flag 5. Can be used by software to start/pause + operations */ + MSPI0_CQPAUSE_CQMASK_SWFLAG4 = 16, /*!< SWFLAG4 : Software flag 4. Can be used by software to start/pause + operatoins */ + MSPI0_CQPAUSE_CQMASK_SWFLAG3 = 8, /*!< SWFLAG3 : Software flag 3. Can be used by software to start/pause + operations */ + MSPI0_CQPAUSE_CQMASK_SWFLAG2 = 4, /*!< SWFLAG2 : Software flag 2. Can be used by software to start/pause + operatoins */ + MSPI0_CQPAUSE_CQMASK_SWFLAG1 = 2, /*!< SWFLAG1 : Software flag 1. Can be used by software to start/pause + operations */ + MSPI0_CQPAUSE_CQMASK_SWFLAG0 = 1, /*!< SWFLAG0 : Software flag 0. Can be used by software to start/pause + operatoins */ +} MSPI0_CQPAUSE_CQMASK_Enum; + +/* ======================================================= CQCURIDX ======================================================== */ +/* ======================================================= CQENDIDX ======================================================== */ + + +/* =========================================================================================================================== */ +/* ================ PDM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= PCFG ========================================================== */ +/* =============================================== PDM PCFG LRSWAP [31..31] ================================================ */ +typedef enum { /*!< PDM_PCFG_LRSWAP */ + PDM_PCFG_LRSWAP_EN = 1, /*!< EN : Swap left and right channels (FIFO Read RIGHT_LEFT). */ + PDM_PCFG_LRSWAP_NOSWAP = 0, /*!< NOSWAP : No channel swapping (IFO Read LEFT_RIGHT). */ +} PDM_PCFG_LRSWAP_Enum; + +/* ============================================== PDM PCFG PGARIGHT [26..30] =============================================== */ +typedef enum { /*!< PDM_PCFG_PGARIGHT */ + PDM_PCFG_PGARIGHT_P405DB = 31, /*!< P405DB : 40.5 db gain. */ + PDM_PCFG_PGARIGHT_P390DB = 30, /*!< P390DB : 39.0 db gain. */ + PDM_PCFG_PGARIGHT_P375DB = 29, /*!< P375DB : 37.5 db gain. */ + PDM_PCFG_PGARIGHT_P360DB = 28, /*!< P360DB : 36.0 db gain. */ + PDM_PCFG_PGARIGHT_P345DB = 27, /*!< P345DB : 34.5 db gain. */ + PDM_PCFG_PGARIGHT_P330DB = 26, /*!< P330DB : 33.0 db gain. */ + PDM_PCFG_PGARIGHT_P315DB = 25, /*!< P315DB : 31.5 db gain. */ + PDM_PCFG_PGARIGHT_P300DB = 24, /*!< P300DB : 30.0 db gain. */ + PDM_PCFG_PGARIGHT_P285DB = 23, /*!< P285DB : 28.5 db gain. */ + PDM_PCFG_PGARIGHT_P270DB = 22, /*!< P270DB : 27.0 db gain. */ + PDM_PCFG_PGARIGHT_P255DB = 21, /*!< P255DB : 25.5 db gain. */ + PDM_PCFG_PGARIGHT_P240DB = 20, /*!< P240DB : 24.0 db gain. */ + PDM_PCFG_PGARIGHT_P225DB = 19, /*!< P225DB : 22.5 db gain. */ + PDM_PCFG_PGARIGHT_P210DB = 18, /*!< P210DB : 21.0 db gain. */ + PDM_PCFG_PGARIGHT_P195DB = 17, /*!< P195DB : 19.5 db gain. */ + PDM_PCFG_PGARIGHT_P180DB = 16, /*!< P180DB : 18.0 db gain. */ + PDM_PCFG_PGARIGHT_P165DB = 15, /*!< P165DB : 16.5 db gain. */ + PDM_PCFG_PGARIGHT_P150DB = 14, /*!< P150DB : 15.0 db gain. */ + PDM_PCFG_PGARIGHT_P135DB = 13, /*!< P135DB : 13.5 db gain. */ + PDM_PCFG_PGARIGHT_P120DB = 12, /*!< P120DB : 12.0 db gain. */ + PDM_PCFG_PGARIGHT_P105DB = 11, /*!< P105DB : 10.5 db gain. */ + PDM_PCFG_PGARIGHT_P90DB = 10, /*!< P90DB : 9.0 db gain. */ + PDM_PCFG_PGARIGHT_P75DB = 9, /*!< P75DB : 7.5 db gain. */ + PDM_PCFG_PGARIGHT_P60DB = 8, /*!< P60DB : 6.0 db gain. */ + PDM_PCFG_PGARIGHT_P45DB = 7, /*!< P45DB : 4.5 db gain. */ + PDM_PCFG_PGARIGHT_P30DB = 6, /*!< P30DB : 3.0 db gain. */ + PDM_PCFG_PGARIGHT_P15DB = 5, /*!< P15DB : 1.5 db gain. */ + PDM_PCFG_PGARIGHT_0DB = 4, /*!< 0DB : 0.0 db gain. */ + PDM_PCFG_PGARIGHT_M15DB = 3, /*!< M15DB : -1.5 db gain. */ + PDM_PCFG_PGARIGHT_M300DB = 2, /*!< M300DB : -3.0 db gain. */ + PDM_PCFG_PGARIGHT_M45DB = 1, /*!< M45DB : -4.5 db gain. */ + PDM_PCFG_PGARIGHT_M60DB = 0, /*!< M60DB : -6.0 db gain. */ +} PDM_PCFG_PGARIGHT_Enum; + +/* =============================================== PDM PCFG PGALEFT [21..25] =============================================== */ +typedef enum { /*!< PDM_PCFG_PGALEFT */ + PDM_PCFG_PGALEFT_P405DB = 31, /*!< P405DB : 40.5 db gain. */ + PDM_PCFG_PGALEFT_P390DB = 30, /*!< P390DB : 39.0 db gain. */ + PDM_PCFG_PGALEFT_P375DB = 29, /*!< P375DB : 37.5 db gain. */ + PDM_PCFG_PGALEFT_P360DB = 28, /*!< P360DB : 36.0 db gain. */ + PDM_PCFG_PGALEFT_P345DB = 27, /*!< P345DB : 34.5 db gain. */ + PDM_PCFG_PGALEFT_P330DB = 26, /*!< P330DB : 33.0 db gain. */ + PDM_PCFG_PGALEFT_P315DB = 25, /*!< P315DB : 31.5 db gain. */ + PDM_PCFG_PGALEFT_P300DB = 24, /*!< P300DB : 30.0 db gain. */ + PDM_PCFG_PGALEFT_P285DB = 23, /*!< P285DB : 28.5 db gain. */ + PDM_PCFG_PGALEFT_P270DB = 22, /*!< P270DB : 27.0 db gain. */ + PDM_PCFG_PGALEFT_P255DB = 21, /*!< P255DB : 25.5 db gain. */ + PDM_PCFG_PGALEFT_P240DB = 20, /*!< P240DB : 24.0 db gain. */ + PDM_PCFG_PGALEFT_P225DB = 19, /*!< P225DB : 22.5 db gain. */ + PDM_PCFG_PGALEFT_P210DB = 18, /*!< P210DB : 21.0 db gain. */ + PDM_PCFG_PGALEFT_P195DB = 17, /*!< P195DB : 19.5 db gain. */ + PDM_PCFG_PGALEFT_P180DB = 16, /*!< P180DB : 18.0 db gain. */ + PDM_PCFG_PGALEFT_P165DB = 15, /*!< P165DB : 16.5 db gain. */ + PDM_PCFG_PGALEFT_P150DB = 14, /*!< P150DB : 15.0 db gain. */ + PDM_PCFG_PGALEFT_P135DB = 13, /*!< P135DB : 13.5 db gain. */ + PDM_PCFG_PGALEFT_P120DB = 12, /*!< P120DB : 12.0 db gain. */ + PDM_PCFG_PGALEFT_P105DB = 11, /*!< P105DB : 10.5 db gain. */ + PDM_PCFG_PGALEFT_P90DB = 10, /*!< P90DB : 9.0 db gain. */ + PDM_PCFG_PGALEFT_P75DB = 9, /*!< P75DB : 7.5 db gain. */ + PDM_PCFG_PGALEFT_P60DB = 8, /*!< P60DB : 6.0 db gain. */ + PDM_PCFG_PGALEFT_P45DB = 7, /*!< P45DB : 4.5 db gain. */ + PDM_PCFG_PGALEFT_P30DB = 6, /*!< P30DB : 3.0 db gain. */ + PDM_PCFG_PGALEFT_P15DB = 5, /*!< P15DB : 1.5 db gain. */ + PDM_PCFG_PGALEFT_0DB = 4, /*!< 0DB : 0.0 db gain. */ + PDM_PCFG_PGALEFT_M15DB = 3, /*!< M15DB : -1.5 db gain. */ + PDM_PCFG_PGALEFT_M300DB = 2, /*!< M300DB : -3.0 db gain. */ + PDM_PCFG_PGALEFT_M45DB = 1, /*!< M45DB : -4.5 db gain. */ + PDM_PCFG_PGALEFT_M60DB = 0, /*!< M60DB : -6.0 db gain. */ +} PDM_PCFG_PGALEFT_Enum; + +/* =============================================== PDM PCFG MCLKDIV [17..18] =============================================== */ +typedef enum { /*!< PDM_PCFG_MCLKDIV */ + PDM_PCFG_MCLKDIV_MCKDIV4 = 3, /*!< MCKDIV4 : Divide input clock by 4 */ + PDM_PCFG_MCLKDIV_MCKDIV3 = 2, /*!< MCKDIV3 : Divide input clock by 3 */ + PDM_PCFG_MCLKDIV_MCKDIV2 = 1, /*!< MCKDIV2 : Divide input clock by 2 */ + PDM_PCFG_MCLKDIV_MCKDIV1 = 0, /*!< MCKDIV1 : Divide input clock by 1 */ +} PDM_PCFG_MCLKDIV_Enum; + +/* ================================================ PDM PCFG ADCHPD [9..9] ================================================= */ +typedef enum { /*!< PDM_PCFG_ADCHPD */ + PDM_PCFG_ADCHPD_EN = 0, /*!< EN : Enable high pass filter. */ + PDM_PCFG_ADCHPD_DIS = 1, /*!< DIS : Disable high pass filter. */ +} PDM_PCFG_ADCHPD_Enum; + +/* =============================================== PDM PCFG SOFTMUTE [1..1] ================================================ */ +typedef enum { /*!< PDM_PCFG_SOFTMUTE */ + PDM_PCFG_SOFTMUTE_EN = 1, /*!< EN : Enable Soft Mute. */ + PDM_PCFG_SOFTMUTE_DIS = 0, /*!< DIS : Disable Soft Mute. */ +} PDM_PCFG_SOFTMUTE_Enum; + +/* =============================================== PDM PCFG PDMCOREEN [0..0] =============================================== */ +typedef enum { /*!< PDM_PCFG_PDMCOREEN */ + PDM_PCFG_PDMCOREEN_EN = 1, /*!< EN : Enable Data Streaming. */ + PDM_PCFG_PDMCOREEN_DIS = 0, /*!< DIS : Disable Data Streaming. */ +} PDM_PCFG_PDMCOREEN_Enum; + +/* ========================================================= VCFG ========================================================== */ +/* =============================================== PDM VCFG IOCLKEN [31..31] =============================================== */ +typedef enum { /*!< PDM_VCFG_IOCLKEN */ + PDM_VCFG_IOCLKEN_DIS = 0, /*!< DIS : Disable FIFO read. */ + PDM_VCFG_IOCLKEN_EN = 1, /*!< EN : Enable FIFO read. */ +} PDM_VCFG_IOCLKEN_Enum; + +/* ================================================ PDM VCFG RSTB [30..30] ================================================= */ +typedef enum { /*!< PDM_VCFG_RSTB */ + PDM_VCFG_RSTB_RESET = 0, /*!< RESET : Reset the core. */ + PDM_VCFG_RSTB_NORM = 1, /*!< NORM : Enable the core. */ +} PDM_VCFG_RSTB_Enum; + +/* ============================================== PDM VCFG PDMCLKSEL [27..29] ============================================== */ +typedef enum { /*!< PDM_VCFG_PDMCLKSEL */ + PDM_VCFG_PDMCLKSEL_DISABLE = 0, /*!< DISABLE : Static value. */ + PDM_VCFG_PDMCLKSEL_12MHz = 1, /*!< 12MHz : PDM clock is 12 MHz. */ + PDM_VCFG_PDMCLKSEL_6MHz = 2, /*!< 6MHz : PDM clock is 6 MHz. */ + PDM_VCFG_PDMCLKSEL_3MHz = 3, /*!< 3MHz : PDM clock is 3 MHz. */ + PDM_VCFG_PDMCLKSEL_1_5MHz = 4, /*!< 1_5MHz : PDM clock is 1.5 MHz. */ + PDM_VCFG_PDMCLKSEL_750KHz = 5, /*!< 750KHz : PDM clock is 750 KHz. */ + PDM_VCFG_PDMCLKSEL_375KHz = 6, /*!< 375KHz : PDM clock is 375 KHz. */ + PDM_VCFG_PDMCLKSEL_187KHz = 7, /*!< 187KHz : PDM clock is 187.5 KHz. */ +} PDM_VCFG_PDMCLKSEL_Enum; + +/* ============================================== PDM VCFG PDMCLKEN [26..26] =============================================== */ +typedef enum { /*!< PDM_VCFG_PDMCLKEN */ + PDM_VCFG_PDMCLKEN_DIS = 0, /*!< DIS : Disable serial clock. */ + PDM_VCFG_PDMCLKEN_EN = 1, /*!< EN : Enable serial clock. */ +} PDM_VCFG_PDMCLKEN_Enum; + +/* ================================================ PDM VCFG I2SEN [20..20] ================================================ */ +typedef enum { /*!< PDM_VCFG_I2SEN */ + PDM_VCFG_I2SEN_DIS = 0, /*!< DIS : Disable I2S interface. */ + PDM_VCFG_I2SEN_EN = 1, /*!< EN : Enable I2S interface. */ +} PDM_VCFG_I2SEN_Enum; + +/* =============================================== PDM VCFG BCLKINV [19..19] =============================================== */ +typedef enum { /*!< PDM_VCFG_BCLKINV */ + PDM_VCFG_BCLKINV_INV = 0, /*!< INV : BCLK inverted. */ + PDM_VCFG_BCLKINV_NORM = 1, /*!< NORM : BCLK not inverted. */ +} PDM_VCFG_BCLKINV_Enum; + +/* ============================================== PDM VCFG DMICKDEL [17..17] =============================================== */ +typedef enum { /*!< PDM_VCFG_DMICKDEL */ + PDM_VCFG_DMICKDEL_0CYC = 0, /*!< 0CYC : No delay. */ + PDM_VCFG_DMICKDEL_1CYC = 1, /*!< 1CYC : 1 cycle delay. */ +} PDM_VCFG_DMICKDEL_Enum; + +/* ================================================ PDM VCFG SELAP [16..16] ================================================ */ +typedef enum { /*!< PDM_VCFG_SELAP */ + PDM_VCFG_SELAP_I2S = 1, /*!< I2S : Clock source from I2S BCLK. */ + PDM_VCFG_SELAP_INTERNAL = 0, /*!< INTERNAL : Clock source from internal clock generator. */ +} PDM_VCFG_SELAP_Enum; + +/* ================================================ PDM VCFG PCMPACK [8..8] ================================================ */ +typedef enum { /*!< PDM_VCFG_PCMPACK */ + PDM_VCFG_PCMPACK_DIS = 0, /*!< DIS : Disable PCM packing. */ + PDM_VCFG_PCMPACK_EN = 1, /*!< EN : Enable PCM packing. */ +} PDM_VCFG_PCMPACK_Enum; + +/* ================================================= PDM VCFG CHSET [3..4] ================================================= */ +typedef enum { /*!< PDM_VCFG_CHSET */ + PDM_VCFG_CHSET_DIS = 0, /*!< DIS : Channel disabled. */ + PDM_VCFG_CHSET_LEFT = 1, /*!< LEFT : Mono left channel. */ + PDM_VCFG_CHSET_RIGHT = 2, /*!< RIGHT : Mono right channel. */ + PDM_VCFG_CHSET_STEREO = 3, /*!< STEREO : Stereo channels. */ +} PDM_VCFG_CHSET_Enum; + +/* ======================================================= VOICESTAT ======================================================= */ +/* ======================================================= FIFOREAD ======================================================== */ +/* ======================================================= FIFOFLUSH ======================================================= */ +/* ======================================================== FIFOTHR ======================================================== */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ======================================================= DMATRIGEN ======================================================= */ +/* ====================================================== DMATRIGSTAT ====================================================== */ +/* ======================================================== DMACFG ========================================================= */ +/* =============================================== PDM DMACFG DMAPRI [8..8] ================================================ */ +typedef enum { /*!< PDM_DMACFG_DMAPRI */ + PDM_DMACFG_DMAPRI_LOW = 0, /*!< LOW : Low Priority (service as best effort) */ + PDM_DMACFG_DMAPRI_HIGH = 1, /*!< HIGH : High Priority (service immediately) */ +} PDM_DMACFG_DMAPRI_Enum; + +/* =============================================== PDM DMACFG DMADIR [2..2] ================================================ */ +typedef enum { /*!< PDM_DMACFG_DMADIR */ + PDM_DMACFG_DMADIR_P2M = 0, /*!< P2M : Peripheral to Memory (SRAM) transaction. THe PDM module + will only DMA to memory. */ + PDM_DMACFG_DMADIR_M2P = 1, /*!< M2P : Memory to Peripheral transaction. Not available for PDM + module */ +} PDM_DMACFG_DMADIR_Enum; + +/* ================================================ PDM DMACFG DMAEN [0..0] ================================================ */ +typedef enum { /*!< PDM_DMACFG_DMAEN */ + PDM_DMACFG_DMAEN_DIS = 0, /*!< DIS : Disable DMA Function */ + PDM_DMACFG_DMAEN_EN = 1, /*!< EN : Enable DMA Function */ +} PDM_DMACFG_DMAEN_Enum; + +/* ====================================================== DMATOTCOUNT ====================================================== */ +/* ====================================================== DMATARGADDR ====================================================== */ +/* ======================================================== DMASTAT ======================================================== */ + + +/* =========================================================================================================================== */ +/* ================ PWRCTRL ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= SUPPLYSRC ======================================================= */ +/* ========================================== PWRCTRL SUPPLYSRC BLEBUCKEN [0..0] =========================================== */ +typedef enum { /*!< PWRCTRL_SUPPLYSRC_BLEBUCKEN */ + PWRCTRL_SUPPLYSRC_BLEBUCKEN_EN = 1, /*!< EN : Enable the BLE Buck. */ + PWRCTRL_SUPPLYSRC_BLEBUCKEN_DIS = 0, /*!< DIS : Disable the BLE Buck. */ +} PWRCTRL_SUPPLYSRC_BLEBUCKEN_Enum; + +/* ===================================================== SUPPLYSTATUS ====================================================== */ +/* ========================================= PWRCTRL SUPPLYSTATUS BLEBUCKON [1..1] ========================================= */ +typedef enum { /*!< PWRCTRL_SUPPLYSTATUS_BLEBUCKON */ + PWRCTRL_SUPPLYSTATUS_BLEBUCKON_LDO = 0, /*!< LDO : Indicates the the LDO is supplying the BLE/Burst power + domain */ + PWRCTRL_SUPPLYSTATUS_BLEBUCKON_BUCK = 1, /*!< BUCK : Indicates the the Buck is supplying the BLE/Burst power + domain */ +} PWRCTRL_SUPPLYSTATUS_BLEBUCKON_Enum; + +/* ======================================== PWRCTRL SUPPLYSTATUS SIMOBUCKON [0..0] ========================================= */ +typedef enum { /*!< PWRCTRL_SUPPLYSTATUS_SIMOBUCKON */ + PWRCTRL_SUPPLYSTATUS_SIMOBUCKON_OFF = 0, /*!< OFF : Indicates the the SIMO Buck is OFF. */ + PWRCTRL_SUPPLYSTATUS_SIMOBUCKON_ON = 1, /*!< ON : Indicates the the SIMO Buck is ON. */ +} PWRCTRL_SUPPLYSTATUS_SIMOBUCKON_Enum; + +/* ======================================================= DEVPWREN ======================================================== */ +/* =========================================== PWRCTRL DEVPWREN PWRBLEL [15..15] =========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRBLEL */ + PWRCTRL_DEVPWREN_PWRBLEL_EN = 1, /*!< EN : Power up BLE controller */ + PWRCTRL_DEVPWREN_PWRBLEL_DIS = 0, /*!< DIS : Power down BLE controller */ +} PWRCTRL_DEVPWREN_PWRBLEL_Enum; + +/* =========================================== PWRCTRL DEVPWREN PWRPDM [14..14] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRPDM */ + PWRCTRL_DEVPWREN_PWRPDM_EN = 1, /*!< EN : Power up PDM */ + PWRCTRL_DEVPWREN_PWRPDM_DIS = 0, /*!< DIS : Power down PDM */ +} PWRCTRL_DEVPWREN_PWRPDM_Enum; + +/* ========================================== PWRCTRL DEVPWREN PWRMSPI2 [13..13] =========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRMSPI2 */ + PWRCTRL_DEVPWREN_PWRMSPI2_EN = 1, /*!< EN : Power up MSPI2 */ + PWRCTRL_DEVPWREN_PWRMSPI2_DIS = 0, /*!< DIS : Power down MSPI2 */ +} PWRCTRL_DEVPWREN_PWRMSPI2_Enum; + +/* ========================================== PWRCTRL DEVPWREN PWRMSPI1 [12..12] =========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRMSPI1 */ + PWRCTRL_DEVPWREN_PWRMSPI1_EN = 1, /*!< EN : Power up MSPI1 */ + PWRCTRL_DEVPWREN_PWRMSPI1_DIS = 0, /*!< DIS : Power down MSPI1 */ +} PWRCTRL_DEVPWREN_PWRMSPI1_Enum; + +/* ========================================== PWRCTRL DEVPWREN PWRMSPI0 [11..11] =========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRMSPI0 */ + PWRCTRL_DEVPWREN_PWRMSPI0_EN = 1, /*!< EN : Power up MSPI0 */ + PWRCTRL_DEVPWREN_PWRMSPI0_DIS = 0, /*!< DIS : Power down MSPI0 */ +} PWRCTRL_DEVPWREN_PWRMSPI0_Enum; + +/* ========================================== PWRCTRL DEVPWREN PWRSCARD [10..10] =========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRSCARD */ + PWRCTRL_DEVPWREN_PWRSCARD_EN = 1, /*!< EN : Power up SCARD */ + PWRCTRL_DEVPWREN_PWRSCARD_DIS = 0, /*!< DIS : Power down SCARD */ +} PWRCTRL_DEVPWREN_PWRSCARD_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRADC [9..9] ============================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRADC */ + PWRCTRL_DEVPWREN_PWRADC_EN = 1, /*!< EN : Power up ADC */ + PWRCTRL_DEVPWREN_PWRADC_DIS = 0, /*!< DIS : Power Down ADC */ +} PWRCTRL_DEVPWREN_PWRADC_Enum; + +/* =========================================== PWRCTRL DEVPWREN PWRUART1 [8..8] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRUART1 */ + PWRCTRL_DEVPWREN_PWRUART1_EN = 1, /*!< EN : Power up UART 1 */ + PWRCTRL_DEVPWREN_PWRUART1_DIS = 0, /*!< DIS : Power down UART 1 */ +} PWRCTRL_DEVPWREN_PWRUART1_Enum; + +/* =========================================== PWRCTRL DEVPWREN PWRUART0 [7..7] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRUART0 */ + PWRCTRL_DEVPWREN_PWRUART0_EN = 1, /*!< EN : Power up UART 0 */ + PWRCTRL_DEVPWREN_PWRUART0_DIS = 0, /*!< DIS : Power down UART 0 */ +} PWRCTRL_DEVPWREN_PWRUART0_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOM5 [6..6] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOM5 */ + PWRCTRL_DEVPWREN_PWRIOM5_EN = 1, /*!< EN : Power up IO Master 5 */ + PWRCTRL_DEVPWREN_PWRIOM5_DIS = 0, /*!< DIS : Power down IO Master 5 */ +} PWRCTRL_DEVPWREN_PWRIOM5_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOM4 [5..5] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOM4 */ + PWRCTRL_DEVPWREN_PWRIOM4_EN = 1, /*!< EN : Power up IO Master 4 */ + PWRCTRL_DEVPWREN_PWRIOM4_DIS = 0, /*!< DIS : Power down IO Master 4 */ +} PWRCTRL_DEVPWREN_PWRIOM4_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOM3 [4..4] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOM3 */ + PWRCTRL_DEVPWREN_PWRIOM3_EN = 1, /*!< EN : Power up IO Master 3 */ + PWRCTRL_DEVPWREN_PWRIOM3_DIS = 0, /*!< DIS : Power down IO Master 3 */ +} PWRCTRL_DEVPWREN_PWRIOM3_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOM2 [3..3] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOM2 */ + PWRCTRL_DEVPWREN_PWRIOM2_EN = 1, /*!< EN : Power up IO Master 2 */ + PWRCTRL_DEVPWREN_PWRIOM2_DIS = 0, /*!< DIS : Power down IO Master 2 */ +} PWRCTRL_DEVPWREN_PWRIOM2_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOM1 [2..2] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOM1 */ + PWRCTRL_DEVPWREN_PWRIOM1_EN = 1, /*!< EN : Power up IO Master 1 */ + PWRCTRL_DEVPWREN_PWRIOM1_DIS = 0, /*!< DIS : Power down IO Master 1 */ +} PWRCTRL_DEVPWREN_PWRIOM1_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOM0 [1..1] ============================================ */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOM0 */ + PWRCTRL_DEVPWREN_PWRIOM0_EN = 1, /*!< EN : Power up IO Master 0 */ + PWRCTRL_DEVPWREN_PWRIOM0_DIS = 0, /*!< DIS : Power down IO Master 0 */ +} PWRCTRL_DEVPWREN_PWRIOM0_Enum; + +/* ============================================ PWRCTRL DEVPWREN PWRIOS [0..0] ============================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREN_PWRIOS */ + PWRCTRL_DEVPWREN_PWRIOS_EN = 1, /*!< EN : Power up IO slave */ + PWRCTRL_DEVPWREN_PWRIOS_DIS = 0, /*!< DIS : Power down IO slave */ +} PWRCTRL_DEVPWREN_PWRIOS_Enum; + +/* ===================================================== MEMPWDINSLEEP ===================================================== */ +/* ====================================== PWRCTRL MEMPWDINSLEEP CACHEPWDSLP [31..31] ======================================= */ +typedef enum { /*!< PWRCTRL_MEMPWDINSLEEP_CACHEPWDSLP */ + PWRCTRL_MEMPWDINSLEEP_CACHEPWDSLP_EN = 1, /*!< EN : Power down cache in deep sleep */ + PWRCTRL_MEMPWDINSLEEP_CACHEPWDSLP_DIS = 0, /*!< DIS : Retain cache in deep sleep */ +} PWRCTRL_MEMPWDINSLEEP_CACHEPWDSLP_Enum; + +/* ====================================== PWRCTRL MEMPWDINSLEEP FLASH1PWDSLP [14..14] ====================================== */ +typedef enum { /*!< PWRCTRL_MEMPWDINSLEEP_FLASH1PWDSLP */ + PWRCTRL_MEMPWDINSLEEP_FLASH1PWDSLP_EN = 1, /*!< EN : Flash1 is powered down during deepsleep */ + PWRCTRL_MEMPWDINSLEEP_FLASH1PWDSLP_DIS = 0, /*!< DIS : Flash1 is kept powered on during deepsleep */ +} PWRCTRL_MEMPWDINSLEEP_FLASH1PWDSLP_Enum; + +/* ====================================== PWRCTRL MEMPWDINSLEEP FLASH0PWDSLP [13..13] ====================================== */ +typedef enum { /*!< PWRCTRL_MEMPWDINSLEEP_FLASH0PWDSLP */ + PWRCTRL_MEMPWDINSLEEP_FLASH0PWDSLP_EN = 1, /*!< EN : Flash0 is powered down during deepsleep */ + PWRCTRL_MEMPWDINSLEEP_FLASH0PWDSLP_DIS = 0, /*!< DIS : Flash0 is kept powered on during deepsleep */ +} PWRCTRL_MEMPWDINSLEEP_FLASH0PWDSLP_Enum; + +/* ======================================= PWRCTRL MEMPWDINSLEEP SRAMPWDSLP [3..12] ======================================== */ +typedef enum { /*!< PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_NONE = 0, /*!< NONE : All banks retained */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP0 = 1, /*!< GROUP0 : SRAM GROUP0 powered down (64KB-96KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP1 = 2, /*!< GROUP1 : SRAM GROUP1 powered down (96KB-128KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP2 = 4, /*!< GROUP2 : SRAM GROUP2 powered down (128KB-160KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP3 = 8, /*!< GROUP3 : SRAM GROUP3 powered down (160KB-192KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP4 = 16, /*!< GROUP4 : SRAM GROUP4 powered down (192KB-224KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP5 = 32, /*!< GROUP5 : SRAM GROUP5 powered down (224KB-256KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP6 = 64, /*!< GROUP6 : SRAM GROUP6 powered down (256KB-288KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP7 = 128,/*!< GROUP7 : SRAM GROUP7 powered down (288KB-320KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP8 = 256,/*!< GROUP8 : SRAM GROUP8 powered down (320KB-352KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_GROUP9 = 512,/*!< GROUP9 : SRAM GROUP9 powered down (352KB-384KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_SRAM64K = 3, /*!< SRAM64K : Powerdown lower 64k SRAM (64KB-128KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_SRAM128K = 15,/*!< SRAM128K : Powerdown lower 128k SRAM (64KB-192KB) */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_ALLBUTLOWER32K = 1022,/*!< ALLBUTLOWER32K : All SRAM banks but lower 32k powered down (96KB-384KB). */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_ALLBUTLOWER64K = 1020,/*!< ALLBUTLOWER64K : All banks but lower 64k powered down. */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_ALLBUTLOWER128K = 1008,/*!< ALLBUTLOWER128K : All banks but lower 128k powered down. */ + PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_ALL = 1023, /*!< ALL : All banks powered down. */ +} PWRCTRL_MEMPWDINSLEEP_SRAMPWDSLP_Enum; + +/* ======================================== PWRCTRL MEMPWDINSLEEP DTCMPWDSLP [0..2] ======================================== */ +typedef enum { /*!< PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_NONE = 0, /*!< NONE : All DTCM retained */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_GROUP0DTCM0 = 1,/*!< GROUP0DTCM0 : Group0_DTCM0 powered down in deep sleep (0KB-8KB) */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_GROUP0DTCM1 = 2,/*!< GROUP0DTCM1 : Group0_DTCM1 powered down in deep sleep (8KB-32KB) */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_GROUP0 = 3, /*!< GROUP0 : Both DTCMs in group0 are powered down in deep sleep + (0KB-32KB) */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_ALLBUTGROUP0DTCM0 = 6,/*!< ALLBUTGROUP0DTCM0 : Group1 and Group0_DTCM1 are powered down + in deep sleep (8KB-64KB) */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_GROUP1 = 4, /*!< GROUP1 : Group1 DTCM powered down in deep sleep (32KB-64KB) */ + PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_ALL = 7, /*!< ALL : All DTCMs powered down in deep sleep (0KB-64KB) */ +} PWRCTRL_MEMPWDINSLEEP_DTCMPWDSLP_Enum; + +/* ======================================================= MEMPWREN ======================================================== */ +/* =========================================== PWRCTRL MEMPWREN CACHEB2 [31..31] =========================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREN_CACHEB2 */ + PWRCTRL_MEMPWREN_CACHEB2_EN = 1, /*!< EN : Power up Cache Bank 2 */ + PWRCTRL_MEMPWREN_CACHEB2_DIS = 0, /*!< DIS : Power down Cache Bank 2 */ +} PWRCTRL_MEMPWREN_CACHEB2_Enum; + +/* =========================================== PWRCTRL MEMPWREN CACHEB0 [30..30] =========================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREN_CACHEB0 */ + PWRCTRL_MEMPWREN_CACHEB0_EN = 1, /*!< EN : Power up Cache Bank 0 */ + PWRCTRL_MEMPWREN_CACHEB0_DIS = 0, /*!< DIS : Power down Cache Bank 0 */ +} PWRCTRL_MEMPWREN_CACHEB0_Enum; + +/* =========================================== PWRCTRL MEMPWREN FLASH1 [14..14] ============================================ */ +typedef enum { /*!< PWRCTRL_MEMPWREN_FLASH1 */ + PWRCTRL_MEMPWREN_FLASH1_EN = 1, /*!< EN : Power up Flash group 1 (1MB-2MB) */ + PWRCTRL_MEMPWREN_FLASH1_DIS = 0, /*!< DIS : Power down Flash group 1 (1MB-2MB) */ +} PWRCTRL_MEMPWREN_FLASH1_Enum; + +/* =========================================== PWRCTRL MEMPWREN FLASH0 [13..13] ============================================ */ +typedef enum { /*!< PWRCTRL_MEMPWREN_FLASH0 */ + PWRCTRL_MEMPWREN_FLASH0_EN = 1, /*!< EN : Power up Flash group 0 (0MB-1MB) */ + PWRCTRL_MEMPWREN_FLASH0_DIS = 0, /*!< DIS : Power down Flash group 0 (0MB-1MB) */ +} PWRCTRL_MEMPWREN_FLASH0_Enum; + +/* ============================================= PWRCTRL MEMPWREN SRAM [3..12] ============================================= */ +typedef enum { /*!< PWRCTRL_MEMPWREN_SRAM */ + PWRCTRL_MEMPWREN_SRAM_NONE = 0, /*!< NONE : Do not power ON any of the SRAM banks */ + PWRCTRL_MEMPWREN_SRAM_GROUP0 = 1, /*!< GROUP0 : Power ON only SRAM 64KB group0 (addr: 0x10010000 - + 0x1001FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP1 = 2, /*!< GROUP1 : Power ON only SRAM 64KB group1 (addr: 0x10020000 - + 0x1002FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP2 = 4, /*!< GROUP2 : Power ON only SRAM 64KB group2 (addr: 0x10030000 - + 0x1003FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP3 = 8, /*!< GROUP3 : Power ON only SRAM 64KB group3 (addr: 0x10040000 - + 0x1004FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP4 = 16, /*!< GROUP4 : Power ON only SRAM 64KB group4 (addr: 0x10050000 - + 0x1005FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP5 = 32, /*!< GROUP5 : Power ON only SRAM 64KB group5 (addr: 0x10060000 - + 0x1006FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP6 = 64, /*!< GROUP6 : Power ON only SRAM 64KB group6 (addr: 0x10070000 - + 0x1007FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP7 = 128, /*!< GROUP7 : Power ON only SRAM 64KB group7 (addr: 0x10080000 - + 0x1008FFFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP8 = 256, /*!< GROUP8 : Power ON only SRAM 96KB group8 (addr: 0x10090000 - + 0x100A7FFF) */ + PWRCTRL_MEMPWREN_SRAM_GROUP9 = 512, /*!< GROUP9 : Power ON only SRAM 96KB group9 (addr: 0x100A8000 - + 0x100BFFFF) */ + PWRCTRL_MEMPWREN_SRAM_SRAM128K = 3, /*!< SRAM128K : Power ON only lower 128k (addr: 0x10010000 - 0x1002FFFF) */ + PWRCTRL_MEMPWREN_SRAM_SRAM256K = 15, /*!< SRAM256K : Power ON only lower 256k (addr: 0x10010000 - 0x1004FFFF) */ + PWRCTRL_MEMPWREN_SRAM_SRAM512K = 255, /*!< SRAM512K : Power ON only lower 512k (addr: 0x10010000 - 0x1008FFFF) */ + PWRCTRL_MEMPWREN_SRAM_ALL = 1023, /*!< ALL : All SRAM banks (704K) powered ON (addr: 0x10010000 - 0x100BFFFF) */ +} PWRCTRL_MEMPWREN_SRAM_Enum; + +/* ============================================= PWRCTRL MEMPWREN DTCM [0..2] ============================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREN_DTCM */ + PWRCTRL_MEMPWREN_DTCM_NONE = 0, /*!< NONE : Do not enable power to any DTCMs */ + PWRCTRL_MEMPWREN_DTCM_GROUP0DTCM0 = 1, /*!< GROUP0DTCM0 : Power ON only 8KB GROUP0_DTCM0 (0 - 8KB, addr: + 0x10000000 - 0x10001FFF) */ + PWRCTRL_MEMPWREN_DTCM_GROUP0DTCM1 = 2, /*!< GROUP0DTCM1 : Power ON only 24KB GROUP0_DTCM1 (8KB - 32KB, addr: + 0x10002000 - 0x10007FFF) */ + PWRCTRL_MEMPWREN_DTCM_GROUP0 = 3, /*!< GROUP0 : Power ON only DTCMs in 32KB group0 (0 - 32KB, addr: + 0x10000000 - 0x10007FFF) */ + PWRCTRL_MEMPWREN_DTCM_GROUP1 = 4, /*!< GROUP1 : Power ON only DTCMs in 32KB group1 (32KB - 64KB, addr: + 0x10008000 - 0x1000FFFF) */ + PWRCTRL_MEMPWREN_DTCM_ALL = 7, /*!< ALL : Power ON all DTCMs (0 - 64KB, addr: 0x10000000 - 0x1000FFFF) */ +} PWRCTRL_MEMPWREN_DTCM_Enum; + +/* ===================================================== MEMPWRSTATUS ====================================================== */ +/* ===================================================== DEVPWRSTATUS ====================================================== */ +/* ======================================================= SRAMCTRL ======================================================== */ +/* ======================================== PWRCTRL SRAMCTRL SRAMLIGHTSLEEP [8..19] ======================================== */ +typedef enum { /*!< PWRCTRL_SRAMCTRL_SRAMLIGHTSLEEP */ + PWRCTRL_SRAMCTRL_SRAMLIGHTSLEEP_ALL = 255, /*!< ALL : Enable LIGHT SLEEP for ALL SRAMs */ + PWRCTRL_SRAMCTRL_SRAMLIGHTSLEEP_DIS = 0, /*!< DIS : Disables LIGHT SLEEP for ALL SRAMs */ +} PWRCTRL_SRAMCTRL_SRAMLIGHTSLEEP_Enum; + +/* ======================================= PWRCTRL SRAMCTRL SRAMMASTERCLKGATE [2..2] ======================================= */ +typedef enum { /*!< PWRCTRL_SRAMCTRL_SRAMMASTERCLKGATE */ + PWRCTRL_SRAMCTRL_SRAMMASTERCLKGATE_EN = 1, /*!< EN : Enable Master SRAM Clock Gate */ + PWRCTRL_SRAMCTRL_SRAMMASTERCLKGATE_DIS = 0, /*!< DIS : Disables Master SRAM Clock Gating */ +} PWRCTRL_SRAMCTRL_SRAMMASTERCLKGATE_Enum; + +/* ========================================== PWRCTRL SRAMCTRL SRAMCLKGATE [1..1] ========================================== */ +typedef enum { /*!< PWRCTRL_SRAMCTRL_SRAMCLKGATE */ + PWRCTRL_SRAMCTRL_SRAMCLKGATE_EN = 1, /*!< EN : Enable Individual SRAM Clock Gating */ + PWRCTRL_SRAMCTRL_SRAMCLKGATE_DIS = 0, /*!< DIS : Disables Individual SRAM Clock Gating */ +} PWRCTRL_SRAMCTRL_SRAMCLKGATE_Enum; + +/* ======================================================= ADCSTATUS ======================================================= */ +/* ========================================================= MISC ========================================================== */ +/* ============================================ PWRCTRL MISC MEMVRLPBLE [6..6] ============================================= */ +typedef enum { /*!< PWRCTRL_MISC_MEMVRLPBLE */ + PWRCTRL_MISC_MEMVRLPBLE_EN = 1, /*!< EN : Mem VR can go to lp mode even when BLE is powered on. */ + PWRCTRL_MISC_MEMVRLPBLE_DIS = 0, /*!< DIS : Mem VR will stay in active mode when BLE is powered on. */ +} PWRCTRL_MISC_MEMVRLPBLE_Enum; + +/* ===================================================== DEVPWREVENTEN ===================================================== */ +/* ======================================= PWRCTRL DEVPWREVENTEN BURSTEVEN [31..31] ======================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_BURSTEVEN */ + PWRCTRL_DEVPWREVENTEN_BURSTEVEN_EN = 1, /*!< EN : Enable BURST status event */ + PWRCTRL_DEVPWREVENTEN_BURSTEVEN_DIS = 0, /*!< DIS : Disable BURST status event */ +} PWRCTRL_DEVPWREVENTEN_BURSTEVEN_Enum; + +/* ==================================== PWRCTRL DEVPWREVENTEN BURSTFEATUREEVEN [30..30] ==================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_BURSTFEATUREEVEN */ + PWRCTRL_DEVPWREVENTEN_BURSTFEATUREEVEN_EN = 1,/*!< EN : Enable BURSTFEATURE status event */ + PWRCTRL_DEVPWREVENTEN_BURSTFEATUREEVEN_DIS = 0,/*!< DIS : Disable BURSTFEATURE status event */ +} PWRCTRL_DEVPWREVENTEN_BURSTFEATUREEVEN_Enum; + +/* ===================================== PWRCTRL DEVPWREVENTEN BLEFEATUREEVEN [29..29] ===================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_BLEFEATUREEVEN */ + PWRCTRL_DEVPWREVENTEN_BLEFEATUREEVEN_EN = 1, /*!< EN : Enable BLEFEATURE status event */ + PWRCTRL_DEVPWREVENTEN_BLEFEATUREEVEN_DIS = 0, /*!< DIS : Disable BLEFEATURE status event */ +} PWRCTRL_DEVPWREVENTEN_BLEFEATUREEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN BLELEVEN [8..8] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_BLELEVEN */ + PWRCTRL_DEVPWREVENTEN_BLELEVEN_EN = 1, /*!< EN : Enable BLE power-on status event */ + PWRCTRL_DEVPWREVENTEN_BLELEVEN_DIS = 0, /*!< DIS : Disable BLE power-on status event */ +} PWRCTRL_DEVPWREVENTEN_BLELEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN PDMEVEN [7..7] ========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_PDMEVEN */ + PWRCTRL_DEVPWREVENTEN_PDMEVEN_EN = 1, /*!< EN : Enable PDM power-on status event */ + PWRCTRL_DEVPWREVENTEN_PDMEVEN_DIS = 0, /*!< DIS : Disable PDM power-on status event */ +} PWRCTRL_DEVPWREVENTEN_PDMEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN MSPIEVEN [6..6] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_MSPIEVEN */ + PWRCTRL_DEVPWREVENTEN_MSPIEVEN_EN = 1, /*!< EN : Enable MSPI power-on status event */ + PWRCTRL_DEVPWREVENTEN_MSPIEVEN_DIS = 0, /*!< DIS : Disable MSPI power-on status event */ +} PWRCTRL_DEVPWREVENTEN_MSPIEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN ADCEVEN [5..5] ========================================== */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_ADCEVEN */ + PWRCTRL_DEVPWREVENTEN_ADCEVEN_EN = 1, /*!< EN : Enable ADC power-on status event */ + PWRCTRL_DEVPWREVENTEN_ADCEVEN_DIS = 0, /*!< DIS : Disable ADC power-on status event */ +} PWRCTRL_DEVPWREVENTEN_ADCEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN HCPCEVEN [4..4] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_HCPCEVEN */ + PWRCTRL_DEVPWREVENTEN_HCPCEVEN_EN = 1, /*!< EN : Enable HCPC power-on status event */ + PWRCTRL_DEVPWREVENTEN_HCPCEVEN_DIS = 0, /*!< DIS : Disable HCPC power-on status event */ +} PWRCTRL_DEVPWREVENTEN_HCPCEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN HCPBEVEN [3..3] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_HCPBEVEN */ + PWRCTRL_DEVPWREVENTEN_HCPBEVEN_EN = 1, /*!< EN : Enable HCPB power-on status event */ + PWRCTRL_DEVPWREVENTEN_HCPBEVEN_DIS = 0, /*!< DIS : Disable HCPB power-on status event */ +} PWRCTRL_DEVPWREVENTEN_HCPBEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN HCPAEVEN [2..2] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_HCPAEVEN */ + PWRCTRL_DEVPWREVENTEN_HCPAEVEN_EN = 1, /*!< EN : Enable HCPA power-on status event */ + PWRCTRL_DEVPWREVENTEN_HCPAEVEN_DIS = 0, /*!< DIS : Disable HCPA power-on status event */ +} PWRCTRL_DEVPWREVENTEN_HCPAEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN MCUHEVEN [1..1] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_MCUHEVEN */ + PWRCTRL_DEVPWREVENTEN_MCUHEVEN_EN = 1, /*!< EN : Enable MCHU power-on status event */ + PWRCTRL_DEVPWREVENTEN_MCUHEVEN_DIS = 0, /*!< DIS : Disable MCUH power-on status event */ +} PWRCTRL_DEVPWREVENTEN_MCUHEVEN_Enum; + +/* ========================================= PWRCTRL DEVPWREVENTEN MCULEVEN [0..0] ========================================= */ +typedef enum { /*!< PWRCTRL_DEVPWREVENTEN_MCULEVEN */ + PWRCTRL_DEVPWREVENTEN_MCULEVEN_EN = 1, /*!< EN : Enable MCUL power-on status event */ + PWRCTRL_DEVPWREVENTEN_MCULEVEN_DIS = 0, /*!< DIS : Disable MCUL power-on status event */ +} PWRCTRL_DEVPWREVENTEN_MCULEVEN_Enum; + +/* ===================================================== MEMPWREVENTEN ===================================================== */ +/* ======================================= PWRCTRL MEMPWREVENTEN CACHEB2EN [31..31] ======================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREVENTEN_CACHEB2EN */ + PWRCTRL_MEMPWREVENTEN_CACHEB2EN_EN = 1, /*!< EN : Enable CACHE BANK 2 status event */ + PWRCTRL_MEMPWREVENTEN_CACHEB2EN_DIS = 0, /*!< DIS : Disable CACHE BANK 2 status event */ +} PWRCTRL_MEMPWREVENTEN_CACHEB2EN_Enum; + +/* ======================================= PWRCTRL MEMPWREVENTEN CACHEB0EN [30..30] ======================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREVENTEN_CACHEB0EN */ + PWRCTRL_MEMPWREVENTEN_CACHEB0EN_EN = 1, /*!< EN : Enable CACHE BANK 0 status event */ + PWRCTRL_MEMPWREVENTEN_CACHEB0EN_DIS = 0, /*!< DIS : Disable CACHE BANK 0 status event */ +} PWRCTRL_MEMPWREVENTEN_CACHEB0EN_Enum; + +/* ======================================== PWRCTRL MEMPWREVENTEN FLASH1EN [14..14] ======================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREVENTEN_FLASH1EN */ + PWRCTRL_MEMPWREVENTEN_FLASH1EN_EN = 1, /*!< EN : Enable FLASH status event */ + PWRCTRL_MEMPWREVENTEN_FLASH1EN_DIS = 0, /*!< DIS : Disables FLASH status event */ +} PWRCTRL_MEMPWREVENTEN_FLASH1EN_Enum; + +/* ======================================== PWRCTRL MEMPWREVENTEN FLASH0EN [13..13] ======================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREVENTEN_FLASH0EN */ + PWRCTRL_MEMPWREVENTEN_FLASH0EN_EN = 1, /*!< EN : Enable FLASH status event */ + PWRCTRL_MEMPWREVENTEN_FLASH0EN_DIS = 0, /*!< DIS : Disables FLASH status event */ +} PWRCTRL_MEMPWREVENTEN_FLASH0EN_Enum; + +/* ========================================= PWRCTRL MEMPWREVENTEN SRAMEN [3..12] ========================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREVENTEN_SRAMEN */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_NONE = 0, /*!< NONE : Disable SRAM power-on status event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP0EN = 1, /*!< GROUP0EN : Enable SRAM group0 (0KB-32KB) power on status event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP1EN = 2, /*!< GROUP1EN : Enable SRAM group1 (32KB-64KB) power on status event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP2EN = 4, /*!< GROUP2EN : Enable SRAM group2 (64KB-96KB) power on status event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP3EN = 8, /*!< GROUP3EN : Enable SRAM group3 (96KB-128KB) power on status event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP4EN = 16, /*!< GROUP4EN : Enable SRAM group4 (128KB-160KB) power on status + event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP5EN = 32, /*!< GROUP5EN : Enable SRAM group5 (160KB-192KB) power on status + event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP6EN = 64, /*!< GROUP6EN : Enable SRAM group6 (192KB-224KB) power on status + event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP7EN = 128, /*!< GROUP7EN : Enable SRAM group7 (224KB-256KB) power on status + event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP8EN = 256, /*!< GROUP8EN : Enable SRAM group8 (256KB-288KB) power on status + event */ + PWRCTRL_MEMPWREVENTEN_SRAMEN_GROUP9EN = 512, /*!< GROUP9EN : Enable SRAM group9 (288KB-320KB) power on status + event */ +} PWRCTRL_MEMPWREVENTEN_SRAMEN_Enum; + +/* ========================================== PWRCTRL MEMPWREVENTEN DTCMEN [0..2] ========================================== */ +typedef enum { /*!< PWRCTRL_MEMPWREVENTEN_DTCMEN */ + PWRCTRL_MEMPWREVENTEN_DTCMEN_NONE = 0, /*!< NONE : Do not enable DTCM power-on status event */ + PWRCTRL_MEMPWREVENTEN_DTCMEN_GROUP0DTCM0EN = 1,/*!< GROUP0DTCM0EN : Enable GROUP0_DTCM0 power on status event */ + PWRCTRL_MEMPWREVENTEN_DTCMEN_GROUP0DTCM1EN = 2,/*!< GROUP0DTCM1EN : Enable GROUP0_DTCM1 power on status event */ + PWRCTRL_MEMPWREVENTEN_DTCMEN_GROUP0EN = 3, /*!< GROUP0EN : Enable DTCMs in group0 power on status event */ + PWRCTRL_MEMPWREVENTEN_DTCMEN_GROUP1EN = 4, /*!< GROUP1EN : Enable DTCMs in group1 power on status event */ + PWRCTRL_MEMPWREVENTEN_DTCMEN_ALL = 7, /*!< ALL : Enable all DTCM power on status event */ +} PWRCTRL_MEMPWREVENTEN_DTCMEN_Enum; + + + +/* =========================================================================================================================== */ +/* ================ RSTGEN ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +/* ========================================================= SWPOI ========================================================= */ +/* ============================================= RSTGEN SWPOI SWPOIKEY [0..7] ============================================== */ +typedef enum { /*!< RSTGEN_SWPOI_SWPOIKEY */ + RSTGEN_SWPOI_SWPOIKEY_KEYVALUE = 27, /*!< KEYVALUE : Writing 0x1B key value generates a software POI reset. */ +} RSTGEN_SWPOI_SWPOIKEY_Enum; + +/* ========================================================= SWPOR ========================================================= */ +/* ============================================= RSTGEN SWPOR SWPORKEY [0..7] ============================================== */ +typedef enum { /*!< RSTGEN_SWPOR_SWPORKEY */ + RSTGEN_SWPOR_SWPORKEY_KEYVALUE = 212, /*!< KEYVALUE : Writing 0xD4 key value generates a software POR reset. */ +} RSTGEN_SWPOR_SWPORKEY_Enum; + +/* ======================================================== TPIURST ======================================================== */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ +/* ========================================================= STAT ========================================================== */ + + +/* =========================================================================================================================== */ +/* ================ RTC ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CTRLOW ========================================================= */ +/* ========================================================= CTRUP ========================================================= */ +/* =============================================== RTC CTRUP CTERR [31..31] ================================================ */ +typedef enum { /*!< RTC_CTRUP_CTERR */ + RTC_CTRUP_CTERR_NOERR = 0, /*!< NOERR : No read error occurred */ + RTC_CTRUP_CTERR_RDERR = 1, /*!< RDERR : Read error occurred */ +} RTC_CTRUP_CTERR_Enum; + +/* ================================================ RTC CTRUP CEB [28..28] ================================================= */ +typedef enum { /*!< RTC_CTRUP_CEB */ + RTC_CTRUP_CEB_DIS = 0, /*!< DIS : Disable the Century bit from changing */ + RTC_CTRUP_CEB_EN = 1, /*!< EN : Enable the Century bit to change */ +} RTC_CTRUP_CEB_Enum; + +/* ================================================= RTC CTRUP CB [27..27] ================================================= */ +typedef enum { /*!< RTC_CTRUP_CB */ + RTC_CTRUP_CB_2000 = 0, /*!< 2000 : Century is 2000s */ + RTC_CTRUP_CB_1900_2100 = 1, /*!< 1900_2100 : Century is 1900s/2100s */ +} RTC_CTRUP_CB_Enum; + +/* ======================================================== ALMLOW ========================================================= */ +/* ========================================================= ALMUP ========================================================= */ +/* ======================================================== RTCCTL ========================================================= */ +/* =============================================== RTC RTCCTL HR1224 [5..5] ================================================ */ +typedef enum { /*!< RTC_RTCCTL_HR1224 */ + RTC_RTCCTL_HR1224_24HR = 0, /*!< 24HR : Hours in 24 hour mode */ + RTC_RTCCTL_HR1224_12HR = 1, /*!< 12HR : Hours in 12 hour mode */ +} RTC_RTCCTL_HR1224_Enum; + +/* ================================================ RTC RTCCTL RSTOP [4..4] ================================================ */ +typedef enum { /*!< RTC_RTCCTL_RSTOP */ + RTC_RTCCTL_RSTOP_RUN = 0, /*!< RUN : Allow the RTC input clock to run */ + RTC_RTCCTL_RSTOP_STOP = 1, /*!< STOP : Stop the RTC input clock */ +} RTC_RTCCTL_RSTOP_Enum; + +/* ================================================= RTC RTCCTL RPT [1..3] ================================================= */ +typedef enum { /*!< RTC_RTCCTL_RPT */ + RTC_RTCCTL_RPT_DIS = 0, /*!< DIS : Alarm interrupt disabled */ + RTC_RTCCTL_RPT_YEAR = 1, /*!< YEAR : Interrupt every year */ + RTC_RTCCTL_RPT_MONTH = 2, /*!< MONTH : Interrupt every month */ + RTC_RTCCTL_RPT_WEEK = 3, /*!< WEEK : Interrupt every week */ + RTC_RTCCTL_RPT_DAY = 4, /*!< DAY : Interrupt every day */ + RTC_RTCCTL_RPT_HR = 5, /*!< HR : Interrupt every hour */ + RTC_RTCCTL_RPT_MIN = 6, /*!< MIN : Interrupt every minute */ + RTC_RTCCTL_RPT_SEC = 7, /*!< SEC : Interrupt every second/10th/100th */ +} RTC_RTCCTL_RPT_Enum; + +/* ================================================ RTC RTCCTL WRTC [0..0] ================================================= */ +typedef enum { /*!< RTC_RTCCTL_WRTC */ + RTC_RTCCTL_WRTC_DIS = 0, /*!< DIS : Counter writes are disabled */ + RTC_RTCCTL_WRTC_EN = 1, /*!< EN : Counter writes are enabled */ +} RTC_RTCCTL_WRTC_Enum; + +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ + + +/* =========================================================================================================================== */ +/* ================ SCARD ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== SR =========================================================== */ +/* ================================================== SCARD SR FHF [6..6] ================================================== */ +typedef enum { /*!< SCARD_SR_FHF */ + SCARD_SR_FHF_HALFFULL = 1, /*!< HALFFULL : FIFO is half full. */ +} SCARD_SR_FHF_Enum; + +/* ================================================ SCARD SR FT2REND [5..5] ================================================ */ +typedef enum { /*!< SCARD_SR_FT2REND */ + SCARD_SR_FT2REND_CMPL = 1, /*!< CMPL : TX to RX completed. */ + SCARD_SR_FT2REND_NOTCMPL = 0, /*!< NOTCMPL : TX to RX not completed. */ +} SCARD_SR_FT2REND_Enum; + +/* ================================================== SCARD SR PE [4..4] =================================================== */ +typedef enum { /*!< SCARD_SR_PE */ + SCARD_SR_PE_PEERR = 1, /*!< PEERR : Parity error. */ + SCARD_SR_PE_PENONE = 0, /*!< PENONE : No parity error. */ +} SCARD_SR_PE_Enum; + +/* ================================================== SCARD SR OVR [3..3] ================================================== */ +typedef enum { /*!< SCARD_SR_OVR */ + SCARD_SR_OVR_RXOVR = 1, /*!< RXOVR : RX FIFO overflow. */ + SCARD_SR_OVR_RXOVRNONE = 0, /*!< RXOVRNONE : RX FIFO no overflow. */ +} SCARD_SR_OVR_Enum; + +/* ================================================== SCARD SR FER [2..2] ================================================== */ +typedef enum { /*!< SCARD_SR_FER */ + SCARD_SR_FER_FRAMINGERR = 1, /*!< FRAMINGERR : Framing error. */ + SCARD_SR_FER_NOFRAMINGERR = 0, /*!< NOFRAMINGERR : No framing error detected. */ +} SCARD_SR_FER_Enum; + +/* ================================================ SCARD SR TBERBF [1..1] ================================================= */ +typedef enum { /*!< SCARD_SR_TBERBF */ + SCARD_SR_TBERBF_TXFIFOEMPTY = 1, /*!< TXFIFOEMPTY : Transmit: FIFO empty. */ + SCARD_SR_TBERBF_TXFIFONOTEMPTY = 0, /*!< TXFIFONOTEMPTY : Transmit: FIFO not empty. */ +} SCARD_SR_TBERBF_Enum; + +/* ================================================== SCARD SR FNE [0..0] ================================================== */ +typedef enum { /*!< SCARD_SR_FNE */ + SCARD_SR_FNE_NOTEMPTY = 1, /*!< NOTEMPTY : RX FIFO not empty. */ + SCARD_SR_FNE_EMPTY = 0, /*!< EMPTY : RX FIFO empty. */ +} SCARD_SR_FNE_Enum; + +/* ========================================================== IER ========================================================== */ +/* ========================================================== TCR ========================================================== */ +/* ========================================================== UCR ========================================================== */ +/* ========================================================== DR =========================================================== */ +/* ========================================================= BPRL ========================================================== */ +/* ========================================================= BPRH ========================================================== */ +/* ========================================================= UCR1 ========================================================== */ +/* ========================================================== SR1 ========================================================== */ +/* ================================================= SCARD SR1 IDLE [3..3] ================================================= */ +typedef enum { /*!< SCARD_SR1_IDLE */ + SCARD_SR1_IDLE_IDLE = 1, /*!< IDLE : ISO7816 idle. */ + SCARD_SR1_IDLE_ACTIVE = 0, /*!< ACTIVE : ISO7816 active. */ +} SCARD_SR1_IDLE_Enum; + +/* =============================================== SCARD SR1 SYNCEND [2..2] ================================================ */ +typedef enum { /*!< SCARD_SR1_SYNCEND */ + SCARD_SR1_SYNCEND_CMPL = 1, /*!< CMPL : Synchronization complete. */ + SCARD_SR1_SYNCEND_INCMPL = 0, /*!< INCMPL : Incomplete. */ +} SCARD_SR1_SYNCEND_Enum; + +/* ================================================= SCARD SR1 PRL [1..1] ================================================== */ +typedef enum { /*!< SCARD_SR1_PRL */ + SCARD_SR1_PRL_INSREM = 1, /*!< INSREM : Card inserted/removed. */ +} SCARD_SR1_PRL_Enum; + +/* =============================================== SCARD SR1 ECNTOVER [0..0] =============================================== */ +typedef enum { /*!< SCARD_SR1_ECNTOVER */ + SCARD_SR1_ECNTOVER_OVR = 1, /*!< OVR : ETU overflow. */ +} SCARD_SR1_ECNTOVER_Enum; + +/* ========================================================= IER1 ========================================================== */ +/* ========================================================= ECNTL ========================================================= */ +/* ========================================================= ECNTH ========================================================= */ +/* ========================================================== GTR ========================================================== */ +/* ======================================================== RETXCNT ======================================================== */ +/* ====================================================== RETXCNTRMI ======================================================= */ +/* ======================================================== CLKCTRL ======================================================== */ + + +/* =========================================================================================================================== */ +/* ================ SECURITY ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CTRL ========================================================== */ +/* ============================================= SECURITY CTRL FUNCTION [4..7] ============================================= */ +typedef enum { /*!< SECURITY_CTRL_FUNCTION */ + SECURITY_CTRL_FUNCTION_CRC32 = 0, /*!< CRC32 : Perform CRC32 operation */ + SECURITY_CTRL_FUNCTION_RAND = 1, /*!< RAND : DMA pseudo-random number stream based on CRC value */ + SECURITY_CTRL_FUNCTION_GENADDR = 2, /*!< GENADDR : Generate DMA stream based on address */ +} SECURITY_CTRL_FUNCTION_Enum; + +/* ======================================================== SRCADDR ======================================================== */ +/* ========================================================== LEN ========================================================== */ +/* ======================================================== RESULT ========================================================= */ +/* ======================================================= LOCKCTRL ======================================================== */ +/* ============================================ SECURITY LOCKCTRL SELECT [0..7] ============================================ */ +typedef enum { /*!< SECURITY_LOCKCTRL_SELECT */ + SECURITY_LOCKCTRL_SELECT_CUSTOMER_KEY = 1, /*!< CUSTOMER_KEY : Unlock Customer Key (access to top half of info0) */ + SECURITY_LOCKCTRL_SELECT_NONE = 0, /*!< NONE : Lock Control should be set to NONE when not in use. */ +} SECURITY_LOCKCTRL_SELECT_Enum; + +/* ======================================================= LOCKSTAT ======================================================== */ +/* =========================================== SECURITY LOCKSTAT STATUS [0..31] ============================================ */ +typedef enum { /*!< SECURITY_LOCKSTAT_STATUS */ + SECURITY_LOCKSTAT_STATUS_CUSTOMER_KEY = 1, /*!< CUSTOMER_KEY : Customer Key is unlocked (access is granted to + top half of info0) */ + SECURITY_LOCKSTAT_STATUS_NONE = 0, /*!< NONE : No resources are unlocked */ +} SECURITY_LOCKSTAT_STATUS_Enum; + +/* ========================================================= KEY0 ========================================================== */ +/* ========================================================= KEY1 ========================================================== */ +/* ========================================================= KEY2 ========================================================== */ +/* ========================================================= KEY3 ========================================================== */ + + +/* =========================================================================================================================== */ +/* ================ UART0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== DR =========================================================== */ +/* =============================================== UART0 DR OEDATA [11..11] ================================================ */ +typedef enum { /*!< UART0_DR_OEDATA */ + UART0_DR_OEDATA_NOERR = 0, /*!< NOERR : No error on UART OEDATA, overrun error indicator. */ + UART0_DR_OEDATA_ERR = 1, /*!< ERR : Error on UART OEDATA, overrun error indicator. */ +} UART0_DR_OEDATA_Enum; + +/* =============================================== UART0 DR BEDATA [10..10] ================================================ */ +typedef enum { /*!< UART0_DR_BEDATA */ + UART0_DR_BEDATA_NOERR = 0, /*!< NOERR : No error on UART BEDATA, break error indicator. */ + UART0_DR_BEDATA_ERR = 1, /*!< ERR : Error on UART BEDATA, break error indicator. */ +} UART0_DR_BEDATA_Enum; + +/* ================================================ UART0 DR PEDATA [9..9] ================================================= */ +typedef enum { /*!< UART0_DR_PEDATA */ + UART0_DR_PEDATA_NOERR = 0, /*!< NOERR : No error on UART PEDATA, parity error indicator. */ + UART0_DR_PEDATA_ERR = 1, /*!< ERR : Error on UART PEDATA, parity error indicator. */ +} UART0_DR_PEDATA_Enum; + +/* ================================================ UART0 DR FEDATA [8..8] ================================================= */ +typedef enum { /*!< UART0_DR_FEDATA */ + UART0_DR_FEDATA_NOERR = 0, /*!< NOERR : No error on UART FEDATA, framing error indicator. */ + UART0_DR_FEDATA_ERR = 1, /*!< ERR : Error on UART FEDATA, framing error indicator. */ +} UART0_DR_FEDATA_Enum; + +/* ========================================================== RSR ========================================================== */ +/* ================================================ UART0 RSR OESTAT [3..3] ================================================ */ +typedef enum { /*!< UART0_RSR_OESTAT */ + UART0_RSR_OESTAT_NOERR = 0, /*!< NOERR : No error on UART OESTAT, overrun error indicator. */ + UART0_RSR_OESTAT_ERR = 1, /*!< ERR : Error on UART OESTAT, overrun error indicator. */ +} UART0_RSR_OESTAT_Enum; + +/* ================================================ UART0 RSR BESTAT [2..2] ================================================ */ +typedef enum { /*!< UART0_RSR_BESTAT */ + UART0_RSR_BESTAT_NOERR = 0, /*!< NOERR : No error on UART BESTAT, break error indicator. */ + UART0_RSR_BESTAT_ERR = 1, /*!< ERR : Error on UART BESTAT, break error indicator. */ +} UART0_RSR_BESTAT_Enum; + +/* ================================================ UART0 RSR PESTAT [1..1] ================================================ */ +typedef enum { /*!< UART0_RSR_PESTAT */ + UART0_RSR_PESTAT_NOERR = 0, /*!< NOERR : No error on UART PESTAT, parity error indicator. */ + UART0_RSR_PESTAT_ERR = 1, /*!< ERR : Error on UART PESTAT, parity error indicator. */ +} UART0_RSR_PESTAT_Enum; + +/* ================================================ UART0 RSR FESTAT [0..0] ================================================ */ +typedef enum { /*!< UART0_RSR_FESTAT */ + UART0_RSR_FESTAT_NOERR = 0, /*!< NOERR : No error on UART FESTAT, framing error indicator. */ + UART0_RSR_FESTAT_ERR = 1, /*!< ERR : Error on UART FESTAT, framing error indicator. */ +} UART0_RSR_FESTAT_Enum; + +/* ========================================================== FR =========================================================== */ +/* ================================================= UART0 FR TXFE [7..7] ================================================== */ +typedef enum { /*!< UART0_FR_TXFE */ + UART0_FR_TXFE_XMTFIFO_EMPTY = 1, /*!< XMTFIFO_EMPTY : Transmit fifo is empty. */ +} UART0_FR_TXFE_Enum; + +/* ================================================= UART0 FR RXFF [6..6] ================================================== */ +typedef enum { /*!< UART0_FR_RXFF */ + UART0_FR_RXFF_RCVFIFO_FULL = 1, /*!< RCVFIFO_FULL : Receive fifo is full. */ +} UART0_FR_RXFF_Enum; + +/* ================================================= UART0 FR TXFF [5..5] ================================================== */ +typedef enum { /*!< UART0_FR_TXFF */ + UART0_FR_TXFF_XMTFIFO_FULL = 1, /*!< XMTFIFO_FULL : Transmit fifo is full. */ +} UART0_FR_TXFF_Enum; + +/* ================================================= UART0 FR RXFE [4..4] ================================================== */ +typedef enum { /*!< UART0_FR_RXFE */ + UART0_FR_RXFE_RCVFIFO_EMPTY = 1, /*!< RCVFIFO_EMPTY : Receive fifo is empty. */ +} UART0_FR_RXFE_Enum; + +/* ================================================= UART0 FR BUSY [3..3] ================================================== */ +typedef enum { /*!< UART0_FR_BUSY */ + UART0_FR_BUSY_BUSY = 1, /*!< BUSY : UART busy indicator. */ +} UART0_FR_BUSY_Enum; + +/* ================================================== UART0 FR DCD [2..2] ================================================== */ +typedef enum { /*!< UART0_FR_DCD */ + UART0_FR_DCD_DETECTED = 1, /*!< DETECTED : Data carrier detect detected. */ +} UART0_FR_DCD_Enum; + +/* ================================================== UART0 FR DSR [1..1] ================================================== */ +typedef enum { /*!< UART0_FR_DSR */ + UART0_FR_DSR_READY = 1, /*!< READY : Data set ready. */ +} UART0_FR_DSR_Enum; + +/* ================================================== UART0 FR CTS [0..0] ================================================== */ +typedef enum { /*!< UART0_FR_CTS */ + UART0_FR_CTS_CLEARTOSEND = 1, /*!< CLEARTOSEND : Clear to send is indicated. */ +} UART0_FR_CTS_Enum; + +/* ========================================================= ILPR ========================================================== */ +/* ========================================================= IBRD ========================================================== */ +/* ========================================================= FBRD ========================================================== */ +/* ========================================================= LCRH ========================================================== */ +/* ========================================================== CR =========================================================== */ +/* ================================================ UART0 CR CLKSEL [4..6] ================================================= */ +typedef enum { /*!< UART0_CR_CLKSEL */ + UART0_CR_CLKSEL_NOCLK = 0, /*!< NOCLK : No UART clock. This is the low power default. */ + UART0_CR_CLKSEL_24MHZ = 1, /*!< 24MHZ : 24 MHz clock. */ + UART0_CR_CLKSEL_12MHZ = 2, /*!< 12MHZ : 12 MHz clock. */ + UART0_CR_CLKSEL_6MHZ = 3, /*!< 6MHZ : 6 MHz clock. */ + UART0_CR_CLKSEL_3MHZ = 4, /*!< 3MHZ : 3 MHz clock. */ +} UART0_CR_CLKSEL_Enum; + +/* ========================================================= IFLS ========================================================== */ +/* ========================================================== IER ========================================================== */ +/* ========================================================== IES ========================================================== */ +/* ========================================================== MIS ========================================================== */ +/* ========================================================== IEC ========================================================== */ + + +/* =========================================================================================================================== */ +/* ================ VCOMP ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +/* =============================================== VCOMP CFG LVLSEL [16..19] =============================================== */ +typedef enum { /*!< VCOMP_CFG_LVLSEL */ + VCOMP_CFG_LVLSEL_0P58V = 0, /*!< 0P58V : Set Reference input to 0.58 Volts. */ + VCOMP_CFG_LVLSEL_0P77V = 1, /*!< 0P77V : Set Reference input to 0.77 Volts. */ + VCOMP_CFG_LVLSEL_0P97V = 2, /*!< 0P97V : Set Reference input to 0.97 Volts. */ + VCOMP_CFG_LVLSEL_1P16V = 3, /*!< 1P16V : Set Reference input to 1.16 Volts. */ + VCOMP_CFG_LVLSEL_1P35V = 4, /*!< 1P35V : Set Reference input to 1.35 Volts. */ + VCOMP_CFG_LVLSEL_1P55V = 5, /*!< 1P55V : Set Reference input to 1.55 Volts. */ + VCOMP_CFG_LVLSEL_1P74V = 6, /*!< 1P74V : Set Reference input to 1.74 Volts. */ + VCOMP_CFG_LVLSEL_1P93V = 7, /*!< 1P93V : Set Reference input to 1.93 Volts. */ + VCOMP_CFG_LVLSEL_2P13V = 8, /*!< 2P13V : Set Reference input to 2.13 Volts. */ + VCOMP_CFG_LVLSEL_2P32V = 9, /*!< 2P32V : Set Reference input to 2.32 Volts. */ + VCOMP_CFG_LVLSEL_2P51V = 10, /*!< 2P51V : Set Reference input to 2.51 Volts. */ + VCOMP_CFG_LVLSEL_2P71V = 11, /*!< 2P71V : Set Reference input to 2.71 Volts. */ + VCOMP_CFG_LVLSEL_2P90V = 12, /*!< 2P90V : Set Reference input to 2.90 Volts. */ + VCOMP_CFG_LVLSEL_3P09V = 13, /*!< 3P09V : Set Reference input to 3.09 Volts. */ + VCOMP_CFG_LVLSEL_3P29V = 14, /*!< 3P29V : Set Reference input to 3.29 Volts. */ + VCOMP_CFG_LVLSEL_3P48V = 15, /*!< 3P48V : Set Reference input to 3.48 Volts. */ +} VCOMP_CFG_LVLSEL_Enum; + +/* ================================================= VCOMP CFG NSEL [8..9] ================================================= */ +typedef enum { /*!< VCOMP_CFG_NSEL */ + VCOMP_CFG_NSEL_VREFEXT1 = 0, /*!< VREFEXT1 : Use external reference 1 for reference input. */ + VCOMP_CFG_NSEL_VREFEXT2 = 1, /*!< VREFEXT2 : Use external reference 2 for reference input. */ + VCOMP_CFG_NSEL_VREFEXT3 = 2, /*!< VREFEXT3 : Use external reference 3 for reference input. */ + VCOMP_CFG_NSEL_DAC = 3, /*!< DAC : Use DAC output selected by LVLSEL for reference input. */ +} VCOMP_CFG_NSEL_Enum; + +/* ================================================= VCOMP CFG PSEL [0..1] ================================================= */ +typedef enum { /*!< VCOMP_CFG_PSEL */ + VCOMP_CFG_PSEL_VDDADJ = 0, /*!< VDDADJ : Use VDDADJ for the positive input. */ + VCOMP_CFG_PSEL_VTEMP = 1, /*!< VTEMP : Use the temperature sensor output for the positive input. + Note: If this channel is selected for PSEL, the bandap + circuit required for temperature comparisons will automatically + turn on. The bandgap circuit requires 11us to stabalize. */ + VCOMP_CFG_PSEL_VEXT1 = 2, /*!< VEXT1 : Use external voltage 0 for positive input. */ + VCOMP_CFG_PSEL_VEXT2 = 3, /*!< VEXT2 : Use external voltage 1 for positive input. */ +} VCOMP_CFG_PSEL_Enum; + +/* ========================================================= STAT ========================================================== */ +/* =============================================== VCOMP STAT PWDSTAT [1..1] =============================================== */ +typedef enum { /*!< VCOMP_STAT_PWDSTAT */ + VCOMP_STAT_PWDSTAT_POWERED_DOWN = 1, /*!< POWERED_DOWN : The voltage comparator is powered down. */ +} VCOMP_STAT_PWDSTAT_Enum; + +/* =============================================== VCOMP STAT CMPOUT [0..0] ================================================ */ +typedef enum { /*!< VCOMP_STAT_CMPOUT */ + VCOMP_STAT_CMPOUT_VOUT_LOW = 0, /*!< VOUT_LOW : The negative input of the comparator is greater than + the positive input. */ + VCOMP_STAT_CMPOUT_VOUT_HIGH = 1, /*!< VOUT_HIGH : The positive input of the comparator is greater + than the negative input. */ +} VCOMP_STAT_CMPOUT_Enum; + +/* ======================================================== PWDKEY ========================================================= */ +/* ============================================== VCOMP PWDKEY PWDKEY [0..31] ============================================== */ +typedef enum { /*!< VCOMP_PWDKEY_PWDKEY */ + VCOMP_PWDKEY_PWDKEY_Key = 55, /*!< Key : Key */ +} VCOMP_PWDKEY_PWDKEY_Enum; + +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ + + +/* =========================================================================================================================== */ +/* ================ WDT ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CFG ========================================================== */ +/* ================================================ WDT CFG CLKSEL [24..26] ================================================ */ +typedef enum { /*!< WDT_CFG_CLKSEL */ + WDT_CFG_CLKSEL_OFF = 0, /*!< OFF : Low Power Mode. This setting disables the watch dog timer. */ + WDT_CFG_CLKSEL_128HZ = 1, /*!< 128HZ : 128 Hz LFRC clock. */ + WDT_CFG_CLKSEL_16HZ = 2, /*!< 16HZ : 16 Hz LFRC clock. */ + WDT_CFG_CLKSEL_1HZ = 3, /*!< 1HZ : 1 Hz LFRC clock. */ + WDT_CFG_CLKSEL_1_16HZ = 4, /*!< 1_16HZ : 1/16th Hz LFRC clock. */ +} WDT_CFG_CLKSEL_Enum; + +/* ========================================================= RSTRT ========================================================= */ +/* ================================================ WDT RSTRT RSTRT [0..7] ================================================= */ +typedef enum { /*!< WDT_RSTRT_RSTRT */ + WDT_RSTRT_RSTRT_KEYVALUE = 178, /*!< KEYVALUE : This is the key value to write to WDTRSTRT to restart + the WDT. This is a write only register. */ +} WDT_RSTRT_RSTRT_Enum; + +/* ========================================================= LOCK ========================================================== */ +/* ================================================= WDT LOCK LOCK [0..7] ================================================== */ +typedef enum { /*!< WDT_LOCK_LOCK */ + WDT_LOCK_LOCK_KEYVALUE = 58, /*!< KEYVALUE : This is the key value to write to WDTLOCK to lock + the WDT. */ +} WDT_LOCK_LOCK_Enum; + +/* ========================================================= COUNT ========================================================= */ +/* ========================================================= INTEN ========================================================= */ +/* ======================================================== INTSTAT ======================================================== */ +/* ======================================================== INTCLR ========================================================= */ +/* ======================================================== INTSET ========================================================= */ + +/** @} */ /* End of group EnumValue_peripherals */ + + +#ifdef __cplusplus +} +#endif + +#endif /* APOLLO3C_H */ + + +/** @} */ /* End of group apollo3c */ + +/** @} */ /* End of group Ambiq Micro */ diff --git a/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/system_apollo3c.h b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/system_apollo3c.h new file mode 100644 index 00000000..321f31d1 --- /dev/null +++ b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Include/system_apollo3c.h @@ -0,0 +1,69 @@ +//***************************************************************************** +// +//! @file system_apollo3c.h +//! +//! @brief Ambiq Micro Apollo3C MCU specific functions. +// +//***************************************************************************** + +//***************************************************************************** +// +// Copyright (c) 2019, Ambiq Micro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from this +// software without specific prior written permission. +// +// Third party software included in this distribution is subject to the +// additional license terms as defined in the /docs/licenses directory. +// +// 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 SYSTEM_APOLLO3C_H +#define SYSTEM_APOLLO3C_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern uint32_t SystemCoreClock; // System Clock Frequency (Core Clock) + +//***************************************************************************** +// +// External function definitions +// +//***************************************************************************** +extern void SystemInit (void); +extern void SystemCoreClockUpdate (void); + +#ifdef __cplusplus +} +#endif + +#endif // SYSTEM_APOLLO3C_H + diff --git a/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Source/startup_apollo3.s b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Source/startup_apollo3.s index 49378dfa..493e7113 100644 --- a/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Source/startup_apollo3.s +++ b/cores/arduino/am_sdk_ap3/CMSIS/AmbiqMicro/Source/startup_apollo3.s @@ -40,7 +40,7 @@ ; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ; POSSIBILITY OF SUCH DAMAGE. ; -; This is part of revision 2.1.0 of the AmbiqSuite Development Package. +; This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. ; ;****************************************************************************** @@ -48,7 +48,7 @@ ; ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ;************************************************************************ -Stack EQU 0x00000400 +Stack EQU 0x00001000 ;****************************************************************************** ; @@ -146,7 +146,7 @@ __Vectors DCD am_scard_isr ; 17: SCARD DCD am_adc_isr ; 18: ADC DCD am_pdm0_isr ; 19: PDM - DCD am_mspi0_isr ; 20: MSPI + DCD am_mspi0_isr ; 20: MSPI0 DCD am_software0_isr ; 21: SOFTWARE0 DCD am_stimer_isr ; 22: SYSTEM TIMER DCD am_stimer_cmpr0_isr ; 23: SYSTEM TIMER COMPARE0 @@ -172,25 +172,28 @@ __Vectors_Size EQU __Vectors_End - __Vectors ; ; The Patch table. ; +; The patch table should pad the vector table size to a total of 64 entries +; (16 core + 48 periph) such that code begins at offset 0x100. +; ;****************************************************************************** EXPORT __Patchable __Patchable - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 - DCD 0 + DCD 0 ; 32 + DCD 0 ; 33 + DCD 0 ; 34 + DCD 0 ; 35 + DCD 0 ; 36 + DCD 0 ; 37 + DCD 0 ; 38 + DCD 0 ; 39 + DCD 0 ; 40 + DCD 0 ; 41 + DCD 0 ; 42 + DCD 0 ; 43 + DCD 0 ; 44 + DCD 0 ; 45 + DCD 0 ; 46 + DCD 0 ; 47 ;****************************************************************************** ; @@ -402,3 +405,4 @@ __user_initial_stackheap PROC ;****************************************************************************** END + From 359211e4d1c19c8292920da88d0b00c99c02d1ec Mon Sep 17 00:00:00 2001 From: Owen L - SFE Date: Mon, 12 Aug 2019 12:45:13 -0600 Subject: [PATCH 4/5] Change 'seconds' to 'secs' to fix compilation --- libraries/Examples/examples/Example8_millis/Example8_millis.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Examples/examples/Example8_millis/Example8_millis.ino b/libraries/Examples/examples/Example8_millis/Example8_millis.ino index e0ed096f..7569da75 100644 --- a/libraries/Examples/examples/Example8_millis/Example8_millis.ino +++ b/libraries/Examples/examples/Example8_millis/Example8_millis.ino @@ -17,6 +17,6 @@ void setup() { void loop() { - Serial.printf("Sec: %d, millis: %d, micros: %d, systicks: 0x%08X, sysoverflows: 0x%08X\n", seconds(), millis(), micros(), systicks(), sysoverflows()); + Serial.printf("Sec: %d, millis: %d, micros: %d, systicks: 0x%08X, sysoverflows: 0x%08X\n", secs(), millis(), micros(), systicks(), sysoverflows()); delay(1111); //Arbitrary delay } From 703db09a8a3beb1a5f222656cec336999f1a7252 Mon Sep 17 00:00:00 2001 From: Owen L - SFE Date: Mon, 12 Aug 2019 12:49:52 -0600 Subject: [PATCH 5/5] Modify SDK to fit Arduino core These are the changes that were required to get compiling with the new 2.2.0 source code 1. Remove 'am_util_regdump.c' -- contained references to instance finder names like 'AM_REG_ITM_NUM_MODULES' that were not declared in any included headers. Could not track down include path to the appropriate header ('am_regs.h'?) so decided to simply remove this compilation unit. Register dump utilities will be unavailable, but they are an obscure feature. 1. Made internal stdio buffer available for use by 'uart' code (avoids doubling up resources required for printf) --- .../am_sdk_ap3/utils/am_util_regdump.c | 1347 ----------------- .../arduino/am_sdk_ap3/utils/am_util_stdio.c | 5 +- .../arduino/am_sdk_ap3/utils/am_util_stdio.h | 2 + 3 files changed, 5 insertions(+), 1349 deletions(-) delete mode 100644 cores/arduino/am_sdk_ap3/utils/am_util_regdump.c diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c b/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c deleted file mode 100644 index 4c9857d9..00000000 --- a/cores/arduino/am_sdk_ap3/utils/am_util_regdump.c +++ /dev/null @@ -1,1347 +0,0 @@ -//***************************************************************************** -// -//! @file am_util_regdump.c -//! -//! @brief Dump specified registers for debug purposes. -//! -//! This module contains functions for real time (debug) printing of registers -//! from peripherals specified in a given bitmask. -// -//***************************************************************************** - -//***************************************************************************** -// -// Copyright (c) 2019, Ambiq Micro -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// Third party software included in this distribution is subject to the -// additional license terms as defined in the /docs/licenses directory. -// -// 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. -// -// This is part of revision v2.2.0-7-g63f7c2ba1 of the AmbiqSuite Development Package. -// -//***************************************************************************** -#include -#include - -#include "am_util_regdump.h" -#include "am_util_stdio.h" - - -//***************************************************************************** -// -// Register dump structure. -// -//***************************************************************************** -typedef struct -{ - // - //! Set to 1 to operate this timer as a 32-bit timer instead of two 16-bit - //! timers. - // - uint32_t ui32Offset; - - // - //! Configuration options for TIMERA - // - char *pi8RegName; - //uint8_t *puiRegName; -} -am_util_regdump_t; - - -//***************************************************************************** -// -// Globals. -// -//***************************************************************************** -static uint8_t g_ui8Fmt[64]; - -am_util_regdump_t g_sRegdumpADC[] = -{ - {0x000, "CFG"}, - {0x004, "STAT"}, - {0x008, "SWT"}, - {0x00C, "SL0CFG"}, - {0x010, "SL1CFG"}, - {0x014, "SL2CFG"}, - {0x018, "SL3CFG"}, - {0x01C, "SL4CFG"}, - {0x020, "SL5CFG"}, - {0x024, "SL6CFG"}, - {0x028, "SL7CFG"}, - {0x02C, "WULIM"}, - {0x030, "WLLIM"}, -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x038, "FIFO"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT -#if AM_PART_APOLLO3 - {0x03C, "FIFOPR"}, -#endif // AM_PART_APOLLO3 - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, -#if AM_PART_APOLLO3 - {0x280, "DMACFG"}, - {0x288, "DMATOTCOUNT"}, - {0x28C, "DMATARGADDR"}, - {0x290, "DMASTAT"}, -#endif // AM_PART_APOLLO3 - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpCACHECTRL[] = -{ - {0x000, "CACHECFG"}, - {0x004, "FLASHCFG"}, - {0x008, "CTRL"}, - {0x010, "NCR0START"}, - {0x014, "NCR0END"}, - {0x018, "NCR1START"}, - {0x01C, "NCR1END"}, - {0x030, "CACHEMODE"}, - {0x040, "DMON0"}, - {0x044, "DMON1"}, - {0x048, "DMON2"}, - {0x04C, "DMON3"}, - {0x050, "IMON0"}, - {0x054, "IMON1"}, - {0x058, "IMON2"}, - {0x05C, "IMON3"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpCLKGEN[] = -{ - {0x000, "CALXT"}, - {0x004, "CALRC"}, - {0x008, "ACALCTR"}, - {0x00C, "OCTRL"}, - {0x010, "CLKOUT"}, - {0x014, "CLKKEY"}, - {0x018, "CCTRL"}, - {0x01C, "STATUS"}, - {0x020, "HFADJ"}, - {0x024, "HFVAL"}, - {0x028, "CLOCKEN"}, - {0x02C, "CLOCKEN2"}, - {0x030, "CLOCKEN3"}, - {0x034, "UARTEN"}, - {0x100, "INTEN"}, - {0x104, "INTSTAT"}, - {0x108, "INTCLR"}, - {0x10C, "INTSET"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpCTIMER[] = -{ - {0x000, "TMR0"}, - {0x004, "CMPRA0"}, - {0x008, "CMPRB0"}, - {0x00C, "CTRL0"}, - {0x010, "TMR1"}, - {0x014, "CMPRA1"}, - {0x018, "CMPRB1"}, - {0x01C, "CTRL1"}, - {0x020, "TMR2"}, - {0x024, "CMPRA2"}, - {0x028, "CMPRB2"}, - {0x02C, "CTRL2"}, - {0x030, "TMR3"}, - {0x034, "CMPRA3"}, - {0x038, "CMPRB3"}, - {0x03C, "CTRL3"}, - {0x100, "STCFG"}, - {0x104, "STTMR"}, - {0x108, "CAPTURE_CONTROL"}, - {0x110, "SCMPR0"}, - {0x114, "SCMPR1"}, - {0x118, "SCMPR2"}, - {0x11C, "SCMPR3"}, - {0x120, "SCMPR4"}, - {0x124, "SCMPR5"}, - {0x128, "SCMPR6"}, - {0x12C, "SCMPR7"}, - {0x1E0, "SCAPT0"}, - {0x1E4, "SCAPT1"}, - {0x1E8, "SCAPT2"}, - {0x1EC, "SCAPT3"}, - {0x1F0, "SNVR0"}, - {0x1F4, "SNVR1"}, - {0x1F8, "SNVR2"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0x300, "STMINTEN"}, - {0x304, "STMINTSTAT"}, - {0x308, "STMINTCLR"}, - {0x30C, "STMINTSET"}, - {0xFFFFFFFF, NULL} -}; - - -am_util_regdump_t g_sRegdumpIOS[] = -{ -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x000, "FIFO"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT - {0x100, "FIFOPTR"}, - {0x104, "FIFOCFG"}, - {0x108, "FIFOTHR"}, - {0x10C, "FUPD"}, - {0x110, "FIFOCTR"}, - {0x114, "FIFOINC"}, - {0x118, "CFG"}, - {0x11C, "PRENC"}, - {0x120, "INTCTLC"}, - {0x124, "GENADD"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0x210, "REGACCINTEN"}, - {0x214, "REGACCINTSTAT"}, - {0x218, "REGACCINTCLR"}, - {0x21C, "REGACCINTSET"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpGPIO[] = -{ - {0x000, "PADREGA"}, - {0x004, "PADREGB"}, - {0x008, "PADREGC"}, - {0x00C, "PADREGD"}, - {0x010, "PADREGE"}, - {0x014, "PADREGF"}, - {0x018, "PADREGG"}, - {0x01C, "PADREGH"}, - {0x020, "PADREGI"}, - {0x024, "PADREGJ"}, - {0x028, "PADREGK"}, - {0x02C, "PADREGL"}, - {0x030, "PADREGM"}, - {0x040, "CFGA"}, - {0x044, "CFGB"}, - {0x048, "CFGC"}, - {0x04C, "CFGD"}, - {0x050, "CFGE"}, - {0x054, "CFGF"}, - {0x058, "CFGG"}, - {0x060, "PADKEY"}, - {0x080, "RDA"}, - {0x084, "RDB"}, - {0x088, "WTA"}, - {0x08C, "WTB"}, - {0x090, "WTSA"}, - {0x094, "WTSB"}, - {0x098, "WTCA"}, - {0x09C, "WTCB"}, - {0x0A0, "ENA"}, - {0x0A4, "ENB"}, - {0x0A8, "ENSA"}, - {0x0Ac, "ENSB"}, - {0x0B4, "ENCA"}, - {0x0B8, "ENCB"}, - {0x0BC, "STMRCAP"}, - {0x0C0, "IOM0IRQ"}, - {0x0C4, "IOM1IRQ"}, - {0x0C8, "IOM2IRQ"}, - {0x0CC, "IOM3IRQ"}, - {0x0D0, "IOM4IRQ"}, - {0x0D4, "IOM5IRQ"}, -#if AM_PART_APOLLO3 - {0x0D8, "BLEIFIRQ"}, -#else - {0x0D8, "LOOPBACK"}, -#endif // AM_PART_APOLLO3 - {0x0DC, "OBS"}, - {0x0E0, "ALTPADCFGA"}, - {0x0E4, "ALTPADCFGB"}, - {0x0E8, "ALTPADCFGC"}, - {0x0EC, "ALTPADCFGD"}, - {0x0F0, "ALTPADCFGE"}, - {0x0F4, "ALTPADCFGF"}, - {0x0F8, "ALTPADCFGG"}, - {0x0FC, "ALTPADCFGH"}, - {0x100, "ALTPADCFGI"}, - {0x104, "ALTPADCFGJ"}, - {0x108, "ALTPADCFGK"}, - {0x10C, "ALTPADCFGL"}, - {0x110, "ALTPADCFGM"}, -#if AM_PART_APOLLO3 - {0x114, "SCDET"}, - {0x118, "CTENCFG"}, -#endif // AM_PART_APOLLO3 - {0x200, "INT0EN"}, - {0x204, "INT0STAT"}, - {0x208, "INT0CLR"}, - {0x20C, "INT0SET"}, - {0x210, "INT1EN"}, - {0x214, "INT1STAT"}, - {0x218, "INT1CLR"}, - {0x21C, "INT1SET"}, - {0xFFFFFFFF, NULL} -}; - -#if AM_PART_APOLLO3 -am_util_regdump_t g_sRegdumpIOM[] = -{ -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x000, "FIFO"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT - {0x100, "FIFOPTR"}, - {0x104, "FIFOTHR"}, - {0x108, "FIFOPOP"}, - {0x10C, "FIFOPUSH"}, - {0x110, "FIFOCFG"}, - {0x114, "FIFOLOC"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0x210, "CLKCFG"}, - {0x214, "SUBMODCTRL"}, - {0x218, "CMD"}, - {0x21C, "CMDRPT"}, - {0x220, "OFFSETHI"}, - {0x224, "CMDSTAT"}, - {0x240, "DMATRIGEN"}, - {0x244, "DMATRIGSTAT"}, - {0x280, "DMACFG"}, - {0x288, "DMATOTCOUNT"}, - {0x28C, "DMATARGADDR"}, - {0x290, "DMASTAT"}, - {0x294, "CQCFG"}, - {0x298, "CQADDR"}, - {0x29C, "CQSTAT"}, - {0x2A0, "CQFLAGS"}, - {0x2A4, "CQSETCLEAR"}, - {0x2A8, "CQPAUSEEN"}, - {0x2AC, "CQCURIDX"}, - {0x2B0, "CQENDIDX"}, - {0x2B4, "STATUS"}, - {0x300, "MSPICFG"}, - {0x400, "MI2CCFG"}, - {0x404, "DEVCFG"}, - {0x410, "IOMDBG"}, - {0xFFFFFFFF, NULL} // 36 registers visible (including FIFO) -}; - -am_util_regdump_t g_sRegdumpPDM[] = -{ - {0x000, "PCFG"}, - {0x004, "VCFG"}, - {0x008, "VOICESTAT"}, -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x00C, "FIFOREAD"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT - {0x010, "FIFOFLUSH"}, - {0x014, "FIFOFTHR"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0x240, "DMATRIGEN"}, - {0x280, "DMACFG"}, - {0x288, "DMATOTCOUNT"}, - {0x28C, "DMATARGADDR"}, - {0x290, "DMASTAT"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpPWRCTRL[] = -{ - {0x000, "SUPPLYSRC"}, - {0x004, "SUPPLYSTATUS"}, - {0x008, "DEVPWREN"}, - {0x00C, "MEMPWRDININSLEEP"}, - {0x010, "MEMPWREN"}, - {0x014, "MEMPWRSTATUS"}, - {0x018, "DEVPWRSTATUS"}, - {0x01C, "SRAMCTRL"}, - {0x020, "ADCSTATUS"}, - {0x024, "MISC"}, - {0x028, "DEVPWREVENTEN"}, - {0x02C, "MEMPWREVENTEN"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpMCUCTRL[] = -{ - {0x000, "CHIPPN"}, - {0x004, "CHIPID0"}, - {0x008, "CHIPID1"}, - {0x00C, "CHIPREV"}, - {0x010, "VENDORID"}, - {0x014, "SKU"}, - {0x018, "FEATUREENABLE"}, - {0x020, "DEBUGGER"}, - {0x100, "BODCTRL"}, - {0x104, "ADCPWRDLY"}, - {0x10C, "ADCCAL"}, - {0x110, "ADCBATTLOAD"}, - {0x118, "ADCTRIM"}, - {0x11C, "REFCOMP"}, - {0x120, "XTALCTRL"}, - {0x124, "XTALGENCTRL"}, - {0x198, "MISCCTRL"}, - {0x1A0, "BOOTLOADER"}, - {0x1A4, "SHADOWVALID"}, - {0x1B0, "SCRATCH0"}, - {0x1B4, "SCRATCH1"}, - {0x1C0, "ICODEFAULTADDR"}, - {0x1C4, "DCODEFAULTADDR"}, - {0x1C8, "SYSFAULTADDR"}, - {0x1CC, "FAULTSTATUS"}, - {0x1D0, "FAULTCAPTUREEN"}, - {0x200, "DBGR1"}, - {0x204, "DBGR2"}, - {0x220, "PMUENABLE"}, - {0x250, "TPIUCTRL"}, - {0x264, "OTAPOINTER"}, - {0x280, "APBDMACTRL"}, - {0x284, "SRAMMODE"}, - {0x348, "KEXTCLKSEL"}, - {0x35C, "SIMOBUCK4"}, - {0x368, "BLEBUCK2"}, - {0x3A0, "FLASHWPROT0"}, - {0x3A4, "FLASHWPROT1"}, - {0x3B0, "FLASHRPROT0"}, - {0x3B4, "FLASHRPROT0"}, - {0x3C0, "DMASRAMWRITEPROT0"}, - {0x3C4, "DMASRAMWRITEPROT1"}, - {0x3D0, "DMASRAMREADPROT0"}, - {0x3D4, "DMASRAMREADPROT1"}, - {0xFFFFFFFF, NULL} // 44 registers visible -}; - -am_util_regdump_t g_sRegdumpBLE[] = -{ -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x000, "FIFO"}, -#endif - {0x100, "FIFOPTR"}, - {0x104, "FIFOTHR"}, -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x108, "FIFOPOP"}, -#endif - {0x10C, "FIFOPUSH"}, - {0x110, "FIFOCTRL"}, - {0x114, "FIFOLOC"}, - {0x200, "CLKCFG"}, - {0x20C, "CMD"}, - {0x210, "CMDRPT"}, - {0x214, "OFFSETHI"}, - {0x218, "CMDSTAT"}, - {0x220, "INTEN"}, - {0x224, "INTSTAT"}, - {0x228, "INTCLR"}, - {0x22C, "INTSET"}, - {0x230, "DMATRIGEN"}, - {0x234, "DMATRIGSTAT"}, - {0x238, "DMACFG"}, - {0x23C, "DMATOTCOUNT"}, - {0x240, "DMATARGADDR"}, - {0x244, "DMASTAT"}, - {0x248, "CQCFG"}, - {0x24C, "CQADDR"}, - {0x250, "CQSTAT"}, - {0x254, "CQFLAGS"}, - {0x258, "CQSETCLEAR"}, - {0x25C, "CQPAUSEEN"}, - {0x260, "CQCURIDX"}, - {0x264, "CQENDIDX"}, - {0x268, "STATUS"}, - {0x300, "MSPICFG"}, - {0x304, "BLECFG"}, - {0x308, "PWRCMD"}, - {0x30C, "BSTATUS"}, - {0x410, "BLEDBG"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpMSPI[] = -{ - {0x000, "CTRL"}, - {0x004, "CFG"}, - {0x008, "ADDR"}, - {0x00C, "INSTR"}, -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x010, "TXFIFO"}, - {0x014, "RXFIFO"}, -#endif - {0x018, "TXENTRIES"}, - {0x01C, "RXENTRIES"}, - {0x020, "THRESHOLD"}, - {0x100, "MSPICFG"}, - {0x104, "PADCFG"}, - {0x108, "PADOUTEN"}, - {0x10C, "FLASH"}, - {0x120, "SCRAMBLING"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0x250, "DMACFG"}, - {0x254, "DMASTAT"}, - {0x258, "DMATARGADDR"}, - {0x25C, "DMADEVADDR"}, - {0x260, "DMATOTCOUNT"}, - {0x264, "DMABCOUNT"}, - {0x278, "DMATHRESH"}, - {0x2A0, "CQCFG"}, - {0x2A8, "CQADDR"}, - {0x2AC, "CQSTAT"}, - {0x2B0, "CQFLAGS"}, - {0x2B4, "CQSETCLEAR"}, - {0x2B8, "CQPAUSE"}, - {0x2C0, "CQCURIDX"}, - {0x2C4, "CQENDIDX"}, - {0xFFFFFFFF, NULL} // 33 registers are public -}; -#endif // AM_PART_APOLLO3 - - -#if AM_PART_APOLLO2 || AM_PART_APOLLO -am_util_regdump_t g_sRegdumpIOM[] = -{ -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x000, "FIFO"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT - {0x100, "FIFOPTR"}, - {0x104, "TLNGTH"}, - {0x108, "FIFOTHR"}, - {0x10C, "CLKCFG"}, - {0x110, "CMD"}, - {0x114, "CMDRPT"}, - {0x118, "STATUS"}, - {0x11C, "CFG"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0xFFFFFFFF, NULL} -}; -#endif // AM_PART_APOLLO2 || AM_PART_APOLLO - - -#if AM_PART_APOLLO2 -am_util_regdump_t g_sRegdumpPDM[] = -{ - {0x000, "PCFG"}, - {0x004, "VCFG"}, - {0x008, "FR"}, -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x00C, "FRD"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT - {0x010, "FLUSH"}, - {0x014, "FTHR"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpPWRCTRL[] = -{ - {0x000, "SUPPLYSRC"}, - {0x004, "POWERSTATUS"}, - {0x008, "DEVICEEN"}, - {0x00C, "SRAMPWDINSLEEP"}, - {0x010, "MEMEN"}, - {0x014, "PWRONSTATUS"}, - {0x018, "SRAMCTRL"}, - {0x01C, "ADCSTATUS"}, - {0x020, "MISCOPT"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpMCUCTRL[] = -{ - {0x000, "CHIPINFO"}, - {0x004, "CHIPID0"}, - {0x008, "CHIPID1"}, - {0x00C, "CHIPREV"}, - {0x010, "VENDORID"}, - {0x014, "DEBUGGER"}, - {0x060, "BUCK"}, - {0x068, "BUCK3"}, - {0x080, "LDOREG1"}, - {0x088, "LDOREG3"}, - {0x100, "BODCTRL"}, - {0x104, "ADCPWRDLY"}, - {0x10C, "ADCCAL"}, - {0x110, "ADCBATTLOAD"}, - {0x114, "BUCKTRIM"}, - {0x1A0, "BOOTLOADER"}, - {0x1A4, "SHADOWVALID"}, - {0x1C0, "ICODEFAULTADDR"}, - {0x1C4, "DCODEFAULTADDR"}, - {0x1C8, "SYSFAULTADDR"}, - {0x1CC, "FAULTSTATUS"}, - {0x1D0, "FAULTCAPTUREEN"}, - {0x200, "DBGR1"}, - {0x204, "DBGR2"}, - {0x220, "PMUENABLE"}, - {0x250, "TPIUCTRL"}, - {0xFFFFFFFF, NULL} // 26 registers are public -}; -#endif // AM_PART_APOLLO2 - - -#if AM_PART_APOLLO -am_util_regdump_t g_sRegdumpMCUCTRL[] = -{ - {0x000, "CHIPPN"}, - {0x004, "CHIPID0"}, - {0x008, "CHIPID1"}, - {0x00C, "CHIPREV"}, - {0x010, "SUPPLYSRC"}, - {0x014, "SUPPLYSTATUS"}, - {0x0FC, "BANDGAPEN"}, - {0x140, "SRAMPWDINSLEEP"}, - {0x144, "SRAMPWRDIS"}, - {0x148, "FLASHPWRDIS"}, - {0x1C0, "ICODEFAULTADDR"}, - {0x1C4, "DCODEFAULTADDR"}, - {0x1C8, "SYSFAULTADDR"}, - {0x1CC, "FAULTSTATUS"}, - {0x1D0, "FAULTCAPTUREEN"}, - {0x250, "TPIUCTRL"}, - {0xFFFFFFFF, NULL} // 16 registers are public -}; -#endif // AM_PART_APOLLO - -am_util_regdump_t g_sRegdumpRSTGEN[] = -{ - {0x000, "CFG"}, - {0x004, "SWPOI"}, - {0x008, "SWPOR"}, - {0x00C, "RSTSTAT"}, - {0x010, "CLRSTAT"}, - {0x014, "TPIURST"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0x0FFFF000, "STAT"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpRTC[] = -{ - {0x040, "CTRLOW"}, - {0x044, "CTRUP"}, - {0x048, "ALMLOW"}, - {0x04C, "ALMUP"}, - {0x050, "RTCCTL"}, - // - // The interrupt regs are actually duplicates of CLKGEN - // - {0x100, "INTEN"}, - {0x104, "INTSTAT"}, - {0x108, "INTCLR"}, - {0x10C, "INTSET"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpUART[] = -{ -#if INCLUDE_REGS_WITH_SIDE_EFFECT - {0x000, "DR (data)"}, -#endif // INCLUDE_REGS_WITH_SIDE_EFFECT - {0x004, "RSR (status)"}, - {0x018, "FR (flag)"}, - {0x020, "ILPR (IrDA Counter)"}, - {0x024, "IBRD (Baud Div)"}, - {0x028, "FBRD (Frac Baud Div)"}, - {0x02C, "LCRH (Line Ctrl)"}, - {0x030, "CR (Ctrl)"}, - {0x034, "IFLS"}, - {0x038, "IER"}, - {0x03C, "IES"}, - {0x040, "MIS"}, - {0x044, "IEC"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpVCOMP[] = -{ - {0x000, "CFG"}, - {0x004, "STAT"}, - {0x008, "PWDKEY"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpWDT[] = -{ - {0x000, "CFG"}, - {0x004, "RSTRT"}, - {0x008, "LOCK"}, - {0x00C, "COUNT"}, - {0x200, "INTEN"}, - {0x204, "INTSTAT"}, - {0x208, "INTCLR"}, - {0x20C, "INTSET"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpITM[] = -{ - {0xE0000000, "STIM0"}, - {0xE0000004, "STIM1"}, - {0xE0000008, "STIM2"}, - {0xE000000C, "STIM3"}, - {0xE0000010, "STIM4"}, - {0xE0000014, "STIM5"}, - {0xE0000018, "STIM6"}, - {0xE000001C, "STIM7"}, - {0xE0000020, "STIM8"}, - {0xE0000024, "STIM9"}, - {0xE0000028, "STIM10"}, - {0xE000002C, "STIM11"}, - {0xE0000030, "STIM12"}, - {0xE0000034, "STIM13"}, - {0xE0000038, "STIM14"}, - {0xE000003C, "STIM15"}, - {0xE0000040, "STIM16"}, - {0xE0000044, "STIM17"}, - {0xE0000048, "STIM18"}, - {0xE000004C, "STIM19"}, - {0xE0000050, "STIM20"}, - {0xE0000054, "STIM21"}, - {0xE0000058, "STIM22"}, - {0xE000005C, "STIM23"}, - {0xE0000060, "STIM24"}, - {0xE0000064, "STIM25"}, - {0xE0000068, "STIM26"}, - {0xE000006C, "STIM27"}, - {0xE0000070, "STIM28"}, - {0xE0000074, "STIM29"}, - {0xE0000078, "STIM30"}, - {0xE000007C, "STIM31"}, - {0xE0000E00, "TER"}, - {0xE0000E40, "TPR"}, - {0xE0000E80, "TCR"}, - {0xE0000FB4, "LOCKSREG"}, - {0xE0000FD0, "PID4"}, - {0xE0000FD4, "PID5"}, - {0xE0000FD8, "PID6"}, - {0xE0000FDC, "PID7"}, - {0xE0000FE0, "PID0"}, - {0xE0000FE4, "PID1"}, - {0xE0000FE8, "PID2"}, - {0xE0000FEC, "PID3"}, - {0xE0000FF0, "CID0"}, - {0xE0000FF4, "CID1"}, - {0xE0000FF8, "CID2"}, - {0xE0000FFC, "CID3"}, - {0xE0000FB0, "LOCKAREG"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpNVIC[] = -{ - {0xE000E100, "ISER0"}, - {0xE000E180, "ICER0"}, - {0xE000E200, "ISPR0"}, - {0xE000E280, "ICPR0"}, - {0xE000E300, "IABR0"}, - {0xE000E400, "IPR0"}, - {0xE000E404, "IPR1"}, - {0xE000E408, "IPR2"}, - {0xE000E40C, "IPR3"}, - {0xE000E410, "IPR4"}, - {0xE000E414, "IPR5"}, - {0xE000E418, "IPR6"}, - {0xE000E41C, "IPR7"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpSYSCTRL[] = -{ - {0xE000E004, "ICTR"}, - {0xE000E008, "ACTLR"}, - {0xE000ED04, "ICSR"}, - {0xE000ED08, "VTOR"}, - {0xE000ED0C, "AIRCR"}, - {0xE000ED10, "SCR"}, - {0xE000ED14, "CCR"}, - {0xE000ED18, "SHPR1"}, - {0xE000ED1C, "SHPR2"}, - {0xE000ED20, "SHPR3"}, - {0xE000ED24, "SHCSR"}, - {0xE000ED28, "CFSR"}, - {0xE000ED2C, "HFSR"}, - {0xE000ED34, "MMFAR"}, - {0xE000ED38, "BFAR"}, - {0xE000ED88, "CPACR"}, - {0xE000EDFC, "DEMCR"}, - {0xE000EF00, "STIR"}, - {0xE000EF34, "FPCCR"}, - {0xE000EF38, "FPCAR"}, - {0xE000EF3C, "FPDSCR"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpSYSTICK[] = -{ - {0xE000E010, "SYSTCSR"}, - {0xE000E014, "SYSTRVR"}, - {0xE000E018, "SYSTCVR"}, - {0xE000E01C, "SYSTCALIB"}, - {0xFFFFFFFF, NULL} -}; - -am_util_regdump_t g_sRegdumpTPIU[] = -{ - {0xE0040000, "SSPSR"}, - {0xE0040004, "CSPSR"}, - {0xE0040010, "ACPR"}, - {0xE00400F0, "SPPR"}, - {0xE0040304, "FFCR"}, - {0xE0040F00, "ITCTRL"}, - {0xE0040FC8, "DEVID"}, - {0xE0040FCC, "DEVTYPE"}, - {0xFFFFFFFF, NULL} -}; - - -//***************************************************************************** -// -// Support functions. -// -//***************************************************************************** -static void -regdump_newline_print(uint32_t ui32Num) -{ - while ( ui32Num-- ) - { - am_util_stdio_printf("\n"); - } -} - - -static uint32_t -regdump_strlen(char *pcStr) -{ - char *pcS; - - // - // Loop through the string. - // - for ( pcS = pcStr; *pcS; ++pcS ); - - // - // Return the length. - // - return (pcS - pcStr); -} - -static void -block_print(am_util_regdump_t *psDump, uint32_t ui32BaseAddr) -{ - uint32_t ui32RegAddr; - uint32_t ux, ui32Len, ui32MaxLen; - - // - // First, get the maximum register name length. - // - ui32MaxLen = ux = 0; - while ( psDump[ux].ui32Offset != 0xFFFFFFFF ) - { - ui32Len = regdump_strlen(psDump[ux].pi8RegName); - if ( ui32Len > ui32MaxLen ) - { - ui32MaxLen = ui32Len; - } - ux++; - } - - // - // Create the format string - // - am_util_stdio_sprintf((char*)g_ui8Fmt, " %%-%ds (0x%%08X) = 0x%%08X\n", ui32MaxLen + 1); -// am_util_stdio_printf("g_ui8Fmt: '%s'\n\n", (char*)g_ui8Fmt); - - // - // Now, get the value of each register and print it. - // - ux = 0; - while ( psDump[ux].ui32Offset != 0xFFFFFFFF ) - { - // - // Format string is of the form: " %8s (0x%08X) = 0x%08X\n" - // - ui32RegAddr = ui32BaseAddr + psDump[ux].ui32Offset; - am_util_stdio_printf((char*)g_ui8Fmt, psDump[ux].pi8RegName, ui32RegAddr, AM_REGVAL(ui32RegAddr)); - ux++; - } -} - -uint32_t g_ui32PwrStatAdc = 0; -uint32_t g_ui32PwrStatBle = 0; -uint32_t g_ui32PwrStatIom02 = 0; -uint32_t g_ui32PwrStatIom35 = 0; -uint32_t g_ui32PwrStatIos = 0; -uint32_t g_ui32PwrStatMspi = 0; -uint32_t g_ui32PwrStatPdm = 0; -uint32_t g_ui32PwrStatUart0 = 0; -uint32_t g_ui32PwrStatUart1 = 0; - -void -regdump_pwr_enable(uint32_t ui32Block) -{ -#if AM_PART_APOLLO3 - switch ( ui32Block ) - { - case AM_UTIL_REGDUMP_ADC: - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_ADC, &g_ui32PwrStatAdc); - if ( g_ui32PwrStatAdc == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_ADC); - } - break; - case AM_UTIL_REGDUMP_BLE: - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_BLEL, &g_ui32PwrStatBle); - if ( g_ui32PwrStatBle == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_BLEL); - } - break; - case AM_UTIL_REGDUMP_IOM: - // - // Apollo3: IOM0 - IOM2 are on the same power domain - // IOM3 - IOM5 are on the same power domain - // - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_IOM0, &g_ui32PwrStatIom02); - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_IOM3, &g_ui32PwrStatIom35); - if ( g_ui32PwrStatIom02 == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_IOM0); - } - if ( g_ui32PwrStatIom35 == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_IOM3); - } - break; - case AM_UTIL_REGDUMP_IOS: - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_IOS, &g_ui32PwrStatIos); - if ( g_ui32PwrStatIos == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_IOS); - } - break; - case AM_UTIL_REGDUMP_MSPI: - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_MSPI, &g_ui32PwrStatMspi); - if ( g_ui32PwrStatMspi == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_MSPI); - } - break; - case AM_UTIL_REGDUMP_PDM: - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_PDM, &g_ui32PwrStatPdm); - if ( g_ui32PwrStatPdm == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_PDM); - } - break; - case AM_UTIL_REGDUMP_UART: - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_UART0, &g_ui32PwrStatUart0); - am_hal_pwrctrl_periph_enabled(AM_HAL_PWRCTRL_PERIPH_UART1, &g_ui32PwrStatUart1); - if ( g_ui32PwrStatUart0 == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_UART0); - } - if ( g_ui32PwrStatUart1 == 0 ) - { - am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_PERIPH_UART1); - } - break; - - default: - break; - } -#endif // AM_PART_APOLLO3 -} // regdump_pwr_enable() - -void -regdump_pwr_disable(uint32_t ui32Block) -{ -#if AM_PART_APOLLO3 - switch ( ui32Block ) - { - case AM_UTIL_REGDUMP_ADC: - if ( g_ui32PwrStatAdc == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_ADC); - } - g_ui32PwrStatAdc = 0; - break; - case AM_UTIL_REGDUMP_BLE: - if ( g_ui32PwrStatBle == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_BLEL); - } - g_ui32PwrStatBle = 0; - break; - case AM_UTIL_REGDUMP_IOM: - if ( g_ui32PwrStatIom02 == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_IOM0); - } - - if ( g_ui32PwrStatIom35 == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_IOM3); - } - g_ui32PwrStatIom02 = g_ui32PwrStatIom35 = 0; - break; - case AM_UTIL_REGDUMP_IOS: - if ( g_ui32PwrStatIos == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_IOS); - } - g_ui32PwrStatIos = 0; - break; - case AM_UTIL_REGDUMP_MSPI: - if ( g_ui32PwrStatMspi == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_MSPI); - } - g_ui32PwrStatMspi = 0; - break; - case AM_UTIL_REGDUMP_PDM: - if ( g_ui32PwrStatPdm == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_PDM); - } - g_ui32PwrStatPdm = 0; - break; - case AM_UTIL_REGDUMP_UART: - if ( g_ui32PwrStatUart0 == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_UART0); - } - if ( g_ui32PwrStatUart1 == 0 ) - { - am_hal_pwrctrl_periph_disable(AM_HAL_PWRCTRL_PERIPH_UART1); - } - g_ui32PwrStatUart0 = g_ui32PwrStatUart1 = 0; - break; - default: - break; - } -#endif // AM_PART_APOLLO3 -} // regdump_pwr_disable() - - -//***************************************************************************** -// -// printDump() - Print the registers for a given block. -// -// ui32NumModules = Number of modules in this block -// e.g. AM_REG_xxx_NUM_MODULES. -// ui32BlockBaseAddr = Base address of this block. -// ui32ModuleOffset = Offset, in bytes, between modules in the block -// e.g. AM_REG_IOMSTRn(1) - AM_REG_IOMSTRn(0). -// ui32ModuleMask = Mask of the desired block modules to be printed. -// Each lower bit indicates a module. -// pui8BlockName = Name of the block (e.g "IOM"). -// psDump = ptr to regdump structure for this block. -// -//***************************************************************************** -static void -dump_reg(uint32_t ui32NumModules, - uint32_t ui32BlockBaseAddr, - uint32_t ui32ModuleOffset, - uint32_t ui32ModuleMask, - char *pui8BlockName, - am_util_regdump_t *psDump) -{ - uint32_t ui32Module; - - am_util_stdio_printf("%s registers:\n", pui8BlockName); - - ui32Module = 0; - while ( ui32Module < ui32NumModules ) - { - if ( (ui32NumModules > 1) && - !(ui32ModuleMask & (1 << ui32Module)) ) - { - ui32Module++; - continue; - } - else - { - if ( ui32NumModules > 1 ) - { - am_util_stdio_printf(" %s Module %d\n", pui8BlockName, ui32Module); - } - } - - block_print(psDump, ui32BlockBaseAddr + (ui32ModuleOffset * ui32Module)); - - ui32Module++; - regdump_newline_print(1); - } - regdump_newline_print(1); -} - - -//***************************************************************************** -// -//! @brief Register dumping for debug purposes. -//! -//! This function dumps register values to the print port for debug purposes. -//! -//! @param ui32PeriphMask = an OR of the mask values to be printed. e.g. -//! AM_UTIL_REGDUMP_IOM | AM_UTIL_REGDUMP_GPIO -//! -//! @param ui32ModuleMask = A mask representing the modules (for a multi-module -//! block such as IOM) to be dumped. Bit0 represents module 0, etc. -//! This parameter is ignored for single-module blocks such as GPIO. -//! Pre-defined macros can be used to generate this mask, e.g. -//! REGDUMP_MOD0 | REGDUMP_MOD1 | REGDUMP_MOD2 -//! or equivalently -//! REGDUMP_MOD_MAS(0,2) -//! -//***************************************************************************** - -void -am_util_regdump_print(uint32_t ui32PeriphMask, uint32_t ui32ModuleMask) -{ - uint32_t ux, ui32RegAddr; - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_INFO0 ) - { - #define REGDUMP_INFO0_WDS 20 - am_util_stdio_printf("INFO0 space (first %d words):\n", REGDUMP_INFO0_WDS); - for ( ux = 0; ux < REGDUMP_INFO0_WDS * 4; ux += 4 ) - { - ui32RegAddr = AM_HAL_FLASH_INFO_ADDR + ux; - am_util_stdio_printf("INFO0 0x%08X = 0x%08X\n", - ui32RegAddr, AM_REGVAL(ui32RegAddr)); - } - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_ADC ) - { - regdump_pwr_enable(AM_UTIL_REGDUMP_ADC); - dump_reg(AM_REG_ADC_NUM_MODULES, AM_REG_ADCn(0), - AM_REG_ADCn(1) - AM_REG_ADCn(0), - ui32ModuleMask, "ADC", &g_sRegdumpADC[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_ADC); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_CLKGEN ) - { - dump_reg(AM_REG_CLKGEN_NUM_MODULES, AM_REG_CLKGENn(0), - AM_REG_CLKGENn(1) - AM_REG_CLKGENn(0), - ui32ModuleMask, "CLKGEN", &g_sRegdumpCLKGEN[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_CTIMER ) - { - dump_reg(AM_REG_CTIMER_NUM_MODULES, AM_REG_CTIMERn(0), - AM_REG_CTIMERn(1) - AM_REG_CTIMERn(0), - ui32ModuleMask, "CTIMER", &g_sRegdumpCTIMER[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_GPIO ) - { - dump_reg(AM_REG_GPIO_NUM_MODULES, AM_REG_GPIOn(0), - AM_REG_GPIOn(1) - AM_REG_GPIOn(0), - ui32ModuleMask, "GPIO", &g_sRegdumpGPIO[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_IOM ) - { -#if AM_PART_APOLLO3 - regdump_pwr_enable(AM_UTIL_REGDUMP_IOM); - dump_reg(AM_REG_IOM_NUM_MODULES, AM_REG_IOMn(0), - AM_REG_IOMn(1) - AM_REG_IOMn(0), - ui32ModuleMask, "IOM", &g_sRegdumpIOM[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_IOM); -#else - dump_reg(AM_REG_IOMSTR_NUM_MODULES, AM_REG_IOMSTRn(0), - AM_REG_IOMSTRn(1) - AM_REG_IOMSTRn(0), - ui32ModuleMask, "IOM", &g_sRegdumpIOM[0]); -#endif - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_IOS ) - { - regdump_pwr_enable(AM_UTIL_REGDUMP_IOS); - dump_reg(AM_REG_IOSLAVE_NUM_MODULES, AM_REG_IOSLAVEn(0), - AM_REG_IOSLAVEn(1) - AM_REG_IOSLAVEn(0), - ui32ModuleMask, "IOS", &g_sRegdumpIOS[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_IOS); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_RSTGEN ) - { - dump_reg(AM_REG_RSTGEN_NUM_MODULES, AM_REG_RSTGENn(0), - AM_REG_RSTGENn(1) - AM_REG_RSTGENn(0), - ui32ModuleMask, "RSTGEN", &g_sRegdumpRSTGEN[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_RTC ) - { - dump_reg(AM_REG_RTC_NUM_MODULES, AM_REG_RTCn(0), - AM_REG_RTCn(1) - AM_REG_RTCn(0), - ui32ModuleMask, "RTC", &g_sRegdumpRTC[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_UART ) - { - regdump_pwr_enable(AM_UTIL_REGDUMP_UART); - dump_reg(AM_REG_UART_NUM_MODULES, AM_REG_UARTn(0), - AM_REG_UARTn(1) - AM_REG_UARTn(0), - ui32ModuleMask, "UART", &g_sRegdumpUART[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_UART); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_VCOMP ) - { - dump_reg(AM_REG_VCOMP_NUM_MODULES, AM_REG_VCOMPn(0), - AM_REG_VCOMPn(1) - AM_REG_VCOMPn(0), - ui32ModuleMask, "VCOMP", &g_sRegdumpVCOMP[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_WDT ) - { - dump_reg(AM_REG_WDT_NUM_MODULES, AM_REG_WDTn(0), - AM_REG_WDTn(1) - AM_REG_WDTn(0), - ui32ModuleMask, "WDT", &g_sRegdumpWDT[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_ITM ) - { - dump_reg(AM_REG_ITM_NUM_MODULES, AM_REG_ITMn(0), - AM_REG_ITMn(1) - AM_REG_ITMn(0), - ui32ModuleMask, "ITM", &g_sRegdumpITM[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_NVIC ) - { - dump_reg(AM_REG_NVIC_NUM_MODULES, AM_REG_NVICn(0), - AM_REG_NVICn(1) - AM_REG_NVICn(0), - ui32ModuleMask, "NVIC", &g_sRegdumpNVIC[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_SYSCTRL ) - { - dump_reg(AM_REG_SYSCTRL_NUM_MODULES, AM_REG_SYSCTRLn(0), - AM_REG_SYSCTRLn(1) - AM_REG_SYSCTRLn(0), - ui32ModuleMask, "SYSCTRL", &g_sRegdumpSYSCTRL[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_SYSTICK ) - { - dump_reg(AM_REG_SYSTICK_NUM_MODULES, AM_REG_SYSTICKn(0), - AM_REG_SYSTICKn(1) - AM_REG_SYSTICKn(0), - ui32ModuleMask, "SYSTICK", &g_sRegdumpSYSTICK[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_TPIU ) - { - dump_reg(AM_REG_TPIU_NUM_MODULES, AM_REG_TPIUn(0), - AM_REG_TPIUn(1) - AM_REG_TPIUn(0), - ui32ModuleMask, "TPIU", &g_sRegdumpTPIU[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_MCUCTRL ) - { - dump_reg(AM_REG_MCUCTRL_NUM_MODULES, AM_REG_MCUCTRLn(0), - AM_REG_MCUCTRLn(1) - AM_REG_MCUCTRLn(0), - ui32ModuleMask, "MCUCTRL", &g_sRegdumpMCUCTRL[0]); - } - -#if AM_PART_APOLLO2 || AM_PART_APOLLO3 - am_util_stdio_printf("Apollo2/3 specific registers:\n\n"); - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_CACHE ) - { - dump_reg(AM_REG_CACHECTRL_NUM_MODULES, AM_REG_CACHECTRLn(0), - AM_REG_CACHECTRLn(1) - AM_REG_CACHECTRLn(0), - ui32ModuleMask, "CACHE", &g_sRegdumpCACHECTRL[0]); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_PDM ) - { - regdump_pwr_enable(AM_UTIL_REGDUMP_PDM); - dump_reg(AM_REG_PDM_NUM_MODULES, AM_REG_PDMn(0), - AM_REG_PDMn(1) - AM_REG_PDMn(0), - ui32ModuleMask, "PDM", &g_sRegdumpPDM[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_PDM); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_PWRCTRL ) - { - dump_reg(AM_REG_PWRCTRL_NUM_MODULES, AM_REG_PWRCTRLn(0), - AM_REG_PWRCTRLn(1) - AM_REG_PWRCTRLn(0), - ui32ModuleMask, "PWRCTRL", &g_sRegdumpPWRCTRL[0]); - } -#endif // AM_PART_APOLLO2 || AM_PART_APOLLO3 - -#if AM_PART_APOLLO3 - am_util_stdio_printf("Apollo3 specific registers:\n\n"); - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_BLE ) - { - regdump_pwr_enable(AM_UTIL_REGDUMP_BLE); - dump_reg(AM_REG_BLEIF_NUM_MODULES, AM_REG_BLEIFn(0), - AM_REG_BLEIFn(1) - AM_REG_BLEIFn(0), - ui32ModuleMask, "BLEIF", &g_sRegdumpBLE[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_BLE); - } - - if ( ui32PeriphMask & AM_UTIL_REGDUMP_MSPI ) - { - regdump_pwr_enable(AM_UTIL_REGDUMP_MSPI); - dump_reg(AM_REG_MSPI_NUM_MODULES, AM_REG_MSPIn(0), - AM_REG_MSPIn(1) - AM_REG_MSPIn(0), - ui32ModuleMask, "MSPI", &g_sRegdumpMSPI[0]); - regdump_pwr_disable(AM_UTIL_REGDUMP_MSPI); - } -#endif //AM_PART_APOLLO3 - - - am_util_stdio_printf("Register dump completed.\n"); - -} // am_util_regdump_print() diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c index 094b1e21..69d40699 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c +++ b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.c @@ -61,8 +61,9 @@ // function pointer for printf am_util_stdio_print_char_t g_pfnCharPrint; -// buffer for printf -static char g_prfbuf[AM_PRINTF_BUFSIZE]; +// // buffer for printf +// static char g_prfbuf[AM_PRINTF_BUFSIZE]; +char g_prfbuf[AM_PRINTF_BUFSIZE]; // Flag to do conversion of '\n' to '\n\r' in sprintf() static bool g_bTxtXlate = false; diff --git a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h index bab09852..520f678a 100644 --- a/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h +++ b/cores/arduino/am_sdk_ap3/utils/am_util_stdio.h @@ -64,6 +64,8 @@ extern "C" #define AM_PRINTF_BUFSIZE 256 #endif +extern char g_prfbuf[AM_PRINTF_BUFSIZE]; + typedef void (*am_util_stdio_print_char_t)(char *pcStr); //*****************************************************************************